LLVM API Documentation

Public Member Functions | Protected Member Functions | Protected Attributes
llvm::ARMBaseRegisterInfo Class Reference

#include <ARMBaseRegisterInfo.h>

Inheritance diagram for llvm::ARMBaseRegisterInfo:
Inheritance graph
[legend]
Collaboration diagram for llvm::ARMBaseRegisterInfo:
Collaboration graph
[legend]

List of all members.

Public Member Functions

const uint16_t * getCalleeSavedRegs (const MachineFunction *MF=0) const
 Code Generation virtual methods...
const uint32_t * getCallPreservedMask (CallingConv::ID) const
const uint32_t * getThisReturnPreservedMask (CallingConv::ID) const
const uint32_t * getNoPreservedMask () const
BitVector getReservedRegs (const MachineFunction &MF) const
const TargetRegisterClassgetPointerRegClass (const MachineFunction &MF, unsigned Kind=0) const
const TargetRegisterClassgetCrossCopyRegClass (const TargetRegisterClass *RC) const
const TargetRegisterClassgetLargestLegalSuperClass (const TargetRegisterClass *RC) const
unsigned getRegPressureLimit (const TargetRegisterClass *RC, MachineFunction &MF) const
void getRegAllocationHints (unsigned VirtReg, ArrayRef< MCPhysReg > Order, SmallVectorImpl< MCPhysReg > &Hints, const MachineFunction &MF, const VirtRegMap *VRM) const
void UpdateRegAllocHint (unsigned Reg, unsigned NewReg, MachineFunction &MF) const
virtual bool avoidWriteAfterWrite (const TargetRegisterClass *RC) const
bool hasBasePointer (const MachineFunction &MF) const
bool canRealignStack (const MachineFunction &MF) const
bool needsStackRealignment (const MachineFunction &MF) const
int64_t getFrameIndexInstrOffset (const MachineInstr *MI, int Idx) const
bool needsFrameBaseReg (MachineInstr *MI, int64_t Offset) const
void materializeFrameBaseRegister (MachineBasicBlock *MBB, unsigned BaseReg, int FrameIdx, int64_t Offset) const
void resolveFrameIndex (MachineBasicBlock::iterator I, unsigned BaseReg, int64_t Offset) const
bool isFrameOffsetLegal (const MachineInstr *MI, int64_t Offset) const
bool cannotEliminateFrame (const MachineFunction &MF) const
unsigned getFrameRegister (const MachineFunction &MF) const
unsigned getBaseRegister () const
unsigned getEHExceptionRegister () const
unsigned getEHHandlerRegister () const
bool isLowRegister (unsigned Reg) const
virtual void emitLoadConstPool (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, DebugLoc dl, unsigned DestReg, unsigned SubIdx, int Val, ARMCC::CondCodes Pred=ARMCC::AL, unsigned PredReg=0, unsigned MIFlags=MachineInstr::NoFlags) const
virtual bool requiresRegisterScavenging (const MachineFunction &MF) const
 Code Generation virtual methods...
virtual bool trackLivenessAfterRegAlloc (const MachineFunction &MF) const
virtual bool requiresFrameIndexScavenging (const MachineFunction &MF) const
virtual bool requiresVirtualBaseRegisters (const MachineFunction &MF) const
virtual void eliminateFrameIndex (MachineBasicBlock::iterator II, int SPAdj, unsigned FIOperandNum, RegScavenger *RS=NULL) const

Protected Member Functions

 ARMBaseRegisterInfo (const ARMBaseInstrInfo &tii, const ARMSubtarget &STI)
unsigned getOpcode (int Op) const

Protected Attributes

const ARMBaseInstrInfoTII
const ARMSubtargetSTI
unsigned FramePtr
 FramePtr - ARM physical register used as frame ptr.
unsigned BasePtr

Detailed Description

Definition at line 75 of file ARMBaseRegisterInfo.h.


Constructor & Destructor Documentation

ARMBaseRegisterInfo::ARMBaseRegisterInfo ( const ARMBaseInstrInfo tii,
const ARMSubtarget STI 
) [explicit, protected]

Definition at line 46 of file ARMBaseRegisterInfo.cpp.


Member Function Documentation

bool ARMBaseRegisterInfo::avoidWriteAfterWrite ( const TargetRegisterClass RC) const [virtual]
bool ARMBaseRegisterInfo::cannotEliminateFrame ( const MachineFunction MF) const
bool ARMBaseRegisterInfo::canRealignStack ( const MachineFunction MF) const
void ARMBaseRegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  II,
int  SPAdj,
unsigned  FIOperandNum,
RegScavenger RS = NULL 
) const [virtual]
void ARMBaseRegisterInfo::emitLoadConstPool ( MachineBasicBlock MBB,
MachineBasicBlock::iterator MBBI,
DebugLoc  dl,
unsigned  DestReg,
unsigned  SubIdx,
int  Val,
ARMCC::CondCodes  Pred = ARMCC::AL,
unsigned  PredReg = 0,
unsigned  MIFlags = MachineInstr::NoFlags 
) const [virtual]
unsigned llvm::ARMBaseRegisterInfo::getBaseRegister ( ) const [inline]
const uint16_t * ARMBaseRegisterInfo::getCalleeSavedRegs ( const MachineFunction MF = 0) const
const uint32_t * ARMBaseRegisterInfo::getCallPreservedMask ( CallingConv::ID  ) const
const TargetRegisterClass * ARMBaseRegisterInfo::getCrossCopyRegClass ( const TargetRegisterClass RC) const

