Changes in directory llvm/lib/Analysis:

AliasSetTracker.cpp updated: 1.37 -> 1.38
---
Log message:

Fix a stale pointer issue that caused 300.twolf to fail to build on zion
last night.


---
Diffs of the changes:  (+11 -0)

 AliasSetTracker.cpp |   11 +++++++++++
 1 files changed, 11 insertions(+)


Index: llvm/lib/Analysis/AliasSetTracker.cpp
diff -u llvm/lib/Analysis/AliasSetTracker.cpp:1.37 
llvm/lib/Analysis/AliasSetTracker.cpp:1.38
--- llvm/lib/Analysis/AliasSetTracker.cpp:1.37  Tue Jan  3 00:05:22 2006
+++ llvm/lib/Analysis/AliasSetTracker.cpp       Mon Jun 26 14:20:48 2006
@@ -435,6 +435,17 @@
   // Notify the alias analysis implementation that this value is gone.
   AA.deleteValue(PtrVal);
 
+  // If this is a call instruction, remove the callsite from the appropriate
+  // AliasSet.
+  CallSite CS = CallSite::get(PtrVal);
+  if (CS.getInstruction()) {
+    Function *F = CS.getCalledFunction();
+    if (!F || !AA.doesNotAccessMemory(F)) {
+      if (AliasSet *AS = findAliasSetForCallSite(CS))
+        AS->removeCallSite(CS);
+    }
+  }
+
   // First, look up the PointerRec for this pointer.
   hash_map<Value*, AliasSet::PointerRec>::iterator I = PointerMap.find(PtrVal);
   if (I == PointerMap.end()) return;  // Noop



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to