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

Andrew Lenharth alenhar2 at cs.uiuc.edu
Tue Apr 4 19:42:48 PDT 2006



Changes in directory llvm/lib/Analysis/DataStructure:

Local.cpp updated: 1.143 -> 1.144
---
Log message:

revert this, this is safe, if conservative.  leave a note to that effect

---
Diffs of the changes:  (+7 -9)

 Local.cpp |   16 +++++++---------
 1 files changed, 7 insertions(+), 9 deletions(-)


Index: llvm/lib/Analysis/DataStructure/Local.cpp
diff -u llvm/lib/Analysis/DataStructure/Local.cpp:1.143 llvm/lib/Analysis/DataStructure/Local.cpp:1.144
--- llvm/lib/Analysis/DataStructure/Local.cpp:1.143	Wed Mar 15 13:03:16 2006
+++ llvm/lib/Analysis/DataStructure/Local.cpp	Tue Apr  4 21:42:36 2006
@@ -546,17 +546,15 @@
       case Intrinsic::vaend:
         return;  // noop
       case Intrinsic::memcpy_i32: 
-      case Intrinsic::memcpy_i64: {
-        //write first location
-        if (DSNode *N = getValueDest(**CS.arg_begin()).getNode())
-          N->setModifiedMarker();
-        //and read second pointer
-        if (DSNode *N = getValueDest(**(CS.arg_begin() + 1)).getNode())
-          N->setReadMarker();
-        return;
-      }
+      case Intrinsic::memcpy_i64:
       case Intrinsic::memmove_i32:
       case Intrinsic::memmove_i64: {
+        //This is over aggressive.  What these functions do is not make the 
+        // targets pointers alias, but rather merge the out edges of the graphs
+        // for the pointers according to the type merging of the graphs.
+        //Simply merging the two graphs is a crude approximation to this.
+        //I might be wrong though.
+
         // Merge the first & second arguments, and mark the memory read and
         // modified.
         DSNodeHandle RetNH = getValueDest(**CS.arg_begin());






More information about the llvm-commits mailing list