[llvm] [WebAssembly] Enable multivalue return when multivalue ABI is used (PR #88492)

Heejin Ahn via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 12 17:19:05 PDT 2024


aheejin wrote:

This is effectively a backend-only change and it controls non-libcall multivalue return lowering too (See changes in `WebAssemblyISelLowering.cpp` and `WebAssemblyMachineFunctionInfo.cpp`). We talked about how to relay the frontend's ABI info to the backend but in turned out it is already being passed in `MCTargetOptions`.

This will affect compilation of bitcode files that have struct returns and multivalue-returning invokes (which I tried to ban in #86048). In practice, as you said, unless someone compiles struct-returning bitcode, multivalue returns will not be generated. (And we don't plan to support multivalue-returning invokes in near future) But this change per se doesn't necessarily only apply to libcalls.

https://github.com/llvm/llvm-project/pull/88492


More information about the llvm-commits mailing list