tree-dfa.c (renumber_gimple_stmt_uids): Also number PHIs.
authorRichard Biener <rguenth@gcc.gnu.org>
Wed, 30 Mar 2011 15:43:59 +0000 (15:43 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Wed, 30 Mar 2011 15:43:59 +0000 (15:43 +0000)
2011-03-30  Richard Guenther  <rguenther@suse.de>

* tree-dfa.c (renumber_gimple_stmt_uids): Also number PHIs.
* lto-streamer-out.c (output_function): Do not use
renumber_gimple_stmt_uids.
* lto-streamer-in.c (input_function): Likewise.

From-SVN: r171734

gcc/lto-streamer-in.c
gcc/lto-streamer-out.c
gcc/tree-dfa.c

index 383bfc230600e4c2c466bb1a44777eca0526d3c3..70f0b0a80200099a9de71ef45322ae28765dfe89 100644 (file)
@@ -1287,7 +1287,16 @@ input_function (tree fn_decl, struct data_in *data_in,
 
   /* Fix up the call statements that are mentioned in the callgraph
      edges.  */
-  renumber_gimple_stmt_uids ();
+  set_gimple_stmt_max_uid (cfun, 0);
+  FOR_ALL_BB (bb)
+    {
+      gimple_stmt_iterator gsi;
+      for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+       {
+         gimple stmt = gsi_stmt (gsi);
+         gimple_set_uid (stmt, inc_gimple_stmt_max_uid (cfun));
+       }
+    }
   stmts = (gimple *) xcalloc (gimple_stmt_max_uid (fn), sizeof (gimple));
   FOR_ALL_BB (bb)
     {
index 48579478b4d43deabaad0859b1d6df0fc3b2b167..d740d03b7385c8a52a199d0654827211e3b0779e 100644 (file)
@@ -1981,8 +1981,19 @@ output_function (struct cgraph_node *node)
   /* We will renumber the statements.  The code that does this uses
      the same ordering that we use for serializing them so we can use
      the same code on the other end and not have to write out the
-     statement numbers.  */
-  renumber_gimple_stmt_uids ();
+     statement numbers.  We do not assign UIDs to PHIs here because
+     virtual PHIs get re-computed on-the-fly which would make numbers
+     inconsistent.  */
+  set_gimple_stmt_max_uid (cfun, 0);
+  FOR_ALL_BB (bb)
+    {
+      gimple_stmt_iterator gsi;
+      for (gsi = gsi_start_bb (bb); !gsi_end_p (gsi); gsi_next (&gsi))
+       {
+         gimple stmt = gsi_stmt (gsi);
+         gimple_set_uid (stmt, inc_gimple_stmt_max_uid (cfun));
+       }
+    }
 
   /* Output the code for the function.  */
   FOR_ALL_BB_FN (bb, fn)
index 9766f00ddf757d13cd5791f710ea96f798c562b4..70e3c1d35cdfc7dd0cccda6f5af5216f12af6622 100644 (file)
@@ -151,6 +151,11 @@ renumber_gimple_stmt_uids (void)
   FOR_ALL_BB (bb)
     {
       gimple_stmt_iterator bsi;
+      for (bsi = gsi_start_phis (bb); !gsi_end_p (bsi); gsi_next (&bsi))
+       {
+         gimple stmt = gsi_stmt (bsi);
+         gimple_set_uid (stmt, inc_gimple_stmt_max_uid (cfun));
+       }
       for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi); gsi_next (&bsi))
        {
          gimple stmt = gsi_stmt (bsi);