[PATCH] D14587: [WebAssembly] Fix printing of global operands

Derek Schuff via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 16 13:44:05 PST 2015


dschuff updated this revision to Diff 40336.
dschuff added a comment.

- Use a pattern instead of a custom instruction


http://reviews.llvm.org/D14587

Files:
  lib/Target/WebAssembly/WebAssemblyInstrInfo.td
  test/CodeGen/WebAssembly/global.ll

Index: test/CodeGen/WebAssembly/global.ll
===================================================================
--- test/CodeGen/WebAssembly/global.ll
+++ test/CodeGen/WebAssembly/global.ll
@@ -9,6 +9,13 @@
 ; CHECK-NOT: llvm.metadata
 @llvm.used = appending global [1 x i32*] [i32* @g], section "llvm.metadata"
 
+; CHECK: foo:
+; CHECK: i32.const $push, answer
+define i32 @foo() {
+  %a = load i32, i32* @answer
+  ret i32 %a
+}
+
 ; CHECK: .type   g, at object
 ; CHECK: .align  2{{$}}
 ; CHECK-NEXT: g:
Index: lib/Target/WebAssembly/WebAssemblyInstrInfo.td
===================================================================
--- lib/Target/WebAssembly/WebAssemblyInstrInfo.td
+++ lib/Target/WebAssembly/WebAssemblyInstrInfo.td
@@ -106,10 +106,10 @@
                   [(set F64:$res, fpimm:$imm)],
                   "f64.const\t$res, $imm">;
 
-// Special types of immediates. FIXME: Hard-coded as 32-bit for now.
-def GLOBAL : I<(outs I32:$dst), (ins global:$addr),
-               [(set I32:$dst, (WebAssemblywrapper tglobaladdr:$addr))],
-               "global\t$dst, $addr">;
+
+def : Pat<(i32 (WebAssemblywrapper tglobaladdr :$dst)),
+          (CONST_I32 tglobaladdr :$dst)>;
+
 def JUMP_TABLE : I<(outs I32:$dst), (ins tjumptable_op:$addr),
                    [(set I32:$dst, (WebAssemblywrapper tjumptable:$addr))],
                    "jump_table\t$dst, $addr">;


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D14587.40336.patch
Type: text/x-patch
Size: 1375 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151116/c8c0a9b2/attachment.bin>


More information about the llvm-commits mailing list