re PR lto/48246 (ICE in lto_wpa_write_files)

PR lto/23754
	* lto.c (lto_1_to_1_map): Don't create empty partitions.
	(lto_balanced_map): Likewise.

From-SVN: r175174
This commit is contained in:
Jan Hubicka 2011-06-18 12:48:08 +02:00 committed by Jan Hubicka
parent 96769d3294
commit 7496868da6
2 changed files with 17 additions and 8 deletions

View File

@ -1,3 +1,9 @@
2011-06-11 Jan Hubicka <jh@suse.cz>
PR lto/23754
* lto.c (lto_1_to_1_map): Don't create empty partitions.
(lto_balanced_map): Likewise.
2011-06-11 Jan Hubicka <jh@suse.cz>
* lto.c (add_cgraph_node_to_partition_1): Break out from ...

View File

@ -1516,7 +1516,8 @@ lto_1_to_1_map (void)
for (node = cgraph_nodes; node; node = node->next)
{
if (!partition_cgraph_node_p (node))
if (!partition_cgraph_node_p (node)
|| node->aux)
continue;
file_data = node->local.lto_file_data;
@ -1545,13 +1546,13 @@ lto_1_to_1_map (void)
npartitions++;
}
if (!node->aux)
add_cgraph_node_to_partition (partition, node);
add_cgraph_node_to_partition (partition, node);
}
for (vnode = varpool_nodes; vnode; vnode = vnode->next)
{
if (!partition_varpool_node_p (vnode))
if (!partition_varpool_node_p (vnode)
|| vnode->aux)
continue;
file_data = vnode->lto_file_data;
slot = pointer_map_contains (pmap, file_data);
@ -1565,8 +1566,7 @@ lto_1_to_1_map (void)
npartitions++;
}
if (!vnode->aux)
add_varpool_node_to_partition (partition, vnode);
add_varpool_node_to_partition (partition, vnode);
}
for (node = cgraph_nodes; node; node = node->next)
node->aux = NULL;
@ -1675,8 +1675,9 @@ lto_balanced_map (void)
for (i = 0; i < n_nodes; i++)
{
if (!order[i]->aux)
add_cgraph_node_to_partition (partition, order[i]);
if (order[i]->aux)
continue;
add_cgraph_node_to_partition (partition, order[i]);
total_size -= inline_summary (order[i])->size;
/* Once we added a new node to the partition, we also want to add
@ -1856,6 +1857,8 @@ lto_balanced_map (void)
}
i = best_i;
/* When we are finished, avoid creating empty partition. */
while (i < n_nodes - 1 && order[i + 1]->aux)
i++;
if (i == n_nodes - 1)
break;
partition = new_partition ("");