LLVM API Documentation
#include <SPURegisterInfo.h>
Public Member Functions | |
| SPURegisterInfo (const SPUSubtarget &subtarget, const TargetInstrInfo &tii) | |
| virtual const unsigned * | getCalleeSavedRegs (const MachineFunction *MF) const |
| Return the array of callee-saved registers. | |
| virtual const TargetRegisterClass *const * | getCalleeSavedRegClasses (const MachineFunction *MF) const |
| Return the register class array of the callee-saved registers. | |
| BitVector | getReservedRegs (const MachineFunction &MF) const |
| Return the reserved registers. | |
| bool | hasFP (const MachineFunction &MF) const |
| Prediate: Target has dedicated frame pointer. | |
| void | eliminateCallFramePseudoInstr (MachineFunction &MF, MachineBasicBlock &MBB, MachineBasicBlock::iterator I) const |
| Eliminate the call frame setup pseudo-instructions. | |
| void | eliminateFrameIndex (MachineBasicBlock::iterator II, int, RegScavenger *RS) const |
| Convert frame indicies into machine operands. | |
| void | determineFrameLayout (MachineFunction &MF) const |
| Determine the frame's layour. | |
| void | processFunctionBeforeCalleeSavedScan (MachineFunction &MF, RegScavenger *RS=NULL) const |
| void | emitPrologue (MachineFunction &MF) const |
| Emit the function prologue. | |
| void | emitEpilogue (MachineFunction &MF, MachineBasicBlock &MBB) const |
| Emit the function epilogue. | |
| unsigned | getRARegister () const |
| Get return address register (LR, aka R0). | |
| unsigned | getFrameRegister (MachineFunction &MF) const |
| Get the stack frame register (SP, aka R1). | |
| void | getInitialFrameState (std::vector< MachineMove > &Moves) const |
| Perform target-specific stack frame setup. | |
| int | getDwarfRegNum (unsigned RegNum, bool isEH) const |
| Get DWARF debugging register number. | |
Static Public Member Functions | |
| static unsigned | getRegisterNumbering (unsigned RegEnum) |
| Translate a register's enum value to a register number. | |
| static const unsigned * | getArgRegs () |
| Return the array of argument passing registers. | |
| static unsigned | getNumArgRegs () |
| Return the size of the argument passing register array. | |
Definition at line 26 of file SPURegisterInfo.h.
| SPURegisterInfo::SPURegisterInfo | ( | const SPUSubtarget & | subtarget, | |
| const TargetInstrInfo & | tii | |||
| ) |
Definition at line 184 of file SPURegisterInfo.cpp.
Translate a register's enum value to a register number.
This method translates a register's enum value to it's regiser number, e.g. SPU::R14 -> 14.
getRegisterNumbering - Given the enum value for some register, e.g. PPC::F14, return the number that it corresponds to (e.g. 14).
Definition at line 47 of file SPURegisterInfo.cpp.
References llvm::cerr().
| const unsigned * SPURegisterInfo::getCalleeSavedRegs | ( | const MachineFunction * | MF | ) | const [virtual] |
| const TargetRegisterClass *const * SPURegisterInfo::getCalleeSavedRegClasses | ( | const MachineFunction * | MF | ) | const [virtual] |
Return the register class array of the callee-saved registers.
Definition at line 246 of file SPURegisterInfo.cpp.
| BitVector SPURegisterInfo::getReservedRegs | ( | const MachineFunction & | MF | ) | const |
Return the reserved registers.
R0 (link register), R1 (stack pointer) and R2 (environment pointer -- this is generally unused) are the Cell's reserved registers
Definition at line 279 of file SPURegisterInfo.cpp.
References llvm::BitVector::set().
| bool SPURegisterInfo::hasFP | ( | const MachineFunction & | MF | ) | const |
Prediate: Target has dedicated frame pointer.
Definition at line 305 of file SPURegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getStackSize(), MFI, and needsFP().
| void SPURegisterInfo::eliminateCallFramePseudoInstr | ( | MachineFunction & | MF, | |
| MachineBasicBlock & | MBB, | |||
| MachineBasicBlock::iterator | I | |||
| ) | const |
Eliminate the call frame setup pseudo-instructions.
Definition at line 312 of file SPURegisterInfo.cpp.
References llvm::MachineBasicBlock::erase().
| void SPURegisterInfo::eliminateFrameIndex | ( | MachineBasicBlock::iterator | II, | |
| int | SPAdj, | |||
| RegScavenger * | RS | |||
| ) | const |
Convert frame indicies into machine operands.
Definition at line 322 of file SPURegisterInfo.cpp.
References llvm::cerr(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), FrameIndex, llvm::MachineFunction::getFrameInfo(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineInstr::getNumOperands(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineOperand::isFI(), llvm::SPUFrameInfo::maxFrameOffset(), MBB, MF, MFI, MI, llvm::SPUFrameInfo::minFrameOffset(), llvm::SPUFrameInfo::minStackSize(), and Offset.
| void SPURegisterInfo::determineFrameLayout | ( | MachineFunction & | MF | ) | const |
Determine the frame's layour.
determineFrameLayout - Determine the size of the frame and maximum call frame size.
Definition at line 371 of file SPURegisterInfo.cpp.
References Align, llvm::TargetMachine::getFrameInfo(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getMaxAlignment(), llvm::MachineFrameInfo::getMaxCallFrameSize(), llvm::TargetFrameInfo::getStackAlignment(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineFunction::getTarget(), llvm::MachineFrameInfo::hasVarSizedObjects(), llvm::isPowerOf2_32(), MFI, llvm::MachineFrameInfo::setMaxCallFrameSize(), and llvm::MachineFrameInfo::setStackSize().
Referenced by emitPrologue().
| void SPURegisterInfo::processFunctionBeforeCalleeSavedScan | ( | MachineFunction & | MF, | |
| RegScavenger * | RS = NULL | |||
| ) | const |
Definition at line 406 of file SPURegisterInfo.cpp.
References llvm::MachineFunction::getRegInfo(), and llvm::MachineRegisterInfo::setPhysRegUnused().
| void SPURegisterInfo::emitPrologue | ( | MachineFunction & | MF | ) | const |
Emit the function prologue.
Definition at line 418 of file SPURegisterInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::begin(), llvm::SPUFrameInfo::branchHintPenalty(), llvm::BuildMI(), llvm::cerr(), llvm::ISD::DBG_LABEL, determineFrameLayout(), E, llvm::MachineBasicBlock::end(), llvm::MachineFunction::front(), llvm::TargetInstrInfo::get(), llvm::MachineFrameInfo::getCalleeSavedInfo(), llvm::MachineFunction::getFrameInfo(), llvm::MachineModuleInfo::getFrameMoves(), llvm::MachineFrameInfo::getMachineModuleInfo(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineFrameInfo::hasCalls(), llvm::MachineModuleInfo::hasDebugInfo(), llvm::isS10Constant(), MBB, MBBI, MFI, llvm::SPUFrameInfo::minStackSize(), MMI, llvm::MachineModuleInfo::NextLabelID(), Offset, llvm::prior(), Reg, llvm::MachineBasicBlock::size(), and llvm::MachineLocation::VirtualFP.
| void SPURegisterInfo::emitEpilogue | ( | MachineFunction & | MF, | |
| MachineBasicBlock & | MBB | |||
| ) | const |
Emit the function epilogue.
Definition at line 524 of file SPURegisterInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::cerr(), llvm::MachineBasicBlock::end(), llvm::TargetInstrInfo::get(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getStackSize(), llvm::isS10Constant(), MBBI, MFI, llvm::SPUFrameInfo::minStackSize(), llvm::prior(), llvm::ISD::RET, and llvm::SPUFrameInfo::stackSlotSize().
| unsigned SPURegisterInfo::getRARegister | ( | ) | const |
| unsigned SPURegisterInfo::getFrameRegister | ( | MachineFunction & | MF | ) | const |
| void SPURegisterInfo::getInitialFrameState | ( | std::vector< MachineMove > & | Moves | ) | const |
Perform target-specific stack frame setup.
Definition at line 587 of file SPURegisterInfo.cpp.
References Src, and llvm::MachineLocation::VirtualFP.
| const unsigned * SPURegisterInfo::getArgRegs | ( | ) | [static] |
Return the array of argument passing registers.
Definition at line 208 of file SPURegisterInfo.cpp.
Referenced by LowerCALL(), and LowerFORMAL_ARGUMENTS().
| unsigned SPURegisterInfo::getNumArgRegs | ( | ) | [static] |
Return the size of the argument passing register array.
Definition at line 214 of file SPURegisterInfo.cpp.
Referenced by llvm::SPUFrameInfo::fullSpillSize(), LowerCALL(), and LowerFORMAL_ARGUMENTS().
| int SPURegisterInfo::getDwarfRegNum | ( | unsigned | RegNum, | |
| bool | isEH | |||
| ) | const |