10% difference from native, or 10% of native performance?
10% worse performance. Not 10x worse :D
Since it compiles using llvm, what's the reason for the discrepancy?
Lost information about e.g. aliasing?
Bounds checking, dynamic dispatch is more expensive, wasm semantics have no undefined behavior to exploit for optimizations. And there is bloat in the process. I’m sure losing information effects things as well