LLVM API Documentation

llvm::ARMRegisterInfo Struct Reference

#include <ARMRegisterInfo.h>

Inheritance diagram for llvm::ARMRegisterInfo:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ARMRegisterInfo (const TargetInstrInfo &tii, const ARMSubtarget &STI)
void emitLoadConstPool (MachineBasicBlock &MBB, MachineBasicBlock::iterator &MBBI, unsigned DestReg, int Val, unsigned Pred, unsigned PredReg, const TargetInstrInfo *TII, bool isThumb) const
const unsignedgetCalleeSavedRegs (const MachineFunction *MF=0) const
 Code Generation virtual methods...
const TargetRegisterClass *const * getCalleeSavedRegClasses (const MachineFunction *MF=0) const
BitVector getReservedRegs (const MachineFunction &MF) const
bool isReservedReg (const MachineFunction &MF, unsigned Reg) const
bool requiresRegisterScavenging (const MachineFunction &MF) const
bool hasFP (const MachineFunction &MF) const
bool hasReservedCallFrame (MachineFunction &MF) const
void eliminateCallFramePseudoInstr (MachineFunction &MF, MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const
void eliminateFrameIndex (MachineBasicBlock::iterator II, int SPAdj, RegScavenger *RS=NULL) const
void processFunctionBeforeCalleeSavedScan (MachineFunction &MF, RegScavenger *RS=NULL) const
void emitPrologue (MachineFunction &MF) const
void emitEpilogue (MachineFunction &MF, MachineBasicBlock &MBB) const
unsigned getRARegister () const
unsigned getFrameRegister (MachineFunction &MF) const
unsigned getEHExceptionRegister () const
unsigned getEHHandlerRegister () const
int getDwarfRegNum (unsigned RegNum, bool isEH) const
bool isLowRegister (unsigned Reg) const

Static Public Member Functions

static unsigned getRegisterNumbering (unsigned RegEnum)

Public Attributes

const TargetInstrInfoTII
const ARMSubtargetSTI


Detailed Description

Definition at line 25 of file ARMRegisterInfo.h.


Constructor & Destructor Documentation

ARMRegisterInfo::ARMRegisterInfo ( const TargetInstrInfo tii,
const ARMSubtarget STI 
)

Definition at line 84 of file ARMRegisterInfo.cpp.


Member Function Documentation

void ARMRegisterInfo::emitLoadConstPool ( MachineBasicBlock MBB,
MachineBasicBlock::iterator MBBI,
unsigned  DestReg,
int  Val,
unsigned  Pred,
unsigned  PredReg,
const TargetInstrInfo TII,
bool  isThumb 
) const

unsigned ARMRegisterInfo::getRegisterNumbering ( unsigned  RegEnum  )  [static]

getRegisterNumbering - Given the enum value for some register, e.g. ARM::LR, return the number that it corresponds to (e.g. 14).

Definition at line 43 of file ARMRegisterInfo.cpp.

References llvm::X86II::D8, and llvm::X86II::D9.

const unsigned * ARMRegisterInfo::getCalleeSavedRegs ( const MachineFunction MF = 0  )  const

Code Generation virtual methods...

Definition at line 134 of file ARMRegisterInfo.cpp.

References llvm::X86II::D8, llvm::X86II::D9, llvm::ARMSubtarget::isTargetDarwin(), and STI.

Referenced by emitEpilogue(), and processFunctionBeforeCalleeSavedScan().

const TargetRegisterClass *const * ARMRegisterInfo::getCalleeSavedRegClasses ( const MachineFunction MF = 0  )  const

Definition at line 156 of file ARMRegisterInfo.cpp.

Referenced by processFunctionBeforeCalleeSavedScan().

BitVector ARMRegisterInfo::getReservedRegs ( const MachineFunction MF  )  const

bool ARMRegisterInfo::isReservedReg ( const MachineFunction MF,
unsigned  Reg 
) const

bool ARMRegisterInfo::requiresRegisterScavenging ( const MachineFunction MF  )  const

bool ARMRegisterInfo::hasFP ( const MachineFunction MF  )  const

hasFP - Return true if the specified function should have a dedicated frame pointer register. This is true if the function has variable sized allocas or if frame pointer elimination is disabled.

Definition at line 211 of file ARMRegisterInfo.cpp.

References llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::hasVarSizedObjects(), MFI, and llvm::NoFramePointerElim.

Referenced by eliminateFrameIndex(), emitEpilogue(), emitPrologue(), getFrameRegister(), getReservedRegs(), isReservedReg(), and processFunctionBeforeCalleeSavedScan().

bool ARMRegisterInfo::hasReservedCallFrame ( MachineFunction MF  )  const

void ARMRegisterInfo::eliminateCallFramePseudoInstr ( MachineFunction MF,
MachineBasicBlock MBB,
MachineBasicBlock::iterator  I 
) const

void ARMRegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  II,
int  SPAdj,
RegScavenger RS = NULL 
) const

