LLVM API Documentation

Public Member Functions
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)
const TargetRegisterClassgetPointerRegClass (const MachineFunction &MF, unsigned Kind=0) const override
unsigned getRegPressureLimit (const TargetRegisterClass *RC, MachineFunction &MF) const override
const TargetRegisterClassgetLargestLegalSuperClass (const TargetRegisterClass *RC) const override
const MCPhysReggetCalleeSavedRegs (const MachineFunction *MF=nullptr) const override
 Code Generation virtual methods...
const uint32_t * getCallPreservedMask (CallingConv::ID CC) const override
const uint32_t * getNoPreservedMask () const
BitVector getReservedRegs (const MachineFunction &MF) const override
bool requiresRegisterScavenging (const MachineFunction &MF) const override
 We require the register scavenger.
bool requiresFrameIndexScavenging (const MachineFunction &MF) const override
bool trackLivenessAfterRegAlloc (const MachineFunction &MF) const override
bool requiresVirtualBaseRegisters (const MachineFunction &MF) const override
void lowerDynamicAlloc (MachineBasicBlock::iterator II) const
void lowerCRSpilling (MachineBasicBlock::iterator II, unsigned FrameIndex) const
void lowerCRRestore (MachineBasicBlock::iterator II, unsigned FrameIndex) const
void lowerCRBitSpilling (MachineBasicBlock::iterator II, unsigned FrameIndex) const
void lowerCRBitRestore (MachineBasicBlock::iterator II, unsigned FrameIndex) const
void lowerVRSAVESpilling (MachineBasicBlock::iterator II, unsigned FrameIndex) const
void lowerVRSAVERestore (MachineBasicBlock::iterator II, unsigned FrameIndex) const
bool hasReservedSpillSlot (const MachineFunction &MF, unsigned Reg, int &FrameIdx) const override
void eliminateFrameIndex (MachineBasicBlock::iterator II, int SPAdj, unsigned FIOperandNum, RegScavenger *RS=nullptr) const override
bool needsFrameBaseReg (MachineInstr *MI, int64_t Offset) const override
void materializeFrameBaseRegister (MachineBasicBlock *MBB, unsigned BaseReg, int FrameIdx, int64_t Offset) const override
void resolveFrameIndex (MachineInstr &MI, unsigned BaseReg, int64_t Offset) const override
bool isFrameOffsetLegal (const MachineInstr *MI, int64_t Offset) const override
unsigned getFrameRegister (const MachineFunction &MF) const override
unsigned getBaseRegister (const MachineFunction &MF) const
bool hasBasePointer (const MachineFunction &MF) const
bool canRealignStack (const MachineFunction &MF) const
bool needsStackRealignment (const MachineFunction &MF) const override

Detailed Description

Definition at line 29 of file PPCRegisterInfo.h.


Constructor & Destructor Documentation

Definition at line 59 of file PPCRegisterInfo.cpp.

References llvm::AArch64DB::LD.


Member Function Documentation

void PPCRegisterInfo::eliminateFrameIndex ( MachineBasicBlock::iterator  II,
int  SPAdj,
unsigned  FIOperandNum,
RegScavenger RS = nullptr 
) const [override]

Definition at line 709 of file PPCRegisterInfo.cpp.

References llvm::MachineInstrBuilder::addImm(), llvm::BuildMI(), llvm::MachineOperand::ChangeToImmediate(), llvm::MachineOperand::ChangeToRegister(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::count(), llvm::MachineRegisterInfo::createVirtualRegister(), llvm::TargetOpcode::DBG_VALUE, llvm::PPCISD::DYNALLOC, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::find(), llvm::ISD::FrameIndex, llvm::AttributeSet::FunctionIndex, llvm::MCInstrInfo::get(), llvm::Function::getAttributes(), getBaseRegister(), llvm::MachineInstr::getDebugLoc(), llvm::MachineFunction::getFrameInfo(), llvm::PPCFunctionInfo::getFramePointerSaveIndex(), getFrameRegister(), llvm::MachineFunction::getFunction(), llvm::MachineOperand::getImm(), llvm::MachineOperand::getIndex(), llvm::MachineFunction::getInfo(), llvm::TargetSubtargetInfo::getInstrInfo(), llvm::MachineFrameInfo::getObjectOffset(), getOffsetONFromFION(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineOperand::getReg(), llvm::MachineFunction::getRegInfo(), llvm::MachineFrameInfo::getStackSize(), llvm::MachineFunction::getSubtarget(), hasBasePointer(), llvm::TargetOpcode::INLINEASM, llvm::MachineInstr::isInlineAsm(), llvm::isInt< 16 >(), llvm::PPCSubtarget::isPPC64(), llvm::RegState::Kill, lowerCRBitRestore(), lowerCRBitSpilling(), lowerCRRestore(), lowerCRSpilling(), lowerDynamicAlloc(), lowerVRSAVERestore(), lowerVRSAVESpilling(), llvm::AArch64CC::MI, llvm::Attribute::Naked, llvm::MachineInstr::setDesc(), TII, and usesIXAddr().

Code Generation virtual methods...

Definition at line 101 of file PPCRegisterInfo.cpp.

References llvm::PPCSubtarget::hasAltivec(), llvm::PPCSubtarget::isDarwinABI(), and llvm::PPCSubtarget::isPPC64().

const uint32_t * PPCRegisterInfo::getCallPreservedMask ( CallingConv::ID  CC) const [override]

Definition at line 255 of file PPCRegisterInfo.cpp.

References llvm::PPCSubtarget::hasVSX().

Definition at line 137 of file PPCRegisterInfo.cpp.

Referenced by llvm::PPCTargetLowering::emitEHSjLjSetJmp().

getPointerRegClass - Return the register class to use to hold pointers. This is used for addressing modes.

Definition at line 85 of file PPCRegisterInfo.cpp.

References llvm::PPCSubtarget::isPPC64().

bool PPCRegisterInfo::hasReservedSpillSlot ( const MachineFunction MF,
unsigned  Reg,
int FrameIdx 
) const [override]
bool PPCRegisterInfo::isFrameOffsetLegal ( const MachineInstr MI,
int64_t  Offset 
) const [override]
void PPCRegisterInfo::materializeFrameBaseRegister ( MachineBasicBlock MBB,
unsigned  BaseReg,
int  FrameIdx,
int64_t  Offset 
) const [override]
bool PPCRegisterInfo::needsFrameBaseReg ( MachineInstr MI,
int64_t  Offset 
) const [override]

Returns true if the instruction's frame index reference would be better served by a base register other than FP or SP. Used by LocalStackFrameAllocation to determine which frame index references it should create new base registers for.

Definition at line 907 of file PPCRegisterInfo.cpp.

References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::count(), llvm::PPCFrameLowering::determineFrameLayout(), llvm::TargetSubtargetInfo::getFrameLowering(), llvm::MachineOperand::getImm(), llvm::MachineInstr::getOpcode(), llvm::MachineInstr::getOperand(), llvm::MachineInstr::getParent(), llvm::MachineBasicBlock::getParent(), llvm::MachineFunction::getSubtarget(), and isFrameOffsetLegal().

Definition at line 59 of file PPCRegisterInfo.h.

We require the register scavenger.

Definition at line 55 of file PPCRegisterInfo.h.

Definition at line 67 of file PPCRegisterInfo.h.

void PPCRegisterInfo::resolveFrameIndex ( MachineInstr MI,
unsigned  BaseReg,
int64_t  Offset 
) const [override]

Definition at line 63 of file PPCRegisterInfo.h.


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