14 #ifndef LLVM_LIB_TARGET_POWERPC_PPCMACHINEFUNCTIONINFO_H 15 #define LLVM_LIB_TARGET_POWERPC_PPCMACHINEFUNCTIONINFO_H 26 virtual void anchor();
31 int FramePointerSaveIndex = 0;
35 int ReturnAddrSaveIndex = 0;
38 int BasePointerSaveIndex = 0;
41 int PICBasePointerSaveIndex = 0;
51 bool ShrinkWrapDisabled =
false;
54 bool HasSpills =
false;
58 bool HasNonRISpills =
false;
61 bool SpillsCR =
false;
64 bool SpillsVRSAVE =
false;
70 bool LRStoreRequired =
false;
73 bool UsesTOCBasePtr =
false;
77 unsigned MinReservedArea = 0;
82 int TailCallSPDelta = 0;
86 bool HasFastCall =
false;
89 int VarArgsFrameIndex = 0;
94 int VarArgsStackOffset = 0;
98 unsigned VarArgsNumGPR = 0;
102 unsigned VarArgsNumFPR = 0;
105 int CRSpillFrameIndex = 0;
116 bool UsesPICBase =
false;
120 bool IsSplitCSR =
false;
124 std::vector<std::pair<unsigned, ISD::ArgFlagsTy>> LiveInAttrs;
196 LiveInAttrs.push_back(std::make_pair(VReg, Flags));
229 #endif // LLVM_LIB_TARGET_POWERPC_PPCMACHINEFUNCTIONINFO_H
MCSymbol * getGlobalEPSymbol() const
void setVarArgsNumGPR(unsigned Num)
bool isVRSAVESpilled() const
int getFramePointerSaveIndex() const
This class represents lattice values for constants.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
int getVarArgsStackOffset() const
void addMustSaveCR(unsigned Reg)
void setLRStoreRequired()
void push_back(const T &Elt)
void setFramePointerSaveIndex(int Idx)
void setVarArgsNumFPR(unsigned Num)
unsigned getVarArgsNumGPR() const
int getReturnAddrSaveIndex() const
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
void setVarArgsStackOffset(int Offset)
PPCFunctionInfo - This class is derived from MachineFunction private PowerPC target-specific informat...
int getCRSpillFrameIndex() const
PPCFunctionInfo(MachineFunction &MF)
const SmallVectorImpl< unsigned > & getMustSaveCRs() const
MCSymbol * getTOCOffsetSymbol() const
void setUsesPICBase(bool uses)
bool hasNonRISpills() const
void setTailCallSPDelta(int size)
int getBasePointerSaveIndex() const
bool isLiveInSExt(unsigned VReg) const
This function returns true if the specified vreg is a live-in register and sign-extended.
void setReturnAddrSaveIndex(int idx)
int getTailCallSPDelta() const
void setVarArgsFrameIndex(int Index)
void setBasePointerSaveIndex(int Idx)
void setMinReservedArea(unsigned size)
bool shrinkWrapDisabled() const
void setCRSpillFrameIndex(int idx)
void addLiveInAttr(unsigned VReg, ISD::ArgFlagsTy Flags)
This function associates attributes for each live-in virtual register.
auto size(R &&Range, typename std::enable_if< std::is_same< typename std::iterator_traits< decltype(Range.begin())>::iterator_category, std::random_access_iterator_tag >::value, void >::type *=nullptr) -> decltype(std::distance(Range.begin(), Range.end()))
Get the size of a range.
void setIsSplitCSR(bool s)
unsigned getMinReservedArea() const
MCSymbol * getPICOffsetSymbol() const
int getVarArgsFrameIndex() const
int getPICBasePointerSaveIndex() const
void setPICBasePointerSaveIndex(int Idx)
bool usesTOCBasePtr() const
bool isLRStoreRequired() const
void setShrinkWrapDisabled(bool U)
We certainly don't want to shrink wrap functions if we've emitted a MovePCtoLR8 as that has to go int...
MCSymbol * getLocalEPSymbol() const
bool isLiveInZExt(unsigned VReg) const
This function returns true if the specified vreg is a live-in register and zero-extended.
unsigned getVarArgsNumFPR() const
void setMustSaveLR(bool U)
MustSaveLR - This is set when the prolog/epilog inserter does its initial scan of the function...