IPA inline transform does not account for the fact that execute_fixup_cfg may return TODO_update_ssa. Fixed as follows.
Bootstrap and regtest running on x86_64-unknown-linux-gnu. Richard. 2012-01-30 Richard Guenther <rguent...@suse.de> PR tree-optimization/52045 * ipa-inline-transform.c (inline_transform): Call execute_fixup_cfg before computing final todo. Index: gcc/ipa-inline-transform.c =================================================================== --- gcc/ipa-inline-transform.c (revision 183695) +++ gcc/ipa-inline-transform.c (working copy) @@ -369,11 +369,13 @@ inline_transform (struct cgraph_node *no todo = optimize_inline_calls (current_function_decl); timevar_pop (TV_INTEGRATION); + cfun->always_inline_functions_inlined = true; + cfun->after_inlining = true; + todo |= execute_fixup_cfg (); + if (!(todo & TODO_update_ssa_any)) /* Redirecting edges might lead to a need for vops to be recomputed. */ todo |= TODO_update_ssa_only_virtuals; - cfun->always_inline_functions_inlined = true; - cfun->after_inlining = true; - return todo | execute_fixup_cfg (); + return todo; }