LLVM: llvm::RAGreedy Class Reference (original) (raw)

#include "[CodeGen/RegAllocGreedy.h](RegAllocGreedy%5F8h%5Fsource.html)"

Public Member Functions
LiveRegMatrix * getInterferenceMatrix () const
LiveIntervals * getLiveIntervals () const
VirtRegMap * getVirtRegMap () const
const RegisterClassInfo & getRegClassInfo () const
const ExtraRegInfo & getExtraInfo () const
size_t getQueueSize () const
bool getRegClassPriorityTrumpsGlobalness () const
bool getReverseLocalAssignment () const
RAGreedy (RequiredAnalyses &Analyses, const RegAllocFilterFunc F=nullptr)
Spiller & spiller () override
void enqueueImpl (const LiveInterval *LI) override
enqueue - Add VirtReg to the priority queue of unassigned registers.
const LiveInterval * dequeue () override
dequeue - Return the next unassigned register, or NULL.
MCRegister selectOrSplit (const LiveInterval &, SmallVectorImpl< Register > &) override
void aboutToRemoveInterval (const LiveInterval &) override
Method called when the allocator is about to remove a LiveInterval.
bool run (MachineFunction &mf)
Perform register allocation.
void releaseMemory ()
Additional Inherited Members
Static Public Attributes inherited from llvm::RegAllocBase
static bool VerifyEnabled = false
VerifyEnabled - True when -verify-regalloc is given.
Protected Member Functions inherited from llvm::RegAllocBase
RegAllocBase (const RegAllocFilterFunc F=nullptr)
virtual ~RegAllocBase ()=default
void init (VirtRegMap &vrm, LiveIntervals &lis, LiveRegMatrix &mat)
bool shouldAllocateRegister (Register Reg)
Get whether a given register should be allocated.
void allocatePhysRegs ()
virtual void postOptimization ()
void cleanupFailedVReg (Register FailedVReg, MCRegister PhysReg, SmallVectorImpl< Register > &SplitRegs)
Perform cleanups on registers that failed to allocate.
void enqueue (const LiveInterval *LI)
enqueue - Add VirtReg to the priority queue of unassigned registers.
MCPhysReg getErrorAssignment (const TargetRegisterClass &RC, const MachineInstr *CtxMI=nullptr)
Query a physical register to use as a filler in contexts where the allocation has failed.
Protected Attributes inherited from llvm::RegAllocBase
const TargetRegisterInfo * TRI = nullptr
MachineRegisterInfo * MRI = nullptr
VirtRegMap * VRM = nullptr
LiveIntervals * LIS = nullptr
LiveRegMatrix * Matrix = nullptr
RegisterClassInfo RegClassInfo
SmallPtrSet< MachineInstr *, 32 > DeadRemats
Inst which is a def of an original reg and whose defs are already all dead after remat is saved in DeadRemats.
SmallSet< Register, 2 > FailedVRegs
Static Protected Attributes inherited from llvm::RegAllocBase
static const char TimerGroupName [] = "regalloc"
static const char TimerGroupDescription [] = "Register Allocation"

Definition at line 59 of file RegAllocGreedy.h.

Definition at line 200 of file RegAllocGreedy.cpp.

References llvm::RAGreedy::RequiredAnalyses::Bundles, llvm::RAGreedy::RequiredAnalyses::DebugVars, llvm::RAGreedy::RequiredAnalyses::DomTree, llvm::RAGreedy::RequiredAnalyses::EvictProvider, F, llvm::RAGreedy::RequiredAnalyses::Indexes, llvm::RAGreedy::RequiredAnalyses::LIS, llvm::RegAllocBase::LIS, llvm::RAGreedy::RequiredAnalyses::Loops, llvm::RAGreedy::RequiredAnalyses::LRM, llvm::RAGreedy::RequiredAnalyses::LSS, llvm::RegAllocBase::Matrix, llvm::RAGreedy::RequiredAnalyses::MBFI, llvm::RAGreedy::RequiredAnalyses::ORE, llvm::RAGreedy::RequiredAnalyses::PriorityProvider, llvm::RegAllocBase::RegAllocBase(), llvm::RAGreedy::RequiredAnalyses::SpillPlacer, llvm::RAGreedy::RequiredAnalyses::VRM, and llvm::RegAllocBase::VRM.

aboutToRemoveInterval()

dequeue()

enqueueImpl()

getExtraInfo()

getInterferenceMatrix()

LiveRegMatrix * llvm::RAGreedy::getInterferenceMatrix ( ) const inline

getLiveIntervals()

LiveIntervals * llvm::RAGreedy::getLiveIntervals ( ) const inline

getQueueSize()

size_t llvm::RAGreedy::getQueueSize ( ) const inline

getRegClassInfo()

getRegClassPriorityTrumpsGlobalness()

bool llvm::RAGreedy::getRegClassPriorityTrumpsGlobalness ( ) const inline

getReverseLocalAssignment()

bool llvm::RAGreedy::getReverseLocalAssignment ( ) const inline

getVirtRegMap()

VirtRegMap * llvm::RAGreedy::getVirtRegMap ( ) const inline

releaseMemory()

void RAGreedy::releaseMemory ( )

run()

Perform register allocation.

Definition at line 2891 of file RegAllocGreedy.cpp.

References llvm::RegAllocBase::allocatePhysRegs(), llvm::createInlineSpiller(), llvm::dbgs(), llvm::errs(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineFunction::getName(), llvm::MachineFunction::getSubtarget(), GreedyRegClassPriorityTrumpsGlobalness, GreedyReverseLocalAssignment, llvm::RegAllocBase::init(), llvm::RegAllocBase::LIS, LLVM_DEBUG, llvm::RegAllocBase::Matrix, llvm::RegAllocBase::postOptimization(), releaseMemory(), llvm::RegAllocBase::TRI, llvm::RegAllocBase::VerifyEnabled, and llvm::RegAllocBase::VRM.

selectOrSplit()

spiller()

Spiller & llvm::RAGreedy::spiller ( ) inlineoverridevirtual

The documentation for this class was generated from the following files: