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

Cheng Shao via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 12 18:18:21 PDT 2024


TerrorJack wrote:

@aheejin Thanks a lot for the ping! I have a little question about the impact of this patch, if you wouldn't mind :)

I tried applying this patch in our toolchain and there's now a minor regression. We have a tiny custom patch at [here](https://gitlab.haskell.org/ghc/llvm-project/-/commit/c889836198f0868757c7183b6ad4c7d7bba239dc) to make `experimental-mv` the default ABI as long as `-mmultivalue` is enabled, without needing to pass `-Xclang -target-abi -Xclang experimental-mv` explicitly. However, after this patch is applied, `-Xclang -target-abi -Xclang experimental-mv` becomes mandatory, otherwise i128 and structs regresses to pointer passing.

Maybe I can adjust `canLowerMultivalueReturn()` to remove the `usesMultivalueABI` logic and things will work the way before for us; is this a silly hack, do there exist a more principled way to do it? Thanks a lot in advance.

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


More information about the llvm-commits mailing list