LLVM API Documentation
#include <X86RegisterInfo.h>
Public Attributes | |
X86TargetMachine & | TM |
Definition at line 27 of file X86RegisterInfo.h.
X86RegisterInfo::X86RegisterInfo | ( | X86TargetMachine & | tm | ) |
Definition at line 57 of file X86RegisterInfo.cpp.
References llvm::N86::EBP, llvm::N86::ESI, llvm::N86::ESP, llvm::TargetMachine::getSubtarget(), llvm::X86_MC::InitLLVM2SEHRegisterMapping(), llvm::X86Subtarget::is64Bit(), llvm::X86Subtarget::isTargetWin64(), and TM.
bool X86RegisterInfo::canRealignStack | ( | const MachineFunction & | MF | ) | const |
Definition at line 420 of file X86RegisterInfo.cpp.
References llvm::MachineRegisterInfo::canReserveReg(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getRegInfo(), llvm::Function::hasFnAttribute(), llvm::MachineFrameInfo::hasVarSizedObjects(), and MRI.
Referenced by llvm::X86InstrInfo::loadRegFromStackSlot(), needsStackRealignment(), and llvm::X86InstrInfo::storeRegToStackSlot().
void X86RegisterInfo::eliminateFrameIndex | ( | MachineBasicBlock::iterator | MI, |
int | SPAdj, | ||
unsigned | FIOperandNum, | ||
RegScavenger * | RS = NULL |
||
) | const |
Definition at line 467 of file X86RegisterInfo.cpp.
References llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::ISD::FrameIndex, getBaseRegister(), llvm::TargetFrameLowering::getFrameIndexOffset(), llvm::MachineFunction::getFrameInfo(), llvm::TargetMachine::getFrameLowering(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineOperand::getOffset(), llvm::TargetFrameLowering::getOffsetOfLocalArea(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getTarget(), hasBasePointer(), llvm::TargetFrameLowering::hasFP(), llvm::MachineOperand::isImm(), llvm::isInt< 32 >(), llvm::A64CC::MI, needsStackRealignment(), and llvm::MachineOperand::setOffset().
|
inline |
Definition at line 126 of file X86RegisterInfo.h.
Referenced by eliminateFrameIndex(), llvm::X86FrameLowering::emitPrologue(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86FrameLowering::getFrameIndexReference(), getReservedRegs(), and llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan().
const uint16_t * 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 236 of file X86RegisterInfo.cpp.
References llvm::CallingConv::AnyReg, llvm::MachineModuleInfo::callsEHReturn(), llvm::CallingConv::Cold, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getMMI(), llvm::TargetMachine::getSubtarget(), llvm::CallingConv::GHC, llvm::CallingConv::HiPE, llvm::CallingConv::Intel_OCL_BI, TM, and llvm::CallingConv::WebKit_JS.
const uint32_t * X86RegisterInfo::getCallPreservedMask | ( | CallingConv::ID | CC | ) | const |
Definition at line 286 of file X86RegisterInfo.cpp.
References llvm::CallingConv::AnyReg, llvm::CallingConv::Cold, llvm::TargetMachine::getSubtarget(), llvm::CallingConv::GHC, llvm::CallingConv::HiPE, llvm::CallingConv::Intel_OCL_BI, TM, and llvm::CallingConv::WebKit_JS.
Referenced by getReservedRegs().
getCompactUnwindRegNum - This function maps the register to the number for compact unwind encoding. Return -1 if the register isn't valid.
Definition at line 89 of file X86RegisterInfo.cpp.
References llvm::N86::EBP, llvm::N86::EBX, llvm::N86::ECX, llvm::N86::EDI, llvm::N86::EDX, and llvm::N86::ESI.
const TargetRegisterClass * X86RegisterInfo::getCrossCopyRegClass | ( | const TargetRegisterClass * | RC | ) | const |
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 205 of file X86RegisterInfo.cpp.
unsigned X86RegisterInfo::getFrameRegister | ( | const MachineFunction & | MF | ) | const |
Definition at line 517 of file X86RegisterInfo.cpp.
References llvm::TargetMachine::getFrameLowering(), llvm::MachineFunction::getTarget(), and llvm::TargetFrameLowering::hasFP().
Referenced by llvm::X86FrameLowering::emitPrologue(), llvm::X86FrameLowering::getFrameIndexReference(), and LowerINTRINSIC_W_CHAIN().
const TargetRegisterClass * X86RegisterInfo::getLargestLegalSuperClass | ( | const TargetRegisterClass * | RC | ) | const |
Definition at line 139 of file X86RegisterInfo.cpp.
References llvm::TargetRegisterClass::getID(), llvm::TargetRegisterClass::getSize(), llvm::TargetRegisterClass::getSuperClasses(), and I.
|
virtual |
getMatchingSuperRegClass - Return a subclass of the specified register class A so that each register in it has a sub-register of the specified sub-register index which is in the specified register class B.
Definition at line 126 of file X86RegisterInfo.cpp.
const uint32_t * X86RegisterInfo::getNoPreservedMask | ( | ) | const |
Definition at line 316 of file X86RegisterInfo.cpp.
const TargetRegisterClass * X86RegisterInfo::getPointerRegClass | ( | const MachineFunction & | MF, |
unsigned | Kind = 0 |
||
) | const |
getPointerRegClass - Returns a TargetRegisterClass used for pointer values.
Definition at line 177 of file X86RegisterInfo.cpp.
References F(), llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), llvm::TargetMachine::getSubtarget(), llvm::CallingConv::HiPE, llvm::X86Subtarget::is64Bit(), llvm::X86Subtarget::isTarget64BitLP64(), llvm::X86Subtarget::isTargetWin64(), llvm_unreachable, and TM.
unsigned X86RegisterInfo::getRegPressureLimit | ( | const TargetRegisterClass * | RC, |
MachineFunction & | MF | ||
) | const |
Definition at line 216 of file X86RegisterInfo.cpp.
References llvm::TargetMachine::getFrameLowering(), llvm::TargetRegisterClass::getID(), llvm::TargetMachine::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::TargetFrameLowering::hasFP(), and TM.
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 320 of file X86RegisterInfo.cpp.
References llvm::MachineOperand::clobbersPhysReg(), llvm::X86II::FS, getBaseRegister(), llvm::Function::getCallingConv(), getCallPreservedMask(), llvm::TargetMachine::getFrameLowering(), llvm::MachineFunction::getFunction(), llvm::TargetMachine::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::X86II::GS, llvm::X86Subtarget::hasAVX512(), hasBasePointer(), llvm::TargetFrameLowering::hasFP(), I, llvm::MCRegAliasIterator::isValid(), llvm::report_fatal_error(), llvm::BitVector::set(), and TM.
int X86RegisterInfo::getSEHRegNum | ( | unsigned | i | ) | const |
Definition at line 109 of file X86RegisterInfo.cpp.
|
inline |
Definition at line 128 of file X86RegisterInfo.h.
Referenced by llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::X86FrameLowering::emitCalleeSavedFrameMoves(), llvm::X86FrameLowering::emitPrologue(), llvm::X86FrameLowering::getFrameIndexOffset(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), LowerINTRINSIC_W_CHAIN(), and llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan().
|
inline |
Definition at line 125 of file X86RegisterInfo.h.
Referenced by llvm::X86FrameLowering::eliminateCallFramePseudoInstr(), llvm::X86FrameLowering::emitPrologue(), llvm::X86FrameLowering::getFrameIndexReference(), and llvm::X86TargetLowering::resetOperationActions().
|
virtual |
Definition at line 114 of file X86RegisterInfo.cpp.
bool X86RegisterInfo::hasBasePointer | ( | const MachineFunction & | MF | ) | const |
Definition at line 400 of file X86RegisterInfo.cpp.
References EnableBasePointer, llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::hasMSInlineAsm(), llvm::MachineFrameInfo::hasVarSizedObjects(), and needsStackRealignment().
Referenced by eliminateFrameIndex(), llvm::X86FrameLowering::emitPrologue(), llvm::X86SelectionDAGInfo::EmitTargetCodeForMemcpy(), llvm::X86FrameLowering::getFrameIndexOffset(), llvm::X86FrameLowering::getFrameIndexReference(), getReservedRegs(), and llvm::X86FrameLowering::processFunctionBeforeCalleeSavedScan().
bool X86RegisterInfo::hasReservedSpillSlot | ( | const MachineFunction & | MF, |
unsigned | Reg, | ||
int & | FrameIdx | ||
) | const |
Definition at line 455 of file X86RegisterInfo.cpp.
References llvm::MachineFunction::getFrameInfo(), llvm::TargetMachine::getFrameLowering(), llvm::MachineFrameInfo::getObjectIndexBegin(), llvm::MachineFunction::getTarget(), and llvm::TargetFrameLowering::hasFP().
bool X86RegisterInfo::needsStackRealignment | ( | const MachineFunction & | MF | ) | const |
Definition at line 439 of file X86RegisterInfo.cpp.
References canRealignStack(), F(), ForceStackAlign, llvm::Function::getAttributes(), llvm::MachineFunction::getFrameInfo(), llvm::X86TargetMachine::getFrameLowering(), llvm::MachineFunction::getFunction(), llvm::MachineFrameInfo::getMaxAlignment(), llvm::TargetFrameLowering::getStackAlignment(), llvm::AttributeSet::hasAttribute(), llvm::Attribute::StackAlignment, and TM.
Referenced by eliminateFrameIndex(), llvm::X86FrameLowering::emitPrologue(), llvm::X86InstrInfo::foldMemoryOperandImpl(), llvm::X86FrameLowering::getFrameIndexOffset(), llvm::X86FrameLowering::getFrameIndexReference(), and hasBasePointer().
|
virtual |
Code Generation virtual methods...
Definition at line 103 of file X86RegisterInfo.cpp.
X86TargetMachine& llvm::X86RegisterInfo::TM |
Definition at line 29 of file X86RegisterInfo.h.
Referenced by getCalleeSavedRegs(), getCallPreservedMask(), getPointerRegClass(), getRegPressureLimit(), getReservedRegs(), needsStackRealignment(), and X86RegisterInfo().