summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2013-07-19 18:19:48 +0000
committerhubicka <hubicka@138bc75d-0d04-0410-961f-82ee72b054a4>2013-07-19 18:19:48 +0000
commit593309df6063839059404cdb2e62158da857d283 (patch)
tree169470a366f41b2ba7257f4e0f43b8351feddbcc
parent9242e60b1b4fefc286dcd98cfd80fbba7d33aad2 (diff)
downloadgcc-593309df6063839059404cdb2e62158da857d283.tar.gz
* lto-partition.c (lto_balanced_map): Fix -fno-toplevel-reorder
partitioning of variables. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@201065 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/lto/ChangeLog5
-rw-r--r--gcc/lto/lto-partition.c4
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index c2cbeedaa2a..b37a8794696 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -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>
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. */