LLVM  8.0.1
Public Member Functions | List of all members
llvm::X86RegisterInfo Class Referencefinal

#include "Target/X86/X86RegisterInfo.h"

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

Public Member Functions

 X86RegisterInfo (const Triple &TT)
 
int getSEHRegNum (unsigned i) const
 
bool trackLivenessAfterRegAlloc (const MachineFunction &MF) const override
 Code Generation virtual methods... More...
 
const TargetRegisterClassgetMatchingSuperRegClass (const TargetRegisterClass *A, const TargetRegisterClass *B, unsigned Idx) const 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. More...
 
const TargetRegisterClassgetSubClassWithSubReg (const TargetRegisterClass *RC, unsigned Idx) const override
 
const TargetRegisterClassgetLargestLegalSuperClass (const TargetRegisterClass *RC, const MachineFunction &MF) const override
 
const TargetRegisterClassgetPointerRegClass (const MachineFunction &MF, unsigned Kind=0) const override
 getPointerRegClass - Returns a TargetRegisterClass used for pointer values. More...
 
const TargetRegisterClassgetCrossCopyRegClass (const TargetRegisterClass *RC) const override
 getCrossCopyRegClass - Returns a legal register class to copy a register in the specified class to or from. More...
 
const TargetRegisterClassgetGPRsForTailCall (const MachineFunction &MF) const
 getGPRsForTailCall - Returns a register class with registers that can be used in forming tail calls. More...
 
unsigned getRegPressureLimit (const TargetRegisterClass *RC, MachineFunction &MF) const override
 
const MCPhysReggetCalleeSavedRegs (const MachineFunction *MF) const override
 getCalleeSavedRegs - Return a null-terminated list of all of the callee-save registers on this target. More...
 
const MCPhysReggetCalleeSavedRegsViaCopy (const MachineFunction *MF) const
 
const uint32_tgetCallPreservedMask (const MachineFunction &MF, CallingConv::ID) const override
 
const uint32_tgetNoPreservedMask () const override
 
const uint32_tgetDarwinTLSCallPreservedMask () const
 
BitVector getReservedRegs (const MachineFunction &MF) const 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. More...
 
void adjustStackMapLiveOutMask (uint32_t *Mask) const override
 
bool hasBasePointer (const MachineFunction &MF) const
 
bool canRealignStack (const MachineFunction &MF) const override
 
bool hasReservedSpillSlot (const MachineFunction &MF, unsigned Reg, int &FrameIdx) const override
 
void eliminateFrameIndex (MachineBasicBlock::iterator MI, int SPAdj, unsigned FIOperandNum, RegScavenger *RS=nullptr) const override
 
unsigned getFrameRegister (const MachineFunction &MF) const override
 
unsigned getPtrSizedFrameRegister (const MachineFunction &MF) const
 
unsigned getStackRegister () const
 
unsigned getBaseRegister () const
 
unsigned getFramePtr () const
 Returns physical register used as frame pointer. More...
 
unsigned getSlotSize () const
 

Detailed Description

Definition at line 25 of file X86RegisterInfo.h.

Constructor & Destructor Documentation

◆ X86RegisterInfo()

X86RegisterInfo::X86RegisterInfo ( const Triple TT)

Member Function Documentation

◆ adjustStackMapLiveOutMask()

void X86RegisterInfo::adjustStackMapLiveOutMask ( uint32_t Mask) const
override

Definition at line 586 of file X86RegisterInfo.cpp.

References assert(), and Reg.

◆ canRealignStack()

bool X86RegisterInfo::canRealignStack ( const MachineFunction MF) const
override

◆ eliminateFrameIndex()

void X86RegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  MI,
int  SPAdj,
unsigned  FIOperandNum,
RegScavenger RS = nullptr 
) const
override

◆ getBaseRegister()

unsigned llvm::X86RegisterInfo::getBaseRegister ( ) const
inline

