20 #ifndef LLVM_ANALYSIS_PHIVALUES_H 21 #define LLVM_ANALYSIS_PHIVALUES_H 79 unsigned int NextDepthNumber = 1;
94 class PhiValuesCallbackVH final :
public CallbackVH {
96 void deleted()
override;
97 void allUsesReplacedWith(
Value *New)
override;
143 std::unique_ptr<PhiValues> Result;
void releaseMemory()
Free the memory used by this class.
This class represents lattice values for constants.
Implements a dense probed hash-table based set.
const ValueSet & getValuesForPhi(const PHINode *PN)
Get the underlying values of a phi.
The analysis pass which yields a PhiValues.
A pass for printing the PhiValues for a function.
const PhiValues & getResult() const
A CRTP mix-in to automatically provide informational APIs needed for passes.
Wrapper pass for the legacy pass manager.
bool invalidate(Function &, const PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
Handle invalidation events in the new pass manager.
static bool runOnFunction(Function &F, bool PostInlining)
A set of analyses that are preserved following a run of a transformation pass.
void invalidateValue(const Value *V)
Notify PhiValues that the cached information using V is no longer valid.
A CRTP mix-in that provides informational APIs needed for analysis passes.
Represent the analysis usage information of a pass.
FunctionPass class - This class is used to implement most global optimizations.
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements...
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small...
PhiValuesPrinterPass(raw_ostream &OS)
void print(raw_ostream &OS) const
Print out the values currently in the cache.
Class for calculating and caching the underlying values of phis in a function.
API to communicate dependencies between analyses during invalidation.
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.
A special type used by analysis passes to provide an address that identifies that particular analysis...
PhiValues(const Function &F)
Construct an empty PhiValues.