[llvm-commits] CVS: llvm/lib/Analysis/AliasSetTracker.cpp

Chris Lattner lattner at cs.uiuc.edu
Sun Jul 25 00:57:47 PDT 2004



Changes in directory llvm/lib/Analysis:

AliasSetTracker.cpp updated: 1.20 -> 1.21

---
Log message:

Add support for free instructions


---
Diffs of the changes:  (+18 -2)

Index: llvm/lib/Analysis/AliasSetTracker.cpp
diff -u llvm/lib/Analysis/AliasSetTracker.cpp:1.20 llvm/lib/Analysis/AliasSetTracker.cpp:1.21
--- llvm/lib/Analysis/AliasSetTracker.cpp:1.20	Thu Jul 22 02:58:18 2004
+++ llvm/lib/Analysis/AliasSetTracker.cpp	Sun Jul 25 02:57:37 2004
@@ -233,6 +233,13 @@
   return NewPtr;
 }
 
+bool AliasSetTracker::add(FreeInst *FI) {
+  bool NewPtr;
+  AliasSet &AS = addPointer(FI->getOperand(0), ~0,
+                            AliasSet::Mods, NewPtr);
+  return NewPtr;
+}
+
 
 bool AliasSetTracker::add(CallSite CS) {
   bool NewPtr;
@@ -262,6 +269,8 @@
     return add(CI);
   else if (InvokeInst *II = dyn_cast<InvokeInst>(I))
     return add(II);
+  else if (FreeInst *FI = dyn_cast<FreeInst>(I))
+    return add(FI);
   return true;
 }
 
@@ -326,6 +335,13 @@
   return true;
 }
 
+bool AliasSetTracker::remove(FreeInst *FI) {
+  AliasSet *AS = findAliasSetForPointer(FI->getOperand(0), ~0);
+  if (!AS) return false;
+  remove(*AS);
+  return true;
+}
+
 bool AliasSetTracker::remove(CallSite CS) {
   if (Function *F = CS.getCalledFunction())
     if (AA.doesNotAccessMemory(F))
@@ -345,8 +361,8 @@
     return remove(SI);
   else if (CallInst *CI = dyn_cast<CallInst>(I))
     return remove(CI);
-  else if (InvokeInst *II = dyn_cast<InvokeInst>(I))
-    return remove(II);
+  else if (FreeInst *FI = dyn_cast<FreeInst>(I))
+    return remove(FI);
   return true;
 }
 





More information about the llvm-commits mailing list