Movatterモバイル変換


[0]ホーム

URL:


LLVM 20.0.0git
PPCMachineFunctionInfo.h
Go to the documentation of this file.
1//===-- PPCMachineFunctionInfo.h - Private data used for PowerPC --*- C++ -*-=//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// This file declares the PowerPC specific subclass of MachineFunctionInfo.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef LLVM_LIB_TARGET_POWERPC_PPCMACHINEFUNCTIONINFO_H
14#define LLVM_LIB_TARGET_POWERPC_PPCMACHINEFUNCTIONINFO_H
15
16#include "llvm/ADT/SmallVector.h"
17#include "llvm/CodeGen/MachineFunction.h"
18#include "llvm/CodeGen/TargetCallingConv.h"
19
20namespacellvm {
21
22/// PPCFunctionInfo - This class is derived from MachineFunction private
23/// PowerPC target-specific information for each MachineFunction.
24classPPCFunctionInfo :publicMachineFunctionInfo {
25public:
26enumParamType {
27FixedType,
28ShortFloatingPoint,
29LongFloatingPoint,
30VectorChar,
31VectorShort,
32VectorInt,
33VectorFloat
34 };
35
36private:
37virtualvoid anchor();
38
39 /// FramePointerSaveIndex - Frame index of where the old frame pointer is
40 /// stored. Also used as an anchor for instructions that need to be altered
41 /// when using frame pointers (dyna_add, dyna_sub.)
42int FramePointerSaveIndex = 0;
43
44 /// ReturnAddrSaveIndex - Frame index of where the return address is stored.
45 ///
46int ReturnAddrSaveIndex = 0;
47
48 /// Frame index where the old base pointer is stored.
49int BasePointerSaveIndex = 0;
50
51 /// Frame index where the old PIC base pointer is stored.
52int PICBasePointerSaveIndex = 0;
53
54 /// Frame index where the ROP Protection Hash is stored.
55int ROPProtectionHashSaveIndex = 0;
56
57 /// MustSaveLR - Indicates whether LR is defined (or clobbered) in the current
58 /// function. This is only valid after the initial scan of the function by
59 /// PEI.
60bool MustSaveLR =false;
61
62 /// MustSaveTOC - Indicates that the TOC save needs to be performed in the
63 /// prologue of the function. This is typically the case when there are
64 /// indirect calls in the function and it is more profitable to save the
65 /// TOC pointer in the prologue than in the block(s) containing the call(s).
66bool MustSaveTOC =false;
67
68 /// Do we have to disable shrink-wrapping? This has to be set if we emit any
69 /// instructions that clobber LR in the entry block because discovering this
70 /// in PEI is too late (happens after shrink-wrapping);
71bool ShrinkWrapDisabled =false;
72
73 /// Does this function have any stack spills.
74bool HasSpills =false;
75
76 /// Does this function spill using instructions with only r+r (not r+i)
77 /// forms.
78bool HasNonRISpills =false;
79
80 /// SpillsCR - Indicates whether CR is spilled in the current function.
81bool SpillsCR =false;
82
83 /// DisableNonVolatileCR - Indicates whether non-volatile CR fields would be
84 /// disabled.
85bool DisableNonVolatileCR =false;
86
87 /// LRStoreRequired - The bool indicates whether there is some explicit use of
88 /// the LR/LR8 stack slot that is not obvious from scanning the code. This
89 /// requires that the code generator produce a store of LR to the stack on
90 /// entry, even though LR may otherwise apparently not be used.
91bool LRStoreRequired =false;
92
93 /// This function makes use of the PPC64 ELF TOC base pointer (register r2).
94bool UsesTOCBasePtr =false;
95
96 /// MinReservedArea - This is the frame size that is at least reserved in a
97 /// potential caller (parameter+linkage area).
98unsigned MinReservedArea = 0;
99
100 /// TailCallSPDelta - Stack pointer delta used when tail calling. Maximum
101 /// amount the stack pointer is adjusted to make the frame bigger for tail
102 /// calls. Used for creating an area before the register spill area.
103int TailCallSPDelta = 0;
104
105 /// HasFastCall - Does this function contain a fast call. Used to determine
106 /// how the caller's stack pointer should be calculated (epilog/dynamicalloc).
107bool HasFastCall =false;
108
109 /// VarArgsFrameIndex - FrameIndex for start of varargs area.
110int VarArgsFrameIndex = 0;
111
112 /// VarArgsStackOffset - StackOffset for start of stack
113 /// arguments.
114
115int VarArgsStackOffset = 0;
116
117 /// VarArgsNumGPR - Index of the first unused integer
118 /// register for parameter passing.
119unsigned VarArgsNumGPR = 0;
120
121 /// VarArgsNumFPR - Index of the first unused double
122 /// register for parameter passing.
123unsigned VarArgsNumFPR = 0;
124
125 /// FixedParmsNum - The number of fixed parameters.
126unsigned FixedParmsNum = 0;
127
128 /// FloatingParmsNum - The number of floating parameters.
129unsigned FloatingParmsNum = 0;
130
131 /// VectorParmsNum - The number of vector parameters.
132unsigned VectorParmsNum = 0;
133
134 /// ParamtersType - Store all the parameter's type that are saved on
135 /// registers.
136SmallVector<ParamType, 32> ParamtersType;
137
138 /// CRSpillFrameIndex - FrameIndex for CR spill slot for 32-bit SVR4.
139int CRSpillFrameIndex = 0;
140
141 /// If any of CR[2-4] need to be saved in the prologue and restored in the
142 /// epilogue then they are added to this array. This is used for the
143 /// 64-bit SVR4 ABI.
144SmallVector<Register, 3> MustSaveCRs;
145
146 /// Whether this uses the PIC Base register or not.
147bool UsesPICBase =false;
148
149 /// We keep track attributes for each live-in virtual registers
150 /// to use SExt/ZExt flags in later optimization.
151 std::vector<std::pair<Register, ISD::ArgFlagsTy>> LiveInAttrs;
152
153 /// Flags for aix-shared-lib-tls-model-opt, will be lazily initialized for
154 /// each function.
155bool AIXFuncUseTLSIEForLD =false;
156bool AIXFuncTLSModelOptInitDone =false;
157
158public:
159explicitPPCFunctionInfo(constFunction &F,constTargetSubtargetInfo *STI);
160
161MachineFunctionInfo *
162clone(BumpPtrAllocator &Allocator,MachineFunction &DestMF,
163constDenseMap<MachineBasicBlock *, MachineBasicBlock *> &Src2DstMBB)
164const override;
165
166intgetFramePointerSaveIndex() const{return FramePointerSaveIndex; }
167voidsetFramePointerSaveIndex(intIdx) { FramePointerSaveIndex =Idx; }
168
169intgetReturnAddrSaveIndex() const{return ReturnAddrSaveIndex; }
170voidsetReturnAddrSaveIndex(int idx) { ReturnAddrSaveIndex = idx; }
171
172intgetBasePointerSaveIndex() const{return BasePointerSaveIndex; }
173voidsetBasePointerSaveIndex(intIdx) { BasePointerSaveIndex =Idx; }
174
175intgetPICBasePointerSaveIndex() const{return PICBasePointerSaveIndex; }
176voidsetPICBasePointerSaveIndex(intIdx) { PICBasePointerSaveIndex =Idx; }
177
178intgetROPProtectionHashSaveIndex() const{
179return ROPProtectionHashSaveIndex;
180 }
181voidsetROPProtectionHashSaveIndex(intIdx) {
182 ROPProtectionHashSaveIndex =Idx;
183 }
184
185unsignedgetMinReservedArea() const{return MinReservedArea; }
186voidsetMinReservedArea(unsigned size) { MinReservedArea =size; }
187
188intgetTailCallSPDelta() const{return TailCallSPDelta; }
189voidsetTailCallSPDelta(int size) { TailCallSPDelta =size; }
190
191 /// MustSaveLR - This is set when the prolog/epilog inserter does its initial
192 /// scan of the function. It is true if the LR/LR8 register is ever explicitly
193 /// defined/clobbered in the machine function (e.g. by calls and movpctolr,
194 /// which is used in PIC generation), or if the LR stack slot is explicitly
195 /// referenced by builtin_return_address.
196voidsetMustSaveLR(bool U) { MustSaveLR = U; }
197boolmustSaveLR() const{return MustSaveLR; }
198
199voidsetMustSaveTOC(bool U) { MustSaveTOC = U; }
200boolmustSaveTOC() const{return MustSaveTOC; }
201
202 /// We certainly don't want to shrink wrap functions if we've emitted a
203 /// MovePCtoLR8 as that has to go into the entry, so the prologue definitely
204 /// has to go into the entry block.
205voidsetShrinkWrapDisabled(bool U) { ShrinkWrapDisabled = U; }
206boolshrinkWrapDisabled() const{return ShrinkWrapDisabled; }
207
208voidsetHasSpills() { HasSpills =true; }
209boolhasSpills() const{return HasSpills; }
210
211voidsetHasNonRISpills() { HasNonRISpills =true; }
212boolhasNonRISpills() const{return HasNonRISpills; }
213
214voidsetSpillsCR() { SpillsCR =true; }
215boolisCRSpilled() const{return SpillsCR; }
216
217voidsetDisableNonVolatileCR() { DisableNonVolatileCR =true; }
218boolisNonVolatileCRDisabled() const{return DisableNonVolatileCR; }
219
220voidsetLRStoreRequired() { LRStoreRequired =true; }
221boolisLRStoreRequired() const{return LRStoreRequired; }
222
223voidsetUsesTOCBasePtr() { UsesTOCBasePtr =true; }
224boolusesTOCBasePtr() const{return UsesTOCBasePtr; }
225
226voidsetHasFastCall() { HasFastCall =true; }
227boolhasFastCall() const{return HasFastCall;}
228
229voidsetAIXFuncTLSModelOptInitDone() { AIXFuncTLSModelOptInitDone =true; }
230boolisAIXFuncTLSModelOptInitDone() const{
231return AIXFuncTLSModelOptInitDone;
232 }
233voidsetAIXFuncUseTLSIEForLD() { AIXFuncUseTLSIEForLD =true; }
234boolisAIXFuncUseTLSIEForLD() const{return AIXFuncUseTLSIEForLD; }
235
236intgetVarArgsFrameIndex() const{return VarArgsFrameIndex; }
237voidsetVarArgsFrameIndex(intIndex) { VarArgsFrameIndex =Index; }
238
239intgetVarArgsStackOffset() const{return VarArgsStackOffset; }
240voidsetVarArgsStackOffset(intOffset) { VarArgsStackOffset =Offset; }
241
242unsignedgetVarArgsNumGPR() const{return VarArgsNumGPR; }
243voidsetVarArgsNumGPR(unsigned Num) { VarArgsNumGPR = Num; }
244
245unsignedgetFixedParmsNum() const{return FixedParmsNum; }
246unsignedgetFloatingPointParmsNum() const{return FloatingParmsNum; }
247unsignedgetVectorParmsNum() const{return VectorParmsNum; }
248boolhasVectorParms() const{return VectorParmsNum != 0; }
249
250uint32_tgetParmsType()const;
251
252uint32_tgetVecExtParmsType()const;
253
254voidappendParameterType(ParamTypeType);
255
256unsignedgetVarArgsNumFPR() const{return VarArgsNumFPR; }
257voidsetVarArgsNumFPR(unsigned Num) { VarArgsNumFPR = Num; }
258
259 /// This function associates attributes for each live-in virtual register.
260voidaddLiveInAttr(Register VReg,ISD::ArgFlagsTy Flags) {
261 LiveInAttrs.push_back(std::make_pair(VReg, Flags));
262 }
263
264 /// This function returns true if the specified vreg is
265 /// a live-in register and sign-extended.
266boolisLiveInSExt(Register VReg)const;
267
268 /// This function returns true if the specified vreg is
269 /// a live-in register and zero-extended.
270boolisLiveInZExt(Register VReg)const;
271
272intgetCRSpillFrameIndex() const{return CRSpillFrameIndex; }
273voidsetCRSpillFrameIndex(int idx) { CRSpillFrameIndex = idx; }
274
275constSmallVectorImpl<Register> &
276getMustSaveCRs() const{return MustSaveCRs; }
277voidaddMustSaveCR(RegisterReg) { MustSaveCRs.push_back(Reg); }
278
279voidsetUsesPICBase(booluses) { UsesPICBase =uses; }
280boolusesPICBase() const{return UsesPICBase; }
281
282MCSymbol *getPICOffsetSymbol(MachineFunction &MF)const;
283
284MCSymbol *getGlobalEPSymbol(MachineFunction &MF)const;
285MCSymbol *getLocalEPSymbol(MachineFunction &MF)const;
286MCSymbol *getTOCOffsetSymbol(MachineFunction &MF)const;
287};
288
289}// end namespace llvm
290
291#endif// LLVM_LIB_TARGET_POWERPC_PPCMACHINEFUNCTIONINFO_H
Idx
Returns the sub type a function will return at a given Idx Should correspond to the result type of an ExtractValue instruction executed with just that one unsigned Idx
Definition:DeadArgumentElimination.cpp:353
uses
Given that RA is a live propagate it s liveness to any other values it uses(according to Uses). void DeadArgumentEliminationPass
Definition:DeadArgumentElimination.cpp:717
Index
uint32_t Index
Definition:ELFObjHandler.cpp:83
F
#define F(x, y, z)
Definition:MD5.cpp:55
MachineFunction.h
Reg
unsigned Reg
Definition:MachineSink.cpp:2028
Allocator
Basic Register Allocator
Definition:RegAllocBasic.cpp:146
SmallVector.h
This file defines the SmallVector class.
TargetCallingConv.h
llvm::BumpPtrAllocatorImpl
Allocate memory in an ever growing pool, as if by bump-pointer.
Definition:Allocator.h:66
llvm::DenseMap
Definition:DenseMap.h:727
llvm::Function
Definition:Function.h:63
llvm::MCSymbol
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Definition:MCSymbol.h:41
llvm::MachineFunction
Definition:MachineFunction.h:267
llvm::PPCFunctionInfo
PPCFunctionInfo - This class is derived from MachineFunction private PowerPC target-specific informat...
Definition:PPCMachineFunctionInfo.h:24
llvm::PPCFunctionInfo::isCRSpilled
bool isCRSpilled() const
Definition:PPCMachineFunctionInfo.h:215
llvm::PPCFunctionInfo::getTailCallSPDelta
int getTailCallSPDelta() const
Definition:PPCMachineFunctionInfo.h:188
llvm::PPCFunctionInfo::setVarArgsNumFPR
void setVarArgsNumFPR(unsigned Num)
Definition:PPCMachineFunctionInfo.h:257
llvm::PPCFunctionInfo::getParmsType
uint32_t getParmsType() const
Definition:PPCMachineFunctionInfo.cpp:143
llvm::PPCFunctionInfo::getPICOffsetSymbol
MCSymbol * getPICOffsetSymbol(MachineFunction &MF) const
Definition:PPCMachineFunctionInfo.cpp:34
llvm::PPCFunctionInfo::getMustSaveCRs
const SmallVectorImpl< Register > & getMustSaveCRs() const
Definition:PPCMachineFunctionInfo.h:276
llvm::PPCFunctionInfo::setReturnAddrSaveIndex
void setReturnAddrSaveIndex(int idx)
Definition:PPCMachineFunctionInfo.h:170
llvm::PPCFunctionInfo::setMustSaveTOC
void setMustSaveTOC(bool U)
Definition:PPCMachineFunctionInfo.h:199
llvm::PPCFunctionInfo::getFloatingPointParmsNum
unsigned getFloatingPointParmsNum() const
Definition:PPCMachineFunctionInfo.h:246
llvm::PPCFunctionInfo::isAIXFuncUseTLSIEForLD
bool isAIXFuncUseTLSIEForLD() const
Definition:PPCMachineFunctionInfo.h:234
llvm::PPCFunctionInfo::isLiveInSExt
bool isLiveInSExt(Register VReg) const
This function returns true if the specified vreg is a live-in register and sign-extended.
Definition:PPCMachineFunctionInfo.cpp:62
llvm::PPCFunctionInfo::getGlobalEPSymbol
MCSymbol * getGlobalEPSymbol(MachineFunction &MF) const
Definition:PPCMachineFunctionInfo.cpp:41
llvm::PPCFunctionInfo::getPICBasePointerSaveIndex
int getPICBasePointerSaveIndex() const
Definition:PPCMachineFunctionInfo.h:175
llvm::PPCFunctionInfo::getLocalEPSymbol
MCSymbol * getLocalEPSymbol(MachineFunction &MF) const
Definition:PPCMachineFunctionInfo.cpp:48
llvm::PPCFunctionInfo::shrinkWrapDisabled
bool shrinkWrapDisabled() const
Definition:PPCMachineFunctionInfo.h:206
llvm::PPCFunctionInfo::getReturnAddrSaveIndex
int getReturnAddrSaveIndex() const
Definition:PPCMachineFunctionInfo.h:169
llvm::PPCFunctionInfo::hasSpills
bool hasSpills() const
Definition:PPCMachineFunctionInfo.h:209
llvm::PPCFunctionInfo::getVarArgsNumFPR
unsigned getVarArgsNumFPR() const
Definition:PPCMachineFunctionInfo.h:256
llvm::PPCFunctionInfo::setAIXFuncUseTLSIEForLD
void setAIXFuncUseTLSIEForLD()
Definition:PPCMachineFunctionInfo.h:233
llvm::PPCFunctionInfo::getFramePointerSaveIndex
int getFramePointerSaveIndex() const
Definition:PPCMachineFunctionInfo.h:166
llvm::PPCFunctionInfo::isLiveInZExt
bool isLiveInZExt(Register VReg) const
This function returns true if the specified vreg is a live-in register and zero-extended.
Definition:PPCMachineFunctionInfo.cpp:69
llvm::PPCFunctionInfo::setShrinkWrapDisabled
void setShrinkWrapDisabled(bool U)
We certainly don't want to shrink wrap functions if we've emitted a MovePCtoLR8 as that has to go int...
Definition:PPCMachineFunctionInfo.h:205
llvm::PPCFunctionInfo::getVectorParmsNum
unsigned getVectorParmsNum() const
Definition:PPCMachineFunctionInfo.h:247
llvm::PPCFunctionInfo::setVarArgsNumGPR
void setVarArgsNumGPR(unsigned Num)
Definition:PPCMachineFunctionInfo.h:243
llvm::PPCFunctionInfo::setUsesPICBase
void setUsesPICBase(bool uses)
Definition:PPCMachineFunctionInfo.h:279
llvm::PPCFunctionInfo::usesPICBase
bool usesPICBase() const
Definition:PPCMachineFunctionInfo.h:280
llvm::PPCFunctionInfo::appendParameterType
void appendParameterType(ParamType Type)
Definition:PPCMachineFunctionInfo.cpp:76
llvm::PPCFunctionInfo::isNonVolatileCRDisabled
bool isNonVolatileCRDisabled() const
Definition:PPCMachineFunctionInfo.h:218
llvm::PPCFunctionInfo::getVarArgsFrameIndex
int getVarArgsFrameIndex() const
Definition:PPCMachineFunctionInfo.h:236
llvm::PPCFunctionInfo::addMustSaveCR
void addMustSaveCR(Register Reg)
Definition:PPCMachineFunctionInfo.h:277
llvm::PPCFunctionInfo::mustSaveTOC
bool mustSaveTOC() const
Definition:PPCMachineFunctionInfo.h:200
llvm::PPCFunctionInfo::setLRStoreRequired
void setLRStoreRequired()
Definition:PPCMachineFunctionInfo.h:220
llvm::PPCFunctionInfo::usesTOCBasePtr
bool usesTOCBasePtr() const
Definition:PPCMachineFunctionInfo.h:224
llvm::PPCFunctionInfo::setBasePointerSaveIndex
void setBasePointerSaveIndex(int Idx)
Definition:PPCMachineFunctionInfo.h:173
llvm::PPCFunctionInfo::hasFastCall
bool hasFastCall() const
Definition:PPCMachineFunctionInfo.h:227
llvm::PPCFunctionInfo::isAIXFuncTLSModelOptInitDone
bool isAIXFuncTLSModelOptInitDone() const
Definition:PPCMachineFunctionInfo.h:230
llvm::PPCFunctionInfo::hasVectorParms
bool hasVectorParms() const
Definition:PPCMachineFunctionInfo.h:248
llvm::PPCFunctionInfo::setTailCallSPDelta
void setTailCallSPDelta(int size)
Definition:PPCMachineFunctionInfo.h:189
llvm::PPCFunctionInfo::getVecExtParmsType
uint32_t getVecExtParmsType() const
Definition:PPCMachineFunctionInfo.cpp:97
llvm::PPCFunctionInfo::setAIXFuncTLSModelOptInitDone
void setAIXFuncTLSModelOptInitDone()
Definition:PPCMachineFunctionInfo.h:229
llvm::PPCFunctionInfo::getCRSpillFrameIndex
int getCRSpillFrameIndex() const
Definition:PPCMachineFunctionInfo.h:272
llvm::PPCFunctionInfo::hasNonRISpills
bool hasNonRISpills() const
Definition:PPCMachineFunctionInfo.h:212
llvm::PPCFunctionInfo::isLRStoreRequired
bool isLRStoreRequired() const
Definition:PPCMachineFunctionInfo.h:221
llvm::PPCFunctionInfo::setMinReservedArea
void setMinReservedArea(unsigned size)
Definition:PPCMachineFunctionInfo.h:186
llvm::PPCFunctionInfo::setHasFastCall
void setHasFastCall()
Definition:PPCMachineFunctionInfo.h:226
llvm::PPCFunctionInfo::setPICBasePointerSaveIndex
void setPICBasePointerSaveIndex(int Idx)
Definition:PPCMachineFunctionInfo.h:176
llvm::PPCFunctionInfo::getTOCOffsetSymbol
MCSymbol * getTOCOffsetSymbol(MachineFunction &MF) const
Definition:PPCMachineFunctionInfo.cpp:55
llvm::PPCFunctionInfo::getROPProtectionHashSaveIndex
int getROPProtectionHashSaveIndex() const
Definition:PPCMachineFunctionInfo.h:178
llvm::PPCFunctionInfo::ParamType
ParamType
Definition:PPCMachineFunctionInfo.h:26
llvm::PPCFunctionInfo::LongFloatingPoint
@ LongFloatingPoint
Definition:PPCMachineFunctionInfo.h:29
llvm::PPCFunctionInfo::VectorShort
@ VectorShort
Definition:PPCMachineFunctionInfo.h:31
llvm::PPCFunctionInfo::VectorChar
@ VectorChar
Definition:PPCMachineFunctionInfo.h:30
llvm::PPCFunctionInfo::ShortFloatingPoint
@ ShortFloatingPoint
Definition:PPCMachineFunctionInfo.h:28
llvm::PPCFunctionInfo::VectorFloat
@ VectorFloat
Definition:PPCMachineFunctionInfo.h:33
llvm::PPCFunctionInfo::FixedType
@ FixedType
Definition:PPCMachineFunctionInfo.h:27
llvm::PPCFunctionInfo::VectorInt
@ VectorInt
Definition:PPCMachineFunctionInfo.h:32
llvm::PPCFunctionInfo::getVarArgsNumGPR
unsigned getVarArgsNumGPR() const
Definition:PPCMachineFunctionInfo.h:242
llvm::PPCFunctionInfo::setUsesTOCBasePtr
void setUsesTOCBasePtr()
Definition:PPCMachineFunctionInfo.h:223
llvm::PPCFunctionInfo::getMinReservedArea
unsigned getMinReservedArea() const
Definition:PPCMachineFunctionInfo.h:185
llvm::PPCFunctionInfo::setMustSaveLR
void setMustSaveLR(bool U)
MustSaveLR - This is set when the prolog/epilog inserter does its initial scan of the function.
Definition:PPCMachineFunctionInfo.h:196
llvm::PPCFunctionInfo::setDisableNonVolatileCR
void setDisableNonVolatileCR()
Definition:PPCMachineFunctionInfo.h:217
llvm::PPCFunctionInfo::setVarArgsStackOffset
void setVarArgsStackOffset(int Offset)
Definition:PPCMachineFunctionInfo.h:240
llvm::PPCFunctionInfo::setCRSpillFrameIndex
void setCRSpillFrameIndex(int idx)
Definition:PPCMachineFunctionInfo.h:273
llvm::PPCFunctionInfo::getFixedParmsNum
unsigned getFixedParmsNum() const
Definition:PPCMachineFunctionInfo.h:245
llvm::PPCFunctionInfo::setSpillsCR
void setSpillsCR()
Definition:PPCMachineFunctionInfo.h:214
llvm::PPCFunctionInfo::mustSaveLR
bool mustSaveLR() const
Definition:PPCMachineFunctionInfo.h:197
llvm::PPCFunctionInfo::setVarArgsFrameIndex
void setVarArgsFrameIndex(int Index)
Definition:PPCMachineFunctionInfo.h:237
llvm::PPCFunctionInfo::getBasePointerSaveIndex
int getBasePointerSaveIndex() const
Definition:PPCMachineFunctionInfo.h:172
llvm::PPCFunctionInfo::addLiveInAttr
void addLiveInAttr(Register VReg, ISD::ArgFlagsTy Flags)
This function associates attributes for each live-in virtual register.
Definition:PPCMachineFunctionInfo.h:260
llvm::PPCFunctionInfo::setROPProtectionHashSaveIndex
void setROPProtectionHashSaveIndex(int Idx)
Definition:PPCMachineFunctionInfo.h:181
llvm::PPCFunctionInfo::clone
MachineFunctionInfo * clone(BumpPtrAllocator &Allocator, MachineFunction &DestMF, const DenseMap< MachineBasicBlock *, MachineBasicBlock * > &Src2DstMBB) const override
Make a functionally equivalent copy of this MachineFunctionInfo in MF.
Definition:PPCMachineFunctionInfo.cpp:28
llvm::PPCFunctionInfo::getVarArgsStackOffset
int getVarArgsStackOffset() const
Definition:PPCMachineFunctionInfo.h:239
llvm::PPCFunctionInfo::setHasNonRISpills
void setHasNonRISpills()
Definition:PPCMachineFunctionInfo.h:211
llvm::PPCFunctionInfo::setHasSpills
void setHasSpills()
Definition:PPCMachineFunctionInfo.h:208
llvm::PPCFunctionInfo::setFramePointerSaveIndex
void setFramePointerSaveIndex(int Idx)
Definition:PPCMachineFunctionInfo.h:167
llvm::Register
Wrapper class representing virtual and physical registers.
Definition:Register.h:19
llvm::SmallVectorImpl
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
Definition:SmallVector.h:573
llvm::SmallVectorTemplateBase::push_back
void push_back(const T &Elt)
Definition:SmallVector.h:413
llvm::SmallVector
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Definition:SmallVector.h:1196
llvm::TargetSubtargetInfo
TargetSubtargetInfo - Generic base class for all target subtargets.
Definition:TargetSubtargetInfo.h:63
llvm::Type
The instances of the Type class are immutable: once they are created, they are never changed.
Definition:Type.h:45
uint32_t
llvm
This is an optimization pass for GlobalISel generic memory operations.
Definition:AddressRanges.h:18
llvm::Offset
@ Offset
Definition:DWP.cpp:480
llvm::size
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.
Definition:STLExtras.h:1697
llvm::ISD::ArgFlagsTy
Definition:TargetCallingConv.h:27
llvm::MachineFunctionInfo
MachineFunctionInfo - This class can be derived from and used by targets to hold private target-speci...
Definition:MachineFunction.h:104

Generated on Sun Jul 20 2025 12:22:34 for LLVM by doxygen 1.9.6
[8]ページ先頭

©2009-2025 Movatter.jp