[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