OSDN Git Service

Make it illegal to call getDependency* on non-memory instructions
authorChris Lattner <sabre@nondot.org>
Fri, 5 Dec 2008 18:46:19 +0000 (18:46 +0000)
committerChris Lattner <sabre@nondot.org>
Fri, 5 Dec 2008 18:46:19 +0000 (18:46 +0000)
like binary operators.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60600 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/Analysis/MemoryDependenceAnalysis.h
lib/Analysis/MemoryDependenceAnalysis.cpp

index 5e06121..b9138ef 100644 (file)
@@ -180,7 +180,8 @@ namespace llvm {
     virtual void getAnalysisUsage(AnalysisUsage &AU) const;
     
     /// getDependency - Return the instruction on which a memory operation
-    /// depends.  See the class comment for more details.
+    /// depends.  See the class comment for more details.  It is illegal to call
+    /// this on non-memory instructions.
     MemDepResult getDependency(Instruction *QueryInst);
 
     /// getDependencyFrom - Return the instruction on which the memory operation
index c47ec04..c75cbf2 100644 (file)
@@ -118,10 +118,11 @@ getDependencyFrom(Instruction *QueryInst, BasicBlock::iterator ScanIt,
     MemPtr = F->getPointerOperand();
     // FreeInsts erase the entire structure, not just a field.
     MemSize = ~0UL;
-  } else if (isa<CallInst>(QueryInst) || isa<InvokeInst>(QueryInst))
+  } else {
+    assert((isa<CallInst>(QueryInst) || isa<InvokeInst>(QueryInst)) &&
+            "Can only get dependency info for memory instructions!");
     return getCallSiteDependency(CallSite::get(QueryInst), ScanIt, BB);
-  else  // Non-memory instructions depend on nothing.
-    return MemDepResult::getNone();
+  }
   
   // Walk backwards through the basic block, looking for dependencies
   while (ScanIt != BB->begin()) {