LLVM  9.0.0svn
Classes | Public Types | Public Member Functions | List of all members
llvm::PhiValues Class Reference

Class for calculating and caching the underlying values of phis in a function. More...

#include "llvm/Analysis/PhiValues.h"

Public Types

using ValueSet = SmallPtrSet< Value *, 4 >
 

Public Member Functions

 PhiValues (const Function &F)
 Construct an empty PhiValues. More...
 
const ValueSetgetValuesForPhi (const PHINode *PN)
 Get the underlying values of a phi. More...
 
void invalidateValue (const Value *V)
 Notify PhiValues that the cached information using V is no longer valid. More...
 
void releaseMemory ()
 Free the memory used by this class. More...
 
void print (raw_ostream &OS) const
 Print out the values currently in the cache. More...
 
bool invalidate (Function &, const PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
 Handle invalidation events in the new pass manager. More...
 

Detailed Description

Class for calculating and caching the underlying values of phis in a function.

Initially the PhiValues is empty, and gets incrementally populated whenever it is queried.

Definition at line 42 of file PhiValues.h.

Member Typedef Documentation

◆ ValueSet

Definition at line 44 of file PhiValues.h.

Constructor & Destructor Documentation

◆ PhiValues()

llvm::PhiValues::PhiValues ( const Function F)
inline

Construct an empty PhiValues.

Definition at line 47 of file PhiValues.h.

References F, getValuesForPhi(), invalidate(), invalidateValue(), print(), and releaseMemory().

Referenced by llvm::PhiValuesAnalysis::run().

Member Function Documentation

◆ getValuesForPhi()

const PhiValues::ValueSet & PhiValues::getValuesForPhi ( const PHINode PN)

Get the underlying values of a phi.

This returns the cached value if PN has previously been processed, otherwise it processes it first.

Definition at line 113 of file PhiValues.cpp.

References assert(), and llvm::SmallVectorBase::empty().

Referenced by MergeAliasResults(), PhiValues(), and llvm::PhiValuesPrinterPass::run().

◆ invalidate()

bool PhiValues::invalidate ( Function ,
const PreservedAnalyses PA,
FunctionAnalysisManager::Invalidator  
)

◆ invalidateValue()

void PhiValues::invalidateValue ( const Value V)

Notify PhiValues that the cached information using V is no longer valid.

Whenever a phi has its operands modified the cached values for that phi (and the phis that use that phi) become invalid. A user of PhiValues has to notify it of this by calling invalidateValue on either the operand or the phi, which will then clear the relevant cached information.

Definition at line 123 of file PhiValues.cpp.

References N, and llvm::SmallVectorTemplateBase< T >::push_back().

Referenced by llvm::MemoryDependenceResults::invalidateCachedPointerInfo(), PhiValues(), and llvm::MemoryDependenceResults::removeInstruction().

◆ print()

void PhiValues::print ( raw_ostream OS) const

Print out the values currently in the cache.

Definition at line 149 of file PhiValues.cpp.

References I, and N.

Referenced by PhiValues(), and llvm::PhiValuesPrinterPass::run().

◆ releaseMemory()

void PhiValues::releaseMemory ( )

Free the memory used by this class.

Definition at line 143 of file PhiValues.cpp.

Referenced by llvm::PhiValuesWrapperPass::getResult(), and PhiValues().


The documentation for this class was generated from the following files: