8-bit and 16-bit arithmetic

Carter Schonwald carter.schonwald at gmail.com
Thu Oct 28 22:00:09 UTC 2021


yeah, like, currently the XOR for setting registers to zero trick / code
optimization (first implemented in ghc backend by reid barton) is done as
part of the pretty printer on X86/AMD_64 targets

this and a lot of other easy win peephole optimizations that are platform
/target dependent happen in the pretty printer atm I thnk

On Thu, Oct 28, 2021 at 5:38 PM Ben Gamari <ben at smart-cactus.org> wrote:

> Norman Ramsey <nr at cs.tufts.edu> writes:
>
> > On x86, GHC can translate 8-bit and 16-bit operations directly
> > into the 8-bit and 16-bit machine instructions that the hardware
> > supports.  But there are other platforms on which the smallest
> > unit of arithmetic may be 32 or even 64 bits.  Is there a central
> > module in GHC that can take care of rewriting 8-bit and 16-bit operations
> > into 32-bit or 64-bit operations?  Or is each back end on its own
> > for this?
> >
> > (One of my students did some nice work on implementing this
> transformation
> > with a minimal set of sign-extension and zero-extension operations:
> > https://www.cs.tufts.edu/~nr/pubs/widen.pdf.)
> >
> As Carter indicated, this is currently done on a per-backend basis. This
> could indeed probably be consolidated, although we would want to make
> sure that in so doing we do not leave easy money on the table: It seems
> plausible to me that the backend may be able to generate better code
> than a naive lowering to wide arithmetic might otherwise generate.
>
> Cheers,
>
> - Ben
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20211028/02c7239c/attachment.html>


More information about the ghc-devs mailing list