tlively added a comment.

Nice! I think that splitting this out of the change that adds reference types 
is a good idea. Regarding the FIXME in the test, is it the case that the 
globals are also not emitted in the binary format, or is it just the assembly 
output that is broken?



================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp:1324
+        {LN->getChain(), Base}, LN->getMemoryVT(), LN->getMemOperand());
+    return DAG.getMergeValues({GlobalGet, LN->getChain()}, DL);
+  }
----------------
I'm not sure it's necessary to create a MERGE_NODES node here, since the the 
GlobalGet already contains the chain. For a similar example, see how LOAD_SPLAT 
nodes are created and returned.


================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td:268
 // are implied by virtual register uses and defs.
-multiclass LOCAL<WebAssemblyRegClass vt, Operand global_op> {
+multiclass LOCAL<WebAssemblyRegClass reg, Operand global_op> {
   let hasSideEffects = 0 in {
----------------
In other places we have used the abbreviation `rc` as the name for 
WebAssemblyRegClass parameters, but I don't know if we do that everywhere.


================
Comment at: llvm/lib/Target/WebAssembly/WebAssemblyInstrInfo.td:328
+  } // hasSideEffects = 0
+  foreach vt = reg.RegTypes in {
+    def : Pat<(vt (WebAssemblyglobal_get
----------------
Ahhhh, I did not know you could do this! Very cool.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D101608

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to