From ae7502cb5f32fd33e79651cab60bc3f0135627bd Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Mon, 28 Jun 2004 00:27:34 +0000 Subject: [PATCH] Moved to lib/Analysis/DataStructure git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14449 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Analysis/MemoryDepAnalysis.h | 103 ---------------------- 1 file changed, 103 deletions(-) delete mode 100644 include/llvm/Analysis/MemoryDepAnalysis.h diff --git a/include/llvm/Analysis/MemoryDepAnalysis.h b/include/llvm/Analysis/MemoryDepAnalysis.h deleted file mode 100644 index b63ffa564a4..00000000000 --- a/include/llvm/Analysis/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 "llvm/Analysis/DependenceGraph.h" -#include "llvm/Pass.h" -#include "Support/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 Pass { - /// The following map and depGraph pointer are temporary until this class - /// becomes a FunctionPass instead of a module Pass. - hash_map 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 &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 run(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::iterator I = funcMap.find(&F); - assert(I != funcMap.end()); - return *I->second; - } - const DependenceGraph& getGraph(Function& F) const { - hash_map::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; - void dump() const; -}; - -} // End llvm namespace - -#endif -- 2.34.1