LLVM
The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
Many languages like Rust, Switft, C/C++ and many others to generate platform native code.
This is done through the use of LLVM IR, which is an intermediate representation (IR) of a program.
LLVM can compile IR into direct assembly which can then be assembled, linked and run natively.
LLVM IR can be generated more or less directly from AST and is a human readable foramt.
Supported Architectures
The main architecture targeted by gemstone is x86_64 (Intel/AMD).
However LLVM supports many more.
All LLVM supported architectures can be found here.
Helpful links
The following list is a compilation of sites I consider to be useful for getting started with LLVM in C: