Update of /cvsroot/monetdb/pathfinder/compiler/mil
In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv2663/compiler/mil

Modified Files:
      Tag: M5XQ
        mil_dce.c 
Log Message:
propagated changes of Saturday Jun 20 2009
from the development trunk to the M5XQ branch

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009/06/20 - stmane: compiler/mil/mil_dce.c,1.29
propagated changes of Friday Jun 19 2009 - Saturday Jun 20 2009
from the May2009 branch to the development trunk

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2009/06/19 - tsheyar: compiler/mil/mil_dce.c,1.28.2.1
-- Fix bug in the MIL dead code elimination.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


U mil_dce.c
Index: mil_dce.c
===================================================================
RCS file: /cvsroot/monetdb/pathfinder/compiler/mil/mil_dce.c,v
retrieving revision 1.27.4.1
retrieving revision 1.27.4.2
diff -u -d -r1.27.4.1 -r1.27.4.2
--- mil_dce.c   7 May 2009 14:46:39 -0000       1.27.4.1
+++ mil_dce.c   20 Jun 2009 09:48:57 -0000      1.27.4.2
@@ -505,16 +505,19 @@
         case m_assgn:
             assert(n->child[0]->kind == m_var);
 
+            mark_used = PFbitset_get (used_vars, n->child[0]->sem.ident);
+
+            /* The variable is unused before the assignment (but may be
+               used in the right part again -- e.g., 'a := a.reverse();' */
+            PFbitset_set (used_vars, n->child[0]->sem.ident, false);
+
             /* Propagate the information whether the input has to
                be materialized or not. */
             mil_materialize_elimination (n->child[1],
                                          used_vars,
-                                         PFbitset_get (used_vars,
-                                                       n->child[0]->sem.ident),
+                                         mark_used,
                                          change);
 
-            /* The variable is unused before the assignment. */
-            PFbitset_set (used_vars, n->child[0]->sem.ident, false);
             break;
 
         case m_var:


------------------------------------------------------------------------------
Are you an open source citizen? Join us for the Open Source Bridge conference!
Portland, OR, June 17-19. Two days of sessions, one day of unconference: $250.
Need another reason to go? 24-hour hacker lounge. Register today!
http://ad.doubleclick.net/clk;215844324;13503038;v?http://opensourcebridge.org
_______________________________________________
Monetdb-pf-checkins mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/monetdb-pf-checkins

Reply via email to