50#ifndef LLVM_TRANSFORMS_UTILS_PREDICATEINFO_H
51#define LLVM_TRANSFORMS_UTILS_PREDICATEINFO_H
189 return PredicateMap.lookup(V);
SmallVector< MachineOperand, 4 > Cond
This file defines the DenseMap class.
PassBuilder PB(Machine, PassOpts->PTO, std::nullopt, &PIC)
This header defines various interfaces for pass management in LLVM.
This file defines the SmallSet class.
A container for analyses that lazily runs them and caches their results.
Represent the analysis usage information of a pass.
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.
Concrete subclass of DominatorTreeBase that is used to compute a normal dominator tree.
FunctionPass class - This class is used to implement most global optimizations.
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.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
PredicateInfoPrinterLegacyPass()
bool runOnFunction(Function &) override
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass.
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)