lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder partitioning of variables.
authorJan Hubicka <jh@suse.cz>
Fri, 19 Jul 2013 18:19:48 +0000 (20:19 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Fri, 19 Jul 2013 18:19:48 +0000 (18:19 +0000)
* lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder
partitioning of variables.

From-SVN: r201065

gcc/lto/ChangeLog
gcc/lto/lto-partition.c

index c2cbeed..b37a879 100644 (file)
@@ -1,5 +1,10 @@
 2013-06-20  Jan Hubicka  <jh@suse.cz>
 
+       * lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder
+       partitioning of variables.
+
+2013-06-20  Jan Hubicka  <jh@suse.cz>
+
        * lto.c (read_cgraph_and_symbols): Set cgraph state.
 
 2013-06-19  Jan Hubicka  <jh@suse.cz>
index ffc8da3..8782698 100644 (file)
@@ -444,7 +444,7 @@ void
 lto_balanced_map (void)
 {
   int n_nodes = 0;
-  int n_varpool_nodes = 0, varpool_pos = 0;
+  int n_varpool_nodes = 0, varpool_pos = 0, best_varpool_pos = 0;
   struct cgraph_node **postorder =
     XCNEWVEC (struct cgraph_node *, cgraph_n_nodes);
   struct cgraph_node **order = XNEWVEC (struct cgraph_node *, cgraph_max_uid);
@@ -684,6 +684,7 @@ lto_balanced_map (void)
          best_i = i;
          best_n_nodes = lto_symtab_encoder_size (partition->encoder);
          best_total_size = total_size;
+         best_varpool_pos = varpool_pos;
        }
       if (cgraph_dump_file)
        fprintf (cgraph_dump_file, "Step %i: added %s/%i, size %i, cost %i/%i "
@@ -701,6 +702,7 @@ lto_balanced_map (void)
                fprintf (cgraph_dump_file, "Unwinding %i insertions to step %i\n",
                         i - best_i, best_i);
              undo_partition (partition, best_n_nodes);
+             varpool_pos = best_varpool_pos;
            }
          i = best_i;
          /* When we are finished, avoid creating empty partition.  */