LLVM provides several so-called "Intermediate Representations" (IRs), which are somewhere in between machine code and the code that most programmers write, but in a way that is language-agnostic.
(* Rust people break in through the door *) "LIKE HELL IT IS, LLVM IS SO C-BRAINED." (The Rust people are correct.)