diff options
| author | Thomas Lively <tlively@google.com> | 2019-04-12 22:27:48 +0000 |
|---|---|---|
| committer | Thomas Lively <tlively@google.com> | 2019-04-12 22:27:48 +0000 |
| commit | fef8de66a6ad56d71eb8bf8a401f8cdc82dea225 (patch) | |
| tree | 55b9ddd2be0fc7c1ac1ef4b1683aa44bee339bc8 /llvm/test | |
| parent | bdb5e4e4ca5fbc7ef528067b65dda298e191e059 (diff) | |
| download | bcm5719-llvm-fef8de66a6ad56d71eb8bf8a401f8cdc82dea225.tar.gz bcm5719-llvm-fef8de66a6ad56d71eb8bf8a401f8cdc82dea225.zip | |
[WebAssembly] Add DataCount section to object files
Summary:
This ensures that object files will continue to validate as
WebAssembly modules in the presence of bulk memory operations. Engines
that don't support bulk memory operations will not recognize the
DataCount section and will report validation errors, but that's ok
because object files aren't supposed to be run directly anyway.
Reviewers: aheejin, dschuff, sbc100
Subscribers: jgravelle-google, hiraditya, sunfish, rupprecht, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D60623
llvm-svn: 358315
Diffstat (limited to 'llvm/test')
| -rw-r--r-- | llvm/test/MC/WebAssembly/bss.ll | 2 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/comdat.ll | 2 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/data-section.s | 3 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/debug-info.ll | 55 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/explicit-sections.ll | 2 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/external-data.ll | 2 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/external-func-address.ll | 2 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/global-ctor-dtor.ll | 2 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/reloc-code.ll | 2 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/reloc-data.ll | 2 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/reloc-pic.s | 2 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/unnamed-data.ll | 2 | ||||
| -rw-r--r-- | llvm/test/MC/WebAssembly/weak-alias.ll | 2 |
13 files changed, 47 insertions, 33 deletions
diff --git a/llvm/test/MC/WebAssembly/bss.ll b/llvm/test/MC/WebAssembly/bss.ll index b3d95a161d1..05b6a6986e1 100644 --- a/llvm/test/MC/WebAssembly/bss.ll +++ b/llvm/test/MC/WebAssembly/bss.ll @@ -9,7 +9,7 @@ target triple = "wasm32-unknown-unknown" @foo = global %union.u1 zeroinitializer, align 1 @bar = global %union.u1 zeroinitializer, align 1 -; CHECK: - Type: DATA +; CHECK: - Type: DATA{{$}} ; CHECK-NEXT: Segments: ; CHECK-NEXT: - SectionOffset: 6 ; CHECK-NEXT: InitFlags: 0 diff --git a/llvm/test/MC/WebAssembly/comdat.ll b/llvm/test/MC/WebAssembly/comdat.ll index 18905890776..ecc5e5be27a 100644 --- a/llvm/test/MC/WebAssembly/comdat.ll +++ b/llvm/test/MC/WebAssembly/comdat.ll @@ -50,6 +50,8 @@ define linkonce_odr i32 @sharedFn() #1 comdat($sharedComdat) { ; CHECK-NEXT: SigIndex: 0 ; CHECK-NEXT: - Type: FUNCTION ; CHECK-NEXT: FunctionTypes: [ 0, 0, 0 ] +; CHECK-NEXT: - Type: DATACOUNT +; CHECK-NEXT: Count: 1 ; CHECK-NEXT: - Type: CODE ; CHECK-NEXT: Relocations: ; CHECK-NEXT: - Type: R_WASM_FUNCTION_INDEX_LEB diff --git a/llvm/test/MC/WebAssembly/data-section.s b/llvm/test/MC/WebAssembly/data-section.s index d4ddd3d496e..70d9de2bb93 100644 --- a/llvm/test/MC/WebAssembly/data-section.s +++ b/llvm/test/MC/WebAssembly/data-section.s @@ -53,6 +53,8 @@ test0: # BIN-NEXT: Initial: 0x00000000 # BIN-NEXT: - Type: FUNCTION # BIN-NEXT: FunctionTypes: [ 0 ] +# BIN-NEXT: - Type: DATACOUNT +# BIN-NEXT: Count: 1 # BIN-NEXT: - Type: CODE # BIN-NEXT: Relocations: # BIN-NEXT: - Type: R_WASM_MEMORY_ADDR_SLEB @@ -91,4 +93,3 @@ test0: # BIN-NEXT: Alignment: 0 # BIN-NEXT: Flags: [ ] # BIN-NEXT: ... - diff --git a/llvm/test/MC/WebAssembly/debug-info.ll b/llvm/test/MC/WebAssembly/debug-info.ll index fe4a4cf6983..d0c49b7c836 100644 --- a/llvm/test/MC/WebAssembly/debug-info.ll +++ b/llvm/test/MC/WebAssembly/debug-info.ll @@ -25,14 +25,19 @@ ; CHECK-NEXT: Offset: 90 ; CHECK-NEXT: } ; CHECK-NEXT: Section { +; CHECK-NEXT: Type: DATACOUNT (0xC) +; CHECK-NEXT: Size: 1 +; CHECK-NEXT: Offset: 103 +; CHECK-NEXT: } +; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CODE (0xA) ; CHECK-NEXT: Size: 4 -; CHECK-NEXT: Offset: 103 +; CHECK-NEXT: Offset: 110 ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: DATA (0xB) ; CHECK-NEXT: Size: 19 -; CHECK-NEXT: Offset: 113 +; CHECK-NEXT: Offset: 120 ; CHECK-NEXT: Segments [ ; CHECK-NEXT: Segment { ; CHECK-NEXT: Name: .data.foo @@ -49,94 +54,94 @@ ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 121 -; CHECK-NEXT: Offset: 138 +; CHECK-NEXT: Offset: 145 ; CHECK-NEXT: Name: .debug_str ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 84 -; CHECK-NEXT: Offset: 276 +; CHECK-NEXT: Offset: 283 ; CHECK-NEXT: Name: .debug_abbrev ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 106 -; CHECK-NEXT: Offset: 380 +; CHECK-NEXT: Offset: 387 ; CHECK-NEXT: Name: .debug_info ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 1 -; CHECK-NEXT: Offset: 504 +; CHECK-NEXT: Offset: 511 ; CHECK-NEXT: Name: .debug_macinfo ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 42 -; CHECK-NEXT: Offset: 526 +; CHECK-NEXT: Offset: 533 ; CHECK-NEXT: Name: .debug_pubnames ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 26 -; CHECK-NEXT: Offset: 590 +; CHECK-NEXT: Offset: 597 ; CHECK-NEXT: Name: .debug_pubtypes ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 57 -; CHECK-NEXT: Offset: 638 +; CHECK-NEXT: Offset: 645 ; CHECK-NEXT: Name: .debug_line ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 88 -; CHECK-NEXT: Offset: 713 +; CHECK-NEXT: Offset: 720 ; CHECK-NEXT: Name: linking ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 9 -; CHECK-NEXT: Offset: 815 +; CHECK-NEXT: Offset: 822 ; CHECK-NEXT: Name: reloc.DATA ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 58 -; CHECK-NEXT: Offset: 841 +; CHECK-NEXT: Offset: 848 ; CHECK-NEXT: Name: reloc..debug_info ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 6 -; CHECK-NEXT: Offset: 923 +; CHECK-NEXT: Offset: 930 ; CHECK-NEXT: Name: reloc..debug_pubnames ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 6 -; CHECK-NEXT: Offset: 957 +; CHECK-NEXT: Offset: 964 ; CHECK-NEXT: Name: reloc..debug_pubtypes ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 6 -; CHECK-NEXT: Offset: 991 +; CHECK-NEXT: Offset: 998 ; CHECK-NEXT: Name: reloc..debug_line ; CHECK-NEXT: } ; CHECK-NEXT: Section { ; CHECK-NEXT: Type: CUSTOM (0x0) ; CHECK-NEXT: Size: 77 -; CHECK-NEXT: Offset: 1021 +; CHECK-NEXT: Offset: 1028 ; CHECK-NEXT: Name: producers ; CHECK-NEXT: } ; CHECK-NEXT:] ; CHECK-NEXT:Relocations [ -; CHECK-NEXT: Section (6) DATA { +; CHECK-NEXT: Section (7) DATA { ; CHECK-NEXT: 0x6 R_WASM_MEMORY_ADDR_I32 myextern 0 ; CHECK-NEXT: 0xF R_WASM_TABLE_INDEX_I32 f2 ; CHECK-NEXT: } -; CHECK-NEXT: Section (9) .debug_info { +; CHECK-NEXT: Section (10) .debug_info { ; CHECK-NEXT: 0x6 R_WASM_SECTION_OFFSET_I32 .debug_abbrev 0 ; CHECK-NEXT: 0xC R_WASM_SECTION_OFFSET_I32 .debug_str 0 ; CHECK-NEXT: 0x12 R_WASM_SECTION_OFFSET_I32 .debug_str 55 @@ -151,13 +156,13 @@ ; CHECK-NEXT: 0x5B R_WASM_FUNCTION_OFFSET_I32 f2 0 ; CHECK-NEXT: 0x63 R_WASM_SECTION_OFFSET_I32 .debug_str 118 ; CHECK-NEXT: } -; CHECK-NEXT: Section (11) .debug_pubnames { +; CHECK-NEXT: Section (12) .debug_pubnames { ; CHECK-NEXT: 0x6 R_WASM_SECTION_OFFSET_I32 .debug_info 0 ; CHECK-NEXT: } -; CHECK-NEXT: Section (12) .debug_pubtypes { +; CHECK-NEXT: Section (13) .debug_pubtypes { ; CHECK-NEXT: 0x6 R_WASM_SECTION_OFFSET_I32 .debug_info 0 ; CHECK-NEXT: } -; CHECK-NEXT: Section (13) .debug_line { +; CHECK-NEXT: Section (14) .debug_line { ; CHECK-NEXT: 0x2B R_WASM_FUNCTION_OFFSET_I32 f2 0 ; CHECK-NEXT: } ; CHECK-NEXT:] @@ -205,7 +210,7 @@ ; CHECK-NEXT: Flags [ (0x2) ; CHECK-NEXT: BINDING_LOCAL (0x2) ; CHECK-NEXT: ] -; CHECK-NEXT: ElementIndex: 0x6 +; CHECK-NEXT: ElementIndex: 0x7 ; CHECK-NEXT: } ; CHECK-NEXT: Symbol { ; CHECK-NEXT: Name: .debug_abbrev @@ -213,7 +218,7 @@ ; CHECK-NEXT: Flags [ (0x2) ; CHECK-NEXT: BINDING_LOCAL (0x2) ; CHECK-NEXT: ] -; CHECK-NEXT: ElementIndex: 0x7 +; CHECK-NEXT: ElementIndex: 0x8 ; CHECK-NEXT: } ; CHECK-NEXT: Symbol { ; CHECK-NEXT: Name: .debug_info @@ -221,7 +226,7 @@ ; CHECK-NEXT: Flags [ (0x2) ; CHECK-NEXT: BINDING_LOCAL (0x2) ; CHECK-NEXT: ] -; CHECK-NEXT: ElementIndex: 0x8 +; CHECK-NEXT: ElementIndex: 0x9 ; CHECK-NEXT: } ; CHECK-NEXT: Symbol { ; CHECK-NEXT: Name: .debug_line @@ -229,7 +234,7 @@ ; CHECK-NEXT: Flags [ (0x2) ; CHECK-NEXT: BINDING_LOCAL (0x2) ; CHECK-NEXT: ] -; CHECK-NEXT: ElementIndex: 0xC +; CHECK-NEXT: ElementIndex: 0xD ; CHECK-NEXT: } ; CHECK-NEXT:] diff --git a/llvm/test/MC/WebAssembly/explicit-sections.ll b/llvm/test/MC/WebAssembly/explicit-sections.ll index b94190f8143..ae04051f458 100644 --- a/llvm/test/MC/WebAssembly/explicit-sections.ll +++ b/llvm/test/MC/WebAssembly/explicit-sections.ll @@ -10,7 +10,7 @@ target triple = "wasm32-unknown-unknown" @global3 = global i32 8, align 8, section ".sec2" -; CHECK: - Type: DATA +; CHECK: - Type: DATA{{$}} ; CHECK-NEXT: Segments: ; CHECK-NEXT: - SectionOffset: 6 ; CHECK-NEXT: InitFlags: 0 diff --git a/llvm/test/MC/WebAssembly/external-data.ll b/llvm/test/MC/WebAssembly/external-data.ll index c1ebca69c37..3f2129b86ea 100644 --- a/llvm/test/MC/WebAssembly/external-data.ll +++ b/llvm/test/MC/WebAssembly/external-data.ll @@ -10,7 +10,7 @@ target triple = "wasm32-unknown-unknown" @foo = global i64 7, align 4 @bar = hidden global i32* @myimport, align 4 -; CHECK: - Type: DATA +; CHECK: - Type: DATA{{$}} ; CHECK-NEXT: Relocations: ; CHECK-NEXT: - Type: R_WASM_MEMORY_ADDR_I32 ; CHECK-NEXT: Index: 2 diff --git a/llvm/test/MC/WebAssembly/external-func-address.ll b/llvm/test/MC/WebAssembly/external-func-address.ll index 3a9f03bf9e3..9d3b33592e0 100644 --- a/llvm/test/MC/WebAssembly/external-func-address.ll +++ b/llvm/test/MC/WebAssembly/external-func-address.ll @@ -58,7 +58,7 @@ define void @call(i32) { ; CHECK-NEXT: Opcode: I32_CONST ; CHECK-NEXT: Value: 1 ; CHECK-NEXT: Functions: [ 1, 2 ] -; CHECK: - Type: DATA +; CHECK: - Type: DATA{{$}} ; CHECK-NEXT: Relocations: ; CHECK-NEXT: - Type: R_WASM_TABLE_INDEX_I32 ; CHECK-NEXT: Index: 3 diff --git a/llvm/test/MC/WebAssembly/global-ctor-dtor.ll b/llvm/test/MC/WebAssembly/global-ctor-dtor.ll index df7ff92acff..f506794467c 100644 --- a/llvm/test/MC/WebAssembly/global-ctor-dtor.ll +++ b/llvm/test/MC/WebAssembly/global-ctor-dtor.ll @@ -61,6 +61,8 @@ declare void @func3() ; CHECK-NEXT: Opcode: I32_CONST ; CHECK-NEXT: Value: 1 ; CHECK-NEXT: Functions: [ 5, 7 ] +; CHECK-NEXT: - Type: DATACOUNT +; CHECK-NEXT: Count: 1 ; CHECK-NEXT: - Type: CODE ; CHECK-NEXT: Relocations: ; CHECK-NEXT: - Type: R_WASM_FUNCTION_INDEX_LEB diff --git a/llvm/test/MC/WebAssembly/reloc-code.ll b/llvm/test/MC/WebAssembly/reloc-code.ll index 4180d5f5a73..c16de2ec2a6 100644 --- a/llvm/test/MC/WebAssembly/reloc-code.ll +++ b/llvm/test/MC/WebAssembly/reloc-code.ll @@ -24,7 +24,7 @@ entry: ; CHECK: Format: WASM ; CHECK: Relocations [ -; CHECK-NEXT: Section (4) CODE { +; CHECK-NEXT: Section (5) CODE { ; CHECK-NEXT: Relocation { ; CHECK-NEXT: Type: R_WASM_MEMORY_ADDR_LEB (3) ; CHECK-NEXT: Offset: 0x9 diff --git a/llvm/test/MC/WebAssembly/reloc-data.ll b/llvm/test/MC/WebAssembly/reloc-data.ll index 2c4b206fe9f..aedaa4e58ff 100644 --- a/llvm/test/MC/WebAssembly/reloc-data.ll +++ b/llvm/test/MC/WebAssembly/reloc-data.ll @@ -13,7 +13,7 @@ target triple = "wasm32-unknown-unknown" ; CHECK: Format: WASM ; CHECK: Relocations [ -; CHECK-NEXT: Section (2) DATA { +; CHECK-NEXT: Section (3) DATA { ; CHECK-NEXT: Relocation { ; CHECK-NEXT: Type: R_WASM_MEMORY_ADDR_I32 (5) ; CHECK-NEXT: Offset: 0x13 diff --git a/llvm/test/MC/WebAssembly/reloc-pic.s b/llvm/test/MC/WebAssembly/reloc-pic.s index 249cd1fb89a..5a185541673 100644 --- a/llvm/test/MC/WebAssembly/reloc-pic.s +++ b/llvm/test/MC/WebAssembly/reloc-pic.s @@ -84,6 +84,8 @@ hidden_func: # CHECK-NEXT: GlobalMutable: true # CHECK-NEXT: - Type: FUNCTION # CHECK-NEXT: FunctionTypes: [ 0, 0, 0, 0, 0 ] +# CHECK-NEXT: - Type: DATACOUNT +# CHECK-NEXT: Count: 1 # CHECK-NEXT: - Type: CODE # CHECK-NEXT: Relocations: # CHECK-NEXT: - Type: R_WASM_GLOBAL_INDEX_LEB diff --git a/llvm/test/MC/WebAssembly/unnamed-data.ll b/llvm/test/MC/WebAssembly/unnamed-data.ll index e645572fdaf..836e3e7b5c1 100644 --- a/llvm/test/MC/WebAssembly/unnamed-data.ll +++ b/llvm/test/MC/WebAssembly/unnamed-data.ll @@ -9,7 +9,7 @@ target triple = "wasm32-unknown-unknown" @b = global i8* getelementptr inbounds ([6 x i8], [6 x i8]* @.str2, i32 0, i32 0), align 8 -; CHECK: - Type: DATA +; CHECK: - Type: DATA{{$}} ; CHECK-NEXT: Relocations: ; CHECK-NEXT: - Type: R_WASM_MEMORY_ADDR_I32 ; CHECK-NEXT: Index: 0 diff --git a/llvm/test/MC/WebAssembly/weak-alias.ll b/llvm/test/MC/WebAssembly/weak-alias.ll index 7abdc79b569..20a27edd343 100644 --- a/llvm/test/MC/WebAssembly/weak-alias.ll +++ b/llvm/test/MC/WebAssembly/weak-alias.ll @@ -73,6 +73,8 @@ entry: ; CHECK-NEXT: Opcode: I32_CONST ; CHECK-NEXT: Value: 1 ; CHECK-NEXT: Functions: [ 0 ] +; CHECK-NEXT: - Type: DATACOUNT +; CHECK-NEXT: Count: 3 ; CHECK-NEXT: - Type: CODE ; CHECK-NEXT: Relocations: ; CHECK-NEXT: - Type: R_WASM_FUNCTION_INDEX_LEB |

