14 #ifndef LLVM_LIB_TARGET_ARM_ARMMACHINEFUNCTIONINFO_H
15 #define LLVM_LIB_TARGET_ARM_ARMMACHINEFUNCTIONINFO_H
29 virtual void anchor();
45 unsigned StByValParamsPadding;
49 unsigned ArgRegsSaveSize;
52 unsigned ReturnRegsCount;
64 bool LRSpilledForFarJump;
68 unsigned FramePtrSpillOffset;
81 unsigned GPRCS1Offset;
82 unsigned GPRCS2Offset;
89 unsigned DPRCSAlignGapSize;
99 unsigned NumAlignedDPRCS2Regs;
101 unsigned PICLabelUId;
104 int VarArgsFrameIndex;
116 unsigned GlobalBaseReg;
120 unsigned ArgumentStackSize;
130 ArgRegsSaveSize(0), ReturnRegsCount(0), HasStackFrame(
false),
131 RestoreSPFromFP(
false),
132 LRSpilledForFarJump(
false),
133 FramePtrSpillOffset(0), GPRCS1Offset(0), GPRCS2Offset(0), DPRCSOffset(0),
134 GPRCS1Size(0), GPRCS2Size(0), DPRCSAlignGapSize(0), DPRCSSize(0),
135 NumAlignedDPRCS2Regs(0), PICLabelUId(0),
136 VarArgsFrameIndex(0), HasITBlocks(
false), GlobalBaseReg(0) {}
198 return PICLabelUId++;
211 if (!CPEClones.
insert(std::make_pair(CPCloneIdx, CPIdx)).second)
217 if (I != CPEClones.
end())
225 auto It = CoalescedWeights.find(MBB);
226 if (It == CoalescedWeights.end()) {
227 It = CoalescedWeights.insert(std::make_pair(MBB, 0)).first;
bool isThumbFunction() const
void setGPRCalleeSavedArea2Offset(unsigned o)
unsigned createPICLabelUId()
unsigned getDPRCalleeSavedAreaSize() const
bool isLRSpilledForFarJump() const
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
std::pair< iterator, bool > insert(const std::pair< KeyT, ValueT > &KV)
unsigned getNumAlignedDPRCS2Regs() const
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
unsigned getArgRegsSaveSize() const
Reg
All possible values of the reg field in the ModR/M byte.
void setDPRCalleeSavedAreaOffset(unsigned o)
void setFramePtrSpillOffset(unsigned o)
unsigned getArgumentStackSize() const
void setDPRCalleeSavedGapSize(unsigned s)
void setShouldRestoreSPFromFP(bool s)
unsigned getReturnRegsCount() const
void setLRIsSpilledForFarJump(bool s)
bool isThumb1OnlyFunction() const
unsigned getStoredByValParamsPadding() const
void setReturnRegsCount(unsigned s)
unsigned getGPRCalleeSavedArea2Offset() const
bool hasStackFrame() const
unsigned getNumPICLabels() const
unsigned getGlobalBaseReg() const
unsigned getDPRCalleeSavedAreaOffset() const
unsigned getFramePtrSpillOffset() const
void setGPRCalleeSavedArea2Size(unsigned s)
void initPICLabelUId(unsigned UId)
void setGPRCalleeSavedArea1Size(unsigned s)
void setHasITBlocks(bool h)
void setNumAlignedDPRCS2Regs(unsigned n)
unsigned getGPRCalleeSavedArea1Offset() const
void setArgumentStackSize(unsigned size)
void recordCPEClone(unsigned CPIdx, unsigned CPCloneIdx)
void setVarArgsFrameIndex(int Index)
void setHasStackFrame(bool s)
void setGPRCalleeSavedArea1Offset(unsigned o)
void setStoredByValParamsPadding(unsigned p)
ARMFunctionInfo - This class is derived from MachineFunctionInfo and contains private ARM-specific in...
void setArgRegsSaveSize(unsigned s)
iterator find(const KeyT &Val)
unsigned getDPRCalleeSavedGapSize() const
void setDPRCalleeSavedAreaSize(unsigned s)
int getVarArgsFrameIndex() const
unsigned getGPRCalleeSavedArea1Size() const
unsigned getGPRCalleeSavedArea2Size() const
unsigned getOriginalCPIdx(unsigned CloneIdx) const
void setGlobalBaseReg(unsigned Reg)
bool isThumb2Function() const
DenseMap< const MachineBasicBlock *, unsigned >::iterator getCoalescedWeight(MachineBasicBlock *MBB)
bool shouldRestoreSPFromFP() const