LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Public Attributes | List of all members
llvm::X86RegisterInfo Class Reference

#include <X86RegisterInfo.h>

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

Public Member Functions

 X86RegisterInfo (X86TargetMachine &tm)
 
int getSEHRegNum (unsigned i) const
 
int getCompactUnwindRegNum (unsigned RegNum, bool isEH) const
 
virtual bool trackLivenessAfterRegAlloc (const MachineFunction &MF) const
 
virtual const TargetRegisterClassgetMatchingSuperRegClass (const TargetRegisterClass *A, const TargetRegisterClass *B, unsigned Idx) const
 
virtual const TargetRegisterClassgetSubClassWithSubReg (const TargetRegisterClass *RC, unsigned Idx) const
 
const TargetRegisterClassgetLargestLegalSuperClass (const TargetRegisterClass *RC) const
 
const TargetRegisterClassgetPointerRegClass (const MachineFunction &MF, unsigned Kind=0) const
 
const TargetRegisterClassgetCrossCopyRegClass (const TargetRegisterClass *RC) const
 
unsigned getRegPressureLimit (const TargetRegisterClass *RC, MachineFunction &MF) const
 
const uint16_t * getCalleeSavedRegs (const MachineFunction *MF=0) const
 
const uint32_t * getCallPreservedMask (CallingConv::ID) const
 
const uint32_t * getNoPreservedMask () const
 
BitVector getReservedRegs (const MachineFunction &MF) const
 
bool hasBasePointer (const MachineFunction &MF) const
 
bool canRealignStack (const MachineFunction &MF) const
 
bool needsStackRealignment (const MachineFunction &MF) const
 
bool hasReservedSpillSlot (const MachineFunction &MF, unsigned Reg, int &FrameIdx) const
 
void eliminateFrameIndex (MachineBasicBlock::iterator MI, int SPAdj, unsigned FIOperandNum, RegScavenger *RS=NULL) const
 
unsigned getFrameRegister (const MachineFunction &MF) const
 
unsigned getStackRegister () const
 
unsigned getBaseRegister () const
 
unsigned getSlotSize () const
 

Public Attributes

X86TargetMachineTM
 

Detailed Description

Definition at line 27 of file X86RegisterInfo.h.

Constructor & Destructor Documentation

X86RegisterInfo::X86RegisterInfo ( X86TargetMachine tm)

Member Function Documentation

bool X86RegisterInfo::canRealignStack ( const MachineFunction MF) const
void X86RegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  MI,
int  SPAdj,
unsigned  FIOperandNum,
RegScavenger RS = NULL 
) const
unsigned llvm::X86RegisterInfo::getBaseRegister ( ) const
inline
const uint16_t * X86RegisterInfo::getCalleeSavedRegs ( const MachineFunction MF = 0) const
const uint32_t * X86RegisterInfo::getCallPreservedMask ( CallingConv::ID  CC) const
int X86RegisterInfo::getCompactUnwindRegNum ( unsigned  RegNum,
bool  isEH 
) const

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

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

Definition at line 114 of file X86RegisterInfo.cpp.

bool X86RegisterInfo::hasBasePointer ( const MachineFunction MF) const
bool X86RegisterInfo::hasReservedSpillSlot ( const MachineFunction MF,
unsigned  Reg,
int &  FrameIdx 
) const
bool X86RegisterInfo::needsStackRealignment ( const MachineFunction MF) const
bool X86RegisterInfo::trackLivenessAfterRegAlloc ( const MachineFunction MF) const
virtual

Code Generation virtual methods...

Definition at line 103 of file X86RegisterInfo.cpp.

Member Data Documentation

X86TargetMachine& llvm::X86RegisterInfo::TM

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