LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::Thumb1RegisterInfo Struct Reference

#include <Thumb1RegisterInfo.h>

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

Public Member Functions

 Thumb1RegisterInfo (const ARMSubtarget &STI)
 
const TargetRegisterClassgetLargestLegalSuperClass (const TargetRegisterClass *RC) const
 
const TargetRegisterClassgetPointerRegClass (const MachineFunction &MF, unsigned Kind=0) const
 
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
 
bool rewriteFrameIndex (MachineBasicBlock::iterator II, unsigned FrameRegIdx, unsigned FrameReg, int &Offset, const ARMBaseInstrInfo &TII) const
 
void resolveFrameIndex (MachineBasicBlock::iterator I, unsigned BaseReg, int64_t Offset) const
 
bool saveScavengerRegister (MachineBasicBlock &MBB, MachineBasicBlock::iterator I, MachineBasicBlock::iterator &UseMI, const TargetRegisterClass *RC, unsigned Reg) const
 
void eliminateFrameIndex (MachineBasicBlock::iterator II, int SPAdj, unsigned FIOperandNum, RegScavenger *RS=NULL) const
 
- Public Member Functions inherited from llvm::ARMBaseRegisterInfo
const uint16_t * getCalleeSavedRegs (const MachineFunction *MF=0) const
 Code Generation virtual methods... More...
 
const uint32_t * getCallPreservedMask (CallingConv::ID) const
 
const uint32_t * getNoPreservedMask () const
 
const uint32_t * getThisReturnPreservedMask (CallingConv::ID) 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
 
bool isLowRegister (unsigned Reg) const
 
virtual bool requiresRegisterScavenging (const MachineFunction &MF) const
 Code Generation virtual methods... More...
 
virtual bool trackLivenessAfterRegAlloc (const MachineFunction &MF) const
 
virtual bool requiresFrameIndexScavenging (const MachineFunction &MF) const
 
virtual bool requiresVirtualBaseRegisters (const MachineFunction &MF) const
 

Additional Inherited Members

- Protected Member Functions inherited from llvm::ARMBaseRegisterInfo
 ARMBaseRegisterInfo (const ARMSubtarget &STI)
 
unsigned getOpcode (int Op) const
 
- Protected Attributes inherited from llvm::ARMBaseRegisterInfo
const ARMSubtargetSTI
 
unsigned FramePtr
 FramePtr - ARM physical register used as frame ptr. More...
 
unsigned BasePtr
 

Detailed Description

Definition at line 26 of file Thumb1RegisterInfo.h.

Constructor & Destructor Documentation

Thumb1RegisterInfo::Thumb1RegisterInfo ( const ARMSubtarget STI)

Definition at line 43 of file Thumb1RegisterInfo.cpp.

Member Function Documentation

void Thumb1RegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  II,
int  SPAdj,
unsigned  FIOperandNum,
RegScavenger RS = NULL 
) const
virtual

Reimplemented from llvm::ARMBaseRegisterInfo.

Definition at line 558 of file Thumb1RegisterInfo.cpp.

References llvm::AddDefaultPred(), llvm::ARMBaseRegisterInfo::BasePtr, llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::MachineRegisterInfo::createVirtualRegister(), emitLoadConstPool(), llvm::emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), llvm::MachineInstr::findFirstPredOperandIdx(), llvm::ISD::FrameIndex, llvm::MachineInstr::getDebugLoc(), llvm::MachineFunction::getFrameInfo(), llvm::TargetMachine::getFrameLowering(), llvm::ARMFunctionInfo::getFramePtrSpillOffset(), llvm::ARMBaseRegisterInfo::getFrameRegister(), llvm::MachineOperand::getIndex(), llvm::MachineFunction::getInfo(), llvm::TargetMachine::getInstrInfo(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineFunction::getTarget(), llvm::ARMBaseRegisterInfo::hasBasePointer(), llvm::TargetFrameLowering::hasFP(), llvm::TargetFrameLowering::hasReservedCallFrame(), llvm::MachineFrameInfo::hasVarSizedObjects(), llvm::MachineInstr::isDebugValue(), llvm::MachineInstr::isPredicable(), llvm::RegScavenger::isScavengingFrameIndex(), llvm::ARMFunctionInfo::isThumbFunction(), llvm_unreachable, llvm::MachineInstr::mayLoad(), llvm::MachineInstr::mayStore(), llvm::A64CC::MI, removeOperands(), rewriteFrameIndex(), and llvm::MachineInstr::setDesc().

void Thumb1RegisterInfo::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
const TargetRegisterClass * Thumb1RegisterInfo::getLargestLegalSuperClass ( const TargetRegisterClass RC) const
const TargetRegisterClass * Thumb1RegisterInfo::getPointerRegClass ( const MachineFunction MF,
unsigned  Kind = 0 
) const

Definition at line 56 of file Thumb1RegisterInfo.cpp.

void Thumb1RegisterInfo::resolveFrameIndex ( MachineBasicBlock::iterator  I,
unsigned  BaseReg,
int64_t  Offset 
) const
bool Thumb1RegisterInfo::rewriteFrameIndex ( MachineBasicBlock::iterator  II,
unsigned  FrameRegIdx,
unsigned  FrameReg,
int &  Offset,
const ARMBaseInstrInfo TII 
) const
bool Thumb1RegisterInfo::saveScavengerRegister ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  I,
MachineBasicBlock::iterator UseMI,
const TargetRegisterClass RC,
unsigned  Reg 
) const

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