LLVM provides you with tools to programmatically create machine-native code. You can use the API to generate instructions in a format called an intermediate representation.
Intermediate representation, or IR, is a language-independent representation that serves as a portable, high-level assembly language that can be further optimized.
LLVM can compile the IR into a standalone binary or perform a JIT (just-in-time) compilation on the code (ex: as an interpreter for the language).
LLVM is written in C++ and is designed for compile-time, link-time, run-time, and idle-time optimization. Popular languages with compilers that use LLVM include Fortran, Haskell, Julia, Kotlin, Lua, Objective-C, OpenGL, Rust, and Swift.
Free Resources