Steady and wonderful work!

Regards,
Takenobu

On Sat, Sep 26, 2020 at 6:44 PM Moritz Angermann
<moritz.angerm...@gmail.com> wrote:
>
> Hi there!
>
> As some may know I've been working on a native code generation backend for 
> aarch64[1].  When Ben initially wrote about The state of GHC on ARM[2], I was 
> quite skeptical if a native code generator would really be what we should be 
> doing.  And the claim it would take a week or two, might have been 
> underestimating the complexity a bit; but also the time needed to debug 
> crashing programs.
>
> The idea of a NCG however intrigued me.  I did work on an alternative llvm 
> backend once, so I did know a bit about the code gen backend.  I also knew a 
> bit about aarch64 assembly from working on the rts linker for aarch64.
>
> So here we are today, with an aarch64 ncg for ghc[3], that has some basic 
> optimizations included, but does not beat the llvm codegen yet in runtime 
> performance. It is however substantially faster than the llvm codegen for 
> compile time performance.
>
> I have performed nofib benchmarks for:
> - full llvm build vs full native build[4]
> - llvm nofib, with native libraries, vs full native build[5]
> to discriminate effects of compiling just the nofib programs vs. the impact 
> the libraries have.
>
> I've only had time to take a cursory look over the generated assembly for the 
> CSD test, and the llvm codegen seems to be able to produce quite different 
> assembly, thus there seem to be some good optimizations llvm manages to 
> exploit. I'll have to investigate this closer and probably look at the llvm 
> IR we generate and the intermediate optimization steps llvm manages to apply 
> to it, as the llvm assembly doesn't ressemble the ncg assembly much.
>
> I plan to look at aarch64/mach-o and performance over the coming weeks.
>
> I hope we can get this in for 9.2.
>
> Cheers,
>  Moritz
>
> --
> [1]: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3641
> [2]: https://www.haskell.org/ghc/blog/20200515-ghc-on-arm.html
> [3]: https://gitlab.haskell.org/ghc/ghc/-/merge_requests/3641
> [4]: https://gist.github.com/9d93454b832b769b5bdb4e731a10c068
> [5]: https://gist.github.com/acc4dab7836f1f509716ac398a94d949
> _______________________________________________
> ghc-devs mailing list
> ghc-devs@haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
_______________________________________________
ghc-devs mailing list
ghc-devs@haskell.org
http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs

Reply via email to