66 lines · plain
1; RUN: opt -S -passes=partial-inliner -skip-partial-inlining-cost-analysis < %s | FileCheck %s2; RUN: opt -S -passes=partial-inliner -skip-partial-inlining-cost-analysis < %s | FileCheck %s3 4%class.A = type { i32 }5@cond = local_unnamed_addr global i32 0, align 46 7; Function Attrs: uwtable8define void @_Z3foov() local_unnamed_addr {9bb:10 %tmp = alloca %class.A, align 411 call void @llvm.lifetime.start.p0(ptr nonnull %tmp)12 %tmp2 = load i32, ptr @cond, align 4, !tbaa !213 %tmp3 = icmp eq i32 %tmp2, 014 br i1 %tmp3, label %bb4, label %bb515 16bb4: ; preds = %bb17 call void @_ZN1A7memfuncEv(ptr nonnull %tmp)18 br label %bb519 20bb5: ; preds = %bb4, %bb21 call void @llvm.lifetime.end.p0(ptr nonnull %tmp)22 ret void23}24 25; Function Attrs: argmemonly nounwind26declare void @llvm.lifetime.start.p0(ptr nocapture)27 28declare void @_ZN1A7memfuncEv(ptr) local_unnamed_addr29 30; Function Attrs: argmemonly nounwind31declare void @llvm.lifetime.end.p0(ptr nocapture)32 33; Function Attrs: uwtable34define void @_Z3goov() local_unnamed_addr {35; CHECK-LABEL: @_Z3goov()36bb:37; CHECK: bb:38; CHECK-NOT: alloca39; CHECK-NOT: bitcast40; CHECK-NOT: llvm.lifetime41; CHECK: br i142; CHECK: codeRepl.i:43; CHECK: call void @_Z3foov.1.44 45 tail call void @_Z3foov()46 ret void47}48 49; CHECK-LABEL: define internal void @_Z3foov.1.50; CHECK: newFuncRoot:51; CHECK-NEXT: %tmp = alloca %class.A52; CHECK-NEXT: call void @llvm.lifetime.start.p0(ptr nonnull %tmp)53; CHECK: call void @llvm.lifetime.end.p0(ptr nonnull %tmp)54; CHECK-NEXT: br label %bb5.exitStub55 56 57!llvm.module.flags = !{!0}58!llvm.ident = !{!1}59 60!0 = !{i32 1, !"wchar_size", i32 4}61!1 = !{!"clang version 5.0.0 (trunk 304489)"}62!2 = !{!3, !3, i64 0}63!3 = !{!"int", !4, i64 0}64!4 = !{!"omnipotent char", !5, i64 0}65!5 = !{!"Simple C++ TBAA"}66