[PATCH] D65463: [WebAssembly] Fix conflict between ret legalization and sjlj

Heejin Ahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 5 14:14:08 PDT 2019


aheejin accepted this revision.
aheejin added a comment.

LGTM with nits (+ `-wasm-keep-registers` thing as @tlively said). Thank you!



================
Comment at: llvm/test/CodeGen/WebAssembly/lower-em-exceptions.ll:19
 ; CHECK-NEXT: store i32 0, i32* @__THREW__
-; CHECK-NEXT: call void @__invoke_void_i32(void (i32)* @foo, i32 3)
+; CHECK-NEXT: void @__invoke_void_i32(void (i32)* @foo, i32 3)
 ; CHECK-NEXT: %[[__THREW__VAL:.*]] = load i32, i32* @__THREW__
----------------
Nit: How about adding `call cc{{.*}}` here too show that invokes have been converted to calls, which is one of the main things this pass does? The same thing for similar lines in this file and lower-em-sjlj.ll too.


================
Comment at: llvm/test/CodeGen/WebAssembly/lower-em-sjlj-sret.ll:13
+; Emscripten sjlj transformation
+define hidden {i32, i32} @legalized_to_sret() {
+entry:
----------------
Real nit: we can maybe remove `hidden`


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D65463





More information about the llvm-commits mailing list