Cleanups, move the getAnalysisUsage method to the .cpp file

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8265 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2003-08-31 19:41:17 +00:00
parent 95008bca9e
commit 1da3398600

View File

@ -14,14 +14,13 @@
#define LLVM_ANALYSIS_MEMORYDEPANALYSIS_H #define LLVM_ANALYSIS_MEMORYDEPANALYSIS_H
#include "llvm/Analysis/DependenceGraph.h" #include "llvm/Analysis/DependenceGraph.h"
#include "llvm/Analysis/IPModRef.h"
#include "llvm/Analysis/DataStructure.h"
#include "llvm/Pass.h" #include "llvm/Pass.h"
#include "Support/TarjanSCCIterator.h" #include "Support/TarjanSCCIterator.h"
#include "Support/hash_map" #include "Support/hash_map"
class Instruction;
class ModRefTable; class ModRefTable;
class DSGraph;
class FunctionModRefInfo;
///--------------------------------------------------------------------------- ///---------------------------------------------------------------------------
/// class MemoryDepGraph: /// class MemoryDepGraph:
@ -33,8 +32,7 @@ class ModRefTable;
/// allowed to use a FunctionPass such as this one. /// allowed to use a FunctionPass such as this one.
///--------------------------------------------------------------------------- ///---------------------------------------------------------------------------
class MemoryDepAnalysis: /* Use if FunctionPass: public DependenceGraph, */ class MemoryDepAnalysis : public Pass {
public Pass {
/// The following map and depGraph pointer are temporary until this class /// The following map and depGraph pointer are temporary until this class
/// becomes a FunctionPass instead of a module Pass. */ /// becomes a FunctionPass instead of a module Pass. */
hash_map<Function*, DependenceGraph*> funcMap; hash_map<Function*, DependenceGraph*> funcMap;
@ -45,23 +43,16 @@ class MemoryDepAnalysis: /* Use if FunctionPass: public DependenceGraph, */
const FunctionModRefInfo* funcModRef; const FunctionModRefInfo* funcModRef;
/// Internal routine that processes each SCC of the CFG. /// Internal routine that processes each SCC of the CFG.
void MemoryDepAnalysis::ProcessSCC(SCC<Function*>& S, void ProcessSCC(SCC<Function*>& S, ModRefTable& ModRefAfter);
ModRefTable& ModRefAfter);
friend class PgmDependenceGraph; friend class PgmDependenceGraph;
public: public:
MemoryDepAnalysis() MemoryDepAnalysis() : funcDepGraph(0), funcGraph(0), funcModRef(0) {}
: /*DependenceGraph(),*/ funcDepGraph(NULL),
funcGraph(NULL), funcModRef(NULL) { }
~MemoryDepAnalysis(); ~MemoryDepAnalysis();
///------------------------------------------------------------------------
/// TEMPORARY FUNCTIONS TO MAKE THIS A MODULE PASS ---
/// These functions will go away once this class becomes a FunctionPass.
/// Driver function to compute dependence graphs for every function. /// Driver function to compute dependence graphs for every function.
bool run(Module& M); bool run(Module &M);
/// getGraph() -- Retrieve the dependence graph for a function. /// getGraph() -- Retrieve the dependence graph for a function.
/// This is temporary and will go away once this is a FunctionPass. /// This is temporary and will go away once this is a FunctionPass.
@ -83,21 +74,14 @@ public:
/// ///
virtual void releaseMemory(); virtual void releaseMemory();
///----END TEMPORARY FUNCTIONS---------------------------------------------
/// Driver functions to compute the Load/Store Dep. Graph per function. /// Driver functions to compute the Load/Store Dep. Graph per function.
/// ///
bool runOnFunction(Function& _func); bool runOnFunction(Function &F);
/// getAnalysisUsage - This does not modify anything. /// getAnalysisUsage - This does not modify anything. It uses the Top-Down DS
/// It uses the Top-Down DS Graph and IPModRef. /// Graph and IPModRef.
/// void getAnalysisUsage(AnalysisUsage &AU) const;
void getAnalysisUsage(AnalysisUsage &AU) const {
AU.setPreservesAll();
AU.addRequired<TDDataStructures>();
AU.addRequired<IPModRef>();
}
/// Debugging support methods /// Debugging support methods
/// ///
@ -105,7 +89,4 @@ public:
void dump() const; void dump() const;
}; };
//===----------------------------------------------------------------------===//
#endif #endif