LLVM: include/llvm/CodeGen/Analysis.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_CODEGEN_ANALYSIS_H
14#define LLVM_CODEGEN_ANALYSIS_H
15
20
21namespace llvm {
30struct EVT;
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
48 const unsigned *Indices,
49 const unsigned *IndicesEnd,
50 unsigned CurIndex = 0);
51
54 unsigned CurIndex = 0) {
56}
57
58
59
61 SmallVectorImpl<Type *> &Types,
62 SmallVectorImpl *Offsets = nullptr,
64
65
66
67
68
69
70
71
72void ComputeValueVTs(const TargetLowering &TLI, const DataLayout &DL, Type *Ty,
73 SmallVectorImpl &ValueVTs,
74 SmallVectorImpl *MemVTs = nullptr,
75 SmallVectorImpl *Offsets = nullptr,
77void ComputeValueVTs(const TargetLowering &TLI, const DataLayout &DL, Type *Ty,
78 SmallVectorImpl &ValueVTs,
79 SmallVectorImpl *MemVTs,
80 SmallVectorImpl<uint64_t> *FixedOffsets,
82
83
84
85
86
87
88
89
91 SmallVectorImpl &ValueTys,
92 SmallVectorImpl<uint64_t> *Offsets = nullptr,
94
95
97
98
99
100
101
103
104
105
107
108
109
111
112
113
115
116
117
118
119
120
121
123 bool ReturnsFirstArg = false);
124
125
126
127
128
129
130
132 const ReturnInst *Ret,
133 const TargetLoweringBase &TLI,
134 bool *AllowDifferingSizes = nullptr);
135
136
137
138
140 const ReturnInst *Ret,
141 const TargetLoweringBase &TLI,
142 bool ReturnsFirstArg = false);
143
144
145
147
148DenseMap<const MachineBasicBlock *, int>
150
151}
152
153#endif
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
This file defines the DenseMap class.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
Predicate
This enumeration lists the possible predicates for CmpInst subclasses.
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This base class for TargetLowering contains the SelectionDAG-independent parts that can be used from ...
This class defines information used to lower LLVM code to legal SelectionDAG operators that the targe...
Primary interface to the complete machine description for the target machine.
static constexpr TypeSize getZero()
The instances of the Type class are immutable: once they are created, they are never changed.
CondCode
ISD::CondCode enum - These are ordered carefully to make the bitfields below work out,...
This is an optimization pass for GlobalISel generic memory operations.
ISD::CondCode getICmpCondCode(ICmpInst::Predicate Pred)
getICmpCondCode - Return the ISD condition code corresponding to the given LLVM IR integer condition ...
void ComputeValueVTs(const TargetLowering &TLI, const DataLayout &DL, Type *Ty, SmallVectorImpl< EVT > &ValueVTs, SmallVectorImpl< EVT > *MemVTs=nullptr, SmallVectorImpl< TypeSize > *Offsets=nullptr, TypeSize StartingOffset=TypeSize::getZero())
ComputeValueVTs - Given an LLVM IR type, compute a sequence of EVTs that represent all the individual...
void ComputeValueTypes(const DataLayout &DL, Type *Ty, SmallVectorImpl< Type * > &Types, SmallVectorImpl< TypeSize > *Offsets=nullptr, TypeSize StartingOffset=TypeSize::getZero())
Given an LLVM IR type, compute non-aggregate subtypes.
bool returnTypeIsEligibleForTailCall(const Function *F, const Instruction *I, const ReturnInst *Ret, const TargetLoweringBase &TLI, bool ReturnsFirstArg=false)
Test if given that the input instruction is in the tail call position if the return type or any attri...
void computeValueLLTs(const DataLayout &DL, Type &Ty, SmallVectorImpl< LLT > &ValueTys, SmallVectorImpl< uint64_t > *Offsets=nullptr, uint64_t StartingOffset=0)
computeValueLLTs - Given an LLVM IR type, compute a sequence of LLTs that represent all the individua...
ISD::CondCode getFCmpCondCode(FCmpInst::Predicate Pred)
getFCmpCondCode - Return the ISD condition code corresponding to the given LLVM IR floating-point con...
bool attributesPermitTailCall(const Function *F, const Instruction *I, const ReturnInst *Ret, const TargetLoweringBase &TLI, bool *AllowDifferingSizes=nullptr)
Test if given that the input instruction is in the tail call position, if there is an attribute misma...
bool isInTailCallPosition(const CallBase &Call, const TargetMachine &TM, bool ReturnsFirstArg=false)
Test if the given instruction is in a position to be optimized with a tail-call.
ISD::CondCode getFCmpCodeWithoutNaN(ISD::CondCode CC)
getFCmpCodeWithoutNaN - Given an ISD condition code comparing floats, return the equivalent code if w...
bool funcReturnsFirstArgOfCall(const CallInst &CI)
Returns true if the parent of CI returns CI's first argument after calling CI.
GlobalValue * ExtractTypeInfo(Value *V)
ExtractTypeInfo - Returns the type info, possibly bitcast, encoded in V.
unsigned ComputeLinearIndex(Type *Ty, const unsigned *Indices, const unsigned *IndicesEnd, unsigned CurIndex=0)
Compute the linearized index of a member in a nested aggregate/struct/array.
DenseMap< const MachineBasicBlock *, int > getEHScopeMembership(const MachineFunction &MF)