diff options
author | Chris Lattner <sabre@nondot.org> | 2008-12-07 02:15:47 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2008-12-07 02:15:47 +0000 |
commit | 7ebcf0324668b7c6ba48832d5d8df95689a8d837 (patch) | |
tree | 7c7b204460211ae583283392784654d7a4f3ff46 /include/llvm/Analysis | |
parent | e79be944c8ced0a0cb80ede8cb9f97e4fdc6778f (diff) | |
download | external_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.h | 12 |
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); |