"H.J. Lu" <hjl.to...@gmail.com> writes:

> On Tue, Aug 27, 2024 at 1:11 PM H.J. Lu <hjl.to...@gmail.com> wrote:
>>
>> Update analyze_parms not to disable function parameter analysis for
>> -ffat-lto-objects.  Tested on x86-64, there are no differences in zstd
>> with "-O2 -flto=auto" -g "vs -O2 -flto=auto -g -ffat-lto-objects".
>>
>>         PR ipa/116410
>>         * ipa-modref.cc (analyze_parms): Always analyze function parameter
>>         for LTO streaming.
>>
>> Signed-off-by: H.J. Lu <hjl.to...@gmail.com>
>> ---
>>  gcc/ipa-modref.cc | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/gcc/ipa-modref.cc b/gcc/ipa-modref.cc
>> index 59cfe91f987..9275030c254 100644
>> --- a/gcc/ipa-modref.cc
>> +++ b/gcc/ipa-modref.cc
>> @@ -2975,7 +2975,7 @@ analyze_parms (modref_summary *summary, 
>> modref_summary_lto *summary_lto,
>>                 summary->arg_flags.safe_grow_cleared (count, true);
>>               summary->arg_flags[parm_index] = EAF_UNUSED;
>>             }
>> -         else if (summary_lto)
>> +         if (summary_lto)
>>             {
>>               if (parm_index >= summary_lto->arg_flags.length ())
>>                 summary_lto->arg_flags.safe_grow_cleared (count, true);
>> @@ -3034,7 +3034,7 @@ analyze_parms (modref_summary *summary, 
>> modref_summary_lto *summary_lto,
>>                 summary->arg_flags.safe_grow_cleared (count, true);
>>               summary->arg_flags[parm_index] = flags;
>>             }
>> -         else if (summary_lto)
>> +         if (summary_lto)
>>             {
>>               if (parm_index >= summary_lto->arg_flags.length ())
>>                 summary_lto->arg_flags.safe_grow_cleared (count, true);
>> --
>> 2.46.0
>>
>
> These are oversights in
>
> https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=85ebbabd85e03bdc3afc190aeb29250606d18322
> https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=3350e59f2985469b2472e4d9a6d387337da4519b
>
> to have
>
>   if (summary)
>       ...
>   else if (summary_lto)
>  ^^^^  This disables LTO optimization for  -ffat-lto-objects.

FWIW, I tested it on amd64 with no regressions and no issues in CPython,
Binutils and a few others. I was a bit worried because of modref issues
in the past.

Attachment: signature.asc
Description: PGP signature

Reply via email to