Definition at line 147 of file ARMBaseRegisterInfo.cpp.

unsigned ARMBaseRegisterInfo::getEHExceptionRegister ( ) const

Definition at line 361 of file ARMBaseRegisterInfo.cpp.

References llvm_unreachable.

unsigned ARMBaseRegisterInfo::getEHHandlerRegister ( ) const

Definition at line 365 of file ARMBaseRegisterInfo.cpp.

References llvm_unreachable.

int64_t ARMBaseRegisterInfo::getFrameIndexInstrOffset ( const MachineInstr MI,
int  Idx 
) const
unsigned ARMBaseRegisterInfo::getFrameRegister ( const MachineFunction MF) const
const TargetRegisterClass * ARMBaseRegisterInfo::getLargestLegalSuperClass ( const TargetRegisterClass RC) const
const uint32_t * ARMBaseRegisterInfo::getNoPreservedMask ( ) const

Definition at line 84 of file ARMBaseRegisterInfo.cpp.

unsigned llvm::ARMBaseRegisterInfo::getOpcode ( int  Op) const [protected]
const TargetRegisterClass * ARMBaseRegisterInfo::getPointerRegClass ( const MachineFunction MF,
unsigned  Kind = 0 
) const

Reimplemented in llvm::Thumb1RegisterInfo.

Definition at line 141 of file ARMBaseRegisterInfo.cpp.

void ARMBaseRegisterInfo::getRegAllocationHints ( unsigned  VirtReg,
ArrayRef< MCPhysReg Order,
SmallVectorImpl< MCPhysReg > &  Hints,
const MachineFunction MF,
const VirtRegMap VRM 
) const
unsigned ARMBaseRegisterInfo::getRegPressureLimit ( const TargetRegisterClass RC,
MachineFunction MF 
) const
BitVector ARMBaseRegisterInfo::getReservedRegs ( const MachineFunction MF) const
const uint32_t * ARMBaseRegisterInfo::getThisReturnPreservedMask ( CallingConv::ID  ) const
bool ARMBaseRegisterInfo::hasBasePointer ( const MachineFunction MF) const
bool ARMBaseRegisterInfo::isFrameOffsetLegal ( const MachineInstr MI,
int64_t  Offset 
) const
bool llvm::ARMBaseRegisterInfo::isLowRegister ( unsigned  Reg) const
void ARMBaseRegisterInfo::materializeFrameBaseRegister ( MachineBasicBlock MBB,
unsigned  BaseReg,
int  FrameIdx,
int64_t  Offset 
) const
bool ARMBaseRegisterInfo::needsFrameBaseReg ( MachineInstr MI,
int64_t  Offset 
) const
bool ARMBaseRegisterInfo::needsStackRealignment ( const MachineFunction MF) const
bool ARMBaseRegisterInfo::requiresFrameIndexScavenging ( const MachineFunction MF) const [virtual]

Definition at line 402 of file ARMBaseRegisterInfo.cpp.

bool ARMBaseRegisterInfo::requiresRegisterScavenging ( const MachineFunction MF) const [virtual]

Code Generation virtual methods...

Definition at line 392 of file ARMBaseRegisterInfo.cpp.

bool ARMBaseRegisterInfo::requiresVirtualBaseRegisters ( const MachineFunction MF) const [virtual]

Definition at line 407 of file ARMBaseRegisterInfo.cpp.

void ARMBaseRegisterInfo::resolveFrameIndex ( MachineBasicBlock::iterator  I,
unsigned  BaseReg,
int64_t  Offset 
) const
bool ARMBaseRegisterInfo::trackLivenessAfterRegAlloc ( const MachineFunction MF) const [virtual]

Definition at line 397 of file ARMBaseRegisterInfo.cpp.

void ARMBaseRegisterInfo::UpdateRegAllocHint ( unsigned  Reg,
unsigned  NewReg,
MachineFunction MF 
) const

Member Data Documentation

BasePtr - ARM physical register used as a base ptr in complex stack frames. I.e., when we need a 3rd base, not just SP and FP, due to variable size stack objects.

Definition at line 86 of file ARMBaseRegisterInfo.h.

Referenced by canRealignStack(), llvm::Thumb1RegisterInfo::eliminateFrameIndex(), getBaseRegister(), and getReservedRegs().

FramePtr - ARM physical register used as frame ptr.

Definition at line 81 of file ARMBaseRegisterInfo.h.

Referenced by canRealignStack(), getFrameRegister(), and getReservedRegs().


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