LLVM: include/llvm/Transforms/Utils/PredicateInfo.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50#ifndef LLVM_TRANSFORMS_UTILS_PREDICATEINFO_H
51#define LLVM_TRANSFORMS_UTILS_PREDICATEINFO_H
52
60
61namespace llvm {
62
69
71
72
73
78
79
80
82public:
84
85
86
88
89
90
92
94
102
103
105
106protected:
109};
110
111
112
113
124
125
126
127
129public:
136
137protected:
141};
142
143
157
173
174
175
177public:
180
182
185
187 return PredicateMap.lookup(V);
188 }
189
190protected:
191
194
195private:
197
198
199
200
202};
203
204
206 : public PassInfoMixin {
208
209public:
213};
214
215
220
221}
222
223#endif
This file defines the BumpPtrAllocator interface.
This file defines the DenseMap class.
static Value * getCondition(Instruction *I)
This header defines various interfaces for pass management in LLVM.
PassBuilder PB(Machine, PassOpts->PTO, std::nullopt, &PIC)
const SmallVectorImpl< MachineOperand > & Cond
This file defines the SmallSet class.
A cache of @llvm.assume calls within a function.
LLVM Basic Block Representation.
Predicate
This enumeration lists the possible predicates for CmpInst subclasses.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
A wrapper class for inspecting calls to intrinsic functions.
PredicateAssume(Value *Op, IntrinsicInst *AssumeInst, Value *Condition)
Definition PredicateInfo.h:117
IntrinsicInst * AssumeInst
Definition PredicateInfo.h:116
static bool classof(const PredicateBase *PB)
Definition PredicateInfo.h:120
Definition PredicateInfo.h:81
PredicateType Type
Definition PredicateInfo.h:83
PredicateBase(const PredicateBase &)=delete
PredicateBase & operator=(const PredicateBase &)=delete
LLVM_ABI std::optional< PredicateConstraint > getConstraint() const
Fetch condition in the form of PredicateConstraint, if possible.
PredicateBase(PredicateType PT, Value *Op, Value *Condition)
Definition PredicateInfo.h:107
Value * OriginalOp
Definition PredicateInfo.h:87
Value * Condition
Definition PredicateInfo.h:93
Value * RenamedOp
Definition PredicateInfo.h:91
static bool classof(const PredicateBase *PB)
Definition PredicateInfo.h:98
bool TrueEdge
Definition PredicateInfo.h:147
static bool classof(const PredicateBase *PB)
Definition PredicateInfo.h:153
PredicateBranch(Value *Op, BasicBlock *BranchBB, BasicBlock *SplitBB, Value *Condition, bool TakenEdge)
Definition PredicateInfo.h:148
PredicateInfoPrinterPass(raw_ostream &OS)
Definition PredicateInfo.h:210
LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
static bool isRequired()
Definition PredicateInfo.h:212
friend class PredicateInfoAnnotatedWriter
Definition PredicateInfo.h:192
LLVM_ABI void verifyPredicateInfo() const
friend class PredicateInfoBuilder
Definition PredicateInfo.h:193
LLVM_ABI void print(raw_ostream &) const
LLVM_ABI PredicateInfo(Function &, DominatorTree &, AssumptionCache &, BumpPtrAllocator &)
LLVM_ABI void dump() const
const PredicateBase * getPredicateInfoFor(const Value *V) const
Definition PredicateInfo.h:186
SwitchInst * Switch
Definition PredicateInfo.h:162
Value * CaseValue
Definition PredicateInfo.h:160
PredicateSwitch(Value *Op, BasicBlock *SwitchBB, BasicBlock *TargetBB, Value *CaseValue, SwitchInst *SI)
Definition PredicateInfo.h:163
static bool classof(const PredicateBase *PB)
Definition PredicateInfo.h:169
BasicBlock * From
Definition PredicateInfo.h:130
PredicateWithEdge()=delete
BasicBlock * To
Definition PredicateInfo.h:131
PredicateWithEdge(PredicateType PType, Value *Op, BasicBlock *From, BasicBlock *To, Value *Cond)
Definition PredicateInfo.h:138
static bool classof(const PredicateBase *PB)
Definition PredicateInfo.h:133
A set of analyses that are preserved following a run of a transformation pass.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
PredicateType
Definition PredicateInfo.h:70
@ PT_Switch
Definition PredicateInfo.h:70
@ PT_Assume
Definition PredicateInfo.h:70
@ PT_Branch
Definition PredicateInfo.h:70
DWARFExpression::Operation Op
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
BumpPtrAllocatorImpl<> BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.
A CRTP mix-in to automatically provide informational APIs needed for passes.
Constraint for a predicate of the form "cmp Pred Op, OtherOp", where Op is the value the constraint a...
Definition PredicateInfo.h:74
CmpInst::Predicate Predicate
Definition PredicateInfo.h:75
Value * OtherOp
Definition PredicateInfo.h:76
Verifier pass for PredicateInfo.
Definition PredicateInfo.h:216
static bool isRequired()
Definition PredicateInfo.h:218
LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)