diff options
author | Chris Lattner <sabre@nondot.org> | 2005-01-28 06:12:46 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-01-28 06:12:46 +0000 |
commit | 9cb992ab72671b1c793dfa3d9d57b7ae913008bb (patch) | |
tree | 3bd118b77ff207eea7443ac83706bbde63d9be6c /lib/Analysis/DataStructure/MemoryDepAnalysis.h | |
parent | d19d89a04ca746056e8258543ba580cbde3f31be (diff) |
Remove this code as it is currently completely broken and unmaintained.
If needed, this can be resurrected from CVS.
Note that several of the interfaces (e.g. the IPModRef ones) are supersumed
by generic AliasAnalysis interfaces that have been written since this code
was developed (and they are not DSA specific).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19864 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/DataStructure/MemoryDepAnalysis.h')
-rw-r--r-- | lib/Analysis/DataStructure/MemoryDepAnalysis.h | 103 |
1 files changed, 0 insertions, 103 deletions
diff --git a/lib/Analysis/DataStructure/MemoryDepAnalysis.h b/lib/Analysis/DataStructure/MemoryDepAnalysis.h deleted file mode 100644 index 3123bee6cc..0000000000 --- a/lib/Analysis/DataStructure/MemoryDepAnalysis.h +++ /dev/null @@ -1,103 +0,0 @@ -//===- MemoryDepAnalysis.h - Compute dep graph for memory ops ---*- C++ -*-===// -// -// The LLVM Compiler Infrastructure -// -// This file was developed by the LLVM research group and is distributed under -// the University of Illinois Open Source License. See LICENSE.TXT for details. -// -//===----------------------------------------------------------------------===// -// -// This file provides a pass (MemoryDepAnalysis) that computes memory-based -// data dependences between instructions for each function in a module. -// Memory-based dependences occur due to load and store operations, but -// also the side-effects of call instructions. -// -// The result of this pass is a DependenceGraph for each function -// representing the memory-based data dependences between instructions. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_ANALYSIS_MEMORYDEPANALYSIS_H -#define LLVM_ANALYSIS_MEMORYDEPANALYSIS_H - -#include "DependenceGraph.h" -#include "llvm/Pass.h" -#include "llvm/ADT/hash_map" - -namespace llvm { - -class ModRefTable; -class DSGraph; -class FunctionModRefInfo; - -///--------------------------------------------------------------------------- -/// 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. -///--------------------------------------------------------------------------- - -class MemoryDepAnalysis : public ModulePass { - /// The following map and depGraph pointer are temporary until this class - /// becomes a FunctionPass instead of a module Pass. - hash_map<Function*, DependenceGraph*> funcMap; - DependenceGraph* funcDepGraph; - - /// Information about one function being analyzed. - const DSGraph* funcGraph; - const FunctionModRefInfo* funcModRef; - - /// Internal routine that processes each SCC of the CFG. - /// - void ProcessSCC(std::vector<BasicBlock*> &SCC, ModRefTable& ModRefAfter, - bool HasLoop); - - friend class PgmDependenceGraph; - -public: - MemoryDepAnalysis() : funcDepGraph(0), funcGraph(0), funcModRef(0) {} - ~MemoryDepAnalysis(); - - /// Driver function to compute dependence graphs for every function. - /// - bool runOnModule(Module &M); - - /// 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. - /// - DependenceGraph& getGraph(Function& F) { - hash_map<Function*, DependenceGraph*>::iterator I = funcMap.find(&F); - assert(I != funcMap.end()); - return *I->second; - } - const DependenceGraph& getGraph(Function& F) const { - hash_map<Function*, DependenceGraph*>::const_iterator I = funcMap.find(&F); - assert(I != funcMap.end()); - return *I->second; - } - - /// Release depGraphs held in the Function -> DepGraph map. - /// - virtual void releaseMemory(); - - /// Driver functions to compute the Load/Store Dep. Graph per function. - /// - bool runOnFunction(Function &F); - - /// getAnalysisUsage - This does not modify anything. It uses the Top-Down DS - /// Graph and IPModRef. - void getAnalysisUsage(AnalysisUsage &AU) const; - - /// Debugging support methods - /// - void print(std::ostream &O, const Module* = 0) const; - void dump() const; -}; - -} // End llvm namespace - -#endif |