brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 260da6e Raw
59 lines · plain
1; RUN: llvm-reduce --abort-on-invalid-reduction --delta-passes=function-data --test FileCheck --test-arg --check-prefixes=CHECK,INTERESTING --test-arg %s --test-arg --input-file %s -o %t2; RUN: FileCheck -check-prefixes=CHECK,RESULT %s < %t3 4; INTERESTING: define void @drop_personality(5; RESULT: define void @drop_personality() {6define void @drop_personality() personality ptr @__gxx_personality_v0 {7  ret void8}9 10; CHECK: define void @keep_personality() personality ptr @__gxx_personality_v0 {11define void @keep_personality() personality ptr @__gxx_personality_v0 {12  ret void13}14 15; Make sure an invalid reduction isn't produced if we need a16; personality function for different instructions17 18; CHECK: define void @landingpad_requires_personality()19; RESULT-SAME: personality ptr @__gxx_personality_v0 {20define void @landingpad_requires_personality() personality ptr @__gxx_personality_v0 {21bb0:22  br label %bb223 24bb1:25  landingpad { ptr, i32 }26  catch ptr null27  ret void28 29bb2:30  ret void31}32 33; CHECK-LABEL: define void @uses_catchpad()34; RESULT-SAME: personality ptr @__CxxFrameHandler3 {35define void @uses_catchpad() personality ptr @__CxxFrameHandler3 {36entry:37  br label %unreachable38 39catch.dispatch:40  %cs = catchswitch within none [label %catch] unwind to caller41 42catch:43  %cp = catchpad within %cs [ptr null, i32 64, ptr null]44  br label %unreachable45 46unreachable:47  unreachable48}49 50; CHECK-LABEL: define void @uses_resume()51; RESULT-SAME: personality ptr @__gxx_personality_v052define void @uses_resume() personality ptr @__gxx_personality_v0 {53entry:54  resume { ptr, i32 } zeroinitializer55}56 57declare i32 @__gxx_personality_v0(...)58declare i32 @__CxxFrameHandler3(...)59