xref: /llvm-project/llvm/test/tools/llvm-reduce/remove-invoked-functions.ll (revision f4cb935ce8ade596a3f027870b8e2d90c94870ba)
1*f4cb935cSMatt Arsenault; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=instructions --test FileCheck --test-arg --check-prefixes=CHECK-ALL,CHECK-INTERESTINGNESS --test-arg %s --test-arg --input-file %s -o %t
2cf99be5cSMatt Arsenault; RUN: FileCheck --check-prefixes=CHECK-ALL,CHECK-FINAL %s < %t
30bc5436aSSamuel
40bc5436aSSamuel; CHECK-INTERESTINGNESS: define i32 @maybe_throwing_callee(
5cf99be5cSMatt Arsenault; CHECK-FINAL: define i32 @maybe_throwing_callee(i32 %arg)
60bc5436aSSamueldefine i32 @maybe_throwing_callee(i32 %arg) {
70bc5436aSSamuel; CHECK-ALL: call void @thrown()
80bc5436aSSamuel; CHECK-INTERESTINGNESS: ret i32
9cf99be5cSMatt Arsenault; CHECK-FINAL: ret i32 %arg
100bc5436aSSamuel  call void @thrown()
110bc5436aSSamuel  ret i32 %arg
120bc5436aSSamuel}
130bc5436aSSamuel
140bc5436aSSamuel; CHECK-ALL: declare void @did_not_throw(i32)
150bc5436aSSamueldeclare void @did_not_throw(i32)
160bc5436aSSamuel
170bc5436aSSamuel; CHECK-ALL: declare void @thrown()
180bc5436aSSamueldeclare void @thrown()
190bc5436aSSamuel
200bc5436aSSamuel; CHECK-INTERESTINGNESS: define void @caller(
21cf99be5cSMatt Arsenault; CHECK-FINAL: define void @caller(i32 %arg)
224982d8acSArthur Eubanksdefine void @caller(i32 %arg) personality ptr @__gxx_personality_v0 {
230bc5436aSSamuel; CHECK-ALL: bb:
240bc5436aSSamuelbb:
25f18c0739SSamuel; CHECK-INTERESTINGNESS: %i0 = invoke i32 {{.*}}@maybe_throwing_callee
264982d8acSArthur Eubanks; CHECK-FINAL: %i0 = invoke i32 @maybe_throwing_callee
270bc5436aSSamuel; CHECK-ALL: to label %bb3 unwind label %bb1
280bc5436aSSamuel  %i0 = invoke i32 @maybe_throwing_callee(i32 %arg)
290bc5436aSSamuel          to label %bb3 unwind label %bb1
300bc5436aSSamuel
310bc5436aSSamuel; CHECK-ALL: bb1:
320bc5436aSSamuelbb1:
334982d8acSArthur Eubanks; CHECK-ALL: landingpad { ptr, i32 }
344982d8acSArthur Eubanks; CHECK-ALL: catch ptr null
350bc5436aSSamuel; CHECK-ALL: call void @thrown()
360bc5436aSSamuel; CHECK-ALL: br label %bb4
374982d8acSArthur Eubanks  landingpad { ptr, i32 }
384982d8acSArthur Eubanks  catch ptr null
390bc5436aSSamuel  call void @thrown()
400bc5436aSSamuel  br label %bb4
410bc5436aSSamuel
420bc5436aSSamuel; CHECK-ALL: bb3:
430bc5436aSSamuelbb3:
440bc5436aSSamuel; CHECK-ALL: call void @did_not_throw(i32 %i0)
450bc5436aSSamuel; CHECK-ALL: br label %bb4
460bc5436aSSamuel  call void @did_not_throw(i32 %i0)
470bc5436aSSamuel  br label %bb4
480bc5436aSSamuel
490bc5436aSSamuel; CHECK-ALL: bb4:
500bc5436aSSamuel; CHECK-ALL: ret void
510bc5436aSSamuelbb4:
520bc5436aSSamuel  ret void
530bc5436aSSamuel}
540bc5436aSSamuel
550bc5436aSSamueldeclare i32 @__gxx_personality_v0(...)
56