|
LLVM
3.7.0
|
An analysis pass which caches information about the entire Module. More...
#include <GCMetadata.h>
Public Types | |
| typedef std::vector < std::unique_ptr < GCFunctionInfo > > | FuncInfoVec |
| List of per function info objects. More... | |
| typedef SmallVector < std::unique_ptr< GCStrategy > , 1 >::const_iterator | iterator |
Public Member Functions | |
| GCStrategy * | getGCStrategy (const StringRef Name) |
| Lookup the GCStrategy object associated with the given gc name. More... | |
| FuncInfoVec::iterator | funcinfo_begin () |
| FuncInfoVec::iterator | funcinfo_end () |
| GCModuleInfo () | |
| void | clear () |
| clear - Resets the pass. More... | |
| iterator | begin () const |
| begin/end - Iterators for used strategies. More... | |
| iterator | end () const |
| GCFunctionInfo & | getFunctionInfo (const Function &F) |
| get - Look up function metadata. More... | |
Public Member Functions inherited from llvm::ImmutablePass | |
| virtual void | initializePass () |
| initializePass - This method may be overriden by immutable passes to allow them to perform various initialization actions they require. More... | |
| ImmutablePass * | getAsImmutablePass () override |
| bool | runOnModule (Module &) override |
| ImmutablePasses are never run. More... | |
| ImmutablePass (char &pid) | |
| ~ImmutablePass () override | |
Public Member Functions inherited from llvm::ModulePass | |
| Pass * | createPrinterPass (raw_ostream &O, const std::string &Banner) const override |
| createPrinterPass - Get a module printer pass. More... | |
| void | assignPassManager (PMStack &PMS, PassManagerType T) override |
| Find appropriate Module Pass Manager in the PM Stack and add self into that manager. More... | |
| PassManagerType | getPotentialPassManagerType () const override |
| Return what kind of Pass Manager can manage this pass. More... | |
| ModulePass (char &pid) | |
| ~ModulePass () override | |
Public Member Functions inherited from llvm::Pass | |
| Pass (PassKind K, char &pid) | |
| virtual | ~Pass () |
| PassKind | getPassKind () const |
| virtual const char * | getPassName () const |
| getPassName - Return a nice clean name for a pass. More... | |
| AnalysisID | getPassID () const |
| getPassID - Return the PassID number that corresponds to this pass. More... | |
| virtual bool | doInitialization (Module &) |
| doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run. More... | |
| virtual bool | doFinalization (Module &) |
| doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes have run. More... | |
| virtual void | print (raw_ostream &O, const Module *M) const |
| print - Print out the internal state of the pass. More... | |
| void | dump () const |
| virtual void | preparePassManager (PMStack &) |
| Check if available pass managers are suitable for this pass or not. More... | |
| void | setResolver (AnalysisResolver *AR) |
| AnalysisResolver * | getResolver () const |
| virtual void | getAnalysisUsage (AnalysisUsage &) const |
| getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. More... | |
| virtual void | releaseMemory () |
| releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. More... | |
| virtual void * | getAdjustedAnalysisPointer (AnalysisID ID) |
| getAdjustedAnalysisPointer - This method is used when a pass implements an analysis interface through multiple inheritance. More... | |
| virtual PMDataManager * | getAsPMDataManager () |
| virtual void | verifyAnalysis () const |
| verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis information. More... | |
| virtual void | dumpPassStructure (unsigned Offset=0) |
| template<typename AnalysisType > | |
| AnalysisType * | getAnalysisIfAvailable () const |
| getAnalysisIfAvailable<AnalysisType>() - Subclasses use this function to get analysis information that might be around, for example to update it. More... | |
| bool | mustPreserveAnalysisID (char &AID) const |
| mustPreserveAnalysisID - This method serves the same function as getAnalysisIfAvailable, but works if you just have an AnalysisID. More... | |
| template<typename AnalysisType > | |
| AnalysisType & | getAnalysis () const |
| getAnalysis<AnalysisType>() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function. More... | |
| template<typename AnalysisType > | |
| AnalysisType & | getAnalysis (Function &F) |
| getAnalysis<AnalysisType>() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function. More... | |
| template<typename AnalysisType > | |
| AnalysisType & | getAnalysisID (AnalysisID PI) const |
| template<typename AnalysisType > | |
| AnalysisType & | getAnalysisID (AnalysisID PI, Function &F) |
Static Public Attributes | |
| static char | ID = 0 |
Additional Inherited Members | |
Static Public Member Functions inherited from llvm::Pass | |
| static const PassInfo * | lookupPassInfo (const void *TI) |
| static const PassInfo * | lookupPassInfo (StringRef Arg) |
| static Pass * | createPass (AnalysisID ID) |
An analysis pass which caches information about the entire Module.
Records both the function level information used by GCRoots and a cache of the 'active' gc strategy objects for the current Module.
Definition at line 154 of file GCMetadata.h.
| typedef std::vector<std::unique_ptr<GCFunctionInfo> > llvm::GCModuleInfo::FuncInfoVec |
List of per function info objects.
In theory, Each of these may be associated with a different GC.
Definition at line 168 of file GCMetadata.h.
| typedef SmallVector<std::unique_ptr<GCStrategy>,1>::const_iterator llvm::GCModuleInfo::iterator |
Definition at line 183 of file GCMetadata.h.
| GCModuleInfo::GCModuleInfo | ( | ) |
Definition at line 57 of file GCMetadata.cpp.
References llvm::PassRegistry::getPassRegistry(), and llvm::initializeGCModuleInfoPass().
|
inline |
begin/end - Iterators for used strategies.
Definition at line 196 of file GCMetadata.h.
Referenced by llvm::AsmPrinter::doFinalization().
| void GCModuleInfo::clear | ( | ) |
clear - Resets the pass.
Any pass, which uses GCModuleInfo, should call it in doFinalization().
Definition at line 76 of file GCMetadata.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear().
|
inline |
Definition at line 197 of file GCMetadata.h.
Referenced by llvm::AsmPrinter::doFinalization().
|
inline |
Definition at line 170 of file GCMetadata.h.
|
inline |
Definition at line 171 of file GCMetadata.h.
| GCFunctionInfo & GCModuleInfo::getFunctionInfo | ( | const Function & | F | ) |
get - Look up function metadata.
This is currently assumed have the side effect of initializing the associated GCStrategy. That will soon change.
Definition at line 61 of file GCMetadata.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), F(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::find(), llvm::Function::getGC(), getGCStrategy(), llvm::Function::hasGC(), I, and llvm::GlobalValue::isDeclaration().
| GCStrategy * GCModuleInfo::getGCStrategy | ( | const StringRef | Name | ) |
Lookup the GCStrategy object associated with the given gc name.
Objects are owned internally; No caller should attempt to delete the returned objects.
Definition at line 151 of file GCMetadata.cpp.
References llvm::Registry< T, U >::begin(), llvm::Registry< T, U >::end(), llvm::Registry< T, U >::entries(), error(), and llvm::report_fatal_error().
Referenced by getFunctionInfo().
|
static |
Definition at line 185 of file GCMetadata.h.
1.8.6