LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes | List of all members
llvm::RegAllocBase Class Referenceabstract

#include <RegAllocBase.h>

Collaboration diagram for llvm::RegAllocBase:
Collaboration graph
[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
 

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 59 of file RegAllocBase.h.

Constructor & Destructor Documentation

llvm::RegAllocBase::RegAllocBase ( )
inlineprotected

Definition at line 69 of file RegAllocBase.h.

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

Definition at line 71 of file RegAllocBase.h.

Member Function Documentation

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 65 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

LiveRegMatrix* llvm::RegAllocBase::Matrix
protected

Definition at line 66 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

MachineRegisterInfo* llvm::RegAllocBase::MRI
protected

Definition at line 63 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

RegisterClassInfo llvm::RegAllocBase::RegClassInfo
protected

Definition at line 67 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 62 of file RegAllocBase.h.

Referenced by init().

bool RegAllocBase::VerifyEnabled = false
static

VerifyEnabled - True when -verify-regalloc is given.

Definition at line 101 of file RegAllocBase.h.

VirtRegMap* llvm::RegAllocBase::VRM
protected

Definition at line 64 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().


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