13#ifndef LLVM_LIB_TARGET_LOONGARCH_LOONGARCHMACHINEFUNCTIONINFO_H
14#define LLVM_LIB_TARGET_LOONGARCH_LOONGARCHMACHINEFUNCTIONINFO_H
28 int VarArgsFrameIndex = 0;
30 int VarArgsSaveSize = 0;
33 unsigned CalleeSavedStackSize = 0;
37 unsigned ArgumentStackSize = 0;
41 int BranchRelaxationSpillFrameIndex = -1;
77 return BranchRelaxationSpillFrameIndex;
80 BranchRelaxationSpillFrameIndex = Index;
94 JumpInfos.push_back(std::make_pair(JrMI, JTIIdx));
void addSExt32Register(Register Reg)
void addIncomingByValArgs(SDValue Val)
int getJumpInfoJTIIndex(unsigned Idx)
LoongArchMachineFunctionInfo(const Function &F, const TargetSubtargetInfo *STI)
unsigned getIncomingByValArgsSize() const
void setVarArgsFrameIndex(int Index)
int getBranchRelaxationSpillFrameIndex()
int getVarArgsFrameIndex() const
unsigned getJumpInfoSize()
MachineFunctionInfo * clone(BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
void setBranchRelaxationSpillFrameIndex(int Index)
void setVarArgsSaveSize(int Size)
MachineInstr * getJumpInfoJrMI(unsigned Idx)
SDValue getIncomingByValArgs(int Idx)
unsigned getVarArgsSaveSize() const
unsigned getCalleeSavedStackSize() const
unsigned getArgumentStackSize() const
void setJumpInfo(MachineInstr *JrMI, int JTIIdx)
void setCalleeSavedStackSize(unsigned Size)
bool isSExt32Register(Register Reg) const
void setArgumentStackSize(unsigned size)
Ty * cloneInfo(const Ty &Old)
Representation of each machine instruction.
Wrapper class representing virtual and physical registers.
Unlike LLVM values, Selection DAG nodes may return multiple values as the result of a computation.
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
TargetSubtargetInfo - Generic base class for all target subtargets.
This is an optimization pass for GlobalISel generic memory operations.
auto size(R &&Range, std::enable_if_t< std::is_base_of< std::random_access_iterator_tag, typename std::iterator_traits< decltype(Range.begin())>::iterator_category >::value, void > *=nullptr)
Get the size of a range.
bool is_contained(R &&Range, const E &Element)
Returns true if Element is found in Range.
BumpPtrAllocatorImpl<> BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...