Skip to content

Commit

Permalink
[WebAssembly] Cleanup Emscripten SjLj tests
Browse files Browse the repository at this point in the history
- Remove a redundant test: there were `longjmp_only` and `only_longjmp`,
  which do the same thing
- Add `CHECK-LABEL` lines for function names

Reviewed By: tlively

Differential Revision: https://reviews.llvm.org/D107511
  • Loading branch information
aheejin committed Aug 5, 2021
1 parent aa0b0fb commit 9c3345a
Showing 1 changed file with 5 additions and 14 deletions.
19 changes: 5 additions & 14 deletions llvm/test/CodeGen/WebAssembly/lower-em-sjlj.ll
Original file line number Diff line number Diff line change
Expand Up @@ -139,24 +139,14 @@ if.end: ; preds = %if.then, %entry
}

; Test a case when a function only calls other functions that are neither setjmp nor longjmp
define void @only_other_func() {
define void @other_func_only() {
; CHECK-LABEL: @other_func_only
entry:
call void @foo()
ret void
; CHECK: call void @foo()
}

; Test a case when a function only calls longjmp and not setjmp
define void @only_longjmp() {
entry:
%buf = alloca [1 x %struct.__jmp_buf_tag], align 16
%arraydecay = getelementptr inbounds [1 x %struct.__jmp_buf_tag], [1 x %struct.__jmp_buf_tag]* %buf, i32 0, i32 0
call void @longjmp(%struct.__jmp_buf_tag* %arraydecay, i32 5) #1
unreachable
; CHECK: %[[JMPBUF:.*]] = ptrtoint
; CHECK-NEXT: call void @emscripten_longjmp([[PTR]] %[[JMPBUF]], i32 5)
}

; Test inline asm handling
define void @inline_asm() {
; CHECK-LABEL: @inline_asm
Expand Down Expand Up @@ -185,10 +175,10 @@ entry:
ret i8 *%alloc
}

; Tests if program does not crash when there's no setjmp function calls in the
; module.
; Test a case when a function only calls longjmp and not setjmp
@buffer = global [1 x %struct.__jmp_buf_tag] zeroinitializer, align 16
define void @longjmp_only() {
; CHECK-LABEL: @longjmp_only
entry:
; CHECK: call void @emscripten_longjmp
call void @longjmp(%struct.__jmp_buf_tag* getelementptr inbounds ([1 x %struct.__jmp_buf_tag], [1 x %struct.__jmp_buf_tag]* @buffer, i32 0, i32 0), i32 1) #1
Expand All @@ -197,6 +187,7 @@ entry:

; Tests if SSA rewrite works when a use and its def are within the same BB.
define void @ssa_rewite_in_same_bb() {
; CHECK-LABEL: @ssa_rewite_in_same_bb
entry:
call void @foo()
br label %for.cond
Expand Down

0 comments on commit 9c3345a

Please sign in to comment.