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 (const PPCSubtarget &SubTarget)
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
const unsigned * getCalleeSaveRegs () const
const TargetRegisterClass
*const * 
getCalleeSaveRegClasses () 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

Static Public Member Functions

static unsigned getRegisterNumbering (unsigned RegEnum)

Detailed Description

Definition at line 25 of file PPCRegisterInfo.h.


Constructor & Destructor Documentation

PPCRegisterInfo::PPCRegisterInfo ( const PPCSubtarget SubTarget  ) 

Definition at line 83 of file PPCRegisterInfo.cpp.


Member Function Documentation

unsigned PPCRegisterInfo::getRegisterNumbering ( unsigned  RegEnum  )  [static]

getRegisterNumbering - Given the enum value for some register, e.g. PPC::F14, return the number that it corresponds to (e.g. 14).

Definition at line 42 of file PPCRegisterInfo.cpp.

Referenced by HandleVRSaveUpdate(), loadRegFromStackSlot(), and storeRegToStackSlot().

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

Code Generation virtual methods...

Definition at line 97 of file PPCRegisterInfo.cpp.

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

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

Definition at line 147 of file PPCRegisterInfo.cpp.

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

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

Definition at line 190 of file PPCRegisterInfo.cpp.

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

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 314 of file PPCRegisterInfo.cpp.

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

const unsigned * PPCRegisterInfo::getCalleeSaveRegs (  )  const

Definition at line 212 of file PPCRegisterInfo.cpp.

References llvm::PPCSubtarget::isPPC64().

const TargetRegisterClass *const * PPCRegisterInfo::getCalleeSaveRegClasses (  )  const

Definition at line 261 of file PPCRegisterInfo.cpp.

References llvm::PPCSubtarget::isPPC64().

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

Definition at line 382 of file PPCRegisterInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), 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 410 of file PPCRegisterInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), llvm::BuildMI(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), FrameIndex, llvm::MachineOperand::getFrameIndex(), llvm::MachineOperand::getImmedValue(), llvm::MachineInstr::getNumOperands(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineBasicBlock::getParent(), llvm::MachineInstr::getParent(), llvm::MachineOperand::getReg(), hasFP(), llvm::MachineOperand::isFrameIndex(), MBB, MF, MI, Offset, second, llvm::MachineInstr::setOpcode(), and llvm::PPCISD::STD_32.

void PPCRegisterInfo::emitPrologue ( MachineFunction MF  )  const

Definition at line 587 of file PPCRegisterInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::MachineInstrBuilder::addReg(), 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, OR, llvm::MachineFrameInfo::setStackSize(), Src, and llvm::MachineLocation::VirtualFP.

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

Definition at line 687 of file PPCRegisterInfo.cpp.

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

unsigned PPCRegisterInfo::getRARegister (  )  const

Definition at line 720 of file PPCRegisterInfo.cpp.

unsigned PPCRegisterInfo::getFrameRegister ( MachineFunction MF  )  const

Definition at line 724 of file PPCRegisterInfo.cpp.

References hasFP(), and MF.

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

Definition at line 728 of file PPCRegisterInfo.cpp.

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


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