aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2007-07-24 21:52:37 +0000
committerOwen Anderson <resistor@mac.com>2007-07-24 21:52:37 +0000
commit4beedbd0063a8ba6f97db02c3c94707d8ab45b50 (patch)
tree0b7c0cd04ba66a17d589f10abe8693e4b6c990c2 /include/llvm
parentbf31b85ea2a3bf17f3934b7e139b7475a84429fa (diff)
downloadexternal_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.h6
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.