LLVM
LLVM is a compiler infrasture for several languages. Its is consist of clang (c compiler), the llvm libary (includes llvm-mc the assembler) and lld the linker. The llvm libbary can be used to create several languages like rust.
OS Development with LLVM
One good thing of LLVM, it is cross-compiler by design.
The following command gives the supported architectures
llc -version
As it is as cross compiler by default, clang can called to compile i686-elf for the simply by
clang -target i686-elf
Building LLVM
- Main article: LLVM Cross-Compiler