LLVM API Documentation

llvm::X86RegisterInfo Struct Reference

#include <X86RegisterInfo.h>

Inheritance diagram for llvm::X86RegisterInfo:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 X86RegisterInfo ()
void storeRegToStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, unsigned SrcReg, int FrameIndex, const TargetRegisterClass *RC) const
 Code Generation virtual methods...
void loadRegFromStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, unsigned DestReg, int FrameIndex, const TargetRegisterClass *RC) const
void copyRegToReg (MachineBasicBlock &MBB, MachineBasicBlock::iterator MI, unsigned DestReg, unsigned SrcReg, const TargetRegisterClass *RC) const
MachineInstrfoldMemoryOperand (MachineInstr *MI, unsigned OpNum, int FrameIndex) const
const unsigned * getCalleeSaveRegs () const
const TargetRegisterClass
*const * 
getCalleeSaveRegClasses () const
void eliminateCallFramePseudoInstr (MachineFunction &MF, MachineBasicBlock &MBB, MachineBasicBlock::iterator MI) const
void eliminateFrameIndex (MachineBasicBlock::iterator MI) const
void processFunctionBeforeFrameFinalized (MachineFunction &MF) const
void emitPrologue (MachineFunction &MF) const
void emitEpilogue (MachineFunction &MF, MachineBasicBlock &MBB) const
unsigned getRARegister () const
unsigned getFrameRegister (MachineFunction &MF) const

Detailed Description

Definition at line 25 of file X86RegisterInfo.h.


Constructor & Destructor Documentation

X86RegisterInfo::X86RegisterInfo (  ) 

Definition at line 49 of file X86RegisterInfo.cpp.


Member Function Documentation

void X86RegisterInfo::storeRegToStackSlot ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MI,
unsigned  SrcReg,
int  FrameIndex,
const TargetRegisterClass RC 
) const

Code Generation virtual methods...

Definition at line 52 of file X86RegisterInfo.cpp.

References llvm::addFrameReference(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), MBB, and RC.

void X86RegisterInfo::loadRegFromStackSlot ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MI,
unsigned  DestReg,
int  FrameIndex,
const TargetRegisterClass RC 
) const

Definition at line 82 of file X86RegisterInfo.cpp.

References llvm::addFrameReference(), llvm::BuildMI(), MBB, and RC.

void X86RegisterInfo::copyRegToReg ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MI,
unsigned  DestReg,
unsigned  SrcReg,
const TargetRegisterClass RC 
) const

Definition at line 112 of file X86RegisterInfo.cpp.

References llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), MBB, and RC.

MachineInstr * X86RegisterInfo::foldMemoryOperand ( MachineInstr MI,
unsigned  OpNum,
int  FrameIndex 
) const

foldMemoryOperand - If this target supports it, fold a load or store of the specified stack slot into the specified machine instruction for the specified operand. If this is possible, the target should perform the folding and return true, otherwise it should return false. If it folds the instruction, it is likely that the MachineInstruction the iterator references has been changed.

Definition at line 260 of file X86RegisterInfo.cpp.

References ARRAY_SIZE, ASSERT_SORTED, llvm::MachineInstr::getOpcode(), MakeM0Inst(), MakeMIInst(), MakeMInst(), MakeMRIInst(), MakeMRInst(), MakeRMIInst(), MakeRMInst(), MI, NoFusing, OpcodeTable, PrintFailedFusing, and TableLookup().

const unsigned * X86RegisterInfo::getCalleeSaveRegs (  )  const

getCalleeSaveRegs - Return a null-terminated list of all of the callee-save registers on this target.

Definition at line 716 of file X86RegisterInfo.cpp.

References N86::EBP, N86::EBX, N86::EDI, and N86::ESI.

const TargetRegisterClass *const * X86RegisterInfo::getCalleeSaveRegClasses (  )  const

getCalleeSaveRegClasses - Return a null-terminated list of the preferred register classes to spill each callee-saved register with. The order and length of this list match the getCalleeSaveRegs() list.

Definition at line 724 of file X86RegisterInfo.cpp.

void X86RegisterInfo::eliminateCallFramePseudoInstr ( MachineFunction MF,
MachineBasicBlock MBB,
MachineBasicBlock::iterator  MI 
) const

Definition at line 747 of file X86RegisterInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), Align, llvm::BuildMI(), llvm::MachineBasicBlock::erase(), N86::ESP, llvm::TargetMachine::getFrameInfo(), llvm::MachineOperand::getImmedValue(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::TargetFrameInfo::getStackAlignment(), llvm::MachineFunction::getTarget(), hasFP(), llvm::MachineBasicBlock::insert(), MBB, MF, and llvm::MachineOperand::UseAndDef.

void X86RegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  MI  )  const

Definition at line 797 of file X86RegisterInfo.cpp.

References llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), N86::EBP, N86::ESP, FrameIndex, llvm::MachineOperand::getFrameIndex(), llvm::MachineOperand::getImmedValue(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), hasFP(), llvm::MachineOperand::isFrameIndex(), MF, MI, and Offset.

void X86RegisterInfo::processFunctionBeforeFrameFinalized ( MachineFunction MF  )  const

Definition at line 825 of file X86RegisterInfo.cpp.

References llvm::MachineFrameInfo::CreateFixedObject(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getObjectIndexBegin(), hasFP(), and MF.

void X86RegisterInfo::emitPrologue ( MachineFunction MF  )  const

Definition at line 834 of file X86RegisterInfo.cpp.

References llvm::MachineInstrBuilder::addExternalSymbol(), llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::addRegOffset(), Align, llvm::MachineBasicBlock::begin(), llvm::BuildMI(), N86::EAX, N86::EBP, N86::ESP, llvm::MachineFunction::front(), llvm::TargetMachine::getFrameInfo(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFunction::getFunction(), llvm::MachineFrameInfo::getMaxCallFrameSize(), llvm::Value::getName(), llvm::MachineFrameInfo::getObjectIndexBegin(), llvm::MachineFrameInfo::getObjectOffset(), llvm::TargetFrameInfo::getStackAlignment(), llvm::MachineFrameInfo::getStackSize(), llvm::TargetMachine::getSubtarget(), llvm::MachineFunction::getTarget(), llvm::MachineFrameInfo::hasCalls(), llvm::GlobalValue::hasExternalLinkage(), hasFP(), llvm::MachineFrameInfo::hasVarSizedObjects(), llvm::MachineBasicBlock::insert(), llvm::X86Subtarget::isCygwin, MBB, MF, MI, NumBytes, llvm::MachineFrameInfo::setStackSize(), Subtarget, and llvm::MachineOperand::UseAndDef.

void X86RegisterInfo::emitEpilogue ( MachineFunction MF,
MachineBasicBlock MBB 
) const

Definition at line 911 of file X86RegisterInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::MachineBasicBlock::begin(), llvm::BuildMI(), N86::EBP, llvm::MachineBasicBlock::end(), llvm::MachineBasicBlock::erase(), N86::ESP, llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getObjectIndexEnd(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineFrameInfo::getStackSize(), hasFP(), MBB, MF, NumBytes, PI, llvm::prior(), RET, and llvm::MachineOperand::UseAndDef.

unsigned X86RegisterInfo::getRARegister (  )  const

Definition at line 974 of file X86RegisterInfo.cpp.

unsigned X86RegisterInfo::getFrameRegister ( MachineFunction MF  )  const

Definition at line 978 of file X86RegisterInfo.cpp.

References N86::EBP, N86::ESP, hasFP(), and MF.


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