PR middle-end/53321: [4.8 Regression] LTO bootstrap failed with bootstrap-profiled

H.J. Lu hjl.tools@gmail.com
Thu Aug 2 13:35:00 GMT 2012


On Thu, Aug 2, 2012 at 3:23 AM, Jan Hubicka <hubicka@ucw.cz> wrote:
>>
>> This patch works passed profiledbootstrap with LTO as well as LTO -O3
>> on 176.gcc in SPEC CPU 2000.  I have to add 2 inline_edge_summary_vec
>> checks to avoid ICE.  OK to install?
>
> Thanks, it looks good. I am just concerned about...
>> diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
>> index 33cf7d2..7a8844f 100644
>> --- a/gcc/ipa-split.c
>> +++ b/gcc/ipa-split.c
>> @@ -1415,7 +1415,7 @@ execute_split_functions (void)
>>      }
>>    /* This can be relaxed; function might become inlinable after splitting
>>       away the uninlinable part.  */
>> -  if (!inline_summary (node)->inlinable)
>> +  if (inline_edge_summary_vec && !inline_summary (node)->inlinable)
>
> .. this one. spliting is executed before free_inline_summary and thus should
> not be affected. Or is it because of it gets called from process_new_functions
> because some IPA pass adds a new function?

It is called from pass_feedback_split_functions:

  NEXT_PASS (pass_all_early_optimizations);
    {
       ...
    }
  NEXT_PASS (pass_ipa_free_inline_summary);
  NEXT_PASS (pass_ipa_tree_profile);
    {
      struct opt_pass **p = &pass_ipa_tree_profile.pass.sub;
      NEXT_PASS (pass_feedback_split_functions);
    }

OK to install?

Thanks.

-- 
H.J.



More information about the Gcc-patches mailing list