This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
PATCH: PR lto/46760: LTO bootstrap doesn't work with FDO
- From: "H.J. Lu" <hongjiu dot lu at intel dot com>
- To: gcc-patches at gcc dot gnu dot org
- Date: Mon, 10 Jan 2011 05:27:21 -0800
- Subject: PATCH: PR lto/46760: LTO bootstrap doesn't work with FDO
- Reply-to: "H.J. Lu" <hjl dot tools at gmail dot com>
Hi,
I checked in this patch to fix LTO bootstrap work with FDO on
Intel Core i7. It is preaproved in
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46760#c23
H.J.
----
Index: ChangeLog
===================================================================
--- ChangeLog (revision 168630)
+++ ChangeLog (working copy)
@@ -1,3 +1,9 @@
+2011-01-10 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR lto/46760
+ * tree-inline.c (tree_can_inline_p): Check e->call_stmt before
+ calling gimple_call_set_cannot_inline.
+
2011-01-10 Iain Sandoe <iains@gcc.gnu.org>
* config/darwin-sections.def: Remove unused section.
Index: tree-inline.c
===================================================================
--- tree-inline.c (revision 168630)
+++ tree-inline.c (working copy)
@@ -5380,7 +5380,8 @@ tree_can_inline_p (struct cgraph_edge *e
if (inline_forbidden_into_p (caller, callee))
{
e->inline_failed = CIF_UNSPECIFIED;
- gimple_call_set_cannot_inline (e->call_stmt, true);
+ if (e->call_stmt)
+ gimple_call_set_cannot_inline (e->call_stmt, true);
return false;
}
@@ -5388,7 +5389,8 @@ tree_can_inline_p (struct cgraph_edge *e
if (!targetm.target_option.can_inline_p (caller, callee))
{
e->inline_failed = CIF_TARGET_OPTION_MISMATCH;
- gimple_call_set_cannot_inline (e->call_stmt, true);
+ if (e->call_stmt)
+ gimple_call_set_cannot_inline (e->call_stmt, true);
e->call_stmt_cannot_inline_p = true;
return false;
}
@@ -5405,7 +5407,8 @@ tree_can_inline_p (struct cgraph_edge *e
|| !gimple_check_call_args (e->call_stmt)))
{
e->inline_failed = CIF_MISMATCHED_ARGUMENTS;
- gimple_call_set_cannot_inline (e->call_stmt, true);
+ if (e->call_stmt)
+ gimple_call_set_cannot_inline (e->call_stmt, true);
e->call_stmt_cannot_inline_p = true;
return false;
}