aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Analysis
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-12-07 02:15:47 +0000
committerChris Lattner <sabre@nondot.org>2008-12-07 02:15:47 +0000
commit7ebcf0324668b7c6ba48832d5d8df95689a8d837 (patch)
tree7c7b204460211ae583283392784654d7a4f3ff46 /include/llvm/Analysis
parente79be944c8ced0a0cb80ede8cb9f97e4fdc6778f (diff)
downloadexternal_llvm-7ebcf0324668b7c6ba48832d5d8df95689a8d837.zip
external_llvm-7ebcf0324668b7c6ba48832d5d8df95689a8d837.tar.gz
external_llvm-7ebcf0324668b7c6ba48832d5d8df95689a8d837.tar.bz2
Introduce a new MemDep::getNonLocalPointerDependency
method. This will eventually take over load/store dep queries from getNonLocalDependency. For now it works fine, but is incredibly slow because it does no caching. Lets not switch GVN to use it until that is fixed :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60649 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Analysis')
-rw-r--r--include/llvm/Analysis/MemoryDependenceAnalysis.h12
1 files changed, 12 insertions, 0 deletions
diff --git a/include/llvm/Analysis/MemoryDependenceAnalysis.h b/include/llvm/Analysis/MemoryDependenceAnalysis.h
index 40c445c..819035d 100644
--- a/include/llvm/Analysis/MemoryDependenceAnalysis.h
+++ b/include/llvm/Analysis/MemoryDependenceAnalysis.h
@@ -214,6 +214,18 @@ namespace llvm {
/// that.
const NonLocalDepInfo &getNonLocalDependency(Instruction *QueryInst);
+
+ /// getNonLocalPointerDependency - Perform a full dependency query for an
+ /// access to the specified (non-volatile) memory location, returning the
+ /// set of instructions that either define or clobber the value.
+ ///
+ /// This method assumes the pointer has a "NonLocal" dependency within BB
+ /// and assumes that Result is empty when you call it.
+ ///
+ void getNonLocalPointerDependency(Value *Pointer, bool isLoad,
+ BasicBlock *BB,
+ SmallVectorImpl<NonLocalDepEntry> &Result);
+
/// removeInstruction - Remove an instruction from the dependence analysis,
/// updating the dependence of instructions that previously depended on it.
void removeInstruction(Instruction *InstToRemove);