reintroduce original (asserting) semantics of CallSite(Instruction *II)
add instead a CallSite(Value* V) constructor that is consistent with ImmutableCallSize
and use that one in client code
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109553 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/include/llvm/Support/CallSite.h b/include/llvm/Support/CallSite.h
index d21c6ca..56f5aa9 100644
--- a/include/llvm/Support/CallSite.h
+++ b/include/llvm/Support/CallSite.h
@@ -55,6 +55,7 @@
CallSiteBase(InstrTy *II) {
assert(II && "Null instruction given?");
*this = get(II);
+ assert(I.getPointer() && "Not a call?");
}
/// CallSiteBase::get - This static method is sort of like a constructor. It
@@ -293,6 +294,7 @@
public:
CallSite() {}
CallSite(Base B) : Base(B) {}
+ CallSite(Value* V) : Base(V) {}
CallSite(CallInst *CI) : Base(CI) {}
CallSite(InvokeInst *II) : Base(II) {}
CallSite(Instruction *II) : Base(II) {}
diff --git a/lib/Analysis/MemoryDependenceAnalysis.cpp b/lib/Analysis/MemoryDependenceAnalysis.cpp
index 662752f..4c3cf80 100644
--- a/lib/Analysis/MemoryDependenceAnalysis.cpp
+++ b/lib/Analysis/MemoryDependenceAnalysis.cpp
@@ -120,7 +120,7 @@
Pointer = CI->getArgOperand(0);
// calls to free() erase the entire structure
PointerSize = ~0ULL;
- } else if (CallSite InstCS = Inst) {
+ } else if (CallSite InstCS = cast<Value>(Inst)) {
// Debug intrinsics don't cause dependences.
if (isa<DbgInfoIntrinsic>(Inst)) continue;
// If these two calls do not interfere, look past it.