Definition at line 534 of file ARMRegisterInfo.cpp.

References llvm::MachineInstr::addOperand(), llvm::ARMII::AddrMode2, llvm::ARMII::AddrMode3, llvm::ARMII::AddrMode5, llvm::ARMII::AddrModeMask, llvm::ARMII::AddrModeTs, AFI, llvm::ARMCC::AL, llvm::BuildMI(), calcNumMI(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::MachineOperand::CreateReg(), emitARMRegPlusImmediate(), emitLoadConstPool(), emitThumbConstant(), emitThumbRegPlusImmediate(), emitThumbRegPlusImmInReg(), llvm::MachineBasicBlock::erase(), llvm::MachineInstr::findFirstPredOperandIdx(), findScratchRegister(), FrameIndex, llvm::TargetInstrInfo::get(), llvm::ARM_AM::getAM2Offset(), llvm::ARM_AM::getAM2Op(), llvm::ARM_AM::getAM3Offset(), llvm::ARM_AM::getAM3Op(), llvm::ARM_AM::getAM5Offset(), llvm::ARM_AM::getAM5Op(), llvm::MachineInstr::getDesc(), llvm::ARMFunctionInfo::getDPRCalleeSavedAreaOffset(), llvm::MachineFunction::getFrameInfo(), llvm::ARMFunctionInfo::getFramePtrSpillOffset(), getFrameRegister(), llvm::ARMFunctionInfo::getGPRCalleeSavedArea1Offset(), llvm::ARMFunctionInfo::getGPRCalleeSavedArea2Offset(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineFunction::getInfo(), llvm::MachineInstr::getNumOperands(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::ARM_AM::getSOImmVal(), llvm::ARM_AM::getSOImmValRotate(), llvm::MachineFrameInfo::getStackSize(), hasFP(), llvm::ARMFunctionInfo::isDPRCalleeSavedAreaFrame(), llvm::MachineOperand::isFI(), llvm::ARMFunctionInfo::isGPRCalleeSavedArea1Frame(), llvm::ARMFunctionInfo::isGPRCalleeSavedArea2Frame(), llvm::ARMFunctionInfo::isR3LiveIn(), llvm::TargetInstrDesc::isSimpleLoad(), isThumb, llvm::ARMFunctionInfo::isThumbFunction(), llvm::TargetInstrDesc::mayStore(), MBB, MF, MI, llvm::next(), Offset, Pred, llvm::MachineInstr::RemoveOperand(), llvm::ARM_AM::rotr32(), Scale, llvm::RegScavenger::scavengeRegister(), llvm::MachineInstr::setDesc(), llvm::ARM_AM::sub, TII, and llvm::TargetInstrDesc::TSFlags.

void ARMRegisterInfo::processFunctionBeforeCalleeSavedScan ( MachineFunction MF,
RegScavenger RS = NULL 
) const

Definition at line 868 of file ARMRegisterInfo.cpp.

References llvm::ARMII::AddrMode3, llvm::ARMII::AddrMode5, llvm::ARMII::AddrModeMask, AFI, llvm::SmallVectorImpl< T >::back(), BB, llvm::MachineBasicBlock::begin(), llvm::MachineFunction::begin(), llvm::SmallVectorImpl< T >::begin(), llvm::MachineFrameInfo::CreateStackObject(), E, llvm::SmallVectorImpl< T >::empty(), llvm::MachineBasicBlock::end(), llvm::MachineFunction::end(), llvm::SmallVectorImpl< T >::end(), llvm::SmallVectorImpl< T >::erase(), estimateStackSize(), llvm::SmallVectorImpl< T >::front(), llvm::TargetInstrInfo::get(), llvm::TargetRegisterClass::getAlignment(), getCalleeSavedRegClasses(), getCalleeSavedRegs(), llvm::MachineFunction::getFrameInfo(), llvm::TargetMachine::getFrameInfo(), llvm::TargetInstrInfo::GetFunctionSizeInBytes(), llvm::MachineFunction::getInfo(), llvm::MachineFunction::getRegInfo(), llvm::TargetRegisterClass::getSize(), llvm::TargetFrameInfo::getStackAlignment(), llvm::MachineFunction::getTarget(), hasFP(), I, isLowRegister(), llvm::MachineRegisterInfo::isPhysRegUsed(), isReservedReg(), llvm::ARMSubtarget::isTargetDarwin(), llvm::ARMFunctionInfo::isThumbFunction(), MFI, llvm::SmallVectorImpl< T >::pop_back(), llvm::SmallVectorImpl< T >::push_back(), Reg, llvm::ARMFunctionInfo::setCSRegisterIsSpilled(), llvm::ARMFunctionInfo::setHasStackFrame(), llvm::ARMFunctionInfo::setLRIsSpilledForFarJump(), llvm::MachineRegisterInfo::setPhysRegUsed(), llvm::RegScavenger::setScavengingFrameIndex(), llvm::SmallVectorImpl< T >::size(), STI, TII, and llvm::TargetInstrDesc::TSFlags.

void ARMRegisterInfo::emitPrologue ( MachineFunction MF  )  const

Definition at line 1117 of file ARMRegisterInfo.cpp.

References AddDefaultCC(), AddDefaultPred(), llvm::ARMFunctionInfo::addDPRCalleeSavedAreaFrame(), llvm::ARMFunctionInfo::addGPRCalleeSavedArea1Frame(), llvm::ARMFunctionInfo::addGPRCalleeSavedArea2Frame(), llvm::MachineInstrBuilder::addImm(), AFI, llvm::ARMCC::AL, llvm::MachineBasicBlock::begin(), llvm::BuildMI(), E, emitSPUpdate(), llvm::MachineBasicBlock::end(), FI, llvm::MachineFunction::front(), llvm::TargetInstrInfo::get(), llvm::MachineFrameInfo::getCalleeSavedInfo(), llvm::MachineFunction::getFrameInfo(), llvm::ARMFunctionInfo::getFramePtrSpillOffset(), llvm::MachineFunction::getInfo(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineFrameInfo::getOffsetAdjustment(), llvm::MachineFunction::getRegInfo(), llvm::MachineFrameInfo::getStackSize(), llvm::ARMFunctionInfo::getVarArgsRegSaveSize(), hasFP(), llvm::ARMFunctionInfo::hasStackFrame(), I, llvm::ARMSubtarget::isTargetDarwin(), llvm::ARMSubtarget::isTargetELF(), isThumb, llvm::ARMFunctionInfo::isThumbFunction(), llvm::MachineRegisterInfo::livein_begin(), llvm::MachineRegisterInfo::livein_end(), MBB, MBBI, MFI, movePastCSLoadStoreOps(), Reg, llvm::ARMFunctionInfo::setDPRCalleeSavedAreaOffset(), llvm::ARMFunctionInfo::setDPRCalleeSavedAreaSize(), llvm::ARMFunctionInfo::setFramePtrSpillOffset(), llvm::ARMFunctionInfo::setGPRCalleeSavedArea1Offset(), llvm::ARMFunctionInfo::setGPRCalleeSavedArea1Size(), llvm::ARMFunctionInfo::setGPRCalleeSavedArea2Offset(), llvm::ARMFunctionInfo::setGPRCalleeSavedArea2Size(), llvm::MachineFrameInfo::setOffsetAdjustment(), llvm::ARMFunctionInfo::setR3IsLiveIn(), llvm::MachineFrameInfo::setStackSize(), STI, and TII.

void ARMRegisterInfo::emitEpilogue ( MachineFunction MF,
MachineBasicBlock MBB 
) const

unsigned ARMRegisterInfo::getRARegister (  )  const

Definition at line 1362 of file ARMRegisterInfo.cpp.

unsigned ARMRegisterInfo::getFrameRegister ( MachineFunction MF  )  const

unsigned ARMRegisterInfo::getEHExceptionRegister (  )  const

Definition at line 1373 of file ARMRegisterInfo.cpp.

unsigned ARMRegisterInfo::getEHHandlerRegister (  )  const

Definition at line 1378 of file ARMRegisterInfo.cpp.

int ARMRegisterInfo::getDwarfRegNum ( unsigned  RegNum,
bool  isEH 
) const

Definition at line 1383 of file ARMRegisterInfo.cpp.

bool ARMRegisterInfo::isLowRegister ( unsigned  Reg  )  const


Member Data Documentation


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



This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.