[Bug ipa/97445] Some fonctions marked static inline in Linux kernel are not inlined

hubicka at ucw dot cz gcc-bugzilla@gcc.gnu.org
Wed Oct 21 18:24:50 GMT 2020


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97445

--- Comment #52 from Jan Hubicka <hubicka at ucw dot cz> ---
> I don't see how can if-to-switch conversion pass help us here. It's designed to
> identify compact intervals. In this case we see:
> 
>   <bb 12> :
>   _16 = _2 & 576460752303423488;
>   if (_16 == 0)
>     goto <bb 13>; [INV]
>   else
>     goto <bb 72>; [INV]
> 
>   <bb 13> :
>   _18 = _2 & 288230376151711744;
>   if (_18 == 0)
>     goto <bb 14>; [INV]
>   else
>     goto <bb 72>; [INV]
> ...
> 
> So it's a series of masking. Do you see Honza how to convert it?
It goes from 1 to 1<<63, so each of tests translates to a range.

Honza


More information about the Gcc-bugs mailing list