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

#include <X86RegisterInfo.h>

Inheritance diagram for llvm::X86RegisterInfo:
[legend]
Collaboration diagram for llvm::X86RegisterInfo:
[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...
 
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 uint32_t * getCallPreservedMask (const MachineFunction &MF, CallingConv::ID) const override
 
const uint32_t * getNoPreservedMask () 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
 
bool needsStackRealignment (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 getSlotSize () const
 

Detailed Description

Definition at line 25 of file X86RegisterInfo.h.

Constructor & Destructor Documentation

X86RegisterInfo::X86RegisterInfo ( const Triple TT)

Member Function Documentation

void X86RegisterInfo::adjustStackMapLiveOutMask ( uint32_t *  Mask) const
override

Definition at line 422 of file X86RegisterInfo.cpp.

bool X86RegisterInfo::canRealignStack ( const MachineFunction MF) const
void X86RegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  MI,
int  SPAdj,
unsigned  FIOperandNum,
RegScavenger RS = nullptr 
) const
override
unsigned llvm::X86RegisterInfo::getBaseRegister ( ) const
inline
const MCPhysReg * X86RegisterInfo::getCalleeSavedRegs ( const MachineFunction MF) const
override
const uint32_t * X86RegisterInfo::getCallPreservedMask ( const MachineFunction MF,
CallingConv::ID  CC 
) const
override
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 192 of file X86RegisterInfo.cpp.

unsigned X86RegisterInfo::getFrameRegister ( const MachineFunction MF) const
override
const TargetRegisterClass * X86RegisterInfo::getLargestLegalSuperClass ( const TargetRegisterClass RC,
const MachineFunction MF 
) const
override
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 112 of file X86RegisterInfo.cpp.

const uint32_t * X86RegisterInfo::getNoPreservedMask ( ) const

Definition at line 340 of file X86RegisterInfo.cpp.

const TargetRegisterClass * X86RegisterInfo::getPointerRegClass ( const MachineFunction MF,
unsigned  Kind = 0 
) const
override
unsigned X86RegisterInfo::getPtrSizedFrameRegister ( const MachineFunction MF) const
unsigned X86RegisterInfo::getRegPressureLimit ( const TargetRegisterClass RC,
MachineFunction MF 
) const
override
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 344 of file X86RegisterInfo.cpp.

References llvm::MachineOperand::clobbersPhysReg(), getBaseRegister(), llvm::Function::getCallingConv(), getCallPreservedMask(), llvm::MachineFunction::getFunction(), llvm::MachineFunction::getSubtarget(), llvm::getX86SubSuperRegister(), llvm::X86Subtarget::hasAVX512(), hasBasePointer(), llvm::X86FrameLowering::hasFP(), I, llvm::MVT::i64, llvm::MCRegAliasIterator::isValid(), llvm::report_fatal_error(), llvm::Reserved, and llvm::BitVector::set().

int X86RegisterInfo::getSEHRegNum ( unsigned  i) const

Definition at line 95 of file X86RegisterInfo.cpp.

Referenced by llvm::X86AsmPrinter::EmitInstruction().

unsigned llvm::X86RegisterInfo::getSlotSize ( ) const
inline
unsigned llvm::X86RegisterInfo::getStackRegister ( ) const
inline
const TargetRegisterClass * X86RegisterInfo::getSubClassWithSubReg ( const TargetRegisterClass RC,
unsigned  Idx 
) const
override

Definition at line 100 of file X86RegisterInfo.cpp.

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

Definition at line 493 of file X86RegisterInfo.cpp.

References llvm_unreachable.

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

Code Generation virtual methods...

Definition at line 89 of file X86RegisterInfo.cpp.


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