From the discussion we had with Luke Wagner from Mozilla, LLVM is not suitable for WebAssembly GC. Also using a toolchain that has been designed to generate native code for all the various platform where WebAssembly is a kind of universal target make little sense, even if LLVM provide various optimization, so using it was a kind of transition step.
https://github.com/WebAssembly/binaryen/ is designed for WebAssembly, Binaryen's IR is close to WebAssembly, it is designed for completely parallel codegen and optimization, using all available CPU cores. It will be updated to support WebAssembly GC when available.
On WebAssembly performance itself, interpretors like Cranelift are doing great progress, concurrency and shared data structure are coming, even if there is still room for better optimization (see
http://troubles.md/posts/wasm-is-not-a-stack-machine/).