[PATCH] D25708: [WebAssembly] Fix for 0xc call_indirect changes

Dan Gohman via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 20 13:50:50 PDT 2016

sunfish accepted this revision.
sunfish added a comment.
This revision is now accepted and ready to land.

Looks good!

Comment at: lib/Target/WebAssembly/WebAssemblyInstrCall.td:32
                    !strconcat(prefix, "call\t$dst, $callee")>;
-  def CALL_INDIRECT_#vt : I<(outs vt:$dst), (ins I32:$callee, variable_ops),
+  def PCALL_INDIRECT_#vt : I<(outs vt:$dst), (ins I32:$callee, variable_ops),
                             [(set vt:$dst, (WebAssemblycall1 I32:$callee))],
We can add "let isCodeGenOnly = 1 in" before this instruction to let various parts of LLVM know that this instruction isn't ever encoded or parsed.

Comment at: lib/Target/WebAssembly/WebAssemblyInstrCall.td:45
                          !strconcat(prefix, "call\t$dst, $callee")>;
-  def CALL_INDIRECT_#vt : SIMD_I<(outs V128:$dst),
+  def PCALL_INDIRECT_#vt : SIMD_I<(outs V128:$dst),
                                   (ins I32:$callee, variable_ops),
Ditto about isCodeGenOnly.

Comment at: lib/Target/WebAssembly/WebAssemblyInstrCall.td:69
                     "call    \t$callee">;
-  def CALL_INDIRECT_VOID : I<(outs), (ins I32:$callee, variable_ops),
-                             [(WebAssemblycall0 I32:$callee)],
-                             "call_indirect\t$callee">;
+  def PCALL_INDIRECT_VOID : I<(outs), (ins I32:$callee, variable_ops),
+                    [(WebAssemblycall0 I32:$callee)],
Ditto here too :-).


More information about the llvm-commits mailing list