Skip to content

Commit 36eebaa

Browse files
committed
[WebAssembly] Fix printing of global operands
This was regressed in r252656 which wasn't quite NFC. Instead of using a custom instruction as before, use a pattern to select CONST_I32 for the global addrs. Differential Revision: http://reviews.llvm.org/D14587 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253276 91177308-0d34-0410-b5e6-96231b3b80d8
1 parent 1836bbe commit 36eebaa

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

lib/Target/WebAssembly/WebAssemblyInstrInfo.td

+4-4
Original file line numberDiff line numberDiff line change
@@ -106,10 +106,10 @@ def CONST_F64 : I<(outs F64:$res), (ins f64imm:$imm),
106106
[(set F64:$res, fpimm:$imm)],
107107
"f64.const\t$res, $imm">;
108108

109-
// Special types of immediates. FIXME: Hard-coded as 32-bit for now.
110-
def GLOBAL : I<(outs I32:$dst), (ins global:$addr),
111-
[(set I32:$dst, (WebAssemblywrapper tglobaladdr:$addr))],
112-
"global\t$dst, $addr">;
109+
110+
def : Pat<(i32 (WebAssemblywrapper tglobaladdr :$dst)),
111+
(CONST_I32 tglobaladdr :$dst)>;
112+
113113
def JUMP_TABLE : I<(outs I32:$dst), (ins tjumptable_op:$addr),
114114
[(set I32:$dst, (WebAssemblywrapper tjumptable:$addr))],
115115
"jump_table\t$dst, $addr">;

test/CodeGen/WebAssembly/global.ll

+7
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,13 @@ target triple = "wasm32-unknown-unknown"
99
; CHECK-NOT: llvm.metadata
1010
@llvm.used = appending global [1 x i32*] [i32* @g], section "llvm.metadata"
1111

12+
; CHECK: foo:
13+
; CHECK: i32.const $push, answer
14+
define i32 @foo() {
15+
%a = load i32, i32* @answer
16+
ret i32 %a
17+
}
18+
1219
; CHECK: .type g,@object
1320
; CHECK: .align 2{{$}}
1421
; CHECK-NEXT: g:

0 commit comments

Comments
 (0)