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)