50#ifndef LLVM_TRANSFORMS_UTILS_PREDICATEINFO_H
51#define LLVM_TRANSFORMS_UTILS_PREDICATEINFO_H
188 return PredicateMap.lookup(V);
This file defines the DenseMap class.
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 container for analyses that lazily runs them and caches their results.
This represents the llvm.assume intrinsic.
A cache of @llvm.assume calls within a function.
LLVM Basic Block Representation.
Predicate
This enumeration lists the possible predicates for CmpInst subclasses.
This class represents an Operation in the Expression.
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)
IntrinsicInst * AssumeInst
static bool classof(const PredicateBase *PB)
PredicateBase(const PredicateBase &)=delete
PredicateBase & operator=(const PredicateBase &)=delete
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)
virtual ~PredicateBase()=default
static bool classof(const PredicateBase *PB)
PredicateBranch(Value *Op, BasicBlock *BranchBB, BasicBlock *SplitBB, Value *Condition, bool TakenEdge)
An assembly annotator class to print PredicateInfo information in comments.
Printer pass for PredicateInfo.
PredicateInfoPrinterPass(raw_ostream &OS)
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
Encapsulates PredicateInfo, including all data associated with memory accesses.
void verifyPredicateInfo() const
void print(raw_ostream &) 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.
SmallSet - This maintains a set of unique values, optimizing for the case when the set is small (less...
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
An intrusive list with ownership and callbacks specified/controlled by ilist_traits,...
This class implements an extremely fast bulk output stream that can only output to a stream.
This file defines classes to implement an intrusive doubly linked list class (i.e.
This file defines the ilist_node class template, which is a convenient base class for creating classe...
This is an optimization pass for GlobalISel generic memory operations.
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.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)