LLVM API Documentation
#include <X86RegisterInfo.h>


Definition at line 50 of file X86RegisterInfo.h.
| X86RegisterInfo::X86RegisterInfo | ( | X86TargetMachine & | tm, | |
| const TargetInstrInfo & | tii | |||
| ) |
Definition at line 43 of file X86RegisterInfo.cpp.
References llvm::N86::EBP, llvm::N86::ESP, llvm::X86TargetMachine::getFrameInfo(), llvm::TargetFrameInfo::getStackAlignment(), llvm::TargetMachine::getSubtarget(), llvm::X86Subtarget::is64Bit(), llvm::X86Subtarget::isTargetWin64(), Subtarget, and TM.
getX86RegNum - Returns the native X86 register number for the given LLVM register identifier.
Definition at line 94 of file X86RegisterInfo.cpp.
References llvm::ARMCC::AL, llvm::XCoreISD::BL, llvm::N86::EAX, llvm::N86::EBP, llvm::N86::EBX, llvm::N86::ECX, llvm::N86::EDI, llvm::N86::EDX, llvm::N86::ESI, and llvm::N86::ESP.
Referenced by getMemModRMByteSize().
| unsigned llvm::X86RegisterInfo::getStackAlignment | ( | ) | const [inline] |
Definition at line 87 of file X86RegisterInfo.h.
Referenced by llvm::X86InstrInfo::loadRegFromAddr(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::storeRegToAddr(), llvm::X86InstrInfo::storeRegToStackSlot(), and llvm::X86InstrInfo::unfoldMemoryOperand().
| int X86RegisterInfo::getDwarfRegNum | ( | unsigned | RegNum, | |
| bool | isEH | |||
| ) | const |
getDwarfRegNum - allows modification of X86GenRegisterInfo::getDwarfRegNum (created by TableGen) for target dependencies.
Definition at line 71 of file X86RegisterInfo.cpp.
References llvm::TargetMachine::getSubtarget(), llvm::X86Subtarget::is64Bit(), llvm::X86Subtarget::isTargetCygMing(), llvm::X86Subtarget::isTargetDarwin(), Subtarget, TM, llvm::DWARFFlavour::X86_32_DarwinEH, llvm::DWARFFlavour::X86_32_Generic, and llvm::DWARFFlavour::X86_64.
| const TargetRegisterClass * X86RegisterInfo::getCrossCopyRegClass | ( | const TargetRegisterClass * | RC | ) | const |
Code Generation virtual methods... getCrossCopyRegClass - Returns a legal register class to copy a register in the specified class to or from. Returns NULL if it is possible to copy between a two registers of the specified class.
Definition at line 155 of file X86RegisterInfo.cpp.
| const unsigned * X86RegisterInfo::getCalleeSavedRegs | ( | const MachineFunction * | MF = 0 |
) | const |
getCalleeSavedRegs - Return a null-terminated list of all of the callee-save registers on this target.
Definition at line 166 of file X86RegisterInfo.cpp.
References llvm::MachineModuleInfo::callsEHReturn(), llvm::N86::EAX, llvm::N86::EBP, llvm::N86::EBX, llvm::N86::EDI, llvm::N86::EDX, llvm::N86::ESI, llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getMachineModuleInfo(), MFI, and MMI.
| const TargetRegisterClass *const * X86RegisterInfo::getCalleeSavedRegClasses | ( | const MachineFunction * | MF = 0 |
) | const |
getCalleeSavedRegClasses - Return a null-terminated list of the preferred register classes to spill each callee-saved register with. The order and length of this list match the getCalleeSavedRegs() list.
Definition at line 211 of file X86RegisterInfo.cpp.
References llvm::MachineModuleInfo::callsEHReturn(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getMachineModuleInfo(), MFI, and MMI.
| BitVector X86RegisterInfo::getReservedRegs | ( | const MachineFunction & | MF | ) | const |
getReservedRegs - Returns a bitset indexed by physical register number indicating if a register is a special register that has particular uses and should be considered unavailable at all times, e.g. SP, RA. This is used by register scavenger to determine what registers are free.
Definition at line 264 of file X86RegisterInfo.cpp.
References llvm::N86::EBP, llvm::N86::ESP, hasFP(), and llvm::BitVector::set().
| bool X86RegisterInfo::hasFP | ( | const MachineFunction & | MF | ) | const |
Definition at line 314 of file X86RegisterInfo.cpp.
References llvm::MachineModuleInfo::callsUnwindInit(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getInfo(), llvm::MachineFrameInfo::getMachineModuleInfo(), llvm::MachineFrameInfo::hasVarSizedObjects(), llvm::MachineFrameInfo::isFrameAddressTaken(), MFI, MMI, needsStackRealignment(), and llvm::NoFramePointerElim.
Referenced by eliminateFrameIndex(), emitEpilogue(), emitFrameMoves(), emitPrologue(), getFrameIndexOffset(), getFrameRegister(), getReservedRegs(), and processFunctionBeforeFrameFinalized().
| bool X86RegisterInfo::needsStackRealignment | ( | const MachineFunction & | MF | ) | const |
Definition at line 326 of file X86RegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getMaxAlignment(), llvm::MachineFrameInfo::hasVarSizedObjects(), MFI, and llvm::RealignStack.
Referenced by eliminateFrameIndex(), emitEpilogue(), emitPrologue(), getFrameIndexOffset(), hasFP(), llvm::X86InstrInfo::loadRegFromAddr(), llvm::X86InstrInfo::loadRegFromStackSlot(), llvm::X86InstrInfo::storeRegToAddr(), llvm::X86InstrInfo::storeRegToStackSlot(), and llvm::X86InstrInfo::unfoldMemoryOperand().
| bool X86RegisterInfo::hasReservedCallFrame | ( | MachineFunction & | MF | ) | const |
Definition at line 336 of file X86RegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), and llvm::MachineFrameInfo::hasVarSizedObjects().
Referenced by eliminateCallFramePseudoInstr().
| void X86RegisterInfo::eliminateCallFramePseudoInstr | ( | MachineFunction & | MF, | |
| MachineBasicBlock & | MBB, | |||
| MachineBasicBlock::iterator | MI | |||
| ) | const |
Definition at line 374 of file X86RegisterInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::BuildMI(), llvm::MachineBasicBlock::erase(), llvm::TargetInstrInfo::get(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), hasReservedCallFrame(), llvm::MachineBasicBlock::insert(), llvm::MachineOperand::setIsDead(), and TII.
| void X86RegisterInfo::eliminateFrameIndex | ( | MachineBasicBlock::iterator | MI, | |
| int | SPAdj, | |||
| RegScavenger * | RS = NULL | |||
| ) | const |
Definition at line 433 of file X86RegisterInfo.cpp.
References llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), FrameIndex, getFrameIndexOffset(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineInstr::getNumOperands(), llvm::MachineOperand::getOffset(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), hasFP(), llvm::MachineOperand::isFI(), llvm::MachineOperand::isImm(), MF, MI, needsStackRealignment(), Offset, and llvm::MachineOperand::setOffset().
| void X86RegisterInfo::processFunctionBeforeFrameFinalized | ( | MachineFunction & | MF | ) | const |
Definition at line 486 of file X86RegisterInfo.cpp.
References llvm::MachineFrameInfo::CreateFixedObject(), FrameIdx, llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getInfo(), llvm::MachineFrameInfo::getObjectIndexBegin(), llvm::X86MachineFunctionInfo::getTCReturnAddrDelta(), and hasFP().
| void X86RegisterInfo::processFunctionBeforeCalleeSavedScan | ( | MachineFunction & | MF, | |
| RegScavenger * | RS = NULL | |||
| ) | const |
Definition at line 473 of file X86RegisterInfo.cpp.
References calculateMaxStackAlignment(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getMaxAlignment(), and llvm::MachineFrameInfo::setMaxAlignment().
| void X86RegisterInfo::emitPrologue | ( | MachineFunction & | MF | ) | const |
Definition at line 705 of file X86RegisterInfo.cpp.
References llvm::MachineInstrBuilder::addImm(), llvm::addRegOffset(), llvm::ARMCC::AL, llvm::MachineFunction::begin(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::ISD::DBG_LABEL, llvm::Function::doesNotThrow(), E, llvm::N86::EAX, emitFrameMoves(), emitSPUpdate(), llvm::MachineBasicBlock::end(), llvm::MachineFunction::end(), llvm::MachineFunction::front(), llvm::TargetInstrInfo::get(), llvm::X86MachineFunctionInfo::getCalleeSavedFrameSize(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::MachineFrameInfo::getMachineModuleInfo(), llvm::MachineFrameInfo::getMaxAlignment(), llvm::MachineInstr::getOperand(), llvm::MachineFunction::getRegInfo(), llvm::MachineFrameInfo::getStackSize(), llvm::TargetMachine::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::X86MachineFunctionInfo::getTCReturnAddrDelta(), hasFP(), I, II, llvm::MachineBasicBlock::insert(), llvm::X86Subtarget::isTargetCygMing(), llvm::MachineRegisterInfo::livein_begin(), llvm::MachineRegisterInfo::livein_end(), MBB, MBBI, mergeSPUpdates(), mergeSPUpdatesDown(), MFI, MI, MMI, needsStackRealignment(), llvm::next(), Reg, llvm::X86MachineFunctionInfo::setCalleeSavedFrameSize(), llvm::MachineOperand::setIsDead(), llvm::MachineFrameInfo::setOffsetAdjustment(), Subtarget, TII, and llvm::UnwindTablesMandatory.
| void X86RegisterInfo::emitEpilogue | ( | MachineFunction & | MF, | |
| MachineBasicBlock & | MBB | |||
| ) | const |
Definition at line 851 of file X86RegisterInfo.cpp.
References llvm::addRegOffset(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::X86ISD::EH_RETURN, emitSPUpdate(), llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::erase(), llvm::TargetInstrInfo::get(), llvm::X86MachineFunctionInfo::getCalleeSavedFrameSize(), llvm::MachineFunction::getFrameInfo(), llvm::MachineOperand::getImm(), llvm::MachineFunction::getInfo(), llvm::MachineFrameInfo::getMaxAlignment(), llvm::MachineFrameInfo::getStackSize(), llvm::X86MachineFunctionInfo::getTCReturnAddrDelta(), hasFP(), llvm::MachineFrameInfo::hasVarSizedObjects(), llvm::MachineBasicBlock::insert(), llvm::MachineOperand::isImm(), MBBI, mergeSPUpdates(), mergeSPUpdatesUp(), MFI, MI, needsStackRealignment(), Offset, PI, llvm::prior(), llvm::ISD::RET, and TII.
| void X86RegisterInfo::emitFrameMoves | ( | MachineFunction & | MF, | |
| unsigned | FrameLabelId, | |||
| unsigned | ReadyLabelId | |||
| ) | const |
Definition at line 631 of file X86RegisterInfo.cpp.
References E, llvm::MachineFrameInfo::getCalleeSavedInfo(), llvm::TargetMachine::getFrameInfo(), llvm::MachineFunction::getFrameInfo(), llvm::MachineModuleInfo::getFrameMoves(), llvm::MachineFrameInfo::getMachineModuleInfo(), llvm::MachineFrameInfo::getObjectOffset(), llvm::TargetData::getPointerSize(), llvm::TargetFrameInfo::getStackGrowthDirection(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineFunction::getTarget(), llvm::TargetMachine::getTargetData(), hasFP(), I, MFI, MMI, Offset, Reg, llvm::TargetFrameInfo::StackGrowsUp, TD, and llvm::MachineLocation::VirtualFP.
Referenced by emitPrologue().
| unsigned X86RegisterInfo::getRARegister | ( | ) | const |
| unsigned X86RegisterInfo::getFrameRegister | ( | MachineFunction & | MF | ) | const |
| int X86RegisterInfo::getFrameIndexOffset | ( | MachineFunction & | MF, | |
| int | FI | |||
| ) | const |
Definition at line 341 of file X86RegisterInfo.cpp.
References Align, llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getInfo(), llvm::MachineFrameInfo::getObjectAlignment(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineFrameInfo::getStackSize(), llvm::X86MachineFunctionInfo::getTCReturnAddrDelta(), hasFP(), needsStackRealignment(), and Offset.
Referenced by eliminateFrameIndex().
| void X86RegisterInfo::getInitialFrameState | ( | std::vector< MachineMove > & | Moves | ) | const |
Definition at line 1000 of file X86RegisterInfo.cpp.
References getRARegister(), Src, and llvm::MachineLocation::VirtualFP.
| unsigned X86RegisterInfo::getEHExceptionRegister | ( | ) | const |
Definition at line 1016 of file X86RegisterInfo.cpp.
| unsigned X86RegisterInfo::getEHHandlerRegister | ( | ) | const |
Definition at line 1021 of file X86RegisterInfo.cpp.
Definition at line 52 of file X86RegisterInfo.h.
Referenced by getDwarfRegNum(), and X86RegisterInfo().
Definition at line 53 of file X86RegisterInfo.h.
Referenced by eliminateCallFramePseudoInstr(), emitEpilogue(), and emitPrologue().
This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.