LLVM API Documentation

llvm::BUDataStructures Class Reference

#include <DataStructure.h>

Inheritance diagram for llvm::BUDataStructures:

Inheritance graph
[legend]
Collaboration diagram for llvm::BUDataStructures:

Collaboration graph
[legend]
List of all members.

Public Types

typedef std::set< std::pair<
Instruction *, Function * > > 
ActualCalleesTy
typedef ActualCalleesTy::const_iterator callee_iterator

Public Member Functions

 ~BUDataStructures ()
virtual bool runOnModule (Module &M)
bool hasGraph (const Function &F) const
DSGraphgetDSGraph (const Function &F) const
DSGraphgetGlobalsGraph () const
EquivalenceClasses< GlobalValue * > & getGlobalECs ()
DSGraphCreateGraphForExternalFunction (const Function &F)
void deleteValue (Value *V)
void copyValue (Value *From, Value *To)
void print (std::ostream &O, const Module *M) const
void releaseMyMemory ()
virtual void getAnalysisUsage (AnalysisUsage &AU) const
const ActualCalleesTygetActualCallees () const
callee_iterator callee_begin (Instruction *I) const
callee_iterator callee_end (Instruction *I) const

Protected Attributes

hash_map< Function *, DSGraph * > DSInfo
DSGraphGlobalsGraph
std::set< std::pair< Instruction *,
Function * > > 
ActualCallees
std::map< std::vector< Function * >,
std::pair< DSGraph *, std::vector<
DSNodeHandle > > > * 
IndCallGraphMap
EquivalenceClasses< GlobalValue * > GlobalECs

Detailed Description

BUDataStructures - The analysis that computes the interprocedurally closed data structure graphs for all of the functions in the program. This pass only performs a "Bottom Up" propagation (hence the name).

Definition at line 105 of file DataStructure.h.


Member Typedef Documentation

typedef std::set<std::pair<Instruction*, Function*> > llvm::BUDataStructures::ActualCalleesTy

Definition at line 163 of file DataStructure.h.

typedef ActualCalleesTy::const_iterator llvm::BUDataStructures::callee_iterator

Definition at line 168 of file DataStructure.h.


Constructor & Destructor Documentation

llvm::BUDataStructures::~BUDataStructures (  )  [inline]

Definition at line 120 of file DataStructure.h.

References releaseMyMemory().


Member Function Documentation

callee_iterator llvm::BUDataStructures::callee_begin ( Instruction I  )  const [inline]

Definition at line 169 of file DataStructure.h.

References ActualCallees.

callee_iterator llvm::BUDataStructures::callee_end ( Instruction I  )  const [inline]

Definition at line 173 of file DataStructure.h.

References ActualCallees.

void BUDataStructures::copyValue ( Value From,
Value To 
)

Definition at line 648 of file BottomUpClosure.cpp.

References abort(), DSInfo, F, G, getDSGraph(), getFnForValue(), llvm::DSGraph::getScalarMap(), and GlobalECs.

DSGraph & BUDataStructures::CreateGraphForExternalFunction ( const Function F  ) 

Definition at line 411 of file BottomUpClosure.cpp.

References abort(), DSInfo, F, llvm::DSGraph::getTargetData(), GlobalECs, and GlobalsGraph.

Referenced by getDSGraph().

void BUDataStructures::deleteValue ( Value V  ) 

deleteValue/copyValue - Interfaces to update the DSGraphs in the program. These correspond to the interfaces defined in the AliasAnalysis class.

Definition at line 630 of file BottomUpClosure.cpp.

References DSInfo, F, getDSGraph(), getFnForValue(), llvm::DSGraph::getReturnNodes(), llvm::DSGraph::getScalarMap(), and V.

const ActualCalleesTy& llvm::BUDataStructures::getActualCallees (  )  const [inline]

Definition at line 164 of file DataStructure.h.

References ActualCallees.

Referenced by llvm::EquivClassGraphs::runOnModule(), and llvm::CompleteBUDataStructures::runOnModule().

virtual void llvm::BUDataStructures::getAnalysisUsage ( AnalysisUsage AU  )  const [inline, virtual]

getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. If a pass specifies that it uses a particular analysis result to this function, it can then use the getAnalysis<AnalysisType>() function, below.

Reimplemented from llvm::Pass.

Reimplemented in llvm::CompleteBUDataStructures.

Definition at line 158 of file DataStructure.h.

References llvm::AnalysisUsage::addRequired(), and llvm::AnalysisUsage::setPreservesAll().

DSGraph& llvm::BUDataStructures::getDSGraph ( const Function F  )  const [inline]

getDSGraph - Return the data structure graph for the specified function.

Reimplemented in llvm::CompleteBUDataStructures.

Definition at line 130 of file DataStructure.h.

