Commit c21e80b8 by Diego Novillo Committed by Diego Novillo

re PR bootstrap/51346 (LTO bootstrap failed with bootstrap-profiled)

	PR bootstrap/51346
	* ipa-inline.c (can_inline_edge_p): If the edge E has a
	statement, use the statement's inline indicator instead
	of E's.
	Remove consistency check.

From-SVN: r181894
parent d4e5417a
2011-12-01 Diego Novillo <dnovillo@google.com>
PR bootstrap/51346
* ipa-inline.c (can_inline_edge_p): If the edge E has a
statement, use the statement's inline indicator instead
of E's.
Remove consistency check.
2011-12-01 Diego Novillo <dnovillo@google.com>
PR bootstrap/51346
Revert
2011-11-29 Diego Novillo <dnovillo@google.com>
......@@ -246,6 +246,14 @@ can_inline_edge_p (struct cgraph_edge *e, bool report)
struct function *caller_cfun = DECL_STRUCT_FUNCTION (e->caller->decl);
struct function *callee_cfun
= callee ? DECL_STRUCT_FUNCTION (callee->decl) : NULL;
bool call_stmt_cannot_inline_p;
/* If E has a call statement in it, use the inline attribute from
the statement, otherwise use the inline attribute in E. Edges
will not have statements when working in WPA mode. */
call_stmt_cannot_inline_p = (e->call_stmt)
? gimple_call_cannot_inline_p (e->call_stmt)
: e->call_stmt_cannot_inline_p;
if (!caller_cfun && e->caller->clone_of)
caller_cfun = DECL_STRUCT_FUNCTION (e->caller->clone_of->decl);
......@@ -270,7 +278,7 @@ can_inline_edge_p (struct cgraph_edge *e, bool report)
e->inline_failed = CIF_OVERWRITABLE;
return false;
}
else if (e->call_stmt_cannot_inline_p)
else if (call_stmt_cannot_inline_p)
{
e->inline_failed = CIF_MISMATCHED_ARGUMENTS;
inlinable = false;
......@@ -343,14 +351,6 @@ can_inline_edge_p (struct cgraph_edge *e, bool report)
}
}
/* Be sure that the cannot_inline_p flag is up to date. */
gcc_checking_assert (!e->call_stmt
|| (gimple_call_cannot_inline_p (e->call_stmt)
== e->call_stmt_cannot_inline_p)
/* In -flto-partition=none mode we really keep things out of
sync because call_stmt_cannot_inline_p is set at cgraph
merging when function bodies are not there yet. */
|| (in_lto_p && !gimple_call_cannot_inline_p (e->call_stmt)));
if (!inlinable && report)
report_inline_failed_reason (e);
return inlinable;
......
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