diff --git a/bench/abc/optimized/abcRec3.c.ll b/bench/abc/optimized/abcRec3.c.ll index f4b3e10b453..0f4469ff9a1 100644 --- a/bench/abc/optimized/abcRec3.c.ll +++ b/bench/abc/optimized/abcRec3.c.ll @@ -2616,14 +2616,7 @@ Vec_MemFree.exit: ; preds = %._crit_edge.i, %133 tail call void @free(ptr noundef nonnull %116) #25 %134 = getelementptr inbounds nuw i8, ptr %0, i64 24 tail call void @Gia_ManStopP(ptr noundef nonnull %134) #25 - %.not = icmp eq ptr %0, null - br i1 %.not, label %136, label %135 - -135: ; preds = %Vec_MemFree.exit - tail call void @free(ptr noundef nonnull %0) #25 - br label %136 - -136: ; preds = %Vec_MemFree.exit, %135 + tail call void @free(ptr noundef %0) #25 ret void } diff --git a/bench/abc/optimized/cbaBlast.c.ll b/bench/abc/optimized/cbaBlast.c.ll index 0eed1dcbe10..2f9f069f8b6 100644 --- a/bench/abc/optimized/cbaBlast.c.ll +++ b/bench/abc/optimized/cbaBlast.c.ll @@ -3206,12 +3206,16 @@ Vec_IntPush.exit: ; preds = %.Vec_IntGrow.exit10 call void @free(ptr noundef nonnull %.pre) #20 br label %Vec_IntFree.exit -Vec_IntFree.exit: ; preds = %6, %._crit_edge, %98 +Vec_IntFree.exit: ; preds = %._crit_edge, %98 call void @free(ptr noundef nonnull %calloc) #20 + br label %99 + +Vec_IntFree.exit: ; preds = %6 + tail call void @free(ptr noundef nonnull %calloc) #20 %.not = icmp eq ptr %17, null br i1 %.not, label %100, label %99 -99: ; preds = %Vec_IntFree.exit +99: ; preds = %Vec_IntFree.exit, %Vec_IntFree.exit call void @free(ptr noundef nonnull %17) #20 br label %100 diff --git a/bench/abc/optimized/wlcBlast.c.ll b/bench/abc/optimized/wlcBlast.c.ll index d6cf498b192..9563bac1d74 100644 --- a/bench/abc/optimized/wlcBlast.c.ll +++ b/bench/abc/optimized/wlcBlast.c.ll @@ -1628,7 +1628,7 @@ define void @Wlc_BlastAdderCLA_int(ptr noundef %0, ptr noundef captures(none) %1 br label %39 39: ; preds = %38, %37 - tail call void @free(ptr noundef %14) #21 + tail call void @free(ptr noundef nonnull %14) #21 br label %40 40: ; preds = %39, %16 @@ -3882,12 +3882,16 @@ Vec_IntPush.exit: ; preds = %.Vec_IntGrow.exit10 call void @free(ptr noundef nonnull %.pre) #21 br label %Vec_IntFree.exit -Vec_IntFree.exit: ; preds = %6, %._crit_edge, %98 +Vec_IntFree.exit: ; preds = %._crit_edge, %98 call void @free(ptr noundef nonnull %calloc) #21 + br label %99 + +Vec_IntFree.exit: ; preds = %6 + tail call void @free(ptr noundef nonnull %calloc) #21 %.not = icmp eq ptr %17, null br i1 %.not, label %100, label %99 -99: ; preds = %Vec_IntFree.exit +99: ; preds = %Vec_IntFree.exit, %Vec_IntFree.exit call void @free(ptr noundef nonnull %17) #21 br label %100 diff --git a/bench/abseil-cpp/optimized/fixed_array_test.cc.ll b/bench/abseil-cpp/optimized/fixed_array_test.cc.ll index 44c98470b04..066b43af6ba 100644 --- a/bench/abseil-cpp/optimized/fixed_array_test.cc.ll +++ b/bench/abseil-cpp/optimized/fixed_array_test.cc.ll @@ -59179,16 +59179,7 @@ _ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE %4 = load i64, ptr %__args1, align 8 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i) #24 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr, ptr noundef %3, i64 noundef %4, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i) - to label %invoke.cont unwind label %lpad.i.i - -lpad.i.i: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit - %5 = landingpad { ptr, i32 } - catch ptr null - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i) #24 - %6 = extractvalue { ptr, i32 } %5, 0 - %7 = call ptr @__cxa_begin_catch(ptr %6) #24 - %tobool.not = icmp eq ptr %cond.i17, null - br i1 %tobool.not, label %if.end.thread, label %if.then.i32 + to label %invoke.cont unwind label %if.then.i32 invoke.cont: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i) #24 @@ -59239,21 +59230,19 @@ _ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE store ptr %add.ptr28, ptr %_M_end_of_storage, align 8 ret void -if.end.thread: ; preds = %lpad.i.i - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr) #24 - br label %invoke.cont21 - lpad19: ; preds = %invoke.cont21 %8 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %eh.resume unwind label %terminate.lpad -if.then.i32: ; preds = %lpad.i.i +if.then.i32: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit + %6 = landingpad { ptr, i32 } + catch ptr null + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i) #24 + %7 = extractvalue { ptr, i32 } %6, 0 + %8 = call ptr @__cxa_begin_catch(ptr %7) #24 call void @_ZdlPv(ptr noundef nonnull %cond.i17) #25 - br label %invoke.cont21 - -invoke.cont21: ; preds = %if.then.i32, %if.end.thread invoke void @__cxa_rethrow() #27 to label %unreachable unwind label %lpad19 diff --git a/bench/actix-rs/optimized/2o6s6qtmif526itx.ll b/bench/actix-rs/optimized/2o6s6qtmif526itx.ll index bb96f0c4d0a..76194658900 100644 --- a/bench/actix-rs/optimized/2o6s6qtmif526itx.ll +++ b/bench/actix-rs/optimized/2o6s6qtmif526itx.ll @@ -7022,19 +7022,17 @@ define internal fastcc void @"_ZN4core3ptr91drop_in_place$LT$alloc..boxed..Box$L 3: ; preds = %0 %4 = landingpad { ptr, i32 } cleanup - %5 = icmp ne ptr %.0.val, null - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 - %7 = load i64, ptr %6, align 8, !range !582, !invariant.load !10 - %8 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 - %9 = load i64, ptr %8, align 8, !range !583, !invariant.load !10 - %10 = icmp ult i64 %9, -9223372036854775807 - tail call void @llvm.assume(i1 %10) - %11 = icmp eq i64 %7, 0 - br i1 %11, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h56122a9f709b47c5E.exit", label %12 - -12: ; preds = %3 - tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef range(i64 1, -9223372036854775808) %7, i64 noundef range(i64 1, -9223372036854775807) %9) #22 + %5 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 + %6 = load i64, ptr %5, align 8, !range !582, !invariant.load !10 + %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 + %7 = load i64, ptr %6, align 8, !range !583, !invariant.load !10 + %8 = icmp ult i64 %8, -9223372036854775807 + tail call void @llvm.assume(i1 %9) + %10 = icmp eq i64 %6, 0 + br i1 %10, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h56122a9f709b47c5E.exit", label %11 + +11: ; preds = %3 + tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef range(i64 1, -9223372036854775808) %6, i64 noundef range(i64 1, -9223372036854775807) %8) #22 br label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h56122a9f709b47c5E.exit" 13: ; preds = %0 @@ -7054,7 +7052,7 @@ define internal fastcc void @"_ZN4core3ptr91drop_in_place$LT$alloc..boxed..Box$L "_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h56122a9f709b47c5E.exit4": ; preds = %13, %20 ret void -"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h56122a9f709b47c5E.exit": ; preds = %12, %3 +"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h56122a9f709b47c5E.exit": ; preds = %11, %3 resume { ptr, i32 } %4 } diff --git a/bench/actix-rs/optimized/4qw0kfiz3ki66qyr.ll b/bench/actix-rs/optimized/4qw0kfiz3ki66qyr.ll index 018b82a1499..754384dd676 100644 --- a/bench/actix-rs/optimized/4qw0kfiz3ki66qyr.ll +++ b/bench/actix-rs/optimized/4qw0kfiz3ki66qyr.ll @@ -675,8 +675,6 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h3caf5338a24ba062E.exit.i .body.thread.i: ; preds = %98 %99 = landingpad { ptr, i32 } cleanup - %100 = icmp ne i64 %.sroa.0.sroa.4.0.copyload.i, 0 - call void @llvm.assume(i1 %100) call void @__rust_dealloc(ptr noundef nonnull %92, i64 noundef 1400, i64 noundef 8) #14 br label %.body @@ -1005,8 +1003,6 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h3caf5338a24ba062E.exit.i .body.thread.i: ; preds = %74 %75 = landingpad { ptr, i32 } cleanup - %76 = icmp ne i64 %.sroa.0.sroa.4.0.copyload.i, 0 - call void @llvm.assume(i1 %76) call void @__rust_dealloc(ptr noundef nonnull %68, i64 noundef 1400, i64 noundef 8) #14, !noalias !107 br label %79 diff --git a/bench/arrow/optimized/key_value_metadata.cc.ll b/bench/arrow/optimized/key_value_metadata.cc.ll index eaaa826baef..872d76c99e0 100644 --- a/bench/arrow/optimized/key_value_metadata.cc.ll +++ b/bench/arrow/optimized/key_value_metadata.cc.ll @@ -4840,7 +4840,7 @@ lpad.i.i.i: ; preds = %.noexc %3 = landingpad { ptr, i32 } catch ptr null tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %add.ptr) #20 - br label %lpad.body + br label %if.then.i35 invoke.cont: ; preds = %.noexc %cmp.not5.i.i.i = icmp eq ptr %1, %__position.coerce @@ -4900,19 +4900,6 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE lpad: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE11_M_allocateEm.exit %4 = landingpad { ptr, i32 } catch ptr null - br label %lpad.body - -lpad.body: ; preds = %lpad.i.i.i, %lpad - %eh.lpad-body = phi { ptr, i32 } [ %4, %lpad ], [ %3, %lpad.i.i.i ] - %5 = extractvalue { ptr, i32 } %eh.lpad-body, 0 - %6 = tail call ptr @__cxa_begin_catch(ptr %5) #20 - %tobool.not = icmp eq ptr %cond.i17, null - br i1 %tobool.not, label %if.end.thread, label %if.then.i35 - -if.end.thread: ; preds = %lpad.body - %second.i.i.i30 = getelementptr inbounds nuw i8, ptr %add.ptr, i64 32 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %second.i.i.i30) #20 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %add.ptr) #20 br label %invoke.cont21 lpad19: ; preds = %invoke.cont21 @@ -4921,11 +4908,11 @@ lpad19: ; preds = %invoke.cont21 invoke void @__cxa_end_catch() to label %eh.resume unwind label %terminate.lpad -if.then.i35: ; preds = %lpad.body +if.then.i35: ; preds = %lpad, %lpad.i.i.i + %eh.lpad-body = phi { ptr, i32 } [ %4, %lpad ], [ %3, %lpad.i.i.i ] + %6 = extractvalue { ptr, i32 } %eh.lpad-body, 0 + %7 = tail call ptr @__cxa_begin_catch(ptr %6) #20 tail call void @_ZdlPv(ptr noundef nonnull %cond.i17) #21 - br label %invoke.cont21 - -invoke.cont21: ; preds = %if.then.i35, %if.end.thread invoke void @__cxa_rethrow() #24 to label %unreachable unwind label %lpad19 diff --git a/bench/assimp/optimized/Subdivision.cpp.ll b/bench/assimp/optimized/Subdivision.cpp.ll index 6c8aef5248e..d316fb76963 100644 --- a/bench/assimp/optimized/Subdivision.cpp.ll +++ b/bench/assimp/optimized/Subdivision.cpp.ll @@ -4947,10 +4947,6 @@ lpad759: ; preds = %if.then.i.i.i.i.i12 lpad764: ; preds = %invoke.cont760 %725 = landingpad { ptr, i32 } cleanup - %tobool.not.i.i.i1253 = icmp eq ptr %tmp.sroa.0.0, null - br i1 %tobool.not.i.i.i1253, label %ehcleanup778, label %if.then.i.i.i1254 - -if.then.i.i.i1254: ; preds = %lpad764 call void @_ZdlPv(ptr noundef nonnull %tmp.sroa.0.0) #19 br label %ehcleanup778 @@ -4987,8 +4983,8 @@ if.then.i.i.i1263: ; preds = %_ZNSt6vectorISt4pai return: ; preds = %if.then.i.i.i1263, %_ZNSt6vectorISt4pairIjjESaIS1_EED2Ev.exit, %entry ret void -ehcleanup778: ; preds = %if.then.i.i.i1254, %lpad764, %if.end.i.i.i.i1251, %_ZNSt10_HashtableImSt4pairIKmN22CatmullClarkSubdivider4EdgeEESaIS4_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i1246, %lpad759 - %.pn235 = phi { ptr, i32 } [ %724, %lpad759 ], [ %.pn233, %_ZNSt10_HashtableImSt4pairIKmN22CatmullClarkSubdivider4EdgeEESaIS4_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i1246 ], [ %.pn233, %if.end.i.i.i.i1251 ], [ %725, %lpad764 ], [ %725, %if.then.i.i.i1254 ] +ehcleanup778: ; preds = %if.end.i.i.i.i1251, %_ZNSt10_HashtableImSt4pairIKmN22CatmullClarkSubdivider4EdgeEESaIS4_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i1246, %lpad764, %lpad759 + %.pn235 = phi { ptr, i32 } [ %725, %lpad764 ], [ %724, %lpad759 ], [ %.pn233, %_ZNSt10_HashtableImSt4pairIKmN22CatmullClarkSubdivider4EdgeEESaIS4_ENSt8__detail10_Select1stESt8equal_toImESt4hashImENS6_18_Mod_range_hashingENS6_20_Default_ranged_hashENS6_20_Prime_rehash_policyENS6_17_Hashtable_traitsILb0ELb0ELb1EEEE5clearEv.exit.i.i1246 ], [ %.pn233, %if.end.i.i.i.i1251 ] %tobool.not.i.i.i1265 = icmp eq ptr %centroids.sroa.0.0, null br i1 %tobool.not.i.i.i1265, label %ehcleanup779, label %if.then.i.i.i1266 diff --git a/bench/c3c/optimized/parse_global.c.ll b/bench/c3c/optimized/parse_global.c.ll index d7b77b5aad4..271c3ba143f 100644 --- a/bench/c3c/optimized/parse_global.c.ll +++ b/bench/c3c/optimized/parse_global.c.ll @@ -37,7 +37,6 @@ target triple = "x86_64-pc-linux-gnu" @.str.20 = private unnamed_addr constant [14 x i8] c"Expected '{'.\00", align 1 @poisoned_decl = external local_unnamed_addr global ptr, align 8 @.str.21 = private unnamed_addr constant [14 x i8] c"variable name\00", align 1 -@.str.22 = private unnamed_addr constant [35 x i8] c"Expected an identifier before '='.\00", align 1 @poisoned_expr = external local_unnamed_addr global ptr, align 8 @.str.23 = private unnamed_addr constant [6 x i8] c"const\00", align 1 @.str.24 = private unnamed_addr constant [52 x i8] c"Constants must be declared using 'const' not 'var'.\00", align 1 @@ -2711,7 +2710,7 @@ define dso_local ptr @parse_local_decl_after_type(ptr noundef %0, ptr noundef %1 %7 = load i64, ptr %6, align 8 tail call void (i64, ptr, ...) @sema_error_at(i64 %7, ptr noundef nonnull @.str.20) #8 %8 = load ptr, ptr @poisoned_decl, align 8 - br label %58 + br label %54 9: ; preds = %2 %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -2721,7 +2720,7 @@ define dso_local ptr @parse_local_decl_after_type(ptr noundef %0, ptr noundef %1 %14 = tail call ptr @decl_new_var(ptr noundef %11, i64 %13, ptr noundef %1, i32 noundef 13) #8 tail call void @advance(ptr noundef nonnull %0) #8 %15 = tail call zeroext i1 @try_consume(ptr noundef nonnull %0, i32 noundef 10) #8 - br i1 %15, label %16, label %58 + br i1 %15, label %16, label %54 16: ; preds = %9 %17 = tail call ptr @parse_expr(ptr noundef nonnull %0) #8 @@ -2738,11 +2737,11 @@ define dso_local ptr @parse_local_decl_after_type(ptr noundef %0, ptr noundef %1 .critedge: ; preds = %16, %19 %23 = getelementptr inbounds nuw i8, ptr %14, i64 88 store ptr %17, ptr %23, align 8 - br label %58 + br label %54 24: ; preds = %19 %25 = load ptr, ptr @poisoned_decl, align 8 - br label %58 + br label %54 26: ; preds = %2 br label %27 @@ -2753,7 +2752,7 @@ define dso_local ptr @parse_local_decl_after_type(ptr noundef %0, ptr noundef %1 %29 = load i64, ptr %28, align 8 tail call void (i64, ptr, ...) @sema_error_at(i64 %29, ptr noundef nonnull %.str.84.sink.i, ptr noundef nonnull @.str.21) #8 %30 = load ptr, ptr @poisoned_decl, align 8 - br label %58 + br label %54 31: ; preds = %2 %32 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -2768,47 +2767,37 @@ define dso_local ptr @parse_local_decl_after_type(ptr noundef %0, ptr noundef %1 39: ; preds = %31 %40 = load ptr, ptr @poisoned_decl, align 8 - br label %58 + br label %54 41: ; preds = %31 %42 = load i32, ptr %3, align 8 %43 = icmp eq i32 %42, 10 - br i1 %43, label %44, label %58 + br i1 %43, label %44, label %54 44: ; preds = %41 - %.not = icmp eq ptr %36, null - br i1 %.not, label %45, label %48 + tail call void @advance(ptr noundef nonnull %0) #8 + %45 = tail call ptr @parse_expr(ptr noundef nonnull %0) #8 + %46 = icmp eq ptr %45, null + br i1 %46, label %.critedge2, label %47 + +47: ; preds = %44 + %48 = getelementptr inbounds nuw i8, ptr %45, i64 16 + %49 = load i16, ptr %48, align 8 + %50 = and i16 %49, 255 + %.not62 = icmp eq i16 %50, 0 + br i1 %.not62, label %52, label %.critedge2 + +.critedge2: ; preds = %44, %47 + %51 = getelementptr inbounds nuw i8, ptr %36, i64 88 + store ptr %45, ptr %51, align 8 + br label %54 -45: ; preds = %44 - %46 = load i64, ptr %34, align 8 - tail call void (i64, ptr, ...) @sema_error_at(i64 %46, ptr noundef nonnull @.str.22) #8 - %47 = load ptr, ptr @poisoned_decl, align 8 - br label %58 +45: ; preds = %47 + %46 = load ptr, ptr @poisoned_decl, align 8 + br label %48 -48: ; preds = %44 - tail call void @advance(ptr noundef nonnull %0) #8 - %49 = tail call ptr @parse_expr(ptr noundef nonnull %0) #8 - %50 = icmp eq ptr %49, null - br i1 %50, label %.critedge2, label %51 - -51: ; preds = %48 - %52 = getelementptr inbounds nuw i8, ptr %49, i64 16 - %53 = load i16, ptr %52, align 8 - %54 = and i16 %53, 255 - %.not62 = icmp eq i16 %54, 0 - br i1 %.not62, label %56, label %.critedge2 - -.critedge2: ; preds = %48, %51 - %55 = getelementptr inbounds nuw i8, ptr %36, i64 88 - store ptr %49, ptr %55, align 8 - br label %58 - -56: ; preds = %51 - %57 = load ptr, ptr @poisoned_decl, align 8 - br label %58 - -58: ; preds = %41, %.critedge2, %9, %.critedge, %56, %45, %39, %27, %24, %5 - %.057 = phi ptr [ %8, %5 ], [ %25, %24 ], [ %57, %56 ], [ %47, %45 ], [ %40, %39 ], [ %30, %27 ], [ %14, %.critedge ], [ %14, %9 ], [ %36, %.critedge2 ], [ %36, %41 ] +48: ; preds = %41, %.critedge2, %9, %.critedge, %52, %39, %27, %24, %5 + %.057 = phi ptr [ %8, %5 ], [ %25, %24 ], [ %53, %52 ], [ %40, %39 ], [ %30, %27 ], [ %14, %.critedge ], [ %14, %9 ], [ %36, %.critedge2 ], [ %36, %41 ] ret ptr %.057 } @@ -4333,7 +4322,7 @@ parse_type.exit: ; preds = %.split8.i, %.split. %64 = load i64, ptr %63, align 8 %65 = or i64 %64, 4294967296 store i64 %65, ptr %63, align 8 - %66 = call zeroext i1 @parse_struct_body(ptr noundef nonnull %0, ptr noundef %26) + %66 = call zeroext i1 @parse_struct_body(ptr noundef nonnull %0, ptr noundef nonnull %26) br i1 %66, label %71, label %67 67: ; preds = %62 @@ -7970,7 +7959,7 @@ consume_type_name.exit.thread: ; preds = %consume_type_name.e br label %78 22: ; preds = %17 - %23 = tail call fastcc zeroext i1 @parse_attributes_for_global(ptr noundef nonnull %0, ptr noundef %6) + %23 = tail call fastcc zeroext i1 @parse_attributes_for_global(ptr noundef nonnull %0, ptr noundef nonnull %6) br i1 %23, label %26, label %24 24: ; preds = %22 @@ -8159,7 +8148,7 @@ consume_type_name.exit.thread: ; preds = %consume_type_name.e br label %35 28: ; preds = %23 - %29 = tail call fastcc zeroext i1 @parse_attributes_for_global(ptr noundef nonnull %0, ptr noundef %13) + %29 = tail call fastcc zeroext i1 @parse_attributes_for_global(ptr noundef nonnull %0, ptr noundef nonnull %13) br i1 %29, label %32, label %30 30: ; preds = %28 @@ -8167,7 +8156,7 @@ consume_type_name.exit.thread: ; preds = %consume_type_name.e br label %35 32: ; preds = %28 - %33 = tail call zeroext i1 @parse_struct_body(ptr noundef nonnull %0, ptr noundef %13) + %33 = tail call zeroext i1 @parse_struct_body(ptr noundef nonnull %0, ptr noundef nonnull %13) %34 = load ptr, ptr @poisoned_decl, align 8 %spec.select = select i1 %33, ptr %13, ptr %34 br label %35 @@ -8686,7 +8675,7 @@ parse_enum_param_decl.exit.i: ; preds = %67 parse_enum_param_list.exit: ; preds = %.critedge.i, %.preheader.i, %35, %23 %.0105 = phi ptr [ null, %23 ], [ %26, %35 ], [ %26, %.preheader.i ], [ %26, %.critedge.i ] - %137 = tail call fastcc zeroext i1 @parse_attributes_for_global(ptr noundef nonnull %0, ptr noundef %7) + %137 = tail call fastcc zeroext i1 @parse_attributes_for_global(ptr noundef nonnull %0, ptr noundef nonnull %7) br i1 %137, label %140, label %138 138: ; preds = %parse_enum_param_list.exit @@ -8975,7 +8964,7 @@ consume_type_name.exit.thread: ; preds = %consume_type_name.e br label %128 22: ; preds = %17 - %23 = tail call fastcc zeroext i1 @parse_attributes_for_global(ptr noundef nonnull %0, ptr noundef %6) + %23 = tail call fastcc zeroext i1 @parse_attributes_for_global(ptr noundef nonnull %0, ptr noundef nonnull %6) br i1 %23, label %26, label %24 24: ; preds = %22 diff --git a/bench/casadi/optimized/io_instruction.cpp.ll b/bench/casadi/optimized/io_instruction.cpp.ll index a27b3730e76..c2fb6bbc0f1 100644 --- a/bench/casadi/optimized/io_instruction.cpp.ll +++ b/bench/casadi/optimized/io_instruction.cpp.ll @@ -2522,7 +2522,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi .thread: ; preds = %14, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i %24 = phi i1 [ true, %14 ], [ %23, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %24, ptr noundef %8, ptr noundef nonnull %13, ptr noundef nonnull align 8 dereferenceable(32) %15) #18 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %24, ptr noundef nonnull %8, ptr noundef nonnull %13, ptr noundef nonnull align 8 dereferenceable(32) %15) #18 %25 = getelementptr inbounds nuw i8, ptr %0, i64 40 %26 = load i64, ptr %25, align 8 %27 = add i64 %26, 1 @@ -2536,18 +2536,14 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi resume { ptr, i32 } %29 30: ; preds = %11 - %.not.i = icmp eq ptr %8, null - br i1 %.not.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6casadi11GenericTypeEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE10_Auto_nodeD2Ev.exit, label %31 - -31: ; preds = %30 - %32 = getelementptr inbounds nuw i8, ptr %8, i64 64 - tail call void @_ZN6casadi12SharedObjectD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %32) #18 + %.not.i = getelementptr inbounds nuw i8, ptr %8, i64 64 + tail call void @_ZN6casadi12SharedObjectD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %31) #18 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %9) #18 tail call void @_ZdlPv(ptr noundef nonnull %8) #21 br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6casadi11GenericTypeEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE10_Auto_nodeD2Ev.exit -_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6casadi11GenericTypeEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE10_Auto_nodeD2Ev.exit: ; preds = %.thread, %30, %31 - %.sroa.0.010 = phi ptr [ %8, %.thread ], [ %12, %30 ], [ %12, %31 ] +_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6casadi11GenericTypeEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE10_Auto_nodeD2Ev.exit: ; preds = %.thread, %30 + %.sroa.0.010 = phi ptr [ %8, %.thread ], [ %12, %30 ] ret ptr %.sroa.0.010 } @@ -2671,7 +2667,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %50, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6casadi11GenericTypeEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE24_M_get_insert_unique_posERS7_.exit, label %51 51: ; preds = %47 - %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %1) #22 + %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #22 %53 = getelementptr inbounds nuw i8, ptr %52, i64 32 %54 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %2) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit11 unwind label %55 @@ -2777,7 +2773,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %91, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N6casadi11GenericTypeEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE24_M_get_insert_unique_posERS7_.exit, label %92 92: ; preds = %88 - %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %1) #22 + %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #22 %94 = getelementptr inbounds nuw i8, ptr %93, i64 32 %95 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %94) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit35 unwind label %96 diff --git a/bench/ceres/optimized/block_sparse_matrix.cc.ll b/bench/ceres/optimized/block_sparse_matrix.cc.ll index 1c1c13c5c63..747c7984b71 100644 --- a/bench/ceres/optimized/block_sparse_matrix.cc.ll +++ b/bench/ceres/optimized/block_sparse_matrix.cc.ll @@ -9138,23 +9138,16 @@ _ZN5ceres8internal12_GLOBAL__N_142CreateStructureOfCompressedRowSparseMatrixILb1 to label %_ZN5ceres8internal12_GLOBAL__N_144SetBlockStructureOfCompressedRowSparseMatrixEPNS0_25CompressedRowSparseMatrixEPNS0_27CompressedRowBlockStructureE.exit unwind label %87 _ZN5ceres8internal12_GLOBAL__N_144SetBlockStructureOfCompressedRowSparseMatrixEPNS0_25CompressedRowSparseMatrixEPNS0_27CompressedRowBlockStructureE.exit: ; preds = %._crit_edge.i5 - invoke void @_ZNK5ceres8internal17BlockSparseMatrix40UpdateCompressedRowSparseMatrixTransposeEPNS0_25CompressedRowSparseMatrixE(ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef %69) + invoke void @_ZNK5ceres8internal17BlockSparseMatrix40UpdateCompressedRowSparseMatrixTransposeEPNS0_25CompressedRowSparseMatrixE(ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull %69) to label %92 unwind label %87 87: ; preds = %._crit_edge.i5, %_ZN5ceres8internal12_GLOBAL__N_142CreateStructureOfCompressedRowSparseMatrixILb1EEESt10unique_ptrINS0_25CompressedRowSparseMatrixESt14default_deleteIS4_EEPKdiiiPKNS0_27CompressedRowBlockStructureE.exit, %_ZN5ceres8internal12_GLOBAL__N_144SetBlockStructureOfCompressedRowSparseMatrixEPNS0_25CompressedRowSparseMatrixEPNS0_27CompressedRowBlockStructureE.exit %88 = landingpad { ptr, i32 } cleanup - %.not.i12 = icmp eq ptr %69, null - br i1 %.not.i12, label %_ZNSt10unique_ptrIN5ceres8internal25CompressedRowSparseMatrixESt14default_deleteIS2_EED2Ev.exit, label %_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i - -_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i: ; preds = %87 - %89 = load ptr, ptr %69, align 8 - %90 = getelementptr inbounds nuw i8, ptr %89, i64 8 - %91 = load ptr, ptr %90, align 8 - tail call void %91(ptr noundef nonnull align 8 dereferenceable(144) %69) #28 - br label %_ZNSt10unique_ptrIN5ceres8internal25CompressedRowSparseMatrixESt14default_deleteIS2_EED2Ev.exit - -_ZNSt10unique_ptrIN5ceres8internal25CompressedRowSparseMatrixESt14default_deleteIS2_EED2Ev.exit: ; preds = %87, %_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i + %.not.i12 = load ptr, ptr %69, align 8 + %89 = getelementptr inbounds nuw i8, ptr %88, i64 8 + %90 = load ptr, ptr %89, align 8 + tail call void %90(ptr noundef nonnull align 8 dereferenceable(144) %69) #28 store ptr null, ptr %0, align 8 br label %common.resume @@ -9707,23 +9700,16 @@ _ZN5ceres8internal12_GLOBAL__N_142CreateStructureOfCompressedRowSparseMatrixILb0 to label %_ZN5ceres8internal12_GLOBAL__N_144SetBlockStructureOfCompressedRowSparseMatrixEPNS0_25CompressedRowSparseMatrixEPNS0_27CompressedRowBlockStructureE.exit unwind label %94 _ZN5ceres8internal12_GLOBAL__N_144SetBlockStructureOfCompressedRowSparseMatrixEPNS0_25CompressedRowSparseMatrixEPNS0_27CompressedRowBlockStructureE.exit: ; preds = %._crit_edge.i3 - invoke void @_ZNK5ceres8internal17BlockSparseMatrix31UpdateCompressedRowSparseMatrixEPNS0_25CompressedRowSparseMatrixE(ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef %73) + invoke void @_ZNK5ceres8internal17BlockSparseMatrix31UpdateCompressedRowSparseMatrixEPNS0_25CompressedRowSparseMatrixE(ptr noundef nonnull align 8 dereferenceable(56) %1, ptr noundef nonnull %73) to label %99 unwind label %94 94: ; preds = %._crit_edge.i3, %_ZN5ceres8internal12_GLOBAL__N_142CreateStructureOfCompressedRowSparseMatrixILb0EEESt10unique_ptrINS0_25CompressedRowSparseMatrixESt14default_deleteIS4_EEPKdiiiPKNS0_27CompressedRowBlockStructureE.exit, %_ZN5ceres8internal12_GLOBAL__N_144SetBlockStructureOfCompressedRowSparseMatrixEPNS0_25CompressedRowSparseMatrixEPNS0_27CompressedRowBlockStructureE.exit %95 = landingpad { ptr, i32 } cleanup - %.not.i10 = icmp eq ptr %73, null - br i1 %.not.i10, label %_ZNSt10unique_ptrIN5ceres8internal25CompressedRowSparseMatrixESt14default_deleteIS2_EED2Ev.exit, label %_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i - -_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i: ; preds = %94 - %96 = load ptr, ptr %73, align 8 - %97 = getelementptr inbounds nuw i8, ptr %96, i64 8 - %98 = load ptr, ptr %97, align 8 - tail call void %98(ptr noundef nonnull align 8 dereferenceable(144) %73) #28 - br label %_ZNSt10unique_ptrIN5ceres8internal25CompressedRowSparseMatrixESt14default_deleteIS2_EED2Ev.exit - -_ZNSt10unique_ptrIN5ceres8internal25CompressedRowSparseMatrixESt14default_deleteIS2_EED2Ev.exit: ; preds = %94, %_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i + %.not.i10 = load ptr, ptr %73, align 8 + %96 = getelementptr inbounds nuw i8, ptr %.not.i10, i64 8 + %97 = load ptr, ptr %96, align 8 + tail call void %97(ptr noundef nonnull align 8 dereferenceable(144) %73) #28 store ptr null, ptr %0, align 8 br label %common.resume diff --git a/bench/ceres/optimized/dynamic_sparse_normal_cholesky_solver.cc.ll b/bench/ceres/optimized/dynamic_sparse_normal_cholesky_solver.cc.ll index 238ee3f245e..f6db86b96b3 100644 --- a/bench/ceres/optimized/dynamic_sparse_normal_cholesky_solver.cc.ll +++ b/bench/ceres/optimized/dynamic_sparse_normal_cholesky_solver.cc.ll @@ -378,10 +378,6 @@ _ZNSt10unique_ptrIN5ceres8internal25CompressedRowSparseMatrixESt14default_delete .body: ; preds = %_ZNSt10unique_ptrIN5ceres8internal25CompressedRowSparseMatrixESt14default_deleteIS2_EED2Ev.exit31 %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup - %.not.i23 = icmp eq ptr %.sroa.038.1, null - br i1 %.not.i23, label %_ZNSt10unique_ptrIN5ceres8internal25CompressedRowSparseMatrixESt14default_deleteIS2_EED2Ev.exit25, label %_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i24 - -_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i24: ; preds = %.body %48 = load ptr, ptr %.sroa.038.1, align 8 %49 = getelementptr inbounds nuw i8, ptr %48, i64 8 %50 = load ptr, ptr %49, align 8 @@ -518,8 +514,8 @@ _ZN5ceres8internal33DynamicSparseNormalCholeskySolver25SolveImplUsingSuiteSparse 93: ; preds = %89, %92 ret void -_ZNSt10unique_ptrIN5ceres8internal25CompressedRowSparseMatrixESt14default_deleteIS2_EED2Ev.exit25: ; preds = %_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i24, %.body, %.body.thread, %.body35 - %.pn = phi { ptr, i32 } [ %eh.lpad-body36, %.body35 ], [ %52, %.body.thread ], [ %lpad.thr_comm.split-lp, %.body ], [ %lpad.thr_comm.split-lp, %_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i24 ] +_ZNSt10unique_ptrIN5ceres8internal25CompressedRowSparseMatrixESt14default_deleteIS2_EED2Ev.exit25: ; preds = %_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i24, %.body.thread, %.body35 + %.pn = phi { ptr, i32 } [ %eh.lpad-body36, %.body35 ], [ %52, %.body.thread ], [ %lpad.thr_comm.split-lp, %_ZNKSt14default_deleteIN5ceres8internal25CompressedRowSparseMatrixEEclEPS2_.exit.i24 ] resume { ptr, i32 } %.pn } @@ -11449,7 +11445,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %50, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N5ceres8internal14CallStatisticsEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE24_M_get_insert_unique_posERS7_.exit, label %51 51: ; preds = %47 - %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %1) #32 + %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #32 %53 = getelementptr inbounds nuw i8, ptr %52, i64 32 %54 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %2) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit11 unwind label %55 @@ -11555,7 +11551,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %91, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N5ceres8internal14CallStatisticsEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE24_M_get_insert_unique_posERS7_.exit, label %92 92: ; preds = %88 - %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %1) #32 + %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #32 %94 = getelementptr inbounds nuw i8, ptr %93, i64 32 %95 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %94) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit35 unwind label %96 diff --git a/bench/clap-rs/optimized/1zp92zvstj9lufi9.ll b/bench/clap-rs/optimized/1zp92zvstj9lufi9.ll index 0f778780a60..5abaeccf045 100644 --- a/bench/clap-rs/optimized/1zp92zvstj9lufi9.ll +++ b/bench/clap-rs/optimized/1zp92zvstj9lufi9.ll @@ -7076,19 +7076,17 @@ define internal fastcc void @"_ZN4core3ptr168drop_in_place$LT$alloc..boxed..Box$ 3: ; preds = %0 %4 = landingpad { ptr, i32 } cleanup - %5 = icmp ne ptr %.0.val, null - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 - %7 = load i64, ptr %6, align 8, !range !909, !invariant.load !28 - %8 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 - %9 = load i64, ptr %8, align 8, !range !910, !invariant.load !28 - %10 = icmp ult i64 %9, -9223372036854775807 - tail call void @llvm.assume(i1 %10) - %11 = icmp eq i64 %7, 0 - br i1 %11, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6de30c24fa805bafE.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.exit.i" + %5 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 + %6 = load i64, ptr %5, align 8, !range !909, !invariant.load !28 + %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 + %7 = load i64, ptr %6, align 8, !range !910, !invariant.load !28 + %8 = icmp ult i64 %8, -9223372036854775807 + tail call void @llvm.assume(i1 %9) + %10 = icmp eq i64 %6, 0 + br i1 %10, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6de30c24fa805bafE.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.exit.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.exit.i": ; preds = %3 - tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef %7, i64 noundef range(i64 0, -9223372036854775807) %9) #24 + tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef %6, i64 noundef range(i64 0, -9223372036854775807) %8) #24 br label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6de30c24fa805bafE.exit" 12: ; preds = %0 diff --git a/bench/coreutils-rs/optimized/335iccg14rff9vbo.ll b/bench/coreutils-rs/optimized/335iccg14rff9vbo.ll index 1b8e0b4a906..9bdc73d30bf 100644 --- a/bench/coreutils-rs/optimized/335iccg14rff9vbo.ll +++ b/bench/coreutils-rs/optimized/335iccg14rff9vbo.ll @@ -75,8 +75,6 @@ define internal fastcc void @"_ZN4core3ptr42drop_in_place$LT$uu_nl..NumberingSty 15: ; preds = %13, %2 %eh.lpad-body.i = phi { ptr, i32 } [ %14, %13 ], [ %3, %2 ] - %16 = icmp ne ptr %.8.val, null - tail call void @llvm.assume(i1 %16) tail call void @__rust_dealloc(ptr noundef nonnull %.8.val, i64 noundef 32, i64 noundef 8) #12 resume { ptr, i32 } %eh.lpad-body.i diff --git a/bench/cpp-httplib/optimized/httplib.cc.ll b/bench/cpp-httplib/optimized/httplib.cc.ll index e8c4a2a5eea..1dd95701b9b 100644 --- a/bench/cpp-httplib/optimized/httplib.cc.ll +++ b/bench/cpp-httplib/optimized/httplib.cc.ll @@ -1062,8 +1062,6 @@ $_ZNKSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5 $_ZNSt6vectorIN7httplib17MultipartFormDataESaIS1_EE17_M_realloc_insertIJRKS1_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_ = comdat any -$_ZNSt16allocator_traitsISaIN7httplib17MultipartFormDataEEE7destroyIS1_EEvRS2_PT_ = comdat any - $_ZSt14__relocate_a_1IPN7httplib17MultipartFormDataES2_SaIS1_EET0_T_S5_S4_RT1_ = comdat any $_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_EN7httplib6detail2ciESaIS8_EE11equal_rangeERS7_ = comdat any @@ -8581,7 +8579,7 @@ for.body: ; preds = %entry, %if.end if.end: ; preds = %for.body %add = add nuw nsw i64 %call8, %write_len.016 - %call.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %__begin2.sroa.0.015) #40 + %call.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %__begin2.sroa.0.015) #40 %cmp.i.not = icmp eq ptr %call.i, %add.ptr.i.i br i1 %cmp.i.not, label %for.end, label %for.body @@ -8917,7 +8915,7 @@ invoke.cont16: ; preds = %invoke.cont12 invoke.cont18: ; preds = %invoke.cont16 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14) #39 - %call.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %it.sroa.0.012) #40 + %call.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %it.sroa.0.012) #40 %cmp.i.not = icmp eq ptr %call.i, %add.ptr.i.i br i1 %cmp.i.not, label %nrvo.skipdtor, label %for.body, !llvm.loop !46 @@ -16631,7 +16629,7 @@ for.body: ; preds = %invoke.cont, %for.i to label %for.inc unwind label %lpad.loopexit for.inc: ; preds = %for.body - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %it.sroa.0.06) #40 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %it.sroa.0.06) #40 %cmp.i.not = icmp eq ptr %call.i, %1 br i1 %cmp.i.not, label %nrvo.skipdtor, label %for.body, !llvm.loop !99 @@ -18531,7 +18529,7 @@ ehcleanup33: ; preds = %ehcleanup, %lpad27 lpad34: ; preds = %invoke.cont32 %7 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #39 + call void @__cxa_free_exception(ptr nonnull %exception) #39 br label %ehcleanup38 lpad37: ; preds = %invoke.cont35 @@ -34030,7 +34028,7 @@ if.then61: ; preds = %for.body br label %for.inc for.inc: ; preds = %for.body, %if.then61 - %call.i28 = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__begin1.sroa.0.063) #40 + %call.i28 = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__begin1.sroa.0.063) #40 %cmp.i24.not = icmp eq ptr %call.i28, %add.ptr.i.i br i1 %cmp.i24.not, label %_ZN7httplib6detail10scope_exitC2EOSt8functionIFvvEE.exit, label %for.body @@ -51785,7 +51783,7 @@ lpad18: ; preds = %invoke.cont17 lpad20: ; preds = %invoke.cont19 %11 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #39 + call void @__cxa_free_exception(ptr nonnull %exception) #39 br label %ehcleanup lpad22: ; preds = %invoke.cont21 @@ -61440,7 +61438,7 @@ invoke.cont: ; preds = %entry lpad: ; preds = %entry %0 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #39 + tail call void @__cxa_free_exception(ptr nonnull %exception) #39 resume { ptr, i32 } %0 } @@ -72418,7 +72416,7 @@ lpad.body: ; preds = %lpad.i.i, %lpad %eh.lpad-body = phi { ptr, i32 } [ %1, %lpad ], [ %0, %lpad.i.i ] %2 = extractvalue { ptr, i32 } %eh.lpad-body, 0 %3 = tail call ptr @__cxa_begin_catch(ptr %2) #39 - invoke void @_ZSt8_DestroyIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEvT_S9_(ptr noundef %__result, ptr noundef %__cur.012) + invoke void @_ZSt8_DestroyIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEvT_S9_(ptr noundef %__result, ptr noundef nonnull %__cur.012) to label %invoke.cont5 unwind label %lpad4 invoke.cont5: ; preds = %lpad.body @@ -91163,7 +91161,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi cleanup.thread: ; preds = %if.then, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i %4 = phi i1 [ true, %if.then ], [ %cmp.i.i.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #39 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef nonnull %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #39 %_M_node_count.i.i = getelementptr inbounds nuw i8, ptr %this, i64 40 %5 = load i64, ptr %_M_node_count.i.i, align 8 %inc.i.i = add i64 %5, 1 @@ -91177,18 +91175,14 @@ lpad: ; preds = %entry resume { ptr, i32 } %6 cleanup: ; preds = %invoke.cont - %tobool.not.i = icmp eq ptr %call.i, null - br i1 %tobool.not.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit, label %if.then.i - -if.then.i: ; preds = %cleanup %second.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i, i64 64 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %second.i.i.i.i.i.i) #39 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %_M_storage.i.i.i) #39 tail call void @_ZdlPv(ptr noundef nonnull %call.i) #41 br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit -_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %cleanup, %if.then.i - %retval.sroa.0.07 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %cleanup ], [ %0, %if.then.i ] +_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %if.then.i + %retval.sroa.0.07 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %if.then.i ] ret ptr %retval.sroa.0.07 } @@ -91311,7 +91305,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #40 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #40 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -91417,7 +91411,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #40 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #40 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 @@ -92037,10 +92031,10 @@ ehcleanup.i.i.i: ; preds = %lpad8.i.i.i, %lpad5 ehcleanup10.i.i.i: ; preds = %ehcleanup.i.i.i, %lpad.i.i.i %.pn.pn.i.i.i = phi { ptr, i32 } [ %.pn.i.i.i, %ehcleanup.i.i.i ], [ %3, %lpad.i.i.i ] tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %add.ptr) #39 - br label %lpad.body + br label %if.then.i21 invoke.cont: ; preds = %invoke.cont6.i.i.i - %call3.i.i = tail call noundef ptr @_ZSt14__relocate_a_1IPN7httplib17MultipartFormDataES2_SaIS1_EET0_T_S5_S4_RT1_(ptr noundef %1, ptr noundef %__position.coerce, ptr noundef %cond.i17, ptr noundef nonnull align 1 dereferenceable(1) %this) #39 + %call3.i.i = tail call noundef ptr @_ZSt14__relocate_a_1IPN7httplib17MultipartFormDataES2_SaIS1_EET0_T_S5_S4_RT1_(ptr noundef %1, ptr noundef %__position.coerce, ptr noundef nonnull %cond.i17, ptr noundef nonnull align 1 dereferenceable(1) %this) #39 %incdec.ptr = getelementptr inbounds nuw i8, ptr %call3.i.i, i64 128 %call3.i.i18 = tail call noundef ptr @_ZSt14__relocate_a_1IPN7httplib17MultipartFormDataES2_SaIS1_EET0_T_S5_S4_RT1_(ptr noundef %__position.coerce, ptr noundef %0, ptr noundef nonnull %incdec.ptr, ptr noundef nonnull align 1 dereferenceable(1) %this) #39 %tobool.not.i = icmp eq ptr %1, null @@ -92061,17 +92055,6 @@ _ZNSt12_Vector_baseIN7httplib17MultipartFormDataESaIS1_EE13_M_deallocateEPS1_m.e lpad: ; preds = %_ZNSt12_Vector_baseIN7httplib17MultipartFormDataESaIS1_EE11_M_allocateEm.exit %6 = landingpad { ptr, i32 } catch ptr null - br label %lpad.body - -lpad.body: ; preds = %ehcleanup10.i.i.i, %lpad - %eh.lpad-body = phi { ptr, i32 } [ %6, %lpad ], [ %.pn.pn.i.i.i, %ehcleanup10.i.i.i ] - %7 = extractvalue { ptr, i32 } %eh.lpad-body, 0 - %8 = tail call ptr @__cxa_begin_catch(ptr %7) #39 - %tobool.not = icmp eq ptr %cond.i17, null - br i1 %tobool.not, label %if.end.thread, label %if.then.i21 - -if.end.thread: ; preds = %lpad.body - tail call void @_ZNSt16allocator_traitsISaIN7httplib17MultipartFormDataEEE7destroyIS1_EEvRS2_PT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %add.ptr) #39 br label %invoke.cont19 lpad17: ; preds = %invoke.cont19 @@ -92080,11 +92063,11 @@ lpad17: ; preds = %invoke.cont19 invoke void @__cxa_end_catch() to label %eh.resume unwind label %terminate.lpad -if.then.i21: ; preds = %lpad.body +if.then.i21: ; preds = %lpad, %ehcleanup10.i.i.i + %eh.lpad-body = phi { ptr, i32 } [ %6, %lpad ], [ %.pn.pn.i.i.i, %ehcleanup10.i.i.i ] + %8 = extractvalue { ptr, i32 } %eh.lpad-body, 0 + %9 = tail call ptr @__cxa_begin_catch(ptr %8) #39 tail call void @_ZdlPv(ptr noundef nonnull %cond.i17) #41 - br label %invoke.cont19 - -invoke.cont19: ; preds = %if.then.i21, %if.end.thread invoke void @__cxa_rethrow() #43 to label %unreachable unwind label %lpad17 @@ -92102,19 +92085,6 @@ unreachable: ; preds = %invoke.cont19 unreachable } -; Function Attrs: mustprogress nounwind uwtable -define linkonce_odr void @_ZNSt16allocator_traitsISaIN7httplib17MultipartFormDataEEE7destroyIS1_EEvRS2_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) local_unnamed_addr #4 comdat align 2 { -entry: - %content_type.i.i = getelementptr inbounds nuw i8, ptr %__p, i64 96 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %content_type.i.i) #39 - %filename.i.i = getelementptr inbounds nuw i8, ptr %__p, i64 64 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %filename.i.i) #39 - %content.i.i = getelementptr inbounds nuw i8, ptr %__p, i64 32 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %content.i.i) #39 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(128) %__p) #39 - ret void -} - ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr noundef ptr @_ZSt14__relocate_a_1IPN7httplib17MultipartFormDataES2_SaIS1_EET0_T_S5_S4_RT1_(ptr noundef %__first, ptr noundef %__last, ptr noundef %__result, ptr noundef nonnull align 1 dereferenceable(1) %__alloc) local_unnamed_addr #4 comdat { entry: @@ -93105,24 +93075,20 @@ invoke.cont29: ; preds = %call.i8.noexc br i1 %tobool.not, label %if.end36, label %cleanup if.end36: ; preds = %call.i8.noexc, %invoke.cont29, %invoke.cont23 - %call39 = invoke ptr @_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNSA_10_Hash_nodeIS8_Lb1EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %rem.i.i.i, i64 noundef %call.i2.i.i, ptr noundef %call.i, i64 noundef 1) + %call39 = invoke ptr @_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNSA_10_Hash_nodeIS8_Lb1EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %rem.i.i.i, i64 noundef %call.i2.i.i, ptr noundef nonnull %call.i, i64 noundef 1) to label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit unwind label %lpad -cleanup: ; preds = %invoke.cont, %land.rhs.i.i.i, %invoke.cont29 - %retval.sroa.0.0.ph = phi ptr [ %7, %invoke.cont29 ], [ %__it.sroa.0.030, %land.rhs.i.i.i ], [ %__it.sroa.0.030, %invoke.cont ] - %tobool.not.i15 = icmp eq ptr %call.i, null - br i1 %tobool.not.i15, label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit, label %if.then.i16 - -if.then.i16: ; preds = %cleanup +cleanup: ; preds = %land.rhs.i.i.i, %invoke.cont, %invoke.cont29 + %retval.sroa.0.0.ph = phi ptr [ %7, %invoke.cont29 ], [ %__it.sroa.0.030, %invoke.cont ], [ %__it.sroa.0.030, %land.rhs.i.i.i ] %second.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i, i64 40 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %second.i.i.i.i.i) #39 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %add.ptr) #39 tail call void @_ZdlPv(ptr noundef nonnull %call.i) #41 br label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit -_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit: ; preds = %if.end36, %cleanup, %if.then.i16 - %retval.sroa.4.026 = phi i8 [ 0, %cleanup ], [ 0, %if.then.i16 ], [ 1, %if.end36 ] - %retval.sroa.0.025 = phi ptr [ %retval.sroa.0.0.ph, %cleanup ], [ %retval.sroa.0.0.ph, %if.then.i16 ], [ %call39, %if.end36 ] +_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit: ; preds = %if.end36, %if.then.i16 + %retval.sroa.4.026 = phi i8 [ 0, %if.then.i16 ], [ 1, %if.end36 ] + %retval.sroa.0.025 = phi ptr [ %retval.sroa.0.0.ph, %if.then.i16 ], [ %call39, %if.end36 ] %.fca.0.insert = insertvalue { ptr, i8 } poison, ptr %retval.sroa.0.025, 0 %.fca.1.insert = insertvalue { ptr, i8 } %.fca.0.insert, i8 %retval.sroa.4.026, 1 ret { ptr, i8 } %.fca.1.insert @@ -95343,7 +95309,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #40 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #40 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -95449,7 +95415,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #40 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #40 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 diff --git a/bench/cpython/optimized/_testinternalcapi.ll b/bench/cpython/optimized/_testinternalcapi.ll index 2678931f627..b4ef48f0c65 100644 --- a/bench/cpython/optimized/_testinternalcapi.ll +++ b/bench/cpython/optimized/_testinternalcapi.ll @@ -4300,8 +4300,8 @@ if.then18: ; preds = %while.end %call20 = tail call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %2, ptr noundef nonnull @.str.112, ptr noundef %a, ptr noundef %b, i64 noundef %mul, i64 noundef %call16, i64 noundef %expected) #9 br label %if.then.i -if.then.i: ; preds = %if.then13, %if.then18, %while.end, %if.then7, %if.end - %ret.042 = phi i32 [ -1, %if.end ], [ -1, %if.then7 ], [ -1, %if.then13 ], [ -1, %if.then18 ], [ 0, %while.end ] +if.then.i: ; preds = %while.end, %if.end, %if.then18, %if.then13, %if.then7 + %ret.042 = phi i32 [ 0, %while.end ], [ -1, %if.then18 ], [ -1, %if.then13 ], [ -1, %if.then7 ], [ -1, %if.end ] %3 = load i64, ptr %call, align 8 %4 = and i64 %3, 2147483648 %cmp.i2.not.i = icmp eq i64 %4, 0 @@ -4318,8 +4318,7 @@ if.then1.i.i: ; preds = %if.end.i.i br label %Py_XDECREF.exit Py_XDECREF.exit: ; preds = %if.then.i, %if.end.i.i, %if.then1.i.i - %cmp.not.i30 = icmp eq ptr %call1, null - br i1 %cmp.not.i30, label %Py_XDECREF.exit37, label %if.then.i31 + br i1 %cmp2, label %Py_XDECREF.exit37, label %if.then.i31 if.then.i31: ; preds = %Py_XDECREF.exit %5 = load i64, ptr %call1, align 8 diff --git a/bench/cpython/optimized/_warnings.ll b/bench/cpython/optimized/_warnings.ll index e72fe11c5fb..547d15cfa7f 100644 --- a/bench/cpython/optimized/_warnings.ll +++ b/bench/cpython/optimized/_warnings.ll @@ -1465,7 +1465,7 @@ return: ; preds = %get_current_tstate. } ; Function Attrs: nounwind uwtable -define internal fastcc noundef ptr @warn_explicit(ptr noundef nonnull %tstate, ptr noundef %category, ptr noundef %message, ptr noundef %filename, i32 noundef %lineno, ptr noundef %module, ptr noundef %registry, ptr noundef %sourceline, ptr noundef %source) unnamed_addr #0 { +define internal fastcc ptr @warn_explicit(ptr noundef nonnull %tstate, ptr noundef %category, ptr noundef %message, ptr noundef %filename, i32 noundef %lineno, ptr noundef %module, ptr noundef %registry, ptr noundef %sourceline, ptr noundef %source) unnamed_addr #0 { entry: %obj.i.i.i = alloca ptr, align 8 %obj.i.i = alloca ptr, align 8 @@ -2174,7 +2174,7 @@ if.else118: ; preds = %if.else106 if.then121: ; preds = %if.else118 %79 = load ptr, ptr @PyExc_RuntimeError, align 8 %call122 = call ptr (ptr, ptr, ...) @PyErr_Format(ptr noundef %79, ptr noundef nonnull @.str.14, ptr noundef nonnull %retval.0.i84, ptr noundef nonnull %item.2) #7 - br label %cleanup + br label %if.then.i if.end126: ; preds = %if.then109, %if.then93, %if.then98 %registry.addr.0.sink = phi ptr [ %call99, %if.then98 ], [ %registry, %if.then93 ], [ %registry, %if.then109 ] @@ -2200,30 +2200,32 @@ if.end.i.i93: ; preds = %return_none store i32 %add.i.i91, ptr @_Py_NoneStruct, align 8 br label %cleanup -cleanup: ; preds = %if.end.i.i93, %return_none, %if.end126, %if.then133, %if.then98, %land.lhs.true85, %if.then121, %if.then71 - %item.0 = phi ptr [ %item.2, %land.lhs.true85 ], [ %item.2, %if.then121 ], [ %item.2, %if.end126 ], [ %item.2, %if.then133 ], [ %item.2, %if.then98 ], [ %item.2, %if.then71 ], [ %item.1, %return_none ], [ %item.1, %if.end.i.i93 ] - %result.0 = phi ptr [ null, %land.lhs.true85 ], [ null, %if.then121 ], [ null, %if.end126 ], [ null, %if.then133 ], [ null, %if.then98 ], [ null, %if.then71 ], [ @_Py_NoneStruct, %return_none ], [ @_Py_NoneStruct, %if.end.i.i93 ] +cleanup: ; preds = %if.end.i.i93, %return_none, %if.end126, %if.then133, %if.then98, %land.lhs.true85, %if.then71 + %item.0 = phi ptr [ %item.2, %land.lhs.true85 ], [ %item.2, %if.end126 ], [ %item.2, %if.then133 ], [ %item.2, %if.then98 ], [ %item.2, %if.then71 ], [ %item.1, %return_none ], [ %item.1, %if.end.i.i93 ] + %result.0 = phi ptr [ null, %land.lhs.true85 ], [ null, %if.end126 ], [ null, %if.then133 ], [ null, %if.then98 ], [ null, %if.then71 ], [ @_Py_NoneStruct, %return_none ], [ @_Py_NoneStruct, %if.end.i.i93 ] %cmp.not.i = icmp eq ptr %item.0, null br i1 %cmp.not.i, label %if.then.i101, label %if.then.i -if.then.i: ; preds = %cleanup - %81 = load i64, ptr %item.0, align 8 +if.then.i: ; preds = %if.then121, %cleanup + %81 = phi ptr [ null, %if.then121 ], [ %result.0, %cleanup ] + %item.0263 = phi ptr [ %item.2, %cleanup.thread ], [ %item.0, %cleanup ] + %81 = load i64, ptr %item.0263, align 8 %82 = and i64 %81, 2147483648 %cmp.i2.not.i = icmp eq i64 %82, 0 br i1 %cmp.i2.not.i, label %if.end.i.i96, label %if.then.i101 if.end.i.i96: ; preds = %if.then.i %dec.i.i97 = add i64 %81, -1 - store i64 %dec.i.i97, ptr %item.0, align 8 + store i64 %dec.i.i97, ptr %item.0263, align 8 %cmp.i.i98 = icmp eq i64 %dec.i.i97, 0 br i1 %cmp.i.i98, label %if.then1.i.i99, label %if.then.i101 if.then1.i.i99: ; preds = %if.end.i.i96 - call void @_Py_Dealloc(ptr noundef nonnull %item.0) #7 + call void @_Py_Dealloc(ptr noundef nonnull %item.0263) #7 br label %if.then.i101 if.then.i101: ; preds = %if.then1.i.i99, %if.end.i.i96, %if.then.i, %cleanup, %if.then25.i, %if.then41.i, %if.then1.i121.i, %if.end.i118.i, %if.then47.i, %if.then1.i112.i, %if.end.i109.i, %if.then51.i, %if.then1.i103.i, %if.end.i100.i, %if.then55.i, %if.then1.i94.i, %if.end.i91.i, %if.then61.i, %if.then1.i85.i, %if.end.i82.i, %get_default_action.exit.i, %if.then3.i.i85, %if.then12.i.i, %if.then1.i23.i.i, %if.end.i20.i.i, %if.then3.i, %if.then14.i, %if.then51 - %result.0156177 = phi ptr [ null, %if.then51 ], [ null, %if.then14.i ], [ null, %if.then3.i ], [ %result.0, %cleanup ], [ %result.0, %if.then.i ], [ %result.0, %if.end.i.i96 ], [ %result.0, %if.then1.i.i99 ], [ null, %if.then25.i ], [ null, %if.then41.i ], [ null, %if.then1.i121.i ], [ null, %if.end.i118.i ], [ null, %if.then47.i ], [ null, %if.then1.i112.i ], [ null, %if.end.i109.i ], [ null, %if.then51.i ], [ null, %if.then1.i103.i ], [ null, %if.end.i100.i ], [ null, %if.then55.i ], [ null, %if.then1.i94.i ], [ null, %if.end.i91.i ], [ null, %if.then61.i ], [ null, %if.then1.i85.i ], [ null, %if.end.i82.i ], [ null, %get_default_action.exit.i ], [ null, %if.then3.i.i85 ], [ null, %if.then12.i.i ], [ null, %if.then1.i23.i.i ], [ null, %if.end.i20.i.i ] + %result.0156177 = phi ptr [ null, %if.then51 ], [ null, %if.then14.i ], [ null, %if.then3.i ], [ %result.0, %cleanup ], [ %result.0264, %if.then.i ], [ %result.0264, %if.end.i.i96 ], [ %result.0264, %if.then1.i.i99 ], [ null, %if.then25.i ], [ null, %if.then41.i ], [ null, %if.then1.i121.i ], [ null, %if.end.i118.i ], [ null, %if.then47.i ], [ null, %if.then1.i112.i ], [ null, %if.end.i109.i ], [ null, %if.then51.i ], [ null, %if.then1.i103.i ], [ null, %if.end.i100.i ], [ null, %if.then55.i ], [ null, %if.then1.i94.i ], [ null, %if.end.i91.i ], [ null, %if.then61.i ], [ null, %if.then1.i85.i ], [ null, %if.end.i82.i ], [ null, %get_default_action.exit.i ], [ null, %if.then3.i.i85 ], [ null, %if.then12.i.i ], [ null, %if.then1.i23.i.i ], [ null, %if.end.i20.i.i ] %83 = load i64, ptr %call41, align 8 %84 = and i64 %83, 2147483648 %cmp.i2.not.i102 = icmp eq i64 %84, 0 @@ -2936,7 +2938,7 @@ declare ptr @PyUnicode_InternFromString(ptr noundef) local_unnamed_addr #1 declare ptr @PyTuple_Pack(i64 noundef, ...) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal fastcc noundef ptr @do_warn(ptr noundef %message, ptr noundef %category, i64 noundef %stack_level, ptr noundef %source, ptr noundef readonly %skip_file_prefixes) unnamed_addr #0 { +define internal fastcc ptr @do_warn(ptr noundef %message, ptr noundef %category, i64 noundef %stack_level, ptr noundef %source, ptr noundef readonly %skip_file_prefixes) unnamed_addr #0 { entry: %0 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_Py_tss_tstate) %1 = load ptr, ptr %0, align 8 @@ -4267,7 +4269,7 @@ declare ptr @PyImport_GetModule(ptr noundef) local_unnamed_addr #1 declare i32 @PyObject_GetOptionalAttr(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1 ; Function Attrs: nounwind uwtable -define internal noundef ptr @warnings_warn(ptr readnone captures(none) %module, ptr noundef %args, i64 noundef %nargs, ptr noundef %kwnames) #0 { +define internal ptr @warnings_warn(ptr readnone captures(none) %module, ptr noundef %args, i64 noundef %nargs, ptr noundef %kwnames) #0 { entry: %argsbuf = alloca [5 x ptr], align 16 %tobool.not = icmp eq ptr %kwnames, null @@ -4470,7 +4472,7 @@ exit: ; preds = %if.end9.i, %get_cat } ; Function Attrs: nounwind uwtable -define internal noundef ptr @warnings_warn_explicit(ptr readnone captures(none) %module, ptr noundef %args, i64 noundef %nargs, ptr noundef %kwnames) #0 { +define internal ptr @warnings_warn_explicit(ptr readnone captures(none) %module, ptr noundef %args, i64 noundef %nargs, ptr noundef %kwnames) #0 { entry: %get_source.i.i = alloca ptr, align 8 %argsbuf = alloca [8 x ptr], align 16 diff --git a/bench/cpython/optimized/funcobject.ll b/bench/cpython/optimized/funcobject.ll index 69bb0a4c8d6..d5e47d1e6eb 100644 --- a/bench/cpython/optimized/funcobject.ll +++ b/bench/cpython/optimized/funcobject.ll @@ -4788,7 +4788,7 @@ return: ; preds = %if.then1.i.i, %if.e } ; Function Attrs: nounwind uwtable -define internal ptr @func_get_annotations(ptr noundef captures(none) %op, ptr readnone captures(none) %_unused_ignored) #0 { +define internal noundef ptr @func_get_annotations(ptr noundef captures(none) %op, ptr readnone captures(none) %_unused_ignored) #0 { entry: %func_annotations = getelementptr inbounds nuw i8, ptr %op, i64 112 %0 = load ptr, ptr %func_annotations, align 8 @@ -4806,7 +4806,7 @@ if.end.i: ; preds = %entry, %if.then %2 = getelementptr i8, ptr %1, i64 8 %.val15.i = load ptr, ptr %2, align 8 %cmp.i16.not.i = icmp eq ptr %.val15.i, @PyTuple_Type - br i1 %cmp.i16.not.i, label %if.then2.i, label %func_get_annotation_dict.exitthread-pre-split + br i1 %cmp.i16.not.i, label %if.then2.i, label %func_get_annotation_dict.exit if.then2.i: ; preds = %if.end.i %call4.i = tail call ptr @PyDict_New() #7 @@ -4846,28 +4846,25 @@ do.body.i: ; preds = %for.cond.i, %for.co %7 = load i64, ptr %6, align 8 %8 = and i64 %7, 2147483648 %cmp.i21.not.i = icmp eq i64 %8, 0 - br i1 %cmp.i21.not.i, label %if.end.i.i, label %func_get_annotation_dict.exit + br i1 %cmp.i21.not.i, label %if.end.i.i, label %if.then.i.i if.end.i.i: ; preds = %do.body.i %dec.i.i = add i64 %7, -1 store i64 %dec.i.i, ptr %6, align 8 %cmp.i.i = icmp eq i64 %dec.i.i, 0 - br i1 %cmp.i.i, label %if.then1.i.i, label %func_get_annotation_dict.exitthread-pre-split + br i1 %cmp.i.i, label %if.then1.i.i, label %func_get_annotation_dict.exit if.then1.i.i: ; preds = %if.end.i.i tail call void @_Py_Dealloc(ptr noundef nonnull %6) #7 - br label %func_get_annotation_dict.exitthread-pre-split - -func_get_annotation_dict.exitthread-pre-split: ; preds = %if.then1.i.i, %if.end.i.i, %if.end.i - %.pr = load ptr, ptr %func_annotations, align 8 br label %func_get_annotation_dict.exit -func_get_annotation_dict.exit: ; preds = %func_get_annotation_dict.exitthread-pre-split, %do.body.i - %9 = phi ptr [ %.pr, %func_get_annotation_dict.exitthread-pre-split ], [ %call4.i, %do.body.i ] +func_get_annotation_dict.exit: ; preds = %if.end.i, %if.end.i.i, %if.then1.i.i + %9 = load ptr, ptr %func_annotations, align 8 %cmp.not.i.i = icmp eq ptr %9, null br i1 %cmp.not.i.i, label %return, label %if.then.i.i -if.then.i.i: ; preds = %func_get_annotation_dict.exit +if.then.i.i: ; preds = %do.body.i, %func_get_annotation_dict.exit + %9 = phi ptr [ %.pr, %func_get_annotation_dict.exit ], [ %call4.i, %do.body.i ] %10 = load i32, ptr %9, align 8 %add.i.i.i = add i32 %10, 1 %cmp.i.i.i = icmp eq i32 %add.i.i.i, 0 diff --git a/bench/curl/optimized/libcurl_la-ftp.ll b/bench/curl/optimized/libcurl_la-ftp.ll index 92c21115cc9..6180536feee 100644 --- a/bench/curl/optimized/libcurl_la-ftp.ll +++ b/bench/curl/optimized/libcurl_la-ftp.ll @@ -6935,7 +6935,7 @@ sw.bb11: ; preds = %if.end %8 = load ptr, ptr %rawPath, align 8 %call12 = call ptr @strrchr(ptr noundef nonnull dereferenceable(1) %8, i32 noundef 47) #11 %tobool13.not = icmp eq ptr %call12, null - br i1 %tobool13.not, label %sw.epilog, label %if.then14 + br i1 %tobool13.not, label %land.lhs.true79, label %if.then14 if.then14: ; preds = %sw.bb11 %9 = load ptr, ptr @Curl_ccalloc, align 8 @@ -7015,7 +7015,7 @@ if.then43: ; preds = %for.end while.cond.preheader: ; preds = %if.then43 %call5073 = call ptr @strchr(ptr noundef nonnull dereferenceable(1) %18, i32 noundef 47) #11 %tobool51.not74 = icmp eq ptr %call5073, null - br i1 %tobool51.not74, label %sw.epilog, label %while.body.lr.ph + br i1 %tobool51.not74, label %land.lhs.true79, label %while.body.lr.ph while.body.lr.ph: ; preds = %while.cond.preheader %dirdepth58 = getelementptr inbounds nuw i8, ptr %1, i64 1080 @@ -7069,13 +7069,12 @@ if.end75: ; preds = %land.lhs.true57, %i %tobool51.not = icmp eq ptr %call50, null br i1 %tobool51.not, label %land.lhs.true79, label %while.body, !llvm.loop !24 -sw.epilog: ; preds = %while.cond.preheader, %for.end, %sw.bb11 - %fileName.0 = phi ptr [ %8, %sw.bb11 ], [ %18, %for.end ], [ %18, %while.cond.preheader ] - %tobool78.not = icmp eq ptr %fileName.0, null +sw.epilog: ; preds = %for.end + %fileName.0 = icmp eq ptr %18, null br i1 %tobool78.not, label %if.end86.thread, label %land.lhs.true79 -land.lhs.true79: ; preds = %if.end75, %land.lhs.true, %if.end31, %sw.epilog - %fileName.068 = phi ptr [ %fileName.0, %sw.epilog ], [ %5, %land.lhs.true ], [ %add.ptr, %if.end31 ], [ %add.ptr76, %if.end75 ] +land.lhs.true79: ; preds = %if.end75, %while.cond.preheader, %sw.bb11, %land.lhs.true, %if.end31, %sw.epilog + %fileName.068 = phi ptr [ %18, %sw.epilog ], [ %8, %sw.bb11 ], [ %5, %land.lhs.true ], [ %add.ptr, %if.end31 ], [ %18, %while.cond.preheader ], [ %add.ptr76, %if.end75 ] %28 = load i8, ptr %fileName.068, align 1 %tobool81.not = icmp eq i8 %28, 0 br i1 %tobool81.not, label %if.end86.thread, label %if.end86 diff --git a/bench/curl/optimized/libcurl_la-url.ll b/bench/curl/optimized/libcurl_la-url.ll index aa9ffbe4da1..f2b100aea8b 100644 --- a/bench/curl/optimized/libcurl_la-url.ll +++ b/bench/curl/optimized/libcurl_la-url.ll @@ -1995,7 +1995,7 @@ if.else111.i.i: ; preds = %if.end97.i.i %77 = load ptr, ptr %hostname.i.i.i, align 8 %call115.i.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %77) #12 %cmp.i.i = icmp ugt i64 %call115.i.i, 65535 - br i1 %cmp.i.i, label %if.then116.i.i, label %if.end118.i.i + br i1 %cmp.i.i, label %if.then116.i.i, label %land.lhs.true123.i.i if.then116.i.i: ; preds = %if.else111.i.i call void (ptr, ptr, ...) @Curl_failf(ptr noundef nonnull %data, ptr noundef nonnull @.str.15, i32 noundef 65535) #11 @@ -2003,14 +2003,11 @@ if.then116.i.i: ; preds = %if.else111.i.i if.end118thread-pre-split.i.i: ; preds = %if.then103.i.i %.pr.i.i = load ptr, ptr %hostname.i.i.i, align 8 - br label %if.end118.i.i - -if.end118.i.i: ; preds = %if.end118thread-pre-split.i.i, %if.else111.i.i - %78 = phi ptr [ %.pr.i.i, %if.end118thread-pre-split.i.i ], [ %77, %if.else111.i.i ] - %tobool122.not.i.i = icmp eq ptr %78, null + %tobool122.not.i.i = icmp eq ptr %.pr.i.i, null br i1 %tobool122.not.i.i, label %if.end133.i.i, label %land.lhs.true123.i.i -land.lhs.true123.i.i: ; preds = %if.end118.i.i +land.lhs.true123.i.i: ; preds = %if.end118.i.i, %if.else111.i.i + %78 = phi ptr [ %.pr.i.i, %if.end118.i.i ], [ %77, %if.else111.i.i ] %79 = load i8, ptr %78, align 1 %cmp125.i.i = icmp eq i8 %79, 91 br i1 %cmp125.i.i, label %if.then127.i.i, label %if.end133.i.i diff --git a/bench/cvc5/optimized/fc_simplex.cpp.ll b/bench/cvc5/optimized/fc_simplex.cpp.ll index ed195541c48..d3f9043c743 100644 --- a/bench/cvc5/optimized/fc_simplex.cpp.ll +++ b/bench/cvc5/optimized/fc_simplex.cpp.ll @@ -1586,7 +1586,7 @@ lpad40.loopexit: ; preds = %invoke.cont188, %if lpad40.loopexit.split-lp.loopexit: ; preds = %while.body.i.i %lpad.loopexit1581 = landingpad { ptr, i32 } cleanup - br label %ehcleanup + br label %if.then.i.i.i1445 lpad40.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %_ZNKSt6vectorIjSaIjEE12_M_check_lenEmPKc.exit.i.i, %_ZNKSt6vectorIN4cvc58internal6theory5arith6linear4CandESaIS5_EE12_M_check_lenEmPKc.exit.i.i.i, %_ZNKSt6vectorIN4cvc58internal6theory5arith6linear4CandESaIS5_EE12_M_check_lenEmPKc.exit.i.i.i765 %lpad.loopexit1584 = landingpad { ptr, i32 } @@ -2292,18 +2292,20 @@ if.then.i.i.i1443: ; preds = %if.end324 _ZNSt6vectorIN4cvc58internal6theory5arith6linear4CandESaIS5_EED2Ev.exit: ; preds = %if.end324, %if.then.i.i.i1443 ret void -ehcleanup: ; preds = %lpad40.loopexit, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad40.loopexit.split-lp.loopexit, %lpad193 - %candidates.sroa.0.01595 = phi ptr [ %candidates.sroa.0.0.lcssa, %lpad193 ], [ %candidates.sroa.0.0.lcssa, %lpad40.loopexit ], [ %candidates.sroa.0.0.lcssa, %lpad40.loopexit.split-lp.loopexit ], [ %candidates.sroa.0.01609, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %candidates.sroa.0.01599, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - %.pn = phi { ptr, i32 } [ %lpad.phi1580, %lpad193 ], [ %lpad.loopexit, %lpad40.loopexit ], [ %lpad.loopexit1581, %lpad40.loopexit.split-lp.loopexit ], [ %lpad.loopexit1584, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] +ehcleanup: ; preds = %lpad40.loopexit, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad193 + %candidates.sroa.0.01595 = phi ptr [ %candidates.sroa.0.0.lcssa, %lpad193 ], [ %candidates.sroa.0.0.lcssa, %lpad40.loopexit ], [ %candidates.sroa.0.01609, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %candidates.sroa.0.01599, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] + %.pn = phi { ptr, i32 } [ %lpad.phi1580, %lpad193 ], [ %lpad.loopexit, %lpad40.loopexit ], [ %lpad.loopexit1584, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad40.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] %tobool.not.i.i.i1444 = icmp eq ptr %candidates.sroa.0.01595, null br i1 %tobool.not.i.i.i1444, label %ehcleanup327, label %if.then.i.i.i1445 -if.then.i.i.i1445: ; preds = %ehcleanup - call void @_ZdlPv(ptr noundef nonnull %candidates.sroa.0.01595) #24 +if.then.i.i.i1445: ; preds = %ehcleanup.thread, %ehcleanup + %.pn1623 = phi { ptr, i32 } [ %lpad.loopexit1581, %ehcleanup.thread ], [ %.pn, %ehcleanup ] + %candidates.sroa.0.015951622 = phi ptr [ %candidates.sroa.0.0.lcssa, %ehcleanup.thread ], [ %candidates.sroa.0.01595, %ehcleanup ] + call void @_ZdlPv(ptr noundef nonnull %candidates.sroa.0.015951622) #24 br label %ehcleanup327 ehcleanup327: ; preds = %lpad.loopexit1586, %lpad.loopexit.split-lp1587, %if.then.i.i.i1445, %ehcleanup - %.pn.pn = phi { ptr, i32 } [ %.pn, %ehcleanup ], [ %.pn, %if.then.i.i.i1445 ], [ %lpad.loopexit1588, %lpad.loopexit1586 ], [ %lpad.loopexit.split-lp1589, %lpad.loopexit.split-lp1587 ] + %.pn.pn = phi { ptr, i32 } [ %.pn, %ehcleanup ], [ %.pn1623, %if.then.i.i.i1445 ], [ %lpad.loopexit1588, %lpad.loopexit1586 ], [ %lpad.loopexit.split-lp1589, %lpad.loopexit.split-lp1587 ] call void @_ZN4cvc58internal6theory5arith6linear10UpdateInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(204) %agg.result) #23 resume { ptr, i32 } %.pn.pn } @@ -6550,7 +6552,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #28 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #28 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -6656,7 +6658,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #28 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #28 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 diff --git a/bench/cvc5/optimized/portfolio_driver.cpp.ll b/bench/cvc5/optimized/portfolio_driver.cpp.ll index c2e2d8f12e2..ede7f013ba7 100644 --- a/bench/cvc5/optimized/portfolio_driver.cpp.ll +++ b/bench/cvc5/optimized/portfolio_driver.cpp.ll @@ -1981,7 +1981,7 @@ if.then.i49.i.i: ; preds = %if.end.i.i lpad.i50.i.i: ; preds = %if.then.i49.i.i %87 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i.i.i) #23 + call void @__cxa_free_exception(ptr nonnull %exception.i.i.i) #23 br label %lpad58.body _ZN4cvc54main12_GLOBAL__N_14Pipe4openEv.exit.i.i: ; preds = %if.end.i.i @@ -1998,7 +1998,7 @@ if.then.i54.i.i: ; preds = %_ZN4cvc54main12_GLO lpad.i56.i.i: ; preds = %if.then.i54.i.i %88 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i55.i.i) #23 + call void @__cxa_free_exception(ptr nonnull %exception.i55.i.i) #23 br label %lpad58.body _ZN4cvc54main12_GLOBAL__N_14Pipe4openEv.exit58.i.i: ; preds = %_ZN4cvc54main12_GLOBAL__N_14Pipe4openEv.exit.i.i @@ -2026,7 +2026,7 @@ invoke.cont42.i.i.cont: ; preds = %invoke.cont42.i.i.i lpad41.i.i: ; preds = %if.then40.i.i %90 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i.i) #23 + call void @__cxa_free_exception(ptr nonnull %exception.i.i) #23 br label %lpad58.body if.then47.i.i: ; preds = %_ZN4cvc54main12_GLOBAL__N_14Pipe4openEv.exit58.i.i @@ -19123,7 +19123,7 @@ lpad.body: ; preds = %lpad.i.i, %lpad %eh.lpad-body = phi { ptr, i32 } [ %1, %lpad ], [ %0, %lpad.i.i ] %2 = extractvalue { ptr, i32 } %eh.lpad-body, 0 %3 = tail call ptr @__cxa_begin_catch(ptr %2) #23 - invoke void @_ZSt8_DestroyIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEvT_S9_(ptr noundef %__result, ptr noundef %__cur.012) + invoke void @_ZSt8_DestroyIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEvT_S9_(ptr noundef %__result, ptr noundef nonnull %__cur.012) to label %invoke.cont5 unwind label %lpad4 invoke.cont5: ; preds = %lpad.body @@ -19202,7 +19202,7 @@ invoke.cont: ; preds = %if.else lpad: ; preds = %if.else %2 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #23 + call void @__cxa_free_exception(ptr nonnull %exception) #23 resume { ptr, i32 } %2 if.end8: ; preds = %while.body @@ -19621,7 +19621,7 @@ lpad.i.i.i: ; preds = %.noexc %3 = landingpad { ptr, i32 } catch ptr null tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %add.ptr) #23 - br label %lpad.body + br label %if.then.i35 invoke.cont: ; preds = %.noexc %cmp.not5.i.i.i = icmp eq ptr %1, %__position.coerce @@ -19681,19 +19681,6 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE lpad: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE11_M_allocateEm.exit %4 = landingpad { ptr, i32 } catch ptr null - br label %lpad.body - -lpad.body: ; preds = %lpad.i.i.i, %lpad - %eh.lpad-body = phi { ptr, i32 } [ %4, %lpad ], [ %3, %lpad.i.i.i ] - %5 = extractvalue { ptr, i32 } %eh.lpad-body, 0 - %6 = tail call ptr @__cxa_begin_catch(ptr %5) #23 - %tobool.not = icmp eq ptr %cond.i17, null - br i1 %tobool.not, label %if.end.thread, label %if.then.i35 - -if.end.thread: ; preds = %lpad.body - %second.i.i.i30 = getelementptr inbounds nuw i8, ptr %add.ptr, i64 32 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %second.i.i.i30) #23 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %add.ptr) #23 br label %invoke.cont21 lpad19: ; preds = %invoke.cont21 @@ -19702,11 +19689,11 @@ lpad19: ; preds = %invoke.cont21 invoke void @__cxa_end_catch() to label %eh.resume unwind label %terminate.lpad -if.then.i35: ; preds = %lpad.body +if.then.i35: ; preds = %lpad, %lpad.i.i.i + %eh.lpad-body = phi { ptr, i32 } [ %4, %lpad ], [ %3, %lpad.i.i.i ] + %6 = extractvalue { ptr, i32 } %eh.lpad-body, 0 + %7 = tail call ptr @__cxa_begin_catch(ptr %6) #23 tail call void @_ZdlPv(ptr noundef nonnull %cond.i17) #24 - br label %invoke.cont21 - -invoke.cont21: ; preds = %if.then.i35, %if.end.thread invoke void @__cxa_rethrow() #26 to label %unreachable unwind label %lpad19 diff --git a/bench/cvc5/optimized/soi_simplex.cpp.ll b/bench/cvc5/optimized/soi_simplex.cpp.ll index 7947c7e05e9..c56602df2db 100644 --- a/bench/cvc5/optimized/soi_simplex.cpp.ll +++ b/bench/cvc5/optimized/soi_simplex.cpp.ll @@ -1353,7 +1353,7 @@ lpad33.loopexit: ; preds = %invoke.cont133, %if lpad33.loopexit.split-lp.loopexit: ; preds = %while.body.i.i %lpad.loopexit992 = landingpad { ptr, i32 } cleanup - br label %ehcleanup + br label %if.then.i.i.i908 lpad33.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %_ZNKSt6vectorIN4cvc58internal6theory5arith6linear4CandESaIS5_EE12_M_check_lenEmPKc.exit.i.i.i %lpad.loopexit995 = landingpad { ptr, i32 } @@ -1692,19 +1692,22 @@ if.then.i.i.i: ; preds = %while.end _ZNSt6vectorIN4cvc58internal6theory5arith6linear4CandESaIS5_EED2Ev.exit: ; preds = %while.end, %if.then.i.i.i ret void -ehcleanup: ; preds = %lpad33.loopexit, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad33.loopexit.split-lp.loopexit, %lpad138 - %candidates.sroa.0.0999 = phi ptr [ %candidates.sroa.0.0.lcssa, %lpad138 ], [ %candidates.sroa.0.0.lcssa, %lpad33.loopexit ], [ %candidates.sroa.0.0.lcssa, %lpad33.loopexit.split-lp.loopexit ], [ %candidates.sroa.0.01010, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %candidates.sroa.0.01003, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] - %.pn = phi { ptr, i32 } [ %35, %lpad138 ], [ %lpad.loopexit, %lpad33.loopexit ], [ %lpad.loopexit992, %lpad33.loopexit.split-lp.loopexit ], [ %lpad.loopexit995, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] +ehcleanup: ; preds = %lpad33.loopexit, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad138 + %candidates.sroa.0.0999 = phi ptr [ %candidates.sroa.0.0.lcssa, %lpad138 ], [ %candidates.sroa.0.0.lcssa, %lpad33.loopexit ], [ %candidates.sroa.0.01010, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %candidates.sroa.0.01003, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] + %.pn = phi { ptr, i32 } [ %35, %lpad138 ], [ %lpad.loopexit, %lpad33.loopexit ], [ %lpad.loopexit995, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %lpad33.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] %tobool.not.i.i.i907 = icmp eq ptr %candidates.sroa.0.0999, null br i1 %tobool.not.i.i.i907, label %ehcleanup223, label %if.then.i.i.i908 -if.then.i.i.i908: ; preds = %ehcleanup - call void @_ZdlPv(ptr noundef nonnull %candidates.sroa.0.0999) #23 +if.then.i.i.i908: ; preds = %ehcleanup.thread, %ehcleanup + %.pn1022 = phi { ptr, i32 } [ %lpad.loopexit992, %ehcleanup.thread ], [ %.pn, %ehcleanup ] + %candidates.sroa.0.09991021 = phi ptr [ %candidates.sroa.0.0.lcssa, %ehcleanup.thread ], [ %candidates.sroa.0.0999, %ehcleanup ] + call void @_ZdlPv(ptr noundef nonnull %candidates.sroa.0.09991021) #23 br label %ehcleanup223 ehcleanup223: ; preds = %if.then.i.i.i908, %ehcleanup + %.pn1023 = phi { ptr, i32 } [ %.pn1022, %if.then.i.i.i908 ], [ %.pn, %ehcleanup ] call void @_ZN4cvc58internal6theory5arith6linear10UpdateInfoD2Ev(ptr noundef nonnull align 8 dereferenceable(204) %agg.result) #22 - resume { ptr, i32 } %.pn + resume { ptr, i32 } %.pn1023 } declare void @_ZN4cvc58internal6theory5arith6linear10UpdateInfoC1Ev(ptr noundef nonnull align 8 dereferenceable(204)) unnamed_addr #0 @@ -7402,7 +7405,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #27 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #27 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -7508,7 +7511,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #27 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #27 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 diff --git a/bench/cxxopts/optimized/example.cpp.ll b/bench/cxxopts/optimized/example.cpp.ll index 220edcf5650..9f065597eb4 100644 --- a/bench/cxxopts/optimized/example.cpp.ll +++ b/bench/cxxopts/optimized/example.cpp.ll @@ -13126,7 +13126,7 @@ invoke.cont.i: ; preds = %sw.default lpad.i6: ; preds = %sw.default %9 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %ehcleanup sw.epilog: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5eraseEN9__gnu_cxx17__normal_iteratorIPKS5_S7_EE.exit, %invoke.cont9 @@ -13995,7 +13995,7 @@ invoke.cont.i: ; preds = %if.then common.resume: ; preds = %lpad.i5, %lpad.i %exception.i4.sink = phi ptr [ %exception.i4, %lpad.i5 ], [ %exception.i, %lpad.i ] %common.resume.op = phi { ptr, i32 } [ %11, %lpad.i5 ], [ %0, %lpad.i ] - tail call void @__cxa_free_exception(ptr %exception.i4.sink) #28 + tail call void @__cxa_free_exception(ptr nonnull %exception.i4.sink) #28 resume { ptr, i32 } %common.resume.op lpad.i: ; preds = %if.then @@ -14139,7 +14139,7 @@ invoke.cont.i: ; preds = %cond.end lpad.i4: ; preds = %cond.end %3 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %lpad7.body lpad: ; preds = %call.i.noexc, %cond.true, %invoke.cont4, %cond.false @@ -14246,7 +14246,7 @@ invoke.cont.i: ; preds = %cond.end lpad.i4: ; preds = %cond.end %3 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %lpad7.body lpad: ; preds = %call.i.noexc, %cond.true, %invoke.cont4, %cond.false @@ -14353,7 +14353,7 @@ invoke.cont.i: ; preds = %cond.end lpad.i4: ; preds = %cond.end %3 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %lpad7.body lpad: ; preds = %call.i.noexc, %cond.true, %invoke.cont4, %cond.false @@ -14462,7 +14462,7 @@ invoke.cont.i: ; preds = %cond.end lpad.i4: ; preds = %cond.end %3 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %lpad7.body lpad: ; preds = %call.i.noexc, %cond.true, %invoke.cont4, %cond.false @@ -14571,7 +14571,7 @@ invoke.cont.i: ; preds = %cond.end lpad.i4: ; preds = %cond.end %3 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %lpad7.body lpad: ; preds = %call.i.noexc, %cond.true, %invoke.cont4, %cond.false @@ -14678,7 +14678,7 @@ invoke.cont.i: ; preds = %cond.end lpad.i4: ; preds = %cond.end %3 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %lpad7.body lpad: ; preds = %call.i.noexc, %cond.true, %invoke.cont4, %cond.false @@ -15282,7 +15282,7 @@ invoke.cont.i: ; preds = %if.then lpad.i: ; preds = %if.then %6 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %common.resume lpad: ; preds = %init @@ -15536,7 +15536,7 @@ invoke.cont.i.i.cont: ; preds = %invoke.cont.i.i.inv lpad.i.i: ; preds = %if.then.i %4 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i.i) #28 br label %ehcleanup62 lpad: ; preds = %entry @@ -15584,7 +15584,7 @@ if.then.i25: ; preds = %call.i.i.i.noexc29 lpad.i.i27: ; preds = %if.then.i25 %10 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i.i26) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i.i26) #28 br label %ehcleanup62 for.inc: ; preds = %call.i.i.i.noexc29 @@ -17797,7 +17797,7 @@ invoke.cont: ; preds = %entry lpad: ; preds = %entry %0 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #28 + tail call void @__cxa_free_exception(ptr nonnull %exception) #28 resume { ptr, i32 } %0 } @@ -28859,7 +28859,7 @@ lpad.body: ; preds = %lpad.i.i, %lpad %eh.lpad-body = phi { ptr, i32 } [ %1, %lpad ], [ %0, %lpad.i.i ] %2 = extractvalue { ptr, i32 } %eh.lpad-body, 0 %3 = tail call ptr @__cxa_begin_catch(ptr %2) #28 - invoke void @_ZSt8_DestroyIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEvT_S9_(ptr noundef %__result, ptr noundef %__cur.012) + invoke void @_ZSt8_DestroyIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEvT_S9_(ptr noundef %__result, ptr noundef nonnull %__cur.012) to label %invoke.cont5 unwind label %lpad4 invoke.cont5: ; preds = %lpad.body @@ -48430,15 +48430,11 @@ invoke.cont29: ; preds = %call.i8.noexc br i1 %tobool.not, label %if.end36, label %cleanup if.end36: ; preds = %call.i8.noexc, %invoke.cont29, %invoke.cont23 - %call39 = invoke ptr @_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN7cxxopts13OptionDetailsEEESaISC_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNSE_10_Hash_nodeISC_Lb1EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %rem.i.i.i, i64 noundef %call.i2.i.i, ptr noundef %call.i, i64 noundef 1) + %call39 = invoke ptr @_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN7cxxopts13OptionDetailsEEESaISC_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNSE_10_Hash_nodeISC_Lb1EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %rem.i.i.i, i64 noundef %call.i2.i.i, ptr noundef nonnull %call.i, i64 noundef 1) to label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN7cxxopts13OptionDetailsEEESaISC_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit unwind label %lpad -cleanup: ; preds = %invoke.cont, %land.rhs.i.i.i, %invoke.cont29 - %retval.sroa.0.0.ph = phi ptr [ %7, %invoke.cont29 ], [ %__it.sroa.0.030, %land.rhs.i.i.i ], [ %__it.sroa.0.030, %invoke.cont ] - %tobool.not.i15 = icmp eq ptr %call.i, null - br i1 %tobool.not.i15, label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN7cxxopts13OptionDetailsEEESaISC_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit, label %if.then.i16 - -if.then.i16: ; preds = %cleanup +cleanup: ; preds = %land.rhs.i.i.i, %invoke.cont, %invoke.cont29 + %retval.sroa.0.0.ph = phi ptr [ %7, %invoke.cont29 ], [ %__it.sroa.0.030, %invoke.cont ], [ %__it.sroa.0.030, %land.rhs.i.i.i ] %_M_refcount.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i, i64 48 %8 = load ptr, ptr %_M_refcount.i.i.i.i.i.i.i, align 8 %cmp.not.i.i.i.i.i.i.i.i = icmp eq ptr %8, null @@ -48517,9 +48513,9 @@ _ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_ tail call void @_ZdlPv(ptr noundef nonnull %call.i) #31 br label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN7cxxopts13OptionDetailsEEESaISC_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit -_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN7cxxopts13OptionDetailsEEESaISC_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit: ; preds = %if.end36, %cleanup, %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN7cxxopts13OptionDetailsEEELb1EEEEE18_M_deallocate_nodeEPSF_.exit.i - %retval.sroa.4.026 = phi i8 [ 0, %cleanup ], [ 0, %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN7cxxopts13OptionDetailsEEELb1EEEEE18_M_deallocate_nodeEPSF_.exit.i ], [ 1, %if.end36 ] - %retval.sroa.0.025 = phi ptr [ %retval.sroa.0.0.ph, %cleanup ], [ %retval.sroa.0.0.ph, %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN7cxxopts13OptionDetailsEEELb1EEEEE18_M_deallocate_nodeEPSF_.exit.i ], [ %call39, %if.end36 ] +_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10shared_ptrIN7cxxopts13OptionDetailsEEESaISC_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit: ; preds = %if.end36, %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN7cxxopts13OptionDetailsEEELb1EEEEE18_M_deallocate_nodeEPSF_.exit.i + %retval.sroa.4.026 = phi i8 [ 0, %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN7cxxopts13OptionDetailsEEELb1EEEEE18_M_deallocate_nodeEPSF_.exit.i ], [ 1, %if.end36 ] + %retval.sroa.0.025 = phi ptr [ %retval.sroa.0.0.ph, %_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_nodeISt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10shared_ptrIN7cxxopts13OptionDetailsEEELb1EEEEE18_M_deallocate_nodeEPSF_.exit.i ], [ %call39, %if.end36 ] %.fca.0.insert = insertvalue { ptr, i8 } poison, ptr %retval.sroa.0.025, 0 %.fca.1.insert = insertvalue { ptr, i8 } %.fca.0.insert, i8 %retval.sroa.4.026, 1 ret { ptr, i8 } %.fca.1.insert @@ -49267,7 +49263,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #32 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #32 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -49373,7 +49369,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #32 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #32 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 @@ -50257,7 +50253,7 @@ invoke.cont.i53: ; preds = %invoke.cont23 lpad.i52: ; preds = %invoke.cont23 %17 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %lpad24.body lpad.loopexit: ; preds = %if.then.i199, %if.else.i203 @@ -50598,7 +50594,7 @@ invoke.cont.i95: ; preds = %if.end84 lpad.i94: ; preds = %if.end84 %49 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i93) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i93) #28 br label %ehcleanup127 if.end86: ; preds = %land.rhs.i.i.i.i, %_ZNKSt8__detail15_Hashtable_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS6_St10shared_ptrIN7cxxopts13OptionDetailsEEENS_10_Select1stESt8equal_toIS6_ESt4hashIS6_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb1ELb0ELb1EEEE13_M_key_equalsERS8_RKNS_16_Hash_node_valueISD_Lb1EEE.exit.i, %invoke.cont57 @@ -50715,7 +50711,7 @@ invoke.cont.i102: ; preds = %if.else120 lpad.i101: ; preds = %if.else120 %63 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i100) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i100) #28 br label %ehcleanup125 cleanup.sink.split: ; preds = %invoke.cont116, %invoke.cont106 @@ -50871,7 +50867,7 @@ invoke.cont.i130: ; preds = %if.end157 lpad.i129: ; preds = %if.end157 %81 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i128) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i128) #28 br label %ehcleanup178 if.end159: ; preds = %invoke.cont138 @@ -51869,7 +51865,7 @@ invoke.cont.i: ; preds = %if.end33 lpad.i: ; preds = %if.end33 %24 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i) #28 + tail call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %common.resume return: ; preds = %if.end, %entry, %if.end30, %if.then25 @@ -51936,7 +51932,7 @@ common.resume: ; preds = %lpad, %lpad21, %ehc lpad.i: ; preds = %if.else %8 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i) #28 + tail call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %common.resume if.else9: ; preds = %entry @@ -55870,7 +55866,7 @@ if.else.i.i.i: ; preds = %for.body invoke.cont: ; preds = %if.then.i.i.i, %if.else.i.i.i call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #28 - %call.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %__first.sroa.0.04) #32 + %call.i = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %__first.sroa.0.04) #32 %cmp.i.not = icmp eq ptr %call.i, %__last.coerce br i1 %cmp.i.not, label %for.end, label %for.body, !llvm.loop !386 @@ -57413,7 +57409,7 @@ lpad.body: ; preds = %lpad.i.i, %lpad %eh.lpad-body = phi { ptr, i32 } [ %1, %lpad ], [ %0, %lpad.i.i ] %2 = extractvalue { ptr, i32 } %eh.lpad-body, 0 %3 = tail call ptr @__cxa_begin_catch(ptr %2) #28 - invoke void @_ZSt8_DestroyIPN7cxxopts8KeyValueEEvT_S3_(ptr noundef %__result, ptr noundef %__cur.012) + invoke void @_ZSt8_DestroyIPN7cxxopts8KeyValueEEvT_S3_(ptr noundef %__result, ptr noundef nonnull %__cur.012) to label %invoke.cont5 unwind label %lpad4 invoke.cont5: ; preds = %lpad.body @@ -57928,7 +57924,7 @@ invoke.cont.i.i.i: ; preds = %if.end3.i.i lpad.i.i.i: ; preds = %if.end3.i.i %1 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i.i.i) #28 + tail call void @__cxa_free_exception(ptr nonnull %exception.i.i.i) #28 resume { ptr, i32 } %1 _ZN7cxxopts6values9add_valueIbEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERT_.exit: ; preds = %entry, %if.end.i.i @@ -57961,7 +57957,7 @@ invoke.cont.i.i: ; preds = %if.end3.i lpad.i.i: ; preds = %if.end3.i %1 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i.i) #28 + tail call void @__cxa_free_exception(ptr nonnull %exception.i.i) #28 resume { ptr, i32 } %1 _ZN7cxxopts6values11parse_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERb.exit: ; preds = %entry, %if.end.i @@ -57995,7 +57991,7 @@ invoke.cont.i.i: ; preds = %if.end3.i lpad.i.i: ; preds = %if.end3.i %1 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i.i) #28 + tail call void @__cxa_free_exception(ptr nonnull %exception.i.i) #28 resume { ptr, i32 } %1 _ZN7cxxopts6values11parse_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERb.exit: ; preds = %entry, %if.end.i @@ -59209,7 +59205,7 @@ invoke.cont.i.i: ; preds = %if.then.i lpad.i.i: ; preds = %if.then.i %1 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i.i) #28 + tail call void @__cxa_free_exception(ptr nonnull %exception.i.i) #28 resume { ptr, i32 } %1 _ZN7cxxopts6values11parse_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERc.exit: ; preds = %entry @@ -59241,7 +59237,7 @@ invoke.cont.i.i: ; preds = %if.then.i lpad.i.i: ; preds = %if.then.i %1 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i.i) #28 + tail call void @__cxa_free_exception(ptr nonnull %exception.i.i) #28 resume { ptr, i32 } %1 _ZN7cxxopts6values11parse_valueERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERc.exit: ; preds = %entry @@ -60013,7 +60009,7 @@ if.else43: ; preds = %if.else29, %for.bod lpad.i: ; preds = %if.else43 %8 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %lpad.body lpad: ; preds = %invoke.cont.i25.invoke, %for.end @@ -60049,7 +60045,7 @@ invoke.cont.i25.cont: ; preds = %invoke.cont.i25.inv lpad.i24: ; preds = %if.then54 %11 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i23) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i23) #28 br label %lpad.body for.end: ; preds = %for.cond, %for.cond.us, %entry @@ -60140,7 +60136,7 @@ invoke.cont.i: ; preds = %if.then lpad.i: ; preds = %if.then %7 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %ehcleanup lpad: ; preds = %init @@ -60517,7 +60513,7 @@ invoke.cont.i: ; preds = %if.then3 common.resume: ; preds = %lpad.i4, %lpad.i %exception.i3.sink = phi ptr [ %exception.i3, %lpad.i4 ], [ %exception.i, %lpad.i ] %common.resume.op = phi { ptr, i32 } [ %1, %lpad.i4 ], [ %0, %lpad.i ] - tail call void @__cxa_free_exception(ptr %exception.i3.sink) #28 + tail call void @__cxa_free_exception(ptr nonnull %exception.i3.sink) #28 resume { ptr, i32 } %common.resume.op lpad.i: ; preds = %if.then3 @@ -63398,7 +63394,7 @@ if.else40: ; preds = %if.else27, %for.bod lpad.i: ; preds = %if.else40 %8 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %lpad.body lpad: ; preds = %invoke.cont.i25.invoke, %for.end @@ -63435,7 +63431,7 @@ invoke.cont.i25.cont: ; preds = %invoke.cont.i25.inv lpad.i24: ; preds = %if.then46 %11 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i23) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i23) #28 br label %lpad.body for.end: ; preds = %for.cond, %for.cond.us, %entry @@ -63476,7 +63472,7 @@ invoke.cont.i: ; preds = %if.then2 common.resume: ; preds = %lpad.i4, %lpad.i %exception.i3.sink = phi ptr [ %exception.i3, %lpad.i4 ], [ %exception.i, %lpad.i ] %common.resume.op = phi { ptr, i32 } [ %1, %lpad.i4 ], [ %0, %lpad.i ] - tail call void @__cxa_free_exception(ptr %exception.i3.sink) #28 + tail call void @__cxa_free_exception(ptr nonnull %exception.i3.sink) #28 resume { ptr, i32 } %common.resume.op lpad.i: ; preds = %if.then2 @@ -64397,7 +64393,7 @@ invoke.cont.i: ; preds = %if.then lpad.i: ; preds = %if.then %0 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %lpad.body lpad: ; preds = %invoke.cont.i, %invoke.cont, %entry @@ -65393,7 +65389,7 @@ invoke.cont.i: ; preds = %if.then lpad.i: ; preds = %if.then %0 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i) #28 + call void @__cxa_free_exception(ptr nonnull %exception.i) #28 br label %lpad.body lpad: ; preds = %invoke.cont.i, %invoke.cont, %entry diff --git a/bench/darktable/optimized/timeline.c.ll b/bench/darktable/optimized/timeline.c.ll index 1a144f31aba..e2a5e0a7142 100644 --- a/bench/darktable/optimized/timeline.c.ll +++ b/bench/darktable/optimized/timeline.c.ll @@ -4885,11 +4885,11 @@ define internal fastcc void @_selection_collect(ptr noundef readonly captures(no %57 = call noalias ptr (ptr, ...) @g_strdup_printf(ptr noundef nonnull @.str.40, i32 noundef %.sroa.019.0.copyload, i32 noundef %.sroa.4.0.copyload, i32 noundef %.sroa.5.0.copyload, i32 noundef %.sroa.6.0.copyload, i32 noundef %.sroa.7.0.copyload) #17 br label %_time_format_for_collect.exit -_time_format_for_collect.exit: ; preds = %47, %49, %51, %53, %55 +_time_format_for_collect.exit: ; preds = %55, %53, %51, %49, %47 %58 = phi ptr [ %48, %47 ], [ %50, %49 ], [ %52, %51 ], [ %54, %53 ], [ %57, %55 ] %59 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %58) #21 %60 = icmp ugt i64 %59, 10 - br label %108 + br label %109 61: ; preds = %34 %.sroa.037.0.copyload = load i32, ptr %41, align 4, !tbaa !25 @@ -5011,23 +5011,20 @@ _time_format_for_collect.exit8: ; preds = %84, %86, %88, %90, %104 = icmp ugt i64 %103, 10 br label %_time_format_for_collect.exit8.thread -_time_format_for_collect.exit8.thread: ; preds = %_time_format_for_collect.exit7, %102, %98, %_time_format_for_collect.exit8 +_time_format_for_collect.exit8.thread: ; preds = %_time_format_for_collect.exit7, %_time_format_for_collect.exit8, %98, %102 %105 = phi ptr [ %94, %_time_format_for_collect.exit8 ], [ %94, %102 ], [ %94, %98 ], [ null, %_time_format_for_collect.exit7 ] %106 = phi ptr [ null, %_time_format_for_collect.exit8 ], [ %99, %102 ], [ %99, %98 ], [ null, %_time_format_for_collect.exit7 ] %107 = phi i1 [ true, %_time_format_for_collect.exit8 ], [ %104, %102 ], [ true, %98 ], [ true, %_time_format_for_collect.exit7 ] call void @g_free(ptr noundef %80) #17 call void @g_free(ptr noundef %105) #17 - br label %108 + %108 = icmp eq ptr %106, null + br i1 %108, label %118, label %109 -108: ; preds = %_time_format_for_collect.exit8.thread, %_time_format_for_collect.exit - %109 = phi ptr [ %58, %_time_format_for_collect.exit ], [ %106, %_time_format_for_collect.exit8.thread ] +109: ; preds = %_time_format_for_collect.exit, %_time_format_for_collect.exit8.thread %110 = phi i1 [ %60, %_time_format_for_collect.exit ], [ %107, %_time_format_for_collect.exit8.thread ] - %111 = icmp eq ptr %109, null - br i1 %111, label %119, label %112 - -112: ; preds = %108 - %113 = add nuw nsw i32 %35, 1 - call void @dt_conf_set_int(ptr noundef nonnull @.str.31, i32 noundef %113) #17 + %111 = phi ptr [ %58, %.thread ], [ %106, %_time_format_for_collect.exit8.thread ] + %112 = add nuw nsw i32 %35, 1 + call void @dt_conf_set_int(ptr noundef nonnull @.str.31, i32 noundef %112) #17 call void @llvm.lifetime.start.p0(i64 200, ptr nonnull %4) #17 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(200) %4, i8 0, i64 200, i1 false) %114 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %4, i64 noundef 200, ptr noundef nonnull @.str.32, i32 noundef %35) #17 @@ -5036,14 +5033,14 @@ _time_format_for_collect.exit8.thread: ; preds = %_time_format_for_co %116 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %4, i64 noundef 200, ptr noundef nonnull @.str.33, i32 noundef %35) #17 call void @dt_conf_set_int(ptr noundef nonnull %4, i32 noundef 0) #17 %117 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %4, i64 noundef 200, ptr noundef nonnull @.str.34, i32 noundef %35) #17 - call void @dt_conf_set_string(ptr noundef nonnull %4, ptr noundef nonnull %109) #17 - call void @g_free(ptr noundef nonnull %109) #17 + call void @dt_conf_set_string(ptr noundef nonnull %4, ptr noundef nonnull %111) #17 + call void @g_free(ptr noundef nonnull %111) #17 %118 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @darktable, i64 160), align 8, !tbaa !95 call void @dt_collection_update_query(ptr noundef %118, i32 noundef 1, i32 noundef 36, ptr noundef null) #17 call void @llvm.lifetime.end.p0(i64 200, ptr nonnull %4) #17 br label %119 -119: ; preds = %112, %108 +119: ; preds = %109, %_time_format_for_collect.exit8.thread ret void } diff --git a/bench/delta-rs/optimized/2difj0jdxbswpyo1.ll b/bench/delta-rs/optimized/2difj0jdxbswpyo1.ll index 1e120c683e4..ae589f743d9 100644 --- a/bench/delta-rs/optimized/2difj0jdxbswpyo1.ll +++ b/bench/delta-rs/optimized/2difj0jdxbswpyo1.ll @@ -1094,19 +1094,17 @@ define internal fastcc void @"_ZN4core3ptr79drop_in_place$LT$alloc..boxed..Box$L 3: ; preds = %0 %4 = landingpad { ptr, i32 } cleanup - %5 = icmp ne ptr %.0.val, null - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 - %7 = load i64, ptr %6, align 8, !range !48, !invariant.load !4 - %8 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 - %9 = load i64, ptr %8, align 8, !range !49, !invariant.load !4 - %10 = icmp ult i64 %9, -9223372036854775807 - tail call void @llvm.assume(i1 %10) - %11 = icmp eq i64 %7, 0 - br i1 %11, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h16a85aa925aed81aE.exit", label %12 + %5 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 + %6 = load i64, ptr %5, align 8, !range !48, !invariant.load !4 + %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 + %7 = load i64, ptr %6, align 8, !range !49, !invariant.load !4 + %8 = icmp ult i64 %8, -9223372036854775807 + tail call void @llvm.assume(i1 %9) + %10 = icmp eq i64 %6, 0 + br i1 %10, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h16a85aa925aed81aE.exit", label %11 12: ; preds = %3 - tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef range(i64 1, -9223372036854775808) %7, i64 noundef range(i64 1, -9223372036854775807) %9) #20 + tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef range(i64 1, -9223372036854775808) %6, i64 noundef range(i64 1, -9223372036854775807) %8) #20 br label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h16a85aa925aed81aE.exit" 13: ; preds = %0 diff --git a/bench/duckdb/optimized/ub_duckdb_common_arrow_appender.cpp.ll b/bench/duckdb/optimized/ub_duckdb_common_arrow_appender.cpp.ll index e8a571bef86..38ab4eddaa6 100644 --- a/bench/duckdb/optimized/ub_duckdb_common_arrow_appender.cpp.ll +++ b/bench/duckdb/optimized/ub_duckdb_common_arrow_appender.cpp.ll @@ -4026,7 +4026,9 @@ lpad.i.i: ; preds = %.noexc %4 = landingpad { ptr, i32 } catch ptr null call void @_ZN6duckdb11LogicalTypeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp.i.i) #23 - br label %lpad.body + %5 = extractvalue { ptr, i32 } %4, 0 + %6 = call ptr @__cxa_begin_catch(ptr %5) #23 + br label %if.then.i61 invoke.cont: ; preds = %.noexc call void @_ZN6duckdb11LogicalTypeD1Ev(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp.i.i) #23 @@ -4080,12 +4082,8 @@ _ZNSt12_Vector_baseIN6duckdb6VectorESaIS1_EE13_M_deallocateEPS1_m.exit: ; preds lpad: ; preds = %_ZNSt12_Vector_baseIN6duckdb6VectorESaIS1_EE11_M_allocateEm.exit %5 = landingpad { ptr, i32 } catch ptr null - br label %lpad.body - -lpad.body: ; preds = %lpad, %lpad.i.i - %eh.lpad-body = phi { ptr, i32 } [ %5, %lpad ], [ %4, %lpad.i.i ] - %6 = extractvalue { ptr, i32 } %eh.lpad-body, 0 - %7 = call ptr @__cxa_begin_catch(ptr %6) #23 + %8 = extractvalue { ptr, i32 } %7, 0 + %9 = call ptr @__cxa_begin_catch(ptr %8) #23 %tobool.not = icmp eq ptr %cond.i49, null br i1 %tobool.not, label %if.end.thread, label %if.then.i61 @@ -4099,7 +4097,7 @@ lpad19: ; preds = %invoke.cont21 invoke void @__cxa_end_catch() to label %invoke.cont22 unwind label %terminate.lpad -if.then.i61: ; preds = %lpad.body +if.then.i61: ; preds = %lpad.i.i, %lpad.body call void @_ZdlPv(ptr noundef nonnull %cond.i49) #26 br label %invoke.cont21 diff --git a/bench/duckdb/optimized/ub_duckdb_common_types_row.cpp.ll b/bench/duckdb/optimized/ub_duckdb_common_types_row.cpp.ll index a8cb0fd9318..190dc02704a 100644 --- a/bench/duckdb/optimized/ub_duckdb_common_types_row.cpp.ll +++ b/bench/duckdb/optimized/ub_duckdb_common_types_row.cpp.ll @@ -42283,7 +42283,7 @@ lpad: ; preds = %for.body catch ptr null %6 = extractvalue { ptr, i32 } %5, 0 %7 = tail call ptr @__cxa_begin_catch(ptr %6) #29 - invoke void @_ZSt8_DestroyIPN6duckdb15AggregateObjectEEvT_S3_(ptr noundef %__result, ptr noundef %__cur.018) + invoke void @_ZSt8_DestroyIPN6duckdb15AggregateObjectEEvT_S3_(ptr noundef %__result, ptr noundef nonnull %__cur.018) to label %invoke.cont5 unwind label %lpad4 invoke.cont5: ; preds = %lpad @@ -42962,7 +42962,7 @@ lpad: ; preds = %for.body catch ptr null %6 = extractvalue { ptr, i32 } %5, 0 %7 = tail call ptr @__cxa_begin_catch(ptr %6) #29 - invoke void @_ZSt8_DestroyIPN6duckdb15AggregateObjectEEvT_S3_(ptr noundef %__result, ptr noundef %__cur.016) + invoke void @_ZSt8_DestroyIPN6duckdb15AggregateObjectEEvT_S3_(ptr noundef %__result, ptr noundef nonnull %__cur.016) to label %invoke.cont3 unwind label %lpad2 invoke.cont3: ; preds = %lpad @@ -45996,7 +45996,7 @@ if.else.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i _ZNSt10shared_ptrIN6duckdb18TupleDataAllocatorEEC2ERKS2_.exit.i.i: ; preds = %if.else.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i, %_ZNSt12_Vector_baseIN6duckdb16TupleDataSegmentESaIS1_EE11_M_allocateEm.exit invoke void @_ZN6duckdb16TupleDataSegmentC1ESt10shared_ptrINS_18TupleDataAllocatorEE(ptr noundef nonnull align 8 dereferenceable(144) %add.ptr, ptr noundef nonnull %agg.tmp.i.i) - to label %invoke.cont.i.i unwind label %lpad.i.i + to label %invoke.cont.i.i unwind label %if.then.i60 invoke.cont.i.i: ; preds = %_ZNSt10shared_ptrIN6duckdb18TupleDataAllocatorEEC2ERKS2_.exit.i.i %8 = load ptr, ptr %_M_refcount.i.i.i.i, align 8, !tbaa !54 @@ -46047,15 +46047,6 @@ if.then7.i.i.i.i.i: ; preds = %invoke.cont.i.i.i.i call void @_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv(ptr noundef nonnull align 8 dereferenceable(16) %8) #29 br label %invoke.cont -lpad.i.i: ; preds = %_ZNSt10shared_ptrIN6duckdb18TupleDataAllocatorEEC2ERKS2_.exit.i.i - %15 = landingpad { ptr, i32 } - catch ptr null - call void @_ZNSt12__shared_ptrIN6duckdb18TupleDataAllocatorELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp.i.i) #29 - %16 = extractvalue { ptr, i32 } %15, 0 - %17 = call ptr @__cxa_begin_catch(ptr %16) #29 - %tobool.not = icmp eq ptr %cond.i47, null - br i1 %tobool.not, label %if.end.thread, label %if.then.i60 - invoke.cont: ; preds = %if.then7.i.i.i.i.i, %invoke.cont.i.i.i.i.i, %if.then.i.i.i3.i.i, %invoke.cont.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %agg.tmp.i.i) %cmp.not6.i.i.i.i = icmp eq ptr %1, %__position.coerce @@ -46104,21 +46095,19 @@ _ZNSt12_Vector_baseIN6duckdb16TupleDataSegmentESaIS1_EE13_M_deallocateEPS1_m.exi store ptr %add.ptr26, ptr %_M_end_of_storage, align 8, !tbaa !238 ret void -if.end.thread: ; preds = %lpad.i.i - call void @_ZN6duckdb16TupleDataSegmentD1Ev(ptr noundef nonnull align 8 dereferenceable(144) %add.ptr) #29 - br label %invoke.cont19 - lpad17: ; preds = %invoke.cont19 %18 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %invoke.cont20 unwind label %terminate.lpad -if.then.i60: ; preds = %lpad.i.i +if.then.i60: ; preds = %_ZNSt10shared_ptrIN6duckdb18TupleDataAllocatorEEC2ERKS2_.exit.i.i + %16 = landingpad { ptr, i32 } + catch ptr null + call void @_ZNSt12__shared_ptrIN6duckdb18TupleDataAllocatorELN9__gnu_cxx12_Lock_policyE2EED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp.i.i) #29 + %17 = extractvalue { ptr, i32 } %16, 0 + %18 = call ptr @__cxa_begin_catch(ptr %17) #29 call void @_ZdlPv(ptr noundef nonnull %cond.i47) #30 - br label %invoke.cont19 - -invoke.cont19: ; preds = %if.then.i60, %if.end.thread invoke void @__cxa_rethrow() #31 to label %unreachable unwind label %lpad17 diff --git a/bench/eastl/optimized/TestOptional.cpp.ll b/bench/eastl/optimized/TestOptional.cpp.ll index 136b730a4b5..4f2344dfba5 100644 --- a/bench/eastl/optimized/TestOptional.cpp.ll +++ b/bench/eastl/optimized/TestOptional.cpp.ll @@ -557,13 +557,13 @@ _ZN5eastl8optionalIiEC2ERKS1_.exit.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i %cmp.not.i.i.i.i.i.i = icmp eq i64 %first.addr.06.i.i.i.i.i.i.add, 32 br i1 %cmp.not.i.i.i.i.i.i, label %_ZN5eastl6vectorINS_8optionalIiEENS_9allocatorEEC2ESt16initializer_listIS2_ERKS3_.exit, label %for.body.i.i.i.i.i.i, !llvm.loop !13 -common.resume: ; preds = %_ZN5eastl8optionalI15assignment_testED2Ev.exit836, %ehcleanup280.thread1098, %ehcleanup280.thread, %_ZN5eastl8optionalI15destructor_testED2Ev.exit860, %if.then.i.i827, %if.then.i.i839, %ehcleanup666, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i881, %_ZN5eastl8optionalINS_12basic_stringIcNS_9allocatorEEEED2Ev.exit904, %if.then.i.i.i.i.i910, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i.i.i.i.i912 - %common.resume.op = phi { ptr, i32 } [ %69, %_ZN5eastl8optionalI15destructor_testED2Ev.exit860 ], [ %lpad.thr_comm.split-lp1097, %if.then.i.i827 ], [ %.pn41102, %if.then.i.i839 ], [ %.pn10, %ehcleanup666 ], [ %.pn101108, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i881 ], [ %.pn12, %_ZN5eastl8optionalINS_12basic_stringIcNS_9allocatorEEEED2Ev.exit904 ], [ %.pn12, %if.then.i.i.i.i.i910 ], [ %.pn12, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i.i.i.i.i912 ], [ %lpad.thr_comm.split-lp, %ehcleanup280.thread ], [ %lpad.thr_comm1096, %ehcleanup280.thread1098 ], [ %66, %_ZN5eastl8optionalI15assignment_testED2Ev.exit836 ] +common.resume: ; preds = %_ZN5eastl8optionalI15assignment_testED2Ev.exit836, %ehcleanup280.thread1098, %ehcleanup280.thread, %_ZN5eastl8optionalI15destructor_testED2Ev.exit860, %if.then.i.i827, %if.then.i.i839, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i881, %_ZN5eastl8optionalINS_12basic_stringIcNS_9allocatorEEEED2Ev.exit904, %if.then.i.i.i.i.i910, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i.i.i.i.i912 + %common.resume.op = phi { ptr, i32 } [ %69, %_ZN5eastl8optionalI15destructor_testED2Ev.exit860 ], [ %lpad.thr_comm.split-lp1097, %if.then.i.i827 ], [ %.pn41102, %if.then.i.i839 ], [ %.pn10, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i881 ], [ %.pn12, %_ZN5eastl8optionalINS_12basic_stringIcNS_9allocatorEEEED2Ev.exit904 ], [ %.pn12, %if.then.i.i.i.i.i910 ], [ %.pn12, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i.i.i.i.i912 ], [ %lpad.thr_comm.split-lp, %ehcleanup280.thread ], [ %lpad.thr_comm1096, %ehcleanup280.thread1098 ], [ %66, %_ZN5eastl8optionalI15assignment_testED2Ev.exit836 ] resume { ptr, i32 } %common.resume.op _ZN5eastl6vectorINS_8optionalIiEENS_9allocatorEEC2ESt16initializer_listIS2_ERKS3_.exit: ; preds = %_ZN5eastl8optionalIiEC2ERKS1_.exit.i.i.i.i.i.i %add.ptr.i.i.i = getelementptr inbounds nuw i8, ptr %call.i.i.i.i.i1.i, i64 32 - invoke void @_ZN5eastl10quick_sortIPNS_8optionalIiEEEEvT_S4_(ptr noundef %call.i.i.i.i.i1.i, ptr noundef nonnull %add.ptr.i.i.i) + invoke void @_ZN5eastl10quick_sortIPNS_8optionalIiEEEEvT_S4_(ptr noundef nonnull %call.i.i.i.i.i1.i, ptr noundef nonnull %add.ptr.i.i.i) to label %invoke.cont643 unwind label %lpad638 invoke.cont643: ; preds = %_ZN5eastl6vectorINS_8optionalIiEENS_9allocatorEEC2ESt16initializer_listIS2_ERKS3_.exit @@ -927,13 +927,8 @@ _ZN5eastl9allocator10deallocateEPvm.exit.i.i877: ; preds = %lpad660 call void @_ZdaPv(ptr noundef nonnull %call.i.i.i.i.i1.i530) #8 br label %_ZN5eastl9allocator10deallocateEPvm.exit.i.i881 -ehcleanup666: ; preds = %lpad638, %_ZN5eastl10VectorBaseINS_8optionalIiEENS_9allocatorEED2Ev.exit.i534 - %.pn10 = phi { ptr, i32 } [ %70, %lpad638 ], [ %28, %_ZN5eastl10VectorBaseINS_8optionalIiEENS_9allocatorEED2Ev.exit.i534 ] - %tobool.not.i.i880 = icmp eq ptr %call.i.i.i.i.i1.i, null - br i1 %tobool.not.i.i880, label %common.resume, label %_ZN5eastl9allocator10deallocateEPvm.exit.i.i881 - -_ZN5eastl9allocator10deallocateEPvm.exit.i.i881: ; preds = %lpad660, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i877, %ehcleanup666 - %.pn101108 = phi { ptr, i32 } [ %.pn10, %ehcleanup666 ], [ %71, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i877 ], [ %71, %lpad660 ] +ehcleanup666: ; preds = %_ZN5eastl10VectorBaseINS_8optionalIiEENS_9allocatorEED2Ev.exit.i534, %lpad638, %lpad660, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i877 + %.pn10 = phi { ptr, i32 } [ %70, %lpad638 ], [ %28, %_ZN5eastl10VectorBaseINS_8optionalIiEENS_9allocatorEED2Ev.exit.i534 ], [ %71, %lpad660 ], [ %71, %_ZN5eastl9allocator10deallocateEPvm.exit.i.i877 ] call void @_ZdaPv(ptr noundef nonnull %call.i.i.i.i.i1.i) #8 br label %common.resume diff --git a/bench/faiss/optimized/IndexNNDescent.cpp.ll b/bench/faiss/optimized/IndexNNDescent.cpp.ll index 8a955b7abb0..c79d917ed73 100644 --- a/bench/faiss/optimized/IndexNNDescent.cpp.ll +++ b/bench/faiss/optimized/IndexNNDescent.cpp.ll @@ -120,7 +120,7 @@ define void @_ZN5faiss14IndexNNDescent5trainElPKf(ptr noundef nonnull align 8 ca 20: ; preds = %13 %21 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %16) #10 + call void @__cxa_free_exception(ptr nonnull %16) #10 br label %22 22: ; preds = %20, %18 @@ -181,7 +181,7 @@ define void @_ZN5faiss14IndexNNDescent3addElPKf(ptr noundef nonnull align 8 dere 21: ; preds = %14 %22 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %17) #10 + call void @__cxa_free_exception(ptr nonnull %17) #10 br label %23 23: ; preds = %21, %19 @@ -226,7 +226,7 @@ define void @_ZN5faiss14IndexNNDescent3addElPKf(ptr noundef nonnull align 8 dere 41: ; preds = %34 %42 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %37) #10 + call void @__cxa_free_exception(ptr nonnull %37) #10 br label %43 43: ; preds = %41, %39 @@ -277,8 +277,8 @@ define void @_ZN5faiss14IndexNNDescent3addElPKf(ptr noundef nonnull align 8 dere store ptr %65, ptr %67, align 8 br label %_ZN5faiss12_GLOBAL__N_125storage_distance_computerEPKNS_5IndexE.exit -common.resume: ; preds = %23, %43, %84, %_ZNKSt14default_deleteIN5faiss16DistanceComputerEEclEPS1_.exit.i16, %68 - %common.resume.op = phi { ptr, i32 } [ %69, %68 ], [ %.pn10, %43 ], [ %.pn, %23 ], [ %85, %84 ], [ %85, %_ZNKSt14default_deleteIN5faiss16DistanceComputerEEclEPS1_.exit.i16 ] +common.resume: ; preds = %23, %43, %_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit17, %68 + %common.resume.op = phi { ptr, i32 } [ %69, %68 ], [ %84, %_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit17 ], [ %.pn10, %43 ], [ %.pn, %23 ] resume { ptr, i32 } %common.resume.op 68: ; preds = %60 @@ -315,14 +315,10 @@ _ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit: ; 84: ; preds = %_ZN5faiss12_GLOBAL__N_125storage_distance_computerEPKNS_5IndexE.exit %85 = landingpad { ptr, i32 } cleanup - %.not.i15 = icmp eq ptr %.0.i, null - br i1 %.not.i15, label %common.resume, label %_ZNKSt14default_deleteIN5faiss16DistanceComputerEEclEPS1_.exit.i16 - -_ZNKSt14default_deleteIN5faiss16DistanceComputerEEclEPS1_.exit.i16: ; preds = %84 - %86 = load ptr, ptr %.0.i, align 8 - %87 = getelementptr inbounds nuw i8, ptr %86, i64 40 - %88 = load ptr, ptr %87, align 8 - tail call void %88(ptr noundef nonnull align 8 dereferenceable(8) %.0.i) #10 + %.not.i15 = load ptr, ptr %.0.i, align 8 + %86 = getelementptr inbounds nuw i8, ptr %.not.i15, i64 40 + %87 = load ptr, ptr %86, align 8 + tail call void %87(ptr noundef nonnull align 8 dereferenceable(8) %.0.i) #10 br label %common.resume 89: ; preds = %38, %18 @@ -379,7 +375,7 @@ define void @_ZNK5faiss14IndexNNDescent6searchElPKflPfPlPKNS_16SearchParametersE 29: ; preds = %22 %30 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %25) #10 + call void @__cxa_free_exception(ptr nonnull %25) #10 br label %83 31: ; preds = %7 @@ -419,7 +415,7 @@ define void @_ZNK5faiss14IndexNNDescent6searchElPKflPfPlPKNS_16SearchParametersE 47: ; preds = %40 %48 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %43) #10 + call void @__cxa_free_exception(ptr nonnull %43) #10 br label %83 49: ; preds = %31 diff --git a/bench/flac/optimized/iconvert.c.ll b/bench/flac/optimized/iconvert.c.ll index 13e481b2d22..28632c4a288 100644 --- a/bench/flac/optimized/iconvert.c.ll +++ b/bench/flac/optimized/iconvert.c.ll @@ -206,7 +206,7 @@ safe_realloc_nofree_add_2op_.exit: ; preds = %if.end82 %add.i = add nuw i64 %sub.ptr.sub85, 1 %call.i = call ptr @realloc(ptr noundef nonnull %utfbuf.1.lcssa, i64 noundef %add.i) #9 %tobool87.not = icmp eq ptr %call.i, null - br i1 %tobool87.not, label %fail, label %if.end89 + br i1 %tobool87.not, label %if.then197, label %if.end89 if.end89: ; preds = %safe_realloc_nofree_add_2op_.exit %18 = load ptr, ptr %ob, align 8 @@ -405,13 +405,14 @@ if.end194: ; preds = %if.end191 store ptr %call.i.i, ptr %to, align 8 br label %return -fail: ; preds = %if.end60, %if.then56, %while.end, %if.end82, %safe_malloc_add_2op_.exit, %if.end102, %if.end95, %safe_realloc_nofree_add_2op_.exit - %utfbuf.0 = phi ptr [ %utfbuf.1.lcssa, %safe_realloc_nofree_add_2op_.exit ], [ %utfbuf.1.lcssa, %if.end95 ], [ %call103, %safe_malloc_add_2op_.exit ], [ %utfbuf.1.lcssa, %if.end102 ], [ %utfbuf.1.lcssa, %if.end82 ], [ %call103, %while.end ], [ %utfbuf.1124, %if.then56 ], [ %utfbuf.1124, %if.end60 ] +fail: ; preds = %if.end60, %if.then56, %while.end, %if.end82, %safe_malloc_add_2op_.exit, %if.end102, %if.end95 + %utfbuf.0 = phi ptr [ %utfbuf.1.lcssa, %if.end95 ], [ %call103, %safe_malloc_add_2op_.exit ], [ %utfbuf.1.lcssa, %if.end102 ], [ %utfbuf.1.lcssa, %if.end82 ], [ %call103, %while.end ], [ %utfbuf.1124, %if.then56 ], [ %utfbuf.1124, %if.end60 ] %cmp195.not = icmp eq ptr %utfbuf.0, null br i1 %cmp195.not, label %if.end198, label %if.then197 -if.then197: ; preds = %fail - call void @free(ptr noundef nonnull %utfbuf.0) #7 +if.then197: ; preds = %safe_realloc_nofree_add_2op_.exit, %fail + %utfbuf.0155 = phi ptr [ %utfbuf.0, %fail ], [ %utfbuf.1.lcssa, %safe_realloc_nofree_add_2op_.exit ] + call void @free(ptr noundef nonnull %utfbuf.0155) #7 br label %if.end198 if.end198: ; preds = %if.end45, %if.then197, %fail diff --git a/bench/flac/optimized/metadata_iterators.c.ll b/bench/flac/optimized/metadata_iterators.c.ll index d647d7471cd..e94ed2c3c29 100644 --- a/bench/flac/optimized/metadata_iterators.c.ll +++ b/bench/flac/optimized/metadata_iterators.c.ll @@ -6332,15 +6332,22 @@ if.then35.i: ; preds = %land.lhs.true5.i.i, %call36.i = tail call fastcc i32 @get_equivalent_status_(i32 noundef %.sink.i75.i) br label %err.i -err.i: ; preds = %write_metadata_block_header_cb_.exit.i.i49, %if.then24.i, %if.then35.i, %for.end.i, %write_metadata_block_header_cb_.exit.thread.i.i32, %get_equivalent_status_.exit39.i - %call36.sink.i = phi i32 [ %call36.i, %if.then35.i ], [ %retval.0.i27.i, %get_equivalent_status_.exit39.i ], [ 8, %write_metadata_block_header_cb_.exit.thread.i.i32 ], [ 7, %for.end.i ], [ %., %if.then24.i ], [ 8, %write_metadata_block_header_cb_.exit.i.i49 ] +err.i: ; preds = %write_metadata_block_header_cb_.exit.i.i49, %if.then24.i, %for.end.i, %write_metadata_block_header_cb_.exit.thread.i.i32 + %call36.sink.i = phi i32 [ 8, %write_metadata_block_header_cb_.exit.thread.i.i32 ], [ 7, %for.end.i ], [ %., %if.then24.i ], [ 8, %write_metadata_block_header_cb_.exit.i.i49 ] + %status31.i = getelementptr inbounds nuw i8, ptr %chain, i64 36 + store i32 %.sink.i, ptr %status31.i, align 4 + %call4511.i = tail call i32 @fclose(ptr noundef nonnull %call.i24) + br label %if.end.i79.sink.split.i + +err.i: ; preds = %if.then35.i, %get_equivalent_status_.exit39.i + %call36.sink.i = phi i32 [ %call36.i, %if.then35.i ], [ %retval.0.i27.i, %get_equivalent_status_.exit39.i ] %status37.i = getelementptr inbounds nuw i8, ptr %chain, i64 36 store i32 %call36.sink.i, ptr %status37.i, align 4 %call45.i = tail call i32 @fclose(ptr noundef nonnull %call.i24) br label %if.end.i79.sink.split.i -if.end.i79.sink.split.i: ; preds = %err.i, %err.thread.i - %call.sink.i = phi ptr [ %call.i24, %err.thread.i ], [ %call25.i.i, %err.i ] +if.end.i79.sink.split.i: ; preds = %err.i, %err.i, %err.thread.i + %call.sink.i = phi ptr [ %call.i24, %err.i ], [ %call25.i.i, %err.thread.i ], [ %call25.i.i, %err.i ] %call4511.i = tail call i32 @fclose(ptr noundef nonnull %call.sink.i) br i1 %cmp4.i.i, label %chain_rewrite_file_.exit.thread, label %if.then2.i.i diff --git a/bench/flatbuffers/optimized/idl_gen_kotlin.cpp.ll b/bench/flatbuffers/optimized/idl_gen_kotlin.cpp.ll index eab9e69b38d..4e47cde9275 100644 --- a/bench/flatbuffers/optimized/idl_gen_kotlin.cpp.ll +++ b/bench/flatbuffers/optimized/idl_gen_kotlin.cpp.ll @@ -4978,7 +4978,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #23 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #23 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -5084,7 +5084,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #23 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #23 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 @@ -9752,7 +9752,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi cleanup.thread: ; preds = %if.then, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i %4 = phi i1 [ true, %if.then ], [ %cmp.i.i.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #19 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef nonnull %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #19 %_M_node_count.i.i = getelementptr inbounds nuw i8, ptr %this, i64 40 %5 = load i64, ptr %_M_node_count.i.i, align 8 %inc.i.i = add i64 %5, 1 @@ -9766,18 +9766,14 @@ lpad: ; preds = %invoke.cont resume { ptr, i32 } %6 cleanup: ; preds = %invoke.cont7 - %tobool.not.i = icmp eq ptr %call.i, null - br i1 %tobool.not.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit, label %if.then.i - -if.then.i: ; preds = %cleanup %second.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i, i64 64 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %second.i.i.i.i.i.i) #19 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %_M_storage.i.i.i) #19 tail call void @_ZdlPv(ptr noundef nonnull %call.i) #21 br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit -_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %cleanup, %if.then.i - %retval.sroa.0.07 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %cleanup ], [ %0, %if.then.i ] +_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %if.then.i + %retval.sroa.0.07 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %if.then.i ] ret ptr %retval.sroa.0.07 } @@ -9900,7 +9896,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #23 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #23 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -10006,7 +10002,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #23 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #23 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 diff --git a/bench/folly/optimized/Future.cpp.ll b/bench/folly/optimized/Future.cpp.ll index 9dd408c76b4..9db7318b616 100644 --- a/bench/folly/optimized/Future.cpp.ll +++ b/bench/folly/optimized/Future.cpp.ll @@ -5269,24 +5269,17 @@ invoke.cont170: ; preds = %if.else.i.i.i.i.i.i if.else.i.i.i412: ; preds = %invoke.cont170 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__node_gen.i.i) #28 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp168) #28 - br i1 %tobool.not.i.i402, label %_ZN5folly9LockedPtrINS_12SynchronizedISt13unordered_setINS_6detail14TypeDescriptorENS3_20TypeDescriptorHasherESt8equal_toIS4_ESaIS4_EENS_15SharedMutexImplILb0EvSt6atomicNS_19shared_mutex_detail18PolicySuppressTSANEEEEENS3_22SynchronizedLockPolicyILNS3_22SynchronizedMutexLevelE1ELNS3_23SynchronizedMutexMethodE0EEEED2Ev.exit, label %if.then3.i.i.i414 - -if.then3.i.i.i414: ; preds = %if.else.i.i.i412 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %state.i.i.i.i409) #28 %149 = atomicrmw and ptr %147, i32 -401 seq_cst, align 4 %150 = and i32 %149, -401 store i32 %150, ptr %state.i.i.i.i409, align 4, !tbaa !24 %and.i.i.i.i.i415 = and i32 %149, 15 %cmp.not.i.i.i.i.i416 = icmp eq i32 %and.i.i.i.i.i415, 0 - br i1 %cmp.not.i.i.i.i.i416, label %_ZN5folly15SharedMutexImplILb0EvSt6atomicNS_19shared_mutex_detail18PolicySuppressTSANEE6unlockEv.exit.i.i.i419, label %if.then.i.i.i.i.i417, !prof !7 + br i1 %cmp.not.i.i.i.i.i416, label %_ZN5folly9LockedPtrINS_12SynchronizedISt13unordered_setINS_6detail14TypeDescriptorENS3_20TypeDescriptorHasherESt8equal_toIS4_ESaIS4_EENS_15SharedMutexImplILb0EvSt6atomicNS_19shared_mutex_detail18PolicySuppressTSANEEEEENS3_22SynchronizedLockPolicyILNS3_22SynchronizedMutexLevelE1ELNS3_23SynchronizedMutexMethodE0EEEED2Ev.exit, label %if.then.i.i.i.i.i417, !prof !7 if.then.i.i.i.i.i417: ; preds = %if.then3.i.i.i414 invoke void @_ZN5folly15SharedMutexImplILb0EvSt6atomicNS_19shared_mutex_detail18PolicySuppressTSANEE25wakeRegisteredWaitersImplERjj(ptr noundef nonnull align 4 dereferenceable(4) %147, ptr noundef nonnull align 4 dereferenceable(4) %state.i.i.i.i409, i32 noundef 15) - to label %_ZN5folly15SharedMutexImplILb0EvSt6atomicNS_19shared_mutex_detail18PolicySuppressTSANEE6unlockEv.exit.i.i.i419 unwind label %terminate.lpad.i.i418 - -_ZN5folly15SharedMutexImplILb0EvSt6atomicNS_19shared_mutex_detail18PolicySuppressTSANEE6unlockEv.exit.i.i.i419: ; preds = %if.then.i.i.i.i.i417, %if.then3.i.i.i414 - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %state.i.i.i.i409) #28 - br label %_ZN5folly9LockedPtrINS_12SynchronizedISt13unordered_setINS_6detail14TypeDescriptorENS3_20TypeDescriptorHasherESt8equal_toIS4_ESaIS4_EENS_15SharedMutexImplILb0EvSt6atomicNS_19shared_mutex_detail18PolicySuppressTSANEEEEENS3_22SynchronizedLockPolicyILNS3_22SynchronizedMutexLevelE1ELNS3_23SynchronizedMutexMethodE0EEEED2Ev.exit + to label %_ZN5folly9LockedPtrINS_12SynchronizedISt13unordered_setINS_6detail14TypeDescriptorENS3_20TypeDescriptorHasherESt8equal_toIS4_ESaIS4_EENS_15SharedMutexImplILb0EvSt6atomicNS_19shared_mutex_detail18PolicySuppressTSANEEEEENS3_22SynchronizedLockPolicyILNS3_22SynchronizedMutexLevelE1ELNS3_23SynchronizedMutexMethodE0EEEED2Ev.exit unwind label %terminate.lpad.i.i418 terminate.lpad.i.i418: ; preds = %if.then.i.i.i.i.i417 %151 = landingpad { ptr, i32 } @@ -5295,7 +5288,8 @@ terminate.lpad.i.i418: ; preds = %if.then.i.i.i.i.i41 call void @__clang_call_terminate(ptr %152) #31 unreachable -_ZN5folly9LockedPtrINS_12SynchronizedISt13unordered_setINS_6detail14TypeDescriptorENS3_20TypeDescriptorHasherESt8equal_toIS4_ESaIS4_EENS_15SharedMutexImplILb0EvSt6atomicNS_19shared_mutex_detail18PolicySuppressTSANEEEEENS3_22SynchronizedLockPolicyILNS3_22SynchronizedMutexLevelE1ELNS3_23SynchronizedMutexMethodE0EEEED2Ev.exit: ; preds = %_ZN5folly15SharedMutexImplILb0EvSt6atomicNS_19shared_mutex_detail18PolicySuppressTSANEE6unlockEv.exit.i.i.i419, %if.else.i.i.i412 +_ZN5folly9LockedPtrINS_12SynchronizedISt13unordered_setINS_6detail14TypeDescriptorENS3_20TypeDescriptorHasherESt8equal_toIS4_ESaIS4_EENS_15SharedMutexImplILb0EvSt6atomicNS_19shared_mutex_detail18PolicySuppressTSANEEEEENS3_22SynchronizedLockPolicyILNS3_22SynchronizedMutexLevelE1ELNS3_23SynchronizedMutexMethodE0EEEED2Ev.exit: ; preds = %if.else.i.i.i412, %if.then.i.i.i.i.i417 + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %state.i.i.i.i409) #28 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp161) #28 %153 = load ptr, ptr %_M_refcount.i.i292, align 8, !tbaa !14 %cmp.not.i.i421 = icmp eq ptr %153, null diff --git a/bench/freetype/optimized/cff.c.ll b/bench/freetype/optimized/cff.c.ll index a7fde47f6e7..57013895e20 100644 --- a/bench/freetype/optimized/cff.c.ll +++ b/bench/freetype/optimized/cff.c.ll @@ -1620,7 +1620,7 @@ cff_size_get_globals_funcs.exit: ; preds = %9 %37 = call i32 %35(ptr noundef %14, ptr noundef nonnull %3, ptr noundef nonnull %36) #19 store i32 %37, ptr %2, align 4 %.not42 = icmp eq i32 %37, 0 - br i1 %.not42, label %30, label %.thread, !llvm.loop !10 + br i1 %.not42, label %30, label %.thread.thread, !llvm.loop !10 38: ; preds = %30 %39 = getelementptr inbounds nuw i8, ptr %0, i64 80 @@ -1630,11 +1630,11 @@ cff_size_get_globals_funcs.exit: ; preds = %9 store i64 4294967295, ptr %41, align 8 br label %cff_size_get_globals_funcs.exit.thread -.thread: ; preds = %31, %17, %20 +.thread: ; preds = %17, %20 %.not44 = icmp eq ptr %18, null br i1 %.not44, label %52, label %42 -42: ; preds = %.thread +42: ; preds = %31, %.thread %43 = getelementptr inbounds nuw i8, ptr %16, i64 2864 %44 = load i32, ptr %43, align 8 %.not4553 = icmp eq i32 %44, 0 @@ -1650,19 +1650,20 @@ cff_size_get_globals_funcs.exit: ; preds = %9 %48 = add nsw i64 %indvars.iv56, -1 %49 = getelementptr inbounds nuw [256 x ptr], ptr %45, i64 0, i64 %48 %50 = load ptr, ptr %49, align 8 - call void @ft_mem_free(ptr noundef %14, ptr noundef %50) #19 - store ptr null, ptr %49, align 8 - %.not45.wide = icmp eq i64 %48, 0 - br i1 %.not45.wide, label %._crit_edge, label %47, !llvm.loop !11 + call void @ft_mem_free(ptr noundef %14, ptr noundef %49) #19 + store ptr null, ptr %48, align 8 + %.not45.wide = icmp eq i64 %47, 0 + br i1 %.not45.wide, label %._crit_edge, label %46, !llvm.loop !11 -._crit_edge: ; preds = %47, %42 - %51 = load ptr, ptr %18, align 8 - call void @ft_mem_free(ptr noundef %14, ptr noundef %51) #19 +._crit_edge: ; preds = %46, %.thread.thread + %50 = load ptr, ptr %18, align 8 + call void @ft_mem_free(ptr noundef %14, ptr noundef %50) #19 store ptr null, ptr %18, align 8 br label %52 52: ; preds = %.thread, %._crit_edge - call void @ft_mem_free(ptr noundef %14, ptr noundef %18) #19 + %.05256 = phi ptr [ null, %.thread ], [ %18, %._crit_edge ] + call void @ft_mem_free(ptr noundef %14, ptr noundef %.05256) #19 %.pre = load i32, ptr %2, align 4 br label %cff_size_get_globals_funcs.exit.thread diff --git a/bench/g2o/optimized/command_args.cpp.ll b/bench/g2o/optimized/command_args.cpp.ll index 276090d2afa..9fd82399343 100644 --- a/bench/g2o/optimized/command_args.cpp.ll +++ b/bench/g2o/optimized/command_args.cpp.ll @@ -3632,7 +3632,7 @@ _ZNSt12_Vector_baseIN3g2o11CommandArgs15CommandArgumentESaIS2_EE11_M_allocateEm. %27 = landingpad { ptr, i32 } catch ptr null tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(82) %23) #21 - br label %.body + br label %54 28: ; preds = %.noexc %29 = getelementptr inbounds nuw i8, ptr %23, i64 64 @@ -3704,33 +3704,20 @@ _ZNSt12_Vector_baseIN3g2o11CommandArgs15CommandArgumentESaIS2_EE13_M_deallocateE 50: ; preds = %_ZNSt12_Vector_baseIN3g2o11CommandArgs15CommandArgumentESaIS2_EE11_M_allocateEm.exit %51 = landingpad { ptr, i32 } catch ptr null - br label %.body - -.body: ; preds = %26, %50 - %eh.lpad-body = phi { ptr, i32 } [ %51, %50 ], [ %27, %26 ] - %52 = extractvalue { ptr, i32 } %eh.lpad-body, 0 - %53 = tail call ptr @__cxa_begin_catch(ptr %52) #21 - %.not = icmp eq ptr %22, null - br i1 %.not, label %.thread, label %57 + br label %54 -.thread: ; preds = %.body - %54 = getelementptr inbounds nuw i8, ptr %23, i64 32 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %54) #21 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(82) %23) #21 - br label %_ZNSt12_Vector_baseIN3g2o11CommandArgs15CommandArgumentESaIS2_EE13_M_deallocateEPS2_m.exit37 - -55: ; preds = %_ZNSt12_Vector_baseIN3g2o11CommandArgs15CommandArgumentESaIS2_EE13_M_deallocateEPS2_m.exit37 +55: ; preds = %57 %56 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %59 unwind label %60 -57: ; preds = %.body - %58 = mul nuw nsw i64 %16, 88 - tail call void @_ZdlPvm(ptr noundef nonnull %22, i64 noundef %58) #22 - br label %_ZNSt12_Vector_baseIN3g2o11CommandArgs15CommandArgumentESaIS2_EE13_M_deallocateEPS2_m.exit37 - -_ZNSt12_Vector_baseIN3g2o11CommandArgs15CommandArgumentESaIS2_EE13_M_deallocateEPS2_m.exit37: ; preds = %57, %.thread +57: ; preds = %50, %26 + %58 = phi { ptr, i32 } [ %51, %50 ], [ %27, %26 ] + %55 = extractvalue { ptr, i32 } %58, 0 + %56 = tail call ptr @__cxa_begin_catch(ptr %55) #21 + %57 = mul nuw nsw i64 %16, 88 + tail call void @_ZdlPvm(ptr noundef nonnull %22, i64 noundef %57) #22 invoke void @__cxa_rethrow() #23 to label %63 unwind label %55 @@ -3744,7 +3731,7 @@ _ZNSt12_Vector_baseIN3g2o11CommandArgs15CommandArgumentESaIS2_EE13_M_deallocateE tail call void @__clang_call_terminate(ptr %62) #24 unreachable -63: ; preds = %_ZNSt12_Vector_baseIN3g2o11CommandArgs15CommandArgumentESaIS2_EE13_M_deallocateEPS2_m.exit37 +63: ; preds = %57 unreachable } @@ -3903,7 +3890,7 @@ define internal fastcc void @"_ZSt16__introsort_loopIN9__gnu_cxx17__normal_itera call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %19, ptr noundef nonnull align 8 dereferenceable(32) %23) #21 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(64) %7, ptr noundef nonnull align 8 dereferenceable(64) %6) #21 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %20, ptr noundef nonnull align 8 dereferenceable(32) %19) #21 - call fastcc void @"_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_ESt6vectorIS9_SaIS9_EEEElS9_NS0_5__ops15_Iter_comp_iterIZN3g2o11CommandArgs9printHelpERSoE3$_0EEEvT_T0_SN_T1_T2_"(ptr %0, i64 noundef %.010.i.i.i, i64 noundef %.lcssa139, ptr noundef %7) + call fastcc void @"_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_ESt6vectorIS9_SaIS9_EEEElS9_NS0_5__ops15_Iter_comp_iterIZN3g2o11CommandArgs9printHelpERSoE3$_0EEEvT_T0_SN_T1_T2_"(ptr nonnull %0, i64 noundef %.010.i.i.i, i64 noundef %.lcssa139, ptr noundef %7) call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #21 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %7) #21 %.not.i.i.i = icmp eq i64 %.010.i.i.i, 0 diff --git a/bench/git/optimized/attr.ll b/bench/git/optimized/attr.ll index a09932b6745..b62673796ff 100644 --- a/bench/git/optimized/attr.ll +++ b/bench/git/optimized/attr.ll @@ -2474,13 +2474,7 @@ if.end72.i: ; preds = %if.else56.i, %if.th %20 = load ptr, ptr %states.i, align 8 %21 = load i8, ptr %20, align 1 %tobool77.not80.i = icmp eq i8 %21, 0 - br i1 %tobool77.not80.i, label %parse_attr_line.exit.thread30, label %for.body78.lr.ph.i - -parse_attr_line.exit.thread30: ; preds = %if.end72.i - call void @strbuf_release(ptr noundef nonnull %pattern.i) #21 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %states.i) - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %pattern.i) - br label %do.body + br i1 %tobool77.not80.i, label %parse_attr_line.exit, label %for.body78.lr.ph.i for.body78.lr.ph.i: ; preds = %if.end72.i %state79.i = getelementptr inbounds nuw i8, ptr %call52.i, i64 40 @@ -2507,14 +2501,10 @@ parse_attr_line.exit.thread: ; preds = %_.exit.i, %fail_ret call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %pattern.i) br label %return -parse_attr_line.exit: ; preds = %for.body78.i +parse_attr_line.exit: ; preds = %for.body78.i, %if.end72.i call void @strbuf_release(ptr noundef nonnull %pattern.i) #21 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %states.i) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %pattern.i) - %tobool.not = icmp eq ptr %call52.i, null - br i1 %tobool.not, label %return, label %do.body - -do.body: ; preds = %parse_attr_line.exit.thread30, %parse_attr_line.exit %num_matches = getelementptr inbounds nuw i8, ptr %res, i64 24 %23 = load i32, ptr %num_matches, align 8 %add = add i32 %23, 1 @@ -2565,7 +2555,7 @@ do.end: ; preds = %do.body6.do.end_cri store ptr %call52.i, ptr %arrayidx, align 8 br label %return -return: ; preds = %parse_attr_line.exit.thread, %parse_attr_line.exit, %do.end +return: ; preds = %parse_attr_line.exit.thread, %do.end ret void } diff --git a/bench/git/optimized/pack-bitmap.ll b/bench/git/optimized/pack-bitmap.ll index 31a8171066e..bec7b376e9e 100644 --- a/bench/git/optimized/pack-bitmap.ll +++ b/bench/git/optimized/pack-bitmap.ll @@ -2423,7 +2423,12 @@ if.end38.thread: ; preds = %while.body12, %lor. while.end39: ; preds = %if.end38 br i1 %3, label %if.end43, label %if.then41 -if.then41: ; preds = %if.end38.thread, %while.body12.us, %while.end39 +if.then41: ; preds = %while.end39 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %incdata.i) + call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %show_data.i) + br label %if.end.i18 + +if.then41: ; preds = %if.end38.thread, %while.body12.us call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %incdata.i) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %show_data.i) br i1 %cmp18, label %if.then.i, label %if.end.i18 @@ -2432,8 +2437,8 @@ if.then.i: ; preds = %if.then41 %call.i19 = call ptr @bitmap_new() #18 br label %if.end.i18 -if.end.i18: ; preds = %if.then.i, %if.then41 - %base.addr.0.i = phi ptr [ %base.0.ph.lcssa.fr, %if.then41 ], [ %call.i19, %if.then.i ] +if.end.i18: ; preds = %if.then41, %if.then.i, %if.then41 + %base.addr.0.i = phi ptr [ %base.0.ph.lcssa.fr, %if.then41 ], [ %call.i19, %if.then.i ], [ %base.0.ph.lcssa.fr, %if.then41 ] store ptr %bitmap_git, ptr %incdata.i, align 8 %base2.i = getelementptr inbounds nuw i8, ptr %incdata.i, i64 8 store ptr %base.addr.0.i, ptr %base2.i, align 8 @@ -4149,7 +4154,7 @@ if.then: ; preds = %entry unreachable if.end: ; preds = %entry - tail call fastcc void @test_bitmap_type(ptr noundef nonnull %data, ptr noundef %commit, i32 noundef %call) + tail call fastcc void @test_bitmap_type(ptr noundef nonnull %data, ptr noundef nonnull %commit, i32 noundef %call) %base = getelementptr inbounds nuw i8, ptr %data, i64 8 %1 = load ptr, ptr %base, align 8 %conv = zext nneg i32 %call to i64 @@ -4180,7 +4185,7 @@ if.then: ; preds = %entry unreachable if.end: ; preds = %entry - tail call fastcc void @test_bitmap_type(ptr noundef nonnull %data, ptr noundef %object, i32 noundef %call) + tail call fastcc void @test_bitmap_type(ptr noundef nonnull %data, ptr noundef nonnull %object, i32 noundef %call) %base = getelementptr inbounds nuw i8, ptr %data, i64 8 %1 = load ptr, ptr %base, align 8 %conv = zext nneg i32 %call to i64 @@ -6176,7 +6181,7 @@ entry: if.then: ; preds = %entry %1 = load ptr, ptr %_data, align 8 - %call2 = tail call fastcc i32 @ext_index_add_object(ptr noundef %1, ptr noundef %commit, ptr noundef null) + %call2 = tail call fastcc i32 @ext_index_add_object(ptr noundef %1, ptr noundef nonnull %commit, ptr noundef null) br label %if.end if.end: ; preds = %if.then, %entry @@ -6201,7 +6206,7 @@ if.end.i: ; preds = %land.lhs.true.i, %i br i1 %tobool5.not.i, label %if.end7.i, label %if.then5 if.end7.i: ; preds = %if.end.i - %call8.i = tail call ptr @bitmap_for_commit(ptr noundef %2, ptr noundef %commit) + %call8.i = tail call ptr @bitmap_for_commit(ptr noundef %2, ptr noundef nonnull %commit) %tobool9.not.i = icmp eq ptr %call8.i, null %5 = load ptr, ptr %base.i, align 8 br i1 %tobool9.not.i, label %add_to_include_set.exit, label %if.then10.i @@ -6292,7 +6297,7 @@ entry: if.then: ; preds = %entry %1 = load ptr, ptr %data_, align 8 - %call2 = tail call fastcc i32 @ext_index_add_object(ptr noundef %1, ptr noundef %object, ptr noundef %name) + %call2 = tail call fastcc i32 @ext_index_add_object(ptr noundef %1, ptr noundef nonnull %object, ptr noundef %name) br label %if.end if.end: ; preds = %if.then, %entry diff --git a/bench/graphviz/optimized/colxlate.c.ll b/bench/graphviz/optimized/colxlate.c.ll index 72e96ef3b65..2bab4a865c5 100644 --- a/bench/graphviz/optimized/colxlate.c.ll +++ b/bench/graphviz/optimized/colxlate.c.ll @@ -3515,25 +3515,29 @@ fullColor.exit.i: ; preds = %445, %agxbclear.exi call void @free(ptr noundef %.val.i) #21 br label %resolveColor.exit -resolveColor.exit: ; preds = %agxbfree.exit137, %397, %399, %fullColor.exit.i, %450 - %.0.i139 = phi ptr [ %.0112, %agxbfree.exit137 ], [ %.0112, %397 ], [ %.0112, %399 ], [ %447, %fullColor.exit.i ], [ %447, %450 ] +resolveColor.exit: ; preds = %agxbfree.exit137, %397, %399 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - %.not118 = icmp eq ptr %.0.i139, null + br label %451 + +resolveColor.exit: ; preds = %fullColor.exit.i, %450 + call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) + %.not118 = icmp eq ptr %447, null br i1 %.not118, label %agxbfree.exit, label %451 -451: ; preds = %resolveColor.exit +451: ; preds = %resolveColor.exit, %resolveColor.exit + %.0.i139199 = phi ptr [ %.0112, %resolveColor.exit.thread ], [ %447, %resolveColor.exit ] %452 = load ptr, ptr @colorxlate.last, align 8 %453 = icmp eq ptr %452, null br i1 %453, label %thread-pre-split, label %454 454: ; preds = %451 %455 = load ptr, ptr %452, align 8 - %456 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %455, ptr noundef nonnull dereferenceable(1) %.0.i139) #20 + %456 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %455, ptr noundef nonnull dereferenceable(1) %.0.i139199) #20 %.not119 = icmp eq i32 %456, 0 br i1 %.not119, label %thread-pre-split.thread, label %thread-pre-split thread-pre-split: ; preds = %451, %454 - %457 = call ptr @bsearch(ptr noundef nonnull %.0.i139, ptr noundef nonnull @color_lib, i64 noundef 2515, i64 noundef 16, ptr noundef nonnull @colorcmpf) #21 + %457 = call ptr @bsearch(ptr noundef nonnull %.0.i139199, ptr noundef nonnull @color_lib, i64 noundef 2515, i64 noundef 16, ptr noundef nonnull @colorcmpf) #21 store ptr %457, ptr @colorxlate.last, align 8 %.not120 = icmp eq ptr %457, null br i1 %.not120, label %570, label %thread-pre-split.thread diff --git a/bench/gromacs/optimized/hxprops.cpp.ll b/bench/gromacs/optimized/hxprops.cpp.ll index fcf14ab4a0a..1f24002692e 100644 --- a/bench/gromacs/optimized/hxprops.cpp.ll +++ b/bench/gromacs/optimized/hxprops.cpp.ll @@ -203,22 +203,24 @@ define noundef float @_Z6radiusP8_IO_FILEiPKiPA3_f(ptr noundef %0, i32 noundef % %29 = fadd float %.022, %26 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count29 - br i1 %exitcond.not, label %._crit_edge, label %.lr.ph.split, !llvm.loop !8 + br i1 %exitcond.not, label %._crit_edge.thread, label %.lr.ph.split, !llvm.loop !8 -._crit_edge: ; preds = %.lr.ph.split, %.lr.ph.split.us, %4 - %.0.lcssa = phi float [ 0.000000e+00, %4 ], [ %16, %.lr.ph.split.us ], [ %29, %.lr.ph.split ] +._crit_edge: ; preds = %.lr.ph.split.us, %4 + %.0.lcssa = phi float [ 0.000000e+00, %4 ], [ %16, %.lr.ph.split.us ] %.not = icmp eq ptr %0, null br i1 %.not, label %31, label %30 -30: ; preds = %._crit_edge +30: ; preds = %.lr.ph.split, %._crit_edge + %.0.lcssa33 = phi float [ %.0.lcssa, %._crit_edge ], [ %29, %.lr.ph.split ] %fputc = tail call i32 @fputc(i32 10, ptr nonnull %0) br label %31 31: ; preds = %30, %._crit_edge - %32 = sitofp i32 %1 to float - %33 = fdiv float %.0.lcssa, %32 - %34 = tail call noundef float @sqrtf(float noundef %33) #19 - ret float %34 + %32 = phi float [ %.0.lcssa33, %30 ], [ %.0.lcssa, %._crit_edge ] + %33 = sitofp i32 %1 to float + %34 = fdiv float %.0.lcssa34, %31 + %33 = tail call noundef float @sqrtf(float noundef %34) #19 + ret float %33 } ; Function Attrs: nofree nounwind diff --git a/bench/gromacs/optimized/options.cpp.ll b/bench/gromacs/optimized/options.cpp.ll index 4303c1c9bd7..911733c4b21 100644 --- a/bench/gromacs/optimized/options.cpp.ll +++ b/bench/gromacs/optimized/options.cpp.ll @@ -754,7 +754,12 @@ _ZNSt6vectorIPN3gmx21AbstractOptionStorageESaIS2_EE7reserveEm.exit: ; preds = %_ %41 = load ptr, ptr %8, align 8 %42 = getelementptr inbounds nuw i8, ptr %15, i64 8 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(40) %3, ptr noundef nonnull align 8 dereferenceable(32) %42) - to label %43 unwind label %124 + to label %43 unwind label %.thread58 + +.thread58: ; preds = %_ZNSt6vectorIPN3gmx21AbstractOptionStorageESaIS2_EE7reserveEm.exit + %lpad.thr_comm.split-lp59 = landingpad { ptr, i32 } + cleanup + br label %_ZNKSt14default_deleteIN3gmx21AbstractOptionStorageEEclEPS1_.exit.i33 43: ; preds = %_ZNSt6vectorIPN3gmx21AbstractOptionStorageESaIS2_EE7reserveEm.exit %44 = getelementptr inbounds nuw i8, ptr %3, i64 32 @@ -991,13 +996,14 @@ _ZNSt6vectorIPN3gmx21AbstractOptionStorageESaIS2_EE9push_backEOS2_.exit: ; preds %123 = call noundef nonnull align 8 dereferenceable(16) ptr %122(ptr noundef nonnull align 8 dereferenceable(98) %71) ret ptr %123 -124: ; preds = %26, %_ZNSt12_Vector_baseIPN3gmx21AbstractOptionStorageESaIS2_EE11_M_allocateEm.exit.i, %_ZNSt6vectorIPN3gmx21AbstractOptionStorageESaIS2_EE7reserveEm.exit +124: ; preds = %26, %_ZNSt12_Vector_baseIPN3gmx21AbstractOptionStorageESaIS2_EE11_M_allocateEm.exit.i %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup %.not.i32 = icmp eq ptr %15, null br i1 %.not.i32, label %_ZNSt10unique_ptrIN3gmx21AbstractOptionStorageESt14default_deleteIS1_EED2Ev.exit34, label %_ZNKSt14default_deleteIN3gmx21AbstractOptionStorageEEclEPS1_.exit.i33 -_ZNKSt14default_deleteIN3gmx21AbstractOptionStorageEEclEPS1_.exit.i33: ; preds = %124 +_ZNKSt14default_deleteIN3gmx21AbstractOptionStorageEEclEPS1_.exit.i33: ; preds = %.thread58, %124 + %lpad.thr_comm.split-lp61 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp59, %.thread58 ], [ %lpad.thr_comm.split-lp, %124 ] %125 = load ptr, ptr %15, align 8 %126 = getelementptr inbounds nuw i8, ptr %125, i64 8 %127 = load ptr, ptr %126, align 8 @@ -1005,7 +1011,7 @@ _ZNKSt14default_deleteIN3gmx21AbstractOptionStorageEEclEPS1_.exit.i33: ; preds = br label %_ZNSt10unique_ptrIN3gmx21AbstractOptionStorageESt14default_deleteIS1_EED2Ev.exit34 _ZNSt10unique_ptrIN3gmx21AbstractOptionStorageESt14default_deleteIS1_EED2Ev.exit34: ; preds = %_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN3gmx21AbstractOptionStorageESt14default_deleteIS8_EEED2Ev.exit27, %93, %94, %124, %_ZNKSt14default_deleteIN3gmx21AbstractOptionStorageEEclEPS1_.exit.i33 - %.pn1852 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp, %124 ], [ %lpad.thr_comm.split-lp, %_ZNKSt14default_deleteIN3gmx21AbstractOptionStorageEEclEPS1_.exit.i33 ], [ %82, %_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN3gmx21AbstractOptionStorageESt14default_deleteIS8_EEED2Ev.exit27 ], [ %.pn, %93 ], [ %.pn.pn.pn44, %94 ] + %.pn1852 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp, %124 ], [ %lpad.thr_comm.split-lp61, %_ZNKSt14default_deleteIN3gmx21AbstractOptionStorageEEclEPS1_.exit.i33 ], [ %82, %_ZNSt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt10unique_ptrIN3gmx21AbstractOptionStorageESt14default_deleteIS8_EEED2Ev.exit27 ], [ %.pn, %93 ], [ %.pn.pn.pn44, %94 ] resume { ptr, i32 } %.pn1852 128: ; preds = %80 @@ -2747,7 +2753,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %50, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN3gmx21AbstractOptionStorageESt14default_deleteISA_EEESt10_Select1stISE_ESt4lessIS5_ESaISE_EE24_M_get_insert_unique_posERS7_.exit, label %51 51: ; preds = %47 - %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %1) #28 + %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #28 %53 = getelementptr inbounds nuw i8, ptr %52, i64 32 %54 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %2) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit11 unwind label %55 @@ -2853,7 +2859,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %91, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St10unique_ptrIN3gmx21AbstractOptionStorageESt14default_deleteISA_EEESt10_Select1stISE_ESt4lessIS5_ESaISE_EE24_M_get_insert_unique_posERS7_.exit, label %92 92: ; preds = %88 - %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %1) #28 + %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #28 %94 = getelementptr inbounds nuw i8, ptr %93, i64 32 %95 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %94) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit35 unwind label %96 diff --git a/bench/grpc/optimized/jwt_verifier.cc.ll b/bench/grpc/optimized/jwt_verifier.cc.ll index 7bf53eb8bf3..8967c68293c 100644 --- a/bench/grpc/optimized/jwt_verifier.cc.ll +++ b/bench/grpc/optimized/jwt_verifier.cc.ll @@ -924,7 +924,7 @@ _ZL19validate_time_fieldRKN9grpc_core12experimental4JsonEPKc.exit116: ; preds = br i1 %cmp92, label %error, label %for.inc for.inc: ; preds = %_ZL21validate_string_fieldRKN9grpc_core12experimental4JsonEPKc.exit, %_ZL21validate_string_fieldRKN9grpc_core12experimental4JsonEPKc.exit62, %_ZL19validate_time_fieldRKN9grpc_core12experimental4JsonEPKc.exit, %if.else79, %_ZL19validate_time_fieldRKN9grpc_core12experimental4JsonEPKc.exit116, %_ZL19validate_time_fieldRKN9grpc_core12experimental4JsonEPKc.exit100, %_ZL21validate_string_fieldRKN9grpc_core12experimental4JsonEPKc.exit74, %_ZL21validate_string_fieldRKN9grpc_core12experimental4JsonEPKc.exit50 - %call.i117 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %__begin1.sroa.0.0132) #28 + %call.i117 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %__begin1.sroa.0.0132) #28 %cmp.i.not = icmp eq ptr %call.i117, %add.ptr.i.i br i1 %cmp.i.not, label %return, label %for.body @@ -1358,16 +1358,12 @@ _ZL19jose_header_destroyP11jose_header.exit: ; preds = %_ZN9grpc_core11CSli call void @_Z26grpc_http_response_destroyP18grpc_http_response(ptr noundef nonnull %responses) %arrayidx.c = getelementptr inbounds nuw i8, ptr %ctx, i64 184 call void @_Z26grpc_http_response_destroyP18grpc_http_response(ptr noundef nonnull %arrayidx.c) - %isnull = icmp eq ptr %ctx, null - br i1 %isnull, label %delete.end, label %delete.notnull - -delete.notnull: ; preds = %_ZL19jose_header_destroyP11jose_header.exit %http_request.i = getelementptr inbounds nuw i8, ptr %ctx, i64 240 %15 = load ptr, ptr %http_request.i, align 8 %cmp.not.i.i = icmp eq ptr %15, null br i1 %cmp.not.i.i, label %_ZN15verifier_cb_ctxD2Ev.exit, label %if.then.i.i25 -if.then.i.i25: ; preds = %delete.notnull +if.then.i.i25: ; preds = %_ZL19jose_header_destroyP11jose_header.exit %vtable.i.i.i = load ptr, ptr %15, align 8 %16 = load ptr, ptr %vtable.i.i.i, align 8 invoke void %16(ptr noundef nonnull align 8 dereferenceable(5288) %15) @@ -1380,11 +1376,8 @@ terminate.lpad.i.i: ; preds = %if.then.i.i25 call void @__clang_call_terminate(ptr %18) #25 unreachable -_ZN15verifier_cb_ctxD2Ev.exit: ; preds = %delete.notnull, %if.then.i.i25 +_ZN15verifier_cb_ctxD2Ev.exit: ; preds = %if.then.i.i25, %_ZL19jose_header_destroyP11jose_header.exit call void @_ZdlPv(ptr noundef nonnull %ctx) #29 - br label %delete.end - -delete.end: ; preds = %_ZN15verifier_cb_ctxD2Ev.exit, %_ZL19jose_header_destroyP11jose_header.exit ret void } diff --git a/bench/grpc/optimized/secure_endpoint.cc.ll b/bench/grpc/optimized/secure_endpoint.cc.ll index 0fd1a43d5ce..b2f3cb652ce 100644 --- a/bench/grpc/optimized/secure_endpoint.cc.ll +++ b/bench/grpc/optimized/secure_endpoint.cc.ll @@ -2118,9 +2118,7 @@ entry: %ref = getelementptr inbounds nuw i8, ptr %ep, i64 1280 %call = tail call i32 @gpr_unref(ptr noundef nonnull %ref) %tobool.not = icmp eq i32 %call, 0 - %isnull.i = icmp eq ptr %ep, null - %or.cond = or i1 %isnull.i, %tobool.not - br i1 %or.cond, label %if.end, label %delete.notnull.i + br i1 %tobool.not, label %if.end, label %delete.notnull.i delete.notnull.i: ; preds = %entry %wrapped_ep.i.i = getelementptr inbounds nuw i8, ptr %ep, i64 8 @@ -2396,7 +2394,7 @@ terminate.lpad.i.i: ; preds = %invoke.cont12.i.i, tail call void @__clang_call_terminate(ptr %41) #19 unreachable -_ZN12_GLOBAL__N_115secure_endpointD2Ev.exit.i: ; preds = %if.end8.sink.split.i.i.i.i.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i, %if.end.i.i.i.i +_ZN12_GLOBAL__N_115secure_endpointD2Ev.exit.i: ; preds = %if.end.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i.i.i, %if.end8.sink.split.i.i.i.i.i.i.i.i %write_mu.i.i = getelementptr inbounds nuw i8, ptr %ep, i64 48 tail call void @_ZN4absl12lts_202308025MutexD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %write_mu.i.i) #18 %read_mu.i.i = getelementptr inbounds nuw i8, ptr %ep, i64 40 diff --git a/bench/grpc/optimized/xds_common_types.cc.ll b/bench/grpc/optimized/xds_common_types.cc.ll index 47a9517fd10..84de9c01acb 100644 --- a/bench/grpc/optimized/xds_common_types.cc.ll +++ b/bench/grpc/optimized/xds_common_types.cc.ll @@ -3529,7 +3529,7 @@ entry: if.then: ; preds = %entry %2 = load ptr, ptr %this.0.val, align 8 invoke void @_ZN9grpc_core16ValidationErrors8AddErrorESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(72) %2, i64 17, ptr nonnull @.str.24) - to label %cleanup unwind label %lpad + to label %if.then.i11 unwind label %lpad lpad: ; preds = %invoke.cont17, %if.then %3 = landingpad { ptr, i32 } @@ -3596,13 +3596,14 @@ invoke.cont24: ; preds = %lor.lhs.false store ptr %add.ptr.i, ptr %_M_str.i6, align 8 br label %cleanup -cleanup: ; preds = %invoke.cont21, %invoke.cont24, %if.then - %12 = phi ptr [ %.pre, %invoke.cont21 ], [ %0, %invoke.cont24 ], [ %0, %if.then ] +cleanup: ; preds = %invoke.cont21, %invoke.cont24 + %12 = phi ptr [ %.pre, %invoke.cont21 ], [ %0, %invoke.cont24 ] %cmp.not.i10 = icmp eq ptr %12, null br i1 %cmp.not.i10, label %_ZN9grpc_core16ValidationErrors11ScopedFieldD2Ev.exit, label %if.then.i11 -if.then.i11: ; preds = %cleanup - invoke void @_ZN9grpc_core16ValidationErrors8PopFieldEv(ptr noundef nonnull align 8 dereferenceable(72) %12) +if.then.i11: ; preds = %if.then, %cleanup + %13 = phi ptr [ %12, %cleanup ], [ %0, %if.then ] + invoke void @_ZN9grpc_core16ValidationErrors8PopFieldEv(ptr noundef nonnull align 8 dereferenceable(72) %13) to label %_ZN9grpc_core16ValidationErrors11ScopedFieldD2Ev.exit unwind label %terminate.lpad.i terminate.lpad.i: ; preds = %if.then.i11 diff --git a/bench/harfbuzz/optimized/harfbuzz.cc.ll b/bench/harfbuzz/optimized/harfbuzz.cc.ll index 3579dd4784c..5eb06f83db0 100644 --- a/bench/harfbuzz/optimized/harfbuzz.cc.ll +++ b/bench/harfbuzz/optimized/harfbuzz.cc.ll @@ -8621,7 +8621,7 @@ if.then116.i: ; preds = %if.end113.i if.then120.i: ; preds = %if.then116.i %sub.ptr.lhs.cast126.i = ptrtoint ptr %p.3.i to i64 %sub129.i = sub i64 %sub.ptr.sub30.neg.i, %sub.ptr.lhs.cast126.i - %call134.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %p.3.i, i64 noundef %sub129.i, ptr noundef nonnull @.str.60, i32 noundef %and.i) #55 + %call134.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull %p.3.i, i64 noundef %sub129.i, ptr noundef nonnull @.str.60, i32 noundef %and.i) #55 %.sroa.speculated109.i = call i32 @llvm.smax.i32(i32 %call134.i, i32 0) %idx.ext136.i = zext nneg i32 %.sroa.speculated109.i to i64 %add.ptr137.i = getelementptr inbounds nuw i8, ptr %p.3.i, i64 %idx.ext136.i @@ -8657,7 +8657,7 @@ hb_font_get_glyph_extents.exit.i: ; preds = %cond.false.i.i.i, % %31 = load i32, ptr %y_bearing.i, align 4 %32 = load i32, ptr %width.i, align 4 %33 = load i32, ptr %height.i, align 4 - %call156.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %p.5.i, i64 noundef %sub155.i, ptr noundef nonnull @.str.61, i32 noundef %30, i32 noundef %31, i32 noundef %32, i32 noundef %33) #55 + %call156.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull %p.5.i, i64 noundef %sub155.i, ptr noundef nonnull @.str.61, i32 noundef %30, i32 noundef %31, i32 noundef %32, i32 noundef %33) #55 %.sroa.speculated.i = call i32 @llvm.smax.i32(i32 %call156.i, i32 0) %idx.ext158.i = zext nneg i32 %.sroa.speculated.i to i64 %add.ptr159.i = getelementptr inbounds nuw i8, ptr %p.5.i, i64 %idx.ext158.i @@ -8934,7 +8934,7 @@ if.then58.i: ; preds = %if.end55.i %y_offset.i74 = getelementptr inbounds nuw i8, ptr %arrayidx69.i, i64 12 %54 = load i32, ptr %y_offset.i74, align 4 %add72.i = add nsw i32 %54, %y.0131.i37 - %call73.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %p.4.i47, i64 noundef %sub67.i, ptr noundef nonnull @.str.64, i32 noundef %add.i73, i32 noundef %add72.i) #55 + %call73.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull %p.4.i47, i64 noundef %sub67.i, ptr noundef nonnull @.str.64, i32 noundef %add.i73, i32 noundef %add72.i) #55 %.sroa.speculated118.i75 = call i32 @llvm.smax.i32(i32 %call73.i, i32 0) %idx.ext75.i = zext nneg i32 %.sroa.speculated118.i75 to i64 %add.ptr76.i = getelementptr inbounds nuw i8, ptr %p.4.i47, i64 %idx.ext75.i @@ -8946,7 +8946,7 @@ if.then79.i: ; preds = %if.then58.i %55 = load i32, ptr %arrayidx69.i, align 4 %y_advance.i76 = getelementptr inbounds nuw i8, ptr %arrayidx69.i, i64 4 %56 = load i32, ptr %y_advance.i76, align 4 - %call93.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %add.ptr76.i, i64 noundef %sub88.i, ptr noundef nonnull @.str.65, i32 noundef %55, i32 noundef %56) #55 + %call93.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull %add.ptr76.i, i64 noundef %sub88.i, ptr noundef nonnull @.str.65, i32 noundef %55, i32 noundef %56) #55 %.sroa.speculated115.i77 = call i32 @llvm.smax.i32(i32 %call93.i, i32 0) %idx.ext95.i = zext nneg i32 %.sroa.speculated115.i77 to i64 %add.ptr96.i = getelementptr inbounds nuw i8, ptr %add.ptr76.i, i64 %idx.ext95.i @@ -8966,7 +8966,7 @@ if.then101.i: ; preds = %if.end98.i if.then105.i: ; preds = %if.then101.i %sub.ptr.lhs.cast111.i = ptrtoint ptr %p.5.i48 to i64 %sub114.i = sub i64 %sub.ptr.sub47.neg.i, %sub.ptr.lhs.cast111.i - %call119.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %p.5.i48, i64 noundef %sub114.i, ptr noundef nonnull @.str.66, i32 noundef %and.i50) #55 + %call119.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull %p.5.i48, i64 noundef %sub114.i, ptr noundef nonnull @.str.66, i32 noundef %and.i50) #55 %.sroa.speculated112.i51 = call i32 @llvm.smax.i32(i32 %call119.i, i32 0) %idx.ext121.i = zext nneg i32 %.sroa.speculated112.i51 to i64 %add.ptr122.i = getelementptr inbounds nuw i8, ptr %p.5.i48, i64 %idx.ext121.i @@ -9000,7 +9000,7 @@ hb_font_get_glyph_extents.exit.i58: ; preds = %cond.false.i.i.i56, %sub140.i = sub i64 %sub.ptr.sub47.neg.i, %sub.ptr.lhs.cast137.i %64 = load i32, ptr %extents.i15, align 4 %65 = load i32, ptr %y_bearing.i31, align 4 - %call141.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %p.6.i52, i64 noundef %sub140.i, ptr noundef nonnull @.str.67, i32 noundef %64, i32 noundef %65) #55 + %call141.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull %p.6.i52, i64 noundef %sub140.i, ptr noundef nonnull @.str.67, i32 noundef %64, i32 noundef %65) #55 %.sroa.speculated109.i61 = call i32 @llvm.smax.i32(i32 %call141.i, i32 0) %idx.ext143.i = zext nneg i32 %.sroa.speculated109.i61 to i64 %add.ptr144.i = getelementptr inbounds nuw i8, ptr %p.6.i52, i64 %idx.ext143.i @@ -9008,7 +9008,7 @@ hb_font_get_glyph_extents.exit.i58: ; preds = %cond.false.i.i.i56, %sub153.i = sub i64 %sub.ptr.sub47.neg.i, %sub.ptr.lhs.cast150.i %66 = load i32, ptr %width.i32, align 4 %67 = load i32, ptr %height.i33, align 4 - %call154.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %add.ptr144.i, i64 noundef %sub153.i, ptr noundef nonnull @.str.68, i32 noundef %66, i32 noundef %67) #55 + %call154.i = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull %add.ptr144.i, i64 noundef %sub153.i, ptr noundef nonnull @.str.68, i32 noundef %66, i32 noundef %67) #55 %.sroa.speculated.i62 = call i32 @llvm.smax.i32(i32 %call154.i, i32 0) %idx.ext156.i = zext nneg i32 %.sroa.speculated.i62 to i64 %add.ptr157.i = getelementptr inbounds nuw i8, ptr %add.ptr144.i, i64 %idx.ext156.i @@ -71138,7 +71138,7 @@ land.rhs.i: ; preds = %hb_aat_layout_has_s br i1 %cmp.i, label %_ZL14_hb_apply_morxP9hb_face_tRK23hb_segment_properties_t.exit, label %lor.rhs.i lor.rhs.i: ; preds = %land.rhs.i - %call1.i = call i32 @hb_ot_layout_has_substitution(ptr noundef %face) + %call1.i = call i32 @hb_ot_layout_has_substitution(ptr noundef nonnull %face) %18 = trunc nuw nsw i32 %call1.i to i8 %19 = xor i8 %18, 1 br label %_ZL14_hb_apply_morxP9hb_face_tRK23hb_segment_properties_t.exit @@ -96903,10 +96903,6 @@ for.body: ; preds = %for.cond.preheader, br i1 %call7, label %if.then8, label %for.inc if.then8: ; preds = %for.body - %tobool.not.i.i.i = icmp eq ptr %4, null - br i1 %tobool.not.i.i.i, label %return, label %lor.lhs.false.i.i - -lor.lhs.false.i.i: ; preds = %if.then8 %5 = load atomic i32, ptr %4 monotonic, align 4 %6 = load atomic i32, ptr %4 monotonic, align 4 %tobool.not.i6.i.i = icmp eq i32 %6, 0 @@ -96955,8 +96951,8 @@ if.end.i.i33: ; preds = %if.end29 %16 = atomicrmw add ptr %call15, i32 1 acq_rel, align 4 br label %return -return: ; preds = %if.then, %if.end13, %if.end.i.i33, %if.end29, %if.end13.thread, %if.end.i.i, %lor.lhs.false.i.i, %if.then8 - %retval.0 = phi ptr [ null, %if.then8 ], [ %4, %lor.lhs.false.i.i ], [ %4, %if.end.i.i ], [ %call1535, %if.end13.thread ], [ %call15, %if.end29 ], [ %call15, %if.end.i.i33 ], [ @_hb_NullPool, %if.then ], [ %call15, %if.end13 ] +return: ; preds = %if.then, %if.end13, %if.end.i.i33, %if.end29, %if.end13.thread, %if.end.i.i, %lor.lhs.false.i.i + %retval.0 = phi ptr [ %4, %lor.lhs.false.i.i ], [ %4, %if.end.i.i ], [ %call1535, %if.end13.thread ], [ %call15, %if.end29 ], [ %call15, %if.end.i.i33 ], [ @_hb_NullPool, %if.then ], [ %call15, %if.end13 ] ret ptr %retval.0 } @@ -97139,7 +97135,7 @@ land.lhs.true16: ; preds = %land.lhs.true13 br i1 %tobool18, label %land.lhs.true19, label %if.end22 land.lhs.true19: ; preds = %land.lhs.true16 - %call20 = tail call noundef zeroext i1 @_ZN11hb_buffer_t6verifyEPS_P9hb_font_tPK12hb_feature_tjPKPKc(ptr noundef nonnull align 8 dereferenceable(220) %buffer, ptr noundef nonnull %text_buffer.0, ptr noundef %font, ptr noundef %features, i32 noundef %num_features, ptr noundef %shaper_list) + %call20 = tail call noundef zeroext i1 @_ZN11hb_buffer_t6verifyEPS_P9hb_font_tPK12hb_feature_tjPKPKc(ptr noundef nonnull align 8 dereferenceable(220) %buffer, ptr noundef nonnull %text_buffer.0, ptr noundef nonnull %font, ptr noundef %features, i32 noundef %num_features, ptr noundef %shaper_list) %spec.select = zext i1 %call20 to i32 br label %if.end22 @@ -97913,7 +97909,7 @@ cond.true: ; preds = %sw.bb25 br label %common.ret119 cond.false: ; preds = %sw.bb25 - %call32 = call i32 @hb_ot_layout_get_size_params(ptr noundef %0, ptr noundef nonnull %design, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null) + %call32 = call i32 @hb_ot_layout_get_size_params(ptr noundef nonnull %0, ptr noundef nonnull %design, ptr noundef null, ptr noundef null, ptr noundef null, ptr noundef null) %tobool33.not = icmp eq i32 %call32, 0 %35 = load i32, ptr %design, align 4 %conv35 = uitofp i32 %35 to float @@ -209304,7 +209300,7 @@ if.end94: ; preds = %if.then93, %for.bod %p.1 = phi ptr [ %incdec.ptr, %if.then93 ], [ %p.0134, %for.body90 ] %sub.ptr.lhs.cast = ptrtoint ptr %p.1 to i64 %sub96 = sub i64 %sub.ptr.sub.neg, %sub.ptr.lhs.cast - %call97 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %p.1, i64 noundef %sub96, ptr noundef nonnull @.str.23, i32 noundef %i82.0135) #55 + %call97 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull %p.1, i64 noundef %sub96, ptr noundef nonnull @.str.23, i32 noundef %i82.0135) #55 %call98 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %p.1) #59 %add.ptr = getelementptr inbounds i8, ptr %p.1, i64 %call98 %inc100 = add nuw i32 %i82.0135, 1 @@ -210900,7 +210896,7 @@ if.end47: ; preds = %if.then46, %for.bod %p.1 = phi ptr [ %incdec.ptr, %if.then46 ], [ %p.0331, %for.body ] %sub.ptr.lhs.cast = ptrtoint ptr %p.1 to i64 %sub49 = sub i64 %sub.ptr.sub.neg, %sub.ptr.lhs.cast - %call52 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef %p.1, i64 noundef %sub49, ptr noundef nonnull @.str.23, i32 noundef %109) #55 + %call52 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull %p.1, i64 noundef %sub49, ptr noundef nonnull @.str.23, i32 noundef %109) #55 %call53 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %p.1) #59 %add.ptr = getelementptr inbounds i8, ptr %p.1, i64 %call53 %indvars.iv.next341 = add nuw nsw i64 %indvars.iv340, 1 diff --git a/bench/hdf5/optimized/h5tools_dump.c.ll b/bench/hdf5/optimized/h5tools_dump.c.ll index 5dd73df1b9c..3867e8d874e 100644 --- a/bench/hdf5/optimized/h5tools_dump.c.ll +++ b/bench/hdf5/optimized/h5tools_dump.c.ll @@ -6331,7 +6331,7 @@ h5tools_dump_simple_dset.exit: ; preds = %56, %64, %68, %124, br label %.thread209.i.i.i 757: ; preds = %738 - call void @free(ptr noundef %609) #12 + call void @free(ptr noundef nonnull %609) #12 %758 = load i32, ptr %472, align 8 %759 = add nsw i32 %758, 1 store i32 %759, ptr %472, align 8 @@ -7223,7 +7223,11 @@ define range(i32 -1, 1) i32 @h5tools_print_enum(ptr noundef %0, ptr noundef %1, br label %.loopexit201 177: ; preds = %158, %._crit_edge - br i1 %.not211, label %._crit_edge210, label %.lr.ph206 + br i1 %.not211, label %._crit_edge210.thread, label %.lr.ph206 + +._crit_edge210.thread: ; preds = %177 + tail call void @free(ptr noundef nonnull %95) #12 + br label %221 .lr.ph206: ; preds = %177 %178 = getelementptr inbounds nuw i8, ptr %3, i64 16 @@ -7312,17 +7316,17 @@ define range(i32 -1, 1) i32 @h5tools_print_enum(ptr noundef %0, ptr noundef %1, %exitcond231.not = icmp eq i64 %indvars.iv.next228, %94 br i1 %exitcond231.not, label %._crit_edge210, label %.lr.ph209 -._crit_edge210: ; preds = %220, %177, %.loopexit201 - %.1122234 = phi i32 [ %.1122, %.loopexit201 ], [ 0, %177 ], [ %.1122, %220 ] +._crit_edge210: ; preds = %220, %.loopexit201 call void @free(ptr noundef %95) #12 br i1 %116, label %.thread176.thread, label %221 -221: ; preds = %._crit_edge210 +221: ; preds = %._crit_edge210.thread, %._crit_edge210 + %.1122234236 = phi i32 [ 0, %._crit_edge210.thread ], [ %.1122, %._crit_edge210 ] call void @free(ptr noundef nonnull %115) #12 br label %.thread176.thread .thread176.thread: ; preds = %._crit_edge210, %221, %57, %61, %49, %78, %82, %70, %105, %109, %97 - %.1122174182191 = phi i32 [ -1, %97 ], [ -1, %109 ], [ -1, %105 ], [ -1, %70 ], [ -1, %82 ], [ -1, %78 ], [ -1, %49 ], [ -1, %61 ], [ -1, %57 ], [ %.1122234, %221 ], [ %.1122234, %._crit_edge210 ] + %.1122174182191 = phi i32 [ -1, %97 ], [ -1, %109 ], [ -1, %105 ], [ -1, %70 ], [ -1, %82 ], [ -1, %78 ], [ -1, %49 ], [ -1, %61 ], [ -1, %57 ], [ %.1122234236, %221 ], [ %.1122, %._crit_edge210 ] %222 = call i32 @H5Tclose(i64 noundef %28) #12 %223 = icmp slt i32 %222, 0 br i1 %223, label %224, label %.thread176.thread193 diff --git a/bench/hdf5/optimized/h5watch.c.ll b/bench/hdf5/optimized/h5watch.c.ll index 10d9745d553..eb34cebd7ee 100644 --- a/bench/hdf5/optimized/h5watch.c.ll +++ b/bench/hdf5/optimized/h5watch.c.ll @@ -620,32 +620,42 @@ check_dataset.exit: ; preds = %164, %166 177: ; preds = %175 %178 = call fastcc i32 @monitor_dataset(i64 noundef %96, ptr noundef %116) %179 = icmp slt i32 %178, 0 - br i1 %179, label %.thread84.sink.split, label %.thread84 + br i1 %179, label %.thread84.sink.split, label %.thread84.thread121 .thread84.thread: ; preds = %114, %118, %91, %85 %.03990.ph = phi i64 [ -1, %85 ], [ -1, %91 ], [ %96, %118 ], [ %96, %114 ] call void @free(ptr noundef nonnull %78) #20 br label %181 -.thread84.sink.split: ; preds = %177, %172, %check_dataset.exit, %.split - %.03990.ph122 = phi i64 [ %.us-phi112, %.split ], [ %96, %check_dataset.exit ], [ %96, %172 ], [ %96, %177 ] - %.04088.ph = phi ptr [ %.us-phi, %.split ], [ %116, %check_dataset.exit ], [ %116, %172 ], [ %116, %177 ] +.thread84.sink.split: ; preds = %177, %172 + call void @h5tools_setstatus(i32 noundef 1) #20 + br label %.thread84.thread121 + +.thread84.thread121: ; preds = %.thread84.thread121.sink.split, %177 + call void @free(ptr noundef nonnull %78) #20 + br label %180 + +.thread84.sink.split: ; preds = %check_dataset.exit, %.split + %.03990.ph129 = phi i64 [ %.us-phi112, %.split ], [ %96, %check_dataset.exit ] + %.04088.ph = phi ptr [ %.us-phi, %.split ], [ %116, %check_dataset.exit ] call void @h5tools_setstatus(i32 noundef 1) #20 br label %.thread84 -.thread84: ; preds = %.thread84.sink.split, %177, %175 - %.03990 = phi i64 [ %96, %177 ], [ %96, %175 ], [ %.03990.ph122, %.thread84.sink.split ] - %.04088 = phi ptr [ %116, %177 ], [ %116, %175 ], [ %.04088.ph, %.thread84.sink.split ] +.thread84: ; preds = %.thread84.sink.split, %175 + %.03990 = phi i64 [ %96, %175 ], [ %.03990.ph129, %.thread84.sink.split ] + %.04088 = phi ptr [ %116, %175 ], [ %.04088.ph, %.thread84.sink.split ] call void @free(ptr noundef nonnull %78) #20 %.not66 = icmp eq ptr %.04088, null br i1 %.not66, label %181, label %180 -180: ; preds = %.thread84 - call void @free(ptr noundef nonnull %.04088) #20 +180: ; preds = %.thread84.thread121, %.thread84 + %.04088126 = phi ptr [ %116, %.thread84.thread121 ], [ %.04088, %.thread84 ] + %.03990125 = phi i64 [ %96, %.thread84.thread121 ], [ %.03990, %.thread84 ] + call void @free(ptr noundef nonnull %.04088126) #20 br label %181 181: ; preds = %.thread84.thread, %.thread98, %180, %.thread84 - %.03991104 = phi i64 [ -1, %.thread98 ], [ %.03990, %180 ], [ %.03990, %.thread84 ], [ %.03990.ph, %.thread84.thread ] + %.03991104 = phi i64 [ -1, %.thread98 ], [ %.03990125, %180 ], [ %.03990, %.thread84 ], [ %.03990.ph, %.thread84.thread ] %.093103 = phi i64 [ -1, %.thread98 ], [ %83, %180 ], [ %83, %.thread84 ], [ %83, %.thread84.thread ] %182 = load ptr, ptr @g_list_of_fields, align 8 %.not67 = icmp eq ptr %182, null diff --git a/bench/hermes/optimized/BCOpt.cpp.ll b/bench/hermes/optimized/BCOpt.cpp.ll index f1a2c38f0e2..ee54d64fb5a 100644 --- a/bench/hermes/optimized/BCOpt.cpp.ll +++ b/bench/hermes/optimized/BCOpt.cpp.ll @@ -231,10 +231,8 @@ if.end: ; preds = %for.body9 %18 = load ptr, ptr %RA_, align 8 %call17 = call i32 @_ZN6hermes17RegisterAllocator11getRegisterEPNS_5ValueE(ptr noundef nonnull align 8 dereferenceable(1952) %18, ptr noundef nonnull %add.ptr) #10 %19 = load i8, ptr %add.ptr, align 8 - %cmp.i.i.i.i.i.i.i.i = icmp ne i8 %19, 23 - %tobool.not779 = icmp eq ptr %__begin2.sroa.0.0807, null - %tobool.not = or i1 %tobool.not779, %cmp.i.i.i.i.i.i.i.i - br i1 %tobool.not, label %if.end55, label %if.then20 + %cmp.i.i.i.i.i.i.i.i = icmp eq i8 %19, 23 + br i1 %cmp.i.i.i.i.i.i.i.i, label %if.then20, label %if.end55 if.then20: ; preds = %if.end %call.i = call noundef ptr @_ZNK6hermes11Instruction10getOperandEj(ptr noundef nonnull align 8 dereferenceable(132) %__begin2.sroa.0.0807, i32 noundef 0) #10 diff --git a/bench/hermes/optimized/GCBase.cpp.ll b/bench/hermes/optimized/GCBase.cpp.ll index b27e1d3e6a0..72e84921414 100644 --- a/bench/hermes/optimized/GCBase.cpp.ll +++ b/bench/hermes/optimized/GCBase.cpp.ll @@ -4772,7 +4772,7 @@ if.then18.i.i: ; preds = %if.else12.i.i br i1 %cmp21.i.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_ZN6hermes2vm6GCBase20sizeDiagnosticCensusEmE14DiagnosticStatESt10_Select1stISC_ESt4lessIS5_ESaISC_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorISC_ERS7_.exit.i, label %if.else25.i.i if.else25.i.i: ; preds = %if.then18.i.i - %call.i.i.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__y.addr.0.lcssa.i.i.i17) #31 + %call.i.i.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__y.addr.0.lcssa.i.i.i17) #31 %_M_storage.i.i.i20.i.i = getelementptr inbounds nuw i8, ptr %call.i.i.i, i64 32 %call.i.i21.i.i = tail call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i20.i.i, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i.i6) #27 %cmp.i.i22.i.i = icmp slt i32 %call.i.i21.i.i, 0 @@ -4782,7 +4782,9 @@ if.then32.i.i: ; preds = %if.else25.i.i %7 = getelementptr i8, ptr %call.i.i.i, i64 24 %.val9.i.i = load ptr, ptr %7, align 8 %cmp35.i.i = icmp eq ptr %.val9.i.i, null - br i1 %cmp35.i.i, label %if.then.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_ZN6hermes2vm6GCBase20sizeDiagnosticCensusEmE14DiagnosticStatESt10_Select1stISC_ESt4lessIS5_ESaISC_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorISC_ERS7_.exit.i + %spec.select.i.i = select i1 %cmp35.i.i, ptr null, ptr %__y.addr.0.lcssa.i.i.i17 + %spec.select115.i.i = select i1 %cmp35.i.i, ptr %call.i.i.i, ptr %__y.addr.0.lcssa.i.i.i17 + br label %if.then.i if.else42.i.i: ; preds = %if.else25.i.i %__x.017.i26.i.i = load ptr, ptr %0, align 8 @@ -4833,7 +4835,7 @@ if.then50.i.i: ; preds = %if.else44.i.i br i1 %cmp53.i.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_ZN6hermes2vm6GCBase20sizeDiagnosticCensusEmE14DiagnosticStatESt10_Select1stISC_ESt4lessIS5_ESaISC_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorISC_ERS7_.exit.i, label %if.else57.i.i if.else57.i.i: ; preds = %if.then50.i.i - %call.i63.i.i = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__y.addr.0.lcssa.i.i.i17) #31 + %call.i63.i.i = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__y.addr.0.lcssa.i.i.i17) #31 %_M_storage.i.i.i64.i.i = getelementptr inbounds nuw i8, ptr %call.i63.i.i, i64 32 %call.i.i65.i.i = tail call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i.i6, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i64.i.i) #27 %cmp.i.i66.i.i = icmp slt i32 %call.i.i65.i.i, 0 @@ -4843,7 +4845,9 @@ if.then64.i.i: ; preds = %if.else57.i.i %9 = getelementptr i8, ptr %__y.addr.0.lcssa.i.i.i17, i64 24 %.val.i.i = load ptr, ptr %9, align 8 %cmp67.i.i = icmp eq ptr %.val.i.i, null - br i1 %cmp67.i.i, label %if.then.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_ZN6hermes2vm6GCBase20sizeDiagnosticCensusEmE14DiagnosticStatESt10_Select1stISC_ESt4lessIS5_ESaISC_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorISC_ERS7_.exit.i + %spec.select116.i.i = select i1 %cmp67.i.i, ptr null, ptr %call.i63.i.i + %spec.select117.i.i = select i1 %cmp67.i.i, ptr %__y.addr.0.lcssa.i.i.i17, ptr %call.i63.i.i + br label %if.then.i if.else74.i.i: ; preds = %if.else57.i.i %__x.017.i70.i.i = load ptr, ptr %0, align 8 @@ -4883,15 +4887,15 @@ if.end12.i82.i.i: ; preds = %if.else.i98.i.i, %w %cmp.i.i8.i87.i.i = icmp slt i32 %call.i.i7.i86.i.i, 0 br i1 %cmp.i.i8.i87.i.i, label %if.then.i, label %if.then.i9.i -_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_ZN6hermes2vm6GCBase20sizeDiagnosticCensusEmE14DiagnosticStatESt10_Select1stISC_ESt4lessIS5_ESaISC_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorISC_ERS7_.exit.i: ; preds = %if.then64.i.i, %if.then50.i.i, %if.then32.i.i, %if.then18.i.i, %if.then9.i.i - %retval.sroa.0.0.i.i = phi ptr [ null, %if.then9.i.i ], [ %6, %if.then18.i.i ], [ null, %if.then50.i.i ], [ %__y.addr.0.lcssa.i.i.i17, %if.then32.i.i ], [ %call.i63.i.i, %if.then64.i.i ] - %retval.sroa.12.0.i.i = phi ptr [ %4, %if.then9.i.i ], [ %6, %if.then18.i.i ], [ %8, %if.then50.i.i ], [ %__y.addr.0.lcssa.i.i.i17, %if.then32.i.i ], [ %call.i63.i.i, %if.then64.i.i ] +_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_ZN6hermes2vm6GCBase20sizeDiagnosticCensusEmE14DiagnosticStatESt10_Select1stISC_ESt4lessIS5_ESaISC_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorISC_ERS7_.exit.i: ; preds = %if.then50.i.i, %if.then18.i.i, %if.then9.i.i + %retval.sroa.0.0.i.i = phi ptr [ null, %if.then9.i.i ], [ %6, %if.then18.i.i ], [ null, %if.then50.i.i ] + %retval.sroa.12.0.i.i = phi ptr [ %4, %if.then9.i.i ], [ %6, %if.then18.i.i ], [ %8, %if.then50.i.i ] %tobool.not.i = icmp eq ptr %retval.sroa.12.0.i.i, null br i1 %tobool.not.i, label %if.then.i9.i, label %if.then.i if.then.i: ; preds = %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_ZN6hermes2vm6GCBase20sizeDiagnosticCensusEmE14DiagnosticStatESt10_Select1stISC_ESt4lessIS5_ESaISC_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorISC_ERS7_.exit.i, %if.end12.i82.i.i, %if.then.i94.i.i, %if.then64.i.i, %if.end12.i38.i.i, %if.then.i50.i.i, %if.then32.i.i, %if.end12.i.i.i, %if.then.i.i.i - %retval.sroa.12.0.i11.i = phi ptr [ %retval.sroa.12.0.i.i, %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_ZN6hermes2vm6GCBase20sizeDiagnosticCensusEmE14DiagnosticStatESt10_Select1stISC_ESt4lessIS5_ESaISC_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorISC_ERS7_.exit.i ], [ %__y.0.lcssa23.i95.i.i, %if.then.i94.i.i ], [ %__y.0.lcssa23.i51.i.i, %if.then.i50.i.i ], [ %__y.0.lcssa23.i.i.i, %if.then.i.i.i ], [ %call.i.i.i, %if.then32.i.i ], [ %__y.addr.0.lcssa.i.i.i17, %if.then64.i.i ], [ %__y.0.lcssa24.i.i.i, %if.end12.i.i.i ], [ %__y.0.lcssa24.i39.i.i, %if.end12.i38.i.i ], [ %__y.0.lcssa24.i83.i.i, %if.end12.i82.i.i ] - %retval.sroa.0.0.i10.i = phi ptr [ %retval.sroa.0.0.i.i, %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_ZN6hermes2vm6GCBase20sizeDiagnosticCensusEmE14DiagnosticStatESt10_Select1stISC_ESt4lessIS5_ESaISC_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorISC_ERS7_.exit.i ], [ null, %if.then.i94.i.i ], [ null, %if.then.i50.i.i ], [ null, %if.then.i.i.i ], [ null, %if.then32.i.i ], [ null, %if.then64.i.i ], [ null, %if.end12.i.i.i ], [ null, %if.end12.i38.i.i ], [ null, %if.end12.i82.i.i ] + %retval.sroa.12.0.i11.i = phi ptr [ %retval.sroa.12.0.i.i, %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_ZN6hermes2vm6GCBase20sizeDiagnosticCensusEmE14DiagnosticStatESt10_Select1stISC_ESt4lessIS5_ESaISC_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorISC_ERS7_.exit.i ], [ %__y.0.lcssa23.i95.i.i, %if.then.i94.i.i ], [ %__y.0.lcssa23.i51.i.i, %if.then.i50.i.i ], [ %__y.0.lcssa23.i.i.i, %if.then.i.i.i ], [ %spec.select117.i.i, %if.then64.i.i ], [ %spec.select115.i.i, %if.then32.i.i ], [ %__y.0.lcssa24.i.i.i, %if.end12.i.i.i ], [ %__y.0.lcssa24.i39.i.i, %if.end12.i38.i.i ], [ %__y.0.lcssa24.i83.i.i, %if.end12.i82.i.i ] + %retval.sroa.0.0.i10.i = phi ptr [ %retval.sroa.0.0.i.i, %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_ZN6hermes2vm6GCBase20sizeDiagnosticCensusEmE14DiagnosticStatESt10_Select1stISC_ESt4lessIS5_ESaISC_EE29_M_get_insert_hint_unique_posESt23_Rb_tree_const_iteratorISC_ERS7_.exit.i ], [ null, %if.then.i94.i.i ], [ null, %if.then.i50.i.i ], [ null, %if.then.i.i.i ], [ %spec.select116.i.i, %if.then64.i.i ], [ %spec.select.i.i, %if.then32.i.i ], [ null, %if.end12.i.i.i ], [ null, %if.end12.i38.i.i ], [ null, %if.end12.i82.i.i ] %cmp.not.i.i4.i = icmp ne ptr %retval.sroa.0.0.i10.i, null %cmp2.i.i.i = icmp eq ptr %retval.sroa.12.0.i11.i, %add.ptr.i.i.i %or.cond.i.i.i = select i1 %cmp.not.i.i4.i, i1 true, i1 %cmp2.i.i.i diff --git a/bench/hermes/optimized/IRBuilder.cpp.ll b/bench/hermes/optimized/IRBuilder.cpp.ll index 91efd1b9821..c94d6321b7c 100644 --- a/bench/hermes/optimized/IRBuilder.cpp.ll +++ b/bench/hermes/optimized/IRBuilder.cpp.ll @@ -8141,30 +8141,25 @@ if.end: ; preds = %lor.lhs.false %cmp11.not20 = icmp eq i32 %8, 0 br i1 %cmp11.not20, label %for.end30, label %for.body.lr.ph -for.body.lr.ph: ; preds = %if.end - %9 = icmp eq ptr %0, null - %spec.select = select i1 %9, ptr null, ptr %add.ptr - br label %for.body - -for.body: ; preds = %for.body.lr.ph, %for.inc29 - %__begin1.021 = phi ptr [ %7, %for.body.lr.ph ], [ %incdec.ptr, %for.inc29 ] - %10 = load ptr, ptr %__begin1.021, align 8 - %add.ptr.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %10, i64 16 - %11 = load i8, ptr %add.ptr.i.i.i.i.i.i, align 8 - %cmp.i.i.i.i.i.i.i.i = icmp ne i8 %11, 33 - %tobool.not17 = icmp eq ptr %10, null +for.body.lr.ph: ; preds = %if.end, %for.inc29 + %9 = phi ptr [ %incdec.ptr, %for.inc29 ], [ %7, %if.end ] + %spec.select = load ptr, ptr %9, align 8 + %add.ptr.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %9, i64 16 + %10 = load i8, ptr %add.ptr.i.i.i.i.i.i, align 8 + %cmp.i.i.i.i.i.i.i.i = icmp ne i8 %10, 33 + %__begin1.021 = icmp eq ptr %spec.select, null %tobool.not = or i1 %tobool.not17, %cmp.i.i.i.i.i.i.i.i br i1 %tobool.not, label %for.inc29, label %if.end14 if.end14: ; preds = %for.body - %call15 = tail call noundef i32 @_ZNK6hermes11Instruction14getNumOperandsEv(ptr noundef nonnull align 8 dereferenceable(132) %10) #15 + %call15 = tail call noundef i32 @_ZNK6hermes11Instruction14getNumOperandsEv(ptr noundef nonnull align 8 dereferenceable(132) %9) #15 %cmp17.not18 = icmp eq i32 %call15, 0 br i1 %cmp17.not18, label %for.inc29, label %for.body18 for.body18: ; preds = %if.end14, %for.inc %i.019 = phi i32 [ %inc, %for.inc ], [ 0, %if.end14 ] - %call19 = tail call noundef ptr @_ZNK6hermes11Instruction10getOperandEj(ptr noundef nonnull align 8 dereferenceable(132) %10, i32 noundef %i.019) #15 - %cmp21 = icmp eq ptr %call19, %spec.select + %call19 = tail call noundef ptr @_ZNK6hermes11Instruction10getOperandEj(ptr noundef nonnull align 8 dereferenceable(132) %9, i32 noundef %i.019) #15 + %cmp21 = icmp eq ptr %call19, %add.ptr br i1 %cmp21, label %if.then22, label %for.inc if.then22: ; preds = %for.body18 @@ -8172,7 +8167,7 @@ if.then22: ; preds = %for.body18 %13 = icmp eq ptr %12, null %add.ptr25 = getelementptr inbounds nuw i8, ptr %12, i64 16 %spec.select1 = select i1 %13, ptr null, ptr %add.ptr25 - tail call void @_ZN6hermes11Instruction10setOperandEPNS_5ValueEj(ptr noundef nonnull align 8 dereferenceable(132) %10, ptr noundef %spec.select1, i32 noundef %i.019) #15 + tail call void @_ZN6hermes11Instruction10setOperandEPNS_5ValueEj(ptr noundef nonnull align 8 dereferenceable(132) %9, ptr noundef %spec.select1, i32 noundef %i.019) #15 br label %for.inc for.inc: ; preds = %for.body18, %if.then22 diff --git a/bench/hyperscan/optimized/accel_dfa_build_strat.cpp.ll b/bench/hyperscan/optimized/accel_dfa_build_strat.cpp.ll index fab5e7b8720..0e0267421b3 100644 --- a/bench/hyperscan/optimized/accel_dfa_build_strat.cpp.ll +++ b/bench/hyperscan/optimized/accel_dfa_build_strat.cpp.ll @@ -3253,7 +3253,7 @@ common.resume: ; preds = %lpad.i.i134, %lpad. lpad.i.i: ; preds = %if.then.i.i %1 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i.i) #21 + tail call void @__cxa_free_exception(ptr nonnull %exception.i.i) #21 br label %common.resume _ZN3ue29verify_u8IjEEhT_.exit: ; preds = %entry @@ -3329,7 +3329,7 @@ invoke.cont.i.i75: ; preds = %if.then.i.i72 lpad.i.i74: ; preds = %if.then.i.i72 %17 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i.i73) #21 + tail call void @__cxa_free_exception(ptr nonnull %exception.i.i73) #21 br label %common.resume _ZN3ue29verify_u8IjEEhT_.exit77: ; preds = %if.then @@ -3408,7 +3408,7 @@ invoke.cont.i.i107: ; preds = %if.then.i.i104 lpad.i.i106: ; preds = %if.then.i.i104 %29 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i.i105) #21 + tail call void @__cxa_free_exception(ptr nonnull %exception.i.i105) #21 br label %common.resume _ZN3ue29verify_u8IjEEhT_.exit109: ; preds = %if.then57 @@ -3443,7 +3443,7 @@ invoke.cont.i.i114: ; preds = %if.then.i.i111 lpad.i.i113: ; preds = %if.then.i.i111 %31 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i.i112) #21 + call void @__cxa_free_exception(ptr nonnull %exception.i.i112) #21 br label %common.resume _ZN3ue29verify_u8IjEEhT_.exit116: ; preds = %if.then68 @@ -3518,7 +3518,7 @@ invoke.cont.i.i135: ; preds = %if.then.i.i132 lpad.i.i134: ; preds = %if.then.i.i132 %47 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception.i.i133) #21 + call void @__cxa_free_exception(ptr nonnull %exception.i.i133) #21 br label %common.resume _ZN3ue29verify_u8IjEEhT_.exit137: ; preds = %if.then101 @@ -5265,7 +5265,7 @@ invoke.cont: ; preds = %entry lpad: ; preds = %entry %0 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #21 + tail call void @__cxa_free_exception(ptr nonnull %exception) #21 resume { ptr, i32 } %0 } @@ -7318,7 +7318,7 @@ lor.rhs.i.i: ; preds = %if.then cleanup.thread: ; preds = %if.then, %lor.rhs.i.i %4 = phi i1 [ true, %if.then ], [ %cmp.i.i.i, %lor.rhs.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #21 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef nonnull %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #21 %_M_node_count.i.i = getelementptr inbounds nuw i8, ptr %this, i64 40 %5 = load i64, ptr %_M_node_count.i.i, align 8 %inc.i.i = add i64 %5, 1 @@ -7332,10 +7332,6 @@ lpad: ; preds = %invoke.cont resume { ptr, i32 } %6 cleanup: ; preds = %invoke.cont7 - %tobool.not.i = icmp eq ptr %call.i, null - br i1 %tobool.not.i, label %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE10_Auto_nodeD2Ev.exit, label %if.then.i - -if.then.i: ; preds = %cleanup %m_capacity.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i, i64 56 %7 = load i64, ptr %m_capacity.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8 %tobool.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i64 %7, 0 @@ -7356,8 +7352,8 @@ _ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4 tail call void @_ZdlPv(ptr noundef nonnull %call.i) #24 br label %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE10_Auto_nodeD2Ev.exit -_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %cleanup, %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS4_E.exit.i - %retval.sroa.0.06 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %cleanup ], [ %0, %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS4_E.exit.i ] +_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS4_E.exit.i + %retval.sroa.0.06 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS4_E.exit.i ] ret ptr %retval.sroa.0.06 } @@ -8945,7 +8941,7 @@ lor.rhs.i.i: ; preds = %if.then cleanup.thread: ; preds = %if.then, %lor.rhs.i.i %4 = phi i1 [ true, %if.then ], [ %cmp.i.i.i, %lor.rhs.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #21 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef nonnull %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #21 %_M_node_count.i.i = getelementptr inbounds nuw i8, ptr %this, i64 40 %5 = load i64, ptr %_M_node_count.i.i, align 8 %inc.i.i = add i64 %5, 1 @@ -8959,10 +8955,6 @@ lpad: ; preds = %invoke.cont resume { ptr, i32 } %6 cleanup: ; preds = %invoke.cont7 - %tobool.not.i = icmp eq ptr %call.i, null - br i1 %tobool.not.i, label %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE10_Auto_nodeD2Ev.exit, label %if.then.i - -if.then.i: ; preds = %cleanup %m_capacity.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i, i64 56 %7 = load i64, ptr %m_capacity.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8 %tobool.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i64 %7, 0 @@ -8983,8 +8975,8 @@ _ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4 tail call void @_ZdlPv(ptr noundef nonnull %call.i) #24 br label %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE10_Auto_nodeD2Ev.exit -_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %cleanup, %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS4_E.exit.i - %retval.sroa.0.06 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %cleanup ], [ %0, %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS4_E.exit.i ] +_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS4_E.exit.i + %retval.sroa.0.06 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %_ZNSt8_Rb_treeItSt4pairIKtN3ue211AccelSchemeEESt10_Select1stIS4_ESt4lessItESaIS4_EE12_M_drop_nodeEPSt13_Rb_tree_nodeIS4_E.exit.i ] ret ptr %retval.sroa.0.06 } diff --git a/bench/hyperscan/optimized/flood_compile.cpp.ll b/bench/hyperscan/optimized/flood_compile.cpp.ll index ec31eb07032..f48687f9b3c 100644 --- a/bench/hyperscan/optimized/flood_compile.cpp.ll +++ b/bench/hyperscan/optimized/flood_compile.cpp.ll @@ -98,7 +98,7 @@ invoke.cont.i.i: ; preds = %if.then.i.i lpad.i.i: ; preds = %if.then.i.i %4 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i.i) #16 + tail call void @__cxa_free_exception(ptr nonnull %exception.i.i) #16 br label %_ZNSt6vectorI8FDRFloodSaIS0_EED2Ev.exit202 invoke.cont13: ; preds = %for.body10 @@ -507,7 +507,7 @@ land.lhs.true.i.i.i: ; preds = %if.then.i.i.i %_M_storage.i.i.i.i3.i.i = getelementptr inbounds nuw i8, ptr %76, i64 32 %call.i.i.i.i = call i32 @memcmp(ptr noundef nonnull readonly align 8 dereferenceable(208) %_M_storage.i.i.i.i3.i.i, ptr noundef nonnull readonly align 8 dereferenceable(208) %_M_storage.i.i.i.i.i4.i, i64 noundef 208) #18 %cmp.i.i.i.i = icmp slt i32 %call.i.i.i.i, 0 - br i1 %cmp.i.i.i.i, label %invoke.cont7.i.i, label %if.else.i.i.i + br i1 %cmp.i.i.i.i, label %if.then.i.i183, label %if.else.i.i.i if.else.i.i.i: ; preds = %land.lhs.true.i.i.i, %if.then.i.i.i br i1 %cmp.not1.i.i.i.i, label %if.then.i.i.i.i, label %while.body.i.i.i7.i @@ -556,7 +556,7 @@ if.then18.i.i.i: ; preds = %if.else12.i.i.i br i1 %cmp21.i.i.i, label %invoke.cont7.i.i, label %if.else25.i.i.i if.else25.i.i.i: ; preds = %if.then18.i.i.i - %call.i18.i.i.i = call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__y.addr.0.lcssa.i.i.i17.i) #18 + %call.i18.i.i.i = call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__y.addr.0.lcssa.i.i.i17.i) #18 %_M_storage.i.i.i19.i.i.i = getelementptr inbounds nuw i8, ptr %call.i18.i.i.i, i64 32 %call.i20.i.i.i = call i32 @memcmp(ptr noundef nonnull readonly align 8 dereferenceable(208) %_M_storage.i.i.i19.i.i.i, ptr noundef nonnull readonly align 8 dereferenceable(208) %_M_storage.i.i.i.i.i4.i, i64 noundef 208) #18 %cmp.i21.i.i.i = icmp slt i32 %call.i20.i.i.i, 0 @@ -566,7 +566,9 @@ if.then32.i.i.i: ; preds = %if.else25.i.i.i %78 = getelementptr i8, ptr %call.i18.i.i.i, i64 24 %.val9.i.i.i = load ptr, ptr %78, align 8 %cmp35.i.i.i = icmp eq ptr %.val9.i.i.i, null - br i1 %cmp35.i.i.i, label %if.then.i.i183, label %invoke.cont7.i.i + %spec.select.i.i.i = select i1 %cmp35.i.i.i, ptr null, ptr %__y.addr.0.lcssa.i.i.i17.i + %spec.select114.i.i.i = select i1 %cmp35.i.i.i, ptr %call.i18.i.i.i, ptr %__y.addr.0.lcssa.i.i.i17.i + br label %if.then.i.i183 if.else42.i.i.i: ; preds = %if.else25.i.i.i br i1 %cmp.not1.i.i.i.i, label %if.then.i49.i.i.i, label %while.body.i27.i.i.i @@ -613,7 +615,7 @@ if.then50.i.i.i: ; preds = %if.else44.i.i.i br i1 %cmp53.i.i.i, label %invoke.cont7.i.i, label %if.else57.i.i.i if.else57.i.i.i: ; preds = %if.then50.i.i.i - %call.i62.i.i.i = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__y.addr.0.lcssa.i.i.i17.i) #18 + %call.i62.i.i.i = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__y.addr.0.lcssa.i.i.i17.i) #18 %_M_storage.i.i.i63.i.i.i = getelementptr inbounds nuw i8, ptr %call.i62.i.i.i, i64 32 %call.i64.i.i.i = call i32 @memcmp(ptr noundef nonnull readonly align 8 dereferenceable(208) %_M_storage.i.i.i.i.i4.i, ptr noundef nonnull readonly align 8 dereferenceable(208) %_M_storage.i.i.i63.i.i.i, i64 noundef 208) #18 %cmp.i65.i.i.i = icmp slt i32 %call.i64.i.i.i, 0 @@ -623,7 +625,9 @@ if.then64.i.i.i: ; preds = %if.else57.i.i.i %80 = getelementptr i8, ptr %__y.addr.0.lcssa.i.i.i17.i, i64 24 %.val.i.i.i = load ptr, ptr %80, align 8 %cmp67.i.i.i = icmp eq ptr %.val.i.i.i, null - br i1 %cmp67.i.i.i, label %if.then.i.i183, label %invoke.cont7.i.i + %spec.select115.i.i.i = select i1 %cmp67.i.i.i, ptr null, ptr %call.i62.i.i.i + %spec.select116.i.i.i = select i1 %cmp67.i.i.i, ptr %__y.addr.0.lcssa.i.i.i17.i, ptr %call.i62.i.i.i + br label %if.then.i.i183 if.else74.i.i.i: ; preds = %if.else57.i.i.i br i1 %cmp.not1.i.i.i.i, label %if.then.i93.i.i.i, label %while.body.i71.i.i.i @@ -660,15 +664,15 @@ if.end12.i81.i.i.i: ; preds = %if.else.i97.i.i.i, %cmp.i8.i86.i.i.i = icmp slt i32 %call.i7.i85.i.i.i, 0 br i1 %cmp.i8.i86.i.i.i, label %if.then.i.i183, label %if.then.i12.i.i -invoke.cont7.i.i: ; preds = %if.then64.i.i.i, %if.then50.i.i.i, %if.then32.i.i.i, %if.then18.i.i.i, %land.lhs.true.i.i.i - %retval.sroa.0.0.i.i.i = phi ptr [ null, %land.lhs.true.i.i.i ], [ %77, %if.then18.i.i.i ], [ null, %if.then50.i.i.i ], [ %__y.addr.0.lcssa.i.i.i17.i, %if.then32.i.i.i ], [ %call.i62.i.i.i, %if.then64.i.i.i ] - %retval.sroa.12.0.i.i.i = phi ptr [ %76, %land.lhs.true.i.i.i ], [ %77, %if.then18.i.i.i ], [ %79, %if.then50.i.i.i ], [ %__y.addr.0.lcssa.i.i.i17.i, %if.then32.i.i.i ], [ %call.i62.i.i.i, %if.then64.i.i.i ] +invoke.cont7.i.i: ; preds = %if.then50.i.i.i, %if.then18.i.i.i + %retval.sroa.0.0.i.i.i = phi ptr [ %77, %if.then18.i.i.i ], [ null, %if.then50.i.i.i ] + %retval.sroa.12.0.i.i.i = phi ptr [ %77, %if.then18.i.i.i ], [ %79, %if.then50.i.i.i ] %tobool.not.i.i = icmp eq ptr %retval.sroa.12.0.i.i.i, null br i1 %tobool.not.i.i, label %if.then.i12.i.i, label %if.then.i.i183 -if.then.i.i183: ; preds = %invoke.cont7.i.i, %if.end12.i81.i.i.i, %if.then.i93.i.i.i, %if.then64.i.i.i, %if.end12.i37.i.i.i, %if.then.i49.i.i.i, %if.then32.i.i.i, %if.end12.i.i.i.i, %if.then.i.i.i.i - %retval.sroa.12.0.i11.i.i = phi ptr [ %retval.sroa.12.0.i.i.i, %invoke.cont7.i.i ], [ %__y.0.lcssa28.i94.i.i.i, %if.then.i93.i.i.i ], [ %__y.0.lcssa28.i50.i.i.i, %if.then.i49.i.i.i ], [ %__y.0.lcssa28.i.i.i.i, %if.then.i.i.i.i ], [ %call.i18.i.i.i, %if.then32.i.i.i ], [ %__y.addr.0.lcssa.i.i.i17.i, %if.then64.i.i.i ], [ %__y.0.lcssa29.i.i.i.i, %if.end12.i.i.i.i ], [ %__y.0.lcssa29.i38.i.i.i, %if.end12.i37.i.i.i ], [ %__y.0.lcssa29.i82.i.i.i, %if.end12.i81.i.i.i ] - %retval.sroa.0.0.i10.i.i = phi ptr [ %retval.sroa.0.0.i.i.i, %invoke.cont7.i.i ], [ null, %if.then.i93.i.i.i ], [ null, %if.then.i49.i.i.i ], [ null, %if.then.i.i.i.i ], [ null, %if.then32.i.i.i ], [ null, %if.then64.i.i.i ], [ null, %if.end12.i.i.i.i ], [ null, %if.end12.i37.i.i.i ], [ null, %if.end12.i81.i.i.i ] +if.then.i.i183: ; preds = %invoke.cont7.i.i, %if.end12.i81.i.i.i, %if.then.i93.i.i.i, %if.then64.i.i.i, %if.end12.i37.i.i.i, %if.then.i49.i.i.i, %if.then32.i.i.i, %if.end12.i.i.i.i, %if.then.i.i.i.i, %land.lhs.true.i.i.i + %retval.sroa.12.0.i11.i.i = phi ptr [ %retval.sroa.12.0.i.i.i, %invoke.cont7.i.i ], [ %__y.0.lcssa28.i94.i.i.i, %if.then.i93.i.i.i ], [ %__y.0.lcssa28.i50.i.i.i, %if.then.i49.i.i.i ], [ %__y.0.lcssa28.i.i.i.i, %if.then.i.i.i.i ], [ %spec.select116.i.i.i, %if.then64.i.i.i ], [ %spec.select114.i.i.i, %if.then32.i.i.i ], [ %76, %land.lhs.true.i.i.i ], [ %__y.0.lcssa29.i.i.i.i, %if.end12.i.i.i.i ], [ %__y.0.lcssa29.i38.i.i.i, %if.end12.i37.i.i.i ], [ %__y.0.lcssa29.i82.i.i.i, %if.end12.i81.i.i.i ] + %retval.sroa.0.0.i10.i.i = phi ptr [ %retval.sroa.0.0.i.i.i, %invoke.cont7.i.i ], [ null, %if.then.i93.i.i.i ], [ null, %if.then.i49.i.i.i ], [ null, %if.then.i.i.i.i ], [ %spec.select115.i.i.i, %if.then64.i.i.i ], [ %spec.select.i.i.i, %if.then32.i.i.i ], [ null, %land.lhs.true.i.i.i ], [ null, %if.end12.i.i.i.i ], [ null, %if.end12.i37.i.i.i ], [ null, %if.end12.i81.i.i.i ] %cmp.not.i.i5.i.i = icmp ne ptr %retval.sroa.0.0.i10.i.i, null %cmp2.i.i.i.i = icmp eq ptr %retval.sroa.12.0.i11.i.i, %75 %or.cond.i.i.i.i = select i1 %cmp.not.i.i5.i.i, i1 true, i1 %cmp2.i.i.i.i diff --git a/bench/icu/optimized/ucnv_bld.ll b/bench/icu/optimized/ucnv_bld.ll index af0cac4df93..68c70fb3c54 100644 --- a/bench/icu/optimized/ucnv_bld.ll +++ b/bench/icu/optimized/ucnv_bld.ll @@ -1805,14 +1805,12 @@ if.then83: ; preds = %if.end67 if.end85: ; preds = %if.end67 %idx.ext86 = zext nneg i32 %call57 to i64 - %cmp88.not = icmp eq ptr %cond, null %add.ptr91 = getelementptr inbounds nuw i8, ptr %cond, i64 %idx.ext86 - %spec.select = select i1 %cmp88.not, ptr null, ptr %add.ptr91 %sub95 = sub nsw i32 %sub, %call57 br label %20 20: ; preds = %if.end85, %if.end85.thread - %spec.select363 = phi ptr [ %spec.select358, %if.end85.thread ], [ %spec.select, %if.end85 ] + %spec.select363 = phi ptr [ %spec.select358, %if.end85.thread ], [ %add.ptr91, %if.end85 ] %idx.ext86354.pn = phi i64 [ %idx.ext86354, %if.end85.thread ], [ %idx.ext86, %if.end85 ] %staticDataSize.0346361 = phi i32 [ %call52, %if.end85.thread ], [ %call57, %if.end85 ] %21 = phi i32 [ %length, %if.end85.thread ], [ %sub95, %if.end85 ] diff --git a/bench/icu/optimized/zonemeta.ll b/bench/icu/optimized/zonemeta.ll index ae20939f686..8451a62b6d3 100644 --- a/bench/icu/optimized/zonemeta.ll +++ b/bench/icu/optimized/zonemeta.ll @@ -1390,7 +1390,8 @@ invoke.cont57: ; preds = %if.end54 ehcleanup.thread: ; preds = %if.end90 %13 = landingpad { ptr, i32 } cleanup - br label %ehcleanup112 + call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %canonicalID) #14 + br label %delete.notnull.i59 if.end63: ; preds = %invoke.cont57 store ptr %call31, ptr %call56, align 8 @@ -1496,22 +1497,24 @@ ehcleanup112.thread: ; preds = %lpad.i, %delete.not call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %canonicalID) #14 br label %_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit63 -ehcleanup112: ; preds = %lpad1.loopexit, %lpad1.loopexit.split-lp, %ehcleanup.thread - %mzMappings.sroa.0.2 = phi ptr [ %mzMappings.sroa.0.7, %ehcleanup.thread ], [ %mzMappings.sroa.0.3.ph, %lpad1.loopexit ], [ %mzMappings.sroa.0.0.ph, %lpad1.loopexit.split-lp ] - %.pn16 = phi { ptr, i32 } [ %13, %ehcleanup.thread ], [ %lpad.loopexit, %lpad1.loopexit ], [ %lpad.loopexit.split-lp, %lpad1.loopexit.split-lp ] +ehcleanup112: ; preds = %lpad1.loopexit, %lpad1.loopexit.split-lp + %mzMappings.sroa.0.2 = phi ptr [ %mzMappings.sroa.0.3.ph, %lpad1.loopexit ], [ %mzMappings.sroa.0.0.ph, %lpad1.loopexit.split-lp ] + %.pn16 = phi { ptr, i32 } [ %lpad.loopexit, %lpad1.loopexit ], [ %lpad.loopexit.split-lp, %lpad1.loopexit.split-lp ] call void @_ZN6icu_7513UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %canonicalID) #14 %isnull.i58 = icmp eq ptr %mzMappings.sroa.0.2, null br i1 %isnull.i58, label %_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit63, label %delete.notnull.i59 -delete.notnull.i59: ; preds = %ehcleanup112 - %vtable.i60 = load ptr, ptr %mzMappings.sroa.0.2, align 8 +delete.notnull.i59: ; preds = %ehcleanup.thread, %ehcleanup112 + %vtable.i60 = phi { ptr, i32 } [ %13, %ehcleanup.thread ], [ %.pn16, %ehcleanup112 ] + %mzMappings.sroa.0.2161 = phi ptr [ %mzMappings.sroa.0.7, %ehcleanup112.thread157 ], [ %mzMappings.sroa.0.2, %ehcleanup112 ] + %vtable.i60 = load ptr, ptr %mzMappings.sroa.0.2161, align 8 %vfn.i61 = getelementptr inbounds nuw i8, ptr %vtable.i60, i64 8 %21 = load ptr, ptr %vfn.i61, align 8 - call void %21(ptr noundef nonnull align 8 dereferenceable(40) %mzMappings.sroa.0.2) #14 + call void %21(ptr noundef nonnull align 8 dereferenceable(40) %mzMappings.sroa.0.2161) #14 br label %_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit63 _ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit63: ; preds = %ehcleanup112.thread, %ehcleanup112, %delete.notnull.i59 - %.pn16156 = phi { ptr, i32 } [ %.pn16.ph, %ehcleanup112.thread ], [ %.pn16, %ehcleanup112 ], [ %.pn16, %delete.notnull.i59 ] + %.pn16156 = phi { ptr, i32 } [ %.pn16.ph, %ehcleanup112.thread ], [ %.pn16, %ehcleanup112 ], [ %.pn16162, %delete.notnull.i59 ] resume { ptr, i32 } %.pn16156 } diff --git a/bench/image-rs/optimized/5ez7udly19o3uj1p.ll b/bench/image-rs/optimized/5ez7udly19o3uj1p.ll index 43ac0e672ee..883022a58be 100644 --- a/bench/image-rs/optimized/5ez7udly19o3uj1p.ll +++ b/bench/image-rs/optimized/5ez7udly19o3uj1p.ll @@ -18429,44 +18429,42 @@ define internal fastcc void @"_ZN4core3ptr67drop_in_place$LT$alloc..boxed..Box$L tail call void @llvm.assume(i1 %1) %2 = load ptr, ptr %.8.val, align 8, !invariant.load !19, !nonnull !19 invoke void %2(ptr noundef nonnull align 1 %.0.val) - to label %13 unwind label %3 + to label %12 unwind label %3 3: ; preds = %0 %4 = landingpad { ptr, i32 } cleanup - %5 = icmp ne ptr %.0.val, null - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 - %7 = load i64, ptr %6, align 8, !range !2271, !invariant.load !19 - %8 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 - %9 = load i64, ptr %8, align 8, !range !2272, !invariant.load !19 - %10 = icmp ult i64 %9, -9223372036854775807 - tail call void @llvm.assume(i1 %10) - %11 = icmp eq i64 %7, 0 - br i1 %11, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdcd771d9965cec9cE.exit", label %12 - -12: ; preds = %3 - tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef range(i64 1, -9223372036854775808) %7, i64 noundef range(i64 1, -9223372036854775807) %9) #24 - br label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdcd771d9965cec9cE.exit" + %5 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 + %6 = load i64, ptr %5, align 8, !range !2271, !invariant.load !19 + %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 + %7 = load i64, ptr %6, align 8, !range !2272, !invariant.load !19 + %8 = icmp ult i64 %8, -9223372036854775807 + tail call void @llvm.assume(i1 %9) + %10 = icmp eq i64 %6, 0 + br i1 %10, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdcd771d9965cec9cE.exit", label %11 -13: ; preds = %0 - %14 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 - %15 = load i64, ptr %14, align 8, !range !2271, !invariant.load !19 - %16 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 - %17 = load i64, ptr %16, align 8, !range !2272, !invariant.load !19 - %18 = icmp ult i64 %17, -9223372036854775807 - tail call void @llvm.assume(i1 %18) - %19 = icmp eq i64 %15, 0 - br i1 %19, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdcd771d9965cec9cE.exit4", label %20 +13: ; preds = %3 + tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef range(i64 1, -9223372036854775808) %6, i64 noundef range(i64 1, -9223372036854775807) %8) #24 + br label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdcd771d9965cec9cE.exit" -20: ; preds = %13 - tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef range(i64 1, -9223372036854775808) %15, i64 noundef range(i64 1, -9223372036854775807) %17) #24 +20: ; preds = %0 + %13 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 + %14 = load i64, ptr %13, align 8, !range !2271, !invariant.load !19 + %15 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 + %16 = load i64, ptr %15, align 8, !range !2272, !invariant.load !19 + %17 = icmp ult i64 %16, -9223372036854775807 + tail call void @llvm.assume(i1 %17) + %18 = icmp eq i64 %14, 0 + br i1 %18, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdcd771d9965cec9cE.exit4", label %19 + +19: ; preds = %12 + tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef range(i64 1, -9223372036854775808) %14, i64 noundef range(i64 1, -9223372036854775807) %16) #24 br label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdcd771d9965cec9cE.exit4" -"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdcd771d9965cec9cE.exit4": ; preds = %13, %20 +"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdcd771d9965cec9cE.exit4": ; preds = %12, %19 ret void -"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdcd771d9965cec9cE.exit": ; preds = %12, %3 +"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdcd771d9965cec9cE.exit": ; preds = %11, %3 resume { ptr, i32 } %4 } diff --git a/bench/influxdb-rs/optimized/5e3g7j4bc55q5qdg.ll b/bench/influxdb-rs/optimized/5e3g7j4bc55q5qdg.ll index 9a66fe0c3ba..1db9f6f7e64 100644 --- a/bench/influxdb-rs/optimized/5e3g7j4bc55q5qdg.ll +++ b/bench/influxdb-rs/optimized/5e3g7j4bc55q5qdg.ll @@ -192,7 +192,7 @@ common.resume: ; preds = %122, %.body, %.body %.fca.0.extract.i.i = extractvalue { i64, ptr } %60, 0 switch i64 %.fca.0.extract.i.i, label %default.unreachable.i.i [ i64 0, label %62 - i64 1, label %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit" + i64 1, label %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit.thread" i64 2, label %61 ] @@ -346,17 +346,12 @@ _ZN3std4sync6poison4Flag4done17hd9bab5cd828871c1E.llvm.14431222152625912608.exit %108 = load ptr, ptr %5, align 8, !alias.scope !62, !nonnull !4, !noundef !4 %109 = atomicrmw sub ptr %108, i64 1 release, align 8, !noalias !62 %110 = icmp eq i64 %109, 1 - br i1 %110, label %111, label %.thread.i + br i1 %110, label %111, label %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit" 111: ; preds = %"_ZN4core3ptr90drop_in_place$LT$std..sync..mutex..MutexGuard$LT$futures_channel..mpsc..SenderTask$GT$$GT$17h06cd882a7990ea2eE.llvm.14431222152625912608.exit.i" fence acquire invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hecb17ab4bd35886fE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %5) - to label %.thread.i unwind label %.loopexit.split-lp - -.thread.i: ; preds = %111, %"_ZN4core3ptr90drop_in_place$LT$std..sync..mutex..MutexGuard$LT$futures_channel..mpsc..SenderTask$GT$$GT$17h06cd882a7990ea2eE.llvm.14431222152625912608.exit.i" - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) - %.val14.pr.pre = load ptr, ptr %1, align 8 - br label %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit" + to label %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit" unwind label %.loopexit.split-lp 112: ; preds = %92, %70 %113 = landingpad { ptr, i32 } @@ -410,14 +405,16 @@ _ZN3std4sync6poison4Flag4done17hd9bab5cd828871c1E.llvm.14431222152625912608.exit invoke fastcc void @"_ZN4core3ptr90drop_in_place$LT$core..result..Result$LT$bytes..bytes..Bytes$C$hyper..error..Error$GT$$GT$17h59ff62405b88852cE"(ptr noalias noundef align 8 dereferenceable(32) %7) #26 to label %common.resume unwind label %127 -"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit": ; preds = %.noexc, %.thread.i - %.val14.pr = phi ptr [ %.val14.pr.pre, %.thread.i ], [ %.val, %.noexc ] - %.not.i18 = icmp eq ptr %.val14.pr, null - br i1 %.not.i18, label %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$16dec_num_messages17hc704052cc78ec857E.exit", label %124 - -124: ; preds = %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit" - %125 = getelementptr inbounds nuw i8, ptr %.val14.pr, i64 56 - %126 = atomicrmw sub ptr %125, i64 1 seq_cst, align 8 +"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit": ; preds = %"_ZN4core3ptr90drop_in_place$LT$std..sync..mutex..MutexGuard$LT$futures_channel..mpsc..SenderTask$GT$$GT$17h06cd882a7990ea2eE.llvm.14431222152625912608.exit.i", %111 + call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) + %.not.i18 = load ptr, ptr %1, align 8 + %.not.i18 = icmp eq ptr %.val14.pr.pre, null + br i1 %.not.i18, label %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$16dec_num_messages17hc704052cc78ec857E.exit", label %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit.thread" + +124: ; preds = %.noexc, %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit" + %125 = phi ptr [ %.not.i18, %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit" ], [ %.val, %.noexc ] + %126 = getelementptr inbounds nuw i8, ptr %125, i64 56 + %125 = atomicrmw sub ptr %124, i64 1 seq_cst, align 8 br label %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$16dec_num_messages17hc704052cc78ec857E.exit" "_ZN15futures_channel4mpsc17Receiver$LT$T$GT$16dec_num_messages17hc704052cc78ec857E.exit": ; preds = %57, %124, %"_ZN15futures_channel4mpsc17Receiver$LT$T$GT$10unpark_one17h2f8ad7e61731d4e4E.exit" diff --git a/bench/ipopt/optimized/IpDiagMatrix.ll b/bench/ipopt/optimized/IpDiagMatrix.ll index d715c3c0e69..e799e6f20c5 100644 --- a/bench/ipopt/optimized/IpDiagMatrix.ll +++ b/bench/ipopt/optimized/IpDiagMatrix.ll @@ -311,18 +311,9 @@ _ZN5Ipopt6Vector4AxpyEdRKS0_.exit: ; preds = %.noexc11 _ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit: ; preds = %_ZN5Ipopt6Vector4AxpyEdRKS0_.exit, %36 ret void -.thread: ; preds = %.noexc11, %_ZN5Ipopt6Vector19ElementWiseMultiplyERKS0_.exit, %.noexc, %23 +.thread: ; preds = %_ZN5Ipopt8SmartPtrINS_6VectorEEC2EPS1_.exit, %23, %.noexc, %_ZN5Ipopt6Vector19ElementWiseMultiplyERKS0_.exit, %.noexc11 %lpad.thr_comm = landingpad { ptr, i32 } cleanup - br label %41 - -40: ; preds = %_ZN5Ipopt8SmartPtrINS_6VectorEEC2EPS1_.exit - %lpad.thr_comm.split-lp = landingpad { ptr, i32 } - cleanup - br i1 %.not.i.i, label %_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit15, label %41 - -41: ; preds = %.thread, %40 - %lpad.phi24 = phi { ptr, i32 } [ %lpad.thr_comm, %.thread ], [ %lpad.thr_comm.split-lp, %40 ] %42 = getelementptr inbounds nuw i8, ptr %18, i64 8 %43 = load i32, ptr %42, align 8 %44 = add nsw i32 %43, -1 @@ -330,16 +321,15 @@ _ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit: ; preds = %_ZN5Ipopt6Vector4Ax %45 = icmp eq i32 %44, 0 br i1 %45, label %46, label %_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit15 -46: ; preds = %41 +46: ; preds = %40 %47 = load ptr, ptr %18, align 8 %48 = getelementptr inbounds nuw i8, ptr %47, i64 8 %49 = load ptr, ptr %48, align 8 tail call void %49(ptr noundef nonnull align 8 dereferenceable(205) %18) #10 br label %_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit15 -_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit15: ; preds = %40, %41, %46 - %lpad.phi25 = phi { ptr, i32 } [ %lpad.thr_comm.split-lp, %40 ], [ %lpad.phi24, %41 ], [ %lpad.phi24, %46 ] - resume { ptr, i32 } %lpad.phi25 +_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit15: ; preds = %40, %46 + resume { ptr, i32 } %lpad.thr_comm } declare void @_ZN5Ipopt6Vector4ScalEd(ptr noundef nonnull align 8 dereferenceable(205), double noundef) local_unnamed_addr #4 diff --git a/bench/just-rs/optimized/2sotx4bdu006z307.ll b/bench/just-rs/optimized/2sotx4bdu006z307.ll index 5c4a8e704fb..07a8f6cbd63 100644 --- a/bench/just-rs/optimized/2sotx4bdu006z307.ll +++ b/bench/just-rs/optimized/2sotx4bdu006z307.ll @@ -4181,7 +4181,7 @@ define internal void @"_ZN4core3ptr39drop_in_place$LT$just..error..Error$GT$17h2 tail call void @llvm.experimental.noalias.scope.decl(metadata !817) tail call void @llvm.experimental.noalias.scope.decl(metadata !820) %146 = load ptr, ptr %145, align 8, !alias.scope !823, !noundef !4 - invoke void @"_ZN4core3ptr63drop_in_place$LT$just..compile_error_kind..CompileErrorKind$GT$17hbed5a2c9027d5efdE.llvm.1798434116971987782"(ptr noalias noundef align 8 dereferenceable(96) %146) + invoke void @"_ZN4core3ptr63drop_in_place$LT$just..compile_error_kind..CompileErrorKind$GT$17hbed5a2c9027d5efdE.llvm.1798434116971987782"(ptr noalias noundef nonnull align 8 dereferenceable(96) %146) to label %"_ZN4core3ptr54drop_in_place$LT$just..compile_error..CompileError$GT$17h7ccec9bd220f87ebE.exit" unwind label %147, !noalias !823 common.resume: ; preds = %425, %437, %446, %455, %473, %483, %488, %497, %522, %531, %357, %176, %234, %147 @@ -9866,8 +9866,6 @@ _ZN3std4sync6poison4Flag4done17h6aecd475d8dd2349E.llvm.1798434116971987782.exit. 152: ; preds = %151 %153 = landingpad { ptr, i32 } cleanup - %154 = icmp ne i64 %.sroa.0.sroa.4.0.copyload.i, 0 - call void @llvm.assume(i1 %154) br label %.body.thread.sink.split.i .noexc5.i: ; preds = %151 diff --git a/bench/libphonenumber/optimized/regexp_adapter_icu.cc.ll b/bench/libphonenumber/optimized/regexp_adapter_icu.cc.ll index 98ac935b93b..c392578dc4c 100644 --- a/bench/libphonenumber/optimized/regexp_adapter_icu.cc.ll +++ b/bench/libphonenumber/optimized/regexp_adapter_icu.cc.ll @@ -831,15 +831,8 @@ _ZN4i18n12phonenumbers12_GLOBAL__N_125UnicodeStringToUtf8StringB5cxx11ERKN6icu_7 48: ; preds = %27, %45 %.1 = phi i1 [ %47, %45 ], [ false, %27 ] - %49 = icmp eq ptr %19, null - br i1 %49, label %_ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev.exit, label %50 - -50: ; preds = %48 call void @_ZN6icu_7012RegexMatcherD1Ev(ptr noundef nonnull align 8 dereferenceable(336) %19) #12 call void @_ZN6icu_707UMemorydlEPv(ptr noundef nonnull %19) #12 - br label %_ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev.exit - -_ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev.exit: ; preds = %48, %50 store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN4i18n12phonenumbers14IcuRegExpInputE, i64 16), ptr %5, align 8 call void @_ZN6icu_7013UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %13) #12 br label %53 @@ -1004,10 +997,10 @@ _ZN4i18n12phonenumbers12_GLOBAL__N_125UnicodeStringToUtf8StringB5cxx11ERKN6icu_7 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #12 br label %.body -61: ; preds = %50, %30, %58 +61: ; preds = %58, %30, %50 %.213 = phi i1 [ true, %58 ], [ false, %30 ], [ false, %50 ] call void @_ZN6icu_7013UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %8) #12 - br label %62 + br label %63 .body: ; preds = %.loopexit, %.loopexit.split-lp, %55, %59, %47, %45 %.pn = phi { ptr, i32 } [ %48, %47 ], [ %60, %59 ], [ %46, %45 ], [ %56, %55 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] @@ -1015,17 +1008,18 @@ _ZN4i18n12phonenumbers12_GLOBAL__N_125UnicodeStringToUtf8StringB5cxx11ERKN6icu_7 call void @_ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %7) #12 br label %65 -62: ; preds = %22, %61 - %.112 = phi i1 [ false, %22 ], [ %.213, %61 ] - %63 = icmp eq ptr %21, null - br i1 %63, label %_ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev.exit, label %64 +62: ; preds = %22 + %.112 = icmp eq ptr %21, null + br i1 %62, label %_ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev.exit, label %63 -64: ; preds = %62 +64: ; preds = %62, %61 + %.11224 = phi i1 [ %.213, %.thread ], [ false, %61 ] call void @_ZN6icu_7012RegexMatcherD1Ev(ptr noundef nonnull align 8 dereferenceable(336) %21) #12 call void @_ZN6icu_707UMemorydlEPv(ptr noundef nonnull %21) #12 br label %_ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev.exit _ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev.exit: ; preds = %62, %64 + %.11225 = phi i1 [ false, %61 ], [ %.11224, %63 ] store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN4i18n12phonenumbers14IcuRegExpInputE, i64 16), ptr %5, align 8 call void @_ZN6icu_7013UnicodeStringD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %15) #12 br label %66 @@ -1037,7 +1031,7 @@ _ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev.exit: ; preds = %62, %64 resume { ptr, i32 } %.pn.pn.pn 66: ; preds = %4, %_ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev.exit - %.011 = phi i1 [ %.112, %_ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev.exit ], [ false, %4 ] + %.011 = phi i1 [ %.11225, %_ZN5boost10scoped_ptrIN6icu_7012RegexMatcherEED2Ev.exit ], [ false, %4 ] ret i1 %.011 } diff --git a/bench/libquic/optimized/bio_mem.c.ll b/bench/libquic/optimized/bio_mem.c.ll index 5f937a14edc..1084a248327 100644 --- a/bench/libquic/optimized/bio_mem.c.ll +++ b/bench/libquic/optimized/bio_mem.c.ll @@ -17,14 +17,10 @@ entry: cond.true: ; preds = %entry %call = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %buf) #8 - br label %cond.end + br label %if.end cond.false: ; preds = %entry %conv = zext nneg i32 %len to i64 - br label %cond.end - -cond.end: ; preds = %cond.false, %cond.true - %cond = phi i64 [ %call, %cond.true ], [ %conv, %cond.false ] %tobool = icmp eq ptr %buf, null %cmp1 = icmp ne i32 %len, 0 %or.cond = and i1 %tobool, %cmp1 @@ -34,7 +30,8 @@ if.then: ; preds = %cond.end tail call void @ERR_put_error(i32 noundef 17, i32 noundef 0, i32 noundef 111, ptr noundef nonnull @.str, i32 noundef 73) #9 br label %return -if.end: ; preds = %cond.end +if.end: ; preds = %cond.true, %cond.end + %cond16 = phi i64 [ %call, %cond.end.thread ], [ %conv, %cond.end ] %call4 = tail call ptr @BIO_new(ptr noundef nonnull @mem_method) #9 %cmp5 = icmp eq ptr %call4, null br i1 %cmp5, label %return, label %if.end8 @@ -44,9 +41,9 @@ if.end8: ; preds = %if.end %0 = load ptr, ptr %ptr, align 8 %data = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %buf, ptr %data, align 8 - store i64 %cond, ptr %0, align 8 + store i64 %cond16, ptr %0, align 8 %max = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %cond, ptr %max, align 8 + store i64 %cond16, ptr %max, align 8 %flags = getelementptr inbounds nuw i8, ptr %call4, i64 32 %1 = load i32, ptr %flags, align 8 %or = or i32 %1, 512 diff --git a/bench/lief/optimized/SignatureParser.cpp.ll b/bench/lief/optimized/SignatureParser.cpp.ll index 57a35bda46d..7b0581a94fa 100644 --- a/bench/lief/optimized/SignatureParser.cpp.ll +++ b/bench/lief/optimized/SignatureParser.cpp.ll @@ -10412,7 +10412,12 @@ define void @_ZN4LIEF2PE15SignatureParser24parse_pkcs9_signing_timeERNS_12Binary call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false) invoke void @_ZN6spdlog6logger4log_IJRKiS3_S3_EEEvNS_10source_locENS_5level10level_enumEN3fmt2v917basic_string_viewIcEEDpOT_(ptr noundef nonnull align 8 dereferenceable(208) %27, ptr noundef nonnull byval(%"struct.spdlog::source_loc") align 8 %3, i32 noundef 1, ptr nonnull @.str.127, i64 27, ptr noundef nonnull align 4 dereferenceable(4) %24, ptr noundef nonnull align 4 dereferenceable(4) %25, ptr noundef nonnull align 4 dereferenceable(4) %23) - to label %_ZNSt10unique_ptrI17mbedtls_x509_timeSt14default_deleteIS0_EED2Ev.exit unwind label %38 + to label %_ZNSt10unique_ptrI17mbedtls_x509_timeSt14default_deleteIS0_EED2Ev.exit unwind label %.thread + +.thread: ; preds = %.noexc6 + %28 = landingpad { ptr, i32 } + cleanup + br label %_ZNKSt14default_deleteI17mbedtls_x509_timeEclEPS0_.exit.i9 _ZNSt10unique_ptrI17mbedtls_x509_timeSt14default_deleteIS0_EED2Ev.exit: ; preds = %.noexc6 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) @@ -10441,13 +10446,14 @@ _ZNSt10unique_ptrI17mbedtls_x509_timeSt14default_deleteIS0_EED2Ev.exit: ; preds call void @_ZdlPv(ptr noundef nonnull %23) #23 br label %40 -38: ; preds = %.noexc6, %21 +38: ; preds = %21 %39 = landingpad { ptr, i32 } cleanup %.not.i8 = icmp eq i64 %22, 0 br i1 %.not.i8, label %.body, label %_ZNKSt14default_deleteI17mbedtls_x509_timeEclEPS0_.exit.i9 -_ZNKSt14default_deleteI17mbedtls_x509_timeEclEPS0_.exit.i9: ; preds = %38 +_ZNKSt14default_deleteI17mbedtls_x509_timeEclEPS0_.exit.i9: ; preds = %.thread, %38 + %41 = phi { ptr, i32 } [ %28, %.thread ], [ %40, %39 ] call void @_ZdlPv(ptr noundef nonnull %23) #23 br label %.body @@ -10469,7 +10475,7 @@ _ZN2tl8expectedISt10unique_ptrI17mbedtls_x509_timeSt14default_deleteIS2_EE11lief ret void .body: ; preds = %_ZNKSt14default_deleteI17mbedtls_x509_timeEclEPS0_.exit.i9, %38, %19 - %.pn = phi { ptr, i32 } [ %20, %19 ], [ %39, %38 ], [ %39, %_ZNKSt14default_deleteI17mbedtls_x509_timeEclEPS0_.exit.i9 ] + %.pn = phi { ptr, i32 } [ %20, %19 ], [ %39, %38 ], [ %41, %_ZNKSt14default_deleteI17mbedtls_x509_timeEclEPS0_.exit.i9 ] %45 = load i8, ptr %8, align 8 %46 = trunc i8 %45 to i1 br i1 %46, label %47, label %_ZN2tl8expectedISt10unique_ptrI17mbedtls_x509_timeSt14default_deleteIS2_EE11lief_errorsED2Ev.exit14 @@ -11989,7 +11995,7 @@ define linkonce_odr hidden void @_ZN3fmt2v96detail18throw_format_errorEPKc(ptr n 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #22 + tail call void @__cxa_free_exception(ptr nonnull %2) #22 resume { ptr, i32 } %5 } @@ -27216,7 +27222,7 @@ _ZN3fmt2v96detail6bigintmLIiEERS2_T_.exit303: ; preds = %_ZN3fmt2v96detail6b 503: ; preds = %500 %504 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %501) #22 + call void @__cxa_free_exception(ptr nonnull %501) #22 br label %.body _ZN3fmt2v96detail16adjust_precisionERii.exit: ; preds = %495 @@ -41648,7 +41654,7 @@ _ZN3fmt2v96detail9normalizeILi0EyEENS1_8basic_fpIT0_EES5_.exit: ; preds = %.lr.p 118: ; preds = %115 %119 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %116) #22 + tail call void @__cxa_free_exception(ptr nonnull %116) #22 resume { ptr, i32 } %119 _ZN3fmt2v96detail16adjust_precisionERii.exit: ; preds = %110 diff --git a/bench/lightgbm/optimized/linkers_socket.cpp.ll b/bench/lightgbm/optimized/linkers_socket.cpp.ll index d4ef8971f99..6b88eeb1f9a 100644 --- a/bench/lightgbm/optimized/linkers_socket.cpp.ll +++ b/bench/lightgbm/optimized/linkers_socket.cpp.ll @@ -4971,26 +4971,17 @@ _ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE %27 = load i64, ptr %3, align 8 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #26 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %25, ptr noundef %26, i64 noundef %27, ptr noundef nonnull align 1 dereferenceable(1) %5) - to label %31 unwind label %.body + to label %28 unwind label %39 .body: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit - %28 = landingpad { ptr, i32 } - catch ptr null - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #26 - %29 = extractvalue { ptr, i32 } %28, 0 - %30 = call ptr @__cxa_begin_catch(ptr %29) #26 - %.not = icmp eq ptr %24, null - br i1 %.not, label %.thread, label %42 - -31: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #26 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %5) %.not10.i.i.i.i = icmp eq ptr %8, %1 br i1 %.not10.i.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit, label %.lr.ph.i.i.i.i -.lr.ph.i.i.i.i: ; preds = %31, %.lr.ph.i.i.i.i - %.012.i.i.i.i = phi ptr [ %33, %.lr.ph.i.i.i.i ], [ %24, %31 ] - %.0911.i.i.i.i = phi ptr [ %32, %.lr.ph.i.i.i.i ], [ %8, %31 ] +.lr.ph.i.i.i.i: ; preds = %28, %.lr.ph.i.i.i.i + %.012.i.i.i.i = phi ptr [ %33, %.lr.ph.i.i.i.i ], [ %24, %28 ] + %.0911.i.i.i.i = phi ptr [ %32, %.lr.ph.i.i.i.i ], [ %8, %28 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(32) %.012.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %.0911.i.i.i.i) #26 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.0911.i.i.i.i) #26 %32 = getelementptr inbounds nuw i8, ptr %.0911.i.i.i.i, i64 32 @@ -4998,8 +4989,8 @@ _ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE %.not.i.i.i.i = icmp eq ptr %32, %1 br i1 %.not.i.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit, label %.lr.ph.i.i.i.i, !llvm.loop !52 -_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit: ; preds = %.lr.ph.i.i.i.i, %31 - %.0.lcssa.i.i.i.i = phi ptr [ %24, %31 ], [ %33, %.lr.ph.i.i.i.i ] +_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit: ; preds = %.lr.ph.i.i.i.i, %28 + %.0.lcssa.i.i.i.i = phi ptr [ %24, %28 ], [ %33, %.lr.ph.i.i.i.i ] %34 = getelementptr inbounds nuw i8, ptr %.0.lcssa.i.i.i.i, i64 32 %.not10.i.i.i.i27 = icmp eq ptr %1, %7 br i1 %.not10.i.i.i.i27, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_S_relocateEPS5_S8_S8_RS6_.exit33, label %.lr.ph.i.i.i.i28 @@ -5031,35 +5022,33 @@ _ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE store ptr %39, ptr %38, align 8 ret void -.thread: ; preds = %.body - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %25) #26 - br label %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.exit36 - -40: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.exit36 - %41 = landingpad { ptr, i32 } +.thread: ; preds = %39 + %38 = landingpad { ptr, i_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.exit35 } cleanup invoke void @__cxa_end_catch() to label %43 unwind label %44 -42: ; preds = %.body +42: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE11_M_allocateEm.exit + %40 = landingpad { ptr, i32 } + catch ptr null + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #26 + %41 = extractvalue { ptr, i32 } %40, 0 + %42 = call ptr @__cxa_begin_catch(ptr %41) #26 call void @_ZdlPv(ptr noundef nonnull %24) #27 - br label %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.exit36 - -_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.exit36: ; preds = %42, %.thread invoke void @__cxa_rethrow() #29 - to label %47 unwind label %40 + to label %47 unwind label %37 -43: ; preds = %40 - resume { ptr, i32 } %41 +43: ; preds = %37 + resume { ptr, i32 } %38 -44: ; preds = %40 +44: ; preds = %37 %45 = landingpad { ptr, i32 } catch ptr null %46 = extractvalue { ptr, i32 } %45, 0 call void @__clang_call_terminate(ptr %46) #30 unreachable -47: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.exit36 +47: ; preds = %39 unreachable } @@ -5439,7 +5428,7 @@ _ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE store ptr %29, ptr %28, align 8 ret void -30: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.exit35 +30: ; preds = %35 %31 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() @@ -5464,7 +5453,7 @@ _ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE tail call void @__clang_call_terminate(ptr %38) #30 unreachable -39: ; preds = %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE13_M_deallocateEPS5_m.exit35 +39: ; preds = %35 unreachable } diff --git a/bench/llama.cpp/optimized/llama.cpp.ll b/bench/llama.cpp/optimized/llama.cpp.ll index fd1deca2b9c..8efa1ea784f 100644 --- a/bench/llama.cpp/optimized/llama.cpp.ll +++ b/bench/llama.cpp/optimized/llama.cpp.ll @@ -13567,7 +13567,7 @@ lpad3.i.i: ; preds = %if.then.i.i %9 = landingpad { ptr, i32 } cleanup catch ptr @_ZTISt9exception - call void @__cxa_free_exception(ptr %exception.i.i) #47 + call void @__cxa_free_exception(ptr nonnull %exception.i.i) #47 br label %ehcleanup.i if.end.i.i: ; preds = %invoke.cont.i.i @@ -13713,7 +13713,7 @@ lpad42.i.i: ; preds = %if.then40.i.i %14 = landingpad { ptr, i32 } cleanup catch ptr @_ZTISt9exception - call void @__cxa_free_exception(ptr %exception41.i.i) #47 + call void @__cxa_free_exception(ptr nonnull %exception41.i.i) #47 br label %ehcleanup95.i.i if.end44.i.i: ; preds = %invoke.cont37.i.i @@ -15088,7 +15088,7 @@ lpad9.i: ; preds = %if.then.i %150 = landingpad { ptr, i32 } cleanup catch ptr @_ZTISt9exception - call void @__cxa_free_exception(ptr %exception.i) #47 + call void @__cxa_free_exception(ptr nonnull %exception.i) #47 br label %ehcleanup.i if.end.i: ; preds = %invoke.cont7.i @@ -46588,7 +46588,7 @@ invoke.cont4413: ; preds = %sw.default lpad4412: ; preds = %sw.default %1017 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception4411) #47 + tail call void @__cxa_free_exception(ptr nonnull %exception4411) #47 br label %common.resume sw.epilog: ; preds = %_ZNSt6vectorIlSaIlEED2Ev.exit4204, %_ZNSt6vectorIlSaIlEED2Ev.exit3978, %_ZNSt6vectorIlSaIlEED2Ev.exit3712, %_ZNSt6vectorIlSaIlEED2Ev.exit3510, %_ZNSt6vectorIlSaIlEED2Ev.exit3154, %_ZNSt6vectorIlSaIlEED2Ev.exit2794, %_ZNSt6vectorIlSaIlEED2Ev.exit2504, %_ZNSt6vectorIlSaIlEED2Ev.exit2252, %for.inc710, %_ZNSt6vectorI11llama_layerSaIS0_EE6resizeEm.exit4083, %_ZNSt6vectorI11llama_layerSaIS0_EE6resizeEm.exit3811, %_ZNSt6vectorI11llama_layerSaIS0_EE6resizeEm.exit3619, %_ZNSt6vectorI11llama_layerSaIS0_EE6resizeEm.exit3329, %_ZNSt6vectorI11llama_layerSaIS0_EE6resizeEm.exit2917, %_ZNSt6vectorI11llama_layerSaIS0_EE6resizeEm.exit2613, %_ZNSt6vectorI11llama_layerSaIS0_EE6resizeEm.exit2363, %_ZNSt6vectorI11llama_layerSaIS0_EE6resizeEm.exit2117, %_ZNSt6vectorI11llama_layerSaIS0_EE6resizeEm.exit @@ -49999,24 +49999,20 @@ invoke.cont29: ; preds = %call.i8.noexc br i1 %tobool.not, label %if.end36, label %cleanup if.end36: ; preds = %call.i8.noexc, %invoke.cont29, %invoke.cont23 - %call39 = invoke ptr @_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNSA_10_Hash_nodeIS8_Lb1EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %rem.i.i.i, i64 noundef %call.i2.i.i, ptr noundef %call.i, i64 noundef 1) + %call39 = invoke ptr @_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNSA_10_Hash_nodeIS8_Lb1EEEm(ptr noundef nonnull align 8 dereferenceable(56) %this, i64 noundef %rem.i.i.i, i64 noundef %call.i2.i.i, ptr noundef nonnull %call.i, i64 noundef 1) to label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit unwind label %lpad -cleanup: ; preds = %invoke.cont, %land.rhs.i.i.i, %invoke.cont29 - %retval.sroa.0.0.ph = phi ptr [ %7, %invoke.cont29 ], [ %__it.sroa.0.030, %land.rhs.i.i.i ], [ %__it.sroa.0.030, %invoke.cont ] - %tobool.not.i15 = icmp eq ptr %call.i, null - br i1 %tobool.not.i15, label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit, label %if.then.i16 - -if.then.i16: ; preds = %cleanup +cleanup: ; preds = %land.rhs.i.i.i, %invoke.cont, %invoke.cont29 + %retval.sroa.0.0.ph = phi ptr [ %7, %invoke.cont29 ], [ %__it.sroa.0.030, %invoke.cont ], [ %__it.sroa.0.030, %land.rhs.i.i.i ] %second.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i, i64 40 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %second.i.i.i.i.i) #47 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %add.ptr) #47 tail call void @_ZdlPv(ptr noundef nonnull %call.i) #45 br label %_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit -_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit: ; preds = %if.end36, %cleanup, %if.then.i16 - %retval.sroa.4.026 = phi i8 [ 0, %cleanup ], [ 0, %if.then.i16 ], [ 1, %if.end36 ] - %retval.sroa.0.025 = phi ptr [ %retval.sroa.0.0.ph, %cleanup ], [ %retval.sroa.0.0.ph, %if.then.i16 ], [ %call39, %if.end36 ] +_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESaIS8_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb1ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit: ; preds = %if.end36, %if.then.i16 + %retval.sroa.4.026 = phi i8 [ 0, %if.then.i16 ], [ 1, %if.end36 ] + %retval.sroa.0.025 = phi ptr [ %retval.sroa.0.0.ph, %if.then.i16 ], [ %call39, %if.end36 ] %.fca.0.insert = insertvalue { ptr, i8 } poison, ptr %retval.sroa.0.025, 0 %.fca.1.insert = insertvalue { ptr, i8 } %.fca.0.insert, i8 %retval.sroa.4.026, 1 ret { ptr, i8 } %.fca.1.insert @@ -51761,7 +51757,7 @@ return: ; preds = %if.end116, %if.end6 eh.resume: ; preds = %lpad147, %lpad114, %lpad63, %lpad27, %lpad %exception146.sink = phi ptr [ %exception146, %lpad147 ], [ %exception113, %lpad114 ], [ %exception62, %lpad63 ], [ %exception26, %lpad27 ], [ %exception, %lpad ] %.pn = phi { ptr, i32 } [ %62, %lpad147 ], [ %48, %lpad114 ], [ %28, %lpad63 ], [ %13, %lpad27 ], [ %6, %lpad ] - tail call void @__cxa_free_exception(ptr %exception146.sink) #47 + tail call void @__cxa_free_exception(ptr nonnull %exception146.sink) #47 resume { ptr, i32 } %.pn } @@ -53045,7 +53041,7 @@ invoke.cont55: ; preds = %if.else53 lpad54: ; preds = %if.else53 %17 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #47 + tail call void @__cxa_free_exception(ptr nonnull %exception) #47 br label %ehcleanup nrvo.skipdtor: ; preds = %invoke.cont48.invoke @@ -55029,16 +55025,7 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE %3 = load ptr, ptr %__args, align 8 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i) #47 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(40) %add.ptr, ptr noundef %3, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i) - to label %invoke.cont unwind label %lpad.i.i.i - -lpad.i.i.i: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorESaIS9_EE11_M_allocateEm.exit - %4 = landingpad { ptr, i32 } - catch ptr null - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i) #47 - %5 = extractvalue { ptr, i32 } %4, 0 - %6 = call ptr @__cxa_begin_catch(ptr %5) #47 - %tobool.not = icmp eq ptr %cond.i17, null - br i1 %tobool.not, label %if.end.thread, label %if.then.i31 + to label %invoke.cont unwind label %if.then.i31 invoke.cont: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorESaIS9_EE11_M_allocateEm.exit call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i) #47 @@ -55104,21 +55091,19 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE store ptr %add.ptr28, ptr %_M_end_of_storage, align 8 ret void -if.end.thread: ; preds = %lpad.i.i.i - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %add.ptr) #47 - br label %invoke.cont21 - lpad19: ; preds = %invoke.cont21 %10 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %eh.resume unwind label %terminate.lpad -if.then.i31: ; preds = %lpad.i.i.i +if.then.i31: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEP11ggml_tensorESaIS9_EE11_M_allocateEm.exit + %8 = landingpad { ptr, i32 } + catch ptr null + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i.i.i) #47 + %9 = extractvalue { ptr, i32 } %8, 0 + %10 = call ptr @__cxa_begin_catch(ptr %9) #47 call void @_ZdlPv(ptr noundef nonnull %cond.i17) #45 - br label %invoke.cont21 - -invoke.cont21: ; preds = %if.then.i31, %if.end.thread invoke void @__cxa_rethrow() #50 to label %unreachable unwind label %lpad19 @@ -69803,7 +69788,7 @@ lpad188.loopexit.split-lp: ; preds = %invoke.cont202, %if lpad201: ; preds = %if.then200 %92 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #47 + call void @__cxa_free_exception(ptr nonnull %exception) #47 br label %ehcleanup207 if.end204: ; preds = %land.rhs.i.i.i.i, %_ZNKSt8__detail15_Hashtable_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS6_iENS_10_Select1stESt8equal_toIS6_ESt4hashIS6_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_17_Hashtable_traitsILb1ELb0ELb1EEEE13_M_key_equalsERS8_RKNS_16_Hash_node_valueIS9_Lb1EEE.exit.i, %invoke.cont189 @@ -70979,7 +70964,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #46 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #46 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -71085,7 +71070,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #46 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #46 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 diff --git a/bench/llvm/optimized/CFGPrinter.cpp.ll b/bench/llvm/optimized/CFGPrinter.cpp.ll index 704155f7743..0c84268925c 100644 --- a/bench/llvm/optimized/CFGPrinter.cpp.ll +++ b/bench/llvm/optimized/CFGPrinter.cpp.ll @@ -3658,7 +3658,6 @@ _ZN4llvm11GraphTraitsIPKNS_10BasicBlockEE9child_endES3_.exit160: ; preds = %339 .preheader: ; preds = %352, %_ZN4llvm11GraphTraitsIPKNS_10BasicBlockEE9child_endES3_.exit160 %.sink.i.i.i156214 = phi i32 [ 0, %_ZN4llvm11GraphTraitsIPKNS_10BasicBlockEE9child_endES3_.exit160 ], [ %344, %352 ] - %.0.i.i.i151189213 = phi ptr [ %340, %_ZN4llvm11GraphTraitsIPKNS_10BasicBlockEE9child_endES3_.exit160 ], [ %spec.select.i.i.i150, %352 ] %.sroa.5.0.lcssa = phi i32 [ 0, %_ZN4llvm11GraphTraitsIPKNS_10BasicBlockEE9child_endES3_.exit160 ], [ %346, %352 ] %.not197 = icmp eq i32 %.sroa.5.0.lcssa, %.sink.i.i.i156214 br i1 %.not197, label %._crit_edge200, label %.lr.ph199 @@ -3682,14 +3681,14 @@ _ZN4llvm11GraphTraitsIPKNS_10BasicBlockEE9child_endES3_.exit160: ; preds = %339 .lr.ph199: ; preds = %.preheader, %359 %.sroa.5.1198 = phi i32 [ %360, %359 ], [ %.sroa.5.0.lcssa, %.preheader ] - %354 = call noundef ptr @_ZNK4llvm11Instruction12getSuccessorEj(ptr noundef nonnull align 8 dereferenceable(72) %.0.i.i.i151189213, i32 noundef %.sroa.5.1198) #21 + %354 = call noundef ptr @_ZNK4llvm11Instruction12getSuccessorEj(ptr noundef nonnull align 8 dereferenceable(72) %340, i32 noundef %.sroa.5.1198) #21 %355 = load ptr, ptr %16, align 8 %356 = load ptr, ptr %355, align 8 %357 = call noundef zeroext i1 @_ZN4llvm14DOTGraphTraitsIPNS_11DOTFuncInfoEE12isNodeHiddenEPKNS_10BasicBlockEPKS1_(ptr noundef nonnull align 8 dereferenceable(32) %15, ptr noundef %354, ptr noundef %356) br i1 %357, label %359, label %358 358: ; preds = %.lr.ph199 - call void @_ZN4llvm11GraphWriterIPNS_11DOTFuncInfoEE9writeEdgeEPKNS_10BasicBlockEjNS_12SuccIteratorIKNS_11InstructionES5_EE(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef %1, i32 noundef 64, ptr nonnull %.0.i.i.i151189213, i32 %.sroa.5.1198) + call void @_ZN4llvm11GraphWriterIPNS_11DOTFuncInfoEE9writeEdgeEPKNS_10BasicBlockEjNS_12SuccIteratorIKNS_11InstructionES5_EE(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef %1, i32 noundef 64, ptr nonnull %340, i32 %.sroa.5.1198) br label %359 359: ; preds = %.lr.ph199, %358 diff --git a/bench/luau/optimized/SharedCodeAllocator.cpp.ll b/bench/luau/optimized/SharedCodeAllocator.cpp.ll index e317c08f73d..a99de2710c1 100644 --- a/bench/luau/optimized/SharedCodeAllocator.cpp.ll +++ b/bench/luau/optimized/SharedCodeAllocator.cpp.ll @@ -1960,7 +1960,7 @@ _ZNKSt8__detail15_Hash_code_baseISt5arrayIhLm16EESt4pairIKS2_St10unique_ptrIN4Lu %12 = getelementptr inbounds ptr, ptr %11, i64 %10 %13 = load ptr, ptr %12, align 8 %.not.i.i = icmp eq ptr %13, null - br i1 %.not.i.i, label %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit.thread, label %.preheader.i.i + br i1 %.not.i.i, label %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit, label %.preheader.i.i .preheader.i.i: ; preds = %_ZNKSt8__detail15_Hash_code_baseISt5arrayIhLm16EESt4pairIKS2_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS8_EEENS_10_Select1stENS7_19SharedCodeAllocator12ModuleIdHashENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERS4_.exit, %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNSD_16_Hash_node_valueISB_Lb0EEE.exit.i.i %.013.i.i = phi ptr [ %.0.i.i, %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNSD_16_Hash_node_valueISB_Lb0EEE.exit.i.i ], [ %13, %_ZNKSt8__detail15_Hash_code_baseISt5arrayIhLm16EESt4pairIKS2_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS8_EEENS_10_Select1stENS7_19SharedCodeAllocator12ModuleIdHashENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERS4_.exit ] @@ -1968,12 +1968,12 @@ _ZNKSt8__detail15_Hash_code_baseISt5arrayIhLm16EESt4pairIKS2_St10unique_ptrIN4Lu %14 = getelementptr inbounds nuw i8, ptr %.0.i.i, i64 8 %bcmp.i.i.i.i.i.i.i.i.i.i = tail call i32 @bcmp(ptr noundef nonnull align 1 dereferenceable(16) %1, ptr noundef nonnull align 8 dereferenceable(24) %14, i64 16) %.not7.i.i.i.i.i.i.i.i.i.i = icmp eq i32 %bcmp.i.i.i.i.i.i.i.i.i.i, 0 - br i1 %.not7.i.i.i.i.i.i.i.i.i.i, label %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit, label %15 + br i1 %.not7.i.i.i.i.i.i.i.i.i.i, label %_ZNSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit, label %15 15: ; preds = %.preheader.i.i %16 = load ptr, ptr %.0.i.i, align 8 %.not16.i.i = icmp eq ptr %16, null - br i1 %.not16.i.i, label %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit.thread, label %17 + br i1 %.not16.i.i, label %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit, label %17 17: ; preds = %15 %18 = getelementptr inbounds nuw i8, ptr %16, i64 8 @@ -1991,13 +1991,9 @@ _ZNKSt8__detail15_Hash_code_baseISt5arrayIhLm16EESt4pairIKS2_St10unique_ptrIN4Lu _ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNSD_16_Hash_node_valueISB_Lb0EEE.exit.i.i: ; preds = %17 %24 = urem i64 %20, %19 %.not17.i.i = icmp eq i64 %24, %10 - br i1 %.not17.i.i, label %.preheader.i.i, label %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit.thread, !llvm.loop !32 - -_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit: ; preds = %.preheader.i.i - %.not = icmp eq ptr %.0.i.i, null - br i1 %.not, label %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit.thread, label %_ZNSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit + br i1 %.not17.i.i, label %.preheader.i.i, label %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit, !llvm.loop !32 -_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit.thread: ; preds = %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNSD_16_Hash_node_valueISB_Lb0EEE.exit.i.i, %15, %_ZNKSt8__detail15_Hash_code_baseISt5arrayIhLm16EESt4pairIKS2_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS8_EEENS_10_Select1stENS7_19SharedCodeAllocator12ModuleIdHashENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERS4_.exit, %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit +_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit: ; preds = %15, %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE15_M_bucket_indexERKNSD_16_Hash_node_valueISB_Lb0EEE.exit.i.i, %_ZNKSt8__detail15_Hash_code_baseISt5arrayIhLm16EESt4pairIKS2_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS8_EEENS_10_Select1stENS7_19SharedCodeAllocator12ModuleIdHashENS_18_Mod_range_hashingENS_20_Default_ranged_hashELb0EE12_M_hash_codeERS4_.exit store ptr %0, ptr %3, align 8 %25 = getelementptr inbounds nuw i8, ptr %3, i64 8 %26 = tail call noalias noundef nonnull dereferenceable(32) ptr @_Znwm(i64 noundef 32) #25 @@ -2010,14 +2006,14 @@ _ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12Na %29 = invoke ptr @_ZNSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE21_M_insert_unique_nodeEmmPNSD_10_Hash_nodeISB_Lb0EEEm(ptr noundef nonnull align 8 dereferenceable(56) %0, i64 noundef %10, i64 noundef %4, ptr noundef nonnull %26, i64 noundef 1) to label %_ZNSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit unwind label %30 -30: ; preds = %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit.thread +30: ; preds = %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit %31 = landingpad { ptr, i32 } cleanup call void @_ZNSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %3) #21 resume { ptr, i32 } %31 -_ZNSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit: ; preds = %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit.thread, %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit - %.0.i.i.pn = phi ptr [ %.0.i.i, %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit ], [ %29, %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit.thread ] +_ZNSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_Scoped_nodeD2Ev.exit: ; preds = %.preheader.i.i, %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit + %.0.i.i.pn = phi ptr [ %29, %_ZNKSt10_HashtableISt5arrayIhLm16EESt4pairIKS1_St10unique_ptrIN4Luau7CodeGen12NativeModuleESt14default_deleteIS7_EEESaISB_ENSt8__detail10_Select1stESt8equal_toIvENS6_19SharedCodeAllocator12ModuleIdHashENSD_18_Mod_range_hashingENSD_20_Default_ranged_hashENSD_20_Prime_rehash_policyENSD_17_Hashtable_traitsILb0ELb0ELb1EEEE12_M_find_nodeEmRS3_m.exit ], [ %.0.i.i, %.preheader.i.i ] %.0 = getelementptr inbounds nuw i8, ptr %.0.i.i.pn, i64 24 ret ptr %.0 } diff --git a/bench/lvgl/optimized/lv_fragment_manager.ll b/bench/lvgl/optimized/lv_fragment_manager.ll index d9bb547c757..7d4f0e810d2 100644 --- a/bench/lvgl/optimized/lv_fragment_manager.ll +++ b/bench/lvgl/optimized/lv_fragment_manager.ll @@ -396,21 +396,14 @@ define void @lv_fragment_manager_push(ptr noundef %0, ptr noundef %1, ptr nounde tail call void @lv_fragment_delete_obj(ptr noundef %.val) #3 br label %9 -9: ; preds = %6, %3 - %.not.i = icmp eq ptr %0, null - br i1 %.not.i, label %.preheader.i, label %10 - -.preheader.i: ; preds = %9, %.preheader.i - br label %.preheader.i - -10: ; preds = %9 +9: ; preds = %3, %6 %.not21.i = icmp eq ptr %1, null br i1 %.not21.i, label %.preheader23.i, label %11 -.preheader23.i: ; preds = %10, %.preheader23.i +.preheader23.i: ; preds = %9, %.preheader23.i br label %.preheader23.i -11: ; preds = %10 +11: ; preds = %9 %12 = getelementptr inbounds nuw i8, ptr %1, i64 8 %13 = load ptr, ptr %12, align 8, !tbaa !18 %14 = icmp eq ptr %13, null @@ -438,7 +431,7 @@ define void @lv_fragment_manager_push(ptr noundef %0, ptr noundef %1, ptr nounde br i1 %.not22.i, label %fragment_attach.exit, label %24 24: ; preds = %15 - tail call void %23(ptr noundef nonnull %1) #3 + tail call void %22(ptr noundef nonnull %1) #3 br label %fragment_attach.exit fragment_attach.exit: ; preds = %15, %24 diff --git a/bench/meilisearch-rs/optimized/2eqafq69fd46y14a.ll b/bench/meilisearch-rs/optimized/2eqafq69fd46y14a.ll index afa2256cbfe..1c039c8b54a 100644 --- a/bench/meilisearch-rs/optimized/2eqafq69fd46y14a.ll +++ b/bench/meilisearch-rs/optimized/2eqafq69fd46y14a.ll @@ -15520,19 +15520,17 @@ define internal fastcc void @"_ZN4core3ptr187drop_in_place$LT$alloc..boxed..Box$ 3: ; preds = %0 %4 = landingpad { ptr, i32 } cleanup - %5 = icmp ne ptr %.0.val, null - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 - %7 = load i64, ptr %6, align 8, !range !2940, !invariant.load !5 - %8 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 - %9 = load i64, ptr %8, align 8, !range !2941, !invariant.load !5 - %10 = icmp ult i64 %9, -9223372036854775807 - tail call void @llvm.assume(i1 %10) - %11 = icmp eq i64 %7, 0 - br i1 %11, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h5a4519f59f85dc73E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.exit.i" + %5 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 + %6 = load i64, ptr %5, align 8, !range !2940, !invariant.load !5 + %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 + %7 = load i64, ptr %6, align 8, !range !2941, !invariant.load !5 + %8 = icmp ult i64 %8, -9223372036854775807 + tail call void @llvm.assume(i1 %9) + %10 = icmp eq i64 %6, 0 + br i1 %10, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h5a4519f59f85dc73E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.exit.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.exit.i": ; preds = %3 - tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef %7, i64 noundef range(i64 0, -9223372036854775807) %9) #43 + tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef %6, i64 noundef range(i64 0, -9223372036854775807) %8) #43 br label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h5a4519f59f85dc73E.exit" 12: ; preds = %0 diff --git a/bench/meilisearch-rs/optimized/48hhebymxr5ff2nk.ll b/bench/meilisearch-rs/optimized/48hhebymxr5ff2nk.ll index 23677257387..85d4c06fbca 100644 --- a/bench/meilisearch-rs/optimized/48hhebymxr5ff2nk.ll +++ b/bench/meilisearch-rs/optimized/48hhebymxr5ff2nk.ll @@ -7006,7 +7006,7 @@ define hidden noundef nonnull align 8 ptr @"_ZN12clap_builder5error14Error$LT$F$ .noexc12: ; preds = %12 %19 = extractvalue { ptr, ptr } %18, 0 %20 = extractvalue { ptr, ptr } %18, 1 - %21 = invoke noundef zeroext i1 @"_ZN31_$LT$dyn$u20$core..any..Any$GT$2is17h52e770dfd1bf538eE.llvm.815708219594649150"(ptr noundef nonnull align 1 %19, ptr noalias noundef readonly align 8 dereferenceable(24) %20) + %21 = invoke noundef zeroext i1 @"_ZN31_$LT$dyn$u20$core..any..Any$GT$2is17h52e770dfd1bf538eE.llvm.815708219594649150"(ptr noundef nonnull align 1 %19, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %20) to label %.noexc13 unwind label %23 .noexc13: ; preds = %.noexc12 @@ -49071,19 +49071,17 @@ define internal fastcc void @"_ZN4core3ptr118drop_in_place$LT$alloc..boxed..Box$ 3: ; preds = %0 %4 = landingpad { ptr, i32 } cleanup - %5 = icmp ne ptr %.0.val, null - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 - %7 = load i64, ptr %6, align 8, !range !573, !invariant.load !4 - %8 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 - %9 = load i64, ptr %8, align 8, !range !390, !invariant.load !4 - %10 = icmp ult i64 %9, -9223372036854775807 - tail call void @llvm.assume(i1 %10) - %11 = icmp eq i64 %7, 0 - br i1 %11, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h57cc7c9253cd0148E.exit", label %12 + %5 = getelementptr inbounds nuw i8, ptr %.8.val, i64 8 + %6 = load i64, ptr %5, align 8, !range !573, !invariant.load !4 + %6 = getelementptr inbounds nuw i8, ptr %.8.val, i64 16 + %7 = load i64, ptr %6, align 8, !range !390, !invariant.load !4 + %8 = icmp ult i64 %8, -9223372036854775807 + tail call void @llvm.assume(i1 %9) + %10 = icmp eq i64 %6, 0 + br i1 %10, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h57cc7c9253cd0148E.exit", label %11 12: ; preds = %3 - tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef range(i64 1, -9223372036854775808) %7, i64 noundef range(i64 1, -9223372036854775807) %9) #43 + tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef range(i64 1, -9223372036854775808) %6, i64 noundef range(i64 1, -9223372036854775807) %8) #43 br label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h57cc7c9253cd0148E.exit" 13: ; preds = %0 @@ -98669,7 +98667,7 @@ define hidden void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V %43 = load i16, ptr %41, align 2, !alias.scope !18586, !noundef !4 %44 = extractvalue { ptr, ptr } %38, 1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) - invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %12, ptr noalias noundef readonly align 8 dereferenceable(24) %44) + invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %44) to label %47 unwind label %45 45: ; preds = %40 @@ -98830,7 +98828,7 @@ define hidden void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V %95 = load i16, ptr %93, align 2, !alias.scope !18598, !noundef !4 %96 = extractvalue { ptr, ptr } %91, 1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) - invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %9, ptr noalias noundef readonly align 8 dereferenceable(24) %96) + invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %96) to label %99 unwind label %97 97: ; preds = %92 @@ -99016,7 +99014,7 @@ define hidden void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V %41 = extractvalue { ptr, ptr } %38, 0 %42 = add nuw nsw i64 %.sroa.6.0126, 1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) - invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %12, ptr noalias noundef readonly align 8 dereferenceable(24) %41) + invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %41) to label %43 unwind label %25 43: ; preds = %40 @@ -99172,7 +99170,7 @@ define hidden void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V %91 = extractvalue { ptr, ptr } %89, 0 %92 = add nuw nsw i64 %.sroa.7.0125, 1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) - invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %9, ptr noalias noundef readonly align 8 dereferenceable(24) %91) + invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %91) to label %95 unwind label %.loopexit 93: ; preds = %95 @@ -99354,7 +99352,7 @@ define hidden void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V %40 = extractvalue { ptr, ptr } %37, 0 %41 = add nuw nsw i64 %.sroa.6.0126, 1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) - invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %12, ptr noalias noundef readonly align 8 dereferenceable(24) %40) + invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %40) to label %42 unwind label %25 42: ; preds = %39 @@ -99506,7 +99504,7 @@ define hidden void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V %87 = extractvalue { ptr, ptr } %85, 0 %88 = add nuw nsw i64 %.sroa.7.0125, 1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) - invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %9, ptr noalias noundef readonly align 8 dereferenceable(24) %87) + invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hdbaa59186bb9a20dE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %87) to label %91 unwind label %.loopexit 89: ; preds = %91 diff --git a/bench/meshlab/optimized/filter_color_projection.cpp.ll b/bench/meshlab/optimized/filter_color_projection.cpp.ll index 665faf18461..fb5e13fd279 100644 --- a/bench/meshlab/optimized/filter_color_projection.cpp.ll +++ b/bench/meshlab/optimized/filter_color_projection.cpp.ll @@ -6336,18 +6336,15 @@ define void @_ZN3vcg8PullPushER6QImagej(ptr noundef nonnull align 8 dereferencea _ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exitthread-pre-split.i: ; preds = %.lr.ph.i.i.i.i %.pr.i = load ptr, ptr %2, align 8 - br label %_ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exit.i + %.not.i.i.i = icmp eq ptr %.pr.i, null + br i1 %.not.i.i.i, label %_ZNSt6vectorI6QImageSaIS0_EED2Ev.exit, label %_ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exit.i.thread -_ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exit.i: ; preds = %_ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exitthread-pre-split.i, %._crit_edge +_ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exit.i: ; preds = %._crit_edge, %_ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exitthread-pre-split.i %55 = phi ptr [ %.pr.i, %_ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exitthread-pre-split.i ], [ %44, %._crit_edge ] - %.not.i.i.i = icmp eq ptr %55, null - br i1 %.not.i.i.i, label %_ZNSt6vectorI6QImageSaIS0_EED2Ev.exit, label %56 - -56: ; preds = %_ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exit.i call void @_ZdlPv(ptr noundef nonnull %55) #32 br label %_ZNSt6vectorI6QImageSaIS0_EED2Ev.exit -_ZNSt6vectorI6QImageSaIS0_EED2Ev.exit: ; preds = %_ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exit.i, %56 +_ZNSt6vectorI6QImageSaIS0_EED2Ev.exit: ; preds = %_ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exit.i, %_ZSt8_DestroyIP6QImageS0_EvT_S2_RSaIT0_E.exit.i ret void } diff --git a/bench/meshlab/optimized/filter_screened_poisson.cpp.ll b/bench/meshlab/optimized/filter_screened_poisson.cpp.ll index 27435e6db25..4d54a665a48 100644 --- a/bench/meshlab/optimized/filter_screened_poisson.cpp.ll +++ b/bench/meshlab/optimized/filter_screened_poisson.cpp.ll @@ -22045,12 +22045,8 @@ _ZNSt6vectorI16CoredVertexIndexSaIS0_EE6resizeEm.exit: ; preds = %31, %33, %35, 51: ; preds = %31, %_ZNSt6vectorIiSaIiEEC2EmRKS0_.exit %52 = landingpad { ptr, i32 } cleanup - %.not.i.i.i = icmp eq ptr %.sroa.0.0, null - br i1 %.not.i.i.i, label %_ZNSt6vectorIiSaIiEED2Ev.exit, label %53 - -53: ; preds = %51 call void @_ZdlPv(ptr noundef nonnull %.sroa.0.0) #44 - br label %_ZNSt6vectorIiSaIiEED2Ev.exit + resume { ptr, i32 } %52 _ZNSt6vectorIiSaIiEED2Ev.exit24: ; preds = %.lr.ph, %_ZNSt6vectorI16CoredVertexIndexSaIS0_EE6resizeEm.exit, %19 %.019 = phi i32 [ 0, %19 ], [ 1, %_ZNSt6vectorI16CoredVertexIndexSaIS0_EE6resizeEm.exit ], [ 1, %.lr.ph ] @@ -22060,9 +22056,6 @@ _ZNSt6vectorIiSaIiEED2Ev.exit24: ; preds = %.lr.ph, %_ZNSt6vect 54: ; preds = %2, %_ZNSt6vectorIiSaIiEED2Ev.exit24 %.1 = phi i32 [ %.019, %_ZNSt6vectorIiSaIiEED2Ev.exit24 ], [ 0, %2 ] ret i32 %.1 - -_ZNSt6vectorIiSaIiEED2Ev.exit: ; preds = %53, %51 - resume { ptr, i32 } %52 } ; Function Attrs: mustprogress nounwind uwtable diff --git a/bench/meshlab/optimized/io_expe.cpp.ll b/bench/meshlab/optimized/io_expe.cpp.ll index 88dda5ad7b9..ee572e4710e 100644 --- a/bench/meshlab/optimized/io_expe.cpp.ll +++ b/bench/meshlab/optimized/io_expe.cpp.ll @@ -7125,7 +7125,7 @@ _ZeqRK10QByteArrayPKc.exit: ; preds = %50 .loopexit.split-lp: ; preds = %32 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup - br label %_ZNSt6vectorIfSaIfEED2Ev.exit + br label %145 67: ; preds = %_ZeqRK10QByteArrayPKc.exit %68 = load ptr, ptr %2, align 8 @@ -7277,17 +7277,18 @@ _ZNSt6vectorIhSaIhEED2Ev.exit: ; preds = %_ZNSt6vectorIfSaIfE call void @_ZN11QDataStreamD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #22 ret i32 0 -_ZNSt6vectorIfSaIfEED2Ev.exit: ; preds = %.loopexit87, %.loopexit.split-lp, %29, %25, %65 - %.pn = phi { ptr, i32 } [ %66, %65 ], [ %26, %29 ], [ %26, %25 ], [ %lpad.loopexit, %.loopexit87 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] +_ZNSt6vectorIfSaIfEED2Ev.exit: ; preds = %.loopexit87, %29, %25, %65 + %.pn = phi { ptr, i32 } [ %66, %65 ], [ %26, %29 ], [ %26, %25 ], [ %lpad.loopexit, %.loopexit87 ] %.not.i.i.i63 = icmp eq ptr %.sroa.073.0, null br i1 %.not.i.i.i63, label %_ZNSt6vectorIhSaIhEED2Ev.exit64, label %145 -145: ; preds = %_ZNSt6vectorIfSaIfEED2Ev.exit +145: ; preds = %.loopexit.split-lp, %_ZNSt6vectorIfSaIfEED2Ev.exit + %.pn110 = phi { ptr, i32 } [ %lpad.loopexit.split-lp, %_ZNSt6vectorIfSaIfEED2Ev.exit.thread ], [ %.pn, %_ZNSt6vectorIfSaIfEED2Ev.exit ] call void @_ZdlPv(ptr noundef nonnull %.sroa.073.0) #21 br label %_ZNSt6vectorIhSaIhEED2Ev.exit64 _ZNSt6vectorIhSaIhEED2Ev.exit64: ; preds = %145, %_ZNSt6vectorIfSaIfEED2Ev.exit, %63 - %.pn.pn = phi { ptr, i32 } [ %64, %63 ], [ %.pn, %_ZNSt6vectorIfSaIfEED2Ev.exit ], [ %.pn, %145 ] + %.pn.pn = phi { ptr, i32 } [ %64, %63 ], [ %.pn, %_ZNSt6vectorIfSaIfEED2Ev.exit ], [ %.pn110, %145 ] call void @_ZN11QDataStreamD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #22 resume { ptr, i32 } %.pn.pn } diff --git a/bench/minetest/optimized/COpenGLDriver.cpp.ll b/bench/minetest/optimized/COpenGLDriver.cpp.ll index 94e32e0da44..aabbcf30d7b 100644 --- a/bench/minetest/optimized/COpenGLDriver.cpp.ll +++ b/bench/minetest/optimized/COpenGLDriver.cpp.ll @@ -5628,18 +5628,11 @@ if.then127: ; preds = %if.end121 %14 = load ptr, ptr %CacheHandler128, align 8, !tbaa !6 tail call void @_ZN3irr5video19COpenGLCacheHandler22setClientActiveTextureEj(ptr noundef nonnull align 8 dereferenceable(216) %14, i32 noundef 33986) #24 tail call void @glEnableClientState(i32 noundef 32888) #24 - br i1 %tobool5.not, label %if.then137, label %if.else139 - -if.then137: ; preds = %if.then127 %Binormal = getelementptr inbounds nuw i8, ptr %vertices, i64 48 tail call void @glTexCoordPointer(i32 noundef 3, i32 noundef 5126, i32 noundef 60, ptr noundef nonnull %Binormal) #24 br label %sw.epilog143 -if.else139: ; preds = %if.then127 - tail call void @glTexCoordPointer(i32 noundef 3, i32 noundef 5126, i32 noundef 60, ptr noundef nonnull inttoptr (i64 48 to ptr)) #24 - br label %sw.epilog143 - -sw.epilog143: ; preds = %if.else139, %if.then137, %if.end121, %if.else103, %if.then101, %if.end92, %if.else74, %if.then71, %land.lhs.true63, %if.end60, %if.end49, %if.then38 +if.else139: ; preds = %if.then127, %if.end121, %if.else103, %if.then101, %if.end92, %if.else74, %if.then71, %land.lhs.true63, %if.end60, %if.end49, %if.then38 tail call void @_ZN3irr5video13COpenGLDriver11renderArrayEPKvjNS_5scene16E_PRIMITIVE_TYPEENS0_12E_INDEX_TYPEE(ptr noundef nonnull align 8 dereferenceable(4344) %this, ptr noundef %indexList, i32 noundef %primitiveCount, i32 noundef %pType, i32 noundef %iType) %MaxTextureUnits146 = getelementptr inbounds nuw i8, ptr %this, i64 1731 %15 = load i8, ptr %MaxTextureUnits146, align 1, !tbaa !151 diff --git a/bench/minetest/optimized/mapblock.cpp.ll b/bench/minetest/optimized/mapblock.cpp.ll index 5fefa0e6ae2..e43e5bf3913 100644 --- a/bench/minetest/optimized/mapblock.cpp.ll +++ b/bench/minetest/optimized/mapblock.cpp.ll @@ -7067,7 +7067,7 @@ lpad385: ; preds = %for.body382 cleanup %276 = extractvalue { ptr, i32 } %275, 0 %277 = extractvalue { ptr, i32 } %275, 1 - br label %ehcleanup644 + br label %delete.notnull.i.i1246 if.then394: ; preds = %for.cond.cleanup381 %cmp396 = icmp ugt i8 %version, 8 @@ -7106,7 +7106,7 @@ call.i1080.noexc: ; preds = %_ZTW13warningstream %cond-lvalue.i = getelementptr inbounds nuw i8, ptr %279, i64 %cond-lvalue.v.i %282 = load ptr, ptr %cond-lvalue.i, align 8, !tbaa !97 %tobool.not.i.i1081 = icmp eq ptr %282, null - br i1 %tobool.not.i.i1081, label %cleanup643, label %if.then.i.i1082 + br i1 %tobool.not.i.i1081, label %delete.notnull.i.i, label %if.then.i.i1082 if.then.i.i1082: ; preds = %call.i1080.noexc %call1.i.i.i1084 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %282, ptr noundef nonnull @.str.35, i64 noundef 31) @@ -7115,7 +7115,7 @@ if.then.i.i1082: ; preds = %call.i1080.noexc invoke.cont404: ; preds = %if.then.i.i1082 %.pr = load ptr, ptr %cond-lvalue.i, align 8, !tbaa !97 %tobool.not.i1085 = icmp eq ptr %.pr, null - br i1 %tobool.not.i1085, label %cleanup643, label %if.then.i1086 + br i1 %tobool.not.i1085, label %delete.notnull.i.i, label %if.then.i1086 if.then.i1086: ; preds = %invoke.cont404 %call1.i.i1087 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.pr, ptr noundef nonnull @.str.36, i64 noundef 39) @@ -7124,7 +7124,7 @@ if.then.i1086: ; preds = %invoke.cont404 invoke.cont406: ; preds = %if.then.i1086 %.pr1355 = load ptr, ptr %cond-lvalue.i, align 8, !tbaa !97 %tobool.not.i1088 = icmp eq ptr %.pr1355, null - br i1 %tobool.not.i1088, label %cleanup643, label %if.then.i1089 + br i1 %tobool.not.i1088, label %delete.notnull.i.i, label %if.then.i1089 if.then.i1089: ; preds = %invoke.cont406 %vtable.i1248 = load ptr, ptr %.pr1355, align 8, !tbaa !95 @@ -7172,14 +7172,14 @@ _ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc.exit.i: ; preds = %.noexc1253, %if call1.i.noexc: ; preds = %_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc.exit.i %call.i.i12511256 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %call1.i1255) - to label %cleanup643 unwind label %lpad398 + to label %delete.notnull.i.i unwind label %lpad398 lpad398: ; preds = %call1.i.noexc, %_ZNKSt9basic_iosIcSt11char_traitsIcEE5widenEc.exit.i, %.noexc1253, %if.end.i.i.i, %if.then.i.i.i, %if.then.i1086, %if.then.i.i1082, %_ZTW13warningstream.exit1078, %if.then397 %287 = landingpad { ptr, i32 } cleanup %288 = extractvalue { ptr, i32 } %287, 0 %289 = extractvalue { ptr, i32 } %287, 1 - br label %ehcleanup644 + br label %delete.notnull.i.i1246 if.end412: ; preds = %invoke.cont399 %cmp414 = icmp ugt i8 %version, 14 @@ -7195,7 +7195,7 @@ lpad416: ; preds = %if.then421, %if.the cleanup %291 = extractvalue { ptr, i32 } %290, 0 %292 = extractvalue { ptr, i32 } %290, 1 - br label %ehcleanup644 + br label %delete.notnull.i.i1246 if.end418: ; preds = %if.then415 %cmp420 = icmp ugt i8 %version, 16 @@ -7351,7 +7351,7 @@ ehcleanup486: ; preds = %cleanup.action462, %ehselector.slot.37 = extractvalue { ptr, i32 } %.pn774, 1 call void @_ZN13NameIdMappingD2Ev(ptr noundef nonnull align 8 dereferenceable(112) %nimap) #20 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %nimap) #20 - br label %ehcleanup644 + br label %delete.notnull.i.i1246 if.end488: ; preds = %invoke.cont485, %for.cond.cleanup381 %m_gamedef489 = getelementptr inbounds nuw i8, ptr %this, i64 32 @@ -7776,11 +7776,11 @@ if.end635: ; preds = %cleanup630, %if.end %exitcond1430.not = icmp eq i64 %indvars.iv.next1428, 4096 br i1 %exitcond1430.not, label %cleanup643, label %for.body497, !llvm.loop !251 -cleanup643: ; preds = %if.end635, %call1.i.noexc, %invoke.cont406, %invoke.cont404, %call.i1080.noexc +cleanup643: ; preds = %if.end635 %isnull.i.i = icmp eq ptr %storemerge.i, null br i1 %isnull.i.i, label %_ZN6BufferIhED2Ev.exit, label %delete.notnull.i.i -delete.notnull.i.i: ; preds = %cleanup643 +delete.notnull.i.i: ; preds = %call.i1080.noexc, %invoke.cont404, %invoke.cont406, %call1.i.noexc, %cleanup643 call void @_ZdaPv(ptr noundef nonnull %storemerge.i) #29 br label %_ZN6BufferIhED2Ev.exit @@ -7793,19 +7793,23 @@ ehcleanup642: ; preds = %ehcleanup588, %ehcl %ehselector.slot.43 = extractvalue { ptr, i32 } %.pn782.pn.pn, 1 br label %ehcleanup644 -ehcleanup644: ; preds = %ehcleanup642, %ehcleanup486, %lpad416, %lpad398, %lpad385, %ehcleanup375, %ehcleanup232, %ehcleanup61 - %ehselector.slot.44 = phi i32 [ %ehselector.slot.4, %ehcleanup61 ], [ %277, %lpad385 ], [ %ehselector.slot.43, %ehcleanup642 ], [ %ehselector.slot.37, %ehcleanup486 ], [ %292, %lpad416 ], [ %289, %lpad398 ], [ %ehselector.slot.20, %ehcleanup232 ], [ %ehselector.slot.35, %ehcleanup375 ] - %exn.slot.44 = phi ptr [ %exn.slot.4, %ehcleanup61 ], [ %276, %lpad385 ], [ %exn.slot.43, %ehcleanup642 ], [ %exn.slot.37, %ehcleanup486 ], [ %291, %lpad416 ], [ %288, %lpad398 ], [ %exn.slot.20, %ehcleanup232 ], [ %exn.slot.35, %ehcleanup375 ] +ehcleanup644: ; preds = %ehcleanup642, %ehcleanup375, %ehcleanup232, %ehcleanup61 + %ehselector.slot.44 = phi i32 [ %ehselector.slot.4, %ehcleanup61 ], [ %ehselector.slot.43, %ehcleanup642 ], [ %ehselector.slot.20, %ehcleanup232 ], [ %ehselector.slot.35, %ehcleanup375 ] + %exn.slot.44 = phi ptr [ %exn.slot.4, %ehcleanup61 ], [ %exn.slot.43, %ehcleanup642 ], [ %exn.slot.20, %ehcleanup232 ], [ %exn.slot.35, %ehcleanup375 ] %isnull.i.i1245 = icmp eq ptr %storemerge.i, null br i1 %isnull.i.i1245, label %_ZN6BufferIhED2Ev.exit1247, label %delete.notnull.i.i1246 -delete.notnull.i.i1246: ; preds = %ehcleanup644 +delete.notnull.i.i1246: ; preds = %lpad385, %lpad398, %lpad416, %ehcleanup486, %ehcleanup644 + %exn.slot.4457 = phi ptr [ %exn.slot.44, %ehcleanup644 ], [ %288, %lpad398 ], [ %291, %lpad416 ], [ %exn.slot.37, %ehcleanup486 ], [ %276, %lpad385 ] + %ehselector.slot.4455 = phi i32 [ %ehselector.slot.44, %ehcleanup644 ], [ %289, %lpad398 ], [ %292, %lpad416 ], [ %ehselector.slot.37, %ehcleanup486 ], [ %277, %lpad385 ] call void @_ZdaPv(ptr noundef nonnull %storemerge.i) #29 br label %_ZN6BufferIhED2Ev.exit1247 _ZN6BufferIhED2Ev.exit1247: ; preds = %delete.notnull.i.i1246, %ehcleanup644 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn.slot.44, 0 - %lpad.val653 = insertvalue { ptr, i32 } %lpad.val, i32 %ehselector.slot.44, 1 + %lpad.val = phi ptr [ %exn.slot.4457, %delete.notnull.i.i1246 ], [ %exn.slot.44, %ehcleanup644 ] + %lpad.val653 = phi i32 [ %ehselector.slot.4455, %delete.notnull.i.i1246 ], [ %ehselector.slot.44, %ehcleanup644 ] + %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn.slot.4458, 0 + %lpad.val653 = insertvalue { ptr, i32 } %lpad.val, i32 %ehselector.slot.4456, 1 resume { ptr, i32 } %lpad.val653 terminate.lpad: ; preds = %lpad358 diff --git a/bench/mitsuba3/optimized/bitmap.cpp.ll b/bench/mitsuba3/optimized/bitmap.cpp.ll index 88eb5baaca0..9c64987a54a 100644 --- a/bench/mitsuba3/optimized/bitmap.cpp.ll +++ b/bench/mitsuba3/optimized/bitmap.cpp.ll @@ -5390,18 +5390,14 @@ _ZN7mitsuba3refINS_6StructEEaSERKS2_.exit: ; preds = %_ZNSt3__16vectorINS 59: ; preds = %56, %52, %48, %_ZN7mitsuba3refINS_6StructEEaSERKS2_.exit %60 = landingpad { ptr, i32 } cleanup - %.not.i13 = icmp eq ptr %45, null - br i1 %.not.i13, label %_ZN7mitsuba3refINS_6BitmapEED2Ev.exit, label %61 - -61: ; preds = %59 call void @_ZNK7mitsuba6Object7dec_refEb(ptr noundef nonnull align 8 dereferenceable(12) %45, i1 noundef zeroext true) #38 br label %_ZN7mitsuba3refINS_6BitmapEED2Ev.exit 62: ; preds = %56 ret void -_ZN7mitsuba3refINS_6BitmapEED2Ev.exit: ; preds = %61, %59, %57 - %.pn11 = phi { ptr, i32 } [ %58, %57 ], [ %60, %59 ], [ %60, %61 ] +_ZN7mitsuba3refINS_6BitmapEED2Ev.exit: ; preds = %57, %59 + %.pn11 = phi { ptr, i32 } [ %60, %59 ], [ %58, %57 ] resume { ptr, i32 } %.pn11 } @@ -23979,7 +23975,7 @@ define linkonce_odr hidden void @_ZNSt3__120__throw_length_errorB8ne190000EPKc(p 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #38 + tail call void @__cxa_free_exception(ptr nonnull %2) #38 resume { ptr, i32 } %5 } @@ -26671,7 +26667,7 @@ define linkonce_odr hidden void @_ZNSt3__111__introsortINS_17_ClassicAlgPolicyER br i1 %116, label %119, label %117 117: ; preds = %89 - %118 = tail call noundef ptr @_ZNSt3__131__partition_with_equals_on_leftB8ne190000INS_17_ClassicAlgPolicyEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS_6__lessIvvEEEET0_SC_SC_T1_(ptr noundef nonnull %.073, ptr noundef %.074.ph, ptr noundef nonnull align 1 dereferenceable(1) %2) + %118 = tail call noundef ptr @_ZNSt3__131__partition_with_equals_on_leftB8ne190000INS_17_ClassicAlgPolicyEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS_6__lessIvvEEEET0_SC_SC_T1_(ptr noundef nonnull %.073, ptr noundef nonnull %.074.ph, ptr noundef nonnull align 1 dereferenceable(1) %2) br label %.backedge.backedge .backedge.backedge: ; preds = %117, %129 @@ -26679,7 +26675,7 @@ define linkonce_odr hidden void @_ZNSt3__111__introsortINS_17_ClassicAlgPolicyER br label %.backedge, !llvm.loop !304 119: ; preds = %88, %89 - %120 = tail call { ptr, i8 } @_ZNSt3__132__partition_with_equals_on_rightB8ne190000INS_17_ClassicAlgPolicyEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS_6__lessIvvEEEENS_4pairIT0_bEESD_SD_T1_(ptr noundef %.073, ptr noundef %.074.ph, ptr noundef nonnull align 1 dereferenceable(1) %2) + %120 = tail call { ptr, i8 } @_ZNSt3__132__partition_with_equals_on_rightB8ne190000INS_17_ClassicAlgPolicyEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEERNS_6__lessIvvEEEENS_4pairIT0_bEESD_SD_T1_(ptr noundef %.073, ptr noundef nonnull %.074.ph, ptr noundef nonnull align 1 dereferenceable(1) %2) %121 = extractvalue { ptr, i8 } %120, 0 %122 = extractvalue { ptr, i8 } %120, 1 %123 = trunc i8 %122 to i1 @@ -26688,7 +26684,7 @@ define linkonce_odr hidden void @_ZNSt3__111__introsortINS_17_ClassicAlgPolicyER 124: ; preds = %119 %125 = tail call noundef zeroext i1 @_ZNSt3__127__insertion_sort_incompleteB8ne190000INS_17_ClassicAlgPolicyERNS_6__lessIvvEEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEbT1_SC_T0_(ptr noundef %.073, ptr noundef %121, ptr noundef nonnull align 1 dereferenceable(1) %2) %126 = getelementptr inbounds nuw i8, ptr %121, i64 24 - %127 = tail call noundef zeroext i1 @_ZNSt3__127__insertion_sort_incompleteB8ne190000INS_17_ClassicAlgPolicyERNS_6__lessIvvEEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEbT1_SC_T0_(ptr noundef nonnull %126, ptr noundef %.074.ph, ptr noundef nonnull align 1 dereferenceable(1) %2) + %127 = tail call noundef zeroext i1 @_ZNSt3__127__insertion_sort_incompleteB8ne190000INS_17_ClassicAlgPolicyERNS_6__lessIvvEEPNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEEEbT1_SC_T0_(ptr noundef nonnull %126, ptr noundef nonnull %.074.ph, ptr noundef nonnull align 1 dereferenceable(1) %2) br i1 %127, label %128, label %129 128: ; preds = %124 diff --git a/bench/msgpack/optimized/asio_send_recv.cpp.ll b/bench/msgpack/optimized/asio_send_recv.cpp.ll index 0e8caeadc13..74b12da88d8 100644 --- a/bench/msgpack/optimized/asio_send_recv.cpp.ll +++ b/bench/msgpack/optimized/asio_send_recv.cpp.ll @@ -5421,7 +5421,7 @@ define linkonce_odr dso_local void @_ZN5boost15throw_exceptionINS_6system12syste 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #31 + tail call void @__cxa_free_exception(ptr nonnull %2) #31 resume { ptr, i32 } %5 } @@ -5615,7 +5615,7 @@ define linkonce_odr dso_local void @_ZNK5boost10wrapexceptINS_6system12system_er 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #31 + tail call void @__cxa_free_exception(ptr nonnull %2) #31 resume { ptr, i32 } %5 } @@ -6393,7 +6393,7 @@ define linkonce_odr dso_local void @_ZN5boost15throw_exceptionINS_4asio21invalid 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #31 + tail call void @__cxa_free_exception(ptr nonnull %2) #31 resume { ptr, i32 } %5 } @@ -6416,7 +6416,7 @@ define linkonce_odr dso_local void @_ZN5boost15throw_exceptionINS_4asio22service 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #31 + tail call void @__cxa_free_exception(ptr nonnull %2) #31 resume { ptr, i32 } %5 } @@ -6550,7 +6550,7 @@ define linkonce_odr dso_local void @_ZNK5boost10wrapexceptINS_4asio21invalid_ser 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #31 + tail call void @__cxa_free_exception(ptr nonnull %2) #31 resume { ptr, i32 } %5 } @@ -6919,7 +6919,7 @@ define linkonce_odr dso_local void @_ZNK5boost10wrapexceptINS_4asio22service_alr 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #31 + tail call void @__cxa_free_exception(ptr nonnull %2) #31 resume { ptr, i32 } %5 } @@ -12916,7 +12916,7 @@ define linkonce_odr dso_local void @_ZNK5boost10wrapexceptINS_4asio9execution12b 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #31 + tail call void @__cxa_free_exception(ptr nonnull %2) #31 resume { ptr, i32 } %5 } @@ -14860,25 +14860,21 @@ define internal void @"_ZN5boost4asio6detail17executor_function8completeINS1_15w to label %9 unwind label %31 9: ; preds = %2 - %.not.i = icmp eq ptr %0, null - br i1 %.not.i, label %"_ZN5boost4asio6detail17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNS9_12context_as_tIRNS0_17execution_contextEEENS9_6detail8blocking7never_tILi0EEENS9_11prefer_onlyINSG_10possibly_tILi0EEEEENSJ_INSF_16outstanding_work9tracked_tILi0EEEEENSJ_INSN_11untracked_tILi0EEEEENSJ_INSF_12relationship6fork_tILi0EEEEENSJ_INSU_14continuation_tILi0EEEEEEEENS7_23basic_resolver_iteratorIS8_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES11_vEESaIvEE3ptr5resetEv.exit", label %10 - -10: ; preds = %9 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 96 - %12 = getelementptr inbounds nuw i8, ptr %0, i64 112 + %.not.i = getelementptr inbounds nuw i8, ptr %0, i64 96 + %11 = getelementptr inbounds nuw i8, ptr %0, i64 112 + %12 = load ptr, ptr %11, align 8 %13 = load ptr, ptr %12, align 8 - %14 = load ptr, ptr %13, align 8 - invoke void %14(ptr noundef nonnull align 8 dereferenceable(48) %11) - to label %18 unwind label %15 + invoke void %13(ptr noundef nonnull align 8 dereferenceable(48) %10) + to label %17 unwind label %15 -15: ; preds = %10 +15: ; preds = %9 %16 = landingpad { ptr, i32 } catch ptr null %17 = extractvalue { ptr, i32 } %16, 0 call void @__clang_call_terminate(ptr %17) #32 unreachable -18: ; preds = %10 +18: ; preds = %9 call fastcc void @"_ZN5boost4asio6detail19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNS5_12context_as_tIRNS0_17execution_contextEEENS5_6detail8blocking7never_tILi0EEENS5_11prefer_onlyINSC_10possibly_tILi0EEEEENSF_INSB_16outstanding_work9tracked_tILi0EEEEENSF_INSJ_11untracked_tILi0EEEEENSF_INSB_12relationship6fork_tILi0EEEEENSF_INSQ_14continuation_tILi0EEEEEEEENS3_23basic_resolver_iteratorIS4_EENS1_25default_connect_conditionEZ4mainE3$_1ED2Ev"(ptr noundef nonnull readonly align 8 dereferenceable(136) %8) #31 store ptr null, ptr %7, align 8 %19 = call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_ZN5boost4asio6detail15keyword_tss_ptrINS1_10call_stackINS1_14thread_contextENS1_16thread_info_baseEE7contextEE6value_E) @@ -14890,33 +14886,30 @@ _ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3 %21 = getelementptr inbounds nuw i8, ptr %20, i64 8 %22 = load ptr, ptr %21, align 8 %.not.i.i = icmp eq ptr %22, null - br i1 %.not.i.i, label %_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.thread.i.i, label %23 + br i1 %.not.i.i, label %_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.thread.i.i, label %22 -23: ; preds = %_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.i.i - %24 = getelementptr inbounds nuw i8, ptr %22, i64 16 - %25 = load ptr, ptr %24, align 8 - %26 = icmp eq ptr %25, null - br i1 %26, label %27, label %_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.thread.i.i - -27: ; preds = %23 - %28 = getelementptr inbounds nuw i8, ptr %0, i64 152 - %29 = load i8, ptr %28, align 1 - store i8 %29, ptr %0, align 1 - store ptr %0, ptr %24, align 8 - br label %"_ZN5boost4asio6detail19recycling_allocatorINS1_17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNSA_12context_as_tIRNS0_17execution_contextEEENSA_6detail8blocking7never_tILi0EEENSA_11prefer_onlyINSH_10possibly_tILi0EEEEENSK_INSG_16outstanding_work9tracked_tILi0EEEEENSK_INSO_11untracked_tILi0EEEEENSK_INSG_12relationship6fork_tILi0EEEEENSK_INSV_14continuation_tILi0EEEEEEEENS8_23basic_resolver_iteratorIS9_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES12_vEESaIvEEENS1_16thread_info_base21executor_function_tagEE10deallocateEPS1D_m.exit.i" +27: ; preds = %_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.i.i + %28 = getelementptr inbounds nuw i8, ptr %21, i64 16 + %29 = load ptr, ptr %28, align 8 + %25 = icmp eq ptr %24, null + br i1 %25, label %26, label %_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.thread.i.i + +26: ; preds = %22 + %27 = getelementptr inbounds nuw i8, ptr %0, i64 152 + %28 = load i8, ptr %27, align 1 + store i8 %28, ptr %0, align 1 + store ptr %0, ptr %23, align 8 + br label %29 -_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.thread.i.i: ; preds = %23, %_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.i.i, %18 +_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.thread.i.i: ; preds = %22, %_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.i.i, %18 call void @_ZdlPv(ptr noundef nonnull %0) #31 br label %"_ZN5boost4asio6detail19recycling_allocatorINS1_17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNSA_12context_as_tIRNS0_17execution_contextEEENSA_6detail8blocking7never_tILi0EEENSA_11prefer_onlyINSH_10possibly_tILi0EEEEENSK_INSG_16outstanding_work9tracked_tILi0EEEEENSK_INSO_11untracked_tILi0EEEEENSK_INSG_12relationship6fork_tILi0EEEEENSK_INSV_14continuation_tILi0EEEEEEEENS8_23basic_resolver_iteratorIS9_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES12_vEESaIvEEENS1_16thread_info_base21executor_function_tagEE10deallocateEPS1D_m.exit.i" -"_ZN5boost4asio6detail19recycling_allocatorINS1_17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNSA_12context_as_tIRNS0_17execution_contextEEENSA_6detail8blocking7never_tILi0EEENSA_11prefer_onlyINSH_10possibly_tILi0EEEEENSK_INSG_16outstanding_work9tracked_tILi0EEEEENSK_INSO_11untracked_tILi0EEEEENSK_INSG_12relationship6fork_tILi0EEEEENSK_INSV_14continuation_tILi0EEEEEEEENS8_23basic_resolver_iteratorIS9_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES12_vEESaIvEEENS1_16thread_info_base21executor_function_tagEE10deallocateEPS1D_m.exit.i": ; preds = %_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.thread.i.i, %27 +"_ZN5boost4asio6detail19recycling_allocatorINS1_17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNSA_12context_as_tIRNS0_17execution_contextEEENSA_6detail8blocking7never_tILi0EEENSA_11prefer_onlyINSH_10possibly_tILi0EEEEENSK_INSG_16outstanding_work9tracked_tILi0EEEEENSK_INSO_11untracked_tILi0EEEEENSK_INSG_12relationship6fork_tILi0EEEEENSK_INSV_14continuation_tILi0EEEEEEEENS8_23basic_resolver_iteratorIS9_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES12_vEESaIvEEENS1_16thread_info_base21executor_function_tagEE10deallocateEPS1D_m.exit.i": ; preds = %_ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3topEv.exit.thread.i.i, %26 store ptr null, ptr %6, align 8 - br label %"_ZN5boost4asio6detail17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNS9_12context_as_tIRNS0_17execution_contextEEENS9_6detail8blocking7never_tILi0EEENS9_11prefer_onlyINSG_10possibly_tILi0EEEEENSJ_INSF_16outstanding_work9tracked_tILi0EEEEENSJ_INSN_11untracked_tILi0EEEEENSJ_INSF_12relationship6fork_tILi0EEEEENSJ_INSU_14continuation_tILi0EEEEEEEENS7_23basic_resolver_iteratorIS8_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES11_vEESaIvEE3ptr5resetEv.exit" - -"_ZN5boost4asio6detail17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNS9_12context_as_tIRNS0_17execution_contextEEENS9_6detail8blocking7never_tILi0EEENS9_11prefer_onlyINSG_10possibly_tILi0EEEEENSJ_INSF_16outstanding_work9tracked_tILi0EEEEENSJ_INSN_11untracked_tILi0EEEEENSJ_INSF_12relationship6fork_tILi0EEEEENSJ_INSU_14continuation_tILi0EEEEEEEENS7_23basic_resolver_iteratorIS8_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES11_vEESaIvEE3ptr5resetEv.exit": ; preds = %9, %"_ZN5boost4asio6detail19recycling_allocatorINS1_17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNSA_12context_as_tIRNS0_17execution_contextEEENSA_6detail8blocking7never_tILi0EEENSA_11prefer_onlyINSH_10possibly_tILi0EEEEENSK_INSG_16outstanding_work9tracked_tILi0EEEEENSK_INSO_11untracked_tILi0EEEEENSK_INSG_12relationship6fork_tILi0EEEEENSK_INSV_14continuation_tILi0EEEEEEEENS8_23basic_resolver_iteratorIS9_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES12_vEESaIvEEENS1_16thread_info_base21executor_function_tagEE10deallocateEPS1D_m.exit.i" br i1 %1, label %30, label %35 -30: ; preds = %"_ZN5boost4asio6detail17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNS9_12context_as_tIRNS0_17execution_contextEEENS9_6detail8blocking7never_tILi0EEENS9_11prefer_onlyINSG_10possibly_tILi0EEEEENSJ_INSF_16outstanding_work9tracked_tILi0EEEEENSJ_INSN_11untracked_tILi0EEEEENSJ_INSF_12relationship6fork_tILi0EEEEENSJ_INSU_14continuation_tILi0EEEEEEEENS7_23basic_resolver_iteratorIS8_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES11_vEESaIvEE3ptr5resetEv.exit" +30: ; preds = %"_ZN5boost4asio6detail19recycling_allocatorINS1_17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNSA_12context_as_tIRNS0_17execution_contextEEENSA_6detail8blocking7never_tILi0EEENSA_11prefer_onlyINSH_10possibly_tILi0EEEEENSK_INSG_16outstanding_work9tracked_tILi0EEEEENSK_INSO_11untracked_tILi0EEEEENSK_INSG_12relationship6fork_tILi0EEEEENSK_INSV_14continuation_tILi0EEEEEEEENS8_23basic_resolver_iteratorIS9_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES12_vEESaIvEEENS1_16thread_info_base21executor_function_tagEE10deallocateEPS1D_m.exit.i" invoke fastcc void @"_ZN5boost4asio6detail15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNS7_12context_as_tIRNS0_17execution_contextEEENS7_6detail8blocking7never_tILi0EEENS7_11prefer_onlyINSE_10possibly_tILi0EEEEENSH_INSD_16outstanding_work9tracked_tILi0EEEEENSH_INSL_11untracked_tILi0EEEEENSH_INSD_12relationship6fork_tILi0EEEEENSH_INSS_14continuation_tILi0EEEEEEEENS5_23basic_resolver_iteratorIS6_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEESZ_vEclEv"(ptr noundef nonnull align 8 dereferenceable(136) %5) to label %35 unwind label %33 @@ -14931,7 +14924,7 @@ _ZN5boost4asio6detail10call_stackINS1_14thread_contextENS1_16thread_info_baseEE3 call fastcc void @"_ZN5boost4asio6detail15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNS7_12context_as_tIRNS0_17execution_contextEEENS7_6detail8blocking7never_tILi0EEENS7_11prefer_onlyINSE_10possibly_tILi0EEEEENSH_INSD_16outstanding_work9tracked_tILi0EEEEENSH_INSL_11untracked_tILi0EEEEENSH_INSD_12relationship6fork_tILi0EEEEENSH_INSS_14continuation_tILi0EEEEEEEENS5_23basic_resolver_iteratorIS6_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEESZ_vED2Ev"(ptr noundef nonnull align 8 dereferenceable(136) %5) #31 br label %43 -35: ; preds = %30, %"_ZN5boost4asio6detail17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNS9_12context_as_tIRNS0_17execution_contextEEENS9_6detail8blocking7never_tILi0EEENS9_11prefer_onlyINSG_10possibly_tILi0EEEEENSJ_INSF_16outstanding_work9tracked_tILi0EEEEENSJ_INSN_11untracked_tILi0EEEEENSJ_INSF_12relationship6fork_tILi0EEEEENSJ_INSU_14continuation_tILi0EEEEEEEENS7_23basic_resolver_iteratorIS8_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES11_vEESaIvEE3ptr5resetEv.exit" +35: ; preds = %30, %"_ZN5boost4asio6detail19recycling_allocatorINS1_17executor_function4implINS1_15work_dispatcherINS1_7binder1INS1_19iterator_connect_opINS0_2ip3tcpENS0_9execution12any_executorIJNSA_12context_as_tIRNS0_17execution_contextEEENSA_6detail8blocking7never_tILi0EEENSA_11prefer_onlyINSH_10possibly_tILi0EEEEENSK_INSG_16outstanding_work9tracked_tILi0EEEEENSK_INSO_11untracked_tILi0EEEEENSK_INSG_12relationship6fork_tILi0EEEEENSK_INSV_14continuation_tILi0EEEEEEEENS8_23basic_resolver_iteratorIS9_EENS1_25default_connect_conditionEZ4mainE3$_1EENS_6system10error_codeEEES12_vEESaIvEEENS1_16thread_info_base21executor_function_tagEE10deallocateEPS1D_m.exit.i" %36 = getelementptr inbounds nuw i8, ptr %5, i64 88 %37 = getelementptr inbounds nuw i8, ptr %5, i64 104 %38 = load ptr, ptr %37, align 8 @@ -15683,7 +15676,7 @@ define linkonce_odr dso_local noundef nonnull align 8 dereferenceable(8) ptr @_Z 9: ; preds = %6 %10 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %7) #31 + tail call void @__cxa_free_exception(ptr nonnull %7) #31 resume { ptr, i32 } %10 11: ; preds = %3 @@ -26658,7 +26651,7 @@ define linkonce_odr dso_local noundef zeroext i1 @_ZN7msgpack2v26detail21create_ 11: ; preds = %8 %12 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %9) #31 + tail call void @__cxa_free_exception(ptr nonnull %9) #31 resume { ptr, i32 } %12 13: ; preds = %3 @@ -27222,7 +27215,7 @@ define linkonce_odr dso_local void @_ZN7msgpack2v26detail21create_object_visitor 6: ; preds = %3 %7 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %4) #31 + tail call void @__cxa_free_exception(ptr nonnull %4) #31 resume { ptr, i32 } %7 } @@ -27246,7 +27239,7 @@ define linkonce_odr dso_local noundef zeroext i1 @_ZN7msgpack2v26detail21create_ 11: ; preds = %8 %12 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %9) #31 + tail call void @__cxa_free_exception(ptr nonnull %9) #31 resume { ptr, i32 } %12 13: ; preds = %3 @@ -27371,7 +27364,7 @@ define linkonce_odr dso_local noundef zeroext i1 @_ZN7msgpack2v26detail21create_ 11: ; preds = %8 %12 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %9) #31 + tail call void @__cxa_free_exception(ptr nonnull %9) #31 resume { ptr, i32 } %12 13: ; preds = %3 @@ -28586,7 +28579,7 @@ _ZNSt6vectorIPN7msgpack2v26objectESaIS3_EE9push_backERKS3_.exit: ; preds = %78, 101: ; preds = %27, %10 %.sink = phi ptr [ %25, %27 ], [ %8, %10 ] %.pn = phi { ptr, i32 } [ %28, %27 ], [ %11, %10 ] - tail call void @__cxa_free_exception(ptr %.sink) #31 + tail call void @__cxa_free_exception(ptr nonnull %.sink) #31 resume { ptr, i32 } %.pn } @@ -28832,7 +28825,7 @@ _ZNSt6vectorIPN7msgpack2v26objectESaIS3_EE9push_backEOS3_.exit: ; preds = %78, % 101: ; preds = %27, %10 %.sink = phi ptr [ %25, %27 ], [ %8, %10 ] %.pn = phi { ptr, i32 } [ %28, %27 ], [ %11, %10 ] - tail call void @__cxa_free_exception(ptr %.sink) #31 + tail call void @__cxa_free_exception(ptr nonnull %.sink) #31 resume { ptr, i32 } %.pn } diff --git a/bench/ninja/optimized/eval_env.cc.ll b/bench/ninja/optimized/eval_env.cc.ll index 7a4adb1343b..5f2dc9ee66d 100644 --- a/bench/ninja/optimized/eval_env.cc.ll +++ b/bench/ninja/optimized/eval_env.cc.ll @@ -1761,7 +1761,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi .thread: ; preds = %14, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i %24 = phi i1 [ true, %14 ], [ %23, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %24, ptr noundef %8, ptr noundef nonnull %13, ptr noundef nonnull align 8 dereferenceable(32) %15) #17 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %24, ptr noundef nonnull %8, ptr noundef nonnull %13, ptr noundef nonnull align 8 dereferenceable(32) %15) #17 %25 = getelementptr inbounds nuw i8, ptr %0, i64 40 %26 = load i64, ptr %25, align 8 %27 = add i64 %26, 1 @@ -1775,18 +1775,14 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi resume { ptr, i32 } %29 30: ; preds = %11 - %.not.i = icmp eq ptr %8, null - br i1 %.not.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit, label %31 - -31: ; preds = %30 - %32 = getelementptr inbounds nuw i8, ptr %8, i64 64 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #17 + %.not.i = getelementptr inbounds nuw i8, ptr %8, i64 64 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #17 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %9) #17 tail call void @_ZdlPv(ptr noundef nonnull %8) #18 br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit -_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit: ; preds = %.thread, %30, %31 - %.sroa.0.010 = phi ptr [ %8, %.thread ], [ %12, %30 ], [ %12, %31 ] +_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit: ; preds = %.thread, %30 + %.sroa.0.010 = phi ptr [ %8, %.thread ], [ %12, %30 ] ret ptr %.sroa.0.010 } @@ -1908,7 +1904,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %50, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_.exit, label %51 51: ; preds = %47 - %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %1) #21 + %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #21 %53 = getelementptr inbounds nuw i8, ptr %52, i64 32 %54 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %2) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit11 unwind label %55 @@ -2014,7 +2010,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %91, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_.exit, label %92 92: ; preds = %88 - %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %1) #21 + %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #21 %94 = getelementptr inbounds nuw i8, ptr %93, i64 32 %95 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %94) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit35 unwind label %96 @@ -2398,7 +2394,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %50, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PK4RuleESt10_Select1stISB_ESt4lessIS5_ESaISB_EE24_M_get_insert_unique_posERS7_.exit, label %51 51: ; preds = %47 - %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %1) #21 + %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #21 %53 = getelementptr inbounds nuw i8, ptr %52, i64 32 %54 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %2) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit11 unwind label %55 @@ -2504,7 +2500,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %91, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PK4RuleESt10_Select1stISB_ESt4lessIS5_ESaISB_EE24_M_get_insert_unique_posERS7_.exit, label %92 92: ; preds = %88 - %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %1) #21 + %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #21 %94 = getelementptr inbounds nuw i8, ptr %93, i64 32 %95 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %94) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit35 unwind label %96 @@ -2861,7 +2857,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %50, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_10EvalStringESt10_Select1stIS9_ESt4lessIS5_ESaIS9_EE24_M_get_insert_unique_posERS7_.exit, label %51 51: ; preds = %47 - %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %1) #21 + %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #21 %53 = getelementptr inbounds nuw i8, ptr %52, i64 32 %54 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %2) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit11 unwind label %55 @@ -2967,7 +2963,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %91, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_10EvalStringESt10_Select1stIS9_ESt4lessIS5_ESaIS9_EE24_M_get_insert_unique_posERS7_.exit, label %92 92: ; preds = %88 - %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %1) #21 + %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #21 %94 = getelementptr inbounds nuw i8, ptr %93, i64 32 %95 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %94) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit35 unwind label %96 diff --git a/bench/ninja/optimized/subprocess-posix.cc.ll b/bench/ninja/optimized/subprocess-posix.cc.ll index a1cf17e035e..607d883c03c 100644 --- a/bench/ninja/optimized/subprocess-posix.cc.ll +++ b/bench/ninja/optimized/subprocess-posix.cc.ll @@ -1073,7 +1073,7 @@ _ZNSt6vectorI6pollfdSaIS0_EE9push_backERKS0_.exit: ; preds = %_ZNSt6vectorI6poll cleanup br label %.thread -.thread.loopexit.split-lp: ; preds = %69 +.thread.loopexit.split-lp: ; preds = %._crit_edge, %69 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup br label %.thread @@ -1083,20 +1083,18 @@ _ZNSt6vectorI6pollfdSaIS0_EE9push_backERKS0_.exit: ; preds = %_ZNSt6vectorI6poll cleanup br label %35 -.loopexit.split-lp: ; preds = %._crit_edge, %18 - %.sroa.051.076 = phi ptr [ %.sroa.051.1, %._crit_edge ], [ %.sroa.051.083, %18 ] +.loopexit.split-lp: ; preds = %18 %lpad.loopexit.split-lp65 = landingpad { ptr, i32 } cleanup br label %35 35: ; preds = %.loopexit.split-lp, %.loopexit - %.sroa.051.075 = phi ptr [ %.sroa.051.083, %.loopexit ], [ %.sroa.051.076, %.loopexit.split-lp ] %lpad.phi66 = phi { ptr, i32 } [ %lpad.loopexit64, %.loopexit ], [ %lpad.loopexit.split-lp65, %.loopexit.split-lp ] - %.not.i.i.i15 = icmp eq ptr %.sroa.051.075, null + %.not.i.i.i15 = icmp eq ptr %.sroa.051.082, null br i1 %.not.i.i.i15, label %_ZNSt6vectorI6pollfdSaIS0_EED2Ev.exit, label %.thread .thread: ; preds = %.thread.loopexit, %.thread.loopexit.split-lp, %35 - %.sroa.051.077 = phi ptr [ %.sroa.051.075, %35 ], [ %.sroa.051.1, %.thread.loopexit ], [ %.sroa.051.1, %.thread.loopexit.split-lp ] + %.sroa.051.077 = phi ptr [ %.sroa.051.082, %35 ], [ %.sroa.051.1, %.thread.loopexit ], [ %.sroa.051.1, %.thread.loopexit.split-lp ] %lpad.phi59 = phi { ptr, i32 } [ %lpad.phi66, %35 ], [ %lpad.loopexit, %.thread.loopexit ], [ %lpad.loopexit.split-lp, %.thread.loopexit.split-lp ] call void @_ZdlPv(ptr noundef nonnull %.sroa.051.077) #25 br label %_ZNSt6vectorI6pollfdSaIS0_EED2Ev.exit @@ -1109,7 +1107,7 @@ _ZNSt6vectorI6pollfdSaIS0_EED2Ev.exit: ; preds = %35, %.thread store i32 0, ptr @_ZN13SubprocessSet12interrupted_E, align 4 %36 = getelementptr inbounds nuw i8, ptr %0, i64 560 %37 = invoke i32 @ppoll(ptr noundef nonnull %.sroa.051.1, i64 noundef %.1, ptr noundef null, ptr noundef nonnull %36) - to label %38 unwind label %.loopexit.split-lp + to label %38 unwind label %.thread.loopexit.split-lp 38: ; preds = %._crit_edge %39 = icmp eq i32 %37, -1 diff --git a/bench/nix/optimized/derived-path-map.ll b/bench/nix/optimized/derived-path-map.ll index d8516784725..fc2e40c335d 100644 --- a/bench/nix/optimized/derived-path-map.ll +++ b/bench/nix/optimized/derived-path-map.ll @@ -457,8 +457,8 @@ define noundef zeroext i1 @_ZNK3nix14DerivedPathMapISt3setINSt7__cxx1112basic_st br i1 %15, label %16, label %_ZStssIJRKSt3mapIN3nix9StorePathENS1_14DerivedPathMapISt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessISA_ESaISA_EEE9ChildNodeESB_IS2_ESaISt4pairIKS2_SG_EEEEJSO_EENSt26common_comparison_categoryIJDpDTclL_ZNSt8__detail11__synth3wayEEclsr3stdE7declvalIRT_EEclsr3stdE7declvalIRT0_EEEEEE4typeERKSt5tupleIJDpSR_EERKSZ_IJDpST_EE.exit.loopexit 16: ; preds = %11 - %17 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %.sroa.010.015.i.i.i.i.i.i) #22 - %18 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %.sroa.05.014.i.i.i.i.i.i) #22 + %17 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %.sroa.010.015.i.i.i.i.i.i) #22 + %18 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %.sroa.05.014.i.i.i.i.i.i) #22 %19 = icmp eq ptr %17, %5 br i1 %19, label %_ZNKSt8__detail10_Synth3wayclISt3mapIN3nix9StorePathENS3_14DerivedPathMapISt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessISC_ESaISC_EEE9ChildNodeESD_IS4_ESaISt4pairIKS4_SI_EEESO_EEDaRKT_RKT0_QrqXltfp_fp0_RNS_18__boolean_testableEXltfp0_fp_RNS_18__boolean_testableEE.exit.i.i, label %.lr.ph.i.i.i.i.i.i, !llvm.loop !22 @@ -1205,7 +1205,7 @@ define linkonce_odr ptr @_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_NS0_14Derive %10 = extractvalue { ptr, ptr } %8, 0 %11 = extractvalue { ptr, ptr } %8, 1 %.not = icmp eq ptr %11, null - br i1 %.not, label %34, label %12 + br i1 %.not, label %32, label %12 12: ; preds = %9 %.not.i.i = icmp ne ptr %10, null @@ -1245,7 +1245,7 @@ _ZNKSt4lessIN3nix9StorePathEEclERKS1_S4_.exit.i.i: ; preds = %_ZNSt11char_traits .thread: ; preds = %12, %_ZNKSt4lessIN3nix9StorePathEEclERKS1_S4_.exit.i.i %27 = phi i1 [ true, %12 ], [ %26, %_ZNKSt4lessIN3nix9StorePathEEclERKS1_S4_.exit.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %27, ptr noundef %6, ptr noundef nonnull %11, ptr noundef nonnull align 8 dereferenceable(32) %13) #19 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %27, ptr noundef nonnull %6, ptr noundef nonnull %11, ptr noundef nonnull align 8 dereferenceable(32) %13) #19 %28 = getelementptr inbounds nuw i8, ptr %0, i64 40 %29 = load i64, ptr %28, align 8 %30 = add i64 %29, 1 @@ -1255,26 +1255,15 @@ _ZNKSt4lessIN3nix9StorePathEEclERKS1_S4_.exit.i.i: ; preds = %_ZNSt11char_traits 31: ; preds = %5 %32 = landingpad { ptr, i32 } cleanup - %.not.i = icmp eq ptr %6, null - br i1 %.not.i, label %_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_NS0_14DerivedPathMapISt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessISB_ESaISB_EEE9ChildNodeEESt10_Select1stISI_ESC_IS1_ESaISI_EE10_Auto_nodeD2Ev.exit, label %33 - -33: ; preds = %31 tail call void @_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_NS0_14DerivedPathMapISt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessISB_ESaISB_EEE9ChildNodeEESt10_Select1stISI_ESC_IS1_ESaISI_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISI_E(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull %6) #19 - br label %_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_NS0_14DerivedPathMapISt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessISB_ESaISB_EEE9ChildNodeEESt10_Select1stISI_ESC_IS1_ESaISI_EE10_Auto_nodeD2Ev.exit - -_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_NS0_14DerivedPathMapISt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessISB_ESaISB_EEE9ChildNodeEESt10_Select1stISI_ESC_IS1_ESaISI_EE10_Auto_nodeD2Ev.exit: ; preds = %31, %33 resume { ptr, i32 } %32 -34: ; preds = %9 - %.not.i8 = icmp eq ptr %6, null - br i1 %.not.i8, label %_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_NS0_14DerivedPathMapISt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessISB_ESaISB_EEE9ChildNodeEESt10_Select1stISI_ESC_IS1_ESaISI_EE10_Auto_nodeD2Ev.exit9, label %35 - -35: ; preds = %34 +35: ; preds = %9 tail call void @_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_NS0_14DerivedPathMapISt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessISB_ESaISB_EEE9ChildNodeEESt10_Select1stISI_ESC_IS1_ESaISI_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISI_E(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull %6) #19 br label %_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_NS0_14DerivedPathMapISt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessISB_ESaISB_EEE9ChildNodeEESt10_Select1stISI_ESC_IS1_ESaISI_EE10_Auto_nodeD2Ev.exit9 -_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_NS0_14DerivedPathMapISt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessISB_ESaISB_EEE9ChildNodeEESt10_Select1stISI_ESC_IS1_ESaISI_EE10_Auto_nodeD2Ev.exit9: ; preds = %.thread, %34, %35 - %.sroa.015.019 = phi ptr [ %6, %.thread ], [ %10, %34 ], [ %10, %35 ] +_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_NS0_14DerivedPathMapISt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessISB_ESaISB_EEE9ChildNodeEESt10_Select1stISI_ESC_IS1_ESaISI_EE10_Auto_nodeD2Ev.exit9: ; preds = %.thread, %35 + %.sroa.015.019 = phi ptr [ %6, %.thread ], [ %10, %35 ] ret ptr %.sroa.015.019 } @@ -2065,7 +2054,7 @@ define linkonce_odr ptr @_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_trai %10 = extractvalue { ptr, ptr } %8, 0 %11 = extractvalue { ptr, ptr } %8, 1 %.not = icmp eq ptr %11, null - br i1 %.not, label %34, label %12 + br i1 %.not, label %32, label %12 12: ; preds = %9 %.not.i.i = icmp ne ptr %10, null @@ -2105,7 +2094,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi .thread: ; preds = %12, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i %27 = phi i1 [ true, %12 ], [ %26, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %27, ptr noundef %6, ptr noundef nonnull %11, ptr noundef nonnull align 8 dereferenceable(32) %13) #19 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %27, ptr noundef nonnull %6, ptr noundef nonnull %11, ptr noundef nonnull align 8 dereferenceable(32) %13) #19 %28 = getelementptr inbounds nuw i8, ptr %0, i64 40 %29 = load i64, ptr %28, align 8 %30 = add i64 %29, 1 @@ -2115,26 +2104,15 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi 31: ; preds = %5 %32 = landingpad { ptr, i32 } cleanup - %.not.i = icmp eq ptr %6, null - br i1 %.not.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix14DerivedPathMapISt3setIS5_St4lessIS5_ESaIS5_EEE9ChildNodeEESt10_Select1stISH_ESC_SaISH_EE10_Auto_nodeD2Ev.exit, label %33 - -33: ; preds = %31 tail call void @_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix14DerivedPathMapISt3setIS5_St4lessIS5_ESaIS5_EEE9ChildNodeEESt10_Select1stISH_ESC_SaISH_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISH_E(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull %6) #19 - br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix14DerivedPathMapISt3setIS5_St4lessIS5_ESaIS5_EEE9ChildNodeEESt10_Select1stISH_ESC_SaISH_EE10_Auto_nodeD2Ev.exit - -_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix14DerivedPathMapISt3setIS5_St4lessIS5_ESaIS5_EEE9ChildNodeEESt10_Select1stISH_ESC_SaISH_EE10_Auto_nodeD2Ev.exit: ; preds = %31, %33 resume { ptr, i32 } %32 -34: ; preds = %9 - %.not.i8 = icmp eq ptr %6, null - br i1 %.not.i8, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix14DerivedPathMapISt3setIS5_St4lessIS5_ESaIS5_EEE9ChildNodeEESt10_Select1stISH_ESC_SaISH_EE10_Auto_nodeD2Ev.exit9, label %35 - -35: ; preds = %34 +35: ; preds = %9 tail call void @_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix14DerivedPathMapISt3setIS5_St4lessIS5_ESaIS5_EEE9ChildNodeEESt10_Select1stISH_ESC_SaISH_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISH_E(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull %6) #19 br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix14DerivedPathMapISt3setIS5_St4lessIS5_ESaIS5_EEE9ChildNodeEESt10_Select1stISH_ESC_SaISH_EE10_Auto_nodeD2Ev.exit9 -_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix14DerivedPathMapISt3setIS5_St4lessIS5_ESaIS5_EEE9ChildNodeEESt10_Select1stISH_ESC_SaISH_EE10_Auto_nodeD2Ev.exit9: ; preds = %.thread, %34, %35 - %.sroa.015.019 = phi ptr [ %6, %.thread ], [ %10, %34 ], [ %10, %35 ] +_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix14DerivedPathMapISt3setIS5_St4lessIS5_ESaIS5_EEE9ChildNodeEESt10_Select1stISH_ESC_SaISH_EE10_Auto_nodeD2Ev.exit9: ; preds = %.thread, %32 + %.sroa.015.019 = phi ptr [ %6, %.thread ], [ %10, %35 ] ret ptr %.sroa.015.019 } diff --git a/bench/nix/optimized/why-depends.ll b/bench/nix/optimized/why-depends.ll index 36d7cc74478..93b3ba38b12 100644 --- a/bench/nix/optimized/why-depends.ll +++ b/bench/nix/optimized/why-depends.ll @@ -1543,7 +1543,7 @@ _ZNSt10shared_ptrIN3nix7CommandEEC2ERKS2_.exit.i: ; preds = %31, %28, %_ZNSt10sh 37: ; preds = %34 %38 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %35) #27 + tail call void @__cxa_free_exception(ptr nonnull %35) #27 br label %.body 39: ; preds = %36 @@ -1775,7 +1775,7 @@ _ZNSt10shared_ptrI13CmdWhyDependsEC2ERKS1_.exit.i: ; preds = %8 19: ; preds = %16 %20 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %17) #27 + tail call void @__cxa_free_exception(ptr nonnull %17) #27 br label %.body 21: ; preds = %18 @@ -4995,7 +4995,7 @@ _ZNKSt4lessIN3nix9StorePathEEclERKS1_S4_.exit.i344: ; preds = %_ZNSt11char_trait br i1 %595, label %._crit_edge493, label %514 ._crit_edge493: ; preds = %.noexc170, %.lr.ph496 - %596 = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %.sroa.0391.0494) #32 + %596 = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %.sroa.0391.0494) #32 %597 = icmp eq ptr %596, %395 br i1 %597, label %._crit_edge497, label %.lr.ph496 @@ -12352,7 +12352,7 @@ define linkonce_odr void @_ZN5boost15throw_exceptionINS_2io17bad_format_stringEE 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #27 + tail call void @__cxa_free_exception(ptr nonnull %2) #27 resume { ptr, i32 } %5 } @@ -13584,7 +13584,7 @@ define linkonce_odr void @_ZNK5boost10wrapexceptINS_2io17bad_format_stringEE7ret 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #27 + tail call void @__cxa_free_exception(ptr nonnull %2) #27 resume { ptr, i32 } %5 } @@ -14474,7 +14474,7 @@ _ZNSt12_Vector_baseIN5boost2io6detail11format_itemIcSt11char_traitsIcESaIcEEESaI 181: ; preds = %177 %182 = getelementptr inbounds %"struct.boost::io::detail::format_item", ptr %144, i64 %2 - invoke void @_ZSt8_DestroyIPN5boost2io6detail11format_itemIcSt11char_traitsIcESaIcEEES7_EvT_S9_RSaIT0_E(ptr noundef %144, ptr noundef nonnull %182, ptr noundef nonnull align 1 dereferenceable(1) %0) + invoke void @_ZSt8_DestroyIPN5boost2io6detail11format_itemIcSt11char_traitsIcESaIcEEES7_EvT_S9_RSaIT0_E(ptr noundef nonnull %144, ptr noundef nonnull %182, ptr noundef nonnull align 1 dereferenceable(1) %0) to label %_ZNSt12_Vector_baseIN5boost2io6detail11format_itemIcSt11char_traitsIcESaIcEEESaIS7_EE13_M_deallocateEPS7_m.exit111 unwind label %183 183: ; preds = %_ZNSt12_Vector_baseIN5boost2io6detail11format_itemIcSt11char_traitsIcESaIcEEESaIS7_EE13_M_deallocateEPS7_m.exit111, %181 @@ -15220,7 +15220,7 @@ define linkonce_odr void @_ZN5boost15throw_exceptionINS_2io13too_many_argsEEEvRK 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #27 + tail call void @__cxa_free_exception(ptr nonnull %2) #27 resume { ptr, i32 } %5 } @@ -16058,7 +16058,7 @@ define linkonce_odr void @_ZNK5boost10wrapexceptINS_2io13too_many_argsEE7rethrow 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #27 + tail call void @__cxa_free_exception(ptr nonnull %2) #27 resume { ptr, i32 } %5 } @@ -17284,7 +17284,7 @@ define linkonce_odr void @_ZN5boost15throw_exceptionINS_2io12too_few_argsEEEvRKT 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #27 + tail call void @__cxa_free_exception(ptr nonnull %2) #27 resume { ptr, i32 } %5 } @@ -17422,7 +17422,7 @@ define linkonce_odr void @_ZNK5boost10wrapexceptINS_2io12too_few_argsEE7rethrowE 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #27 + tail call void @__cxa_free_exception(ptr nonnull %2) #27 resume { ptr, i32 } %5 } @@ -17714,7 +17714,7 @@ _ZNKSt4lessIN3nix9StorePathEEclERKS1_S4_.exit.i.i: ; preds = %_ZNSt11char_traits .thread: ; preds = %13, %_ZNKSt4lessIN3nix9StorePathEEclERKS1_S4_.exit.i.i %28 = phi i1 [ true, %13 ], [ %27, %_ZNKSt4lessIN3nix9StorePathEEclERKS1_S4_.exit.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %28, ptr noundef %7, ptr noundef nonnull %12, ptr noundef nonnull align 8 dereferenceable(32) %14) #27 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %28, ptr noundef nonnull %7, ptr noundef nonnull %12, ptr noundef nonnull align 8 dereferenceable(32) %14) #27 %29 = getelementptr inbounds nuw i8, ptr %0, i64 40 %30 = load i64, ptr %29, align 8 %31 = add i64 %30, 1 @@ -17728,16 +17728,12 @@ _ZNKSt4lessIN3nix9StorePathEEclERKS1_S4_.exit.i.i: ; preds = %_ZNSt11char_traits resume { ptr, i32 } %33 34: ; preds = %10 - %.not.i = icmp eq ptr %7, null - br i1 %.not.i, label %_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_ZN13CmdWhyDepends3runENS0_3refINS0_5StoreEEEE4NodeESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE10_Auto_nodeD2Ev.exit, label %35 - -35: ; preds = %34 tail call void @_ZNSt4pairIKN3nix9StorePathEZN13CmdWhyDepends3runENS0_3refINS0_5StoreEEEE4NodeED2Ev(ptr noundef nonnull align 8 dereferenceable(184) %8) #27 tail call void @_ZdlPv(ptr noundef nonnull %7) #30 br label %_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_ZN13CmdWhyDepends3runENS0_3refINS0_5StoreEEEE4NodeESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE10_Auto_nodeD2Ev.exit -_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_ZN13CmdWhyDepends3runENS0_3refINS0_5StoreEEEE4NodeESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE10_Auto_nodeD2Ev.exit: ; preds = %.thread, %34, %35 - %.sroa.0.09 = phi ptr [ %7, %.thread ], [ %11, %34 ], [ %11, %35 ] +_ZNSt8_Rb_treeIN3nix9StorePathESt4pairIKS1_ZN13CmdWhyDepends3runENS0_3refINS0_5StoreEEEE4NodeESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE10_Auto_nodeD2Ev.exit: ; preds = %.thread, %34 + %.sroa.0.09 = phi ptr [ %7, %.thread ], [ %11, %34 ] ret ptr %.sroa.0.09 } @@ -25025,7 +25021,7 @@ _ZSt10_ConstructINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRKS5_EEvPT catch ptr null %25 = extractvalue { ptr, i32 } %24, 0 %26 = tail call ptr @__cxa_begin_catch(ptr %25) #27 - invoke void @_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvT_S7_(ptr noundef %13, ptr noundef %.013.i.i.i.i) + invoke void @_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEvT_S7_(ptr noundef %13, ptr noundef nonnull %.013.i.i.i.i) to label %27 unwind label %28 27: ; preds = %23 diff --git a/bench/nlohmann_json/optimized/unit-allocator.cpp.ll b/bench/nlohmann_json/optimized/unit-allocator.cpp.ll index 06f8cccd0d4..6f9ac53d37a 100644 --- a/bench/nlohmann_json/optimized/unit-allocator.cpp.ll +++ b/bench/nlohmann_json/optimized/unit-allocator.cpp.ll @@ -3065,7 +3065,7 @@ lpad.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i. catch ptr null %20 = extractvalue { ptr, i32 } %19, 0 %21 = call ptr @__cxa_begin_catch(ptr %20) #20 - call fastcc void @_ZSt8_DestroyIPN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_120allocator_no_forwardENS1_14adl_serializerES4_IhSaIhEEvEENSC_ISG_EEEvT_SJ_RT0_(ptr noundef %cond.i21.i.i.i.i, ptr noundef %__cur.04.i.i.i.i.i.i) + call fastcc void @_ZSt8_DestroyIPN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_120allocator_no_forwardENS1_14adl_serializerES4_IhSaIhEEvEENSC_ISG_EEEvT_SJ_RT0_(ptr noundef %cond.i21.i.i.i.i, ptr noundef nonnull %__cur.04.i.i.i.i.i.i) invoke void @__cxa_rethrow() #23 to label %unreachable.i.i.i.i.i.i unwind label %lpad7.i.i.i.i.i.i @@ -3073,7 +3073,7 @@ lpad7.i.i.i.i.i.i: ; preds = %lpad.i.i.i.i.i.i %22 = landingpad { ptr, i32 } catch ptr null invoke void @__cxa_end_catch() - to label %if.end.i.i.i.i unwind label %terminate.lpad.i.i.i.i.i.i + to label %if.end.thread.i.i.i.i unwind label %terminate.lpad.i.i.i.i.i.i terminate.lpad.i.i.i.i.i.i: ; preds = %lpad7.i.i.i.i.i.i %23 = landingpad { ptr, i32 } @@ -3122,29 +3122,20 @@ lpad.body.i.i.i.i: ; preds = %_ZNSt12_Vector_base catch ptr null %29 = extractvalue { ptr, i32 } %28, 0 %30 = call ptr @__cxa_begin_catch(ptr %29) #20 - %tobool.not.i.i.i.i = icmp eq ptr %cond.i21.i.i.i.i, null - br i1 %tobool.not.i.i.i.i, label %if.end.i.thread8.i.i.i, label %if.then.i43.i.i.i.i + br label %if.then.i43.i.i.i.i -if.end.i.thread8.i.i.i: ; preds = %lpad.body.i.i.i.i - call fastcc void @_ZNSt16allocator_traitsIN12_GLOBAL__N_120allocator_no_forwardIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdS1_NS3_14adl_serializerES6_IhSaIhEEvEEEEE7destroyISG_EEvRSH_PT_(ptr noundef %add.ptr.i.i.i.i) #20 - br label %invoke.cont20.i.i.i.i - -if.end.i.i.i.i: ; preds = %lpad7.i.i.i.i.i.i +if.end.i.thread8.i.i.i: ; preds = %lpad7.i.i.i.i.i.i %31 = extractvalue { ptr, i32 } %22, 0 %32 = call ptr @__cxa_begin_catch(ptr %31) #20 call fastcc void @_ZNSt16allocator_traitsIN12_GLOBAL__N_120allocator_no_forwardIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdS1_NS3_14adl_serializerES6_IhSaIhEEvEEEEE7destroyISG_EEvRSH_PT_(ptr noundef nonnull %add.ptr.i.i.i.i) #20 - %tobool.not.i42.i.i.i.i = icmp eq ptr %cond.i21.i.i.i.i, null - br i1 %tobool.not.i42.i.i.i.i, label %invoke.cont20.i.i.i.i, label %if.then.i43.i.i.i.i + br label %if.then.i43.i.i.i.i -if.then.i43.i.i.i.i: ; preds = %if.end.i.i.i.i, %lpad.body.i.i.i.i +if.then.i43.i.i.i.i: ; preds = %if.end.thread.i.i.i.i, %lpad.body.i.i.i.i call void @_ZdlPv(ptr noundef nonnull %cond.i21.i.i.i.i) #24 - br label %invoke.cont20.i.i.i.i - -invoke.cont20.i.i.i.i: ; preds = %if.then.i43.i.i.i.i, %if.end.i.i.i.i, %if.end.i.thread8.i.i.i invoke void @__cxa_rethrow() #23 to label %unreachable.i.i.i.i unwind label %lpad19.i.i.i.i -lpad19.i.i.i.i: ; preds = %invoke.cont20.i.i.i.i +lpad19.i.i.i.i: ; preds = %if.then.i43.i.i.i.i %33 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() @@ -3157,7 +3148,7 @@ terminate.lpad.i.i.i.i: ; preds = %lpad19.i.i.i.i call void @__clang_call_terminate(ptr %35) #21 unreachable -unreachable.i.i.i.i: ; preds = %invoke.cont20.i.i.i.i +unreachable.i.i.i.i: ; preds = %if.then.i43.i.i.i.i unreachable _ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_120allocator_no_forwardENS1_14adl_serializerES_IhSaIhEEvEENSB_ISF_EEE17_M_realloc_insertIJSF_EEEvN9__gnu_cxx17__normal_iteratorIPSF_SH_EEDpOT_.exit.i.i.i: ; preds = %if.then.i41.i.i.i.i, %_ZSt8_DestroyIPN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_120allocator_no_forwardENS1_14adl_serializerES4_IhSaIhEEvEENSC_ISG_EEEvT_SJ_RT0_.exit.i.i.i.i @@ -4639,7 +4630,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #26 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #26 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -4745,7 +4736,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #26 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #26 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 @@ -5256,7 +5247,7 @@ for.inc: ; preds = %_ZNSt6vectorIN8nloh %add.ptr19.i254382 = phi ptr [ %add.ptr19.i254, %_ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS1_14adl_serializerES_IhSaIhEEvEESaISF_EE17_M_realloc_insertIJSF_EEEvN9__gnu_cxx17__normal_iteratorIPSF_SH_EEDpOT_.exit259 ], [ %add.ptr19.i254383, %if.then.i ] %__cur.0.i.lcssa.i238.pn = phi ptr [ %__cur.0.i.lcssa.i238, %_ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS1_14adl_serializerES_IhSaIhEEvEESaISF_EE17_M_realloc_insertIJSF_EEEvN9__gnu_cxx17__normal_iteratorIPSF_SH_EEDpOT_.exit259 ], [ %__cur.0.i2238.i239379, %if.then.i ] %__cur.0.i2238.i239380 = getelementptr inbounds nuw i8, ptr %__cur.0.i.lcssa.i238.pn, i64 16 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__begin0.sroa.0.0104) #26 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__begin0.sroa.0.0104) #26 %cmp.i.not = icmp eq ptr %call.i, %add.ptr.i.i br i1 %cmp.i.not, label %if.end44.loopexit370, label %for.body @@ -5587,7 +5578,7 @@ for.inc89: ; preds = %_ZNSt6vectorIN8nloh %add.ptr19.i354403 = phi ptr [ %add.ptr19.i354, %_ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS1_14adl_serializerES_IhSaIhEEvEESaISF_EE17_M_realloc_insertIJSF_EEEvN9__gnu_cxx17__normal_iteratorIPSF_SH_EEDpOT_.exit359 ], [ %add.ptr19.i354404, %if.then.i52 ] %__cur.0.i.lcssa.i338.pn = phi ptr [ %__cur.0.i.lcssa.i338, %_ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_112my_allocatorENS1_14adl_serializerES_IhSaIhEEvEESaISF_EE17_M_realloc_insertIJSF_EEEvN9__gnu_cxx17__normal_iteratorIPSF_SH_EEDpOT_.exit359 ], [ %__cur.0.i2238.i339400, %if.then.i52 ] %__cur.0.i2238.i339401 = getelementptr inbounds nuw i8, ptr %__cur.0.i.lcssa.i338.pn, i64 16 - %call.i39 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__begin076.sroa.0.0106) #26 + %call.i39 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__begin076.sroa.0.0106) #26 %cmp.i36.not = icmp eq ptr %call.i39, %add.ptr.i.i35 br i1 %cmp.i36.not, label %for.end91.loopexit, label %for.body84 @@ -6431,7 +6422,7 @@ for.inc: ; preds = %_ZNSt6vectorIN8nloh %add.ptr19.i254382 = phi ptr [ %add.ptr19.i254, %_ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_120allocator_no_forwardENS1_14adl_serializerES_IhSaIhEEvEESaISF_EE17_M_realloc_insertIJSF_EEEvN9__gnu_cxx17__normal_iteratorIPSF_SH_EEDpOT_.exit259 ], [ %add.ptr19.i254383, %if.then.i ] %__cur.0.i.lcssa.i238.pn = phi ptr [ %__cur.0.i.lcssa.i238, %_ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_120allocator_no_forwardENS1_14adl_serializerES_IhSaIhEEvEESaISF_EE17_M_realloc_insertIJSF_EEEvN9__gnu_cxx17__normal_iteratorIPSF_SH_EEDpOT_.exit259 ], [ %__cur.0.i2238.i239379, %if.then.i ] %__cur.0.i2238.i239380 = getelementptr inbounds nuw i8, ptr %__cur.0.i.lcssa.i238.pn, i64 16 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__begin0.sroa.0.0104) #26 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__begin0.sroa.0.0104) #26 %cmp.i.not = icmp eq ptr %call.i, %add.ptr.i.i br i1 %cmp.i.not, label %if.end44.loopexit370, label %for.body @@ -6762,7 +6753,7 @@ for.inc89: ; preds = %_ZNSt6vectorIN8nloh %add.ptr19.i354403 = phi ptr [ %add.ptr19.i354, %_ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_120allocator_no_forwardENS1_14adl_serializerES_IhSaIhEEvEESaISF_EE17_M_realloc_insertIJSF_EEEvN9__gnu_cxx17__normal_iteratorIPSF_SH_EEDpOT_.exit359 ], [ %add.ptr19.i354404, %if.then.i51 ] %__cur.0.i.lcssa.i338.pn = phi ptr [ %__cur.0.i.lcssa.i338, %_ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_120allocator_no_forwardENS1_14adl_serializerES_IhSaIhEEvEESaISF_EE17_M_realloc_insertIJSF_EEEvN9__gnu_cxx17__normal_iteratorIPSF_SH_EEDpOT_.exit359 ], [ %__cur.0.i2238.i339400, %if.then.i51 ] %__cur.0.i2238.i339401 = getelementptr inbounds nuw i8, ptr %__cur.0.i.lcssa.i338.pn, i64 16 - %call.i39 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__begin076.sroa.0.0106) #26 + %call.i39 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__begin076.sroa.0.0106) #26 %cmp.i36.not = icmp eq ptr %call.i39, %add.ptr.i.i35 br i1 %cmp.i36.not, label %for.end91.loopexit, label %for.body84 @@ -7109,7 +7100,7 @@ lpad.i2: ; preds = %for.body.i catch ptr null %2 = extractvalue { ptr, i32 } %1, 0 %3 = tail call ptr @__cxa_begin_catch(ptr %2) #20 - tail call fastcc void @_ZSt8_DestroyIPN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_120allocator_no_forwardENS1_14adl_serializerES4_IhSaIhEEvEENSC_ISG_EEEvT_SJ_RT0_(ptr noundef %cond.i.i.i, ptr noundef %__cur.0.i4) + tail call fastcc void @_ZSt8_DestroyIPN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdN12_GLOBAL__N_120allocator_no_forwardENS1_14adl_serializerES4_IhSaIhEEvEENSC_ISG_EEEvT_SJ_RT0_(ptr noundef %cond.i.i.i, ptr noundef nonnull %__cur.0.i4) invoke void @__cxa_rethrow() #23 to label %unreachable.i unwind label %lpad4.i diff --git a/bench/node/optimized/libnode.node_realm.ll b/bench/node/optimized/libnode.node_realm.ll index d927904c952..f110a6b07f4 100644 --- a/bench/node/optimized/libnode.node_realm.ll +++ b/bench/node/optimized/libnode.node_realm.ll @@ -10320,30 +10320,25 @@ if.end1970: ; preds = %if.end1962, %land.l %363 = load i64, ptr %context, align 8 %call.i3306 = tail call noundef ptr @_ZN2v87Context23GetDataFromSnapshotOnceEm(ptr noundef nonnull align 1 dereferenceable(1) %call, i64 noundef %363) #20 %cond848 = icmp eq ptr %call.i3306, null - br i1 %cond848, label %if.then1980, label %if.then.i3309 - -if.then.i3309: ; preds = %if.end1970 - %cmp.i.i5444 = icmp eq ptr %call, null - br i1 %cmp.i.i5444, label %do.body1988, label %_ZN2v88internal12HandleHelper12EqualHandlesINS_5LocalINS_7ContextEEES5_EEbRKT_RKT0_.exit + br i1 %cond848, label %if.then1980, label %_ZN2v88internal12HandleHelper12EqualHandlesINS_5LocalINS_7ContextEEES5_EEbRKT_RKT0_.exit if.then1980: ; preds = %if.end1970 %364 = load ptr, ptr @stderr, align 8 %365 = tail call i64 @fwrite(ptr nonnull @.str.141, i64 63, i64 1, ptr %364) #25 - %cmp.i9.i = icmp eq ptr %call, null - br i1 %cmp.i9.i, label %do.end1991, label %do.body1988 + br label %do.body1988 -_ZN2v88internal12HandleHelper12EqualHandlesINS_5LocalINS_7ContextEEES5_EEbRKT_RKT0_.exit: ; preds = %if.then.i3309 +_ZN2v88internal12HandleHelper12EqualHandlesINS_5LocalINS_7ContextEEES5_EEbRKT_RKT0_.exit: ; preds = %if.end1970 %366 = load i64, ptr %call.i3306, align 8 %367 = load i64, ptr %call, align 8 %cmp.i = icmp eq i64 %366, %367 br i1 %cmp.i, label %do.end1991, label %do.body1988 -do.body1988: ; preds = %if.then1980, %if.then.i3309, %_ZN2v88internal12HandleHelper12EqualHandlesINS_5LocalINS_7ContextEEES5_EEbRKT_RKT0_.exit +do.body1988: ; preds = %if.then1980, %_ZN2v88internal12HandleHelper12EqualHandlesINS_5LocalINS_7ContextEEES5_EEbRKT_RKT0_.exit tail call void @_ZN4node6AssertERKNS_13AssertionInfoE(ptr noundef nonnull align 8 dereferenceable(24) @_ZZN4node5Realm21DeserializePropertiesEPKNS_18RealmSerializeInfoEE4args) #20 tail call void @abort() #21 unreachable -do.end1991: ; preds = %if.then1980, %_ZN2v88internal12HandleHelper12EqualHandlesINS_5LocalINS_7ContextEEES5_EEbRKT_RKT0_.exit +do.end1991: ; preds = %_ZN2v88internal12HandleHelper12EqualHandlesINS_5LocalINS_7ContextEEES5_EEbRKT_RKT0_.exit %kind_.i = getelementptr inbounds nuw i8, ptr %this, i64 680 %368 = load i32, ptr %kind_.i, align 8 %cmp.i1261 = icmp eq i32 %368, 0 diff --git a/bench/node/optimized/libnode.node_trace_events.ll b/bench/node/optimized/libnode.node_trace_events.ll index d7a93b44104..8c0a9aa8578 100644 --- a/bench/node/optimized/libnode.node_trace_events.ll +++ b/bench/node/optimized/libnode.node_trace_events.ll @@ -2289,17 +2289,13 @@ cleanup.thread: ; preds = %lor.rhs.i.i, %if.th br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE10_Auto_nodeD2Ev.exit cleanup: ; preds = %if.end12.i - %tobool.not.i = icmp eq ptr %call.i, null - br i1 %tobool.not.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE10_Auto_nodeD2Ev.exit, label %if.then.i8 - -if.then.i8: ; preds = %cleanup tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i) #17 tail call void @_ZdlPv(ptr noundef nonnull %call.i) #20 br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE10_Auto_nodeD2Ev.exit -_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %cleanup, %if.then.i8 - %retval.sroa.3.024 = phi i8 [ 1, %cleanup.thread ], [ 0, %cleanup ], [ 0, %if.then.i8 ] - %retval.sroa.0.023 = phi ptr [ %call.i, %cleanup.thread ], [ %__j.sroa.0.0.i, %cleanup ], [ %__j.sroa.0.0.i, %if.then.i8 ] +_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %if.then.i8 + %retval.sroa.3.024 = phi i8 [ 1, %cleanup.thread ], [ 0, %if.then.i8 ] + %retval.sroa.0.023 = phi ptr [ %call.i, %cleanup.thread ], [ %__j.sroa.0.0.i, %if.then.i8 ] %.fca.0.insert = insertvalue { ptr, i8 } poison, ptr %retval.sroa.0.023, 0 %.fca.1.insert = insertvalue { ptr, i8 } %.fca.0.insert, i8 %retval.sroa.3.024, 1 ret { ptr, i8 } %.fca.1.insert diff --git a/bench/nori/optimized/parser.cpp.ll b/bench/nori/optimized/parser.cpp.ll index 9f9c5099c01..a26cfcbeaf4 100644 --- a/bench/nori/optimized/parser.cpp.ll +++ b/bench/nori/optimized/parser.cpp.ll @@ -2012,7 +2012,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %64, label %132, label %65 65: ; preds = %61 - %66 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %.08.lcssa.i.i.i16) #28 + %66 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %.08.lcssa.i.i.i16) #28 %67 = getelementptr inbounds nuw i8, ptr %66, i64 32 %68 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %67, ptr noundef nonnull align 8 dereferenceable(32) %21) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i.i unwind label %69 @@ -2032,7 +2032,9 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi %74 = getelementptr i8, ptr %66, i64 24 %.val10.i.i = load ptr, ptr %74, align 8 %75 = icmp eq ptr %.val10.i.i, null - br i1 %75, label %.thread.i, label %132 + %spec.select.i.i = select i1 %75, ptr null, ptr %.08.lcssa.i.i.i16 + %spec.select84.i.i = select i1 %75, ptr %66, ptr %.08.lcssa.i.i.i16 + br label %.thread.i 76: ; preds = %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i.i %.02529.i15.i.i = load ptr, ptr %3, align 8 @@ -2113,7 +2115,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %102, label %132, label %103 103: ; preds = %99 - %104 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %.08.lcssa.i.i.i16) #28 + %104 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %.08.lcssa.i.i.i16) #28 %105 = getelementptr inbounds nuw i8, ptr %104, i64 32 %106 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %21, ptr noundef nonnull align 8 dereferenceable(32) %105) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit39.i.i unwind label %107 @@ -2133,7 +2135,9 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi %112 = getelementptr i8, ptr %.08.lcssa.i.i.i16, i64 24 %.val.i10.i = load ptr, ptr %112, align 8 %113 = icmp eq ptr %.val.i10.i, null - br i1 %113, label %.thread.i, label %132 + %spec.select85.i.i = select i1 %113, ptr null, ptr %104 + %spec.select86.i.i = select i1 %113, ptr %.08.lcssa.i.i.i16, ptr %104 + br label %.thread.i 114: ; preds = %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit39.i.i %.02529.i40.i.i = load ptr, ptr %3, align 8 @@ -2193,15 +2197,15 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi %131 = icmp slt i32 %127, 0 br i1 %131, label %.thread.i, label %.thread15.i -132: ; preds = %111, %99, %73, %61, %34 - %.sroa.083.0.i.i = phi ptr [ null, %34 ], [ %63, %61 ], [ null, %99 ], [ %.08.lcssa.i.i.i16, %73 ], [ %104, %111 ] - %.sroa.12.0.i.i = phi ptr [ %35, %34 ], [ %63, %61 ], [ %101, %99 ], [ %.08.lcssa.i.i.i16, %73 ], [ %104, %111 ] +132: ; preds = %99, %61, %34 + %.sroa.083.0.i.i = phi ptr [ null, %34 ], [ %63, %61 ], [ null, %99 ] + %.sroa.12.0.i.i = phi ptr [ %35, %34 ], [ %63, %61 ], [ %101, %99 ] %.not.i = icmp eq ptr %.sroa.12.0.i.i, null br i1 %.not.i, label %.thread15.i, label %.thread.i .thread.i: ; preds = %132, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i52.i.i, %._crit_edge.thread.i59.i.i, %111, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i27.i.i, %._crit_edge.thread.i34.i.i, %73, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i.i.i, %._crit_edge.thread.i.i.i - %.sroa.12.0.i12.i = phi ptr [ %.sroa.12.0.i.i, %132 ], [ %.024.lcssa36.i60.i.i, %._crit_edge.thread.i59.i.i ], [ %.024.lcssa36.i35.i.i, %._crit_edge.thread.i34.i.i ], [ %.024.lcssa36.i.i.i, %._crit_edge.thread.i.i.i ], [ %66, %73 ], [ %.08.lcssa.i.i.i16, %111 ], [ %.024.lcssa37.i.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i.i.i ], [ %.024.lcssa37.i25.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i27.i.i ], [ %.024.lcssa37.i50.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i52.i.i ] - %.sroa.083.0.i11.i = phi ptr [ %.sroa.083.0.i.i, %132 ], [ null, %._crit_edge.thread.i59.i.i ], [ null, %._crit_edge.thread.i34.i.i ], [ null, %._crit_edge.thread.i.i.i ], [ null, %73 ], [ null, %111 ], [ null, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i.i.i ], [ null, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i27.i.i ], [ null, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i52.i.i ] + %.sroa.12.0.i12.i = phi ptr [ %.sroa.12.0.i.i, %132 ], [ %.024.lcssa36.i60.i.i, %._crit_edge.thread.i59.i.i ], [ %.024.lcssa36.i35.i.i, %._crit_edge.thread.i34.i.i ], [ %.024.lcssa36.i.i.i, %._crit_edge.thread.i.i.i ], [ %spec.select86.i.i, %111 ], [ %spec.select84.i.i, %73 ], [ %.024.lcssa37.i.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i.i.i ], [ %.024.lcssa37.i25.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i27.i.i ], [ %.024.lcssa37.i50.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i52.i.i ] + %.sroa.083.0.i11.i = phi ptr [ %.sroa.083.0.i.i, %132 ], [ null, %._crit_edge.thread.i59.i.i ], [ null, %._crit_edge.thread.i34.i.i ], [ null, %._crit_edge.thread.i.i.i ], [ %spec.select85.i.i, %111 ], [ %spec.select.i.i, %73 ], [ null, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i.i.i ], [ null, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i27.i.i ], [ null, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit14.i52.i.i ] %.not.i.i11.i = icmp ne ptr %.sroa.083.0.i11.i, null %133 = icmp eq ptr %.sroa.12.0.i12.i, %4 %or.cond.i.i.i = select i1 %.not.i.i11.i, i1 true, i1 %133 @@ -6378,7 +6382,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit527: ; %966 = landingpad { ptr, i32 } cleanup catch ptr @_ZTIN4nori13NoriExceptionE - call void @__cxa_free_exception(ptr %949) #24 + call void @__cxa_free_exception(ptr nonnull %949) #24 br label %1002 .loopexit728: ; preds = %968 @@ -8018,7 +8022,7 @@ _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFPN4no 27: ; preds = %.critedge %28 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %25) #24 + tail call void @__cxa_free_exception(ptr nonnull %25) #24 resume { ptr, i32 } %28 29: ; preds = %_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt8functionIFPN4nori10NoriObjectERKNS7_12PropertyListEEESt4lessIS5_ESaISt4pairIKS5_SE_EEE4findERSI_.exit @@ -9081,7 +9085,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %50, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE24_M_get_insert_unique_posERKS5_.exit, label %51 51: ; preds = %47 - %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %1) #28 + %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #28 %53 = getelementptr inbounds nuw i8, ptr %52, i64 32 %54 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %2) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit11 unwind label %55 @@ -9187,7 +9191,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %91, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_St9_IdentityIS5_ESt4lessIS5_ESaIS5_EE24_M_get_insert_unique_posERKS5_.exit, label %92 92: ; preds = %88 - %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %1) #28 + %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #28 %94 = getelementptr inbounds nuw i8, ptr %93, i64 32 %95 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %94) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit35 unwind label %96 @@ -9727,7 +9731,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %50, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St8functionIFPN4nori10NoriObjectERKNS9_12PropertyListEEEESt10_Select1stISH_ESt4lessIS5_ESaISH_EE24_M_get_insert_unique_posERS7_.exit, label %51 51: ; preds = %47 - %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %1) #28 + %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #28 %53 = getelementptr inbounds nuw i8, ptr %52, i64 32 %54 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %2) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit11 unwind label %55 @@ -9833,7 +9837,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %91, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_St8functionIFPN4nori10NoriObjectERKNS9_12PropertyListEEEESt10_Select1stISH_ESt4lessIS5_ESaISH_EE24_M_get_insert_unique_posERS7_.exit, label %92 92: ; preds = %88 - %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %1) #28 + %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #28 %94 = getelementptr inbounds nuw i8, ptr %93, i64 32 %95 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %94) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit35 unwind label %96 diff --git a/bench/ockam-rs/optimized/3g878jip6lhp1w7q.ll b/bench/ockam-rs/optimized/3g878jip6lhp1w7q.ll index cc2ea744db9..0be6726e230 100644 --- a/bench/ockam-rs/optimized/3g878jip6lhp1w7q.ll +++ b/bench/ockam-rs/optimized/3g878jip6lhp1w7q.ll @@ -28598,8 +28598,6 @@ define internal fastcc void @"_ZN4core3ptr118drop_in_place$LT$alloc..boxed..Box$ 3: ; preds = %0 %4 = landingpad { ptr, i32 } cleanup - %5 = icmp ne ptr %.0.val, null - tail call void @llvm.assume(i1 %5) tail call fastcc void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aad922b0a5543c0E"(ptr nonnull %.0.val, ptr nonnull %.8.val) #21 resume { ptr, i32 } %4 diff --git a/bench/oiio/optimized/Writer.cpp.ll b/bench/oiio/optimized/Writer.cpp.ll index a2bd7e60342..f672029895c 100644 --- a/bench/oiio/optimized/Writer.cpp.ll +++ b/bench/oiio/optimized/Writer.cpp.ll @@ -566,12 +566,8 @@ _ZNSt6vectorIhSaIhEED2Ev.exit: ; preds = %invoke.cont lpad12: ; preds = %invoke.cont %5 = landingpad { ptr, i32 } cleanup - %tobool.not.i.i.i8 = icmp eq ptr %pad.sroa.0.0, null - br i1 %tobool.not.i.i.i8, label %eh.resume, label %if.then.i.i.i9 - -if.then.i.i.i9: ; preds = %lpad12 tail call void @_ZdlPv(ptr noundef nonnull %pad.sroa.0.0) #18 - br label %eh.resume + resume { ptr, i32 } %5 if.end21: ; preds = %_ZNSt6vectorIhSaIhEED2Ev.exit, %entry br label %return @@ -579,9 +575,6 @@ if.end21: ; preds = %_ZNSt6vectorIhSaIhE return: ; preds = %_ZNSt6vectorIhSaIhEED2Ev.exit, %if.end21 %retval.1 = phi i1 [ false, %_ZNSt6vectorIhSaIhEED2Ev.exit ], [ true, %if.end21 ] ret i1 %retval.1 - -eh.resume: ; preds = %if.then.i.i.i9, %lpad12 - resume { ptr, i32 } %5 } declare i32 @__gxx_personality_v0(...) diff --git a/bench/oiio/optimized/argparse.cpp.ll b/bench/oiio/optimized/argparse.cpp.ll index 0804397e214..bec2e072448 100644 --- a/bench/oiio/optimized/argparse.cpp.ll +++ b/bench/oiio/optimized/argparse.cpp.ll @@ -1033,21 +1033,25 @@ land.lhs.true47: ; preds = %_ZNSt11char_traitsI %bcmp.i81 = call i32 @bcmp(ptr noundef nonnull dereferenceable(2) %spec.select, ptr noundef nonnull dereferenceable(2) @.str.5, i64 2) %cmp6.not.i.i82 = icmp ne i32 %bcmp.i81, 0 %or.cond183 = and i1 %cmp6.not.i.i82, %tobool155169 - br i1 %or.cond183, label %if.then54, label %if.end61 + br i1 %or.cond183, label %if.then54.thread, label %if.end61 + +if.then54.thread: ; preds = %land.lhs.true47 + call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp.i85) + br label %cond.true.i87 _ZN18OpenImageIO_v2_6_0neENS_17basic_string_viewIcSt11char_traitsIcEEES3_.exit84: ; preds = %invoke.cont35 br i1 %tobool155169, label %if.then54, label %if.end61 -if.then54: ; preds = %land.lhs.true47, %_ZN18OpenImageIO_v2_6_0neENS_17basic_string_viewIcSt11char_traitsIcEEES3_.exit84 - %pr.sroa.7.1202 = phi i64 [ 2, %land.lhs.true47 ], [ %pr.sroa.7.0150171, %_ZN18OpenImageIO_v2_6_0neENS_17basic_string_viewIcSt11char_traitsIcEEES3_.exit84 ] - %pr.sroa.0.1201 = phi ptr [ %spec.select, %land.lhs.true47 ], [ %pr.sroa.0.0147173, %_ZN18OpenImageIO_v2_6_0neENS_17basic_string_viewIcSt11char_traitsIcEEES3_.exit84 ] +if.then54: ; preds = %_ZN18OpenImageIO_v2_6_0neENS_17basic_string_viewIcSt11char_traitsIcEEES3_.exit84 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp.i85) - %tobool.not.not.i86 = icmp eq ptr %pr.sroa.0.1201, null + %tobool.not.not.i86 = icmp eq ptr %pr.sroa.0.0147173, null br i1 %tobool.not.not.i86, label %cond.end.thread.i91, label %cond.true.i87 -cond.true.i87: ; preds = %if.then54 +cond.true.i87: ; preds = %if.then54.thread, %if.then54 + %pr.sroa.0.1201208 = phi ptr [ %spec.select, %if.then54.thread ], [ %pr.sroa.0.0147173, %if.then54 ] + %pr.sroa.7.1202207 = phi i64 [ 2, %if.then54.thread ], [ %pr.sroa.7.0150171, %if.then54 ] call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i85) #31, !noalias !7 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp56, ptr noundef nonnull %pr.sroa.0.1201, i64 noundef %pr.sroa.7.1202, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i85) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcmRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp56, ptr noundef nonnull %pr.sroa.0.1201208, i64 noundef %pr.sroa.7.1202207, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp.i85) to label %cleanup.action.i90 unwind label %lpad.i89 cond.end.thread.i91: ; preds = %if.then54 diff --git a/bench/openexr/optimized/ImfDeepTiledOutputFile.cpp.ll b/bench/openexr/optimized/ImfDeepTiledOutputFile.cpp.ll index 03f43edb63c..b36b50b1bdd 100644 --- a/bench/openexr/optimized/ImfDeepTiledOutputFile.cpp.ll +++ b/bench/openexr/optimized/ImfDeepTiledOutputFile.cpp.ll @@ -1113,7 +1113,7 @@ lpad: ; preds = %invoke.cont36, %do. lpad35: ; preds = %invoke.cont %22 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #23 + call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %ehcleanup ehcleanup: ; preds = %lpad35, %lpad @@ -1774,7 +1774,7 @@ lpad3: ; preds = %if.then %1 = landingpad { ptr, i32 } catch ptr @_ZTIN7Iex_3_27BaseExcE catch ptr null - tail call void @__cxa_free_exception(ptr %exception) #23 + tail call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %catch.dispatch if.end: ; preds = %land.rhs.i.i, %_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_.exit @@ -2281,7 +2281,7 @@ lpad33: ; preds = %invoke.cont40, %inv lpad48: ; preds = %invoke.cont46 %9 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #23 + call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %ehcleanup ehcleanup: ; preds = %lpad48, %lpad33 @@ -2331,7 +2331,7 @@ lpad63: ; preds = %invoke.cont68, %inv lpad67: ; preds = %invoke.cont64 %13 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception66) #23 + call void @__cxa_free_exception(ptr nonnull %exception66) #23 br label %ehcleanup70 ehcleanup70: ; preds = %lpad67, %lpad63 @@ -2340,7 +2340,7 @@ ehcleanup70: ; preds = %lpad67, %lpad63 br label %ehcleanup195 for.inc: ; preds = %lor.lhs.false, %invoke.cont19 - %call.i.i = tail call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %i.sroa.0.0) #27 + %call.i.i = tail call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %i.sroa.0.0) #27 br label %for.cond, !llvm.loop !12 for.end: ; preds = %invoke.cont10 @@ -2365,7 +2365,7 @@ invoke.cont82: ; preds = %if.then79 lpad81: ; preds = %if.then79 %15 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception80) #23 + tail call void @__cxa_free_exception(ptr nonnull %exception80) #23 br label %ehcleanup195 if.else: ; preds = %invoke.cont76 @@ -2623,7 +2623,7 @@ for.inc170: ; preds = %_ZNSt6vectorIPN7Imf %slices.sroa.0.3 = phi ptr [ %call5.i.i.i.i.i.i36, %_ZNSt6vectorIPN7Imf_3_212_GLOBAL__N_113TOutSliceInfoESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %slices.sroa.0.1, %if.then.i.i35 ], [ %slices.sroa.0.2, %invoke.cont163 ] %slices.sroa.9.2 = phi ptr [ %incdec.ptr.i.i.i, %_ZNSt6vectorIPN7Imf_3_212_GLOBAL__N_113TOutSliceInfoESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %incdec.ptr.i.i, %if.then.i.i35 ], [ %slices.sroa.9.1, %invoke.cont163 ] %slices.sroa.20.2 = phi ptr [ %add.ptr19.i.i.i, %_ZNSt6vectorIPN7Imf_3_212_GLOBAL__N_113TOutSliceInfoESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %slices.sroa.20.0, %if.then.i.i35 ], [ %slices.sroa.20.1, %invoke.cont163 ] - %call.i.i84 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %i95.sroa.0.0) #27 + %call.i.i84 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %i95.sroa.0.0) #27 br label %for.cond101, !llvm.loop !13 for.end173: ; preds = %invoke.cont107 @@ -2870,7 +2870,7 @@ lpad3: ; preds = %if.then %5 = landingpad { ptr, i32 } cleanup catch ptr @_ZTIN7Iex_3_27BaseExcE - tail call void @__cxa_free_exception(ptr %exception) #23 + tail call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %ehcleanup121 lpad5: ; preds = %invoke.cont118.invoke, %if.end34, %invoke.cont18, %do.body @@ -2938,7 +2938,7 @@ lpad12: ; preds = %if.then10 %15 = landingpad { ptr, i32 } cleanup catch ptr @_ZTIN7Iex_3_27BaseExcE - tail call void @__cxa_free_exception(ptr %exception11) #23 + tail call void @__cxa_free_exception(ptr nonnull %exception11) #23 br label %ehcleanup121 if.end14: ; preds = %_ZNK7Imf_3_219DeepTiledOutputFile11isValidTileEiiii.exit84 @@ -2997,7 +2997,7 @@ lpad32: ; preds = %invoke.cont29 %18 = landingpad { ptr, i32 } cleanup catch ptr @_ZTIN7Iex_3_27BaseExcE - call void @__cxa_free_exception(ptr %exception31) #23 + call void @__cxa_free_exception(ptr nonnull %exception31) #23 br label %ehcleanup ehcleanup: ; preds = %lpad32, %lpad20 @@ -3265,7 +3265,7 @@ lpad18.i: ; preds = %invoke.cont16.i %42 = landingpad { ptr, i32 } cleanup catch ptr @_ZTIN7Iex_3_27BaseExcE - call void @__cxa_free_exception(ptr %exception.i) #23 + call void @__cxa_free_exception(ptr nonnull %exception.i) #23 br label %ehcleanup.i ehcleanup.i: ; preds = %lpad18.i, %lpad.i93 @@ -3443,7 +3443,7 @@ lpad52.i: ; preds = %invoke.cont49.i %55 = landingpad { ptr, i32 } cleanup catch ptr @_ZTIN7Iex_3_27BaseExcE - call void @__cxa_free_exception(ptr %exception51.i) #23 + call void @__cxa_free_exception(ptr nonnull %exception51.i) #23 br label %ehcleanup55.i ehcleanup55.i: ; preds = %lpad52.i, %lpad32.i @@ -4436,7 +4436,7 @@ lpad117: ; preds = %if.then115 %173 = landingpad { ptr, i32 } cleanup catch ptr @_ZTIN7Iex_3_27BaseExcE - call void @__cxa_free_exception(ptr %exception116) #23 + call void @__cxa_free_exception(ptr nonnull %exception116) #23 br label %ehcleanup121 if.end120: ; preds = %while.end98, %for.end @@ -4749,7 +4749,7 @@ lpad: ; preds = %invoke.cont10, %inv lpad18: ; preds = %invoke.cont16 %13 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #23 + call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %ehcleanup ehcleanup: ; preds = %lpad18, %lpad @@ -4838,7 +4838,7 @@ lpad27: ; preds = %invoke.cont34, %inv lpad43: ; preds = %invoke.cont40 %28 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception42) #23 + call void @__cxa_free_exception(ptr nonnull %exception42) #23 br label %ehcleanup46 ehcleanup46: ; preds = %lpad43, %lpad27 @@ -4907,7 +4907,7 @@ lpad55: ; preds = %invoke.cont62, %inv lpad71: ; preds = %invoke.cont68 %35 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception70) #23 + call void @__cxa_free_exception(ptr nonnull %exception70) #23 br label %ehcleanup74 ehcleanup74: ; preds = %lpad71, %lpad55 @@ -4976,7 +4976,7 @@ lpad84: ; preds = %invoke.cont91, %inv lpad100: ; preds = %invoke.cont97 %42 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception99) #23 + call void @__cxa_free_exception(ptr nonnull %exception99) #23 br label %ehcleanup103 ehcleanup103: ; preds = %lpad100, %lpad84 @@ -5043,7 +5043,7 @@ lpad113: ; preds = %invoke.cont120, %in lpad129: ; preds = %invoke.cont126 %47 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception128) #23 + call void @__cxa_free_exception(ptr nonnull %exception128) #23 br label %ehcleanup132 ehcleanup132: ; preds = %lpad129, %lpad113 @@ -5127,7 +5127,7 @@ lpad141: ; preds = %invoke.cont155, %in lpad164: ; preds = %invoke.cont161 %56 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception163) #23 + call void @__cxa_free_exception(ptr nonnull %exception163) #23 br label %ehcleanup167 ehcleanup167: ; preds = %lpad164, %lpad141 @@ -5341,7 +5341,7 @@ lpad208: ; preds = %if.then.i.i.i.i.i12 lpad219: ; preds = %if.then214 %81 = landingpad { ptr, i32 } cleanup - br label %ehcleanup312 + br label %if.then.i.i.i178 if.end232: ; preds = %invoke.cont220, %invoke.cont209 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp233) #23 @@ -5641,17 +5641,18 @@ _ZNSt6vectorIiSaIiEED2Ev.exit175: ; preds = %_ZNSt6vectorIiSaIiE %call1.i.i.i176 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %58) #23 ret void -ehcleanup312: ; preds = %lpad256, %lpad.i.i, %lpad219 - %.pn43 = phi { ptr, i32 } [ %lpad.phi, %lpad256 ], [ %82, %lpad.i.i ], [ %81, %lpad219 ] +ehcleanup312: ; preds = %lpad256, %lpad.i.i + %.pn43 = phi { ptr, i32 } [ %lpad.phi, %lpad256 ], [ %82, %lpad.i.i ] %tobool.not.i.i.i177 = icmp eq ptr %ly_list.sroa.0.0, null br i1 %tobool.not.i.i.i177, label %ehcleanup313, label %if.then.i.i.i178 -if.then.i.i.i178: ; preds = %ehcleanup312 +if.then.i.i.i178: ; preds = %lpad219, %ehcleanup312 + %.pn43221 = phi { ptr, i32 } [ %81, %ehcleanup312.thread ], [ %.pn43, %ehcleanup312 ] call void @_ZdlPv(ptr noundef nonnull %ly_list.sroa.0.0) #25 br label %ehcleanup313 ehcleanup313: ; preds = %if.then.i.i.i178, %ehcleanup312, %lpad208 - %.pn43.pn = phi { ptr, i32 } [ %80, %lpad208 ], [ %.pn43, %ehcleanup312 ], [ %.pn43, %if.then.i.i.i178 ] + %.pn43.pn = phi { ptr, i32 } [ %80, %lpad208 ], [ %.pn43, %ehcleanup312 ], [ %.pn43221, %if.then.i.i.i178 ] %tobool.not.i.i.i180 = icmp eq ptr %lx_list.sroa.0.0, null br i1 %tobool.not.i.i.i180, label %ehcleanup314, label %if.then.i.i.i181 @@ -6113,7 +6114,7 @@ invoke.cont: ; preds = %sw.bb26 lpad: ; preds = %sw.bb26 %9 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #23 + tail call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %eh.resume if.then31: ; preds = %entry @@ -6175,7 +6176,7 @@ invoke.cont67: ; preds = %sw.bb64 lpad66: ; preds = %sw.bb64 %16 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception65) #23 + tail call void @__cxa_free_exception(ptr nonnull %exception65) #23 br label %eh.resume sw.epilog68: ; preds = %sw.bb53, %sw.bb48, %if.then45 @@ -6220,7 +6221,7 @@ lpad84: ; preds = %invoke.cont88, %do. lpad87: ; preds = %invoke.cont85 %21 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception86) #23 + call void @__cxa_free_exception(ptr nonnull %exception86) #23 br label %ehcleanup ehcleanup: ; preds = %lpad87, %lpad84 @@ -6364,7 +6365,7 @@ lpad: ; preds = %invoke.cont, %invok lpad9: ; preds = %invoke.cont7 %6 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #23 + call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %ehcleanup ehcleanup: ; preds = %lpad9, %lpad @@ -6664,7 +6665,7 @@ lpad: ; preds = %invoke.cont11, %inv lpad10: ; preds = %invoke.cont8 %6 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #23 + call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %ehcleanup ehcleanup: ; preds = %lpad10, %lpad @@ -6741,7 +6742,7 @@ lpad: ; preds = %invoke.cont11, %inv lpad10: ; preds = %invoke.cont8 %6 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #23 + call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %ehcleanup ehcleanup: ; preds = %lpad10, %lpad @@ -6943,7 +6944,7 @@ lpad2: ; preds = %if.then %9 = landingpad { ptr, i32 } cleanup catch ptr @_ZTIN7Iex_3_27BaseExcE - tail call void @__cxa_free_exception(ptr %exception) #23 + tail call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %catch.dispatch catch.dispatch: ; preds = %lpad2, %lpad @@ -7123,7 +7124,7 @@ lpad4: ; preds = %invoke.cont5, %invo lpad12: ; preds = %invoke.cont10 %9 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #23 + call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %ehcleanup ehcleanup: ; preds = %lpad12, %lpad4 @@ -7155,7 +7156,7 @@ invoke.cont.i: ; preds = %if.then.i lpad.i: ; preds = %if.then.i %11 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception.i) #23 + tail call void @__cxa_free_exception(ptr nonnull %exception.i) #23 br label %ehcleanup79 invoke.cont15: ; preds = %call.i.noexc @@ -7448,7 +7449,7 @@ lpad5: ; preds = %invoke.cont22, %inv lpad30: ; preds = %invoke.cont28 %8 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %exception) #23 + call void @__cxa_free_exception(ptr nonnull %exception) #23 br label %ehcleanup ehcleanup: ; preds = %lpad30, %lpad5 diff --git a/bench/openjdk/optimized/whitebox.ll b/bench/openjdk/optimized/whitebox.ll index aaa019bb253..36a01530c56 100644 --- a/bench/openjdk/optimized/whitebox.ll +++ b/bench/openjdk/optimized/whitebox.ll @@ -36022,20 +36022,25 @@ _ZN16SymbolHandleBaseILb1EEC2EP6Symbol.exit: ; preds = %_ZNK7oopDesc5klassE %38 = call noundef ptr @_ZNK6Symbol11as_C_stringEv(ptr noundef nonnull align 4 dereferenceable(8) %22) #15 call void (ptr, ptr, ...) @_ZN12outputStream8print_crEPKcz(ptr noundef nonnull align 8 dereferenceable(56) %36, ptr noundef nonnull @.str.47, ptr noundef %37, ptr noundef %38) #15 call void @_Z29vm_exit_during_initializationPKcS0_(ptr noundef nonnull @.str.48, ptr noundef null) #15 + %.sroa.1.0..sroa_idx.i9 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %.sroa.1.0.copyload.i10 = load i32, ptr %.sroa.1.0..sroa_idx.i9, align 8 + call void @_ZN18constantPoolHandleD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #15 br label %39 -39: ; preds = %35, %_ZN16SymbolHandleBaseILb1EEC2EP6Symbol.exit +39: ; preds = %_ZN16SymbolHandleBaseILb1EEC2EP6Symbol.exit %.sroa.1.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %4, i64 8 %.sroa.1.0.copyload.i = load i32, ptr %.sroa.1.0..sroa_idx.i, align 8 call void @_ZN18constantPoolHandleD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %29) #15 br i1 %.not.i, label %_ZN16SymbolHandleBaseILb1EED2Ev.exit, label %40 -40: ; preds = %39 +40: ; preds = %35, %39 + %.sroa.1.0.copyload.i11 = phi i32 [ %.sroa.1.0.copyload.i10, %.thread ], [ %.sroa.1.0.copyload.i, %38 ] call void @_ZN6Symbol18decrement_refcountEv(ptr noundef nonnull align 4 dereferenceable(8) %22) #15 br label %_ZN16SymbolHandleBaseILb1EED2Ev.exit _ZN16SymbolHandleBaseILb1EED2Ev.exit: ; preds = %39, %40 - ret i32 %.sroa.1.0.copyload.i + %.sroa.1.0.copyload.i12 = phi i32 [ %.sroa.1.0.copyload.i, %38 ], [ %.sroa.1.0.copyload.i11, %39 ] + ret i32 %.sroa.1.0.copyload.i12 } declare noundef ptr @_ZNK5Klass13external_nameEv(ptr noundef nonnull align 8 dereferenceable(196)) local_unnamed_addr #1 diff --git a/bench/openjdk/optimized/xPageAllocator.ll b/bench/openjdk/optimized/xPageAllocator.ll index 113abf7aa5b..c7c51dfcd03 100644 --- a/bench/openjdk/optimized/xPageAllocator.ll +++ b/bench/openjdk/optimized/xPageAllocator.ll @@ -961,8 +961,8 @@ define hidden void @_ZN14XPageAllocator12destroy_pageEP5XPage(ptr noundef nonnul _ZN7XLockerI5XLockEC2EPS0_.exit.i.i: ; preds = %10, %2 %12 = getelementptr inbounds nuw i8, ptr %0, i64 544 %13 = load i64, ptr %12, align 8 - %.not.i.i = icmp ne i64 %13, 0 - br i1 %.not.i.i, label %14, label %17 + %.not.i.i = icmp eq i64 %13, 0 + br i1 %.not.i.i, label %17, label %14 14: ; preds = %_ZN7XLockerI5XLockEC2EPS0_.exit.i.i %15 = getelementptr inbounds nuw i8, ptr %0, i64 552 @@ -978,9 +978,7 @@ _ZN7XLockerI5XLockEC2EPS0_.exit.i.i: ; preds = %10, %2 _ZN15XSafeDeleteImplI5XPageE15deferred_deleteEPS0_.exit.i: ; preds = %18, %17 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) - %20 = icmp eq ptr %1, null - %or.cond.i = or i1 %20, %.not.i.i - br i1 %or.cond.i, label %_ZN15XSafeDeleteImplI5XPageEclEPS0_.exit, label %21 + br i1 %.not.i.i, label %21, label %_ZN15XSafeDeleteImplI5XPageEclEPS0_.exit 21: ; preds = %_ZN15XSafeDeleteImplI5XPageE15deferred_deleteEPS0_.exit.i call void @_ZN5XPageD1Ev(ptr noundef nonnull align 8 dereferenceable(136) %1) #14 diff --git a/bench/openjdk/optimized/zThread.ll b/bench/openjdk/optimized/zThread.ll index 470bd171939..72cfc68b0a7 100644 --- a/bench/openjdk/optimized/zThread.ll +++ b/bench/openjdk/optimized/zThread.ll @@ -59,29 +59,30 @@ define hidden void @_ZN7ZThread11run_serviceEv(ptr noundef nonnull align 8 deref tail call void %4(ptr noundef nonnull align 8 dereferenceable(918) %0) #4 %5 = load ptr, ptr @Terminator_lock, align 8 %.not.i.i = icmp eq ptr %5, null - br i1 %.not.i.i, label %_ZN13MonitorLockerC2EP7MonitorN5Mutex18SafepointCheckFlagE.exit, label %6 + br i1 %.not.i.i, label %6, label %_ZN13MonitorLockerC2EP7MonitorN5Mutex18SafepointCheckFlagE.exit 6: ; preds = %1 - tail call void @_ZN5Mutex28lock_without_safepoint_checkEv(ptr noundef nonnull align 8 dereferenceable(104) %5) #4 - br label %_ZN13MonitorLockerC2EP7MonitorN5Mutex18SafepointCheckFlagE.exit + %6 = tail call noundef zeroext i1 @_ZNK18ConcurrentGCThread16should_terminateEv(ptr noundef nonnull align 8 dereferenceable(918) %0) #4 + br i1 %6, label %_ZN13MonitorLockerD2Ev.exit, label %_ZN13MonitorLocker4waitEl.exit -_ZN13MonitorLockerC2EP7MonitorN5Mutex18SafepointCheckFlagE.exit: ; preds = %1, %6 +_ZN13MonitorLockerC2EP7MonitorN5Mutex18SafepointCheckFlagE.exit: ; preds = %1 + tail call void @_ZN5Mutex28lock_without_safepoint_checkEv(ptr noundef nonnull align 8 dereferenceable(104) %5) #4 %7 = tail call noundef zeroext i1 @_ZNK18ConcurrentGCThread16should_terminateEv(ptr noundef nonnull align 8 dereferenceable(918) %0) #4 - br i1 %7, label %._crit_edge, label %_ZN13MonitorLocker4waitEl.exit + br i1 %7, label %._crit_edge.thread3, label %_ZN13MonitorLocker4waitEl.exit -_ZN13MonitorLocker4waitEl.exit: ; preds = %_ZN13MonitorLockerC2EP7MonitorN5Mutex18SafepointCheckFlagE.exit, %_ZN13MonitorLocker4waitEl.exit +_ZN13MonitorLocker4waitEl.exit: ; preds = %_ZN13MonitorLockerC2EP7MonitorN5Mutex18SafepointCheckFlagE.exit, %6 + br label %_ZN13MonitorLocker4waitEl.exit + +_ZN13MonitorLocker4waitEl.exit: ; preds = %_ZN13MonitorLocker4waitEl.exit.preheader, %_ZN13MonitorLocker4waitEl.exit %8 = tail call noundef zeroext i1 @_ZN7Monitor28wait_without_safepoint_checkEm(ptr noundef nonnull align 8 dereferenceable(104) %5, i64 noundef 0) #4 %9 = tail call noundef zeroext i1 @_ZNK18ConcurrentGCThread16should_terminateEv(ptr noundef nonnull align 8 dereferenceable(918) %0) #4 - br i1 %9, label %._crit_edge, label %_ZN13MonitorLocker4waitEl.exit, !llvm.loop !6 - -._crit_edge: ; preds = %_ZN13MonitorLocker4waitEl.exit, %_ZN13MonitorLockerC2EP7MonitorN5Mutex18SafepointCheckFlagE.exit - br i1 %.not.i.i, label %_ZN13MonitorLockerD2Ev.exit, label %10 + br i1 %9, label %._crit_edge.thread3, label %_ZN13MonitorLocker4waitEl.exit, !llvm.loop !6 -10: ; preds = %._crit_edge +10: ; preds = %_ZN13MonitorLocker4waitEl.exit, %6 tail call void @_ZN5Mutex6unlockEv(ptr noundef nonnull align 8 dereferenceable(104) %5) #4 br label %_ZN13MonitorLockerD2Ev.exit -_ZN13MonitorLockerD2Ev.exit: ; preds = %._crit_edge, %10 +_ZN13MonitorLockerD2Ev.exit: ; preds = %6, %10 ret void } diff --git a/bench/openmpi/optimized/coll_base_scan.ll b/bench/openmpi/optimized/coll_base_scan.ll index 624d2b59930..bc3a295c24e 100644 --- a/bench/openmpi/optimized/coll_base_scan.ll +++ b/bench/openmpi/optimized/coll_base_scan.ll @@ -130,12 +130,12 @@ ompi_datatype_copy_content_same_ddt.exit72.thread: ; preds = %54, %49, %46 br i1 %.not55, label %63, label %62 62: ; preds = %ompi_datatype_copy_content_same_ddt.exit72.thread - tail call void @free(ptr noundef %44) #5 + tail call void @free(ptr noundef nonnull %44) #5 br label %ompi_datatype_copy_content_same_ddt.exit 63: ; preds = %ompi_datatype_copy_content_same_ddt.exit72.thread tail call fastcc void @ompi_op_reduce(ptr noundef %4, ptr noundef %48, ptr noundef %1, i64 noundef %25, ptr noundef %3) - tail call void @free(ptr noundef %44) #5 + tail call void @free(ptr noundef nonnull %44) #5 br label %ompi_datatype_copy_content_same_ddt.exit.thread ompi_datatype_copy_content_same_ddt.exit.thread: ; preds = %19, %13, %63, %12 @@ -454,7 +454,7 @@ ompi_coll_base_sendrecv.exit.us: ; preds = %69, %67 ompi_coll_base_sendrecv.exit: ; preds = %82, %84 %.0.i115 = phi i32 [ %83, %82 ], [ %85, %84 ] %.not95 = icmp eq i32 %.0.i115, 0 - br i1 %.not95, label %86, label %ompi_datatype_copy_content_same_ddt.exit + br i1 %.not95, label %86, label %ompi_datatype_copy_content_same_ddt.exit.thread147 86: ; preds = %ompi_coll_base_sendrecv.exit %87 = icmp sgt i32 %.val, %78 @@ -473,23 +473,25 @@ ompi_coll_base_sendrecv.exit: ; preds = %82, %84 %91 = icmp slt i32 %90, %.val98.val br i1 %91, label %.lr.ph.split, label %ompi_datatype_copy_content_same_ddt.exit, !llvm.loop !7 -ompi_datatype_copy_content_same_ddt.exit: ; preds = %.lr.ph.i104, %ompi_coll_base_sendrecv.exit, %89, %ompi_coll_base_sendrecv.exit.us, %75, %opal_datatype_span.exit - %.074 = phi i32 [ -2, %opal_datatype_span.exit ], [ %.0.i115.us, %ompi_coll_base_sendrecv.exit.us ], [ 0, %75 ], [ %.0.i115, %ompi_coll_base_sendrecv.exit ], [ 0, %89 ], [ %54, %.lr.ph.i104 ] +ompi_datatype_copy_content_same_ddt.exit: ; preds = %.lr.ph.i104, %89, %ompi_coll_base_sendrecv.exit.us, %75, %opal_datatype_span.exit + %.074 = phi i32 [ -2, %opal_datatype_span.exit ], [ %.0.i115.us, %ompi_coll_base_sendrecv.exit.us ], [ 0, %75 ], [ 0, %89 ], [ %54, %.lr.ph.i104 ] br i1 %46, label %93, label %92 -92: ; preds = %ompi_datatype_copy_content_same_ddt.exit +92: ; preds = %ompi_coll_base_sendrecv.exit, %ompi_datatype_copy_content_same_ddt.exit + %.074149 = phi i32 [ %.074, %ompi_datatype_copy_content_same_ddt.exit ], [ %.0.i115, %ompi_coll_base_sendrecv.exit ] tail call void @free(ptr noundef nonnull %44) #5 br label %93 93: ; preds = %92, %ompi_datatype_copy_content_same_ddt.exit - br i1 %47, label %.thread, label %94 + %.074150 = phi i32 [ %.074149, %ompi_datatype_copy_content_same_ddt.exit.thread147 ], [ %.074, %ompi_datatype_copy_content_same_ddt.exit ] + br i1 %47, label %.thread, label %93 94: ; preds = %93 tail call void @free(ptr noundef nonnull %45) #5 br label %.thread .thread: ; preds = %.lr.ph.i, %93, %94, %ompi_datatype_copy_content_same_ddt.exit.thread, %7 - %.0 = phi i32 [ 0, %7 ], [ 0, %ompi_datatype_copy_content_same_ddt.exit.thread ], [ %.074, %94 ], [ %.074, %93 ], [ %18, %.lr.ph.i ] + %.0 = phi i32 [ 0, %7 ], [ 0, %ompi_datatype_copy_content_same_ddt.exit.thread ], [ %.074150, %94 ], [ %.074150, %93 ], [ %18, %.lr.ph.i ] ret i32 %.0 } diff --git a/bench/openmpi/optimized/sharedfp_individual_collaborate_data.ll b/bench/openmpi/optimized/sharedfp_individual_collaborate_data.ll index 47cd150ec74..a58a6a6d59e 100644 --- a/bench/openmpi/optimized/sharedfp_individual_collaborate_data.ll +++ b/bench/openmpi/optimized/sharedfp_individual_collaborate_data.ll @@ -92,7 +92,7 @@ define i32 @mca_sharedfp_individual_collaborate_data(ptr noundef captures(none) 33: ; preds = %30 %34 = call i32 @mca_sharedfp_individual_get_timestamps_and_reclengths(ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef nonnull %0) %.not141 = icmp eq i32 %34, 0 - br i1 %.not141, label %35, label %.thread252 + br i1 %.not141, label %35, label %.thread 35: ; preds = %33 %36 = getelementptr inbounds nuw i8, ptr %1, i64 40 @@ -104,7 +104,7 @@ define i32 @mca_sharedfp_individual_collaborate_data(ptr noundef captures(none) %42 = load ptr, ptr %41, align 8 %43 = call i32 %40(ptr noundef nonnull %3, i32 noundef 1, ptr noundef nonnull @ompi_mpi_int, ptr noundef nonnull %28, i32 noundef 1, ptr noundef nonnull @ompi_mpi_int, ptr noundef %37, ptr noundef %42) #8 %.not142 = icmp eq i32 %43, 0 - br i1 %.not142, label %44, label %.thread252 + br i1 %.not142, label %44, label %.thread 44: ; preds = %35 %45 = load i32, ptr @mca_sharedfp_individual_verbose, align 4 @@ -457,23 +457,17 @@ mca_sharedfp_individual_getoffset.exit._crit_edge: ; preds = %mca_sharedfp_indiv %.not149 = icmp eq i32 %212, 0 br i1 %.not149, label %157, label %.loopexit.loopexit -.thread252: ; preds = %35, %33 - %.0111.ph = phi i32 [ %43, %35 ], [ %34, %33 ] - call void @free(ptr noundef nonnull %28) #8 - call void @free(ptr noundef nonnull %31) #8 - br label %215 - .loopexit.loopexit: ; preds = %174, %206, %157, %167 %.0111.ph206 = phi i32 [ -2, %167 ], [ 0, %157 ], [ %212, %206 ], [ %181, %174 ] %.0108.ph = phi ptr [ null, %167 ], [ %.2110, %157 ], [ %.2110, %206 ], [ %.2110, %174 ] %.pre239.pre.pre = load ptr, ptr %5, align 8 br label %._crit_edge.thread -._crit_edge.thread: ; preds = %61, %mca_sharedfp_individual_assign_globaloffset.exit, %86, %116, %101, %._crit_edge190, %._crit_edge, %.preheader, %.loopexit.loopexit - %.pre239.pre = phi ptr [ null, %._crit_edge ], [ %.pre239.pre.pre241, %._crit_edge190 ], [ %.pre239.pre.pre241, %101 ], [ %.pre239.pre.pre241, %116 ], [ null, %86 ], [ %.pre239.pre.pre241, %mca_sharedfp_individual_assign_globaloffset.exit ], [ %.pre239.pre.pre241, %.preheader ], [ %.pre239.pre.pre, %.loopexit.loopexit ], [ null, %61 ] - %213 = phi ptr [ null, %._crit_edge ], [ %89, %._crit_edge190 ], [ %89, %101 ], [ %89, %116 ], [ null, %86 ], [ %89, %mca_sharedfp_individual_assign_globaloffset.exit ], [ %89, %.preheader ], [ %89, %.loopexit.loopexit ], [ null, %61 ] - %.0111 = phi i32 [ 0, %._crit_edge ], [ %100, %._crit_edge190 ], [ %115, %101 ], [ %130, %116 ], [ -2, %86 ], [ -2, %mca_sharedfp_individual_assign_globaloffset.exit ], [ 0, %.preheader ], [ %.0111.ph206, %.loopexit.loopexit ], [ 0, %61 ] - %.0108 = phi ptr [ null, %._crit_edge ], [ null, %._crit_edge190 ], [ null, %101 ], [ null, %116 ], [ null, %86 ], [ null, %mca_sharedfp_individual_assign_globaloffset.exit ], [ %152, %.preheader ], [ %.0108.ph, %.loopexit.loopexit ], [ null, %61 ] +._crit_edge.thread: ; preds = %mca_sharedfp_individual_assign_globaloffset.exit, %86, %._crit_edge190, %._crit_edge, %.preheader, %.loopexit.loopexit, %61, %116, %101, %35, %33 + %.pre239.pre = phi ptr [ %.pre239.pre.pre241, %116 ], [ %.pre239.pre.pre242, %101 ], [ null, %35 ], [ null, %33 ], [ null, %._crit_edge ], [ %.pre239.pre.pre242, %._crit_edge190 ], [ null, %86 ], [ %.pre239.pre.pre241, %mca_sharedfp_individual_assign_globaloffset.exit ], [ %.pre239.pre.pre241, %.preheader ], [ %.pre239.pre.pre, %.loopexit.loopexit ], [ null, %61 ] + %213 = phi ptr [ null, %116 ], [ null, %101 ], [ null, %35 ], [ null, %33 ], [ null, %._crit_edge ], [ null, %._crit_edge190 ], [ null, %86 ], [ null, %mca_sharedfp_individual_assign_globaloffset.exit ], [ %152, %.preheader ], [ %.0108.ph, %.loopexit.loopexit ], [ null, %61 ] + %.0111 = phi i32 [ %130, %116 ], [ %115, %101 ], [ %43, %35 ], [ %34, %33 ], [ 0, %._crit_edge ], [ %100, %._crit_edge190 ], [ -2, %86 ], [ -2, %mca_sharedfp_individual_assign_globaloffset.exit ], [ 0, %.preheader ], [ %.0111.ph206, %.loopexit.loopexit ], [ 0, %61 ] + %.0108 = phi ptr [ %89, %116 ], [ %89, %101 ], [ null, %35 ], [ null, %33 ], [ null, %._crit_edge ], [ %89, %._crit_edge190 ], [ null, %86 ], [ %89, %mca_sharedfp_individual_assign_globaloffset.exit ], [ %89, %.preheader ], [ %89, %.loopexit.loopexit ], [ null, %61 ] call void @free(ptr noundef %28) #8 call void @free(ptr noundef nonnull %31) #8 %.not152 = icmp eq ptr %.pre239.pre, null @@ -483,10 +477,10 @@ mca_sharedfp_individual_getoffset.exit._crit_edge: ; preds = %mca_sharedfp_indiv call void @free(ptr noundef nonnull %.pre239.pre) #8 br label %215 -215: ; preds = %.thread252, %.thread246, %214, %._crit_edge.thread - %216 = phi ptr [ null, %.thread246 ], [ %213, %214 ], [ %213, %._crit_edge.thread ], [ null, %.thread252 ] - %.0111164251 = phi i32 [ -2, %.thread246 ], [ %.0111, %214 ], [ %.0111, %._crit_edge.thread ], [ %.0111.ph, %.thread252 ] - %.0108166250 = phi ptr [ null, %.thread246 ], [ %.0108, %214 ], [ %.0108, %._crit_edge.thread ], [ null, %.thread252 ] +215: ; preds = %.thread246, %214, %._crit_edge.thread + %216 = phi ptr [ null, %.thread246 ], [ %213, %214 ], [ %213, %._crit_edge.thread ] + %.0111164251 = phi i32 [ -2, %.thread246 ], [ %.0111, %214 ], [ %.0111, %._crit_edge.thread ] + %.0108166250 = phi ptr [ null, %.thread246 ], [ %.0108165, %214 ], [ %.0108165, %._crit_edge.thread ] %217 = load ptr, ptr %6, align 8 %.not153 = icmp eq ptr %217, null br i1 %.not153, label %219, label %218 diff --git a/bench/openssl/optimized/libcrypto-lib-http_client.ll b/bench/openssl/optimized/libcrypto-lib-http_client.ll index 3a2a60eb851..d4c897fb11f 100644 --- a/bench/openssl/optimized/libcrypto-lib-http_client.ll +++ b/bench/openssl/optimized/libcrypto-lib-http_client.ll @@ -2820,7 +2820,7 @@ if.then88: ; preds = %for.cond84 %cmp89 = icmp eq i32 %call85, 0 %cond91 = select i1 %cmp89, ptr @.str.37, ptr @.str.38 %call92 = tail call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %bio_err, ptr noundef nonnull @.str.36, ptr noundef %prog, ptr noundef nonnull %cond91) #9 - br label %end + br label %if.then138 if.end93: ; preds = %for.cond84 %call94 = tail call i32 @BIO_gets(ptr noundef nonnull %call2, ptr noundef %call, i32 noundef 8192) #9 @@ -2849,14 +2849,14 @@ if.then104: ; preds = %if.end98 tail call void @ERR_set_debug(ptr noundef nonnull @.str, i32 noundef 1443, ptr noundef nonnull @__func__.OSSL_HTTP_proxy_connect) #9 tail call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 61, i32 noundef 126, ptr noundef null) #9 %call105 = tail call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %bio_err, ptr noundef nonnull @.str.40, ptr noundef %prog) #9 - br label %end + br label %if.then138 if.then110: ; preds = %cond.true102, %cond.true102.tail tail call void @ERR_new() #9 tail call void @ERR_set_debug(ptr noundef nonnull @.str, i32 noundef 1450, ptr noundef nonnull @__func__.OSSL_HTTP_proxy_connect) #9 tail call void (i32, i32, ptr, ...) @ERR_set_error(i32 noundef 61, i32 noundef 106, ptr noundef null) #9 %call111 = tail call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %bio_err, ptr noundef nonnull @.str.42, ptr noundef %prog, i32 noundef 3, ptr noundef nonnull %add.ptr) #9 - br label %end + br label %if.then138 if.end112: ; preds = %cond.true102.tail %add.ptr113 = getelementptr inbounds nuw i8, ptr %call, i64 8 @@ -2910,26 +2910,25 @@ while.end: ; preds = %while.body, %land.r do.body: ; preds = %if.end112.tail, %do.body %call133 = tail call i32 @BIO_gets(ptr noundef nonnull %call2, ptr noundef nonnull %call, i32 noundef 8192) #9 %cmp134 = icmp sgt i32 %call133, 2 - br i1 %cmp134, label %do.body, label %end, !llvm.loop !16 + br i1 %cmp134, label %do.body, label %if.then138, !llvm.loop !16 end.critedge: ; preds = %if.end61, %if.then14.i, %if.end48 tail call void @CRYPTO_clear_free(ptr noundef nonnull %call44, i64 noundef %len.0, ptr noundef nonnull @.str, i32 noundef 1405) #9 br label %if.then138 -end: ; preds = %do.body, %while.end, %if.then110, %if.then104, %if.then88, %if.then26, %if.then - %ret.0 = phi i32 [ 0, %if.then ], [ 0, %if.then26 ], [ 0, %if.then88 ], [ 0, %while.end ], [ 0, %if.then110 ], [ 0, %if.then104 ], [ 1, %do.body ] +end: ; preds = %while.end, %if.then26, %if.then %cmp136.not = icmp eq ptr %call2, null br i1 %cmp136.not, label %if.end143, label %if.then138 -if.then138: ; preds = %if.end42, %end.critedge, %end - %ret.074 = phi i32 [ %ret.0, %end ], [ 0, %end.critedge ], [ 0, %if.end42 ] +if.then138: ; preds = %do.body, %if.then88, %if.then104, %if.then110, %if.end42, %end.critedge, %end + %ret.074 = phi i32 [ 0, %end ], [ 0, %end.critedge ], [ 0, %if.end42 ], [ 0, %if.then104 ], [ 0, %if.then110 ], [ 0, %if.then88 ], [ 1, %do.body ] %call139 = tail call i64 @BIO_ctrl(ptr noundef nonnull %call2, i32 noundef 11, i64 noundef 0, ptr noundef null) #9 %call141 = tail call ptr @BIO_pop(ptr noundef nonnull %call2) #9 %call142 = tail call i32 @BIO_free(ptr noundef nonnull %call2) #9 br label %if.end143 if.end143: ; preds = %if.then138, %end - %ret.075 = phi i32 [ %ret.074, %if.then138 ], [ %ret.0, %end ] + %ret.075 = phi i32 [ %ret.074, %if.then138 ], [ 0, %end ] tail call void @CRYPTO_free(ptr noundef %call, ptr noundef nonnull @.str, i32 noundef 1491) #9 ret i32 %ret.075 } diff --git a/bench/openvdb/optimized/points.cc.ll b/bench/openvdb/optimized/points.cc.ll index 8b752311437..f68d7cac386 100644 --- a/bench/openvdb/optimized/points.cc.ll +++ b/bench/openvdb/optimized/points.cc.ll @@ -178816,10 +178816,6 @@ lpad83: ; preds = %if.then.i.i.i.i.i12 lpad87: ; preds = %invoke.cont84 %71 = landingpad { ptr, i32 } cleanup - %tobool.not.i.i.i123 = icmp eq ptr %tempData.sroa.0.0, null - br i1 %tobool.not.i.i.i123, label %ehcleanup92, label %if.then.i.i.i124 - -if.then.i.i.i124: ; preds = %lpad87 call void @_ZdlPv(ptr noundef nonnull %tempData.sroa.0.0) #30 br label %ehcleanup92 @@ -178897,8 +178893,8 @@ if.end8.sink.split.i.i.i.i148: ; preds = %_ZN9__gnu_cxx27__ex call void %82(ptr noundef nonnull align 8 dereferenceable(16) %72) #16 br label %if.end94thread-pre-split -ehcleanup92: ; preds = %if.then.i.i.i124, %lpad87, %lpad83, %lpad75 - %.pn41 = phi { ptr, i32 } [ %68, %lpad75 ], [ %70, %lpad83 ], [ %71, %lpad87 ], [ %71, %if.then.i.i.i124 ] +ehcleanup92: ; preds = %lpad87, %lpad83, %lpad75 + %.pn41 = phi { ptr, i32 } [ %68, %lpad75 ], [ %71, %lpad87 ], [ %70, %lpad83 ] call void @_ZNSt10shared_ptrIN7openvdb5v11_02io14StreamMetadataEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %metadata) #16 br label %ehcleanup226 @@ -180386,7 +180382,7 @@ invoke.cont2: ; preds = %lor.lhs.false.i.i br i1 %cmp.i.i.i.i, label %if.end, label %if.then if.then: ; preds = %invoke.cont2 - %call.i1.i.i = call noundef nonnull ptr @_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_(ptr noundef %__y.addr.1.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #16 + %call.i1.i.i = call noundef nonnull ptr @_ZSt28_Rb_tree_rebalance_for_erasePSt18_Rb_tree_node_baseRS_(ptr noundef nonnull %__y.addr.1.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #16 %second.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i1.i.i, i64 64 %5 = load ptr, ptr %second.i.i.i.i.i.i.i.i, align 8 %cmp.i.not.i.i.i.i.i.i.i.i.i.i = icmp eq ptr %5, null @@ -181060,7 +181056,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #31 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #31 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -181166,7 +181162,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #31 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #31 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 @@ -183633,7 +183629,7 @@ invoke.cont36: ; preds = %delete.notnull.i.i9 to label %for.inc unwind label %lpad.loopexit for.inc: ; preds = %_ZN7openvdb5v11_04math5Coord8lessThanERKS2_S4_.exit.i19, %invoke.cont36, %invoke.cont16, %if.then25 - %call.i = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %i.sroa.0.0111) #31 + %call.i = call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %i.sroa.0.0111) #31 %cmp.i.not = icmp eq ptr %call.i, %1 br i1 %cmp.i.not, label %invoke.cont43, label %invoke.cont, !llvm.loop !1398 @@ -188191,7 +188187,7 @@ for.body20: ; preds = %for.end, %for.inc25 to label %for.inc25 unwind label %lpad.loopexit for.inc25: ; preds = %for.body20 - %call.i8 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %i12.sroa.0.019) #31 + %call.i8 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %i12.sroa.0.019) #31 %cmp.i4.not = icmp eq ptr %call.i8, %0 br i1 %cmp.i4.not, label %for.end27, label %for.body20, !llvm.loop !1473 @@ -188257,7 +188253,7 @@ for.body: ; preds = %for.body.lr.ph, %_Z delete.notnull: ; preds = %for.body call void @_ZN7openvdb5v11_06points17PointDataLeafNodeINS0_10PointIndexIjLj1EEELj3EED2Ev(ptr noundef nonnull align 8 dereferenceable(106) %3) #16 - call void @_ZdlPv(ptr noundef %3) #30 + call void @_ZdlPv(ptr noundef nonnull %3) #30 %and.i = and i32 %iter.sroa.1.015, 63 %sh_prom.i = zext nneg i32 %and.i to i64 %shl.i = shl nuw i64 1, %sh_prom.i diff --git a/bench/pbrt-v4/optimized/parser.cpp.ll b/bench/pbrt-v4/optimized/parser.cpp.ll index 091ff785091..8e97c5fed5f 100644 --- a/bench/pbrt-v4/optimized/parser.cpp.ll +++ b/bench/pbrt-v4/optimized/parser.cpp.ll @@ -25314,7 +25314,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %8 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %8) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %8) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -25491,7 +25491,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %8 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRPKcJEEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES3_OT_DpOT0_(ptr noundef %s, ptr noundef %8, ptr noundef nonnull align 8 dereferenceable(8) %args) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRPKcJEEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES3_OT_DpOT0_(ptr noundef nonnull %s, ptr noundef %8, ptr noundef nonnull align 8 dereferenceable(8) %args) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -25793,7 +25793,7 @@ lpad43: ; preds = %invoke.cont42 done: ; preds = %invoke.cont35, %invoke.cont44, %invoke.cont17 %9 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %9) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %9) to label %cleanup unwind label %lpad cleanup: ; preds = %done @@ -26461,7 +26461,7 @@ if.else48.cont: ; preds = %if.else48.invoke done: ; preds = %invoke.cont36, %invoke.cont45, %invoke.cont14 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %10) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %10) to label %invoke.cont52 unwind label %lpad invoke.cont52: ; preds = %done @@ -26844,7 +26844,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %7) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %7) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -26990,7 +26990,7 @@ done.sink.split: ; preds = %invoke.cont49, %inv done: ; preds = %done.sink.split, %if.then8 %6 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %6) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %6) to label %cleanup unwind label %lpad cleanup: ; preds = %done @@ -27188,7 +27188,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %7) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %7) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -27380,7 +27380,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %7) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %7) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -28520,7 +28520,7 @@ if.else48.cont: ; preds = %if.else48.invoke done: ; preds = %invoke.cont36, %invoke.cont45, %invoke.cont14 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJEEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcOT_DpOT0_(ptr noundef %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJEEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcOT_DpOT0_(ptr noundef nonnull %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args) to label %invoke.cont52 unwind label %lpad invoke.cont52: ; preds = %done @@ -28719,7 +28719,7 @@ if.else48.cont: ; preds = %if.else48.invoke done: ; preds = %invoke.cont36, %invoke.cont45, %invoke.cont14 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %10) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %10) to label %invoke.cont52 unwind label %lpad invoke.cont52: ; preds = %done @@ -28958,7 +28958,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %7) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %7) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -29118,7 +29118,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %7) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %7) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -29278,7 +29278,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %7) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %7) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -29438,7 +29438,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %7) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %7) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -29626,7 +29626,7 @@ lpad43: ; preds = %invoke.cont42 done: ; preds = %invoke.cont35, %invoke.cont44, %invoke.cont17 %9 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %9) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %9) to label %cleanup unwind label %lpad cleanup: ; preds = %done @@ -30194,7 +30194,7 @@ if.else45.cont: ; preds = %if.else45.invoke done: ; preds = %invoke.cont33, %invoke.cont42 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRA4_KcJRA2_S2_RPS2_S4_S8_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_OT_DpOT0_(ptr noundef %s, ptr noundef %7, ptr noundef nonnull align 1 dereferenceable(4) %args, ptr noundef nonnull align 1 dereferenceable(2) %args1, ptr noundef nonnull align 8 dereferenceable(8) %args3, ptr noundef nonnull align 1 dereferenceable(4) %args5, ptr noundef nonnull align 8 dereferenceable(8) %args7) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRA4_KcJRA2_S2_RPS2_S4_S8_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_OT_DpOT0_(ptr noundef nonnull %s, ptr noundef %7, ptr noundef nonnull align 1 dereferenceable(4) %args, ptr noundef nonnull align 1 dereferenceable(2) %args1, ptr noundef nonnull align 8 dereferenceable(8) %args3, ptr noundef nonnull align 1 dereferenceable(4) %args5, ptr noundef nonnull align 8 dereferenceable(8) %args7) to label %invoke.cont49 unwind label %lpad invoke.cont49: ; preds = %done @@ -30354,7 +30354,7 @@ if.else43.cont: ; preds = %if.else43.invoke done: ; preds = %invoke.cont31, %invoke.cont40 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRA2_KcJRPS2_RA4_S2_S6_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_OT_DpOT0_(ptr noundef %s, ptr noundef %7, ptr noundef nonnull align 1 dereferenceable(2) %args, ptr noundef nonnull align 8 dereferenceable(8) %args1, ptr noundef nonnull align 1 dereferenceable(4) %args3, ptr noundef nonnull align 8 dereferenceable(8) %args5) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRA2_KcJRPS2_RA4_S2_S6_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_OT_DpOT0_(ptr noundef nonnull %s, ptr noundef %7, ptr noundef nonnull align 1 dereferenceable(2) %args, ptr noundef nonnull align 8 dereferenceable(8) %args1, ptr noundef nonnull align 1 dereferenceable(4) %args3, ptr noundef nonnull align 8 dereferenceable(8) %args5) to label %invoke.cont47 unwind label %lpad invoke.cont47: ; preds = %done @@ -30488,7 +30488,7 @@ if.else41.cont: ; preds = %if.else41.invoke done: ; preds = %invoke.cont29, %invoke.cont38 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRPKcJRA4_S2_S4_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES3_OT_DpOT0_(ptr noundef %s, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(8) %args, ptr noundef nonnull align 1 dereferenceable(4) %args1, ptr noundef nonnull align 8 dereferenceable(8) %args3) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRPKcJRA4_S2_S4_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES3_OT_DpOT0_(ptr noundef nonnull %s, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(8) %args, ptr noundef nonnull align 1 dereferenceable(4) %args1, ptr noundef nonnull align 8 dereferenceable(8) %args3) to label %invoke.cont45 unwind label %lpad invoke.cont45: ; preds = %done @@ -30623,7 +30623,7 @@ if.else39.cont: ; preds = %if.else39.invoke done: ; preds = %invoke.cont27, %invoke.cont36 %8 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRA4_KcJRPS2_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_OT_DpOT0_(ptr noundef %s, ptr noundef %8, ptr noundef nonnull align 1 dereferenceable(4) %args, ptr noundef nonnull align 8 dereferenceable(8) %args1) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRA4_KcJRPS2_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_OT_DpOT0_(ptr noundef nonnull %s, ptr noundef %8, ptr noundef nonnull align 1 dereferenceable(4) %args, ptr noundef nonnull align 8 dereferenceable(8) %args1) to label %invoke.cont43 unwind label %lpad invoke.cont43: ; preds = %done @@ -30757,7 +30757,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRPKcJEEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES3_OT_DpOT0_(ptr noundef %s, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(8) %args) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRPKcJEEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES3_OT_DpOT0_(ptr noundef nonnull %s, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(8) %args) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -32075,7 +32075,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %7) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %7) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -32801,7 +32801,7 @@ if.else48.cont: ; preds = %if.else48.invoke done: ; preds = %invoke.cont36, %invoke.cont45, %invoke.cont14 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJS2_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcOT_DpOT0_(ptr noundef %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJS2_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcOT_DpOT0_(ptr noundef nonnull %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1) to label %invoke.cont52 unwind label %lpad invoke.cont52: ; preds = %done @@ -33091,7 +33091,7 @@ if.else50.cont: ; preds = %if.else50.invoke done: ; preds = %invoke.cont38, %invoke.cont47, %invoke.cont16 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJS2_S2_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcOT_DpOT0_(ptr noundef %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1, ptr noundef nonnull align 4 dereferenceable(4) %args3) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJS2_S2_EEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcOT_DpOT0_(ptr noundef nonnull %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1, ptr noundef nonnull align 4 dereferenceable(4) %args3) to label %invoke.cont54 unwind label %lpad invoke.cont54: ; preds = %done @@ -33381,7 +33381,7 @@ if.else64.cont: ; preds = %if.else64.invoke done: ; preds = %invoke.cont52, %invoke.cont61, %invoke.cont30 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJS2_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_S2_S2_S8_S2_S2_S2_EEEvPS8_PKcOT_DpOT0_(ptr noundef %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1, ptr noundef nonnull align 8 dereferenceable(32) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5, ptr noundef nonnull align 4 dereferenceable(4) %args7, ptr noundef nonnull align 4 dereferenceable(4) %args9, ptr noundef nonnull align 8 dereferenceable(32) %args11, ptr noundef nonnull align 4 dereferenceable(4) %args13, ptr noundef nonnull align 4 dereferenceable(4) %args15, ptr noundef nonnull align 4 dereferenceable(4) %args17) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJS2_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_S2_S2_S8_S2_S2_S2_EEEvPS8_PKcOT_DpOT0_(ptr noundef nonnull %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1, ptr noundef nonnull align 8 dereferenceable(32) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5, ptr noundef nonnull align 4 dereferenceable(4) %args7, ptr noundef nonnull align 4 dereferenceable(4) %args9, ptr noundef nonnull align 8 dereferenceable(32) %args11, ptr noundef nonnull align 4 dereferenceable(4) %args13, ptr noundef nonnull align 4 dereferenceable(4) %args15, ptr noundef nonnull align 4 dereferenceable(4) %args17) to label %invoke.cont68 unwind label %lpad invoke.cont68: ; preds = %done @@ -33546,7 +33546,7 @@ if.else62.cont: ; preds = %if.else62.invoke done: ; preds = %invoke.cont50, %invoke.cont59, %invoke.cont28 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_S2_S2_S8_S2_S2_S2_EEEvPS8_PKcOT_DpOT0_(ptr noundef %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 8 dereferenceable(32) %args1, ptr noundef nonnull align 4 dereferenceable(4) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5, ptr noundef nonnull align 4 dereferenceable(4) %args7, ptr noundef nonnull align 8 dereferenceable(32) %args9, ptr noundef nonnull align 4 dereferenceable(4) %args11, ptr noundef nonnull align 4 dereferenceable(4) %args13, ptr noundef nonnull align 4 dereferenceable(4) %args15) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_S2_S2_S8_S2_S2_S2_EEEvPS8_PKcOT_DpOT0_(ptr noundef nonnull %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 8 dereferenceable(32) %args1, ptr noundef nonnull align 4 dereferenceable(4) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5, ptr noundef nonnull align 4 dereferenceable(4) %args7, ptr noundef nonnull align 8 dereferenceable(32) %args9, ptr noundef nonnull align 4 dereferenceable(4) %args11, ptr noundef nonnull align 4 dereferenceable(4) %args13, ptr noundef nonnull align 4 dereferenceable(4) %args15) to label %invoke.cont66 unwind label %lpad invoke.cont66: ; preds = %done @@ -33711,7 +33711,7 @@ if.else60.cont: ; preds = %if.else60.invoke done: ; preds = %invoke.cont48, %invoke.cont57, %invoke.cont26 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRfS8_S8_S7_S8_S8_S8_EEEvPS7_PKcOT_DpOT0_(ptr noundef %s, ptr noundef %10, ptr noundef nonnull align 8 dereferenceable(32) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1, ptr noundef nonnull align 4 dereferenceable(4) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5, ptr noundef nonnull align 8 dereferenceable(32) %args7, ptr noundef nonnull align 4 dereferenceable(4) %args9, ptr noundef nonnull align 4 dereferenceable(4) %args11, ptr noundef nonnull align 4 dereferenceable(4) %args13) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRfS8_S8_S7_S8_S8_S8_EEEvPS7_PKcOT_DpOT0_(ptr noundef nonnull %s, ptr noundef %10, ptr noundef nonnull align 8 dereferenceable(32) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1, ptr noundef nonnull align 4 dereferenceable(4) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5, ptr noundef nonnull align 8 dereferenceable(32) %args7, ptr noundef nonnull align 4 dereferenceable(4) %args9, ptr noundef nonnull align 4 dereferenceable(4) %args11, ptr noundef nonnull align 4 dereferenceable(4) %args13) to label %invoke.cont64 unwind label %lpad invoke.cont64: ; preds = %done @@ -34001,7 +34001,7 @@ if.else56.cont: ; preds = %if.else56.invoke done: ; preds = %invoke.cont44, %invoke.cont53, %invoke.cont22 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJS2_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_S2_S2_EEEvPS8_PKcOT_DpOT0_(ptr noundef %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1, ptr noundef nonnull align 8 dereferenceable(32) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5, ptr noundef nonnull align 4 dereferenceable(4) %args7, ptr noundef nonnull align 4 dereferenceable(4) %args9) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJS2_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_S2_S2_EEEvPS8_PKcOT_DpOT0_(ptr noundef nonnull %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1, ptr noundef nonnull align 8 dereferenceable(32) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5, ptr noundef nonnull align 4 dereferenceable(4) %args7, ptr noundef nonnull align 4 dereferenceable(4) %args9) to label %invoke.cont60 unwind label %lpad invoke.cont60: ; preds = %done @@ -34166,7 +34166,7 @@ if.else54.cont: ; preds = %if.else54.invoke done: ; preds = %invoke.cont42, %invoke.cont51, %invoke.cont20 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_S2_S2_EEEvPS8_PKcOT_DpOT0_(ptr noundef %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 8 dereferenceable(32) %args1, ptr noundef nonnull align 4 dereferenceable(4) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5, ptr noundef nonnull align 4 dereferenceable(4) %args7) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIRfJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES2_S2_S2_EEEvPS8_PKcOT_DpOT0_(ptr noundef nonnull %s, ptr noundef %10, ptr noundef nonnull align 4 dereferenceable(4) %args, ptr noundef nonnull align 8 dereferenceable(32) %args1, ptr noundef nonnull align 4 dereferenceable(4) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5, ptr noundef nonnull align 4 dereferenceable(4) %args7) to label %invoke.cont58 unwind label %lpad invoke.cont58: ; preds = %done @@ -34331,7 +34331,7 @@ if.else52.cont: ; preds = %if.else52.invoke done: ; preds = %invoke.cont40, %invoke.cont49, %invoke.cont18 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRfS8_S8_EEEvPS7_PKcOT_DpOT0_(ptr noundef %s, ptr noundef %10, ptr noundef nonnull align 8 dereferenceable(32) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1, ptr noundef nonnull align 4 dereferenceable(4) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRfS8_S8_EEEvPS7_PKcOT_DpOT0_(ptr noundef nonnull %s, ptr noundef %10, ptr noundef nonnull align 8 dereferenceable(32) %args, ptr noundef nonnull align 4 dereferenceable(4) %args1, ptr noundef nonnull align 4 dereferenceable(4) %args3, ptr noundef nonnull align 4 dereferenceable(4) %args5) to label %invoke.cont56 unwind label %lpad invoke.cont56: ; preds = %done @@ -34996,7 +34996,7 @@ if.else46.cont: ; preds = %if.else46.invoke done: ; preds = %invoke.cont34, %invoke.cont43, %invoke.cont12 %10 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %10) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %10) to label %invoke.cont50 unwind label %lpad invoke.cont50: ; preds = %done @@ -35410,7 +35410,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %7 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJEEEvPS7_PKcOT_DpOT0_(ptr noundef %s, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(32) %args) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJEEEvPS7_PKcOT_DpOT0_(ptr noundef nonnull %s, ptr noundef %7, ptr noundef nonnull align 8 dereferenceable(32) %args) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done @@ -35494,7 +35494,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi cleanup.thread: ; preds = %if.then, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i %4 = phi i1 [ true, %if.then ], [ %cmp.i.i.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #34 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef nonnull %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #34 %_M_node_count.i.i = getelementptr inbounds nuw i8, ptr %this, i64 40 %5 = load i64, ptr %_M_node_count.i.i, align 8 %inc.i.i = add i64 %5, 1 @@ -35508,18 +35508,14 @@ lpad: ; preds = %invoke.cont resume { ptr, i32 } %6 cleanup: ; preds = %invoke.cont7 - %tobool.not.i = icmp eq ptr %call.i, null - br i1 %tobool.not.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit, label %if.then.i - -if.then.i: ; preds = %cleanup %second.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i, i64 64 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %second.i.i.i.i.i.i) #34 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %_M_storage.i.i.i) #34 tail call void @_ZdlPv(ptr noundef nonnull %call.i) #37 br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit -_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %cleanup, %if.then.i - %retval.sroa.0.07 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %cleanup ], [ %0, %if.then.i ] +_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %if.then.i + %retval.sroa.0.07 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %if.then.i ] ret ptr %retval.sroa.0.07 } @@ -35642,7 +35638,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #38 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #38 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -35748,7 +35744,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #38 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #38 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 @@ -36186,7 +36182,7 @@ lpad42: ; preds = %invoke.cont41 done: ; preds = %invoke.cont34, %invoke.cont43, %invoke.cont16 %9 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef %s, ptr noundef %9) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKc(ptr noundef nonnull %s, ptr noundef %9) to label %cleanup unwind label %lpad cleanup: ; preds = %done @@ -37145,7 +37141,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi cleanup.thread: ; preds = %if.then, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i %4 = phi i1 [ true, %if.then ], [ %cmp.i.i.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #34 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %4, ptr noundef nonnull %call.i, ptr noundef nonnull %1, ptr noundef nonnull align 8 dereferenceable(32) %add.ptr.i.i.i) #34 %_M_node_count.i.i = getelementptr inbounds nuw i8, ptr %this, i64 40 %5 = load i64, ptr %_M_node_count.i.i, align 8 %inc.i.i = add i64 %5, 1 @@ -37159,10 +37155,6 @@ lpad: ; preds = %invoke.cont resume { ptr, i32 } %6 cleanup: ; preds = %invoke.cont7 - %tobool.not.i = icmp eq ptr %call.i, null - br i1 %tobool.not.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N4pbrt19ParameterDictionaryEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE10_Auto_nodeD2Ev.exit, label %if.then.i - -if.then.i: ; preds = %cleanup %nStored.le.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i, i64 152 store i64 0, ptr %nStored.le.i.i.i.i.i.i.i.i.i, align 8 %ptr.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call.i, i64 72 @@ -37194,8 +37186,8 @@ _ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N tail call void @_ZdlPv(ptr noundef nonnull %call.i) #37 br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N4pbrt19ParameterDictionaryEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE10_Auto_nodeD2Ev.exit -_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N4pbrt19ParameterDictionaryEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %cleanup, %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N4pbrt19ParameterDictionaryEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISA_E.exit.i - %retval.sroa.0.07 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %cleanup ], [ %0, %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N4pbrt19ParameterDictionaryEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISA_E.exit.i ] +_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N4pbrt19ParameterDictionaryEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE10_Auto_nodeD2Ev.exit: ; preds = %cleanup.thread, %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N4pbrt19ParameterDictionaryEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISA_E.exit.i + %retval.sroa.0.07 = phi ptr [ %call.i, %cleanup.thread ], [ %0, %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N4pbrt19ParameterDictionaryEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE12_M_drop_nodeEPSt13_Rb_tree_nodeISA_E.exit.i ] ret ptr %retval.sroa.0.07 } @@ -37318,7 +37310,7 @@ if.then18: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp21, label %return, label %if.else25 if.else25: ; preds = %if.then18 - %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #38 + %call.i = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #38 %_M_storage.i.i.i21 = getelementptr inbounds nuw i8, ptr %call.i, i64 32 %call.i.i22 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i21, ptr noundef nonnull align 8 dereferenceable(32) %__k) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit25 unwind label %terminate.lpad.i.i23 @@ -37424,7 +37416,7 @@ if.then50: ; preds = %_ZNKSt4lessINSt7__c br i1 %cmp53, label %return, label %if.else57 if.else57: ; preds = %if.then50 - %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %__position.coerce) #38 + %call.i74 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %__position.coerce) #38 %_M_storage.i.i.i75 = getelementptr inbounds nuw i8, ptr %call.i74, i64 32 %call.i.i76 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %__k, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i75) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit79 unwind label %terminate.lpad.i.i77 @@ -37735,7 +37727,7 @@ if.else37.cont: ; preds = %if.else37.invoke done: ; preds = %invoke.cont25, %invoke.cont34 %8 = load ptr, ptr %fmt.addr, align 8 - invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIiJEEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcOT_DpOT0_(ptr noundef %s, ptr noundef %8, ptr noundef nonnull align 4 dereferenceable(4) %args) + invoke void @_ZN4pbrt6detail21stringPrintfRecursiveIiJEEEvPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcOT_DpOT0_(ptr noundef nonnull %s, ptr noundef %8, ptr noundef nonnull align 4 dereferenceable(4) %args) to label %invoke.cont41 unwind label %lpad invoke.cont41: ; preds = %done diff --git a/bench/postgres/optimized/stringutils.ll b/bench/postgres/optimized/stringutils.ll index ae73927583d..f35c52cbdd6 100644 --- a/bench/postgres/optimized/stringutils.ll +++ b/bench/postgres/optimized/stringutils.ll @@ -22,30 +22,34 @@ define dso_local noundef ptr @strtokx(ptr noundef readonly %0, ptr noundef reado store ptr %13, ptr @strtokx.storage, align 8 %14 = tail call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %13, ptr noundef nonnull dereferenceable(1) %0) #7 store ptr %13, ptr @strtokx.string, align 8 - br label %thread-pre-split + br label %15 -thread-pre-split: ; preds = %8, %9 - %15 = phi ptr [ %13, %9 ], [ %.pr, %8 ] - %.not106 = icmp eq ptr %15, null - br i1 %.not106, label %127, label %16 +thread-pre-split: ; preds = %8 + %15 = icmp eq ptr %.pr, null + br i1 %.not106, label %127, label %._crit_edge -16: ; preds = %thread-pre-split - %17 = load ptr, ptr @strtokx.string, align 8 - %18 = tail call i64 @strspn(ptr noundef %17, ptr noundef %1) #8 +._crit_edge: ; preds = %14 + %.pre = load ptr, ptr @strtokx.string, align 8 + br label %15 + +15: ; preds = %._crit_edge, %.thread + %16 = phi ptr [ %12, %.thread ], [ %.pre, %._crit_edge ] + %17 = phi ptr [ %12, %.thread ], [ %.pr, %._crit_edge ] + %18 = tail call i64 @strspn(ptr noundef %16, ptr noundef %1) #8 %19 = and i64 %18, 4294967295 - %20 = getelementptr i8, ptr %17, i64 %19 + %20 = getelementptr i8, ptr %16, i64 %19 %21 = load i8, ptr %20, align 1 %22 = sext i8 %21 to i32 %23 = icmp eq i8 %21, 0 br i1 %23, label %24, label %25 -24: ; preds = %16 - tail call void @free(ptr noundef nonnull %15) #7 +24: ; preds = %15 + tail call void @free(ptr noundef nonnull %17) #7 store ptr null, ptr @strtokx.storage, align 8 store ptr null, ptr @strtokx.string, align 8 br label %127 -25: ; preds = %16 +25: ; preds = %15 %.not107 = icmp eq ptr %2, null br i1 %.not107, label %41, label %26 diff --git a/bench/protobuf/optimized/parser.cc.ll b/bench/protobuf/optimized/parser.cc.ll index 8722c1c492d..6e871f0afd6 100644 --- a/bench/protobuf/optimized/parser.cc.ll +++ b/bench/protobuf/optimized/parser.cc.ll @@ -11275,7 +11275,6 @@ invoke.cont19.i7: ; preds = %_ZNK6google8protobu lpad20.i: ; preds = %invoke.cont19.i7 %37 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp.i) #24 br label %ehcleanup.i if.else.i: ; preds = %_ZN4absl12lts_202308026StatusD2Ev.exit.i @@ -11295,7 +11294,6 @@ invoke.cont28.i: ; preds = %_ZNK6google8protobu lpad29.i: ; preds = %invoke.cont28.i %40 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp26.i) #24 br label %ehcleanup.i if.end31.i: ; preds = %invoke.cont28.i, %invoke.cont19.i7 @@ -11339,13 +11337,21 @@ _ZNKSt14default_deleteIN6google8protobuf7MessageEEclEPS2_.exit.i.i: ; preds = %_ call void %45(ptr noundef nonnull align 8 dereferenceable(16) %call.i5.i) #24 br label %_ZZN6google8protobuf13json_internal21ParseProto2Descriptor10NewDynamicIZNS1_12_GLOBAL__N_18ParseAnyIS2_EEN4absl12lts_202308026StatusERNS1_9JsonLexerERKNT_4DescERNSB_3MsgEEUlRKNS0_10DescriptorERNS2_3MsgEE_EES8_PKNS0_15FieldDescriptorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESL_SB_ENKUlSJ_E_clESJ_.exit -ehcleanup.i: ; preds = %_ZN4absl12lts_202308027CleanupINS0_16cleanup_internal3TagEZN6google8protobuf13json_internal11MessagePath4PushESt17basic_string_viewIcSt11char_traitsIcEENS5_8internal19FieldDescriptorLite4TypeESB_EUlvE_ED2Ev.exit18, %lpad7.i, %lpad29.i, %lpad20.i - %.pn.i6 = phi { ptr, i32 } [ %37, %lpad20.i ], [ %40, %lpad29.i ], [ %31, %lpad7.i ], [ %26, %_ZN4absl12lts_202308027CleanupINS0_16cleanup_internal3TagEZN6google8protobuf13json_internal11MessagePath4PushESt17basic_string_viewIcSt11char_traitsIcEENS5_8internal19FieldDescriptorLite4TypeESB_EUlvE_ED2Ev.exit18 ] +ehcleanup.i: ; preds = %lpad29.i, %lpad20.i + %.pn.i6 = phi ptr [ %agg.tmp26.i, %lpad29.i ], [ %agg.tmp.i, %lpad20.i ] + %.pn.i6.ph = phi { ptr, i32 } [ %40, %lpad29.i ], [ %37, %lpad20.i ] + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp26.i.sink49) #24 + call void @_ZN6google8protobuf13json_internal21ParseProto2Descriptor3MsgD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %wrapper.i) #24 + br label %_ZNKSt14default_deleteIN6google8protobuf7MessageEEclEPS2_.exit.i19.i + +ehcleanup.i: ; preds = %_ZN4absl12lts_202308027CleanupINS0_16cleanup_internal3TagEZN6google8protobuf13json_internal11MessagePath4PushESt17basic_string_viewIcSt11char_traitsIcEENS5_8internal19FieldDescriptorLite4TypeESB_EUlvE_ED2Ev.exit18, %lpad7.i + %.pn.i6 = phi { ptr, i32 } [ %31, %lpad7.i ], [ %26, %_ZN4absl12lts_202308027CleanupINS0_16cleanup_internal3TagEZN6google8protobuf13json_internal11MessagePath4PushESt17basic_string_viewIcSt11char_traitsIcEENS5_8internal19FieldDescriptorLite4TypeESB_EUlvE_ED2Ev.exit18 ] call void @_ZN6google8protobuf13json_internal21ParseProto2Descriptor3MsgD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %wrapper.i) #24 %cmp.not.i18.i = icmp eq ptr %call.i5.i, null br i1 %cmp.not.i18.i, label %ehcleanup37.i, label %_ZNKSt14default_deleteIN6google8protobuf7MessageEEclEPS2_.exit.i19.i -_ZNKSt14default_deleteIN6google8protobuf7MessageEEclEPS2_.exit.i19.i: ; preds = %ehcleanup.i +_ZNKSt14default_deleteIN6google8protobuf7MessageEEclEPS2_.exit.i19.i: ; preds = %ehcleanup.i, %ehcleanup.i + %.pn.i647 = phi { ptr, i32 } [ %.pn.i6.ph, %ehcleanup.i.thread ], [ %.pn.i6, %ehcleanup.i ] %vtable.i.i20.i = load ptr, ptr %call.i5.i, align 8 %vfn.i.i21.i = getelementptr inbounds nuw i8, ptr %vtable.i.i20.i, i64 8 %46 = load ptr, ptr %vfn.i.i21.i, align 8 @@ -11357,7 +11363,7 @@ common.resume: ; preds = %lpad.i, %lpad18.i, resume { ptr, i32 } %common.resume.op ehcleanup37.i: ; preds = %ehcleanup.i, %_ZNKSt14default_deleteIN6google8protobuf7MessageEEclEPS2_.exit.i19.i, %lpad.i4 - %.pn.pn.pn.i = phi { ptr, i32 } [ %30, %lpad.i4 ], [ %.pn.i6, %_ZNKSt14default_deleteIN6google8protobuf7MessageEEclEPS2_.exit.i19.i ], [ %.pn.i6, %ehcleanup.i ] + %.pn.pn.pn.i = phi { ptr, i32 } [ %30, %lpad.i4 ], [ %.pn.i647, %_ZNKSt14default_deleteIN6google8protobuf7MessageEEclEPS2_.exit.i19.i ], [ %.pn.i6, %ehcleanup.i ] call void @_ZN6google8protobuf21DynamicMessageFactoryD1Ev(ptr noundef nonnull align 8 dereferenceable(64) %factory.i) #24 br label %common.resume diff --git a/bench/proxygen/optimized/HPACKDecoderBase.cpp.ll b/bench/proxygen/optimized/HPACKDecoderBase.cpp.ll index baca4d3afef..98fabdc0d37 100644 --- a/bench/proxygen/optimized/HPACKDecoderBase.cpp.ll +++ b/bench/proxygen/optimized/HPACKDecoderBase.cpp.ll @@ -541,7 +541,7 @@ _ZNSt12_Vector_baseIN8proxygen11HPACKHeaderESaIS1_EE11_M_allocateEm.exit: ; pred %cond.i.i.i.i.i = select i1 %cmp.i.i.i.i.i, i64 %sub.i.i.i.i.i, i64 %5 %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %cond.i.i.i.i.i.i, i64 %cond.i.i.i.i.i invoke void @_ZN8proxygen11HPACKHeaderC2EN5folly5RangeIPKcEES5_(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr, ptr %call.i.i.i, ptr %add.ptr.i.i.i, ptr %cond.i.i.i.i.i.i, ptr %add.ptr.i.i.i.i) - to label %invoke.cont unwind label %lpad + to label %invoke.cont unwind label %if.then.i35 invoke.cont: ; preds = %_ZNSt12_Vector_baseIN8proxygen11HPACKHeaderESaIS1_EE11_M_allocateEm.exit %cmp.not5.i.i.i = icmp eq ptr %1, %__position.coerce @@ -610,29 +610,18 @@ _ZNSt12_Vector_baseIN8proxygen11HPACKHeaderESaIS1_EE13_M_deallocateEPS1_m.exit: store ptr %add.ptr28, ptr %_M_end_of_storage, align 8 ret void -lpad: ; preds = %_ZNSt12_Vector_baseIN8proxygen11HPACKHeaderESaIS1_EE11_M_allocateEm.exit - %8 = landingpad { ptr, i32 } - catch ptr null - %9 = extractvalue { ptr, i32 } %8, 0 - %10 = tail call ptr @__cxa_begin_catch(ptr %9) #24 - %tobool.not = icmp eq ptr %cond.i17, null - br i1 %tobool.not, label %if.end.thread, label %if.then.i35 - -if.end.thread: ; preds = %lpad - tail call void @_ZN8proxygen11HPACKHeaderD2Ev(ptr noundef nonnull align 8 dereferenceable(32) %add.ptr) #24 - br label %invoke.cont21 - lpad19: ; preds = %invoke.cont21 %11 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %eh.resume unwind label %terminate.lpad -if.then.i35: ; preds = %lpad +if.then.i35: ; preds = %_ZNSt12_Vector_baseIN8proxygen11HPACKHeaderESaIS1_EE11_M_allocateEm.exit + %9 = landingpad { ptr, i32 } + catch ptr null + %10 = extractvalue { ptr, i32 } %9, 0 + %11 = tail call ptr @__cxa_begin_catch(ptr %10) #24 tail call void @_ZdlPv(ptr noundef nonnull %cond.i17) #28 - br label %invoke.cont21 - -invoke.cont21: ; preds = %if.then.i35, %if.end.thread invoke void @__cxa_rethrow() #26 to label %unreachable unwind label %lpad19 diff --git a/bench/qemu/optimized/block_qcow2-bitmap.c.ll b/bench/qemu/optimized/block_qcow2-bitmap.c.ll index 2419f0f8227..5c746750957 100644 --- a/bench/qemu/optimized/block_qcow2-bitmap.c.ll +++ b/bench/qemu/optimized/block_qcow2-bitmap.c.ll @@ -1494,12 +1494,20 @@ if.end: ; preds = %entry %3 = load i64, ptr %bitmap_directory_size, align 8 %call = tail call fastcc ptr @bitmap_list_load(ptr noundef nonnull %bs, i64 noundef %2, i64 noundef %3, ptr noundef %errp) %cmp1 = icmp eq ptr %call, null - br i1 %cmp1, label %out.thread, label %if.end3 + br i1 %cmp1, label %bitmap_free.exit.thread44, label %if.end3 + +bitmap_free.exit.thread44: ; preds = %if.end + tail call void @qemu_co_mutex_unlock(ptr noundef nonnull %lock) #13 + br label %return if.end3: ; preds = %if.end %bm.04.i = load ptr, ptr %call, align 8 %tobool.not5.i = icmp eq ptr %bm.04.i, null - br i1 %tobool.not5.i, label %out.thread, label %for.body.i + br i1 %tobool.not5.i, label %bitmap_free.exit.thread46, label %for.body.i + +bitmap_free.exit.thread46: ; preds = %if.end3 + tail call void @qemu_co_mutex_unlock(ptr noundef nonnull %lock) #13 + br label %while.cond.preheader.i for.body.i: ; preds = %if.end3, %for.inc.i %bm.06.i = phi ptr [ %bm.0.i, %for.inc.i ], [ %bm.04.i, %if.end3 ] @@ -1513,7 +1521,7 @@ for.inc.i: ; preds = %for.body.i %entry2.i = getelementptr inbounds nuw i8, ptr %bm.06.i, i64 48 %bm.0.i = load ptr, ptr %entry2.i, align 8 %tobool.not.i = icmp eq ptr %bm.0.i, null - br i1 %tobool.not.i, label %out.thread, label %for.body.i, !llvm.loop !17 + br i1 %tobool.not.i, label %bitmap_free.exit, label %for.body.i, !llvm.loop !17 do.body: ; preds = %for.body.i %name1.i.le = getelementptr inbounds nuw i8, ptr %bm.06.i, i64 32 @@ -1569,29 +1577,25 @@ do.end41: ; preds = %if.end17, %if.end37 if.then44: ; preds = %do.end41 %sub = sub i32 0, %call42 tail call void (ptr, ptr, i32, ptr, i32, ptr, ...) @error_setg_errno_internal(ptr noundef %errp, ptr noundef nonnull @.str, i32 noundef 1494, ptr noundef nonnull @__func__.qcow2_co_remove_persistent_dirty_bitmap, i32 noundef %sub, ptr noundef nonnull @.str.9) #13 - br label %if.end.i + br label %out.thread if.end45: ; preds = %do.end41 tail call fastcc void @free_bitmap_clusters(ptr noundef nonnull %bs, ptr noundef %bm.06.i) - br label %if.end.i + br label %out.thread -out.thread: ; preds = %for.inc.i, %if.end, %if.end3 - %ret.0.ph = phi i32 [ -5, %if.end ], [ 0, %if.end3 ], [ 0, %for.inc.i ] - tail call void @qemu_co_mutex_unlock(ptr noundef nonnull %lock) #13 - br label %bitmap_free.exit - -if.end.i: ; preds = %if.then44, %if.end45 +out.thread: ; preds = %if.end45, %if.then44 tail call void @qemu_co_mutex_unlock(ptr noundef nonnull %lock) #13 %8 = load ptr, ptr %name1.i.le, align 8 tail call void @g_free(ptr noundef %8) #13 tail call void @g_free(ptr noundef nonnull %bm.06.i) #13 - br label %bitmap_free.exit + br label %while.cond.preheader.i -bitmap_free.exit: ; preds = %out.thread, %if.end.i - %ret.040 = phi i32 [ %ret.0.ph, %out.thread ], [ %call42, %if.end.i ] - br i1 %cmp1, label %return, label %while.cond.preheader.i +bitmap_free.exit: ; preds = %for.inc.i + tail call void @qemu_co_mutex_unlock(ptr noundef nonnull %lock) #13 + br label %while.cond.preheader.i -while.cond.preheader.i: ; preds = %bitmap_free.exit +while.cond.preheader.i: ; preds = %bitmap_free.exit, %bitmap_free.exit.thread46, %out.thread + %ret.04042 = phi i32 [ %call42, %bitmap_free.exit.thread ], [ 0, %bitmap_free.exit ], [ 0, %bitmap_free.exit.thread46 ] %9 = load ptr, ptr %call, align 8 %cmp1.not8.i = icmp eq ptr %9, null br i1 %cmp1.not8.i, label %while.end.i, label %do.body.lr.ph.i @@ -1626,8 +1630,8 @@ while.end.i: ; preds = %bitmap_free.exit.i, tail call void @g_free(ptr noundef nonnull %call) #13 br label %return -return: ; preds = %while.end.i, %bitmap_free.exit, %entry - %retval.0 = phi i32 [ 0, %entry ], [ %ret.040, %bitmap_free.exit ], [ %ret.040, %while.end.i ] +return: ; preds = %while.end.i, %bitmap_free.exit.thread44, %entry + %retval.0 = phi i32 [ 0, %entry ], [ %ret.04042, %while.end.i ], [ -5, %bitmap_free.exit.thread44 ] ret i32 %retval.0 } diff --git a/bench/qemu/optimized/migration_migration.c.ll b/bench/qemu/optimized/migration_migration.c.ll index 90afa1cd1f2..3941f1f848c 100644 --- a/bench/qemu/optimized/migration_migration.c.ll +++ b/bench/qemu/optimized/migration_migration.c.ll @@ -1284,7 +1284,7 @@ if.then22: ; preds = %if.else if.then26: ; preds = %if.then22 tail call void @qapi_free_InetSocketAddress(ptr noundef nonnull %u) #19 - br label %cleanup + br label %if.then.i.i if.end: ; preds = %if.then22 store i32 2, ptr %call1, align 8 @@ -1328,7 +1328,7 @@ if.end44: ; preds = %if.then39 if.else50: ; preds = %lor.lhs.false36 %call51 = tail call i32 @strstart(ptr noundef %uri, ptr noundef nonnull @.str.18, ptr noundef null) #19 %tobool52.not = icmp eq i32 %call51, 0 - br i1 %tobool52.not, label %if.else65, label %if.then53 + br i1 %tobool52.not, label %cleanup, label %if.then53 if.then53: ; preds = %if.else50 store i32 3, ptr %call1, align 8 @@ -1340,10 +1340,6 @@ if.then53: ; preds = %if.else50 %tobool62.not = icmp eq i32 %call61, 0 br i1 %tobool62.not, label %glib_autoptr_cleanup_MigrationAddress.exit.thread, label %if.then.i.i -if.else65: ; preds = %if.else50 - tail call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef %errp, ptr noundef nonnull @.str.2, i32 noundef 505, ptr noundef nonnull @__func__.migrate_uri_parse, ptr noundef nonnull @.str.19, ptr noundef %uri) #19 - br label %cleanup - glib_autoptr_cleanup_MigrationAddress.exit.thread: ; preds = %if.end, %if.then53, %if.end44, %if.then store i32 0, ptr %call, align 8 %addr71 = getelementptr inbounds nuw i8, ptr %call, i64 8 @@ -1351,11 +1347,12 @@ glib_autoptr_cleanup_MigrationAddress.exit.thread: ; preds = %if.end, %if.then53 store ptr %call, ptr %channel, align 8 br label %glib_autoptr_cleanup_MigrationChannel.exit -cleanup: ; preds = %if.else65, %if.then26 +cleanup: ; preds = %if.else50 + tail call void (ptr, ptr, i32, ptr, ptr, ...) @error_setg_internal(ptr noundef %errp, ptr noundef nonnull @.str.2, i32 noundef 505, ptr noundef nonnull @__func__.migrate_uri_parse, ptr noundef nonnull @.str.19, ptr noundef %uri) #19 %tobool.not.i.i = icmp eq ptr %call1, null br i1 %tobool.not.i.i, label %glib_autoptr_cleanup_MigrationAddress.exit, label %if.then.i.i -if.then.i.i: ; preds = %if.then39, %if.then53, %cleanup +if.then.i.i: ; preds = %if.then26, %if.then39, %if.then53, %cleanup tail call void @qapi_free_MigrationAddress(ptr noundef nonnull %call1) #19 br label %glib_autoptr_cleanup_MigrationAddress.exit diff --git a/bench/quantlib/optimized/analyticcliquetengine.ll b/bench/quantlib/optimized/analyticcliquetengine.ll index 5c56e1f6a7c..8ba64852a74 100644 --- a/bench/quantlib/optimized/analyticcliquetengine.ll +++ b/bench/quantlib/optimized/analyticcliquetengine.ll @@ -2126,7 +2126,11 @@ for.body.lr.ph: ; preds = %invoke.cont260 for.cond.cleanup: ; preds = %_ZN8QuantLib10DayCounterD2Ev.exit460 %.pre619 = load ptr, ptr %pn.i, align 8, !tbaa !37 %cmp.not.i.i235 = icmp eq ptr %.pre619, null - br i1 %cmp.not.i.i235, label %_ZN5boost10shared_ptrIN8QuantLib17StrikedTypePayoffEED2Ev.exit, label %if.then.i.i236 + br i1 %cmp.not.i.i235, label %_ZN5boost10shared_ptrIN8QuantLib17StrikedTypePayoffEED2Ev.exit.thread, label %if.then.i.i236 + +_ZN5boost10shared_ptrIN8QuantLib17StrikedTypePayoffEED2Ev.exit.thread: ; preds = %for.cond.cleanup + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %payoff249) #27 + br label %if.then.i.i.i244 if.then.i.i236: ; preds = %invoke.cont260, %for.cond.cleanup %145 = phi ptr [ %.pre619, %for.cond.cleanup ], [ %call.i.i.i, %invoke.cont260 ] @@ -2162,12 +2166,12 @@ terminate.lpad.i.i: ; preds = %if.then.i.i.i.i240, call void @__clang_call_terminate(ptr %151) #28 unreachable -_ZN5boost10shared_ptrIN8QuantLib17StrikedTypePayoffEED2Ev.exit: ; preds = %for.cond.cleanup, %if.then.i.i236, %.noexc.i.i, %if.then.i.i.i.i240 +_ZN5boost10shared_ptrIN8QuantLib17StrikedTypePayoffEED2Ev.exit: ; preds = %if.then.i.i236, %.noexc.i.i, %if.then.i.i.i.i240 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %payoff249) #27 %tobool.not.i.i.i = icmp eq ptr %resetDates.sroa.0.1, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorIN8QuantLib4DateESaIS1_EED2Ev.exit, label %if.then.i.i.i244 -if.then.i.i.i244: ; preds = %_ZN5boost10shared_ptrIN8QuantLib17StrikedTypePayoffEED2Ev.exit +if.then.i.i.i244: ; preds = %_ZN5boost10shared_ptrIN8QuantLib17StrikedTypePayoffEED2Ev.exit.thread, %_ZN5boost10shared_ptrIN8QuantLib17StrikedTypePayoffEED2Ev.exit %sub.ptr.lhs.cast.i.i246 = ptrtoint ptr %resetDates.sroa.32.1 to i64 %sub.ptr.sub.i.i248 = sub i64 %sub.ptr.lhs.cast.i.i246, %sub.ptr.rhs.cast.i call void @_ZdlPvm(ptr noundef nonnull %resetDates.sroa.0.1, i64 noundef %sub.ptr.sub.i.i248) #32 diff --git a/bench/quantlib/optimized/blackkarasinski.ll b/bench/quantlib/optimized/blackkarasinski.ll index d8e70ca9514..591665569b5 100644 --- a/bench/quantlib/optimized/blackkarasinski.ll +++ b/bench/quantlib/optimized/blackkarasinski.ll @@ -4232,7 +4232,6 @@ for.body.lr.ph: ; preds = %_ZN8QuantLib29TermS %termStructure_.i = getelementptr inbounds nuw i8, ptr %this, i64 88 %maxEvaluations_.i.i = getelementptr inbounds nuw i8, ptr %s1d, i64 40 %lowerBound_.i.i = getelementptr inbounds nuw i8, ptr %s1d, i64 56 - %cmp.not.i166 = icmp eq ptr %.pre.i168, null br label %for.body for.cond.cleanup.loopexit: ; preds = %invoke.cont75 @@ -4531,16 +4530,9 @@ invoke.cont66: ; preds = %invoke.cont61 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(18) %lowerBound_.i.i, i8 0, i64 18, i1 false) store i64 1000, ptr %maxEvaluations_.i.i, align 8, !tbaa !140 %call70 = invoke noundef double @_ZNK8QuantLib8Solver1DINS_5BrentEE5solveINS_15BlackKarasinski6HelperEEEdRKT_dddd(ptr noundef nonnull align 8 dereferenceable(74) %s1d, ptr noundef nonnull align 8 dereferenceable(48) %finder, double noundef 0x3E7AD7F29ABCAF48, double noundef %value.0204, double noundef -5.000000e+01, double noundef 5.000000e+01) - to label %invoke.cont69 unwind label %lpad67 - -invoke.cont69: ; preds = %invoke.cont66 - br i1 %cmp.not.i166, label %cond.false.i167, label %invoke.cont71, !prof !88 - -cond.false.i167: ; preds = %invoke.cont69 - invoke void @_ZN5boost16assertion_failedEPKcS1_S1_l(ptr noundef nonnull @.str.7, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK5boost10shared_ptrIN8QuantLib29TermStructureFittingParameter13NumericalImplEEptEv, ptr noundef nonnull @.str.8, i64 noundef 784) to label %invoke.cont71 unwind label %lpad67 -invoke.cont71: ; preds = %cond.false.i167, %invoke.cont69 +invoke.cont71: ; preds = %invoke.cont66 %130 = load ptr, ptr %grid, align 8, !tbaa !111 %add.ptr.i.i171 = getelementptr inbounds nuw double, ptr %130, i64 %i.0205 %131 = load double, ptr %add.ptr.i.i171, align 8, !tbaa !86 @@ -4575,7 +4567,7 @@ lpad65: ; preds = %invoke.cont61 cleanup br label %ehcleanup77 -lpad67: ; preds = %cond.false.i167, %invoke.cont71, %invoke.cont66 +lpad67: ; preds = %invoke.cont71, %invoke.cont66 %137 = landingpad { ptr, i32 } cleanup call void @llvm.lifetime.end.p0(i64 80, ptr nonnull %s1d) #29 diff --git a/bench/redis/optimized/script_lua.ll b/bench/redis/optimized/script_lua.ll index 83e167624b6..4dd96b4bd42 100644 --- a/bench/redis/optimized/script_lua.ll +++ b/bench/redis/optimized/script_lua.ll @@ -2908,7 +2908,7 @@ if.then2: ; preds = %if.then if.end3: ; preds = %entry %cmp13.not = icmp eq i64 %len, 0 - br i1 %cmp13.not, label %for.end, label %for.body.us + br i1 %cmp13.not, label %if.end14, label %for.body.us if.end3.thread: ; preds = %if.then tail call void @lua_createtable(ptr noundef nonnull %ctx, i32 noundef 0, i32 noundef 0) #11 @@ -2922,7 +2922,7 @@ for.body.us: ; preds = %if.end3, %for.body. %call4.us = tail call i32 @parseReply(ptr noundef %parser, ptr noundef null) #11 %inc.us = add nuw i64 %j.014.us, 1 %exitcond16.not = icmp eq i64 %inc.us, %len - br i1 %exitcond16.not, label %for.end, label %for.body.us, !llvm.loop !19 + br i1 %exitcond16.not, label %if.end14, label %for.body.us, !llvm.loop !19 for.body: ; preds = %if.end3.thread, %if.end10 %j.014 = phi i64 [ %inc, %if.end10 ], [ 0, %if.end3.thread ] @@ -2943,14 +2943,11 @@ if.end10: ; preds = %for.body %exitcond.not = icmp eq i64 %inc, %len br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !19 -for.end: ; preds = %if.end10, %for.body.us, %if.end3 - br i1 %tobool.not, label %if.end14, label %if.then13 - -if.then13: ; preds = %if.end3.thread, %for.end +for.end: ; preds = %if.end10, %if.end3.thread tail call void @lua_settable(ptr noundef nonnull %ctx, i32 noundef -3) #11 br label %if.end14 -if.end14: ; preds = %if.then13, %for.end +if.end14: ; preds = %for.body.us, %if.end3, %for.end ret void } @@ -2972,7 +2969,7 @@ if.then2: ; preds = %if.then if.end3: ; preds = %entry %cmp13.not = icmp eq i64 %len, 0 - br i1 %cmp13.not, label %for.end, label %for.body.us + br i1 %cmp13.not, label %if.end11, label %for.body.us if.end3.thread: ; preds = %if.then tail call void @lua_createtable(ptr noundef nonnull %ctx, i32 noundef 0, i32 noundef 0) #11 @@ -2987,7 +2984,7 @@ for.body.us: ; preds = %if.end3, %for.body. %call5.us = tail call i32 @parseReply(ptr noundef %parser, ptr noundef null) #11 %inc.us = add nuw i64 %j.014.us, 1 %exitcond16.not = icmp eq i64 %inc.us, %len - br i1 %exitcond16.not, label %for.end, label %for.body.us, !llvm.loop !20 + br i1 %exitcond16.not, label %if.end11, label %for.body.us, !llvm.loop !20 for.body: ; preds = %if.end3.thread, %for.body %j.014 = phi i64 [ %inc, %for.body ], [ 0, %if.end3.thread ] @@ -2996,16 +2993,13 @@ for.body: ; preds = %if.end3.thread, %fo tail call void @lua_settable(ptr noundef nonnull %ctx, i32 noundef -3) #11 %inc = add nuw i64 %j.014, 1 %exitcond.not = icmp eq i64 %inc, %len - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !20 - -for.end: ; preds = %for.body, %for.body.us, %if.end3 - br i1 %tobool.not, label %if.end11, label %if.then10 + br i1 %exitcond.not, label %if.then10, label %for.body, !llvm.loop !20 -if.then10: ; preds = %if.end3.thread, %for.end +if.then10: ; preds = %for.body, %if.end3.thread tail call void @lua_settable(ptr noundef nonnull %ctx, i32 noundef -3) #11 br label %if.end11 -if.end11: ; preds = %if.then10, %for.end +if.end11: ; preds = %for.body.us, %if.end3, %if.then10 ret void } diff --git a/bench/ripgrep-rs/optimized/2425miidforqaenw.ll b/bench/ripgrep-rs/optimized/2425miidforqaenw.ll index de8a2249b9d..3a022d8a1a8 100644 --- a/bench/ripgrep-rs/optimized/2425miidforqaenw.ll +++ b/bench/ripgrep-rs/optimized/2425miidforqaenw.ll @@ -2294,8 +2294,6 @@ _ZN3std4sync6poison4Flag4done17h81e7640de42edbeeE.exit.i.i.i.i: ; preds = %141, 150: ; preds = %149 %151 = landingpad { ptr, i32 } cleanup - %152 = icmp ne i64 %.sroa.0.sroa.4.0.copyload.i, 0 - call void @llvm.assume(i1 %152) br label %.body.thread.sink.split.i .noexc7.i: ; preds = %149 diff --git a/bench/rust-analyzer-rs/optimized/2334ao9w0k9d7973.ll b/bench/rust-analyzer-rs/optimized/2334ao9w0k9d7973.ll index 0cb9178cfc1..d1d4054021a 100644 --- a/bench/rust-analyzer-rs/optimized/2334ao9w0k9d7973.ll +++ b/bench/rust-analyzer-rs/optimized/2334ao9w0k9d7973.ll @@ -2135,8 +2135,6 @@ define hidden void @"_ZN4core3ptr78drop_in_place$LT$alloc..boxed..Box$LT$$u5b$hi 27: ; preds = %17 %28 = mul nsw i64 %4, 24 - %29 = icmp ne ptr %2, null - tail call void @llvm.assume(i1 %29) tail call void @__rust_dealloc(ptr noundef nonnull %2, i64 noundef %28, i64 noundef 8) #51 resume { ptr, i32 } %20 } diff --git a/bench/sentencepiece/optimized/builder.cc.ll b/bench/sentencepiece/optimized/builder.cc.ll index 08a7c0f43b3..83cb6fbd126 100644 --- a/bench/sentencepiece/optimized/builder.cc.ll +++ b/bench/sentencepiece/optimized/builder.cc.ll @@ -613,7 +613,7 @@ _ZN13sentencepiece4util13StatusBuilderlsIA3_cEERS1_RKT_.exit86: ; preds = %_ZN13 101: ; preds = %.lr.ph store i32 0, ptr %100, align 4 - %102 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %.sroa.0256.0307) #25 + %102 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %.sroa.0256.0307) #25 %.not282 = icmp eq ptr %102, %98 br i1 %.not282, label %._crit_edge, label %.lr.ph @@ -968,7 +968,7 @@ _ZN13sentencepiece4util13StatusBuilderlsIA3_cEERS1_RKT_.exit136: ; preds = %_ZN1 _ZNSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiESaIS7_EE12emplace_backIJRKS6_RKiEEERS7_DpOT_.exit: ; preds = %202, %.noexc141 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #23 - %203 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef %.sroa.0247.0314) #25 + %203 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %.sroa.0247.0314) #25 %.not284 = icmp eq ptr %203, %98 br i1 %.not284, label %._crit_edge317, label %147 @@ -15683,7 +15683,7 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE %23 = phi ptr [ %22, %20 ], [ null, %_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiESaIS7_EE12_M_check_lenEmPKc.exit ] %24 = getelementptr inbounds i8, ptr %23, i64 %19 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(36) %24, ptr noundef nonnull align 8 dereferenceable(32) %2) - to label %25 unwind label %45 + to label %25 unwind label %47 25: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiESaIS7_EE11_M_allocateEm.exit %26 = getelementptr inbounds nuw i8, ptr %24, i64 32 @@ -15750,37 +15750,26 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE store ptr %44, ptr %39, align 8 ret void -45: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiESaIS7_EE11_M_allocateEm.exit +45: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiESaIS7_EE13_M_deallocateEPS7_m.exit38 %46 = landingpad { ptr, i32 } - catch ptr null - %47 = extractvalue { ptr, i32 } %46, 0 - %48 = tail call ptr @__cxa_begin_catch(ptr %47) #23 - %.not = icmp eq ptr %23, null - br i1 %.not, label %.thread, label %51 - -.thread: ; preds = %45 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %24) #23 - br label %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiESaIS7_EE13_M_deallocateEPS7_m.exit38 - -49: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiESaIS7_EE13_M_deallocateEPS7_m.exit38 - %50 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %53 unwind label %54 -51: ; preds = %45 - %52 = mul nuw nsw i64 %17, 40 - tail call void @_ZdlPvm(ptr noundef nonnull %23, i64 noundef %52) #28 - br label %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiESaIS7_EE13_M_deallocateEPS7_m.exit38 - -_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiESaIS7_EE13_M_deallocateEPS7_m.exit38: ; preds = %51, %.thread +47:; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEiESaIS7_EE11_M_allocateEm.exit + %48 = landingpad { ptr, i32 } + catch ptr null + %49 = extractvalue { ptr, i32 } %48, 0 + %50 = tail call ptr @__cxa_begin_catch(ptr %49) #23 + %51 = mul nuw nsw i64 %17, 40 + tail call void @_ZdlPvm(ptr noundef nonnull %23, i64 noundef %51) #28 invoke void @__cxa_rethrow() #26 - to label %57 unwind label %49 + to label %57 unwind label %45 -53: ; preds = %49 - resume { ptr, i32 } %50 +53: ; preds = %45 + resume { ptr, i32 } %46 -54: ; preds = %49 +54: ; preds = %45 %55 = landingpad { ptr, i32 } catch ptr null %56 = extractvalue { ptr, i32 } %55, 0 diff --git a/bench/sentencepiece/optimized/word_model_trainer.cc.ll b/bench/sentencepiece/optimized/word_model_trainer.cc.ll index 44c9e5d457c..64f88df15da 100644 --- a/bench/sentencepiece/optimized/word_model_trainer.cc.ll +++ b/bench/sentencepiece/optimized/word_model_trainer.cc.ll @@ -2417,7 +2417,7 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE %23 = phi ptr [ %22, %20 ], [ null, %_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfESaIS7_EE12_M_check_lenEmPKc.exit ] %24 = getelementptr inbounds i8, ptr %23, i64 %19 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(36) %24, ptr noundef nonnull align 8 dereferenceable(32) %2) - to label %25 unwind label %45 + to label %25 unwind label %47 25: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfESaIS7_EE11_M_allocateEm.exit %26 = getelementptr inbounds nuw i8, ptr %24, i64 32 @@ -2484,44 +2484,33 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE store ptr %44, ptr %39, align 8 ret void -45: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfESaIS7_EE11_M_allocateEm.exit +45: ; preds = %47 %46 = landingpad { ptr, i32 } - catch ptr null - %47 = extractvalue { ptr, i32 } %46, 0 - %48 = tail call ptr @__cxa_begin_catch(ptr %47) #18 - %.not = icmp eq ptr %23, null - br i1 %.not, label %.thread, label %51 - -.thread: ; preds = %45 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(36) %24) #18 - br label %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfESaIS7_EE13_M_deallocateEPS7_m.exit38 - -49: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfESaIS7_EE13_M_deallocateEPS7_m.exit38 - %50 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %53 unwind label %54 -51: ; preds = %45 - %52 = mul nuw nsw i64 %17, 40 - tail call void @_ZdlPvm(ptr noundef nonnull %23, i64 noundef %52) #19 - br label %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfESaIS7_EE13_M_deallocateEPS7_m.exit38 - -_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfESaIS7_EE13_M_deallocateEPS7_m.exit38: ; preds = %51, %.thread +51: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfESaIS7_EE11_M_allocateEm.exit + %52 = landingpad { ptr, i32 } + catch ptr null + %49 = extractvalue { ptr, i32 } %48, 0 + %50 = tail call ptr @__cxa_begin_catch(ptr %49) #18 + %51 = mul nuw nsw i64 %17, 40 + tail call void @_ZdlPvm(ptr noundef nonnull %23, i64 noundef %51) #19 invoke void @__cxa_rethrow() #22 - to label %57 unwind label %49 + to label %57 unwind label %45 -53: ; preds = %49 - resume { ptr, i32 } %50 +53: ; preds = %45 + resume { ptr, i32 } %46 -54: ; preds = %49 +54: ; preds = %45 %55 = landingpad { ptr, i32 } catch ptr null %56 = extractvalue { ptr, i32 } %55, 0 tail call void @__clang_call_terminate(ptr %56) #20 unreachable -57: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEfESaIS7_EE13_M_deallocateEPS7_m.exit38 +57: ; preds = %47 unreachable } diff --git a/bench/slurm/optimized/licenses.ll b/bench/slurm/optimized/licenses.ll index 27a52f482f8..5574f50f928 100644 --- a/bench/slurm/optimized/licenses.ll +++ b/bench/slurm/optimized/licenses.ll @@ -506,20 +506,21 @@ define dso_local noundef i32 @license_update(ptr noundef %0) local_unnamed_addr %.not39 = icmp eq i8 %34, 0 br i1 %.not39, label %40, label %.split.us -.split.us: ; preds = %.lr.ph.split, %.lr.ph.split.us - %.us-phi = phi ptr [ %21, %.lr.ph.split.us ], [ %32, %.lr.ph.split ] +.split.us: ; preds = %.lr.ph.split %35 = tail call ptr @list_remove(ptr noundef %18) #11 - br i1 %.not40, label %36, label %.outer + br label %.outer -36: ; preds = %.split.us +36: ; preds = %.lr.ph.split.us + %36 = tail call ptr @list_remove(ptr noundef %18) #11 %37 = tail call ptr @list_create(ptr noundef nonnull @license_free_rec) #11 br label %.outer .outer: ; preds = %36, %.split.us - %.1 = phi ptr [ %.028.ph50, %.split.us ], [ %37, %36 ] - %38 = getelementptr inbounds nuw i8, ptr %.us-phi, i64 12 + %.1 = phi ptr [ %21, %.split.us ], [ %32, %36 ] + %38 = phi ptr [ %37, %.split.us ], [ %.028.ph50, %36 ] + %38 = getelementptr inbounds nuw i8, ptr %.us-phi61, i64 12 store i32 0, ptr %38, align 4 - tail call void @list_append(ptr noundef %.1, ptr noundef nonnull %.us-phi) #11 + tail call void @list_append(ptr noundef %.1, ptr noundef nonnull %.us-phi61) #11 %39 = tail call ptr @list_next(ptr noundef %18) #11 %.not3646 = icmp eq ptr %39, null br i1 %.not3646, label %.outer._crit_edge, label %.lr.ph, !llvm.loop !12 diff --git a/bench/slurm/optimized/sackd_mgr.ll b/bench/slurm/optimized/sackd_mgr.ll index 48b3d7f78c4..81df865d6d3 100644 --- a/bench/slurm/optimized/sackd_mgr.ll +++ b/bench/slurm/optimized/sackd_mgr.ll @@ -204,39 +204,27 @@ define internal range(i32 -1, 1) i32 @_unpack_node(ptr noundef writeonly capture %14 = load i64, ptr %5, align 8 %15 = getelementptr inbounds nuw i8, ptr %8, i64 16 store i64 %14, ptr %15, align 8 - %16 = call i32 @unpackstr_xmalloc_chooser(ptr noundef %8, ptr noundef nonnull %6, ptr noundef %2) #7 + %16 = call i32 @unpackstr_xmalloc_chooser(ptr noundef nonnull %8, ptr noundef nonnull %6, ptr noundef %2) #7 %.not12 = icmp eq i32 %16, 0 - br i1 %.not12, label %17, label %.thread + br i1 %.not12, label %17, label %21 17: ; preds = %13 %18 = getelementptr inbounds nuw i8, ptr %8, i64 8 %19 = call i32 @unpackstr_xmalloc_chooser(ptr noundef nonnull %18, ptr noundef nonnull %7, ptr noundef %2) #7 %.not13 = icmp eq i32 %19, 0 - br i1 %.not13, label %20, label %.thread + br i1 %.not13, label %20, label %21 20: ; preds = %17 store ptr %8, ptr %0, align 8 - br label %24 - -.thread: ; preds = %17, %13 - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) - store ptr %8, ptr %4, align 8 br label %22 -21: ; preds = %11, %3 +21: ; preds = %17, %13, %11, %3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) store ptr %8, ptr %4, align 8 - %.not.i = icmp eq ptr %8, null - br i1 %.not.i, label %_destroy_sackd_node.exit, label %22 - -22: ; preds = %.thread, %21 call void @slurm_xfree(ptr noundef nonnull %8) #7 %23 = getelementptr inbounds nuw i8, ptr %8, i64 8 call void @slurm_xfree(ptr noundef nonnull %23) #7 call void @slurm_xfree(ptr noundef nonnull %4) #7 - br label %_destroy_sackd_node.exit - -_destroy_sackd_node.exit: ; preds = %21, %22 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) br label %24 diff --git a/bench/tev/optimized/ImageViewer.cpp.ll b/bench/tev/optimized/ImageViewer.cpp.ll index 7574fccc363..01774dfe947 100644 --- a/bench/tev/optimized/ImageViewer.cpp.ll +++ b/bench/tev/optimized/ImageViewer.cpp.ll @@ -14608,8 +14608,8 @@ _ZN4tlog6StreamlsIA45_cEERS0_RKT_.exit: ; preds = %5 call void @_ZN4tlog6StreamD2Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #41 br label %13 -common.resume: ; preds = %24, %26, %30, %11 - %common.resume.op = phi { ptr, i32 } [ %12, %11 ], [ %25, %30 ], [ %25, %26 ], [ %25, %24 ] +common.resume: ; preds = %24, %30, %11 + %common.resume.op = phi { ptr, i32 } [ %12, %11 ], [ %25, %30 ], [ %25, %24 ] resume { ptr, i32 } %common.resume.op 11: ; preds = %5 @@ -14642,20 +14642,16 @@ common.resume: ; preds = %24, %26, %30, %11 24: ; preds = %13 %25 = landingpad { ptr, i32 } cleanup - %.not.i.i3.i.i = icmp eq ptr %15, null - br i1 %.not.i.i3.i.i, label %common.resume, label %26 - -26: ; preds = %24 - %27 = getelementptr inbounds nuw i8, ptr %15, i64 8 - %28 = atomicrmw add ptr %27, i64 -1 acq_rel, align 8 - %29 = icmp eq i64 %28, 0 - br i1 %29, label %30, label %common.resume + %.not.i.i3.i.i = getelementptr inbounds nuw i8, ptr %15, i64 8 + %27 = atomicrmw add ptr %.not.i.i3.i.i, i64 -1 acq_rel, align 8 + %28 = icmp eq i64 %27, 0 + br i1 %28, label %29, label %common.resume -30: ; preds = %26 +30: ; preds = %24 %31 = load ptr, ptr %15, align 8 %32 = getelementptr inbounds nuw i8, ptr %31, i64 16 %33 = load ptr, ptr %32, align 8 - call void %33(ptr noundef nonnull align 8 dereferenceable(16) %15) #41 + call void %32(ptr noundef nonnull align 8 dereferenceable(16) %15) #41 br label %common.resume _ZN3tev4TaskINSt3__16vectorINS1_10shared_ptrINS_5ImageEEENS1_9allocatorIS5_EEEEE12await_resumeEv.exit: ; preds = %16, %20 @@ -17644,7 +17640,7 @@ define dso_local void @_ZN3tev11ImageViewer12replaceImageENSt3__110shared_ptrINS 14: ; preds = %11 %15 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %12) #41 + tail call void @__cxa_free_exception(ptr nonnull %12) #41 br label %172 16: ; preds = %4 @@ -20337,7 +20333,7 @@ define dso_local void @_ZN3tev11ImageViewer11insertImageENSt3__110shared_ptrINS_ 17: ; preds = %14 %18 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %15) #41 + tail call void @__cxa_free_exception(ptr nonnull %15) #41 br label %_ZNSt3__18functionIFvvEED2Ev.exit63 19: ; preds = %4 @@ -23259,7 +23255,7 @@ define linkonce_odr dso_local void @_ZN4tlog12timeToStringERKNSt3__112basic_stri 18: ; preds = %15 %19 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %16) #41 + call void @__cxa_free_exception(ptr nonnull %16) #41 resume { ptr, i32 } %19 20: ; preds = %3 @@ -23305,7 +23301,7 @@ define linkonce_odr hidden void @_ZNSt3__120__throw_length_errorB8ne190000EPKc(p 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #41 + tail call void @__cxa_free_exception(ptr nonnull %2) #41 resume { ptr, i32 } %5 } @@ -23384,7 +23380,7 @@ define linkonce_odr dso_local void @_ZN4tlog11progressBarEmmNSt3__16chrono8durat 32: ; preds = %29 %33 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %30) #41 + tail call void @__cxa_free_exception(ptr nonnull %30) #41 br label %319 34: ; preds = %5 @@ -23403,7 +23399,7 @@ define linkonce_odr dso_local void @_ZN4tlog11progressBarEmmNSt3__16chrono8durat 39: ; preds = %36 %40 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %37) #41 + tail call void @__cxa_free_exception(ptr nonnull %37) #41 br label %319 41: ; preds = %34 @@ -28493,7 +28489,7 @@ define linkonce_odr hidden void @_ZNSt3__120__throw_out_of_rangeB8ne190000EPKc(p 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #41 + tail call void @__cxa_free_exception(ptr nonnull %2) #41 resume { ptr, i32 } %5 } @@ -31141,7 +31137,7 @@ define linkonce_odr dso_local void @_ZN3fmt2v96detail18throw_format_errorEPKc(pt 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %2) #41 + tail call void @__cxa_free_exception(ptr nonnull %2) #41 resume { ptr, i32 } %5 } @@ -47233,7 +47229,7 @@ _ZN3fmt2v96detail6bigintmLIiEERS2_T_.exit303: ; preds = %_ZN3fmt2v96detail6b 505: ; preds = %502 %506 = landingpad { ptr, i32 } cleanup - call void @__cxa_free_exception(ptr %503) #41 + call void @__cxa_free_exception(ptr nonnull %503) #41 br label %.body _ZN3fmt2v96detail16adjust_precisionERii.exit: ; preds = %497 @@ -62121,7 +62117,7 @@ _ZN3fmt2v96detail9normalizeILi0EyEENS1_8basic_fpIT0_EES5_.exit: ; preds = %.lr.p 118: ; preds = %115 %119 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %116) #41 + tail call void @__cxa_free_exception(ptr nonnull %116) #41 resume { ptr, i32 } %119 _ZN3fmt2v96detail16adjust_precisionERii.exit: ; preds = %110 diff --git a/bench/turborepo-rs/optimized/667fw7b0fgqo2a1672jmft41u.ll b/bench/turborepo-rs/optimized/667fw7b0fgqo2a1672jmft41u.ll index 75011584653..09c2cca5331 100644 --- a/bench/turborepo-rs/optimized/667fw7b0fgqo2a1672jmft41u.ll +++ b/bench/turborepo-rs/optimized/667fw7b0fgqo2a1672jmft41u.ll @@ -1298,8 +1298,6 @@ _ZN3std4sync6poison4Flag4done17he5a058c907639c42E.exit.i.i.i.i: ; preds = %141, 151: ; preds = %150 %152 = landingpad { ptr, i32 } cleanup - %153 = icmp ne ptr %.sroa.46.0.copyload.i, null - call void @llvm.assume(i1 %153) br label %.body.thread.sink.split.i .noexc5.i: ; preds = %150 diff --git a/bench/typst-rs/optimized/m09o5qr68f5khss.ll b/bench/typst-rs/optimized/m09o5qr68f5khss.ll index 5d4778179c7..fdd05d6de1f 100644 --- a/bench/typst-rs/optimized/m09o5qr68f5khss.ll +++ b/bench/typst-rs/optimized/m09o5qr68f5khss.ll @@ -38813,8 +38813,6 @@ define internal fastcc void @"_ZN4core3ptr63drop_in_place$LT$time..format_descri .body.i: ; preds = %11 %20 = shl nsw i64 %.val1, 4 - %21 = icmp ne ptr %.val, null - tail call void @llvm.assume(i1 %21) tail call void @__rust_dealloc(ptr noundef nonnull %.val, i64 noundef range(i64 1, 0) %20, i64 noundef 8) #79 resume { ptr, i32 } %14 @@ -39844,8 +39842,6 @@ define internal fastcc void @"_ZN4core3ptr98drop_in_place$LT$alloc..boxed..Box$L .body: ; preds = %6 %15 = mul nsw i64 %.8.val, 48 - %16 = icmp ne ptr %.0.val, null - tail call void @llvm.assume(i1 %16) tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef range(i64 1, 0) %15, i64 noundef 8) #79 resume { ptr, i32 } %9 diff --git a/bench/vcpkg/optimized/cmakevars.cpp.ll b/bench/vcpkg/optimized/cmakevars.cpp.ll index 8f1da7ef3a9..89a2701c45a 100644 --- a/bench/vcpkg/optimized/cmakevars.cpp.ll +++ b/bench/vcpkg/optimized/cmakevars.cpp.ll @@ -9077,7 +9077,7 @@ _ZNSt12_Vector_baseIN5vcpkg11PackageSpecESaIS1_EE11_M_allocateEm.exit: ; preds = %22 = phi ptr [ %21, %19 ], [ null, %_ZNKSt6vectorIN5vcpkg11PackageSpecESaIS1_EE12_M_check_lenEmPKc.exit ] %23 = getelementptr inbounds i8, ptr %22, i64 %18 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(40) %23, ptr noundef nonnull align 8 dereferenceable(40) %2) - to label %24 unwind label %42 + to label %24 unwind label %44 24: ; preds = %_ZNSt12_Vector_baseIN5vcpkg11PackageSpecESaIS1_EE11_M_allocateEm.exit %25 = getelementptr inbounds nuw i8, ptr %23, i64 32 @@ -9142,43 +9142,32 @@ _ZNSt12_Vector_baseIN5vcpkg11PackageSpecESaIS1_EE13_M_deallocateEPS1_m.exit: ; p store ptr %41, ptr %40, align 8 ret void -42: ; preds = %_ZNSt12_Vector_baseIN5vcpkg11PackageSpecESaIS1_EE11_M_allocateEm.exit +42: ; preds = %44 %43 = landingpad { ptr, i32 } - catch ptr null - %44 = extractvalue { ptr, i32 } %43, 0 - %45 = tail call ptr @__cxa_begin_catch(ptr %44) #21 - %.not = icmp eq ptr %22, null - br i1 %.not, label %.thread, label %48 - -.thread: ; preds = %42 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %23) #21 - br label %_ZNSt12_Vector_baseIN5vcpkg11PackageSpecESaIS1_EE13_M_deallocateEPS1_m.exit37 - -46: ; preds = %_ZNSt12_Vector_baseIN5vcpkg11PackageSpecESaIS1_EE13_M_deallocateEPS1_m.exit37 - %47 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %49 unwind label %50 -48: ; preds = %42 +48: ; preds = %_ZNSt12_Vector_baseIN5vcpkg11PackageSpecESaIS1_EE11_M_allocateEm.exit + %45 = landingpad { ptr, i32 } + catch ptr null + %46 = extractvalue { ptr, i32 } %45, 0 + %47 = tail call ptr @__cxa_begin_catch(ptr %46) #21 tail call void @_ZdlPv(ptr noundef nonnull %22) #22 - br label %_ZNSt12_Vector_baseIN5vcpkg11PackageSpecESaIS1_EE13_M_deallocateEPS1_m.exit37 - -_ZNSt12_Vector_baseIN5vcpkg11PackageSpecESaIS1_EE13_M_deallocateEPS1_m.exit37: ; preds = %48, %.thread invoke void @__cxa_rethrow() #23 - to label %53 unwind label %46 + to label %53 unwind label %42 -49: ; preds = %46 - resume { ptr, i32 } %47 +49: ; preds = %42 + resume { ptr, i32 } %43 -50: ; preds = %46 +50: ; preds = %42 %51 = landingpad { ptr, i32 } catch ptr null %52 = extractvalue { ptr, i32 } %51, 0 tail call void @__clang_call_terminate(ptr %52) #19 unreachable -53: ; preds = %_ZNSt12_Vector_baseIN5vcpkg11PackageSpecESaIS1_EE13_M_deallocateEPS1_m.exit37 +53: ; preds = %44 unreachable } diff --git a/bench/velox/optimized/Bridge.cpp.ll b/bench/velox/optimized/Bridge.cpp.ll index 559328f627d..97b4115a8e9 100644 --- a/bench/velox/optimized/Bridge.cpp.ll +++ b/bench/velox/optimized/Bridge.cpp.ll @@ -41511,7 +41511,7 @@ invoke.cont: ; preds = %entry lpad: ; preds = %entry %0 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #39 + tail call void @__cxa_free_exception(ptr nonnull %exception) #39 resume { ptr, i32 } %0 } @@ -174919,15 +174919,8 @@ invoke.cont9: ; preds = %cond.false4.i.i.i.i to label %if.else.i.i.i unwind label %lpad8 if.else.i.i.i: ; preds = %invoke.cont9 - br i1 %tobool.not.i.i8, label %if.end19, label %if.then3.i.i.i - -if.then3.i.i.i: ; preds = %if.else.i.i.i invoke void @_ZN5folly15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEE6unlockEv(ptr noundef nonnull align 4 dereferenceable(4) %3) - to label %.noexc1.i.i unwind label %terminate.lpad.i.i - -.noexc1.i.i: ; preds = %if.then3.i.i.i - store i8 0, ptr %_M_owns.i.i.i, align 8 - br label %if.end19 + to label %if.end19 unwind label %terminate.lpad.i.i terminate.lpad.i.i: ; preds = %if.then3.i.i.i %4 = landingpad { ptr, i32 } @@ -174947,7 +174940,8 @@ lpad8: ; preds = %invoke.cont9 call void @_ZN5folly9LockedPtrINS_12SynchronizedIN8facebook5velox17SelectivityVectorENS_15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEEEEENS_6detail22SynchronizedLockPolicyILNSA_22SynchronizedMutexLevelE1ELNSA_23SynchronizedMutexMethodE0EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp) #39 br label %ehcleanup -if.end19: ; preds = %.noexc1.i.i, %if.else.i.i.i +if.end19: ; preds = %if.else.i.i.i + store i8 0, ptr %_M_owns.i.i.i, align 8 %8 = load atomic i8, ptr %asciiInfo seq_cst, align 8 %tobool.i.i.i = trunc i8 %8 to i1 %and4 = and i1 %newAscii, %tobool.i.i.i @@ -190876,7 +190870,7 @@ invoke.cont: ; preds = %entry lpad: ; preds = %entry %1 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #39 + tail call void @__cxa_free_exception(ptr nonnull %exception) #39 resume { ptr, i32 } %1 } diff --git a/bench/velox/optimized/ConstantExpr.cpp.ll b/bench/velox/optimized/ConstantExpr.cpp.ll index db6c677f77d..390f69b6baf 100644 --- a/bench/velox/optimized/ConstantExpr.cpp.ll +++ b/bench/velox/optimized/ConstantExpr.cpp.ll @@ -4227,7 +4227,7 @@ invoke.cont: ; preds = %entry lpad: ; preds = %entry %1 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #26 + tail call void @__cxa_free_exception(ptr nonnull %exception) #26 resume { ptr, i32 } %1 } @@ -5851,9 +5851,6 @@ invoke.cont6: ; preds = %cond.false4.i.i.i.i to label %if.else.i.i.i unwind label %lpad5 if.else.i.i.i: ; preds = %invoke.cont6 - br i1 %tobool.not.i.i2, label %if.end, label %if.then3.i.i.i - -if.then3.i.i.i: ; preds = %if.else.i.i.i invoke void @_ZN5folly15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEE6unlockEv(ptr noundef nonnull align 4 dereferenceable(4) %2) to label %.noexc1.i.i unwind label %terminate.lpad.i.i @@ -5879,7 +5876,7 @@ lpad5: ; preds = %invoke.cont6 call void @_ZN5folly9LockedPtrINS_12SynchronizedIN8facebook5velox17SelectivityVectorENS_15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEEEEENS_6detail22SynchronizedLockPolicyILNSA_22SynchronizedMutexLevelE1ELNSA_23SynchronizedMutexMethodE0EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp) #26 br label %ehcleanup -if.end: ; preds = %.noexc1.i.i, %if.else.i.i.i, %invoke.cont +if.end: ; preds = %.noexc1.i.i, %invoke.cont %8 = load i8, ptr %state_.i.i.i.i2.i.i.i, align 8 %tobool.i.i.i.i.i6 = trunc i8 %8 to i1 br i1 %tobool.i.i.i.i.i6, label %if.then.i.i.i.i, label %_ZN5folly9LockedPtrINS_12SynchronizedIN8facebook5velox17SelectivityVectorENS_15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEEEEENS_6detail22SynchronizedLockPolicyILNSA_22SynchronizedMutexLevelE3ELNSA_23SynchronizedMutexMethodE0EEEED2Ev.exit diff --git a/bench/velox/optimized/Expr.cpp.ll b/bench/velox/optimized/Expr.cpp.ll index ecf3540c739..59f0c7d63fc 100644 --- a/bench/velox/optimized/Expr.cpp.ll +++ b/bench/velox/optimized/Expr.cpp.ll @@ -30051,9 +30051,6 @@ invoke.cont5: ; preds = %cond.false4.i.i.i.i to label %if.else.i.i.i unwind label %lpad4 if.else.i.i.i: ; preds = %invoke.cont5 - br i1 %tobool.not.i.i2, label %if.end, label %if.then3.i.i.i - -if.then3.i.i.i: ; preds = %if.else.i.i.i invoke void @_ZN5folly15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEE6unlockEv(ptr noundef nonnull align 4 dereferenceable(4) %2) to label %.noexc1.i.i unwind label %terminate.lpad.i.i @@ -30079,7 +30076,7 @@ lpad4: ; preds = %invoke.cont5 call void @_ZN5folly9LockedPtrINS_12SynchronizedIN8facebook5velox17SelectivityVectorENS_15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEEEEENS_6detail22SynchronizedLockPolicyILNSA_22SynchronizedMutexLevelE1ELNSA_23SynchronizedMutexMethodE0EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp) #33 br label %ehcleanup -if.end: ; preds = %.noexc1.i.i, %if.else.i.i.i, %invoke.cont +if.end: ; preds = %.noexc1.i.i, %invoke.cont %8 = load i8, ptr %state_.i.i.i.i2.i.i.i, align 8 %tobool.i.i.i.i.i6 = trunc i8 %8 to i1 br i1 %tobool.i.i.i.i.i6, label %if.then.i.i.i.i, label %_ZN5folly9LockedPtrINS_12SynchronizedIN8facebook5velox17SelectivityVectorENS_15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEEEEENS_6detail22SynchronizedLockPolicyILNSA_22SynchronizedMutexLevelE3ELNSA_23SynchronizedMutexMethodE0EEEED2Ev.exit @@ -34273,7 +34270,7 @@ invoke.cont: ; preds = %entry lpad: ; preds = %entry %0 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #33 + tail call void @__cxa_free_exception(ptr nonnull %exception) #33 resume { ptr, i32 } %0 } @@ -34418,7 +34415,7 @@ invoke.cont: ; preds = %entry lpad: ; preds = %entry %0 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #33 + tail call void @__cxa_free_exception(ptr nonnull %exception) #33 resume { ptr, i32 } %0 } @@ -34952,7 +34949,7 @@ invoke.cont: ; preds = %entry lpad: ; preds = %entry %0 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #33 + tail call void @__cxa_free_exception(ptr nonnull %exception) #33 resume { ptr, i32 } %0 } @@ -35112,7 +35109,7 @@ invoke.cont: ; preds = %entry lpad: ; preds = %entry %0 = landingpad { ptr, i32 } cleanup - tail call void @__cxa_free_exception(ptr %exception) #33 + tail call void @__cxa_free_exception(ptr nonnull %exception) #33 resume { ptr, i32 } %0 } diff --git a/bench/velox/optimized/FlatVector.cpp.ll b/bench/velox/optimized/FlatVector.cpp.ll index 63ed4cb1468..d8f0f5d295a 100644 --- a/bench/velox/optimized/FlatVector.cpp.ll +++ b/bench/velox/optimized/FlatVector.cpp.ll @@ -3950,9 +3950,6 @@ invoke.cont5: ; preds = %cond.false4.i.i.i.i to label %if.else.i.i.i unwind label %lpad4 if.else.i.i.i: ; preds = %invoke.cont5 - br i1 %tobool.not.i.i2, label %if.end, label %if.then3.i.i.i - -if.then3.i.i.i: ; preds = %if.else.i.i.i invoke void @_ZN5folly15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEE6unlockEv(ptr noundef nonnull align 4 dereferenceable(4) %2) to label %.noexc1.i.i unwind label %terminate.lpad.i.i @@ -3978,7 +3975,7 @@ lpad4: ; preds = %invoke.cont5 call void @_ZN5folly9LockedPtrINS_12SynchronizedIN8facebook5velox17SelectivityVectorENS_15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEEEEENS_6detail22SynchronizedLockPolicyILNSA_22SynchronizedMutexLevelE1ELNSA_23SynchronizedMutexMethodE0EEEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp) #32 br label %ehcleanup -if.end: ; preds = %.noexc1.i.i, %if.else.i.i.i, %invoke.cont +if.end: ; preds = %.noexc1.i.i, %invoke.cont %8 = load i8, ptr %state_.i.i.i.i2.i.i.i, align 8 %tobool.i.i.i.i.i6 = trunc i8 %8 to i1 br i1 %tobool.i.i.i.i.i6, label %if.then.i.i.i.i, label %_ZN5folly9LockedPtrINS_12SynchronizedIN8facebook5velox17SelectivityVectorENS_15SharedMutexImplILb0EvSt6atomicNS_24SharedMutexPolicyDefaultEEEEENS_6detail22SynchronizedLockPolicyILNSA_22SynchronizedMutexLevelE3ELNSA_23SynchronizedMutexMethodE0EEEED2Ev.exit diff --git a/bench/verilator/optimized/V3Begin.cpp.ll b/bench/verilator/optimized/V3Begin.cpp.ll index 0226664eece..494ad0409e6 100644 --- a/bench/verilator/optimized/V3Begin.cpp.ll +++ b/bench/verilator/optimized/V3Begin.cpp.ll @@ -3589,25 +3589,17 @@ _ZlsRSoPK7AstNode.exit: ; preds = %14, %16 to label %43 unwind label %51 43: ; preds = %41 - %.not.i11 = icmp eq ptr %1, null - br i1 %.not.i11, label %44, label %46 + %.not.i11 = load ptr, ptr %1, align 8 + %45 = getelementptr inbounds nuw i8, ptr %.not.i11, i64 112 + %46 = load ptr, ptr %45, align 8 + invoke void %46(ptr noundef nonnull align 8 dereferenceable(152) %1, ptr noundef nonnull align 8 dereferenceable(8) %42) + to label %_ZlsRSoPK7AstNode.exit14 unwind label %48 -44: ; preds = %43 - %45 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull @.str.16) - to label %_ZlsRSoPK7AstNode.exit14 unwind label %51 - -46: ; preds = %43 - %47 = load ptr, ptr %1, align 8 - %48 = getelementptr inbounds nuw i8, ptr %47, i64 112 - %49 = load ptr, ptr %48, align 8 - invoke void %49(ptr noundef nonnull align 8 dereferenceable(152) %1, ptr noundef nonnull align 8 dereferenceable(8) %42) - to label %_ZlsRSoPK7AstNode.exit14 unwind label %51 - -_ZlsRSoPK7AstNode.exit14: ; preds = %44, %46 +_ZlsRSoPK7AstNode.exit14: ; preds = %43 %50 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %42, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_) to label %.thread15.sink.split unwind label %51 -51: ; preds = %46, %44, %_ZlsRSoPK7AstNode.exit14, %41, %38 +51: ; preds = %43, %_ZlsRSoPK7AstNode.exit14, %41, %38 %52 = landingpad { ptr, i32 } cleanup br label %53 diff --git a/bench/wasmedge/optimized/vm.cpp.ll b/bench/wasmedge/optimized/vm.cpp.ll index a5a60539053..20d48bb6f51 100644 --- a/bench/wasmedge/optimized/vm.cpp.ll +++ b/bench/wasmedge/optimized/vm.cpp.ll @@ -23400,7 +23400,7 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE %23 = phi ptr [ %22, %20 ], [ null, %_ZNKSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN8WasmEdge3AST12FunctionTypeEESaISC_EE12_M_check_lenEmPKc.exit ] %24 = getelementptr inbounds i8, ptr %23, i64 %19 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(40) %24, ptr noundef nonnull align 8 dereferenceable(32) %2) - to label %25 unwind label %44 + to label %25 unwind label %46 25: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN8WasmEdge3AST12FunctionTypeEESaISC_EE11_M_allocateEm.exit %26 = getelementptr inbounds nuw i8, ptr %24, i64 32 @@ -23466,37 +23466,26 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE store ptr %43, ptr %38, align 8 ret void -44: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN8WasmEdge3AST12FunctionTypeEESaISC_EE11_M_allocateEm.exit +44: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN8WasmEdge3AST12FunctionTypeEESaISC_EE13_M_deallocateEPSC_m.exit38 %45 = landingpad { ptr, i32 } - catch ptr null - %46 = extractvalue { ptr, i32 } %45, 0 - %47 = tail call ptr @__cxa_begin_catch(ptr %46) #25 - %.not = icmp eq ptr %23, null - br i1 %.not, label %.thread, label %50 - -.thread: ; preds = %44 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(40) %24) #25 - br label %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN8WasmEdge3AST12FunctionTypeEESaISC_EE13_M_deallocateEPSC_m.exit38 - -48: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN8WasmEdge3AST12FunctionTypeEESaISC_EE13_M_deallocateEPSC_m.exit38 - %49 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %52 unwind label %53 -50: ; preds = %44 - %51 = mul nuw nsw i64 %17, 40 - tail call void @_ZdlPvm(ptr noundef nonnull %23, i64 noundef %51) #27 - br label %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN8WasmEdge3AST12FunctionTypeEESaISC_EE13_M_deallocateEPSC_m.exit38 - -_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN8WasmEdge3AST12FunctionTypeEESaISC_EE13_M_deallocateEPSC_m.exit38: ; preds = %50, %.thread +46:; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKN8WasmEdge3AST12FunctionTypeEESaISC_EE11_M_allocateEm.exit + %47 = landingpad { ptr, i32 } + catch ptr null + %48 = extractvalue { ptr, i32 } %47, 0 + %49 = tail call ptr @__cxa_begin_catch(ptr %48) #25 + %50 = mul nuw nsw i64 %17, 40 + tail call void @_ZdlPvm(ptr noundef nonnull %23, i64 noundef %50) #27 invoke void @__cxa_rethrow() #29 - to label %56 unwind label %48 + to label %56 unwind label %44 -52: ; preds = %48 - resume { ptr, i32 } %49 +52: ; preds = %44 + resume { ptr, i32 } %45 -53: ; preds = %48 +53: ; preds = %44 %54 = landingpad { ptr, i32 } catch ptr null %55 = extractvalue { ptr, i32 } %54, 0 @@ -54508,7 +54497,7 @@ _ZNKSt4lessIvEclIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_EEDTlt br i1 %50, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PN8WasmEdge7Runtime8Instance16FunctionInstanceEESt10_Select1stISD_ESt4lessIvESaISD_EE24_M_get_insert_unique_posERS7_.exit, label %51 51: ; preds = %47 - %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %1) #30 + %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #30 %53 = getelementptr inbounds nuw i8, ptr %52, i64 32 %54 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %2) to label %_ZNKSt4lessIvEclIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_EEDTltclsr3stdE7forwardIT_Efp_Eclsr3stdE7forwardIT0_Efp0_EEOSA_OSB_.exit11 unwind label %55 @@ -54614,7 +54603,7 @@ _ZNKSt4lessIvEclIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_EEDTlt br i1 %91, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PN8WasmEdge7Runtime8Instance16FunctionInstanceEESt10_Select1stISD_ESt4lessIvESaISD_EE24_M_get_insert_unique_posERS7_.exit, label %92 92: ; preds = %88 - %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %1) #30 + %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #30 %94 = getelementptr inbounds nuw i8, ptr %93, i64 32 %95 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %94) to label %_ZNKSt4lessIvEclIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES9_EEDTltclsr3stdE7forwardIT_Efp_Eclsr3stdE7forwardIT0_Efp0_EEOSA_OSB_.exit35 unwind label %96 @@ -145671,7 +145660,7 @@ _ZSt10_ConstructIN8WasmEdge3AST7SubTypeEJRKS2_EEvPT_DpOT0_.exit.i.i.i.i: ; preds catch ptr null %24 = extractvalue { ptr, i32 } %23, 0 %25 = tail call ptr @__cxa_begin_catch(ptr %24) #25 - invoke void @_ZSt8_DestroyIPN8WasmEdge3AST7SubTypeEEvT_S4_(ptr noundef %14, ptr noundef %.014.i.i.i.i) + invoke void @_ZSt8_DestroyIPN8WasmEdge3AST7SubTypeEEvT_S4_(ptr noundef %14, ptr noundef nonnull %.014.i.i.i.i) to label %26 unwind label %27 26: ; preds = %22 @@ -147553,7 +147542,7 @@ _ZSt10_ConstructIN8WasmEdge3AST11DataSegmentEJRKS2_EEvPT_DpOT0_.exit.i.i.i.i: ; catch ptr null %24 = extractvalue { ptr, i32 } %23, 0 %25 = tail call ptr @__cxa_begin_catch(ptr %24) #25 - invoke void @_ZNSt12_Destroy_auxILb0EE9__destroyIPN8WasmEdge3AST11DataSegmentEEEvT_S6_(ptr noundef %14, ptr noundef %.014.i.i.i.i) + invoke void @_ZNSt12_Destroy_auxILb0EE9__destroyIPN8WasmEdge3AST11DataSegmentEEEvT_S6_(ptr noundef %14, ptr noundef nonnull %.014.i.i.i.i) to label %_ZSt8_DestroyIPN8WasmEdge3AST11DataSegmentEEvT_S4_.exit.i.i.i.i unwind label %26 _ZSt8_DestroyIPN8WasmEdge3AST11DataSegmentEEvT_S4_.exit.i.i.i.i: ; preds = %22 diff --git a/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll b/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll index 3201fbf381a..53b805ec610 100644 --- a/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll +++ b/bench/wasmtime-rs/optimized/enal6epyb0tyurl.ll @@ -10672,8 +10672,6 @@ define internal fastcc void @"_ZN4core3ptr285drop_in_place$LT$alloc..boxed..Box$ 28: ; preds = %18 %29 = mul nsw i64 %.8.val, 72 - %30 = icmp ne ptr %.0.val, null - tail call void @llvm.assume(i1 %30) tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef %29, i64 noundef 8) #43 resume { ptr, i32 } %eh.lpad-body.i } @@ -10899,8 +10897,6 @@ define internal void @"_ZN4core3ptr52drop_in_place$LT$target_lexicon..targets..V 17: ; preds = %8 %18 = landingpad { ptr, i32 } cleanup - %19 = icmp ne ptr %.val1, null - tail call void @llvm.assume(i1 %19) tail call void @__rust_dealloc(ptr noundef nonnull %.val1, i64 noundef 24, i64 noundef 8) #43 resume { ptr, i32 } %18 @@ -11493,8 +11489,6 @@ define internal fastcc void @"_ZN4core3ptr77drop_in_place$LT$alloc..boxed..Box$L "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.14223331465801898566.exit.i4": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE.exit.i" %24 = mul nsw i64 %.8.val, 24 - %25 = icmp ne ptr %.0.val, null - tail call void @llvm.assume(i1 %25) tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef %24, i64 noundef 8) #43 br label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h6f5a36d45de145c2E.exit5" @@ -11503,9 +11497,7 @@ define internal fastcc void @"_ZN4core3ptr77drop_in_place$LT$alloc..boxed..Box$L 26: ; preds = %15 %27 = mul nsw i64 %.8.val, 24 - %28 = icmp ne ptr %.0.val, null - tail call void @llvm.assume(i1 %28) - tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef %27, i64 noundef 8) #43 + tail call void @__rust_dealloc(ptr noundef nonnull %.0.val, i64 noundef %26, i64 noundef 8) #43 resume { ptr, i32 } %18 } @@ -12088,8 +12080,6 @@ define hidden void @"_ZN4core3ptr98drop_in_place$LT$alloc..boxed..Box$LT$$u5b$wa 31: ; preds = %21 %32 = shl nsw i64 %5, 5 - %33 = icmp ne ptr %3, null - tail call void @llvm.assume(i1 %33) tail call void @__rust_dealloc(ptr noundef nonnull %3, i64 noundef %32, i64 noundef 8) #43 resume { ptr, i32 } %24 } diff --git a/bench/wolfssl/optimized/benchmark.c.ll b/bench/wolfssl/optimized/benchmark.c.ll index 7168bf55a5d..48eb68a8ab1 100644 --- a/bench/wolfssl/optimized/benchmark.c.ll +++ b/bench/wolfssl/optimized/benchmark.c.ll @@ -5749,11 +5749,11 @@ if.then18: ; preds = %if.end7 %call.i = call ptr @wolfSSL_Malloc(i64 noundef 2048) #16 %call34.i = call ptr @wolfSSL_Malloc(i64 noundef 2048) #16 %cmp72.i = icmp eq ptr %call34.i, null + %tobool278.not.i = icmp eq ptr %call.i, null br i1 %cmp72.i, label %exit.i, label %if.end75.i if.end75.i: ; preds = %if.then18 - %cmp77.i = icmp eq ptr %call.i, null - br i1 %cmp77.i, label %if.then292.i, label %if.end80.i + br i1 %tobool278.not.i, label %if.then292.i, label %if.end80.i if.end80.i: ; preds = %if.end75.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(25) %message.i, ptr noundef nonnull align 1 dereferenceable(25) @.str.129, i64 25, i1 false) @@ -5809,7 +5809,7 @@ for.body94.i: ; preds = %bench_async_handle. exit_rsa_verify.thread.i: ; preds = %for.body94.i %8 = load ptr, ptr %arrayidx.i, align 8 call fastcc void @bench_stats_asym_finish(ptr noundef nonnull @.str.130, i32 noundef 2048, ptr noundef %8, i32 noundef %count.0.i, double noundef %add.i.i.i, i32 noundef %call103.i) - br label %exit.i + br label %if.then279.i bench_async_handle.exit.i: ; preds = %for.body94.i %inc.i.i = add nuw nsw i32 %times.0299.i, 1 @@ -5929,7 +5929,7 @@ exit_rsa_pub.i: ; preds = %bench_stats_check.e %arrayidx172.i = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 8 %23 = load ptr, ptr %arrayidx172.i, align 8 call fastcc void @bench_stats_asym_finish(ptr noundef nonnull @.str.130, i32 noundef 2048, ptr noundef %23, i32 noundef %count.3.i, double noundef %add.i.i101.i, i32 noundef %call154.i) - br label %exit.i + br label %if.then279.i if.else.i: ; preds = %if.end80.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %tv.i.i134.i) @@ -5981,7 +5981,7 @@ exit_rsa_sign.thread.i: ; preds = %for.body188.i %arrayidx216269.i = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 32 %30 = load ptr, ptr %arrayidx216269.i, align 8 call fastcc void @bench_stats_asym_finish(ptr noundef nonnull @.str.130, i32 noundef 2048, ptr noundef %30, i32 noundef %count.4.i, double noundef %add.i.i141.i, i32 noundef %call198.i) - br label %exit.i + br label %if.then279.i bench_async_handle.exit157.i: ; preds = %for.body188.i %inc.i156.i = add nuw nsw i32 %times.2301.i, 1 @@ -6102,24 +6102,21 @@ exit_rsa_verifyinline.i: ; preds = %bench_stats_check.e %arrayidx269.i = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 40 %45 = load ptr, ptr %arrayidx269.i, align 8 call fastcc void @bench_stats_asym_finish(ptr noundef nonnull @.str.130, i32 noundef 2048, ptr noundef %45, i32 noundef %count.7.i, double noundef %add.i.i181.i, i32 noundef %call251.i) - br label %exit.i + br label %if.then279.i -exit.i: ; preds = %exit_rsa_verifyinline.i, %exit_rsa_sign.thread.i, %exit_rsa_pub.i, %exit_rsa_verify.thread.i, %if.then18 - %tobool278.not.i = icmp eq ptr %call.i, null - br i1 %tobool278.not.i, label %for.end283.i, label %if.then279.i +exit.i: ; preds = %if.then18 + br i1 %tobool278.not.i, label %bench_rsa_helper.exit, label %if.then292.i -if.then279.i: ; preds = %exit.i +if.then279.i: ; preds = %exit_rsa_verify.thread.i, %exit_rsa_sign.thread.i, %exit_rsa_pub.i, %exit_rsa_verifyinline.i call void @wolfSSL_Free(ptr noundef nonnull %call.i) #16 - br label %for.end283.i - -for.end283.i: ; preds = %if.then279.i, %exit.i - br i1 %cmp72.i, label %bench_rsa_helper.exit, label %if.then292.i + br label %if.then292.i -if.then292.i: ; preds = %for.end283.i, %if.end75.i - call void @wolfSSL_Free(ptr noundef nonnull %call34.i) #16 +if.then292.i: ; preds = %if.then279.i, %exit.i, %if.end75.i + %call.sink.i = phi ptr [ %call.i, %exit.i ], [ %call34.i, %if.end75.i ], [ %call34.i, %if.then279.i ] + call void @wolfSSL_Free(ptr noundef nonnull %call.sink.i) #16 br label %bench_rsa_helper.exit -bench_rsa_helper.exit: ; preds = %for.end283.i, %if.then292.i +bench_rsa_helper.exit: ; preds = %exit.i, %if.then292.i call void @llvm.lifetime.end.p0(i64 25, ptr nonnull %message.i) br label %exit_bench_rsa diff --git a/bench/wolfssl/optimized/internal.c.ll b/bench/wolfssl/optimized/internal.c.ll index caacd8d72b7..aa7af2a8aa3 100644 --- a/bench/wolfssl/optimized/internal.c.ll +++ b/bench/wolfssl/optimized/internal.c.ll @@ -676,16 +676,15 @@ if.end6: ; preds = %entry br i1 %tobool7.not, label %return, label %do.end do.end: ; preds = %if.end6 - call void @SSL_CtxResourceFree(ptr noundef %ctx) + call void @SSL_CtxResourceFree(ptr noundef nonnull %ctx) call void @wolfSSL_RefFree(ptr noundef nonnull %ref) #26 - %tobool11.not = icmp eq ptr %ctx, null - br i1 %tobool11.not, label %return, label %return.sink.split + br label %return.sink.split -return.sink.split: ; preds = %do.end, %if.then4 +return.sink.split: ; preds = %if.then4, %if.then12 call void @wolfSSL_Free(ptr noundef nonnull %ctx) #26 br label %return -return: ; preds = %return.sink.split, %do.end, %if.end6, %if.then +return: ; preds = %return.sink.split, %if.end6, %if.then ret void } @@ -8600,7 +8599,7 @@ do.end184: ; preds = %if.end132, %if.end1 br label %sw.epilog331 do.end188: ; preds = %if.end180 - %call189 = tail call i32 @DoHelloVerifyRequest(ptr noundef nonnull %ssl, ptr noundef %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) + %call189 = tail call i32 @DoHelloVerifyRequest(ptr noundef nonnull %ssl, ptr noundef nonnull %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) %22 = load i8, ptr %encryptionOn, align 4 %tobool.not.i = icmp eq i8 %22, 0 br i1 %tobool.not.i, label %sw.epilog331, label %IsEncryptionOn.exit @@ -8646,23 +8645,23 @@ if.end220: ; preds = %if.else br label %sw.epilog331 do.end228: ; preds = %if.end180 - %call229 = tail call i32 @DoServerHello(ptr noundef nonnull %ssl, ptr noundef %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) + %call229 = tail call i32 @DoServerHello(ptr noundef nonnull %ssl, ptr noundef nonnull %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) br label %sw.epilog331 do.end232: ; preds = %if.end180 - %call233 = tail call fastcc i32 @DoCertificateRequest(ptr noundef nonnull %ssl, ptr noundef %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) + %call233 = tail call fastcc i32 @DoCertificateRequest(ptr noundef nonnull %ssl, ptr noundef nonnull %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) br label %sw.epilog331 do.end236: ; preds = %if.end180 - %call237 = tail call fastcc i32 @DoServerKeyExchange(ptr noundef nonnull %ssl, ptr noundef %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) + %call237 = tail call fastcc i32 @DoServerKeyExchange(ptr noundef nonnull %ssl, ptr noundef nonnull %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) br label %sw.epilog331 do.end240: ; preds = %if.end180 - %call.i154 = tail call i32 @ProcessPeerCerts(ptr noundef nonnull %ssl, ptr noundef %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) + %call.i154 = tail call i32 @ProcessPeerCerts(ptr noundef nonnull %ssl, ptr noundef nonnull %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) br label %sw.epilog331 do.end244: ; preds = %if.end180 - %call245 = tail call fastcc i32 @DoCertificateStatus(ptr noundef nonnull %ssl, ptr noundef %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) + %call245 = tail call fastcc i32 @DoCertificateStatus(ptr noundef nonnull %ssl, ptr noundef nonnull %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) br label %return do.end248: ; preds = %if.end180 @@ -8698,11 +8697,11 @@ if.then264: ; preds = %if.then253 br label %land.lhs.true334 do.end271: ; preds = %if.end180 - %call272 = tail call i32 @DoFinished(ptr noundef nonnull %ssl, ptr noundef %input, ptr noundef nonnull %inOutIdx, i32 noundef %size, i32 noundef %totalSz, i32 noundef 0) + %call272 = tail call i32 @DoFinished(ptr noundef nonnull %ssl, ptr noundef nonnull %input, ptr noundef nonnull %inOutIdx, i32 noundef %size, i32 noundef %totalSz, i32 noundef 0) br label %sw.epilog331 do.end275: ; preds = %if.end180 - %call276 = tail call i32 @DoClientHello(ptr noundef nonnull %ssl, ptr noundef %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) + %call276 = tail call i32 @DoClientHello(ptr noundef nonnull %ssl, ptr noundef nonnull %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) %34 = load i8, ptr %encryptionOn, align 4 %tobool.not.i165 = icmp eq i8 %34, 0 br i1 %tobool.not.i165, label %sw.epilog331, label %IsEncryptionOn.exit171 @@ -8774,11 +8773,11 @@ if.end315: ; preds = %if.else305.if.end31 br label %sw.epilog331 do.end323: ; preds = %if.end180 - %call324 = tail call fastcc i32 @DoClientKeyExchange(ptr noundef nonnull %ssl, ptr noundef %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) + %call324 = tail call fastcc i32 @DoClientKeyExchange(ptr noundef nonnull %ssl, ptr noundef nonnull %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) br label %sw.epilog331 do.end327: ; preds = %if.end180 - %call328 = tail call fastcc i32 @DoCertificateVerify(ptr noundef nonnull %ssl, ptr noundef %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) + %call328 = tail call fastcc i32 @DoCertificateVerify(ptr noundef nonnull %ssl, ptr noundef nonnull %input, ptr noundef nonnull %inOutIdx, i32 noundef %size) br label %sw.epilog331 sw.epilog331: ; preds = %do.end275, %do.end188, %IsEncryptionOn.exit171, %if.end315, %if.end300, %IsEncryptionOn.exit, %if.end220, %if.end209, %do.end327, %do.end323, %do.end271, %do.end240, %do.end236, %do.end232, %do.end228, %do.end184 diff --git a/bench/xgboost/optimized/logging.cc.ll b/bench/xgboost/optimized/logging.cc.ll index cadb5e8c6cc..a54772a6c72 100644 --- a/bench/xgboost/optimized/logging.cc.ll +++ b/bench/xgboost/optimized/logging.cc.ll @@ -985,7 +985,7 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE %27 = landingpad { ptr, i32 } catch ptr null tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %23) #21 - br label %.body + br label %47 _ZNSt16allocator_traitsISaISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EEE9constructIS7_JRKS7_EEEvRS8_PT_DpOT0_.exit: ; preds = %.noexc %.not10.i.i.i = icmp eq ptr %6, %1 @@ -1048,40 +1048,27 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE 43: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE11_M_allocateEm.exit %44 = landingpad { ptr, i32 } catch ptr null - br label %.body + br label %47 -.body: ; preds = %26, %43 - %eh.lpad-body = phi { ptr, i32 } [ %44, %43 ], [ %27, %26 ] - %45 = extractvalue { ptr, i32 } %eh.lpad-body, 0 - %46 = tail call ptr @__cxa_begin_catch(ptr %45) #21 - %.not = icmp eq ptr %22, null - br i1 %.not, label %.thread, label %50 - -.thread: ; preds = %.body - %47 = getelementptr inbounds nuw i8, ptr %23, i64 32 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %47) #21 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %23) #21 - br label %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE13_M_deallocateEPS7_m.exit37 - -48: ; preds = %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE13_M_deallocateEPS7_m.exit37 - %49 = landingpad { ptr, i32 } +.body: ; preds = %47 + %eh.lpad-body = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %52 unwind label %53 -50: ; preds = %.body - %51 = shl nuw nsw i64 %16, 6 - tail call void @_ZdlPvm(ptr noundef nonnull %22, i64 noundef %51) #23 - br label %_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE13_M_deallocateEPS7_m.exit37 - -_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE13_M_deallocateEPS7_m.exit37: ; preds = %50, %.thread +_ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaIS7_EE13_M_deallocateEPS7_m.exit37: ; preds = %43, %26 + %eh.lpad-body = phi { ptr, i32 } [ %44, %43 ], [ %27, %26 ] + %48 = extractvalue { ptr, i32 } %eh.lpad-body, 0 + %49 = tail call ptr @__cxa_begin_catch(ptr %48) #21 + %50 = shl nuw nsw i64 %16, 6 + tail call void @_ZdlPvm(ptr noundef nonnull %22, i64 noundef %50) #23 invoke void @__cxa_rethrow() #26 - to label %56 unwind label %48 + to label %56 unwind label %45 -52: ; preds = %48 - resume { ptr, i32 } %49 +52: ; preds = %45 + resume { ptr, i32 } %46 -53: ; preds = %48 +53: ; preds = %45 %54 = landingpad { ptr, i32 } catch ptr null %55 = extractvalue { ptr, i32 } %54, 0 diff --git a/bench/yalantinglibs/optimized/tutorial.cpp.ll b/bench/yalantinglibs/optimized/tutorial.cpp.ll index 766e61219db..8a538fadc0a 100644 --- a/bench/yalantinglibs/optimized/tutorial.cpp.ll +++ b/bench/yalantinglibs/optimized/tutorial.cpp.ll @@ -59,8 +59,6 @@ $_ZNSt6vectorIN8tutorial6Person11PhoneNumberESaIS2_EE17_M_realloc_insertIJRKS2_E $_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_ = comdat any -$_ZNSt16allocator_traitsISaIN8tutorial6Person11PhoneNumberEEE7destroyIS2_EEvRS3_PT_ = comdat any - $_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm = comdat any $_ZNSt6vectorIN8tutorial6PersonESaIS1_EE17_M_realloc_insertIJEEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_ = comdat any @@ -1112,7 +1110,7 @@ _ZNSt12_Vector_baseIN8tutorial6Person11PhoneNumberESaIS2_EE11_M_allocateEm.exit: %cond.i17 = phi ptr [ %call5.i.i.i, %cond.true.i ], [ null, %_ZNKSt6vectorIN8tutorial6Person11PhoneNumberESaIS2_EE12_M_check_lenEmPKc.exit ] %add.ptr = getelementptr inbounds i8, ptr %cond.i17, i64 %sub.ptr.sub.i invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ERKS4_(ptr noundef nonnull align 8 dereferenceable(36) %add.ptr, ptr noundef nonnull align 8 dereferenceable(36) %__args) - to label %invoke.cont unwind label %lpad + to label %invoke.cont unwind label %if.then.i49 invoke.cont: ; preds = %_ZNSt12_Vector_baseIN8tutorial6Person11PhoneNumberESaIS2_EE11_M_allocateEm.exit %type.i.i.i = getelementptr inbounds nuw i8, ptr %add.ptr, i64 32 @@ -1241,29 +1239,18 @@ _ZNSt12_Vector_baseIN8tutorial6Person11PhoneNumberESaIS2_EE13_M_deallocateEPS2_m store ptr %add.ptr26, ptr %_M_end_of_storage, align 8 ret void -lpad: ; preds = %_ZNSt12_Vector_baseIN8tutorial6Person11PhoneNumberESaIS2_EE11_M_allocateEm.exit - %18 = landingpad { ptr, i32 } - catch ptr null - %19 = extractvalue { ptr, i32 } %18, 0 - %20 = tail call ptr @__cxa_begin_catch(ptr %19) #19 - %tobool.not = icmp eq ptr %cond.i17, null - br i1 %tobool.not, label %if.end.thread, label %if.then.i49 - -if.end.thread: ; preds = %lpad - tail call void @_ZNSt16allocator_traitsISaIN8tutorial6Person11PhoneNumberEEE7destroyIS2_EEvRS3_PT_(ptr noundef nonnull align 1 dereferenceable(1) %this, ptr noundef %add.ptr) #19 - br label %invoke.cont19 - lpad17: ; preds = %invoke.cont19 %21 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %eh.resume unwind label %terminate.lpad -if.then.i49: ; preds = %lpad +if.then.i49: ; preds = %_ZNSt12_Vector_baseIN8tutorial6Person11PhoneNumberESaIS2_EE11_M_allocateEm.exit + %19 = landingpad { ptr, i32 } + catch ptr null + %20 = extractvalue { ptr, i32 } %19, 0 + %21 = tail call ptr @__cxa_begin_catch(ptr %20) #19 tail call void @_ZdlPv(ptr noundef nonnull %cond.i17) #20 - br label %invoke.cont19 - -invoke.cont19: ; preds = %if.then.i49, %if.end.thread invoke void @__cxa_rethrow() #21 to label %unreachable unwind label %lpad17 @@ -1384,30 +1371,6 @@ declare void @_ZdlPv(ptr noundef) local_unnamed_addr #12 ; Function Attrs: nounwind declare void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnamed_addr #1 -; Function Attrs: mustprogress nounwind uwtable -define linkonce_odr dso_local void @_ZNSt16allocator_traitsISaIN8tutorial6Person11PhoneNumberEEE7destroyIS2_EEvRS3_PT_(ptr noundef nonnull align 1 dereferenceable(1) %__a, ptr noundef %__p) local_unnamed_addr #4 comdat align 2 personality ptr @__gxx_personality_v0 { -entry: - %0 = load ptr, ptr %__p, align 8 - %1 = getelementptr inbounds nuw i8, ptr %__p, i64 16 - %cmp.i.i.i.i.i = icmp eq ptr %0, %1 - br i1 %cmp.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i, label %if.then.i.i.i.i - -_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i: ; preds = %entry - %_M_string_length.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %__p, i64 8 - %2 = load i64, ptr %_M_string_length.i.i.i.i.i, align 8 - %cmp3.i.i.i.i.i = icmp ult i64 %2, 16 - tail call void @llvm.assume(i1 %cmp3.i.i.i.i.i) - br label %_ZSt10destroy_atIN8tutorial6Person11PhoneNumberEEvPT_.exit - -if.then.i.i.i.i: ; preds = %entry - tail call void @_ZdlPv(ptr noundef %0) #20 - br label %_ZSt10destroy_atIN8tutorial6Person11PhoneNumberEEvPT_.exit - -_ZSt10destroy_atIN8tutorial6Person11PhoneNumberEEvPT_.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i, %if.then.i.i.i.i - tail call void @_ZNSaIcED2Ev(ptr noundef nonnull align 8 dereferenceable(36) %__p) #19 - ret void -} - declare void @__cxa_rethrow() local_unnamed_addr declare void @__cxa_end_catch() local_unnamed_addr diff --git a/bench/yosys/optimized/plugin.ll b/bench/yosys/optimized/plugin.ll index 9c03c7bc44e..9bd1f9d2721 100644 --- a/bench/yosys/optimized/plugin.ll +++ b/bench/yosys/optimized/plugin.ll @@ -1645,7 +1645,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %50, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PvESt10_Select1stIS9_ESt4lessIS5_ESaIS9_EE24_M_get_insert_unique_posERS7_.exit, label %51 51: ; preds = %47 - %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %1) #21 + %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #21 %53 = getelementptr inbounds nuw i8, ptr %52, i64 32 %54 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %2) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit11 unwind label %55 @@ -1751,7 +1751,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %91, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PvESt10_Select1stIS9_ESt4lessIS5_ESaIS9_EE24_M_get_insert_unique_posERS7_.exit, label %92 92: ; preds = %88 - %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %1) #21 + %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #21 %94 = getelementptr inbounds nuw i8, ptr %93, i64 32 %95 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %94) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit35 unwind label %96 @@ -1909,7 +1909,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi .thread: ; preds = %14, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i %24 = phi i1 [ true, %14 ], [ %23, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i ] - tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %24, ptr noundef %8, ptr noundef nonnull %13, ptr noundef nonnull align 8 dereferenceable(32) %15) #18 + tail call void @_ZSt29_Rb_tree_insert_and_rebalancebPSt18_Rb_tree_node_baseS0_RS_(i1 noundef zeroext %24, ptr noundef nonnull %8, ptr noundef nonnull %13, ptr noundef nonnull align 8 dereferenceable(32) %15) #18 %25 = getelementptr inbounds nuw i8, ptr %0, i64 40 %26 = load i64, ptr %25, align 8 %27 = add i64 %26, 1 @@ -1923,18 +1923,14 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi resume { ptr, i32 } %29 30: ; preds = %11 - %.not.i = icmp eq ptr %8, null - br i1 %.not.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit, label %31 - -31: ; preds = %30 - %32 = getelementptr inbounds nuw i8, ptr %8, i64 64 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %32) #18 + %.not.i = getelementptr inbounds nuw i8, ptr %8, i64 64 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %31) #18 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(64) %9) #18 tail call void @_ZdlPv(ptr noundef nonnull %8) #20 br label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit -_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit: ; preds = %.thread, %30, %31 - %.sroa.0.010 = phi ptr [ %8, %.thread ], [ %12, %30 ], [ %12, %31 ] +_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE10_Auto_nodeD2Ev.exit: ; preds = %.thread, %30 + %.sroa.0.010 = phi ptr [ %8, %.thread ], [ %12, %30 ] ret ptr %.sroa.0.010 } @@ -2056,7 +2052,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %50, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_.exit, label %51 51: ; preds = %47 - %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef %1) #21 + %52 = tail call noundef ptr @_ZSt18_Rb_tree_decrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #21 %53 = getelementptr inbounds nuw i8, ptr %52, i64 32 %54 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %53, ptr noundef nonnull align 8 dereferenceable(32) %2) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit11 unwind label %55 @@ -2162,7 +2158,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %91, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_S5_ESt10_Select1stIS8_ESt4lessIS5_ESaIS8_EE24_M_get_insert_unique_posERS7_.exit, label %92 92: ; preds = %88 - %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef %1) #21 + %93 = tail call noundef ptr @_ZSt18_Rb_tree_incrementPSt18_Rb_tree_node_base(ptr noundef nonnull %1) #21 %94 = getelementptr inbounds nuw i8, ptr %93, i64 32 %95 = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 8 dereferenceable(32) %94) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit35 unwind label %96 diff --git a/bench/yosys/optimized/proc_clean.ll b/bench/yosys/optimized/proc_clean.ll index ce91ef22c13..f9107a8d03e 100644 --- a/bench/yosys/optimized/proc_clean.ll +++ b/bench/yosys/optimized/proc_clean.ll @@ -152,7 +152,7 @@ _ZNSt6vectorIPN5Yosys5RTLIL10SwitchRuleESaIS3_EE5eraseEN9__gnu_cxx17__normal_ite store ptr %29, ptr %10, align 8 store i8 1, ptr %1, align 1 tail call void @_ZN5Yosys5RTLIL10SwitchRuleD1Ev(ptr noundef nonnull align 8 dereferenceable(144) %17) #17 - tail call void @_ZdlPv(ptr noundef %17) #18 + tail call void @_ZdlPv(ptr noundef nonnull %17) #18 %30 = load i32, ptr %2, align 4 %31 = add nsw i32 %30, 1 store i32 %31, ptr %2, align 4 @@ -396,7 +396,7 @@ _ZNSt6vectorIPN5Yosys5RTLIL10SwitchRuleESaIS3_EE5eraseEN9__gnu_cxx17__normal_ite store ptr %142, ptr %10, align 8 store i8 1, ptr %1, align 1 tail call void @_ZN5Yosys5RTLIL10SwitchRuleD1Ev(ptr noundef nonnull align 8 dereferenceable(144) %131) #17 - tail call void @_ZdlPv(ptr noundef %131) #18 + tail call void @_ZdlPv(ptr noundef nonnull %131) #18 %143 = load i32, ptr %2, align 4 %144 = add nsw i32 %143, 1 store i32 %144, ptr %2, align 4 @@ -1329,7 +1329,7 @@ _ZNSt12_Vector_baseISt4pairIN5Yosys5RTLIL7SigSpecES3_ESaIS4_EE11_M_allocateEm.ex %27 = landingpad { ptr, i32 } catch ptr null tail call void @_ZN5Yosys5RTLIL7SigSpecD2Ev(ptr noundef nonnull align 8 dereferenceable(128) %23) #17 - br label %.body + br label %116 _ZNSt16allocator_traitsISaISt4pairIN5Yosys5RTLIL7SigSpecES3_EEE9constructIS4_JRKS4_EEEvRS5_PT_DpOT0_.exit: ; preds = %.noexc %.not10.i.i.i.i = icmp eq ptr %6, %1 @@ -1495,44 +1495,33 @@ _ZNSt12_Vector_baseISt4pairIN5Yosys5RTLIL7SigSpecES3_ESaIS4_EE13_M_deallocateEPS 112: ; preds = %_ZNSt12_Vector_baseISt4pairIN5Yosys5RTLIL7SigSpecES3_ESaIS4_EE11_M_allocateEm.exit %113 = landingpad { ptr, i32 } catch ptr null - br label %.body + br label %116 -.body: ; preds = %26, %112 - %eh.lpad-body = phi { ptr, i32 } [ %113, %112 ], [ %27, %26 ] - %114 = extractvalue { ptr, i32 } %eh.lpad-body, 0 - %115 = tail call ptr @__cxa_begin_catch(ptr %114) #17 - %.not = icmp eq ptr %22, null - br i1 %.not, label %.thread, label %118 - -.thread: ; preds = %.body - tail call void @_ZNSt4pairIN5Yosys5RTLIL7SigSpecES2_ED2Ev(ptr noundef nonnull align 8 dereferenceable(128) %23) #17 - br label %_ZNSt12_Vector_baseISt4pairIN5Yosys5RTLIL7SigSpecES3_ESaIS4_EE13_M_deallocateEPS4_m.exit35 - -116: ; preds = %_ZNSt12_Vector_baseISt4pairIN5Yosys5RTLIL7SigSpecES3_ESaIS4_EE13_M_deallocateEPS4_m.exit35 - %117 = landingpad { ptr, i32 } +.body: ; preds = %116 + %eh.lpad-body = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %119 unwind label %120 -118: ; preds = %.body +118: ; preds = %112, %26 + %eh.lpad-body = phi { ptr, i32 } [ %113, %112 ], [ %27, %26 ] + %117 = extractvalue { ptr, i32 } %eh.lpad-body, 0 + %118 = tail call ptr @__cxa_begin_catch(ptr %117) #17 tail call void @_ZdlPv(ptr noundef nonnull %22) #18 - br label %_ZNSt12_Vector_baseISt4pairIN5Yosys5RTLIL7SigSpecES3_ESaIS4_EE13_M_deallocateEPS4_m.exit35 - -_ZNSt12_Vector_baseISt4pairIN5Yosys5RTLIL7SigSpecES3_ESaIS4_EE13_M_deallocateEPS4_m.exit35: ; preds = %118, %.thread invoke void @__cxa_rethrow() #20 - to label %123 unwind label %116 + to label %123 unwind label %114 -119: ; preds = %116 - resume { ptr, i32 } %117 +119: ; preds = %114 + resume { ptr, i32 } %115 -120: ; preds = %116 +120: ; preds = %114 %121 = landingpad { ptr, i32 } catch ptr null %122 = extractvalue { ptr, i32 } %121, 0 tail call void @__clang_call_terminate(ptr %122) #19 unreachable -123: ; preds = %_ZNSt12_Vector_baseISt4pairIN5Yosys5RTLIL7SigSpecES3_ESaIS4_EE13_M_deallocateEPS4_m.exit35 +123: ; preds = %116 unreachable } diff --git a/bench/z3/optimized/api_opt.cpp.ll b/bench/z3/optimized/api_opt.cpp.ll index bcc9be81922..c7e11758b17 100644 --- a/bench/z3/optimized/api_opt.cpp.ll +++ b/bench/z3/optimized/api_opt.cpp.ll @@ -6,7 +6,6 @@ target triple = "x86_64-unknown-linux-gnu" %"class.std::ios_base::Init" = type { i8 } %"struct.std::atomic.131" = type { %"struct.std::__atomic_base.132" } %"struct.std::__atomic_base.132" = type { i8 } -%class.params_ref = type { ptr } %class.symbol = type { ptr } %class.rational = type { %class.mpq } %class.mpq = type { %class.mpz, %class.mpz } @@ -26,6 +25,7 @@ target triple = "x86_64-unknown-linux-gnu" %union.anon = type { i64, [8 x i8] } %class.ref.53 = type { ptr } %struct.model_params = type { ptr, %class.params_ref } +%class.params_ref = type { ptr } %class.param_descrs = type { ptr } %class.obj_ref.125 = type { ptr, ptr } %class.inf_eps_rational = type { %class.rational, %class.inf_rational } @@ -199,7 +199,6 @@ $_ZTIPFvRN3opt10on_model_tER3refI5modelEE = comdat any @_ZTI12Z3_model_ref = linkonce_odr hidden constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTS12Z3_model_ref, ptr @_ZTIN3api6objectE }, comdat, align 8 @.str.14 = private unnamed_addr constant [6 x i8] c"model\00", align 1 @.str.15 = private unnamed_addr constant [8 x i8] c"compact\00", align 1 -@_ZN10params_ref18g_empty_params_refE = external global %class.params_ref, align 8 @_ZTV19Z3_param_descrs_ref = linkonce_odr hidden unnamed_addr constant { [4 x ptr] } { [4 x ptr] [ptr null, ptr @_ZTI19Z3_param_descrs_ref, ptr @_ZN19Z3_param_descrs_refD2Ev, ptr @_ZN19Z3_param_descrs_refD0Ev] }, comdat, align 8 @_ZTS19Z3_param_descrs_ref = linkonce_odr hidden constant [22 x i8] c"19Z3_param_descrs_ref\00", comdat, align 1 @_ZTI19Z3_param_descrs_ref = linkonce_odr hidden constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTS19Z3_param_descrs_ref, ptr @_ZTIN3api6objectE }, comdat, align 8 @@ -2710,12 +2709,10 @@ invoke.cont11: ; preds = %invoke.cont7 invoke.cont17: ; preds = %invoke.cont11 %2 = load ptr, ptr %m_opt.i, align 8 - %cmp.i = icmp eq ptr %p, null - %spec.select.i = select i1 %cmp.i, ptr @_ZN10params_ref18g_empty_params_refE, ptr %m_params %vtable = load ptr, ptr %2, align 8 %vfn = getelementptr inbounds nuw i8, ptr %vtable, i64 152 %3 = load ptr, ptr %vfn, align 8 - invoke void %3(ptr noundef nonnull align 8 dereferenceable(792) %2, ptr noundef nonnull align 8 dereferenceable(8) %spec.select.i) + invoke void %3(ptr noundef nonnull align 8 dereferenceable(792) %2, ptr noundef nonnull align 8 dereferenceable(8) %m_params) to label %invoke.cont19 unwind label %lpad8 invoke.cont19: ; preds = %invoke.cont17 diff --git a/bench/z3/optimized/dl_context.cpp.ll b/bench/z3/optimized/dl_context.cpp.ll index c9142f88927..6578b3a6df3 100644 --- a/bench/z3/optimized/dl_context.cpp.ll +++ b/bench/z3/optimized/dl_context.cpp.ll @@ -12004,10 +12004,6 @@ invoke.cont326: ; preds = %invoke.cont320 to label %invoke.cont328 unwind label %lpad228 invoke.cont328: ; preds = %invoke.cont326 - %tobool.not.i.i417 = icmp eq ptr %138, null - br i1 %tobool.not.i.i417, label %_ZN7obj_refI9func_decl11ast_managerED2Ev.exit, label %if.then.i.i.i418 - -if.then.i.i.i418: ; preds = %invoke.cont328 %139 = load ptr, ptr %m_manager.i309, align 8 %m_ref_count.i.i.i.i420 = getelementptr inbounds nuw i8, ptr %138, i64 8 %140 = load i32, ptr %m_ref_count.i.i.i.i420, align 4 @@ -12027,7 +12023,7 @@ terminate.lpad.i424: ; preds = %if.then2.i.i.i423 call void @__clang_call_terminate(ptr %142) #29 unreachable -_ZN7obj_refI9func_decl11ast_managerED2Ev.exit: ; preds = %invoke.cont328, %if.then.i.i.i418, %if.then2.i.i.i423 +_ZN7obj_refI9func_decl11ast_managerED2Ev.exit: ; preds = %if.then.i.i.i418, %if.then2.i.i.i423 %indvars.iv.next668 = add nuw nsw i64 %indvars.iv667, 1 br label %for.cond217, !llvm.loop !55 diff --git a/bench/zed-rs/optimized/06rtve3sizrg126ldkmgb72ea.ll b/bench/zed-rs/optimized/06rtve3sizrg126ldkmgb72ea.ll index 3b6143561d0..fa40d4f7c2e 100644 --- a/bench/zed-rs/optimized/06rtve3sizrg126ldkmgb72ea.ll +++ b/bench/zed-rs/optimized/06rtve3sizrg126ldkmgb72ea.ll @@ -1783,19 +1783,17 @@ define internal void @"_ZN4core3ptr96drop_in_place$LT$$LP$core..any..TypeId$C$al 14: ; preds = %5 %15 = landingpad { ptr, i32 } cleanup - %16 = icmp ne ptr %.val, null - tail call void @llvm.assume(i1 %16) - %17 = getelementptr inbounds nuw i8, ptr %.val1, i64 8 - %18 = load i64, ptr %17, align 8, !range !627, !invariant.load !4 - %19 = getelementptr inbounds nuw i8, ptr %.val1, i64 16 - %20 = load i64, ptr %19, align 8, !range !628, !invariant.load !4 - %21 = icmp ult i64 %20, -9223372036854775807 - tail call void @llvm.assume(i1 %21) - %22 = icmp eq i64 %18, 0 - br i1 %22, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha8fc35517b71f7c6E.exit5.i", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.4628595066780388198.exit.i4.i" + %16 = getelementptr inbounds nuw i8, ptr %.val1, i64 8 + %17 = load i64, ptr %16, align 8, !range !627, !invariant.load !4 + %17 = getelementptr inbounds nuw i8, ptr %.val1, i64 16 + %18 = load i64, ptr %17, align 8, !range !628, !invariant.load !4 + %19 = icmp ult i64 %19, -9223372036854775807 + tail call void @llvm.assume(i1 %19) + %21 = icmp eq i64 %17, 0 + br i1 %21, label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha8fc35517b71f7c6E.exit5.i", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.4628595066780388198.exit.i4.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.4628595066780388198.exit.i4.i": ; preds = %14 - tail call void @__rust_dealloc(ptr noundef nonnull %.val, i64 noundef %18, i64 noundef %20) #48 + tail call void @__rust_dealloc(ptr noundef nonnull %.val, i64 noundef %17, i64 noundef %19) #48 br label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha8fc35517b71f7c6E.exit5.i" "_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha8fc35517b71f7c6E.exit5.i": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.4628595066780388198.exit.i4.i", %14 diff --git a/bench/zed-rs/optimized/101enz14pylx453ld99plp60b.ll b/bench/zed-rs/optimized/101enz14pylx453ld99plp60b.ll index 6ddd4324c19..c5c20ac4e92 100644 --- a/bench/zed-rs/optimized/101enz14pylx453ld99plp60b.ll +++ b/bench/zed-rs/optimized/101enz14pylx453ld99plp60b.ll @@ -94916,8 +94916,6 @@ define hidden void @"_ZN172_$LT$task..vscode_format.._..$LT$impl$u20$serde..de.. ] "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8318809290061399519.exit.i.i1.i.i.i": ; preds = %64 - %66 = icmp ne ptr %15, null - tail call void @llvm.assume(i1 %66) tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %13, i64 noundef 1) #40, !noalias !19657 br label %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17he9051d552d6da052E.exit" diff --git a/bench/zxing/optimized/DMDetector.cpp.ll b/bench/zxing/optimized/DMDetector.cpp.ll index 3832e5b3132..e52689c95ed 100644 --- a/bench/zxing/optimized/DMDetector.cpp.ll +++ b/bench/zxing/optimized/DMDetector.cpp.ll @@ -4113,18 +4113,20 @@ _ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPN5ZXing6PointTIdEESt6vectorIS4_Sa %or.cond = or i1 %54, %55 br i1 %or.cond, label %_ZNSt6vectorIN5ZXing6PointTIdEESaIS2_EEaSEOS4_.exit, label %59 -56: ; preds = %61, %_ZN5ZXing14RegressionLine8evaluateIdEEbRKSt6vectorINS_6PointTIT_EESaIS5_EE.exit +56: ; preds = %_ZN5ZXing14RegressionLine8evaluateIdEEbRKSt6vectorINS_6PointTIT_EESaIS5_EE.exit %57 = landingpad { ptr, i32 } cleanup %.not.i.i.i18 = icmp eq ptr %21, null br i1 %.not.i.i.i18, label %_ZNSt6vectorIN5ZXing6PointTIdEESaIS2_EED2Ev.exit, label %58 -58: ; preds = %56 +58: ; preds = %.thread47, %56 + %59 = phi { ptr, i32 } [ %65, %.thread47 ], [ %57, %56 ] tail call void @_ZdlPv(ptr noundef nonnull %21) #19 br label %_ZNSt6vectorIN5ZXing6PointTIdEESaIS2_EED2Ev.exit _ZNSt6vectorIN5ZXing6PointTIdEESaIS2_EED2Ev.exit: ; preds = %56, %58 - resume { ptr, i32 } %57 + %60 = phi { ptr, i32 } [ %57, %56 ], [ %59, %58 ] + resume { ptr, i32 } %60 59: ; preds = %_ZSt9remove_ifIN9__gnu_cxx17__normal_iteratorIPN5ZXing6PointTIdEESt6vectorIS4_SaIS4_EEEEZNS2_14RegressionLine8evaluateEdbEUlT_E_ESB_SB_SB_T0_.exit %60 = icmp eq i64 %31, %52 @@ -4132,7 +4134,12 @@ _ZNSt6vectorIN5ZXing6PointTIdEESaIS2_EED2Ev.exit: ; preds = %56, %58 61: ; preds = %59 %62 = invoke noundef zeroext i1 @_ZN5ZXing14RegressionLine8evaluateIdEEbPKNS_6PointTIT_EES6_(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull %21, ptr noundef nonnull %.sroa.13.1) - to label %_ZN5ZXing14RegressionLine8evaluateIdEEbRKSt6vectorINS_6PointTIT_EESaIS5_EE.exit unwind label %56 + to label %_ZN5ZXing14RegressionLine8evaluateIdEEbRKSt6vectorINS_6PointTIT_EESaIS5_EE.exit unwind label %.thread47 + +.thread47: ; preds = %63 + %65 = landingpad { ptr, i32 } + cleanup + br label %58 63: ; preds = %59 br i1 %2, label %64, label %_ZNSt6vectorIN5ZXing6PointTIdEESaIS2_EEaSEOS4_.exit diff --git a/bench/zxing/optimized/QRReader.cpp.ll b/bench/zxing/optimized/QRReader.cpp.ll index 6591d47537f..a4d6b83dfb1 100644 --- a/bench/zxing/optimized/QRReader.cpp.ll +++ b/bench/zxing/optimized/QRReader.cpp.ll @@ -2354,10 +2354,10 @@ define linkonce_odr void @_ZNSt6vectorIN5ZXing6ResultESaIS1_EE17_M_realloc_inser %15 = getelementptr inbounds i8, ptr %14, i64 %12 %16 = load i32, ptr %4, align 4, !tbaa !59 invoke void @_ZN5ZXing6ResultC1EONS_13DecoderResultEONS_14DetectorResultENS_13BarcodeFormatE(ptr noundef nonnull align 8 dereferenceable(211) %15, ptr noundef nonnull align 8 dereferenceable(208) %2, ptr noundef nonnull align 8 dereferenceable(64) %3, i32 noundef %16) #16 - to label %17 unwind label %26 + to label %17 unwind label %28 17: ; preds = %5 - %18 = tail call noundef ptr @_ZNSt6vectorIN5ZXing6ResultESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_(ptr noundef %7, ptr noundef %1, ptr noundef %14, ptr noundef nonnull align 1 dereferenceable(1) %0) #17 + %18 = tail call noundef ptr @_ZNSt6vectorIN5ZXing6ResultESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_(ptr noundef %7, ptr noundef %1, ptr noundef nonnull %14, ptr noundef nonnull align 1 dereferenceable(1) %0) #17 %19 = getelementptr inbounds nuw i8, ptr %18, i64 216 %20 = tail call noundef ptr @_ZNSt6vectorIN5ZXing6ResultESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_(ptr noundef %1, ptr noundef %9, ptr noundef nonnull %19, ptr noundef nonnull align 1 dereferenceable(1) %0) #17 %21 = icmp eq ptr %7, null @@ -2375,43 +2375,32 @@ define linkonce_odr void @_ZNSt6vectorIN5ZXing6ResultESaIS1_EE17_M_realloc_inser store ptr %25, ptr %24, align 8, !tbaa !64 ret void -26: ; preds = %5 +26: ; preds = %28 %27 = landingpad { ptr, i32 } - catch ptr null - %28 = extractvalue { ptr, i32 } %27, 0 - %29 = tail call ptr @__cxa_begin_catch(ptr %28) #15 - %30 = icmp eq ptr %14, null - br i1 %30, label %31, label %34 - -31: ; preds = %26 - tail call void @_ZNSt15__new_allocatorIN5ZXing6ResultEE7destroyIS1_EEvPT_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef %15) #17 - br label %35 - -32: ; preds = %35 - %33 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() to label %36 unwind label %37 -34: ; preds = %26 +34: ; preds = %5 + %29 = landingpad { ptr, i32 } + catch ptr null + %30 = extractvalue { ptr, i32 } %29, 0 + %31 = tail call ptr @__cxa_begin_catch(ptr %30) #15 tail call void @_ZdlPv(ptr noundef nonnull %14) #18 - br label %35 - -35: ; preds = %34, %31 invoke void @__cxa_rethrow() #22 - to label %40 unwind label %32 + to label %40 unwind label %26 -36: ; preds = %32 - resume { ptr, i32 } %33 +36: ; preds = %26 + resume { ptr, i32 } %27 -37: ; preds = %32 +37: ; preds = %26 %38 = landingpad { ptr, i32 } catch ptr null %39 = extractvalue { ptr, i32 } %38, 0 tail call void @__clang_call_terminate(ptr %39) #19 unreachable -40: ; preds = %35 +40: ; preds = %34 unreachable } diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..3c172299b30 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID=llvm/llvm-project/pull/125377 export COMPTIME_MODE=0 # Please rebase manually