- Pass `noalias` where possible allowing for better optimization (assuming your borrow checker prevents aliasing).
- Other attributes, intrinsics, etc. that enables further LLVM optimizations.
- Bindings to external code, (this could allow for )
- Bindings to external code, (this could allow for e.g., input and output for your programs)
As an alternative using Cranelift as alternative to LLVM was suggested. In this case, optimization is not a primary target, but rather compilation speed, and flexibility to support target independent WASM for next-gen web applications is in focus. Also in this case bindings to external code is possible to provide interaction is possible.