mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-08-17 21:29:20 +00:00
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:
parent
95008bca9e
commit
1da3398600
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user