◆ getCalleeSavedRegs()

const MCPhysReg * X86RegisterInfo::getCalleeSavedRegs ( const MachineFunction MF) const
override

◆ getCalleeSavedRegsViaCopy()

const MCPhysReg * X86RegisterInfo::getCalleeSavedRegsViaCopy ( const MachineFunction MF) const

◆ getCallPreservedMask()

const uint32_t * X86RegisterInfo::getCallPreservedMask ( const MachineFunction MF,
CallingConv::ID  CC 
) const
override

◆ getCrossCopyRegClass()

const TargetRegisterClass * X86RegisterInfo::getCrossCopyRegClass ( const TargetRegisterClass RC) const
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.

◆ getDarwinTLSCallPreservedMask()

const uint32_t * X86RegisterInfo::getDarwinTLSCallPreservedMask ( ) const

Definition at line 492 of file X86RegisterInfo.cpp.

Referenced by createPHIsForCMOVsInSinkBB().

◆ getFramePtr()

unsigned llvm::X86RegisterInfo::getFramePtr ( ) const
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().

◆ getFrameRegister()

unsigned X86RegisterInfo::getFrameRegister ( const MachineFunction MF) const
override

◆ getGPRsForTailCall()

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().

◆ getLargestLegalSuperClass()

const TargetRegisterClass * X86RegisterInfo::getLargestLegalSuperClass ( const TargetRegisterClass RC,
const MachineFunction MF 
) const
override

◆ getMatchingSuperRegClass()

const TargetRegisterClass * X86RegisterInfo::getMatchingSuperRegClass ( const TargetRegisterClass A,
const TargetRegisterClass B,
unsigned  Idx 
) const
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.

◆ getNoPreservedMask()

const uint32_t * X86RegisterInfo::getNoPreservedMask ( ) const
override

Definition at line 488 of file X86RegisterInfo.cpp.

Referenced by getMOVL(), and getRetpolineSymbol().

◆ getPointerRegClass()

const TargetRegisterClass * X86RegisterInfo::getPointerRegClass ( const MachineFunction MF,
unsigned  Kind = 0 
) const
override

◆ getPtrSizedFrameRegister()

unsigned X86RegisterInfo::getPtrSizedFrameRegister ( const MachineFunction MF) const

◆ getRegPressureLimit()

unsigned X86RegisterInfo::getRegPressureLimit ( const TargetRegisterClass RC,
MachineFunction MF 
) const
override

◆ getReservedRegs()

BitVector X86RegisterInfo::getReservedRegs ( const MachineFunction MF) const
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().

◆ getSEHRegNum()

int X86RegisterInfo::getSEHRegNum ( unsigned  i) const

Definition at line 83 of file X86RegisterInfo.cpp.

Referenced by printConstant().

◆ getSlotSize()

unsigned llvm::X86RegisterInfo::getSlotSize ( ) const
inline

◆ getStackRegister()

unsigned llvm::X86RegisterInfo::getStackRegister ( ) const
inline

◆ getSubClassWithSubReg()

const TargetRegisterClass * X86RegisterInfo::getSubClassWithSubReg ( const TargetRegisterClass RC,
unsigned  Idx 
) const
override

Definition at line 88 of file X86RegisterInfo.cpp.

◆ hasBasePointer()

bool X86RegisterInfo::hasBasePointer ( const MachineFunction MF) const

◆ hasReservedSpillSlot()

bool X86RegisterInfo::hasReservedSpillSlot ( const MachineFunction MF,
unsigned  Reg,
int &  FrameIdx 
) const
override

Definition at line 644 of file X86RegisterInfo.cpp.

References llvm_unreachable.

◆ trackLivenessAfterRegAlloc()

bool X86RegisterInfo::trackLivenessAfterRegAlloc ( const MachineFunction MF) const
override

Code Generation virtual methods...

Definition at line 77 of file X86RegisterInfo.cpp.


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