Double word left shift optimisation
Jon Beniston
jon.beniston@ensilica.com
Mon Jul 30 14:24:00 GMT 2012
> This is interesting. I've quickly tried it out on the SH port. It can be
> accomplished with the combine pass, although there are a few things that
> should be taken care of:
> - an "extendsidi2" pattern is required (so that the extension is not
> performed before expand)
> ...
> One potential pitfall might be the handling of a real "reg:DI << reg:DI"
> if there are no patterns already there that handle it (as it is the case for the
> SH port). If I observed correctly, the "ashldi3" expander must not FAIL for a
> "reg:DI << reg:DI" (to do a lib call), or else combine would not arrive at the
> pattern above.
>
> Hope this helps.
Thanks Oleg, these were the bits I hadn't figured out.
Cheers,
Jon
More information about the Gcc
mailing list