diff --git a/bench/actix-rs/optimized/14bh10sj718x2c7a.ll b/bench/actix-rs/optimized/14bh10sj718x2c7a.ll index 5a22a505f6f..ef56fa09bbc 100644 --- a/bench/actix-rs/optimized/14bh10sj718x2c7a.ll +++ b/bench/actix-rs/optimized/14bh10sj718x2c7a.ll @@ -264,10 +264,10 @@ _ZN4core5slice5ascii8is_ascii17h67ac2a1debfab949E.exit.thread: ; preds = %.lr.ph %56 = icmp ult i64 %53, 2 br i1 %56, label %63, label %59 -.thread: ; preds = %37, %.lr.ph.split.i.i, %84, %67, %44 - %.0 = phi i16 [ 1000, %44 ], [ %85, %84 ], [ 1000, %67 ], [ 1000, %.lr.ph.split.i.i ], [ 1000, %37 ] - %.sroa.5.0 = phi i64 [ %2, %44 ], [ %50, %84 ], [ %2, %67 ], [ %2, %.lr.ph.split.i.i ], [ %2, %37 ] - %.sroa.0.0 = phi ptr [ %1, %44 ], [ %49, %84 ], [ %1, %67 ], [ %1, %.lr.ph.split.i.i ], [ %1, %37 ] +.thread: ; preds = %.lr.ph.split.i.i, %37, %84, %67, %44 + %.0 = phi i16 [ 1000, %44 ], [ %85, %84 ], [ 1000, %67 ], [ 1000, %37 ], [ 1000, %.lr.ph.split.i.i ] + %.sroa.5.0 = phi i64 [ %2, %44 ], [ %50, %84 ], [ %2, %67 ], [ %2, %37 ], [ %2, %.lr.ph.split.i.i ] + %.sroa.0.0 = phi ptr [ %1, %44 ], [ %49, %84 ], [ %1, %67 ], [ %1, %37 ], [ %1, %.lr.ph.split.i.i ] call void @llvm.lifetime.start.p0(i64 71, ptr nonnull %.sroa.8128) call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %4) call void @"_ZN57_$LT$mime..Mime$u20$as$u20$core..str..traits..FromStr$GT$8from_str17hdeea2b3d8926d1f0E"(ptr noalias noundef nonnull sret({ i64, [10 x i64] }) align 8 captures(none) dereferenceable(88) %4, ptr noalias noundef nonnull readonly align 1 %.sroa.0.0, i64 noundef %.sroa.5.0) diff --git a/bench/actix-rs/optimized/4pmtvrahn6eloepe.ll b/bench/actix-rs/optimized/4pmtvrahn6eloepe.ll index 5ecf06c7953..96f29738920 100644 --- a/bench/actix-rs/optimized/4pmtvrahn6eloepe.ll +++ b/bench/actix-rs/optimized/4pmtvrahn6eloepe.ll @@ -205,6 +205,7 @@ target triple = "x86_64-unknown-linux-gnu" @anon.3dfc7285fed8fa297aed43441a3d1c46.1.llvm.10144161557925507027 = external hidden unnamed_addr constant <{ ptr, [16 x i8] }>, align 8 @str.0.llvm.10144161557925507027 = external hidden unnamed_addr constant [25 x i8] @_ZN6brotli3enc4util10kLog2Table17h3d7a587af6dc9265E = external local_unnamed_addr global [256 x float] +@switch.table._ZN6brotli3enc17compress_fragment26BrotliCompressFragmentFast17hcd5548c609f0d180E = private unnamed_addr constant [7 x i64] [i64 15, i64 poison, i64 13, i64 poison, i64 11, i64 poison, i64 9], align 8 ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write, inaccessiblemem: write) uwtable define hidden void @"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$3new17h2219825847fd2d78E"(ptr noalias noundef writeonly sret({ { ptr, ptr, {} }, { ptr, ptr, {} }, i64, i64, i64 }) align 8 captures(none) dereferenceable(56) initializes((0, 56)) %0, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef %4) unnamed_addr #0 personality ptr @rust_eh_personality { @@ -3852,13 +3853,13 @@ define hidden void @_ZN6brotli3enc17compress_fragment26BrotliCompressFragmentFas 21: ; preds = %18 %22 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %7, i1 false) - %23 = xor i64 %22, 63 - switch i64 %23, label %28 [ - i64 9, label %.sink.split2 - i64 11, label %.sink.split2 - i64 13, label %.sink.split2 - i64 15, label %.sink.split2 - ] + %switch.tableidx = add nsw i64 %22, -48 + %23 = icmp ult i64 %switch.tableidx, 7 + %switch.maskindex = trunc i64 %switch.tableidx to i8 + %switch.shifted = lshr i8 85, %switch.maskindex + %switch.lobit = trunc i8 %switch.shifted to i1 + %or.cond = select i1 %23, i1 %switch.lobit, i1 false + br i1 %or.cond, label %switch.lookup, label %28 .sink.split: ; preds = %18, %35 tail call void @_ZN6brotli3enc26compress_fragment_two_pass15BrotliWriteBits17hf4851fa4b68a36a6E(i64 noundef 1, i64 noundef 1, ptr noalias noundef nonnull align 8 dereferenceable(8) %15, ptr noalias noundef nonnull align 1 %16, i64 noundef %17) @@ -3872,11 +3873,13 @@ define hidden void @_ZN6brotli3enc17compress_fragment26BrotliCompressFragmentFas 27: ; preds = %.sink.split, %35 ret void -.sink.split2: ; preds = %21, %21, %21, %21 - tail call void @_ZN6brotli3enc17compress_fragment30BrotliCompressFragmentFastImpl17h24e109efb8be68e4E.llvm.2002727345234535996(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2, i64 noundef %3, i32 noundef %4, ptr noalias noundef nonnull align 4 %5, i64 noundef %6, i64 noundef %23, ptr noalias noundef nonnull align 1 %8, i64 noundef %9, ptr noalias noundef nonnull align 2 %10, i64 noundef %11, ptr noalias noundef nonnull align 8 dereferenceable(8) %12, ptr noalias noundef nonnull align 1 %13, i64 noundef %14, ptr noalias noundef nonnull align 8 dereferenceable(8) %15, ptr noalias noundef nonnull align 1 %16, i64 noundef %17) +.sink.split2: ; preds = %21 + %switch.gep = getelementptr inbounds nuw [7 x i64], ptr @switch.table._ZN6brotli3enc17compress_fragment26BrotliCompressFragmentFast17hcd5548c609f0d180E, i64 0, i64 %switch.tableidx + %switch.load = load i64, ptr %switch.gep, align 8 + tail call void @_ZN6brotli3enc17compress_fragment30BrotliCompressFragmentFastImpl17h24e109efb8be68e4E.llvm.2002727345234535996(ptr noalias noundef nonnull align 1 %0, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2, i64 noundef %3, i32 noundef %4, ptr noalias noundef nonnull align 4 %5, i64 noundef %6, i64 noundef %switch.load, ptr noalias noundef nonnull align 1 %8, i64 noundef %9, ptr noalias noundef nonnull align 2 %10, i64 noundef %11, ptr noalias noundef nonnull align 8 dereferenceable(8) %12, ptr noalias noundef nonnull align 1 %13, i64 noundef %14, ptr noalias noundef nonnull align 8 dereferenceable(8) %15, ptr noalias noundef nonnull align 1 %16, i64 noundef %17) br label %28 -28: ; preds = %.sink.split2, %21 +28: ; preds = %21, %.sink.split2 %29 = load i64, ptr %15, align 8, !noundef !13 %30 = sub i64 %29, %19 %31 = shl i64 %3, 3 diff --git a/bench/assimp/optimized/zip.ll b/bench/assimp/optimized/zip.ll index 763bd6fe3ed..91648d9ce25 100644 --- a/bench/assimp/optimized/zip.ll +++ b/bench/assimp/optimized/zip.ll @@ -19155,8 +19155,8 @@ mz_zip_array_ensure_capacity.exit107: ; preds = %.loopexit.i br label %93 93: ; preds = %.preheader, %._crit_edge42 - %.078 = phi i32 [ %132, %._crit_edge42 ], [ %3, %.preheader ] - %.076 = phi ptr [ %131, %._crit_edge42 ], [ %2, %.preheader ] + %.078 = phi i32 [ %132, %._crit_edge40 ], [ %3, %.preheader ] + %.076 = phi ptr [ %131, %._crit_edge40 ], [ %2, %.preheader ] %94 = icmp ult i32 %.078, 4 br i1 %94, label %95, label %97 @@ -19242,8 +19242,8 @@ mz_zip_array_push_back.exit99: ; preds = %.mz_zip_array_push_ %.not91 = icmp eq i32 %132, 0 br i1 %.not91, label %.thread35, label %93 -.thread35: ; preds = %._crit_edge42, %85, %129, %103, %95, %83, %mz_zip_array_reserve.exit - %.0 = phi i32 [ 0, %83 ], [ 0, %mz_zip_array_reserve.exit ], [ 0, %95 ], [ 0, %103 ], [ 0, %129 ], [ 1, %85 ], [ 1, %._crit_edge42 ] +.thread35: ; preds = %._crit_edge42, %85, %95, %103, %129, %83, %mz_zip_array_reserve.exit + %.0 = phi i32 [ 0, %83 ], [ 0, %mz_zip_array_reserve.exit ], [ 0, %129 ], [ 0, %103 ], [ 0, %95 ], [ 1, %85 ], [ 1, %._crit_edge40 ] ret i32 %.0 } diff --git a/bench/brotli/optimized/compress_fragment.ll b/bench/brotli/optimized/compress_fragment.ll index 2b568dd4b8e..046f4ffe141 100644 --- a/bench/brotli/optimized/compress_fragment.ll +++ b/bench/brotli/optimized/compress_fragment.ll @@ -15,12 +15,11 @@ define hidden void @BrotliCompressFragmentFast(ptr noundef %0, ptr noundef %1, i 11: ; preds = %8 %12 = trunc i64 %5 to i32 %13 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %12, i1 true) - %14 = xor i32 %13, 31 - switch i32 %14, label %19 [ - i32 9, label %15 - i32 11, label %16 - i32 13, label %17 - i32 15, label %18 + switch i32 %13, label %18 [ + i32 22, label %14 + i32 20, label %15 + i32 18, label %16 + i32 16, label %17 ] 15: ; preds = %11 @@ -127,7 +126,7 @@ define hidden void @BrotliCompressFragmentFast(ptr noundef %0, ptr noundef %1, i br label %.sink.split .sink.split: ; preds = %8, %73 - %.sink75 = phi i64 [ %74, %73 ], [ %9, %8 ] + %.sink75 = phi i64 [ %74, %72 ], [ %9, %8 ] %75 = lshr i64 %.sink75, 3 %76 = getelementptr inbounds nuw i8, ptr %7, i64 %75 %77 = load i8, ptr %76, align 1, !tbaa !7, !noalias !33 diff --git a/bench/brotli/optimized/compress_fragment_two_pass.ll b/bench/brotli/optimized/compress_fragment_two_pass.ll index bf79f5ce996..8b5ec4e8d3d 100644 --- a/bench/brotli/optimized/compress_fragment_two_pass.ll +++ b/bench/brotli/optimized/compress_fragment_two_pass.ll @@ -12,18 +12,17 @@ define hidden void @BrotliCompressFragmentTwoPass(ptr noundef %0, ptr noundef %1 %11 = load i64, ptr %8, align 8, !tbaa !3 %12 = trunc i64 %7 to i32 %13 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %12, i1 true) - %14 = xor i32 %13, 31 - switch i32 %14, label %25 [ - i32 8, label %15 - i32 9, label %16 - i32 10, label %17 - i32 11, label %18 - i32 12, label %19 - i32 13, label %20 - i32 14, label %21 + switch i32 %13, label %24 [ + i32 24, label %15 + i32 22, label %15 + i32 21, label %16 + i32 20, label %17 + i32 19, label %18 + i32 18, label %19 + i32 17, label %20 + i32 16, label %21 i32 15, label %22 - i32 16, label %23 - i32 17, label %24 + i32 14, label %23 ] 15: ; preds = %10 @@ -66,7 +65,7 @@ define hidden void @BrotliCompressFragmentTwoPass(ptr noundef %0, ptr noundef %1 tail call fastcc void @BrotliCompressFragmentTwoPassImpl17(ptr noundef %0, ptr noundef %1, i64 noundef %2, ptr noundef %4, ptr noundef %5, ptr noundef %6, ptr noundef nonnull %8, ptr noundef %9) br label %25 -25: ; preds = %10, %24, %23, %22, %21, %20, %19, %18, %17, %16, %15 +25: ; preds = %10, %23, %22, %21, %20, %19, %18, %17, %16, %15, %14 %26 = load i64, ptr %8, align 8, !tbaa !3 %27 = sub i64 %26, %11 %28 = shl i64 %2, 3 diff --git a/bench/clap-rs/optimized/5651dp9k16h53y8x.ll b/bench/clap-rs/optimized/5651dp9k16h53y8x.ll index ddad94c6c98..85cd3d5634e 100644 --- a/bench/clap-rs/optimized/5651dp9k16h53y8x.ll +++ b/bench/clap-rs/optimized/5651dp9k16h53y8x.ll @@ -2094,15 +2094,15 @@ define internal void @_ZN4core4iter6traits8iterator8Iterator3nth17h3fdbb619fdd44 %exitcond.not.i = icmp eq i64 %11, %2 br i1 %exitcond.not.i, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h8c064a4975316fbdE.exit.thread, label %9 -_ZN4core4iter6traits8iterator8Iterator10advance_by17h8c064a4975316fbdE.exit: ; preds = %9, %"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h834c022150e53e84E.exit.i" - %14 = phi ptr [ %10, %9 ], [ %13, %"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h834c022150e53e84E.exit.i" ] +_ZN4core4iter6traits8iterator8Iterator10advance_by17h8c064a4975316fbdE.exit: ; preds = %"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h834c022150e53e84E.exit.i", %9 + %14 = phi ptr [ %13, %"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h834c022150e53e84E.exit.i" ], [ %10, %9 ] call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %6), !noalias !509 %15 = icmp eq i64 %2, %.sroa.01.014.i br i1 %15, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h8c064a4975316fbdE.exit.thread, label %22 _ZN4core4iter6traits8iterator8Iterator10advance_by17h8c064a4975316fbdE.exit.thread: ; preds = %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit.i", %._ZN4core4iter6traits8iterator8Iterator10advance_by17h8c064a4975316fbdE.exit.thread_crit_edge, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h8c064a4975316fbdE.exit - %16 = phi ptr [ %.pre8, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h8c064a4975316fbdE.exit.thread_crit_edge ], [ %14, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h8c064a4975316fbdE.exit ], [ %13, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit.i" ] - %17 = phi ptr [ %.pre, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h8c064a4975316fbdE.exit.thread_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h8c064a4975316fbdE.exit ], [ %8, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit.i" ] + %16 = phi ptr [ %.pre8, %..critedge_crit_edge ], [ %14, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit6.i" ], [ %13, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit.i" ] + %17 = phi ptr [ %.pre, %..critedge_crit_edge ], [ %8, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit6.i" ], [ %8, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit.i" ] call void @llvm.experimental.noalias.scope.decl(metadata !517) call void @llvm.experimental.noalias.scope.decl(metadata !533) %18 = icmp eq ptr %16, %17 @@ -2196,7 +2196,7 @@ select.unfold.i.i.i.i: ; preds = %.sink.split.i.i.i.i %exitcond.not.i = icmp eq i64 %12, %2 br i1 %exitcond.not.i, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h3a0a0f98946ac12cE.exit.thread, label %11 -_ZN4core4iter6traits8iterator8Iterator10advance_by17h3a0a0f98946ac12cE.exit: ; preds = %select.unfold.i.i.i.i, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd8ac1c9a05e7f9deE.exit.i" +_ZN4core4iter6traits8iterator8Iterator10advance_by17h3a0a0f98946ac12cE.exit: ; preds = %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd8ac1c9a05e7f9deE.exit.i", %select.unfold.i.i.i.i call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %6), !noalias !542 %27 = icmp eq i64 %2, %.sroa.01.014.i br i1 %27, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h3a0a0f98946ac12cE.exit.thread, label %48 @@ -2323,7 +2323,7 @@ select.unfold.i.i.i.i: ; preds = %.sink.split.i.i.i.i %exitcond.not.i = icmp eq i64 %12, %2 br i1 %exitcond.not.i, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h30592fb5f0e09cb7E.exit.thread, label %11 -_ZN4core4iter6traits8iterator8Iterator10advance_by17h30592fb5f0e09cb7E.exit: ; preds = %select.unfold.i.i.i.i, %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h347e96c573c976edE.exit.i" +_ZN4core4iter6traits8iterator8Iterator10advance_by17h30592fb5f0e09cb7E.exit: ; preds = %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h347e96c573c976edE.exit.i", %select.unfold.i.i.i.i call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %6), !noalias !606 %27 = icmp eq i64 %2, %.sroa.01.014.i br i1 %27, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h30592fb5f0e09cb7E.exit.thread, label %48 @@ -2444,8 +2444,8 @@ _ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.5679 br i1 %15, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit.thread, label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1ba0053c1bd89bfeE.llvm.567936041081457991.exit" _ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit.thread: ; preds = %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit.i", %._ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit.thread_crit_edge, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit - %16 = phi ptr [ %.pre8, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit.thread_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit ], [ %11, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit.i" ] - %17 = phi ptr [ %.pre, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit.thread_crit_edge ], [ %6, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit ], [ %6, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit.i" ] + %16 = phi ptr [ %.pre8, %..critedge_crit_edge ], [ %8, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit6.i" ], [ %11, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit.i" ] + %17 = phi ptr [ %.pre, %..critedge_crit_edge ], [ %6, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit6.i" ], [ %6, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit.i" ] call void @llvm.experimental.noalias.scope.decl(metadata !680) call void @llvm.experimental.noalias.scope.decl(metadata !695) call void @llvm.experimental.noalias.scope.decl(metadata !696) @@ -2473,7 +2473,7 @@ _ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.5679 br label %"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1ba0053c1bd89bfeE.llvm.567936041081457991.exit" "_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1ba0053c1bd89bfeE.llvm.567936041081457991.exit": ; preds = %_ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit, %19, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit.thread - %storemerge = phi i64 [ 0, %19 ], [ -9223372036854775808, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit.thread ], [ -9223372036854775808, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h5ea1a828fe69a498E.llvm.567936041081457991.exit ] + %storemerge = phi i64 [ 0, %19 ], [ -9223372036854775808, %.critedge ], [ -9223372036854775808, %"_ZN4core3ptr101drop_in_place$LT$core..option..Option$LT$clap_builder..builder..possible_value..PossibleValue$GT$$GT$17h6bf0c0b5c37198d0E.exit6.i" ] store i64 %storemerge, ptr %0, align 8 ret void } diff --git a/bench/cpython/optimized/_datetimemodule.ll b/bench/cpython/optimized/_datetimemodule.ll index a2246f1e738..2de5fc9fdd6 100644 --- a/bench/cpython/optimized/_datetimemodule.ll +++ b/bench/cpython/optimized/_datetimemodule.ll @@ -9325,7 +9325,7 @@ define internal fastcc range(i32 -4, 1) i32 @iso_to_ymd(i32 noundef %0, i32 noun %19 = sub nsw i32 %18, %.neg.i.i.i39.zext %20 = add nsw i32 %19, %.zext42 %21 = srem i32 %20, 7 - switch i32 %21, label %.thread [ + switch i32 %21, label %.critedge [ i32 3, label %is_leap.exit.thread35 i32 2, label %22 ] @@ -9375,8 +9375,8 @@ is_leap.exit.thread35: ; preds = %12, %25, %8 tail call fastcc void @ord_to_ymd(i32 noundef %46, ptr noundef %3, ptr noundef %4, ptr noundef %5) br label %.thread -.thread: ; preds = %25, %22, %12, %10, %is_leap.exit.thread35, %6, %29 - %.0 = phi i32 [ 0, %29 ], [ -4, %6 ], [ -3, %is_leap.exit.thread35 ], [ -2, %10 ], [ -2, %12 ], [ -2, %22 ], [ -2, %25 ] +.thread: ; preds = %10, %12, %22, %25, %is_leap.exit.thread35, %6, %29 + %.0 = phi i32 [ 0, %29 ], [ -4, %6 ], [ -3, %is_leap.exit.thread35 ], [ -2, %25 ], [ -2, %22 ], [ -2, %12 ], [ -2, %10 ] ret i32 %.0 } diff --git a/bench/curl/optimized/hsts.ll b/bench/curl/optimized/hsts.ll index 888cba50edf..da1be2b3047 100644 --- a/bench/curl/optimized/hsts.ll +++ b/bench/curl/optimized/hsts.ll @@ -998,7 +998,7 @@ define hidden range(i32 0, 44) i32 @Curl_hsts_loadcb(ptr noundef %0, ptr noundef store i8 0, ptr %3, align 16, !tbaa !24 %16 = load ptr, ptr %11, align 8, !tbaa !121 %17 = call i32 %13(ptr noundef nonnull %0, ptr noundef nonnull %4, ptr noundef %16) #9 - switch i32 %17, label %.thread45.sink.split.i.loopexit [ + switch i32 %17, label %.sink.split.i.loopexit [ i32 0, label %18 i32 2, label %.thread45.sink.split.i ] @@ -1078,13 +1078,13 @@ define hidden range(i32 0, 44) i32 @Curl_hsts_loadcb(ptr noundef %0, ptr noundef br label %.thread45.sink.split.i .thread45.sink.split.i: ; preds = %.thread31.i.i, %18, %12, %.thread45.sink.split.i.loopexit, %41 - %.4.ph.i = phi i32 [ 27, %41 ], [ 42, %12 ], [ 43, %18 ], [ 27, %.thread31.i.i ], [ 0, %.thread45.sink.split.i.loopexit ] + %.4.ph.i = phi i32 [ 27, %41 ], [ 42, %12 ], [ 43, %18 ], [ 27, %.thread31.i.i ], [ 0, %.sink.split.i.loopexit ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %4) #9 call void @llvm.lifetime.end.p0(i64 2049, ptr nonnull %3) #9 br label %hsts_pull.exit hsts_pull.exit: ; preds = %.thread45.sink.split.i, %5, %2 - %.0 = phi i32 [ 0, %2 ], [ 0, %5 ], [ %.4.ph.i, %.thread45.sink.split.i ] + %.0 = phi i32 [ 0, %2 ], [ 0, %5 ], [ %.4.ph.i, %.sink.split.i ] ret i32 %.0 } diff --git a/bench/darktable/optimized/CiffIFD.ll b/bench/darktable/optimized/CiffIFD.ll index a14f041c6f9..f51b1587bed 100644 --- a/bench/darktable/optimized/CiffIFD.ll +++ b/bench/darktable/optimized/CiffIFD.ll @@ -1821,7 +1821,7 @@ _ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteI %12 = icmp ult i16 %1, %11 br i1 %12, label %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread, label %14 -_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread: ; preds = %2, %_ZNKSt8_Rb_treeIN8rawspeed7CiffTagESt4pairIKS1_St10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS6_EEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISA_EPKSt18_Rb_tree_node_baseRS3_.exit.i.i, %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit +_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread: ; preds = %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit, %_ZNKSt8_Rb_treeIN8rawspeed7CiffTagESt4pairIKS1_St10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS6_EEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISA_EPKSt18_Rb_tree_node_baseRS3_.exit.i.i, %2 %13 = zext i16 %1 to i32 tail call void (ptr, ...) @_ZN8rawspeed14ThrowExceptionINS_19CiffParserExceptionEEEvPKcz(ptr noundef nonnull @.str.4, ptr noundef nonnull @__PRETTY_FUNCTION__._ZNK8rawspeed7CiffIFD8getEntryENS_7CiffTagE, i32 noundef %13) #38 unreachable @@ -1867,14 +1867,14 @@ _ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteI %10 = getelementptr inbounds nuw i8, ptr %.19.i.i.i, i64 32 %11 = load i16, ptr %10, align 2, !tbaa !45 %12 = icmp ult i16 %1, %11 - br i1 %12, label %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread, label %13 + br i1 %12, label %15, label %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread 13: ; preds = %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit %14 = getelementptr inbounds nuw i8, ptr %.19.i.i.i, i64 40 %15 = load ptr, ptr %14, align 8, !tbaa !60 br label %.loopexit -_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread: ; preds = %2, %_ZNKSt8_Rb_treeIN8rawspeed7CiffTagESt4pairIKS1_St10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS6_EEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISA_EPKSt18_Rb_tree_node_baseRS3_.exit.i.i, %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit +_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread: ; preds = %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit, %_ZNKSt8_Rb_treeIN8rawspeed7CiffTagESt4pairIKS1_St10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS6_EEESt10_Select1stISA_ESt4lessIS1_ESaISA_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISA_EPKSt18_Rb_tree_node_baseRS3_.exit.i.i, %2 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = load ptr, ptr %16, align 8, !tbaa !98 %18 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -1888,14 +1888,14 @@ _ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteI br i1 %23, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread, %21 - %.sroa.01.012 = phi ptr [ %22, %21 ], [ %17, %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread ] + %.sroa.01.012 = phi ptr [ %22, %21 ], [ %17, %15 ] %24 = load ptr, ptr %.sroa.01.012, align 8, !tbaa !36 %25 = tail call fastcc noundef ptr @"_ZNK8rawspeed7CiffIFD19getEntryRecursiveIfIZNKS0_17getEntryRecursiveENS_7CiffTagEE3$_0EEPKNS_9CiffEntryES2_RKT_"(ptr noundef nonnull align 8 dereferenceable(88) %24, i16 noundef zeroext %1) #37 %.not = icmp eq ptr %25, null br i1 %.not, label %21, label %.loopexit -.loopexit: ; preds = %21, %.lr.ph, %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread, %13 - %.3 = phi ptr [ %15, %13 ], [ null, %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread ], [ null, %21 ], [ %25, %.lr.ph ] +.loopexit: ; preds = %21, %.lr.ph, %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread, %15 + %.3 = phi ptr [ %15, %_ZNKSt3mapIN8rawspeed7CiffTagESt10unique_ptrIKNS0_9CiffEntryESt14default_deleteIS4_EESt4lessIS1_ESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread ], [ null, %15 ], [ null, %21 ], [ %25, %.lr.ph ] ret ptr %.3 } diff --git a/bench/darktable/optimized/TiffIFD.ll b/bench/darktable/optimized/TiffIFD.ll index 9674443dbcf..d387fb2d489 100644 --- a/bench/darktable/optimized/TiffIFD.ll +++ b/bench/darktable/optimized/TiffIFD.ll @@ -2467,14 +2467,14 @@ _ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS %10 = getelementptr inbounds nuw i8, ptr %.19.i.i.i, i64 32 %11 = load i16, ptr %10, align 2, !tbaa !32 %12 = icmp ult i16 %1, %11 - br i1 %12, label %_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit.thread, label %13 + br i1 %12, label %15, label %_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit.thread 13: ; preds = %_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit %14 = getelementptr inbounds nuw i8, ptr %.19.i.i.i, i64 40 %15 = load ptr, ptr %14, align 8, !tbaa !37 br label %.loopexit -_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit.thread: ; preds = %2, %_ZNKSt8_Rb_treeIN8rawspeed7TiffTagESt4pairIKS1_St10unique_ptrINS0_9TiffEntryESt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS9_EPKSt18_Rb_tree_node_baseRS3_.exit.i.i, %_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit +_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit.thread: ; preds = %_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit, %_ZNKSt8_Rb_treeIN8rawspeed7TiffTagESt4pairIKS1_St10unique_ptrINS0_9TiffEntryESt14default_deleteIS5_EEESt10_Select1stIS9_ESt4lessIS1_ESaIS9_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS9_EPKSt18_Rb_tree_node_baseRS3_.exit.i.i, %2 %16 = getelementptr inbounds nuw i8, ptr %0, i64 24 %17 = load ptr, ptr %16, align 8, !tbaa !107 %18 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -2488,14 +2488,14 @@ _ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS br i1 %23, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit.thread, %21 - %.sroa.017.028 = phi ptr [ %22, %21 ], [ %17, %_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit.thread ] + %.sroa.017.028 = phi ptr [ %22, %21 ], [ %17, %15 ] %24 = load ptr, ptr %.sroa.017.028, align 8, !tbaa !47 %25 = tail call noundef ptr @_ZNK8rawspeed7TiffIFD17getEntryRecursiveENS_7TiffTagE(ptr noundef nonnull align 8 dereferenceable(104) %24, i16 noundef zeroext %1) #34 %.not = icmp eq ptr %25, null br i1 %.not, label %21, label %.loopexit -.loopexit: ; preds = %21, %.lr.ph, %_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit.thread, %13 - %.1 = phi ptr [ %15, %13 ], [ null, %_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit.thread ], [ null, %21 ], [ %25, %.lr.ph ] +.loopexit: ; preds = %21, %.lr.ph, %_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit.thread, %15 + %.1 = phi ptr [ %15, %_ZNKSt3mapIN8rawspeed7TiffTagESt10unique_ptrINS0_9TiffEntryESt14default_deleteIS3_EESt4lessIS1_ESaISt4pairIKS1_S6_EEE4findERSA_.exit.thread ], [ null, %15 ], [ null, %21 ], [ %25, %.lr.ph ] ret ptr %.1 } diff --git a/bench/duckdb/optimized/format.ll b/bench/duckdb/optimized/format.ll index 05fd42a14a4..0023c554881 100644 --- a/bench/duckdb/optimized/format.ll +++ b/bench/duckdb/optimized/format.ll @@ -39024,14 +39024,18 @@ define linkonce_odr void @_ZZN10duckdb_fmt2v68internal19parse_format_stringILb0E %4 = alloca %"class.std::__cxx11::basic_string", align 8 %5 = alloca %"class.std::allocator", align 1 %6 = icmp eq ptr %1, %2 - br i1 %6, label %62, label %.lr.ph.i.preheader + br i1 %6, label %.loopexit26, label %.lr.ph.i.preheader -.lr.ph.i.preheader: ; preds = %3, %_ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNS6_10value_typeERSt20back_insert_iteratorIS6_Em.exit.i18 - %.01337 = phi ptr [ %61, %_ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNS6_10value_typeERSt20back_insert_iteratorIS6_Em.exit.i18 ], [ %1, %3 ] +.lr.ph.i.preheader: ; preds = %3 + %7 = ptrtoint ptr %2 to i64 + br label %.lr.ph.i.preheader + +.lr.ph.i.preheader: ; preds = %.preheader, %_ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNS6_10value_typeERSt20back_insert_iteratorIS6_Em.exit.i18 + %.01347 = phi ptr [ %1, %.preheader ], [ %61, %_ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNS6_10value_typeERSt20back_insert_iteratorIS6_Em.exit.i18 ] br label %.lr.ph.i .lr.ph.i: ; preds = %.lr.ph.i.preheader, %11 - %storemerge9.i = phi ptr [ %9, %11 ], [ %.01337, %.lr.ph.i.preheader ] + %storemerge9.i = phi ptr [ %9, %12 ], [ %.01347, %.lr.ph.i.preheader ] %7 = load i32, ptr %storemerge9.i, align 4, !tbaa !117 %8 = icmp eq i32 %7, 125 %9 = getelementptr inbounds nuw i8, ptr %storemerge9.i, i64 4 @@ -39042,11 +39046,10 @@ define linkonce_odr void @_ZZN10duckdb_fmt2v68internal19parse_format_stringILb0E br i1 %10, label %.loopexit, label %.lr.ph.i, !llvm.loop !701 .loopexit: ; preds = %_ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNS6_10value_typeERSt20back_insert_iteratorIS6_Em.exit.i18, %11 - %.01336 = phi ptr [ %.01337, %11 ], [ %61, %_ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNS6_10value_typeERSt20back_insert_iteratorIS6_Em.exit.i18 ] + %.01336 = phi ptr [ %.01347, %12 ], [ %61, %_ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNS6_10value_typeERSt20back_insert_iteratorIS6_Em.exit.i18 ] %12 = load ptr, ptr %0, align 8, !tbaa !716 - %13 = ptrtoint ptr %2 to i64 - %14 = ptrtoint ptr %.01336 to i64 - %15 = sub i64 %13, %14 + %13 = ptrtoint ptr %.01346 to i64 + %15 = sub i64 %7, %14 %16 = ashr exact i64 %15, 2 %17 = getelementptr inbounds nuw i8, ptr %12, i64 32 %.sroa.0.0.copyload.i.i = load ptr, ptr %17, align 8 @@ -39066,17 +39069,13 @@ define linkonce_odr void @_ZZN10duckdb_fmt2v68internal19parse_format_stringILb0E _ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNS6_10value_typeERSt20back_insert_iteratorIS6_Em.exit.i: ; preds = %24, %.loopexit store i64 %20, ptr %18, align 8, !tbaa !94 - br i1 %8, label %.thread, label %_ZSt8__copy_nIPKwmPwET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i + br i1 %8, label %62, label %_ZSt8__copy_nIPKwmPwET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i _ZSt8__copy_nIPKwmPwET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i: ; preds = %_ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNS6_10value_typeERSt20back_insert_iteratorIS6_Em.exit.i %27 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.copyload.i.i, i64 8 %28 = load ptr, ptr %27, align 8, !tbaa !98 %29 = getelementptr inbounds nuw i32, ptr %28, i64 %19 tail call void @llvm.memmove.p0.p0.i64(ptr align 4 %29, ptr align 4 %.01336, i64 %15, i1 false) - br label %.thread - -.thread: ; preds = %_ZSt8__copy_nIPKwmPwET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i, %_ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNS6_10value_typeERSt20back_insert_iteratorIS6_Em.exit.i - store ptr %.sroa.0.0.copyload.i.i, ptr %17, align 8 br label %62 _ZN10duckdb_fmt2v68internal4findILb0EcPKwEEbT1_S5_T0_RS5_.exit: ; preds = %.lr.ph.i @@ -39122,7 +39121,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKS 42: ; preds = %30 %43 = load ptr, ptr %0, align 8, !tbaa !716 %44 = ptrtoint ptr %9 to i64 - %45 = ptrtoint ptr %.01337 to i64 + %45 = ptrtoint ptr %.01347 to i64 %46 = sub i64 %44, %45 %47 = ashr exact i64 %46, 2 %48 = getelementptr inbounds nuw i8, ptr %43, i64 32 @@ -39146,13 +39145,17 @@ _ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_conti %58 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.copyload.i.i17, i64 8 %59 = load ptr, ptr %58, align 8, !tbaa !98 %60 = getelementptr inbounds nuw i32, ptr %59, i64 %50 - tail call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %60, ptr noundef nonnull align 4 dereferenceable(1) %.01337, i64 %46, i1 false) + tail call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(1) %60, ptr noundef nonnull align 4 dereferenceable(1) %.01347, i64 %46, i1 false) store ptr %.sroa.0.0.copyload.i.i17, ptr %48, align 8 %61 = getelementptr inbounds nuw i8, ptr %storemerge9.i, i64 8 %.not8.not.i = icmp eq ptr %61, %2 br i1 %.not8.not.i, label %.loopexit, label %.lr.ph.i.preheader -62: ; preds = %.thread, %3 +62: ; preds = %_ZSt8__copy_nIPKwmPwET1_T_T0_S3_St26random_access_iterator_tag.exit.i.i, %_ZN10duckdb_fmt2v68internal7reserveINS1_6bufferIwEETnNSt9enable_ifIXsr13is_contiguousIT_EE5valueEiE4typeELi0EEEPNS6_10value_typeERSt20back_insert_iteratorIS6_Em.exit.i + store ptr %.sroa.0.0.copyload.i.i, ptr %17, align 8 + br label %.loopexit26 + +.loopexit26: ; preds = %.loopexit26.loopexit, %3 ret void } diff --git a/bench/entt/optimized/signal_less.ll b/bench/entt/optimized/signal_less.ll index 6d6a7eed325..afa6a57eb75 100644 --- a/bench/entt/optimized/signal_less.ll +++ b/bench/entt/optimized/signal_less.ll @@ -667,7 +667,7 @@ _ZN4entt13basic_storageINS_6entityES1_SaIS1_EvE8generateEv.exit.i: ; preds = %57 72: ; preds = %.noexc call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #21 %73 = invoke noundef nonnull align 8 dereferenceable(104) ptr @_ZN4entt14basic_registryINS_6entityESaIS1_EE6assureIiEERDaj(ptr noundef nonnull align 8 dereferenceable(256) %3, i32 noundef -1779859874) - to label %.noexc58 unwind label %131 + to label %.noexc59 unwind label %131 .noexc58: ; preds = %72 %74 = getelementptr inbounds nuw i8, ptr %73, i64 32 @@ -699,7 +699,7 @@ _ZN4entt14basic_registryINS_6entityESaIS1_EE5eraseIiJEEEvS1_.exit: ; preds = %.n .lr.ph.i.i.preheader: ; preds = %_ZN4entt14basic_registryINS_6entityESaIS1_EE5eraseIiJEEEvS1_.exit %92 = invoke { ptr, i64 } @_ZN4entt13basic_storageIiNS_6entityESaIiEvE15emplace_elementIJRKiEEEDaS1_bDpOT_(ptr noundef nonnull align 8 dereferenceable(104) %91, i32 noundef %69, i1 noundef zeroext true, ptr noundef nonnull align 4 dereferenceable(4) %5) - to label %.noexc62 unwind label %.loopexit + to label %.noexc63 unwind label %.loopexit .noexc62: ; preds = %.lr.ph.i.i.preheader call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #21 @@ -879,7 +879,7 @@ _ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE br label %_ZN7testing7MessageD2Ev.exit73 _ZN7testing7MessageD2Ev.exit73: ; preds = %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i72, %161, %155 - %.pn25.pn = phi { ptr, i32 } [ %156, %155 ], [ %.pn25, %161 ], [ %.pn25, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i72 ] + %.pn25.pn = phi { ptr, i32 } [ %156, %155 ], [ %.pn25, %161 ], [ %.pn25, %_ZNKSt14default_deleteINSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i73 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) #21 call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %6) #21 br label %179 @@ -920,7 +920,7 @@ _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEP ret void 179: ; preds = %_ZN7testing7MessageD2Ev.exit73, %140, %138 - %.pn25.pn.pn = phi { ptr, i32 } [ %.pn25.pn, %_ZN7testing7MessageD2Ev.exit73 ], [ %141, %140 ], [ %139, %138 ] + %.pn25.pn.pn = phi { ptr, i32 } [ %.pn25.pn, %_ZN7testing7MessageD2Ev.exit74 ], [ %141, %140 ], [ %139, %138 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #21 br label %180 diff --git a/bench/gromacs/optimized/scanner_internal.ll b/bench/gromacs/optimized/scanner_internal.ll index a7b11422319..9a44ee1ade6 100644 --- a/bench/gromacs/optimized/scanner_internal.ll +++ b/bench/gromacs/optimized/scanner_internal.ll @@ -1004,7 +1004,7 @@ define noundef range(i32 258, 280) i32 @_Z33_gmx_sel_lexer_process_identifierP7Y br i1 %25, label %.preheader.us, label %.preheader .preheader.us: ; preds = %.preheader228, %._crit_edge.us - %.0139240.us = phi i32 [ %spec.select.us, %._crit_edge.us ], [ %19, %.preheader228 ] + %.0139240.us = phi i32 [ %spec.select.us, %._crit_edge.us ], [ %19, %.preheader229 ] %27 = zext nneg i32 %.0139240.us to i64 %28 = getelementptr inbounds nuw ptr, ptr %24, i64 %27 %29 = load ptr, ptr %28, align 8, !tbaa !57 @@ -1068,7 +1068,7 @@ define noundef range(i32 258, 280) i32 @_Z33_gmx_sel_lexer_process_identifierP7Y br label %33 .preheader: ; preds = %.preheader228, %._crit_edge231.split.us - %.0139240 = phi i32 [ %spec.select, %._crit_edge231.split.us ], [ %19, %.preheader228 ] + %.0139240 = phi i32 [ %spec.select, %._crit_edge232.split.us ], [ %19, %.preheader229 ] %58 = zext nneg i32 %.0139240 to i64 %59 = getelementptr inbounds nuw ptr, ptr %24, i64 %58 %60 = load ptr, ptr %59, align 8, !tbaa !57 @@ -1597,7 +1597,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit182: ; preds = %26 br i1 %.3116, label %283, label %345 .sink.split: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit182.thread, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i181.thread, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit182.thread223 - %.pn157.pn.pn200.ph = phi { ptr, i32 } [ %269, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit182.thread223 ], [ %269, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i181.thread ], [ %260, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit182.thread ] + %.pn157.pn.pn200.ph = phi { ptr, i32 } [ %269, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit182.thread224 ], [ %269, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i181.thread ], [ %260, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit182.thread ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %10) #21 call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %9) #21 br label %283 @@ -1687,12 +1687,12 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit182: ; preds = %26 br i1 %.0107, label %310, label %345 .sink.split282: ; preds = %.thread, %.thread204 - %.pn153.pn203.ph = phi { ptr, i32 } [ %307, %.thread204 ], [ %306, %.thread ] + %.pn153.pn203.ph = phi { ptr, i32 } [ %307, %.thread205 ], [ %306, %.thread ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %13) #21 br label %310 310: ; preds = %.sink.split282, %308 - %.pn153.pn203 = phi { ptr, i32 } [ %309, %308 ], [ %.pn153.pn203.ph, %.sink.split282 ] + %.pn153.pn203 = phi { ptr, i32 } [ %309, %308 ], [ %.pn153.pn203.ph, %.sink.split283 ] call void @__cxa_free_exception(ptr %301) #21 br label %345 @@ -1787,12 +1787,12 @@ _ZNSt10shared_ptrIN3gmx20SelectionTreeElementEEC2ERKS2_.exit: ; preds = %311, %3 br i1 %.0, label %338, label %345 .sink.split283: ; preds = %.thread207, %.thread211 - %.pn150.pn210.ph = phi { ptr, i32 } [ %335, %.thread211 ], [ %334, %.thread207 ] + %.pn150.pn210.ph = phi { ptr, i32 } [ %335, %.thread212 ], [ %334, %.thread208 ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %16) #21 br label %338 338: ; preds = %.sink.split283, %336 - %.pn150.pn210 = phi { ptr, i32 } [ %337, %336 ], [ %.pn150.pn210.ph, %.sink.split283 ] + %.pn150.pn210 = phi { ptr, i32 } [ %337, %336 ], [ %.pn150.pn210.ph, %.sink.split284 ] call void @__cxa_free_exception(ptr %329) #21 br label %345 diff --git a/bench/harfbuzz/optimized/harfbuzz.ll b/bench/harfbuzz/optimized/harfbuzz.ll index 681d975d9fe..9f5a35e7bb5 100644 --- a/bench/harfbuzz/optimized/harfbuzz.ll +++ b/bench/harfbuzz/optimized/harfbuzz.ll @@ -15436,10 +15436,10 @@ _ZN11hb_buffer_t6ensureEj.exit.thread.i: ; preds = %_ZN11hb_buffer_t6en %.pre39 = load ptr, ptr %24, align 8, !tbaa !197 br label %_ZN11hb_buffer_t13make_room_forEjj.exit.thread30 -_ZN11hb_buffer_t13make_room_forEjj.exit.thread30: ; preds = %36, %33, %27, %_ZN11hb_buffer_t6ensureEj.exit.thread.i - %39 = phi ptr [ %.pre39, %36 ], [ %25, %33 ], [ %25, %27 ], [ %25, %_ZN11hb_buffer_t6ensureEj.exit.thread.i ] - %40 = phi i32 [ %.pre37, %36 ], [ 0, %33 ], [ %.pre38, %27 ], [ %.pre38, %_ZN11hb_buffer_t6ensureEj.exit.thread.i ] - %41 = phi ptr [ %.pre36, %36 ], [ %35, %33 ], [ %23, %27 ], [ %23, %_ZN11hb_buffer_t6ensureEj.exit.thread.i ] +_ZN11hb_buffer_t13make_room_forEjj.exit.thread30: ; preds = %_ZN11hb_buffer_t6ensureEj.exit.thread.i, %27, %33, %36 + %39 = phi ptr [ %25, %_ZN11hb_buffer_t6ensureEj.exit.thread.i ], [ %25, %27 ], [ %25, %33 ], [ %.pre37, %36 ] + %40 = phi i32 [ %.pre36, %_ZN11hb_buffer_t6ensureEj.exit.thread.i ], [ %.pre36, %27 ], [ 0, %33 ], [ %.pre35, %36 ] + %41 = phi ptr [ %23, %_ZN11hb_buffer_t6ensureEj.exit.thread.i ], [ %23, %27 ], [ %35, %33 ], [ %.pre34, %36 ] %42 = zext i32 %40 to i64 %43 = getelementptr inbounds nuw %struct.hb_glyph_info_t, ptr %41, i64 %42 %44 = getelementptr inbounds nuw i8, ptr %0, i64 92 @@ -15553,8 +15553,8 @@ _ZN11hb_buffer_t6ensureEj.exit.thread.i29: ; preds = %_ZN11hb_buffer_t6en tail call void @llvm.memmove.p0.p0.i64(ptr align 4 %104, ptr align 4 %108, i64 %110, i1 false) br label %_ZN11hb_buffer_t13make_room_forEjj.exit -_ZN11hb_buffer_t13make_room_forEjj.exit: ; preds = %_ZN11hb_buffer_t6ensureEj.exit.i, %54, %_ZN11hb_buffer_t13make_room_forEjj.exit.thread30, %.thread33, %_ZN11hb_buffer_t6ensureEj.exit.i28, %8, %6 - %.0 = phi i1 [ true, %6 ], [ false, %8 ], [ false, %_ZN11hb_buffer_t6ensureEj.exit.i28 ], [ true, %.thread33 ], [ true, %_ZN11hb_buffer_t13make_room_forEjj.exit.thread30 ], [ true, %54 ], [ false, %_ZN11hb_buffer_t6ensureEj.exit.i ] +_ZN11hb_buffer_t13make_room_forEjj.exit: ; preds = %54, %.thread31, %.critedge, %_ZN11hb_buffer_t6ensureEj.exit.i, %_ZN11hb_buffer_t6ensureEj.exit.i28, %8, %6 + %.0 = phi i1 [ true, %6 ], [ false, %8 ], [ false, %_ZN11hb_buffer_t6ensureEj.exit.i28 ], [ false, %_ZN11hb_buffer_t6ensureEj.exit.i ], [ true, %.critedge ], [ true, %.thread31 ], [ true, %54 ] ret i1 %.0 } diff --git a/bench/hermes/optimized/MemoryBuffer.ll b/bench/hermes/optimized/MemoryBuffer.ll index 4f31d8f36a1..416c5635be8 100644 --- a/bench/hermes/optimized/MemoryBuffer.ll +++ b/bench/hermes/optimized/MemoryBuffer.ll @@ -738,7 +738,7 @@ _ZnwmRKN12_GLOBAL__N_116NamedBufferAllocE.exit.i: ; preds = %if.then.i.i.i.i.i, call void @_ZN4llvh3sys2fs18mapped_file_regionC1EiNS2_7mapmodeEmmRSt10error_code(ptr noundef nonnull align 8 dereferenceable(20) %MFR.i.i, i32 noundef %2, i32 noundef 2, i64 noundef %add.i.i.i, i64 noundef %and.i.i.i, ptr noundef nonnull align 8 dereferenceable(16) %EC19.i) #22, !noalias !29 %14 = load i32, ptr %EC19.i, align 8, !noalias !29 %cmp.i.not.i.i = icmp eq i32 %14, 0 - br i1 %cmp.i.not.i.i, label %_ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh20WritableMemoryBufferEEC2EbimmRSt10error_code.exit.i, label %_ZNSt10unique_ptrIN4llvh20WritableMemoryBufferESt14default_deleteIS1_EED2Ev.exit.thread.i + br i1 %cmp.i.not.i.i, label %_ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh20WritableMemoryBufferEEC2EbimmRSt10error_code.exit.i, label %_ZNKSt14default_deleteIN4llvh20WritableMemoryBufferEEclEPS1_.exit.i.i _ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh20WritableMemoryBufferEEC2EbimmRSt10error_code.exit.i: ; preds = %_ZnwmRKN12_GLOBAL__N_116NamedBufferAllocE.exit.i %call.i7.i.i = call noundef ptr @_ZNK4llvh3sys2fs18mapped_file_region10const_dataEv(ptr noundef nonnull align 8 dereferenceable(20) %MFR.i.i) #22, !noalias !29 @@ -754,16 +754,9 @@ _ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh20WritableMemoryBufferEEC2EbimmRSt store ptr %add.ptr.i21.i, ptr %BufferEnd.i.i.i, align 8, !noalias !29 %.pr.i = load i32, ptr %EC19.i, align 8, !noalias !29 %cmp.i22.not.i = icmp eq i32 %.pr.i, 0 - br i1 %cmp.i22.not.i, label %_ZNSt10unique_ptrIN4llvh20WritableMemoryBufferESt14default_deleteIS1_EED2Ev.exit.i, label %_ZNSt10unique_ptrIN4llvh20WritableMemoryBufferESt14default_deleteIS1_EED2Ev.exit.thread.i + br i1 %cmp.i22.not.i, label %_ZNSt10unique_ptrIN4llvh20WritableMemoryBufferESt14default_deleteIS1_EED2Ev.exit.thread.i, label %_ZNKSt14default_deleteIN4llvh20WritableMemoryBufferEEclEPS1_.exit.i.i -_ZNSt10unique_ptrIN4llvh20WritableMemoryBufferESt14default_deleteIS1_EED2Ev.exit.thread.i: ; preds = %_ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh20WritableMemoryBufferEEC2EbimmRSt10error_code.exit.i, %_ZnwmRKN12_GLOBAL__N_116NamedBufferAllocE.exit.i - %vtable.i.i.i = load ptr, ptr %call3.i.i, align 8, !noalias !29 - %vfn.i.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i.i, i64 8 - %16 = load ptr, ptr %vfn.i.i.i, align 8, !noalias !29 - call void %16(ptr noundef nonnull align 8 dereferenceable(24) %call3.i.i) #22, !noalias !29 - br label %if.end25.i - -_ZNSt10unique_ptrIN4llvh20WritableMemoryBufferESt14default_deleteIS1_EED2Ev.exit.i: ; preds = %_ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh20WritableMemoryBufferEEC2EbimmRSt10error_code.exit.i +_ZNSt10unique_ptrIN4llvh20WritableMemoryBufferESt14default_deleteIS1_EED2Ev.exit.thread.i: ; preds = %_ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh20WritableMemoryBufferEEC2EbimmRSt10error_code.exit.i %HasError.i23.i = getelementptr inbounds nuw i8, ptr %agg.result, i64 16 %bf.load.i24.i = load i8, ptr %HasError.i23.i, align 8, !alias.scope !29 %bf.clear.i.i = and i8 %bf.load.i24.i, -2 @@ -772,7 +765,14 @@ _ZNSt10unique_ptrIN4llvh20WritableMemoryBufferESt14default_deleteIS1_EED2Ev.exit store i64 %17, ptr %agg.result, align 8, !alias.scope !29 br label %_ZL15getOpenFileImplIN4llvh20WritableMemoryBufferEENS0_7ErrorOrISt10unique_ptrIT_St14default_deleteIS4_EEEEiRKNS0_5TwineEmmlbb.exit -if.end25.i: ; preds = %_ZNSt10unique_ptrIN4llvh20WritableMemoryBufferESt14default_deleteIS1_EED2Ev.exit.thread.i, %_ZL13shouldUseMmapimmlbib.exit.i, %if.end14.i +if.end25.i: ; preds = %_ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh20WritableMemoryBufferEEC2EbimmRSt10error_code.exit.i, %_ZnwmRKN12_GLOBAL__N_116NamedBufferAllocE.exit.i + %vtable.i.i.i = load ptr, ptr %call3.i.i, align 8, !noalias !29 + %vfn.i.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i.i, i64 8 + %17 = load ptr, ptr %vfn.i.i.i, align 8, !noalias !29 + call void %17(ptr noundef nonnull align 8 dereferenceable(24) %call3.i.i) #22, !noalias !29 + br label %if.end25.i + +if.end25.i: ; preds = %_ZNKSt14default_deleteIN4llvh20WritableMemoryBufferEEclEPS1_.exit.i.i, %_ZL13shouldUseMmapimmlbib.exit.i, %if.end14.i call void @llvm.lifetime.start.p0(i64 272, ptr nonnull %NameBuf.i26.i), !noalias !29 %add.ptr.i.i.i.i.i.i.i27.i = getelementptr inbounds nuw i8, ptr %NameBuf.i26.i, i64 16 store ptr %add.ptr.i.i.i.i.i.i.i27.i, ptr %NameBuf.i26.i, align 8, !noalias !33 @@ -901,7 +901,7 @@ cleanup47.i: ; preds = %land.rhs.i.i call void %24(ptr noundef nonnull align 8 dereferenceable(24) %call6.i.i) #22, !noalias !29 br label %_ZL15getOpenFileImplIN4llvh20WritableMemoryBufferEENS0_7ErrorOrISt10unique_ptrIT_St14default_deleteIS4_EEEEiRKNS0_5TwineEmmlbb.exit -_ZL15getOpenFileImplIN4llvh20WritableMemoryBufferEENS0_7ErrorOrISt10unique_ptrIT_St14default_deleteIS4_EEEEiRKNS0_5TwineEmmlbb.exit: ; preds = %if.then6.i, %if.then10.i, %_ZNSt10unique_ptrIN4llvh20WritableMemoryBufferESt14default_deleteIS1_EED2Ev.exit.i, %if.then27.i, %while.end.i, %cleanup47.i +_ZL15getOpenFileImplIN4llvh20WritableMemoryBufferEENS0_7ErrorOrISt10unique_ptrIT_St14default_deleteIS4_EEEEiRKNS0_5TwineEmmlbb.exit: ; preds = %if.then6.i, %if.then10.i, %_ZNSt10unique_ptrIN4llvh20WritableMemoryBufferESt14default_deleteIS1_EED2Ev.exit.thread.i, %if.then27.i, %while.end.i, %cleanup47.i call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %Status.i) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %EC19.i) %25 = load i32, ptr %FD, align 4 @@ -1452,7 +1452,7 @@ _ZnwmRKN12_GLOBAL__N_116NamedBufferAllocE.exit: ; preds = %_ZL13CopyStringRefP call void @_ZN4llvh3sys2fs18mapped_file_regionC1EiNS2_7mapmodeEmmRSt10error_code(ptr noundef nonnull align 8 dereferenceable(20) %MFR.i, i32 noundef %FD, i32 noundef 0, i64 noundef %add.i.i, i64 noundef %and.i.i, ptr noundef nonnull align 8 dereferenceable(16) %EC19) #22 %15 = load i32, ptr %EC19, align 8 %cmp.i.not.i24 = icmp eq i32 %15, 0 - br i1 %cmp.i.not.i24, label %_ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh12MemoryBufferEEC2EbimmRSt10error_code.exit, label %_ZNSt10unique_ptrIN4llvh12MemoryBufferESt14default_deleteIS1_EED2Ev.exit.thread + br i1 %cmp.i.not.i24, label %_ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh12MemoryBufferEEC2EbimmRSt10error_code.exit, label %_ZNKSt14default_deleteIN4llvh12MemoryBufferEEclEPS1_.exit.i _ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh12MemoryBufferEEC2EbimmRSt10error_code.exit: ; preds = %_ZnwmRKN12_GLOBAL__N_116NamedBufferAllocE.exit %call.i7.i = call noundef ptr @_ZNK4llvh3sys2fs18mapped_file_region10const_dataEv(ptr noundef nonnull align 8 dereferenceable(20) %MFR.i) #22 @@ -1468,14 +1468,7 @@ _ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh12MemoryBufferEEC2EbimmRSt10error_ store ptr %add.ptr.i27, ptr %BufferEnd.i.i, align 8 %.pr = load i32, ptr %EC19, align 8 %cmp.i28.not = icmp eq i32 %.pr, 0 - br i1 %cmp.i28.not, label %_ZNSt10unique_ptrIN4llvh12MemoryBufferESt14default_deleteIS1_EED2Ev.exit, label %_ZNSt10unique_ptrIN4llvh12MemoryBufferESt14default_deleteIS1_EED2Ev.exit.thread - -_ZNSt10unique_ptrIN4llvh12MemoryBufferESt14default_deleteIS1_EED2Ev.exit.thread: ; preds = %_ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh12MemoryBufferEEC2EbimmRSt10error_code.exit, %_ZnwmRKN12_GLOBAL__N_116NamedBufferAllocE.exit - %vtable.i.i = load ptr, ptr %call3.i, align 8 - %vfn.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i, i64 8 - %17 = load ptr, ptr %vfn.i.i, align 8 - call void %17(ptr noundef nonnull align 8 dereferenceable(24) %call3.i) #22 - br label %if.end26 + br i1 %cmp.i28.not, label %_ZNSt10unique_ptrIN4llvh12MemoryBufferESt14default_deleteIS1_EED2Ev.exit, label %_ZNKSt14default_deleteIN4llvh12MemoryBufferEEclEPS1_.exit.i _ZNSt10unique_ptrIN4llvh12MemoryBufferESt14default_deleteIS1_EED2Ev.exit: ; preds = %_ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh12MemoryBufferEEC2EbimmRSt10error_code.exit %HasError.i29 = getelementptr inbounds nuw i8, ptr %agg.result, i64 16 @@ -1486,7 +1479,14 @@ _ZNSt10unique_ptrIN4llvh12MemoryBufferESt14default_deleteIS1_EED2Ev.exit: ; pred store i64 %18, ptr %agg.result, align 8 br label %return -if.end26: ; preds = %_ZNSt10unique_ptrIN4llvh12MemoryBufferESt14default_deleteIS1_EED2Ev.exit.thread, %if.end17.i, %_ZL13shouldUseMmapimmlbib.exit.thread, %_ZL13shouldUseMmapimmlbib.exit +if.end26: ; preds = %_ZnwmRKN12_GLOBAL__N_116NamedBufferAllocE.exit, %_ZN12_GLOBAL__N_120MemoryBufferMMapFileIN4llvh12MemoryBufferEEC2EbimmRSt10error_code.exit + %vtable.i.i = load ptr, ptr %call3.i, align 8 + %vfn.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i, i64 8 + %18 = load ptr, ptr %vfn.i.i, align 8 + call void %18(ptr noundef nonnull align 8 dereferenceable(24) %call3.i) #22 + br label %if.end26 + +if.end26: ; preds = %_ZNKSt14default_deleteIN4llvh12MemoryBufferEEclEPS1_.exit.i, %if.end17.i, %_ZL13shouldUseMmapimmlbib.exit.thread, %_ZL13shouldUseMmapimmlbib.exit call void @llvm.lifetime.start.p0(i64 272, ptr nonnull %NameBuf.i32) %add.ptr.i.i.i.i.i.i.i33 = getelementptr inbounds nuw i8, ptr %NameBuf.i32, i64 16 store ptr %add.ptr.i.i.i.i.i.i.i33, ptr %NameBuf.i32, align 8, !noalias !42 @@ -1614,7 +1614,7 @@ cleanup48: ; preds = %land.rhs.i call void %24(ptr noundef nonnull align 8 dereferenceable(24) %call6.i) #22 br label %return -return: ; preds = %if.then28, %while.end, %cleanup48, %_ZNSt10unique_ptrIN4llvh12MemoryBufferESt14default_deleteIS1_EED2Ev.exit, %if.then.i, %_ZN4llvh7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEEC2IS1_INS_20WritableMemoryBufferES3_IS8_EEEEONS0_IT_EEPNSt9enable_ifIXsr3std14is_convertibleISB_S5_EE5valueEvE4typeE.exit.thread, %if.then6 +return: ; preds = %_ZNSt10unique_ptrIN4llvh12MemoryBufferESt14default_deleteIS1_EED2Ev.exit, %if.then28, %while.end, %cleanup48, %if.then.i, %_ZN4llvh7ErrorOrISt10unique_ptrINS_12MemoryBufferESt14default_deleteIS2_EEEC2IS1_INS_20WritableMemoryBufferES3_IS8_EEEEONS0_IT_EEPNSt9enable_ifIXsr3std14is_convertibleISB_S5_EE5valueEvE4typeE.exit.thread, %if.then6 ret void } diff --git a/bench/image-rs/optimized/1njpscpjlgoe3i07.ll b/bench/image-rs/optimized/1njpscpjlgoe3i07.ll index 40c725712f5..0a14b6eebb7 100644 --- a/bench/image-rs/optimized/1njpscpjlgoe3i07.ll +++ b/bench/image-rs/optimized/1njpscpjlgoe3i07.ll @@ -22235,7 +22235,7 @@ default.unreachable7: ; preds = %3 br label %12 11: ; preds = %18, %20, %5 - %storemerge6 = phi i64 [ 0, %5 ], [ 0, %20 ], [ 1, %18 ] + %storemerge6 = phi i64 [ 0, %5 ], [ 0, %19 ], [ 1, %17 ] store i64 %storemerge6, ptr %0, align 8 ret void @@ -22290,7 +22290,7 @@ default.unreachable7: ; preds = %3 br label %12 11: ; preds = %18, %20, %5 - %storemerge6 = phi i64 [ 0, %5 ], [ 0, %20 ], [ 1, %18 ] + %storemerge6 = phi i64 [ 0, %5 ], [ 0, %19 ], [ 1, %17 ] store i64 %storemerge6, ptr %0, align 8 ret void diff --git a/bench/image-rs/optimized/244uszkx0e8t5ie1.ll b/bench/image-rs/optimized/244uszkx0e8t5ie1.ll index 06e7a6c344a..25ff685e805 100644 --- a/bench/image-rs/optimized/244uszkx0e8t5ie1.ll +++ b/bench/image-rs/optimized/244uszkx0e8t5ie1.ll @@ -7041,7 +7041,7 @@ define void @_ZN5image6codecs3ico7decoder10best_entry17hf2af43a31171e0ccE(ptr no %13 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr50drop_in_place$LT$image..error..ImageFormatHint$GT$17hb6ce94113d42d9faE.llvm.6960974148744716740"(ptr noalias noundef nonnull align 8 dereferenceable(32) %5) #35 - to label %.thread118 unwind label %14, !noalias !954 + to label %.thread119 unwind label %14, !noalias !954 14: ; preds = %12 %15 = landingpad { ptr, i32 } @@ -7056,7 +7056,7 @@ define void @_ZN5image6codecs3ico7decoder10best_entry17hf2af43a31171e0ccE(ptr no %19 = icmp ult i64 %17, %18 tail call void @llvm.assume(i1 %19) %20 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %21 = load ptr, ptr %20, align 8, !alias.scope !949, !noalias !952, !nonnull !7, !noundef !7 + %21 = load ptr, ptr %110, align 8, !alias.scope !949, !noalias !952, !nonnull !7, !noundef !7 %22 = getelementptr inbounds { i32, i32, i16, i16, i8, i8, i8, i8 }, ptr %21, i64 %17 %.sroa.452.4.copyload = load i8, ptr %22, align 4, !noalias !949 %.sroa.653.4..sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 1 @@ -7069,10 +7069,14 @@ define void @_ZN5image6codecs3ico7decoder10best_entry17hf2af43a31171e0ccE(ptr no %.sroa.653.sroa.6.0.copyload = load i8, ptr %.sroa.653.sroa.6.0..sroa.653.4..sroa_idx.sroa_idx, align 1, !noalias !949 %.sroa.653.sroa.7.0..sroa.653.4..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 14 %.sroa.653.sroa.7.0.copyload = load i16, ptr %.sroa.653.sroa.7.0..sroa.653.4..sroa_idx.sroa_idx, align 1, !noalias !949 + %.sroa.070.0.copyload = load i64, ptr %1, align 8 + %.sroa.471.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 + %.sroa.471.0.copyload = load ptr, ptr %.sroa.471.0..sroa_idx, align 8, !nonnull !7, !noundef !7 + %22 = getelementptr inbounds { i32, i32, i16, i16, i8, i8, i8, i8 }, ptr %.sroa.471.0.copyload, i64 %16 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) - store ptr %21, ptr %6, align 8 + store ptr %.sroa.471.0.copyload, ptr %6, align 8 %.sroa.466.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 8 - store i64 %18, ptr %.sroa.466.0..sroa_idx, align 8 + store i64 %.sroa.070.0.copyload, ptr %.sroa.466.0..sroa_idx, align 8 %.sroa.567.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 16 %.sroa.668.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 24 store ptr %22, ptr %.sroa.668.0..sroa_idx, align 8 @@ -7090,12 +7094,12 @@ define void @_ZN5image6codecs3ico7decoder10best_entry17hf2af43a31171e0ccE(ptr no br label %.lr.ph ._crit_edge: ; preds = %51, %16 - %.lcssa = phi ptr [ %21, %16 ], [ %22, %51 ] - %.sroa.10.sroa.0.0.lcssa = phi i16 [ %.sroa.653.sroa.7.0.copyload, %16 ], [ %.sroa.10.sroa.0.1, %51 ] - %.sroa.9.0.lcssa = phi i8 [ %.sroa.653.sroa.6.0.copyload, %16 ], [ %.sroa.9.1, %51 ] - %.sroa.8.0.lcssa = phi i8 [ %.sroa.653.sroa.5.0.copyload, %16 ], [ %.sroa.8.1, %51 ] - %.sroa.7.0.lcssa = phi i16 [ %.sroa.653.sroa.4.0.copyload, %16 ], [ %.sroa.7.1, %51 ] - %.sroa.0.0.lcssa = phi i8 [ %.sroa.452.4.copyload, %16 ], [ %.sroa.0.1, %51 ] + %.lcssa = phi ptr [ %.sroa.471.0.copyload, %15 ], [ %22, %51 ] + %.sroa.10.sroa.0.0.lcssa = phi i16 [ %.sroa.653.sroa.7.0.copyload, %15 ], [ %.sroa.10.sroa.0.1, %51 ] + %.sroa.9.0.lcssa = phi i8 [ %.sroa.653.sroa.6.0.copyload, %15 ], [ %.sroa.9.1, %51 ] + %.sroa.8.0.lcssa = phi i8 [ %.sroa.653.sroa.5.0.copyload, %15 ], [ %.sroa.8.1, %51 ] + %.sroa.7.0.lcssa = phi i16 [ %.sroa.653.sroa.4.0.copyload, %15 ], [ %.sroa.7.1, %51 ] + %.sroa.0.0.lcssa = phi i8 [ %.sroa.452.4.copyload, %15 ], [ %.sroa.0.1, %51 ] store ptr %.lcssa, ptr %.sroa.567.0..sroa_idx, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !963 store ptr %6, ptr %4, align 8, !noalias !963 @@ -7144,7 +7148,7 @@ define void @_ZN5image6codecs3ico7decoder10best_entry17hf2af43a31171e0ccE(ptr no %.sroa.10.sroa.0.0173 = phi i16 [ %.sroa.10.sroa.0.1, %51 ], [ %.sroa.653.sroa.7.0.copyload, %.lr.ph.preheader ] %.sroa.063.0172 = phi i16 [ %.sroa.063.1, %51 ], [ %.sroa.653.sroa.4.0.copyload, %.lr.ph.preheader ] %.sroa.564.0171 = phi i32 [ %.sroa.564.1, %51 ], [ %30, %.lr.ph.preheader ] - %38 = phi ptr [ %39, %51 ], [ %21, %.lr.ph.preheader ] + %38 = phi ptr [ %39, %51 ], [ %.sroa.471.0.copyload, %.lr.ph.preheader ] %39 = getelementptr inbounds nuw i8, ptr %38, i64 16 %.sroa.573.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %38, i64 10 %.sroa.573.sroa.5.0.copyload = load i16, ptr %.sroa.573.sroa.5.0..sroa_idx, align 2, !noalias !968 @@ -7221,7 +7225,7 @@ define void @_ZN5image6codecs3ico7decoder10best_entry17hf2af43a31171e0ccE(ptr no br label %37 .thread: ; preds = %32, %.thread118 - %.pn117 = phi { ptr, i32 } [ %13, %.thread118 ], [ %33, %32 ] + %.pn117 = phi { ptr, i32 } [ %13, %.thread119 ], [ %33, %32 ] resume { ptr, i32 } %.pn117 .thread118: ; preds = %12 diff --git a/bench/ipopt/optimized/IpTNLPReducer.ll b/bench/ipopt/optimized/IpTNLPReducer.ll index 56763104396..c963a3b9d1d 100644 --- a/bench/ipopt/optimized/IpTNLPReducer.ll +++ b/bench/ipopt/optimized/IpTNLPReducer.ll @@ -910,7 +910,7 @@ define noundef zeroext i1 @_ZN5Ipopt11TNLPReducer12get_nlp_infoERiS1_S1_S1_RNS_4 br label %57 45: ; preds = %.lr.ph52, %45 - %indvars.iv67 = phi i64 [ 0, %.lr.ph52 ], [ %indvars.iv.next68, %45 ] + %indvars.iv67 = phi i64 [ 0, %.lr.ph53 ], [ %indvars.iv.next68, %45 ] %46 = getelementptr inbounds nuw i32, ptr %32, i64 %indvars.iv67 %47 = load i32, ptr %46, align 4, !tbaa !29 %48 = add nsw i32 %47, -1 @@ -933,7 +933,7 @@ define noundef zeroext i1 @_ZN5Ipopt11TNLPReducer12get_nlp_infoERiS1_S1_S1_RNS_4 br label %64 57: ; preds = %.lr.ph54, %57 - %indvars.iv70 = phi i64 [ 0, %.lr.ph54 ], [ %indvars.iv.next71, %57 ] + %indvars.iv70 = phi i64 [ 0, %.lr.ph55 ], [ %indvars.iv.next71, %57 ] %58 = getelementptr inbounds nuw i32, ptr %44, i64 %indvars.iv70 %59 = load i32, ptr %58, align 4, !tbaa !29 %60 = add nsw i32 %59, -1 @@ -945,7 +945,7 @@ define noundef zeroext i1 @_ZN5Ipopt11TNLPReducer12get_nlp_infoERiS1_S1_S1_RNS_4 br i1 %63, label %57, label %.preheader, !llvm.loop !37 64: ; preds = %.lr.ph56, %64 - %indvars.iv73 = phi i64 [ 0, %.lr.ph56 ], [ %indvars.iv.next74, %64 ] + %indvars.iv73 = phi i64 [ 0, %.lr.ph57 ], [ %indvars.iv.next74, %64 ] %65 = getelementptr inbounds nuw i32, ptr %56, i64 %indvars.iv73 %66 = load i32, ptr %65, align 4, !tbaa !29 %67 = add nsw i32 %66, -1 @@ -992,9 +992,9 @@ define noundef zeroext i1 @_ZN5Ipopt11TNLPReducer12get_nlp_infoERiS1_S1_S1_RNS_4 br i1 %93, label %108, label %.thread 94: ; preds = %.lr.ph59, %105 - %indvars.iv76 = phi i64 [ 0, %.lr.ph59 ], [ %indvars.iv.next77, %105 ] - %.04157 = phi i32 [ 0, %.lr.ph59 ], [ %.142, %105 ] - %95 = phi i32 [ 0, %.lr.ph59 ], [ %106, %105 ] + %indvars.iv76 = phi i64 [ 0, %.lr.ph60 ], [ %indvars.iv.next77, %105 ] + %.04157 = phi i32 [ 0, %.lr.ph60 ], [ %.142, %105 ] + %95 = phi i32 [ 0, %.lr.ph60 ], [ %106, %105 ] %96 = sext i32 %.04157 to i64 %97 = getelementptr inbounds i32, ptr %80, i64 %96 %98 = load i32, ptr %97, align 4, !tbaa !29 @@ -1041,9 +1041,9 @@ define noundef zeroext i1 @_ZN5Ipopt11TNLPReducer12get_nlp_infoERiS1_S1_S1_RNS_4 br label %114 114: ; preds = %.lr.ph64, %126 - %indvars.iv79 = phi i64 [ 0, %.lr.ph64 ], [ %indvars.iv.next80, %126 ] - %115 = phi i32 [ 0, %.lr.ph64 ], [ %128, %126 ] - %116 = phi i32 [ 0, %.lr.ph64 ], [ %127, %126 ] + %indvars.iv79 = phi i64 [ 0, %.lr.ph65 ], [ %indvars.iv.next80, %126 ] + %115 = phi i32 [ 0, %.lr.ph65 ], [ %128, %126 ] + %116 = phi i32 [ 0, %.lr.ph65 ], [ %127, %126 ] %117 = getelementptr inbounds nuw i32, ptr %86, i64 %indvars.iv79 %118 = load i32, ptr %117, align 4, !tbaa !29 %119 = sext i32 %118 to i64 @@ -1076,7 +1076,7 @@ define noundef zeroext i1 @_ZN5Ipopt11TNLPReducer12get_nlp_infoERiS1_S1_S1_RNS_4 br label %129 129: ; preds = %._crit_edge65, %16 - %130 = phi i32 [ %.pre, %._crit_edge65 ], [ %18, %16 ] + %130 = phi i32 [ %.pre, %._crit_edge66 ], [ %18, %16 ] store i32 %130, ptr %2, align 4, !tbaa !29 %131 = getelementptr inbounds nuw i8, ptr %0, i64 68 %132 = load i32, ptr %131, align 4, !tbaa !42 diff --git a/bench/linux/optimized/e1000_hw.ll b/bench/linux/optimized/e1000_hw.ll index 49f6fc0cb5e..d62c564d03d 100644 --- a/bench/linux/optimized/e1000_hw.ll +++ b/bench/linux/optimized/e1000_hw.ll @@ -6488,12 +6488,11 @@ define dso_local void @e1000_get_bus_info(ptr noundef captures(none) initializes %30 = trunc i32 %12 to i16 %31 = getelementptr inbounds nuw i8, ptr %0, i64 68 %32 = lshr i16 %30, 14 - %33 = xor i16 %32, 2 - switch i16 %33, label %default.unreachable [ - i16 2, label %34 - i16 3, label %35 - i16 0, label %36 - i16 1, label %37 + switch i16 %32, label %default.unreachable [ + i16 0, label %33 + i16 1, label %34 + i16 2, label %35 + i16 3, label %36 ] 34: ; preds = %29 @@ -6522,7 +6521,7 @@ default.unreachable: ; preds = %29 br label %42 42: ; preds = %38, %6 - %43 = phi i32 [ %41, %38 ], [ 0, %6 ] + %43 = phi i32 [ %41, %37 ], [ 0, %6 ] %44 = getelementptr inbounds nuw i8, ptr %0, i64 72 store i32 %43, ptr %44, align 8 ret void diff --git a/bench/linux/optimized/initramfs.ll b/bench/linux/optimized/initramfs.ll index 41855d38560..69043e04dc1 100644 --- a/bench/linux/optimized/initramfs.ll +++ b/bench/linux/optimized/initramfs.ll @@ -917,14 +917,13 @@ define internal noundef i32 @do_name() #1 section ".init.text" align 16 { tail call fastcc void @clean_path(ptr noundef %2, i16 noundef zeroext %7) #23 %8 = load i16, ptr @mode, align 2 %9 = lshr i16 %8, 12 - %10 = xor i16 %9, 8 - switch i16 %10, label %68 [ - i16 0, label %11 - i16 12, label %35 - i16 14, label %47 - i16 10, label %47 - i16 9, label %47 - i16 4, label %47 + switch i16 %9, label %67 [ + i16 8, label %10 + i16 4, label %34 + i16 6, label %46 + i16 2, label %47 + i16 1, label %47 + i16 12, label %47 ] 11: ; preds = %6 diff --git a/bench/linux/optimized/intel_pps.ll b/bench/linux/optimized/intel_pps.ll index b0859dff3cd..b55256eccdf 100644 --- a/bench/linux/optimized/intel_pps.ll +++ b/bench/linux/optimized/intel_pps.ll @@ -3612,29 +3612,28 @@ define dso_local void @assert_pps_unlocked(ptr noundef %0, i32 noundef %1) local %33 = load ptr, ptr %32, align 8 %34 = tail call i32 %33(ptr noundef nonnull %31, i32 %30, i1 noundef zeroext true) #7 %35 = lshr i32 %34, 30 - %36 = xor i32 %35, 2 - switch i32 %36, label %default.unreachable5 [ - i32 2, label %37 - i32 3, label %39 - i32 0, label %41 - i32 1, label %43 + switch i32 %35, label %default.unreachable5 [ + i32 0, label %36 + i32 1, label %38 + i32 2, label %40 + i32 3, label %42 ] 37: ; preds = %26 %38 = call zeroext i1 @intel_lvds_port_enabled(ptr noundef %0, i32 921984, ptr noundef nonnull %3) #7 - br label %78 + br label %77 39: ; preds = %26 %40 = call zeroext i1 @g4x_dp_port_enabled(ptr noundef %0, i32 409600, i32 noundef 0, ptr noundef nonnull %3) #7 - br label %78 + br label %77 41: ; preds = %26 %42 = call zeroext i1 @g4x_dp_port_enabled(ptr noundef %0, i32 934400, i32 noundef 2, ptr noundef nonnull %3) #7 - br label %78 + br label %77 43: ; preds = %26 %44 = call zeroext i1 @g4x_dp_port_enabled(ptr noundef %0, i32 934656, i32 noundef 3, ptr noundef nonnull %3) #7 - br label %78 + br label %77 default.unreachable5: ; preds = %26 unreachable @@ -3646,76 +3645,76 @@ default.unreachable5: ; preds = %26 %49 = icmp eq i32 %48, 0 %50 = getelementptr inbounds nuw i8, ptr %0, i64 3280 %51 = load i32, ptr %50, align 8 - br i1 %49, label %56, label %52 + br i1 %49, label %55, label %52 52: ; preds = %45 %53 = shl i32 %1, 8 %54 = or disjoint i32 %53, 4 %55 = add i32 %54, %51 store i32 %1, ptr %3, align 4 - br label %78 + br label %77 + +55: ; preds = %44 + %56 = add i32 %50, 4 + %57 = add i32 %50, 8 + %58 = getelementptr inbounds nuw i8, ptr %0, i64 7368 + %59 = getelementptr inbounds nuw i8, ptr %0, i64 7512 + %60 = load ptr, ptr %59, align 8 + %61 = tail call i32 %60(ptr noundef nonnull %58, i32 %57, i1 noundef zeroext true) #7 + %62 = icmp ult i32 %61, 1073741824 + br i1 %62, label %75, label %63, !prof !11 + +63: ; preds = %55 + tail call void asm sideeffect "1069: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 1069b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 1069) #7, !srcloc !127 + %64 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %65 = load ptr, ptr %64, align 8 + %66 = tail call ptr @dev_driver_string(ptr noundef %65) #7 + %67 = load ptr, ptr %64, align 8 + %68 = getelementptr inbounds nuw i8, ptr %67, i64 80 + %69 = load ptr, ptr %68, align 8 + %70 = icmp eq ptr %69, null + br i1 %70, label %71, label %73 -56: ; preds = %45 - %57 = add i32 %51, 4 - %58 = add i32 %51, 8 - %59 = getelementptr inbounds nuw i8, ptr %0, i64 7368 - %60 = getelementptr inbounds nuw i8, ptr %0, i64 7512 - %61 = load ptr, ptr %60, align 8 - %62 = tail call i32 %61(ptr noundef nonnull %59, i32 %58, i1 noundef zeroext true) #7 - %63 = icmp ult i32 %62, 1073741824 - br i1 %63, label %76, label %64, !prof !11 +56: ; preds = %63 + %72 = load ptr, ptr %67, align 8 + br label %73 -64: ; preds = %56 - tail call void asm sideeffect "1069: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 1069b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 1069) #7, !srcloc !127 - %65 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %66 = load ptr, ptr %65, align 8 - %67 = tail call ptr @dev_driver_string(ptr noundef %66) #7 - %68 = load ptr, ptr %65, align 8 - %69 = getelementptr inbounds nuw i8, ptr %68, i64 80 - %70 = load ptr, ptr %69, align 8 - %71 = icmp eq ptr %70, null - br i1 %71, label %72, label %74 - -72: ; preds = %64 - %73 = load ptr, ptr %68, align 8 - br label %74 - -74: ; preds = %72, %64 - %75 = phi ptr [ %73, %72 ], [ %70, %64 ] - tail call void (ptr, ...) @__warn_printk(ptr noundef nonnull @.str, ptr noundef %67, ptr noundef %75, ptr noundef nonnull @.str.24) #7 +64: ; preds = %56, %63 + %74 = phi ptr [ %72, %71 ], [ %69, %63 ] + tail call void (ptr, ...) @__warn_printk(ptr noundef nonnull @.str, ptr noundef %66, ptr noundef %74, ptr noundef nonnull @.str.24) #7 tail call void asm sideeffect "1070: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 1070b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 1070) #7, !srcloc !128 tail call void asm sideeffect "1:\09.byte 0x0f, 0x0b\0A.pushsection __bug_table,\22aw\22\0A2:\09.long 1b - .\09# bug_entry::bug_addr\0A\09.long ${0:c} - .\09# bug_entry::file\0A\09.word ${1:c}\09# bug_entry::line\0A\09.word ${2:c}\09# bug_entry::flags\0A\09.org 2b+${3:c}\0A.popsection\0A998:\0A\09.pushsection .discard.reachable\0A\09.long 998b\0A\09.popsection\0A\09", "i,i,i,i,~{dirflag},~{fpsr},~{flags}"(ptr nonnull @.str.2, i32 1718, i32 2313, i64 12) #7, !srcloc !129 tail call void asm sideeffect "1071: nop\0A\09.pushsection .discard.instr_end\0A\09.long 1071b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 1071) #7, !srcloc !130 tail call void asm sideeffect "1072: nop\0A\09.pushsection .discard.instr_end\0A\09.long 1072b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 1072) #7, !srcloc !131 br label %76 -76: ; preds = %74, %56 +76: ; preds = %73, %55 %77 = call zeroext i1 @intel_lvds_port_enabled(ptr noundef %0, i32 397696, ptr noundef nonnull %3) #7 - br label %78 - -78: ; preds = %76, %52, %43, %41, %39, %37 - %79 = phi i32 [ %55, %52 ], [ %57, %76 ], [ %29, %43 ], [ %29, %41 ], [ %29, %39 ], [ %29, %37 ] - %80 = getelementptr inbounds nuw i8, ptr %0, i64 7368 - %81 = getelementptr inbounds nuw i8, ptr %0, i64 7512 - %82 = load ptr, ptr %81, align 8 - %83 = call i32 %82(ptr noundef nonnull %80, i32 %79, i1 noundef zeroext true) #7 - %84 = and i32 %83, 1 - %85 = icmp ne i32 %84, 0 - %86 = and i32 %83, -65536 - %87 = icmp ne i32 %86, -1412628480 - %88 = and i1 %85, %87 - %89 = load i32, ptr %3, align 4 - %90 = icmp eq i32 %89, %1 - %91 = and i1 %90, %88 - br i1 %91, label %92, label %117, !prof !5 - -92: ; preds = %78 - %93 = getelementptr inbounds nuw i8, ptr %0, i64 6795 - %94 = load i8, ptr %93, align 1, !range !36, !noundef !37 - %95 = icmp eq i8 %94, 0 - br i1 %95, label %109, label %96, !prof !11 + br label %77 -96: ; preds = %92 +96: ; preds = %75, %51, %42, %40, %38, %36 + %78 = phi i32 [ %54, %51 ], [ %56, %75 ], [ %29, %42 ], [ %29, %40 ], [ %29, %38 ], [ %29, %36 ] + %79 = getelementptr inbounds nuw i8, ptr %0, i64 7368 + %80 = getelementptr inbounds nuw i8, ptr %0, i64 7512 + %81 = load ptr, ptr %80, align 8 + %82 = call i32 %81(ptr noundef nonnull %79, i32 %78, i1 noundef zeroext true) #7 + %83 = and i32 %82, 1 + %84 = icmp ne i32 %83, 0 + %85 = and i32 %82, -65536 + %86 = icmp ne i32 %85, -1412628480 + %87 = and i1 %84, %86 + %88 = load i32, ptr %3, align 4 + %89 = icmp eq i32 %88, %1 + %90 = and i1 %89, %87 + br i1 %90, label %91, label %116, !prof !5 + +91: ; preds = %77 + %92 = getelementptr inbounds nuw i8, ptr %0, i64 6795 + %93 = load i8, ptr %92, align 1, !range !36, !noundef !37 + %94 = icmp eq i8 %93, 0 + br i1 %94, label %108, label %95, !prof !11 + +95: ; preds = %91 call void asm sideeffect "1073: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 1073b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 1073) #7, !srcloc !132 %97 = getelementptr inbounds nuw i8, ptr %0, i64 8 %98 = load ptr, ptr %97, align 8 @@ -3726,12 +3725,12 @@ default.unreachable5: ; preds = %26 %103 = icmp eq ptr %102, null br i1 %103, label %104, label %106 -104: ; preds = %96 +104: ; preds = %95 %105 = load ptr, ptr %100, align 8 br label %106 -106: ; preds = %104, %96 - %107 = phi ptr [ %105, %104 ], [ %102, %96 ] +106: ; preds = %104, %95 + %107 = phi ptr [ %105, %103 ], [ %102, %95 ] %108 = add i32 %1, 65 call void (ptr, ...) @__warn_printk(ptr noundef nonnull @.str.25, ptr noundef %99, ptr noundef %107, i32 noundef %108) #7 call void asm sideeffect "1074: nop\0A\09.pushsection .discard.instr_begin\0A\09.long 1074b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 1074) #7, !srcloc !133 @@ -3740,7 +3739,7 @@ default.unreachable5: ; preds = %26 call void asm sideeffect "1076: nop\0A\09.pushsection .discard.instr_end\0A\09.long 1076b - .\0A\09.popsection\0A\09", "i,~{dirflag},~{fpsr},~{flags}"(i32 1076) #7, !srcloc !136 br label %117 -109: ; preds = %92 +109: ; preds = %91 %110 = icmp eq ptr %0, null br i1 %110, label %114, label %111 @@ -3750,12 +3749,12 @@ default.unreachable5: ; preds = %26 br label %114 114: ; preds = %111, %109 - %115 = phi ptr [ %113, %111 ], [ null, %109 ] + %115 = phi ptr [ %113, %110 ], [ null, %108 ] %116 = add i32 %1, 65 call void (ptr, ptr, ...) @_dev_err(ptr noundef %115, ptr noundef nonnull @.str.26, i32 noundef %116) #8 br label %117 -117: ; preds = %114, %106, %78, %20 +117: ; preds = %114, %106, %77, %20 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #7 ret void } diff --git a/bench/linux/optimized/x_tables.ll b/bench/linux/optimized/x_tables.ll index 31a60aef907..2ee13cce34f 100644 --- a/bench/linux/optimized/x_tables.ll +++ b/bench/linux/optimized/x_tables.ll @@ -1510,15 +1510,11 @@ define dso_local noundef range(i32 -22, 1) i32 @xt_check_entry_offsets(ptr nound br i1 %35, label %36, label %.loopexit 36: ; preds = %34 - %37 = icmp eq i32 %32, -5 - br i1 %37, label %49, label %38 - -38: ; preds = %36 - %39 = xor i32 %32, -1 - switch i32 %39, label %.loopexit [ - i32 1, label %49 - i32 0, label %49 - i32 3, label %49 + switch i32 %32, label %.loopexit [ + i32 -5, label %49 + i32 -2, label %46 + i32 -1, label %46 + i32 -4, label %46 ] 40: ; preds = %22 @@ -1536,42 +1532,42 @@ define dso_local noundef range(i32 -22, 1) i32 @xt_check_entry_offsets(ptr nound %48 = icmp ult i64 %47, 30 br i1 %48, label %49, label %.loopexit -49: ; preds = %45, %40, %38, %38, %38, %36, %30 +49: ; preds = %36, %36, %36, %36, %42, %37, %30 %50 = ptrtoint ptr %15 to i64 %51 = sub i64 %50, %5 %52 = trunc i64 %51 to i32 %53 = icmp eq i32 %52, 0 br i1 %53, label %.loopexit, label %.preheader -.preheader: ; preds = %49, %67 - %54 = phi ptr [ %70, %67 ], [ %1, %49 ] - %55 = phi i32 [ %68, %67 ], [ %52, %49 ] +.preheader: ; preds = %49, %64 + %54 = phi ptr [ %67, %64 ], [ %1, %46 ] + %55 = phi i32 [ %65, %64 ], [ %52, %46 ] %56 = ptrtoint ptr %54 to i64 %57 = and i64 %56, 7 %58 = icmp ne i64 %57, 0 %59 = icmp slt i32 %55, 32 %60 = or i1 %59, %58 + br i1 %57, label %.loopexit, label %58 + +58: ; preds = %.preheader + %59 = load i16, ptr %51, align 8 + %60 = icmp ult i16 %59, 32 br i1 %60, label %.loopexit, label %61 -61: ; preds = %.preheader - %62 = load i16, ptr %54, align 8 - %63 = icmp ult i16 %62, 32 +61: ; preds = %58 + %62 = zext i16 %59 to i32 + %63 = icmp samesign ult i32 %52, %62 br i1 %63, label %.loopexit, label %64 64: ; preds = %61 - %65 = zext i16 %62 to i32 - %66 = icmp samesign ult i32 %55, %65 - br i1 %66, label %.loopexit, label %67 - -67: ; preds = %64 - %68 = sub nuw nsw i32 %55, %65 - %69 = zext i16 %62 to i64 - %70 = getelementptr i8, ptr %54, i64 %69 - %.not = icmp eq i32 %68, 0 + %65 = sub nuw nsw i32 %52, %62 + %66 = zext i16 %59 to i64 + %67 = getelementptr i8, ptr %51, i64 %66 + %.not = icmp eq i32 %65, 0 br i1 %.not, label %.loopexit, label %.preheader, !llvm.loop !28 -.loopexit: ; preds = %67, %64, %61, %.preheader, %49, %45, %43, %38, %34, %26, %14, %10, %4 - %71 = phi i32 [ -22, %45 ], [ -22, %4 ], [ -22, %10 ], [ -22, %14 ], [ -22, %26 ], [ -22, %34 ], [ 0, %49 ], [ -22, %43 ], [ -22, %38 ], [ 0, %67 ], [ -22, %64 ], [ -22, %61 ], [ -22, %.preheader ] +.loopexit: ; preds = %64, %61, %58, %.preheader, %36, %46, %42, %40, %34, %26, %14, %10, %4 + %71 = phi i32 [ -22, %42 ], [ -22, %4 ], [ -22, %10 ], [ -22, %14 ], [ -22, %26 ], [ -22, %34 ], [ 0, %46 ], [ -22, %40 ], [ -22, %36 ], [ 0, %64 ], [ -22, %61 ], [ -22, %58 ], [ -22, %.preheader ] ret i32 %71 } diff --git a/bench/llvm/optimized/AArch64ISelLowering.ll b/bench/llvm/optimized/AArch64ISelLowering.ll index bb0b1a94e09..cf68eeaa9d5 100644 --- a/bench/llvm/optimized/AArch64ISelLowering.ll +++ b/bench/llvm/optimized/AArch64ISelLowering.ll @@ -1780,7 +1780,7 @@ $_ZTVN4llvm2cl11OptionValueIjEE = comdat any @switch.table._ZL17IsSVECntIntrinsicN4llvm7SDValueE = private unnamed_addr constant [9 x i64] [i64 8, i64 64, i64 16, i64 0, i64 0, i64 0, i64 0, i64 0, i64 32], align 8 @switch.table._ZL17IsSVECntIntrinsicN4llvm7SDValueE.216 = private unnamed_addr constant [9 x i64] [i64 4294967296, i64 4294967296, i64 4294967296, i64 0, i64 0, i64 0, i64 0, i64 0, i64 4294967296], align 8 @switch.table._ZL18emitConjunctionRecRN4llvm12SelectionDAGENS_7SDValueERNS_9AArch64CC8CondCodeEbS2_S4_ = private unnamed_addr constant [13 x i32] [i32 8, i32 2, i32 3, i32 9, i32 poison, i32 poison, i32 poison, i32 0, i32 12, i32 10, i32 11, i32 13, i32 1], align 4 -@switch.table._ZL25emitConditionalComparisonN4llvm7SDValueES0_NS_3ISD8CondCodeES0_NS_9AArch64CC8CondCodeES4_RKNS_5SDLocERNS_12SelectionDAGE = private unnamed_addr constant [14 x i64] [i64 4, i64 0, i64 2, i64 0, i64 8, i64 0, i64 1, i64 0, i64 2, i64 0, i64 0, i64 8, i64 0, i64 4], align 8 +@switch.table._ZL25emitConditionalComparisonN4llvm7SDValueES0_NS_3ISD8CondCodeES0_NS_9AArch64CC8CondCodeES4_RKNS_5SDLocERNS_12SelectionDAGE = private unnamed_addr constant [14 x i64] [i64 0, i64 4, i64 0, i64 2, i64 0, i64 8, i64 0, i64 1, i64 0, i64 2, i64 8, i64 0, i64 4, i64 0], align 8 @switch.table._ZN4llvm9AArch64CCL24getNZCVToSatisfyCondCodeENS0_8CondCodeE = private unnamed_addr constant [14 x i32] [i32 4, i32 0, i32 2, i32 0, i32 8, i32 0, i32 1, i32 0, i32 2, i32 0, i32 0, i32 8, i32 0, i32 4], align 4 @switch.table._ZL32isConstantSplatVectorMaskForTypePN4llvm6SDNodeENS_3EVTE = private unnamed_addr constant [3 x i64] [i64 255, i64 65535, i64 4294967295], align 8 @switch.table._ZL22combineSVEReductionIntPN4llvm6SDNodeEjRNS_12SelectionDAGE = private unnamed_addr constant [9 x i16] [i16 149, i16 155, i16 160, i16 165, i16 poison, i16 179, i16 173, i16 184, i16 188], align 2 @@ -164487,9 +164487,8 @@ _ZN4llvm5APIntD2Ev.exit: ; preds = %_ZNK4llvm5APInt12ge %124 = phi i32 [ 587, %120 ], [ 587, %107 ], [ 588, %_ZNK4llvm3EVTeqES0_.exit84 ], [ 588, %_ZNK4llvm3EVTeqES0_.exit ], [ 586, %119 ], [ 586, %115 ], [ 586, %111 ], [ 588, %38 ], [ %spec.select169, %123 ], [ 588, %35 ] %125 = zext i32 %6 to i64 %126 = call { ptr, i32 } @_ZN4llvm12SelectionDAG11getConstantEmRKNS_5SDLocENS_3EVTEbb(ptr noundef nonnull align 8 dereferenceable(952) %9, i64 noundef %125, ptr noundef nonnull align 8 dereferenceable(12) %8, i16 7, ptr null, i1 noundef zeroext false, i1 noundef zeroext false) #35 - %127 = xor i32 %7, 1 - %128 = sext i32 %127 to i64 - %switch.gep = getelementptr inbounds [14 x i64], ptr @switch.table._ZL25emitConditionalComparisonN4llvm7SDValueES0_NS_3ISD8CondCodeES0_NS_9AArch64CC8CondCodeES4_RKNS_5SDLocERNS_12SelectionDAGE, i64 0, i64 %128 + %127 = sext i32 %7 to i64 + %switch.gep = getelementptr inbounds [14 x i64], ptr @switch.table._ZL25emitConditionalComparisonN4llvm7SDValueES0_NS_3ISD8CondCodeES0_NS_9AArch64CC8CondCodeES4_RKNS_5SDLocERNS_12SelectionDAGE, i64 0, i64 %127 %switch.load = load i64, ptr %switch.gep, align 8 %.fca.1.extract10 = extractvalue { ptr, i32 } %126, 1 %.fca.0.extract9 = extractvalue { ptr, i32 } %126, 0 diff --git a/bench/llvm/optimized/AArch64InstructionSelector.ll b/bench/llvm/optimized/AArch64InstructionSelector.ll index d115b0bcd7e..78690f800a9 100644 --- a/bench/llvm/optimized/AArch64InstructionSelector.ll +++ b/bench/llvm/optimized/AArch64InstructionSelector.ll @@ -326,7 +326,7 @@ $_ZZN4llvm14isStrongerThanENS_14AtomicOrderingES0_E6lookup = comdat any @switch.table._ZN12_GLOBAL__N_126AArch64InstructionSelector19selectUnmergeValuesERN4llvm12MachineInstrERNS1_19MachineRegisterInfoE = private unnamed_addr constant [8 x i32] [i32 256, i32 2304, i32 poison, i32 4608, i32 poison, i32 poison, i32 poison, i32 768], align 4 @switch.table._ZN12_GLOBAL__N_126AArch64InstructionSelector19selectUnmergeValuesERN4llvm12MachineInstrERNS1_19MachineRegisterInfoE.410 = private unnamed_addr constant [8 x i64] [i64 -2432, i64 -2429, i64 poison, i64 -2430, i64 poison, i64 poison, i64 poison, i64 -2431], align 8 @switch.table._ZNK12_GLOBAL__N_126AArch64InstructionSelector18emitConjunctionRecEN4llvm8RegisterERNS1_9AArch64CC8CondCodeEbS2_S4_RNS1_16MachineIRBuilderE = private unnamed_addr constant [10 x i32] [i32 0, i32 1, i32 8, i32 2, i32 3, i32 9, i32 12, i32 10, i32 11, i32 13], align 4 -@switch.table._ZNK12_GLOBAL__N_126AArch64InstructionSelector25emitConditionalComparisonEN4llvm8RegisterES2_NS1_7CmpInst9PredicateENS1_9AArch64CC8CondCodeES6_RNS1_16MachineIRBuilderE = private unnamed_addr constant [14 x i64] [i64 4, i64 0, i64 2, i64 0, i64 8, i64 0, i64 1, i64 0, i64 2, i64 0, i64 0, i64 8, i64 0, i64 4], align 8 +@switch.table._ZNK12_GLOBAL__N_126AArch64InstructionSelector25emitConditionalComparisonEN4llvm8RegisterES2_NS1_7CmpInst9PredicateENS1_9AArch64CC8CondCodeES6_RNS1_16MachineIRBuilderE = private unnamed_addr constant [14 x i64] [i64 0, i64 4, i64 0, i64 2, i64 0, i64 8, i64 0, i64 1, i64 0, i64 2, i64 8, i64 0, i64 4, i64 0], align 8 ; Function Attrs: mustprogress nounwind uwtable define dso_local noundef nonnull ptr @_ZN4llvm32createAArch64InstructionSelectorERKNS_20AArch64TargetMachineERKNS_16AArch64SubtargetERKNS_23AArch64RegisterBankInfoE(ptr noundef nonnull align 8 dereferenceable(1297) %0, ptr noundef nonnull align 8 dereferenceable(413888) %1, ptr noundef nonnull align 8 dereferenceable(168) %2) local_unnamed_addr #0 { @@ -48791,7 +48791,7 @@ _ZNK4llvm3LLT13getSizeInBitsEv.exit92: ; preds = %199, %201 store i8 %.sroa.3.0.i86, ptr %.sroa.28.0..sroa_idx, align 8 %209 = call noundef i64 @_ZNK4llvm8TypeSizecvmEv(ptr noundef nonnull align 8 dereferenceable(9) %18) #25 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %18) #25 - switch i64 %209, label %259 [ + switch i64 %209, label %258 [ i64 16, label %switch.lookup i64 32, label %210 i64 64, label %211 @@ -48803,11 +48803,10 @@ _ZNK4llvm3LLT13getSizeInBitsEv.exit92: ; preds = %199, %201 211: ; preds = %_ZNK4llvm3LLT13getSizeInBitsEv.exit92 br label %switch.lookup -switch.lookup: ; preds = %_ZNK4llvm3LLT13getSizeInBitsEv.exit92, %210, %211, %_ZNK4llvm3LLT13getSizeInBitsEv.exit, %_ZNK4llvm3LLT13getSizeInBitsEv.exit77, %_ZNK4llvm3LLT13getSizeInBitsEv.exit62 +switch.lookup: ; preds = %_ZNK4llvm3LLT13getSizeInBitsEv.exit62, %_ZNK4llvm3LLT13getSizeInBitsEv.exit77, %_ZNK4llvm3LLT13getSizeInBitsEv.exit, %211, %210, %_ZNK4llvm3LLT13getSizeInBitsEv.exit92 %.040 = phi i32 [ %148, %_ZNK4llvm3LLT13getSizeInBitsEv.exit ], [ %172, %_ZNK4llvm3LLT13getSizeInBitsEv.exit62 ], [ %191, %_ZNK4llvm3LLT13getSizeInBitsEv.exit77 ], [ 2648, %210 ], [ 2643, %211 ], [ 2647, %_ZNK4llvm3LLT13getSizeInBitsEv.exit92 ] - %212 = xor i32 %5, 1 - %213 = sext i32 %212 to i64 - %switch.gep = getelementptr inbounds [14 x i64], ptr @switch.table._ZNK12_GLOBAL__N_126AArch64InstructionSelector25emitConditionalComparisonEN4llvm8RegisterES2_NS1_7CmpInst9PredicateENS1_9AArch64CC8CondCodeES6_RNS1_16MachineIRBuilderE, i64 0, i64 %213 + %212 = sext i32 %5 to i64 + %switch.gep = getelementptr inbounds [14 x i64], ptr @switch.table._ZNK12_GLOBAL__N_126AArch64InstructionSelector25emitConditionalComparisonEN4llvm8RegisterES2_NS1_7CmpInst9PredicateENS1_9AArch64CC8CondCodeES6_RNS1_16MachineIRBuilderE, i64 0, i64 %212 %switch.load = load i64, ptr %switch.gep, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %19) #25 store i32 %1, ptr %19, align 8, !tbaa !299 @@ -48816,12 +48815,12 @@ switch.lookup: ; preds = %_ZNK4llvm3LLT13getS %215 = load ptr, ptr %6, align 8, !tbaa !3 %216 = getelementptr inbounds nuw i8, ptr %215, i64 32 %217 = load ptr, ptr %216, align 8 - %218 = call { ptr, ptr } %217(ptr noundef nonnull align 8 dereferenceable(88) %6, i32 noundef %.040, ptr null, i64 0, ptr nonnull %19, i64 1, i64 0) #25 + %218 = call { ptr, ptr } %216(ptr noundef nonnull align 8 dereferenceable(88) %6, i32 noundef %.040, ptr null, i64 0, ptr nonnull %19, i64 1, i64 0) #25 %219 = extractvalue { ptr, ptr } %218, 0 %220 = extractvalue { ptr, ptr } %218, 1 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) #25 %221 = and i32 %.040, 4093 - switch i32 %221, label %242 [ + switch i32 %221, label %241 [ i32 1965, label %222 i32 1961, label %229 ] @@ -48915,22 +48914,22 @@ _ZN4llvm5APIntD2Ev.exit: ; preds = %229, %238, %241 %256 = getelementptr inbounds nuw i8, ptr %0, i64 112 %257 = load ptr, ptr %256, align 8, !tbaa !542 %258 = call noundef zeroext i1 @_ZN4llvm32constrainSelectedInstRegOperandsERNS_12MachineInstrERKNS_15TargetInstrInfoERKNS_18TargetRegisterInfoERKNS_16RegisterBankInfoE(ptr noundef nonnull align 8 dereferenceable(70) %220, ptr noundef nonnull align 8 dereferenceable(80) %253, ptr noundef nonnull align 8 dereferenceable(308) %255, ptr noundef nonnull align 8 dereferenceable(160) %257) #25 - br label %259 + br label %258 -259: ; preds = %_ZNK4llvm3LLT13getSizeInBitsEv.exit92, %246 - %.0 = phi ptr [ %220, %246 ], [ null, %_ZNK4llvm3LLT13getSizeInBitsEv.exit92 ] - %260 = load i8, ptr %35, align 8, !tbaa !561, !range !225, !noundef !226 - %261 = trunc nuw i8 %260 to i1 - br i1 %261, label %262, label %_ZNSt14_Optional_baseIN4llvm12ValueAndVRegELb0ELb0EED2Ev.exit96 +258: ; preds = %_ZNK4llvm3LLT13getSizeInBitsEv.exit92, %245 + %.0 = phi ptr [ %219, %245 ], [ null, %_ZNK4llvm3LLT13getSizeInBitsEv.exit92 ] + %259 = load i8, ptr %35, align 8, !tbaa !561, !range !225, !noundef !226 + %260 = trunc nuw i8 %259 to i1 + br i1 %260, label %261, label %_ZNSt14_Optional_baseIN4llvm12ValueAndVRegELb0ELb0EED2Ev.exit96 -262: ; preds = %259 +259: ; preds = %258 store i8 0, ptr %35, align 8, !tbaa !561 %263 = getelementptr inbounds nuw i8, ptr %13, i64 8 %264 = load i32, ptr %263, align 8, !tbaa !524 %265 = icmp ugt i32 %264, 64 br i1 %265, label %266, label %_ZNSt14_Optional_baseIN4llvm12ValueAndVRegELb0ELb0EED2Ev.exit96 -266: ; preds = %262 +266: ; preds = %261 %267 = load ptr, ptr %13, align 8, !tbaa !296 %268 = icmp eq ptr %267, null br i1 %268, label %_ZNSt14_Optional_baseIN4llvm12ValueAndVRegELb0ELb0EED2Ev.exit96, label %269 @@ -48939,7 +48938,7 @@ _ZN4llvm5APIntD2Ev.exit: ; preds = %229, %238, %241 call void @_ZdaPv(ptr noundef nonnull %267) #26 br label %_ZNSt14_Optional_baseIN4llvm12ValueAndVRegELb0ELb0EED2Ev.exit96 -_ZNSt14_Optional_baseIN4llvm12ValueAndVRegELb0ELb0EED2Ev.exit96: ; preds = %259, %262, %266, %269 +_ZNSt14_Optional_baseIN4llvm12ValueAndVRegELb0ELb0EED2Ev.exit96: ; preds = %258, %261, %266, %269 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %13) #25 ret ptr %.0 } diff --git a/bench/llvm/optimized/ELFObjectFile.ll b/bench/llvm/optimized/ELFObjectFile.ll index a14ed0671d4..f2c960ea455 100644 --- a/bench/llvm/optimized/ELFObjectFile.ll +++ b/bench/llvm/optimized/ELFObjectFile.ll @@ -1818,74 +1818,73 @@ define dso_local void @_ZNK4llvm6object17ELFObjectFileBase15getMIPSFeaturesEv(pt %5 = load ptr, ptr %4, align 8 %6 = tail call noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(48) %1) #20 %7 = lshr i32 %6, 28 - %8 = xor i32 %7, 8 - switch i32 %8, label %19 [ - i32 8, label %20 - i32 9, label %9 - i32 10, label %10 - i32 11, label %11 - i32 12, label %12 - i32 13, label %13 - i32 14, label %14 - i32 15, label %15 - i32 0, label %16 - i32 1, label %17 - i32 2, label %18 + switch i32 %7, label %18 [ + i32 0, label %19 + i32 1, label %8 + i32 2, label %9 + i32 3, label %10 + i32 4, label %11 + i32 5, label %12 + i32 6, label %13 + i32 7, label %14 + i32 8, label %15 + i32 10, label %16 + i32 10, label %17 ] 9: ; preds = %2 tail call void @_ZN4llvm17SubtargetFeatures10AddFeatureENS_9StringRefEb(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull @.str.30, i64 5, i1 noundef zeroext true) #20 - br label %20 + br label %110 10: ; preds = %2 tail call void @_ZN4llvm17SubtargetFeatures10AddFeatureENS_9StringRefEb(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull @.str.31, i64 5, i1 noundef zeroext true) #20 - br label %20 + br label %110 11: ; preds = %2 tail call void @_ZN4llvm17SubtargetFeatures10AddFeatureENS_9StringRefEb(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull @.str.32, i64 5, i1 noundef zeroext true) #20 - br label %20 + br label %110 12: ; preds = %2 tail call void @_ZN4llvm17SubtargetFeatures10AddFeatureENS_9StringRefEb(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull @.str.33, i64 5, i1 noundef zeroext true) #20 - br label %20 + br label %110 13: ; preds = %2 tail call void @_ZN4llvm17SubtargetFeatures10AddFeatureENS_9StringRefEb(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull @.str.34, i64 6, i1 noundef zeroext true) #20 - br label %20 + br label %110 14: ; preds = %2 tail call void @_ZN4llvm17SubtargetFeatures10AddFeatureENS_9StringRefEb(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull @.str.35, i64 6, i1 noundef zeroext true) #20 - br label %20 + br label %110 15: ; preds = %2 tail call void @_ZN4llvm17SubtargetFeatures10AddFeatureENS_9StringRefEb(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull @.str.36, i64 8, i1 noundef zeroext true) #20 - br label %20 + br label %110 16: ; preds = %2 tail call void @_ZN4llvm17SubtargetFeatures10AddFeatureENS_9StringRefEb(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull @.str.37, i64 8, i1 noundef zeroext true) #20 - br label %20 + br label %110 17: ; preds = %2 tail call void @_ZN4llvm17SubtargetFeatures10AddFeatureENS_9StringRefEb(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull @.str.38, i64 8, i1 noundef zeroext true) #20 - br label %20 + br label %110 18: ; preds = %2 tail call void @_ZN4llvm17SubtargetFeatures10AddFeatureENS_9StringRefEb(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull @.str.39, i64 8, i1 noundef zeroext true) #20 - br label %20 + br label %110 19: ; preds = %2 unreachable -20: ; preds = %18, %17, %16, %15, %14, %13, %12, %11, %10, %9, %2 +110: ; preds = %17, %16, %15, %14, %13, %12, %11, %10, %9, %8, %2 %21 = and i32 %6, 16711680 %switch = icmp eq i32 %21, 0 br i1 %switch, label %23, label %22 -22: ; preds = %20 +22: ; preds = %110 tail call void @_ZN4llvm17SubtargetFeatures10AddFeatureENS_9StringRefEb(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr nonnull @.str.40, i64 6, i1 noundef zeroext true) #20 br label %23 -23: ; preds = %20, %22 +23: ; preds = %110, %22 %24 = and i32 %6, 67108864 %.not = icmp eq i32 %24, 0 br i1 %.not, label %26, label %25 diff --git a/bench/luau/optimized/Normalize.ll b/bench/luau/optimized/Normalize.ll index b930ee80d04..7f3eaa89bb1 100644 --- a/bench/luau/optimized/Normalize.ll +++ b/bench/luau/optimized/Normalize.ll @@ -18100,8 +18100,8 @@ _ZNSt6vectorIPKN4Luau4TypeESaIS3_EE9push_backERKS3_.exit: ; preds = %34, %_ZNSt6 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #32 br i1 %56, label %24, label %.thread7, !llvm.loop !380 -.thread7: ; preds = %_ZNSt6vectorIPKN4Luau4TypeESaIS3_EE9push_backERKS3_.exit, %18, %10, %15, %5 - %.2 = phi i1 [ true, %5 ], [ false, %15 ], [ false, %10 ], [ true, %18 ], [ true, %_ZNSt6vectorIPKN4Luau4TypeESaIS3_EE9push_backERKS3_.exit ] +.thread7: ; preds = %_ZNSt6vectorIPKN4Luau4TypeESaIS3_EE9push_backERKS3_.exit, %18, %5, %10, %15 + %.2 = phi i1 [ false, %15 ], [ false, %10 ], [ true, %5 ], [ true, %18 ], [ true, %_ZNSt6vectorIPKN4Luau4TypeESaIS3_EE9push_backERKS3_.exit ] ret i1 %.2 } @@ -27751,8 +27751,8 @@ _ZNSt6vectorIPKN4Luau4TypeESaIS3_EE9push_backERKS3_.exit: ; preds = %34, %_ZNSt6 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) #32 br i1 %56, label %24, label %.thread7, !llvm.loop !450 -.thread7: ; preds = %_ZNSt6vectorIPKN4Luau4TypeESaIS3_EE9push_backERKS3_.exit, %18, %10, %15, %5 - %.2 = phi i1 [ true, %5 ], [ false, %15 ], [ false, %10 ], [ true, %18 ], [ true, %_ZNSt6vectorIPKN4Luau4TypeESaIS3_EE9push_backERKS3_.exit ] +.thread7: ; preds = %_ZNSt6vectorIPKN4Luau4TypeESaIS3_EE9push_backERKS3_.exit, %18, %5, %10, %15 + %.2 = phi i1 [ false, %15 ], [ false, %10 ], [ true, %5 ], [ true, %18 ], [ true, %_ZNSt6vectorIPKN4Luau4TypeESaIS3_EE9push_backERKS3_.exit ] ret i1 %.2 } diff --git a/bench/memcached/optimized/proto_text.ll b/bench/memcached/optimized/proto_text.ll index 050902f79de..c1982148d8a 100644 --- a/bench/memcached/optimized/proto_text.ll +++ b/bench/memcached/optimized/proto_text.ll @@ -5468,7 +5468,7 @@ define internal fastcc void @process_debugtime_command(ptr noundef %0, ptr %.16. sub_0: %1 = alloca i64, align 8 %2 = load i8, ptr %.16.val, align 1 - switch i8 %2, label %.tail2.thread [ + switch i8 %2, label %.tail3.thread [ i8 112, label %.tail i8 114, label %.tail2 ] diff --git a/bench/minetest/optimized/base64.ll b/bench/minetest/optimized/base64.ll index 1276ce038b6..f4154219e6d 100644 --- a/bench/minetest/optimized/base64.ll +++ b/bench/minetest/optimized/base64.ll @@ -71,10 +71,9 @@ for.end: ; preds = %for.inc, %_ZL9is_ba %6 = trunc i64 %i.0.lcssa to i32 %7 = add i32 %6, 3 %8 = and i32 %7, 3 - %conv = xor i32 %8, 3 - switch i32 %conv, label %lor.lhs.false16 [ - i32 1, label %land.lhs.true - i32 2, label %land.lhs.true11 + switch i32 %8, label %lor.lhs.false16 [ + i32 2, label %land.lhs.true + i32 1, label %land.lhs.true11 ] land.lhs.true: ; preds = %for.end @@ -97,11 +96,13 @@ land.lhs.true11: ; preds = %for.end br i1 %cmp15, label %cleanup41, label %if.end20 lor.lhs.false16: ; preds = %for.end + %conv = xor i32 %8, 3 %14 = and i32 %6, 3 %cmp18.old.old = icmp eq i32 %14, 1 br i1 %cmp18.old.old, label %cleanup41, label %if.end20 if.end20: ; preds = %lor.lhs.false16, %land.lhs.true11, %land.lhs.true + %conv78 = phi i32 [ 1, %land.lhs.true ], [ 2, %land.lhs.true11 ], [ %conv, %lor.lhs.false16 ] %sub22 = sub i64 %s.coerce0, %i.0.lcssa %conv23 = trunc i64 %sub22 to i32 %cmp24 = icmp eq i32 %conv23, 0 @@ -124,7 +125,7 @@ for.body30: ; preds = %for.cond27.preheade br i1 %cmp33.not, label %for.cond27, label %cleanup41 for.end38: ; preds = %for.cond27, %for.cond27.preheader - %cmp40 = icmp eq i32 %conv, %conv23 + %cmp40 = icmp eq i32 %conv78, %conv23 br label %cleanup41 cleanup41: ; preds = %for.body30, %for.end38, %if.end20, %lor.lhs.false16, %land.lhs.true11, %land.lhs.true, %entry diff --git a/bench/nix/optimized/hash.ll b/bench/nix/optimized/hash.ll index 0ffedd3848e..7d24dc3cf65 100644 --- a/bench/nix/optimized/hash.ll +++ b/bench/nix/optimized/hash.ll @@ -2093,7 +2093,7 @@ define void @_ZN3nix39hashFormat_testRoundTripPrintParse_Test8TestBodyEv(ptr non br label %17 17: ; preds = %_ZN7testing15AssertionResultD2Ev.exit45, %1 - %.0.idx47 = phi i64 [ 0, %1 ], [ %.0.add, %_ZN7testing15AssertionResultD2Ev.exit45 ] + %.0.idx47 = phi i64 [ 0, %1 ], [ %.0.add, %_ZN7testing15AssertionResultD2Ev.exit46 ] %.0.ptr = getelementptr inbounds nuw i8, ptr %2, i64 %.0.idx47 %18 = load i32, ptr %.0.ptr, align 4 store i32 %18, ptr %3, align 4 @@ -2357,8 +2357,8 @@ _ZN7testing15AssertionResultD2Ev.exit45: ; preds = %97, %_ZNKSt14defaul ret void 107: ; preds = %74, %_ZN7testing7MessageD2Ev.exit40, %29, %_ZN7testing7MessageD2Ev.exit30 - %.sink = phi ptr [ %4, %_ZN7testing7MessageD2Ev.exit30 ], [ %4, %29 ], [ %8, %_ZN7testing7MessageD2Ev.exit40 ], [ %8, %74 ] - %.pn21.pn.pn = phi { ptr, i32 } [ %.pn, %_ZN7testing7MessageD2Ev.exit30 ], [ %30, %29 ], [ %.pn21, %_ZN7testing7MessageD2Ev.exit40 ], [ %75, %74 ] + %.sink = phi ptr [ %4, %_ZN7testing7MessageD2Ev.exit31 ], [ %4, %29 ], [ %8, %_ZN7testing7MessageD2Ev.exit41 ], [ %8, %74 ] + %.pn21.pn.pn = phi { ptr, i32 } [ %.pn, %_ZN7testing7MessageD2Ev.exit31 ], [ %30, %29 ], [ %.pn21, %_ZN7testing7MessageD2Ev.exit41 ], [ %75, %74 ] call void @_ZN7testing15AssertionResultD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %.sink) #16 resume { ptr, i32 } %.pn21.pn.pn } diff --git a/bench/opencv/optimized/cv2_convert.ll b/bench/opencv/optimized/cv2_convert.ll index 470854f1c76..247666b7ca3 100644 --- a/bench/opencv/optimized/cv2_convert.ll +++ b/bench/opencv/optimized/cv2_convert.ll @@ -2371,14 +2371,14 @@ _ZN12_GLOBAL__N_117canBeSafelyCastedImEEbP7_objectP14_PyArray_Descr.exit.i: ; pr call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) #18 br i1 %75, label %.thread, label %80 -.thread: ; preds = %_ZN12_GLOBAL__N_117canBeSafelyCastedImEEbP7_objectP14_PyArray_Descr.exit.i, %59, %_ZL19_PyObject_TypeCheckP7_objectP11_typeobject.exit.thread.i +.thread: ; preds = %_ZL19_PyObject_TypeCheckP7_objectP11_typeobject.exit.thread.i, %59, %_ZN12_GLOBAL__N_117canBeSafelyCastedImEEbP7_objectP14_PyArray_Descr.exit.i %76 = load ptr, ptr @opencv_ARRAY_API, align 8, !tbaa !56 %77 = getelementptr inbounds nuw i8, ptr %76, i64 504 %78 = load ptr, ptr %77, align 8, !tbaa !58 %79 = call noundef i32 %78(ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef %47) br label %86 -80: ; preds = %_ZN12_GLOBAL__N_117canBeSafelyCastedImEEbP7_objectP14_PyArray_Descr.exit.i, %_ZL19_PyObject_TypeCheckP7_objectP11_typeobject.exit14.i, %_ZL19_PyObject_TypeCheckP7_objectP11_typeobject.exit14.thread.i +80: ; preds = %_ZL19_PyObject_TypeCheckP7_objectP11_typeobject.exit14.thread.i, %_ZL19_PyObject_TypeCheckP7_objectP11_typeobject.exit14.i, %_ZN12_GLOBAL__N_117canBeSafelyCastedImEEbP7_objectP14_PyArray_Descr.exit.i %81 = load ptr, ptr %2, align 8, !tbaa !53 %82 = call noundef i32 (ptr, ...) @_Z7failmsgPKcz(ptr noundef nonnull @.str.16, ptr noundef %81) br label %88 diff --git a/bench/pingora-rs/optimized/49twrvocwp9bq7vff0y6fdha0.ll b/bench/pingora-rs/optimized/49twrvocwp9bq7vff0y6fdha0.ll index e4ea6f315c8..e7ffc016bc6 100644 --- a/bench/pingora-rs/optimized/49twrvocwp9bq7vff0y6fdha0.ll +++ b/bench/pingora-rs/optimized/49twrvocwp9bq7vff0y6fdha0.ll @@ -13392,12 +13392,11 @@ define hidden void @"_ZN94_$LT$$RF$mut$u20$serde_yaml..de..DeserializerFromEvent store ptr %17, ptr %7, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %12) %21 = load i64, ptr %14, align 8, !range !31, !noundef !4 - %22 = xor i64 %21, -9223372036854775808 - %23 = icmp ne i64 %21, -9223372036854775807 - tail call void @llvm.assume(i1 %23) - switch i64 %22, label %24 [ - i64 0, label %28 - i64 2, label %35 + %22 = icmp ne i64 %21, -9223372036854775807 + tail call void @llvm.assume(i1 %22) + switch i64 %21, label %23 [ + i64 -9223372036854775808, label %27 + i64 -9223372036854775806, label %34 ] 24: ; preds = %20 @@ -13569,7 +13568,7 @@ _ZN10serde_yaml2de22DeserializerFromEvents14visit_sequence17h35fb6ebbbd9b6baeE.e ret void _ZN10serde_yaml2de22DeserializerFromEvents14visit_sequence17h35fb6ebbbd9b6baeE.exit.thread: ; preds = %55, %47, %_ZN10serde_yaml2de22DeserializerFromEvents14visit_sequence17h35fb6ebbbd9b6baeE.exit._crit_edge - %73 = phi ptr [ %.pre, %_ZN10serde_yaml2de22DeserializerFromEvents14visit_sequence17h35fb6ebbbd9b6baeE.exit._crit_edge ], [ %.sroa.6.023.i, %47 ], [ %51, %55 ] + %73 = phi ptr [ %.pre, %_ZN10serde_yaml2de22DeserializerFromEvents14visit_sequence17h35fb6ebbbd9b6baeE.exit._crit_edge ], [ %.sroa.6.023.i, %47 ], [ %51, %54 ] call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 8 dereferenceable(32) %1, i64 32, i1 false) %74 = call noundef nonnull align 8 ptr @_ZN10serde_yaml5error10fix_marker17h448a7a941642e17cE(ptr noalias noundef nonnull align 8 %73, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %7, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %8) @@ -14622,13 +14621,12 @@ define internal fastcc void @"_ZN94_$LT$$RF$mut$u20$serde_yaml..de..Deserializer store ptr %14, ptr %4, align 8 call void @llvm.lifetime.start.p0(i64 304, ptr nonnull %9) %18 = load i64, ptr %11, align 8, !range !31, !noundef !4 - %19 = xor i64 %18, -9223372036854775808 - %20 = icmp ne i64 %18, -9223372036854775807 - tail call void @llvm.assume(i1 %20) - switch i64 %19, label %21 [ - i64 0, label %25 - i64 2, label %32 - i64 4, label %35 + %19 = icmp ne i64 %18, -9223372036854775807 + tail call void @llvm.assume(i1 %19) + switch i64 %18, label %20 [ + i64 -9223372036854775808, label %24 + i64 -9223372036854775806, label %32 + i64 -9223372036854775804, label %34 ] 21: ; preds = %17 diff --git a/bench/pola-rs/optimized/3wianlchgo9it4fzo8sacadsu.ll b/bench/pola-rs/optimized/3wianlchgo9it4fzo8sacadsu.ll index 4e9d395192d..7326712981c 100644 --- a/bench/pola-rs/optimized/3wianlchgo9it4fzo8sacadsu.ll +++ b/bench/pola-rs/optimized/3wianlchgo9it4fzo8sacadsu.ll @@ -25013,25 +25013,24 @@ define noundef zeroext i1 @_ZN11polars_pipe9executors5sinks8group_by10aggregates 15: ; preds = %13 %16 = load i64, ptr %14, align 16, !range !1868, !noalias !1865, !noundef !3 - %17 = xor i64 %16, -9223372036854775808 - %18 = icmp ne i64 %16, -9223372036854775796 - call void @llvm.assume(i1 %18) - switch i64 %17, label %19 [ - i64 1, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" - i64 2, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" - i64 3, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" - i64 4, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" - i64 5, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" - i64 10, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" - i64 11, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" - i64 16, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" + %17 = icmp ne i64 %16, -9223372036854775796 + call void @llvm.assume(i1 %17) + switch i64 %16, label %18 [ + i64 -9223372036854775807, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" + i64 -9223372036854775806, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" + i64 -9223372036854775805, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" + i64 -9223372036854775804, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" + i64 -9223372036854775803, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" + i64 -9223372036854775798, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" + i64 -9223372036854775797, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" + i64 -9223372036854775792, label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" ] 19: ; preds = %15 br label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i" "_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17he8509607f81d0c7aE.exit.i": ; preds = %19, %15, %15, %15, %15, %15, %15, %15, %15 - %.sroa.0.1 = phi i1 [ false, %19 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ] + %.sroa.0.1 = phi i1 [ false, %18 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ], [ %.sroa.0.010, %15 ] %switch.selectcmp.case1.i.i.i.i.i = icmp eq i64 %16, -9223372036854775798 %switch.selectcmp.case2.i.i.i.i.i = icmp eq i64 %16, -9223372036854775792 %switch.selectcmp.i.i.i.i.i = or i1 %switch.selectcmp.case1.i.i.i.i.i, %switch.selectcmp.case2.i.i.i.i.i @@ -25046,7 +25045,7 @@ define noundef zeroext i1 @_ZN11polars_pipe9executors5sinks8group_by10aggregates unreachable common.resume: ; preds = %81, %92, %11 - %common.resume.op = phi { ptr, i32 } [ %12, %11 ], [ %.pn8, %92 ], [ %.pn8, %81 ] + %common.resume.op = phi { ptr, i32 } [ %12, %11 ], [ %.pn8, %90 ], [ %.pn8, %79 ] resume { ptr, i32 } %common.resume.op _ZN4core4iter6traits8iterator8Iterator4fold17hce0fbb558af15aa2E.exit: ; preds = %13 @@ -25082,7 +25081,7 @@ _ZN4core4iter6traits8iterator8Iterator4fold17hce0fbb558af15aa2E.exit: ; preds = br label %41 41: ; preds = %38, %31 - %.sroa.0.0 = phi i64 [ %40, %38 ], [ %0, %31 ] + %.sroa.0.0 = phi i64 [ %40, %37 ], [ %0, %30 ] %42 = icmp ult i64 %.sroa.0.0, %28 br i1 %42, label %44, label %43, !prof !149 @@ -25093,18 +25092,17 @@ _ZN4core4iter6traits8iterator8Iterator4fold17hce0fbb558af15aa2E.exit: ; preds = 44: ; preds = %41 %45 = getelementptr inbounds nuw { i64, [23 x i64] }, ptr %33, i64 %.sroa.0.0 %46 = load i64, ptr %45, align 16, !range !1868, !noundef !3 - %47 = xor i64 %46, -9223372036854775808 - %48 = icmp ne i64 %46, -9223372036854775796 - call void @llvm.assume(i1 %48) - switch i64 %47, label %.thread [ - i64 10, label %49 - i64 16, label %52 + %46 = icmp ne i64 %46, -9223372036854775796 + call void @llvm.assume(i1 %46) + switch i64 %45, label %.thread [ + i64 -9223372036854775798, label %47 + i64 -9223372036854775792, label %50 ] 49: ; preds = %44 %50 = getelementptr inbounds nuw i8, ptr %45, i64 8 %51 = load i8, ptr %50, align 8, !range !1869, !noundef !3 - switch i8 %51, label %57 [ + switch i8 %51, label %55 [ i8 4, label %.thread i8 5, label %.thread i8 6, label %.thread @@ -25161,17 +25159,17 @@ _ZN4core4iter6traits8iterator8Iterator4fold17hce0fbb558af15aa2E.exit: ; preds = 70: ; preds = %64 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %4) invoke void @_ZN11polars_core9datatypes5dtype8DataType11to_physical17h0cdda09962ceb56aE(ptr noalias noundef nonnull sret([48 x i8]) align 16 captures(none) dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 16 dereferenceable(48) %5) - to label %75 unwind label %73 + to label %73 unwind label %73 71: ; preds = %67, %80 - %.sroa.04.2 = phi i1 [ %76, %80 ], [ %switch.selectcmp, %67 ] + %.sroa.04.2 = phi i1 [ %76, %78 ], [ %switch.selectcmp, %65 ] invoke void @"_ZN4core3ptr57drop_in_place$LT$polars_core..datatypes..field..Field$GT$17h1b85633c237da6f6E"(ptr noalias noundef nonnull align 16 dereferenceable(80) %5) - to label %85 unwind label %83 + to label %83 unwind label %83 72: ; preds = %77, %73 - %.pn = phi { ptr, i32 } [ %74, %73 ], [ %78, %77 ] + %.pn = phi { ptr, i32 } [ %74, %71 ], [ %78, %75 ] invoke void @"_ZN4core3ptr57drop_in_place$LT$polars_core..datatypes..field..Field$GT$17h1b85633c237da6f6E"(ptr noalias noundef nonnull align 16 dereferenceable(80) %5) #31 - to label %81 unwind label %90 + to label %79 unwind label %90 73: ; preds = %79, %70 %74 = landingpad { ptr, i32 } @@ -25180,24 +25178,24 @@ _ZN4core4iter6traits8iterator8Iterator4fold17hce0fbb558af15aa2E.exit: ; preds = 75: ; preds = %70 %76 = invoke noundef zeroext i1 @_ZN11polars_core9datatypes5dtype8DataType20is_primitive_numeric17hf4ff5b9e7f8bc799E(ptr noalias noundef nonnull readonly align 16 dereferenceable(48) %4) - to label %79 unwind label %77 + to label %77 unwind label %77 77: ; preds = %75 %78 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr60drop_in_place$LT$polars_core..datatypes..dtype..DataType$GT$17h0fed66dd9d11ad99E"(ptr noalias noundef align 16 dereferenceable(48) %4) #31 - to label %72 unwind label %90 + to label %70 unwind label %90 79: ; preds = %75 invoke fastcc void @"_ZN4core3ptr60drop_in_place$LT$polars_core..datatypes..dtype..DataType$GT$17h0fed66dd9d11ad99E"(ptr noalias noundef align 16 dereferenceable(48) %4) - to label %80 unwind label %73 + to label %78 unwind label %73 80: ; preds = %79 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %4) br label %71 81: ; preds = %83, %72 - %.pn8 = phi { ptr, i32 } [ %84, %83 ], [ %.pn, %72 ] + %.pn8 = phi { ptr, i32 } [ %84, %81 ], [ %.pn, %70 ] %82 = load i8, ptr %6, align 16, !range !746, !noundef !3 %.not = icmp eq i8 %82, 28 br i1 %.not, label %92, label %common.resume @@ -25232,7 +25230,7 @@ _ZN4core4iter6traits8iterator8Iterator4fold17hce0fbb558af15aa2E.exit: ; preds = to label %common.resume unwind label %90 .thread: ; preds = %53, %63, %89, %57, %58, %49, %49, %49, %49, %44, %_ZN4core4iter6traits8iterator8Iterator4fold17hce0fbb558af15aa2E.exit, %52 - %.sroa.04.0 = phi i1 [ true, %52 ], [ false, %_ZN4core4iter6traits8iterator8Iterator4fold17hce0fbb558af15aa2E.exit ], [ false, %44 ], [ true, %49 ], [ true, %49 ], [ true, %49 ], [ true, %49 ], [ false, %63 ], [ %.sroa.04.2, %89 ], [ false, %57 ], [ false, %58 ], [ %not., %53 ] + %.sroa.04.0 = phi i1 [ true, %50 ], [ false, %_ZN4core4iter6traits8iterator8Iterator4fold17hce0fbb558af15aa2E.exit ], [ false, %43 ], [ true, %47 ], [ true, %47 ], [ true, %47 ], [ true, %47 ], [ false, %61 ], [ %.sroa.04.2, %87 ], [ false, %55 ], [ false, %56 ], [ %not., %51 ] ret i1 %.sroa.04.0 } diff --git a/bench/pola-rs/optimized/coi50hzefc1heiv20go5gh3ph.ll b/bench/pola-rs/optimized/coi50hzefc1heiv20go5gh3ph.ll index aa267bc22a0..e64a93e8944 100644 --- a/bench/pola-rs/optimized/coi50hzefc1heiv20go5gh3ph.ll +++ b/bench/pola-rs/optimized/coi50hzefc1heiv20go5gh3ph.ll @@ -389,13 +389,12 @@ define hidden noundef zeroext i1 @_ZN11polars_plan5utils8has_expr17h7f41420d3586 6: ; preds = %.noexc %.val.i = load i64, ptr %5, align 16, !range !15, !noundef !3 - %7 = xor i64 %.val.i, -9223372036854775808 - %8 = icmp ne i64 %.val.i, -9223372036854775783 - call void @llvm.assume(i1 %8) - switch i64 %7, label %"_ZN4core4iter6traits8iterator8Iterator3any5check28_$u7b$$u7b$closure$u7d$$u7d$17h449ae197c2f9e495E.exit.i" [ - i64 11, label %22 - i64 21, label %22 - i64 16, label %22 + %7 = icmp ne i64 %.val.i, -9223372036854775783 + call void @llvm.assume(i1 %7) + switch i64 %.val.i, label %"_ZN4core4iter6traits8iterator8Iterator3any5check28_$u7b$$u7b$closure$u7d$$u7d$17h449ae197c2f9e495E.exit.i" [ + i64 -9223372036854775797, label %21 + i64 -9223372036854775787, label %22 + i64 -9223372036854775792, label %22 ] 9: ; preds = %"_ZN4core4iter6traits8iterator8Iterator3any5check28_$u7b$$u7b$closure$u7d$$u7d$17h449ae197c2f9e495E.exit.i" @@ -488,13 +487,12 @@ define hidden noundef zeroext i1 @_ZN11polars_plan5utils8has_expr17he5d4e80dd929 6: ; preds = %.noexc %.val.i = load i64, ptr %5, align 16, !range !15, !noundef !3 - %7 = xor i64 %.val.i, -9223372036854775808 - %8 = icmp ne i64 %.val.i, -9223372036854775783 - call void @llvm.assume(i1 %8) - switch i64 %7, label %"_ZN4core4iter6traits8iterator8Iterator3any5check28_$u7b$$u7b$closure$u7d$$u7d$17h117a96e676596400E.exit.i" [ - i64 11, label %22 - i64 16, label %22 - i64 21, label %22 + %7 = icmp ne i64 %.val.i, -9223372036854775783 + call void @llvm.assume(i1 %7) + switch i64 %.val.i, label %"_ZN4core4iter6traits8iterator8Iterator3any5check28_$u7b$$u7b$closure$u7d$$u7d$17h117a96e676596400E.exit.i" [ + i64 -9223372036854775797, label %21 + i64 -9223372036854775792, label %22 + i64 -9223372036854775787, label %22 ] 9: ; preds = %"_ZN4core4iter6traits8iterator8Iterator3any5check28_$u7b$$u7b$closure$u7d$$u7d$17h117a96e676596400E.exit.i" diff --git a/bench/pola-rs/optimized/druded1wlaptuxbrsbyp1cgur.ll b/bench/pola-rs/optimized/druded1wlaptuxbrsbyp1cgur.ll index 6e4ea9956b9..b9a972743ac 100644 --- a/bench/pola-rs/optimized/druded1wlaptuxbrsbyp1cgur.ll +++ b/bench/pola-rs/optimized/druded1wlaptuxbrsbyp1cgur.ll @@ -2802,12 +2802,11 @@ define hidden void @"_ZN125_$LT$polars_plan..plans..iterator..ExprMapper$LT$F$GT call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(192) %5, ptr noundef nonnull readonly align 16 dereferenceable(192) %2, i64 192, i1 false), !noalias !165 tail call void @llvm.experimental.noalias.scope.decl(metadata !170) %6 = load i64, ptr %5, align 16, !range !173, !alias.scope !170, !noalias !174, !noundef !6 - %7 = xor i64 %6, -9223372036854775808 - %8 = icmp ne i64 %6, -9223372036854775783 - tail call void @llvm.assume(i1 %8) - switch i64 %7, label %9 [ - i64 1, label %12 - i64 22, label %12 + %7 = icmp ne i64 %6, -9223372036854775783 + tail call void @llvm.assume(i1 %7) + switch i64 %6, label %8 [ + i64 -9223372036854775807, label %11 + i64 -9223372036854775786, label %12 ] 9: ; preds = %4 @@ -2823,7 +2822,7 @@ define hidden void @"_ZN125_$LT$polars_plan..plans..iterator..ExprMapper$LT$F$GT br label %"_ZN11polars_plan5plans8iterator46_$LT$impl$u20$polars_plan..dsl..expr..Expr$GT$8map_expr28_$u7b$$u7b$closure$u7d$$u7d$17h8a2f4f41ba33c4beE.exit" "_ZN11polars_plan5plans8iterator46_$LT$impl$u20$polars_plan..dsl..expr..Expr$GT$8map_expr28_$u7b$$u7b$closure$u7d$$u7d$17h8a2f4f41ba33c4beE.exit": ; preds = %9, %12 - %.sroa.0.0.i = phi i64 [ %6, %9 ], [ -9223372036854775807, %12 ] + %.sroa.0.0.i = phi i64 [ %6, %8 ], [ -9223372036854775807, %11 ] call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %5), !noalias !168 store i64 %.sroa.0.0.i, ptr %0, align 16, !alias.scope !165, !noalias !177 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -62744,12 +62743,11 @@ define internal void @"_ZN7stacker4grow28_$u7b$$u7b$closure$u7d$$u7d$17hfe7d8f30 store i64 %10, ptr %2, align 16, !noalias !13162 %.sroa.472.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %2, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(184) %.sroa.472.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(184) %.sroa.472.i, i64 184, i1 false), !noalias !13162 - %15 = xor i64 %10, -9223372036854775808 - %16 = icmp ne i64 %10, -9223372036854775783 - call void @llvm.assume(i1 %16) - switch i64 %15, label %17 [ - i64 1, label %18 - i64 22, label %18 + %15 = icmp ne i64 %10, -9223372036854775783 + call void @llvm.assume(i1 %15) + switch i64 %10, label %16 [ + i64 -9223372036854775807, label %17 + i64 -9223372036854775786, label %18 ] 17: ; preds = %14 @@ -62764,7 +62762,7 @@ define internal void @"_ZN7stacker4grow28_$u7b$$u7b$closure$u7d$$u7d$17hfe7d8f30 br label %19 19: ; preds = %18, %17 - %.sroa.0.0.i.i64.i = phi i64 [ %10, %17 ], [ -9223372036854775807, %18 ] + %.sroa.0.0.i.i64.i = phi i64 [ %10, %16 ], [ -9223372036854775807, %17 ] call void @llvm.lifetime.end.p0(i64 192, ptr nonnull %2), !noalias !13155 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5.i.i62.i, i64 24, i1 false) %.sroa.5.32..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.5, i64 24 @@ -62775,11 +62773,11 @@ define internal void @"_ZN7stacker4grow28_$u7b$$u7b$closure$u7d$$u7d$17hfe7d8f30 br label %"_ZN11polars_plan5plans7visitor8visitors10TreeWalker7rewrite28_$u7b$$u7b$closure$u7d$$u7d$17hd37bb52f4ec26013E.exit" "_ZN11polars_plan5plans7visitor8visitors10TreeWalker7rewrite28_$u7b$$u7b$closure$u7d$$u7d$17hd37bb52f4ec26013E.exit": ; preds = %13, %19 - %.sroa.09.0 = phi i64 [ -9223372036854775780, %13 ], [ %.sroa.0.0.i.i64.i, %19 ] + %.sroa.09.0 = phi i64 [ -9223372036854775780, %13 ], [ %.sroa.0.0.i.i64.i, %18 ] %20 = getelementptr inbounds nuw i8, ptr %0, i64 8 %21 = load ptr, ptr %20, align 8, !nonnull !6, !align !269, !noundef !6 %22 = load i64, ptr %21, align 16, !range !2188, !alias.scope !13166, !noundef !6 - switch i64 %22, label %23 [ + switch i64 %22, label %22 [ i64 -9223372036854775779, label %"_ZN4core3ptr133drop_in_place$LT$core..option..Option$LT$core..result..Result$LT$polars_plan..dsl..expr..Expr$C$polars_error..PolarsError$GT$$GT$$GT$17h07530bba153d7ba3E.exit" i64 -9223372036854775780, label %24 ] diff --git a/bench/ruff-rs/optimized/0dzegug7jvirkbl9h47rmcoii.ll b/bench/ruff-rs/optimized/0dzegug7jvirkbl9h47rmcoii.ll index 5817b846318..7243d5198ed 100644 --- a/bench/ruff-rs/optimized/0dzegug7jvirkbl9h47rmcoii.ll +++ b/bench/ruff-rs/optimized/0dzegug7jvirkbl9h47rmcoii.ll @@ -125448,11 +125448,11 @@ define internal fastcc void @_ZN11ruff_linter5rules4ruff5rules15sort_dunder_all1 %19 = tail call noundef zeroext i1 @"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h2b163306135bee2cE"(ptr noalias noundef nonnull readonly align 1 %17, i64 noundef %18, ptr noalias noundef nonnull readonly align 1 @anon.158f56963078a041553d42a6ce1813d5.957, i64 noundef 7) br i1 %19, label %21, label %20 -.sink.split.sink.split: ; preds = %102, %39 +.sink.split.sink.split: ; preds = %102 call void @"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17h5d840dd8209acd32E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %11) br label %.sink.split -.sink.split: ; preds = %.sink.split.sink.split, %102, %39 +.sink.split: ; preds = %32, %32, %.sink.split.sink.split, %102 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) br label %20 @@ -125492,19 +125492,12 @@ define internal fastcc void @_ZN11ruff_linter5rules4ruff5rules15sort_dunder_all1 %36 = load i64, ptr %35, align 8, !noundef !3 call void @_ZN11ruff_linter5rules4ruff5rules16sequence_sorting18SortClassification11of_elements17h87950f719eb0eaacE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %11, ptr noundef nonnull align 8 %34, i64 noundef %36, i1 noundef zeroext true) %37 = load i64, ptr %11, align 8, !range !8245, !noundef !3 - %38 = xor i64 %37, -9223372036854775808 - switch i64 %38, label %43 [ - i64 3, label %39 - i64 0, label %39 + switch i64 %37, label %38 [ + i64 -9223372036854775808, label %.sink.split + i64 -9223372036854775805, label %.sink.split ] -39: ; preds = %32, %32 - %40 = icmp sgt i64 %37, -9223372036854775805 - %41 = icmp eq i64 %37, -9223372036854775806 - %42 = or i1 %40, %41 - br i1 %42, label %.sink.split.sink.split, label %.sink.split - -43: ; preds = %32 +39: ; preds = %32 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %10) tail call void @llvm.experimental.noalias.scope.decl(metadata !8246) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6), !noalias !8246 @@ -125513,7 +125506,7 @@ define internal fastcc void @_ZN11ruff_linter5rules4ruff5rules15sort_dunder_all1 invoke void @"_ZN5alloc7raw_vec20RawVecInner$LT$A$GT$15try_allocate_in17hb6fd55eaaf790d22E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, i64 noundef 23, i1 noundef zeroext false, i64 noundef 1, i64 noundef 1) to label %.noexc unwind label %68 -.noexc: ; preds = %43 +.noexc: ; preds = %38 %44 = load i64, ptr %5, align 8, !range !308, !noalias !8252, !noundef !3 %45 = trunc nuw i64 %44 to i1 %46 = getelementptr inbounds nuw i8, ptr %5, i64 8 @@ -125573,8 +125566,8 @@ define internal fastcc void @_ZN11ruff_linter5rules4ruff5rules15sort_dunder_all1 unreachable .body: ; preds = %97, %68, %60 - %.pn16.pn = phi { ptr, i32 } [ %98, %97 ], [ %69, %68 ], [ %61, %60 ] - %.sroa.0.0 = phi i1 [ %.not37, %97 ], [ true, %68 ], [ true, %60 ] + %.pn16.pn = phi { ptr, i32 } [ %98, %92 ], [ %69, %63 ], [ %61, %55 ] + %.sroa.0.0 = phi i1 [ %.not37, %92 ], [ true, %63 ], [ true, %55 ] %64 = load i64, ptr %11, align 8, !range !8245, !noundef !3 %65 = icmp sgt i64 %64, -9223372036854775805 %66 = icmp eq i64 %64, -9223372036854775806 @@ -125582,7 +125575,7 @@ define internal fastcc void @_ZN11ruff_linter5rules4ruff5rules15sort_dunder_all1 %or.cond3 = and i1 %.sroa.0.0, %67 br i1 %or.cond3, label %107, label %.body.thread -68: ; preds = %49, %43 +68: ; preds = %49, %38 %69 = landingpad { ptr, i32 } cleanup br label %.body @@ -125630,13 +125623,13 @@ define internal fastcc void @_ZN11ruff_linter5rules4ruff5rules15sort_dunder_all1 %88 = getelementptr inbounds nuw i8, ptr %9, i64 16 %89 = load i64, ptr %88, align 8, !noundef !3 invoke fastcc void @_ZN11ruff_linter5rules4ruff5rules15sort_dunder_all10create_fix17hb16a6edfbe06e5e2E(ptr noalias noundef align 8 captures(none) dereferenceable(40) %8, i32 noundef %.sroa.010.0, i32 noundef %.sroa.4.0, ptr noundef nonnull align 8 %84, i64 noundef %85, ptr noalias noundef nonnull readonly align 8 %87, i64 noundef %89, i8 noundef %.sroa.013.0, ptr noundef nonnull align 8 %0) - to label %93 unwind label %91 + to label %88 unwind label %91 90: ; preds = %99, %70 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %7) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(120) %7, ptr noundef nonnull align 8 dereferenceable(120) %10, i64 120, i1 false) invoke void @_ZN11ruff_linter8checkers3ast7Checker17report_diagnostic17heec61577efacc51fE(ptr noundef nonnull align 8 %0, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(120) %7) - to label %102 unwind label %97 + to label %97 unwind label %97 91: ; preds = %83 %92 = landingpad { ptr, i32 } @@ -125656,7 +125649,7 @@ define internal fastcc void @_ZN11ruff_linter5rules4ruff5rules15sort_dunder_all1 95: ; preds = %93, %"_ZN4core3ptr75drop_in_place$LT$core..option..Option$LT$ruff_diagnostics..fix..Fix$GT$$GT$17h57712ce1f8bde5f4E.exit" call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %8) invoke void @"_ZN4core3ptr51drop_in_place$LT$alloc..vec..Vec$LT$$RF$str$GT$$GT$17h5d840dd8209acd32E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) - to label %99 unwind label %.thread28 + to label %94 unwind label %.thread28 .thread28: ; preds = %95 %96 = landingpad { ptr, i32 } @@ -125689,12 +125682,12 @@ define internal fastcc void @_ZN11ruff_linter5rules4ruff5rules15sort_dunder_all1 br i1 %or.cond, label %.sink.split.sink.split, label %.sink.split .thread: ; preds = %91, %.thread28 - %.pn1626 = phi { ptr, i32 } [ %96, %.thread28 ], [ %92, %91 ] + %.pn1626 = phi { ptr, i32 } [ %96, %.thread28 ], [ %92, %86 ] invoke void @"_ZN4core3ptr61drop_in_place$LT$ruff_diagnostics..diagnostic..Diagnostic$GT$17h5e3a7e2da4203097E"(ptr noalias noundef nonnull align 8 dereferenceable(120) %10) #31 to label %.body.thread unwind label %100 .body.thread: ; preds = %.thread, %107, %.body - %.pn16.pn34 = phi { ptr, i32 } [ %.pn16.pn, %107 ], [ %.pn16.pn, %.body ], [ %.pn1626, %.thread ] + %.pn16.pn34 = phi { ptr, i32 } [ %.pn16.pn, %102 ], [ %.pn16.pn, %.body ], [ %.pn1626, %.thread ] resume { ptr, i32 } %.pn16.pn34 107: ; preds = %.body diff --git a/bench/ruff-rs/optimized/9ezhgv3vaoku7b96fwwr4f701.ll b/bench/ruff-rs/optimized/9ezhgv3vaoku7b96fwwr4f701.ll index f514fd85dfc..47720abfe70 100644 --- a/bench/ruff-rs/optimized/9ezhgv3vaoku7b96fwwr4f701.ll +++ b/bench/ruff-rs/optimized/9ezhgv3vaoku7b96fwwr4f701.ll @@ -56697,10 +56697,9 @@ define void @"_ZN15ruff_python_ast5nodes53_$LT$impl$u20$ruff_python_ast..generat tailrecurse: ; preds = %9, %2 %.tr10 = phi ptr [ %1, %2 ], [ %11, %9 ] %5 = load i64, ptr %.tr10, align 8, !range !2051, !noundef !3 - %6 = xor i64 %5, -9223372036854775808 - switch i64 %6, label %7 [ - i64 6, label %9 - i64 7, label %12 + switch i64 %5, label %6 [ + i64 -9223372036854775802, label %8 + i64 -9223372036854775801, label %11 ] 7: ; preds = %tailrecurse @@ -56803,12 +56802,11 @@ define noundef zeroext i1 @"_ZN15ruff_python_ast5nodes53_$LT$impl$u20$ruff_pytho br label %tailrecurse tailrecurse: ; preds = %4, %1 - %.tr = phi ptr [ %0, %1 ], [ %6, %4 ] + %.tr = phi ptr [ %0, %1 ], [ %6, %3 ] %2 = load i64, ptr %.tr, align 8, !range !2051, !noundef !3 - %3 = xor i64 %2, -9223372036854775808 - switch i64 %3, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17h41cbb515de7d1db8E.exit" [ - i64 6, label %4 - i64 7, label %7 + switch i64 %2, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17h41cbb515de7d1db8E.exit" [ + i64 -9223372036854775802, label %3 + i64 -9223372036854775801, label %6 ] 4: ; preds = %tailrecurse @@ -56826,7 +56824,7 @@ tailrecurse: ; preds = %4, %1 br label %13 13: ; preds = %15, %7 - %.sroa.0.02 = phi ptr [ %9, %7 ], [ %16, %15 ] + %.sroa.0.02 = phi ptr [ %9, %6 ], [ %16, %15 ] %14 = icmp eq ptr %.sroa.0.02, %12 br i1 %14, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17h41cbb515de7d1db8E.exit", label %15 @@ -56836,7 +56834,7 @@ tailrecurse: ; preds = %4, %1 br i1 %17, label %13, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17h41cbb515de7d1db8E.exit" "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17h41cbb515de7d1db8E.exit": ; preds = %4, %tailrecurse, %13, %15 - %.sroa.0.0 = phi i1 [ %14, %15 ], [ %14, %13 ], [ true, %4 ], [ false, %tailrecurse ] + %.sroa.0.0 = phi i1 [ %14, %15 ], [ %14, %13 ], [ true, %3 ], [ false, %tailrecurse ] ret i1 %.sroa.0.0 } diff --git a/bench/ruff-rs/optimized/ai55pudcm2su63z2q0evp6vp4.ll b/bench/ruff-rs/optimized/ai55pudcm2su63z2q0evp6vp4.ll index bf97e82267c..d33632e5ed6 100644 --- a/bench/ruff-rs/optimized/ai55pudcm2su63z2q0evp6vp4.ll +++ b/bench/ruff-rs/optimized/ai55pudcm2su63z2q0evp6vp4.ll @@ -17942,12 +17942,11 @@ _ZN18ty_python_semantic14semantic_index7builder20SemanticIndexBuilder24add_attri define internal fastcc void @_ZN18ty_python_semantic14semantic_index7builder20SemanticIndexBuilder14predicate_kind17h87254d66e0016caeE(ptr dead_on_unwind noalias noundef nonnull writable writeonly align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef nonnull align 8 dereferenceable(584) %1, ptr noalias noundef nonnull readonly align 8 captures(none) dereferenceable(88) %2) unnamed_addr #0 personality ptr @rust_eh_personality { %4 = alloca [24 x i8], align 8 %5 = load i64, ptr %2, align 8, !range !2670, !noundef !3 - %6 = xor i64 %5, -9223372036854775808 - switch i64 %6, label %7 [ - i64 0, label %8 - i64 1, label %13 - i64 4, label %17 - i64 7, label %22 + switch i64 %5, label %6 [ + i64 -9223372036854775808, label %7 + i64 -9223372036854775807, label %12 + i64 -9223372036854775804, label %16 + i64 -9223372036854775801, label %21 ] 7: ; preds = %3 diff --git a/bench/ruff-rs/optimized/eflamytq0vbr5latbim0v068w.ll b/bench/ruff-rs/optimized/eflamytq0vbr5latbim0v068w.ll index ad7f14f9a84..47ace6ab865 100644 --- a/bench/ruff-rs/optimized/eflamytq0vbr5latbim0v068w.ll +++ b/bench/ruff-rs/optimized/eflamytq0vbr5latbim0v068w.ll @@ -17991,11 +17991,10 @@ define internal fastcc void @_ZN18ty_python_semantic5types5infer20TypeInferenceB %3 = alloca [16 x i8], align 8 %4 = alloca [16 x i8], align 8 %5 = load i64, ptr %1, align 8, !range !1460, !noundef !59 - %6 = xor i64 %5, -9223372036854775808 - switch i64 %6, label %7 [ - i64 0, label %8 - i64 4, label %11 - i64 7, label %18 + switch i64 %5, label %6 [ + i64 -9223372036854775808, label %7 + i64 -9223372036854775804, label %10 + i64 -9223372036854775801, label %17 ] 7: ; preds = %2 @@ -18032,7 +18031,7 @@ define internal fastcc void @_ZN18ty_python_semantic5types5infer20TypeInferenceB ret void .lr.ph13: ; preds = %11, %.lr.ph13 - %.sroa.05.012 = phi ptr [ %25, %.lr.ph13 ], [ %13, %11 ] + %.sroa.05.012 = phi ptr [ %25, %.lr.ph13 ], [ %13, %10 ] %25 = getelementptr inbounds nuw i8, ptr %.sroa.05.012, i64 88 tail call fastcc void @_ZN18ty_python_semantic5types5infer20TypeInferenceBuilder26infer_nested_match_pattern17heff6dc522ab70fe2E(ptr noalias noundef align 8 dereferenceable(392) %0, ptr noalias noundef readonly align 8 dereferenceable(88) %.sroa.05.012) %26 = icmp eq ptr %25, %16 @@ -18063,7 +18062,7 @@ define internal fastcc void @_ZN18ty_python_semantic5types5infer20TypeInferenceB br label %.loopexit .lr.ph: ; preds = %18, %.lr.ph - %.sroa.07.011 = phi ptr [ %.sroa.07.1, %.lr.ph ], [ %20, %18 ] + %.sroa.07.011 = phi ptr [ %.sroa.07.1, %.lr.ph ], [ %20, %17 ] %.sroa.07.1 = getelementptr inbounds nuw i8, ptr %.sroa.07.011, i64 88 tail call fastcc void @_ZN18ty_python_semantic5types5infer20TypeInferenceBuilder19infer_match_pattern17ha01742c303296a37E(ptr noalias noundef align 8 dereferenceable(392) %0, ptr noalias noundef readonly align 8 dereferenceable(88) %.sroa.07.011) %36 = icmp eq ptr %.sroa.07.1, %23 diff --git a/bench/rust-analyzer-rs/optimized/2c0n7dumpf7kecgy.ll b/bench/rust-analyzer-rs/optimized/2c0n7dumpf7kecgy.ll index 3c2eb8aea77..ff633e0a286 100644 --- a/bench/rust-analyzer-rs/optimized/2c0n7dumpf7kecgy.ll +++ b/bench/rust-analyzer-rs/optimized/2c0n7dumpf7kecgy.ll @@ -1748,7 +1748,7 @@ _ZN4core5slice6memchr12memchr_naive17hc161699a4e4d4b77E.exit.i: ; preds = %13, % %.pn.i = phi { i64, i64 } [ %16, %_ZN4core5slice6memchr12memchr_naive17hc161699a4e4d4b77E.exit.i ], [ %8, %7 ] %.sroa.05.0.i = extractvalue { i64, i64 } %.pn.i, 0 %18 = icmp eq i64 %.sroa.05.0.i, 1 - br i1 %18, label %19, label %.split.us.i + br i1 %18, label %19, label %.loopexit 19: ; preds = %17 %.sroa.6.0.i = extractvalue { i64, i64 } %.pn.i, 1 @@ -1761,7 +1761,7 @@ _ZN4core5slice6memchr12memchr_naive17hc161699a4e4d4b77E.exit.i: ; preds = %13, % 24: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17hc7a32f5c65f87f5dE.exit.i", %19 %25 = sub nuw i64 %2, %21 - br i1 %22, label %.split.us.i, label %.lr.ph.split.split.i + br i1 %22, label %.loopexit, label %.lr.ph.split.split.i "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17hc7a32f5c65f87f5dE.exit.i": ; preds = %19 %26 = getelementptr inbounds i8, ptr %1, i64 %23 @@ -1772,7 +1772,6 @@ _ZN4core5slice6memchr12memchr_naive17hc161699a4e4d4b77E.exit.i: ; preds = %13, % 28: ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17hc7a32f5c65f87f5dE.exit.i" %29 = getelementptr inbounds i8, ptr %1, i64 %21 %30 = sub i64 %2, %21 - store ptr %1, ptr %0, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 %23, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -1781,11 +1780,9 @@ _ZN4core5slice6memchr12memchr_naive17hc161699a4e4d4b77E.exit.i: ; preds = %13, % store i64 %30, ptr %.sroa.62.0..sroa_idx, align 8 br label %31 -.split.us.i: ; preds = %24, %17 - store ptr null, ptr %0, align 8 - br label %31 - -31: ; preds = %.split.us.i, %28 +31: ; preds = %24, %17, %28 + %.sink = phi ptr [ %1, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h31e9a9119eba9397E.exit" ], [ null, %17 ], [ null, %24 ] + store ptr %.sink, ptr %0, align 8 ret void } @@ -10475,7 +10472,7 @@ _ZN4core5slice6memchr12memchr_naive17hc161699a4e4d4b77E.exit.i.i: ; preds = %19, %33 = icmp eq i8 %lhsc.i, 61 br i1 %33, label %39, label %30 -34: ; preds = %30, %23 +34: ; preds = %23, %30 %35 = tail call { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h874446c1602eb4adE"(i64 noundef %2, i1 noundef zeroext false) %36 = extractvalue { i64, ptr } %35, 0 %37 = extractvalue { i64, ptr } %35, 1 @@ -13822,7 +13819,7 @@ default.unreachable: ; preds = %.noexc2 br label %106 106: ; preds = %135, %.split44.us.i, %104 - %107 = phi i64 [ %119, %.split44.us.i ], [ %137, %135 ], [ %105, %104 ] + %107 = phi i64 [ %119, %.split43.us.i ], [ %137, %135 ], [ %105, %104 ] %108 = add i64 %107, %27 %.not37.i.i.i = icmp ult i64 %108, %21 br i1 %.not37.i.i.i, label %94, label %.loopexit.i @@ -13906,7 +13903,7 @@ default.unreachable: ; preds = %.noexc2 br label %.loopexit.i 138: ; preds = %.split.us.i, %57, %"_ZN80_$LT$core..str..pattern..StrSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h81357aafb99f3895E.exit.thread19.i.i" - %.sroa.10.39.i.i = phi i64 [ %29, %"_ZN80_$LT$core..str..pattern..StrSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h81357aafb99f3895E.exit.thread19.i.i" ], [ %120, %.split.us.i ], [ %58, %57 ] + %.sroa.10.39.i.i = phi i64 [ %29, %"_ZN80_$LT$core..str..pattern..StrSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h81357aafb99f3895E.exit.thread99.i.i" ], [ %120, %.split.us.i ], [ %58, %57 ] call void @llvm.lifetime.end.p0(i64 104, ptr nonnull %5), !noalias !2482 %139 = getelementptr inbounds i8, ptr %8, i64 %.sroa.10.39.i.i %140 = sub i64 %10, %.sroa.10.39.i.i diff --git a/bench/rust-analyzer-rs/optimized/4piyv0md79k42idp.ll b/bench/rust-analyzer-rs/optimized/4piyv0md79k42idp.ll index 2561d4ae502..8adae98eb52 100644 --- a/bench/rust-analyzer-rs/optimized/4piyv0md79k42idp.ll +++ b/bench/rust-analyzer-rs/optimized/4piyv0md79k42idp.ll @@ -27473,40 +27473,36 @@ define hidden noundef zeroext i1 @_ZN14ide_completion11completions10extern_abi19 call void @_ZN6syntax3ast9token_ext8IsString13quote_offsets17h6ab458097fca2b97E.llvm.1779260972481129599(ptr noalias noundef nonnull sret({ i32, [6 x i32] }) align 4 captures(none) dereferenceable(28) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %2), !noalias !6195 %39 = load i32, ptr %5, align 4, !range !6196, !noalias !6191, !noundef !4 %trunc.i = trunc nuw i32 %39 to i1 - br i1 %trunc.i, label %40, label %_ZN6syntax3ast9token_ext8IsString25text_range_between_quotes17hdf971e55c6b939f5E.exit - -_ZN6syntax3ast9token_ext8IsString25text_range_between_quotes17hdf971e55c6b939f5E.exit: ; preds = %38 + %39 = getelementptr inbounds nuw i8, ptr %5, i64 20 + %40 = load i32, ptr %39, align 4 + %41 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %42 = load i32, ptr %41, align 4 call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %5), !noalias !6191 - br label %"_ZN4core6option15Option$LT$T$GT$6map_or17h4c7990aaa3b64fb7E.exit.thread" - -"_ZN4core6option15Option$LT$T$GT$6map_or17h4c7990aaa3b64fb7E.exit.thread": ; preds = %46, %3, %_ZN6syntax3ast9token_ext8IsString25text_range_between_quotes17hdf971e55c6b939f5E.exit, %35, %"_ZN4core6option15Option$LT$T$GT$6map_or17h4c7990aaa3b64fb7E.exit" - %.0 = phi i1 [ false, %"_ZN4core6option15Option$LT$T$GT$6map_or17h4c7990aaa3b64fb7E.exit" ], [ false, %_ZN6syntax3ast9token_ext8IsString25text_range_between_quotes17hdf971e55c6b939f5E.exit ], [ false, %35 ], [ false, %3 ], [ true, %46 ] - ret i1 %.0 + br i1 %trunc.i, label %40, label %"_ZN4core6option15Option$LT$T$GT$6map_or17h4c7990aaa3b64fb7E.exit.thread" 40: ; preds = %38 - %41 = getelementptr inbounds nuw i8, ptr %5, i64 20 - %42 = load i32, ptr %41, align 4, !noalias !6191, !noundef !4 - %43 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %44 = load i32, ptr %43, align 4, !noalias !6191, !noundef !4 - call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %5), !noalias !6191 %.sroa.46.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 16 %45 = getelementptr inbounds nuw i8, ptr %1, i64 264 - br label %46 - -46: ; preds = %40, %46 - %.sroa.010.0.idx23 = phi i64 [ 0, %40 ], [ %.sroa.010.0.add, %46 ] - %.sroa.010.0.ptr = getelementptr inbounds nuw i8, ptr @anon.9c8045b35c004a03ad2af1edb07a8fce.414, i64 %.sroa.010.0.idx23 - %.sroa.010.0.add = add nuw nsw i64 %.sroa.010.0.idx23, 16 - %47 = load ptr, ptr %.sroa.010.0.ptr, align 8, !nonnull !4, !align !83, !noundef !4 - %48 = getelementptr inbounds nuw i8, ptr %.sroa.010.0.ptr, i64 8 - %49 = load i64, ptr %48, align 8, !noundef !4 + br label %44 + +46: ; preds = %44, %3, %35, %38, %"_ZN4core6option15Option$LT$T$GT$6map_or17h4c7990aaa3b64fb7E.exit" + %.sroa.010.0.idx23 = phi i1 [ false, %"_ZN4core6option15Option$LT$T$GT$6map_or17h4c7990aaa3b64fb7E.exit" ], [ false, %_ZN6syntax3ast9token_ext8IsString25text_range_between_quotes17hdf971e55c6b939f5E.exit ], [ false, %35 ], [ false, %3 ], [ true, %44 ] + ret i1 %.sroa.010.0.idx23 + +44:; preds = %.preheader, %44 + %.sroa.010.0.idx15 = phi i64 [ 0, %.preheader ], [ %.sroa.010.0.add, %44 ] + %.sroa.010.0.ptr = getelementptr inbounds nuw i8, ptr @anon.9c8045b35c004a03ad2af1edb07a8fce.414, i64 %.sroa.010.0.idx15 + %.sroa.010.0.add = add nuw nsw i64 %.sroa.010.0.idx15, 16 + %45 = load ptr, ptr %.sroa.010.0.ptr, align 8, !nonnull !4, !align !83, !noundef !4 + %46 = getelementptr inbounds nuw i8, ptr %.sroa.010.0.ptr, i64 8 + %47 = load i64, ptr %46, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 320, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) store i8 25, ptr %6, align 8 - store ptr %47, ptr %.sroa.46.0..sroa_idx, align 8 - store i64 %49, ptr %.sroa.5.0..sroa_idx, align 8 - call void @_ZN14ide_completion4item14CompletionItem3new17hc1cf3d648646a302E(ptr noalias noundef nonnull sret({ { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { i64, [2 x i64] }, { i64, [2 x i64] }, { i8, [7 x i8] }, { { i8, [23 x i8] } }, { i8, [23 x i8] }, { i8, [23 x i8] }, { i32, i32 }, { { [10 x i64] }, i64 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i8, [2 x i8] } }, i8, i8, i8, i8, [6 x i8] }) align 8 captures(none) dereferenceable(320) %7, i8 noundef 32, i32 noundef %42, i32 noundef %44, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6) + store ptr %45, ptr %.sroa.46.0..sroa_idx, align 8 + store i64 %47, ptr %.sroa.5.0..sroa_idx, align 8 + call void @_ZN14ide_completion4item14CompletionItem3new17hc1cf3d648646a302E(ptr noalias noundef nonnull sret({ { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { i64, [2 x i64] }, { i64, [2 x i64] }, { i64, [2 x i64] }, { i8, [7 x i8] }, { { i8, [23 x i8] } }, { i8, [23 x i8] }, { i8, [23 x i8] }, { i32, i32 }, { { [10 x i64] }, i64 }, { i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, i8, { i8, [2 x i8] } }, i8, i8, i8, i8, [6 x i8] }) align 8 captures(none) dereferenceable(320) %7, i8 noundef 32, i32 noundef %40, i32 noundef %42, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) %50 = load ptr, ptr %45, align 8, !nonnull !4, !align !75, !noundef !4 call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %4), !noalias !6197 @@ -27515,7 +27511,7 @@ _ZN6syntax3ast9token_ext8IsString25text_range_between_quotes17hdf971e55c6b939f5E call void @llvm.lifetime.end.p0(i64 240, ptr nonnull %4), !noalias !6197 call void @llvm.lifetime.end.p0(i64 320, ptr nonnull %7) %51 = icmp eq i64 %.sroa.010.0.add, 464 - br i1 %51, label %"_ZN4core6option15Option$LT$T$GT$6map_or17h4c7990aaa3b64fb7E.exit.thread", label %46 + br i1 %51, label %"_ZN4core6option15Option$LT$T$GT$6map_or17h4c7990aaa3b64fb7E.exit.thread", label %44 } ; Function Attrs: mustprogress nocallback nofree nosync nounwind speculatable willreturn memory(none) diff --git a/bench/syn/optimized/2i67i8azb4r5b3mw.ll b/bench/syn/optimized/2i67i8azb4r5b3mw.ll index 78d785c7a7c..b5e807ebefc 100644 --- a/bench/syn/optimized/2i67i8azb4r5b3mw.ll +++ b/bench/syn/optimized/2i67i8azb4r5b3mw.ll @@ -2714,8 +2714,8 @@ _ZN4core4iter6traits8iterator8Iterator10advance_by17ha44f9281ab54f8b4E.exit: ; p br i1 %15, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17ha44f9281ab54f8b4E.exit.thread, label %"_ZN103_$LT$syn..punctuated..PrivateIterMut$LT$T$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h69a84b552adbbd70E.exit" _ZN4core4iter6traits8iterator8Iterator10advance_by17ha44f9281ab54f8b4E.exit.thread: ; preds = %.backedge.i, %._ZN4core4iter6traits8iterator8Iterator10advance_by17ha44f9281ab54f8b4E.exit.thread_crit_edge, %_ZN4core4iter6traits8iterator8Iterator10advance_by17ha44f9281ab54f8b4E.exit - %16 = phi ptr [ %.pre9, %._ZN4core4iter6traits8iterator8Iterator10advance_by17ha44f9281ab54f8b4E.exit.thread_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17ha44f9281ab54f8b4E.exit ], [ %14, %.backedge.i ] - %17 = phi ptr [ %.pre, %._ZN4core4iter6traits8iterator8Iterator10advance_by17ha44f9281ab54f8b4E.exit.thread_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17ha44f9281ab54f8b4E.exit ], [ %4, %.backedge.i ] + %16 = phi ptr [ %.pre9, %..critedge_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17ha44f9281ab54f8b4E.exit ], [ %14, %.backedge.i ] + %17 = phi ptr [ %.pre, %..critedge_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17ha44f9281ab54f8b4E.exit ], [ %4, %.backedge.i ] %18 = icmp eq ptr %16, %17 br i1 %18, label %20, label %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hfada663b563c8f7bE.exit.i" @@ -2783,8 +2783,8 @@ _ZN4core4iter6traits8iterator8Iterator10advance_by17h98fba6c10ea623fbE.exit: ; p br i1 %15, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h98fba6c10ea623fbE.exit.thread, label %"_ZN100_$LT$syn..punctuated..PrivateIter$LT$T$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hcbea6854c5f786b0E.exit" _ZN4core4iter6traits8iterator8Iterator10advance_by17h98fba6c10ea623fbE.exit.thread: ; preds = %.backedge.i, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h98fba6c10ea623fbE.exit.thread_crit_edge, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h98fba6c10ea623fbE.exit - %16 = phi ptr [ %.pre9, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h98fba6c10ea623fbE.exit.thread_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h98fba6c10ea623fbE.exit ], [ %14, %.backedge.i ] - %17 = phi ptr [ %.pre, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h98fba6c10ea623fbE.exit.thread_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h98fba6c10ea623fbE.exit ], [ %4, %.backedge.i ] + %16 = phi ptr [ %.pre9, %..critedge_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h98fba6c10ea623fbE.exit ], [ %14, %.backedge.i ] + %17 = phi ptr [ %.pre, %..critedge_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h98fba6c10ea623fbE.exit ], [ %4, %.backedge.i ] %18 = icmp eq ptr %16, %17 br i1 %18, label %20, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb45a96cafd11234fE.llvm.14145919710250835280.exit.i" @@ -2852,8 +2852,8 @@ _ZN4core4iter6traits8iterator8Iterator10advance_by17hcca3ef85b4749fffE.exit: ; p br i1 %15, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcca3ef85b4749fffE.exit.thread, label %"_ZN100_$LT$syn..punctuated..PrivateIter$LT$T$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1a492c3fb8780e84E.exit" _ZN4core4iter6traits8iterator8Iterator10advance_by17hcca3ef85b4749fffE.exit.thread: ; preds = %.backedge.i, %._ZN4core4iter6traits8iterator8Iterator10advance_by17hcca3ef85b4749fffE.exit.thread_crit_edge, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcca3ef85b4749fffE.exit - %16 = phi ptr [ %.pre9, %._ZN4core4iter6traits8iterator8Iterator10advance_by17hcca3ef85b4749fffE.exit.thread_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcca3ef85b4749fffE.exit ], [ %14, %.backedge.i ] - %17 = phi ptr [ %.pre, %._ZN4core4iter6traits8iterator8Iterator10advance_by17hcca3ef85b4749fffE.exit.thread_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcca3ef85b4749fffE.exit ], [ %4, %.backedge.i ] + %16 = phi ptr [ %.pre9, %..critedge_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcca3ef85b4749fffE.exit ], [ %14, %.backedge.i ] + %17 = phi ptr [ %.pre, %..critedge_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcca3ef85b4749fffE.exit ], [ %4, %.backedge.i ] %18 = icmp eq ptr %16, %17 br i1 %18, label %20, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h3381c3fbb46b8985E.llvm.14145919710250835280.exit.i" @@ -2921,8 +2921,8 @@ _ZN4core4iter6traits8iterator8Iterator10advance_by17h596ff6c7970d7ef2E.exit: ; p br i1 %15, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h596ff6c7970d7ef2E.exit.thread, label %"_ZN103_$LT$syn..punctuated..PrivateIterMut$LT$T$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h7866b37b660b7fceE.exit" _ZN4core4iter6traits8iterator8Iterator10advance_by17h596ff6c7970d7ef2E.exit.thread: ; preds = %.backedge.i, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h596ff6c7970d7ef2E.exit.thread_crit_edge, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h596ff6c7970d7ef2E.exit - %16 = phi ptr [ %.pre9, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h596ff6c7970d7ef2E.exit.thread_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h596ff6c7970d7ef2E.exit ], [ %14, %.backedge.i ] - %17 = phi ptr [ %.pre, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h596ff6c7970d7ef2E.exit.thread_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h596ff6c7970d7ef2E.exit ], [ %4, %.backedge.i ] + %16 = phi ptr [ %.pre9, %..critedge_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h596ff6c7970d7ef2E.exit ], [ %14, %.backedge.i ] + %17 = phi ptr [ %.pre, %..critedge_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h596ff6c7970d7ef2E.exit ], [ %4, %.backedge.i ] %18 = icmp eq ptr %16, %17 br i1 %18, label %20, label %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h198fbe8fb7bea1d4E.exit.i" @@ -2990,8 +2990,8 @@ _ZN4core4iter6traits8iterator8Iterator10advance_by17h40ad5f8ab59779caE.exit: ; p br i1 %15, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h40ad5f8ab59779caE.exit.thread, label %"_ZN100_$LT$syn..punctuated..PrivateIter$LT$T$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17he1ebaa882505f4e4E.exit" _ZN4core4iter6traits8iterator8Iterator10advance_by17h40ad5f8ab59779caE.exit.thread: ; preds = %.backedge.i, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h40ad5f8ab59779caE.exit.thread_crit_edge, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h40ad5f8ab59779caE.exit - %16 = phi ptr [ %.pre9, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h40ad5f8ab59779caE.exit.thread_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h40ad5f8ab59779caE.exit ], [ %14, %.backedge.i ] - %17 = phi ptr [ %.pre, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h40ad5f8ab59779caE.exit.thread_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h40ad5f8ab59779caE.exit ], [ %4, %.backedge.i ] + %16 = phi ptr [ %.pre9, %..critedge_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h40ad5f8ab59779caE.exit ], [ %14, %.backedge.i ] + %17 = phi ptr [ %.pre, %..critedge_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h40ad5f8ab59779caE.exit ], [ %4, %.backedge.i ] %18 = icmp eq ptr %16, %17 br i1 %18, label %20, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h44ce5b3bf94e122bE.llvm.14145919710250835280.exit.i" @@ -3059,8 +3059,8 @@ _ZN4core4iter6traits8iterator8Iterator10advance_by17h31b8df911f85e50fE.exit: ; p br i1 %15, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h31b8df911f85e50fE.exit.thread, label %"_ZN100_$LT$syn..punctuated..PrivateIter$LT$T$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17he95bbf4728f1cdfcE.exit" _ZN4core4iter6traits8iterator8Iterator10advance_by17h31b8df911f85e50fE.exit.thread: ; preds = %.backedge.i, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h31b8df911f85e50fE.exit.thread_crit_edge, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h31b8df911f85e50fE.exit - %16 = phi ptr [ %.pre9, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h31b8df911f85e50fE.exit.thread_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h31b8df911f85e50fE.exit ], [ %14, %.backedge.i ] - %17 = phi ptr [ %.pre, %._ZN4core4iter6traits8iterator8Iterator10advance_by17h31b8df911f85e50fE.exit.thread_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h31b8df911f85e50fE.exit ], [ %4, %.backedge.i ] + %16 = phi ptr [ %.pre9, %..critedge_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h31b8df911f85e50fE.exit ], [ %14, %.backedge.i ] + %17 = phi ptr [ %.pre, %..critedge_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h31b8df911f85e50fE.exit ], [ %4, %.backedge.i ] %18 = icmp eq ptr %16, %17 br i1 %18, label %20, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h22e4171a4978fba1E.llvm.14145919710250835280.exit.i" @@ -3128,8 +3128,8 @@ _ZN4core4iter6traits8iterator8Iterator10advance_by17hcbb328c02cb4b573E.exit: ; p br i1 %15, label %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcbb328c02cb4b573E.exit.thread, label %"_ZN103_$LT$syn..punctuated..PrivateIterMut$LT$T$C$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h747784c3c5c41dd8E.exit" _ZN4core4iter6traits8iterator8Iterator10advance_by17hcbb328c02cb4b573E.exit.thread: ; preds = %.backedge.i, %._ZN4core4iter6traits8iterator8Iterator10advance_by17hcbb328c02cb4b573E.exit.thread_crit_edge, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcbb328c02cb4b573E.exit - %16 = phi ptr [ %.pre9, %._ZN4core4iter6traits8iterator8Iterator10advance_by17hcbb328c02cb4b573E.exit.thread_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcbb328c02cb4b573E.exit ], [ %14, %.backedge.i ] - %17 = phi ptr [ %.pre, %._ZN4core4iter6traits8iterator8Iterator10advance_by17hcbb328c02cb4b573E.exit.thread_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcbb328c02cb4b573E.exit ], [ %4, %.backedge.i ] + %16 = phi ptr [ %.pre9, %..critedge_crit_edge ], [ %8, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcbb328c02cb4b573E.exit ], [ %14, %.backedge.i ] + %17 = phi ptr [ %.pre, %..critedge_crit_edge ], [ %4, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcbb328c02cb4b573E.exit ], [ %4, %.backedge.i ] %18 = icmp eq ptr %16, %17 br i1 %18, label %20, label %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17he1061c6edd27f876E.exit.i" diff --git a/bench/tls-rs/optimized/2xhpv4vf07do7r8g.ll b/bench/tls-rs/optimized/2xhpv4vf07do7r8g.ll index e6ebc134cb1..580d0a48377 100644 --- a/bench/tls-rs/optimized/2xhpv4vf07do7r8g.ll +++ b/bench/tls-rs/optimized/2xhpv4vf07do7r8g.ll @@ -5666,28 +5666,28 @@ _ZN6rustls6crypto6cipher5Nonce3new17hcf7a0216ca69e30dE.exit: ; preds = %20 %35 = and i64 %34, 14 %switch.i.i = icmp eq i64 %35, 4 %36 = getelementptr inbounds nuw i8, ptr %1, i64 8 - br i1 %switch.i.i, label %39, label %53 + br i1 %switch.i.i, label %37, label %53 -37: ; preds = %39 - %38 = landingpad { ptr, i32 } - cleanup - invoke void @"_ZN4core3ptr50drop_in_place$LT$aws_lc_rs..aead..nonce..Nonce$GT$17ha5fd0bbdefbf572cE"(ptr noalias noundef nonnull align 1 dereferenceable(12) %14) #30 - to label %.body.i unwind label %50, !noalias !1438 - -39: ; preds = %33 +37: ; preds = %33 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %14), !noalias !1437 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %14, ptr noundef nonnull align 4 dereferenceable(12) %16, i64 12, i1 false) %.val.i.i = load ptr, ptr %36, align 8, !alias.scope !1433, !noalias !1434 - call void @llvm.lifetime.start.p0(i64 28, ptr nonnull %12), !noalias !1439 + call void @llvm.lifetime.start.p0(i64 28, ptr nonnull %12), !noalias !1438 %40 = getelementptr inbounds i8, ptr %5, i64 %26 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %12, ptr noundef nonnull readonly align 1 dereferenceable(16) %40, i64 16, i1 false), !alias.scope !1444, !noalias !1448 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %12, ptr noundef nonnull readonly align 1 dereferenceable(16) %40, i64 16, i1 false), !alias.scope !1443, !noalias !1447 %41 = getelementptr inbounds nuw i8, ptr %12, i64 16 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %41, ptr noundef nonnull align 4 dereferenceable(12) %16, i64 12, i1 false) %42 = invoke noundef i32 @"\01aws_lc_0_13_2_EVP_AEAD_CTX_open_gather"(ptr noundef %.val.i.i, ptr noundef nonnull align 1 %5, ptr noundef null, i64 noundef 0, ptr noundef nonnull align 1 %5, i64 noundef %26, ptr noundef nonnull %12, i64 noundef 28, ptr noundef nonnull readonly align 1 %3, i64 noundef %4) - to label %.noexc.i.i unwind label %37, !noalias !1450 + to label %.noexc.i.i unwind label %41, !noalias !1449 + +.noexc.i.i: ; preds = %37 + %42 = landingpad { ptr, i32 } + cleanup + invoke void @"_ZN4core3ptr50drop_in_place$LT$aws_lc_rs..aead..nonce..Nonce$GT$17ha5fd0bbdefbf572cE"(ptr noalias noundef nonnull align 1 dereferenceable(12) %14) #30 + to label %.body.i unwind label %50, !noalias !1450 -.noexc.i.i: ; preds = %39 - call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %12), !noalias !1439 +.noexc.i.i: ; preds = %37 + call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %12), !noalias !1438 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11), !noalias !1451 %43 = getelementptr inbounds nuw i8, ptr %14, i64 12 store ptr %14, ptr %11, align 8, !noalias !1451 @@ -5699,16 +5699,16 @@ _ZN6rustls6crypto6cipher5Nonce3new17hcf7a0216ca69e30dE.exit: ; preds = %20 .lr.ph.i.i.i.i.i.i.i.i: ; preds = %.noexc.i.i, %.lr.ph.i.i.i.i.i.i.i.i %47 = phi ptr [ %48, %.lr.ph.i.i.i.i.i.i.i.i ], [ %45, %.noexc.i.i ] - store volatile i8 0, ptr %47, align 1, !alias.scope !1461, !noalias !1438 + store volatile i8 0, ptr %47, align 1, !alias.scope !1461, !noalias !1450 fence syncscope("singlethread") seq_cst %48 = call noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha0a8bdeb25250510E.llvm.15934541666227088301"(ptr noalias noundef nonnull align 8 dereferenceable(16) %11), !noalias !1460 %49 = icmp eq ptr %48, null br i1 %49, label %.loopexit.i.i, label %.lr.ph.i.i.i.i.i.i.i.i -50: ; preds = %37 +50: ; preds = %41 %51 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #31, !noalias !1438 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #31, !noalias !1450 unreachable .loopexit.i.i: ; preds = %.lr.ph.i.i.i.i.i.i.i.i, %.noexc.i.i @@ -5727,13 +5727,13 @@ _ZN6rustls6crypto6cipher5Nonce3new17hcf7a0216ca69e30dE.exit: ; preds = %20 %.val41.i.i = load ptr, ptr %36, align 8, !alias.scope !1433, !noalias !1434 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10), !noalias !1464 %54 = invoke noundef i32 @"\01aws_lc_0_13_2_EVP_AEAD_CTX_open"(ptr noundef %.val41.i.i, ptr noundef nonnull align 1 %5, ptr noundef nonnull %10, i64 noundef %26, ptr noundef nonnull align 1 dereferenceable(12) %13, i64 noundef 12, ptr noundef nonnull align 1 %5, i64 noundef %6, ptr noundef nonnull readonly align 1 %3, i64 noundef %4) - to label %.noexc44.i.i unwind label %55, !noalias !1438 + to label %.noexc44.i.i unwind label %55, !noalias !1450 55: ; preds = %53 %56 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr50drop_in_place$LT$aws_lc_rs..aead..nonce..Nonce$GT$17ha5fd0bbdefbf572cE"(ptr noalias noundef nonnull align 1 dereferenceable(12) %13) #30 - to label %.body.i unwind label %64, !noalias !1438 + to label %.body.i unwind label %64, !noalias !1450 .noexc44.i.i: ; preds = %53 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10), !noalias !1464 @@ -5748,7 +5748,7 @@ _ZN6rustls6crypto6cipher5Nonce3new17hcf7a0216ca69e30dE.exit: ; preds = %20 .lr.ph.i.i.i.i.i.i43.i.i: ; preds = %.noexc44.i.i, %.lr.ph.i.i.i.i.i.i43.i.i %61 = phi ptr [ %62, %.lr.ph.i.i.i.i.i.i43.i.i ], [ %59, %.noexc44.i.i ] - store volatile i8 0, ptr %61, align 1, !alias.scope !1478, !noalias !1438 + store volatile i8 0, ptr %61, align 1, !alias.scope !1478, !noalias !1450 fence syncscope("singlethread") seq_cst %62 = call noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha0a8bdeb25250510E.llvm.15934541666227088301"(ptr noalias noundef nonnull align 8 dereferenceable(16) %9), !noalias !1460 %63 = icmp eq ptr %62, null @@ -5757,7 +5757,7 @@ _ZN6rustls6crypto6cipher5Nonce3new17hcf7a0216ca69e30dE.exit: ; preds = %20 64: ; preds = %55 %65 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #31, !noalias !1438 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #31, !noalias !1450 unreachable .loopexit48.i.i: ; preds = %.lr.ph.i.i.i.i.i.i43.i.i, %.noexc44.i.i @@ -5787,8 +5787,8 @@ _ZN6rustls6crypto6cipher5Nonce3new17hcf7a0216ca69e30dE.exit: ; preds = %20 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8), !noalias !1481 br label %80 -.body.i: ; preds = %55, %37 - %eh.lpad-body.i = phi { ptr, i32 } [ %38, %37 ], [ %56, %55 ] +.body.i: ; preds = %55, %41 + %eh.lpad-body.i = phi { ptr, i32 } [ %42, %41 ], [ %56, %55 ] resume { ptr, i32 } %eh.lpad-body.i "_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17hb98968f395a4042cE.exit": ; preds = %52 @@ -17317,20 +17317,20 @@ attributes #32 = { nounwind } !1435 = distinct !{!1435, !1430, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey11open_within17hb3153b9491ef9608E: argument 1"} !1436 = distinct !{!1436, !1430, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey11open_within17hb3153b9491ef9608E: argument 2"} !1437 = !{!1429, !1435, !1436, !1432, !1421, !1426, !1427, !1424} -!1438 = !{!1429, !1435, !1421, !1426} -!1439 = !{!1440, !1442, !1443, !1429, !1435, !1436, !1432, !1421, !1426, !1427, !1424} -!1440 = distinct !{!1440, !1441, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 0"} -!1441 = distinct !{!1441, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E"} -!1442 = distinct !{!1442, !1441, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 1"} -!1443 = distinct !{!1443, !1441, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 2"} -!1444 = !{!1445, !1447} -!1445 = distinct !{!1445, !1446, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 0"} -!1446 = distinct !{!1446, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE"} -!1447 = distinct !{!1447, !1446, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 1"} -!1448 = !{!1449, !1440, !1442, !1429, !1435, !1436, !1421, !1426, !1427} -!1449 = distinct !{!1449, !1446, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 2"} -!1450 = !{!1440, !1429, !1435, !1421, !1426} -!1451 = !{!1452, !1454, !1456, !1458, !1440, !1442, !1443, !1429, !1435, !1436, !1432, !1421, !1426, !1427, !1424} +!1438 = !{!1439, !1441, !1442, !1429, !1435, !1436, !1432, !1421, !1426, !1427, !1424} +!1439 = distinct !{!1439, !1440, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 0"} +!1440 = distinct !{!1440, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E"} +!1441 = distinct !{!1441, !1440, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 1"} +!1442 = distinct !{!1442, !1440, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 2"} +!1443 = !{!1444, !1446} +!1444 = distinct !{!1444, !1445, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 0"} +!1445 = distinct !{!1445, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE"} +!1446 = distinct !{!1446, !1445, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 1"} +!1447 = !{!1448, !1439, !1441, !1429, !1435, !1436, !1421, !1426, !1427} +!1448 = distinct !{!1448, !1445, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 2"} +!1449 = !{!1439, !1429, !1435, !1421, !1426} +!1450 = !{!1429, !1435, !1421, !1426} +!1451 = !{!1452, !1454, !1456, !1458, !1439, !1441, !1442, !1429, !1435, !1436, !1432, !1421, !1426, !1427, !1424} !1452 = distinct !{!1452, !1453, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17hb07cdecce005d371E: argument 0"} !1453 = distinct !{!1453, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17hb07cdecce005d371E"} !1454 = distinct !{!1454, !1455, !"_ZN77_$LT$aws_lc_rs..iv..FixedLength$LT$_$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h55e760f518cdcbdaE.llvm.4248407042397360440: argument 0"} diff --git a/bench/tls-rs/optimized/7y9936vu35zt2sp.ll b/bench/tls-rs/optimized/7y9936vu35zt2sp.ll index bd778377142..5ce8d045c75 100644 --- a/bench/tls-rs/optimized/7y9936vu35zt2sp.ll +++ b/bench/tls-rs/optimized/7y9936vu35zt2sp.ll @@ -10990,28 +10990,28 @@ define void @"_ZN114_$LT$rustls..crypto..aws_lc_rs..ticketer..AeadTicketer$u20$a %36 = and i64 %35, 14 %switch.i.i = icmp eq i64 %36, 4 %37 = getelementptr inbounds nuw i8, ptr %1, i64 8 - br i1 %switch.i.i, label %40, label %54 + br i1 %switch.i.i, label %38, label %54 -38: ; preds = %40 - %39 = landingpad { ptr, i32 } - cleanup - invoke void @"_ZN4core3ptr50drop_in_place$LT$aws_lc_rs..aead..nonce..Nonce$GT$17ha5fd0bbdefbf572cE"(ptr noalias noundef nonnull align 1 dereferenceable(12) %13) #49 - to label %.body unwind label %51, !noalias !3398 - -40: ; preds = %34 +38: ; preds = %34 call void @llvm.lifetime.start.p0(i64 12, ptr nonnull %13), !noalias !3397 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %13, ptr noundef nonnull align 1 dereferenceable(12) %2, i64 12, i1 false) %.val.i.i = load ptr, ptr %37, align 8, !alias.scope !3393, !noalias !3394 - call void @llvm.lifetime.start.p0(i64 28, ptr nonnull %11), !noalias !3399 + call void @llvm.lifetime.start.p0(i64 28, ptr nonnull %11), !noalias !3398 %41 = getelementptr inbounds i8, ptr %25, i64 %27 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %11, ptr noundef nonnull readonly align 1 dereferenceable(16) %41, i64 16, i1 false), !alias.scope !3404, !noalias !3408 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(16) %11, ptr noundef nonnull readonly align 1 dereferenceable(16) %41, i64 16, i1 false), !alias.scope !3403, !noalias !3407 %42 = getelementptr inbounds nuw i8, ptr %11, i64 16 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(12) %42, ptr noundef nonnull align 1 dereferenceable(12) %2, i64 12, i1 false) %43 = invoke noundef i32 @"\01aws_lc_0_13_2_EVP_AEAD_CTX_open_gather"(ptr noundef %.val.i.i, ptr noundef nonnull align 1 %25, ptr noundef null, i64 noundef 0, ptr noundef nonnull align 1 %25, i64 noundef %27, ptr noundef nonnull %11, i64 noundef 28, ptr noundef nonnull readonly align 1 %5, i64 noundef 0) - to label %.noexc.i.i unwind label %38, !noalias !3410 + to label %.noexc.i.i unwind label %42, !noalias !3409 + +.noexc.i.i: ; preds = %38 + %43 = landingpad { ptr, i32 } + cleanup + invoke void @"_ZN4core3ptr50drop_in_place$LT$aws_lc_rs..aead..nonce..Nonce$GT$17ha5fd0bbdefbf572cE"(ptr noalias noundef nonnull align 1 dereferenceable(12) %13) #49 + to label %.body unwind label %51, !noalias !3410 -.noexc.i.i: ; preds = %40 - call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %11), !noalias !3399 +.noexc.i.i: ; preds = %38 + call void @llvm.lifetime.end.p0(i64 28, ptr nonnull %11), !noalias !3398 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %10), !noalias !3411 %44 = getelementptr inbounds nuw i8, ptr %13, i64 12 store ptr %13, ptr %10, align 8, !noalias !3411 @@ -11026,7 +11026,7 @@ define void @"_ZN114_$LT$rustls..crypto..aws_lc_rs..ticketer..AeadTicketer$u20$a .lr.ph.i.i.i.i.i.i.i.i: ; preds = %.noexc, %.noexc43 %48 = phi ptr [ %49, %.noexc43 ], [ %46, %.noexc ] - store volatile i8 0, ptr %48, align 1, !alias.scope !3420, !noalias !3398 + store volatile i8 0, ptr %48, align 1, !alias.scope !3420, !noalias !3410 fence syncscope("singlethread") seq_cst %49 = invoke noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha0a8bdeb25250510E.llvm.15934541666227088301"(ptr noalias noundef nonnull align 8 dereferenceable(16) %10) to label %.noexc43 unwind label %.loopexit.split-lp.loopexit @@ -11035,10 +11035,10 @@ define void @"_ZN114_$LT$rustls..crypto..aws_lc_rs..ticketer..AeadTicketer$u20$a %50 = icmp eq ptr %49, null br i1 %50, label %.loopexit.i.i, label %.lr.ph.i.i.i.i.i.i.i.i -51: ; preds = %38 +51: ; preds = %42 %52 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #48, !noalias !3398 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #48, !noalias !3410 unreachable .loopexit.i.i: ; preds = %.noexc43, %.noexc @@ -11057,13 +11057,13 @@ define void @"_ZN114_$LT$rustls..crypto..aws_lc_rs..ticketer..AeadTicketer$u20$a %.val41.i.i = load ptr, ptr %37, align 8, !alias.scope !3393, !noalias !3394 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9), !noalias !3423 %55 = invoke noundef i32 @"\01aws_lc_0_13_2_EVP_AEAD_CTX_open"(ptr noundef %.val41.i.i, ptr noundef nonnull align 1 %25, ptr noundef nonnull %9, i64 noundef %27, ptr noundef nonnull align 1 dereferenceable(12) %12, i64 noundef 12, ptr noundef nonnull align 1 %25, i64 noundef %20, ptr noundef nonnull readonly align 1 %5, i64 noundef 0) - to label %.noexc44.i.i unwind label %56, !noalias !3398 + to label %.noexc44.i.i unwind label %56, !noalias !3410 56: ; preds = %54 %57 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr50drop_in_place$LT$aws_lc_rs..aead..nonce..Nonce$GT$17ha5fd0bbdefbf572cE"(ptr noalias noundef nonnull align 1 dereferenceable(12) %12) #49 - to label %.body unwind label %65, !noalias !3398 + to label %.body unwind label %65, !noalias !3410 .noexc44.i.i: ; preds = %54 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9), !noalias !3423 @@ -11081,7 +11081,7 @@ define void @"_ZN114_$LT$rustls..crypto..aws_lc_rs..ticketer..AeadTicketer$u20$a .lr.ph.i.i.i.i.i.i43.i.i: ; preds = %.noexc44, %.noexc45 %62 = phi ptr [ %63, %.noexc45 ], [ %60, %.noexc44 ] - store volatile i8 0, ptr %62, align 1, !alias.scope !3437, !noalias !3398 + store volatile i8 0, ptr %62, align 1, !alias.scope !3437, !noalias !3410 fence syncscope("singlethread") seq_cst %63 = invoke noundef align 1 dereferenceable_or_null(1) ptr @"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17ha0a8bdeb25250510E.llvm.15934541666227088301"(ptr noalias noundef nonnull align 8 dereferenceable(16) %8) to label %.noexc45 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit @@ -11093,7 +11093,7 @@ define void @"_ZN114_$LT$rustls..crypto..aws_lc_rs..ticketer..AeadTicketer$u20$a 65: ; preds = %56 %66 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #48, !noalias !3398 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #48, !noalias !3410 unreachable .loopexit48.i.i: ; preds = %.noexc45, %.noexc44 @@ -11153,10 +11153,10 @@ define void @"_ZN114_$LT$rustls..crypto..aws_lc_rs..ticketer..AeadTicketer$u20$a cleanup br label %.body -.body: ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %38, %56 - %eh.lpad-body = phi { ptr, i32 } [ %39, %38 ], [ %57, %56 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit61, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit64, %.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] +.body: ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %42, %56 + %eh.lpad-body = phi { ptr, i32 } [ %43, %42 ], [ %57, %56 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit61, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit64, %.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h8e8ccce731b64633E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) #49 - to label %.thread unwind label %91 + to label %.thread53 unwind label %91 75: ; preds = %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17he196bf46852923c1E.llvm.403688954652204928.exit.i.i" %76 = extractvalue { i64, i64 } %67, 0 @@ -11221,7 +11221,7 @@ define void @"_ZN114_$LT$rustls..crypto..aws_lc_rs..ticketer..AeadTicketer$u20$a %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr50drop_in_place$LT$aws_lc_rs..aead..nonce..Nonce$GT$17ha5fd0bbdefbf572cE"(ptr noalias noundef nonnull align 1 dereferenceable(12) %16) #49 - to label %.thread unwind label %91 + to label %.thread53 unwind label %91 } ; Function Attrs: nonlazybind uwtable @@ -15635,20 +15635,20 @@ attributes #51 = { nounwind } !3395 = distinct !{!3395, !3390, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey11open_within17hb3153b9491ef9608E: argument 1"} !3396 = distinct !{!3396, !3390, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey11open_within17hb3153b9491ef9608E: argument 2"} !3397 = !{!3389, !3395, !3396, !3392, !3382, !3387, !3385} -!3398 = !{!3389, !3395, !3382, !3387} -!3399 = !{!3400, !3402, !3403, !3389, !3395, !3396, !3392, !3382, !3387, !3385} -!3400 = distinct !{!3400, !3401, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 0"} -!3401 = distinct !{!3401, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E"} -!3402 = distinct !{!3402, !3401, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 1"} -!3403 = distinct !{!3403, !3401, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 2"} -!3404 = !{!3405, !3407} -!3405 = distinct !{!3405, !3406, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 0"} -!3406 = distinct !{!3406, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE"} -!3407 = distinct !{!3407, !3406, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 1"} -!3408 = !{!3409, !3400, !3402, !3389, !3395, !3396, !3382, !3387} -!3409 = distinct !{!3409, !3406, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 2"} -!3410 = !{!3400, !3389, !3395, !3382, !3387} -!3411 = !{!3412, !3414, !3416, !3418, !3400, !3402, !3403, !3389, !3395, !3396, !3392, !3382, !3387, !3385} +!3398 = !{!3399, !3401, !3402, !3389, !3395, !3396, !3392, !3382, !3387, !3385} +!3399 = distinct !{!3399, !3400, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 0"} +!3400 = distinct !{!3400, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E"} +!3401 = distinct !{!3401, !3400, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 1"} +!3402 = distinct !{!3402, !3400, !"_ZN9aws_lc_rs4aead11unbound_key10UnboundKey23open_combined_randnonce17hb7ab0b91fbb1bd58E: argument 2"} +!3403 = !{!3404, !3406} +!3404 = distinct !{!3404, !3405, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 0"} +!3405 = distinct !{!3405, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE"} +!3406 = distinct !{!3406, !3405, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 1"} +!3407 = !{!3408, !3399, !3401, !3389, !3395, !3396, !3382, !3387} +!3408 = distinct !{!3408, !3405, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15copy_from_slice17h2edd3c200d728c6aE: argument 2"} +!3409 = !{!3399, !3389, !3395, !3382, !3387} +!3410 = !{!3389, !3395, !3382, !3387} +!3411 = !{!3412, !3414, !3416, !3418, !3399, !3401, !3402, !3389, !3395, !3396, !3392, !3382, !3387, !3385} !3412 = distinct !{!3412, !3413, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17hb07cdecce005d371E: argument 0"} !3413 = distinct !{!3413, !"_ZN59_$LT$$u5b$Z$u3b$$u20$N$u5d$$u20$as$u20$zeroize..Zeroize$GT$7zeroize17hb07cdecce005d371E"} !3414 = distinct !{!3414, !3415, !"_ZN77_$LT$aws_lc_rs..iv..FixedLength$LT$_$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h55e760f518cdcbdaE.llvm.4248407042397360440: argument 0"} diff --git a/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll b/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll index 2184adce3c1..f543412912c 100644 --- a/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll +++ b/bench/tokio-rs/optimized/2i86qkpybymk1snv.ll @@ -9518,9 +9518,9 @@ _ZN5tokio7runtime4coop12poll_proceed17h8e5fe15c124786d4E.llvm.103380525842535361 br label %37 35: ; preds = %174, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.thread56.i", %83, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.i", %.loopexit.split-lp.i - %.05.i = phi ptr [ %.388288.i, %174 ], [ %.388288.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.i" ], [ %.388288.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.thread56.i" ], [ %.16.ph.i, %.loopexit.split-lp.i ], [ %.388288.i, %83 ] - %.150.i = phi i8 [ %.5.i, %174 ], [ %.5.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.i" ], [ %.5.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.thread56.i" ], [ %.049.ph.i, %.loopexit.split-lp.i ], [ %.5.i, %83 ] - %.pn59.i = phi { ptr, i32 } [ %.pn55.i, %174 ], [ %lpad.thr_comm.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.i" ], [ %lpad.thr_comm.split-lp.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.thread56.i" ], [ %lpad.loopexit.split-lp.i, %.loopexit.split-lp.i ], [ %84, %83 ] + %.05.i = phi ptr [ %.388288.i, %174 ], [ %.388288.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.i" ], [ %.388288.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.thread55.i" ], [ %.16.ph.i, %.loopexit.split-lp.i ], [ %.388288.i, %83 ] + %.150.i = phi i8 [ %.5.i, %174 ], [ %.5.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.i" ], [ %.5.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.thread55.i" ], [ %.049.ph.i, %.loopexit.split-lp.i ], [ %.5.i, %83 ] + %.pn59.i = phi { ptr, i32 } [ %.pn55.i, %174 ], [ %lpad.thr_comm.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.i" ], [ %lpad.thr_comm.split-lp.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.thread55.i" ], [ %lpad.loopexit.split-lp.i, %.loopexit.split-lp.i ], [ %84, %83 ] %36 = trunc nuw i8 %.150.i to i1 br i1 %36, label %182, label %.body @@ -9551,7 +9551,7 @@ _ZN5tokio7runtime4coop12poll_proceed17h8e5fe15c124786d4E.llvm.103380525842535361 br label %41 41: ; preds = %.thread75.i, %.outer.i - %.048.i = phi i64 [ %.sroa.07.0.i80.i, %.thread75.i ], [ %.048.ph.i, %.outer.i ] + %.048.i = phi i64 [ %.sroa.07.0.i80.i, %.thread74.i ], [ %.048.ph.i, %.outer.i ] %42 = and i64 %.048.i, 1 %.not.i.not.not.not.not = icmp ne i64 %42, 0 br i1 %.not.i.not.not.not.not, label %.thread27.i, label %43 @@ -9635,7 +9635,7 @@ _ZN5tokio7runtime4coop12poll_proceed17h8e5fe15c124786d4E.llvm.103380525842535361 70: ; preds = %68 %71 = invoke noundef zeroext i1 @_ZN11parking_lot9raw_mutex8RawMutex9lock_slow17ha7d07771867e5354E(ptr noundef nonnull align 8 %11, i64 undef, i32 noundef 1000000000) - to label %.thread26.i unwind label %.loopexit.split-lp.i + to label %.thread25.i unwind label %.loopexit.split-lp.i .thread26.i: ; preds = %70, %68, %66, %62 %.388288.i = phi ptr [ %.27.ph.i, %66 ], [ null, %70 ], [ null, %68 ], [ %.38.i, %62 ] @@ -9913,13 +9913,13 @@ _ZN5tokio7runtime4coop12poll_proceed17h8e5fe15c124786d4E.llvm.103380525842535361 to label %"_ZN4core3ptr108drop_in_place$LT$tokio..loom..std..parking_lot..MutexGuard$LT$tokio..sync..batch_semaphore..Waitlist$GT$$GT$17hd47ac5dabb8ce105E.exit90.i" unwind label %.loopexit.split-lp.i 174: ; preds = %.thread90.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.thread.i", %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.i" - %.pn55.i = phi { ptr, i32 } [ %lpad.thr_comm47.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.thread.i" ], [ %lpad.thr_comm.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.i" ], [ %132, %.thread90.i ] + %.pn55.i = phi { ptr, i32 } [ %lpad.thr_comm47.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.thread.i" ], [ %lpad.thr_comm.i, %"_ZN4core3ptr72drop_in_place$LT$core..option..Option$LT$core..task..wake..Waker$GT$$GT$17hc490b1dedfd7c3deE.exit86.i" ], [ %132, %.thread89.i ] invoke void @"_ZN4core3ptr108drop_in_place$LT$tokio..loom..std..parking_lot..MutexGuard$LT$tokio..sync..batch_semaphore..Waitlist$GT$$GT$17hd47ac5dabb8ce105E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %8) #32 to label %35 unwind label %167 175: ; preds = %"_ZN4core3ptr108drop_in_place$LT$tokio..loom..std..parking_lot..MutexGuard$LT$tokio..sync..batch_semaphore..Waitlist$GT$$GT$17hd47ac5dabb8ce105E.exit90.i", %.thread27.i - %.033.i = phi i1 [ %.not.i.not.not.not.not, %.thread27.i ], [ %75, %"_ZN4core3ptr108drop_in_place$LT$tokio..loom..std..parking_lot..MutexGuard$LT$tokio..sync..batch_semaphore..Waitlist$GT$$GT$17hd47ac5dabb8ce105E.exit90.i" ] - %.431.i = phi ptr [ %.27.ph.i, %.thread27.i ], [ %.388288.i, %"_ZN4core3ptr108drop_in_place$LT$tokio..loom..std..parking_lot..MutexGuard$LT$tokio..sync..batch_semaphore..Waitlist$GT$$GT$17hd47ac5dabb8ce105E.exit90.i" ] + %.033.i = phi i1 [ %.not.i.not.not.not.not, %.thread26.i ], [ %75, %"_ZN4core3ptr108drop_in_place$LT$tokio..loom..std..parking_lot..MutexGuard$LT$tokio..sync..batch_semaphore..Waitlist$GT$$GT$17hd47ac5dabb8ce105E.exit90.i" ] + %.431.i = phi ptr [ %.27.ph.i, %.thread26.i ], [ %.388288.i, %"_ZN4core3ptr108drop_in_place$LT$tokio..loom..std..parking_lot..MutexGuard$LT$tokio..sync..batch_semaphore..Waitlist$GT$$GT$17hd47ac5dabb8ce105E.exit90.i" ] %176 = icmp eq ptr %.431.i, null br i1 %176, label %189, label %177 diff --git a/bench/typst-rs/optimized/15cic2jih5jwap60.ll b/bench/typst-rs/optimized/15cic2jih5jwap60.ll index 0ba0cb542b5..d9e7ba7f07a 100644 --- a/bench/typst-rs/optimized/15cic2jih5jwap60.ll +++ b/bench/typst-rs/optimized/15cic2jih5jwap60.ll @@ -2084,8 +2084,9 @@ define { i64, i64 } @_ZN12typst_syntax6source6Source19line_column_to_byte17h6f3f %17 = load i64, ptr %.in.i, align 8, !noalias !377, !noundef !4 %18 = getelementptr inbounds nuw i8, ptr %4, i64 40 %19 = load ptr, ptr %18, align 8, !noalias !378, !nonnull !4, !noundef !4 - %20 = load i64, ptr %15, align 16, !noalias !378, !noundef !4 - %.not.i.i = icmp ugt i64 %12, %17 + %19 = getelementptr inbounds nuw i8, ptr %4, i64 48 + %20 = load i64, ptr %19, align 16, !noalias !378, !noundef !4 + %.not.i.i = icmp ugt i64 %11, %16 br i1 %.not.i.i, label %_ZN12typst_syntax6source6Source3get17h66c768170a343c24E.exit.thread, label %21 21: ; preds = %8 @@ -2172,8 +2173,8 @@ _ZN4core3str11validations15next_code_point17h4d63e38fa3b3e1ddE.exit: ; preds = % br i1 %exitcond.not, label %._crit_edge, label %.lr.ph _ZN12typst_syntax6source6Source3get17h66c768170a343c24E.exit.thread: ; preds = %3, %31, %24, %8, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17hec6e3494bc021c8aE.exit.i.i", %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17hec6e3494bc021c8aE.exit7.i.i", %._crit_edge - %.sroa.4.1 = phi i64 [ %41, %._crit_edge ], [ undef, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17hec6e3494bc021c8aE.exit7.i.i" ], [ undef, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17hec6e3494bc021c8aE.exit.i.i" ], [ undef, %8 ], [ undef, %24 ], [ undef, %31 ], [ undef, %3 ] - %.sroa.0.1 = phi i64 [ 1, %._crit_edge ], [ 0, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17hec6e3494bc021c8aE.exit7.i.i" ], [ 0, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17hec6e3494bc021c8aE.exit.i.i" ], [ 0, %8 ], [ 0, %24 ], [ 0, %31 ], [ 0, %3 ] + %.sroa.4.1 = phi i64 [ %41, %._crit_edge ], [ undef, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17hec6e3494bc021c8aE.exit7.i.i" ], [ undef, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17hec6e3494bc021c8aE.exit.i.i" ], [ undef, %7 ], [ undef, %24 ], [ undef, %31 ], [ undef, %3 ] + %.sroa.0.1 = phi i64 [ 1, %._crit_edge ], [ 0, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17hec6e3494bc021c8aE.exit7.i.i" ], [ 0, %"_ZN4core3str21_$LT$impl$u20$str$GT$16is_char_boundary17hec6e3494bc021c8aE.exit.i.i" ], [ 0, %7 ], [ 0, %24 ], [ 0, %31 ], [ 0, %3 ] %53 = insertvalue { i64, i64 } poison, i64 %.sroa.0.1, 0 %54 = insertvalue { i64, i64 } %53, i64 %.sroa.4.1, 1 ret { i64, i64 } %54 diff --git a/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll b/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll index 695d06c38b6..afbbc1bce11 100644 --- a/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll +++ b/bench/typst-rs/optimized/1fd2xpfefmgrcb9d.ll @@ -1032,7 +1032,7 @@ define hidden noundef zeroext i1 @_ZN10ttf_parser6tables4cmap7format29Subtable21 br label %12 12: ; preds = %3, %.thread83 - %indvars.iv = phi i64 [ 0, %3 ], [ %indvars.iv.next, %.thread83 ] + %indvars.iv = phi i64 [ 0, %3 ], [ %indvars.iv.next, %.thread75 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond92.not = icmp eq i64 %indvars.iv, %wide.trip.count br i1 %exitcond92.not, label %.thread, label %13 @@ -1045,7 +1045,7 @@ define hidden noundef zeroext i1 @_ZN10ttf_parser6tables4cmap7format29Subtable21 br i1 %16, label %.thread, label %18 .thread: ; preds = %18, %23, %13, %12, %.thread83, %34, %37, %.lr.ph - %17 = phi i1 [ false, %.lr.ph ], [ false, %37 ], [ false, %34 ], [ true, %.thread83 ], [ false, %12 ], [ false, %13 ], [ false, %23 ], [ false, %18 ] + %17 = phi i1 [ false, %.lr.ph ], [ false, %18 ], [ false, %23 ], [ false, %37 ], [ false, %34 ], [ true, %.thread75 ], [ false, %12 ], [ false, %13 ] ret i1 %17 18: ; preds = %13 @@ -1089,11 +1089,7 @@ define hidden noundef zeroext i1 @_ZN10ttf_parser6tables4cmap7format29Subtable21 .preheader: ; preds = %37 %.not = icmp eq i16 %.val.i.i.i49.i.i.i, 0 - br i1 %.not, label %.thread83, label %.lr.ph.preheader - -.lr.ph.preheader: ; preds = %.preheader - %umax = tail call i16 @llvm.umax.i16(i16 %32, i16 1) - br label %.lr.ph + br i1 %.not, label %.thread83, label %.lr.ph 42: ; preds = %34 %43 = extractvalue { i16, i1 } %35, 0 @@ -1113,8 +1109,8 @@ define hidden noundef zeroext i1 @_ZN10ttf_parser6tables4cmap7format29Subtable21 %exitcond93 = icmp eq i64 %indvars.iv.next, 256 br i1 %exitcond93, label %.thread, label %12 -.lr.ph: ; preds = %.lr.ph.preheader, %52 - %.sroa.017.088 = phi i16 [ %55, %52 ], [ 0, %.lr.ph.preheader ] +.lr.ph: ; preds = %.preheader, %52 + %.sroa.017.088 = phi i16 [ %55, %52 ], [ 0, %.preheader ] %50 = tail call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %41, i16 %.sroa.017.088) %51 = extractvalue { i16, i1 } %50, 1 br i1 %51, label %.thread, label %52 @@ -1124,7 +1120,7 @@ define hidden noundef zeroext i1 @_ZN10ttf_parser6tables4cmap7format29Subtable21 %54 = zext i16 %53 to i32 %55 = add nuw i16 %.sroa.017.088, 1 tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull %1, ptr nonnull %2, i32 noundef %54) - %exitcond.not = icmp eq i16 %55, %umax + %exitcond.not = icmp eq i16 %55, %32 br i1 %exitcond.not, label %.thread83, label %.lr.ph } @@ -1301,7 +1297,7 @@ default.unreachable61: ; preds = %3 br label %29 29: ; preds = %.thread83.i, %19 - %indvars.iv.i = phi i64 [ 0, %19 ], [ %indvars.iv.next.i, %.thread83.i ] + %indvars.iv.i = phi i64 [ 0, %19 ], [ %indvars.iv.next.i, %.thread75.i ] %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond92.not.i = icmp eq i64 %indvars.iv.i, %wide.trip.count.i br i1 %exitcond92.not.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %30 @@ -1354,11 +1350,7 @@ default.unreachable61: ; preds = %3 .preheader.i: ; preds = %53 %.not.i = icmp eq i16 %.val.i.i.i49.i.i.i.i, 0 - br i1 %.not.i, label %.thread83.i, label %.lr.ph.preheader.i - -.lr.ph.preheader.i: ; preds = %.preheader.i - %umax.i = tail call i16 @llvm.umax.i16(i16 %48, i16 1) - br label %.lr.ph.i1 + br i1 %.not.i, label %.thread83.i, label %.lr.ph.i1 58: ; preds = %50 %59 = extractvalue { i16, i1 } %51, 0 @@ -1378,8 +1370,8 @@ default.unreachable61: ; preds = %3 %exitcond93.i = icmp eq i64 %indvars.iv.next.i, 256 br i1 %exitcond93.i, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %29 -.lr.ph.i1: ; preds = %68, %.lr.ph.preheader.i - %.sroa.017.088.i = phi i16 [ %71, %68 ], [ 0, %.lr.ph.preheader.i ] +.lr.ph.i1: ; preds = %.preheader.i, %68 + %.sroa.017.088.i = phi i16 [ %71, %68 ], [ 0, %.preheader.i ] %66 = tail call { i16, i1 } @llvm.uadd.with.overflow.i16(i16 %57, i16 %.sroa.017.088.i) %67 = extractvalue { i16, i1 } %66, 1 br i1 %67, label %_ZN10ttf_parser6tables4cmap7format09Subtable010codepoints17h893fde1fa5cf70c4E.llvm.15772558698018558306.exit, label %68 @@ -1389,7 +1381,7 @@ default.unreachable61: ; preds = %3 %70 = zext i16 %69 to i32 %71 = add nuw i16 %.sroa.017.088.i, 1 tail call fastcc void @"_ZN9typst_pdf4font11create_cmap28_$u7b$$u7b$closure$u7d$$u7d$17h88fbb936706a4789E"(ptr nonnull readonly align 8 dereferenceable(2456) %1, ptr nonnull align 8 dereferenceable(24) %2, i32 noundef %70), !noalias !202 - %exitcond.not.i = icmp eq i16 %71, %umax.i + %exitcond.not.i = icmp eq i16 %71, %48 br i1 %exitcond.not.i, label %.thread83.i, label %.lr.ph.i1 72: ; preds = %3 @@ -1889,7 +1881,7 @@ define hidden void @_ZN10xmp_writer5types7Element15unordered_array17he5bf452ef87 26: ; preds = %24 %27 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #30, !noalias !411 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #29, !noalias !411 unreachable 28: ; preds = %23 @@ -2220,7 +2212,7 @@ define hidden void @"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17hb2528 "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i.i": ; preds = %2 %5 = shl nsw i64 %1, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %0, i64 noundef %5, i64 noundef 8) #31, !noalias !470 + tail call void @__rust_dealloc(ptr noundef nonnull %0, i64 noundef %5, i64 noundef 8) #30, !noalias !470 br label %"_ZN4core3ptr123drop_in_place$LT$alloc..boxed..Box$LT$$u5b$core..mem..maybe_uninit..MaybeUninit$LT$rayon_core..job..JobRef$GT$$u5d$$GT$$GT$17hafa28bc3a4bbeb87E.llvm.15772558698018558306.exit" "_ZN4core3ptr123drop_in_place$LT$alloc..boxed..Box$LT$$u5b$core..mem..maybe_uninit..MaybeUninit$LT$rayon_core..job..JobRef$GT$$u5d$$GT$$GT$17hafa28bc3a4bbeb87E.llvm.15772558698018558306.exit": ; preds = %2, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i.i" @@ -3127,7 +3119,7 @@ _ZN5alloc6string6String4push17h5bf80ac19761e8d5E.exit.i.i: ; preds = %.noexc.i.i 254: ; preds = %45 %255 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #30, !noalias !527 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #29, !noalias !527 unreachable common.resume.i: ; preds = %260, %45 @@ -3166,13 +3158,13 @@ _ZN9typst_pdf7deflate17h92d94c5f2a53d74bE.exit.i: ; preds = %_ZN9typst_pdf5color 268: ; preds = %264 %269 = load ptr, ptr %2, align 8, !noalias !573, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %269, i64 noundef %266, i64 noundef %263) #31, !noalias !524 + call void @__rust_dealloc(ptr noundef nonnull %269, i64 noundef %266, i64 noundef %263) #30, !noalias !524 br label %"_ZN9typst_pdf5color14OKLAB_DEFLATED28_$u7b$$u7b$closure$u7d$$u7d$17h1cd225c94609f7f5E.exit" 270: ; preds = %260 %271 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #30, !noalias !524 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #29, !noalias !524 unreachable "_ZN9typst_pdf5color14OKLAB_DEFLATED28_$u7b$$u7b$closure$u7d$$u7d$17h1cd225c94609f7f5E.exit": ; preds = %_ZN9typst_pdf7deflate17h92d94c5f2a53d74bE.exit.i, %264, %268 @@ -3243,7 +3235,7 @@ define hidden void @"_ZN4core3ptr123drop_in_place$LT$alloc..boxed..Box$LT$$u5b$c "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i": ; preds = %1 %5 = shl nsw i64 %3, 4 %6 = load ptr, ptr %0, align 8, !alias.scope !600, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %6, i64 noundef %5, i64 noundef 8) #31, !noalias !600 + tail call void @__rust_dealloc(ptr noundef nonnull %6, i64 noundef %5, i64 noundef 8) #30, !noalias !600 br label %"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h74d59c3084d5ef61E.llvm.15772558698018558306.exit" "_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h74d59c3084d5ef61E.llvm.15772558698018558306.exit": ; preds = %1, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i" @@ -3773,7 +3765,7 @@ define hidden noundef nonnull align 4 dereferenceable(4) ptr @"_ZN4core6option15 store ptr @anon.1b7987214e1788f2afe69ae5dc3ac248.11.llvm.15772558698018558306, ptr %12, align 8, !noalias !655 %13 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 0, ptr %13, align 8, !noalias !655 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #29, !noalias !651 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #28, !noalias !651 unreachable "_ZN9typst_pdf5color11ColorSpaces4srgb28_$u7b$$u7b$closure$u7d$$u7d$17ha892c23f7c1c817fE.llvm.15772558698018558306.exit": ; preds = %6 @@ -3810,7 +3802,7 @@ define hidden noundef nonnull align 4 dereferenceable(4) ptr @"_ZN4core6option15 store ptr @anon.1b7987214e1788f2afe69ae5dc3ac248.11.llvm.15772558698018558306, ptr %12, align 8, !noalias !661 %13 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 0, ptr %13, align 8, !noalias !661 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #29, !noalias !658 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #28, !noalias !658 unreachable "_ZN9typst_pdf5color11ColorSpaces8d65_gray28_$u7b$$u7b$closure$u7d$$u7d$17h069079df7e02dc5aE.llvm.15772558698018558306.exit": ; preds = %6 @@ -3847,7 +3839,7 @@ define hidden noundef nonnull align 4 dereferenceable(4) ptr @"_ZN4core6option15 store ptr @anon.1b7987214e1788f2afe69ae5dc3ac248.11.llvm.15772558698018558306, ptr %12, align 8, !noalias !667 %13 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 0, ptr %13, align 8, !noalias !667 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #29, !noalias !664 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #28, !noalias !664 unreachable "_ZN9typst_pdf5color11ColorSpaces5oklab28_$u7b$$u7b$closure$u7d$$u7d$17hb0d4440e8cf56fb5E.llvm.15772558698018558306.exit": ; preds = %6 @@ -4382,7 +4374,7 @@ _ZN3std9panicking3try17h975c717ff7089a2eE.exit.thread.i.i: ; preds = %1 26: ; preds = %45, %24 %27 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #30, !noalias !720 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #29, !noalias !720 unreachable .critedge.i.i: ; preds = %12 @@ -4407,7 +4399,7 @@ _ZN3std9panicking3try17h975c717ff7089a2eE.exit.thread.i.i: ; preds = %1 br i1 %37, label %.body.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i.i.i.i": ; preds = %30 - call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %33, i64 noundef %35) #31, !noalias !720 + call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %33, i64 noundef %35) #30, !noalias !720 br label %.body.i 38: ; preds = %28 @@ -4421,7 +4413,7 @@ _ZN3std9panicking3try17h975c717ff7089a2eE.exit.thread.i.i: ; preds = %1 br i1 %44, label %52, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i4.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i4.i.i.i": ; preds = %38 - call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %40, i64 noundef %42) #31, !noalias !720 + call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %40, i64 noundef %42) #30, !noalias !720 br label %52 45: ; preds = %.critedge.i.i @@ -4539,7 +4531,7 @@ _ZN3std9panicking3try17h771e0b4e1d70a5f2E.exit.thread.i.i: ; preds = %1 23: ; preds = %42, %21 %24 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #30, !noalias !747 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #29, !noalias !747 unreachable .critedge.i.i: ; preds = %8 @@ -4564,7 +4556,7 @@ _ZN3std9panicking3try17h771e0b4e1d70a5f2E.exit.thread.i.i: ; preds = %1 br i1 %34, label %.body.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i.i.i.i": ; preds = %27 - call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %30, i64 noundef %32) #31, !noalias !747 + call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %30, i64 noundef %32) #30, !noalias !747 br label %.body.i 35: ; preds = %25 @@ -4578,7 +4570,7 @@ _ZN3std9panicking3try17h771e0b4e1d70a5f2E.exit.thread.i.i: ; preds = %1 br i1 %41, label %49, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i4.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.15772558698018558306.exit.i4.i.i.i": ; preds = %35 - call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %37, i64 noundef %39) #31, !noalias !747 + call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %37, i64 noundef %39) #30, !noalias !747 br label %49 42: ; preds = %.critedge.i.i @@ -5392,7 +5384,7 @@ define hidden noundef range(i32 1, 0) i32 @_ZN9typst_pdf5color11ColorSpaces5okla store ptr @anon.1b7987214e1788f2afe69ae5dc3ac248.11.llvm.15772558698018558306, ptr %12, align 8, !noalias !869 %13 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 0, ptr %13, align 8, !noalias !869 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #29, !noalias !872 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #28, !noalias !872 unreachable "_ZN9typst_pdf5color11ColorSpaces5oklab28_$u7b$$u7b$closure$u7d$$u7d$17hb0d4440e8cf56fb5E.llvm.15772558698018558306.exit.i": ; preds = %6 @@ -5460,7 +5452,7 @@ define hidden noundef range(i32 1, 0) i32 @_ZN9typst_pdf5color11ColorSpaces4srgb store ptr @anon.1b7987214e1788f2afe69ae5dc3ac248.11.llvm.15772558698018558306, ptr %13, align 8, !noalias !885 %14 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 0, ptr %14, align 8, !noalias !885 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #29, !noalias !888 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #28, !noalias !888 unreachable "_ZN9typst_pdf5color11ColorSpaces4srgb28_$u7b$$u7b$closure$u7d$$u7d$17ha892c23f7c1c817fE.llvm.15772558698018558306.exit.i": ; preds = %7 @@ -5528,7 +5520,7 @@ define hidden noundef range(i32 1, 0) i32 @_ZN9typst_pdf5color11ColorSpaces8d65_ store ptr @anon.1b7987214e1788f2afe69ae5dc3ac248.11.llvm.15772558698018558306, ptr %13, align 8, !noalias !901 %14 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 0, ptr %14, align 8, !noalias !901 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #29, !noalias !904 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #28, !noalias !904 unreachable "_ZN9typst_pdf5color11ColorSpaces8d65_gray28_$u7b$$u7b$closure$u7d$$u7d$17h069079df7e02dc5aE.llvm.15772558698018558306.exit.i": ; preds = %7 @@ -5658,7 +5650,7 @@ tailrecurse: ; preds = %tailrecurse, %4 store ptr @anon.1b7987214e1788f2afe69ae5dc3ac248.11.llvm.15772558698018558306, ptr %37, align 8, !noalias !924 %38 = getelementptr inbounds nuw i8, ptr %11, i64 24 store i64 0, ptr %38, align 8, !noalias !924 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %11, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #29, !noalias !927 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %11, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #28, !noalias !927 unreachable "_ZN9typst_pdf5color11ColorSpaces4srgb28_$u7b$$u7b$closure$u7d$$u7d$17ha892c23f7c1c817fE.llvm.15772558698018558306.exit.i.i": ; preds = %31 @@ -5699,7 +5691,7 @@ _ZN9typst_pdf5color11ColorSpaces4srgb17h4ec87fecbdf7d9adE.exit: ; preds = %27, % store ptr @anon.1b7987214e1788f2afe69ae5dc3ac248.11.llvm.15772558698018558306, ptr %51, align 8, !noalias !944 %52 = getelementptr inbounds nuw i8, ptr %10, i64 24 store i64 0, ptr %52, align 8, !noalias !944 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #29, !noalias !947 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1b7987214e1788f2afe69ae5dc3ac248.102.llvm.15772558698018558306) #28, !noalias !947 unreachable "_ZN9typst_pdf5color11ColorSpaces8d65_gray28_$u7b$$u7b$closure$u7d$$u7d$17h069079df7e02dc5aE.llvm.15772558698018558306.exit.i.i": ; preds = %45 @@ -9093,9 +9085,6 @@ declare hidden noundef align 8 dereferenceable(16) ptr @"_ZN5alloc11collections5 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) declare void @llvm.experimental.noalias.scope.decl(metadata) #27 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i16 @llvm.umax.i16(i16, i16) #28 - attributes #0 = { alwaysinline mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #1 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(read, argmem: readwrite, inaccessiblemem: readwrite) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #2 = { inlinehint nofree norecurse nosync nounwind nonlazybind memory(read, argmem: readwrite, inaccessiblemem: readwrite) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } @@ -9124,11 +9113,10 @@ attributes #24 = { cold noreturn nounwind memory(inaccessiblemem: write) } attributes #25 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #26 = { cold nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #27 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } -attributes #28 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #29 = { noreturn } -attributes #30 = { cold noreturn nounwind } -attributes #31 = { nounwind } -attributes #32 = { cold } +attributes #28 = { noreturn } +attributes #29 = { cold noreturn nounwind } +attributes #30 = { nounwind } +attributes #31 = { cold } !llvm.module.flags = !{!0, !1, !2} !llvm.ident = !{!3} diff --git a/bench/uv-rs/optimized/0qkl8r8szphiev5qfee0uvoca.ll b/bench/uv-rs/optimized/0qkl8r8szphiev5qfee0uvoca.ll index 85fef0cc611..c560724ca3c 100644 --- a/bench/uv-rs/optimized/0qkl8r8szphiev5qfee0uvoca.ll +++ b/bench/uv-rs/optimized/0qkl8r8szphiev5qfee0uvoca.ll @@ -8196,11 +8196,10 @@ _ZN9uv_client5error19WrappedReqwestError6is_ssl17h27a11a21f4a0495bE.exit: ; pred define noundef zeroext i1 @_ZN9uv_client5error5Error34is_http_range_requests_unsupported17hf4d250105d2eadfbE(ptr noalias noundef readonly align 8 captures(none) dereferenceable(8) %0) unnamed_addr #4 personality ptr @rust_eh_personality { %2 = load ptr, ptr %0, align 8, !nonnull !4, !align !53, !noundef !4 %3 = load i64, ptr %2, align 8, !range !463, !noundef !4 - %4 = xor i64 %3, -9223372036854775808 - switch i64 %4, label %26 [ - i64 11, label %5 - i64 14, label %switch.lookup - i64 17, label %12 + switch i64 %3, label %25 [ + i64 -9223372036854775797, label %4 + i64 -9223372036854775794, label %switch.lookup + i64 -9223372036854775791, label %11 ] 5: ; preds = %1 @@ -8247,7 +8246,7 @@ switch.lookup13: ; preds = %22 br label %26 26: ; preds = %22, %switch.lookup13, %switch.lookup, %27, %44, %32, %16, %5, %1, %12 - %.sroa.0.0 = phi i1 [ false, %12 ], [ false, %1 ], [ false, %5 ], [ false, %16 ], [ false, %32 ], [ %46, %44 ], [ false, %27 ], [ %switch.masked, %switch.lookup ], [ %switch.masked17, %switch.lookup13 ], [ false, %22 ] + %.sroa.0.0 = phi i1 [ false, %11 ], [ false, %1 ], [ false, %4 ], [ false, %15 ], [ false, %31 ], [ %46, %43 ], [ false, %26 ], [ %switch.masked, %switch.lookup ], [ %switch.masked17, %switch.lookup13 ], [ false, %21 ] ret i1 %.sroa.0.0 27: ; preds = %12 diff --git a/bench/wasmtime-rs/optimized/1spnjfu340nob5zr.ll b/bench/wasmtime-rs/optimized/1spnjfu340nob5zr.ll index da80898e492..afbd270c4c4 100644 --- a/bench/wasmtime-rs/optimized/1spnjfu340nob5zr.ll +++ b/bench/wasmtime-rs/optimized/1spnjfu340nob5zr.ll @@ -3930,8 +3930,8 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17hceedbacc4195eaf3E.exit.i.i: ; br i1 %121, label %225, label %230 122: ; preds = %118 - %.sroa.8.1.i = load i64, ptr %.sroa.8.1.in.i, align 8, !noalias !438 %.sroa.9.1.i = load i64, ptr %.sroa.9.1.in.i, align 8, !noalias !438 + %.sroa.8.1.i = load i64, ptr %.sroa.8.1.in.i, align 8, !noalias !438 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %37) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %38) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %39) diff --git a/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll b/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll index dc61767bb36..cd5d6d5fed7 100644 --- a/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll +++ b/bench/wasmtime-rs/optimized/t1qxt6oh6s98so1.ll @@ -22997,7 +22997,7 @@ define internal void @"_ZN8wasmtime7runtime11instantiate14CompiledModule28regist %15 = extractvalue { i64, i64 } %14, 1 %16 = and i64 %15, 4294967295 %.not.i = icmp ugt i64 %13, %16 - br i1 %.not.i, label %17, label %35 + br i1 %.not.i, label %17, label %.critedge .split.i: ; preds = %3 call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %4), !noalias !6588 @@ -23010,41 +23010,44 @@ define internal void @"_ZN8wasmtime7runtime11instantiate14CompiledModule28regist %20 = getelementptr inbounds nuw i8, ptr %18, i64 4 %21 = load i32, ptr %20, align 4, !noalias !6588, !noundef !4 %22 = add i32 %21, %19 - %23 = icmp ugt i32 %19, %9 - %24 = icmp ult i32 %22, %9 - %or.cond.i = or i1 %23, %24 - br i1 %or.cond.i, label %35, label %25 - -25: ; preds = %17 + %23 = icmp ule i32 %19, %9 + %24 = icmp uge i32 %22, %9 + %or.cond.i.not.not.not = and i1 %23, %24 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5), !noalias !6588 - %26 = getelementptr inbounds nuw i8, ptr %7, i64 112 - %27 = load ptr, ptr %26, align 8, !nonnull !4, !noundef !4 - %28 = getelementptr inbounds nuw i8, ptr %27, i64 440 - %29 = load i64, ptr %28, align 8, !noundef !4 - %30 = add i64 %29, %15 - %31 = trunc i64 %30 to i32 - %32 = call { ptr, i64 } @_ZN8wasmtime7runtime11instantiate14CompiledModule9func_name17hcb2934f236ce5f44E(ptr noalias noundef nonnull readonly align 8 dereferenceable(160) %7, i32 noundef %31) - %33 = extractvalue { ptr, i64 } %32, 0 - %34 = icmp eq ptr %33, null - br i1 %34, label %39, label %36 - -35: ; preds = %17, %.split12.i + br i1 %or.cond.i.not.not.not, label %24, label %34 + +24: ; preds = %17 + %25 = getelementptr inbounds nuw i8, ptr %7, i64 112 + %26 = load ptr, ptr %25, align 8, !nonnull !4, !noundef !4 + %27 = getelementptr inbounds nuw i8, ptr %26, i64 440 + %28 = load i64, ptr %27, align 8, !noundef !4 + %29 = add i64 %28, %15 + %30 = trunc i64 %29 to i32 + %31 = call { ptr, i64 } @_ZN8wasmtime7runtime11instantiate14CompiledModule9func_name17hcb2934f236ce5f44E(ptr noalias noundef nonnull readonly align 8 dereferenceable(160) %7, i32 noundef %30) + %32 = extractvalue { ptr, i64 } %31, 0 + %33 = icmp eq ptr %32, null + br i1 %33, label %38, label %35 + +.critedge: ; preds = %.split12.i call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5), !noalias !6588 + br label %34 + +34: ; preds = %.critedge, %_ZN8wasmtime7runtime11instantiate14CompiledModule19func_by_text_offset17h9770699f0ea99e70E.exit store i64 -9223372036854775808, ptr %0, align 8 br label %45 -36: ; preds = %25 - %37 = extractvalue { ptr, i64 } %32, 1 +36: ; preds = %24 + %37 = extractvalue { ptr, i64 } %31, 1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) store i64 0, ptr %6, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 8 store ptr inttoptr (i64 1 to ptr), ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.57.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 16 store i64 0, ptr %.sroa.57.0..sroa_idx, align 8 - %38 = invoke noundef zeroext i1 @_ZN16wasmtime_environ10demangling22demangle_function_name17h4bd2314bb766fcf6E(ptr noalias noundef nonnull align 8 dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 1 %33, i64 noundef %37) - to label %42 unwind label %40 + %38 = invoke noundef zeroext i1 @_ZN16wasmtime_environ10demangling22demangle_function_name17h4bd2314bb766fcf6E(ptr noalias noundef nonnull align 8 dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 1 %32, i64 noundef %37) + to label %41 unwind label %40 -39: ; preds = %25 +39: ; preds = %24 store i64 -9223372036854775808, ptr %0, align 8 br label %45 @@ -23052,7 +23055,7 @@ define internal void @"_ZN8wasmtime7runtime11instantiate14CompiledModule28regist %41 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17he1bee15603eaa80eE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6) #52 - to label %48 unwind label %46 + to label %47 unwind label %46 42: ; preds = %36 call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %4) @@ -23071,7 +23074,7 @@ define internal void @"_ZN8wasmtime7runtime11instantiate14CompiledModule28regist call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) br label %45 -45: ; preds = %44, %39, %35 +45: ; preds = %44, %39, %34 ret void 46: ; preds = %40 diff --git a/bench/wireshark/optimized/packet-wassp.ll b/bench/wireshark/optimized/packet-wassp.ll index 183599b45b1..afacb6d3b94 100644 --- a/bench/wireshark/optimized/packet-wassp.ll +++ b/bench/wireshark/optimized/packet-wassp.ll @@ -2049,13 +2049,12 @@ define internal void @topology_moder_print(ptr noundef %0, i16 noundef zeroext % %3 = zext i16 %1 to i32 %4 = and i16 %1, 4095 %5 = lshr i16 %1, 14 - %6 = xor i16 %5, 2 %.not35 = icmp eq i16 %4, 0 - switch i16 %6, label %default.unreachable [ - i16 1, label %7 - i16 3, label %13 - i16 0, label %19 - i16 2, label %25 + switch i16 %5, label %default.unreachable [ + i16 3, label %7 + i16 1, label %13 + i16 2, label %19 + i16 0, label %25 ] 7: ; preds = %2 diff --git a/bench/zed-rs/optimized/0ndq4firz8eetu3jvgre1the4.ll b/bench/zed-rs/optimized/0ndq4firz8eetu3jvgre1the4.ll index 161d39ea8c4..0cca3e47518 100644 --- a/bench/zed-rs/optimized/0ndq4firz8eetu3jvgre1the4.ll +++ b/bench/zed-rs/optimized/0ndq4firz8eetu3jvgre1the4.ll @@ -6864,10 +6864,9 @@ define hidden void @"_ZN6picker15Picker$LT$D$GT$21on_input_editor_event17h090735 9: ; preds = %4 %10 = load i64, ptr %2, align 8, !range !1533, !noundef !11 - %11 = xor i64 %10, -9223372036854775808 - switch i64 %11, label %17 [ - i64 6, label %24 - i64 11, label %26 + switch i64 %10, label %16 [ + i64 -9223372036854775802, label %23 + i64 -9223372036854775797, label %25 ] 12: ; preds = %4 @@ -6882,7 +6881,7 @@ define hidden void @"_ZN6picker15Picker$LT$D$GT$21on_input_editor_event17h090735 %16 = getelementptr inbounds nuw i8, ptr %6, i64 24 store i64 0, ptr %16, align 8 invoke void @_ZN4core9panicking9panic_fmt17h3d8fc78294164da7E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %6, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.8a6104581e0d5fbaba64bd06a4c06e91.33.llvm.10195834269113055862) #31 - to label %52 unwind label %27 + to label %51 unwind label %27 17: ; preds = %26, %51, %9 invoke void @"_ZN73_$LT$gpui..app..entity_map..AnyModel$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdbe4415b1c233cccE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %1) @@ -6902,7 +6901,7 @@ define hidden void @"_ZN6picker15Picker$LT$D$GT$21on_input_editor_event17h090735 unreachable common.resume: ; preds = %27, %18 - %common.resume.op = phi { ptr, i32 } [ %19, %18 ], [ %28, %27 ] + %common.resume.op = phi { ptr, i32 } [ %19, %17 ], [ %28, %26 ] resume { ptr, i32 } %common.resume.op "_ZN4core3ptr59drop_in_place$LT$gpui..view..View$LT$editor..Editor$GT$$GT$17h7f0b513e498e92cdE.exit": ; preds = %17 @@ -6912,11 +6911,11 @@ common.resume: ; preds = %27, %18 24: ; preds = %9 %25 = invoke noundef align 8 dereferenceable(1176) ptr @"_ZN71_$LT$gpui..window..WindowContext$u20$as$u20$core..ops..deref..Deref$GT$5deref17hc63f9d594dbf0052E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) - to label %29 unwind label %27 + to label %28 unwind label %27 26: ; preds = %9 invoke void @"_ZN6picker15Picker$LT$D$GT$6cancel17h05186f101dada4baE"(ptr noalias nonnull align 8 poison, ptr noalias nonnull readonly align 1 poison, ptr noalias noundef nonnull align 8 dereferenceable(24) %3) - to label %17 unwind label %27 + to label %16 unwind label %27 27: ; preds = %48, %"_ZN98_$LT$slotmap..secondary..SecondaryMap$LT$K$C$V$GT$$u20$as$u20$core..ops..index..Index$LT$K$GT$$GT$5index17h5a8760891650621bE.exit.i", %37, %.noexc, %29, %51, %50, %_ZN4gpui3app10entity_map9EntityMap4read17h7814d0ea0f529860E.exit, %26, %24, %12 %28 = landingpad { ptr, i32 } @@ -6954,7 +6953,7 @@ common.resume: ; preds = %27, %18 %40 = load ptr, ptr %39, align 8, !nonnull !11, !align !792, !noundef !11 %41 = getelementptr inbounds nuw i8, ptr %40, i64 24 %42 = load ptr, ptr %41, align 8, !invariant.load !11, !alias.scope !1540, !nonnull !11 - %43 = invoke { i64, i64 } %42(ptr noundef nonnull align 1 %38) + %43 = invoke { i64, i64 } %41(ptr noundef nonnull align 1 %38) to label %.noexc3 unwind label %27 .noexc3: ; preds = %"_ZN98_$LT$slotmap..secondary..SecondaryMap$LT$K$C$V$GT$$u20$as$u20$core..ops..index..Index$LT$K$GT$$GT$5index17h5a8760891650621bE.exit.i" @@ -6974,15 +6973,15 @@ common.resume: ; preds = %27, %18 _ZN4gpui3app10entity_map9EntityMap4read17h7814d0ea0f529860E.exit: ; preds = %.noexc3 %49 = invoke noundef align 8 dereferenceable(1176) ptr @"_ZN71_$LT$gpui..window..WindowContext$u20$as$u20$core..ops..deref..Deref$GT$5deref17hc63f9d594dbf0052E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) - to label %50 unwind label %27 + to label %49 unwind label %27 50: ; preds = %_ZN4gpui3app10entity_map9EntityMap4read17h7814d0ea0f529860E.exit invoke void @_ZN6editor6Editor4text17h6d599862b174dc2aE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, ptr noundef nonnull align 8 %38, ptr noalias noundef nonnull readonly align 8 dereferenceable(1176) %49) - to label %51 unwind label %27 + to label %50 unwind label %27 51: ; preds = %50 invoke void @"_ZN6picker15Picker$LT$D$GT$14update_matches17h35640ff1fda0047eE.llvm.10195834269113055862"(ptr noalias noundef nonnull align 8 dereferenceable(232) %0, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull align 8 dereferenceable(24) %3) - to label %17 unwind label %27 + to label %16 unwind label %27 52: ; preds = %12 unreachable diff --git a/bench/zed-rs/optimized/0npw9rg0wengltga49c0tfins.ll b/bench/zed-rs/optimized/0npw9rg0wengltga49c0tfins.ll index 4373b59617d..777c97f601f 100644 --- a/bench/zed-rs/optimized/0npw9rg0wengltga49c0tfins.ll +++ b/bench/zed-rs/optimized/0npw9rg0wengltga49c0tfins.ll @@ -112929,10 +112929,9 @@ define internal void @"_ZN9assistant15assistant_panel13ContextEditor19update_ima define hidden void @"_ZN83_$LT$assistant..assistant_panel..ContextEditor$u20$as$u20$workspace..item..Item$GT$14to_item_events17h04afce98dd43b0bcE"(ptr noalias noundef readonly align 8 captures(none) dereferenceable(64) %0, ptr noalias noundef readonly align 8 captures(none) dereferenceable(32) %1) unnamed_addr #1 personality ptr @rust_eh_personality { %3 = alloca [32 x i8], align 8 %4 = load i64, ptr %0, align 8, !range !31608, !noundef !5 - %5 = xor i64 %4, -9223372036854775808 - switch i64 %5, label %6 [ - i64 7, label %7 - i64 14, label %26 + switch i64 %4, label %5 [ + i64 -9223372036854775801, label %6 + i64 -9223372036854775794, label %25 ] 6: ; preds = %"_ZN73_$LT$gpui..view..View$LT$T$GT$$u20$as$u20$workspace..item..ItemHandle$GT$13added_to_pane28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h06e7265a5c217637E.llvm.13457682623898008968.exit", %26, %2 @@ -112982,10 +112981,9 @@ define hidden void @"_ZN83_$LT$assistant..assistant_panel..ContextEditor$u20$as$ ; Function Attrs: nonlazybind uwtable define hidden void @"_ZN83_$LT$assistant..assistant_panel..ContextEditor$u20$as$u20$workspace..item..Item$GT$14to_item_events17hf7046d4fc8f7b4a1E"(ptr noalias noundef readonly align 8 captures(none) dereferenceable(64) %0, ptr noalias noundef readonly align 8 captures(none) dereferenceable(16) %1, ptr noalias noundef align 8 dereferenceable(16) %2) unnamed_addr #1 personality ptr @rust_eh_personality { %4 = load i64, ptr %0, align 8, !range !31608, !noundef !5 - %5 = xor i64 %4, -9223372036854775808 - switch i64 %5, label %11 [ - i64 7, label %.sink.split - i64 14, label %12 + switch i64 %4, label %10 [ + i64 -9223372036854775801, label %.sink.split + i64 -9223372036854775794, label %11 ] .sink.split: ; preds = %3, %12 @@ -112995,7 +112993,7 @@ define hidden void @"_ZN83_$LT$assistant..assistant_panel..ContextEditor$u20$as$ %8 = load ptr, ptr %7, align 8, !noalias !5, !nonnull !5, !align !94, !noundef !5 %9 = getelementptr inbounds nuw i8, ptr %8, i64 40 %10 = load ptr, ptr %9, align 8, !invariant.load !5, !noalias !5, !nonnull !5 - tail call void %10(ptr noundef nonnull align 1 %6, i8 noundef %.sink3, ptr noalias noundef nonnull align 8 dereferenceable(16) %2), !noalias !5 + tail call void %9(ptr noundef nonnull align 1 %6, i8 noundef %.sink3, ptr noalias noundef nonnull align 8 dereferenceable(16) %2), !noalias !5 br label %11 11: ; preds = %.sink.split, %3 diff --git a/bench/zed-rs/optimized/1x0js6flb76ylaa82e6lu27uy.ll b/bench/zed-rs/optimized/1x0js6flb76ylaa82e6lu27uy.ll index d87c79e4750..9649c3e8b8d 100644 --- a/bench/zed-rs/optimized/1x0js6flb76ylaa82e6lu27uy.ll +++ b/bench/zed-rs/optimized/1x0js6flb76ylaa82e6lu27uy.ll @@ -29018,10 +29018,9 @@ define hidden void @"_ZN67_$LT$gpui..window..WindowContext$u20$as$u20$gpui..Visu %48 = getelementptr inbounds nuw i8, ptr %4, i64 48 store ptr %7, ptr %48, align 8, !noalias !4733 %.val.i = load i64, ptr %46, align 8, !range !1241, !noalias !4730, !noundef !13 - %49 = xor i64 %.val.i, -9223372036854775808 - switch i64 %49, label %50 [ - i64 8, label %57 - i64 16, label %56 + switch i64 %.val.i, label %49 [ + i64 -9223372036854775800, label %56 + i64 -9223372036854775792, label %55 ] 50: ; preds = %"_ZN84_$LT$gpui..app..entity_map..Lease$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h8f8c9efbeefa655eE.exit" @@ -29033,7 +29032,7 @@ define hidden void @"_ZN67_$LT$gpui..window..WindowContext$u20$as$u20$gpui..Visu cleanup %53 = getelementptr inbounds nuw i8, ptr %4, i64 16 invoke void @"_ZN72_$LT$alloc..sync..Weak$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h0f7b8368c0ff6d6cE.llvm.11685156634553254918"(ptr noalias noundef nonnull align 8 dereferenceable(8) %53) - to label %76 unwind label %54, !noalias !4737 + to label %75 unwind label %54, !noalias !4737 54: ; preds = %51 %55 = landingpad { ptr, i32 } @@ -29045,15 +29044,15 @@ define hidden void @"_ZN67_$LT$gpui..window..WindowContext$u20$as$u20$gpui..Visu br label %57 57: ; preds = %56, %"_ZN84_$LT$gpui..app..entity_map..Lease$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h8f8c9efbeefa655eE.exit" - %.sroa.0.0.i.i11 = phi i1 [ false, %56 ], [ true, %"_ZN84_$LT$gpui..app..entity_map..Lease$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h8f8c9efbeefa655eE.exit" ] + %.sroa.0.0.i.i11 = phi i1 [ false, %55 ], [ true, %"_ZN84_$LT$gpui..app..entity_map..Lease$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h8f8c9efbeefa655eE.exit" ] %58 = invoke noundef zeroext i1 @_ZN14language_tools16syntax_tree_view14SyntaxTreeView14editor_updated17hd411c12d57c930aaE(ptr noalias noundef nonnull align 8 dereferenceable(216) %15, i1 noundef zeroext %.sroa.0.0.i.i11, ptr noalias noundef nonnull align 8 dereferenceable(24) %7) - to label %61 unwind label %59, !noalias !4741 + to label %60 unwind label %59, !noalias !4741 59: ; preds = %57 %60 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr59drop_in_place$LT$gpui..view..View$LT$editor..Editor$GT$$GT$17h32b00cd333820679E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %43) #35 - to label %76 unwind label %67, !noalias !4730 + to label %75 unwind label %67, !noalias !4730 61: ; preds = %57 invoke void @"_ZN73_$LT$gpui..app..entity_map..AnyModel$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdbe4415b1c233cccE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %43) @@ -29064,7 +29063,7 @@ define hidden void @"_ZN67_$LT$gpui..window..WindowContext$u20$as$u20$gpui..Visu cleanup %64 = getelementptr inbounds nuw i8, ptr %4, i64 16 invoke void @"_ZN72_$LT$alloc..sync..Weak$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h0f7b8368c0ff6d6cE.llvm.11685156634553254918"(ptr noalias noundef nonnull align 8 dereferenceable(8) %64) - to label %76 unwind label %65, !noalias !4730 + to label %75 unwind label %65, !noalias !4730 65: ; preds = %62 %66 = landingpad { ptr, i32 } @@ -29081,7 +29080,7 @@ define hidden void @"_ZN67_$LT$gpui..window..WindowContext$u20$as$u20$gpui..Visu "_ZN14language_tools16syntax_tree_view14SyntaxTreeView10set_editor28_$u7b$$u7b$closure$u7d$$u7d$17h0e4618fffdfffabaE.exit.i": ; preds = %61, %50 %69 = getelementptr inbounds nuw i8, ptr %4, i64 16 invoke void @"_ZN72_$LT$alloc..sync..Weak$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h0f7b8368c0ff6d6cE.llvm.11685156634553254918"(ptr noalias noundef nonnull align 8 dereferenceable(8) %69) - to label %70 unwind label %.body + to label %69 unwind label %.body 70: ; preds = %"_ZN14language_tools16syntax_tree_view14SyntaxTreeView10set_editor28_$u7b$$u7b$closure$u7d$$u7d$17h0e4618fffdfffabaE.exit.i" call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4), !noalias !4733 @@ -29100,7 +29099,7 @@ define hidden void @"_ZN67_$LT$gpui..window..WindowContext$u20$as$u20$gpui..Visu %lpad.thr_comm = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr377drop_in_place$LT$gpui..window..ViewContext$LT$language_tools..syntax_tree_view..SyntaxTreeView$GT$..subscribe$LT$editor..Editor$C$gpui..view..View$LT$editor..Editor$GT$$C$editor..EditorEvent$C$language_tools..syntax_tree_view..SyntaxTreeView..set_editor..$u7b$$u7b$closure$u7d$$u7d$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$17hf592ddd9a249d827E"(ptr noalias noundef align 8 dereferenceable(48) %6) #35 - to label %76 unwind label %74 + to label %75 unwind label %74 74: ; preds = %78, %76, %73 %75 = landingpad { ptr, i32 } @@ -29109,19 +29108,19 @@ define hidden void @"_ZN67_$LT$gpui..window..WindowContext$u20$as$u20$gpui..Visu unreachable 76: ; preds = %73, %28, %.body, %51, %59, %62 - %.pn.ph = phi { ptr, i32 } [ %29, %28 ], [ %lpad.thr_comm.split-lp, %.body ], [ %lpad.thr_comm, %73 ], [ %52, %51 ], [ %63, %62 ], [ %60, %59 ] - %.sroa.02.1.ph = phi i1 [ true, %28 ], [ false, %.body ], [ false, %73 ], [ false, %51 ], [ false, %62 ], [ false, %59 ] + %.pn.ph = phi { ptr, i32 } [ %29, %28 ], [ %lpad.thr_comm.split-lp, %.body ], [ %lpad.thr_comm, %72 ], [ %52, %50 ], [ %63, %61 ], [ %60, %58 ] + %.sroa.02.1.ph = phi i1 [ true, %28 ], [ false, %.body ], [ false, %72 ], [ false, %50 ], [ false, %61 ], [ false, %58 ] invoke void @"_ZN4core3ptr105drop_in_place$LT$gpui..app..entity_map..Lease$LT$language_tools..syntax_tree_view..SyntaxTreeView$GT$$GT$17h006a75b696019817E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %8) #35 to label %18 unwind label %74 77: ; preds = %78, %18 - %.pn.pn15 = phi { ptr, i32 } [ %.pn.pn16, %78 ], [ %.pn.ph, %18 ] + %.pn.pn15 = phi { ptr, i32 } [ %.pn.pn16, %77 ], [ %.pn.ph, %18 ] resume { ptr, i32 } %.pn.pn15 78: ; preds = %.thread, %18 %.pn.pn16 = phi { ptr, i32 } [ %19, %.thread ], [ %.pn.ph, %18 ] invoke fastcc void @"_ZN4core3ptr377drop_in_place$LT$gpui..window..ViewContext$LT$language_tools..syntax_tree_view..SyntaxTreeView$GT$..subscribe$LT$editor..Editor$C$gpui..view..View$LT$editor..Editor$GT$$C$editor..EditorEvent$C$language_tools..syntax_tree_view..SyntaxTreeView..set_editor..$u7b$$u7b$closure$u7d$$u7d$$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$17hf592ddd9a249d827E"(ptr noalias noundef align 8 dereferenceable(48) %2) #35 - to label %77 unwind label %74 + to label %76 unwind label %74 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/zed-rs/optimized/3tqegt9m5oad3ocos87azd3mb.ll b/bench/zed-rs/optimized/3tqegt9m5oad3ocos87azd3mb.ll index 9796ce2dbaf..09688d31ff7 100644 --- a/bench/zed-rs/optimized/3tqegt9m5oad3ocos87azd3mb.ll +++ b/bench/zed-rs/optimized/3tqegt9m5oad3ocos87azd3mb.ll @@ -18271,10 +18271,9 @@ define hidden void @"_ZN6picker15Picker$LT$D$GT$21on_input_editor_event17hd8f188 9: ; preds = %4 %10 = load i64, ptr %2, align 8, !range !4293, !noundef !19 - %11 = xor i64 %10, -9223372036854775808 - switch i64 %11, label %17 [ - i64 6, label %24 - i64 11, label %26 + switch i64 %10, label %16 [ + i64 -9223372036854775802, label %23 + i64 -9223372036854775797, label %25 ] 12: ; preds = %4 @@ -18289,7 +18288,7 @@ define hidden void @"_ZN6picker15Picker$LT$D$GT$21on_input_editor_event17hd8f188 %16 = getelementptr inbounds nuw i8, ptr %6, i64 24 store i64 0, ptr %16, align 8 invoke void @_ZN4core9panicking9panic_fmt17h3d8fc78294164da7E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %6, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.a96ef8cf56c2ebc0ca9dcbf6f1738a25.80.llvm.5136615322731854219) #39 - to label %52 unwind label %27 + to label %51 unwind label %27 17: ; preds = %26, %51, %9 invoke void @"_ZN73_$LT$gpui..app..entity_map..AnyModel$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdbe4415b1c233cccE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %1) @@ -18309,7 +18308,7 @@ define hidden void @"_ZN6picker15Picker$LT$D$GT$21on_input_editor_event17hd8f188 unreachable common.resume: ; preds = %27, %18 - %common.resume.op = phi { ptr, i32 } [ %19, %18 ], [ %28, %27 ] + %common.resume.op = phi { ptr, i32 } [ %19, %17 ], [ %28, %26 ] resume { ptr, i32 } %common.resume.op "_ZN4core3ptr59drop_in_place$LT$gpui..view..View$LT$editor..Editor$GT$$GT$17ha20554d63737e6feE.exit": ; preds = %17 @@ -18319,11 +18318,11 @@ common.resume: ; preds = %27, %18 24: ; preds = %9 %25 = invoke noundef align 8 dereferenceable(1176) ptr @"_ZN71_$LT$gpui..window..WindowContext$u20$as$u20$core..ops..deref..Deref$GT$5deref17hc63f9d594dbf0052E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) - to label %29 unwind label %27 + to label %28 unwind label %27 26: ; preds = %9 invoke void @"_ZN6picker15Picker$LT$D$GT$6cancel17h7dd021ac94fbebdeE"(ptr noalias noundef nonnull align 8 dereferenceable(216) %0, ptr noalias nonnull readonly align 1 poison, ptr noalias noundef nonnull align 8 dereferenceable(24) %3) - to label %17 unwind label %27 + to label %16 unwind label %27 27: ; preds = %48, %"_ZN98_$LT$slotmap..secondary..SecondaryMap$LT$K$C$V$GT$$u20$as$u20$core..ops..index..Index$LT$K$GT$$GT$5index17h57cb81837824f85fE.exit.i", %37, %.noexc, %29, %51, %50, %_ZN4gpui3app10entity_map9EntityMap4read17ha26659fc2b00fc99E.exit, %26, %24, %12 %28 = landingpad { ptr, i32 } @@ -18361,7 +18360,7 @@ common.resume: ; preds = %27, %18 %40 = load ptr, ptr %39, align 8, !nonnull !19, !align !150, !noundef !19 %41 = getelementptr inbounds nuw i8, ptr %40, i64 24 %42 = load ptr, ptr %41, align 8, !invariant.load !19, !alias.scope !4299, !nonnull !19 - %43 = invoke { i64, i64 } %42(ptr noundef nonnull align 1 %38) + %43 = invoke { i64, i64 } %41(ptr noundef nonnull align 1 %38) to label %.noexc3 unwind label %27 .noexc3: ; preds = %"_ZN98_$LT$slotmap..secondary..SecondaryMap$LT$K$C$V$GT$$u20$as$u20$core..ops..index..Index$LT$K$GT$$GT$5index17h57cb81837824f85fE.exit.i" @@ -18381,15 +18380,15 @@ common.resume: ; preds = %27, %18 _ZN4gpui3app10entity_map9EntityMap4read17ha26659fc2b00fc99E.exit: ; preds = %.noexc3 %49 = invoke noundef align 8 dereferenceable(1176) ptr @"_ZN71_$LT$gpui..window..WindowContext$u20$as$u20$core..ops..deref..Deref$GT$5deref17hc63f9d594dbf0052E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %3) - to label %50 unwind label %27 + to label %49 unwind label %27 50: ; preds = %_ZN4gpui3app10entity_map9EntityMap4read17ha26659fc2b00fc99E.exit invoke void @_ZN6editor6Editor4text17h6d599862b174dc2aE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, ptr noundef nonnull align 8 %38, ptr noalias noundef nonnull readonly align 8 dereferenceable(1176) %49) - to label %51 unwind label %27 + to label %50 unwind label %27 51: ; preds = %50 invoke void @"_ZN6picker15Picker$LT$D$GT$14update_matches17h319a41dd98a0cad3E.llvm.5136615322731854219"(ptr noalias noundef nonnull align 8 dereferenceable(216) %0, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull align 8 dereferenceable(24) %3) - to label %17 unwind label %27 + to label %16 unwind label %27 52: ; preds = %12 unreachable diff --git a/bench/zed-rs/optimized/5ta1fnasvc90k95zqql8ufc92.ll b/bench/zed-rs/optimized/5ta1fnasvc90k95zqql8ufc92.ll index cf22cb8acea..50676d9f78c 100644 --- a/bench/zed-rs/optimized/5ta1fnasvc90k95zqql8ufc92.ll +++ b/bench/zed-rs/optimized/5ta1fnasvc90k95zqql8ufc92.ll @@ -21254,10 +21254,9 @@ define { ptr, ptr } @_ZN14semantic_index13project_index12ProjectIndex2fs17h328a4 ; Function Attrs: nonlazybind uwtable define hidden void @_ZN14semantic_index13project_index12ProjectIndex20handle_project_event17h717ec5285c36caacE(ptr noalias noundef align 8 dereferenceable(168) %0, ptr noalias noundef align 8 captures(none) dereferenceable(32) %1, ptr noalias noundef readonly align 8 captures(none) dereferenceable(88) %2, ptr noalias noundef align 8 dereferenceable(40) %3) unnamed_addr #0 personality ptr @rust_eh_personality { %5 = load i64, ptr %2, align 8, !range !4286, !noundef !5 - %6 = xor i64 %5, -9223372036854775808 - switch i64 %6, label %7 [ - i64 9, label %14 - i64 11, label %14 + switch i64 %5, label %6 [ + i64 -9223372036854775799, label %13 + i64 -9223372036854775797, label %14 ] 7: ; preds = %14, %4 @@ -21278,7 +21277,7 @@ define hidden void @_ZN14semantic_index13project_index12ProjectIndex20handle_pro unreachable common.resume: ; preds = %15, %8 - %common.resume.op = phi { ptr, i32 } [ %9, %8 ], [ %16, %15 ] + %common.resume.op = phi { ptr, i32 } [ %9, %7 ], [ %16, %14 ] resume { ptr, i32 } %common.resume.op "_ZN4core3ptr73drop_in_place$LT$gpui..app..entity_map..Model$LT$project..Project$GT$$GT$17h0dc16629ffc7d6d1E.exit": ; preds = %7 @@ -21288,7 +21287,7 @@ common.resume: ; preds = %15, %8 14: ; preds = %4, %4 invoke void @_ZN14semantic_index13project_index12ProjectIndex23update_worktree_indices17h38d43917c55d5d1dE.llvm.2580322900327445155(ptr noalias noundef nonnull align 8 dereferenceable(168) %0, ptr noalias noundef nonnull align 8 dereferenceable(40) %3) - to label %7 unwind label %15 + to label %6 unwind label %15 15: ; preds = %14 %16 = landingpad { ptr, i32 } diff --git a/bench/zed-rs/optimized/di6vqkr45z5qfxmwsnoq97jcv.ll b/bench/zed-rs/optimized/di6vqkr45z5qfxmwsnoq97jcv.ll index 00814301829..2c423994477 100644 --- a/bench/zed-rs/optimized/di6vqkr45z5qfxmwsnoq97jcv.ll +++ b/bench/zed-rs/optimized/di6vqkr45z5qfxmwsnoq97jcv.ll @@ -32778,21 +32778,20 @@ define hidden void @"_ZN67_$LT$gpui..window..WindowContext$u20$as$u20$gpui..Visu call void @llvm.experimental.noalias.scope.decl(metadata !6975) call void @llvm.experimental.noalias.scope.decl(metadata !6978) %49 = load i64, ptr %46, align 8, !range !2373, !alias.scope !6980, !noalias !6981, !noundef !4 - %50 = xor i64 %49, -9223372036854775808 - switch i64 %50, label %52 [ - i64 9, label %.sink.split.i.i.i - i64 11, label %74 + switch i64 %49, label %51 [ + i64 -9223372036854775799, label %.sink.split.i.i.i + i64 -9223372036854775797, label %73 ] .sink.split.i.i.i: ; preds = %74, %"_ZN84_$LT$gpui..app..entity_map..Lease$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h08d08699b2574508E.exit" - %.sink.i.i.i = phi i8 [ 0, %74 ], [ 1, %"_ZN84_$LT$gpui..app..entity_map..Lease$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h08d08699b2574508E.exit" ] + %.sink.i.i.i = phi i8 [ 0, %73 ], [ 1, %"_ZN84_$LT$gpui..app..entity_map..Lease$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h08d08699b2574508E.exit" ] %51 = getelementptr inbounds nuw i8, ptr %15, i64 261 store i8 %.sink.i.i.i, ptr %51, align 1, !noalias !6982 br label %52 52: ; preds = %.sink.split.i.i.i, %"_ZN84_$LT$gpui..app..entity_map..Lease$LT$T$GT$$u20$as$u20$core..ops..deref..DerefMut$GT$9deref_mut17h08d08699b2574508E.exit" invoke void @"_ZN73_$LT$gpui..app..entity_map..AnyModel$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdbe4415b1c233cccE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %43) - to label %64 unwind label %53, !noalias !6983 + to label %63 unwind label %53, !noalias !6983 53: ; preds = %52 %54 = landingpad { ptr, i32 } @@ -32856,7 +32855,7 @@ define hidden void @"_ZN67_$LT$gpui..window..WindowContext$u20$as$u20$gpui..Visu %79 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr345drop_in_place$LT$gpui..window..ViewContext$LT$search..buffer_search..BufferSearchBar$GT$..subscribe$LT$editor..Editor$C$gpui..view..View$LT$editor..Editor$GT$$C$editor..EditorEvent$C$search..buffer_search..BufferSearchBar..on_replacement_editor_event$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h655c45c7915a5bd3E"(ptr noalias noundef align 8 dereferenceable(48) %6) #30 - to label %82 unwind label %80 + to label %81 unwind label %80 80: ; preds = %84, %82, %78 %81 = landingpad { ptr, i32 } @@ -32865,19 +32864,19 @@ define hidden void @"_ZN67_$LT$gpui..window..WindowContext$u20$as$u20$gpui..Visu unreachable 82: ; preds = %78, %28, %53, %58, %62 - %.pn.ph = phi { ptr, i32 } [ %29, %28 ], [ %79, %78 ], [ %54, %53 ], [ %54, %58 ], [ %54, %62 ] - %.sroa.02.1.ph = phi i1 [ true, %28 ], [ false, %78 ], [ false, %53 ], [ false, %58 ], [ false, %62 ] + %.pn.ph = phi { ptr, i32 } [ %29, %28 ], [ %79, %77 ], [ %54, %52 ], [ %54, %57 ], [ %54, %61 ] + %.sroa.02.1.ph = phi i1 [ true, %28 ], [ false, %77 ], [ false, %52 ], [ false, %57 ], [ false, %61 ] invoke void @"_ZN4core3ptr95drop_in_place$LT$gpui..app..entity_map..Lease$LT$search..buffer_search..BufferSearchBar$GT$$GT$17he52b6f7345a91500E"(ptr noundef nonnull align 8 %8) #30 to label %18 unwind label %80 83: ; preds = %84, %18 - %.pn.pn13 = phi { ptr, i32 } [ %.pn.pn14, %84 ], [ %.pn.ph, %18 ] + %.pn.pn13 = phi { ptr, i32 } [ %.pn.pn14, %83 ], [ %.pn.ph, %18 ] resume { ptr, i32 } %.pn.pn13 84: ; preds = %.thread, %18 %.pn.pn14 = phi { ptr, i32 } [ %19, %.thread ], [ %.pn.ph, %18 ] invoke fastcc void @"_ZN4core3ptr345drop_in_place$LT$gpui..window..ViewContext$LT$search..buffer_search..BufferSearchBar$GT$..subscribe$LT$editor..Editor$C$gpui..view..View$LT$editor..Editor$GT$$C$editor..EditorEvent$C$search..buffer_search..BufferSearchBar..on_replacement_editor_event$GT$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$..$u7b$$u7b$closure$u7d$$u7d$$GT$17h655c45c7915a5bd3E"(ptr noalias noundef align 8 dereferenceable(48) %2) #30 - to label %83 unwind label %80 + to label %82 unwind label %80 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/zxing/optimized/ECI.ll b/bench/zxing/optimized/ECI.ll index dc601939f64..06728a4b26e 100644 --- a/bench/zxing/optimized/ECI.ll +++ b/bench/zxing/optimized/ECI.ll @@ -705,7 +705,7 @@ _ZNKSt8_Rb_treeIN5ZXing3ECIESt4pairIKS1_NS0_12CharacterSetEESt10_Select1stIS5_ES br label %select.unfold select.unfold: ; preds = %7, %1, %_ZNKSt8_Rb_treeIN5ZXing3ECIESt4pairIKS1_NS0_12CharacterSetEESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS5_EPKSt18_Rb_tree_node_baseRS3_.exit.i.i, %11 - %14 = phi i8 [ %13, %11 ], [ 0, %_ZNKSt8_Rb_treeIN5ZXing3ECIESt4pairIKS1_NS0_12CharacterSetEESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS5_EPKSt18_Rb_tree_node_baseRS3_.exit.i.i ], [ 0, %1 ], [ 0, %7 ] + %14 = phi i8 [ %13, %_ZNKSt3mapIN5ZXing3ECIENS0_12CharacterSetESt4lessIS1_ESaISt4pairIKS1_S2_EEE4findERS6_.exit ], [ 0, %_ZNKSt8_Rb_treeIN5ZXing3ECIESt4pairIKS1_NS0_12CharacterSetEESt10_Select1stIS5_ESt4lessIS1_ESaIS5_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS5_EPKSt18_Rb_tree_node_baseRS3_.exit.i.i ], [ 0, %1 ], [ 0, %7 ] ret i8 %14 } diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..2cc6e52e7ce 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/143677 export COMPTIME_MODE=0 # Please rebase manually