Skip to content

Commit 6c84dd7

Browse files
authored
[lld][WebAssembly] Default to --stack-first (#166998)
The really painful part of this PR was updating all the test files. I had some help from Gemini GLI there which did a pretty good job (got maybe 80% of the updates done). Fixes: #151015
1 parent 0ecbd4e commit 6c84dd7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+209
-204
lines changed

lld/docs/ReleaseNotes.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,5 +52,8 @@ MachO Improvements
5252
WebAssembly Improvements
5353
------------------------
5454

55+
* The ``--stack-first`` flag is now enabled by default. The old
56+
behavior can be enabled using ``--no-stack-first``.
57+
5558
Fixes
5659
#####

lld/test/wasm/alias.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ _start:
2424
# CHECK-NEXT: FunctionTypes: [ 0 ]
2525
# CHECK-NEXT: - Type: MEMORY
2626
# CHECK-NEXT: Memories:
27-
# CHECK-NEXT: - Minimum: 0x2
27+
# CHECK-NEXT: - Minimum: 0x1
2828
# CHECK-NEXT: - Type: GLOBAL
2929
# CHECK-NEXT: Globals:
3030
# CHECK-NEXT: - Index: 0
3131
# CHECK-NEXT: Type: I32
3232
# CHECK-NEXT: Mutable: true
3333
# CHECK-NEXT: InitExpr:
3434
# CHECK-NEXT: Opcode: I32_CONST
35-
# CHECK-NEXT: Value: 66560
35+
# CHECK-NEXT: Value: 65536
3636
# CHECK-NEXT: - Type: EXPORT
3737
# CHECK-NEXT: Exports:
3838
# CHECK-NEXT: - Name: memory

lld/test/wasm/bss-only.s

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,13 @@ b:
2626
# CHECK-NEXT: Mutable: true
2727
# CHECK-NEXT: InitExpr:
2828
# CHECK-NEXT: Opcode: I32_CONST
29-
# CHECK-NEXT: Value: 67568
29+
# CHECK-NEXT: Value: 65536
3030
# CHECK-NEXT: - Index: 1
3131
# CHECK-NEXT: Type: I32
3232
# CHECK-NEXT: Mutable: false
3333
# CHECK-NEXT: InitExpr:
3434
# CHECK-NEXT: Opcode: I32_CONST
35-
# CHECK-NEXT: Value: 2028
35+
# CHECK-NEXT: Value: 66540
3636
# CHECK-NEXT: - Type: EXPORT
3737
# CHECK-NEXT: Exports:
3838
# CHECK-NEXT: - Name: memory

lld/test/wasm/build-id.test

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ foo:
4343

4444

4545
# DEFAULT: Contents of section build_id:
46-
# DEFAULT-NEXT: 0079 10299168 1e3c845a 3c8f80ae 2f16cc22 .).h.<.Z<.../.."
47-
# DEFAULT-NEXT: 0089 2d
46+
# DEFAULT-NEXT: 0079 103f86e6 3bb81959 2e99ffa9 acfed331 .?..;..Y.......1
47+
# DEFAULT-NEXT: 0089 3a
4848

4949
# SHA1: Contents of section build_id:
50-
# SHA1-NEXT: 0079 145abdda 387a9bc4 e3aed3c3 3319cd37 .Z..8z......3..7
51-
# SHA1-NEXT: 0089 0212237c e4 ..#|.
50+
# SHA1-NEXT: 0079 1410ade4 e75d1c9d 71023465 03b7572f .....]..q.4e..W/
51+
# SHA1-NEXT: 0089 c06c5ae0 74 .lZ.t
5252

5353
# UUID: Contents of section build_id:
5454
# UUID-NEXT: 0079 10

lld/test/wasm/call-indirect.s

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -82,13 +82,13 @@ indirect_func:
8282
# CHECK-NEXT: Mutable: true
8383
# CHECK-NEXT: InitExpr:
8484
# CHECK-NEXT: Opcode: I32_CONST
85-
# CHECK-NEXT: Value: 66576
85+
# CHECK-NEXT: Value: 65536
8686
# CHECK-NEXT: - Index: 1
8787
# CHECK-NEXT: Type: I32
8888
# CHECK-NEXT: Mutable: false
8989
# CHECK-NEXT: InitExpr:
9090
# CHECK-NEXT: Opcode: I32_CONST
91-
# CHECK-NEXT: Value: 1032
91+
# CHECK-NEXT: Value: 65544
9292
# CHECK-NEXT: - Type: EXPORT
9393
# CHECK-NEXT: Exports:
9494
# CHECK-NEXT: - Name: memory
@@ -125,23 +125,23 @@ indirect_func:
125125
# CHECK-NEXT: Body: 42010B
126126
# CHECK-NEXT: - Index: 1
127127
# CHECK-NEXT: Locals:
128-
# CHECK-NEXT: Body: 410028028088808000118080808000001A410028028488808000118180808000001A0B
128+
# CHECK-NEXT: Body: 410028028080848000118080808000001A410028028480848000118180808000001A0B
129129
# CHECK-NEXT: - Index: 2
130130
# CHECK-NEXT: Locals:
131131
# CHECK-NEXT: Body: 41020B
132132
# CHECK-NEXT: - Index: 3
133133
# CHECK-NEXT: Locals:
134-
# CHECK-NEXT: Body: 410028028888808000118180808000001A0B
134+
# CHECK-NEXT: Body: 410028028880848000118180808000001A0B
135135
# CHECK-NEXT: - Index: 4
136136
# CHECK-NEXT: Locals:
137137
# CHECK-NEXT: Body: 42012000118280808000001A0B
138138
# CHECK-NEXT: - Type: DATA
139139
# CHECK-NEXT: Segments:
140-
# CHECK-NEXT: - SectionOffset: 7
140+
# CHECK-NEXT: - SectionOffset: 8
141141
# CHECK-NEXT: InitFlags: 0
142142
# CHECK-NEXT: Offset:
143143
# CHECK-NEXT: Opcode: I32_CONST
144-
# CHECK-NEXT: Value: 1024
144+
# CHECK-NEXT: Value: 65536
145145
# CHECK-NEXT: Content: '010000000200000002000000'
146146
# CHECK-NEXT: - Type: CUSTOM
147147
# CHECK-NEXT: Name: name

lld/test/wasm/comdats.ll

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,13 @@ entry:
2323
; CHECK-NEXT: Mutable: true
2424
; CHECK-NEXT: InitExpr:
2525
; CHECK-NEXT: Opcode: I32_CONST
26-
; CHECK-NEXT: Value: 66576
26+
; CHECK-NEXT: Value: 65536
2727
; CHECK-NEXT: - Index: 1
2828
; CHECK-NEXT: Type: I32
2929
; CHECK-NEXT: Mutable: false
3030
; CHECK-NEXT: InitExpr:
3131
; CHECK-NEXT: Opcode: I32_CONST
32-
; CHECK-NEXT: Value: 1024
32+
; CHECK-NEXT: Value: 65536
3333
; CHECK-NEXT: - Type: EXPORT
3434
; CHECK-NEXT: Exports:
3535
; CHECK-NEXT: - Name: memory
@@ -69,7 +69,7 @@ entry:
6969
; CHECK-NEXT: Body: 1080808080001082808080001A0B
7070
; CHECK-NEXT: - Index: 2
7171
; CHECK-NEXT: Locals:
72-
; CHECK-NEXT: Body: 4180888080000B
72+
; CHECK-NEXT: Body: 4180808480000B
7373
; CHECK-NEXT: - Index: 3
7474
; CHECK-NEXT: Locals:
7575
; CHECK-NEXT: Body: 0B
@@ -81,9 +81,9 @@ entry:
8181
; CHECK-NEXT: Body: 4181808080000B
8282
; CHECK-NEXT: - Type: DATA
8383
; CHECK-NEXT: Segments:
84-
; CHECK-NEXT: - SectionOffset: 7
84+
; CHECK-NEXT: - SectionOffset: 8
8585
; CHECK-NEXT: InitFlags: 0
8686
; CHECK-NEXT: Offset:
8787
; CHECK-NEXT: Opcode: I32_CONST
88-
; CHECK-NEXT: Value: 1024
88+
; CHECK-NEXT: Value: 65536
8989
; CHECK-NEXT: Content: '616263'

lld/test/wasm/compress-relocs.s

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,16 @@ test_memory_and_indirect_call_relocs:
4747
end_function
4848

4949
# CHECK: test_memory_and_indirect_call_relocs
50-
# CHECK: 41 90 88 80 80 00 i32.const 1040
50+
# CHECK: 41 90 80 84 80 00 i32.const 65552
5151
# CHECK: 11 80 80 80 80 00 80 80 80 80 00 call_indirect 0
52-
# CHECK: 28 02 94 88 80 80 00 i32.load 1044
52+
# CHECK: 28 02 94 80 84 80 00 i32.load 65556
5353
# CHECK: 11 81 80 80 80 00 80 80 80 80 00 call_indirect 1
5454
# CHECK: 41 81 80 80 80 00 i32.const 1
5555
# CHECK: 11 80 80 80 80 00 80 80 80 80 00 call_indirect 0
5656
# COMPRESS: test_memory_and_indirect_call_relocs
57-
# COMPRESS: 41 90 08 i32.const 1040
57+
# COMPRESS: 41 90 80 04 i32.const 65552
5858
# COMPRESS: 11 00 00 call_indirect 0
59-
# COMPRESS: 28 02 94 08 i32.load 1044
59+
# COMPRESS: 28 02 94 80 04 i32.load 65556
6060
# COMPRESS: 11 01 00 call_indirect 1
6161
# COMPRESS: 41 01 i32.const 1
6262
# COMPRESS: 11 00 00 call_indirect 0
@@ -91,11 +91,11 @@ test_relative_relocs:
9191
end_function
9292

9393
# CHECK: test_relative_relocs
94-
# CHECK: 41 90 88 80 80 00 i32.const 1040
94+
# CHECK: 41 90 80 84 80 00 i32.const 65552
9595
# CHECK: 41 81 80 80 80 00 i32.const 1
9696
# CHECK: 41 83 80 80 80 00 i32.const 3
9797
# COMPRESS: test_relative_relocs
98-
# COMPRESS: 41 90 08 i32.const 1040
98+
# COMPRESS: 41 90 80 04 i32.const 65552
9999
# COMPRESS: 41 01 i32.const 1
100100
# COMPRESS: 41 03 i32.const 3
101101

lld/test/wasm/compress-relocs64.s

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ test_memory_and_indirect_call_relocs:
3636
end_function
3737

3838
# CHECK: test_memory_and_indirect_call_relocs
39-
# CHECK: 42 90 88 80 80 80 80 80 80 80 00 i64.const 1040
40-
# CHECK: 29 03 98 88 80 80 80 80 80 80 80 00 i64.load 1048
39+
# CHECK: 42 90 80 84 80 80 80 80 80 80 00 i64.const 65552
40+
# CHECK: 29 03 98 80 84 80 80 80 80 80 80 00 i64.load 65560
4141
# CHECK: 42 81 80 80 80 80 80 80 80 80 00 i64.const 1
4242
# COMPRESS: test_memory_and_indirect_call_relocs
43-
# COMPRESS: 42 90 08 i64.const 1040
44-
# COMPRESS: 29 03 98 08 i64.load 1048
43+
# COMPRESS: 42 90 80 04 i64.const 65552
44+
# COMPRESS: 29 03 98 80 04 i64.load 65560
4545
# COMPRESS: 42 01 i64.const 1
4646

4747
.globl test_relative_relocs
@@ -56,11 +56,11 @@ test_relative_relocs:
5656
end_function
5757

5858
# CHECK: test_relative_relocs
59-
# CHECK: 42 90 88 80 80 80 80 80 80 80 00 i64.const 1040
59+
# CHECK: 42 90 80 84 80 80 80 80 80 80 00 i64.const 65552
6060
# CHECK: 42 81 80 80 80 80 80 80 80 80 00 i64.const 1
6161
# CHECK: 42 83 80 80 80 80 80 80 80 80 00 i64.const 3
6262
# COMPRESS: test_relative_relocs
63-
# COMPRESS: 42 90 08 i64.const 1040
63+
# COMPRESS: 42 90 80 04 i64.const 65552
6464
# COMPRESS: 42 01 i64.const 1
6565
# COMPRESS: 42 03 i64.const 3
6666

lld/test/wasm/custom-section-name.ll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,29 +16,29 @@ target triple = "wasm32-unknown-unknown"
1616

1717
; CHECK-LABEL: - Type: DATA
1818
; CHECK-NEXT: Segments:
19-
; CHECK-NEXT: - SectionOffset: 7
19+
; CHECK-NEXT: - SectionOffset: 8
2020
; CHECK-NEXT: InitFlags: 0
2121
; CHECK-NEXT: Offset:
2222
; CHECK-NEXT: Opcode: I32_CONST
23-
; CHECK-NEXT: Value: 1024
23+
; CHECK-NEXT: Value: 65536
2424
; CHECK-NEXT: Content: '00000000'
25-
; CHECK-NEXT: - SectionOffset: 17
25+
; CHECK-NEXT: - SectionOffset: 19
2626
; CHECK-NEXT: InitFlags: 0
2727
; CHECK-NEXT: Offset:
2828
; CHECK-NEXT: Opcode: I32_CONST
29-
; CHECK-NEXT: Value: 1028
29+
; CHECK-NEXT: Value: 65540
3030
; CHECK-NEXT: Content: 2A000000
31-
; CHECK-NEXT: - SectionOffset: 27
31+
; CHECK-NEXT: - SectionOffset: 30
3232
; CHECK-NEXT: InitFlags: 0
3333
; CHECK-NEXT: Offset:
3434
; CHECK-NEXT: Opcode: I32_CONST
35-
; CHECK-NEXT: Value: 1032
35+
; CHECK-NEXT: Value: 65544
3636
; CHECK-NEXT: Content: '07000000'
37-
; BSS-NEXT: - SectionOffset: 37
37+
; BSS-NEXT: - SectionOffset: 41
3838
; BSS-NEXT: InitFlags: 0
3939
; BSS-NEXT: Offset:
4040
; BSS-NEXT: Opcode: I32_CONST
41-
; BSS-NEXT: Value: 1036
41+
; BSS-NEXT: Value: 65548
4242
; BSS-NEXT: Content: '00000000'
4343
; NO-BSS-NOT: - SectionOffset:
4444

lld/test/wasm/data-layout.s

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -63,33 +63,33 @@ local_struct_internal_ptr:
6363
# CHECK-NEXT: Mutable: true
6464
# CHECK-NEXT: InitExpr:
6565
# CHECK-NEXT: Opcode: [[PTR]]_CONST
66-
# CHECK-NEXT: Value: 66624
66+
# CHECK-NEXT: Value: 65536
6767
# CHECK-NEXT: - Index: 1
6868
# CHECK-NEXT: Type: [[PTR]]
6969
# CHECK-NEXT: Mutable: false
7070
# CHECK-NEXT: InitExpr:
7171
# CHECK-NEXT: Opcode: [[PTR]]_CONST
72-
# CHECK-NEXT: Value: 1080
72+
# CHECK-NEXT: Value: 65592
7373
# CHECK-NEXT: - Index: 2
7474
# CHECK-NEXT: Type: [[PTR]]
7575
# CHECK-NEXT: Mutable: false
7676
# CHECK-NEXT: InitExpr:
7777
# CHECK-NEXT: Opcode: [[PTR]]_CONST
78-
# CHECK-NEXT: Value: 66624
78+
# CHECK-NEXT: Value: 65600
7979

8080
# CHECK: - Type: DATA
8181
# CHECK-NEXT: Segments:
82-
# CHECK-NEXT: - SectionOffset: 7
82+
# CHECK-NEXT: - SectionOffset: 8
8383
# CHECK-NEXT: InitFlags: 0
8484
# CHECK-NEXT: Offset:
8585
# CHECK-NEXT: Opcode: [[PTR]]_CONST
86-
# CHECK-NEXT: Value: 1024
86+
# CHECK-NEXT: Value: 65536
8787
# CHECK-NEXT: Content: 68656C6C6F0A00
88-
# CHECK-NEXT: - SectionOffset: 20
88+
# CHECK-NEXT: - SectionOffset: 22
8989
# CHECK-NEXT: InitFlags: 0
9090
# CHECK-NEXT: Offset:
9191
# CHECK-NEXT: Opcode: [[PTR]]_CONST
92-
# CHECK-NEXT: Value: 1040
92+
# CHECK-NEXT: Value: 65552
9393

9494

9595
# RUN: wasm-ld -no-gc-sections --allow-undefined --no-entry \

0 commit comments

Comments
 (0)