aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2010-10-08 02:50:24 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2010-10-08 00:50:24 +0000
commit937f7f69bc169cfa47c929911ddb396f76b349ac (patch)
treef781f5633eb83ef53a309e2e07f5fb611dab1ed8
parent1b3fad81562943d8e5b35b7196907e6296e91a77 (diff)
downloadgcc-937f7f69bc169cfa47c929911ddb396f76b349ac.zip
gcc-937f7f69bc169cfa47c929911ddb396f76b349ac.tar.gz
gcc-937f7f69bc169cfa47c929911ddb396f76b349ac.tar.bz2
* lto.c (lto_balanced_map): Fix accounting of program size.
From-SVN: r165145
-rw-r--r--gcc/lto/ChangeLog4
-rw-r--r--gcc/lto/lto.c8
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index fbe447f..ea393ba 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -1,5 +1,9 @@
2010-10-06 Jan Hubicka <jh@suse.cz>
+ * lto.c (lto_balanced_map): Fix accounting of program size.
+
+2010-10-06 Jan Hubicka <jh@suse.cz>
+
* lto.c (lto_balanced_map): Do not produce empty partitions.
2010-10-06 Andi Kleen <ak@linux.intel.com>
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index 25280a7..3baea80 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -995,7 +995,7 @@ lto_balanced_map (void)
struct cgraph_node **order = XNEWVEC (struct cgraph_node *, cgraph_max_uid);
int i, postorder_len;
struct cgraph_node *node;
- int total_size = 0;
+ int total_size = 0, best_total_size = 0;
int partition_size;
ltrans_partition partition;
unsigned int last_visited_cgraph_node = 0, last_visited_varpool_node = 0;
@@ -1017,7 +1017,7 @@ lto_balanced_map (void)
if (partition_cgraph_node_p (node))
{
order[n_nodes++] = node;
- total_size += node->local.inline_summary.self_size;
+ total_size += node->global.size;
}
}
free (postorder);
@@ -1035,6 +1035,7 @@ lto_balanced_map (void)
for (i = 0; i < n_nodes; i++)
{
add_cgraph_node_to_partition (partition, order[i]);
+ total_size -= order[i]->global.size;
/* Once we added a new node to the partition, we also want to add
all referenced variables unless they was already added into some
@@ -1069,7 +1070,6 @@ lto_balanced_map (void)
last_visited_cgraph_node);
refs = &node->ref_list;
- total_size -= node->local.inline_summary.self_size;
last_visited_cgraph_node++;
gcc_assert (node->analyzed);
@@ -1195,6 +1195,7 @@ lto_balanced_map (void)
partition->cgraph_set->nodes);
best_n_varpool_nodes = VEC_length (varpool_node_ptr,
partition->varpool_set->nodes);
+ best_total_size = total_size;
}
if (cgraph_dump_file)
fprintf (cgraph_dump_file, "Step %i: added %s, size %i, cost %i/%i best %i/%i, step %i\n", i,
@@ -1218,6 +1219,7 @@ lto_balanced_map (void)
partition = new_partition ("");
last_visited_cgraph_node = 0;
last_visited_varpool_node = 0;
+ total_size = best_total_size;
cost = 0;
if (cgraph_dump_file)