From c525ba9a3f44ebd7ae89e3efa0bde60161c08582 Mon Sep 17 00:00:00 2001 From: Jan Hubicka Date: Fri, 19 Jul 2013 20:19:48 +0200 Subject: [PATCH] lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder partitioning of variables. * lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder partitioning of variables. From-SVN: r201065 --- gcc/lto/ChangeLog | 5 +++++ gcc/lto/lto-partition.c | 4 +++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog index c2cbeedaa2a..b37a8794696 100644 --- a/gcc/lto/ChangeLog +++ b/gcc/lto/ChangeLog @@ -1,3 +1,8 @@ +2013-06-20 Jan Hubicka + + * lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder + partitioning of variables. + 2013-06-20 Jan Hubicka * lto.c (read_cgraph_and_symbols): Set cgraph state. diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c index ffc8da3e94e..87826986a63 100644 --- a/gcc/lto/lto-partition.c +++ b/gcc/lto/lto-partition.c @@ -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. */