diff options
author | Owen Anderson <resistor@mac.com> | 2007-08-08 21:53:20 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2007-08-08 21:53:20 +0000 |
commit | 179463c0d4c20bfb2c6b1e697eed6f16305a201e (patch) | |
tree | 068a2a3efd1c4a168b234bd9aea46d3087ef25b9 /include/llvm/Analysis | |
parent | 787a713bb2121c141c560a643d88ecfa2060e612 (diff) | |
download | external_llvm-179463c0d4c20bfb2c6b1e697eed6f16305a201e.zip external_llvm-179463c0d4c20bfb2c6b1e697eed6f16305a201e.tar.gz external_llvm-179463c0d4c20bfb2c6b1e697eed6f16305a201e.tar.bz2 |
Cleanup and comment-ize the memdep header.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40948 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Analysis')
-rw-r--r-- | include/llvm/Analysis/MemoryDependenceAnalysis.h | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/include/llvm/Analysis/MemoryDependenceAnalysis.h b/include/llvm/Analysis/MemoryDependenceAnalysis.h index 2abb6e6..409c10b 100644 --- a/include/llvm/Analysis/MemoryDependenceAnalysis.h +++ b/include/llvm/Analysis/MemoryDependenceAnalysis.h @@ -31,23 +31,24 @@ class Instruction; class MemoryDependenceAnalysis : public FunctionPass { private: - + // A map from instructions to their dependency, with a boolean + // flags for whether this mapping is confirmed or not typedef DenseMap<Instruction*, std::pair<const Instruction*, bool> > - depMapType; - + depMapType; depMapType depGraphLocal; - typedef DenseMap<const Instruction*, - SmallPtrSet<Instruction*, 4> > reverseDepMapType; + // A reverse mapping form dependencies to the dependees. This is + // used when removing instructions to keep the cache coherent. + typedef DenseMap<const Instruction*, SmallPtrSet<Instruction*, 4> > + reverseDepMapType; reverseDepMapType reverseDep; - - const Instruction* getCallSiteDependency(CallSite C, Instruction* start, - BasicBlock* block); - void nonLocalHelper(Instruction* query, BasicBlock* block, - DenseMap<BasicBlock*, Value*>& resp); - public: + public: + // Special marker indicating that the query has no dependency + // in the specified block. static const Instruction* NonLocal; + + // Special marker indicating that the query has no dependency at all static const Instruction* None; static char ID; // Class identification, replacement for typeinfo @@ -79,6 +80,12 @@ class MemoryDependenceAnalysis : public FunctionPass { /// removeInstruction - Remove an instruction from the dependence analysis, /// updating the dependence of instructions that previously depended on it. void removeInstruction(Instruction* rem); + + private: + const Instruction* getCallSiteDependency(CallSite C, Instruction* start, + BasicBlock* block); + void nonLocalHelper(Instruction* query, BasicBlock* block, + DenseMap<BasicBlock*, Value*>& resp); }; } // End llvm namespace |