LLVM API Documentation

llvm::PPCRegisterInfo Class Reference

#include <PPCRegisterInfo.h>

Inheritance diagram for llvm::PPCRegisterInfo:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 PPCRegisterInfo ()
void storeRegToStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, unsigned SrcReg, int FrameIndex, const TargetRegisterClass *RC) const
 Code Generation virtual methods...
void loadRegFromStackSlot (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, unsigned DestReg, int FrameIndex, const TargetRegisterClass *RC) const
void copyRegToReg (MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, 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 I) const
void eliminateFrameIndex (MachineBasicBlock::iterator II) const
void emitPrologue (MachineFunction &MF) const
void emitEpilogue (MachineFunction &MF, MachineBasicBlock &MBB) const
unsigned getRARegister () const
unsigned getFrameRegister (MachineFunction &MF) const
void getInitialFrameState (std::vector< MachineMove * > &Moves) const

Detailed Description

Definition at line 25 of file PPCRegisterInfo.h.


Constructor & Destructor Documentation

PPCRegisterInfo::PPCRegisterInfo (  ) 

Definition at line 38 of file PPCRegisterInfo.cpp.


Member Function Documentation

void PPCRegisterInfo::copyRegToReg ( MachineBasicBlock MBB,
MachineBasicBlock::iterator  MBBI,
unsigned  DestReg,
unsigned  SrcReg,
const TargetRegisterClass RC 
) const

Definition at line 120 of file PPCRegisterInfo.cpp.

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

void PPCRegisterInfo::eliminateCallFramePseudoInstr ( MachineFunction MF,
MachineBasicBlock MBB,
MachineBasicBlock::iterator  I 
) const

Definition at line 212 of file PPCRegisterInfo.cpp.

References llvm::MachineInstrBuilder::addReg(), llvm::MachineInstrBuilder::addSImm(), Align, llvm::BuildMI(), llvm::MachineBasicBlock::erase(), llvm::TargetMachine::getFrameInfo(), llvm::MachineOperand::getImmedValue(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::TargetFrameInfo::getStackAlignment(), llvm::MachineFunction::getTarget(), hasFP(), MBB, and MF.

void PPCRegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  II  )  const

Definition at line 240 of file PPCRegisterInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::MachineInstrBuilder::addSImm(), llvm::BuildMI(), llvm::ISD::FrameIndex, llvm::MachineOperand::getFrameIndex(), llvm::MachineFunction::getFrameInfo(), llvm::MachineOperand::getImmedValue(), llvm::MachineInstr::getNumOperands(), llvm::MachineFrameInfo::getObjectOffset(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFrameInfo::getStackSize(), hasFP(), llvm::MachineOperand::isFrameIndex(), MBB, MF, MI, llvm::MachineOperand::MO_SignExtendedImmed, Offset, second, llvm::MachineInstr::SetMachineOperandConst(), llvm::MachineInstr::SetMachineOperandReg(), llvm::MachineInstr::setOpcode(), and llvm::PPCISD::STD_32.

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

Definition at line 438 of file PPCRegisterInfo.cpp.

References llvm::MachineInstrBuilder::addReg(), llvm::MachineInstrBuilder::addSImm(), llvm::BuildMI(), llvm::MachineBasicBlock::end(), llvm::TargetMachine::getFrameInfo(), llvm::MachineFunction::getFrameInfo(), llvm::TargetFrameInfo::getStackAlignment(), llvm::MachineFunction::getTarget(), hasFP(), MBB, MF, NumBytes, and llvm::prior().

void PPCRegisterInfo::emitPrologue ( MachineFunction MF  )  const

Definition at line 338 of file PPCRegisterInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::MachineInstrBuilder::addSImm(), Align, llvm::MachineBasicBlock::begin(), llvm::BuildMI(), llvm::MachineBasicBlock::end(), llvm::MachineFunction::front(), llvm::TargetMachine::getFrameInfo(), llvm::MachineFunction::getFrameInfo(), llvm::MachineDebugInfo::getFrameMoves(), llvm::MachineFrameInfo::getMachineDebugInfo(), llvm::MachineFrameInfo::getMaxAlignment(), llvm::MachineFrameInfo::getMaxCallFrameSize(), llvm::TargetFrameInfo::getStackAlignment(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineFunction::getTarget(), llvm::MachineFunction::getUsedPhysregs(), HandleVRSaveUpdate(), llvm::MachineFrameInfo::hasCalls(), hasFP(), llvm::MachineDebugInfo::hasInfo(), llvm::isInt16(), llvm::isPowerOf2_32(), llvm::Log2_32(), MBB, MF, llvm::MachineDebugInfo::NextLabelID(), NumBytes, llvm::MachineFrameInfo::setStackSize(), Src, and llvm::MachineLocation::VirtualFP.

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

foldMemoryOperand - PowerPC (like most RISC's) can only fold spills into copy instructions, turning them into load/store instructions.

Definition at line 144 of file PPCRegisterInfo.cpp.

References llvm::addFrameReference(), llvm::BuildMI(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineOperand::getReg(), and MI.

unsigned PPCRegisterInfo::getFrameRegister ( MachineFunction MF  )  const

Definition at line 475 of file PPCRegisterInfo.cpp.

References hasFP(), and MF.

void PPCRegisterInfo::getInitialFrameState ( std::vector< MachineMove * > &  Moves  )  const

Definition at line 479 of file PPCRegisterInfo.cpp.

References Src, and llvm::MachineLocation::VirtualFP.

unsigned PPCRegisterInfo::getRARegister (  )  const

Definition at line 471 of file PPCRegisterInfo.cpp.

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

Definition at line 88 of file PPCRegisterInfo.cpp.

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

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

Code Generation virtual methods...

Definition at line 51 of file PPCRegisterInfo.cpp.

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


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