LLVM
8.0.1
|
#include "Target/X86/X86RegisterInfo.h"
Definition at line 25 of file X86RegisterInfo.h.
Definition at line 45 of file X86RegisterInfo.cpp.
References llvm::N86::EBX, llvm::N86::ESI, llvm::N86::ESP, llvm::Triple::getEnvironment(), llvm::Triple::GNUX32, llvm::X86_MC::initLLVMToSEHAndCVRegMapping(), llvm::Triple::isArch64Bit(), and llvm::Triple::isOSWindows().
|
override |
Definition at line 586 of file X86RegisterInfo.cpp.
|
override |
Definition at line 625 of file X86RegisterInfo.cpp.
References llvm::TargetRegisterInfo::canRealignStack(), llvm::MachineRegisterInfo::canReserveReg(), CantUseSP(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getRegInfo(), and MRI.
|
override |
Definition at line 681 of file X86RegisterInfo.cpp.
References assert(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), contains(), llvm::ISD::FrameIndex, llvm::X86FrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReferenceSP(), llvm::MachineFunction::getFrameInfo(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineOperand::getOffset(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::getX86SubSuperRegister(), llvm::MachineFrameInfo::isFixedObjectIndex(), llvm::MachineOperand::isImm(), llvm::isInt< 32 >(), llvm::MachineInstr::isReturn(), MI, llvm::MachineOperand::setOffset(), and tryOptimizeLEAtoMOV().
|
inline |
Definition at line 135 of file X86RegisterInfo.h.
Referenced by llvm::X86FrameLowering::determineCalleeSaves(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::X86FrameLowering::emitPrologue(), llvm::X86FrameLowering::getFrameIndexReference(), getReservedRegs(), getRetpolineSymbol(), recoverFramePointer(), llvm::X86TargetLowering::ReplaceNodeResults(), and llvm::X86FrameLowering::restoreWin32EHStackPointers().
|
override |
getCalleeSavedRegs - Return a null-terminated list of all of the callee-save registers on this target.
Definition at line 265 of file X86RegisterInfo.cpp.
References llvm::CallingConv::AnyReg, assert(), llvm::MachineFunction::callsEHReturn(), llvm::CallingConv::Cold, llvm::CallingConv::CXX_FAST_TLS, F(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getInfo(), llvm::MachineFunction::getSubtarget(), llvm::X86Subtarget::getTargetLowering(), llvm::CallingConv::GHC, llvm::X86Subtarget::hasAVX(), llvm::X86Subtarget::hasAVX512(), llvm::Function::hasFnAttribute(), llvm::X86Subtarget::hasSSE1(), llvm::CallingConv::HHVM, llvm::CallingConv::HiPE, llvm::CallingConv::Intel_OCL_BI, llvm::CallingConv::PreserveAll, llvm::CallingConv::PreserveMost, llvm::X86TargetLowering::supportSwiftError(), llvm::Attribute::SwiftError, llvm::CallingConv::Win64, llvm::CallingConv::X86_64_SysV, llvm::CallingConv::X86_INTR, and llvm::CallingConv::X86_RegCall.
const MCPhysReg * X86RegisterInfo::getCalleeSavedRegsViaCopy | ( | const MachineFunction * | MF | ) | const |
Definition at line 380 of file X86RegisterInfo.cpp.
References assert(), llvm::CallingConv::CXX_FAST_TLS, llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), and llvm::MachineFunction::getInfo().
Referenced by llvm::X86TargetLowering::isIntDivCheap(), and Passv64i1ArgInRegs().
|
override |
Definition at line 390 of file X86RegisterInfo.cpp.
References llvm::CallingConv::AnyReg, llvm::CallingConv::Cold, llvm::CallingConv::CXX_FAST_TLS, F(), llvm::Function::getAttributes(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::X86Subtarget::getTargetLowering(), llvm::CallingConv::GHC, llvm::AttributeList::hasAttrSomewhere(), llvm::X86Subtarget::hasAVX(), llvm::X86Subtarget::hasAVX512(), llvm::X86Subtarget::hasSSE1(), llvm::CallingConv::HHVM, llvm::CallingConv::HiPE, llvm::CallingConv::Intel_OCL_BI, llvm::CallingConv::PreserveAll, llvm::CallingConv::PreserveMost, llvm::X86TargetLowering::supportSwiftError(), llvm::Attribute::SwiftError, llvm::CallingConv::Win64, llvm::CallingConv::X86_64_SysV, llvm::CallingConv::X86_INTR, and llvm::CallingConv::X86_RegCall.
Referenced by createPHIsForCMOVsInSinkBB(), getMOVL(), getReservedRegs(), and MatchingStackOffset().
|
override |
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 234 of file X86RegisterInfo.cpp.
Definition at line 492 of file X86RegisterInfo.cpp.
Referenced by createPHIsForCMOVsInSinkBB().
|
inline |
Returns physical register used as frame pointer.
This will always returns the frame pointer register, contrary to getFrameRegister() which returns the "base pointer" in situations involving a stack, frame and base pointer.
Definition at line 140 of file X86RegisterInfo.h.
Referenced by llvm::X86FrameLowering::getFrameIndexReference().
|
override |
Definition at line 753 of file X86RegisterInfo.cpp.
References llvm::X86FrameLowering::hasFP().
Referenced by llvm::X86FrameLowering::emitEpilogue(), llvm::X86FrameLowering::emitPrologue(), llvm::X86FrameLowering::getFrameIndexReference(), getPtrSizedFrameRegister(), getRetpolineSymbol(), llvm::X86TargetLowering::needsFixedCatchObjects(), and llvm::X86FrameLowering::restoreWin32EHStackPointers().
const TargetRegisterClass * X86RegisterInfo::getGPRsForTailCall | ( | const MachineFunction & | MF | ) | const |
getGPRsForTailCall - Returns a register class with registers that can be used in forming tail calls.
Definition at line 220 of file X86RegisterInfo.cpp.
References F(), llvm::Function::getCallingConv(), llvm::MachineFunction::getFunction(), llvm::CallingConv::HiPE, and llvm::CallingConv::Win64.
Referenced by findDeadCallerSavedReg(), and getPointerRegClass().
|
override |
Definition at line 113 of file X86RegisterInfo.cpp.
References llvm::MachineFunction::getSubtarget(), llvm::TargetRegisterClass::getSuperClasses(), llvm::X86Subtarget::hasAVX512(), llvm::X86Subtarget::hasVLX(), and I.
|
override |
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 100 of file X86RegisterInfo.cpp.
Definition at line 488 of file X86RegisterInfo.cpp.
Referenced by getMOVL(), and getRetpolineSymbol().
|
override |
getPointerRegClass - Returns a TargetRegisterClass used for pointer values.
Definition at line 179 of file X86RegisterInfo.cpp.
References getGPRsForTailCall(), llvm::MachineFunction::getSubtarget(), llvm::X86FrameLowering::hasFP(), llvm::X86Subtarget::isTarget64BitLP64(), llvm_unreachable, and llvm::X86FrameLowering::Uses64BitFramePtr.
unsigned X86RegisterInfo::getPtrSizedFrameRegister | ( | const MachineFunction & | MF | ) | const |
Definition at line 759 of file X86RegisterInfo.cpp.
References getFrameRegister(), llvm::MachineFunction::getSubtarget(), llvm::getX86SubSuperRegister(), and llvm::X86Subtarget::isTarget64BitILP32().
Referenced by llvm::X86TargetLowering::getRegisterByName(), recoverFramePointer(), and X86ChooseCmpImmediateOpcode().
|
override |
Definition at line 245 of file X86RegisterInfo.cpp.
References llvm::TargetRegisterClass::getID(), and llvm::X86FrameLowering::hasFP().
|
override |
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 496 of file X86RegisterInfo.cpp.
References assert(), llvm::MachineOperand::clobbersPhysReg(), llvm::SIInstrFlags::DS, getBaseRegister(), llvm::Function::getCallingConv(), getCallPreservedMask(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::getX86SubSuperRegister(), llvm::X86Subtarget::hasAVX512(), hasBasePointer(), llvm::X86FrameLowering::hasFP(), I, llvm::MCRegAliasIterator::isValid(), llvm::report_fatal_error(), and llvm::BitVector::set().
int X86RegisterInfo::getSEHRegNum | ( | unsigned | i | ) | const |
Definition at line 83 of file X86RegisterInfo.cpp.
Referenced by printConstant().
|
inline |
Definition at line 142 of file X86RegisterInfo.h.
Referenced by llvm::X86AsmPrinter::EmitInstruction(), llvm::X86FrameLowering::getInitialCFAOffset(), getMOVL(), llvm::X86TargetLowering::getRegisterByName(), llvm::X86TargetLowering::getReturnAddressFrameIndex(), INITIALIZE_PASS(), LowerINTRINSIC_W_CHAIN(), llvm::X86MachineFunctionInfo::setRestoreBasePointer(), and llvm::X86FrameLowering::X86FrameLowering().
|
inline |
Definition at line 134 of file X86RegisterInfo.h.
Referenced by computeBytesPoppedByCalleeForSRet(), llvm::X86FrameLowering::getFrameIndexReference(), llvm::X86FrameLowering::getFrameIndexReferenceSP(), getMOVL(), getRetpolineSymbol(), INITIALIZE_PASS(), isFuncletReturnInstr(), llvm::X86FrameLowering::X86FrameLowering(), and llvm::X86TargetLowering::X86TargetLowering().
|
override |
Definition at line 88 of file X86RegisterInfo.cpp.
bool X86RegisterInfo::hasBasePointer | ( | const MachineFunction & | MF | ) | const |
Definition at line 610 of file X86RegisterInfo.cpp.
References CantUseSP(), EnableBasePointer, and llvm::MachineFunction::getFrameInfo().
Referenced by llvm::X86FrameLowering::canSimplifyCallFramePseudos(), llvm::X86FrameLowering::determineCalleeSaves(), llvm::X86TargetLowering::EmitInstrWithCustomInserter(), llvm::X86FrameLowering::getFrameIndexReference(), getReservedRegs(), getRetpolineSymbol(), recoverFramePointer(), and llvm::X86TargetLowering::ReplaceNodeResults().
|
override |
Definition at line 644 of file X86RegisterInfo.cpp.
References llvm_unreachable.
|
override |
Code Generation virtual methods...
Definition at line 77 of file X86RegisterInfo.cpp.