References CreateGraphForExternalFunction(), DSInfo, F, and I.

Referenced by copyValue(), and deleteValue().

EquivalenceClasses<GlobalValue*>& llvm::BUDataStructures::getGlobalECs (  )  [inline]

Definition at line 141 of file DataStructure.h.

References GlobalECs.

Referenced by llvm::TDDataStructures::runOnModule(), llvm::EquivClassGraphs::runOnModule(), and llvm::CompleteBUDataStructures::runOnModule().

DSGraph& llvm::BUDataStructures::getGlobalsGraph (  )  const [inline]

Definition at line 139 of file DataStructure.h.

References GlobalsGraph.

Referenced by llvm::TDDataStructures::runOnModule(), llvm::EquivClassGraphs::runOnModule(), and llvm::CompleteBUDataStructures::runOnModule().

bool llvm::BUDataStructures::hasGraph ( const Function F  )  const [inline]

Reimplemented in llvm::CompleteBUDataStructures.

Definition at line 124 of file DataStructure.h.

References DSInfo, and F.

void BUDataStructures::print ( std::ostream &  O,
const Module M 
) const [virtual]

print - Print out the analysis results...

Reimplemented from llvm::Pass.

Reimplemented in llvm::CompleteBUDataStructures.

Definition at line 343 of file Printer.cpp.

References DontPrintAnything, M, and printCollection().

void BUDataStructures::releaseMyMemory (  ) 

Definition at line 396 of file BottomUpClosure.cpp.

References DSInfo, E, GlobalsGraph, and I.

Referenced by ~BUDataStructures().

bool BUDataStructures::runOnModule ( Module M  )  [virtual]

runOnModule - Virtual method overriden by subclasses to process the module being operated on.

Implements llvm::ModulePass.

Reimplemented in llvm::CompleteBUDataStructures.

Definition at line 120 of file BottomUpClosure.cpp.

References ActualCallees, llvm::Module::begin(), BuildGlobalECs(), llvm::DSGraph::DontCloneAuxCallNodes, llvm::DSGraph::DontCloneCallNodes, DSInfo, E, EliminateUsesOfECGlobals(), llvm::Module::end(), llvm::ReachabilityCloner::getClonedNH(), llvm::LocalDataStructures::getGlobalECs(), llvm::DSGraph::getGlobalsGraph(), llvm::LocalDataStructures::getGlobalsGraph(), llvm::Module::getMainFunction(), llvm::DSGraph::getNodeForValue(), llvm::DSGraph::getScalarMap(), GlobalECs, GlobalsGraph, I, llvm::DSGraph::IgnoreGlobals, IndCallGraphMap, M, llvm::DSGraph::MarkFormalArgs, llvm::DSGraph::markIncompleteNodes(), llvm::DSGraph::maskIncompleteMarkers(), NumCallEdges, RC, llvm::DSGraph::removeTriviallyDeadNodes(), llvm::DSGraph::setPrintAuxCalls(), Stack, and llvm::X.


Member Data Documentation

std::set<std::pair<Instruction*, Function*> > llvm::BUDataStructures::ActualCallees [protected]

Definition at line 110 of file DataStructure.h.

Referenced by callee_begin(), callee_end(), getActualCallees(), llvm::CompleteBUDataStructures::runOnModule(), and runOnModule().

hash_map<Function*, DSGraph*> llvm::BUDataStructures::DSInfo [protected]

Definition at line 108 of file DataStructure.h.

Referenced by copyValue(), CreateGraphForExternalFunction(), deleteValue(), llvm::CompleteBUDataStructures::getDSGraph(), getDSGraph(), llvm::CompleteBUDataStructures::hasGraph(), hasGraph(), releaseMyMemory(), llvm::CompleteBUDataStructures::runOnModule(), and runOnModule().

EquivalenceClasses<GlobalValue*> llvm::BUDataStructures::GlobalECs [protected]

GlobalECs - The equivalence classes for each global value that is merged with other global values in the DSGraphs.

Definition at line 118 of file DataStructure.h.

Referenced by copyValue(), CreateGraphForExternalFunction(), getGlobalECs(), llvm::CompleteBUDataStructures::runOnModule(), and runOnModule().

DSGraph* llvm::BUDataStructures::GlobalsGraph [protected]

Definition at line 109 of file DataStructure.h.

Referenced by CreateGraphForExternalFunction(), getGlobalsGraph(), releaseMyMemory(), llvm::CompleteBUDataStructures::runOnModule(), and runOnModule().

std::map<std::vector<Function*>, std::pair<DSGraph*, std::vector<DSNodeHandle> > >* llvm::BUDataStructures::IndCallGraphMap [protected]

Definition at line 114 of file DataStructure.h.

Referenced by runOnModule().


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