diff options
author | Owen Anderson <resistor@mac.com> | 2007-07-24 21:52:37 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2007-07-24 21:52:37 +0000 |
commit | 4beedbd0063a8ba6f97db02c3c94707d8ab45b50 (patch) | |
tree | 0b7c0cd04ba66a17d589f10abe8693e4b6c990c2 /include/llvm | |
parent | bf31b85ea2a3bf17f3934b7e139b7475a84429fa (diff) | |
download | external_llvm-4beedbd0063a8ba6f97db02c3c94707d8ab45b50.zip external_llvm-4beedbd0063a8ba6f97db02c3c94707d8ab45b50.tar.gz external_llvm-4beedbd0063a8ba6f97db02c3c94707d8ab45b50.tar.bz2 |
Add initial support for non-local memory dependence analysis.
NOTE: This has only been cursorily tested. Expected improvements soon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40476 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm')
-rw-r--r-- | include/llvm/Analysis/MemoryDependenceAnalysis.h | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/include/llvm/Analysis/MemoryDependenceAnalysis.h b/include/llvm/Analysis/MemoryDependenceAnalysis.h index 014922e..8f4fca0 100644 --- a/include/llvm/Analysis/MemoryDependenceAnalysis.h +++ b/include/llvm/Analysis/MemoryDependenceAnalysis.h @@ -20,6 +20,7 @@ #include "llvm/Pass.h" #include "llvm/Support/CallSite.h" #include "llvm/ADT/DenseMap.h" +#include "llvm/ADT/SmallPtrSet.h" #include "llvm/Support/Compiler.h" #include <map> @@ -37,6 +38,7 @@ class MemoryDependenceAnalysis : public FunctionPass { Instruction* getCallSiteDependency(CallSite C, Instruction* start, bool local = true); + SmallPtrSet<Instruction*, 4> nonLocalHelper(Instruction* query, BasicBlock* block); public: static Instruction* NonLocal; @@ -63,7 +65,9 @@ class MemoryDependenceAnalysis : public FunctionPass { /// getDependency - Return the instruction on which a memory operation /// depends, starting with start. Instruction* getDependency(Instruction* query, Instruction* start = 0, - bool local = true); + BasicBlock* block = 0); + + SmallPtrSet<Instruction*, 4> getNonLocalDependency(Instruction* query); /// removeInstruction - Remove an instruction from the dependence analysis, /// updating the dependence of instructions that previously depended on it. |