diff --git a/include/llvm/Analysis/MemoryDependenceAnalysis.h b/include/llvm/Analysis/MemoryDependenceAnalysis.h
index 00c3755..e61a431 100644
--- a/include/llvm/Analysis/MemoryDependenceAnalysis.h
+++ b/include/llvm/Analysis/MemoryDependenceAnalysis.h
@@ -223,18 +223,16 @@
     /// getDependencyFrom - Return the instruction on which the memory operation
     /// 'QueryInst' depends.  This starts scanning from the instruction before
     /// the position indicated by ScanIt.
-    ///
-    /// Note that this method does no caching at all.  You should use
-    /// getDependency where possible.
     MemDepResult getDependencyFrom(Instruction *QueryInst,
                                    BasicBlock::iterator ScanIt, BasicBlock *BB);
+    MemDepResult getCallSiteDependencyFrom(CallSite C,
+                                           BasicBlock::iterator ScanIt,
+                                           BasicBlock *BB);
     
     /// verifyRemoved - Verify that the specified instruction does not occur
     /// in our internal data structures.
     void verifyRemoved(Instruction *Inst) const;
     
-    MemDepResult getCallSiteDependency(CallSite C, BasicBlock::iterator ScanIt,
-                                       BasicBlock *BB);
   };
 
 } // End llvm namespace
diff --git a/lib/Analysis/MemoryDependenceAnalysis.cpp b/lib/Analysis/MemoryDependenceAnalysis.cpp
index cf748df..7c00a6c 100644
--- a/lib/Analysis/MemoryDependenceAnalysis.cpp
+++ b/lib/Analysis/MemoryDependenceAnalysis.cpp
@@ -52,10 +52,11 @@
 }
 
 
-/// getCallSiteDependency - Private helper for finding the local dependencies
-/// of a call site.
+/// getCallSiteDependencyFrom - Private helper for finding the local
+/// dependencies of a call site.
 MemDepResult MemoryDependenceAnalysis::
-getCallSiteDependency(CallSite CS, BasicBlock::iterator ScanIt, BasicBlock *BB) {
+getCallSiteDependencyFrom(CallSite CS, BasicBlock::iterator ScanIt,
+                          BasicBlock *BB) {
   // Walk backwards through the block, looking for dependencies
   while (ScanIt != BB->begin()) {
     Instruction *Inst = --ScanIt;
@@ -138,7 +139,7 @@
     // FreeInsts erase the entire structure, not just a field.
     MemSize = ~0UL;
   } else if (isa<CallInst>(QueryInst) || isa<InvokeInst>(QueryInst)) {
-    return getCallSiteDependency(CallSite::get(QueryInst), ScanIt, BB);
+    return getCallSiteDependencyFrom(CallSite::get(QueryInst), ScanIt, BB);
   } else {
     // Otherwise, this is a vaarg or non-memory instruction, just return a
     // clobber dependency on the previous inst.
