[llvm-commits] [llvm] r49674 - in /llvm/trunk: include/llvm/Analysis/AliasSetTracker.h lib/Analysis/AliasSetTracker.cpp

Dan Gohman gohman at apple.com
Mon Apr 14 11:34:51 PDT 2008


Author: djg
Date: Mon Apr 14 13:34:50 2008
New Revision: 49674

URL: http://llvm.org/viewvc/llvm-project?rev=49674&view=rev
Log:
Teach AliasSetTracker about VAArgInst.

Modified:
    llvm/trunk/include/llvm/Analysis/AliasSetTracker.h
    llvm/trunk/lib/Analysis/AliasSetTracker.cpp

Modified: llvm/trunk/include/llvm/Analysis/AliasSetTracker.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Analysis/AliasSetTracker.h?rev=49674&r1=49673&r2=49674&view=diff

==============================================================================
--- llvm/trunk/include/llvm/Analysis/AliasSetTracker.h (original)
+++ llvm/trunk/include/llvm/Analysis/AliasSetTracker.h Mon Apr 14 13:34:50 2008
@@ -29,6 +29,7 @@
 class LoadInst;
 class StoreInst;
 class FreeInst;
+class VAArgInst;
 class AliasSetTracker;
 class AliasSet;
 
@@ -281,6 +282,7 @@
   bool add(LoadInst *LI);
   bool add(StoreInst *SI);
   bool add(FreeInst *FI);
+  bool add(VAArgInst *VAAI);
   bool add(CallSite CS);          // Call/Invoke instructions
   bool add(CallInst *CI)   { return add(CallSite(CI)); }
   bool add(InvokeInst *II) { return add(CallSite(II)); }
@@ -295,6 +297,7 @@
   bool remove(LoadInst *LI);
   bool remove(StoreInst *SI);
   bool remove(FreeInst *FI);
+  bool remove(VAArgInst *VAAI);
   bool remove(CallSite CS);
   bool remove(CallInst *CI)   { return remove(CallSite(CI)); }
   bool remove(InvokeInst *II) { return remove(CallSite(II)); }

Modified: llvm/trunk/lib/Analysis/AliasSetTracker.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/AliasSetTracker.cpp?rev=49674&r1=49673&r2=49674&view=diff

==============================================================================
--- llvm/trunk/lib/Analysis/AliasSetTracker.cpp (original)
+++ llvm/trunk/lib/Analysis/AliasSetTracker.cpp Mon Apr 14 13:34:50 2008
@@ -292,6 +292,12 @@
   return NewPtr;
 }
 
+bool AliasSetTracker::add(VAArgInst *VAAI) {
+  bool NewPtr;
+  addPointer(VAAI->getOperand(0), ~0, AliasSet::ModRef, NewPtr);
+  return NewPtr;
+}
+
 
 bool AliasSetTracker::add(CallSite CS) {
   if (AA.doesNotAccessMemory(CS))
@@ -321,6 +327,8 @@
     return add(II);
   else if (FreeInst *FI = dyn_cast<FreeInst>(I))
     return add(FI);
+  else if (VAArgInst *VAAI = dyn_cast<VAArgInst>(I))
+    return add(VAAI);
   return true;
 }
 
@@ -414,6 +422,13 @@
   return true;
 }
 
+bool AliasSetTracker::remove(VAArgInst *VAAI) {
+  AliasSet *AS = findAliasSetForPointer(VAAI->getOperand(0), ~0);
+  if (!AS) return false;
+  remove(*AS);
+  return true;
+}
+
 bool AliasSetTracker::remove(CallSite CS) {
   if (AA.doesNotAccessMemory(CS))
     return false; // doesn't alias anything
@@ -434,6 +449,8 @@
     return remove(CI);
   else if (FreeInst *FI = dyn_cast<FreeInst>(I))
     return remove(FI);
+  else if (VAArgInst *VAAI = dyn_cast<VAArgInst>(I))
+    return remove(VAAI);
   return true;
 }
 





More information about the llvm-commits mailing list