14 #ifndef LLVM_LIB_TARGET_ARM_ARMMACHINEFUNCTIONINFO_H
15 #define LLVM_LIB_TARGET_ARM_ARMMACHINEFUNCTIONINFO_H
28 virtual void anchor();
44 unsigned StByValParamsPadding;
48 unsigned ArgRegsSaveSize;
51 unsigned ReturnRegsCount;
63 bool LRSpilledForFarJump;
67 unsigned FramePtrSpillOffset;
80 unsigned GPRCS1Offset;
81 unsigned GPRCS2Offset;
88 unsigned DPRCSAlignGapSize;
98 unsigned NumAlignedDPRCS2Regs;
100 unsigned PICLabelUId;
103 int VarArgsFrameIndex;
114 unsigned ArgumentStackSize;
128 int PromotedGlobalsIncrease;
134 ArgRegsSaveSize(0), ReturnRegsCount(0), HasStackFrame(
false),
135 RestoreSPFromFP(
false),
136 LRSpilledForFarJump(
false),
137 FramePtrSpillOffset(0), GPRCS1Offset(0), GPRCS2Offset(0), DPRCSOffset(0),
138 GPRCS1Size(0), GPRCS2Size(0), DPRCSAlignGapSize(0), DPRCSSize(0),
139 NumAlignedDPRCS2Regs(0), PICLabelUId(0),
140 VarArgsFrameIndex(0), HasITBlocks(
false), IsSplitCSR(
false),
141 PromotedGlobalsIncrease(0) {}
203 return PICLabelUId++;
216 if (!CPEClones.
insert(std::make_pair(CPCloneIdx, CPIdx)).second)
222 if (I != CPEClones.
end())
230 auto It = CoalescedWeights.find(MBB);
231 if (It == CoalescedWeights.end()) {
232 It = CoalescedWeights.insert(std::make_pair(MBB, 0)).first;
241 PromotedGlobals.insert(GV);
244 return PromotedGlobals;
247 return PromotedGlobalsIncrease;
250 PromotedGlobalsIncrease = Sz;
int getPromotedConstpoolIncrease() const
void markGlobalAsPromotedToConstantPool(const GlobalVariable *GV)
Indicate to the backend that GV has had its storage changed to inside a constant pool.
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
unsigned getArgRegsSaveSize() const
void setDPRCalleeSavedAreaOffset(unsigned o)
void setFramePtrSpillOffset(unsigned o)
unsigned getArgumentStackSize() const
void setDPRCalleeSavedGapSize(unsigned s)
void setShouldRestoreSPFromFP(bool s)
unsigned getReturnRegsCount() const
Function Alias Analysis false
void setLRIsSpilledForFarJump(bool s)
void setIsSplitCSR(bool s)
bool isThumb1OnlyFunction() const
unsigned getStoredByValParamsPadding() const
void setReturnRegsCount(unsigned s)
unsigned getGPRCalleeSavedArea2Offset() const
bool hasStackFrame() const
unsigned getNumPICLabels() const
unsigned getDPRCalleeSavedAreaOffset() const
unsigned getFramePtrSpillOffset() const
void setGPRCalleeSavedArea2Size(unsigned s)
void initPICLabelUId(unsigned UId)
SmallPtrSet< const GlobalVariable *, 2 > & getGlobalsPromotedToConstantPool()
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
void setPromotedConstpoolIncrease(int Sz)
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements...
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
bool isThumb2Function() const
DenseMap< const MachineBasicBlock *, unsigned >::iterator getCoalescedWeight(MachineBasicBlock *MBB)
bool shouldRestoreSPFromFP() const