Commit f10d1a74 by Jan Hubicka Committed by Jan Hubicka

re PR middle-end/28071 (A file that can not be compiled in reasonable time/space)

	PR rtl-optimization/28071
	* ipa-inline.c (update_caller_keys): Remove edges that
	are no longer inline candidates.

From-SVN: r115712
parent 701ed479
2006-07-24 Jan Hubicka <jh@suse.cz>
PR rtl-optimization/28071
* ipa-inline.c (update_caller_keys): Remove edges that
are no longer inline candidates.
2006-07-23 Daniel Jacobowitz <dan@codesourcery.com>
PR debug/27473
......
......@@ -413,6 +413,7 @@ update_caller_keys (fibheap_t heap, struct cgraph_node *node,
bitmap updated_nodes)
{
struct cgraph_edge *edge;
const char *failed_reason;
if (!node->local.inlinable || node->local.disregard_inline_limits
|| node->global.inlined_to)
......@@ -422,6 +423,22 @@ update_caller_keys (fibheap_t heap, struct cgraph_node *node,
bitmap_set_bit (updated_nodes, node->uid);
node->global.estimated_growth = INT_MIN;
if (!node->local.inlinable)
return;
/* Prune out edges we won't inline into anymore. */
if (!cgraph_default_inline_p (node, &failed_reason))
{
for (edge = node->callers; edge; edge = edge->next_caller)
if (edge->aux)
{
fibheap_delete_node (heap, edge->aux);
edge->aux = NULL;
if (edge->inline_failed)
edge->inline_failed = failed_reason;
}
return;
}
for (edge = node->callers; edge; edge = edge->next_caller)
if (edge->inline_failed)
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment