Hi, this patch fixes ugly thinko when looking up reference for a speculative call. Without LTO we can end up choosing wrong alternative for function with many devirtualizations (as it happens for PPC64)
Bootstrapped/regtested ppc64-linux, comitted. Honza Index: ChangeLog =================================================================== --- ChangeLog (revision 202128) +++ ChangeLog (working copy) @@ -1,5 +1,9 @@ 2013-08-31 Jan Hubicka <j...@suse.cz> + * cgraph.c (cgraph_speculative_call_info): Fix ref lookup + +2013-08-31 Jan Hubicka <j...@suse.cz> + * basic-block.h (apply_scale): Make scale parmeter gcov_type. 2013-08-31 Uros Bizjak <ubiz...@gmail.com> Index: cgraph.c =================================================================== --- cgraph.c (revision 202100) +++ cgraph.c (working copy) @@ -1151,7 +1151,7 @@ cgraph_speculative_call_info (struct cgr i, ref); i++) if (ref->speculative && ((ref->stmt && ref->stmt == e->call_stmt) - || (ref->lto_stmt_uid == e->lto_stmt_uid))) + || (!ref->stmt && ref->lto_stmt_uid == e->lto_stmt_uid))) { reference = ref; break;