LLVM API Documentation

Static Public Attributes | Protected Member Functions | Protected Attributes | Static Protected Attributes
llvm::RegAllocBase Class Reference

#include <RegAllocBase.h>

Collaboration diagram for llvm::RegAllocBase:
Collaboration graph
[legend]

List of all members.

Static Public Attributes

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

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.
virtual LiveIntervaldequeue ()=0
 dequeue - Return the next unassigned register, or NULL.
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 58 of file RegAllocBase.h.


Constructor & Destructor Documentation

llvm::RegAllocBase::RegAllocBase ( ) [inline, protected]

Definition at line 68 of file RegAllocBase.h.

virtual llvm::RegAllocBase::~RegAllocBase ( ) [inline, protected, virtual]

Definition at line 71 of file RegAllocBase.h.


Member Function Documentation

void RegAllocBase::allocatePhysRegs ( ) [protected]
virtual LiveInterval* llvm::RegAllocBase::dequeue ( ) [protected, pure virtual]

dequeue - Return the next unassigned register, or NULL.

Referenced by allocatePhysRegs().

virtual void llvm::RegAllocBase::enqueue ( LiveInterval LI) [protected, pure 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 
) [protected, pure virtual]

Referenced by allocatePhysRegs().

virtual Spiller& llvm::RegAllocBase::spiller ( ) [protected, pure virtual]

Member Data Documentation

Definition at line 64 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

Definition at line 65 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

Definition at line 62 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

Definition at line 66 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().

const char RegAllocBase::TimerGroupName = "Register Allocation" [static, protected]

Definition at line 97 of file RegAllocBase.h.

Definition at line 61 of file RegAllocBase.h.

Referenced by init().

VerifyEnabled - True when -verify-regalloc is given.

Definition at line 101 of file RegAllocBase.h.

Definition at line 63 of file RegAllocBase.h.

Referenced by allocatePhysRegs(), and init().


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