Created
August 29, 2023 15:09
-
-
Save kwk/31de55c0a03b0eb62e78aee0bab74d01 to your computer and use it in GitHub Desktop.
Test diff
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- a/llvm/test/CodeGen/WebAssembly/lower-wasm-sjlj.ll | |
+++ b/llvm/test/CodeGen/WebAssembly/lower-wasm-sjlj.ll | |
@@ -2,6 +2,7 @@ | |
; RUN: opt < %s -wasm-lower-em-ehsjlj -wasm-enable-sjlj -S --mattr=+atomics,+bulk-memory | FileCheck %s -DPTR=i32 | |
; RUN: opt < %s -wasm-lower-em-ehsjlj -wasm-enable-sjlj --mtriple=wasm64-unknown-unknown -data-layout="e-m:e-p:64:64-i64:64-n32:64-S128" -S | FileCheck %s -DPTR=i64 | |
+ | |
target datalayout = "e-m:e-p:32:32-i64:64-n32:64-S128" | |
target triple = "wasm32-unknown-unknown" | |
@@ -25,16 +26,16 @@ entry: | |
unreachable | |
; CHECK: entry: | |
-; CHECK-NEXT: %malloccall = tail call ptr @malloc([[PTR]] 40) | |
-; CHECK-NEXT: store i32 0, ptr %malloccall, align 4 | |
+; CHECK-NEXT: %setjmpTable = tail call ptr @malloc([[PTR]] 40) | |
+; CHECK-NEXT: store i32 0, ptr %setjmpTable, align 4 | |
; CHECK-NEXT: %setjmpTableSize = add i32 4, 0 | |
; CHECK-NEXT: br label %setjmp.dispatch | |
-; CHECK: setjmp.dispatch: | |
-; CHECK-NEXT: %val8 = phi i32 [ %val, %if.end ], [ undef, %entry ] | |
-; CHECK-NEXT: %buf7 = phi ptr [ %buf6, %if.end ], [ undef, %entry ] | |
-; CHECK-NEXT: %setjmpTableSize4 = phi i32 [ %setjmpTableSize5, %if.end ], [ %setjmpTableSize, %entry ] | |
-; CHECK-NEXT: %setjmpTable2 = phi ptr [ %setjmpTable3, %if.end ], [ %malloccall, %entry ] | |
+; CHECK: setjmp.dispatch: ; preds = %if.end, %entry | |
+; CHECK-NEXT: %val9 = phi i32 [ %val, %if.end ], [ undef, %entry ] | |
+; CHECK-NEXT: %buf8 = phi ptr [ %buf7, %if.end ], [ undef, %entry ] | |
+; CHECK-NEXT: %setjmpTableSize5 = phi i32 [ %setjmpTableSize6, %if.end ], [ %setjmpTableSize, %entry | |
+; CHECK-NEXT: %setjmpTable3 = phi ptr [ %setjmpTable4, %if.end ], [ %setjmpTable, %entry ] | |
; CHECK-NEXT: %label.phi = phi i32 [ %label, %if.end ], [ -1, %entry ] | |
; CHECK-NEXT: switch i32 %label.phi, label %entry.split [ | |
; CHECK-NEXT: i32 1, label %entry.split.split | |
@@ -42,19 +43,19 @@ entry: | |
; CHECK: entry.split: | |
; CHECK-NEXT: %buf = alloca [1 x %struct.__jmp_buf_tag], align 16 | |
-; CHECK-NEXT: %setjmpTable = call ptr @saveSetjmp(ptr %buf, i32 1, ptr %setjmpTable2, i32 %setjmpTableSize4) | |
-; CHECK-NEXT: %setjmpTableSize1 = call i32 @getTempRet0() | |
+; CHECK-NEXT: %setjmpTable1 = call ptr @saveSetjmp(ptr %buf, i32 1, ptr %setjmpTable3, i32 %setjmpTableSize5) | |
+; CHECK-NEXT: %setjmpTableSize2 = call i32 @getTempRet0() | |
; CHECK-NEXT: br label %entry.split.split | |
-; CHECK: entry.split.split: | |
-; CHECK-NEXT: %buf6 = phi ptr [ %buf7, %setjmp.dispatch ], [ %buf, %entry.split ] | |
-; CHECK-NEXT: %setjmpTableSize5 = phi i32 [ %setjmpTableSize1, %entry.split ], [ %setjmpTableSize4, %setjmp.dispatch ] | |
-; CHECK-NEXT: %setjmpTable3 = phi ptr [ %setjmpTable, %entry.split ], [ %setjmpTable2, %setjmp.dispatch ] | |
-; CHECK-NEXT: %setjmp.ret = phi i32 [ 0, %entry.split ], [ %val8, %setjmp.dispatch ] | |
-; CHECK-NEXT: invoke void @__wasm_longjmp(ptr %buf6, i32 1) | |
+; CHECK: entry.split.split: ; preds = %setjmp.dispatch, %entry.split | |
+; CHECK-NEXT: %buf7 = phi ptr [ %buf8, %setjmp.dispatch ], [ %buf, %entry.split ] | |
+; CHECK-NEXT: %setjmpTableSize6 = phi i32 [ %setjmpTableSize2, %entry.split ], [ %setjmpTableSize5, %setjmp.dispatch ] | |
+; CHECK-NEXT: %setjmpTable4 = phi ptr [ %setjmpTable1, %entry.split ], [ %setjmpTable3, %setjmp.dispatch ] | |
+; CHECK-NEXT: %setjmp.ret = phi i32 [ 0, %entry.split ], [ %val9, %setjmp.dispatch ] | |
+; CHECK-NEXT: invoke void @__wasm_longjmp(ptr %buf7, i32 1) | |
; CHECK-NEXT: to label %.noexc unwind label %catch.dispatch.longjmp | |
-; CHECK: .noexc: | |
+; CHECK: .noexc: ; preds = %entry.split.split | |
; CHECK-NEXT: unreachable | |
; CHECK: catch.dispatch.longjmp: | |
@@ -68,12 +69,12 @@ entry: | |
; CHECK-NEXT: %env = load ptr, ptr %env_gep, align {{.*}} | |
; CHECK-NEXT: %val = load i32, ptr %val_gep, align 4 | |
; CHECK-NEXT: %setjmp.id = load [[PTR]], ptr %env, align {{.*}} | |
-; CHECK-NEXT: %label = call i32 @testSetjmp([[PTR]] %setjmp.id, ptr %setjmpTable3, i32 %setjmpTableSize5) [ "funclet"(token %1) ] | |
+; CHECK-NEXT: %label = call i32 @testSetjmp([[PTR]] %setjmp.id, ptr %setjmpTable4, i32 %setjmpTableSize6) [ "funclet"(token %1) ] | |
; CHECK-NEXT: %2 = icmp eq i32 %label, 0 | |
; CHECK-NEXT: br i1 %2, label %if.then, label %if.end | |
-; CHECK: if.then: | |
-; CHECK-NEXT: tail call void @free(ptr %setjmpTable3) [ "funclet"(token %1) ] | |
+; CHECK: if.then: ; preds = %catch.longjmp | |
+; CHECK-NEXT: tail call void @free(ptr %setjmpTable4) [ "funclet"(token %1) ] | |
; CHECK-NEXT: call void @__wasm_longjmp(ptr %env, i32 %val) [ "funclet"(token %1) ] | |
; CHECK-NEXT: unreachable | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment