19#ifndef LLVM_ANALYSIS_PHIVALUES_H
20#define LLVM_ANALYSIS_PHIVALUES_H
70 FunctionAnalysisManager::Invalidator &);
76 unsigned int NextDepthNumber = 1;
93 void deleted()
override;
94 void allUsesReplacedWith(
Value *New)
override;
102 DenseSet<PhiValuesCallbackVH, DenseMapInfo<Value *>> TrackedValues;
109 void processPhi(
const PHINode *PN, SmallVectorImpl<const PHINode *> &Stack);
141 std::unique_ptr<PhiValues> Result;
151 void releaseMemory()
override;
This file defines the DenseMap class.
This file defines the DenseSet and SmallDenseSet classes.
static bool runOnFunction(Function &F, bool PostInlining)
This header defines various interfaces for pass management in LLVM.
This file implements a set that has insertion order iteration characteristics.
Represent the analysis usage information of a pass.
Value handle with callbacks on RAUW and destruction.
The analysis pass which yields a PhiValues.
LLVM_ABI PhiValues run(Function &F, FunctionAnalysisManager &)
LLVM_ABI PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM)
PhiValuesPrinterPass(raw_ostream &OS)
const PhiValues & getResult() const
Class for calculating and caching the underlying values of phis in a function.
LLVM_ABI void invalidateValue(const Value *V)
Notify PhiValues that the cached information using V is no longer valid.
LLVM_ABI const ValueSet & getValuesForPhi(const PHINode *PN)
Get the underlying values of a phi.
SmallSetVector< Value *, 4 > ValueSet
LLVM_ABI bool invalidate(Function &, const PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
Handle invalidation events in the new pass manager.
LLVM_ABI void releaseMemory()
Free the memory used by this class.
LLVM_ABI void print(raw_ostream &OS) const
Print out the values currently in the cache.
PhiValues(const Function &F)
Construct an empty PhiValues.
A set of analyses that are preserved following a run of a transformation pass.
A SetVector that performs no allocations if smaller than a certain size.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
A CRTP mix-in that provides informational APIs needed for analysis passes.
A special type used by analysis passes to provide an address that identifies that particular analysis...
A CRTP mix-in to automatically provide informational APIs needed for passes.