LLVM API Documentation
#include <SparcV9RegInfo.h>
Collaboration diagram for llvm::SparcV9RegInfo:
Public Types | |
enum | RegTypes { IntRegType, FPSingleRegType, FPDoubleRegType, IntCCRegType, FloatCCRegType, SpecialRegType } |
enum | RegClassIDs { IntRegClassID, FloatRegClassID, IntCCRegClassID, FloatCCRegClassID, SpecialRegClassID } |
Public Member Functions | |
unsigned | getRegClassIDOfType (const Type *type, bool isCCReg=false) const |
unsigned | getRegClassIDOfRegType (int regType) const |
unsigned | getRegClassIDOfReg (int unifiedRegNum) const |
unsigned int | getNumOfRegClasses () const |
const TargetRegClassInfo * | getMachineRegClass (unsigned i) const |
unsigned | getZeroRegNum () const |
void | suggestRegs4MethodArgs (const Function *Func, LiveRangeInfo &LRI) const |
void | suggestRegs4CallArgs (MachineInstr *CallI, LiveRangeInfo &LRI) const |
void | suggestReg4RetValue (MachineInstr *RetI, LiveRangeInfo &LRI) const |
void | colorMethodArgs (const Function *Func, LiveRangeInfo &LRI, std::vector< MachineInstr * > &InstrnsBefore, std::vector< MachineInstr * > &InstrnsAfter) const |
bool | isRegVolatile (int RegClassID, int Reg) const |
bool | modifiedByCall (int RegClassID, int Reg) const |
unsigned | getCallAddressReg () const |
int | getUnifiedRegNum (unsigned regClassID, int reg) const |
int | getClassRegNum (int uRegNum, unsigned ®ClassID) const |
const char *const | getUnifiedRegName (int UnifiedRegNum) const |
int | getSpilledRegSize (int RegType) const |
SparcV9RegInfo (const SparcV9TargetMachine &tgt) | |
~SparcV9RegInfo () | |
unsigned | getReturnAddressReg () const |
unsigned const | getNumOfIntArgRegs () const |
unsigned const | getNumOfFloatArgRegs () const |
int | regNumForIntArg (bool inCallee, bool isVarArgsCall, unsigned argNo, unsigned ®ClassId) const |
int | regNumForFPArg (unsigned RegType, bool inCallee, bool isVarArgsCall, unsigned argNo, unsigned ®ClassId) const |
void | printReg (const LiveRange *LR) const |
const Value * | getCallInstRetVal (const MachineInstr *CallMI) const |
const Value * | getCallInstIndirectAddrVal (const MachineInstr *CallMI) const |
bool | regTypeNeedsScratchReg (int RegType, int &scratchRegClassId) const |
void | cpReg2RegMI (std::vector< MachineInstr * > &mvec, unsigned SrcReg, unsigned DestReg, int RegType) const |
void | cpReg2MemMI (std::vector< MachineInstr * > &mvec, unsigned SrcReg, unsigned DestPtrReg, int Offset, int RegType, int scratchReg=-1) const |
void | cpMem2RegMI (std::vector< MachineInstr * > &mvec, unsigned SrcPtrReg, int Offset, unsigned DestReg, int RegType, int scratchReg=-1) const |
void | cpValue2Value (Value *Src, Value *Dest, std::vector< MachineInstr * > &mvec) const |
int | getRegTypeForDataType (const Type *type) const |
int | getRegTypeForLR (const LiveRange *LR) const |
int | getRegType (int unifiedRegNum) const |
unsigned | getFramePointer () const |
unsigned | getStackPointer () const |
Static Public Member Functions | |
static int | getInvalidRegNum () |
Public Attributes | |
const TargetMachine & | target |
Protected Attributes | |
std::vector< const TargetRegClassInfo * > | MachineRegClassArr |
Definition at line 104 of file SparcV9RegInfo.h.
|
Definition at line 287 of file SparcV9RegInfo.h. |
|
Definition at line 272 of file SparcV9RegInfo.h. |
|
Definition at line 39 of file SparcV9RegInfo.cpp. References FloatCCRegClassID, FloatRegClassID, IntCCRegClassID, IntRegClassID, MachineRegClassArr, SpecialRegClassID, and llvm::SparcV9FloatRegClass::StartOfNonVolatileRegs. |
|
Definition at line 297 of file SparcV9RegInfo.h. References MachineRegClassArr. |
|
|
cpMem2RegMI - Generate SparcV9 MachineInstrs to load a register (DestReg) from memory, at [PtrReg + Offset]. Register numbers must be the unified register numbers. RegType must be the SparcV9 register type of DestReg. When DestReg is ccr, scratchReg must be the number of a free integer register. The newly-generated MachineInstrs are appended to mvec. Definition at line 836 of file SparcV9RegInfo.cpp. References llvm::MachineInstrBuilder::addMReg(), llvm::MachineInstrBuilder::addSImm(), llvm::MachineInstrBuilder::addZImm(), llvm::BuildMI(), llvm::SparcV9::ccr, llvm::TargetInstrInfo::constantFitsInImmedField(), llvm::MachineOperand::Def, FloatCCRegType, FPDoubleRegType, FPSingleRegType, llvm::SparcV9::fsr, llvm::SparcV9::g0, llvm::SparcV9::g4, llvm::TargetMachine::getInstrInfo(), llvm::MachineInstr::getOperand(), getRegType(), IntCCRegType, IntRegType, llvm::MachineOperand::markHi32(), llvm::MachineOperand::markLo32(), SpecialRegType, and target. Referenced by colorMethodArgs(). |
|
cpReg2MemMI - Generate SparcV9 MachineInstrs to store a register (SrcReg) to memory, at [PtrReg + Offset]. Register numbers must be the unified register numbers. RegType must be the SparcV9 register type of SrcReg. When SrcReg is ccr, scratchReg must be the number of a free integer register. The newly-generated MachineInstrs are appended to mvec. Definition at line 754 of file SparcV9RegInfo.cpp. References llvm::MachineInstrBuilder::addMReg(), llvm::MachineInstrBuilder::addSImm(), llvm::MachineInstrBuilder::addZImm(), llvm::BuildMI(), llvm::SparcV9::ccr, llvm::TargetInstrInfo::constantFitsInImmedField(), llvm::MachineOperand::Def, FloatCCRegType, FPDoubleRegType, FPSingleRegType, llvm::SparcV9::fsr, llvm::SparcV9::g4, llvm::TargetMachine::getInstrInfo(), llvm::MachineInstr::getOperand(), getRegType(), IntCCRegType, IntRegType, llvm::MachineOperand::markHi32(), llvm::MachineOperand::markLo32(), SpecialRegType, and target. Referenced by colorMethodArgs(). |
|
Definition at line 687 of file SparcV9RegInfo.cpp. References llvm::MachineInstrBuilder::addMReg(), llvm::BuildMI(), llvm::SparcV9IntCCRegClass::ccr, llvm::MachineOperand::Def, FloatCCRegType, FPDoubleRegType, FPSingleRegType, llvm::SparcV9IntRegClass::g0, getInvalidRegNum(), getRegType(), getUnifiedRegNum(), getZeroRegNum(), IntCCRegClassID, IntCCRegType, and IntRegType. Referenced by colorMethodArgs(). |
|
Definition at line 922 of file SparcV9RegInfo.cpp. References llvm::MachineInstrBuilder::addMReg(), llvm::MachineInstrBuilder::addReg(), llvm::MachineInstrBuilder::addRegDef(), llvm::BuildMI(), FPDoubleRegType, FPSingleRegType, getRegTypeForDataType(), llvm::Value::getType(), getZeroRegNum(), and IntRegType. |
|
Definition at line 64 of file SparcV9RegInfo.cpp. References getUnifiedRegNum(), IntRegClassID, and llvm::SparcV9IntRegClass::o7. |
|
|
|
|
|
Definition at line 208 of file SparcV9RegInfo.h. References getInvalidRegNum(), getNumOfRegClasses(), and MachineRegClassArr. Referenced by llvm::LiveRangeInfo::constructLiveRanges(), getRegClassIDOfReg(), getUnifiedRegName(), and llvm::markRegisterUsed(). |
|
Definition at line 138 of file SparcV9RegInfo.cpp. References getUnifiedRegNum(), llvm::SparcV9IntRegClass::i6, and IntRegClassID. Referenced by colorMethodArgs(). |
|
Definition at line 118 of file SparcV9RegInfo.h. Referenced by colorMethodArgs(), cpReg2RegMI(), getClassRegNum(), getUnifiedRegNum(), regNumForFPArg(), regNumForIntArg(), suggestRegs4CallArgs(), and suggestRegs4MethodArgs(). |
|
Definition at line 146 of file SparcV9RegInfo.h. References MachineRegClassArr. Referenced by llvm::PhyRegAlloc::runOnFunction(). |
|
Definition at line 312 of file SparcV9RegInfo.h. |
|
Definition at line 311 of file SparcV9RegInfo.h. |
|
Definition at line 142 of file SparcV9RegInfo.h. References MachineRegClassArr. Referenced by getClassRegNum(), getUnifiedRegName(), and getUnifiedRegNum(). |
|
Definition at line 136 of file SparcV9RegInfo.h. References getClassRegNum(). |
|
Definition at line 297 of file SparcV9RegInfo.cpp. References FloatCCRegClassID, FloatCCRegType, FloatRegClassID, FPDoubleRegType, FPSingleRegType, IntCCRegClassID, IntCCRegType, IntRegClassID, IntRegType, SpecialRegClassID, and SpecialRegType. |
|
Definition at line 274 of file SparcV9RegInfo.cpp. References llvm::Type::DoubleTyID, FloatRegClassID, llvm::Type::FunctionTyID, llvm::Type::getTypeID(), IntRegClassID, llvm::Type::LabelTyID, llvm::Type::LongTyID, and llvm::Type::PointerTyID. Referenced by getRegTypeForDataType(). |
|
Definition at line 252 of file SparcV9RegInfo.cpp. References FloatCCRegType, FPDoubleRegType, FPSingleRegType, IntCCRegType, IntRegType, and SpecialRegType. Referenced by cpMem2RegMI(), cpReg2MemMI(), and cpReg2RegMI(). |
|
Definition at line 242 of file SparcV9RegInfo.cpp. References getRegClassIDOfType(). Referenced by cpValue2Value(). |
|
Definition at line 247 of file SparcV9RegInfo.cpp. Referenced by llvm::LiveRangeInfo::coalesceLRs(), colorMethodArgs(), suggestRegs4CallArgs(), and suggestRegs4MethodArgs(). |
|
Definition at line 73 of file SparcV9RegInfo.cpp. References getUnifiedRegNum(), llvm::SparcV9IntRegClass::i7, and IntRegClassID. |
|
Definition at line 242 of file SparcV9RegInfo.h. Referenced by colorMethodArgs(). |
|
Definition at line 144 of file SparcV9RegInfo.cpp. References getUnifiedRegNum(), IntRegClassID, and llvm::SparcV9IntRegClass::o6. |
|
Definition at line 228 of file SparcV9RegInfo.h. References getClassRegNum(), getNumOfRegClasses(), and MachineRegClassArr. Referenced by printReg(). |
|
Definition at line 197 of file SparcV9RegInfo.h. References getInvalidRegNum(), getNumOfRegClasses(), and MachineRegClassArr. Referenced by colorMethodArgs(), cpReg2RegMI(), getCallAddressReg(), getFramePointer(), getReturnAddressReg(), getStackPointer(), getZeroRegNum(), and printReg(). |
|
Definition at line 56 of file SparcV9RegInfo.cpp. References llvm::SparcV9IntRegClass::g0, getUnifiedRegNum(), and IntRegClassID. Referenced by cpReg2RegMI(), cpValue2Value(), and llvm::IsUselessCopy(). |
|
Definition at line 176 of file SparcV9RegInfo.h. References MachineRegClassArr. |
|
Definition at line 182 of file SparcV9RegInfo.h. References MachineRegClassArr. |
|
Definition at line 951 of file SparcV9RegInfo.cpp. References llvm::Type::DoubleTy, FloatRegClassID, getUnifiedRegName(), and getUnifiedRegNum(). |
|
Definition at line 197 of file SparcV9RegInfo.cpp. References llvm::SparcV9FloatRegClass::f0, FloatRegClassID, FPDoubleRegType, FPSingleRegType, getInvalidRegNum(), and regNumForIntArg(). Referenced by colorMethodArgs(), suggestRegs4CallArgs(), and suggestRegs4MethodArgs(). |
|
Definition at line 178 of file SparcV9RegInfo.cpp. References getInvalidRegNum(), llvm::SparcV9IntRegClass::i0, IntRegClassID, and llvm::SparcV9IntRegClass::o0. Referenced by colorMethodArgs(), regNumForFPArg(), suggestRegs4CallArgs(), and suggestRegs4MethodArgs(). |
|
Definition at line 670 of file SparcV9RegInfo.cpp. References IntCCRegType, and IntRegType. |
|
|
|
Definition at line 368 of file SparcV9RegInfo.cpp. References llvm::Function::abegin(), llvm::Function::aend(), llvm::BadRegClass, E, getInvalidRegNum(), llvm::LiveRangeInfo::getLiveRangeForValue(), getRegTypeForLR(), llvm::GlobalValue::getType(), I, IntRegType, llvm::isVarArgsFunction(), regNumForFPArg(), and regNumForIntArg(). Referenced by llvm::LiveRangeInfo::constructLiveRanges(). |
|
Definition at line 110 of file SparcV9RegInfo.h. Referenced by getClassRegNum(), getMachineRegClass(), getNumOfRegClasses(), getUnifiedRegName(), getUnifiedRegNum(), isRegVolatile(), modifiedByCall(), SparcV9RegInfo(), and ~SparcV9RegInfo(). |
|
Definition at line 113 of file SparcV9RegInfo.h. Referenced by colorMethodArgs(), cpMem2RegMI(), cpReg2MemMI(), suggestReg4RetValue(), and suggestRegs4CallArgs(). |