[PATCH] D68684: [WebAssembly] Make returns variadic

Thomas Lively via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Oct 9 13:47:19 PDT 2019


tlively marked an inline comment as done.
tlively added a comment.

In D68684#1702183 <https://reviews.llvm.org/D68684#1702183>, @dschuff wrote:

> Should there be a limit on how many returns we are willing to return in a multi? or should we have no fallback to sret at all?


My current thinking is that such a limit should be left up to the ABI logic in the frontend and that in the backend we should turn all aggregate returns by value into multivalue returns with no limit. WDYT?



================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyCFGStackify.cpp:1269
       if (MI.getOpcode() == WebAssembly::END_BLOCK) {
+        assert(MFI.getResults().size() <= 1 &&
+               "Multivalue block signatures not implemented yet");
----------------
dschuff wrote:
> sbc100 wrote:
> > report_fatal_error so end users see this too?
> By this time we should have legalized everything, so this can be an assert because it should never happen?
@sbc100  is right that users should be able to see these errors. These asserts will be triggered when trying to emit nontrivial code with multivalue enabled.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D68684/new/

https://reviews.llvm.org/D68684





More information about the llvm-commits mailing list