News for hackers. Stuff that matters.
Re:GCC null pointer check removed by pcwalton on Wednesday August 28, 2019 @03:26PM (#20823148)
If you want a simple modern compiler backend intended for production-readiness, consider Cranelift [1]. It's largely written by Dan Gohman, who is a longtime LLVM contributor (and a colleague of mine). It does a lot of the things LLVM's backend passes do, but it's cleaner and better factored, with the benefit of a decade of hindsight [2]. Cranelift should be great for teaching purposes.

[1]: https://github.com/CraneStation/cranelift

[2]: https://cranelift.readthedocs.io/en/latest/compare-llvm.html

Re:GCC null pointer check removed by dhuramas on Wednesday August 28, 2019 @03:58PM (#20823476)
I was wondering where I had heard of Cranelift before- seems like it is the default backend for wasmer[1].

[1] https://github.com/wasmerio/wasmer#building

Re:GCC null pointer check removed by nickpsecurity on Wednesday August 28, 2019 @10:07PM (#20826041)
Thanks. I'll check it out. In that vein, what do you think of QBE (open-source) and LCC for understandable compilers?

https://c9x.me/compile/

https://en.wikipedia.org/wiki/LCC_(compiler)

Re:GCC null pointer check removed by ChuckMcM on Wednesday August 28, 2019 @06:54PM (#20824892)
That is a pretty neat backend for compilers. Definitely worth using when going to the 'next level' between how do we take text and turn it into binary as level 1, and then level 2, how do we improve the binary we're going to generate by understanding what the ASTs are telling us.
Re:GCC null pointer check removed by ndesaulniers on Wednesday August 28, 2019 @11:36PM (#20826441)
Any plan to use this in rustc? If so, is there a plan to maintain cross language LTO w/ C++?
Re:GCC null pointer check removed by masklinn on Thursday August 29, 2019 @02:09AM (#20827083)
> Any plan to use this in rustc?

One of the primary expectations / use cases for cranelift is its use for rustc's debug builds: https://github.com/CraneStation/cranelift/blob/master/rustc....

Re:GCC null pointer check removed by pcwalton on Thursday August 29, 2019 @12:50PM (#20831236)
Definitely, for debug builds. Eventually perhaps for release—LTO is one of the many things we would have to figure out if we go down this road.