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
virtual MachineInstrfoldMemoryOperand (MachineInstr *MI, unsigned OpNum, int FrameIndex) 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 45 of file X86RegisterInfo.cpp.


Member Function Documentation

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

Definition at line 100 of file X86RegisterInfo.cpp.

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

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

Definition at line 481 of file X86RegisterInfo.cpp.

References llvm::MachineInstrBuilder::addZImm(), 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 531 of file X86RegisterInfo.cpp.

References N86::EBP, N86::ESP, llvm::ISD::FrameIndex, llvm::MachineOperand::getFrameIndex(), llvm::MachineFunction::getFrameInfo(), llvm::MachineOperand::getImmedValue(), llvm::MachineInstr::getNumOperands(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineFrameInfo::getStackSize(), hasFP(), llvm::MachineOperand::isFrameIndex(), MF, MI, llvm::MachineOperand::MO_SignExtendedImmed, Offset, llvm::MachineInstr::SetMachineOperandConst(), and llvm::MachineInstr::SetMachineOperandReg().

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

Definition at line 626 of file X86RegisterInfo.cpp.

References llvm::MachineInstrBuilder::addReg(), llvm::MachineInstrBuilder::addZImm(), 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.

void X86RegisterInfo::emitPrologue ( MachineFunction MF  )  const

Definition at line 568 of file X86RegisterInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::addRegOffset(), Align, llvm::MachineBasicBlock::begin(), llvm::BuildMI(), N86::EBP, N86::ESP, llvm::MachineFunction::front(), llvm::TargetMachine::getFrameInfo(), llvm::MachineFunction::getFrameInfo(), llvm::MachineFrameInfo::getMaxCallFrameSize(), llvm::MachineFrameInfo::getObjectIndexBegin(), llvm::MachineFrameInfo::getObjectOffset(), llvm::TargetFrameInfo::getStackAlignment(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineFunction::getTarget(), llvm::MachineFrameInfo::hasCalls(), hasFP(), llvm::MachineBasicBlock::insert(), MBB, MF, MI, NumBytes, llvm::MachineFrameInfo::setStackSize(), and llvm::MachineOperand::UseAndDef.

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

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.

FIXME: This should obviously be autogenerated by tablegen when patterns are available!

Definition at line 178 of file X86RegisterInfo.cpp.

References llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getParent(), MakeM0Inst(), MakeMIInst(), MakeMInst(), MakeMRIInst(), MakeMRInst(), MakeRMIInst(), MakeRMInst(), MBB, MI, NoFusing, and PrintFailedFusing.

unsigned X86RegisterInfo::getFrameRegister ( MachineFunction MF  )  const

Definition at line 693 of file X86RegisterInfo.cpp.

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

unsigned X86RegisterInfo::getRARegister (  )  const

Definition at line 689 of file X86RegisterInfo.cpp.

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

Definition at line 74 of file X86RegisterInfo.cpp.

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

void X86RegisterInfo::processFunctionBeforeFrameFinalized ( MachineFunction MF  )  const

Definition at line 559 of file X86RegisterInfo.cpp.

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

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

Code Generation virtual methods...

Definition at line 48 of file X86RegisterInfo.cpp.

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


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