|
LLVM
3.7.0
|
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, 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 47 of file CalcSpillWeights.h.
Definition at line 49 of file CalcSpillWeights.h.
|
inline |
Definition at line 60 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, BucketT >::clear(), copyHint(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineLoopInfo::getLoopFor(), llvm::MachineInstr::getParent(), llvm::MachineRegisterInfo::getRegAllocationHint(), llvm::MachineFunction::getRegInfo(), llvm::TargetSubtargetInfo::getRegisterInfo(), llvm::LiveInterval::getSize(), llvm::LiveIntervals::getSlotIndexes(), llvm::LiveIntervals::getSpillWeight(), llvm::MachineFunction::getSubtarget(), I, llvm::SmallPtrSetImpl< PtrType >::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_instr_begin(), llvm::MachineRegisterInfo::reg_instr_end(), llvm::MachineRegisterInfo::setRegAllocationHint(), and llvm::LiveInterval::weight.
Referenced by llvm::LiveRangeEdit::calculateRegClassAndHint(), and llvm::calculateSpillWeightsAndHints().
1.8.6