50#ifndef LLVM_TRANSFORMS_UTILS_PREDICATEINFO_H
51#define LLVM_TRANSFORMS_UTILS_PREDICATEINFO_H
219 return PredicateMap.lookup(V);
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.
AttrKind
This enumeration lists the attributes that can be associated with parameters, function results,...
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.
IntrinsicInst * AssumeInst
PredicateAssume(PredicateType PT, Value *Op, IntrinsicInst *AssumeInst, Value *Condition)
static bool classof(const PredicateBase *PB)
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)
static bool classof(const PredicateBase *PB)
static bool classof(const PredicateBase *PB)
PredicateBranch(Value *Op, BasicBlock *BranchBB, BasicBlock *SplitBB, Value *Condition, bool TakenEdge)
Attribute::AttrKind AttrKind
static bool classof(const PredicateBase *PB)
PredicateBundleAssume(Value *Op, IntrinsicInst *AssumeInst, Attribute::AttrKind AttrKind)
PredicateConditionAssume(Value *Op, IntrinsicInst *AssumeInst, Value *Condition)
static bool classof(const PredicateBase *PB)
PredicateInfoPrinterPass(raw_ostream &OS)
LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
friend class PredicateInfoAnnotatedWriter
LLVM_ABI void verifyPredicateInfo() const
friend class PredicateInfoBuilder
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
PredicateSwitch(Value *Op, BasicBlock *SwitchBB, BasicBlock *TargetBB, Value *CaseValue, SwitchInst *SI)
static bool classof(const PredicateBase *PB)
PredicateWithEdge()=delete
PredicateWithEdge(PredicateType PType, Value *Op, BasicBlock *From, BasicBlock *To, Value *Cond)
static bool classof(const PredicateBase *PB)
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.
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...
CmpInst::Predicate Predicate
Verifier pass for PredicateInfo.
LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)