4 ms·
WASM is a compiler target. It was designed for fast compilation into native instructions with deterministic effects. LLVM-IR has been considered, but has never
by Findecanor 5y ago
WASM is a compiler target. It was designed for fast compilation into native instructions with deterministic effects.
LLVM-IR has been considered, but has never been suitable as a compiler target. Code is targeted for a specific arch even before it becomes translated into LLVM-IR. Undefined behaviour in C is undefined also in LLVM-IR, and a portable compiler target can not have any. It is also changing too much between compiler versions (which is a reason why SPIR moved away from it).
BTW. It seems that in the long-term, the use of LLVM-IR in compilers is going to be replaced with MLIR (Multi-level IR).