For those who haven't explored LLVM, it's an incredibly powerful technology and rather approachable for getting started with.
A few of my favorite LLVM discoveries:
- If you want to build Clang (LLVM C/C++ Compiler), it's really simple to pull down and build with little external development tooling (only a compiler and CMake). Shown here [0].
- You can pull LLVM/Clang master and use that for a "bleeding-edge" toolchain with a high degree of stability. [0].
- Clang is used to compile Chromium and Firefox on all platforms. Both have seen great performance gains from Clang's link time optimization. [1] [2]
- Klee is built on LLVM infrastructure and is used for automatic generation of test cases. [3] See some of their papers for how powerful their results are.
- Clang can now produce ABI compatible binaries with MSVC and has support for the Visual Studio debugger. [4]
- Lots of interesting research projects leveraging LLVM [5]
[0] https://www.youtube.com/watch?v=uZI_Qla4pNA
[1] http://blog.llvm.org/2018/03/clang-is-now-used-to-build-chro...
[2] https://glandium.org/blog/?p=3888
[4] http://blog.llvm.org/2017/08/llvm-on-windows-now-supports-pd...
[5] https://scholar.google.com/scholar?as_ylo=2017&q=LLVM&hl=en&...
Klee is also a great example of the cost of LLVM's never-backwards-compatible approach: according to their home page, the stable release of Klee runs on 3.4 and 3.8 is "experimental". (The LLVM releases since then have included: 3.9, 4.0, 5.0, 6.0, and 7.0.)
Don't get me wrong, LLVM is great, but I really wish that as the project matured they had made more of an effort to provide some level of compatibility. As it is, it's a massive pain for open source projects to follow along.
I'm not sure why other projects find this difficult but I have noticed that if I get too far behind it does get a bit more difficult.
I exposed the C++ API to Common Lisp and write all of the compiler in Common Lisp. The Clang C++ compiler tells me what is broken when I upgrade to a new version of llvm and then I fix it. I talk about it here https://www.youtube.com/watch?reload=9&v=mbdXeRBbgDM&feature... at about 13:30