56 lines · plain
1; 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 %t2; RUN: FileCheck --check-prefixes=CHECK-ALL,CHECK-FINAL %s < %t3 4; CHECK-INTERESTINGNESS: define i32 @maybe_throwing_callee(5; CHECK-FINAL: define i32 @maybe_throwing_callee(i32 %arg)6define i32 @maybe_throwing_callee(i32 %arg) {7; CHECK-ALL: call void @thrown()8; CHECK-INTERESTINGNESS: ret i329; CHECK-FINAL: ret i32 %arg10 call void @thrown()11 ret i32 %arg12}13 14; CHECK-ALL: declare void @did_not_throw(i32)15declare void @did_not_throw(i32)16 17; CHECK-ALL: declare void @thrown()18declare void @thrown()19 20; CHECK-INTERESTINGNESS: define void @caller(21; CHECK-FINAL: define void @caller(i32 %arg)22define void @caller(i32 %arg) personality ptr @__gxx_personality_v0 {23; CHECK-ALL: bb:24bb:25; CHECK-INTERESTINGNESS: %i0 = invoke i32 {{.*}}@maybe_throwing_callee26; CHECK-FINAL: %i0 = invoke i32 @maybe_throwing_callee27; CHECK-ALL: to label %bb3 unwind label %bb128 %i0 = invoke i32 @maybe_throwing_callee(i32 %arg)29 to label %bb3 unwind label %bb130 31; CHECK-ALL: bb1:32bb1:33; CHECK-ALL: landingpad { ptr, i32 }34; CHECK-ALL: catch ptr null35; CHECK-ALL: call void @thrown()36; CHECK-ALL: br label %bb437 landingpad { ptr, i32 }38 catch ptr null39 call void @thrown()40 br label %bb441 42; CHECK-ALL: bb3:43bb3:44; CHECK-ALL: call void @did_not_throw(i32 %i0)45; CHECK-ALL: br label %bb446 call void @did_not_throw(i32 %i0)47 br label %bb448 49; CHECK-ALL: bb4:50; CHECK-ALL: ret void51bb4:52 ret void53}54 55declare i32 @__gxx_personality_v0(...)56