Skip to content

Commit 38a2051

Browse files
authored
Revert "[WebAssembly] remove instruction after builtin trap" (#90354)
Reverts #90207 LLD Bots are broken.
1 parent 0336328 commit 38a2051

File tree

6 files changed

+8
-102
lines changed

6 files changed

+8
-102
lines changed

llvm/lib/Target/WebAssembly/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ add_llvm_target(WebAssemblyCodeGen
1919
WebAssemblyArgumentMove.cpp
2020
WebAssemblyAsmPrinter.cpp
2121
WebAssemblyCFGStackify.cpp
22-
WebAssemblyCleanCodeAfterTrap.cpp
2322
WebAssemblyCFGSort.cpp
2423
WebAssemblyDebugFixup.cpp
2524
WebAssemblyDebugValueManager.cpp

llvm/lib/Target/WebAssembly/WebAssembly.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ FunctionPass *createWebAssemblyISelDag(WebAssemblyTargetMachine &TM,
3737
CodeGenOptLevel OptLevel);
3838
FunctionPass *createWebAssemblyArgumentMove();
3939
FunctionPass *createWebAssemblySetP2AlignOperands();
40-
FunctionPass *createWebAssemblyCleanCodeAfterTrap();
4140

4241
// Late passes.
4342
FunctionPass *createWebAssemblyReplacePhysRegs();
@@ -64,7 +63,6 @@ void initializeOptimizeReturnedPass(PassRegistry &);
6463
void initializeWebAssemblyRefTypeMem2LocalPass(PassRegistry &);
6564
void initializeWebAssemblyAddMissingPrototypesPass(PassRegistry &);
6665
void initializeWebAssemblyArgumentMovePass(PassRegistry &);
67-
void initializeWebAssemblyCleanCodeAfterTrapPass(PassRegistry &);
6866
void initializeWebAssemblyCFGSortPass(PassRegistry &);
6967
void initializeWebAssemblyCFGStackifyPass(PassRegistry &);
7068
void initializeWebAssemblyDAGToDAGISelPass(PassRegistry &);

llvm/lib/Target/WebAssembly/WebAssemblyCleanCodeAfterTrap.cpp

Lines changed: 0 additions & 80 deletions
This file was deleted.

llvm/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -512,10 +512,6 @@ bool WebAssemblyPassConfig::addInstSelector() {
512512
// Eliminate range checks and add default targets to br_table instructions.
513513
addPass(createWebAssemblyFixBrTableDefaults());
514514

515-
// unreachable is terminator, non-terminator instruction after it is not
516-
// allowed.
517-
addPass(createWebAssemblyCleanCodeAfterTrap());
518-
519515
return false;
520516
}
521517

llvm/test/CodeGen/WebAssembly/unreachable.ll

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ define void @trap_ret_void() {
3030
; CHECK: .functype trap_ret_void () -> ()
3131
; CHECK-NEXT: # %bb.0:
3232
; CHECK-NEXT: unreachable
33+
; CHECK-NEXT: # fallthrough-return
3334
; CHECK-NEXT: end_function
3435
call void @llvm.trap()
3536
ret void
@@ -53,6 +54,7 @@ define void @trap_unreacheable() {
5354
; CHECK: .functype trap_unreacheable () -> ()
5455
; CHECK-NEXT: # %bb.0:
5556
; CHECK-NEXT: unreachable
57+
; CHECK-NEXT: unreachable
5658
; CHECK-NEXT: end_function
5759
call void @llvm.trap()
5860
unreachable
@@ -92,12 +94,3 @@ define i32 @missing_ret_noreturn_unreachable() {
9294
call void @ext_never_return()
9395
unreachable
9496
}
95-
96-
define i32 @no_crash_for_other_instruction_after_trap(ptr %p, i32 %b) {
97-
; CHECK-LABEL: no_crash_for_other_instruction_after_trap:
98-
; CHECK: unreachable
99-
; CHECK-NEXT: end_function
100-
%a = load i32, ptr %p
101-
call void @llvm.trap()
102-
ret i32 %a
103-
}

llvm/test/MC/WebAssembly/global-ctor-dtor.ll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,29 +80,29 @@ declare void @func3()
8080
; CHECK-NEXT: Offset: 0x1D
8181
; CHECK-NEXT: - Type: R_WASM_FUNCTION_INDEX_LEB
8282
; CHECK-NEXT: Index: 6
83-
; CHECK-NEXT: Offset: 0x2B
83+
; CHECK-NEXT: Offset: 0x2C
8484
; CHECK-NEXT: - Type: R_WASM_TABLE_INDEX_SLEB
8585
; CHECK-NEXT: Index: 5
86-
; CHECK-NEXT: Offset: 0x36
86+
; CHECK-NEXT: Offset: 0x37
8787
; CHECK-NEXT: - Type: R_WASM_MEMORY_ADDR_SLEB
8888
; CHECK-NEXT: Index: 3
89-
; CHECK-NEXT: Offset: 0x3E
89+
; CHECK-NEXT: Offset: 0x3F
9090
; CHECK-NEXT: - Type: R_WASM_FUNCTION_INDEX_LEB
9191
; CHECK-NEXT: Index: 4
92-
; CHECK-NEXT: Offset: 0x44
92+
; CHECK-NEXT: Offset: 0x45
9393
; CHECK-NEXT: Functions:
9494
; CHECK-NEXT: - Index: 5
9595
; CHECK-NEXT: Locals:
9696
; CHECK-NEXT: Body: 1080808080000B
9797
; CHECK-NEXT: - Index: 6
9898
; CHECK-NEXT: Locals:
99-
; CHECK-NEXT: Body: 02404181808080004100418080808000108180808000450D00000B0B
99+
; CHECK-NEXT: Body: 02404181808080004100418080808000108180808000450D0000000B0B
100100
; CHECK-NEXT: - Index: 7
101101
; CHECK-NEXT: Locals:
102102
; CHECK-NEXT: Body: 1082808080000B
103103
; CHECK-NEXT: - Index: 8
104104
; CHECK-NEXT: Locals:
105-
; CHECK-NEXT: Body: 02404182808080004100418080808000108180808000450D00000B0B
105+
; CHECK-NEXT: Body: 02404182808080004100418080808000108180808000450D0000000B0B
106106
; CHECK-NEXT: - Type: DATA
107107
; CHECK-NEXT: Segments:
108108
; CHECK-NEXT: - SectionOffset: 6

0 commit comments

Comments
 (0)