LLVM: lib/Target/Hexagon/HexagonMachineFunctionInfo.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_LIB_TARGET_HEXAGON_HEXAGONMACHINEFUNCTIONINFO_H
10#define LLVM_LIB_TARGET_HEXAGON_HEXAGONMACHINEFUNCTIONINFO_H
11
13#include
14
15namespace llvm {
16
18
21
22}
23
24
26
27
28
29 unsigned SRetReturnReg = 0;
30 Register StackAlignBaseReg = 0;
31 int VarArgsFrameIndex;
32 int RegSavedAreaStartFrameIndex;
33 int FirstNamedArgFrameIndex;
34 int LastNamedArgFrameIndex;
35 bool HasClobberLR = false;
36 bool HasEHReturn = false;
37 std::map<const MachineInstr*, unsigned> PacketInfo;
38 virtual void anchor();
39
40public:
42
45
49 const override;
50
53
56
59
62
65
73 auto It = PacketInfo.find(MI);
75 }
77 auto It = PacketInfo.find(MI);
79 }
82
85
88};
89
90}
91
92#endif
void setStartPacket(MachineInstr *MI)
Definition HexagonMachineFunctionInfo.h:66
bool hasEHReturn() const
Definition HexagonMachineFunctionInfo.h:83
bool isStartPacket(const MachineInstr *MI) const
Definition HexagonMachineFunctionInfo.h:72
bool isEndPacket(const MachineInstr *MI) const
Definition HexagonMachineFunctionInfo.h:76
int getVarArgsFrameIndex()
Definition HexagonMachineFunctionInfo.h:55
void setEndPacket(MachineInstr *MI)
Definition HexagonMachineFunctionInfo.h:69
void setStackAlignBaseReg(Register R)
Definition HexagonMachineFunctionInfo.h:86
void setSRetReturnReg(unsigned Reg)
Definition HexagonMachineFunctionInfo.h:52
int getLastNamedArgFrameIndex()
Definition HexagonMachineFunctionInfo.h:64
void setLastNamedArgFrameIndex(int v)
Definition HexagonMachineFunctionInfo.h:63
unsigned getSRetReturnReg() const
Definition HexagonMachineFunctionInfo.h:51
int getFirstNamedArgFrameIndex()
Definition HexagonMachineFunctionInfo.h:61
void setFirstNamedArgFrameIndex(int v)
Definition HexagonMachineFunctionInfo.h:60
void setVarArgsFrameIndex(int v)
Definition HexagonMachineFunctionInfo.h:54
void setRegSavedAreaStartFrameIndex(int v)
Definition HexagonMachineFunctionInfo.h:57
int getRegSavedAreaStartFrameIndex()
Definition HexagonMachineFunctionInfo.h:58
HexagonMachineFunctionInfo()=default
void setHasEHReturn(bool H=true)
Definition HexagonMachineFunctionInfo.h:84
bool hasClobberLR() const
Definition HexagonMachineFunctionInfo.h:81
MachineFunctionInfo * clone(BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
Register getStackAlignBaseReg() const
Definition HexagonMachineFunctionInfo.h:87
HexagonMachineFunctionInfo(const Function &F, const TargetSubtargetInfo *STI)
Definition HexagonMachineFunctionInfo.h:43
void setHasClobberLR(bool v)
Definition HexagonMachineFunctionInfo.h:80
Representation of each machine instruction.
Wrapper class representing virtual and physical registers.
TargetSubtargetInfo - Generic base class for all target subtargets.
const unsigned int EndPacket
Definition HexagonMachineFunctionInfo.h:20
const unsigned int StartPacket
Definition HexagonMachineFunctionInfo.h:19
This is an optimization pass for GlobalISel generic memory operations.
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...