[llvm] 5b2c3d7 - llvm-readobj: support globals in initializer expressions
Sam Clegg via llvm-commits
llvm-commits at lists.llvm.org
Mon Jan 31 20:11:20 PST 2022
Author: Sam Clegg
Date: 2022-01-31T20:11:08-08:00
New Revision: 5b2c3d7bbcda07bf89448d0ae4e43ea327d4f6ba
URL: https://github.com/llvm/llvm-project/commit/5b2c3d7bbcda07bf89448d0ae4e43ea327d4f6ba
DIFF: https://github.com/llvm/llvm-project/commit/5b2c3d7bbcda07bf89448d0ae4e43ea327d4f6ba.diff
LOG: llvm-readobj: support globals in initializer expressions
Differential Revision: https://reviews.llvm.org/D117747
Added:
llvm/test/tools/llvm-readobj/wasm/globals.test
Modified:
llvm/tools/llvm-readobj/WasmDumper.cpp
Removed:
################################################################################
diff --git a/llvm/test/tools/llvm-readobj/wasm/globals.test b/llvm/test/tools/llvm-readobj/wasm/globals.test
new file mode 100644
index 0000000000000..4e9f6403c267c
--- /dev/null
+++ b/llvm/test/tools/llvm-readobj/wasm/globals.test
@@ -0,0 +1,32 @@
+# RUN: yaml2obj %s | llvm-readobj --sections - | FileCheck %s
+
+# Test use of global.get in initializer expressions.
+
+--- !WASM
+FileHeader:
+ Version: 0x00000001
+Sections:
+ - Type: DATA
+ Segments:
+ - SectionOffset: 6
+ InitFlags: 0
+ Offset:
+ Opcode: GLOBAL_GET
+ Index: 1
+ Content: '64'
+...
+
+# CHECK: Section {
+# CHECK-NEXT: Type: DATA (0xB)
+# CHECK-NEXT: Size: 7
+# CHECK-NEXT: Offset: 8
+# CHECK-NEXT: Segments [
+# CHECK-NEXT: Segment {
+# CHECK-NEXT: Size: 1
+# CHECK-NEXT: Offset [
+# CHECK-NEXT: Global: 1
+# CHECK-NEXT: ]
+# CHECK-NEXT: }
+# CHECK-NEXT: ]
+# CHECK-NEXT: }
+# CHECK-NEXT: ]
diff --git a/llvm/tools/llvm-readobj/WasmDumper.cpp b/llvm/tools/llvm-readobj/WasmDumper.cpp
index d76332d1ba36c..b4d726016437e 100644
--- a/llvm/tools/llvm-readobj/WasmDumper.cpp
+++ b/llvm/tools/llvm-readobj/WasmDumper.cpp
@@ -183,7 +183,10 @@ void WasmDumper::printSectionHeaders() {
W.printNumber("Offset", Seg.Offset.Value.Int32);
else if (Seg.Offset.Opcode == wasm::WASM_OPCODE_I64_CONST)
W.printNumber("Offset", Seg.Offset.Value.Int64);
- else
+ else if (Seg.Offset.Opcode == wasm::WASM_OPCODE_GLOBAL_GET) {
+ ListScope Group(W, "Offset");
+ W.printNumber("Global", Seg.Offset.Value.Global);
+ } else
llvm_unreachable("unknown init expr opcode");
}
break;
More information about the llvm-commits
mailing list