LLVM  3.7.0
Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
llvm::RegAllocBase Class Referenceabstract

RegAllocBase provides the register allocation driver and interface that can be extended to add interesting heuristics. More...

#include <RegAllocBase.h>

Collaboration diagram for llvm::RegAllocBase:
[legend]

Static Public Attributes

static bool VerifyEnabled = false
 VerifyEnabled - True when -verify-regalloc is given. More...
 

Protected Member Functions

 RegAllocBase ()
 
virtual ~RegAllocBase ()
 
void init (VirtRegMap &vrm, LiveIntervals &lis, LiveRegMatrix &mat)
 
void allocatePhysRegs ()
 
virtual Spillerspiller ()=0
 
virtual void enqueue (LiveInterval *LI)=0
 enqueue - Add VirtReg to the priority queue of unassigned registers. More...
 
virtual LiveIntervaldequeue ()=0
 dequeue - Return the next unassigned register, or NULL. More...
 
virtual unsigned selectOrSplit (LiveInterval &VirtReg, SmallVectorImpl< unsigned > &splitLVRs)=0
 
virtual void aboutToRemoveInterval (LiveInterval &LI)
 Method called when the allocator is about to remove a LiveInterval. More...
 

Protected Attributes

const TargetRegisterInfoTRI
 
MachineRegisterInfoMRI
 
VirtRegMapVRM
 
LiveIntervalsLIS
 
LiveRegMatrixMatrix
 
RegisterClassInfo RegClassInfo
 

Static Protected Attributes

static const char TimerGroupName [] = "Register Allocation"
 

Detailed Description

RegAllocBase provides the register allocation driver and interface that can be extended to add interesting heuristics.

Register allocators must override the selectOrSplit() method to implement live range splitting. They must also override enqueue/dequeue to provide an assignment order.

Definition at line 58 of file RegAllocBase.h.

Constructor & Destructor Documentation

llvm::RegAllocBase::RegAllocBase ( )
inlineprotected

Definition at line 68 of file RegAllocBase.h.

virtual llvm::RegAllocBase::~RegAllocBase ( )
inlineprotectedvirtual

Definition at line 71 of file RegAllocBase.h.

Member Function Documentation

virtual void llvm::RegAllocBase::aboutToRemoveInterval ( LiveInterval LI)
inlineprotectedvirtual

Method called when the allocator is about to remove a LiveInterval.

Definition at line 100 of file RegAllocBase.h.

Referenced by allocatePhysRegs().

void RegAllocBase::allocatePhysRegs ( )
protected
virtual LiveInterval* llvm::RegAllocBase::dequeue ( )
protectedpure virtual

dequeue - Return the next unassigned register, or NULL.

Referenced by allocatePhysRegs().

virtual void llvm::RegAllocBase::enqueue ( LiveInterval LI)
protectedpure virtual

enqueue - Add VirtReg to the priority queue of unassigned registers.

Referenced by allocatePhysRegs().

void RegAllocBase::init ( VirtRegMap vrm,
LiveIntervals lis,
LiveRegMatrix mat 
)
protected
virtual unsigned llvm::RegAllocBase::selectOrSplit ( LiveInterval VirtReg,
SmallVectorImpl< unsigned > &  splitLVRs 
)
protectedpure virtual

Referenced by allocatePhysRegs().

virtual Spiller& llvm::RegAllocBase::spiller ( )
protectedpure virtual

Member Data Documentation

LiveIntervals* llvm::RegAllocBase::LIS
protected

Definition at line 64 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

LiveRegMatrix* llvm::RegAllocBase::Matrix
protected

Definition at line 65 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

MachineRegisterInfo* llvm::RegAllocBase::MRI
protected

Definition at line 62 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

RegisterClassInfo llvm::RegAllocBase::RegClassInfo
protected

Definition at line 66 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

const char RegAllocBase::TimerGroupName = "Register Allocation"
staticprotected

Definition at line 97 of file RegAllocBase.h.

const TargetRegisterInfo* llvm::RegAllocBase::TRI
protected

Definition at line 61 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

bool RegAllocBase::VerifyEnabled = false
static

VerifyEnabled - True when -verify-regalloc is given.

Definition at line 104 of file RegAllocBase.h.

VirtRegMap* llvm::RegAllocBase::VRM
protected

Definition at line 63 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().


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