1; RUN: opt < %s -skip-partial-inlining-cost-analysis -passes=partial-inliner -S | FileCheck %s 2 3declare void @bar() 4declare i32 @__gxx_personality_v0(...) 5declare ptr @__cxa_begin_catch(ptr) 6declare void @__cxa_end_catch() 7 8define internal void @callee(i1 %cond) personality ptr @__gxx_personality_v0 { 9entry: 10 br i1 %cond, label %if.then, label %if.end 11 12if.then: 13 invoke void @bar() 14 to label %invoke.cont unwind label %lpad 15 16invoke.cont: 17 br label %try.cont 18 19lpad: 20 %0 = landingpad { ptr, i32 } 21 catch ptr null 22 %1 = extractvalue { ptr, i32 } %0, 0 23 %2 = extractvalue { ptr, i32 } %0, 1 24 br label %catch 25 26catch: 27 %3 = call ptr @__cxa_begin_catch(ptr %1) 28 call void @__cxa_end_catch() 29 br label %try.cont 30 31try.cont: 32 br label %if.end 33 34if.end: 35 ret void 36} 37 38define internal void @caller(i1 %cond) { 39; CHECK-LABEL: define {{.*}} @caller 40entry: 41; CHECK: entry: 42; CHECK-NEXT: br i1 43; CHECK: codeRepl.i: 44; CHECK-NEXT: call void @callee.1.{{.*}}() 45 call void @callee(i1 %cond) 46 ret void 47} 48 49; CHECK-LABEL: define {{.*}} @callee.1.{{.*}}() personality ptr @__gxx_personality_v0 50; CHECK: invoke void @bar() 51; CHECK: landingpad 52