LLVM

Standardized the complex process of turning source code into machine code. Created by Chris Lattner.

LLVM is a set of compiler and Toolchain technologies that can be used to develop a frontend for any programming language and a backend for any instruction set architecture.

LLVM is trying to do is trying to standardize that middle and last part. There is a lot of different languages that compiles through it: swift, Julia, rust clang for C and C++ and objective-c they can all use the same optimization infrastructures which gets better performance and the same code generation for hardware support. LLVM is that layer that is common that all these different specific compilers can use.

Compiler infrastructure: underlying platform that you build a concrete compiler on top but it’s also the community hundreds of people that all collaborate.

All these different competing companies are collaborating together to make that shared infrastructure really great.

LLVM has a hierarchical system of what’s called code owners. These code owners are given the responsibility that the patches are getting reviewed.

Interesting things that happened with LLVM:

  • Sony has picked up llvm and used it to do all the graphics compilation in their movie production pipeline → better special effects because of it.

Computing with GNU.

Components:

Behind Clang.

How does this relate to what I just learned about x86 and ARM, RISC and CISC????? #gap-in-knowledge