16 #ifndef LLVM_ANALYSIS_ASSUMPTIONCACHE_H 17 #define LLVM_ANALYSIS_ASSUMPTIONCACHE_H 52 class AffectedValueCallbackVH final :
public CallbackVH {
55 void deleted()
override;
56 void allUsesReplacedWith(
Value *)
override;
65 friend AffectedValueCallbackVH;
115 AssumeHandles.
clear();
116 AffectedValues.
clear();
131 return AssumeHandles;
139 auto AVI = AffectedValues.
find_as(const_cast<Value *>(V));
140 if (AVI == AffectedValues.
end())
185 class FunctionCallbackVH final :
public CallbackVH {
188 void deleted()
override;
197 friend FunctionCallbackVH;
220 void verifyAnalysis()
const override;
232 #endif // LLVM_ANALYSIS_ASSUMPTIONCACHE_H DiagnosticInfoOptimizationBase::Argument NV
This class represents lattice values for constants.
A Module instance is used to store all the information related to an LLVM module. ...
Printer pass for the AssumptionAnalysis results.
This class represents a function call, abstracting a target machine's calling convention.
An immutable pass that tracks lazily created AssumptionCache objects.
A cache of @llvm.assume calls within a function.
MutableArrayRef< WeakTrackingVH > assumptions()
Access the list of assumption handles currently tracked for this function.
bool doFinalization(Module &) override
doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes...
A CRTP mix-in to automatically provide informational APIs needed for passes.
void clear()
Clear the cache of @llvm.assume intrinsics for a function.
A set of analyses that are preserved following a run of a transformation pass.
MutableArrayRef - Represent a mutable reference to an array (0 or more elements consecutively in memo...
AssumptionCache(Function &F)
Construct an AssumptionCache from a function by scanning all of its instructions. ...
A CRTP mix-in that provides informational APIs needed for analysis passes.
void releaseMemory() override
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memo...
A function analysis which provides an AssumptionCache.
AssumptionCache run(Function &F, FunctionAnalysisManager &)
ImmutablePass class - This class is used to provide information that does not need to be run...
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
void updateAffectedValues(CallInst *CI)
Update the cache of values being affected by this assumption (i.e.
MutableArrayRef< WeakTrackingVH > assumptionsFor(const Value *V)
Access the list of assumptions which affect this value.
void registerAssumption(CallInst *CI)
Add an @llvm.assume intrinsic to this function's cache.
API to communicate dependencies between analyses during invalidation.
iterator find_as(const LookupKeyT &Val)
Alternate version of find() which allows a different, and possibly less expensive, key type.
bool invalidate(Function &, const PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
This cache is designed to be self-updating and so it should never be invalidated. ...
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream...
Value handle with callbacks on RAUW and destruction.
A container for analyses that lazily runs them and caches their results.
This header defines various interfaces for pass management in LLVM.
AssumptionPrinterPass(raw_ostream &OS)
A special type used by analysis passes to provide an address that identifies that particular analysis...