LLVM API Documentation
Calculate auxiliary information for a virtual register such as its spill weight and allocation hint. More...
#include <CalcSpillWeights.h>
Public Types | |
typedef float(* | NormalizingFn )(float, unsigned) |
Public Member Functions | |
VirtRegAuxInfo (MachineFunction &mf, LiveIntervals &lis, const MachineLoopInfo &loops, const MachineBlockFrequencyInfo &mbfi, NormalizingFn norm=normalizeSpillWeight) | |
void | calculateSpillWeightAndHint (LiveInterval &li) |
(re)compute li's spill weight and allocation hint. More... | |
Calculate auxiliary information for a virtual register such as its spill weight and allocation hint.
Definition at line 45 of file CalcSpillWeights.h.
typedef float(* llvm::VirtRegAuxInfo::NormalizingFn)(float, unsigned) |
Definition at line 47 of file CalcSpillWeights.h.
|
inline |
Definition at line 58 of file CalcSpillWeights.h.
void VirtRegAuxInfo::calculateSpillWeightAndHint | ( | LiveInterval & | li | ) |
(re)compute li's spill weight and allocation hint.
Definition at line 96 of file CalcSpillWeights.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::clear(), copyHint(), llvm::MachineBlockFrequencyInfo::getBlockFreq(), llvm::TargetMachine::getInstrInfo(), llvm::MachineLoopInfo::getLoopFor(), llvm::MachineInstr::getParent(), llvm::MachineRegisterInfo::getRegAllocationHint(), llvm::MachineFunction::getRegInfo(), llvm::TargetMachine::getRegisterInfo(), llvm::LiveInterval::getSize(), llvm::LiveIntervals::getSlotIndexes(), llvm::LiveIntervals::getSpillWeight(), llvm::MachineFunction::getTarget(), I, llvm::SmallPtrSet< PtrType, SmallSize >::insert(), llvm::MachineRegisterInfo::isAllocatable(), llvm::MachineInstr::isCopy(), llvm::MachineInstr::isDebugValue(), llvm::MachineInstr::isIdentityCopy(), llvm::MachineInstr::isImplicitDef(), llvm::LiveIntervals::isLiveOutOfMBB(), llvm::LoopBase< N, M >::isLoopExiting(), llvm::TargetRegisterInfo::isPhysicalRegister(), isRematerializable(), llvm::LiveInterval::isSpillable(), llvm::LiveRange::isZeroLength(), llvm::LiveInterval::markNotSpillable(), llvm::MachineInstr::readsWritesVirtualRegister(), llvm::LiveInterval::reg, llvm::MachineRegisterInfo::reg_begin(), llvm::MachineRegisterInfo::setRegAllocationHint(), llvm::tie(), and llvm::LiveInterval::weight.
Referenced by llvm::LiveRangeEdit::calculateRegClassAndHint(), and llvm::calculateSpillWeightsAndHints().