LLVM API Documentation

Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

llvm::MemoryDepAnalysis Class Reference

#include <MemoryDepAnalysis.h>

Inheritance diagram for llvm::MemoryDepAnalysis:

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

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MemoryDepAnalysis ()
 ~MemoryDepAnalysis ()
bool runOnModule (Module &M)
DependenceGraphgetGraph (Function &F)
const DependenceGraphgetGraph (Function &F) const
virtual void releaseMemory ()
bool runOnFunction (Function &F)
void getAnalysisUsage (AnalysisUsage &AU) const
void print (std::ostream &O) const
void dump () const

Friends

class PgmDependenceGraph

Detailed Description

--------------------------------------------------------------------------- class MemoryDepGraph: Dependence analysis for load/store/call instructions using IPModRef info computed at the granularity of individual DSGraph nodes.

This pass computes memory dependences for each function in a module. It can be made a FunctionPass once a Pass (such as Parallelize) is allowed to use a FunctionPass such as this one. ---------------------------------------------------------------------------

Definition at line 43 of file MemoryDepAnalysis.h.


Constructor & Destructor Documentation

llvm::MemoryDepAnalysis::MemoryDepAnalysis  )  [inline]
 

Definition at line 61 of file MemoryDepAnalysis.h.

llvm::MemoryDepAnalysis::~MemoryDepAnalysis  ) 
 

Definition at line 482 of file MemoryDepAnalysis.cpp.

References releaseMemory().


Member Function Documentation

void llvm::MemoryDepAnalysis::dump  )  const
 

Reimplemented from llvm::Pass.

Definition at line 490 of file MemoryDepAnalysis.cpp.

References print().

void llvm::MemoryDepAnalysis::getAnalysisUsage AnalysisUsage AU  )  const [virtual]
 

getAnalysisUsage - This does not modify anything. It uses the Top-Down DS Graph and IPModRef.

Reimplemented from llvm::Pass.

Definition at line 208 of file MemoryDepAnalysis.cpp.

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

const DependenceGraph& llvm::MemoryDepAnalysis::getGraph Function F  )  const [inline]
 

Definition at line 77 of file MemoryDepAnalysis.h.

References I.

DependenceGraph& llvm::MemoryDepAnalysis::getGraph Function F  )  [inline]
 

getGraph - Retrieve the dependence graph for a function. This is temporary and will go away once this is a FunctionPass. At that point, this class should directly inherit from DependenceGraph.

Definition at line 72 of file MemoryDepAnalysis.h.

References I.

void llvm::MemoryDepAnalysis::print std::ostream &  O  )  const [virtual]
 

Debugging support methods

Reimplemented from llvm::Pass.

Definition at line 408 of file MemoryDepAnalysis.cpp.

References E, llvm::Value::getName(), I, and llvm::DependenceGraph::print().

Referenced by dump().

void llvm::MemoryDepAnalysis::releaseMemory  )  [virtual]
 

Release depGraphs held in the Function -> DepGraph map.

Reimplemented from llvm::Pass.

Definition at line 469 of file MemoryDepAnalysis.cpp.

References E, and I.

Referenced by ~MemoryDepAnalysis().

bool llvm::MemoryDepAnalysis::runOnFunction Function F  ) 
 

Driver functions to compute the Load/Store Dep. Graph per function.

Definition at line 429 of file MemoryDepAnalysis.cpp.

References E, llvm::FunctionModRefInfo::getFuncGraph(), I, llvm::Function::isExternal(), llvm::scc_begin(), and llvm::scc_end().

Referenced by runOnModule().

bool llvm::MemoryDepAnalysis::runOnModule Module M  )  [virtual]
 

Driver function to compute dependence graphs for every function.

Implements llvm::ModulePass.

Definition at line 460 of file MemoryDepAnalysis.cpp.

References llvm::Module::begin(), llvm::Module::end(), and runOnFunction().


Friends And Related Function Documentation

friend class PgmDependenceGraph [friend]
 

Definition at line 58 of file MemoryDepAnalysis.h.


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