16 #ifndef LLVM_ANALYSIS_ASSUMPTIONCACHE_H
17 #define LLVM_ANALYSIS_ASSUMPTIONCACHE_H
49 class AffectedValueCallbackVH final :
public CallbackVH {
51 void deleted()
override;
52 void allUsesReplacedWith(
Value *)
override;
61 friend AffectedValueCallbackVH;
104 AssumeHandles.clear();
105 AffectedValues.
clear();
120 return AssumeHandles;
128 auto AVI = AffectedValues.
find_as(const_cast<Value *>(V));
129 if (AVI == AffectedValues.
end())
172 class FunctionCallbackVH final :
public CallbackVH {
174 void deleted()
override;
183 friend FunctionCallbackVH;
DiagnosticInfoOptimizationBase::Argument NV
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 .assume calls within a 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.
Function Alias Analysis false
void clear()
Clear the cache of .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.
MutableArrayRef< WeakVH > assumptions()
Access the list of assumption handles currently tracked for this function.
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.
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
AssumptionCache run(Function &F, FunctionAnalysisManager &)
ImmutablePass class - This class is used to provide information that does not need to be run...
~AssumptionCacheTracker() override
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.
void registerAssumption(CallInst *CI)
Add an .assume intrinsic to this function's cache.
MutableArrayRef< WeakVH > assumptionsFor(const Value *V)
Access the list of assumptions which affect this value.
iterator find_as(const LookupKeyT &Val)
Alternate version of find() which allows a different, and possibly less expensive, key type.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream...
AssumptionCache & getAssumptionCache(Function &F)
Get the cached assumptions for a function.
Value handle with callbacks on RAUW and destruction.
A container for analyses that lazily runs them and caches their results.
void verifyAnalysis() const override
verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis infor...
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...