LLVM: lib/Target/XCore/XCoreMachineFunctionInfo.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
13
14using namespace llvm;
15
16void XCoreFunctionInfo::anchor() { }
17
24
26 if (CachedEStackSize == -1) {
28 }
29
30
31
32
33
34
35
36
37
38 return CachedEStackSize > 0xf000;
39}
40
42 if (LRSpillSlotSet) {
43 return LRSpillSlot;
44 }
49
51 } else {
53 TRI.getSpillAlign(RC), true);
54 }
55 LRSpillSlotSet = true;
56 return LRSpillSlot;
57}
58
60 if (FPSpillSlotSet) {
61 return FPSpillSlot;
62 }
66 FPSpillSlot =
68 FPSpillSlotSet = true;
69 return FPSpillSlot;
70}
71
73 if (EHSpillSlotSet) {
74 return EHSpillSlot;
75 }
79 unsigned Size = TRI.getSpillSize(RC);
80 Align Alignment = TRI.getSpillAlign(RC);
83 EHSpillSlotSet = true;
84 return EHSpillSlot;
85}
86
Register const TargetRegisterInfo * TRI
bool isVarArg() const
isVarArg - Return true if this function takes a variable number of arguments.
The MachineFrameInfo class represents an abstract stack frame until prolog/epilog code is inserted.
LLVM_ABI int CreateFixedObject(uint64_t Size, int64_t SPOffset, bool IsImmutable, bool isAliased=false)
Create a new object at a fixed location on the stack.
LLVM_ABI int CreateStackObject(uint64_t Size, Align Alignment, bool isSpillSlot, const AllocaInst *Alloca=nullptr, uint8_t ID=0)
Create a new statically sized stack object, returning a nonnegative identifier to represent it.
LLVM_ABI uint64_t estimateStackSize(const MachineFunction &MF) const
Estimate and return the size of the stack frame.
const TargetSubtargetInfo & getSubtarget() const
getSubtarget - Return the subtarget for which this machine code is being compiled.
MachineFrameInfo & getFrameInfo()
getFrameInfo - Return the frame info object for the current function.
Function & getFunction()
Return the LLVM function that this machine code represents.
Ty * cloneInfo(const Ty &Old)
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
virtual const TargetRegisterInfo * getRegisterInfo() const =0
Return the target's register information.
MachineFunctionInfo * clone(BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
Definition XCoreMachineFunctionInfo.cpp:18
const int * createEHSpillSlot(MachineFunction &MF)
Definition XCoreMachineFunctionInfo.cpp:72
bool isLargeFrame(const MachineFunction &MF) const
Definition XCoreMachineFunctionInfo.cpp:25
int createLRSpillSlot(MachineFunction &MF)
Definition XCoreMachineFunctionInfo.cpp:41
int createFPSpillSlot(MachineFunction &MF)
Definition XCoreMachineFunctionInfo.cpp:59
XCoreFunctionInfo()=default
This is an optimization pass for GlobalISel generic memory operations.
BumpPtrAllocatorImpl<> BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.
This struct is a compact representation of a valid (non-zero power of two) alignment.
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...