[lld] 74ca5c2 - [lld][WebAssembly] Convert lld/test/wasm/data-layout.ll to asm. NFC.
Sam Clegg via llvm-commits
llvm-commits at lists.llvm.org
Mon Mar 1 16:16:12 PST 2021
Author: Sam Clegg
Date: 2021-03-01T16:14:36-08:00
New Revision: 74ca5c2c1e0214f82b1c19e0c9f8f30fa59ffbf3
URL: https://github.com/llvm/llvm-project/commit/74ca5c2c1e0214f82b1c19e0c9f8f30fa59ffbf3
DIFF: https://github.com/llvm/llvm-project/commit/74ca5c2c1e0214f82b1c19e0c9f8f30fa59ffbf3.diff
LOG: [lld][WebAssembly] Convert lld/test/wasm/data-layout.ll to asm. NFC.
Part of ongoing conversion work started in https://reviews.llvm.org/D80361.
Differential Revision: https://reviews.llvm.org/D97651
Added:
lld/test/wasm/data-layout.s
Modified:
Removed:
lld/test/wasm/data-layout.ll
################################################################################
diff --git a/lld/test/wasm/data-layout.ll b/lld/test/wasm/data-layout.ll
deleted file mode 100644
index 0074517925e9..000000000000
--- a/lld/test/wasm/data-layout.ll
+++ /dev/null
@@ -1,163 +0,0 @@
-; RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/hello.s -o %t.hello32.o
-; RUN: llc -mtriple=wasm32-unknown-unknown -filetype=obj %s -o %t32.o
-; RUN: wasm-ld -m wasm32 -no-gc-sections --export=__data_end --export=__heap_base --allow-undefined --no-entry -o %t32.wasm %t32.o %t.hello32.o
-; RUN: obj2yaml %t32.wasm | FileCheck --check-prefixes CHECK,CHK32 %s
-
-; RUN: llvm-mc -filetype=obj -triple=wasm64-unknown-unknown %p/Inputs/hello.s -o %t.hello64.o
-; RUN: llc -mtriple=wasm64-unknown-unknown -filetype=obj %s -o %t64.o
-; RUN: wasm-ld -m wasm64 -no-gc-sections --export=__data_end --export=__heap_base --allow-undefined --no-entry -o %t64.wasm %t64.o %t.hello64.o
-; RUN: obj2yaml %t64.wasm | FileCheck --check-prefixes CHECK,CHK64 %s
-
- at foo = hidden global i32 1, align 4
- at aligned_bar = hidden global i32 3, align 16
-
- at hello_str = external global i8*
- at external_ref = global i8** @hello_str, align 8
-
-%struct.s = type { i32, i32 }
- at local_struct = hidden global %struct.s zeroinitializer, align 4
- at local_struct_internal_ptr = hidden local_unnamed_addr global i32* getelementptr inbounds (%struct.s, %struct.s* @local_struct, i32 0, i32 1), align 4
-
-; CHECK: - Type: MEMORY
-; CHECK-NEXT: Memories:
-; CHK32-NEXT: - Initial: 0x2
-; CHK64-NEXT: - Flags: [ IS_64 ]
-; CHK64-NEXT: Initial: 0x2
-; CHECK-NEXT: - Type: GLOBAL
-; CHECK-NEXT: Globals:
-; CHECK-NEXT: - Index: 0
-; CHK32-NEXT: Type: I32
-; CHK64-NEXT: Type: I64
-; CHECK-NEXT: Mutable: true
-; CHECK-NEXT: InitExpr:
-; CHK32-NEXT: Opcode: I32_CONST
-; CHK64-NEXT: Opcode: I64_CONST
-; CHECK-NEXT: Value: 66624
-; CHECK-NEXT: - Index: 1
-; CHECK-NEXT: Type: I32
-; CHECK-NEXT: Mutable: false
-; CHECK-NEXT: InitExpr:
-; CHECK-NEXT: Opcode: I32_CONST
-; CHK32-NEXT: Value: 1080
-; CHK64-NEXT: Value: 1088
-; CHECK-NEXT: - Index: 2
-; CHECK-NEXT: Type: I32
-; CHECK-NEXT: Mutable: false
-; CHECK-NEXT: InitExpr:
-; CHECK-NEXT: Opcode: I32_CONST
-; CHECK-NEXT: Value: 66624
-
-; CHECK: - Type: DATA
-; CHECK-NEXT: Segments:
-; CHECK-NEXT: - SectionOffset: 7
-; CHECK-NEXT: InitFlags: 0
-; CHECK-NEXT: Offset:
-; CHK32-NEXT: Opcode: I32_CONST
-; CHK64-NEXT: Opcode: I64_CONST
-; CHECK-NEXT: Value: 1024
-; CHECK-NEXT: Content: 68656C6C6F0A00
-; CHECK-NEXT: - SectionOffset: 20
-; CHECK-NEXT: InitFlags: 0
-; CHECK-NEXT: Offset:
-; CHK32-NEXT: Opcode: I32_CONST
-; CHK64-NEXT: Opcode: I64_CONST
-; CHECK-NEXT: Value: 1040
-
-
-; RUN: wasm-ld -no-gc-sections --allow-undefined --no-entry \
-; RUN: --initial-memory=131072 --max-memory=131072 -o %t_max.wasm %t32.o \
-; RUN: %t.hello32.o
-; RUN: obj2yaml %t_max.wasm | FileCheck %s -check-prefix=CHECK-MAX
-
-; CHECK-MAX: - Type: MEMORY
-; CHECK-MAX-NEXT: Memories:
-; CHECK-MAX-NEXT: - Flags: [ HAS_MAX ]
-; CHECK-MAX-NEXT: Initial: 0x2
-; CHECK-MAX-NEXT: Maximum: 0x2
-
-; RUN: wasm-ld -no-gc-sections --allow-undefined --no-entry --shared-memory \
-; RUN: --features=atomics,bulk-memory --initial-memory=131072 \
-; RUN: --max-memory=131072 -o %t_max.wasm %t32.o %t.hello32.o
-; RUN: obj2yaml %t_max.wasm | FileCheck %s -check-prefix=CHECK-SHARED
-
-; CHECK-SHARED: - Type: MEMORY
-; CHECK-SHARED-NEXT: Memories:
-; CHECK-SHARED-NEXT: - Flags: [ HAS_MAX, IS_SHARED ]
-; CHECK-SHARED-NEXT: Initial: 0x2
-; CHECK-SHARED-NEXT: Maximum: 0x2
-
-; RUN: wasm-ld --relocatable -o %t_reloc.wasm %t32.o %t.hello32.o
-; RUN: obj2yaml %t_reloc.wasm | FileCheck %s -check-prefix=RELOC
-
-; RELOC: - Type: DATA
-; RELOC-NEXT: Relocations:
-; RELOC-NEXT: - Type: R_WASM_MEMORY_ADDR_I32
-; RELOC-NEXT: Index: 3
-; RELOC-NEXT: Offset: 0x24
-; RELOC-NEXT: - Type: R_WASM_MEMORY_ADDR_I32
-; RELOC-NEXT: Index: 4
-; RELOC-NEXT: Offset: 0x2D
-; RELOC-NEXT: Addend: 4
-; RELOC-NEXT: Segments:
-; RELOC-NEXT: - SectionOffset: 6
-; RELOC-NEXT: InitFlags: 0
-; RELOC-NEXT: Offset:
-; RELOC-NEXT: Opcode: I32_CONST
-; RELOC-NEXT: Value: 0
-; RELOC-NEXT: Content: 68656C6C6F0A00
-; RELOC-NEXT: - SectionOffset: 18
-; RELOC-NEXT: InitFlags: 0
-; RELOC-NEXT: Offset:
-; RELOC-NEXT: Opcode: I32_CONST
-; RELOC-NEXT: Value: 8
-; RELOC-NEXT: Content: '01000000'
-; RELOC-NEXT: - SectionOffset: 27
-; RELOC-NEXT: InitFlags: 0
-; RELOC-NEXT: Offset:
-; RELOC-NEXT: Opcode: I32_CONST
-; RELOC-NEXT: Value: 16
-; RELOC-NEXT: Content: '03000000'
-; RELOC-NEXT: - SectionOffset: 36
-; RELOC-NEXT: InitFlags: 0
-; RELOC-NEXT: Offset:
-; RELOC-NEXT: Opcode: I32_CONST
-; RELOC-NEXT: Value: 24
-; RELOC-NEXT: Content: '00000000'
-; RELOC-NEXT: - SectionOffset: 45
-; RELOC-NEXT: InitFlags: 0
-; RELOC-NEXT: Offset:
-; RELOC-NEXT: Opcode: I32_CONST
-; RELOC-NEXT: Value: 28
-; RELOC-NEXT: Content: '24000000'
-; RELOC-NEXT: - SectionOffset: 54
-; RELOC-NEXT: InitFlags: 0
-; RELOC-NEXT: Offset:
-; RELOC-NEXT: Opcode: I32_CONST
-; RELOC-NEXT: Value: 32
-; RELOC-NEXT: Content: '0000000000000000'
-
-; RELOC: SymbolTable:
-; RELOC-NEXT: - Index: 0
-; RELOC-NEXT: Kind: DATA
-; RELOC-NEXT: Name: foo
-; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
-; RELOC-NEXT: Segment: 1
-; RELOC-NEXT: Size: 4
-; RELOC-NEXT: - Index: 1
-; RELOC-NEXT: Kind: DATA
-; RELOC-NEXT: Name: aligned_bar
-; RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
-; RELOC-NEXT: Segment: 2
-; RELOC-NEXT: Size: 4
-; RELOC-NEXT: - Index: 2
-; RELOC-NEXT: Kind: DATA
-; RELOC-NEXT: Name: external_ref
-; RELOC-NEXT: Flags: [ ]
-; RELOC-NEXT: Segment: 3
-; RELOC-NEXT: Size: 4
-; RELOC-NEXT: - Index: 3
-; RELOC-NEXT: Kind: DATA
-; RELOC-NEXT: Name: hello_str
-; RELOC-NEXT: Flags: [ ]
-; RELOC-NEXT: Segment: 0
-; RELOC-NEXT: Size: 7
diff --git a/lld/test/wasm/data-layout.s b/lld/test/wasm/data-layout.s
new file mode 100644
index 000000000000..72a859b8a0a1
--- /dev/null
+++ b/lld/test/wasm/data-layout.s
@@ -0,0 +1,195 @@
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %p/Inputs/hello.s -o %t.hello32.o
+# RUN: llvm-mc -filetype=obj -triple=wasm32-unknown-unknown %s -o %t32.o
+# RUN: wasm-ld -m wasm32 -no-gc-sections --export=__data_end --export=__heap_base --allow-undefined --no-entry -o %t32.wasm %t32.o %t.hello32.o
+# RUN: obj2yaml %t32.wasm | FileCheck --check-prefixes CHECK,CHK32 %s
+#
+# RUN: llvm-mc -filetype=obj -triple=wasm64-unknown-unknown %p/Inputs/hello.s -o %t.hello64.o
+# RUN: llvm-mc -filetype=obj -triple=wasm64-unknown-unknown %s -o %t64.o
+# RUN: wasm-ld -m wasm64 -no-gc-sections --export=__data_end --export=__heap_base --allow-undefined --no-entry -o %t64.wasm %t64.o %t.hello64.o
+# RUN: obj2yaml %t64.wasm | FileCheck --check-prefixes CHECK,CHK64 %s
+
+ .section .data.foo,"",@
+ .globl foo
+ .hidden foo
+ .p2align 2
+foo:
+ .int32 1
+ .size foo, 4
+
+
+ .section .data.aligned_bar,"",@
+ .globl aligned_bar
+ .hidden aligned_bar
+ .p2align 4
+aligned_bar:
+ .int32 3
+ .size aligned_bar, 4
+
+
+ .section .data.external_ref,"",@
+ .globl external_ref
+ .p2align 3
+external_ref:
+ .int32 hello_str
+ .size external_ref, 4
+
+
+ .section .bss.local_struct,"",@
+ .globl local_struct
+ .hidden local_struct
+ .p2align 2
+local_struct:
+ .skip 8
+ .size local_struct, 8
+
+
+ .section .data.local_struct_internal_ptr,"",@
+ .globl local_struct_internal_ptr
+ .hidden local_struct_internal_ptr
+ .p2align 2
+local_struct_internal_ptr:
+ .int32 local_struct+4
+ .size local_struct_internal_ptr, 4
+ .size hello_str, 4
+
+# CHECK: - Type: MEMORY
+# CHECK-NEXT: Memories:
+# CHK64-NEXT: - Flags: [ IS_64 ]
+# CHECK-NEXT: Initial: 0x2
+# CHECK-NEXT: - Type: GLOBAL
+# CHECK-NEXT: Globals:
+# CHECK-NEXT: - Index: 0
+# CHK32-NEXT: Type: I32
+# CHK64-NEXT: Type: I64
+# CHECK-NEXT: Mutable: true
+# CHECK-NEXT: InitExpr:
+# CHK32-NEXT: Opcode: I32_CONST
+# CHK64-NEXT: Opcode: I64_CONST
+# CHECK-NEXT: Value: 66624
+# CHECK-NEXT: - Index: 1
+# CHECK-NEXT: Type: I32
+# CHECK-NEXT: Mutable: false
+# CHECK-NEXT: InitExpr:
+# CHECK-NEXT: Opcode: I32_CONST
+# CHECK-NEXT: Value: 1080
+# CHECK-NEXT: - Index: 2
+# CHECK-NEXT: Type: I32
+# CHECK-NEXT: Mutable: false
+# CHECK-NEXT: InitExpr:
+# CHECK-NEXT: Opcode: I32_CONST
+# CHECK-NEXT: Value: 66624
+
+# CHECK: - Type: DATA
+# CHECK-NEXT: Segments:
+# CHECK-NEXT: - SectionOffset: 7
+# CHECK-NEXT: InitFlags: 0
+# CHECK-NEXT: Offset:
+# CHK32-NEXT: Opcode: I32_CONST
+# CHK64-NEXT: Opcode: I64_CONST
+# CHECK-NEXT: Value: 1024
+# CHECK-NEXT: Content: 68656C6C6F0A00
+# CHECK-NEXT: - SectionOffset: 20
+# CHECK-NEXT: InitFlags: 0
+# CHECK-NEXT: Offset:
+# CHK32-NEXT: Opcode: I32_CONST
+# CHK64-NEXT: Opcode: I64_CONST
+# CHECK-NEXT: Value: 1040
+
+
+# RUN: wasm-ld -no-gc-sections --allow-undefined --no-entry \
+# RUN: --initial-memory=131072 --max-memory=131072 -o %t_max.wasm %t32.o \
+# RUN: %t.hello32.o
+# RUN: obj2yaml %t_max.wasm | FileCheck %s -check-prefix=CHECK-MAX
+
+# CHECK-MAX: - Type: MEMORY
+# CHECK-MAX-NEXT: Memories:
+# CHECK-MAX-NEXT: - Flags: [ HAS_MAX ]
+# CHECK-MAX-NEXT: Initial: 0x2
+# CHECK-MAX-NEXT: Maximum: 0x2
+
+# RUN: wasm-ld -no-gc-sections --allow-undefined --no-entry --shared-memory \
+# RUN: --features=atomics,bulk-memory --initial-memory=131072 \
+# RUN: --max-memory=131072 -o %t_max.wasm %t32.o %t.hello32.o
+# RUN: obj2yaml %t_max.wasm | FileCheck %s -check-prefix=CHECK-SHARED
+
+# CHECK-SHARED: - Type: MEMORY
+# CHECK-SHARED-NEXT: Memories:
+# CHECK-SHARED-NEXT: - Flags: [ HAS_MAX, IS_SHARED ]
+# CHECK-SHARED-NEXT: Initial: 0x2
+# CHECK-SHARED-NEXT: Maximum: 0x2
+
+# XUN: wasm-ld --relocatable -o %t_reloc.wasm %t32.o %t.hello32.o
+# XUN: obj2yaml %t_reloc.wasm | FileCheck %s -check-prefix=RELOC
+
+# RELOC: - Type: DATA
+# RELOC-NEXT: Relocations:
+# RELOC-NEXT: - Type: R_WASM_MEMORY_ADDR_I32
+# RELOC-NEXT: Index: 3
+# RELOC-NEXT: Offset: 0x24
+# RELOC-NEXT: - Type: R_WASM_MEMORY_ADDR_I32
+# RELOC-NEXT: Index: 4
+# RELOC-NEXT: Offset: 0x2D
+# RELOC-NEXT: Addend: 4
+# RELOC-NEXT: Segments:
+# RELOC-NEXT: - SectionOffset: 6
+# RELOC-NEXT: InitFlags: 0
+# RELOC-NEXT: Offset:
+# RELOC-NEXT: Opcode: I32_CONST
+# RELOC-NEXT: Value: 0
+# RELOC-NEXT: Content: 68656C6C6F0A00
+# RELOC-NEXT: - SectionOffset: 18
+# RELOC-NEXT: InitFlags: 0
+# RELOC-NEXT: Offset:
+# RELOC-NEXT: Opcode: I32_CONST
+# RELOC-NEXT: Value: 8
+# RELOC-NEXT: Content: '01000000'
+# RELOC-NEXT: - SectionOffset: 27
+# RELOC-NEXT: InitFlags: 0
+# RELOC-NEXT: Offset:
+# RELOC-NEXT: Opcode: I32_CONST
+# RELOC-NEXT: Value: 16
+# RELOC-NEXT: Content: '03000000'
+# RELOC-NEXT: - SectionOffset: 36
+# RELOC-NEXT: InitFlags: 0
+# RELOC-NEXT: Offset:
+# RELOC-NEXT: Opcode: I32_CONST
+# RELOC-NEXT: Value: 24
+# RELOC-NEXT: Content: '00000000'
+# RELOC-NEXT: - SectionOffset: 45
+# RELOC-NEXT: InitFlags: 0
+# RELOC-NEXT: Offset:
+# RELOC-NEXT: Opcode: I32_CONST
+# RELOC-NEXT: Value: 28
+# RELOC-NEXT: Content: '24000000'
+# RELOC-NEXT: - SectionOffset: 54
+# RELOC-NEXT: InitFlags: 0
+# RELOC-NEXT: Offset:
+# RELOC-NEXT: Opcode: I32_CONST
+# RELOC-NEXT: Value: 32
+# RELOC-NEXT: Content: '0000000000000000'
+
+# RELOC: SymbolTable:
+# RELOC-NEXT: - Index: 0
+# RELOC-NEXT: Kind: DATA
+# RELOC-NEXT: Name: foo
+# RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
+# RELOC-NEXT: Segment: 1
+# RELOC-NEXT: Size: 4
+# RELOC-NEXT: - Index: 1
+# RELOC-NEXT: Kind: DATA
+# RELOC-NEXT: Name: aligned_bar
+# RELOC-NEXT: Flags: [ VISIBILITY_HIDDEN ]
+# RELOC-NEXT: Segment: 2
+# RELOC-NEXT: Size: 4
+# RELOC-NEXT: - Index: 2
+# RELOC-NEXT: Kind: DATA
+# RELOC-NEXT: Name: external_ref
+# RELOC-NEXT: Flags: [ ]
+# RELOC-NEXT: Segment: 3
+# RELOC-NEXT: Size: 4
+# RELOC-NEXT: - Index: 3
+# RELOC-NEXT: Kind: DATA
+# RELOC-NEXT: Name: hello_str
+# RELOC-NEXT: Flags: [ ]
+# RELOC-NEXT: Segment: 0
+# RELOC-NEXT: Size: 7
More information about the llvm-commits
mailing list