tags : Parsers, Lexers, Programming Languages, WebAssembly

How it helps?

Modular

  • Writing two backends for two different architectures would be a lot of work and then lots of platform specific optimizations therefore llvm is the present and seems to be the future for the foreseeable future as well.
  • LLVM is modular in the sense that it never compiles one language straight to machine code.
    • It has a front-end compiler that compiles your code to an IR.
    • This IR is called LLVM, as the IR is modeled around a Low-level Virtual Machine(LLVM).
    • It has a back-end compiler that takes care of translating the IR to the host’s machine code
  • WebAssembly is just another backend for LLVM

Others

  • See MLIR