diff --git a/bench/actix-rs/optimized/3q3jkuswkinqn2en.ll b/bench/actix-rs/optimized/3q3jkuswkinqn2en.ll index a4002e4d5d5..d2224b30d29 100644 --- a/bench/actix-rs/optimized/3q3jkuswkinqn2en.ll +++ b/bench/actix-rs/optimized/3q3jkuswkinqn2en.ll @@ -2220,10 +2220,8 @@ _ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit.i.i12.i: ; preds = %.0.sroa.speculated.i22.i22 = phi i64 [ %.0.sroa.speculated.i22.i21, %"_ZN4core3str6traits112_$LT$impl$u20$core..slice..index..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeFrom$LT$usize$GT$$GT$3get17hf6cdd76e6e44ad9cE.exit.i" ], [ %.0.sroa.speculated.i22.i, %52 ], [ 0, %_ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit.i.i.i ] %60 = phi i64 [ %58, %"_ZN4core3str6traits112_$LT$impl$u20$core..slice..index..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeFrom$LT$usize$GT$$GT$3get17hf6cdd76e6e44ad9cE.exit.i" ], [ %56, %52 ], [ 0, %_ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit.i.i.i ] %61 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.i.i4.i27, i64 %.0.sroa.speculated.i22.i22 - call void @llvm.lifetime.start.p0(ptr nonnull %4) call void @_ZN11actix_files8path_buf11PathBufWrap10parse_path17hec1a22edd47e4ef5E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 1 %61, i64 noundef %60, i1 noundef zeroext false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %4) ret void } diff --git a/bench/coreutils-rs/optimized/n5dhracig0q9az4.ll b/bench/coreutils-rs/optimized/n5dhracig0q9az4.ll index 1f4f0bd742b..05fce1adc9e 100644 --- a/bench/coreutils-rs/optimized/n5dhracig0q9az4.ll +++ b/bench/coreutils-rs/optimized/n5dhracig0q9az4.ll @@ -78,27 +78,25 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h18b58ce70da4f3 %24 = sub nuw i64 %2, %.0.lcssa.i %25 = getelementptr inbounds nuw i8, ptr %0, i64 28 %26 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %27 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %28 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %29 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %30 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %27 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %28 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %29 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %30 = getelementptr inbounds nuw i8, ptr %7, i64 8 br label %31 31: ; preds = %105, %.lr.ph - %.sroa.0.046 = phi ptr [ %23, %.lr.ph ], [ %.sroa.0.177, %105 ] - %.sroa.8.045 = phi i64 [ %24, %.lr.ph ], [ %.sroa.8.175, %105 ] - call void @llvm.lifetime.start.p0(ptr nonnull %7) + %.sroa.0.046 = phi ptr [ %23, %.lr.ph ], [ %.sroa.0.177, %102 ] + %.sroa.8.045 = phi i64 [ %24, %.lr.ph ], [ %.sroa.8.175, %102 ] call void @llvm.experimental.noalias.scope.decl(metadata !8) call void @llvm.experimental.noalias.scope.decl(metadata !11) - call void @llvm.experimental.noalias.scope.decl(metadata !13) br label %.preheader.i .preheader.i: ; preds = %31, %.preheader.i - %.017.i.i = phi i64 [ %34, %.preheader.i ], [ 0, %31 ] - %.016.i.i = phi i64 [ %35, %.preheader.i ], [ 0, %31 ] + %.017.i.i = phi i64 [ %34, %.preheader.i ], [ 0, %30 ] + %.016.i.i = phi i64 [ %35, %.preheader.i ], [ 0, %30 ] %32 = getelementptr inbounds { { { ptr, i64 }, {} } }, ptr %.sroa.0.046, i64 %.016.i.i %33 = getelementptr i8, ptr %32, i64 8 - %.val.i.i = load i64, ptr %33, align 8, !alias.scope !13, !noalias !15, !noundef !7 + %.val.i.i = load i64, ptr %33, align 8, !alias.scope !11, !noalias !13, !noundef !7 %34 = call noundef i64 @llvm.uadd.sat.i64(i64 %.017.i.i, i64 %.val.i.i) %35 = add nuw i64 %.016.i.i, 1 %36 = icmp eq i64 %35, %.sroa.8.045 @@ -107,19 +105,19 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h18b58ce70da4f3 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc2f8e2296b77fe16E.exit.i": ; preds = %.preheader.i %.idx.i7 = shl i64 %.sroa.8.045, 4 %37 = getelementptr inbounds i8, ptr %.sroa.0.046, i64 %.idx.i7 - %38 = load i64, ptr %0, align 8, !alias.scope !11, !noalias !16, !noundef !7 - %39 = load i64, ptr %26, align 8, !alias.scope !11, !noalias !16, !noundef !7 + %38 = load i64, ptr %0, align 8, !alias.scope !8, !noalias !15, !noundef !7 + %39 = load i64, ptr %26, align 8, !alias.scope !8, !noalias !15, !noundef !7 %40 = sub i64 %38, %39 %41 = icmp ugt i64 %34, %40 br i1 %41, label %42, label %45 42: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc2f8e2296b77fe16E.exit.i" - %43 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$9flush_buf17h49264c71413c31f4E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %0), !noalias !16 + %43 = call noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$9flush_buf17h49264c71413c31f4E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %0), !noalias !15 %44 = icmp eq ptr %43, null br i1 %44, label %._crit_edge.i, label %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit.thread" ._crit_edge.i: ; preds = %42 - %.pre.i = load i64, ptr %0, align 8, !alias.scope !11, !noalias !16 + %.pre.i = load i64, ptr %0, align 8, !alias.scope !8, !noalias !15 br label %45 45: ; preds = %._crit_edge.i, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17hc2f8e2296b77fe16E.exit.i" @@ -128,107 +126,99 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h18b58ce70da4f3 br i1 %.not.i8, label %.lr.ph.i.i, label %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit" "_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit.thread": ; preds = %42 - store ptr %43, ptr %27, align 8, !alias.scope !8, !noalias !17 - br label %59 + %46 = ptrtoint ptr %43 to i64 + br label %57 .lr.ph.i.i: ; preds = %45 - call void @llvm.experimental.noalias.scope.decl(metadata !18) - %47 = load ptr, ptr %29, align 8, !alias.scope !21, !noalias !16, !nonnull !7, !noundef !7 - %.promoted.i.i = load i64, ptr %26, align 8, !alias.scope !21, !noalias !16 + call void @llvm.experimental.noalias.scope.decl(metadata !16) + %47 = load ptr, ptr %28, align 8, !alias.scope !19, !noalias !15, !nonnull !7, !noundef !7 + %.promoted.i.i = load i64, ptr %26, align 8, !alias.scope !19, !noalias !15 br label %48 48: ; preds = %48, %.lr.ph.i.i %49 = phi i64 [ %.promoted.i.i, %.lr.ph.i.i ], [ %53, %48 ] %.sroa.0.08.i.i = phi ptr [ %.sroa.0.046, %.lr.ph.i.i ], [ %50, %48 ] %50 = getelementptr inbounds nuw i8, ptr %.sroa.0.08.i.i, i64 16 - %.val3.i.i = load ptr, ptr %.sroa.0.08.i.i, align 8, !alias.scope !13, !noalias !22, !noundef !7 + %.val3.i.i = load ptr, ptr %.sroa.0.08.i.i, align 8, !alias.scope !11, !noalias !20, !noundef !7 %51 = getelementptr i8, ptr %.sroa.0.08.i.i, i64 8 - %.val4.i.i = load i64, ptr %51, align 8, !alias.scope !13, !noalias !22, !noundef !7 + %.val4.i.i = load i64, ptr %51, align 8, !alias.scope !11, !noalias !20, !noundef !7 %52 = getelementptr inbounds i8, ptr %47, i64 %49 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %52, ptr readonly align 1 %.val3.i.i, i64 %.val4.i.i, i1 false), !noalias !23 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %52, ptr readonly align 1 %.val3.i.i, i64 %.val4.i.i, i1 false), !noalias !21 %53 = add i64 %.val4.i.i, %49 %54 = icmp eq ptr %50, %37 br i1 %54, label %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit.thread69", label %48 "_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit.thread69": ; preds = %48 - store i64 %53, ptr %26, align 8, !alias.scope !21, !noalias !16 - store i64 %34, ptr %27, align 8, !alias.scope !8, !noalias !17 - store i64 0, ptr %7, align 8, !alias.scope !8, !noalias !17 - br label %56 - -"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit": ; preds = %45 - store i8 1, ptr %28, align 8, !alias.scope !11, !noalias !16 - call void @"_ZN48_$LT$std..fs..File$u20$as$u20$std..io..Write$GT$14write_vectored17h1c3cc6ced1697b9eE"(ptr noalias noundef nonnull sret({ i64, [1 x i64] }) align 8 captures(none) dereferenceable(16) %7, ptr noalias noundef nonnull align 4 dereferenceable(4) %25, ptr noalias noundef nonnull readonly align 8 %.sroa.0.046, i64 noundef %.sroa.8.045), !noalias !7 - store i8 0, ptr %28, align 8, !alias.scope !11, !noalias !16 - %.pre = load i64, ptr %7, align 8, !range !24 - %55 = trunc nuw i64 %.pre to i1 - br i1 %55, label %59, label %thread-pre-split - -.loopexit.sink.split: ; preds = %56, %64, %68, %62, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit, %.thread.i21 - %.0.ph = phi ptr [ null, %.thread.i21 ], [ @anon.84c517dc8bbf76c8bbee93e1e9ce05b1.1, %56 ], [ %.val, %64 ], [ %.val, %68 ], [ %.val, %62 ], [ %.val, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit ] - call void @llvm.lifetime.end.p0(ptr nonnull %7) - br label %.loopexit - -.loopexit: ; preds = %.loopexit.sink.split, %20, %3 - %.0 = phi ptr [ null, %3 ], [ null, %20 ], [ %.0.ph, %.loopexit.sink.split ] + store i64 %53, ptr %26, align 8, !alias.scope !19, !noalias !15 + br label %thread-pre-split + +"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit":; preds = %44 + store i8 1, ptr %27, align 8, !alias.scope !8, !noalias !15 + call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !22 + call void @"_ZN48_$LT$std..fs..File$u20$as$u20$std..io..Write$GT$14write_vectored17h1c3cc6ced1697b9eE"(ptr noalias noundef nonnull sret({ i64, [1 x i64] }) align 8 captures(none) dereferenceable(16) %7, ptr noalias noundef nonnull align 4 dereferenceable(4) %25, ptr noalias noundef nonnull readonly align 8 %.sroa.0.046, i64 noundef %.sroa.8.045), !noalias !23 + store i8 0, ptr %27, align 8, !alias.scope !8, !noalias !15 + %.sroa.0.0.copyload = load i64, ptr %7, align 8, !noalias !24 + %.pre = load i64, ptr %30, align 8, !noalias !24 + call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !22 + %55 = trunc nuw i64 %.sroa.0.0.copyload to i1 + br i1 %55, label %57, label %thread-pre-split + +.loopexit:; preds = %.thread.i21, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit, %60, %66, %62, %thread-pre-split, %20, %3 + %.0 = phi ptr [ null, %3 ], [ null, %20 ], [ null, %.thread.i21 ], [ @anon.84c517dc8bbf76c8bbee93e1e9ce05b1.1, %thread-pre-split ], [ %58, %62 ], [ %58, %66 ], [ %58, %60 ], [ %58, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit ] ret ptr %.0 -thread-pre-split: ; preds = %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit" - %.pr = load i64, ptr %27, align 8 - br label %56 - -56: ; preds = %thread-pre-split, %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit.thread69" - %57 = phi i64 [ %.pr, %thread-pre-split ], [ %34, %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit.thread69" ] - %58 = icmp eq i64 %57, 0 - br i1 %58, label %.loopexit.sink.split, label %.lr.ph.preheader.i11 - -59: ; preds = %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit.thread", %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit" - %.val = load ptr, ptr %27, align 8, !nonnull !7, !noundef !7 - %60 = ptrtoint ptr %.val to i64 - %61 = and i64 %60, 3 - switch i64 %61, label %default.unreachable [ - i64 2, label %62 +thread-pre-split: ; preds = %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit", %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit.thread69" + %.sroa.7.0 = phi i64 [ %33, %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit.thread69" ], [ %.pre, %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit" ] + %56 = icmp eq i64 %.sroa.7.0, 0 + br i1 %56, label %.loopexit, label %.lr.ph.preheader.i11 + +57: ; preds = %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit.thread", %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit" + %.sroa.7.1 = phi i64 [ %.sroa.7.0.copyload, %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit" ], [ %46, %"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE.exit.thread" ] + %58 = inttoptr i64 %.sroa.7.1 to ptr + %59 = and i64 %.sroa.7.1, 3 + switch i64 %59, label %default.unreachable [ + i64 2, label %60 i64 3, label %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit i64 0, label %64 i64 1, label %68 ] -default.unreachable: ; preds = %59 +default.unreachable: ; preds = %57 unreachable -62: ; preds = %59 - %.mask20.i = and i64 %60, -4294967296 +62: ; preds = %57 + %.mask20.i = and i64 %.sroa.7.1, -4294967296 %63 = icmp eq i64 %.mask20.i, 17179869184 - br i1 %63, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread, label %.loopexit.sink.split + br i1 %63, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread, label %.loopexit -64: ; preds = %59 - %65 = getelementptr inbounds nuw i8, ptr %.val, i64 16 +64: ; preds = %57 + %65 = getelementptr inbounds nuw i8, ptr %58, i64 16 %66 = load i8, ptr %65, align 8, !range !25, !noundef !7 %67 = icmp eq i8 %66, 35 - br i1 %67, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread, label %.loopexit.sink.split + br i1 %67, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread, label %.loopexit -68: ; preds = %59 - %69 = getelementptr i8, ptr %.val, i64 15 +68: ; preds = %57 + %69 = getelementptr i8, ptr %58, i64 15 %70 = load i8, ptr %69, align 8, !range !25, !noundef !7 %71 = icmp eq i8 %70, 35 - br i1 %71, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread, label %.loopexit.sink.split + br i1 %71, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread, label %.loopexit -.lr.ph.preheader.i11: ; preds = %56 +.lr.ph.preheader.i11: ; preds = %thread-pre-split %72 = add i64 %.idx.i7, -16 %73 = lshr exact i64 %72, 4 %74 = add nuw nsw i64 %73, 1 br label %.lr.ph.i12 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h47ec3b351a964a96E.exit.thread.i17": ; preds = %78, %.lr.ph.i12 - %.017.lcssa.i18 = phi i64 [ %79, %78 ], [ %.01723.i14, %.lr.ph.i12 ] - %.0.lcssa.i19 = phi i64 [ %74, %78 ], [ %.024.i13, %.lr.ph.i12 ] + %.017.lcssa.i18 = phi i64 [ %79, %76 ], [ %.01723.i14, %.lr.ph.i12 ] + %.0.lcssa.i19 = phi i64 [ %74, %76 ], [ %.024.i13, %.lr.ph.i12 ] %75 = icmp ugt i64 %.0.lcssa.i19, %.sroa.8.045 br i1 %75, label %.noexc, label %83 .lr.ph.i12: ; preds = %78, %.lr.ph.preheader.i11 - %.024.i13 = phi i64 [ %81, %78 ], [ 0, %.lr.ph.preheader.i11 ] - %.01723.i14 = phi i64 [ %79, %78 ], [ %57, %.lr.ph.preheader.i11 ] - %.sroa.0.022.i15 = phi ptr [ %80, %78 ], [ %.sroa.0.046, %.lr.ph.preheader.i11 ] + %.024.i13 = phi i64 [ %81, %76 ], [ 0, %.lr.ph.preheader.i11 ] + %.01723.i14 = phi i64 [ %79, %76 ], [ %.sroa.7.0, %.lr.ph.preheader.i11 ] + %.sroa.0.022.i15 = phi ptr [ %80, %76 ], [ %.sroa.0.046, %.lr.ph.preheader.i11 ] %76 = getelementptr inbounds nuw i8, ptr %.sroa.0.022.i15, i64 8 %77 = load i64, ptr %76, align 8, !noalias !26, !noundef !7 %.not.i16 = icmp ult i64 %.01723.i14, %77 @@ -253,20 +243,20 @@ default.unreachable: ; preds = %59 .thread.i21: ; preds = %83 %87 = icmp eq i64 %.017.lcssa.i18, 0 - br i1 %87, label %.loopexit.sink.split, label %88 + br i1 %87, label %.loopexit, label %88 88: ; preds = %.thread.i21 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !26 br label %.invoke .invoke: ; preds = %94, %88 - %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %94 ], [ %.sink.sroa.gep115, %88 ] - %.sink.sroa.phi116 = phi ptr [ %.sink.sroa.gep117, %94 ], [ %.sink.sroa.gep118, %88 ] - %.sink.sroa.phi119 = phi ptr [ %.sink.sroa.gep120, %94 ], [ %.sink.sroa.gep121, %88 ] - %.sink.sroa.phi122 = phi ptr [ %.sink.sroa.gep123, %94 ], [ %.sink.sroa.gep124, %88 ] - %.sink = phi ptr [ %5, %94 ], [ %6, %88 ] - %anon.84c517dc8bbf76c8bbee93e1e9ce05b1.23.sink = phi ptr [ @anon.84c517dc8bbf76c8bbee93e1e9ce05b1.23, %94 ], [ @anon.84c517dc8bbf76c8bbee93e1e9ce05b1.11, %88 ] - %89 = phi ptr [ @anon.84c517dc8bbf76c8bbee93e1e9ce05b1.25, %94 ], [ @anon.84c517dc8bbf76c8bbee93e1e9ce05b1.13, %88 ] + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %92 ], [ %.sink.sroa.gep115, %86 ] + %.sink.sroa.phi116 = phi ptr [ %.sink.sroa.gep117, %92 ], [ %.sink.sroa.gep118, %86 ] + %.sink.sroa.phi119 = phi ptr [ %.sink.sroa.gep120, %92 ], [ %.sink.sroa.gep121, %86 ] + %.sink.sroa.phi122 = phi ptr [ %.sink.sroa.gep123, %92 ], [ %.sink.sroa.gep124, %86 ] + %.sink = phi ptr [ %5, %92 ], [ %6, %86 ] + %anon.84c517dc8bbf76c8bbee93e1e9ce05b1.23.sink = phi ptr [ @anon.84c517dc8bbf76c8bbee93e1e9ce05b1.23, %92 ], [ @anon.84c517dc8bbf76c8bbee93e1e9ce05b1.11, %86 ] + %89 = phi ptr [ @anon.84c517dc8bbf76c8bbee93e1e9ce05b1.25, %92 ], [ @anon.84c517dc8bbf76c8bbee93e1e9ce05b1.13, %86 ] store ptr %anon.84c517dc8bbf76c8bbee93e1e9ce05b1.23.sink, ptr %.sink, align 8, !noalias !26 store i64 1, ptr %.sink.sroa.phi122, align 8, !noalias !26 store ptr null, ptr %.sink.sroa.phi119, align 8, !noalias !26 @@ -292,43 +282,35 @@ _ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25: ; preds = %90 %96 = load ptr, ptr %85, align 8, !alias.scope !29, !noalias !26, !noundef !7 %97 = getelementptr inbounds i8, ptr %96, i64 %.017.lcssa.i18 store ptr %97, ptr %85, align 8, !alias.scope !29, !noalias !26 - %.pre55 = load i64, ptr %7, align 8, !range !24 - %98 = icmp eq i64 %.pre55, 0 - br i1 %98, label %105, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread - -_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit: ; preds = %59 - %99 = icmp ult ptr %.val, inttoptr (i64 176093659136 to ptr) - call void @llvm.assume(i1 %99) - %.mask.i = and i64 %60, -4294967296 - %100 = icmp eq i64 %.mask.i, 150323855360 - br i1 %100, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread, label %.loopexit.sink.split - -_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread: ; preds = %64, %68, %62, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25 - %.sroa.0.176 = phi ptr [ %85, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25 ], [ %.sroa.0.046, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit ], [ %.sroa.0.046, %62 ], [ %.sroa.0.046, %68 ], [ %.sroa.0.046, %64 ] - %.sroa.8.174 = phi i64 [ %84, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25 ], [ %.sroa.8.045, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit ], [ %.sroa.8.045, %62 ], [ %.sroa.8.045, %68 ], [ %.sroa.8.045, %64 ] - call void @llvm.experimental.noalias.scope.decl(metadata !33) - call void @llvm.experimental.noalias.scope.decl(metadata !36) - call void @llvm.experimental.noalias.scope.decl(metadata !39) - call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !42 - %101 = load ptr, ptr %27, align 8, !alias.scope !42, !nonnull !7, !noundef !7 - call void @_ZN3std2io5error14repr_bitpacked11decode_repr17hbf1617cab882e186E.llvm.2603348648179966163(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noundef nonnull %101), !noalias !42 - %102 = load i8, ptr %4, align 8, !range !43, !alias.scope !44, !noalias !42, !noundef !7 - %103 = icmp eq i8 %102, 3 - br i1 %103, label %104, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" - -104: ; preds = %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread - call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h0c174305c1fb80aeE.llvm.2603348648179966163"(ptr noalias noundef nonnull align 8 dereferenceable(8) %30), !noalias !42 + br label %102 + +_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit:; preds = %57 + %96 = icmp ult i64 %.sroa.7.1, 176093659136 + call void @llvm.assume(i1 %96) + %.mask.i = and i64 %.sroa.7.1, 270582939648 + %97 = icmp eq i64 %.mask.i, 150323855360 + br i1 %97, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread, label %.loopexit + +_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread:; preds = %62, %66, %60, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit + call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !33 + %98 = inttoptr i64 %.sroa.7.1 to ptr + call void @_ZN3std2io5error14repr_bitpacked11decode_repr17hbf1617cab882e186E.llvm.2603348648179966163(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noundef nonnull %98), !noalias !33 + %99 = load i8, ptr %4, align 8, !range !40, !alias.scope !41, !noalias !33, !noundef !7 + %100 = icmp eq i8 %99, 3 + br i1 %100, label %101, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" + +101: ; preds = %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread + call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h0c174305c1fb80aeE.llvm.2603348648179966163"(ptr noalias noundef nonnull align 8 dereferenceable(8) %29), !noalias !33 br label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" -"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit": ; preds = %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread, %104 - call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !42 +"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit": ; preds = %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25.thread, %101 + call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !33 br label %105 -105: ; preds = %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit", %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25 - %.sroa.0.177 = phi ptr [ %.sroa.0.176, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" ], [ %85, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25 ] - %.sroa.8.175 = phi i64 [ %.sroa.8.174, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" ], [ %84, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25 ] - call void @llvm.lifetime.end.p0(ptr nonnull %7) - br label %31 +105: ; preds = %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" + %.sroa.0.177 = phi ptr [ %.sroa.0.046, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" ], [ %85, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25 ] + %.sroa.8.175 = phi i64 [ %.sroa.8.045, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" ], [ %84, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit25 ] + br label %30 } ; Function Attrs: nonlazybind uwtable @@ -366,19 +348,19 @@ define hidden noundef ptr @_ZN3std2io5Write9write_fmt17h4fe604b4af70f898E(ptr no br i1 %.not, label %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$17h178a2b696078a34eE.exit", label %13 13: ; preds = %12 - call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !47 - call void @_ZN3std2io5error14repr_bitpacked11decode_repr17hbf1617cab882e186E.llvm.2603348648179966163(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %3, ptr noundef nonnull %10), !noalias !47 - %14 = load i8, ptr %3, align 8, !range !43, !alias.scope !54, !noalias !47, !noundef !7 + call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !44 + call void @_ZN3std2io5error14repr_bitpacked11decode_repr17hbf1617cab882e186E.llvm.2603348648179966163(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %3, ptr noundef nonnull %10), !noalias !44 + %14 = load i8, ptr %3, align 8, !range !40, !alias.scope !51, !noalias !44, !noundef !7 %15 = icmp eq i8 %14, 3 br i1 %15, label %16, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit.i" 16: ; preds = %13 %17 = getelementptr inbounds nuw i8, ptr %3, i64 8 - call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h0c174305c1fb80aeE.llvm.2603348648179966163"(ptr noalias noundef nonnull align 8 dereferenceable(8) %17), !noalias !47 + call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h0c174305c1fb80aeE.llvm.2603348648179966163"(ptr noalias noundef nonnull align 8 dereferenceable(8) %17), !noalias !44 br label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit.i" "_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit.i": ; preds = %16, %13 - call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !47 + call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !44 br label %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$std..io..error..Error$GT$$GT$17h178a2b696078a34eE.exit" 18: ; preds = %7 @@ -571,7 +553,7 @@ define hidden noundef ptr @"_ZN3std2io8buffered9bufwriter18BufWriter$LT$W$GT$9fl 19: ; preds = %16 store i8 0, ptr %8, align 8 - %20 = load i64, ptr %3, align 8, !range !24, !noundef !7 + %20 = load i64, ptr %3, align 8, !range !54, !noundef !7 %trunc = trunc nuw i64 %20 to i1 br i1 %trunc, label %24, label %21 @@ -636,12 +618,12 @@ _ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit: ; preds = %24 ret ptr %.0 .thread: ; preds = %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit, %27, %33, %29 - call void @llvm.lifetime.start.p0(ptr nonnull %2), !noalias !57 + call void @llvm.lifetime.start.p0(ptr nonnull %2), !noalias !55 invoke void @_ZN3std2io5error14repr_bitpacked11decode_repr17hbf1617cab882e186E.llvm.2603348648179966163(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %2, ptr noundef nonnull %.val) to label %.noexc unwind label %14 .noexc: ; preds = %.thread - %43 = load i8, ptr %2, align 8, !range !43, !alias.scope !64, !noalias !57, !noundef !7 + %43 = load i8, ptr %2, align 8, !range !40, !alias.scope !64, !noalias !55, !noundef !7 %44 = icmp eq i8 %43, 3 br i1 %44, label %45, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" @@ -650,14 +632,14 @@ _ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit: ; preds = %24 to label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" unwind label %14 "_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit": ; preds = %45, %.noexc - call void @llvm.lifetime.end.p0(ptr nonnull %2), !noalias !57 + call void @llvm.lifetime.end.p0(ptr nonnull %2), !noalias !55 %.pre = load i64, ptr %5, align 8 br label %46 46: ; preds = %38, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" %47 = phi i64 [ %.pre, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E.exit" ], [ %40, %38 ] call void @llvm.lifetime.end.p0(ptr nonnull %3) - %48 = load ptr, ptr %4, align 8, !nonnull !7, !align !67, !noundef !7 + %48 = load ptr, ptr %4, align 8, !nonnull !7, !align !65, !noundef !7 %49 = getelementptr inbounds nuw i8, ptr %48, i64 16 %50 = load i64, ptr %49, align 8, !noundef !7 %.not = icmp ult i64 %47, %50 @@ -875,22 +857,22 @@ attributes #12 = { cold noreturn nounwind } !6 = distinct !{!6, !"_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE"} !7 = !{} !8 = !{!9} -!9 = distinct !{!9, !10, !"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE: argument 0"} +!9 = distinct !{!9, !10, !"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE: argument 1"} !10 = distinct !{!10, !"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE"} !11 = !{!12} -!12 = distinct !{!12, !10, !"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE: argument 1"} -!13 = !{!14} -!14 = distinct !{!14, !10, !"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE: argument 2"} -!15 = !{!9, !12} -!16 = !{!9, !14} -!17 = !{!12, !14} -!18 = !{!19} -!19 = distinct !{!19, !20, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8for_each17hec59b3c4ed5abd08E: argument 0"} -!20 = distinct !{!20, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8for_each17hec59b3c4ed5abd08E"} -!21 = !{!19, !12} -!22 = !{!19, !9, !12} -!23 = !{!19, !9, !14} -!24 = !{i64 0, i64 2} +!12 = distinct !{!12, !10, !"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE: argument 2"} +!13 = !{!14, !9} +!14 = distinct !{!14, !10, !"_ZN83_$LT$std..io..buffered..bufwriter..BufWriter$LT$W$GT$$u20$as$u20$std..io..Write$GT$14write_vectored17h56562ea8804b83ccE: argument 0"} +!15 = !{!14, !12} +!16 = !{!17} +!17 = distinct !{!17, !18, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8for_each17hec59b3c4ed5abd08E: argument 0"} +!18 = distinct !{!18, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8for_each17hec59b3c4ed5abd08E"} +!19 = !{!17, !9} +!20 = !{!17, !14, !9} +!21 = !{!17, !14, !12} +!22 = !{!14, !9, !12} +!23 = !{!14} +!24 = !{!9, !12} !25 = !{i8 0, i8 41} !26 = !{!27} !27 = distinct !{!27, !28, !"_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE: argument 0"} @@ -899,41 +881,39 @@ attributes #12 = { cold noreturn nounwind } !30 = distinct !{!30, !31, !"_ZN3std3sys3pal4unix2io7IoSlice7advance17hb760a64f4068ca53E: argument 0"} !31 = distinct !{!31, !"_ZN3std3sys3pal4unix2io7IoSlice7advance17hb760a64f4068ca53E"} !32 = !{!30, !27} -!33 = !{!34} -!34 = distinct !{!34, !35, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E: argument 0"} -!35 = distinct !{!35, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E"} -!36 = !{!37} -!37 = distinct !{!37, !38, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163: argument 0"} -!38 = distinct !{!38, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163"} -!39 = !{!40} -!40 = distinct !{!40, !41, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163: argument 0"} -!41 = distinct !{!41, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163"} -!42 = !{!40, !37, !34} -!43 = !{i8 0, i8 4} -!44 = !{!45} -!45 = distinct !{!45, !46, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163: argument 0"} -!46 = distinct !{!46, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163"} -!47 = !{!48, !50, !52} -!48 = distinct !{!48, !49, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163: argument 0"} -!49 = distinct !{!49, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163"} -!50 = distinct !{!50, !51, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163: argument 0"} -!51 = distinct !{!51, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163"} -!52 = distinct !{!52, !53, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E: argument 0"} -!53 = distinct !{!53, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E"} -!54 = !{!55} -!55 = distinct !{!55, !56, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163: argument 0"} -!56 = distinct !{!56, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163"} -!57 = !{!58, !60, !62} -!58 = distinct !{!58, !59, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163: argument 0"} -!59 = distinct !{!59, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163"} -!60 = distinct !{!60, !61, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163: argument 0"} -!61 = distinct !{!61, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163"} -!62 = distinct !{!62, !63, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E: argument 0"} -!63 = distinct !{!63, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E"} -!64 = !{!65} -!65 = distinct !{!65, !66, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163: argument 0"} -!66 = distinct !{!66, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163"} -!67 = !{i64 8} -!68 = !{!69} -!69 = distinct !{!69, !70, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8for_each17hec59b3c4ed5abd08E: argument 0"} -!70 = distinct !{!70, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8for_each17hec59b3c4ed5abd08E"} +!33 = !{!34, !36, !38} +!34 = distinct !{!34, !35, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163: argument 0"} +!35 = distinct !{!35, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163"} +!36 = distinct !{!36, !37, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163: argument 0"} +!37 = distinct !{!37, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163"} +!38 = distinct !{!38, !39, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E: argument 0"} +!39 = distinct !{!39, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E"} +!40 = !{i8 0, i8 4} +!41 = !{!42} +!42 = distinct !{!42, !43, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163: argument 0"} +!43 = distinct !{!43, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163"} +!44 = !{!45, !47, !49} +!45 = distinct !{!45, !46, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163: argument 0"} +!46 = distinct !{!46, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163"} +!47 = distinct !{!47, !48, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163: argument 0"} +!48 = distinct !{!48, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163"} +!49 = distinct !{!49, !50, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E: argument 0"} +!50 = distinct !{!50, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E"} +!51 = !{!52} +!52 = distinct !{!52, !53, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163: argument 0"} +!53 = distinct !{!53, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163"} +!54 = !{i64 0, i64 2} +!55 = !{!56, !58, !60} +!56 = distinct !{!56, !57, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163: argument 0"} +!57 = distinct !{!57, !"_ZN78_$LT$std..io..error..repr_bitpacked..Repr$u20$as$u20$core..ops..drop..Drop$GT$4drop17h72b7b095fa452c7bE.llvm.2603348648179966163"} +!58 = distinct !{!58, !59, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163: argument 0"} +!59 = distinct !{!59, !"_ZN4core3ptr57drop_in_place$LT$std..io..error..repr_bitpacked..Repr$GT$17h1e57a82a0442d2a4E.llvm.2603348648179966163"} +!60 = distinct !{!60, !61, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E: argument 0"} +!61 = distinct !{!61, !"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hecdb1f59526dc6a8E"} +!62 = !{!63} +!63 = distinct !{!63, !64, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163: argument 0"} +!64 = distinct !{!64, !"_ZN4core3ptr101drop_in_place$LT$std..io..error..ErrorData$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$$GT$17h726195385dbaff00E.llvm.2603348648179966163"} +!65 = !{i64 8} +!66 = !{!67} +!67 = distinct !{!67, !68, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8for_each17hec59b3c4ed5abd08E: argument 0"} +!68 = distinct !{!68, !"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8for_each17hec59b3c4ed5abd08E"} diff --git a/bench/delta-rs/optimized/264wku5om6u5pdmz.ll b/bench/delta-rs/optimized/264wku5om6u5pdmz.ll index ff45e4e71a6..aed8039ea33 100644 --- a/bench/delta-rs/optimized/264wku5om6u5pdmz.ll +++ b/bench/delta-rs/optimized/264wku5om6u5pdmz.ll @@ -6771,7 +6771,6 @@ define internal fastcc void @"_ZN14datafusion_sql4expr60_$LT$impl$u20$datafusion %10 = alloca { { i64, ptr, {} }, i64 }, align 8 %11 = alloca { i128, [32 x i64] }, align 16 %12 = alloca { i128, [32 x i64] }, align 16 - %.sroa.5 = alloca [17 x i64], align 8 %13 = alloca { i64, [21 x i64] }, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %13) tail call void @llvm.experimental.noalias.scope.decl(metadata !892) @@ -6820,8 +6819,8 @@ define internal fastcc void @"_ZN14datafusion_sql4expr60_$LT$impl$u20$datafusion %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..sroa_idx, align 8, !noalias !892 %.sroa.5111.0..sroa_idx = getelementptr inbounds nuw i8, ptr %25, i64 8 %.sroa.5111.0.copyload = load i64, ptr %.sroa.5111.0..sroa_idx, align 8, !noalias !892 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %.sroa.5, ptr noundef nonnull align 8 dereferenceable(136) %.sroa.9114.0..sroa_idx, i64 136, i1 false) + %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 40 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %.sroa.5.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(136) %.sroa.9114.0..sroa_idx, i64 136, i1 false) store i64 %.sroa.0.0.copyload, ptr %13, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 8 store i64 %.sroa.5111.0.copyload, ptr %.sroa.4.0..sroa_idx, align 8 @@ -6831,9 +6830,6 @@ define internal fastcc void @"_ZN14datafusion_sql4expr60_$LT$impl$u20$datafusion store ptr %.sroa.7.0.copyload, ptr %.sroa.4.sroa.5.0..sroa.4.0..sroa_idx.sroa_idx, align 8 %.sroa.4.sroa.6.0..sroa.4.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 32 store i64 %.sroa.8113.0.copyload, ptr %.sroa.4.sroa.6.0..sroa.4.0..sroa_idx.sroa_idx, align 8 - %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 40 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %.sroa.5.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(136) %.sroa.5, i64 136, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5) %29 = icmp eq i64 %20, 0 br i1 %29, label %35, label %36 @@ -7047,7 +7043,6 @@ define internal fastcc void @"_ZN14datafusion_sql4expr60_$LT$impl$u20$datafusion %10 = alloca { { i64, ptr, {} }, i64 }, align 8 %11 = alloca { i128, [32 x i64] }, align 16 %12 = alloca { i128, [32 x i64] }, align 16 - %.sroa.5 = alloca [17 x i64], align 8 %13 = alloca { i64, [21 x i64] }, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %13) tail call void @llvm.experimental.noalias.scope.decl(metadata !900) @@ -7096,8 +7091,8 @@ define internal fastcc void @"_ZN14datafusion_sql4expr60_$LT$impl$u20$datafusion %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..sroa_idx, align 8, !noalias !900 %.sroa.5111.0..sroa_idx = getelementptr inbounds nuw i8, ptr %25, i64 8 %.sroa.5111.0.copyload = load i64, ptr %.sroa.5111.0..sroa_idx, align 8, !noalias !900 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.5) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %.sroa.5, ptr noundef nonnull align 8 dereferenceable(136) %.sroa.9114.0..sroa_idx, i64 136, i1 false) + %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 40 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %.sroa.5.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(136) %.sroa.9114.0..sroa_idx, i64 136, i1 false) store i64 %.sroa.0.0.copyload, ptr %13, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 8 store i64 %.sroa.5111.0.copyload, ptr %.sroa.4.0..sroa_idx, align 8 @@ -7107,9 +7102,6 @@ define internal fastcc void @"_ZN14datafusion_sql4expr60_$LT$impl$u20$datafusion store ptr %.sroa.7.0.copyload, ptr %.sroa.4.sroa.5.0..sroa.4.0..sroa_idx.sroa_idx, align 8 %.sroa.4.sroa.6.0..sroa.4.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 32 store i64 %.sroa.8113.0.copyload, ptr %.sroa.4.sroa.6.0..sroa.4.0..sroa_idx.sroa_idx, align 8 - %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 40 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(136) %.sroa.5.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(136) %.sroa.5, i64 136, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.5) %29 = icmp eq i64 %20, 0 br i1 %29, label %35, label %36 diff --git a/bench/elfshaker-rs/optimized/3a1f053714hdbf2r1u9m19s6u.ll b/bench/elfshaker-rs/optimized/3a1f053714hdbf2r1u9m19s6u.ll index 7565d22a232..f2e672f1085 100644 --- a/bench/elfshaker-rs/optimized/3a1f053714hdbf2r1u9m19s6u.ll +++ b/bench/elfshaker-rs/optimized/3a1f053714hdbf2r1u9m19s6u.ll @@ -2277,18 +2277,19 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot %12 = alloca [16 x i8], align 8 %13 = alloca [8 x i8], align 8 %14 = alloca [24 x i8], align 8 - %15 = alloca [40 x i8], align 8 - %16 = alloca [32 x i8], align 8 - %17 = alloca [48 x i8], align 8 - %18 = alloca [24 x i8], align 8 - %19 = alloca [40 x i8], align 8 - %20 = alloca [16 x i8], align 8 - %21 = alloca [48 x i8], align 8 - %22 = alloca [16 x i8], align 8 - %23 = alloca [48 x i8], align 8 - %24 = alloca [32 x i8], align 8 - %25 = alloca [56 x i8], align 8 + %15 = alloca [24 x i8], align 8 + %16 = alloca [40 x i8], align 8 + %17 = alloca [32 x i8], align 8 + %18 = alloca [48 x i8], align 8 + %19 = alloca [24 x i8], align 8 + %20 = alloca [40 x i8], align 8 + %21 = alloca [16 x i8], align 8 + %22 = alloca [48 x i8], align 8 + %23 = alloca [16 x i8], align 8 + %24 = alloca [48 x i8], align 8 + %25 = alloca [32 x i8], align 8 %26 = alloca [56 x i8], align 8 + %27 = alloca [56 x i8], align 8 %.sroa.6 = alloca [24 x i8], align 8 %27 = alloca [24 x i8], align 8 %28 = alloca [16 x i8], align 8 @@ -2299,80 +2300,80 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot store i64 %3, ptr %30, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %27) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.6) + call void @llvm.lifetime.start.p0(ptr nonnull %27) call void @llvm.lifetime.start.p0(ptr nonnull %26) - call void @llvm.lifetime.start.p0(ptr nonnull %25) - call void @_ZN9elfshaker4repo10repository10Repository5packs17h74637a7a7340ee82E(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %25, ptr noundef nonnull align 8 %1) - %31 = load i64, ptr %25, align 8, !range !71, !noundef !5 - %.not = icmp eq i64 %31, -9223372036854775791 - %32 = getelementptr inbounds nuw i8, ptr %25, i64 8 - %.sroa.081.0.copyload = load i64, ptr %32, align 8 - %.sroa.582.0..sroa_idx = getelementptr inbounds nuw i8, ptr %25, i64 16 + call void @_ZN9elfshaker4repo10repository10Repository5packs17h74637a7a7340ee82E(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %26, ptr noundef nonnull align 8 %1) + %32 = load i64, ptr %26, align 8, !range !71, !noundef !5 + %.not = icmp eq i64 %32, -9223372036854775791 + %33 = getelementptr inbounds nuw i8, ptr %26, i64 8 + %.sroa.081.0.copyload = load i64, ptr %33, align 8 + %.sroa.582.0..sroa_idx = getelementptr inbounds nuw i8, ptr %26, i64 16 %.sroa.582.0.copyload = load ptr, ptr %.sroa.582.0..sroa_idx, align 8 - %.sroa.683.0..sroa_idx = getelementptr inbounds nuw i8, ptr %25, i64 24 + %.sroa.683.0..sroa_idx = getelementptr inbounds nuw i8, ptr %26, i64 24 %.sroa.683.0.copyload = load i64, ptr %.sroa.683.0..sroa_idx, align 8 br i1 %.not, label %34, label %33 33: ; preds = %4 - %.sroa.623.0..sroa_idx = getelementptr inbounds nuw i8, ptr %25, i64 32 + %.sroa.623.0..sroa_idx = getelementptr inbounds nuw i8, ptr %26, i64 32 %.sroa.326.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.326.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.623.0..sroa_idx, i64 24, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %25) - store i64 %31, ptr %0, align 8 + call void @llvm.lifetime.end.p0(ptr nonnull %26) + store i64 %32, ptr %0, align 8 %.sroa.225.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 %.sroa.081.0.copyload, ptr %.sroa.225.0..sroa_idx, align 8 %.sroa.225.sroa.2.0..sroa.225.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr %.sroa.582.0.copyload, ptr %.sroa.225.sroa.2.0..sroa.225.0..sroa_idx.sroa_idx, align 8 %.sroa.225.sroa.3.0..sroa.225.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 store i64 %.sroa.683.0.copyload, ptr %.sroa.225.sroa.3.0..sroa.225.0..sroa_idx.sroa_idx, align 8 - call void @llvm.lifetime.end.p0(ptr nonnull %26) + call void @llvm.lifetime.end.p0(ptr nonnull %27) br label %188 34: ; preds = %4 - call void @llvm.lifetime.end.p0(ptr nonnull %25) + call void @llvm.lifetime.end.p0(ptr nonnull %26) %35 = icmp ult i64 %.sroa.683.0.copyload, 384307168202282326 tail call void @llvm.assume(i1 %35) %36 = getelementptr inbounds nuw { { { { { i64, ptr, {} }, {} }, i64 } } }, ptr %.sroa.582.0.copyload, i64 %.sroa.683.0.copyload %37 = icmp sgt i64 %.sroa.081.0.copyload, -1 tail call void @llvm.assume(i1 %37) - call void @llvm.lifetime.start.p0(ptr nonnull %23), !noalias !113 - store ptr %.sroa.582.0.copyload, ptr %23, align 8, !alias.scope !120, !noalias !124 - %.sroa.0.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %23, i64 8 + call void @llvm.lifetime.start.p0(ptr nonnull %24), !noalias !113 + store ptr %.sroa.582.0.copyload, ptr %24, align 8, !alias.scope !120, !noalias !124 + %.sroa.0.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 store ptr %.sroa.582.0.copyload, ptr %.sroa.0.sroa.5.0..sroa_idx, align 8, !alias.scope !120, !noalias !124 - %.sroa.0.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %23, i64 16 + %.sroa.0.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 16 store i64 %.sroa.081.0.copyload, ptr %.sroa.0.sroa.6.0..sroa_idx, align 8, !alias.scope !120, !noalias !124 - %.sroa.0.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %23, i64 24 + %.sroa.0.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 24 store ptr %36, ptr %.sroa.0.sroa.7.0..sroa_idx, align 8, !alias.scope !120, !noalias !124 - %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %23, i64 32 + %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 32 store ptr %29, ptr %.sroa.5.0..sroa_idx, align 8, !alias.scope !120, !noalias !124 - %.sroa.660.0..sroa_idx = getelementptr inbounds nuw i8, ptr %23, i64 40 + %.sroa.660.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 40 store ptr %28, ptr %.sroa.660.0..sroa_idx, align 8, !alias.scope !120, !noalias !124 - call void @_ZN4core4iter8adapters11try_process17h72aaac629a02df0bE(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %26, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %23), !noalias !125 - call void @llvm.lifetime.end.p0(ptr nonnull %23), !noalias !113 - %38 = load i64, ptr %26, align 8, !range !71, !noundef !5 + call void @_ZN4core4iter8adapters11try_process17h72aaac629a02df0bE(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %27, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %24), !noalias !125 + call void @llvm.lifetime.end.p0(ptr nonnull %24), !noalias !113 + %38 = load i64, ptr %27, align 8, !range !71, !noundef !5 %.not38 = icmp eq i64 %38, -9223372036854775791 - %39 = getelementptr inbounds nuw i8, ptr %26, i64 8 + %39 = getelementptr inbounds nuw i8, ptr %27, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6, ptr noundef nonnull align 8 dereferenceable(24) %39, i64 24, i1 false) br i1 %.not38, label %41, label %40 40: ; preds = %34 - %.sroa.632.0..sroa_idx = getelementptr inbounds nuw i8, ptr %26, i64 32 + %.sroa.632.0..sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 32 %.sroa.335.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.335.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.632.0..sroa_idx, i64 24, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %26) + call void @llvm.lifetime.end.p0(ptr nonnull %27) %.sroa.234.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.234.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6, i64 24, i1 false) store i64 %38, ptr %0, align 8 br label %188 41: ; preds = %34 - call void @llvm.lifetime.end.p0(ptr nonnull %26) + call void @llvm.lifetime.end.p0(ptr nonnull %27) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %27, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6, i64 24, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.6) %42 = getelementptr inbounds nuw i8, ptr %27, i64 16 %43 = load i64, ptr %42, align 8, !noundef !5 %44 = icmp ult i64 %43, 384307168202282326 call void @llvm.assume(i1 %44) - switch i64 %43, label %45 [ + switch i64 %43, label %46 [ i64 0, label %159 i64 1, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h44c35dc360c245c1E.exit" ] @@ -2384,9 +2385,9 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot %49 = load ptr, ptr %28, align 8, !nonnull !5, !align !42, !noundef !5 %50 = load i64, ptr %30, align 8, !noundef !5 call void @llvm.experimental.noalias.scope.decl(metadata !126) - call void @llvm.lifetime.start.p0(ptr nonnull %22) - store ptr %47, ptr %22, align 8, !noalias !129 - %51 = getelementptr inbounds nuw i8, ptr %22, i64 8 + call void @llvm.lifetime.start.p0(ptr nonnull %23) + store ptr %47, ptr %23, align 8, !noalias !129 + %51 = getelementptr inbounds nuw i8, ptr %23, i64 8 store i64 %43, ptr %51, align 8, !noalias !129 %52 = load atomic i64, ptr @_ZN3log20MAX_LOG_LEVEL_FILTER17hf768fde6e6624078E monotonic, align 8, !noalias !129 %53 = icmp ult i64 %52, 6 @@ -2407,11 +2408,11 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot br label %61 57: ; preds = %.noexc45 - call void @llvm.lifetime.end.p0(ptr nonnull %21), !noalias !129 - call void @llvm.lifetime.end.p0(ptr nonnull %19), !noalias !129 + call void @llvm.lifetime.end.p0(ptr nonnull %22), !noalias !129 call void @llvm.lifetime.end.p0(ptr nonnull %20), !noalias !129 - %.pre.i = load ptr, ptr %22, align 8, !noalias !129 - %.pre50.i = load i64, ptr %51, align 8, !noalias !129 + call void @llvm.lifetime.end.p0(ptr nonnull %21), !noalias !129 + %.pre50.i = load ptr, ptr %23, align 8, !noalias !129 + %.pre50.i = load i64, ptr %52, align 8, !noalias !129 call void @llvm.lifetime.start.p0(ptr nonnull %12), !noalias !129 call void @llvm.lifetime.start.p0(ptr nonnull %13), !noalias !129 store ptr %48, ptr %13, align 8, !noalias !132 @@ -2425,9 +2426,9 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot br i1 %60, label %76, label %61, !prof !137 61: ; preds = %.thread, %57 - %62 = phi ptr [ %56, %.thread ], [ %59, %57 ] - %63 = phi ptr [ %47, %.thread ], [ %.pre.i, %57 ] - %64 = phi i64 [ %43, %.thread ], [ %.pre50.i, %57 ] + %62 = phi ptr [ %56, %.thread ], [ %59, %58 ] + %63 = phi ptr [ %47, %.thread ], [ %.pre.i, %58 ] + %64 = phi i64 [ %43, %.thread ], [ %.pre50.i, %58 ] invoke fastcc void @"_ZN9elfshaker4repo10repository10Repository19are_snapshots_equal28_$u7b$$u7b$closure$u7d$$u7d$17hc40ef7222efdce78E"(ptr noalias noundef align 1 captures(none) dereferenceable(21) %11, ptr nonnull %13, ptr nonnull %12, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %63) to label %.noexc unwind label %.thread101.loopexit.split-lp.loopexit.split-lp @@ -2480,42 +2481,42 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot unreachable 77: ; preds = %45 + call void @llvm.lifetime.start.p0(ptr nonnull %22), !noalias !129 call void @llvm.lifetime.start.p0(ptr nonnull %21), !noalias !129 - call void @llvm.lifetime.start.p0(ptr nonnull %20), !noalias !129 - store ptr %22, ptr %20, align 8, !noalias !129 - %.sroa.412.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %20, i64 8 + store ptr %23, ptr %21, align 8, !noalias !129 + %.sroa.412.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %21, i64 8 store ptr @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17he37e01848cb3212cE", ptr %.sroa.412.0..sroa_idx.i, align 8, !noalias !129 - store ptr @anon.7d7fa6b3a568edea7c5b2245a49c0080.235, ptr %21, align 8, !noalias !129 - %78 = getelementptr inbounds nuw i8, ptr %21, i64 8 + store ptr @anon.7d7fa6b3a568edea7c5b2245a49c0080.235, ptr %22, align 8, !noalias !129 + %78 = getelementptr inbounds nuw i8, ptr %22, i64 8 store i64 2, ptr %78, align 8, !noalias !129 - %79 = getelementptr inbounds nuw i8, ptr %21, i64 32 + %79 = getelementptr inbounds nuw i8, ptr %22, i64 32 store ptr null, ptr %79, align 8, !noalias !129 - %80 = getelementptr inbounds nuw i8, ptr %21, i64 16 - store ptr %20, ptr %80, align 8, !noalias !129 - %81 = getelementptr inbounds nuw i8, ptr %21, i64 24 + %80 = getelementptr inbounds nuw i8, ptr %22, i64 16 + store ptr %21, ptr %80, align 8, !noalias !129 + %81 = getelementptr inbounds nuw i8, ptr %22, i64 24 store i64 1, ptr %81, align 8, !noalias !129 - call void @llvm.lifetime.start.p0(ptr nonnull %19), !noalias !129 + call void @llvm.lifetime.start.p0(ptr nonnull %20), !noalias !129 %82 = invoke noundef align 8 dereferenceable(24) ptr @_ZN3log13__private_api3loc17h3ab63cf1e40497eeE(ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7d7fa6b3a568edea7c5b2245a49c0080.236) to label %.noexc45 unwind label %.thread101.loopexit.split-lp.loopexit.split-lp .noexc45: ; preds = %77 - store ptr @anon.7d7fa6b3a568edea7c5b2245a49c0080.127, ptr %19, align 8, !noalias !129 - %83 = getelementptr inbounds nuw i8, ptr %19, i64 8 + store ptr @anon.7d7fa6b3a568edea7c5b2245a49c0080.127, ptr %20, align 8, !noalias !129 + %83 = getelementptr inbounds nuw i8, ptr %20, i64 8 store i64 27, ptr %83, align 8, !noalias !129 - %84 = getelementptr inbounds nuw i8, ptr %19, i64 16 + %84 = getelementptr inbounds nuw i8, ptr %20, i64 16 store ptr @anon.7d7fa6b3a568edea7c5b2245a49c0080.127, ptr %84, align 8, !noalias !129 - %85 = getelementptr inbounds nuw i8, ptr %19, i64 24 + %85 = getelementptr inbounds nuw i8, ptr %20, i64 24 store i64 27, ptr %85, align 8, !noalias !129 - %86 = getelementptr inbounds nuw i8, ptr %19, i64 32 + %86 = getelementptr inbounds nuw i8, ptr %20, i64 32 store ptr %82, ptr %86, align 8, !noalias !129 - invoke void @_ZN3log13__private_api8log_impl17hb1db218cb75835bdE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %21, i64 noundef 3, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %19, ptr noalias noundef readonly align 8 null, i64 undef) - to label %57 unwind label %.thread101.loopexit.split-lp.loopexit.split-lp + invoke void @_ZN3log13__private_api8log_impl17hb1db218cb75835bdE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %22, i64 noundef 3, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %20, ptr noalias noundef readonly align 8 null, i64 undef) + to label %58 unwind label %.thread101.loopexit.split-lp.loopexit.split-lp 87: ; preds = %"_ZN4core4iter8adapters3map12map_try_fold28_$u7b$$u7b$closure$u7d$$u7d$17h4c57888e3e1c1fe0E.exit.i.i.i", %74 call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !132 call void @llvm.lifetime.end.p0(ptr nonnull %12), !noalias !129 call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !129 - call void @llvm.lifetime.start.p0(ptr nonnull %14), !noalias !129 + call void @llvm.lifetime.start.p0(ptr nonnull %15), !noalias !129 call void @llvm.lifetime.start.p0(ptr nonnull %9), !noalias !153 invoke void @"_ZN5alloc7raw_vec20RawVecInner$LT$A$GT$15try_allocate_in17h5063d03c34177e2eE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %9, i64 noundef %50, i1 noundef zeroext false, i64 noundef 1, i64 noundef 1) to label %.noexc47 unwind label %.thread101.loopexit.split-lp.loopexit.split-lp @@ -2538,12 +2539,12 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot call void @llvm.assume(i1 %96) call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !153 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %95, ptr nonnull readonly align 1 %49, i64 %50, i1 false), !noalias !159 - store i64 %91, ptr %14, align 8, !noalias !129 - %.sroa.445.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %14, i64 8 + store i64 %91, ptr %15, align 8, !noalias !129 + %.sroa.445.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %15, i64 8 store ptr %95, ptr %.sroa.445.0..sroa_idx.i, align 8, !noalias !129 - %.sroa.546.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %14, i64 16 + %.sroa.546.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %15, i64 16 store i64 %50, ptr %.sroa.546.0..sroa_idx.i, align 8, !noalias !129 - %97 = load ptr, ptr %22, align 8, !noalias !129, !nonnull !5, !align !18, !noundef !5 + %97 = load ptr, ptr %23, align 8, !noalias !129, !nonnull !5, !align !18, !noundef !5 %98 = load i64, ptr %51, align 8, !noalias !129, !noundef !5 call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !129 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !160 @@ -2618,7 +2619,7 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot call void @llvm.lifetime.end.p0(ptr nonnull %12), !noalias !129 call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !129 %122 = load i64, ptr %51, align 8, !noalias !129, !noundef !5 - %123 = load ptr, ptr %22, align 8, !noalias !129, !nonnull !5, !align !18, !noundef !5 + %123 = load ptr, ptr %23, align 8, !noalias !129, !nonnull !5, !align !18, !noundef !5 %124 = getelementptr inbounds nuw { { { { { i64, ptr, {} }, {} }, i64 } } }, ptr %123, i64 %122 br label %125 @@ -2636,8 +2637,8 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot br i1 %129, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4find17h9bfbfe7860ba3194E.exit.i", label %125 "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4find17h9bfbfe7860ba3194E.exit.i": ; preds = %.noexc49, %125 - %.sroa.0.0.i.i = phi ptr [ %126, %.noexc49 ], [ null, %125 ] - call void @llvm.lifetime.start.p0(ptr nonnull %18), !noalias !129 + %.sroa.0.0.i.i = phi ptr [ %126, %.noexc49 ], [ null, %126 ] + call void @llvm.lifetime.start.p0(ptr nonnull %19), !noalias !129 %131 = load i64, ptr %51, align 8, !noalias !129, !noundef !5 %.not33.i = icmp eq i64 %131, 0 br i1 %.not33.i, label %136, label %139 @@ -2648,8 +2649,8 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot br label %.body.i .body.i: ; preds = %132, %121 - %eh.lpad-body.i = phi { ptr, i32 } [ %133, %132 ], [ %lpad.loopexit.i.i, %121 ] - invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hf784466cc816aa33E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %14) #23 + %eh.lpad-body.i = phi { ptr, i32 } [ %133, %133 ], [ %lpad.loopexit.i.i, %122 ] + invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hf784466cc816aa33E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) #23 to label %.thread96 unwind label %134, !noalias !126 .loopexit.i: ; preds = %"_ZN68_$LT$elfshaker..repo..pack..PackId$u20$as$u20$core..clone..Clone$GT$5clone17h8d730fb4f2b6c8ebE.exit.i.i", %.lr.ph.i.i, %"_ZN5alloc7raw_vec20RawVecInner$LT$A$GT$16with_capacity_in17h717a344c99602b8cE.exit.i.i" @@ -2659,8 +2660,8 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !160 call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !129 %.sroa.4.0..sroa_idx.i42 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4.0..sroa_idx.i42, ptr noundef nonnull align 8 dereferenceable(24) %14, i64 24, i1 false), !noalias !168 - call void @llvm.lifetime.end.p0(ptr nonnull %14), !noalias !129 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4.0..sroa_idx.i42, ptr noundef nonnull align 8 dereferenceable(24) %15, i64 24, i1 false), !noalias !168 + call void @llvm.lifetime.end.p0(ptr nonnull %15), !noalias !129 store i64 -9223372036854775798, ptr %0, align 8, !alias.scope !126, !noalias !168 br label %_ZN9elfshaker4repo10repository10Repository21disambiguate_snapshot17h1a11d1daadc15c9cE.exit @@ -2680,74 +2681,77 @@ define void @_ZN9elfshaker4repo10repository10Repository23find_pack_with_snapshot 137: ; preds = %153, %146 %138 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hf784466cc816aa33E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %18) + invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hf784466cc816aa33E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19) to label %.thread96 unwind label %134, !noalias !126 139: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4find17h9bfbfe7860ba3194E.exit.i" - %140 = load ptr, ptr %22, align 8, !noalias !129, !nonnull !5, !align !18, !noundef !5 + %140 = load ptr, ptr %23, align 8, !noalias !129, !nonnull !5, !align !18, !noundef !5 %.not34.i = icmp eq ptr %.sroa.0.0.i.i, null %spec.select.i = select i1 %.not34.i, ptr %140, ptr %.sroa.0.0.i.i - invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h264d14c2948c37e0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %18, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %spec.select.i) + call void @llvm.lifetime.start.p0(ptr nonnull %14), !noalias !129 + invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17h264d14c2948c37e0E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %14, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %spec.select.i) to label %.noexc51 unwind label %.thread101.loopexit.split-lp.loopexit.split-lp .noexc51: ; preds = %139 - %141 = load atomic i64, ptr @_ZN3log20MAX_LOG_LEVEL_FILTER17hf768fde6e6624078E monotonic, align 8, !noalias !129 - %142 = icmp ult i64 %141, 6 - call void @llvm.assume(i1 %142) - %143 = icmp samesign ugt i64 %141, 2 - br i1 %143, label %146, label %144 - -144: ; preds = %158, %.noexc51 - %145 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %145, ptr noundef nonnull align 8 dereferenceable(24) %18, i64 24, i1 false), !noalias !168 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(24) %14, i64 24, i1 false), !noalias !129 + call void @llvm.lifetime.end.p0(ptr nonnull %14), !noalias !129 + %142 = load atomic i64, ptr @_ZN3log20MAX_LOG_LEVEL_FILTER17hf768fde6e6624078E monotonic, align 8, !noalias !129 + %143 = icmp ult i64 %141, 6 + call void @llvm.assume(i1 %143) + %144 = icmp samesign ugt i64 %142, 2 + br i1 %144, label %147, label %145 + +145:; preds = %158, %.noexc51 + %146 = getelementptr inbounds nuw i8, ptr %0, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %146, ptr noundef nonnull align 8 dereferenceable(24) %19, i64 24, i1 false), !noalias !168 store i64 -9223372036854775791, ptr %0, align 8, !alias.scope !126, !noalias !168 - call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !129 + call void @llvm.lifetime.end.p0(ptr nonnull %19), !noalias !129 br label %_ZN9elfshaker4repo10repository10Repository21disambiguate_snapshot17h1a11d1daadc15c9cE.exit 146: ; preds = %.noexc51 + call void @llvm.lifetime.start.p0(ptr nonnull %18), !noalias !129 call void @llvm.lifetime.start.p0(ptr nonnull %17), !noalias !129 - call void @llvm.lifetime.start.p0(ptr nonnull %16), !noalias !129 - store ptr %22, ptr %16, align 8, !noalias !129 - %.sroa.425.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %16, i64 8 + store ptr %23, ptr %17, align 8, !noalias !129 + %.sroa.425.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %17, i64 8 store ptr @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$GT$3fmt17he37e01848cb3212cE", ptr %.sroa.425.0..sroa_idx.i, align 8, !noalias !129 - %147 = getelementptr inbounds nuw i8, ptr %16, i64 16 - store ptr %18, ptr %147, align 8, !noalias !129 - %.sroa.429.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %16, i64 24 + %147 = getelementptr inbounds nuw i8, ptr %17, i64 16 + store ptr %19, ptr %147, align 8, !noalias !129 + %.sroa.429.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %17, i64 24 store ptr @"_ZN66_$LT$elfshaker..repo..pack..PackId$u20$as$u20$core..fmt..Debug$GT$3fmt17hbe6062498c17d060E", ptr %.sroa.429.0..sroa_idx.i, align 8, !noalias !129 - store ptr @anon.7d7fa6b3a568edea7c5b2245a49c0080.240, ptr %17, align 8, !noalias !129 - %148 = getelementptr inbounds nuw i8, ptr %17, i64 8 + store ptr @anon.7d7fa6b3a568edea7c5b2245a49c0080.240, ptr %18, align 8, !noalias !129 + %148 = getelementptr inbounds nuw i8, ptr %18, i64 8 store i64 3, ptr %148, align 8, !noalias !129 - %149 = getelementptr inbounds nuw i8, ptr %17, i64 32 + %149 = getelementptr inbounds nuw i8, ptr %18, i64 32 store ptr null, ptr %149, align 8, !noalias !129 - %150 = getelementptr inbounds nuw i8, ptr %17, i64 16 - store ptr %16, ptr %150, align 8, !noalias !129 - %151 = getelementptr inbounds nuw i8, ptr %17, i64 24 + %150 = getelementptr inbounds nuw i8, ptr %18, i64 16 + store ptr %17, ptr %150, align 8, !noalias !129 + %151 = getelementptr inbounds nuw i8, ptr %18, i64 24 store i64 2, ptr %151, align 8, !noalias !129 - call void @llvm.lifetime.start.p0(ptr nonnull %15), !noalias !129 + call void @llvm.lifetime.start.p0(ptr nonnull %16), !noalias !129 %152 = invoke noundef align 8 dereferenceable(24) ptr @_ZN3log13__private_api3loc17h3ab63cf1e40497eeE(ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7d7fa6b3a568edea7c5b2245a49c0080.241) - to label %153 unwind label %137, !noalias !126 + to label %154 unwind label %137, !noalias !126 153: ; preds = %146 - store ptr @anon.7d7fa6b3a568edea7c5b2245a49c0080.127, ptr %15, align 8, !noalias !129 - %154 = getelementptr inbounds nuw i8, ptr %15, i64 8 + store ptr @anon.7d7fa6b3a568edea7c5b2245a49c0080.127, ptr %16, align 8, !noalias !129 + %154 = getelementptr inbounds nuw i8, ptr %16, i64 8 store i64 27, ptr %154, align 8, !noalias !129 - %155 = getelementptr inbounds nuw i8, ptr %15, i64 16 + %155 = getelementptr inbounds nuw i8, ptr %16, i64 16 store ptr @anon.7d7fa6b3a568edea7c5b2245a49c0080.127, ptr %155, align 8, !noalias !129 - %156 = getelementptr inbounds nuw i8, ptr %15, i64 24 + %156 = getelementptr inbounds nuw i8, ptr %16, i64 24 store i64 27, ptr %156, align 8, !noalias !129 - %157 = getelementptr inbounds nuw i8, ptr %15, i64 32 + %157 = getelementptr inbounds nuw i8, ptr %16, i64 32 store ptr %152, ptr %157, align 8, !noalias !129 - invoke void @_ZN3log13__private_api8log_impl17hb1db218cb75835bdE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %17, i64 noundef 3, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %15, ptr noalias noundef readonly align 8 null, i64 undef) - to label %158 unwind label %137, !noalias !126 + invoke void @_ZN3log13__private_api8log_impl17hb1db218cb75835bdE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %18, i64 noundef 3, ptr noalias noundef nonnull readonly align 8 dereferenceable(40) %16, ptr noalias noundef readonly align 8 null, i64 undef) + to label %159 unwind label %137, !noalias !126 158: ; preds = %153 - call void @llvm.lifetime.end.p0(ptr nonnull %17), !noalias !129 - call void @llvm.lifetime.end.p0(ptr nonnull %15), !noalias !129 + call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !129 call void @llvm.lifetime.end.p0(ptr nonnull %16), !noalias !129 - br label %144 + call void @llvm.lifetime.end.p0(ptr nonnull %17), !noalias !129 + br label %145 -_ZN9elfshaker4repo10repository10Repository21disambiguate_snapshot17h1a11d1daadc15c9cE.exit: ; preds = %.loopexit.i, %144 - call void @llvm.lifetime.end.p0(ptr nonnull %22) +_ZN9elfshaker4repo10repository10Repository21disambiguate_snapshot17h1a11d1daadc15c9cE.exit: ; preds = %.loopexit.i, %145 + call void @llvm.lifetime.end.p0(ptr nonnull %23) br label %174 159: ; preds = %41 @@ -2770,8 +2774,8 @@ _ZN9elfshaker4repo10repository10Repository21disambiguate_snapshot17h1a11d1daadc1 br label %.invoke .invoke: ; preds = %93, %167 - %169 = phi i64 [ %165, %167 ], [ %91, %93 ] - %170 = phi i64 [ %168, %167 ], [ %94, %93 ] + %169 = phi i64 [ %165, %168 ], [ %91, %94 ] + %170 = phi i64 [ %168, %168 ], [ %94, %94 ] invoke void @_ZN5alloc7raw_vec12handle_error17h84144ef81c430b40E(i64 noundef %169, i64 %170, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7d7fa6b3a568edea7c5b2245a49c0080.117) #25 to label %.cont unwind label %.thread101.loopexit.split-lp.loopexit.split-lp @@ -2815,18 +2819,18 @@ _ZN9elfshaker4repo10repository10Repository21disambiguate_snapshot17h1a11d1daadc1 br label %187 "_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h44c35dc360c245c1E.exit": ; preds = %41 - call void @llvm.lifetime.start.p0(ptr nonnull %24) + call void @llvm.lifetime.start.p0(ptr nonnull %25) %.sroa.078.0.copyload = load i64, ptr %27, align 8 %.sroa.479.0..sroa_idx = getelementptr inbounds nuw i8, ptr %27, i64 8 %.sroa.479.0.copyload = load ptr, ptr %.sroa.479.0..sroa_idx, align 8, !nonnull !5, !noundef !5 %175 = getelementptr inbounds nuw i8, ptr %.sroa.479.0.copyload, i64 24 %176 = icmp sgt i64 %.sroa.078.0.copyload, -1 call void @llvm.assume(i1 %176) - store ptr %.sroa.479.0.copyload, ptr %24, align 8, !alias.scope !176, !noalias !179 - %177 = getelementptr inbounds nuw i8, ptr %24, i64 16 + store ptr %.sroa.479.0.copyload, ptr %25, align 8, !alias.scope !176, !noalias !179 + %177 = getelementptr inbounds nuw i8, ptr %25, i64 16 store i64 %.sroa.078.0.copyload, ptr %177, align 8, !alias.scope !176, !noalias !179 - %178 = getelementptr inbounds nuw i8, ptr %24, i64 8 - %179 = getelementptr inbounds nuw i8, ptr %24, i64 24 + %178 = getelementptr inbounds nuw i8, ptr %25, i64 8 + %179 = getelementptr inbounds nuw i8, ptr %25, i64 24 store ptr %175, ptr %179, align 8, !alias.scope !176, !noalias !179 call void @llvm.experimental.noalias.scope.decl(metadata !181) store ptr %175, ptr %178, align 8, !alias.scope !181, !noalias !184 @@ -2837,7 +2841,7 @@ _ZN9elfshaker4repo10repository10Repository21disambiguate_snapshot17h1a11d1daadc1 180: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h44c35dc360c245c1E.exit.thread" %181 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr89drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$elfshaker..repo..pack..PackId$GT$$GT$17hc77d34afac3c632aE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %24) #23 + invoke void @"_ZN4core3ptr89drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$elfshaker..repo..pack..PackId$GT$$GT$17hc77d34afac3c632aE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %25) #23 to label %.thread92 unwind label %185 182: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h44c35dc360c245c1E.exit" @@ -2847,13 +2851,13 @@ _ZN9elfshaker4repo10repository10Repository21disambiguate_snapshot17h1a11d1daadc1 %183 = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 %.sroa.072.0.copyload73, ptr %183, align 8 store i64 -9223372036854775791, ptr %0, align 8 - call void @"_ZN4core3ptr89drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$elfshaker..repo..pack..PackId$GT$$GT$17hc77d34afac3c632aE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %24) - call void @llvm.lifetime.end.p0(ptr nonnull %24) + call void @"_ZN4core3ptr89drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$elfshaker..repo..pack..PackId$GT$$GT$17hc77d34afac3c632aE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %25) + call void @llvm.lifetime.end.p0(ptr nonnull %25) br label %187 "_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h44c35dc360c245c1E.exit.thread": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h44c35dc360c245c1E.exit" invoke void @_ZN4core6option13unwrap_failed17h1fc5fce77a97a273E(ptr noalias noundef readonly align 8 dereferenceable(24) @anon.7d7fa6b3a568edea7c5b2245a49c0080.138) #25 - to label %184 unwind label %180 + to label %185 unwind label %180 184: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h44c35dc360c245c1E.exit.thread" unreachable @@ -2869,11 +2873,11 @@ _ZN9elfshaker4repo10repository10Repository21disambiguate_snapshot17h1a11d1daadc1 ret void .thread92: ; preds = %180, %.thread96 - %.pn95 = phi { ptr, i32 } [ %181, %180 ], [ %eh.lpad-body99, %.thread96 ] + %.pn95 = phi { ptr, i32 } [ %181, %181 ], [ %eh.lpad-body99, %.thread96 ] resume { ptr, i32 } %.pn95 .thread96: ; preds = %.thread101.loopexit, %.thread101.loopexit.split-lp.loopexit.split-lp, %.thread101.loopexit.split-lp.loopexit, %.body.i, %137 - %eh.lpad-body99 = phi { ptr, i32 } [ %eh.lpad-body.i, %.body.i ], [ %138, %137 ], [ %lpad.loopexit, %.thread101.loopexit ], [ %lpad.loopexit106, %.thread101.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp107, %.thread101.loopexit.split-lp.loopexit.split-lp ] + %eh.lpad-body99 = phi { ptr, i32 } [ %eh.lpad-body.i, %.body.i ], [ %138, %138 ], [ %lpad.loopexit, %.thread101.loopexit ], [ %lpad.loopexit106, %.thread101.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp107, %.thread101.loopexit.split-lp.loopexit.split-lp ] invoke void @"_ZN4core3ptr73drop_in_place$LT$alloc..vec..Vec$LT$elfshaker..repo..pack..PackId$GT$$GT$17hacce5c24ec70cb06E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %27) #23 to label %.thread92 unwind label %185 diff --git a/bench/fish-rs/optimized/5o5xgybh9xo8acbeboom17uhq.ll b/bench/fish-rs/optimized/5o5xgybh9xo8acbeboom17uhq.ll index 3abcf46348d..b2f5df2a0c6 100644 --- a/bench/fish-rs/optimized/5o5xgybh9xo8acbeboom17uhq.ll +++ b/bench/fish-rs/optimized/5o5xgybh9xo8acbeboom17uhq.ll @@ -14150,55 +14150,57 @@ define hidden void @_ZN4fish5abbrs10with_abbrs17hf034ca4ab5d57dc6E(ptr noalias n %5 = alloca [24 x i8], align 8 %6 = alloca [24 x i8], align 8 %7 = alloca [24 x i8], align 8 - %8 = alloca [56 x i8], align 8 - %9 = alloca [16 x i8], align 8 - %10 = alloca [24 x i8], align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %10) - %11 = tail call noundef nonnull align 8 ptr @"_ZN9once_cell4sync17OnceCell$LT$T$GT$15get_or_try_init17h62c8edbb5c33475aE"(ptr noundef nonnull align 8 @_ZN4fish5abbrs5ABBRS17hdc0f19f8ff31d47dE, ptr noundef nonnull align 8 @_ZN4fish5abbrs5ABBRS17hdc0f19f8ff31d47dE) - call void @"_ZN3std4sync6poison5mutex14Mutex$LT$T$GT$4lock17h27664bec253a1d38E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %10, ptr noundef nonnull align 8 %11) + %8 = alloca [24 x i8], align 8 + %9 = alloca [24 x i8], align 8 + %10 = alloca [56 x i8], align 8 + %11 = alloca [16 x i8], align 8 + %12 = alloca [24 x i8], align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %12) + %13 = tail call noundef nonnull align 8 ptr @"_ZN9once_cell4sync17OnceCell$LT$T$GT$15get_or_try_init17h62c8edbb5c33475aE"(ptr noundef nonnull align 8 @_ZN4fish5abbrs5ABBRS17hdc0f19f8ff31d47dE, ptr noundef nonnull align 8 @_ZN4fish5abbrs5ABBRS17hdc0f19f8ff31d47dE) + call void @"_ZN3std4sync6poison5mutex14Mutex$LT$T$GT$4lock17h27664bec253a1d38E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %12, ptr noundef nonnull align 8 %13) tail call void @llvm.experimental.noalias.scope.decl(metadata !2420) - %12 = load i64, ptr %10, align 8, !range !28, !alias.scope !2420, !noalias !2423, !noundef !17 + %12 = load i64, ptr %12, align 8, !range !28, !alias.scope !2420, !noalias !2423, !noundef !17 %13 = trunc nuw i64 %12 to i1 - br i1 %13, label %14, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h79599731b688dd63E.exit", !prof !46 - -14: ; preds = %2 - call void @llvm.lifetime.start.p0(ptr nonnull %9), !noalias !2425 - %15 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %16 = load ptr, ptr %15, align 8, !alias.scope !2420, !noalias !2423, !nonnull !17, !align !26, !noundef !17 - %17 = getelementptr inbounds nuw i8, ptr %10, i64 16 - %18 = load i8, ptr %17, align 8, !range !108, !alias.scope !2420, !noalias !2423, !noundef !17 - store ptr %16, ptr %9, align 8, !noalias !2425 - %19 = getelementptr inbounds nuw i8, ptr %9, i64 8 - store i8 %18, ptr %19, align 8, !noalias !2425 - invoke void @_ZN4core6result13unwrap_failed17h563d6df1cad9fe9bE(ptr noalias noundef nonnull readonly align 1 @anon.cf6b743a34a7c76188724518d33b37d2.67, i64 noundef 43, ptr noundef nonnull align 1 %9, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.cf6b743a34a7c76188724518d33b37d2.71, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.cf6b743a34a7c76188724518d33b37d2.147) #36 - to label %22 unwind label %20, !noalias !2420 + br i1 %13, label %16, label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h79599731b688dd63E.exit", !prof !46 -20: ; preds = %14 - %21 = landingpad { ptr, i32 } +20: ; preds = %2 + call void @llvm.lifetime.start.p0(ptr nonnull %11), !noalias !2425 + %17 = getelementptr inbounds nuw i8, ptr %12, i64 8 + %18 = load ptr, ptr %17, align 8, !alias.scope !2420, !noalias !2423, !nonnull !17, !align !26, !noundef !17 + %19 = getelementptr inbounds nuw i8, ptr %12, i64 16 + %20 = load i8, ptr %19, align 8, !range !108, !alias.scope !2420, !noalias !2423, !noundef !17 + store ptr %18, ptr %11, align 8, !noalias !2425 + %21 = getelementptr inbounds nuw i8, ptr %11, i64 8 + store i8 %20, ptr %21, align 8, !noalias !2425 + invoke void @_ZN4core6result13unwrap_failed17h563d6df1cad9fe9bE(ptr noalias noundef nonnull readonly align 1 @anon.cf6b743a34a7c76188724518d33b37d2.67, i64 noundef 43, ptr noundef nonnull align 1 %11, ptr noalias noundef readonly align 8 dereferenceable(32) @anon.cf6b743a34a7c76188724518d33b37d2.71, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.cf6b743a34a7c76188724518d33b37d2.147) #36 + to label %24 unwind label %22, !noalias !2420 + +22: ; preds = %16 + %23 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr131drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..poison..mutex..MutexGuard$LT$fish..abbrs..AbbreviationSet$GT$$GT$$GT$17h0e5d0fdeb0527051E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %9) #34 + invoke void @"_ZN4core3ptr131drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..poison..mutex..MutexGuard$LT$fish..abbrs..AbbreviationSet$GT$$GT$$GT$17h0e5d0fdeb0527051E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %11) #34 to label %common.resume unwind label %23, !noalias !2420 -22: ; preds = %14 +22: ; preds = %16 unreachable -23: ; preds = %20 +23: ; preds = %22 %24 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hccd47ddd364deb23E() #35, !noalias !2420 unreachable -common.resume: ; preds = %.body, %20 - %common.resume.op = phi { ptr, i32 } [ %21, %20 ], [ %eh.lpad-body, %.body ] +common.resume: ; preds = %.body, %22 + %common.resume.op = phi { ptr, i32 } [ %23, %22 ], [ %eh.lpad-body, %.body ] resume { ptr, i32 } %common.resume.op "_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h79599731b688dd63E.exit": ; preds = %2 - %25 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %25 = getelementptr inbounds nuw i8, ptr %12, i64 8 %26 = load ptr, ptr %25, align 8, !alias.scope !2420, !noalias !2423, !nonnull !17, !align !26, !noundef !17 - %27 = getelementptr inbounds nuw i8, ptr %10, i64 16 + %27 = getelementptr inbounds nuw i8, ptr %12, i64 16 %28 = load i8, ptr %27, align 8, !range !108, !alias.scope !2420, !noalias !2423, !noundef !17 %29 = trunc nuw i8 %28 to i1 - call void @llvm.lifetime.end.p0(ptr nonnull %10) + call void @llvm.lifetime.end.p0(ptr nonnull %12) %30 = getelementptr inbounds nuw i8, ptr %26, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !2426) %31 = invoke { ptr, i64 } @_ZN4fish5abbrs15AbbreviationSet4list17hce81100898d3c102E(ptr noalias noundef nonnull readonly align 8 dereferenceable(72) %30) @@ -14220,7 +14222,7 @@ common.resume: ; preds = %.body, %20 br label %39 39: ; preds = %56, %.lr.ph.i - %.sroa.02.05.i = phi ptr [ %32, %.lr.ph.i ], [ %40, %56 ] + %.sroa.02.05.i = phi ptr [ %32, %.lr.ph.i ], [ %40, %58 ] %40 = getelementptr inbounds nuw i8, ptr %.sroa.02.05.i, i64 136 %41 = invoke noundef zeroext i1 @_ZN4fish5abbrs12Abbreviation8is_regex17hc7f9d16a84c269a1E(ptr noalias noundef nonnull readonly align 8 dereferenceable(136) %.sroa.02.05.i) to label %.noexc7 unwind label %.loopexit @@ -14229,18 +14231,21 @@ common.resume: ; preds = %.body, %20 br i1 %41, label %56, label %42 42: ; preds = %.noexc7 - call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !2429 - call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !2429 - %43 = getelementptr inbounds nuw i8, ptr %.sroa.02.05.i, i64 24 - invoke void @"_ZN67_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h0735b64d57a14b6bE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %43, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.cf6b743a34a7c76188724518d33b37d2.4) + call void @llvm.lifetime.start.p0(ptr nonnull %10), !noalias !2429 + call void @llvm.lifetime.start.p0(ptr nonnull %9), !noalias !2429 + call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !2429 + %45 = getelementptr inbounds nuw i8, ptr %.sroa.02.05.i, i64 24 + invoke void @"_ZN67_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h0735b64d57a14b6bE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %45, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.cf6b743a34a7c76188724518d33b37d2.4) to label %.noexc8 unwind label %.loopexit .noexc8: ; preds = %42 - invoke void @_ZN4fish8complete10Completion15from_completion17h10195a5e16fc0bd2E(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %8, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %7) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(22) %9, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false), !noalias !2429 + call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !2429 + invoke void @_ZN4fish8complete10Completion15from_completion17h10195a5e16fc0bd2E(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %10, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %9) to label %.noexc9 unwind label %.loopexit .noexc9: ; preds = %.noexc8 - call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !2429 + call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !2429 %44 = load i64, ptr %37, align 8, !alias.scope !2432, !noalias !2435, !noundef !17 %45 = load i64, ptr %0, align 8, !range !21, !alias.scope !2432, !noalias !2435, !noundef !17 %46 = icmp eq i64 %44, %45 @@ -14253,7 +14258,7 @@ common.resume: ; preds = %.body, %20 48: ; preds = %47 %49 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr47drop_in_place$LT$fish..complete..Completion$GT$17hc768dd9b1a25b0baE"(ptr noalias noundef nonnull align 8 dereferenceable(56) %8) #34 + invoke void @"_ZN4core3ptr47drop_in_place$LT$fish..complete..Completion$GT$17hc768dd9b1a25b0baE"(ptr noalias noundef nonnull align 8 dereferenceable(56) %10) #34 to label %.body unwind label %50 50: ; preds = %48 @@ -14265,51 +14270,54 @@ common.resume: ; preds = %.body, %20 "_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h91e9ce69bacb1c11E.exit.i": ; preds = %47, %.noexc9 %52 = load ptr, ptr %38, align 8, !alias.scope !2432, !noalias !2435, !nonnull !17, !noundef !17 %53 = getelementptr inbounds nuw { { { { { i64, ptr, {} }, {} }, i64 } }, { { { { i64, ptr, {} }, {} }, i64 } }, { i8, i8 }, i16, [2 x i16] }, ptr %52, i64 %44 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %53, ptr noundef nonnull align 8 dereferenceable(56) %8, i64 56, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %53, ptr noundef nonnull align 8 dereferenceable(56) %10, i64 56, i1 false) %54 = add i64 %44, 1 store i64 %54, ptr %37, align 8, !alias.scope !2432, !noalias !2435 - call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !2429 - call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !2429 - call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !2429 - invoke void @"_ZN67_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h0735b64d57a14b6bE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %43, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.cf6b743a34a7c76188724518d33b37d2.4) + call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !2429 + call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !2429 + call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !2429 + call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !2429 + invoke void @"_ZN67_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h0735b64d57a14b6bE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %45, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.cf6b743a34a7c76188724518d33b37d2.4) to label %.noexc10 unwind label %.loopexit .noexc10: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h91e9ce69bacb1c11E.exit.i" - call void @llvm.lifetime.start.p0(ptr nonnull %4), !noalias !2429 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false), !noalias !2429 + call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !2429 + call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !2429 call void @llvm.lifetime.start.p0(ptr nonnull %3), !noalias !2429 %55 = getelementptr inbounds nuw i8, ptr %.sroa.02.05.i, i64 72 invoke void @"_ZN67_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h0735b64d57a14b6bE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %55, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.cf6b743a34a7c76188724518d33b37d2.4) - to label %58 unwind label %62 + to label %60 unwind label %62 56: ; preds = %"_ZN4core3ptr83drop_in_place$LT$core..option..Option$LT$widestring..utfstring..Utf32String$GT$$GT$17h6a5b16ee52cbfd69E.exit.i", %.noexc7 %57 = icmp eq ptr %40, %34 br i1 %57, label %"_ZN4fish8complete9Completer13complete_abbr28_$u7b$$u7b$closure$u7d$$u7d$17h5c81264f46a415ecE.exit", label %39 58: ; preds = %.noexc10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false), !noalias !2429 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false), !noalias !2429 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !2429 - invoke void @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$6insert17h99686cacfc5c4732E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %6, ptr noalias noundef nonnull align 8 dereferenceable(48) %1, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %4) + invoke void @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$6insert17h99686cacfc5c4732E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %8, ptr noalias noundef nonnull align 8 dereferenceable(48) %1, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %7, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6) to label %.noexc11 unwind label %.loopexit .noexc11: ; preds = %58 - call void @llvm.lifetime.end.p0(ptr nonnull %4), !noalias !2429 - call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !2429 - %59 = load i64, ptr %6, align 8, !range !2260, !alias.scope !2438, !noalias !2429, !noundef !17 + call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !2429 + call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !2429 + %59 = load i64, ptr %8, align 8, !range !2260, !alias.scope !2438, !noalias !2429, !noundef !17 %60 = icmp eq i64 %59, -9223372036854775808 br i1 %60, label %"_ZN4core3ptr83drop_in_place$LT$core..option..Option$LT$widestring..utfstring..Utf32String$GT$$GT$17h6a5b16ee52cbfd69E.exit.i", label %61 61: ; preds = %.noexc11 - invoke void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6) + invoke void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %8) to label %"_ZN4core3ptr83drop_in_place$LT$core..option..Option$LT$widestring..utfstring..Utf32String$GT$$GT$17h6a5b16ee52cbfd69E.exit.i" unwind label %.loopexit "_ZN4core3ptr83drop_in_place$LT$core..option..Option$LT$widestring..utfstring..Utf32String$GT$$GT$17h6a5b16ee52cbfd69E.exit.i": ; preds = %61, %.noexc11 - call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !2429 + call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !2429 br label %56 62: ; preds = %.noexc10 %63 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #34 + invoke void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %7) #34 to label %.body unwind label %64 64: ; preds = %62 @@ -14329,7 +14337,7 @@ common.resume: ; preds = %.body, %20 br label %.body .body: ; preds = %.loopexit, %.loopexit.split-lp, %48, %62 - %eh.lpad-body = phi { ptr, i32 } [ %63, %62 ], [ %49, %48 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] + %eh.lpad-body = phi { ptr, i32 } [ %63, %64 ], [ %49, %50 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] invoke fastcc void @"_ZN4core3ptr93drop_in_place$LT$std..sync..poison..mutex..MutexGuard$LT$fish..abbrs..AbbreviationSet$GT$$GT$17h19d39692e0df3a40E"(ptr nonnull %26, i8 %28) #34 to label %common.resume unwind label %77 diff --git a/bench/fish-rs/optimized/e69mx4kebbw5h90l2bpw0bwyt.ll b/bench/fish-rs/optimized/e69mx4kebbw5h90l2bpw0bwyt.ll index a2bec9bed2c..6c211b633fe 100644 --- a/bench/fish-rs/optimized/e69mx4kebbw5h90l2bpw0bwyt.ll +++ b/bench/fish-rs/optimized/e69mx4kebbw5h90l2bpw0bwyt.ll @@ -44895,28 +44895,24 @@ define noundef zeroext i1 @_ZN4fish7history11HistoryItem14matches_search17hf4a52 %7 = alloca [24 x i8], align 8 %8 = alloca [24 x i8], align 8 %9 = alloca [24 x i8], align 8 - %10 = alloca [24 x i8], align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %10) - br i1 %4, label %16, label %11 - -11: ; preds = %5 call void @llvm.lifetime.start.p0(ptr nonnull %9) - %12 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %13 = load ptr, ptr %12, align 8, !nonnull !3, !noundef !3 - %14 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %15 = load i64, ptr %14, align 8, !noundef !3 - call void @_ZN10widestring6utfstr8Utf32Str12to_lowercase17hec5ad4ba55d88cd0E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %9, ptr noalias noundef nonnull readonly align 4 %13, i64 noundef %15) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %9) - br label %18 + br i1 %4, label %18, label %10 16: ; preds = %5 - %17 = getelementptr inbounds nuw i8, ptr %10, i64 8 - store ptr %0, ptr %17, align 8 - store i64 -9223372036854775808, ptr %10, align 8 - br label %18 + %17 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %12 = load ptr, ptr %17, align 8, !nonnull !3, !noundef !3 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %14 = load i64, ptr %13, align 8, !noundef !3 + call void @_ZN10widestring6utfstr8Utf32Str12to_lowercase17hec5ad4ba55d88cd0E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %9, ptr noalias noundef nonnull readonly align 4 %12, i64 noundef %14) + br label %17 -18: ; preds = %16, %11 +18: ; preds = %5 + %16 = getelementptr inbounds nuw i8, ptr %9, i64 8 + store ptr %0, ptr %16, align 8 + store i64 -9223372036854775808, ptr %9, align 8 + br label %17 + +17: ; preds = %15, %10 switch i8 %3, label %default.unreachable57 [ i8 0, label %19 i8 1, label %26 @@ -44928,92 +44924,92 @@ define noundef zeroext i1 @_ZN4fish7history11HistoryItem14matches_search17hf4a52 i8 7, label %58 ] -default.unreachable57: ; preds = %18 +default.unreachable57: ; preds = %17 unreachable -19: ; preds = %18 - %20 = load i64, ptr %10, align 8, !range !138, !noundef !3 +19: ; preds = %17 + %20 = load i64, ptr %9, align 8, !range !138, !noundef !3 %.not18 = icmp eq i64 %20, -9223372036854775808 - %21 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %21 = getelementptr inbounds nuw i8, ptr %9, i64 8 %22 = load ptr, ptr %21, align 8, !nonnull !3, !align !11 %.sroa.gep26 = getelementptr inbounds nuw i8, ptr %22, i64 8 %.sroa.06.0.sroa.sel28 = select i1 %.not18, ptr %.sroa.gep26, ptr %21 %23 = load ptr, ptr %.sroa.06.0.sroa.sel28, align 8, !nonnull !3, !noundef !3 - %.sroa.06.0.sroa.sel.v.sroa.sel.v.sroa.sel.v = select i1 %.not18, ptr %22, ptr %10 + %.sroa.06.0.sroa.sel.v.sroa.sel.v.sroa.sel.v = select i1 %.not18, ptr %22, ptr %9 %.sroa.06.0.sroa.sel.v.sroa.sel.v.sroa.sel = getelementptr inbounds nuw i8, ptr %.sroa.06.0.sroa.sel.v.sroa.sel.v.sroa.sel.v, i64 16 %24 = load i64, ptr %.sroa.06.0.sroa.sel.v.sroa.sel.v.sroa.sel, align 8, !noundef !3 %25 = invoke noundef zeroext i1 @"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h2ff7e82e57dc1e67E"(ptr noalias noundef nonnull readonly align 4 %1, i64 noundef %2, ptr noalias noundef nonnull readonly align 4 %23, i64 noundef %24) - to label %58 unwind label %.loopexit.split-lp + to label %57 unwind label %.loopexit.split-lp -26: ; preds = %18 - %27 = load i64, ptr %10, align 8, !range !138, !noundef !3 +26: ; preds = %17 + %27 = load i64, ptr %9, align 8, !range !138, !noundef !3 %.not17 = icmp eq i64 %27, -9223372036854775808 - %28 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %28 = getelementptr inbounds nuw i8, ptr %9, i64 8 %29 = load ptr, ptr %28, align 8, !nonnull !3, !align !11 %.sroa.gep31 = getelementptr inbounds nuw i8, ptr %29, i64 8 %.sroa.08.0.sroa.sel33 = select i1 %.not17, ptr %.sroa.gep31, ptr %28 %30 = load ptr, ptr %.sroa.08.0.sroa.sel33, align 8, !nonnull !3, !noundef !3 - %.sroa.08.0.sroa.sel.v.sroa.sel.v.sroa.sel.v = select i1 %.not17, ptr %29, ptr %10 + %.sroa.08.0.sroa.sel.v.sroa.sel.v.sroa.sel.v = select i1 %.not17, ptr %29, ptr %9 %.sroa.08.0.sroa.sel.v.sroa.sel.v.sroa.sel = getelementptr inbounds nuw i8, ptr %.sroa.08.0.sroa.sel.v.sroa.sel.v.sroa.sel.v, i64 16 %31 = load i64, ptr %.sroa.08.0.sroa.sel.v.sroa.sel.v.sroa.sel, align 8, !noundef !3 %32 = invoke { i64, i64 } @_ZN4fish4util13find_subslice17he048268a9f46fc97E(ptr noalias noundef nonnull readonly align 4 %1, i64 noundef %2, ptr noalias noundef nonnull readonly align 4 %30, i64 noundef %31) - to label %62 unwind label %.loopexit.split-lp + to label %61 unwind label %.loopexit.split-lp -33: ; preds = %18 - %34 = load i64, ptr %10, align 8, !range !138, !noundef !3 +33: ; preds = %17 + %34 = load i64, ptr %9, align 8, !range !138, !noundef !3 %.not16 = icmp eq i64 %34, -9223372036854775808 - %35 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %35 = getelementptr inbounds nuw i8, ptr %9, i64 8 %36 = load ptr, ptr %35, align 8, !nonnull !3, !align !11 %.sroa.gep36 = getelementptr inbounds nuw i8, ptr %36, i64 8 %.sroa.04.0.sroa.sel38 = select i1 %.not16, ptr %.sroa.gep36, ptr %35 %37 = load ptr, ptr %.sroa.04.0.sroa.sel38, align 8, !nonnull !3, !noundef !3 - %.sroa.04.0.sroa.sel.v.sroa.sel.v.sroa.sel.v = select i1 %.not16, ptr %36, ptr %10 + %.sroa.04.0.sroa.sel.v.sroa.sel.v.sroa.sel.v = select i1 %.not16, ptr %36, ptr %9 %.sroa.04.0.sroa.sel.v.sroa.sel.v.sroa.sel = getelementptr inbounds nuw i8, ptr %.sroa.04.0.sroa.sel.v.sroa.sel.v.sroa.sel.v, i64 16 %38 = load i64, ptr %.sroa.04.0.sroa.sel.v.sroa.sel.v.sroa.sel, align 8, !noundef !3 %39 = invoke noundef zeroext i1 @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$11starts_with17h80b2c4b226846d6dE"(ptr noalias noundef nonnull readonly align 4 %37, i64 noundef %38, ptr noalias noundef nonnull readonly align 4 %1, i64 noundef %2) - to label %58 unwind label %.loopexit.split-lp + to label %57 unwind label %.loopexit.split-lp -40: ; preds = %18 - %41 = load i64, ptr %10, align 8, !range !138, !noundef !3 +40: ; preds = %17 + %41 = load i64, ptr %9, align 8, !range !138, !noundef !3 %.not15 = icmp eq i64 %41, -9223372036854775808 - %42 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %42 = getelementptr inbounds nuw i8, ptr %9, i64 8 %43 = load ptr, ptr %42, align 8, !nonnull !3, !align !11 - %.sroa.03.0 = select i1 %.not15, ptr %43, ptr %10 + %.sroa.03.0 = select i1 %.not15, ptr %43, ptr %9 %44 = invoke { ptr, i64 } @"_ZN76_$LT$widestring..utfstring..Utf32String$u20$as$u20$fish..wchar_ext..WExt$GT$13as_char_slice17h2254c92d308bd512E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.03.0) - to label %65 unwind label %.loopexit.split-lp + to label %64 unwind label %.loopexit.split-lp -45: ; preds = %18 +45: ; preds = %17 call void @llvm.lifetime.start.p0(ptr nonnull %8) invoke void @_ZN4fish10parse_util29parse_util_unescape_wildcards17h3a48ccf9780fa35aE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %8, ptr noalias noundef nonnull readonly align 4 %1, i64 noundef %2) - to label %91 unwind label %.loopexit.split-lp + to label %90 unwind label %.loopexit.split-lp -46: ; preds = %18 +46: ; preds = %17 call void @llvm.lifetime.start.p0(ptr nonnull %7) invoke void @_ZN4fish10parse_util29parse_util_unescape_wildcards17h3a48ccf9780fa35aE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 4 %1, i64 noundef %2) - to label %120 unwind label %.loopexit.split-lp + to label %119 unwind label %.loopexit.split-lp -47: ; preds = %18 - %48 = load i64, ptr %10, align 8, !range !138, !noundef !3 +47: ; preds = %17 + %48 = load i64, ptr %9, align 8, !range !138, !noundef !3 %.not = icmp eq i64 %48, -9223372036854775808 - %49 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %49 = getelementptr inbounds nuw i8, ptr %9, i64 8 %50 = load ptr, ptr %49, align 8, !nonnull !3, !align !11 %.sroa.gep41 = getelementptr inbounds nuw i8, ptr %50, i64 8 %.sroa.01.0.sroa.sel43 = select i1 %.not, ptr %.sroa.gep41, ptr %49 %51 = load ptr, ptr %.sroa.01.0.sroa.sel43, align 8, !nonnull !3, !noundef !3 - %.sroa.01.0.sroa.sel.v.sroa.sel.v.sroa.sel.v = select i1 %.not, ptr %50, ptr %10 + %.sroa.01.0.sroa.sel.v.sroa.sel.v.sroa.sel.v = select i1 %.not, ptr %50, ptr %9 %.sroa.01.0.sroa.sel.v.sroa.sel.v.sroa.sel = getelementptr inbounds nuw i8, ptr %.sroa.01.0.sroa.sel.v.sroa.sel.v.sroa.sel.v, i64 16 %52 = load i64, ptr %.sroa.01.0.sroa.sel.v.sroa.sel.v.sroa.sel, align 8, !noundef !3 %53 = invoke noundef zeroext i1 @_ZN4fish12wcstringutil21subsequence_in_string17h411cf62a54e17210E(ptr noalias noundef nonnull readonly align 4 %1, i64 noundef %2, ptr noalias noundef nonnull readonly align 4 %51, i64 noundef %52) - to label %58 unwind label %.loopexit.split-lp + to label %57 unwind label %.loopexit.split-lp 54: ; preds = %.loopexit, %.loopexit.split-lp, %122, %93 - %.pn = phi { ptr, i32 } [ %123, %122 ], [ %94, %93 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] - %55 = load i64, ptr %10, align 8, !range !138, !alias.scope !4705, !noundef !3 + %.pn = phi { ptr, i32 } [ %123, %121 ], [ %94, %92 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] + %55 = load i64, ptr %9, align 8, !range !138, !alias.scope !4705, !noundef !3 %56 = icmp eq i64 %55, -9223372036854775808 br i1 %56, label %"_ZN4core3ptr81drop_in_place$LT$alloc..borrow..Cow$LT$widestring..utfstring..Utf32String$GT$$GT$17hd49832bb3b0a7c6bE.exit", label %57 57: ; preds = %54 - invoke void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %10) + invoke void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) to label %"_ZN4core3ptr81drop_in_place$LT$alloc..borrow..Cow$LT$widestring..utfstring..Utf32String$GT$$GT$17hd49832bb3b0a7c6bE.exit" unwind label %118 .loopexit: ; preds = %.loopexit.i.i @@ -45026,18 +45022,18 @@ default.unreachable57: ; preds = %18 cleanup br label %54 -58: ; preds = %47, %33, %19, %18, %141, %117, %90, %62 - %.sroa.0.0.shrunk = phi i1 [ true, %18 ], [ %64, %62 ], [ %25, %19 ], [ %.not11.i, %90 ], [ %115, %117 ], [ %139, %141 ], [ %39, %33 ], [ %53, %47 ] - %59 = load i64, ptr %10, align 8, !range !138, !alias.scope !4708, !noundef !3 +58: ; preds = %47, %33, %19, %17, %141, %117, %90, %62 + %.sroa.0.0.shrunk = phi i1 [ true, %17 ], [ %64, %61 ], [ %25, %18 ], [ %.not11.i, %89 ], [ %115, %116 ], [ %139, %140 ], [ %39, %32 ], [ %53, %46 ] + %59 = load i64, ptr %9, align 8, !range !138, !alias.scope !4708, !noundef !3 %60 = icmp eq i64 %59, -9223372036854775808 br i1 %60, label %"_ZN4core3ptr81drop_in_place$LT$alloc..borrow..Cow$LT$widestring..utfstring..Utf32String$GT$$GT$17hd49832bb3b0a7c6bE.exit20", label %61 61: ; preds = %58 - call void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %10) + call void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) br label %"_ZN4core3ptr81drop_in_place$LT$alloc..borrow..Cow$LT$widestring..utfstring..Utf32String$GT$$GT$17hd49832bb3b0a7c6bE.exit20" "_ZN4core3ptr81drop_in_place$LT$alloc..borrow..Cow$LT$widestring..utfstring..Utf32String$GT$$GT$17hd49832bb3b0a7c6bE.exit20": ; preds = %58, %61 - call void @llvm.lifetime.end.p0(ptr nonnull %10) + call void @llvm.lifetime.end.p0(ptr nonnull %9) ret i1 %.sroa.0.0.shrunk 62: ; preds = %26 @@ -45051,9 +45047,9 @@ default.unreachable57: ; preds = %18 br label %68 68: ; preds = %.noexc21, %65 - %69 = phi i64 [ %86, %.noexc21 ], [ %67, %65 ] - %70 = phi ptr [ %87, %.noexc21 ], [ %66, %65 ] - %71 = phi i1 [ %88, %.noexc21 ], [ false, %65 ] + %69 = phi i64 [ %86, %.noexc21 ], [ %67, %64 ] + %70 = phi ptr [ %87, %.noexc21 ], [ %66, %64 ] + %71 = phi i1 [ %88, %.noexc21 ], [ false, %64 ] br i1 %71, label %90, label %72 72: ; preds = %68 @@ -45063,8 +45059,8 @@ default.unreachable57: ; preds = %18 br i1 %74, label %.loopexit.i.i, label %.lr.ph.i.i.i .lr.ph.i.i.i: ; preds = %72, %77 - %.sroa.02.011.i.i.i = phi i64 [ %79, %77 ], [ 0, %72 ] - %75 = phi ptr [ %78, %77 ], [ %70, %72 ] + %.sroa.02.011.i.i.i = phi i64 [ %79, %76 ], [ 0, %71 ] + %75 = phi ptr [ %78, %76 ], [ %70, %71 ] %.val.i.i.i = load i32, ptr %75, align 4, !range !143, !noalias !4711, !noundef !3 %76 = icmp eq i32 %.val.i.i.i, 10 br i1 %76, label %81, label %77 @@ -45084,10 +45080,10 @@ default.unreachable57: ; preds = %18 br label %.loopexit.i.i .loopexit.i.i: ; preds = %77, %72, %81 - %86 = phi i64 [ %84, %81 ], [ 0, %72 ], [ %69, %77 ] - %87 = phi ptr [ %85, %81 ], [ %70, %72 ], [ %70, %77 ] - %88 = phi i1 [ false, %81 ], [ true, %72 ], [ true, %77 ] - %.sroa.5.0.i.ph.i = phi i64 [ %.sroa.02.011.i.i.i, %81 ], [ 0, %72 ], [ %69, %77 ] + %86 = phi i64 [ %84, %80 ], [ 0, %71 ], [ %69, %76 ] + %87 = phi ptr [ %85, %80 ], [ %70, %71 ], [ %69, %76 ] + %88 = phi i1 [ false, %80 ], [ true, %71 ], [ true, %76 ] + %.sroa.5.0.i.ph.i = phi i64 [ %.sroa.02.011.i.i.i, %80 ], [ 0, %71 ], [ %69, %76 ] %89 = invoke noundef zeroext i1 @"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$11starts_with17h4e4743c29f0be411E"(ptr noalias noundef nonnull readonly align 4 %70, i64 noundef %.sroa.5.0.i.ph.i, ptr noalias noundef nonnull readonly align 4 %1, i64 noundef %2) to label %.noexc21 unwind label %.loopexit @@ -45100,13 +45096,13 @@ default.unreachable57: ; preds = %18 91: ; preds = %45 %92 = invoke noundef zeroext i1 @_ZN4fish9wchar_ext4WExt11starts_with17hd3b9f66614440840E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %8, i32 noundef 64993) - to label %95 unwind label %93 + to label %94 unwind label %93 93: ; preds = %106, %111, %98, %96, %91 %94 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %8) #36 - to label %54 unwind label %118 + to label %53 unwind label %118 95: ; preds = %91 br i1 %92, label %98, label %96 @@ -45115,7 +45111,7 @@ default.unreachable57: ; preds = %18 call void @llvm.lifetime.start.p0(ptr nonnull %6) store i32 64993, ptr %6, align 4 invoke void @_ZN10widestring9utfstring11Utf32String12insert_slice17h294d7a48ac7289b8E(ptr noalias noundef nonnull align 8 dereferenceable(24) %8, i64 noundef 0, ptr noalias noundef nonnull readonly align 4 %6, i64 noundef 1) - to label %97 unwind label %93 + to label %96 unwind label %93 97: ; preds = %96 call void @llvm.lifetime.end.p0(ptr nonnull %6) @@ -45123,7 +45119,7 @@ default.unreachable57: ; preds = %18 98: ; preds = %95, %97 %99 = invoke noundef zeroext i1 @_ZN4fish9wchar_ext4WExt9ends_with17heec2d738dec16b93E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %8, i32 noundef 64993) - to label %100 unwind label %93 + to label %99 unwind label %93 100: ; preds = %98 br i1 %99, label %111, label %101 @@ -45149,17 +45145,17 @@ default.unreachable57: ; preds = %18 br label %111 111: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17heed4704be947a31aE.exit", %100 - %112 = load i64, ptr %10, align 8, !range !138, !noundef !3 + %112 = load i64, ptr %9, align 8, !range !138, !noundef !3 %.not14 = icmp eq i64 %112, -9223372036854775808 - %113 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %113 = getelementptr inbounds nuw i8, ptr %9, i64 8 %114 = load ptr, ptr %113, align 8, !nonnull !3, !align !11 - %.sroa.010.0 = select i1 %.not14, ptr %114, ptr %10 + %.sroa.010.0 = select i1 %.not14, ptr %114, ptr %9 %115 = invoke noundef zeroext i1 @_ZN4fish8wildcard14wildcard_match17heb3bd9ae634310f7E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.010.0, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %8, i1 noundef zeroext false) - to label %116 unwind label %93 + to label %115 unwind label %93 116: ; preds = %111 invoke void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %8) - to label %117 unwind label %.loopexit.split-lp + to label %116 unwind label %.loopexit.split-lp 117: ; preds = %116 call void @llvm.lifetime.end.p0(ptr nonnull %8) @@ -45173,13 +45169,13 @@ default.unreachable57: ; preds = %18 120: ; preds = %46 %121 = invoke noundef zeroext i1 @_ZN4fish9wchar_ext4WExt9ends_with17heec2d738dec16b93E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %7, i32 noundef 64993) - to label %124 unwind label %122 + to label %123 unwind label %122 122: ; preds = %130, %135, %120 %123 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %7) #36 - to label %54 unwind label %118 + to label %53 unwind label %118 124: ; preds = %120 br i1 %121, label %135, label %125 @@ -45205,17 +45201,17 @@ default.unreachable57: ; preds = %18 br label %135 135: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17heed4704be947a31aE.exit24", %124 - %136 = load i64, ptr %10, align 8, !range !138, !noundef !3 + %136 = load i64, ptr %9, align 8, !range !138, !noundef !3 %.not13 = icmp eq i64 %136, -9223372036854775808 - %137 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %137 = getelementptr inbounds nuw i8, ptr %9, i64 8 %138 = load ptr, ptr %137, align 8, !nonnull !3, !align !11 - %.sroa.011.0 = select i1 %.not13, ptr %138, ptr %10 + %.sroa.011.0 = select i1 %.not13, ptr %138, ptr %9 %139 = invoke noundef zeroext i1 @_ZN4fish8wildcard14wildcard_match17heb3bd9ae634310f7E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.011.0, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %7, i1 noundef zeroext false) - to label %140 unwind label %122 + to label %139 unwind label %122 140: ; preds = %135 invoke void @"_ZN4core3ptr55drop_in_place$LT$widestring..utfstring..Utf32String$GT$17ha7bfb33de0f2dd54E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %7) - to label %141 unwind label %.loopexit.split-lp + to label %140 unwind label %.loopexit.split-lp 141: ; preds = %140 call void @llvm.lifetime.end.p0(ptr nonnull %7) diff --git a/bench/llvm/optimized/SemaConcept.ll b/bench/llvm/optimized/SemaConcept.ll index c4ef0ecec24..4fc90193a15 100644 --- a/bench/llvm/optimized/SemaConcept.ll +++ b/bench/llvm/optimized/SemaConcept.ll @@ -47700,7 +47700,7 @@ define internal fastcc noundef zeroext i1 @_ZN5clang13TreeTransformIN12_GLOBAL__ %7 = alloca %"class.clang::TemplateArgument", align 8 %8 = alloca %"class.llvm::APSInt", align 8 %.sroa.0121 = alloca %"struct.clang::TemplateArgument::DA", align 8 - %.sroa.0118 = alloca %"struct.clang::TemplateArgument::DA", align 8 + %.sroa.0118 = alloca %"class.clang::TemplateArgument", align 8 %.sroa.0115 = alloca %"struct.clang::TemplateArgument::DA", align 8 %.sroa.0112 = alloca %"struct.clang::TemplateArgument::DA", align 8 %9 = alloca %"class.clang::CXXScopeSpec", align 8 @@ -47741,60 +47741,60 @@ _ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformType %22 = load i32, ptr %1, align 8 %23 = and i32 %22, 2147483647 %24 = icmp eq i32 %23, 2 - br i1 %24, label %25, label %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread + br i1 %24, label %26, label %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread -25: ; preds = %21 - %26 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %27 = load ptr, ptr %26, align 8, !tbaa !20 - %.not71 = icmp eq ptr %27, null - br i1 %.not71, label %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread.thread, label %28 - -28: ; preds = %25 - %29 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %.val = load ptr, ptr %29, align 8, !tbaa !1083 - %30 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %.val75 = load i32, ptr %30, align 8, !tbaa !1084 - %31 = icmp eq i32 %.val75, 0 - br i1 %31, label %.loopexit.i.i, label %32 +28: ; preds = %22 + %29 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %.val = load ptr, ptr %29, align 8, !tbaa !20 + %.not71 = icmp eq ptr %28, null + br i1 %.not71, label %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread.thread, label %29 32: ; preds = %28 - %33 = ptrtoint ptr %27 to i64 - %34 = trunc i64 %33 to i32 - %35 = lshr i32 %34, 4 - %36 = lshr i32 %34, 9 - %37 = xor i32 %35, %36 - %38 = add i32 %.val75, -1 - %.01826.i.i.i = and i32 %38, %37 - %39 = zext nneg i32 %.01826.i.i.i to i64 - %40 = getelementptr inbounds nuw %"struct.llvm::detail::DenseMapPair.1599", ptr %.val, i64 %39 - %41 = load ptr, ptr %40, align 8, !tbaa !887 - %42 = icmp eq ptr %27, %41 - br i1 %42, label %_ZN4llvm12DenseMapBaseINS_8DenseMapIPN5clang4DeclES4_NS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_E4findEPKS3_.exit.i, label %.lr.ph.i.i.i, !prof !1004 - -.lr.ph.i.i.i: ; preds = %32, %45 - %43 = phi ptr [ %50, %45 ], [ %41, %32 ] - %.01828.i.i.i = phi i32 [ %.018.i.i.i, %45 ], [ %.01826.i.i.i, %32 ] - %.01627.i.i.i = phi i32 [ %46, %45 ], [ 1, %32 ] - %44 = icmp eq ptr %43, inttoptr (i64 -4096 to ptr) - br i1 %44, label %.loopexit.i.i, label %45, !prof !782 - -45: ; preds = %.lr.ph.i.i.i - %46 = add i32 %.01627.i.i.i, 1 - %47 = add i32 %.01627.i.i.i, %.01828.i.i.i - %.018.i.i.i = and i32 %47, %38 - %48 = zext i32 %.018.i.i.i to i64 - %49 = getelementptr inbounds nuw %"struct.llvm::detail::DenseMapPair.1599", ptr %.val, i64 %48 - %50 = load ptr, ptr %49, align 8, !tbaa !887 - %51 = icmp eq ptr %27, %50 - br i1 %51, label %_ZN4llvm12DenseMapBaseINS_8DenseMapIPN5clang4DeclES4_NS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_E4findEPKS3_.exit.i, label %.lr.ph.i.i.i, !prof !1005, !llvm.loop !1282 + %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %.val = load ptr, ptr %30, align 8, !tbaa !1083 + %31 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %.val75 = load i32, ptr %31, align 8, !tbaa !1084 + %32 = icmp eq i32 %.val75, 0 + br i1 %32, label %.loopexit.i.i, label %33 -.loopexit.i.i: ; preds = %.lr.ph.i.i.i, %28 - %52 = zext i32 %.val75 to i64 - %53 = getelementptr inbounds nuw %"struct.llvm::detail::DenseMapPair.1599", ptr %.val, i64 %52 +.loopexit.i.i: ; preds = %29 + %34 = ptrtoint ptr %.val to i64 + %35 = trunc i64 %34 to i32 + %36 = lshr i32 %35, 4 + %37 = lshr i32 %35, 9 + %38 = xor i32 %36, %37 + %39 = add i32 %.val75, -1 + %.01826.i.i.i = and i32 %39, %38 + %40 = zext nneg i32 %.01826.i.i.i to i64 + %41 = getelementptr inbounds nuw %"struct.llvm::detail::DenseMapPair.1599", ptr %.val, i64 %40 + %42 = load ptr, ptr %41, align 8, !tbaa !887 + %43 = icmp eq ptr %28, %42 + br i1 %43, label %_ZN4llvm12DenseMapBaseINS_8DenseMapIPN5clang4DeclES4_NS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_E4findEPKS3_.exit.i, label %.lr.ph.i.i.i, !prof !1004 + +.lr.ph.i.i.i: ; preds = %33, %46 + %44 = phi ptr [ %51, %46 ], [ %42, %33 ] + %.01828.i.i.i = phi i32 [ %.018.i.i.i, %46 ], [ %.01826.i.i.i, %33 ] + %.01627.i.i.i = phi i32 [ %47, %46 ], [ 1, %33 ] + %45 = icmp eq ptr %44, inttoptr (i64 -4096 to ptr) + br i1 %45, label %.loopexit.i.i, label %46, !prof !782 + +46: ; preds = %.lr.ph.i.i.i + %47 = add i32 %.01627.i.i.i, 1 + %48 = add i32 %.01627.i.i.i, %.01828.i.i.i + %.018.i.i.i = and i32 %48, %39 + %49 = zext i32 %.018.i.i.i to i64 + %50 = getelementptr inbounds nuw %"struct.llvm::detail::DenseMapPair.1599", ptr %.val, i64 %49 + %51 = load ptr, ptr %50, align 8, !tbaa !887 + %52 = icmp eq ptr %28, %51 + br i1 %52, label %_ZN4llvm12DenseMapBaseINS_8DenseMapIPN5clang4DeclES4_NS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_E4findEPKS3_.exit.i, label %.lr.ph.i.i.i, !prof !1005, !llvm.loop !1282 + +.loopexit.i.i: ; preds = %.lr.ph.i.i.i, %29 + %53 = zext i32 %.val75 to i64 + %54 = getelementptr inbounds nuw %"struct.llvm::detail::DenseMapPair.1599", ptr %.val, i64 %53 br label %_ZN4llvm12DenseMapBaseINS_8DenseMapIPN5clang4DeclES4_NS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_E4findEPKS3_.exit.i -_ZN4llvm12DenseMapBaseINS_8DenseMapIPN5clang4DeclES4_NS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_E4findEPKS3_.exit.i: ; preds = %45, %.loopexit.i.i, %32 - %.sroa.0.1.i.i = phi ptr [ %53, %.loopexit.i.i ], [ %40, %32 ], [ %49, %45 ] +_ZN4llvm12DenseMapBaseINS_8DenseMapIPN5clang4DeclES4_NS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_E4findEPKS3_.exit.i: ; preds = %46, %.loopexit.i.i, %33 + %.sroa.0.1.i.i = phi ptr [ %54, %.loopexit.i.i ], [ %41, %33 ], [ %50, %46 ] %54 = zext i32 %.val75 to i64 %55 = getelementptr inbounds nuw %"struct.llvm::detail::DenseMapPair.1599", ptr %.val, i64 %54 %.not.i = icmp eq ptr %.sroa.0.1.i.i, %55 @@ -47806,19 +47806,19 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIPN5clang4DeclES4_NS_12DenseMapInfoIS4_vEENS_ br label %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit _ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit: ; preds = %56, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPN5clang4DeclES4_NS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_E4findEPKS3_.exit.i - %59 = phi ptr [ %58, %56 ], [ %27, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPN5clang4DeclES4_NS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_E4findEPKS3_.exit.i ] + %59 = phi ptr [ %58, %57 ], [ %28, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPN5clang4DeclES4_NS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_E4findEPKS3_.exit.i ] %60 = icmp eq ptr %59, null br i1 %60, label %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformTypeENS_8QualTypeE.exit.thread, label %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread _ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread: ; preds = %21, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit - %61 = phi ptr [ %59, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit ], [ null, %21 ] - %62 = phi ptr [ %27, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit ], [ null, %21 ] + %61 = phi ptr [ %59, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit ], [ null, %22 ] + %62 = phi ptr [ %28, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit ], [ null, %22 ] %63 = icmp eq i64 %.sroa.0.0.copyload.i.i158, %15 %64 = icmp eq ptr %62, %61 %or.cond = and i1 %63, %64 br i1 %or.cond, label %66, label %67 -_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread.thread: ; preds = %25 +_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread.thread: ; preds = %26 %65 = icmp eq i64 %.sroa.0.0.copyload.i.i158, %15 br i1 %65, label %66, label %.thread143 @@ -47827,7 +47827,7 @@ _ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDecl br label %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformTypeENS_8QualTypeE.exit.thread 67: ; preds = %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread - switch i32 %23, label %94 [ + switch i32 %23, label %95 [ i32 4, label %68 i32 3, label %93 ] @@ -47911,7 +47911,7 @@ _ZN4llvm5APIntD2Ev.exit: ; preds = %_ZNK5clang16Templat br i1 %24, label %.thread143, label %96 .thread143: ; preds = %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread.thread, %94 - %95 = phi ptr [ %61, %94 ], [ null, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread.thread ] + %95 = phi ptr [ %61, %95 ], [ null, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit.thread.thread ] call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0118) call void @_ZN5clang16TemplateArgument19initFromDeclarationEPNS_9ValueDeclENS_8QualTypeEb(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0118, ptr noundef %95, i64 %.sroa.0.0.copyload.i.i158, i1 noundef zeroext false) #27 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %2, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.0118, i64 24, i1 false) @@ -47954,7 +47954,7 @@ _ZN4llvm5APIntD2Ev.exit: ; preds = %_ZNK5clang16Templat br label %111 111: ; preds = %106, %102 - %.065 = phi ptr [ %105, %102 ], [ %110, %106 ] + %.065 = phi ptr [ %105, %103 ], [ %110, %107 ] %112 = tail call fastcc noundef ptr @_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformTypeEPNS_14TypeSourceInfoE(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef %.065) %.not70 = icmp eq ptr %112, null br i1 %.not70, label %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformTypeENS_8QualTypeE.exit.thread, label %113 @@ -47995,16 +47995,16 @@ _ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit: ; preds = %116 br i1 %.not145, label %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformTypeENS_8QualTypeE.exit.thread, label %_ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit.thread _ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit.thread: ; preds = %116, %124, %_ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit - %.sroa.0110.0 = phi ptr [ %126, %124 ], [ null, %_ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit ], [ null, %116 ] - %.sroa.9.0 = phi ptr [ %127, %124 ], [ %123, %_ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit ], [ null, %116 ] - call void @llvm.lifetime.start.p0(ptr nonnull %9) - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %9, i8 0, i64 48, i1 false) - call void @_ZN5clang12CXXScopeSpec5AdoptENS_22NestedNameSpecifierLocE(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr %.sroa.0110.0, ptr %.sroa.9.0) #27 + %.sroa.0110.0 = phi ptr [ %126, %125 ], [ null, %_ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit ], [ null, %117 ] + %.sroa.9.0 = phi ptr [ %127, %125 ], [ %123, %_ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit ], [ null, %117 ] call void @llvm.lifetime.start.p0(ptr nonnull %10) - %128 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %129 = load ptr, ptr %128, align 8, !tbaa !20 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %10, i8 0, i64 48, i1 false) + call void @_ZN5clang12CXXScopeSpec5AdoptENS_22NestedNameSpecifierLocE(ptr noundef nonnull align 8 dereferenceable(48) %9, ptr %.sroa.0110.0, ptr %.sroa.9.0) #27 + call void @llvm.lifetime.start.p0(ptr nonnull %11) + %129 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %130 = load ptr, ptr %129, align 8, !tbaa !20 call void @llvm.lifetime.start.p0(ptr nonnull %5) - call void @_ZN5clang12TemplateNameC1EPv(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef %129) #27 + call void @_ZN5clang12TemplateNameC1EPv(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef %130) #27 %130 = load i64, ptr %5, align 8 call void @llvm.lifetime.end.p0(ptr nonnull %5) %131 = load i32, ptr %1, align 8 @@ -48022,7 +48022,7 @@ _ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit.thread: ; preds br label %_ZNK5clang19TemplateArgumentLoc18getTemplateNameLocEv.exit _ZNK5clang19TemplateArgumentLoc18getTemplateNameLocEv.exit: ; preds = %_ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit.thread, %133 - %.sroa.0.0.i84 = phi i32 [ %.sroa.0.0.copyload.i.i, %133 ], [ 0, %_ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit.thread ] + %.sroa.0.0.i84 = phi i32 [ %.sroa.0.0.copyload.i.i, %134 ], [ 0, %_ZNK5clang19TemplateArgumentLoc23getTemplateQualifierLocEv.exit.thread ] %138 = call fastcc i64 @_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE21TransformTemplateNameERNS_12CXXScopeSpecENS_12TemplateNameENS_14SourceLocationENS_8QualTypeEPNS_9NamedDeclEb(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(48) %9, i64 %130, i32 %.sroa.0.0.i84, i64 0, i1 noundef zeroext false) store i64 %138, ptr %10, align 8 %139 = call noundef zeroext i1 @_ZNK5clang12TemplateName6isNullEv(ptr noundef nonnull align 8 dereferenceable(8) %10) #27 @@ -48050,7 +48050,7 @@ _ZNK5clang19TemplateArgumentLoc18getTemplateNameLocEv.exit: ; preds = %_ZNK5clan br label %_ZNK5clang19TemplateArgumentLoc18getTemplateNameLocEv.exit90 _ZNK5clang19TemplateArgumentLoc18getTemplateNameLocEv.exit90: ; preds = %140, %147 - %.sroa.0.0.i87 = phi i32 [ %.sroa.0.0.copyload.i.i89, %147 ], [ 0, %140 ] + %.sroa.0.0.i87 = phi i32 [ %.sroa.0.0.copyload.i.i89, %148 ], [ 0, %141 ] store i32 6, ptr %11, align 8 %.sroa.4105.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 4 store i32 0, ptr %.sroa.4105.0..sroa_idx, align 4 @@ -48113,7 +48113,7 @@ _ZN5clang32EnterExpressionEvaluationContextD2Ev.exit: ; preds = %159, %169 br label %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformTypeENS_8QualTypeE.exit.thread _ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformTypeENS_8QualTypeE.exit.thread: ; preds = %16, %14, %_ZN5clang12CXXScopeSpecD2Ev.exit, %124, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformTypeENS_8QualTypeE.exit, %66, %93, %96, %.thread143, %_ZN4llvm5APIntD2Ev.exit, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit, %4, %113, %111, %_ZN5clang32EnterExpressionEvaluationContextD2Ev.exit - %.2 = phi i1 [ false, %113 ], [ %168, %_ZN5clang32EnterExpressionEvaluationContextD2Ev.exit ], [ true, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit ], [ true, %4 ], [ true, %111 ], [ true, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformTypeENS_8QualTypeE.exit ], [ false, %66 ], [ false, %93 ], [ false, %96 ], [ false, %.thread143 ], [ false, %_ZN4llvm5APIntD2Ev.exit ], [ %139, %_ZN5clang12CXXScopeSpecD2Ev.exit ], [ true, %124 ], [ true, %14 ], [ true, %16 ] + %.2 = phi i1 [ false, %114 ], [ %168, %_ZN5clang32EnterExpressionEvaluationContextD2Ev.exit ], [ true, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformDeclENS_14SourceLocationEPNS_4DeclE.exit ], [ true, %4 ], [ true, %112 ], [ true, %_ZN5clang13TreeTransformIN12_GLOBAL__N_121AdjustConstraintDepthEE13TransformTypeENS_8QualTypeE.exit ], [ false, %67 ], [ false, %94 ], [ false, %97 ], [ false, %.thread143 ], [ false, %_ZN4llvm5APIntD2Ev.exit ], [ %139, %_ZN5clang12CXXScopeSpecD2Ev.exit ], [ true, %125 ], [ true, %15 ], [ true, %17 ] ret i1 %.2 } diff --git a/bench/meilisearch-rs/optimized/3f4k2xees4fvt0r.ll b/bench/meilisearch-rs/optimized/3f4k2xees4fvt0r.ll index 430f887195a..5222213d66a 100644 --- a/bench/meilisearch-rs/optimized/3f4k2xees4fvt0r.ll +++ b/bench/meilisearch-rs/optimized/3f4k2xees4fvt0r.ll @@ -59210,7 +59210,6 @@ define hidden void @"_ZN6deserr10serde_json78_$LT$impl$u20$deserr..Deserr$LT$E$G %23 = alloca [32 x i8], align 8 %24 = alloca [72 x i8], align 8 %25 = alloca [24 x i8], align 8 - %.sroa.7193 = alloca [16 x i8], align 8 %26 = alloca [32 x i8], align 8 %27 = alloca [72 x i8], align 8 %28 = alloca [32 x i8], align 8 @@ -59920,7 +59919,6 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %28, i64 32, i1 false) %219 = getelementptr inbounds nuw i8, ptr %26, i64 24 %220 = getelementptr inbounds nuw i8, ptr %26, i64 8 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7193) %221 = load ptr, ptr %219, align 8, !alias.scope !11440, !noalias !11447, !nonnull !8, !noundef !8 %222 = load ptr, ptr %220, align 8, !alias.scope !11440, !noalias !11447, !nonnull !8, !noundef !8 %223 = icmp eq ptr %222, %221 @@ -59967,7 +59965,6 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; ._crit_edge346: ; preds = %285, %._crit_edge346.loopexit.split.loop.exit370, %218 %237 = phi ptr [ %222, %218 ], [ %236, %._crit_edge346.loopexit.split.loop.exit370 ], [ %287, %285 ] - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !11459 store ptr %26, ptr %8, align 8, !noalias !11459 %238 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17hde05e5919f9ad533E.llvm.3021571406010367114(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %26) @@ -59995,7 +59992,8 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; 244: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd46226d103d79187E.llvm.331090089658796353.exit.i.i" %.sroa.6.0..sroa_idx2.i.i = getelementptr inbounds nuw i8, ptr %230, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i.i, i64 16, i1 false), !noalias !11468 + call void @llvm.lifetime.start.p0(ptr nonnull %25) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i.i, i64 16, i1 false) %245 = getelementptr inbounds nuw i8, ptr %230, i64 24 %.sroa.8194.sroa.0.0.copyload = load i64, ptr %245, align 8, !noalias !11468 %.sroa.8194.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %230, i64 32 @@ -60004,9 +60002,7 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; %.sroa.8194.sroa.7.0.copyload = load i64, ptr %.sroa.8194.sroa.7.0..sroa_idx, align 8, !noalias !11468 %.sroa.8194.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %230, i64 48 %.sroa.8194.sroa.8.sroa.0.0.copyload = load i64, ptr %.sroa.8194.sroa.8.0..sroa_idx, align 8, !noalias !11468 - call void @llvm.lifetime.start.p0(ptr nonnull %25) store i64 %.sroa.0.0.copyload1.i.i, ptr %25, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %24) call void @llvm.experimental.noalias.scope.decl(metadata !11469) %246 = xor i64 %.sroa.8194.sroa.0.0.copyload, -9223372036854775808 @@ -60177,8 +60173,6 @@ switch.lookup.i103: ; preds = %244 285: ; preds = %284, %281 call void @llvm.lifetime.end.p0(ptr nonnull %21) call void @llvm.lifetime.end.p0(ptr nonnull %25) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7193) %286 = load ptr, ptr %219, align 8, !alias.scope !11499, !noalias !11447, !nonnull !8, !noundef !8 %287 = load ptr, ptr %220, align 8, !alias.scope !11499, !noalias !11447, !nonnull !8, !noundef !8 %288 = icmp eq ptr %287, %286 @@ -60215,7 +60209,6 @@ switch.lookup.i103: ; preds = %244 300: ; preds = %298, %294, %.noexc117 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !11503 call void @llvm.lifetime.end.p0(ptr nonnull %25) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) call void @llvm.experimental.noalias.scope.decl(metadata !11512) call void @llvm.experimental.noalias.scope.decl(metadata !11515) call void @llvm.experimental.noalias.scope.decl(metadata !11518) @@ -60320,7 +60313,6 @@ define hidden void @"_ZN6deserr10serde_json78_$LT$impl$u20$deserr..Deserr$LT$E$G %23 = alloca [32 x i8], align 8 %24 = alloca [72 x i8], align 8 %25 = alloca [24 x i8], align 8 - %.sroa.7193 = alloca [16 x i8], align 8 %26 = alloca [32 x i8], align 8 %27 = alloca [72 x i8], align 8 %28 = alloca [32 x i8], align 8 @@ -61030,7 +61022,6 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %28, i64 32, i1 false) %219 = getelementptr inbounds nuw i8, ptr %26, i64 24 %220 = getelementptr inbounds nuw i8, ptr %26, i64 8 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7193) %221 = load ptr, ptr %219, align 8, !alias.scope !11632, !noalias !11639, !nonnull !8, !noundef !8 %222 = load ptr, ptr %220, align 8, !alias.scope !11632, !noalias !11639, !nonnull !8, !noundef !8 %223 = icmp eq ptr %222, %221 @@ -61077,7 +61068,6 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; ._crit_edge346: ; preds = %285, %._crit_edge346.loopexit.split.loop.exit370, %218 %237 = phi ptr [ %222, %218 ], [ %236, %._crit_edge346.loopexit.split.loop.exit370 ], [ %287, %285 ] - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !11651 store ptr %26, ptr %8, align 8, !noalias !11651 %238 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17hde05e5919f9ad533E.llvm.3021571406010367114(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %26) @@ -61105,7 +61095,8 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; 244: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd46226d103d79187E.llvm.331090089658796353.exit.i.i" %.sroa.6.0..sroa_idx2.i.i = getelementptr inbounds nuw i8, ptr %230, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i.i, i64 16, i1 false), !noalias !11660 + call void @llvm.lifetime.start.p0(ptr nonnull %25) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i.i, i64 16, i1 false) %245 = getelementptr inbounds nuw i8, ptr %230, i64 24 %.sroa.8194.sroa.0.0.copyload = load i64, ptr %245, align 8, !noalias !11660 %.sroa.8194.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %230, i64 32 @@ -61114,9 +61105,7 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; %.sroa.8194.sroa.7.0.copyload = load i64, ptr %.sroa.8194.sroa.7.0..sroa_idx, align 8, !noalias !11660 %.sroa.8194.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %230, i64 48 %.sroa.8194.sroa.8.sroa.0.0.copyload = load i64, ptr %.sroa.8194.sroa.8.0..sroa_idx, align 8, !noalias !11660 - call void @llvm.lifetime.start.p0(ptr nonnull %25) store i64 %.sroa.0.0.copyload1.i.i, ptr %25, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %24) call void @llvm.experimental.noalias.scope.decl(metadata !11661) %246 = xor i64 %.sroa.8194.sroa.0.0.copyload, -9223372036854775808 @@ -61287,8 +61276,6 @@ switch.lookup.i103: ; preds = %244 285: ; preds = %284, %281 call void @llvm.lifetime.end.p0(ptr nonnull %21) call void @llvm.lifetime.end.p0(ptr nonnull %25) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7193) %286 = load ptr, ptr %219, align 8, !alias.scope !11691, !noalias !11639, !nonnull !8, !noundef !8 %287 = load ptr, ptr %220, align 8, !alias.scope !11691, !noalias !11639, !nonnull !8, !noundef !8 %288 = icmp eq ptr %287, %286 @@ -61325,7 +61312,6 @@ switch.lookup.i103: ; preds = %244 300: ; preds = %298, %294, %.noexc117 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !11695 call void @llvm.lifetime.end.p0(ptr nonnull %25) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) call void @llvm.experimental.noalias.scope.decl(metadata !11704) call void @llvm.experimental.noalias.scope.decl(metadata !11707) call void @llvm.experimental.noalias.scope.decl(metadata !11710) @@ -61430,7 +61416,6 @@ define hidden void @"_ZN6deserr10serde_json78_$LT$impl$u20$deserr..Deserr$LT$E$G %23 = alloca [32 x i8], align 8 %24 = alloca [72 x i8], align 8 %25 = alloca [24 x i8], align 8 - %.sroa.7193 = alloca [16 x i8], align 8 %26 = alloca [32 x i8], align 8 %27 = alloca [72 x i8], align 8 %28 = alloca [32 x i8], align 8 @@ -62140,7 +62125,6 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %28, i64 32, i1 false) %219 = getelementptr inbounds nuw i8, ptr %26, i64 24 %220 = getelementptr inbounds nuw i8, ptr %26, i64 8 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7193) %221 = load ptr, ptr %219, align 8, !alias.scope !11824, !noalias !11831, !nonnull !8, !noundef !8 %222 = load ptr, ptr %220, align 8, !alias.scope !11824, !noalias !11831, !nonnull !8, !noundef !8 %223 = icmp eq ptr %222, %221 @@ -62187,7 +62171,6 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; ._crit_edge346: ; preds = %285, %._crit_edge346.loopexit.split.loop.exit370, %218 %237 = phi ptr [ %222, %218 ], [ %236, %._crit_edge346.loopexit.split.loop.exit370 ], [ %287, %285 ] - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !11843 store ptr %26, ptr %8, align 8, !noalias !11843 %238 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17hde05e5919f9ad533E.llvm.3021571406010367114(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %26) @@ -62215,7 +62198,8 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; 244: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd46226d103d79187E.llvm.331090089658796353.exit.i.i" %.sroa.6.0..sroa_idx2.i.i = getelementptr inbounds nuw i8, ptr %230, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i.i, i64 16, i1 false), !noalias !11852 + call void @llvm.lifetime.start.p0(ptr nonnull %25) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i.i, i64 16, i1 false) %245 = getelementptr inbounds nuw i8, ptr %230, i64 24 %.sroa.8194.sroa.0.0.copyload = load i64, ptr %245, align 8, !noalias !11852 %.sroa.8194.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %230, i64 32 @@ -62224,9 +62208,7 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; %.sroa.8194.sroa.7.0.copyload = load i64, ptr %.sroa.8194.sroa.7.0..sroa_idx, align 8, !noalias !11852 %.sroa.8194.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %230, i64 48 %.sroa.8194.sroa.8.sroa.0.0.copyload = load i64, ptr %.sroa.8194.sroa.8.0..sroa_idx, align 8, !noalias !11852 - call void @llvm.lifetime.start.p0(ptr nonnull %25) store i64 %.sroa.0.0.copyload1.i.i, ptr %25, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %24) call void @llvm.experimental.noalias.scope.decl(metadata !11853) %246 = xor i64 %.sroa.8194.sroa.0.0.copyload, -9223372036854775808 @@ -62397,8 +62379,6 @@ switch.lookup.i103: ; preds = %244 285: ; preds = %284, %281 call void @llvm.lifetime.end.p0(ptr nonnull %21) call void @llvm.lifetime.end.p0(ptr nonnull %25) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7193) %286 = load ptr, ptr %219, align 8, !alias.scope !11883, !noalias !11831, !nonnull !8, !noundef !8 %287 = load ptr, ptr %220, align 8, !alias.scope !11883, !noalias !11831, !nonnull !8, !noundef !8 %288 = icmp eq ptr %287, %286 @@ -62435,7 +62415,6 @@ switch.lookup.i103: ; preds = %244 300: ; preds = %298, %294, %.noexc117 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !11887 call void @llvm.lifetime.end.p0(ptr nonnull %25) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) call void @llvm.experimental.noalias.scope.decl(metadata !11896) call void @llvm.experimental.noalias.scope.decl(metadata !11899) call void @llvm.experimental.noalias.scope.decl(metadata !11902) @@ -62540,7 +62519,6 @@ define hidden void @"_ZN6deserr10serde_json78_$LT$impl$u20$deserr..Deserr$LT$E$G %23 = alloca [32 x i8], align 8 %24 = alloca [72 x i8], align 8 %25 = alloca [24 x i8], align 8 - %.sroa.7193 = alloca [16 x i8], align 8 %26 = alloca [32 x i8], align 8 %27 = alloca [72 x i8], align 8 %28 = alloca [32 x i8], align 8 @@ -63250,7 +63228,6 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %28, i64 32, i1 false) %219 = getelementptr inbounds nuw i8, ptr %26, i64 24 %220 = getelementptr inbounds nuw i8, ptr %26, i64 8 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7193) %221 = load ptr, ptr %219, align 8, !alias.scope !12016, !noalias !12023, !nonnull !8, !noundef !8 %222 = load ptr, ptr %220, align 8, !alias.scope !12016, !noalias !12023, !nonnull !8, !noundef !8 %223 = icmp eq ptr %222, %221 @@ -63297,7 +63274,6 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; ._crit_edge346: ; preds = %285, %._crit_edge346.loopexit.split.loop.exit370, %218 %237 = phi ptr [ %222, %218 ], [ %236, %._crit_edge346.loopexit.split.loop.exit370 ], [ %287, %285 ] - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !12035 store ptr %26, ptr %8, align 8, !noalias !12035 %238 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17hde05e5919f9ad533E.llvm.3021571406010367114(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %26) @@ -63325,7 +63301,8 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; 244: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd46226d103d79187E.llvm.331090089658796353.exit.i.i" %.sroa.6.0..sroa_idx2.i.i = getelementptr inbounds nuw i8, ptr %230, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i.i, i64 16, i1 false), !noalias !12044 + call void @llvm.lifetime.start.p0(ptr nonnull %25) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i.i, i64 16, i1 false) %245 = getelementptr inbounds nuw i8, ptr %230, i64 24 %.sroa.8194.sroa.0.0.copyload = load i64, ptr %245, align 8, !noalias !12044 %.sroa.8194.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %230, i64 32 @@ -63334,9 +63311,7 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; %.sroa.8194.sroa.7.0.copyload = load i64, ptr %.sroa.8194.sroa.7.0..sroa_idx, align 8, !noalias !12044 %.sroa.8194.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %230, i64 48 %.sroa.8194.sroa.8.sroa.0.0.copyload = load i64, ptr %.sroa.8194.sroa.8.0..sroa_idx, align 8, !noalias !12044 - call void @llvm.lifetime.start.p0(ptr nonnull %25) store i64 %.sroa.0.0.copyload1.i.i, ptr %25, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %24) call void @llvm.experimental.noalias.scope.decl(metadata !12045) %246 = xor i64 %.sroa.8194.sroa.0.0.copyload, -9223372036854775808 @@ -63507,8 +63482,6 @@ switch.lookup.i103: ; preds = %244 285: ; preds = %284, %281 call void @llvm.lifetime.end.p0(ptr nonnull %21) call void @llvm.lifetime.end.p0(ptr nonnull %25) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7193) %286 = load ptr, ptr %219, align 8, !alias.scope !12075, !noalias !12023, !nonnull !8, !noundef !8 %287 = load ptr, ptr %220, align 8, !alias.scope !12075, !noalias !12023, !nonnull !8, !noundef !8 %288 = icmp eq ptr %287, %286 @@ -63545,7 +63518,6 @@ switch.lookup.i103: ; preds = %244 300: ; preds = %298, %294, %.noexc117 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !12079 call void @llvm.lifetime.end.p0(ptr nonnull %25) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) call void @llvm.experimental.noalias.scope.decl(metadata !12088) call void @llvm.experimental.noalias.scope.decl(metadata !12091) call void @llvm.experimental.noalias.scope.decl(metadata !12094) @@ -63650,7 +63622,6 @@ define hidden void @"_ZN6deserr10serde_json78_$LT$impl$u20$deserr..Deserr$LT$E$G %23 = alloca [32 x i8], align 8 %24 = alloca [72 x i8], align 8 %25 = alloca [24 x i8], align 8 - %.sroa.7193 = alloca [16 x i8], align 8 %26 = alloca [32 x i8], align 8 %27 = alloca [72 x i8], align 8 %28 = alloca [32 x i8], align 8 @@ -64360,7 +64331,6 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %26, ptr noundef nonnull align 8 dereferenceable(32) %28, i64 32, i1 false) %219 = getelementptr inbounds nuw i8, ptr %26, i64 24 %220 = getelementptr inbounds nuw i8, ptr %26, i64 8 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7193) %221 = load ptr, ptr %219, align 8, !alias.scope !12208, !noalias !12215, !nonnull !8, !noundef !8 %222 = load ptr, ptr %220, align 8, !alias.scope !12208, !noalias !12215, !nonnull !8, !noundef !8 %223 = icmp eq ptr %222, %221 @@ -64407,7 +64377,6 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; ._crit_edge346: ; preds = %285, %._crit_edge346.loopexit.split.loop.exit370, %218 %237 = phi ptr [ %222, %218 ], [ %236, %._crit_edge346.loopexit.split.loop.exit370 ], [ %287, %285 ] - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !12227 store ptr %26, ptr %8, align 8, !noalias !12227 %238 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17hde05e5919f9ad533E.llvm.3021571406010367114(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %26) @@ -64435,7 +64404,8 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; 244: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd46226d103d79187E.llvm.331090089658796353.exit.i.i" %.sroa.6.0..sroa_idx2.i.i = getelementptr inbounds nuw i8, ptr %230, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i.i, i64 16, i1 false), !noalias !12236 + call void @llvm.lifetime.start.p0(ptr nonnull %25) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i.i, i64 16, i1 false) %245 = getelementptr inbounds nuw i8, ptr %230, i64 24 %.sroa.8194.sroa.0.0.copyload = load i64, ptr %245, align 8, !noalias !12236 %.sroa.8194.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %230, i64 32 @@ -64444,9 +64414,7 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h4b052c8f88cfae3bE.exit.i: ; %.sroa.8194.sroa.7.0.copyload = load i64, ptr %.sroa.8194.sroa.7.0..sroa_idx, align 8, !noalias !12236 %.sroa.8194.sroa.8.0..sroa_idx = getelementptr inbounds nuw i8, ptr %230, i64 48 %.sroa.8194.sroa.8.sroa.0.0.copyload = load i64, ptr %.sroa.8194.sroa.8.0..sroa_idx, align 8, !noalias !12236 - call void @llvm.lifetime.start.p0(ptr nonnull %25) store i64 %.sroa.0.0.copyload1.i.i, ptr %25, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7193, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %24) call void @llvm.experimental.noalias.scope.decl(metadata !12237) %246 = xor i64 %.sroa.8194.sroa.0.0.copyload, -9223372036854775808 @@ -64617,8 +64585,6 @@ switch.lookup.i103: ; preds = %244 285: ; preds = %284, %281 call void @llvm.lifetime.end.p0(ptr nonnull %21) call void @llvm.lifetime.end.p0(ptr nonnull %25) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.7193) %286 = load ptr, ptr %219, align 8, !alias.scope !12267, !noalias !12215, !nonnull !8, !noundef !8 %287 = load ptr, ptr %220, align 8, !alias.scope !12267, !noalias !12215, !nonnull !8, !noundef !8 %288 = icmp eq ptr %287, %286 @@ -64655,7 +64621,6 @@ switch.lookup.i103: ; preds = %244 300: ; preds = %298, %294, %.noexc117 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !12271 call void @llvm.lifetime.end.p0(ptr nonnull %25) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.7193) call void @llvm.experimental.noalias.scope.decl(metadata !12280) call void @llvm.experimental.noalias.scope.decl(metadata !12283) call void @llvm.experimental.noalias.scope.decl(metadata !12286) diff --git a/bench/ockam-rs/optimized/2whckd326lu2ah2i.ll b/bench/ockam-rs/optimized/2whckd326lu2ah2i.ll index 1784d6a8474..f211eacbd01 100644 --- a/bench/ockam-rs/optimized/2whckd326lu2ah2i.ll +++ b/bench/ockam-rs/optimized/2whckd326lu2ah2i.ll @@ -391,72 +391,76 @@ define hidden void @"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$17extend_from_slice1 ; Function Attrs: inlinehint nonlazybind uwtable define hidden void @"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$9split_off17hd5be9afebb908fa0E.llvm.15521009673977008026"(ptr noalias noundef writeonly sret({ i16, [28 x i8] }) align 2 captures(none) dereferenceable(30) %0, ptr noalias noundef align 2 dereferenceable(30) %1, i64 noundef %2) unnamed_addr #0 personality ptr @rust_eh_personality { %4 = alloca { [28 x {}] }, align 1 - %5 = alloca { i16, [28 x i8] }, align 2 - %6 = alloca [2 x { ptr, ptr }], align 8 - %7 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8 - %8 = alloca i64, align 8 - store i64 %2, ptr %8, align 8 - %9 = load i16, ptr %1, align 2, !noundef !4 - %10 = zext i16 %9 to i64 - %11 = icmp ugt i64 %2, %10 - br i1 %11, label %26, label %12 - -12: ; preds = %3 + %5 = alloca [28 x i8], align 1 + %6 = alloca { i16, [28 x i8] }, align 2 + %7 = alloca [2 x { ptr, ptr }], align 8 + %8 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8 + %9 = alloca i64, align 8 + store i64 %2, ptr %13, align 8 + %10 = load i16, ptr %1, align 2, !noundef !4 + %11 = zext i16 %10 to i64 + %12 = icmp ugt i64 %2, %11 + br i1 %12, label %27, label %13 + +13: ; preds = %3 + call void @llvm.lifetime.start.p0(ptr nonnull %6) call void @llvm.lifetime.start.p0(ptr nonnull %5) - %13 = getelementptr inbounds nuw i8, ptr %5, i64 2 - call void @_ZN4core5array25try_from_trusted_iterator17h1004ebbe92a96c9eE.llvm.11192376679961209255(ptr noalias noundef nonnull sret({ [28 x i8] }) align 1 captures(none) dereferenceable(28) %13, ptr noundef nonnull %4, ptr noundef nonnull inttoptr (i64 28 to ptr)) - store i16 0, ptr %5, align 2 - %14 = load i16, ptr %1, align 2, !noundef !4 - %15 = zext i16 %14 to i64 - %16 = icmp ugt i16 %14, 28 - br i1 %16, label %17, label %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE.exit" + call void @_ZN4core5array25try_from_trusted_iterator17h1004ebbe92a96c9eE.llvm.11192376679961209255(ptr noalias noundef nonnull sret({ [28 x i8] }) align 1 captures(none) dereferenceable(28) %5, ptr noundef nonnull %4, ptr noundef nonnull inttoptr (i64 28 to ptr)) + store i16 0, ptr %6, align 2 + %14 = getelementptr inbounds nuw i8, ptr %6, i64 2 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(28) %14, ptr noundef nonnull align 1 dereferenceable(28) %5, i64 28, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %5) + %15 = load i16, ptr %1, align 2, !noundef !4 + %16 = zext i16 %15 to i64 + %17 = icmp ugt i16 %15, 28 + br i1 %17, label %18, label %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE.exit" -17: ; preds = %12 - call void @_ZN4core5slice5index24slice_end_index_len_fail17hea09f7e31bfd8b3bE(i64 noundef %15, i64 noundef 28, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.24) #15, !noalias !83 +17: ; preds = %13 + call void @_ZN4core5slice5index24slice_end_index_len_fail17hea09f7e31bfd8b3bE(i64 noundef %16, i64 noundef 28, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.24) #15, !noalias !83 unreachable -"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE.exit": ; preds = %12 - %18 = load i64, ptr %8, align 8, !noundef !4 - %19 = icmp ugt i64 %18, %15 +"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE.exit": ; preds = %13 + %18 = load i64, ptr %9, align 8, !noundef !4 + %19 = icmp ugt i64 %18, %16 br i1 %19, label %20, label %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hc168049529e83ff9E.exit" 20: ; preds = %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE.exit" - call void @_ZN4core5slice5index26slice_start_index_len_fail17hab06ee9584c35f57E(i64 noundef %18, i64 noundef range(i64 0, 29) %15, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.25) #15, !noalias !86 + call void @_ZN4core5slice5index26slice_start_index_len_fail17hab06ee9584c35f57E(i64 noundef %18, i64 noundef range(i64 0, 29) %16, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.25) #15, !noalias !86 unreachable "_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hc168049529e83ff9E.exit": ; preds = %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE.exit" %21 = getelementptr inbounds nuw i8, ptr %1, i64 2 - %22 = sub nuw nsw i64 %15, %18 + %22 = sub nuw nsw i64 %16, %18 %23 = getelementptr inbounds nuw i8, ptr %21, i64 %18 - call void @_ZN4core3ptr19swap_nonoverlapping17h93a20e6c534d4445E.llvm.10107124358432276917(ptr noundef nonnull align 1 %23, ptr noundef nonnull align 1 %13, i64 noundef %22), !noalias !89 + call void @_ZN4core3ptr19swap_nonoverlapping17h93a20e6c534d4445E.llvm.10107124358432276917(ptr noundef nonnull align 1 %23, ptr noundef nonnull align 1 %14, i64 noundef %22), !noalias !89 %24 = trunc nuw nsw i64 %22 to i16 - store i16 %24, ptr %5, align 2 + store i16 %24, ptr %6, align 2 %25 = trunc nuw nsw i64 %18 to i16 store i16 %25, ptr %1, align 2 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(30) %0, ptr noundef nonnull align 2 dereferenceable(30) %5, i64 30, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %5) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(30) %0, ptr noundef nonnull align 2 dereferenceable(30) %6, i64 30, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %6) ret void 26: ; preds = %3 + call void @llvm.lifetime.start.p0(ptr nonnull %8) call void @llvm.lifetime.start.p0(ptr nonnull %7) - call void @llvm.lifetime.start.p0(ptr nonnull %6) - store ptr %8, ptr %6, align 8 - %27 = getelementptr inbounds nuw i8, ptr %6, i64 8 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hea7a5554d3cba60aE", ptr %27, align 8 - %28 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store ptr %1, ptr %28, align 8 - %29 = getelementptr inbounds nuw i8, ptr %6, i64 24 - store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u16$GT$3fmt17h8fbc1da34ba6fc4eE", ptr %29, align 8 - store ptr @anon.d7ae422b905bc148915863ca64484cc6.30, ptr %7, align 8, !alias.scope !92, !noalias !95 - %30 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store i64 2, ptr %30, align 8, !alias.scope !92, !noalias !95 - %31 = getelementptr inbounds nuw i8, ptr %7, i64 32 - store ptr null, ptr %31, align 8, !alias.scope !92, !noalias !95 - %32 = getelementptr inbounds nuw i8, ptr %7, i64 16 - store ptr %6, ptr %32, align 8, !alias.scope !92, !noalias !95 - %33 = getelementptr inbounds nuw i8, ptr %7, i64 24 - store i64 2, ptr %33, align 8, !alias.scope !92, !noalias !95 - call void @_ZN4core9panicking9panic_fmt17h452a83e54ecd764eE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %7, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.31) #15 + store ptr %9, ptr %7, align 8 + %28 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hea7a5554d3cba60aE", ptr %28, align 8 + %29 = getelementptr inbounds nuw i8, ptr %7, i64 16 + store ptr %1, ptr %56, align 8 + %30 = getelementptr inbounds nuw i8, ptr %7, i64 24 + store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u16$GT$3fmt17h8fbc1da34ba6fc4eE", ptr %30, align 8 + store ptr @anon.d7ae422b905bc148915863ca64484cc6.30, ptr %12, align 8, !alias.scope !92, !noalias !95 + %31 = getelementptr inbounds nuw i8, ptr %8, i64 8 + store i64 2, ptr %31, align 8, !alias.scope !92, !noalias !95 + %32 = getelementptr inbounds nuw i8, ptr %8, i64 32 + store ptr null, ptr %59, align 8, !alias.scope !92, !noalias !95 + %33 = getelementptr inbounds nuw i8, ptr %12, i64 16 + store ptr %7, ptr %60, align 8, !alias.scope !92, !noalias !95 + %34 = getelementptr inbounds nuw i8, ptr %8, i64 24 + store i64 2, ptr %34, align 8, !alias.scope !92, !noalias !95 + call void @_ZN4core9panicking9panic_fmt17h452a83e54ecd764eE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %8, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.31) #15 unreachable } @@ -1854,140 +1858,74 @@ define hidden void @_ZN15ockam_multiaddr9split_off17hbc66e5754c724a50E(ptr noali %5 = alloca [2 x { ptr, ptr }], align 8 %6 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8 %7 = alloca i64, align 8 - %8 = alloca { i16, [28 x i8] }, align 2 - %9 = alloca [2 x { ptr, ptr }], align 8 - %10 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, i64 } }, align 8 - %11 = alloca i64, align 8 %.sroa.5 = alloca [28 x i8], align 2 %12 = alloca { i16, [28 x i8] }, align 2 %13 = load i16, ptr %1, align 8, !range !353, !noundef !4 %trunc = trunc nuw i16 %13 to i1 - br i1 %trunc, label %40, label %14 - -14: ; preds = %3 - call void @llvm.lifetime.start.p0(ptr nonnull %12) - %15 = getelementptr inbounds nuw i8, ptr %1, i64 2 - tail call void @llvm.experimental.noalias.scope.decl(metadata !550) - call void @llvm.lifetime.start.p0(ptr nonnull %11) - store i64 %2, ptr %11, align 8, !noalias !553 - %16 = load i16, ptr %15, align 2, !alias.scope !550, !noalias !555, !noundef !4 - %17 = zext i16 %16 to i64 - %18 = icmp ugt i64 %2, %17 - br i1 %18, label %26, label %19 - -19: ; preds = %14 - call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !553 - %20 = getelementptr inbounds nuw i8, ptr %8, i64 2 - call void @_ZN4core5array25try_from_trusted_iterator17h1004ebbe92a96c9eE.llvm.11192376679961209255(ptr noalias noundef nonnull sret({ [28 x i8] }) align 1 captures(none) dereferenceable(28) %20, ptr noundef nonnull %4, ptr noundef nonnull inttoptr (i64 28 to ptr)), !noalias !553 - store i16 0, ptr %8, align 2, !noalias !553 - %21 = icmp ugt i16 %16, 28 - br i1 %21, label %22, label %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE.exit.i" - -22: ; preds = %19 - call void @_ZN4core5slice5index24slice_end_index_len_fail17hea09f7e31bfd8b3bE(i64 noundef %17, i64 noundef 28, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.24) #15, !noalias !556 - unreachable - -"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE.exit.i": ; preds = %19 - %23 = load i64, ptr %11, align 8, !noalias !553, !noundef !4 - %24 = icmp ugt i64 %23, %17 - br i1 %24, label %25, label %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$9split_off17hd5be9afebb908fa0E.llvm.15521009673977008026.exit" - -25: ; preds = %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE.exit.i" - call void @_ZN4core5slice5index26slice_start_index_len_fail17hab06ee9584c35f57E(i64 noundef %23, i64 noundef range(i64 0, 29) %17, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.25) #15, !noalias !559 - unreachable - -26: ; preds = %14 - call void @llvm.lifetime.start.p0(ptr nonnull %10), !noalias !553 - call void @llvm.lifetime.start.p0(ptr nonnull %9), !noalias !553 - store ptr %11, ptr %9, align 8, !noalias !553 - %27 = getelementptr inbounds nuw i8, ptr %9, i64 8 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hea7a5554d3cba60aE", ptr %27, align 8, !noalias !553 - %28 = getelementptr inbounds nuw i8, ptr %9, i64 16 - store ptr %15, ptr %28, align 8, !noalias !553 - %29 = getelementptr inbounds nuw i8, ptr %9, i64 24 - store ptr @"_ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u16$GT$3fmt17h8fbc1da34ba6fc4eE", ptr %29, align 8, !noalias !553 - store ptr @anon.d7ae422b905bc148915863ca64484cc6.30, ptr %10, align 8, !alias.scope !562, !noalias !565 - %30 = getelementptr inbounds nuw i8, ptr %10, i64 8 - store i64 2, ptr %30, align 8, !alias.scope !562, !noalias !565 - %31 = getelementptr inbounds nuw i8, ptr %10, i64 32 - store ptr null, ptr %31, align 8, !alias.scope !562, !noalias !565 - %32 = getelementptr inbounds nuw i8, ptr %10, i64 16 - store ptr %9, ptr %32, align 8, !alias.scope !562, !noalias !565 - %33 = getelementptr inbounds nuw i8, ptr %10, i64 24 - store i64 2, ptr %33, align 8, !alias.scope !562, !noalias !565 - call void @_ZN4core9panicking9panic_fmt17h452a83e54ecd764eE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %10, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.31) #15, !noalias !555 - unreachable + br i1 %trunc, label %13, label %10 -"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$9split_off17hd5be9afebb908fa0E.llvm.15521009673977008026.exit": ; preds = %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE.exit.i" - %34 = getelementptr inbounds nuw i8, ptr %1, i64 4 - %35 = sub nuw nsw i64 %17, %23 - %36 = getelementptr inbounds nuw i8, ptr %34, i64 %23 - call void @_ZN4core3ptr19swap_nonoverlapping17h93a20e6c534d4445E.llvm.10107124358432276917(ptr noundef nonnull align 1 %36, ptr noundef nonnull align 1 %20, i64 noundef %35), !noalias !568 - %37 = trunc nuw nsw i64 %35 to i16 - store i16 %37, ptr %8, align 2, !noalias !553 - %38 = trunc nuw nsw i64 %23 to i16 - store i16 %38, ptr %15, align 2, !alias.scope !550, !noalias !555 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(30) %12, ptr noundef nonnull align 2 dereferenceable(30) %8, i64 30, i1 false), !noalias !550 - call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !553 - call void @llvm.lifetime.end.p0(ptr nonnull %11) - %39 = getelementptr inbounds nuw i8, ptr %0, i64 2 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(30) %39, ptr noundef nonnull align 2 dereferenceable(30) %12, i64 30, i1 false) +25: ; preds = %3 + call void @llvm.lifetime.start.p0(ptr nonnull %8) + %11 = getelementptr inbounds nuw i8, ptr %1, i64 2 + call void @"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$9split_off17hd5be9afebb908fa0E.llvm.15521009673977008026"(ptr noalias noundef nonnull sret({ i16, [28 x i8] }) align 2 captures(none) dereferenceable(30) %8, ptr noalias noundef nonnull align 2 dereferenceable(30) %11, i64 noundef %2) + %12 = getelementptr inbounds nuw i8, ptr %0, i64 2 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(30) %12, ptr noundef nonnull align 2 dereferenceable(30) %8, i64 30, i1 false) store i16 0, ptr %0, align 8 - call void @llvm.lifetime.end.p0(ptr nonnull %12) - br label %46 - -40: ; preds = %3 - %41 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %42 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %43 = load i64, ptr %42, align 8, !noundef !4 - %44 = sub i64 %43, %2 - %45 = icmp ult i64 %44, 29 - br i1 %45, label %66, label %47 - -46: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off17h9e8e2a7c9d51da68E.llvm.15521009673977008026.exit", %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hc8e541a34f6506c0E.exit", %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$9split_off17hd5be9afebb908fa0E.llvm.15521009673977008026.exit" + call void @llvm.lifetime.end.p0(ptr nonnull %8) + br label %19 + +26: ; preds = %3 + %14 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %15 = getelementptr inbounds nuw i8, ptr %1, i64 51 + %16 = load i64, ptr %15, align 8, !noundef !4 + %17 = sub i64 %16, %2 + %18 = icmp ult i64 %17, 29 + br i1 %18, label %39, label %19 + +"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$9split_off17hd5be9afebb908fa0E.llvm.15521009673977008026.exit": ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off17h9e8e2a7c9d51da68E.llvm.15521009673977008026.exit", %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hc8e541a34f6506c0E.exit", %10 ret void -47: ; preds = %40 - tail call void @llvm.experimental.noalias.scope.decl(metadata !571) - tail call void @llvm.experimental.noalias.scope.decl(metadata !574) - %48 = icmp ugt i64 %2, %43 - br i1 %48, label %51, label %49 +47: ; preds = %13 + tail call void @llvm.experimental.noalias.scope.decl(metadata !550) + tail call void @llvm.experimental.noalias.scope.decl(metadata !553) + %48 = icmp ugt i64 %2, %16 + br i1 %47, label %51, label %49 49: ; preds = %47 %50 = icmp eq i64 %2, 0 br i1 %50, label %52, label %58 51: ; preds = %47 - tail call void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off13assert_failed17h34decb1426b58221E"(i64 noundef %2, i64 noundef %43) #15, !noalias !576 + tail call void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off13assert_failed17h34decb1426b58221E"(i64 noundef %2, i64 noundef %16) #15, !noalias !555 unreachable 52: ; preds = %49 %53 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %54 = load i64, ptr %53, align 8, !alias.scope !574, !noalias !571, !noundef !4 - %55 = tail call { ptr, i64 } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17hb7ee974697ca325fE"(i64 noundef %54, i1 noundef zeroext false), !noalias !576 + %54 = load i64, ptr %53, align 8, !alias.scope !553, !noalias !550, !noundef !4 + %55 = tail call { ptr, i64 } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17hb7ee974697ca325fE"(i64 noundef %54, i1 noundef zeroext false), !noalias !555 %56 = extractvalue { ptr, i64 } %55, 0 %57 = extractvalue { ptr, i64 } %55, 1 - %.sroa.0.0.copyload1 = load ptr, ptr %41, align 8, !alias.scope !576 - store ptr %56, ptr %41, align 8, !alias.scope !574, !noalias !571 - store i64 %57, ptr %53, align 8, !alias.scope !574, !noalias !571 + %.sroa.0.0.copyload1 = load ptr, ptr %14, align 8, !alias.scope !555 + store ptr %56, ptr %14, align 8, !alias.scope !553, !noalias !550 + store i64 %57, ptr %53, align 8, !alias.scope !553, !noalias !550 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off17h9e8e2a7c9d51da68E.llvm.15521009673977008026.exit" 58: ; preds = %49 - %59 = tail call { ptr, i64 } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17hb7ee974697ca325fE"(i64 noundef %44, i1 noundef zeroext false), !noalias !576 + %59 = tail call { ptr, i64 } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17hb7ee974697ca325fE"(i64 noundef %17, i1 noundef zeroext false), !noalias !555 %60 = extractvalue { ptr, i64 } %59, 0 %61 = extractvalue { ptr, i64 } %59, 1 - %62 = load ptr, ptr %41, align 8, !alias.scope !574, !noalias !571, !nonnull !4, !noundef !4 + %62 = load ptr, ptr %14, align 8, !alias.scope !553, !noalias !550, !nonnull !4, !noundef !4 %63 = getelementptr inbounds i8, ptr %62, i64 %2 %64 = icmp ne ptr %60, null tail call void @llvm.assume(i1 %64) - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %60, ptr nonnull align 1 %63, i64 %44, i1 false), !noalias !576 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %60, ptr nonnull align 1 %63, i64 %17, i1 false), !noalias !555 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off17h9e8e2a7c9d51da68E.llvm.15521009673977008026.exit" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off17h9e8e2a7c9d51da68E.llvm.15521009673977008026.exit": ; preds = %52, %58 - %.sroa.6.0 = phi i64 [ %43, %52 ], [ %44, %58 ] - %.sroa.5.0 = phi i64 [ %54, %52 ], [ %61, %58 ] - %.sroa.0.0 = phi ptr [ %.sroa.0.0.copyload1, %52 ], [ %60, %58 ] - store i64 %2, ptr %42, align 8, !alias.scope !574, !noalias !571 + %.sroa.6.0 = phi i64 [ %16, %25 ], [ %17, %31 ] + %.sroa.5.0 = phi i64 [ %54, %25 ], [ %61, %31 ] + %.sroa.0.0 = phi ptr [ %.sroa.0.0.copyload1, %25 ], [ %60, %31 ] + store i64 %2, ptr %15, align 8, !alias.scope !553, !noalias !550 %65 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.sroa.0.0, ptr %65, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -1995,69 +1933,69 @@ define hidden void @_ZN15ockam_multiaddr9split_off17hbc66e5754c724a50E(ptr noali %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 store i64 %.sroa.6.0, ptr %.sroa.6.0..sroa_idx, align 8 store i16 1, ptr %0, align 8 - br label %46 + br label %19 -66: ; preds = %40 +66: ; preds = %13 call void @_ZN4core5array25try_from_trusted_iterator17h1004ebbe92a96c9eE.llvm.11192376679961209255(ptr noalias noundef nonnull sret({ [28 x i8] }) align 1 captures(none) dereferenceable(28) %.sroa.5, ptr noundef nonnull %4, ptr noundef nonnull inttoptr (i64 28 to ptr)) - call void @llvm.experimental.noalias.scope.decl(metadata !577) - %67 = load i64, ptr %42, align 8, !alias.scope !577, !noalias !580, !noundef !4 + call void @llvm.experimental.noalias.scope.decl(metadata !556) + %67 = load i64, ptr %15, align 8, !alias.scope !556, !noalias !559, !noundef !4 %68 = icmp ugt i64 %2, %67 br i1 %68, label %69, label %"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hcea16231bb159e19E.llvm.15521009673977008026.exit" 69: ; preds = %66 - call void @_ZN4core5slice5index26slice_start_index_len_fail17hab06ee9584c35f57E(i64 noundef %2, i64 noundef %67, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.37.llvm.15521009673977008026) #15, !noalias !582 + call void @_ZN4core5slice5index26slice_start_index_len_fail17hab06ee9584c35f57E(i64 noundef %2, i64 noundef %67, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.37.llvm.15521009673977008026) #15, !noalias !561 unreachable "_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hcea16231bb159e19E.llvm.15521009673977008026.exit": ; preds = %66 - %70 = load ptr, ptr %41, align 8, !alias.scope !577, !noalias !580, !nonnull !4, !noundef !4 + %70 = load ptr, ptr %14, align 8, !alias.scope !556, !noalias !559, !nonnull !4, !noundef !4 %71 = sub nuw i64 %67, %2 %72 = getelementptr inbounds i8, ptr %70, i64 %2 %73 = icmp eq i64 %67, %2 br i1 %73, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hc8e541a34f6506c0E.exit", label %74 74: ; preds = %"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hcea16231bb159e19E.llvm.15521009673977008026.exit" - call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !585 - store i64 %71, ptr %7, align 8, !noalias !585 + call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !564 + store i64 %71, ptr %7, align 8, !noalias !564 %75 = icmp ult i64 %71, 29 br i1 %75, label %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$7set_len17h676620c15527aed5E.exit.i", label %76 76: ; preds = %74 - call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !585 - call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !585 - store ptr %7, ptr %5, align 8, !noalias !585 + call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !564 + call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !564 + store ptr %7, ptr %5, align 8, !noalias !564 %77 = getelementptr inbounds nuw i8, ptr %5, i64 8 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hea7a5554d3cba60aE", ptr %77, align 8, !noalias !585 + store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hea7a5554d3cba60aE", ptr %77, align 8, !noalias !564 %78 = getelementptr inbounds nuw i8, ptr %5, i64 16 - store ptr @anon.d7ae422b905bc148915863ca64484cc6.15, ptr %78, align 8, !noalias !585 + store ptr @anon.d7ae422b905bc148915863ca64484cc6.15, ptr %78, align 8, !noalias !564 %79 = getelementptr inbounds nuw i8, ptr %5, i64 24 - store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hea7a5554d3cba60aE", ptr %79, align 8, !noalias !585 - store ptr @anon.d7ae422b905bc148915863ca64484cc6.14, ptr %6, align 8, !alias.scope !589, !noalias !592 + store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17hea7a5554d3cba60aE", ptr %79, align 8, !noalias !564 + store ptr @anon.d7ae422b905bc148915863ca64484cc6.14, ptr %6, align 8, !alias.scope !568, !noalias !571 %80 = getelementptr inbounds nuw i8, ptr %6, i64 8 - store i64 3, ptr %80, align 8, !alias.scope !589, !noalias !592 + store i64 3, ptr %80, align 8, !alias.scope !568, !noalias !571 %81 = getelementptr inbounds nuw i8, ptr %6, i64 32 - store ptr null, ptr %81, align 8, !alias.scope !589, !noalias !592 + store ptr null, ptr %81, align 8, !alias.scope !568, !noalias !571 %82 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store ptr %5, ptr %82, align 8, !alias.scope !589, !noalias !592 + store ptr %5, ptr %82, align 8, !alias.scope !568, !noalias !571 %83 = getelementptr inbounds nuw i8, ptr %6, i64 24 - store i64 2, ptr %83, align 8, !alias.scope !589, !noalias !592 - call void @_ZN4core9panicking9panic_fmt17h452a83e54ecd764eE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %6, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.16) #15, !noalias !585 + store i64 2, ptr %83, align 8, !alias.scope !568, !noalias !571 + call void @_ZN4core9panicking9panic_fmt17h452a83e54ecd764eE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %6, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.d7ae422b905bc148915863ca64484cc6.16) #15, !noalias !564 unreachable "_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$7set_len17h676620c15527aed5E.exit.i": ; preds = %74 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 2 %.sroa.5, ptr nonnull readonly align 1 %72, i64 %71, i1 false) %84 = trunc nuw nsw i64 %71 to i16 - call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !585 + call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !564 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hc8e541a34f6506c0E.exit" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hc8e541a34f6506c0E.exit": ; preds = %"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hcea16231bb159e19E.llvm.15521009673977008026.exit", %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$7set_len17h676620c15527aed5E.exit.i" %.sroa.0.08 = phi i16 [ 0, %"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hcea16231bb159e19E.llvm.15521009673977008026.exit" ], [ %84, %"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$7set_len17h676620c15527aed5E.exit.i" ] - store i64 %2, ptr %42, align 8, !alias.scope !595 + store i64 %2, ptr %15, align 8, !alias.scope !574 %85 = getelementptr inbounds nuw i8, ptr %0, i64 2 store i16 %.sroa.0.08, ptr %85, align 2 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(28) %.sroa.4.0..sroa_idx, ptr noundef nonnull align 2 dereferenceable(28) %.sroa.5, i64 28, i1 false) store i16 0, ptr %0, align 8 - br label %46 + br label %19 } ; Function Attrs: cold noreturn nonlazybind uwtable @@ -2760,50 +2698,29 @@ attributes #18 = { noinline noreturn nounwind } !548 = distinct !{!548, !"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h1fd7b7507736416dE.llvm.11186069109554130561"} !549 = !{!547, !544, !541, !538, !535, !532, !529, !526} !550 = !{!551} -!551 = distinct !{!551, !552, !"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$9split_off17hd5be9afebb908fa0E.llvm.15521009673977008026: argument 1"} -!552 = distinct !{!552, !"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$9split_off17hd5be9afebb908fa0E.llvm.15521009673977008026"} -!553 = !{!554, !551} -!554 = distinct !{!554, !552, !"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$9split_off17hd5be9afebb908fa0E.llvm.15521009673977008026: argument 0"} -!555 = !{!554} -!556 = !{!557, !554, !551} -!557 = distinct !{!557, !558, !"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE: argument 0"} -!558 = distinct !{!558, !"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17haad289dfe8cb706fE"} -!559 = !{!560, !554, !551} -!560 = distinct !{!560, !561, !"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hc168049529e83ff9E: argument 0"} -!561 = distinct !{!561, !"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hc168049529e83ff9E"} -!562 = !{!563} -!563 = distinct !{!563, !564, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE: argument 0"} -!564 = distinct !{!564, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE"} -!565 = !{!566, !567, !554, !551} -!566 = distinct !{!566, !564, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE: argument 1"} -!567 = distinct !{!567, !564, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE: argument 2"} -!568 = !{!569, !554} -!569 = distinct !{!569, !570, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15swap_with_slice17h4b986648f1af0003E: argument 2"} -!570 = distinct !{!570, !"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$15swap_with_slice17h4b986648f1af0003E"} -!571 = !{!572} -!572 = distinct !{!572, !573, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off17h9e8e2a7c9d51da68E.llvm.15521009673977008026: argument 0"} -!573 = distinct !{!573, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off17h9e8e2a7c9d51da68E.llvm.15521009673977008026"} +!551 = distinct !{!551, !552, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off17h9e8e2a7c9d51da68E.llvm.15521009673977008026: argument 0"} +!552 = distinct !{!552, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off17h9e8e2a7c9d51da68E.llvm.15521009673977008026"} +!553 = !{!554} +!554 = distinct !{!554, !552, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off17h9e8e2a7c9d51da68E.llvm.15521009673977008026: argument 1"} +!555 = !{!551, !554} +!556 = !{!557} +!557 = distinct !{!557, !558, !"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hcea16231bb159e19E.llvm.15521009673977008026: argument 0"} +!558 = distinct !{!558, !"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hcea16231bb159e19E.llvm.15521009673977008026"} +!559 = !{!560} +!560 = distinct !{!560, !558, !"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hcea16231bb159e19E.llvm.15521009673977008026: argument 1"} +!561 = !{!562, !557} +!562 = distinct !{!562, !563, !"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17heacdd978a70d480aE.llvm.15521009673977008026: argument 0"} +!563 = distinct !{!563, !"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17heacdd978a70d480aE.llvm.15521009673977008026"} +!564 = !{!565, !567} +!565 = distinct !{!565, !566, !"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$17extend_from_slice17h63d5580463e47606E.llvm.15521009673977008026: argument 0"} +!566 = distinct !{!566, !"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$17extend_from_slice17h63d5580463e47606E.llvm.15521009673977008026"} +!567 = distinct !{!567, !566, !"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$17extend_from_slice17h63d5580463e47606E.llvm.15521009673977008026: argument 1"} +!568 = !{!569} +!569 = distinct !{!569, !570, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE: argument 0"} +!570 = distinct !{!570, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE"} +!571 = !{!572, !573, !565, !567} +!572 = distinct !{!572, !570, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE: argument 1"} +!573 = distinct !{!573, !570, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE: argument 2"} !574 = !{!575} -!575 = distinct !{!575, !573, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$9split_off17h9e8e2a7c9d51da68E.llvm.15521009673977008026: argument 1"} -!576 = !{!572, !575} -!577 = !{!578} -!578 = distinct !{!578, !579, !"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hcea16231bb159e19E.llvm.15521009673977008026: argument 0"} -!579 = distinct !{!579, !"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hcea16231bb159e19E.llvm.15521009673977008026"} -!580 = !{!581} -!581 = distinct !{!581, !579, !"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17hcea16231bb159e19E.llvm.15521009673977008026: argument 1"} -!582 = !{!583, !578} -!583 = distinct !{!583, !584, !"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17heacdd978a70d480aE.llvm.15521009673977008026: argument 0"} -!584 = distinct !{!584, !"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17heacdd978a70d480aE.llvm.15521009673977008026"} -!585 = !{!586, !588} -!586 = distinct !{!586, !587, !"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$17extend_from_slice17h63d5580463e47606E.llvm.15521009673977008026: argument 0"} -!587 = distinct !{!587, !"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$17extend_from_slice17h63d5580463e47606E.llvm.15521009673977008026"} -!588 = distinct !{!588, !587, !"_ZN7tinyvec8arrayvec17ArrayVec$LT$A$GT$17extend_from_slice17h63d5580463e47606E.llvm.15521009673977008026: argument 1"} -!589 = !{!590} -!590 = distinct !{!590, !591, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE: argument 0"} -!591 = distinct !{!591, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE"} -!592 = !{!593, !594, !586, !588} -!593 = distinct !{!593, !591, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE: argument 1"} -!594 = distinct !{!594, !591, !"_ZN4core3fmt9Arguments6new_v117h6ddcc4870a74d58cE: argument 2"} -!595 = !{!596} -!596 = distinct !{!596, !597, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hc8e541a34f6506c0E: argument 0"} -!597 = distinct !{!597, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hc8e541a34f6506c0E"} +!575 = distinct !{!575, !576, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hc8e541a34f6506c0E: argument 0"} +!576 = distinct !{!576, !"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hc8e541a34f6506c0E"} diff --git a/bench/openssl/optimized/ecparam.ll b/bench/openssl/optimized/ecparam.ll index 68b0a2695e8..be152e9a554 100644 --- a/bench/openssl/optimized/ecparam.ll +++ b/bench/openssl/optimized/ecparam.ll @@ -115,6 +115,7 @@ define dso_local range(i32 0, 2) i32 @ecparam_main(i32 noundef %0, ptr noundef % %8 = alloca %struct.ossl_param_st, align 8 %9 = alloca %struct.ossl_param_st, align 8 %10 = alloca %struct.ossl_param_st, align 8 + %11 = alloca %struct.ossl_param_st, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %3) store ptr null, ptr %3, align 8, !tbaa !4 call void @llvm.lifetime.start.p0(ptr nonnull %4) @@ -168,20 +169,20 @@ define dso_local range(i32 0, 2) i32 @ecparam_main(i32 noundef %0, ptr noundef % i32 1602, label %44 ] -.backedge: ; preds = %12, %44, %42, %38, %35, %22, %17, %46, %41, %33, %32, %31, %30, %29, %28, %27, %25, %20 - %.0104.be = phi ptr [ %.0104, %12 ], [ %.0104, %17 ], [ %.0104, %20 ], [ %.0104, %22 ], [ %.0104, %25 ], [ %.0104, %27 ], [ %.0104, %28 ], [ %.0104, %29 ], [ %.0104, %30 ], [ %.0104, %31 ], [ %.0104, %32 ], [ %.0104, %33 ], [ %.0104, %35 ], [ %.0104, %38 ], [ %.0104, %41 ], [ %48, %46 ], [ %.0104, %42 ], [ %.0104, %44 ] - %.0100.be = phi ptr [ %.0100, %12 ], [ %.0100, %17 ], [ %.0100, %20 ], [ %.0100, %22 ], [ %.0100, %25 ], [ %.0100, %27 ], [ %.0100, %28 ], [ %.0100, %29 ], [ %.0100, %30 ], [ %.0100, %31 ], [ %.0100, %32 ], [ %34, %33 ], [ %.0100, %35 ], [ %.0100, %38 ], [ %.0100, %41 ], [ %.0100, %46 ], [ %.0100, %42 ], [ %.0100, %44 ] - %.098.be = phi ptr [ %.098, %12 ], [ %.098, %17 ], [ %.098, %20 ], [ %.098, %22 ], [ %.098, %25 ], [ %.098, %27 ], [ %.098, %28 ], [ %.098, %29 ], [ %.098, %30 ], [ %.098, %31 ], [ %.098, %32 ], [ %.098, %33 ], [ %.098, %35 ], [ %39, %38 ], [ %.098, %41 ], [ %.098, %46 ], [ %.098, %42 ], [ %.098, %44 ] - %.096.be = phi ptr [ %.096, %12 ], [ %.096, %17 ], [ %.096, %20 ], [ %.096, %22 ], [ %.096, %25 ], [ %.096, %27 ], [ %.096, %28 ], [ %.096, %29 ], [ %.096, %30 ], [ %.096, %31 ], [ %.096, %32 ], [ %.096, %33 ], [ %36, %35 ], [ %.096, %38 ], [ %.096, %41 ], [ %.096, %46 ], [ %.096, %42 ], [ %.096, %44 ] - %.094.be = phi ptr [ %.094, %12 ], [ %.094, %17 ], [ %21, %20 ], [ %.094, %22 ], [ %.094, %25 ], [ %.094, %27 ], [ %.094, %28 ], [ %.094, %29 ], [ %.094, %30 ], [ %.094, %31 ], [ %.094, %32 ], [ %.094, %33 ], [ %.094, %35 ], [ %.094, %38 ], [ %.094, %41 ], [ %.094, %46 ], [ %.094, %42 ], [ %.094, %44 ] - %.092.be = phi ptr [ %.092, %12 ], [ %.092, %17 ], [ %.092, %20 ], [ %.092, %22 ], [ %26, %25 ], [ %.092, %27 ], [ %.092, %28 ], [ %.092, %29 ], [ %.092, %30 ], [ %.092, %31 ], [ %.092, %32 ], [ %.092, %33 ], [ %.092, %35 ], [ %.092, %38 ], [ %.092, %41 ], [ %.092, %46 ], [ %.092, %42 ], [ %.092, %44 ] - %.086.be = phi i32 [ %.086, %12 ], [ %.086, %17 ], [ %.086, %20 ], [ %.086, %22 ], [ %.086, %25 ], [ %.086, %27 ], [ %.086, %28 ], [ %.086, %29 ], [ %.086, %30 ], [ %.086, %31 ], [ 1, %32 ], [ %.086, %33 ], [ %.086, %35 ], [ %.086, %38 ], [ %.086, %41 ], [ %.086, %46 ], [ %.086, %42 ], [ %.086, %44 ] - %.083.be = phi i32 [ %.083, %12 ], [ %.083, %17 ], [ %.083, %20 ], [ %.083, %22 ], [ %.083, %25 ], [ %.083, %27 ], [ %.083, %28 ], [ %.083, %29 ], [ %.083, %30 ], [ 1, %31 ], [ %.083, %32 ], [ %.083, %33 ], [ %.083, %35 ], [ %.083, %38 ], [ %.083, %41 ], [ %.083, %46 ], [ %.083, %42 ], [ %.083, %44 ] - %.081.be = phi i32 [ %.081, %12 ], [ %.081, %17 ], [ %.081, %20 ], [ %.081, %22 ], [ %.081, %25 ], [ %.081, %27 ], [ 1, %28 ], [ %.081, %29 ], [ %.081, %30 ], [ %.081, %31 ], [ %.081, %32 ], [ %.081, %33 ], [ %.081, %35 ], [ %.081, %38 ], [ %.081, %41 ], [ %.081, %46 ], [ %.081, %42 ], [ %.081, %44 ] - %.079.be = phi i32 [ %.079, %12 ], [ %.079, %17 ], [ %.079, %20 ], [ %.079, %22 ], [ %.079, %25 ], [ %.079, %27 ], [ %.079, %28 ], [ 1, %29 ], [ %.079, %30 ], [ %.079, %31 ], [ %.079, %32 ], [ %.079, %33 ], [ %.079, %35 ], [ %.079, %38 ], [ %.079, %41 ], [ %.079, %46 ], [ %.079, %42 ], [ %.079, %44 ] - %.077.be = phi i32 [ %.077, %12 ], [ %.077, %17 ], [ %.077, %20 ], [ %.077, %22 ], [ %.077, %25 ], [ 1, %27 ], [ %.077, %28 ], [ %.077, %29 ], [ %.077, %30 ], [ %.077, %31 ], [ %.077, %32 ], [ %.077, %33 ], [ %.077, %35 ], [ %.077, %38 ], [ %.077, %41 ], [ %.077, %46 ], [ %.077, %42 ], [ %.077, %44 ] - %.075.be = phi i32 [ %.075, %12 ], [ %.075, %17 ], [ %.075, %20 ], [ %.075, %22 ], [ %.075, %25 ], [ %.075, %27 ], [ %.075, %28 ], [ %.075, %29 ], [ %.075, %30 ], [ %.075, %31 ], [ %.075, %32 ], [ %.075, %33 ], [ %.075, %35 ], [ %.075, %38 ], [ 1, %41 ], [ %.075, %46 ], [ %.075, %42 ], [ %.075, %44 ] - %.073.be = phi i32 [ %.073, %12 ], [ %.073, %17 ], [ %.073, %20 ], [ %.073, %22 ], [ %.073, %25 ], [ %.073, %27 ], [ %.073, %28 ], [ %.073, %29 ], [ 1, %30 ], [ %.073, %31 ], [ %.073, %32 ], [ %.073, %33 ], [ %.073, %35 ], [ %.073, %38 ], [ %.073, %41 ], [ %.073, %46 ], [ %.073, %42 ], [ %.073, %44 ] +.backedge: ; preds = %12, %44, %42, %38, %35, %22, %17, %46, %41, %34, %33, %32, %31, %30, %29, %28, %25, %20 + %.0104.be = phi ptr [ %.0104, %13 ], [ %.0104, %18 ], [ %.0104, %21 ], [ %.0104, %23 ], [ %.0104, %26 ], [ %.0104, %28 ], [ %.0104, %29 ], [ %.0104, %30 ], [ %.0104, %31 ], [ %.0104, %32 ], [ %.0104, %33 ], [ %.0104, %34 ], [ %.0104, %36 ], [ %.0104, %39 ], [ %.0104, %42 ], [ %49, %47 ], [ %.0104, %43 ], [ %.0104, %45 ] + %.0100.be = phi ptr [ %.0100, %13 ], [ %.0100, %18 ], [ %.0100, %21 ], [ %.0100, %23 ], [ %.0100, %26 ], [ %.0100, %28 ], [ %.0100, %29 ], [ %.0100, %30 ], [ %.0100, %31 ], [ %.0100, %32 ], [ %.0100, %33 ], [ %35, %34 ], [ %.0100, %36 ], [ %.0100, %39 ], [ %.0100, %42 ], [ %.0100, %47 ], [ %.0100, %43 ], [ %.0100, %45 ] + %.098.be = phi ptr [ %.098, %13 ], [ %.098, %18 ], [ %.098, %21 ], [ %.098, %23 ], [ %.098, %26 ], [ %.098, %28 ], [ %.098, %29 ], [ %.098, %30 ], [ %.098, %31 ], [ %.098, %32 ], [ %.098, %33 ], [ %.098, %34 ], [ %.098, %36 ], [ %40, %39 ], [ %.098, %42 ], [ %.098, %47 ], [ %.098, %43 ], [ %.098, %45 ] + %.096.be = phi ptr [ %.096, %13 ], [ %.096, %18 ], [ %.096, %21 ], [ %.096, %23 ], [ %.096, %26 ], [ %.096, %28 ], [ %.096, %29 ], [ %.096, %30 ], [ %.096, %31 ], [ %.096, %32 ], [ %.096, %33 ], [ %.096, %34 ], [ %37, %36 ], [ %.096, %39 ], [ %.096, %42 ], [ %.096, %47 ], [ %.096, %43 ], [ %.096, %45 ] + %.094.be = phi ptr [ %.094, %13 ], [ %.094, %18 ], [ %22, %21 ], [ %.094, %23 ], [ %.094, %26 ], [ %.094, %28 ], [ %.094, %29 ], [ %.094, %30 ], [ %.094, %31 ], [ %.094, %32 ], [ %.094, %33 ], [ %.094, %34 ], [ %.094, %36 ], [ %.094, %39 ], [ %.094, %42 ], [ %.094, %47 ], [ %.094, %43 ], [ %.094, %45 ] + %.092.be = phi ptr [ %.092, %13 ], [ %.092, %18 ], [ %.092, %21 ], [ %.092, %23 ], [ %27, %26 ], [ %.092, %28 ], [ %.092, %29 ], [ %.092, %30 ], [ %.092, %31 ], [ %.092, %32 ], [ %.092, %33 ], [ %.092, %34 ], [ %.092, %36 ], [ %.092, %39 ], [ %.092, %42 ], [ %.092, %47 ], [ %.092, %43 ], [ %.092, %45 ] + %.086.be = phi i32 [ %.086, %13 ], [ %.086, %18 ], [ %.086, %21 ], [ %.086, %23 ], [ %.086, %26 ], [ %.086, %28 ], [ %.086, %29 ], [ %.086, %30 ], [ %.086, %31 ], [ %.086, %32 ], [ 1, %33 ], [ %.086, %34 ], [ %.086, %36 ], [ %.086, %39 ], [ %.086, %42 ], [ %.086, %47 ], [ %.086, %43 ], [ %.086, %45 ] + %.083.be = phi i32 [ %.083, %13 ], [ %.083, %18 ], [ %.083, %21 ], [ %.083, %23 ], [ %.083, %26 ], [ %.083, %28 ], [ %.083, %29 ], [ %.083, %30 ], [ %.083, %31 ], [ 1, %32 ], [ %.083, %33 ], [ %.083, %34 ], [ %.083, %36 ], [ %.083, %39 ], [ %.083, %42 ], [ %.083, %47 ], [ %.083, %43 ], [ %.083, %45 ] + %.081.be = phi i32 [ %.081, %13 ], [ %.081, %18 ], [ %.081, %21 ], [ %.081, %23 ], [ %.081, %26 ], [ %.081, %28 ], [ 1, %29 ], [ %.081, %30 ], [ %.081, %31 ], [ %.081, %32 ], [ %.081, %33 ], [ %.081, %34 ], [ %.081, %36 ], [ %.081, %39 ], [ %.081, %42 ], [ %.081, %47 ], [ %.081, %43 ], [ %.081, %45 ] + %.079.be = phi i32 [ %.079, %13 ], [ %.079, %18 ], [ %.079, %21 ], [ %.079, %23 ], [ %.079, %26 ], [ %.079, %28 ], [ %.079, %29 ], [ 1, %30 ], [ %.079, %31 ], [ %.079, %32 ], [ %.079, %33 ], [ %.079, %34 ], [ %.079, %36 ], [ %.079, %39 ], [ %.079, %42 ], [ %.079, %47 ], [ %.079, %43 ], [ %.079, %45 ] + %.077.be = phi i32 [ %.077, %13 ], [ %.077, %18 ], [ %.077, %21 ], [ %.077, %23 ], [ %.077, %26 ], [ 1, %28 ], [ %.077, %29 ], [ %.077, %30 ], [ %.077, %31 ], [ %.077, %32 ], [ %.077, %33 ], [ %.077, %34 ], [ %.077, %36 ], [ %.077, %39 ], [ %.077, %42 ], [ %.077, %47 ], [ %.077, %43 ], [ %.077, %45 ] + %.075.be = phi i32 [ %.075, %13 ], [ %.075, %18 ], [ %.075, %21 ], [ %.075, %23 ], [ %.075, %26 ], [ %.075, %28 ], [ %.075, %29 ], [ %.075, %30 ], [ %.075, %31 ], [ %.075, %32 ], [ %.075, %33 ], [ %.075, %34 ], [ %.075, %36 ], [ %.075, %39 ], [ 1, %42 ], [ %.075, %47 ], [ %.075, %43 ], [ %.075, %45 ] + %.073.be = phi i32 [ %.073, %13 ], [ %.073, %18 ], [ %.073, %21 ], [ %.073, %23 ], [ %.073, %26 ], [ %.073, %28 ], [ %.073, %29 ], [ %.073, %30 ], [ 1, %31 ], [ %.073, %32 ], [ %.073, %33 ], [ %.073, %34 ], [ %.073, %36 ], [ %.073, %39 ], [ %.073, %42 ], [ %.073, %47 ], [ %.073, %43 ], [ %.073, %45 ] br label %12, !llvm.loop !11 .loopexit: ; preds = %12, %38, %35, %22, %17, %49 @@ -302,75 +303,78 @@ define dso_local range(i32 0, 2) i32 @ecparam_main(i32 noundef %0, ptr noundef % br i1 %65, label %.sink.split, label %68 .sink.split: ; preds = %63, %60 - %.str.54.sink = phi ptr [ @.str.51, %60 ], [ @.str.54, %63 ] - %.2102.ph = phi ptr [ @.str.52, %60 ], [ @.str.55, %63 ] + %.str.54.sink = phi ptr [ @.str.51, %61 ], [ @.str.54, %64 ] + %.2102.ph = phi ptr [ @.str.52, %61 ], [ @.str.55, %64 ] %66 = load ptr, ptr @bio_err, align 8, !tbaa !13 %67 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %66, ptr noundef nonnull %.str.54.sink) #5 br label %68 68: ; preds = %.sink.split, %63 - %.2102 = phi ptr [ %.0100, %63 ], [ %.2102.ph, %.sink.split ] + %.2102 = phi ptr [ %.0100, %64 ], [ %.2102.ph, %.sink.split ] %69 = getelementptr inbounds nuw i8, ptr %7, i64 40 - call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %7, ptr noundef nonnull @.str.56, ptr noundef nonnull %.2102, i64 noundef 0) #5 - %.not129 = icmp eq ptr %.098, null - br i1 %.not129, label %72, label %70 - -70: ; preds = %68 - %71 = getelementptr inbounds nuw i8, ptr %7, i64 80 call void @llvm.lifetime.start.p0(ptr nonnull %8) - call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %8, ptr noundef nonnull @.str.57, ptr noundef nonnull %.098, i64 noundef 0) #5 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %69, ptr noundef nonnull align 8 dereferenceable(40) %8, i64 40, i1 false), !tbaa.struct !15 + call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %8, ptr noundef nonnull @.str.56, ptr noundef nonnull %.2102, i64 noundef 0) #5 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(40) %7, ptr noundef nonnull align 8 dereferenceable(40) %8, i64 40, i1 false), !tbaa.struct !15 call void @llvm.lifetime.end.p0(ptr nonnull %8) - br label %72 - -72: ; preds = %70, %68 - %.072 = phi ptr [ %71, %70 ], [ %69, %68 ] - %.not130 = icmp eq ptr %.096, null - br i1 %.not130, label %75, label %73 + %.not129 = icmp eq ptr %.098, null + br i1 %.not129, label %73, label %71 -73: ; preds = %72 - %74 = getelementptr inbounds nuw i8, ptr %.072, i64 40 +73: ; preds = %69 + %74 = getelementptr inbounds nuw i8, ptr %7, i64 80 call void @llvm.lifetime.start.p0(ptr nonnull %9) - call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %9, ptr noundef nonnull @.str.58, ptr noundef nonnull %.096, i64 noundef 0) #5 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.072, ptr noundef nonnull align 8 dereferenceable(40) %9, i64 40, i1 false), !tbaa.struct !15 + call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %9, ptr noundef nonnull @.str.57, ptr noundef nonnull %.098, i64 noundef 0) #5 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %70, ptr noundef nonnull align 8 dereferenceable(40) %9, i64 40, i1 false), !tbaa.struct !15 call void @llvm.lifetime.end.p0(ptr nonnull %9) - br label %75 + br label %73 + +73: ; preds = %71, %69 + %.072 = phi ptr [ %72, %71 ], [ %70, %69 ] + %.not130 = icmp eq ptr %.096, null + br i1 %.not130, label %76, label %74 -75: ; preds = %73, %72 - %.1 = phi ptr [ %74, %73 ], [ %.072, %72 ] +75: ; preds = %73 + %75 = getelementptr inbounds nuw i8, ptr %.072, i64 40 call void @llvm.lifetime.start.p0(ptr nonnull %10) - call void @OSSL_PARAM_construct_end(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %10) #5 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.1, ptr noundef nonnull align 8 dereferenceable(40) %10, i64 40, i1 false), !tbaa.struct !15 + call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %10, ptr noundef nonnull @.str.58, ptr noundef nonnull %.096, i64 noundef 0) #5 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.072, ptr noundef nonnull align 8 dereferenceable(40) %10, i64 40, i1 false), !tbaa.struct !15 call void @llvm.lifetime.end.p0(ptr nonnull %10) - %76 = call i32 @OPENSSL_strcasecmp(ptr noundef nonnull %.2102, ptr noundef nonnull @.str.59) #5 - %77 = icmp eq i32 %76, 0 - %78 = call ptr @app_get0_libctx() #5 - %79 = call ptr @app_get0_propq() #5 - %.str.60..str.61 = select i1 %77, ptr @.str.60, ptr @.str.61 - %80 = call ptr @EVP_PKEY_CTX_new_from_name(ptr noundef %78, ptr noundef nonnull %.str.60..str.61, ptr noundef %79) #5 - %81 = icmp eq ptr %80, null - br i1 %81, label %91, label %82 - -82: ; preds = %75 - %83 = call i32 @EVP_PKEY_keygen_init(ptr noundef nonnull %80) #5 - %84 = icmp slt i32 %83, 1 - br i1 %84, label %91, label %85 - -85: ; preds = %82 - %86 = call i32 @EVP_PKEY_CTX_set_params(ptr noundef nonnull %80, ptr noundef nonnull %7) #5 - %87 = icmp slt i32 %86, 1 - br i1 %87, label %91, label %88 - -88: ; preds = %85 - %89 = call i32 @EVP_PKEY_keygen(ptr noundef nonnull %80, ptr noundef nonnull %3) #5 - %90 = icmp slt i32 %89, 1 - br i1 %90, label %91, label %.thread - -.thread: ; preds = %88 + br label %76 + +76:; preds = %74, %73 + %.1 = phi ptr [ %75, %74 ], [ %.072, %73 ] + call void @llvm.lifetime.start.p0(ptr nonnull %11) + call void @OSSL_PARAM_construct_end(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %11) #5 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.1, ptr noundef nonnull align 8 dereferenceable(40) %11, i64 40, i1 false), !tbaa.struct !15 + call void @llvm.lifetime.end.p0(ptr nonnull %11) + %77 = call i32 @OPENSSL_strcasecmp(ptr noundef nonnull %.2102, ptr noundef nonnull @.str.59) #5 + %78 = icmp eq i32 %77, 0 + %83 = call ptr @app_get0_libctx() #5 + %80 = call ptr @app_get0_propq() #5 + %.str.60..str.61 = select i1 %78, ptr @.str.60, ptr @.str.61 + %81 = call ptr @EVP_PKEY_CTX_new_from_name(ptr noundef %79, ptr noundef nonnull %.str.60..str.61, ptr noundef %80) #5 + %82 = icmp eq ptr %81, null + br i1 %82, label %92, label %83 + +83:; preds = %76 + %84 = call i32 @EVP_PKEY_keygen_init(ptr noundef nonnull %81) #5 + %85 = icmp slt i32 %84, 1 + br i1 %85, label %92, label %86 + +86: ; preds = %83 + %87 = call i32 @EVP_PKEY_CTX_set_params(ptr noundef nonnull %81, ptr noundef nonnull %7) #5 + %88 = icmp slt i32 %87, 1 + br i1 %88, label %92, label %89 + +89: ; preds = %86 + %90 = call i32 @EVP_PKEY_keygen(ptr noundef nonnull %81, ptr noundef nonnull %3) #5 + %91 = icmp slt i32 %90, 1 + br i1 %91, label %92, label %.thread + +.thread: ; preds = %89 call void @llvm.lifetime.end.p0(ptr nonnull %7) br label %118 -91: ; preds = %75, %82, %85, %88 +91: ; preds = %76, %83, %86, %89 %92 = load ptr, ptr @bio_err, align 8, !tbaa !13 %93 = call i32 (ptr, ptr, ...) @BIO_printf(ptr noundef %92, ptr noundef nonnull @.str.62) #5 call void @llvm.lifetime.end.p0(ptr nonnull %7) @@ -396,7 +400,7 @@ define dso_local range(i32 0, 2) i32 @ecparam_main(i32 noundef %0, ptr noundef % br label %.thread151 .thread150: ; preds = %94, %98 - %105 = phi ptr [ %100, %98 ], [ %96, %94 ] + %105 = phi ptr [ %100, %99 ], [ %96, %95 ] %.not125 = icmp eq ptr %.096, null br i1 %.not125, label %111, label %106 @@ -426,7 +430,7 @@ define dso_local range(i32 0, 2) i32 @ecparam_main(i32 noundef %0, ptr noundef % br label %.thread151 118: ; preds = %.thread, %111, %112 - %.291 = phi ptr [ %80, %.thread ], [ null, %112 ], [ null, %111 ] + %.291 = phi ptr [ %81, %.thread ], [ null, %113 ], [ null, %112 ] %.not131 = icmp eq i32 %.083, 0 br i1 %.not131, label %125, label %119 @@ -508,7 +512,7 @@ define dso_local range(i32 0, 2) i32 @ecparam_main(i32 noundef %0, ptr noundef % br label %163 163: ; preds = %137, %160 - %.1113 = phi ptr [ %152, %160 ], [ null, %137 ] + %.1113 = phi ptr [ %152, %161 ], [ null, %138 ] %164 = load i32, ptr %6, align 4, !tbaa !9 %165 = icmp eq i32 %164, 4 %or.cond3 = and i1 %165, %59 @@ -530,7 +534,7 @@ define dso_local range(i32 0, 2) i32 @ecparam_main(i32 noundef %0, ptr noundef % br label %.thread151 174: ; preds = %166, %163 - %.1109 = phi ptr [ null, %163 ], [ %169, %166 ] + %.1109 = phi ptr [ null, %164 ], [ %169, %167 ] br i1 %59, label %175, label %.thread181 175: ; preds = %174 @@ -574,29 +578,29 @@ define dso_local range(i32 0, 2) i32 @ecparam_main(i32 noundef %0, ptr noundef % br i1 %.not138.not, label %.thread151, label %.thread181 .thread151: ; preds = %44, %42, %108, %115, %102, %91, %122, %145, %171, %195, %185, %157, %134, %125, %51, %54, %.loopexit, %198 - %.089170 = phi ptr [ null, %198 ], [ null, %.loopexit ], [ null, %115 ], [ null, %108 ], [ null, %54 ], [ null, %51 ], [ %.291, %125 ], [ %.291, %134 ], [ %.291, %157 ], [ %.291, %185 ], [ %.291, %195 ], [ %.291, %171 ], [ %.291, %145 ], [ %.291, %122 ], [ %80, %91 ], [ null, %102 ], [ null, %42 ], [ null, %44 ] - %.0103168 = phi ptr [ %56, %198 ], [ null, %.loopexit ], [ null, %115 ], [ null, %108 ], [ null, %54 ], [ null, %51 ], [ null, %125 ], [ %127, %134 ], [ %127, %157 ], [ %127, %185 ], [ %127, %195 ], [ %127, %171 ], [ %127, %145 ], [ null, %122 ], [ null, %91 ], [ null, %102 ], [ null, %42 ], [ null, %44 ] - %.0106166 = phi ptr [ null, %198 ], [ null, %.loopexit ], [ null, %115 ], [ null, %108 ], [ null, %54 ], [ null, %51 ], [ null, %125 ], [ null, %134 ], [ null, %157 ], [ %179, %185 ], [ %179, %195 ], [ null, %171 ], [ null, %145 ], [ null, %122 ], [ null, %91 ], [ null, %102 ], [ null, %42 ], [ null, %44 ] - %.0108164 = phi ptr [ null, %198 ], [ null, %.loopexit ], [ null, %115 ], [ null, %108 ], [ null, %54 ], [ null, %51 ], [ null, %125 ], [ null, %134 ], [ null, %157 ], [ %.1109, %185 ], [ %.1109, %195 ], [ %169, %171 ], [ null, %145 ], [ null, %122 ], [ null, %91 ], [ null, %102 ], [ null, %42 ], [ null, %44 ] - %.0110162 = phi ptr [ null, %198 ], [ null, %.loopexit ], [ null, %115 ], [ null, %108 ], [ null, %54 ], [ null, %51 ], [ null, %125 ], [ null, %134 ], [ null, %157 ], [ null, %185 ], [ %193, %195 ], [ null, %171 ], [ null, %145 ], [ null, %122 ], [ null, %91 ], [ null, %102 ], [ null, %42 ], [ null, %44 ] - %.0112160 = phi ptr [ null, %198 ], [ null, %.loopexit ], [ null, %115 ], [ null, %108 ], [ null, %54 ], [ null, %51 ], [ null, %125 ], [ null, %134 ], [ %152, %157 ], [ %.1113, %185 ], [ %.1113, %195 ], [ %.1113, %171 ], [ null, %145 ], [ null, %122 ], [ null, %91 ], [ null, %102 ], [ null, %42 ], [ null, %44 ] + %.089170 = phi ptr [ null, %199 ], [ null, %.loopexit ], [ null, %116 ], [ null, %109 ], [ null, %55 ], [ null, %52 ], [ %.291, %126 ], [ %.291, %135 ], [ %.291, %158 ], [ %.291, %186 ], [ %.291, %196 ], [ %.291, %172 ], [ %.291, %146 ], [ %.291, %123 ], [ %81, %92 ], [ null, %103 ], [ null, %43 ], [ null, %45 ] + %.0103168 = phi ptr [ %56, %199 ], [ null, %.loopexit ], [ null, %116 ], [ null, %109 ], [ null, %55 ], [ null, %52 ], [ null, %126 ], [ %128, %135 ], [ %128, %158 ], [ %128, %186 ], [ %128, %196 ], [ %128, %172 ], [ %128, %146 ], [ null, %123 ], [ null, %92 ], [ null, %103 ], [ null, %43 ], [ null, %45 ] + %.0106166 = phi ptr [ null, %199 ], [ null, %.loopexit ], [ null, %116 ], [ null, %109 ], [ null, %55 ], [ null, %52 ], [ null, %126 ], [ null, %135 ], [ null, %158 ], [ %179, %186 ], [ %179, %196 ], [ null, %172 ], [ null, %146 ], [ null, %123 ], [ null, %92 ], [ null, %103 ], [ null, %43 ], [ null, %45 ] + %.0108164 = phi ptr [ null, %199 ], [ null, %.loopexit ], [ null, %116 ], [ null, %109 ], [ null, %55 ], [ null, %52 ], [ null, %126 ], [ null, %135 ], [ null, %158 ], [ %.1109, %186 ], [ %.1109, %196 ], [ %169, %172 ], [ null, %146 ], [ null, %123 ], [ null, %92 ], [ null, %103 ], [ null, %43 ], [ null, %45 ] + %.0110162 = phi ptr [ null, %199 ], [ null, %.loopexit ], [ null, %116 ], [ null, %109 ], [ null, %55 ], [ null, %52 ], [ null, %126 ], [ null, %135 ], [ null, %158 ], [ null, %186 ], [ %193, %196 ], [ null, %172 ], [ null, %146 ], [ null, %123 ], [ null, %92 ], [ null, %103 ], [ null, %43 ], [ null, %45 ] + %.0112160 = phi ptr [ null, %199 ], [ null, %.loopexit ], [ null, %116 ], [ null, %109 ], [ null, %55 ], [ null, %52 ], [ null, %126 ], [ null, %135 ], [ %153, %158 ], [ %.1113, %186 ], [ %.1113, %196 ], [ %.1113, %172 ], [ null, %146 ], [ null, %123 ], [ null, %92 ], [ null, %103 ], [ null, %43 ], [ null, %45 ] %200 = load ptr, ptr @bio_err, align 8, !tbaa !13 call void @ERR_print_errors(ptr noundef %200) #5 br label %.thread181 .thread181: ; preds = %174, %188, %16, %.thread151, %198 - %.085173 = phi i32 [ 1, %.thread151 ], [ %spec.select146, %198 ], [ 0, %16 ], [ 0, %188 ], [ 0, %174 ] - %.089171 = phi ptr [ %.089170, %.thread151 ], [ null, %198 ], [ null, %16 ], [ %.291, %188 ], [ %.291, %174 ] - %.0103169 = phi ptr [ %.0103168, %.thread151 ], [ %56, %198 ], [ null, %16 ], [ %127, %188 ], [ %127, %174 ] - %.0106167 = phi ptr [ %.0106166, %.thread151 ], [ null, %198 ], [ null, %16 ], [ %179, %188 ], [ null, %174 ] - %.0108165 = phi ptr [ %.0108164, %.thread151 ], [ null, %198 ], [ null, %16 ], [ %.1109, %188 ], [ %.1109, %174 ] - %.0110163 = phi ptr [ %.0110162, %.thread151 ], [ null, %198 ], [ null, %16 ], [ %193, %188 ], [ null, %174 ] - %.0112161 = phi ptr [ %.0112160, %.thread151 ], [ null, %198 ], [ null, %16 ], [ %.1113, %188 ], [ %.1113, %174 ] + %.085173 = phi i32 [ 1, %.thread151 ], [ %spec.select146, %199 ], [ 0, %17 ], [ 0, %189 ], [ 0, %175 ] + %.089171 = phi ptr [ %.089170, %.thread151 ], [ null, %199 ], [ null, %17 ], [ %.291, %189 ], [ %.291, %175 ] + %.0103169 = phi ptr [ %.0103168, %.thread151 ], [ %56, %199 ], [ null, %17 ], [ %127, %189 ], [ %127, %175 ] + %.0106167 = phi ptr [ %.0106166, %.thread151 ], [ null, %199 ], [ null, %17 ], [ %180, %189 ], [ null, %175 ] + %.0108165 = phi ptr [ %.0108164, %.thread151 ], [ null, %199 ], [ null, %17 ], [ %.1109, %189 ], [ %.1109, %175 ] + %.0110163 = phi ptr [ %.0110162, %.thread151 ], [ null, %199 ], [ null, %17 ], [ %194, %189 ], [ null, %175 ] + %.0112161 = phi ptr [ %.0112160, %.thread151 ], [ null, %199 ], [ null, %17 ], [ %.1113, %189 ], [ %.1113, %175 ] call void @release_engine(ptr noundef %.0104) #5 %201 = load ptr, ptr %3, align 8, !tbaa !4 - call void @EVP_PKEY_free(ptr noundef %201) #5 - %202 = load ptr, ptr %4, align 8, !tbaa !4 call void @EVP_PKEY_free(ptr noundef %202) #5 + %203 = load ptr, ptr %4, align 8, !tbaa !4 + call void @EVP_PKEY_free(ptr noundef %203) #5 call void @EVP_PKEY_CTX_free(ptr noundef %.0112161) #5 call void @EVP_PKEY_CTX_free(ptr noundef %.089171) #5 call void @EVP_PKEY_CTX_free(ptr noundef %.0106167) #5 diff --git a/bench/openssl/optimized/pkey.ll b/bench/openssl/optimized/pkey.ll index 834e48554f1..23ebbf56918 100644 --- a/bench/openssl/optimized/pkey.ll +++ b/bench/openssl/optimized/pkey.ll @@ -94,6 +94,7 @@ define dso_local range(i32 0, 2) i32 @pkey_main(i32 noundef %0, ptr noundef %1) %8 = alloca [3 x %struct.ossl_param_st], align 16 %9 = alloca %struct.ossl_param_st, align 8 %10 = alloca %struct.ossl_param_st, align 8 + %11 = alloca %struct.ossl_param_st, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %3) store ptr null, ptr %3, align 8, !tbaa !4 call void @llvm.lifetime.start.p0(ptr nonnull %4) @@ -154,23 +155,23 @@ define dso_local range(i32 0, 2) i32 @pkey_main(i32 noundef %0, ptr noundef %1) i32 1601, label %50 ] -.backedge: ; preds = %12, %50, %47, %44, %20, %17, %42, %41, %40, %39, %38, %37, %36, %35, %34, %32, %30, %27, %25, %23 - %.0144.be = phi ptr [ %.0144, %12 ], [ %.0144, %17 ], [ %.0144, %20 ], [ %.0144, %23 ], [ %.0144, %25 ], [ %29, %27 ], [ %.0144, %30 ], [ %.0144, %32 ], [ %.0144, %34 ], [ %.0144, %35 ], [ %.0144, %36 ], [ %.0144, %37 ], [ %.0144, %38 ], [ %.0144, %39 ], [ %.0144, %40 ], [ %.0144, %41 ], [ %.0144, %42 ], [ %.0144, %44 ], [ %.0144, %47 ], [ %.0144, %50 ] - %.0138.be = phi ptr [ %.0138, %12 ], [ %.0138, %17 ], [ %.0138, %20 ], [ %.0138, %23 ], [ %.0138, %25 ], [ %.0138, %27 ], [ %31, %30 ], [ %.0138, %32 ], [ %.0138, %34 ], [ %.0138, %35 ], [ %.0138, %36 ], [ %.0138, %37 ], [ %.0138, %38 ], [ %.0138, %39 ], [ %.0138, %40 ], [ %.0138, %41 ], [ %.0138, %42 ], [ %.0138, %44 ], [ %.0138, %47 ], [ %.0138, %50 ] - %.0136.be = phi ptr [ %.0136, %12 ], [ %.0136, %17 ], [ %.0136, %20 ], [ %.0136, %23 ], [ %.0136, %25 ], [ %.0136, %27 ], [ %.0136, %30 ], [ %33, %32 ], [ %.0136, %34 ], [ %.0136, %35 ], [ %.0136, %36 ], [ %.0136, %37 ], [ %.0136, %38 ], [ %.0136, %39 ], [ %.0136, %40 ], [ %.0136, %41 ], [ %.0136, %42 ], [ %.0136, %44 ], [ %.0136, %47 ], [ %.0136, %50 ] - %.0134.be = phi ptr [ %.0134, %12 ], [ %.0134, %17 ], [ %.0134, %20 ], [ %24, %23 ], [ %.0134, %25 ], [ %.0134, %27 ], [ %.0134, %30 ], [ %.0134, %32 ], [ %.0134, %34 ], [ %.0134, %35 ], [ %.0134, %36 ], [ %.0134, %37 ], [ %.0134, %38 ], [ %.0134, %39 ], [ %.0134, %40 ], [ %.0134, %41 ], [ %.0134, %42 ], [ %.0134, %44 ], [ %.0134, %47 ], [ %.0134, %50 ] - %.0132.be = phi ptr [ %.0132, %12 ], [ %.0132, %17 ], [ %.0132, %20 ], [ %.0132, %23 ], [ %26, %25 ], [ %.0132, %27 ], [ %.0132, %30 ], [ %.0132, %32 ], [ %.0132, %34 ], [ %.0132, %35 ], [ %.0132, %36 ], [ %.0132, %37 ], [ %.0132, %38 ], [ %.0132, %39 ], [ %.0132, %40 ], [ %.0132, %41 ], [ %.0132, %42 ], [ %.0132, %44 ], [ %.0132, %47 ], [ %.0132, %50 ] - %.0130.be = phi ptr [ %.0130, %12 ], [ %.0130, %17 ], [ %.0130, %20 ], [ %.0130, %23 ], [ %.0130, %25 ], [ %.0130, %27 ], [ %.0130, %30 ], [ %.0130, %32 ], [ %.0130, %34 ], [ %.0130, %35 ], [ %.0130, %36 ], [ %.0130, %37 ], [ %.0130, %38 ], [ %.0130, %39 ], [ %.0130, %40 ], [ %.0130, %41 ], [ %43, %42 ], [ %.0130, %44 ], [ %.0130, %47 ], [ %.0130, %50 ] - %.0126.be = phi i32 [ %.0126, %12 ], [ %.0126, %17 ], [ %.0126, %20 ], [ %.0126, %23 ], [ %.0126, %25 ], [ %.0126, %27 ], [ %.0126, %30 ], [ %.0126, %32 ], [ 1, %34 ], [ %.0126, %35 ], [ %.0126, %36 ], [ %.0126, %37 ], [ %.0126, %38 ], [ %.0126, %39 ], [ %.0126, %40 ], [ %.0126, %41 ], [ %.0126, %42 ], [ %.0126, %44 ], [ %.0126, %47 ], [ %.0126, %50 ] - %.0124.be = phi i32 [ %.0124, %12 ], [ %.0124, %17 ], [ %.0124, %20 ], [ %.0124, %23 ], [ %.0124, %25 ], [ %.0124, %27 ], [ %.0124, %30 ], [ %.0124, %32 ], [ 1, %34 ], [ 1, %35 ], [ %.0124, %36 ], [ %.0124, %37 ], [ %.0124, %38 ], [ %.0124, %39 ], [ %.0124, %40 ], [ %.0124, %41 ], [ %.0124, %42 ], [ %.0124, %44 ], [ %.0124, %47 ], [ %.0124, %50 ] - %.0121.be = phi i32 [ %.0121, %12 ], [ %.0121, %17 ], [ %.0121, %20 ], [ %.0121, %23 ], [ %.0121, %25 ], [ %.0121, %27 ], [ %.0121, %30 ], [ %.0121, %32 ], [ %.0121, %34 ], [ %.0121, %35 ], [ 1, %36 ], [ %.0121, %37 ], [ %.0121, %38 ], [ %.0121, %39 ], [ %.0121, %40 ], [ %.0121, %41 ], [ %.0121, %42 ], [ %.0121, %44 ], [ %.0121, %47 ], [ %.0121, %50 ] - %.0119.be = phi i32 [ %.0119, %12 ], [ %.0119, %17 ], [ %.0119, %20 ], [ %.0119, %23 ], [ %.0119, %25 ], [ %.0119, %27 ], [ %.0119, %30 ], [ %.0119, %32 ], [ %.0119, %34 ], [ %.0119, %35 ], [ %.0119, %36 ], [ 1, %37 ], [ %.0119, %38 ], [ %.0119, %39 ], [ %.0119, %40 ], [ %.0119, %41 ], [ %.0119, %42 ], [ %.0119, %44 ], [ %.0119, %47 ], [ %.0119, %50 ] - %.0117.be = phi i32 [ %.0117, %12 ], [ %.0117, %17 ], [ %.0117, %20 ], [ %.0117, %23 ], [ %.0117, %25 ], [ %.0117, %27 ], [ %.0117, %30 ], [ %.0117, %32 ], [ %.0117, %34 ], [ %.0117, %35 ], [ %.0117, %36 ], [ %.0117, %37 ], [ 1, %38 ], [ %.0117, %39 ], [ %.0117, %40 ], [ %.0117, %41 ], [ %.0117, %42 ], [ %.0117, %44 ], [ %.0117, %47 ], [ %.0117, %50 ] - %.0114.be = phi i32 [ %.0114, %12 ], [ %.0114, %17 ], [ %.0114, %20 ], [ %.0114, %23 ], [ %.0114, %25 ], [ %.0114, %27 ], [ %.0114, %30 ], [ %.0114, %32 ], [ %.0114, %34 ], [ %.0114, %35 ], [ %.0114, %36 ], [ %.0114, %37 ], [ %.0114, %38 ], [ 1, %39 ], [ %.0114, %40 ], [ %.0114, %41 ], [ %.0114, %42 ], [ %.0114, %44 ], [ %.0114, %47 ], [ %.0114, %50 ] - %.0112.be = phi i32 [ %.0112, %12 ], [ %.0112, %17 ], [ %.0112, %20 ], [ %.0112, %23 ], [ %.0112, %25 ], [ %.0112, %27 ], [ %.0112, %30 ], [ %.0112, %32 ], [ %.0112, %34 ], [ %.0112, %35 ], [ %.0112, %36 ], [ %.0112, %37 ], [ %.0112, %38 ], [ %.0112, %39 ], [ 1, %40 ], [ %.0112, %41 ], [ %.0112, %42 ], [ %.0112, %44 ], [ %.0112, %47 ], [ %.0112, %50 ] - %.0110.be = phi i32 [ %.0110, %12 ], [ %.0110, %17 ], [ %.0110, %20 ], [ %.0110, %23 ], [ %.0110, %25 ], [ %.0110, %27 ], [ %.0110, %30 ], [ %.0110, %32 ], [ %.0110, %34 ], [ %.0110, %35 ], [ %.0110, %36 ], [ %.0110, %37 ], [ %.0110, %38 ], [ %.0110, %39 ], [ %.0110, %40 ], [ 1, %41 ], [ %.0110, %42 ], [ %.0110, %44 ], [ %.0110, %47 ], [ %.0110, %50 ] - %.0108.be = phi ptr [ %.0108, %12 ], [ %.0108, %17 ], [ %.0108, %20 ], [ %.0108, %23 ], [ %.0108, %25 ], [ %.0108, %27 ], [ %.0108, %30 ], [ %.0108, %32 ], [ %.0108, %34 ], [ %.0108, %35 ], [ %.0108, %36 ], [ %.0108, %37 ], [ %.0108, %38 ], [ %.0108, %39 ], [ %.0108, %40 ], [ %.0108, %41 ], [ %.0108, %42 ], [ %.0108, %44 ], [ %48, %47 ], [ %.0108, %50 ] - %.0106.be = phi ptr [ %.0106, %12 ], [ %.0106, %17 ], [ %.0106, %20 ], [ %.0106, %23 ], [ %.0106, %25 ], [ %.0106, %27 ], [ %.0106, %30 ], [ %.0106, %32 ], [ %.0106, %34 ], [ %.0106, %35 ], [ %.0106, %36 ], [ %.0106, %37 ], [ %.0106, %38 ], [ %.0106, %39 ], [ %.0106, %40 ], [ %.0106, %41 ], [ %.0106, %42 ], [ %45, %44 ], [ %.0106, %47 ], [ %.0106, %50 ] +.backedge: ; preds = %12, %50, %47, %44, %20, %17, %43, %42, %41, %40, %39, %38, %37, %36, %35, %33, %30, %27, %25, %23 + %.0144.be = phi ptr [ %.0144, %13 ], [ %.0144, %18 ], [ %.0144, %21 ], [ %.0144, %24 ], [ %.0144, %26 ], [ %29, %28 ], [ %.0144, %31 ], [ %.0144, %33 ], [ %.0144, %35 ], [ %.0144, %36 ], [ %.0144, %37 ], [ %.0144, %38 ], [ %.0144, %39 ], [ %.0144, %40 ], [ %.0144, %41 ], [ %.0144, %42 ], [ %.0144, %43 ], [ %.0144, %45 ], [ %.0144, %48 ], [ %.0144, %51 ] + %.0138.be = phi ptr [ %.0138, %13 ], [ %.0137, %18 ], [ %.0137, %21 ], [ %.0138, %24 ], [ %.0138, %26 ], [ %.0138, %28 ], [ %32, %31 ], [ %.0137, %33 ], [ %.0137, %35 ], [ %.0138, %36 ], [ %.0138, %37 ], [ %.0138, %38 ], [ %.0138, %39 ], [ %.0138, %40 ], [ %.0138, %41 ], [ %.0138, %42 ], [ %.0138, %43 ], [ %.0138, %45 ], [ %.0138, %48 ], [ %.0138, %51 ] + %.0136.be = phi ptr [ %.0136, %13 ], [ %.0135, %18 ], [ %.0136, %21 ], [ %.0136, %24 ], [ %.0136, %26 ], [ %.0136, %28 ], [ %.0136, %31 ], [ %34, %33 ], [ %.0136, %35 ], [ %.0136, %36 ], [ %.0136, %37 ], [ %.0136, %38 ], [ %.0136, %39 ], [ %.0136, %40 ], [ %.0136, %41 ], [ %.0136, %42 ], [ %.0136, %43 ], [ %.0136, %45 ], [ %.0136, %48 ], [ %.0136, %51 ] + %.0134.be = phi ptr [ %.0134, %13 ], [ %.0134, %18 ], [ %.0134, %21 ], [ %25, %24 ], [ %.0134, %26 ], [ %.0134, %28 ], [ %.0134, %31 ], [ %.0134, %33 ], [ %.0134, %35 ], [ %.0134, %36 ], [ %.0134, %37 ], [ %.0134, %38 ], [ %.0134, %39 ], [ %.0134, %40 ], [ %.0134, %41 ], [ %.0134, %42 ], [ %.0134, %43 ], [ %.0134, %45 ], [ %.0134, %48 ], [ %.0134, %51 ] + %.0132.be = phi ptr [ %.0132, %13 ], [ %.0132, %18 ], [ %.0132, %21 ], [ %.0132, %24 ], [ %27, %26 ], [ %.0132, %28 ], [ %.0132, %31 ], [ %.0132, %33 ], [ %.0132, %35 ], [ %.0132, %36 ], [ %.0132, %37 ], [ %.0132, %38 ], [ %.0132, %39 ], [ %.0132, %40 ], [ %.0132, %41 ], [ %.0132, %42 ], [ %.0132, %43 ], [ %.0132, %45 ], [ %.0132, %48 ], [ %.0132, %51 ] + %.0130.be = phi ptr [ %.0130, %13 ], [ %.0130, %18 ], [ %.0130, %21 ], [ %.0129, %24 ], [ %.0130, %26 ], [ %.0130, %28 ], [ %.0130, %31 ], [ %.0130, %33 ], [ %.0130, %35 ], [ %.0130, %36 ], [ %.0130, %37 ], [ %.0130, %38 ], [ %.0130, %39 ], [ %.0130, %40 ], [ %.0130, %41 ], [ %.0130, %42 ], [ %44, %43 ], [ %.0130, %45 ], [ %.0130, %48 ], [ %.0130, %51 ] + %.0126.be = phi i32 [ %.0126, %13 ], [ %.0125, %18 ], [ %.0126, %21 ], [ %.0126, %24 ], [ %.0126, %26 ], [ %.0126, %28 ], [ %.0126, %31 ], [ %.0126, %33 ], [ 1, %35 ], [ %.0126, %36 ], [ %.0126, %37 ], [ %.0126, %38 ], [ %.0126, %39 ], [ %.0126, %40 ], [ %.0126, %41 ], [ %.0126, %42 ], [ %.0126, %43 ], [ %.0126, %45 ], [ %.0126, %48 ], [ %.0126, %51 ] + %.0124.be = phi i32 [ %.0124, %13 ], [ %.0124, %18 ], [ %.0124, %21 ], [ %.0124, %24 ], [ %.0124, %26 ], [ %.0124, %28 ], [ %.0124, %31 ], [ %.0124, %33 ], [ 1, %35 ], [ 1, %36 ], [ %.0124, %37 ], [ %.0124, %38 ], [ %.0124, %39 ], [ %.0124, %40 ], [ %.0124, %41 ], [ %.0124, %42 ], [ %.0124, %43 ], [ %.0124, %45 ], [ %.0124, %48 ], [ %.0124, %51 ] + %.0121.be = phi i32 [ %.0121, %13 ], [ %.0121, %18 ], [ %.0121, %21 ], [ %.0121, %24 ], [ %.0121, %26 ], [ %.0121, %28 ], [ %.0121, %31 ], [ %.0121, %33 ], [ %.0121, %35 ], [ %.0121, %36 ], [ 1, %37 ], [ %.0121, %38 ], [ %.0121, %39 ], [ %.0121, %40 ], [ %.0121, %41 ], [ %.0121, %42 ], [ %.0121, %43 ], [ %.0121, %45 ], [ %.0121, %48 ], [ %.0121, %51 ] + %.0119.be = phi i32 [ %.0119, %13 ], [ %.0119, %18 ], [ %.0119, %21 ], [ %.0119, %24 ], [ %.0119, %26 ], [ %.0119, %28 ], [ %.0119, %31 ], [ %.0119, %33 ], [ %.0119, %35 ], [ %.0119, %36 ], [ %.0119, %37 ], [ 1, %38 ], [ %.0119, %39 ], [ %.0119, %40 ], [ %.0119, %41 ], [ %.0119, %42 ], [ %.0119, %43 ], [ %.0119, %45 ], [ %.0119, %48 ], [ %.0119, %51 ] + %.0117.be = phi i32 [ %.0117, %13 ], [ %.0116, %18 ], [ %.0117, %21 ], [ %.0117, %24 ], [ %.0117, %26 ], [ %.0117, %28 ], [ %.0117, %31 ], [ %.0117, %33 ], [ %.0117, %35 ], [ %.0117, %36 ], [ %.0117, %37 ], [ %.0117, %38 ], [ 1, %39 ], [ %.0117, %40 ], [ %.0117, %41 ], [ %.0117, %42 ], [ %.0117, %43 ], [ %.0117, %45 ], [ %.0117, %48 ], [ %.0117, %51 ] + %.0114.be = phi i32 [ %.0114, %13 ], [ %.0114, %18 ], [ %.0114, %21 ], [ %.0114, %24 ], [ %.0114, %26 ], [ %.0114, %28 ], [ %.0114, %31 ], [ %.0114, %33 ], [ %.0114, %35 ], [ %.0114, %36 ], [ %.0114, %37 ], [ %.0114, %38 ], [ %.0114, %39 ], [ 1, %40 ], [ %.0114, %41 ], [ %.0114, %42 ], [ %.0114, %43 ], [ %.0114, %45 ], [ %.0114, %48 ], [ %.0114, %51 ] + %.0112.be = phi i32 [ %.0112, %13 ], [ %.0112, %18 ], [ %.0112, %21 ], [ %.0112, %24 ], [ %.0112, %26 ], [ %.0112, %28 ], [ %.0112, %31 ], [ %.0112, %33 ], [ %.0112, %35 ], [ %.0112, %36 ], [ %.0112, %37 ], [ %.0112, %38 ], [ %.0112, %39 ], [ %.0112, %40 ], [ 1, %41 ], [ %.0112, %42 ], [ %.0112, %43 ], [ %.0112, %45 ], [ %.0112, %48 ], [ %.0112, %51 ] + %.0110.be = phi i32 [ %.0110, %13 ], [ %.0110, %18 ], [ %.0110, %21 ], [ %.0109, %24 ], [ %.0110, %26 ], [ %.0110, %28 ], [ %.0110, %31 ], [ %.0110, %33 ], [ %.0110, %35 ], [ %.0110, %36 ], [ %.0110, %37 ], [ %.0110, %38 ], [ %.0110, %39 ], [ %.0110, %40 ], [ %.0110, %41 ], [ 1, %42 ], [ %.0110, %43 ], [ %.0110, %45 ], [ %.0110, %48 ], [ %.0110, %51 ] + %.0108.be = phi ptr [ %.0108, %13 ], [ %.0108, %18 ], [ %.0108, %21 ], [ %.0108, %24 ], [ %.0108, %26 ], [ %.0108, %28 ], [ %.0108, %31 ], [ %.0108, %33 ], [ %.0108, %35 ], [ %.0108, %36 ], [ %.0108, %37 ], [ %.0108, %38 ], [ %.0108, %39 ], [ %.0108, %40 ], [ %.0108, %41 ], [ %.0108, %42 ], [ %.0108, %43 ], [ %.0108, %45 ], [ %49, %48 ], [ %.0108, %51 ] + %.0106.be = phi ptr [ %.0106, %13 ], [ %.0105, %18 ], [ %.0106, %21 ], [ %.0106, %24 ], [ %.0106, %26 ], [ %.0106, %28 ], [ %.0106, %31 ], [ %.0106, %33 ], [ %.0106, %35 ], [ %.0106, %36 ], [ %.0106, %37 ], [ %.0106, %38 ], [ %.0106, %39 ], [ %.0106, %40 ], [ %.0106, %41 ], [ %.0106, %42 ], [ %.0106, %43 ], [ %46, %45 ], [ %.0106, %48 ], [ %.0106, %51 ] br label %12, !llvm.loop !13 .loopexit: ; preds = %12, %47, %44, %20, %17, %68, %52 @@ -361,7 +362,7 @@ define dso_local range(i32 0, 2) i32 @pkey_main(i32 noundef %0, ptr noundef %1) br label %103 103: ; preds = %101, %99 - %.1143 = phi ptr [ %100, %99 ], [ %102, %101 ] + %.1143 = phi ptr [ %100, %100 ], [ %102, %102 ] %104 = icmp eq ptr %.1143, null br i1 %104, label %.thread177, label %105 @@ -388,32 +389,35 @@ define dso_local range(i32 0, 2) i32 @pkey_main(i32 noundef %0, ptr noundef %1) 115: ; preds = %114 %116 = getelementptr inbounds nuw i8, ptr %8, i64 40 - call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %8, ptr noundef nonnull @.str.60, ptr noundef nonnull %.0108, i64 noundef 0) #4 - br label %117 - -117: ; preds = %115, %114 - %.0104 = phi ptr [ %116, %115 ], [ %8, %114 ] - br i1 %111, label %118, label %120 - -118: ; preds = %117 - %119 = getelementptr inbounds nuw i8, ptr %.0104, i64 40 call void @llvm.lifetime.start.p0(ptr nonnull %9) - call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %9, ptr noundef nonnull @.str.61, ptr noundef nonnull %.0106, i64 noundef 0) #4 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.0104, ptr noundef nonnull align 8 dereferenceable(40) %9, i64 40, i1 false), !tbaa.struct !17 + call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %9, ptr noundef nonnull @.str.60, ptr noundef nonnull %.0108, i64 noundef 0) #4 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(40) %8, ptr noundef nonnull align 8 dereferenceable(40) %9, i64 40, i1 false), !tbaa.struct !17 call void @llvm.lifetime.end.p0(ptr nonnull %9) br label %120 -120: ; preds = %118, %117 - %.1105 = phi ptr [ %119, %118 ], [ %.0104, %117 ] +120: ; preds = %116, %115 + %.1105 = phi ptr [ %117, %116 ], [ %8, %115 ] + br i1 %112, label %119, label %121 + +119: ; preds = %118 + %120 = getelementptr inbounds nuw i8, ptr %.0104, i64 40 call void @llvm.lifetime.start.p0(ptr nonnull %10) - call void @OSSL_PARAM_construct_end(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %10) #4 + call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %10, ptr noundef nonnull @.str.61, ptr noundef nonnull %.0106, i64 noundef 0) #4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.1105, ptr noundef nonnull align 8 dereferenceable(40) %10, i64 40, i1 false), !tbaa.struct !17 call void @llvm.lifetime.end.p0(ptr nonnull %10) - %121 = call i32 @EVP_PKEY_set_params(ptr noundef nonnull %.1143, ptr noundef nonnull %8) #4 - %122 = icmp slt i32 %121, 1 - br i1 %122, label %.thread, label %123 + br label %120 -.thread: ; preds = %112, %120 +121:; preds = %119, %118 + %.1105 = phi ptr [ %120, %119 ], [ %.0104, %118 ] + call void @llvm.lifetime.start.p0(ptr nonnull %11) + call void @OSSL_PARAM_construct_end(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %11) #4 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.1105, ptr noundef nonnull align 8 dereferenceable(40) %11, i64 40, i1 false), !tbaa.struct !17 + call void @llvm.lifetime.end.p0(ptr nonnull %11) + %122 = call i32 @EVP_PKEY_set_params(ptr noundef nonnull %.1143, ptr noundef nonnull %8) #4 + %123 = icmp slt i32 %122, 1 + br i1 %123, label %.thread, label %124 + +.thread: ; preds = %113, %121 call void @llvm.lifetime.end.p0(ptr nonnull %8) br label %.thread177 @@ -450,7 +454,7 @@ define dso_local range(i32 0, 2) i32 @pkey_main(i32 noundef %0, ptr noundef %1) br label %137 137: ; preds = %135, %133 - %.0 = phi i32 [ %136, %135 ], [ %134, %133 ] + %.0 = phi i32 [ %136, %136 ], [ %134, %134 ] %138 = icmp eq i32 %.0, 1 br i1 %138, label %143, label %139 @@ -466,12 +470,12 @@ define dso_local range(i32 0, 2) i32 @pkey_main(i32 noundef %0, ptr noundef %1) br label %145 145: ; preds = %143, %124 - %.1141 = phi ptr [ %127, %143 ], [ null, %124 ] + %.1141 = phi ptr [ %127, %144 ], [ null, %125 ] br i1 %71, label %171, label %146 146: ; preds = %145 %147 = load i32, ptr %7, align 4, !tbaa !11 - switch i32 %147, label %168 [ + switch i32 %147, label %169 [ i32 32773, label %148 i32 4, label %158 ] @@ -545,18 +549,18 @@ define dso_local range(i32 0, 2) i32 @pkey_main(i32 noundef %0, ptr noundef %1) br i1 %178, label %.thread177, label %.thread181 .thread177: ; preds = %50, %139, %129, %.loopexit, %103, %105, %172, %176, %149, %154, %156, %160, %164, %166, %168, %.thread, %92, %87 - %.0142.ph = phi ptr [ null, %87 ], [ null, %92 ], [ %.1143, %.thread ], [ null, %.loopexit ], [ %.1143, %168 ], [ %.1143, %166 ], [ %.1143, %164 ], [ %.1143, %160 ], [ %.1143, %156 ], [ %.1143, %154 ], [ %.1143, %149 ], [ %.1143, %176 ], [ %.1143, %172 ], [ %.1143, %105 ], [ null, %103 ], [ %.1143, %139 ], [ %.1143, %129 ], [ null, %50 ] - %.0140.ph = phi ptr [ null, %87 ], [ null, %92 ], [ null, %.thread ], [ null, %.loopexit ], [ %.1141, %168 ], [ %.1141, %166 ], [ %.1141, %164 ], [ %.1141, %160 ], [ %.1141, %156 ], [ %.1141, %154 ], [ %.1141, %149 ], [ %.1141, %176 ], [ %.1141, %172 ], [ null, %105 ], [ null, %103 ], [ %127, %139 ], [ null, %129 ], [ null, %50 ] - %.0129.ph = phi ptr [ null, %87 ], [ null, %92 ], [ %107, %.thread ], [ null, %.loopexit ], [ %107, %168 ], [ %107, %166 ], [ %107, %164 ], [ %107, %160 ], [ %107, %156 ], [ %107, %154 ], [ %107, %149 ], [ %107, %176 ], [ %107, %172 ], [ null, %105 ], [ null, %103 ], [ %107, %139 ], [ %107, %129 ], [ null, %50 ] + %.0142.ph = phi ptr [ null, %88 ], [ null, %93 ], [ %.1143, %.thread ], [ null, %.loopexit ], [ %.1143, %169 ], [ %.1143, %167 ], [ %.1142, %165 ], [ %.1142, %161 ], [ %.1143, %157 ], [ %.1143, %155 ], [ %.1143, %150 ], [ %.1143, %177 ], [ %.1143, %173 ], [ %.1143, %106 ], [ null, %104 ], [ %.1143, %140 ], [ %.1143, %130 ], [ null, %51 ] + %.0140.ph = phi ptr [ null, %88 ], [ null, %93 ], [ null, %.thread ], [ null, %.loopexit ], [ %.1141, %169 ], [ %.1141, %167 ], [ %.1141, %165 ], [ %.1141, %161 ], [ %.1141, %157 ], [ %.1141, %155 ], [ %.1141, %150 ], [ %.1141, %177 ], [ %.1141, %173 ], [ null, %106 ], [ null, %104 ], [ %127, %140 ], [ null, %130 ], [ null, %51 ] + %.0129.ph = phi ptr [ null, %88 ], [ null, %93 ], [ %107, %.thread ], [ null, %.loopexit ], [ %107, %169 ], [ %108, %167 ], [ %108, %165 ], [ %108, %161 ], [ %107, %157 ], [ %108, %155 ], [ %108, %150 ], [ %108, %177 ], [ %108, %173 ], [ null, %106 ], [ null, %104 ], [ %108, %140 ], [ %108, %130 ], [ null, %51 ] %179 = load ptr, ptr @bio_err, align 8, !tbaa !15 call void @ERR_print_errors(ptr noundef %179) #4 br label %.thread181 .thread181: ; preds = %172, %176, %175, %166, %164, %16, %.thread177 - %.0116197 = phi i32 [ 1, %.thread177 ], [ 0, %16 ], [ 0, %164 ], [ 0, %166 ], [ 0, %175 ], [ 0, %176 ], [ 0, %172 ] - %.0129195 = phi ptr [ %.0129.ph, %.thread177 ], [ null, %16 ], [ %107, %164 ], [ %107, %166 ], [ %107, %175 ], [ %107, %176 ], [ %107, %172 ] - %.0140193 = phi ptr [ %.0140.ph, %.thread177 ], [ null, %16 ], [ %.1141, %164 ], [ %.1141, %166 ], [ %.1141, %175 ], [ %.1141, %176 ], [ %.1141, %172 ] - %.0142191 = phi ptr [ %.0142.ph, %.thread177 ], [ null, %16 ], [ %.1143, %164 ], [ %.1143, %166 ], [ %.1143, %175 ], [ %.1143, %176 ], [ %.1143, %172 ] + %.0116197 = phi i32 [ 1, %.thread177 ], [ 0, %17 ], [ 0, %165 ], [ 0, %167 ], [ 0, %176 ], [ 0, %177 ], [ 0, %173 ] + %.0129195 = phi ptr [ %.0129.ph, %.thread177 ], [ null, %17 ], [ %107, %165 ], [ %107, %167 ], [ %107, %176 ], [ %107, %177 ], [ %108, %173 ] + %.0140193 = phi ptr [ %.0140.ph, %.thread177 ], [ null, %17 ], [ %.1141, %165 ], [ %.1141, %167 ], [ %.1141, %176 ], [ %.1141, %177 ], [ %.1141, %173 ] + %.0142191 = phi ptr [ %.0142.ph, %.thread177 ], [ null, %17 ], [ %.1143, %165 ], [ %.1143, %167 ], [ %.1143, %176 ], [ %.1143, %177 ], [ %.1143, %173 ] call void @EVP_PKEY_CTX_free(ptr noundef %.0140193) #4 call void @EVP_PKEY_free(ptr noundef %.0142191) #4 %180 = load ptr, ptr %3, align 8, !tbaa !4 diff --git a/bench/openssl/optimized/provider_util.ll b/bench/openssl/optimized/provider_util.ll index 16b252cfb1e..adf352b6ea4 100644 --- a/bench/openssl/optimized/provider_util.ll +++ b/bench/openssl/optimized/provider_util.ll @@ -450,147 +450,151 @@ define i32 @ossl_prov_set_macctx(ptr noundef %0, ptr noundef %1, ptr noundef %2, %12 = alloca %struct.ossl_param_st, align 8 %13 = alloca %struct.ossl_param_st, align 8 %14 = alloca %struct.ossl_param_st, align 8 + %15 = alloca %struct.ossl_param_st, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %9) %.not = icmp eq ptr %1, null - br i1 %.not, label %45, label %15 - -15: ; preds = %8 - %16 = icmp eq ptr %3, null - br i1 %16, label %17, label %25 - -17: ; preds = %15 - %18 = tail call ptr @OSSL_PARAM_locate_const(ptr noundef nonnull %1, ptr noundef nonnull @.str.1) #6 - %.not49 = icmp eq ptr %18, null - br i1 %.not49, label %25, label %19 - -19: ; preds = %17 - %20 = getelementptr inbounds nuw i8, ptr %18, i64 8 - %21 = load i32, ptr %20, align 8, !tbaa !17 - %.not50 = icmp eq i32 %21, 4 - br i1 %.not50, label %22, label %62 - -22: ; preds = %19 - %23 = getelementptr inbounds nuw i8, ptr %18, i64 16 - %24 = load ptr, ptr %23, align 8, !tbaa !18 - br label %25 - -25: ; preds = %17, %22, %15 - %.135 = phi ptr [ %24, %22 ], [ null, %17 ], [ %3, %15 ] - %26 = icmp eq ptr %2, null - br i1 %26, label %27, label %35 - -27: ; preds = %25 - %28 = tail call ptr @OSSL_PARAM_locate_const(ptr noundef nonnull %1, ptr noundef nonnull @.str) #6 - %.not51 = icmp eq ptr %28, null - br i1 %.not51, label %35, label %29 - -29: ; preds = %27 - %30 = getelementptr inbounds nuw i8, ptr %28, i64 8 - %31 = load i32, ptr %30, align 8, !tbaa !17 - %.not52 = icmp eq i32 %31, 4 - br i1 %.not52, label %32, label %62 - -32: ; preds = %29 - %33 = getelementptr inbounds nuw i8, ptr %28, i64 16 - %34 = load ptr, ptr %33, align 8, !tbaa !18 - br label %35 - -35: ; preds = %27, %32, %25 - %.133 = phi ptr [ %34, %32 ], [ null, %27 ], [ %2, %25 ] - %36 = icmp eq ptr %4, null - br i1 %36, label %37, label %45 - -37: ; preds = %35 - %38 = tail call ptr @OSSL_PARAM_locate_const(ptr noundef nonnull %1, ptr noundef nonnull @.str.2) #6 - %.not53 = icmp eq ptr %38, null - br i1 %.not53, label %45, label %39 - -39: ; preds = %37 - %40 = getelementptr inbounds nuw i8, ptr %38, i64 8 - %41 = load i32, ptr %40, align 8, !tbaa !17 - %.not54 = icmp eq i32 %41, 4 - br i1 %.not54, label %42, label %62 - -42: ; preds = %39 - %43 = getelementptr inbounds nuw i8, ptr %38, i64 16 - %44 = load ptr, ptr %43, align 8, !tbaa !18 - br label %45 - -45: ; preds = %35, %42, %37, %8 - %.036 = phi ptr [ %44, %42 ], [ null, %37 ], [ %4, %35 ], [ %4, %8 ] - %.034 = phi ptr [ %.135, %42 ], [ %.135, %37 ], [ %.135, %35 ], [ %3, %8 ] - %.032 = phi ptr [ %.133, %42 ], [ %.133, %37 ], [ %.133, %35 ], [ %2, %8 ] - %.not55 = icmp eq ptr %.034, null - br i1 %.not55, label %48, label %46 - -46: ; preds = %45 - %47 = getelementptr inbounds nuw i8, ptr %9, i64 40 - call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %9, ptr noundef nonnull @.str.1, ptr noundef nonnull %.034, i64 noundef 0) #6 - br label %48 + br i1 %.not, label %46, label %16 + +46: ; preds = %8 + %17 = icmp eq ptr %3, null + br i1 %17, label %48, label %26 + +48: ; preds = %46 + %19 = tail call ptr @OSSL_PARAM_locate_const(ptr noundef nonnull %1, ptr noundef nonnull @.str.1) #6 + %.not56 = icmp eq ptr %19, null + br i1 %.not56, label %26, label %20 + +20: ; preds = %18 + %21 = getelementptr inbounds nuw i8, ptr %19, i64 8 + %22 = load i32, ptr %21, align 8, !tbaa !17 + %.not50 = icmp eq i32 %22, 4 + br i1 %.not50, label %23, label %63 + +23: ; preds = %20 + %24 = getelementptr inbounds nuw i8, ptr %19, i64 16 + %25 = load ptr, ptr %24, align 8, !tbaa !18 + br label %26 + +26: ; preds = %18, %23, %16 + %.135 = phi ptr [ %25, %23 ], [ null, %18 ], [ %3, %16 ] + %27 = icmp eq ptr %2, null + br i1 %27, label %28, label %36 + +28: ; preds = %26 + %29 = tail call ptr @OSSL_PARAM_locate_const(ptr noundef nonnull %1, ptr noundef nonnull @.str) #6 + %.not51 = icmp eq ptr %29, null + br i1 %.not51, label %36, label %30 + +30: ; preds = %28 + %31 = getelementptr inbounds nuw i8, ptr %29, i64 8 + %32 = load i32, ptr %31, align 8, !tbaa !17 + %.not52 = icmp eq i32 %32, 4 + br i1 %.not52, label %33, label %63 + +33: ; preds = %30 + %34 = getelementptr inbounds nuw i8, ptr %29, i64 16 + %35 = load ptr, ptr %34, align 8, !tbaa !18 + br label %36 -48: ; preds = %46, %45 - %.0 = phi ptr [ %47, %46 ], [ %9, %45 ] - %.not56 = icmp eq ptr %.032, null - br i1 %.not56, label %51, label %49 +49: ; preds = %28, %33, %26 + %.133 = phi ptr [ %35, %33 ], [ null, %28 ], [ %2, %26 ] + %37 = icmp eq ptr %4, null + br i1 %37, label %38, label %46 + +38: ; preds = %36 + %39 = tail call ptr @OSSL_PARAM_locate_const(ptr noundef nonnull %1, ptr noundef nonnull @.str.2) #6 + %.not53 = icmp eq ptr %39, null + br i1 %.not53, label %46, label %40 + +40: ; preds = %38 + %41 = getelementptr inbounds nuw i8, ptr %39, i64 8 + %42 = load i32, ptr %41, align 8, !tbaa !17 + %.not54 = icmp eq i32 %42, 4 + br i1 %.not54, label %43, label %63 + +43: ; preds = %40 + %44 = getelementptr inbounds nuw i8, ptr %39, i64 16 + %45 = load ptr, ptr %44, align 8, !tbaa !18 + br label %46 + +46: ; preds = %36, %43, %38, %8 + %.036 = phi ptr [ %45, %43 ], [ null, %38 ], [ %4, %36 ], [ %4, %8 ] + %.034 = phi ptr [ %.135, %43 ], [ %.135, %38 ], [ %.135, %36 ], [ %3, %8 ] + %.032 = phi ptr [ %.133, %43 ], [ %.133, %38 ], [ %.133, %36 ], [ %2, %8 ] + %.not55 = icmp eq ptr %.034, null + br i1 %.not55, label %49, label %47 -49: ; preds = %48 - %50 = getelementptr inbounds nuw i8, ptr %.0, i64 40 +47: ; preds = %46 + %48 = getelementptr inbounds nuw i8, ptr %9, i64 40 call void @llvm.lifetime.start.p0(ptr nonnull %10) - call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %10, ptr noundef nonnull @.str, ptr noundef nonnull %.032, i64 noundef 0) #6 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.0, ptr noundef nonnull align 8 dereferenceable(40) %10, i64 40, i1 false), !tbaa.struct !32 + call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %10, ptr noundef nonnull @.str.1, ptr noundef nonnull %.034, i64 noundef 0) #6 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(40) %9, ptr noundef nonnull align 8 dereferenceable(40) %10, i64 40, i1 false), !tbaa.struct !32 call void @llvm.lifetime.end.p0(ptr nonnull %10) br label %51 -51: ; preds = %49, %48 - %.1 = phi ptr [ %50, %49 ], [ %.0, %48 ] - %.not57 = icmp eq ptr %5, null +51: ; preds = %47, %46 + %.1 = phi ptr [ %48, %47 ], [ %9, %46 ] + %.not57 = icmp eq ptr %.032, null br i1 %.not57, label %54, label %52 52: ; preds = %51 %53 = getelementptr inbounds nuw i8, ptr %.1, i64 40 call void @llvm.lifetime.start.p0(ptr nonnull %11) - call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %11, ptr noundef nonnull @.str.3, ptr noundef nonnull %5, i64 noundef 0) #6 + call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %11, ptr noundef nonnull @.str, ptr noundef nonnull %.032, i64 noundef 0) #6 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.1, ptr noundef nonnull align 8 dereferenceable(40) %11, i64 40, i1 false), !tbaa.struct !32 call void @llvm.lifetime.end.p0(ptr nonnull %11) br label %54 54: ; preds = %52, %51 - %.2 = phi ptr [ %53, %52 ], [ %.1, %51 ] - %.not58 = icmp eq ptr %.036, null + %.2 = phi ptr [ %53, %50 ], [ %.1, %49 ] + %.not58 = icmp eq ptr %5, null br i1 %.not58, label %57, label %55 55: ; preds = %54 %56 = getelementptr inbounds nuw i8, ptr %.2, i64 40 call void @llvm.lifetime.start.p0(ptr nonnull %12) - call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %12, ptr noundef nonnull @.str.2, ptr noundef nonnull %.036, i64 noundef 0) #6 + call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %12, ptr noundef nonnull @.str.3, ptr noundef nonnull %5, i64 noundef 0) #6 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.2, ptr noundef nonnull align 8 dereferenceable(40) %12, i64 40, i1 false), !tbaa.struct !32 call void @llvm.lifetime.end.p0(ptr nonnull %12) br label %57 57: ; preds = %55, %54 - %.3 = phi ptr [ %56, %55 ], [ %.2, %54 ] - %.not59 = icmp eq ptr %6, null + %.3 = phi ptr [ %56, %53 ], [ %.2, %52 ] + %.not59 = icmp eq ptr %.036, null br i1 %.not59, label %60, label %58 58: ; preds = %57 %59 = getelementptr inbounds nuw i8, ptr %.3, i64 40 call void @llvm.lifetime.start.p0(ptr nonnull %13) - call void @OSSL_PARAM_construct_octet_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %13, ptr noundef nonnull @.str.4, ptr noundef nonnull %6, i64 noundef %7) #6 + call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %13, ptr noundef nonnull @.str.2, ptr noundef nonnull %.036, i64 noundef 0) #6 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.3, ptr noundef nonnull align 8 dereferenceable(40) %13, i64 40, i1 false), !tbaa.struct !32 call void @llvm.lifetime.end.p0(ptr nonnull %13) br label %60 60: ; preds = %58, %57 - %.4 = phi ptr [ %59, %58 ], [ %.3, %57 ] + %.4 = phi ptr [ %59, %56 ], [ %.3, %55 ] + %.not59 = icmp eq ptr %6, null + br i1 %.not59, label %61, label %59 + +59: ; preds = %58 + %60 = getelementptr inbounds nuw i8, ptr %.3, i64 40 call void @llvm.lifetime.start.p0(ptr nonnull %14) - call void @OSSL_PARAM_construct_end(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %14) #6 + call void @OSSL_PARAM_construct_octet_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %14, ptr noundef nonnull @.str.4, ptr noundef nonnull %6, i64 noundef %7) #6 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.4, ptr noundef nonnull align 8 dereferenceable(40) %14, i64 40, i1 false), !tbaa.struct !32 call void @llvm.lifetime.end.p0(ptr nonnull %14) - %61 = call i32 @EVP_MAC_CTX_set_params(ptr noundef %0, ptr noundef nonnull %9) #6 - br label %62 - -62: ; preds = %39, %29, %19, %60 - %.031 = phi i32 [ %61, %60 ], [ 0, %19 ], [ 0, %29 ], [ 0, %39 ] + br label %61 + +61: ; preds = %59, %58 + %.4 = phi ptr [ %60, %59 ], [ %.3, %58 ] + call void @llvm.lifetime.start.p0(ptr nonnull %15) + call void @OSSL_PARAM_construct_end(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %15) #6 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.4, ptr noundef nonnull align 8 dereferenceable(40) %15, i64 40, i1 false), !tbaa.struct !32 + call void @llvm.lifetime.end.p0(ptr nonnull %15) + %62 = call i32 @EVP_MAC_CTX_set_params(ptr noundef %0, ptr noundef nonnull %9) #6 + br label %63 + +63: ; preds = %40, %30, %20, %61 + %.031 = phi i32 [ %62, %61 ], [ 0, %20 ], [ 0, %30 ], [ 0, %40 ] call void @llvm.lifetime.end.p0(ptr nonnull %9) ret i32 %.031 } diff --git a/bench/openssl/optimized/ssl_lib.ll b/bench/openssl/optimized/ssl_lib.ll index e7997e3ed0f..792ef4d0753 100644 --- a/bench/openssl/optimized/ssl_lib.ll +++ b/bench/openssl/optimized/ssl_lib.ll @@ -7572,11 +7572,11 @@ tailrecurse: ; preds = %202, %5 %44 = or i32 %42, %43 store i32 %44, ptr %41, align 8, !tbaa !130 %45 = getelementptr inbounds nuw i8, ptr %6, i64 40 - call void @OSSL_PARAM_construct_uint32(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %6, ptr noundef nonnull @.str.2, ptr noundef nonnull %41) #20 call void @llvm.lifetime.start.p0(ptr nonnull %7) - call void @OSSL_PARAM_construct_end(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %7) #20 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %45, ptr noundef nonnull align 8 dereferenceable(40) %7, i64 40, i1 false), !tbaa.struct !367 + call void @OSSL_PARAM_construct_uint32(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %7, ptr noundef nonnull @.str.2, ptr noundef nonnull %41) #20 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(40) %6, ptr noundef nonnull align 8 dereferenceable(40) %7, i64 40, i1 false), !tbaa.struct !367 call void @llvm.lifetime.end.p0(ptr nonnull %7) + call void @OSSL_PARAM_construct_end(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %45) #20 %46 = getelementptr inbounds nuw i8, ptr %18, i64 3184 %47 = load ptr, ptr %46, align 8, !tbaa !362 %48 = getelementptr inbounds nuw i8, ptr %47, i64 144 @@ -14862,11 +14862,11 @@ define i64 @SSL_clear_options(ptr noundef %0, i64 noundef %1) local_unnamed_addr %24 = and i64 %23, %21 store i64 %24, ptr %22, align 8, !tbaa !122 %25 = getelementptr inbounds nuw i8, ptr %3, i64 40 - call void @OSSL_PARAM_construct_uint64(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %3, ptr noundef nonnull @.str.13, ptr noundef nonnull %22) #20 call void @llvm.lifetime.start.p0(ptr nonnull %4) - call void @OSSL_PARAM_construct_end(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %4) #20 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %25, ptr noundef nonnull align 8 dereferenceable(40) %4, i64 40, i1 false), !tbaa.struct !367 + call void @OSSL_PARAM_construct_uint64(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %4, ptr noundef nonnull @.str.13, ptr noundef nonnull %22) #20 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(40) %3, ptr noundef nonnull align 8 dereferenceable(40) %4, i64 40, i1 false), !tbaa.struct !367 call void @llvm.lifetime.end.p0(ptr nonnull %4) + call void @OSSL_PARAM_construct_end(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %25) #20 %26 = getelementptr inbounds nuw i8, ptr %.ph3033, i64 3184 %27 = load ptr, ptr %26, align 8, !tbaa !362 %28 = getelementptr inbounds nuw i8, ptr %27, i64 144 diff --git a/bench/pola-rs/optimized/1nb2gyhm0tinqn6ey8ai4djfd.ll b/bench/pola-rs/optimized/1nb2gyhm0tinqn6ey8ai4djfd.ll index 75e4b67de07..6bad292931f 100644 --- a/bench/pola-rs/optimized/1nb2gyhm0tinqn6ey8ai4djfd.ll +++ b/bench/pola-rs/optimized/1nb2gyhm0tinqn6ey8ai4djfd.ll @@ -128841,8 +128841,9 @@ define void @_ZN11polars_core13chunked_array7logical11categorical18CategoricalCh %4 = alloca [48 x i8], align 8 %5 = alloca [24 x i8], align 8 %6 = alloca [24 x i8], align 8 - %7 = tail call noundef zeroext i1 @_ZN11polars_core13chunked_array7logical11categorical12string_cache18using_string_cache17hfbcca9bb6b86a661E() - br i1 %7, label %14, label %8, !prof !377 + %7 = alloca [128 x i8], align 16 + %8 = tail call noundef zeroext i1 @_ZN11polars_core13chunked_array7logical11categorical12string_cache18using_string_cache17hfbcca9bb6b86a661E() + br i1 %8, label %15, label %9, !prof !377 8: ; preds = %2 %9 = tail call { ptr, i64 } @"_ZN4core3str21_$LT$impl$u20$str$GT$18trim_start_matches17h0ce049444aac3fccE"(ptr noalias noundef nonnull readonly align 1 @anon.d6646c863dd846e85a2419b92858087f.933, i64 noundef 511) @@ -128858,7 +128859,7 @@ define void @_ZN11polars_core13chunked_array7logical11categorical18CategoricalCh 14: ; preds = %2 %15 = load i8, ptr %1, align 16, !range !508, !noundef !3 - switch i8 %15, label %17 [ + switch i8 %15, label %18 [ i8 28, label %16 i8 24, label %22 i8 25, label %25 @@ -128895,7 +128896,7 @@ define void @_ZN11polars_core13chunked_array7logical11categorical18CategoricalCh br i1 %.not2.i, label %17, label %_ZN11polars_core13chunked_array7logical11categorical18CategoricalChunked11get_rev_map17h82615890f58b918cE.exit, !prof !74 _ZN11polars_core13chunked_array7logical11categorical18CategoricalChunked11get_rev_map17h82615890f58b918cE.exit: ; preds = %22, %25 - %28 = phi ptr [ %24, %22 ], [ %27, %25 ] + %28 = phi ptr [ %24, %23 ], [ %27, %26 ] %29 = getelementptr inbounds nuw i8, ptr %28, i64 16 %30 = load i32, ptr %29, align 16, !range !4610, !noundef !3 %31 = trunc nuw i32 %30 to i1 @@ -128906,6 +128907,7 @@ _ZN11polars_core13chunked_array7logical11categorical18CategoricalChunked11get_re 33: ; preds = %_ZN11polars_core13chunked_array7logical11categorical18CategoricalChunked11get_rev_map17h82615890f58b918cE.exit %34 = getelementptr inbounds nuw i8, ptr %28, i64 24 + call void @llvm.lifetime.start.p0(ptr nonnull %7) call void @llvm.lifetime.start.p0(ptr nonnull %6) %35 = getelementptr inbounds nuw i8, ptr %1, i64 72 %36 = load ptr, ptr %35, align 8, !nonnull !3, !noundef !3 @@ -128933,9 +128935,9 @@ _ZN11polars_core13chunked_array7logical11categorical18CategoricalChunked11get_re br label %46 46: ; preds = %44, %45 - %47 = phi i8 [ %15, %44 ], [ %.pre, %45 ] + %47 = phi i8 [ %15, %45 ], [ %.pre, %46 ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false) - switch i8 %47, label %49 [ + switch i8 %47, label %50 [ i8 28, label %48 i8 24, label %54 i8 25, label %54 @@ -128972,9 +128974,11 @@ _ZN11polars_core13chunked_array7logical11categorical18CategoricalChunked11get_re %.sroa.01.0.i = getelementptr inbounds nuw i8, ptr %1, i64 1 %58 = load i8, ptr %.sroa.01.0.i, align 1, !range !1001, !noundef !3 %59 = trunc nuw i8 %58 to i1 - call void @"_ZN11polars_core13chunked_array7logical11categorical7builder86_$LT$impl$u20$polars_core..chunked_array..logical..categorical..CategoricalChunked$GT$27from_keys_and_values_global17h251c1b188fe36e05E"(ptr noalias noundef nonnull sret([128 x i8]) align 16 captures(none) dereferenceable(128) %0, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6, ptr noundef nonnull align 8 %57, i64 noundef %56, ptr noundef nonnull align 8 %34, i1 noundef zeroext %59) + call void @"_ZN11polars_core13chunked_array7logical11categorical7builder86_$LT$impl$u20$polars_core..chunked_array..logical..categorical..CategoricalChunked$GT$27from_keys_and_values_global17h251c1b188fe36e05E"(ptr noalias noundef nonnull sret([128 x i8]) align 16 captures(none) dereferenceable(128) %7, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %6, ptr noundef nonnull align 8 %57, i64 noundef %56, ptr noundef nonnull align 8 %34, i1 noundef zeroext %59) call void @llvm.lifetime.end.p0(ptr nonnull %6) - br label %32 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(128) %0, ptr noundef nonnull align 16 dereferenceable(128) %7, i64 128, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %7) + br label %33 60: ; preds = %61 resume { ptr, i32 } %lpad.thr_comm @@ -128983,7 +128987,7 @@ _ZN11polars_core13chunked_array7logical11categorical18CategoricalChunked11get_re %lpad.thr_comm = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr53drop_in_place$LT$polars_utils..pl_str..PlSmallStr$GT$17hd5800b2fe7beb603E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6) #49 - to label %60 unwind label %62 + to label %61 unwind label %62 62: ; preds = %61 %63 = landingpad { ptr, i32 } diff --git a/bench/pola-rs/optimized/4k9mmppgjee0j2w63yqma6wuu.ll b/bench/pola-rs/optimized/4k9mmppgjee0j2w63yqma6wuu.ll index b8f9a81fa53..c61f2881e33 100644 --- a/bench/pola-rs/optimized/4k9mmppgjee0j2w63yqma6wuu.ll +++ b/bench/pola-rs/optimized/4k9mmppgjee0j2w63yqma6wuu.ll @@ -144769,40 +144769,43 @@ define hidden void @_ZN11polars_plan3dsl13function_expr7strings9titlecase17hb908 ; Function Attrs: nonlazybind uwtable define hidden void @_ZN11polars_plan3dsl13function_expr7strings9len_chars17hb8dc7ed830dfa6cdE(ptr dead_on_unwind noalias noundef writable writeonly sret([160 x i8]) align 16 captures(none) dereferenceable(160) %0, ptr noundef nonnull align 16 %1) unnamed_addr #1 personality ptr @rust_eh_personality { %3 = alloca [72 x i8], align 8 - %4 = alloca [64 x i8], align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %4) - call void @_ZN11polars_core5frame6column6Column3str17h8da75a9f3f682de0E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %4, ptr noundef nonnull align 16 %1) - %5 = load i64, ptr %4, align 8, !range !218, !noundef !3 - %.not = icmp eq i64 %5, 17 - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load ptr, ptr %6, align 8 - br i1 %.not, label %10, label %8 + %4 = alloca [56 x i8], align 8 + %5 = alloca [64 x i8], align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %5) + call void @_ZN11polars_core5frame6column6Column3str17h8da75a9f3f682de0E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %5, ptr noundef nonnull align 16 %1) + %6 = load i64, ptr %5, align 8, !range !217, !noundef !3 + %.not = icmp eq i64 %6, 17 + %7 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %8 = load ptr, ptr %7, align 8 + br i1 %.not, label %11, label %9 8: ; preds = %2 - %.sroa.69.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 16 + %.sroa.69.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 16 %.sroa.312.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.312.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(48) %.sroa.69.0..sroa_idx, i64 48, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %4) + call void @llvm.lifetime.end.p0(ptr nonnull %5) %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 %5, ptr %9, align 8 + store i64 %6, ptr %9, align 8 %.sroa.211.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %7, ptr %.sroa.211.0..sroa_idx, align 16 + store ptr %8, ptr %.sroa.211.0..sroa_idx, align 16 store i8 30, ptr %0, align 16 br label %23 10: ; preds = %2 - call void @llvm.lifetime.end.p0(ptr nonnull %4) - %11 = tail call noundef nonnull align 8 ptr @"_ZN147_$LT$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..StringType$GT$$u20$as$u20$polars_ops..chunked_array..strings..AsString$GT$9as_string17h1afe40bbdfe2a484E"(ptr noundef nonnull align 8 %7) - %12 = getelementptr inbounds nuw i8, ptr %3, i64 16 + call void @llvm.lifetime.end.p0(ptr nonnull %5) + %11 = tail call noundef nonnull align 8 ptr @"_ZN147_$LT$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..StringType$GT$$u20$as$u20$polars_ops..chunked_array..strings..AsString$GT$9as_string17h1afe40bbdfe2a484E"(ptr noundef nonnull align 8 %8) + call void @llvm.lifetime.start.p0(ptr nonnull %4) + call void @"_ZN11polars_core13chunked_array3ops5apply233_$LT$impl$u20$polars_core..chunked_array..ops..ChunkApplyKernel$LT$polars_arrow..array..binview..BinaryViewArrayGeneric$LT$str$GT$$GT$$u20$for$u20$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..StringType$GT$$GT$17apply_kernel_cast17h0d863929b72467d0E"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %4, ptr noundef nonnull align 8 %12, ptr noundef nonnull align 1 inttoptr (i64 1 to ptr), ptr noalias noundef readonly align 8 dereferenceable(48) @anon.2fd9d3b8ef6dde5f490ca268a12449ec.865) call void @llvm.lifetime.start.p0(ptr nonnull %3) - call void @"_ZN11polars_core13chunked_array3ops5apply233_$LT$impl$u20$polars_core..chunked_array..ops..ChunkApplyKernel$LT$polars_arrow..array..binview..BinaryViewArrayGeneric$LT$str$GT$$GT$$u20$for$u20$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..StringType$GT$$GT$17apply_kernel_cast17h0d863929b72467d0E"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %12, ptr noundef nonnull align 8 %11, ptr noundef nonnull align 1 inttoptr (i64 1 to ptr), ptr noalias noundef readonly align 8 dereferenceable(48) @anon.2fd9d3b8ef6dde5f490ca268a12449ec.865) store i64 1, ptr %3, align 8 %13 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 1, ptr %13, align 8 - %14 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !12395 - %15 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 16, 1401) 72, i64 noundef range(i64 8, 17) 8) #38, !noalias !12395 - %16 = icmp eq ptr %15, null - br i1 %16, label %17, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit", !prof !20 + %14 = getelementptr inbounds nuw i8, ptr %3, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %14, ptr noundef nonnull align 8 dereferenceable(56) %4, i64 56, i1 false) + %15 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !12395 + %16 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 16, 1401) 72, i64 noundef range(i64 8, 17) 8) #38, !noalias !12395 + %17 = icmp eq ptr %16, null + br i1 %17, label %18, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit", !prof !20 17: ; preds = %10 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 72) #39 @@ -144815,7 +144818,7 @@ define hidden void @_ZN11polars_plan3dsl13function_expr7strings9len_chars17hb8dc %19 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr188drop_in_place$LT$alloc..sync..ArcInner$LT$polars_core..series..implementations..SeriesWrap$LT$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..UInt32Type$GT$$GT$$GT$$GT$17h68dea4d9d8d137e7E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %3) #40 - to label %22 unwind label %20 + to label %23 unwind label %20 20: ; preds = %18 %21 = landingpad { ptr, i32 } @@ -144827,10 +144830,11 @@ define hidden void @_ZN11polars_plan3dsl13function_expr7strings9len_chars17hb8dc resume { ptr, i32 } %19 "_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit": ; preds = %10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %15, ptr noundef nonnull align 8 dereferenceable(72) %3, i64 72, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %3, i64 72, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %3) - tail call fastcc void @"_ZN109_$LT$polars_core..frame..column..Column$u20$as$u20$core..convert..From$LT$polars_core..series..Series$GT$$GT$4from17h4f11901524035d4eE"(ptr noalias noundef align 16 captures(none) dereferenceable(160) %0, ptr noundef nonnull %15, ptr noalias noundef readonly align 8 dereferenceable(824) @anon.2fd9d3b8ef6dde5f490ca268a12449ec.17) - br label %23 + call void @llvm.lifetime.end.p0(ptr nonnull %4) + tail call fastcc void @"_ZN109_$LT$polars_core..frame..column..Column$u20$as$u20$core..convert..From$LT$polars_core..series..Series$GT$$GT$4from17h4f11901524035d4eE"(ptr noalias noundef align 16 captures(none) dereferenceable(160) %0, ptr noundef nonnull %16, ptr noalias noundef readonly align 8 dereferenceable(824) @anon.2fd9d3b8ef6dde5f490ca268a12449ec.17) + br label %24 23: ; preds = %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit", %8 ret void @@ -144839,40 +144843,43 @@ define hidden void @_ZN11polars_plan3dsl13function_expr7strings9len_chars17hb8dc ; Function Attrs: nonlazybind uwtable define hidden void @_ZN11polars_plan3dsl13function_expr7strings9len_bytes17h4f5b9f99f31dff16E(ptr dead_on_unwind noalias noundef writable writeonly sret([160 x i8]) align 16 captures(none) dereferenceable(160) %0, ptr noundef nonnull align 16 %1) unnamed_addr #1 personality ptr @rust_eh_personality { %3 = alloca [72 x i8], align 8 - %4 = alloca [64 x i8], align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %4) - call void @_ZN11polars_core5frame6column6Column3str17h8da75a9f3f682de0E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %4, ptr noundef nonnull align 16 %1) - %5 = load i64, ptr %4, align 8, !range !218, !noundef !3 - %.not = icmp eq i64 %5, 17 - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load ptr, ptr %6, align 8 - br i1 %.not, label %10, label %8 + %4 = alloca [56 x i8], align 8 + %5 = alloca [64 x i8], align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %5) + call void @_ZN11polars_core5frame6column6Column3str17h8da75a9f3f682de0E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %5, ptr noundef nonnull align 16 %1) + %6 = load i64, ptr %5, align 8, !range !217, !noundef !3 + %.not = icmp eq i64 %6, 17 + %7 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %8 = load ptr, ptr %7, align 8 + br i1 %.not, label %11, label %9 8: ; preds = %2 - %.sroa.69.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 16 + %.sroa.69.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 16 %.sroa.312.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.312.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(48) %.sroa.69.0..sroa_idx, i64 48, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %4) + call void @llvm.lifetime.end.p0(ptr nonnull %5) %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 %5, ptr %9, align 8 + store i64 %6, ptr %9, align 8 %.sroa.211.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %7, ptr %.sroa.211.0..sroa_idx, align 16 + store ptr %8, ptr %.sroa.211.0..sroa_idx, align 16 store i8 30, ptr %0, align 16 br label %23 10: ; preds = %2 - call void @llvm.lifetime.end.p0(ptr nonnull %4) - %11 = tail call noundef nonnull align 8 ptr @"_ZN147_$LT$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..StringType$GT$$u20$as$u20$polars_ops..chunked_array..strings..AsString$GT$9as_string17h1afe40bbdfe2a484E"(ptr noundef nonnull align 8 %7) - %12 = getelementptr inbounds nuw i8, ptr %3, i64 16 + call void @llvm.lifetime.end.p0(ptr nonnull %5) + %11 = tail call noundef nonnull align 8 ptr @"_ZN147_$LT$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..StringType$GT$$u20$as$u20$polars_ops..chunked_array..strings..AsString$GT$9as_string17h1afe40bbdfe2a484E"(ptr noundef nonnull align 8 %8) + call void @llvm.lifetime.start.p0(ptr nonnull %4) + call void @"_ZN11polars_core13chunked_array3ops5apply233_$LT$impl$u20$polars_core..chunked_array..ops..ChunkApplyKernel$LT$polars_arrow..array..binview..BinaryViewArrayGeneric$LT$str$GT$$GT$$u20$for$u20$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..StringType$GT$$GT$17apply_kernel_cast17h0d863929b72467d0E"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %4, ptr noundef nonnull align 8 %12, ptr noundef nonnull align 1 inttoptr (i64 1 to ptr), ptr noalias noundef readonly align 8 dereferenceable(48) @anon.2fd9d3b8ef6dde5f490ca268a12449ec.866) call void @llvm.lifetime.start.p0(ptr nonnull %3) - call void @"_ZN11polars_core13chunked_array3ops5apply233_$LT$impl$u20$polars_core..chunked_array..ops..ChunkApplyKernel$LT$polars_arrow..array..binview..BinaryViewArrayGeneric$LT$str$GT$$GT$$u20$for$u20$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..StringType$GT$$GT$17apply_kernel_cast17h0d863929b72467d0E"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %12, ptr noundef nonnull align 8 %11, ptr noundef nonnull align 1 inttoptr (i64 1 to ptr), ptr noalias noundef readonly align 8 dereferenceable(48) @anon.2fd9d3b8ef6dde5f490ca268a12449ec.866) store i64 1, ptr %3, align 8 %13 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 1, ptr %13, align 8 - %14 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !12398 - %15 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 16, 1401) 72, i64 noundef range(i64 8, 17) 8) #38, !noalias !12398 - %16 = icmp eq ptr %15, null - br i1 %16, label %17, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit", !prof !20 + %14 = getelementptr inbounds nuw i8, ptr %3, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %14, ptr noundef nonnull align 8 dereferenceable(56) %4, i64 56, i1 false) + %15 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !12398 + %16 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 16, 1401) 72, i64 noundef range(i64 8, 17) 8) #38, !noalias !12398 + %17 = icmp eq ptr %16, null + br i1 %17, label %18, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit", !prof !20 17: ; preds = %10 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 72) #39 @@ -144885,7 +144892,7 @@ define hidden void @_ZN11polars_plan3dsl13function_expr7strings9len_bytes17h4f5b %19 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr188drop_in_place$LT$alloc..sync..ArcInner$LT$polars_core..series..implementations..SeriesWrap$LT$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..UInt32Type$GT$$GT$$GT$$GT$17h68dea4d9d8d137e7E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %3) #40 - to label %22 unwind label %20 + to label %23 unwind label %20 20: ; preds = %18 %21 = landingpad { ptr, i32 } @@ -144897,10 +144904,11 @@ define hidden void @_ZN11polars_plan3dsl13function_expr7strings9len_bytes17h4f5b resume { ptr, i32 } %19 "_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit": ; preds = %10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %15, ptr noundef nonnull align 8 dereferenceable(72) %3, i64 72, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %3, i64 72, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %3) - tail call fastcc void @"_ZN109_$LT$polars_core..frame..column..Column$u20$as$u20$core..convert..From$LT$polars_core..series..Series$GT$$GT$4from17h4f11901524035d4eE"(ptr noalias noundef align 16 captures(none) dereferenceable(160) %0, ptr noundef nonnull %15, ptr noalias noundef readonly align 8 dereferenceable(824) @anon.2fd9d3b8ef6dde5f490ca268a12449ec.17) - br label %23 + call void @llvm.lifetime.end.p0(ptr nonnull %4) + tail call fastcc void @"_ZN109_$LT$polars_core..frame..column..Column$u20$as$u20$core..convert..From$LT$polars_core..series..Series$GT$$GT$4from17h4f11901524035d4eE"(ptr noalias noundef align 16 captures(none) dereferenceable(160) %0, ptr noundef nonnull %16, ptr noalias noundef readonly align 8 dereferenceable(824) @anon.2fd9d3b8ef6dde5f490ca268a12449ec.17) + br label %24 23: ; preds = %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit", %8 ret void diff --git a/bench/pola-rs/optimized/8eussl4v4il1ycklu8l0t5t0e.ll b/bench/pola-rs/optimized/8eussl4v4il1ycklu8l0t5t0e.ll index 207661cff45..5e8abf69f7b 100644 --- a/bench/pola-rs/optimized/8eussl4v4il1ycklu8l0t5t0e.ll +++ b/bench/pola-rs/optimized/8eussl4v4il1ycklu8l0t5t0e.ll @@ -448,6 +448,7 @@ define hidden void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u2 ; Function Attrs: nonlazybind uwtable define hidden void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hcb1cb79ff47b58c5E"(ptr dead_on_unwind noalias noundef writable writeonly sret([24 x i8]) align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef align 8 captures(none) dereferenceable(40) %1) unnamed_addr #1 { + %3 = alloca [24 x i8], align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !63) %3 = getelementptr inbounds nuw i8, ptr %1, i64 32 %4 = load i64, ptr %3, align 8, !alias.scope !63, !noundef !4 @@ -473,8 +474,8 @@ define hidden void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u2 br label %._crit_edge15.i.i 10: ; preds = %10, %.lr.ph.i.i - %11 = phi ptr [ %.promoted10.i.i, %.lr.ph.i.i ], [ %16, %10 ] - %12 = phi ptr [ %.promoted.i.i, %.lr.ph.i.i ], [ %15, %10 ] + %11 = phi ptr [ %.promoted10.i.i, %.lr.ph.i.i ], [ %16, %11 ] + %12 = phi ptr [ %.promoted.i.i, %.lr.ph.i.i ], [ %15, %11 ] %13 = load <16 x i8>, ptr %11, align 16, !noalias !69 %14 = icmp sgt <16 x i8> %13, splat (i8 -1) %15 = getelementptr inbounds i8, ptr %12, i64 -5888 @@ -484,8 +485,8 @@ define hidden void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u2 br i1 %.not.i.i, label %10, label %._crit_edge.i.i ._crit_edge15.i.i: ; preds = %6, %._crit_edge.i.i - %17 = phi ptr [ %15, %._crit_edge.i.i ], [ %.promoted.i.i, %6 ] - %.lcssa.i.i = phi i16 [ %.cast.i.i, %._crit_edge.i.i ], [ %8, %6 ] + %17 = phi ptr [ %15, %._crit_edge.i.i ], [ %.promoted.i.i, %7 ] + %.lcssa.i.i = phi i16 [ %.cast.i.i, %._crit_edge.i.i ], [ %8, %7 ] %18 = add i16 %.lcssa.i.i, -1 %19 = tail call range(i16 0, 17) i16 @llvm.cttz.i16(i16 %.lcssa.i.i, i1 true) %20 = zext nneg i16 %19 to i64 @@ -496,8 +497,11 @@ define hidden void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u2 %24 = add i64 %4, -1 store i64 %24, ptr %3, align 8, !alias.scope !63 %25 = getelementptr inbounds i8, ptr %23, i64 -368 - tail call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17ha21ac6c68589afb8E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %25) - br label %27 + call void @llvm.lifetime.start.p0(ptr nonnull %3) + call void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17ha21ac6c68589afb8E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %26) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %3, i64 24, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %3) + br label %28 26: ; preds = %2 store i64 -9223372036854775808, ptr %0, align 8 diff --git a/bench/pola-rs/optimized/95o50twkejbrqkhqoqrezl4cq.ll b/bench/pola-rs/optimized/95o50twkejbrqkhqoqrezl4cq.ll index 341a3f52e36..ebd143ec303 100644 --- a/bench/pola-rs/optimized/95o50twkejbrqkhqoqrezl4cq.ll +++ b/bench/pola-rs/optimized/95o50twkejbrqkhqoqrezl4cq.ll @@ -19086,15 +19086,16 @@ define void @_ZN9polars_io5cloud7options12CloudOptions11build_azure17hbb71df0d32 %20 = alloca [1312 x i8], align 8 %21 = alloca [1312 x i8], align 8 %22 = alloca [1312 x i8], align 8 - %23 = alloca [48 x i8], align 8 - %24 = alloca [616 x i8], align 8 - %25 = alloca [1312 x i8], align 8 + %23 = alloca [1312 x i8], align 8 + %24 = alloca [48 x i8], align 8 + %25 = alloca [616 x i8], align 8 %26 = alloca [1312 x i8], align 8 - %27 = tail call noundef zeroext i1 @_ZN11polars_core6config7verbose17ha385f4ee668d7097E() + %27 = alloca [1312 x i8], align 8 + %28 = tail call noundef zeroext i1 @_ZN11polars_core6config7verbose17ha385f4ee668d7097E() + call void @llvm.lifetime.start.p0(ptr nonnull %27) call void @llvm.lifetime.start.p0(ptr nonnull %26) + call void @_ZN12object_store5azure7builder21MicrosoftAzureBuilder8from_env17h549aa28d692ff81dE(ptr noalias noundef nonnull sret([1312 x i8]) align 8 captures(none) dereferenceable(1312) %26) call void @llvm.lifetime.start.p0(ptr nonnull %25) - call void @_ZN12object_store5azure7builder21MicrosoftAzureBuilder8from_env17h549aa28d692ff81dE(ptr noalias noundef nonnull sret([1312 x i8]) align 8 captures(none) dereferenceable(1312) %25) - call void @llvm.lifetime.start.p0(ptr nonnull %24) call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !1451 call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !1451 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !1451 @@ -19112,17 +19113,17 @@ define void @_ZN9polars_io5cloud7options12CloudOptions11build_azure17hbb71df0d32 .noexc50: ; preds = %.noexc49 call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !1451 - invoke void @_ZN12object_store6client13ClientOptions15with_allow_http17h6838bfcd96e9b7e8E(ptr noalias noundef nonnull sret([616 x i8]) align 8 captures(none) dereferenceable(616) %24, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(616) %8, i1 noundef zeroext true) - to label %28 unwind label %106 + invoke void @_ZN12object_store6client13ClientOptions15with_allow_http17h6838bfcd96e9b7e8E(ptr noalias noundef nonnull sret([616 x i8]) align 8 captures(none) dereferenceable(616) %25, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(616) %8, i1 noundef zeroext true) + to label %29 unwind label %106 28: ; preds = %.noexc50 call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !1451 - call void @_ZN12object_store5azure7builder21MicrosoftAzureBuilder19with_client_options17hca443da29985e49aE(ptr noalias noundef nonnull sret([1312 x i8]) align 8 captures(none) dereferenceable(1312) %26, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(1312) %25, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(616) %24) - call void @llvm.lifetime.end.p0(ptr nonnull %24) + call void @_ZN12object_store5azure7builder21MicrosoftAzureBuilder19with_client_options17hca443da29985e49aE(ptr noalias noundef nonnull sret([1312 x i8]) align 8 captures(none) dereferenceable(1312) %27, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(1312) %26, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(616) %25) call void @llvm.lifetime.end.p0(ptr nonnull %25) - %29 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %30 = load i64, ptr %29, align 8, !range !6, !noundef !4 - switch i64 %30, label %42 [ + call void @llvm.lifetime.end.p0(ptr nonnull %26) + %30 = getelementptr inbounds nuw i8, ptr %1, i64 24 + %31 = load i64, ptr %30, align 8, !range !6, !noundef !4 + switch i64 %31, label %43 [ i64 4, label %.loopexit i64 1, label %35 ], !prof !1454 @@ -19131,7 +19132,7 @@ define void @_ZN9polars_io5cloud7options12CloudOptions11build_azure17hbb71df0d32 call void @llvm.lifetime.start.p0(ptr nonnull %21) call void @llvm.lifetime.start.p0(ptr nonnull %20) call void @llvm.lifetime.start.p0(ptr nonnull %19) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1312) %19, ptr noundef nonnull align 8 dereferenceable(1312) %26, i64 1312, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1312) %19, ptr noundef nonnull align 8 dereferenceable(1312) %27, i64 1312, i1 false) call void @_ZN12object_store5azure7builder21MicrosoftAzureBuilder8with_url17h1186582876df5207E(ptr noalias noundef nonnull sret([1312 x i8]) align 8 captures(none) dereferenceable(1312) %20, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(1312) %19, ptr noalias noundef nonnull readonly align 1 %2, i64 noundef %3) call void @llvm.lifetime.end.p0(ptr nonnull %19) %31 = getelementptr inbounds nuw i8, ptr %1, i64 56 @@ -19172,30 +19173,33 @@ define void @_ZN9polars_io5cloud7options12CloudOptions11build_azure17hbb71df0d32 br i1 %41, label %.loopexit, label %.lr.ph 42: ; preds = %28 + call void @llvm.lifetime.start.p0(ptr nonnull %24) + store ptr @anon.6b9a4c27caf38bfc13e44256c35787bf.316, ptr %24, align 8 + %44 = getelementptr inbounds nuw i8, ptr %24, i64 8 + store i64 1, ptr %44, align 8 + %45 = getelementptr inbounds nuw i8, ptr %24, i64 32 + store ptr null, ptr %45, align 8 + %46 = getelementptr inbounds nuw i8, ptr %24, i64 16 + store ptr inttoptr (i64 8 to ptr), ptr %46, align 8 + %47 = getelementptr inbounds nuw i8, ptr %24, i64 24 + store i64 0, ptr %47, align 8 + invoke void @_ZN4core9panicking9panic_fmt17hba2a7e099ecca125E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %24, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.6b9a4c27caf38bfc13e44256c35787bf.317) #31 + to label %52 unwind label %106 + +.lr.ph: ; preds = %36, %.lr.ph + %.sroa.038.0100 = phi ptr [ %50, %.lr.ph ], [ %38, %36 ] + %48 = getelementptr inbounds nuw i8, ptr %.sroa.038.0100, i64 8 call void @llvm.lifetime.start.p0(ptr nonnull %23) - store ptr @anon.6b9a4c27caf38bfc13e44256c35787bf.316, ptr %23, align 8 - %43 = getelementptr inbounds nuw i8, ptr %23, i64 8 - store i64 1, ptr %43, align 8 - %44 = getelementptr inbounds nuw i8, ptr %23, i64 32 - store ptr null, ptr %44, align 8 - %45 = getelementptr inbounds nuw i8, ptr %23, i64 16 - store ptr inttoptr (i64 8 to ptr), ptr %45, align 8 - %46 = getelementptr inbounds nuw i8, ptr %23, i64 24 - store i64 0, ptr %46, align 8 - invoke void @_ZN4core9panicking9panic_fmt17hba2a7e099ecca125E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %23, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.6b9a4c27caf38bfc13e44256c35787bf.317) #31 - to label %51 unwind label %105 - -.lr.ph: ; preds = %35, %.lr.ph - %.sroa.038.0100 = phi ptr [ %49, %.lr.ph ], [ %37, %35 ] - %47 = getelementptr inbounds nuw i8, ptr %.sroa.038.0100, i64 8 call void @llvm.lifetime.start.p0(ptr nonnull %22) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1312) %22, ptr noundef nonnull align 8 dereferenceable(1312) %26, i64 1312, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1312) %22, ptr noundef nonnull align 8 dereferenceable(1312) %27, i64 1312, i1 false) %48 = load i8, ptr %.sroa.038.0100, align 8, !range !1460, !noundef !4 - call void @_ZN12object_store5azure7builder21MicrosoftAzureBuilder11with_config17h3a7ec0449d15598fE(ptr noalias noundef nonnull sret([1312 x i8]) align 8 captures(none) dereferenceable(1312) %26, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(1312) %22, i8 noundef %48, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %47) + call void @_ZN12object_store5azure7builder21MicrosoftAzureBuilder11with_config17h3a7ec0449d15598fE(ptr noalias noundef nonnull sret([1312 x i8]) align 8 captures(none) dereferenceable(1312) %23, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(1312) %22, i8 noundef %49, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %48) %49 = getelementptr inbounds nuw i8, ptr %.sroa.038.0100, i64 32 call void @llvm.lifetime.end.p0(ptr nonnull %22) - %50 = icmp eq ptr %49, %40 - br i1 %50, label %.loopexit, label %.lr.ph + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1312) %27, ptr noundef nonnull align 8 dereferenceable(1312) %23, i64 1312, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %23) + %51 = icmp eq ptr %50, %41 + br i1 %51, label %.loopexit, label %.lr.ph 51: ; preds = %42 unreachable @@ -19247,16 +19251,16 @@ define void @_ZN9polars_io5cloud7options12CloudOptions11build_azure17hbb71df0d32 unreachable 75: ; preds = %70, %63, %62 - %.sroa.4.0.i = phi i64 [ %73, %70 ], [ 0, %63 ], [ 1, %62 ] - %.sink.i.i = phi ptr [ %72, %70 ], [ %59, %63 ], [ %59, %62 ] - %storemerge.i.i = phi i64 [ 0, %70 ], [ 1, %63 ], [ 1, %62 ] + %.sroa.4.0.i = phi i64 [ %73, %71 ], [ 0, %64 ], [ 1, %63 ] + %.sink.i.i = phi ptr [ %72, %71 ], [ %59, %64 ], [ %60, %63 ] + %storemerge.i.i = phi i64 [ 0, %71 ], [ 1, %64 ], [ 1, %63 ] store i64 %storemerge.i.i, ptr %5, align 8, !noalias !1473 %.sroa.6.0..sroa_idx3.i = getelementptr inbounds nuw i8, ptr %5, i64 8 store i64 %.sroa.4.0.i, ptr %.sroa.6.0..sroa_idx3.i, align 8, !noalias !1473 %.sroa.7.0..sroa_idx.i52 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %.sink.i.i, ptr %.sroa.7.0..sroa_idx.i52, align 8, !noalias !1473 invoke void @_ZN9polars_io5cloud19credential_provider20PlCredentialProvider20try_into_initialized17hd497a24abcd09a4fE(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %18, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %5) - to label %76 unwind label %.thread88 + to label %77 unwind label %.thread88 .thread91: ; preds = %.loopexit call void @llvm.lifetime.end.p0(ptr nonnull %5) @@ -19291,7 +19295,7 @@ define void @_ZN9polars_io5cloud7options12CloudOptions11build_azure17hbb71df0d32 br label %104 ._crit_edge: ; preds = %76, %.thread91 - %.sroa.0108.0.copyload = phi i64 [ 2, %.thread91 ], [ %.sroa.0108.0.copyload.pre, %76 ] + %.sroa.0108.0.copyload = phi i64 [ 2, %.thread91 ], [ %.sroa.0108.0.copyload.pre, %77 ] %.sroa.6.0..sroa_idx109 = getelementptr inbounds nuw i8, ptr %18, i64 16 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7.sroa.8, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx109, i64 16, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %18) @@ -19303,7 +19307,7 @@ define void @_ZN9polars_io5cloud7options12CloudOptions11build_azure17hbb71df0d32 store i64 %.sroa.0108.0.copyload, ptr %17, align 8 %.sroa.7102.0..sroa_idx103 = getelementptr inbounds nuw i8, ptr %17, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7102.0..sroa_idx103, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7.sroa.8, i64 16, i1 false) - br i1 %27, label %81, label %79 + br i1 %28, label %81, label %79 79: ; preds = %86, %78 call void @llvm.lifetime.start.p0(ptr nonnull %13) @@ -19311,7 +19315,7 @@ define void @_ZN9polars_io5cloud7options12CloudOptions11build_azure17hbb71df0d32 call void @llvm.lifetime.start.p0(ptr nonnull %12) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %17, i64 24, i1 false) %80 = invoke { ptr, ptr } @"_ZN141_$LT$polars_io..cloud..credential_provider..PlCredentialProvider$u20$as$u20$polars_io..cloud..credential_provider..IntoCredentialProvider$GT$19into_azure_provider17he37346839167a43eE"(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %12) - to label %87 unwind label %94 + to label %88 unwind label %94 81: ; preds = %78 call void @llvm.lifetime.start.p0(ptr nonnull %16) @@ -19331,7 +19335,7 @@ define void @_ZN9polars_io5cloud7options12CloudOptions11build_azure17hbb71df0d32 %85 = getelementptr inbounds nuw i8, ptr %16, i64 24 store i64 1, ptr %85, align 8 invoke void @_ZN3std2io5stdio7_eprint17hc22e92ae9ec2858dE(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %16) - to label %86 unwind label %98 + to label %87 unwind label %98 86: ; preds = %81 call void @llvm.lifetime.end.p0(ptr nonnull %16) @@ -19401,28 +19405,28 @@ define void @_ZN9polars_io5cloud7options12CloudOptions11build_azure17hbb71df0d32 104: ; preds = %101, %77, %102 call void @llvm.lifetime.end.p0(ptr nonnull %21) - call void @llvm.lifetime.end.p0(ptr nonnull %26) + call void @llvm.lifetime.end.p0(ptr nonnull %27) ret void .thread77: ; preds = %98, %.thread88 - %.pn4480 = phi { ptr, i32 } [ %lpad.thr_comm86, %.thread88 ], [ %99, %98 ] + %.pn4480 = phi { ptr, i32 } [ %lpad.thr_comm86, %.thread88 ], [ %99, %99 ] invoke void @"_ZN4core3ptr72drop_in_place$LT$object_store..azure..builder..MicrosoftAzureBuilder$GT$17hec766f3c9978eb93E"(ptr noalias noundef nonnull align 8 dereferenceable(1312) %21) #32 to label %.thread67 unwind label %96 .thread67: ; preds = %94, %.thread77, %106, %105 - %.pn46.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp73, %105 ], [ %95, %94 ], [ %lpad.thr_comm, %106 ], [ %.pn4480, %.thread77 ] + %.pn46.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp73, %106 ], [ %95, %95 ], [ %lpad.thr_comm, %107 ], [ %.pn4480, %.thread77 ] resume { ptr, i32 } %.pn46.pn 105: ; preds = %42 %lpad.thr_comm.split-lp73 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr72drop_in_place$LT$object_store..azure..builder..MicrosoftAzureBuilder$GT$17hec766f3c9978eb93E"(ptr noalias noundef nonnull align 8 dereferenceable(1312) %26) #32 + invoke void @"_ZN4core3ptr72drop_in_place$LT$object_store..azure..builder..MicrosoftAzureBuilder$GT$17hec766f3c9978eb93E"(ptr noalias noundef nonnull align 8 dereferenceable(1312) %27) #32 to label %.thread67 unwind label %96 106: ; preds = %.noexc50, %4, %.noexc, %.noexc49 %lpad.thr_comm = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr72drop_in_place$LT$object_store..azure..builder..MicrosoftAzureBuilder$GT$17hec766f3c9978eb93E"(ptr noalias noundef nonnull align 8 dereferenceable(1312) %25) #32 + invoke void @"_ZN4core3ptr72drop_in_place$LT$object_store..azure..builder..MicrosoftAzureBuilder$GT$17hec766f3c9978eb93E"(ptr noalias noundef nonnull align 8 dereferenceable(1312) %26) #32 to label %.thread67 unwind label %96 } diff --git a/bench/pola-rs/optimized/9wkduw3zxryyte19eworhm0fy.ll b/bench/pola-rs/optimized/9wkduw3zxryyte19eworhm0fy.ll index 2764dd0dcfb..361d19405ba 100644 --- a/bench/pola-rs/optimized/9wkduw3zxryyte19eworhm0fy.ll +++ b/bench/pola-rs/optimized/9wkduw3zxryyte19eworhm0fy.ll @@ -44493,25 +44493,26 @@ define hidden void @_ZN10polars_sql7context10SQLContext15expr_or_ordinal17h8e0af %23 = alloca [32 x i8], align 8 %24 = alloca [24 x i8], align 8 %25 = alloca [8 x i8], align 8 - %26 = alloca [8 x i8], align 8 + %26 = alloca [192 x i8], align 16 %27 = alloca [8 x i8], align 8 - %28 = alloca [32 x i8], align 8 - %29 = alloca [24 x i8], align 8 - %30 = alloca [8 x i8], align 8 - %31 = alloca [16 x i8], align 8 - store ptr %8, ptr %31, align 8 - %32 = getelementptr inbounds nuw i8, ptr %31, i64 8 - store i64 %9, ptr %32, align 8 - %33 = load i64, ptr %2, align 8, !range !204, !noundef !4 - %34 = add nsw i64 %33, -6 - %35 = icmp ne i64 %34, 42 - tail call void @llvm.assume(i1 %35) - switch i64 %34, label %36 [ - i64 25, label %37 - i64 38, label %41 + %28 = alloca [8 x i8], align 8 + %29 = alloca [32 x i8], align 8 + %30 = alloca [24 x i8], align 8 + %31 = alloca [8 x i8], align 8 + %32 = alloca [16 x i8], align 8 + store ptr %8, ptr %32, align 8 + %33 = getelementptr inbounds nuw i8, ptr %32, i64 8 + store i64 %9, ptr %33, align 8 + %34 = load i64, ptr %2, align 8, !range !204, !noundef !4 + %35 = add nsw i64 %34, -6 + %36 = icmp ne i64 %35, 42 + tail call void @llvm.assume(i1 %36) + switch i64 %35, label %37 [ + i64 25, label %38 + i64 38, label %42 ] -36: ; preds = %53, %46, %37, %10 +36: ; preds = %54, %47, %37, %10 tail call void @_ZN10polars_sql8sql_expr14parse_sql_expr17hcb5e440b92006392E(ptr noalias noundef nonnull sret([192 x i8]) align 16 captures(none) dereferenceable(192) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(328) %2, ptr noalias noundef nonnull align 8 dereferenceable(264) %1, ptr noalias noundef readonly align 8 dereferenceable_or_null(64) %7) br label %62 @@ -44519,7 +44520,7 @@ define hidden void @_ZN10polars_sql7context10SQLContext15expr_or_ordinal17h8e0af %38 = getelementptr inbounds nuw i8, ptr %2, i64 16 %39 = load i8, ptr %38, align 8, !range !16, !noundef !4 %40 = icmp eq i8 %39, 1 - br i1 %40, label %46, label %36 + br i1 %40, label %47, label %36 41: ; preds = %10 %42 = getelementptr inbounds nuw i8, ptr %2, i64 8 @@ -44529,111 +44530,111 @@ define hidden void @_ZN10polars_sql7context10SQLContext15expr_or_ordinal17h8e0af %45 = icmp eq i64 %43, -9223372036854775808 br i1 %45, label %63, label %104, !prof !23 -46: ; preds = %37 - %47 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %48 = load ptr, ptr %47, align 8, !nonnull !4, !align !17, !noundef !4 - %49 = load i64, ptr %48, align 8, !range !204, !noundef !4 - %50 = add nsw i64 %49, -6 - %51 = icmp ne i64 %50, 42 - tail call void @llvm.assume(i1 %51) - %52 = icmp eq i64 %50, 38 - br i1 %52, label %53, label %36 - -53: ; preds = %46 - %54 = getelementptr inbounds nuw i8, ptr %48, i64 8 - %55 = load i64, ptr %54, align 8, !range !995, !noundef !4 - %56 = icmp ne i64 %55, -9223372036854775806 - tail call void @llvm.assume(i1 %56) - %57 = icmp eq i64 %55, -9223372036854775808 - br i1 %57, label %58, label %36, !prof !34 - -58: ; preds = %53 - call void @llvm.lifetime.start.p0(ptr nonnull %30) - %59 = getelementptr inbounds nuw i8, ptr %48, i64 16 - store ptr %59, ptr %30, align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %28) - store ptr %31, ptr %28, align 8 - %.sroa.442.0..sroa_idx = getelementptr inbounds nuw i8, ptr %28, i64 8 +47: ; preds = %38 + %48 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %49 = load ptr, ptr %48, align 8, !nonnull !4, !align !17, !noundef !4 + %50 = load i64, ptr %49, align 8, !range !204, !noundef !4 + %51 = add nsw i64 %50, -6 + %52 = icmp ne i64 %51, 42 + tail call void @llvm.assume(i1 %52) + %53 = icmp eq i64 %51, 38 + br i1 %53, label %54, label %37 + +54: ; preds = %47 + %55 = getelementptr inbounds nuw i8, ptr %49, i64 8 + %56 = load i64, ptr %55, align 8, !range !995, !noundef !4 + %57 = icmp ne i64 %56, -9223372036854775806 + tail call void @llvm.assume(i1 %57) + %58 = icmp eq i64 %56, -9223372036854775808 + br i1 %58, label %59, label %37, !prof !34 + +46: ; preds = %54 + call void @llvm.lifetime.start.p0(ptr nonnull %31) + %60 = getelementptr inbounds nuw i8, ptr %49, i64 16 + store ptr %60, ptr %31, align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %29) + store ptr %32, ptr %29, align 8 + %.sroa.442.0..sroa_idx = getelementptr inbounds nuw i8, ptr %29, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hfe686697647945c7E", ptr %.sroa.442.0..sroa_idx, align 8 - %60 = getelementptr inbounds nuw i8, ptr %28, i64 16 - store ptr %30, ptr %60, align 8 - %.sroa.446.0..sroa_idx = getelementptr inbounds nuw i8, ptr %28, i64 24 + %60 = getelementptr inbounds nuw i8, ptr %29, i64 16 + store ptr %31, ptr %60, align 8 + %.sroa.446.0..sroa_idx = getelementptr inbounds nuw i8, ptr %29, i64 24 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hd3a74129cbe419cbE", ptr %.sroa.446.0..sroa_idx, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %18), !noalias !3475 store ptr @anon.98595e719cf4f2ab01b8c6a106f1921e.259, ptr %18, align 8, !noalias !3483 %.sroa.486.0..sroa_idx = getelementptr inbounds nuw i8, ptr %18, i64 8 store i64 2, ptr %.sroa.486.0..sroa_idx, align 8, !noalias !3483 %.sroa.587.0..sroa_idx = getelementptr inbounds nuw i8, ptr %18, i64 16 - store ptr %28, ptr %.sroa.587.0..sroa_idx, align 8, !noalias !3483 + store ptr %29, ptr %.sroa.587.0..sroa_idx, align 8, !noalias !3483 %.sroa.6.0..sroa_idx88 = getelementptr inbounds nuw i8, ptr %18, i64 24 store i64 2, ptr %.sroa.6.0..sroa_idx88, align 8, !noalias !3483 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %18, i64 32 store ptr null, ptr %.sroa.7.0..sroa_idx, align 8, !noalias !3483 - call void @_ZN5alloc3fmt6format12format_inner17h1e07221face03266E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %29, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %18), !noalias !3484 + call void @_ZN5alloc3fmt6format12format_inner17h1e07221face03266E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %30, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %18), !noalias !3484 call void @llvm.lifetime.end.p0(ptr nonnull %18), !noalias !3475 - call void @llvm.lifetime.end.p0(ptr nonnull %28) + call void @llvm.lifetime.end.p0(ptr nonnull %29) %.sroa.483.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - call void @"_ZN72_$LT$polars_error..ErrString$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h48bfaa5ce7ec38dbE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %.sroa.483.0..sroa_idx, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %29) + call void @"_ZN72_$LT$polars_error..ErrString$u20$as$u20$core..convert..From$LT$T$GT$$GT$4from17h48bfaa5ce7ec38dbE"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %.sroa.483.0..sroa_idx, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %30) %61 = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 12, ptr %61, align 8 store i64 -9223372036854775780, ptr %0, align 16 - call void @llvm.lifetime.end.p0(ptr nonnull %30) + call void @llvm.lifetime.end.p0(ptr nonnull %31) br label %62 -62: ; preds = %115, %113, %104, %58, %36 +62: ; preds = %115, %113, %104, %59, %36 ret void 63: ; preds = %41 + call void @llvm.lifetime.start.p0(ptr nonnull %28) + %65 = getelementptr inbounds nuw i8, ptr %2, i64 16 + store ptr %65, ptr %28, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %27) - %64 = getelementptr inbounds nuw i8, ptr %2, i64 16 - store ptr %64, ptr %27, align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %26) - %65 = getelementptr inbounds nuw i8, ptr %2, i64 24 - %66 = load ptr, ptr %65, align 8, !nonnull !4, !noundef !4 - %67 = getelementptr inbounds nuw i8, ptr %2, i64 32 - %68 = load i64, ptr %67, align 8, !noundef !4 - switch i64 %68, label %71 [ + %64 = getelementptr inbounds nuw i8, ptr %2, i64 24 + %67 = load ptr, ptr %66, align 8, !nonnull !4, !noundef !4 + %68 = getelementptr inbounds nuw i8, ptr %2, i64 32 + %69 = load i64, ptr %68, align 8, !noundef !4 + switch i64 %69, label %72 [ i64 0, label %.loopexit i64 1, label %69 ] 69: ; preds = %63 - %70 = load i8, ptr %66, align 1, !alias.scope !3485, !noalias !3488, !noundef !4 + %70 = load i8, ptr %67, align 1, !alias.scope !3485, !noalias !3488, !noundef !4 switch i8 %70, label %.lr.ph.i.preheader [ i8 43, label %.loopexit i8 45, label %.loopexit ] .lr.ph.i.preheader: ; preds = %72, %76, %69 - %.sroa.01.153.i.ph = phi ptr [ %73, %72 ], [ %66, %76 ], [ %66, %69 ] - %.sroa.14.152.i.ph = phi i64 [ %74, %72 ], [ %68, %76 ], [ 1, %69 ] + %.sroa.01.153.i.ph = phi ptr [ %73, %73 ], [ %67, %77 ], [ %67, %70 ] + %.sroa.14.152.i.ph = phi i64 [ %74, %73 ], [ %69, %77 ], [ 1, %70 ] br label %.lr.ph.i 71: ; preds = %63 - %.pr.i = load i8, ptr %66, align 1, !alias.scope !3485, !noalias !3488 + %.pr.i = load i8, ptr %67, align 1, !alias.scope !3485, !noalias !3488 %cond.i = icmp eq i8 %.pr.i, 43 br i1 %cond.i, label %72, label %76 72: ; preds = %71 - %73 = getelementptr inbounds nuw i8, ptr %66, i64 1 - %74 = add i64 %68, -1 - %75 = icmp ult i64 %68, 18 + %73 = getelementptr inbounds nuw i8, ptr %67, i64 1 + %74 = add i64 %69, -1 + %75 = icmp ult i64 %69, 18 br i1 %75, label %.lr.ph.i.preheader, label %.preheader44.i.preheader .preheader44.i.preheader: ; preds = %76, %72 - %.sroa.14.0.i.ph = phi i64 [ %74, %72 ], [ %68, %76 ] - %.sroa.01.0.i.ph = phi ptr [ %73, %72 ], [ %66, %76 ] + %.sroa.14.0.i.ph = phi i64 [ %74, %73 ], [ %69, %77 ] + %.sroa.01.0.i.ph = phi ptr [ %73, %73 ], [ %67, %77 ] br label %.preheader44.i .preheader44.i: ; preds = %.preheader44.i.preheader, %89 - %.sroa.013.0.i = phi i64 [ %93, %89 ], [ 0, %.preheader44.i.preheader ] - %.sroa.14.0.i = phi i64 [ %80, %89 ], [ %.sroa.14.0.i.ph, %.preheader44.i.preheader ] - %.sroa.01.0.i = phi ptr [ %79, %89 ], [ %.sroa.01.0.i.ph, %.preheader44.i.preheader ] + %.sroa.013.0.i = phi i64 [ %93, %90 ], [ 0, %.preheader44.i.preheader ] + %.sroa.14.0.i = phi i64 [ %80, %90 ], [ %.sroa.14.0.i.ph, %.preheader44.i.preheader ] + %.sroa.01.0.i = phi ptr [ %79, %90 ], [ %.sroa.01.0.i.ph, %.preheader44.i.preheader ] %.not.i = icmp eq i64 %.sroa.14.0.i, 0 br i1 %.not.i, label %.loopexit128, label %78 76: ; preds = %71 - %77 = icmp ult i64 %68, 17 + %77 = icmp ult i64 %69, 17 br i1 %77, label %.lr.ph.i.preheader, label %.preheader44.i.preheader 78: ; preds = %.preheader44.i @@ -44659,9 +44660,9 @@ define hidden void @_ZN10polars_sql7context10SQLContext15expr_or_ordinal17h8e0af br i1 %92, label %.loopexit, label %.preheader44.i .lr.ph.i: ; preds = %.lr.ph.i.preheader, %98 - %.sroa.01.153.i = phi ptr [ %101, %98 ], [ %.sroa.01.153.i.ph, %.lr.ph.i.preheader ] - %.sroa.14.152.i = phi i64 [ %100, %98 ], [ %.sroa.14.152.i.ph, %.lr.ph.i.preheader ] - %.sroa.013.251.i = phi i64 [ %103, %98 ], [ 0, %.lr.ph.i.preheader ] + %.sroa.01.153.i = phi ptr [ %101, %99 ], [ %.sroa.01.153.i.ph, %.lr.ph.i.preheader ] + %.sroa.14.152.i = phi i64 [ %100, %99 ], [ %.sroa.14.152.i.ph, %.lr.ph.i.preheader ] + %.sroa.013.251.i = phi i64 [ %103, %99 ], [ 0, %.lr.ph.i.preheader ] %94 = load i8, ptr %.sroa.01.153.i, align 1, !alias.scope !3485, !noalias !3488, !noundef !4 %95 = zext i8 %94 to i32 %96 = add nsw i32 %95, -48 @@ -44681,7 +44682,7 @@ define hidden void @_ZN10polars_sql7context10SQLContext15expr_or_ordinal17h8e0af call void @llvm.lifetime.start.p0(ptr nonnull %25) store ptr %42, ptr %25, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %23) - store ptr %31, ptr %23, align 8 + store ptr %32, ptr %23, align 8 %.sroa.438.0..sroa_idx = getelementptr inbounds nuw i8, ptr %23, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hfe686697647945c7E", ptr %.sroa.438.0..sroa_idx, align 8 %105 = getelementptr inbounds nuw i8, ptr %23, i64 16 @@ -44712,11 +44713,11 @@ define hidden void @_ZN10polars_sql7context10SQLContext15expr_or_ordinal17h8e0af .loopexit: ; preds = %89, %87, %78, %.lr.ph.i, %69, %69, %63 call void @llvm.lifetime.start.p0(ptr nonnull %16) call void @llvm.lifetime.start.p0(ptr nonnull %15), !noalias !3500 - store ptr %31, ptr %15, align 8, !noalias !3500 + store ptr %32, ptr %15, align 8, !noalias !3500 %.sroa.42.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %15, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hfe686697647945c7E", ptr %.sroa.42.0..sroa_idx.i, align 8, !noalias !3500 %107 = getelementptr inbounds nuw i8, ptr %15, i64 16 - store ptr %27, ptr %107, align 8, !noalias !3500 + store ptr %28, ptr %107, align 8, !noalias !3500 %.sroa.46.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %15, i64 24 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hd3a74129cbe419cbE", ptr %.sroa.46.0..sroa_idx.i, align 8, !noalias !3500 call void @llvm.lifetime.start.p0(ptr nonnull %14), !noalias !3505 @@ -44740,25 +44741,29 @@ define hidden void @_ZN10polars_sql7context10SQLContext15expr_or_ordinal17h8e0af store i64 12, ptr %108, align 8 %.sroa.253.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store i64 %.sroa.6.0.copyload, ptr %.sroa.253.0..sroa_idx, align 16 - br label %115 + %.sroa.354.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.354.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(48) %22, i64 48, i1 false) + store i64 -9223372036854775780, ptr %0, align 16 + br label %116 .loopexit128: ; preds = %.preheader44.i, %98 - %.sroa.6.0.ph = phi i64 [ %103, %98 ], [ %.sroa.013.0.i, %.preheader44.i ] - store i64 %.sroa.6.0.ph, ptr %26, align 8 + %.sroa.6.0.ph = phi i64 [ %103, %99 ], [ %.sroa.013.0.i, %.preheader44.i ] + store i64 %.sroa.6.0.ph, ptr %27, align 8 %.not69 = icmp eq ptr %5, null %spec.select = select i1 %.not69, i64 %4, i64 %6 - %109 = add i64 %.sroa.6.0.ph, -1 - %.not = icmp ult i64 %109, %spec.select - br i1 %.not, label %113, label %110 + call void @llvm.lifetime.start.p0(ptr nonnull %26) + %110 = add i64 %.sroa.6.0.ph, -1 + %.not = icmp ult i64 %110, %spec.select + br i1 %.not, label %114, label %111 110: ; preds = %.loopexit128 call void @llvm.lifetime.start.p0(ptr nonnull %13) call void @llvm.lifetime.start.p0(ptr nonnull %12), !noalias !3515 - store ptr %31, ptr %12, align 8, !noalias !3515 + store ptr %32, ptr %12, align 8, !noalias !3515 %.sroa.42.0..sroa_idx.i74 = getelementptr inbounds nuw i8, ptr %12, i64 8 store ptr @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hfe686697647945c7E", ptr %.sroa.42.0..sroa_idx.i74, align 8, !noalias !3515 %111 = getelementptr inbounds nuw i8, ptr %12, i64 16 - store ptr %26, ptr %111, align 8, !noalias !3515 + store ptr %27, ptr %111, align 8, !noalias !3515 %.sroa.46.0..sroa_idx.i75 = getelementptr inbounds nuw i8, ptr %12, i64 24 store ptr @"_ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h9dbc3189e25ad9aeE", ptr %.sroa.46.0..sroa_idx.i75, align 8, !noalias !3515 call void @llvm.lifetime.start.p0(ptr nonnull %11), !noalias !3520 @@ -44782,24 +44787,26 @@ define hidden void @_ZN10polars_sql7context10SQLContext15expr_or_ordinal17h8e0af store i64 11, ptr %112, align 8 %.sroa.262.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr %.sroa.626.0.copyload, ptr %.sroa.262.0..sroa_idx, align 16 - br label %115 + %.sroa.363.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.363.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(48) %20, i64 48, i1 false) + store i64 -9223372036854775780, ptr %0, align 16 + call void @llvm.lifetime.end.p0(ptr nonnull %26) + br label %116 113: ; preds = %.loopexit128 %spec.select73 = select i1 %.not69, ptr %3, ptr %5 - %114 = getelementptr inbounds nuw { i64, [23 x i64] }, ptr %spec.select73, i64 %109 - tail call fastcc void @"_ZN67_$LT$polars_plan..dsl..expr..Expr$u20$as$u20$core..clone..Clone$GT$5clone17h8a8a5515232debdfE"(ptr noalias noundef align 16 captures(none) dereferenceable(192) %0, ptr noundef nonnull align 16 %114) + %114 = getelementptr inbounds nuw { i64, [23 x i64] }, ptr %spec.select73, i64 %110 + call fastcc void @"_ZN67_$LT$polars_plan..dsl..expr..Expr$u20$as$u20$core..clone..Clone$GT$5clone17h8a8a5515232debdfE"(ptr noalias noundef align 16 captures(none) dereferenceable(192) %26, ptr noundef nonnull align 16 %114) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(192) %0, ptr noundef nonnull align 16 dereferenceable(192) %26, i64 192, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %26) call void @llvm.lifetime.end.p0(ptr nonnull %27) - br label %62 + call void @llvm.lifetime.end.p0(ptr nonnull %28) + br label %63 115: ; preds = %110, %.loopexit - %.sink = phi ptr [ %20, %110 ], [ %22, %.loopexit ] - %.sroa.363.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.363.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(48) %.sink, i64 48, i1 false) - store i64 -9223372036854775780, ptr %0, align 16 - call void @llvm.lifetime.end.p0(ptr nonnull %26) call void @llvm.lifetime.end.p0(ptr nonnull %27) - br label %62 + call void @llvm.lifetime.end.p0(ptr nonnull %28) + br label %63 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/pola-rs/optimized/d3td6wm725z0ntv4qctjf4t3y.ll b/bench/pola-rs/optimized/d3td6wm725z0ntv4qctjf4t3y.ll index 0dee7b3ef29..5b761bf57ef 100644 --- a/bench/pola-rs/optimized/d3td6wm725z0ntv4qctjf4t3y.ll +++ b/bench/pola-rs/optimized/d3td6wm725z0ntv4qctjf4t3y.ll @@ -87756,40 +87756,43 @@ common.resume: ; preds = %53, %48 ; Function Attrs: nonlazybind uwtable define hidden void @_ZN11polars_plan3dsl13function_expr6binary10size_bytes17h27ab98819c42fab9E(ptr dead_on_unwind noalias noundef writable writeonly sret([160 x i8]) align 16 captures(none) dereferenceable(160) %0, ptr noundef nonnull align 16 %1) unnamed_addr #0 personality ptr @rust_eh_personality { %3 = alloca [72 x i8], align 8 - %4 = alloca [64 x i8], align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %4) - call void @_ZN11polars_core5frame6column6Column6binary17h067b3cd8d883f6c9E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %4, ptr noundef nonnull align 16 %1) - %5 = load i64, ptr %4, align 8, !range !1947, !noundef !4 - %.not = icmp eq i64 %5, 17 - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load ptr, ptr %6, align 8 - br i1 %.not, label %10, label %8 + %4 = alloca [56 x i8], align 8 + %5 = alloca [64 x i8], align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %5) + call void @_ZN11polars_core5frame6column6Column6binary17h067b3cd8d883f6c9E(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %5, ptr noundef nonnull align 16 %1) + %6 = load i64, ptr %5, align 8, !range !1947, !noundef !4 + %.not = icmp eq i64 %6, 17 + %7 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %8 = load ptr, ptr %7, align 8 + br i1 %.not, label %11, label %9 8: ; preds = %2 - %.sroa.69.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 16 + %.sroa.69.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 16 %.sroa.312.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %.sroa.312.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(48) %.sroa.69.0..sroa_idx, i64 48, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %4) + call void @llvm.lifetime.end.p0(ptr nonnull %5) %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 %5, ptr %9, align 8 + store i64 %6, ptr %9, align 8 %.sroa.211.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %7, ptr %.sroa.211.0..sroa_idx, align 16 + store ptr %8, ptr %.sroa.211.0..sroa_idx, align 16 store i8 30, ptr %0, align 16 br label %23 10: ; preds = %2 - call void @llvm.lifetime.end.p0(ptr nonnull %4) - %11 = tail call noundef nonnull align 8 ptr @"_ZN146_$LT$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..BinaryType$GT$$u20$as$u20$polars_ops..chunked_array..binary..AsBinary$GT$9as_binary17hcf57581b488e1a7bE"(ptr noundef nonnull align 8 %7) - %12 = getelementptr inbounds nuw i8, ptr %3, i64 16 + call void @llvm.lifetime.end.p0(ptr nonnull %5) + %11 = tail call noundef nonnull align 8 ptr @"_ZN146_$LT$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..BinaryType$GT$$u20$as$u20$polars_ops..chunked_array..binary..AsBinary$GT$9as_binary17hcf57581b488e1a7bE"(ptr noundef nonnull align 8 %8) + call void @llvm.lifetime.start.p0(ptr nonnull %4) + call void @"_ZN11polars_core13chunked_array3ops5apply242_$LT$impl$u20$polars_core..chunked_array..ops..ChunkApplyKernel$LT$polars_arrow..array..binview..BinaryViewArrayGeneric$LT$$u5b$u8$u5d$$GT$$GT$$u20$for$u20$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..BinaryType$GT$$GT$17apply_kernel_cast17hbea0c28f5fede19cE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %4, ptr noundef nonnull align 8 %12, ptr noundef nonnull align 1 inttoptr (i64 1 to ptr), ptr noalias noundef readonly align 8 dereferenceable(48) @anon.7bb60be16e5247f8b803b835a8b1d035.810) call void @llvm.lifetime.start.p0(ptr nonnull %3) - call void @"_ZN11polars_core13chunked_array3ops5apply242_$LT$impl$u20$polars_core..chunked_array..ops..ChunkApplyKernel$LT$polars_arrow..array..binview..BinaryViewArrayGeneric$LT$$u5b$u8$u5d$$GT$$GT$$u20$for$u20$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..BinaryType$GT$$GT$17apply_kernel_cast17hbea0c28f5fede19cE"(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %12, ptr noundef nonnull align 8 %11, ptr noundef nonnull align 1 inttoptr (i64 1 to ptr), ptr noalias noundef readonly align 8 dereferenceable(48) @anon.7bb60be16e5247f8b803b835a8b1d035.810) store i64 1, ptr %3, align 8 %13 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 1, ptr %13, align 8 - %14 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !22127 - %15 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 16, 577) 72, i64 noundef range(i64 8, 17) 8) #41, !noalias !22127 - %16 = icmp eq ptr %15, null - br i1 %16, label %17, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit", !prof !1589 + %14 = getelementptr inbounds nuw i8, ptr %3, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %14, ptr noundef nonnull align 8 dereferenceable(56) %4, i64 56, i1 false) + %15 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !22127 + %16 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @_RNvCsjH7bwORMyv9_7___rustc12___rust_alloc(i64 noundef range(i64 16, 577) 72, i64 noundef range(i64 8, 17) 8) #41, !noalias !22127 + %17 = icmp eq ptr %16, null + br i1 %17, label %18, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit", !prof !1589 17: ; preds = %10 invoke void @_ZN5alloc5alloc18handle_alloc_error17h5f7bf8e66d463adeE(i64 noundef 8, i64 noundef 72) #40 @@ -87802,7 +87805,7 @@ define hidden void @_ZN11polars_plan3dsl13function_expr6binary10size_bytes17h27a %19 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr188drop_in_place$LT$alloc..sync..ArcInner$LT$polars_core..series..implementations..SeriesWrap$LT$polars_core..chunked_array..ChunkedArray$LT$polars_core..datatypes..UInt32Type$GT$$GT$$GT$$GT$17h68dea4d9d8d137e7E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %3) #39 - to label %22 unwind label %20 + to label %23 unwind label %20 20: ; preds = %18 %21 = landingpad { ptr, i32 } @@ -87814,10 +87817,11 @@ define hidden void @_ZN11polars_plan3dsl13function_expr6binary10size_bytes17h27a resume { ptr, i32 } %19 "_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit": ; preds = %10 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %15, ptr noundef nonnull align 8 dereferenceable(72) %3, i64 72, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %3, i64 72, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %3) - tail call fastcc void @"_ZN109_$LT$polars_core..frame..column..Column$u20$as$u20$core..convert..From$LT$polars_core..series..Series$GT$$GT$4from17h4f11901524035d4eE"(ptr noalias noundef align 16 captures(none) dereferenceable(160) %0, ptr noundef nonnull %15, ptr noalias noundef readonly align 8 dereferenceable(824) @anon.7bb60be16e5247f8b803b835a8b1d035.721) - br label %23 + call void @llvm.lifetime.end.p0(ptr nonnull %4) + tail call fastcc void @"_ZN109_$LT$polars_core..frame..column..Column$u20$as$u20$core..convert..From$LT$polars_core..series..Series$GT$$GT$4from17h4f11901524035d4eE"(ptr noalias noundef align 16 captures(none) dereferenceable(160) %0, ptr noundef nonnull %16, ptr noalias noundef readonly align 8 dereferenceable(824) @anon.7bb60be16e5247f8b803b835a8b1d035.721) + br label %24 23: ; preds = %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h4454716d29b6a055E.exit", %8 ret void diff --git a/bench/pola-rs/optimized/eno41myg76h8nryc673zxzdw7.ll b/bench/pola-rs/optimized/eno41myg76h8nryc673zxzdw7.ll index 0b31b33258f..e278248e3dc 100644 --- a/bench/pola-rs/optimized/eno41myg76h8nryc673zxzdw7.ll +++ b/bench/pola-rs/optimized/eno41myg76h8nryc673zxzdw7.ll @@ -276628,17 +276628,18 @@ define internal fastcc void @_ZN11polars_core6series10arithmetic15fixed_size_lis %3 = alloca [48 x i8], align 8 %4 = alloca [8 x i8], align 8 %5 = alloca [32 x i8], align 8 - %6 = alloca [64 x i8], align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %6) - call void @"_ZN11polars_core6series3ops8downcast45_$LT$impl$u20$polars_core..series..Series$GT$5array17haabde724a0955149E"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) - %7 = load i64, ptr %6, align 8, !range !6187, !noundef !6 - %.not = icmp eq i64 %7, 17 - br i1 %.not, label %8, label %.thread + %6 = alloca [32 x i8], align 8 + %7 = alloca [64 x i8], align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %7) + call void @"_ZN11polars_core6series3ops8downcast45_$LT$impl$u20$polars_core..series..Series$GT$5array17haabde724a0955149E"(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %0) + %8 = load i64, ptr %7, align 8, !range !6187, !noundef !6 + %.not = icmp eq i64 %8, 17 + br i1 %.not, label %9, label %.thread 8: ; preds = %2 - %9 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %9 = getelementptr inbounds nuw i8, ptr %7, i64 8 %10 = load ptr, ptr %9, align 8, !nonnull !6, !align !10114, !noundef !6 - call void @llvm.lifetime.end.p0(ptr nonnull %6) + call void @llvm.lifetime.end.p0(ptr nonnull %7) call void @llvm.lifetime.start.p0(ptr nonnull %4) %11 = getelementptr inbounds nuw i8, ptr %10, i64 16 %12 = load i64, ptr %11, align 8, !noundef !6 @@ -276655,14 +276656,14 @@ define internal fastcc void @_ZN11polars_core6series10arithmetic15fixed_size_lis unreachable .thread: ; preds = %2 - call void @"_ZN4core3ptr46drop_in_place$LT$polars_error..PolarsError$GT$17h7b4d6c76a6b7c637E"(ptr noalias noundef nonnull align 8 dereferenceable(64) %6) - call void @llvm.lifetime.end.p0(ptr nonnull %6) + call void @"_ZN4core3ptr46drop_in_place$LT$polars_error..PolarsError$GT$17h7b4d6c76a6b7c637E"(ptr noalias noundef nonnull align 8 dereferenceable(64) %7) + call void @llvm.lifetime.end.p0(ptr nonnull %7) br label %select.unfold._crit_edge .lr.ph: ; preds = %8 %16 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %17 = load ptr, ptr %16, align 8, !nonnull !6, !noundef !6 %18 = load ptr, ptr %17, align 8, !nonnull !6, !noundef !6 + %19 = load ptr, ptr %18, align 8, !nonnull !6, !noundef !6 call void @llvm.lifetime.end.p0(ptr nonnull %4) %19 = getelementptr inbounds nuw i8, ptr %1, i64 16 %20 = getelementptr inbounds nuw i8, ptr %1, i64 8 @@ -276670,7 +276671,7 @@ define internal fastcc void @_ZN11polars_core6series10arithmetic15fixed_size_lis 21: ; preds = %.lr.ph, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h087229623e4477b0E.exit" %.sroa.05.117 = phi ptr [ %18, %.lr.ph ], [ %48, %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h087229623e4477b0E.exit" ] - call void @llvm.lifetime.start.p0(ptr nonnull %5) + call void @llvm.lifetime.start.p0(ptr nonnull %6) %22 = getelementptr inbounds nuw i8, ptr %.sroa.05.117, i64 64 %23 = load ptr, ptr %22, align 8, !noundef !6 %.not10 = icmp eq ptr %23, null @@ -276685,11 +276686,14 @@ select.unfold._crit_edge: ; preds = %"_ZN5alloc3vec16Vec ret void "_ZN4core6option15Option$LT$T$GT$6filter17he6d938cd436e1e8fE.exit": ; preds = %24 - call void @"_ZN78_$LT$polars_arrow..bitmap..immutable..Bitmap$u20$as$u20$core..clone..Clone$GT$5clone17hc353acb94ea61ebbE"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %5, ptr noundef nonnull align 8 %22) - br label %26 + call void @llvm.lifetime.start.p0(ptr nonnull %5) + call void @"_ZN78_$LT$polars_arrow..bitmap..immutable..Bitmap$u20$as$u20$core..clone..Clone$GT$5clone17hc353acb94ea61ebbE"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %5, ptr noundef nonnull align 8 %23) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 32, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %5) + br label %27 select.unfold13: ; preds = %24, %21 - store ptr null, ptr %5, align 8 + store ptr null, ptr %6, align 8 br label %26 26: ; preds = %select.unfold13, %"_ZN4core6option15Option$LT$T$GT$6filter17he6d938cd436e1e8fE.exit" @@ -276707,12 +276711,12 @@ select.unfold13: ; preds = %24, %21 31: ; preds = %30 %32 = landingpad { ptr, i32 } cleanup - %33 = load ptr, ptr %5, align 8, !alias.scope !29801, !noalias !29796, !noundef !6 + %33 = load ptr, ptr %6, align 8, !alias.scope !29801, !noalias !29796, !noundef !6 %34 = icmp eq ptr %33, null br i1 %34, label %"_ZN4core3ptr88drop_in_place$LT$core..option..Option$LT$polars_arrow..bitmap..immutable..Bitmap$GT$$GT$17he8a41af2aa3fef39E.exit.i", label %35 35: ; preds = %31 - invoke void @"_ZN4core3ptr60drop_in_place$LT$polars_arrow..bitmap..immutable..Bitmap$GT$17h475124c32b0559d5E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %5) + invoke void @"_ZN4core3ptr60drop_in_place$LT$polars_arrow..bitmap..immutable..Bitmap$GT$17h475124c32b0559d5E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %6) to label %"_ZN4core3ptr88drop_in_place$LT$core..option..Option$LT$polars_arrow..bitmap..immutable..Bitmap$GT$$GT$17he8a41af2aa3fef39E.exit.i" unwind label %36 36: ; preds = %35 @@ -276727,17 +276731,17 @@ select.unfold13: ; preds = %24, %21 "_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17h087229623e4477b0E.exit": ; preds = %26, %30 %38 = load ptr, ptr %20, align 8, !alias.scope !29796, !noalias !29799, !nonnull !6, !noundef !6 %39 = getelementptr inbounds nuw { ptr, [3 x i64] }, ptr %38, i64 %27 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %5, i64 32, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %39, ptr noundef nonnull align 8 dereferenceable(32) %6, i64 32, i1 false) %40 = add i64 %27, 1 store i64 %40, ptr %19, align 8, !alias.scope !29796, !noalias !29799 - call void @llvm.lifetime.end.p0(ptr nonnull %5) + call void @llvm.lifetime.end.p0(ptr nonnull %6) %41 = tail call noundef align 8 dereferenceable(16) ptr @_ZN12polars_arrow5array15fixed_size_list18FixedSizeListArray6values17he1e4c63248f01eefE(ptr noundef nonnull align 8 %.sroa.05.117) %42 = load ptr, ptr %41, align 8, !nonnull !6, !align !583, !noundef !6 %43 = getelementptr inbounds nuw i8, ptr %41, i64 8 %44 = load ptr, ptr %43, align 8, !nonnull !6, !align !10114, !noundef !6 %45 = getelementptr inbounds nuw i8, ptr %44, i64 32 %46 = load ptr, ptr %45, align 8, !invariant.load !6, !nonnull !6 - %47 = tail call { ptr, ptr } %46(ptr noundef nonnull align 1 %42) + %47 = tail call { ptr, ptr } %47(ptr noundef nonnull align 1 %42) %48 = extractvalue { ptr, ptr } %47, 0 %49 = extractvalue { ptr, ptr } %47, 1 %50 = getelementptr i8, ptr %49, i64 24 diff --git a/bench/postgres/optimized/execIndexing.ll b/bench/postgres/optimized/execIndexing.ll index 0505b18b109..ba4c8ddbaf8 100644 --- a/bench/postgres/optimized/execIndexing.ll +++ b/bench/postgres/optimized/execIndexing.ll @@ -551,7 +551,6 @@ define internal fastcc noundef zeroext i1 @check_exclusion_or_unique_constraint( %12 = alloca %struct.nameData, align 8 %13 = alloca [32 x %struct.ScanKeyData], align 16 %14 = alloca %struct.SnapshotData, align 8 - %.sroa.0 = alloca [64 x i8], align 8 %15 = alloca [32 x i64], align 16 %16 = alloca [32 x i8], align 16 %17 = getelementptr inbounds nuw i8, ptr %1, i64 440 @@ -606,10 +605,8 @@ define internal fastcc noundef zeroext i1 @check_exclusion_or_unique_constraint( %53 = load i64, ptr %52, align 8 %54 = getelementptr inbounds nuw i8, ptr %50, i64 13 %55 = load i8, ptr %54, align 1 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %.sroa.0, ptr noundef nonnull align 4 dereferenceable(64) %51, i64 64, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %12) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %12, ptr noundef nonnull align 8 dereferenceable(64) %.sroa.0, i64 64, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %12, ptr noundef nonnull align 4 dereferenceable(64) %51, i64 64, i1 false) switch i8 %55, label %61 [ i8 114, label %56 i8 109, label %64 @@ -648,7 +645,6 @@ define internal fastcc noundef zeroext i1 @check_exclusion_or_unique_constraint( ExecWithoutOverlapsNotEmpty.exit: ; preds = %56, %64 call void @llvm.lifetime.end.p0(ptr nonnull %12) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0) br label %77 77: ; preds = %29, %ExecWithoutOverlapsNotEmpty.exit, %11 diff --git a/bench/proj/optimized/gridshift.ll b/bench/proj/optimized/gridshift.ll index beb72e4802c..7a555740c45 100644 --- a/bench/proj/optimized/gridshift.ll +++ b/bench/proj/optimized/gridshift.ll @@ -2296,6 +2296,7 @@ declare void @_Z22proj_context_errno_setP6pj_ctxi(ptr noundef, i32 noundef) loca define internal fastcc void @_ZN12_GLOBAL__N_113gridshiftData19grid_apply_internalEP6pj_ctxRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEb6PJ_XYZ12PJ_DIRECTIONPKN5osgeo4proj16GenericShiftGridEPNSE_19GenericShiftGridSetERb(ptr dead_on_unwind noalias nonnull writable align 8 captures(none) %0, ptr noundef nonnull align 8 dereferenceable(200) %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(32) %3, i1 noundef zeroext %4, ptr noundef readonly byval(%struct.PJ_XYZ) align 8 captures(none) %5, i32 noundef range(i32 -1, 2) %6, ptr noundef nonnull %7, ptr noundef %8, ptr noundef nonnull writeonly align 1 captures(none) dereferenceable(1) initializes((0, 1)) %9) unnamed_addr #3 align 2 { %11 = alloca i8, align 1 %12 = alloca %struct.PJ_XYZ, align 8 + %13 = alloca %struct.PJ_XYZ, align 8 store i8 0, ptr %9, align 1, !tbaa !57 %13 = load double, ptr %5, align 8, !tbaa !113 %14 = fcmp oeq double %13, 0x7FF0000000000000 @@ -2343,7 +2344,7 @@ define internal fastcc void @_ZN12_GLOBAL__N_113gridshiftData19grid_apply_intern br label %_ZN12_GLOBAL__N_110normalizeXEPKN5osgeo4proj16GenericShiftGridE6PJ_XYZRPKNS1_12ExtentAndResE.exit _ZN12_GLOBAL__N_110normalizeXEPKN5osgeo4proj16GenericShiftGridE6PJ_XYZRPKNS1_12ExtentAndResE.exit: ; preds = %16, %31, %33, %38 - %.sroa.0.0.i = phi double [ %13, %16 ], [ %32, %31 ], [ %39, %38 ], [ %13, %33 ] + %.sroa.0.0.i = phi double [ %13, %17 ], [ %32, %32 ], [ %39, %39 ], [ %13, %34 ] call void @llvm.lifetime.start.p0(ptr nonnull %11) store i8 0, ptr %11, align 1, !tbaa !57 call void @llvm.lifetime.start.p0(ptr nonnull %12) @@ -2351,14 +2352,14 @@ _ZN12_GLOBAL__N_110normalizeXEPKN5osgeo4proj16GenericShiftGridE6PJ_XYZRPKNS1_12E %40 = load ptr, ptr %7, align 8, !tbaa !104 %41 = getelementptr inbounds nuw i8, ptr %40, i64 32 %42 = load ptr, ptr %41, align 8 - %43 = tail call noundef zeroext i1 %42(ptr noundef nonnull align 8 dereferenceable(120) %7) + %43 = tail call noundef zeroext i1 %43(ptr noundef nonnull align 8 dereferenceable(120) %7) br i1 %43, label %44, label %52 44: ; preds = %_ZN12_GLOBAL__N_110normalizeXEPKN5osgeo4proj16GenericShiftGridE6PJ_XYZRPKNS1_12ExtentAndResE.exit %45 = load ptr, ptr %8, align 8, !tbaa !104 %46 = getelementptr inbounds nuw i8, ptr %45, i64 24 %47 = load ptr, ptr %46, align 8 - %48 = tail call noundef zeroext i1 %47(ptr noundef nonnull align 8 dereferenceable(96) %8, ptr noundef %2) + %48 = tail call noundef zeroext i1 %48(ptr noundef nonnull align 8 dereferenceable(96) %8, ptr noundef %2) %49 = zext i1 %48 to i8 store i8 %49, ptr %9, align 1, !tbaa !57 %50 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -2427,32 +2428,35 @@ _ZN12_GLOBAL__N_110normalizeXEPKN5osgeo4proj16GenericShiftGridE6PJ_XYZRPKNS1_12E br label %86 86: ; preds = %.preheader, %155 - %.186 = phi ptr [ %.3, %155 ], [ %17, %.preheader ] - %.082 = phi ptr [ %.183, %155 ], [ %8, %.preheader ] - %.055 = phi i32 [ %154, %155 ], [ 10, %.preheader ] - %.sroa.012.1 = phi double [ %.sroa.012.4, %155 ], [ %79, %.preheader ] - %.sroa.10.1 = phi double [ %.sroa.10.4, %155 ], [ %82, %.preheader ] - %.sroa.024.0 = phi double [ %.sroa.024.2, %155 ], [ %.sroa.0.0.i, %.preheader ] - %.sroa.726.0 = phi double [ %.sroa.726.2, %155 ], [ %.sroa.278.0.copyload, %.preheader ] - %.0 = phi ptr [ %.2, %155 ], [ %7, %.preheader ] - call fastcc void @_ZN12_GLOBAL__N_113gridshiftData16grid_interpolateEP6pj_ctxRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE5PJ_XYPKN5osgeo4proj16GenericShiftGridERb(ptr dead_on_unwind noalias writable align 8 %12, ptr noundef nonnull align 8 dereferenceable(200) %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(32) %3, double %.sroa.012.1, double %.sroa.10.1, ptr noundef %.0, ptr noundef nonnull align 1 dereferenceable(1) %11) - %87 = load ptr, ptr %.0, align 8, !tbaa !104 - %88 = getelementptr inbounds nuw i8, ptr %87, i64 32 - %89 = load ptr, ptr %88, align 8 - %90 = tail call noundef zeroext i1 %89(ptr noundef nonnull align 8 dereferenceable(120) %.0) - br i1 %90, label %91, label %99 - -91: ; preds = %86 - %92 = load ptr, ptr %.082, align 8, !tbaa !104 - %93 = getelementptr inbounds nuw i8, ptr %92, i64 24 - %94 = load ptr, ptr %93, align 8 - %95 = tail call noundef zeroext i1 %94(ptr noundef nonnull align 8 dereferenceable(96) %.082, ptr noundef %2) - %96 = zext i1 %95 to i8 - store i8 %96, ptr %9, align 1, !tbaa !57 - %97 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store double 0x7FF0000000000000, ptr %97, align 8, !tbaa !118 - %98 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store double 0x7FF0000000000000, ptr %98, align 8, !tbaa !116 + %.186 = phi ptr [ %.3, %156 ], [ %17, %.preheader ] + %.082 = phi ptr [ %.183, %156 ], [ %8, %.preheader ] + %.055 = phi i32 [ %154, %156 ], [ 10, %.preheader ] + %.sroa.012.1 = phi double [ %.sroa.012.4, %156 ], [ %79, %.preheader ] + %.sroa.10.1 = phi double [ %.sroa.10.4, %156 ], [ %82, %.preheader ] + %.sroa.024.0 = phi double [ %.sroa.024.2, %156 ], [ %.sroa.0.0.i, %.preheader ] + %.sroa.726.0 = phi double [ %.sroa.726.2, %156 ], [ %.sroa.278.0.copyload, %.preheader ] + %.0 = phi ptr [ %.2, %156 ], [ %7, %.preheader ] + call void @llvm.lifetime.start.p0(ptr nonnull %13) + call fastcc void @_ZN12_GLOBAL__N_113gridshiftData16grid_interpolateEP6pj_ctxRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE5PJ_XYPKN5osgeo4proj16GenericShiftGridERb(ptr dead_on_unwind noalias writable align 8 %13, ptr noundef nonnull align 8 dereferenceable(200) %1, ptr noundef %2, ptr noundef nonnull align 8 dereferenceable(32) %3, double %.sroa.012.1, double %.sroa.10.1, ptr noundef %.0, ptr noundef nonnull align 1 dereferenceable(1) %11) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %13, i64 24, i1 false), !tbaa.struct !109 + call void @llvm.lifetime.end.p0(ptr nonnull %13) + %88 = load ptr, ptr %.0, align 8, !tbaa !104 + %89 = getelementptr inbounds nuw i8, ptr %88, i64 32 + %90 = load ptr, ptr %89, align 8 + %91 = tail call noundef zeroext i1 %90(ptr noundef nonnull align 8 dereferenceable(120) %.0) + br i1 %91, label %92, label %100 + +92:; preds = %87 + %93 = load ptr, ptr %.082, align 8, !tbaa !104 + %94 = getelementptr inbounds nuw i8, ptr %93, i64 24 + %95 = load ptr, ptr %94, align 8 + %96 = tail call noundef zeroext i1 %95(ptr noundef nonnull align 8 dereferenceable(96) %.082, ptr noundef %2) + %97 = zext i1 %96 to i8 + store i8 %97, ptr %9, align 1, !tbaa !57 + %98 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store double 0x7FF0000000000000, ptr %98, align 8, !tbaa !118 + %99 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store double 0x7FF0000000000000, ptr %99, align 8, !tbaa !116 store double 0x7FF0000000000000, ptr %0, align 8, !tbaa !113 br label %.critedge63 @@ -2468,7 +2472,7 @@ _ZN12_GLOBAL__N_110normalizeXEPKN5osgeo4proj16GenericShiftGridE6PJ_XYZRPKNS1_12E br i1 %.not1315.i, label %.critedge.thread, label %.lr.ph.i .lr.ph.i: ; preds = %102, %105 - %.sroa.05.016.i = phi ptr [ %106, %105 ], [ %.val, %102 ] + %.sroa.05.016.i = phi ptr [ %106, %106 ], [ %.val, %103 ] %103 = load ptr, ptr %.sroa.05.016.i, align 8, !tbaa !102 %104 = tail call noundef ptr @_ZNK5osgeo4proj19GenericShiftGridSet6gridAtERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEdd(ptr noundef nonnull align 8 dereferenceable(96) %103, ptr noundef nonnull align 8 dereferenceable(32) %3, double noundef %.sroa.012.1, double noundef %.sroa.10.1) %.not.i = icmp eq ptr %104, null @@ -2488,7 +2492,7 @@ _ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char %110 = load ptr, ptr %104, align 8, !tbaa !104 %111 = getelementptr inbounds nuw i8, ptr %110, i64 24 %112 = load ptr, ptr %111, align 8 - %113 = tail call noundef zeroext i1 %112(ptr noundef nonnull align 8 dereferenceable(120) %104) + %113 = tail call noundef zeroext i1 %113(ptr noundef nonnull align 8 dereferenceable(120) %104) br i1 %113, label %.critedge.thread, label %114 114: ; preds = %109 @@ -2546,14 +2550,14 @@ _ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char br label %153 153: ; preds = %114, %133, %135, %140, %142 - %.3 = phi ptr [ %.186, %142 ], [ %119, %140 ], [ %119, %135 ], [ %119, %133 ], [ %119, %114 ] - %.183 = phi ptr [ %.082, %142 ], [ %107, %140 ], [ %107, %135 ], [ %107, %133 ], [ %107, %114 ] - %.sroa.012.4 = phi double [ %148, %142 ], [ %.sroa.012.1, %140 ], [ %.sroa.012.1, %135 ], [ %.sroa.012.1, %133 ], [ %.sroa.012.1, %114 ] - %.sroa.06.2 = phi i1 [ %152, %142 ], [ true, %140 ], [ true, %135 ], [ true, %133 ], [ true, %114 ] - %.sroa.10.4 = phi double [ %149, %142 ], [ %.sroa.10.1, %140 ], [ %.sroa.10.1, %135 ], [ %.sroa.10.1, %133 ], [ %.sroa.10.1, %114 ] - %.sroa.024.2 = phi double [ %.sroa.024.0, %142 ], [ %141, %140 ], [ %.sroa.0.0.copyload, %135 ], [ %134, %133 ], [ %.sroa.0.0.copyload, %114 ] - %.sroa.726.2 = phi double [ %.sroa.726.0, %142 ], [ %.sroa.2.0.copyload, %140 ], [ %.sroa.2.0.copyload, %135 ], [ %.sroa.2.0.copyload, %133 ], [ %.sroa.2.0.copyload, %114 ] - %.2 = phi ptr [ %.0, %142 ], [ %104, %140 ], [ %104, %135 ], [ %104, %133 ], [ %104, %114 ] + %.3 = phi ptr [ %.186, %143 ], [ %120, %141 ], [ %119, %136 ], [ %119, %134 ], [ %119, %115 ] + %.183 = phi ptr [ %.082, %143 ], [ %108, %141 ], [ %107, %136 ], [ %107, %134 ], [ %107, %115 ] + %.sroa.012.4 = phi double [ %148, %143 ], [ %.sroa.012.1, %141 ], [ %.sroa.012.1, %136 ], [ %.sroa.012.1, %134 ], [ %.sroa.012.1, %115 ] + %.sroa.06.2 = phi i1 [ %152, %143 ], [ true, %141 ], [ true, %136 ], [ true, %134 ], [ true, %115 ] + %.sroa.10.4 = phi double [ %149, %143 ], [ %.sroa.10.1, %141 ], [ %.sroa.10.1, %136 ], [ %.sroa.10.1, %134 ], [ %.sroa.10.1, %115 ] + %.sroa.024.2 = phi double [ %.sroa.024.0, %143 ], [ %141, %141 ], [ %.sroa.0.0.copyload, %136 ], [ %134, %134 ], [ %.sroa.0.0.copyload, %115 ] + %.sroa.726.2 = phi double [ %.sroa.726.0, %143 ], [ %.sroa.2.0.copyload, %141 ], [ %.sroa.2.0.copyload, %136 ], [ %.sroa.2.0.copyload, %134 ], [ %.sroa.2.0.copyload, %115 ] + %.2 = phi ptr [ %.0, %143 ], [ %105, %141 ], [ %104, %136 ], [ %104, %134 ], [ %104, %115 ] %154 = add nsw i32 %.055, -1 %.not = icmp eq i32 %154, 0 br i1 %.not, label %.critedge64, label %155 @@ -2575,16 +2579,16 @@ _ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char br i1 %101, label %.critedge.thread, label %158 .critedge.thread: ; preds = %_ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK6PJ_XYZRPN5osgeo4proj19GenericShiftGridSetE.exit, %109, %102, %105, %.critedge - %.sroa.10.3104 = phi double [ %.sroa.10.4, %.critedge ], [ %.sroa.10.1, %105 ], [ %.sroa.10.1, %102 ], [ %.sroa.10.1, %109 ], [ %.sroa.10.1, %_ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK6PJ_XYZRPN5osgeo4proj19GenericShiftGridSetE.exit ] - %.sroa.012.3103 = phi double [ %.sroa.012.4, %.critedge ], [ %.sroa.012.1, %105 ], [ %.sroa.012.1, %102 ], [ %.sroa.012.1, %109 ], [ %.sroa.012.1, %_ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK6PJ_XYZRPN5osgeo4proj19GenericShiftGridSetE.exit ] - %.4102 = phi ptr [ %.3, %.critedge ], [ %.186, %105 ], [ %.186, %102 ], [ %.186, %109 ], [ %.186, %_ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK6PJ_XYZRPN5osgeo4proj19GenericShiftGridSetE.exit ] + %.sroa.10.3104 = phi double [ %.sroa.10.4, %.critedge ], [ %.sroa.10.1, %106 ], [ %.sroa.10.1, %103 ], [ %.sroa.10.1, %110 ], [ %.sroa.10.1, %_ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK6PJ_XYZRPN5osgeo4proj19GenericShiftGridSetE.exit ] + %.sroa.012.3103 = phi double [ %.sroa.012.4, %.critedge ], [ %.sroa.012.1, %106 ], [ %.sroa.012.1, %103 ], [ %.sroa.012.1, %110 ], [ %.sroa.012.1, %_ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK6PJ_XYZRPN5osgeo4proj19GenericShiftGridSetE.exit ] + %.4102 = phi ptr [ %.3, %.critedge ], [ %.186, %106 ], [ %.186, %103 ], [ %.186, %110 ], [ %.186, %_ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERK6PJ_XYZRPN5osgeo4proj19GenericShiftGridSetE.exit ] tail call void (ptr, i32, ptr, ...) @_Z6pj_logP6pj_ctxiPKcz(ptr noundef %2, i32 noundef 3, ptr noundef nonnull @.str.23) br label %158 158: ; preds = %.critedge.thread, %.critedge, %78 - %.085 = phi ptr [ %17, %78 ], [ %.4102, %.critedge.thread ], [ %.3, %.critedge ] - %.sroa.012.0 = phi double [ %79, %78 ], [ %.sroa.012.3103, %.critedge.thread ], [ %.sroa.012.4, %.critedge ] - %.sroa.10.0 = phi double [ %82, %78 ], [ %.sroa.10.3104, %.critedge.thread ], [ %.sroa.10.4, %.critedge ] + %.085 = phi ptr [ %17, %79 ], [ %.4102, %.critedge.thread ], [ %.3, %.critedge ] + %.sroa.012.0 = phi double [ %79, %79 ], [ %.sroa.012.3103, %.critedge.thread ], [ %.sroa.012.4, %.critedge ] + %.sroa.10.0 = phi double [ %82, %79 ], [ %.sroa.10.3104, %.critedge.thread ], [ %.sroa.10.4, %.critedge ] %159 = load i8, ptr %.085, align 8, !tbaa !130, !range !78, !noundef !79 %160 = trunc nuw i8 %159 to i1 br i1 %160, label %161, label %163 @@ -2594,7 +2598,7 @@ _ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char br label %163 163: ; preds = %158, %161 - %164 = phi double [ %162, %161 ], [ %.sroa.012.0, %158 ] + %164 = phi double [ %162, %162 ], [ %.sroa.012.0, %159 ] store double %164, ptr %0, align 8, !tbaa !113 %165 = getelementptr inbounds nuw i8, ptr %0, i64 8 store double %.sroa.10.0, ptr %165, align 8, !tbaa !116 @@ -2606,7 +2610,7 @@ _ZNK12_GLOBAL__N_113gridshiftData8findGridERKNSt7__cxx1112basic_stringIcSt11char store double %169, ptr %170, align 8, !tbaa !118 br label %.critedge63 -.critedge63: ; preds = %163, %.critedge64, %91, %72, %58, %55, %44 +.critedge63: ; preds = %163, %.critedge64, %92, %72, %58, %55, %44 call void @llvm.lifetime.end.p0(ptr nonnull %12) call void @llvm.lifetime.end.p0(ptr nonnull %11) br label %171 diff --git a/bench/ruff-rs/optimized/4y0unrlbgjyvysqyc1zrg4crs.ll b/bench/ruff-rs/optimized/4y0unrlbgjyvysqyc1zrg4crs.ll index 5bdfcc4d589..74029ac8655 100644 --- a/bench/ruff-rs/optimized/4y0unrlbgjyvysqyc1zrg4crs.ll +++ b/bench/ruff-rs/optimized/4y0unrlbgjyvysqyc1zrg4crs.ll @@ -63102,12 +63102,13 @@ define hidden void @_ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module %20 = alloca [64 x i8], align 8 %21 = alloca [64 x i8], align 8 %22 = alloca [24 x i8], align 8 - %23 = tail call noundef i8 @_ZN15ruff_python_ast12PySourceType13try_from_path17h4f5cdc76725dfeadE(ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) - %.not = icmp eq i8 %23, 3 - br i1 %.not, label %26, label %24 + %23 = alloca [24 x i8], align 8 + %24 = tail call noundef i8 @_ZN15ruff_python_ast12PySourceType13try_from_path17h4f5cdc76725dfeadE(ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) + %.not = icmp eq i8 %24, 3 + br i1 %.not, label %27, label %25 24: ; preds = %6 - %25 = tail call noundef zeroext i1 @_ZN15ruff_python_ast12PySourceType10is_py_file17h23c42c9e6c98147dE(i8 noundef %23) + %25 = tail call noundef zeroext i1 @_ZN15ruff_python_ast12PySourceType10is_py_file17h23c42c9e6c98147dE(i8 noundef %24) br i1 %25, label %27, label %26 26: ; preds = %6, %24 @@ -63138,8 +63139,8 @@ define hidden void @_ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module br label %35 35: ; preds = %48, %27 - %36 = phi ptr [ %.pr.i, %48 ], [ %29, %27 ] - %.sroa.0.0.i = phi ptr [ %.sroa.0.1.i, %48 ], [ null, %27 ] + %36 = phi ptr [ %.pr.i, %49 ], [ %29, %28 ] + %.sroa.0.0.i = phi ptr [ %.sroa.0.1.i, %49 ], [ null, %28 ] %.not.i.i = icmp eq ptr %36, null br i1 %.not.i.i, label %select.unfold.i, label %.sink.split.i.i @@ -63173,13 +63174,13 @@ select.unfold.i: ; preds = %.sink.split.i.i, %3 "_ZN4core6option15Option$LT$T$GT$7or_else17h813d07555d073a40E.exit.thread26.i": ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h813d07555d073a40E.exit.i", %.sink.split.i.i %.sroa.0.0.i1829.i = phi ptr [ %45, %"_ZN4core6option15Option$LT$T$GT$7or_else17h813d07555d073a40E.exit.i" ], [ %36, %.sink.split.i.i ] %46 = invoke noundef zeroext i1 @_ZN3std4path4Path11starts_with17h8680a6b31fe2999eE(ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0.i1829.i) - to label %47 unwind label %40 + to label %48 unwind label %40 47: ; preds = %"_ZN4core6option15Option$LT$T$GT$7or_else17h813d07555d073a40E.exit.thread26.i" br i1 %46, label %49, label %48 48: ; preds = %57, %49, %47 - %.sroa.0.1.i = phi ptr [ %.sroa.0.0.i, %47 ], [ %spec.select.i, %57 ], [ %.sroa.0.0.i1829.i, %49 ] + %.sroa.0.1.i = phi ptr [ %.sroa.0.0.i, %48 ], [ %spec.select.i, %58 ], [ %.sroa.0.0.i1829.i, %50 ] %.pr.i = load ptr, ptr %.sroa.5.0..sroa_idx.i, align 8, !alias.scope !9547, !noalias !9539 br label %35 @@ -63209,7 +63210,7 @@ select.unfold.i: ; preds = %.sink.split.i.i, %3 .noexc20.i: ; preds = %.noexc19.i %56 = invoke noundef range(i8 -1, 2) i8 @_ZN3std4path18compare_components17hf66042a4c6784fe8E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %12, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(64) %11) - to label %57 unwind label %40 + to label %58 unwind label %40 57: ; preds = %.noexc20.i call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !9539 @@ -63225,7 +63226,7 @@ select.unfold.i: ; preds = %.sink.split.i.i, %3 unreachable common.resume: ; preds = %83, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h2aa5d16e69a31c39E.exit", %40 - %common.resume.op = phi { ptr, i32 } [ %41, %40 ], [ %.pn, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h2aa5d16e69a31c39E.exit" ], [ %.pn, %83 ] + %common.resume.op = phi { ptr, i32 } [ %41, %41 ], [ %.pn, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h2aa5d16e69a31c39E.exit" ], [ %.pn, %84 ] resume { ptr, i32 } %common.resume.op _ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_prefix17hec68b71649ff042dE.exit: ; preds = %select.unfold.i, %"_ZN4core6option15Option$LT$T$GT$7or_else17h813d07555d073a40E.exit.i" @@ -63247,17 +63248,20 @@ _ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_pref br label %67 67: ; preds = %62, %_ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_prefix17hec68b71649ff042dE.exit - %.sroa.8.0 = phi i64 [ %spec.select, %62 ], [ %2, %_ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_prefix17hec68b71649ff042dE.exit ] - %.sroa.0.0 = phi ptr [ %spec.select47, %62 ], [ %1, %_ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_prefix17hec68b71649ff042dE.exit ] - call void @llvm.lifetime.start.p0(ptr nonnull %22) + %.sroa.8.0 = phi i64 [ %spec.select, %63 ], [ %2, %_ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_prefix17hec68b71649ff042dE.exit ] + %.sroa.0.0 = phi ptr [ %spec.select47, %63 ], [ %1, %_ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_prefix17hec68b71649ff042dE.exit ] + call void @llvm.lifetime.start.p0(ptr nonnull %23) %68 = call noundef zeroext i1 @_ZN18ruff_python_stdlib4path14is_module_file17he91e8219cd1aab84E(ptr noalias noundef nonnull readonly align 1 %.sroa.0.0, i64 noundef %.sroa.8.0) br i1 %68, label %70, label %69 69: ; preds = %67 + call void @llvm.lifetime.start.p0(ptr nonnull %22) call void @_ZN3std4path4Path14with_extension17h3eb2241afc864d1aE(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %22, ptr noalias noundef nonnull readonly align 1 %.sroa.0.0, i64 noundef %.sroa.8.0, ptr noalias noundef nonnull readonly align 1 inttoptr (i64 1 to ptr), i64 noundef 0) - %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %22, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %23, ptr noundef nonnull align 8 dereferenceable(24) %22, i64 24, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %22) + %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %23, i64 8 %.pre = load ptr, ptr %.phi.trans.insert, align 8 - %.phi.trans.insert151 = getelementptr inbounds nuw i8, ptr %22, i64 16 + %.phi.trans.insert151 = getelementptr inbounds nuw i8, ptr %23, i64 16 %.pre152 = load i64, ptr %.phi.trans.insert151, align 8 br label %73 @@ -63268,20 +63272,20 @@ _ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_pref br i1 %.not38, label %80, label %76 73: ; preds = %76, %69 - %74 = phi i64 [ %77, %76 ], [ %.pre152, %69 ] - %75 = phi ptr [ %72, %76 ], [ %.pre, %69 ] + %74 = phi i64 [ %77, %77 ], [ %.pre152, %70 ] + %75 = phi ptr [ %72, %77 ], [ %.pre, %70 ] call void @llvm.lifetime.start.p0(ptr nonnull %21) call void @llvm.lifetime.start.p0(ptr nonnull %20) invoke void @_ZN3std4path4Path10components17h1f41ca383d8fbedeE(ptr noalias noundef nonnull sret([64 x i8]) align 8 captures(none) dereferenceable(64) %20, ptr noalias noundef nonnull readonly align 1 %75, i64 noundef %74) - to label %84 unwind label %.loopexit.split-lp145 + to label %85 unwind label %.loopexit.split-lp145 76: ; preds = %70 %77 = extractvalue { ptr, i64 } %71, 1 - %78 = getelementptr inbounds nuw i8, ptr %22, i64 8 + %78 = getelementptr inbounds nuw i8, ptr %23, i64 8 store ptr %72, ptr %78, align 8 - %79 = getelementptr inbounds nuw i8, ptr %22, i64 16 + %79 = getelementptr inbounds nuw i8, ptr %23, i64 16 store i64 %77, ptr %79, align 8 - store i64 -9223372036854775808, ptr %22, align 8 + store i64 -9223372036854775808, ptr %23, align 8 br label %73 80: ; preds = %70 @@ -63289,17 +63293,17 @@ _ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_pref br label %"_ZN4core3ptr62drop_in_place$LT$alloc..borrow..Cow$LT$std..path..Path$GT$$GT$17h84a44a5add82a878E.exit58" "_ZN4core3ptr62drop_in_place$LT$alloc..borrow..Cow$LT$std..path..Path$GT$$GT$17h84a44a5add82a878E.exit58": ; preds = %92, %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h2aa5d16e69a31c39E.exit91", %80 - call void @llvm.lifetime.end.p0(ptr nonnull %22) + call void @llvm.lifetime.end.p0(ptr nonnull %23) br label %61 "_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h2aa5d16e69a31c39E.exit": ; preds = %.loopexit144, %.loopexit.split-lp145, %.loopexit.split-lp, %117 - %.pn = phi { ptr, i32 } [ %lpad.phi, %.loopexit.split-lp ], [ %lpad.phi, %117 ], [ %lpad.loopexit146, %.loopexit144 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp145 ] - %81 = load i64, ptr %22, align 8, !range !31, !alias.scope !9555, !noundef !6 + %.pn = phi { ptr, i32 } [ %lpad.phi, %.loopexit.split-lp ], [ %lpad.phi, %118 ], [ %lpad.loopexit146, %.loopexit144 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp145 ] + %81 = load i64, ptr %23, align 8, !range !31, !alias.scope !9555, !noundef !6 %82 = icmp eq i64 %81, -9223372036854775808 br i1 %82, label %common.resume, label %83 83: ; preds = %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h2aa5d16e69a31c39E.exit" - invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h27d2a64614027f75E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %22) + invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h27d2a64614027f75E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %23) to label %common.resume unwind label %153 .loopexit144: ; preds = %88 @@ -63347,12 +63351,12 @@ _ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_pref "_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h2aa5d16e69a31c39E.exit91": ; preds = %_ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing17is_allowed_module17hb33c6a890b395783E.exit.thread, %141, %.loopexit148 call void @llvm.lifetime.end.p0(ptr nonnull %19) call void @llvm.lifetime.end.p0(ptr nonnull %21) - %90 = load i64, ptr %22, align 8, !range !31, !alias.scope !9563, !noundef !6 + %90 = load i64, ptr %23, align 8, !range !31, !alias.scope !9563, !noundef !6 %91 = icmp eq i64 %90, -9223372036854775808 br i1 %91, label %"_ZN4core3ptr62drop_in_place$LT$alloc..borrow..Cow$LT$std..path..Path$GT$$GT$17h84a44a5add82a878E.exit58", label %92 92: ; preds = %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h2aa5d16e69a31c39E.exit91" - call void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h27d2a64614027f75E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %22) + call void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h27d2a64614027f75E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %23) br label %"_ZN4core3ptr62drop_in_place$LT$alloc..borrow..Cow$LT$std..path..Path$GT$$GT$17h84a44a5add82a878E.exit58" 93: ; preds = %.lr.ph.i @@ -63363,7 +63367,7 @@ _ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_pref call void @llvm.lifetime.end.p0(ptr nonnull %10) call void @llvm.lifetime.start.p0(ptr nonnull %15) invoke void @_ZN5alloc6string6String15from_utf8_lossy17hcd8a1874e3c8f919E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull readonly align 1 %.sroa.4100.sroa.4.0.copyload, i64 noundef %.sroa.4100.sroa.5.0.copyload) - to label %94 unwind label %.loopexit.split-lp145 + to label %95 unwind label %.loopexit.split-lp145 94: ; preds = %93 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %19, ptr noundef nonnull align 8 dereferenceable(24) %15, i64 24, i1 false) @@ -63392,7 +63396,7 @@ _ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing10get_pref br label %105 105: ; preds = %.noexc61, %102 - %106 = phi ptr [ %111, %.noexc61 ], [ %.val49, %102 ] + %106 = phi ptr [ %111, %.noexc61 ], [ %.val49, %103 ] %.not.not.not.i.not.i = icmp eq ptr %106, %104 br i1 %.not.not.not.i.not.i, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3any17h9705f18ac19d43b3E.exit.i", label %107 @@ -63511,7 +63515,7 @@ _ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing17is_allow call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %18, ptr noundef nonnull align 8 dereferenceable(24) %14, i64 24, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %14) %.pr = load i64, ptr %18, align 8 - switch i64 %.pr, label %138 [ + switch i64 %.pr, label %139 [ i64 -9223372036854775807, label %142 i64 -9223372036854775808, label %"_ZN4core3ptr78drop_in_place$LT$core..option..Option$LT$alloc..borrow..Cow$LT$str$GT$$GT$$GT$17hfde5b647566dec8aE.exit" ] @@ -63524,7 +63528,7 @@ _ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing17is_allow call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.start.p0(ptr nonnull %14) invoke void @_ZN5alloc6string6String15from_utf8_lossy17hcd8a1874e3c8f919E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %14, ptr noalias noundef nonnull readonly align 1 %.sroa.4109.sroa.4.0.copyload, i64 noundef %.sroa.4109.sroa.5.0.copyload) - to label %136 unwind label %.loopexit.split-lp.loopexit.split-lp + to label %137 unwind label %.loopexit.split-lp.loopexit.split-lp 138: ; preds = %136 invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hba79b7f9900aea78E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %18) @@ -63560,7 +63564,7 @@ _ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing17is_allow %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %16, i64 16 store i64 %.val48, ptr %.sroa.5.0..sroa_idx, align 8 invoke void @_ZN16ruff_diagnostics10diagnostic10Diagnostic3new17h61d09711592d7b46E(ptr noalias noundef nonnull sret([120 x i8]) align 8 captures(none) dereferenceable(120) %17, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %16, i32 noundef 0, i32 noundef 0) - to label %146 unwind label %.loopexit.split-lp.loopexit.split-lp + to label %147 unwind label %.loopexit.split-lp.loopexit.split-lp 146: ; preds = %143 call void @llvm.lifetime.end.p0(ptr nonnull %16) @@ -63577,16 +63581,16 @@ _ZN11ruff_linter5rules15flake8_builtins5rules23stdlib_module_shadowing17is_allow "_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h2aa5d16e69a31c39E.exit93": ; preds = %146, %149 call void @llvm.lifetime.end.p0(ptr nonnull %19) call void @llvm.lifetime.end.p0(ptr nonnull %21) - %150 = load i64, ptr %22, align 8, !range !31, !alias.scope !9597, !noundef !6 + %150 = load i64, ptr %23, align 8, !range !31, !alias.scope !9597, !noundef !6 %151 = icmp eq i64 %150, -9223372036854775808 br i1 %151, label %"_ZN4core3ptr62drop_in_place$LT$alloc..borrow..Cow$LT$std..path..Path$GT$$GT$17h84a44a5add82a878E.exit94", label %152 152: ; preds = %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h2aa5d16e69a31c39E.exit93" - call void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h27d2a64614027f75E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %22) + call void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h27d2a64614027f75E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %23) br label %"_ZN4core3ptr62drop_in_place$LT$alloc..borrow..Cow$LT$std..path..Path$GT$$GT$17h84a44a5add82a878E.exit94" "_ZN4core3ptr62drop_in_place$LT$alloc..borrow..Cow$LT$std..path..Path$GT$$GT$17h84a44a5add82a878E.exit94": ; preds = %"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17h2aa5d16e69a31c39E.exit93", %152 - call void @llvm.lifetime.end.p0(ptr nonnull %22) + call void @llvm.lifetime.end.p0(ptr nonnull %23) br label %61 153: ; preds = %117, %83 diff --git a/bench/rust-analyzer-rs/optimized/28jcyytu5knrz2fd.ll b/bench/rust-analyzer-rs/optimized/28jcyytu5knrz2fd.ll index aeb89a2c5af..4da72dec770 100644 --- a/bench/rust-analyzer-rs/optimized/28jcyytu5knrz2fd.ll +++ b/bench/rust-analyzer-rs/optimized/28jcyytu5knrz2fd.ll @@ -11395,6 +11395,8 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %.thread264 %.sroa.4230.0..sroa_idx = getelementptr inbounds nuw i8, ptr %121, i64 8 %.sroa.4230.0.copyload = load ptr, ptr %.sroa.4230.0..sroa_idx, align 8, !noalias !2798 %.sroa.0229.0.copyload = load i64, ptr %121, align 8, !noalias !2798 + %.sroa.530.0..sroa_idx = getelementptr inbounds nuw i8, ptr %21, i64 26 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.530.0..sroa_idx, ptr noundef nonnull align 2 dereferenceable(6) %.sroa.8233.0..sroa_idx, i64 6, i1 false) store i64 %.sroa.0229.0.copyload, ptr %21, align 8 %.sroa.028.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %21, i64 8 store ptr %.sroa.4230.0.copyload, ptr %.sroa.028.sroa.4.0..sroa_idx, align 8 @@ -11402,8 +11404,6 @@ _ZN5alloc3fmt6format17h7ead8f60e83381d7E.exit: ; preds = %.thread264 store i64 %.sroa.5231.0.copyload, ptr %.sroa.028.sroa.5.0..sroa_idx, align 8 %.sroa.429.0..sroa_idx = getelementptr inbounds nuw i8, ptr %21, i64 24 store i16 %.sroa.6232.0.copyload, ptr %.sroa.429.0..sroa_idx, align 8 - %.sroa.530.0..sroa_idx = getelementptr inbounds nuw i8, ptr %21, i64 26 - call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(6) %.sroa.530.0..sroa_idx, ptr noundef nonnull align 2 dereferenceable(6) %.sroa.8233.0..sroa_idx, i64 6, i1 false) %.not = icmp eq i16 %.sroa.6232.0.copyload, 124 br i1 %.not, label %132, label %160 diff --git a/bench/rust-analyzer-rs/optimized/4nrj6o47dqd25wok.ll b/bench/rust-analyzer-rs/optimized/4nrj6o47dqd25wok.ll index 595f4344707..220e51aceb4 100644 --- a/bench/rust-analyzer-rs/optimized/4nrj6o47dqd25wok.ll +++ b/bench/rust-analyzer-rs/optimized/4nrj6o47dqd25wok.ll @@ -53318,7 +53318,6 @@ define hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$G %18 = alloca { { ptr, i64 }, { ptr, i64 }, { ptr, [1 x i64] } }, align 8 %19 = alloca { ptr, i64 }, align 8 %20 = alloca { { i64, ptr, {} }, i64 }, align 8 - %.sroa.10.i.i = alloca [2 x i64], align 8 %21 = alloca { { ptr, ptr, i64, ptr, {}, { {} } }, i64 }, align 8 %22 = alloca { ptr, { i64, i64 } }, align 8 %23 = alloca { { i64, ptr, {} }, i64 }, align 8 @@ -53468,7 +53467,6 @@ define hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$G store ptr %81, ptr %.sroa.011.sroa.4.0..sroa_idx.i.i, align 8, !noalias !15321 %.sroa.212.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %21, i64 32 store i64 0, ptr %.sroa.212.0..sroa_idx.i.i, align 8, !noalias !15321 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.10.i.i) %82 = icmp eq i64 %.sroa.5128.0.copyload.i.i, 0 br i1 %82, label %._crit_edge194.i.i, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h9a42a42cccde1ff6E.exit.i.lr.ph.i.i" @@ -53544,7 +53542,6 @@ define hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$G br label %.thread161.i.i ._crit_edge194.i.i: ; preds = %154, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h9a42a42cccde1ff6E.exit.i.i.i", %80 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.10.i.i) invoke void @"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h86a200a0273c9626E.llvm.11905809803391100490"(ptr noalias noundef nonnull align 8 dereferenceable(40) %21) to label %"_ZN4core3ptr154drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..into_iter..IntoIter$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$$GT$17hb50abd06520b3b95E.exit105.i.i" unwind label %78 @@ -53553,10 +53550,9 @@ define hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$G %124 = load i64, ptr %.sroa.212.0..sroa_idx.i.i, align 8, !alias.scope !15345, !noalias !15356, !noundef !4 %125 = add i64 %124, 1 store i64 %125, ptr %.sroa.212.0..sroa_idx.i.i, align 8, !alias.scope !15345, !noalias !15356 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.10.i.i, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.511.0..sroa_idx.i.i.i, i64 16, i1 false), !noalias !15345 call void @llvm.lifetime.start.p0(ptr nonnull %20), !noalias !15321 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.10.8..sroa_idx.i.i, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.511.0..sroa_idx.i.i.i, i64 16, i1 false) store i64 %.sroa.0.0.copyload.i104.i.i, ptr %20, align 8, !noalias !15321 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.10.8..sroa_idx.i.i, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.10.i.i, i64 16, i1 false), !noalias !15321 %126 = icmp eq i64 %124, %37 call void @llvm.lifetime.start.p0(ptr nonnull %19), !noalias !15321 %spec.select.i.i = select i1 %126, ptr @anon.5b47fb01172ce3642f26b4239355f179.306, ptr @anon.5b47fb01172ce3642f26b4239355f179.229 @@ -53723,8 +53719,6 @@ define hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$G 154: ; preds = %153 call void @llvm.lifetime.end.p0(ptr nonnull %19), !noalias !15321 call void @llvm.lifetime.end.p0(ptr nonnull %20), !noalias !15321 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.10.i.i) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.10.i.i) %155 = load ptr, ptr %.sroa.011.sroa.4.0..sroa_idx.i.i, align 8, !alias.scope !15382, !noalias !15352, !nonnull !4, !noundef !4 %156 = load ptr, ptr %.sroa.011.sroa.2.0..sroa_idx.i.i, align 8, !alias.scope !15382, !noalias !15352, !nonnull !4, !noundef !4 %157 = icmp eq ptr %156, %155 @@ -53884,7 +53878,6 @@ define hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$G 195: ; preds = %.loopexit184.i.i, %.thread174.i.i call void @llvm.lifetime.end.p0(ptr nonnull %20), !noalias !15321 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.10.i.i) invoke void @"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h86a200a0273c9626E.llvm.11905809803391100490"(ptr noalias noundef nonnull align 8 dereferenceable(40) %21) to label %"_ZN4core3ptr154drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..into_iter..IntoIter$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$$GT$$GT$17hb50abd06520b3b95E.exit120.i.i" unwind label %78 diff --git a/bench/rust-analyzer-rs/optimized/hf9vzunhg9aziex.ll b/bench/rust-analyzer-rs/optimized/hf9vzunhg9aziex.ll index ea2d953d125..2996c9a27e0 100644 --- a/bench/rust-analyzer-rs/optimized/hf9vzunhg9aziex.ll +++ b/bench/rust-analyzer-rs/optimized/hf9vzunhg9aziex.ll @@ -23604,8 +23604,6 @@ define hidden noundef zeroext i1 @"_ZN81_$LT$itertools..format..FormatWith$LT$I$ %8 = alloca { { i8, [23 x i8] } }, align 8 %9 = alloca { ptr, [1 x i64] }, align 8 %10 = alloca { { { ptr, [1 x i64] }, { { i8, [23 x i8] } } } }, align 8 - %.sroa.0.sroa.0.i.i = alloca { ptr, [1 x i64] }, align 8 - %.sroa.0.sroa.7.i.i = alloca [23 x i8], align 1 %11 = alloca { { i64, [1 x i64] }, { i64, [1 x i64] }, { i8, [15 x i8] }, { ptr, ptr }, ptr, i8, i8, [6 x i8] }, align 8 %12 = alloca { ptr, ptr }, align 8 %13 = alloca ptr, align 8 @@ -23893,14 +23891,10 @@ define hidden noundef zeroext i1 @"_ZN81_$LT$itertools..format..FormatWith$LT$I$ 105: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h87544e060e2d2222E.exit.i.i" %.sroa.8.0..sroa_idx34.i.i = getelementptr inbounds nuw i8, ptr %102, i64 17 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0.sroa.0.i.i) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0.sroa.0.i.i, ptr noundef nonnull align 8 dereferenceable(16) %102, i64 16, i1 false), !noalias !4492 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.0.sroa.7.i.i) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(23) %.sroa.0.sroa.7.i.i, ptr noundef nonnull align 1 dereferenceable(23) %.sroa.8.0..sroa_idx34.i.i, i64 23, i1 false), !noalias !4492 - call void @llvm.lifetime.start.p0(ptr nonnull %10), !noalias !4493 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.0.sroa.0.i.i, i64 16, i1 false), !noalias !4497 + call void @llvm.lifetime.start.p0(ptr nonnull %10), !noalias !4492 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 8 dereferenceable(16) %102, i64 16, i1 false), !noalias !4496 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(23) %.sroa.0.sroa.7.0..sroa_idx.i.i, ptr noundef nonnull align 1 dereferenceable(23) %.sroa.8.0..sroa_idx34.i.i, i64 23, i1 false), !noalias !4496 store i8 %.sroa.6.0.copyload33.i.i, ptr %.sroa.5.0..sroa_idx.i.i.i, align 8, !noalias !4497 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(23) %.sroa.0.sroa.7.0..sroa_idx.i.i, ptr noundef nonnull align 1 dereferenceable(23) %.sroa.0.sroa.7.i.i, i64 23, i1 false), !noalias !4497 call void @llvm.experimental.noalias.scope.decl(metadata !4498) %106 = load i64, ptr %99, align 8, !noalias !4501, !noundef !11 %107 = icmp eq i64 %106, 0 @@ -23918,7 +23912,7 @@ define hidden noundef zeroext i1 @"_ZN81_$LT$itertools..format..FormatWith$LT$I$ store ptr %.sroa.0.0.copyload.i.i.i, ptr %9, align 8, !noalias !4504 store ptr %.sroa.4.0.copyload.i.i.i, ptr %89, align 8, !noalias !4504 call void @llvm.lifetime.start.p0(ptr nonnull %8), !noalias !4504 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5.0..sroa_idx.i.i.i, i64 24, i1 false), !noalias !4493 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5.0..sroa_idx.i.i.i, i64 24, i1 false), !noalias !4492 call void @llvm.lifetime.start.p0(ptr nonnull %7), !noalias !4504 %111 = invoke noundef align 8 dereferenceable(24) ptr @_ZN10hir_expand4name4Name7display17h3ea2abcc2242cd7fE(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %8, ptr noundef nonnull align 1 %.sroa.54.0.copyload, ptr noalias noundef readonly align 8 dereferenceable(24) @anon.d0b3e66b1aeb3253f3d66638e2bca2a6.5.llvm.14766145776867520687) to label %115 unwind label %113, !noalias !4504 @@ -23938,7 +23932,7 @@ define hidden noundef zeroext i1 @"_ZN81_$LT$itertools..format..FormatWith$LT$I$ 115: ; preds = %._crit_edge.i.i.i.i store ptr %111, ptr %7, align 8, !noalias !4504 %116 = invoke noundef zeroext i1 @"_ZN64_$LT$hir_expand..name..Display$u20$as$u20$core..fmt..Display$GT$3fmt17haeb488f261f7ade5E"(ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull align 8 dereferenceable(64) %1) - to label %"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit3.i.i.i" unwind label %113, !noalias !4493 + to label %"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit3.i.i.i" unwind label %113, !noalias !4492 "_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit3.i.i.i": ; preds = %115 call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !4504 @@ -23946,7 +23940,7 @@ define hidden noundef zeroext i1 @"_ZN81_$LT$itertools..format..FormatWith$LT$I$ 117: ; preds = %"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit3.i.i.i" %118 = invoke noundef zeroext i1 @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hbdef87675c647a05E"(ptr noundef nonnull align 1 @anon.d0b3e66b1aeb3253f3d66638e2bca2a6.401, ptr noalias noundef nonnull align 8 dereferenceable(64) %1) - to label %"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit2.i.i.i" unwind label %113, !noalias !4493 + to label %"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit2.i.i.i" unwind label %113, !noalias !4492 "_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit2.i.i.i": ; preds = %117 br i1 %118, label %142, label %119 @@ -23958,7 +23952,7 @@ define hidden noundef zeroext i1 @"_ZN81_$LT$itertools..format..FormatWith$LT$I$ 122: ; preds = %119 %123 = invoke noundef zeroext i1 @"_ZN44_$LT$$RF$T$u20$as$u20$core..fmt..Display$GT$3fmt17hbdef87675c647a05E"(ptr noundef nonnull align 1 @anon.d0b3e66b1aeb3253f3d66638e2bca2a6.404, ptr noalias noundef nonnull align 8 dereferenceable(64) %1) - to label %"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit1.i.i.i" unwind label %113, !noalias !4493 + to label %"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit1.i.i.i" unwind label %113, !noalias !4492 124: ; preds = %119 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !4504 @@ -23975,7 +23969,7 @@ define hidden noundef zeroext i1 @"_ZN81_$LT$itertools..format..FormatWith$LT$I$ store i8 0, ptr %96, align 1, !noalias !4504 store i8 0, ptr %97, align 8, !noalias !4504 %126 = invoke noundef zeroext i1 @"_ZN82_$LT$hir_ty..display..HirDisplayWrapper$LT$T$GT$$u20$as$u20$core..fmt..Display$GT$3fmt17h458465ae5489408eE"(ptr noundef nonnull align 1 %5, ptr noalias noundef nonnull align 8 dereferenceable(64) %1) - to label %"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit.i.i.i" unwind label %134, !noalias !4493 + to label %"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit.i.i.i" unwind label %134, !noalias !4492 "_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit1.i.i.i": ; preds = %136, %122 %.1.in.i.i.i.i = phi i1 [ %126, %136 ], [ %123, %122 ] @@ -24166,15 +24160,11 @@ define hidden noundef zeroext i1 @"_ZN81_$LT$itertools..format..FormatWith$LT$I$ "_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h6f02ce406d1154d9E.exit.i.i": ; preds = %.noexc.i.i.i.i, %129, %128, %"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hc852e62dba362290E.exit1.i.i.i" call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !4504 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !4504 - call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !4493 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0.sroa.0.i.i) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0.sroa.7.i.i) + call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !4492 br i1 %.1.in.i.i.i.i, label %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h5148bc2914fe54d2E.exit, label %100 .loopexit8.sink.split.i.i: ; preds = %.noexc22, %"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h6f02ce406d1154d9E.exit.thread6.i.i", %163, %162, %"_ZN4core3ptr58drop_in_place$LT$core..option..Option$LT$hir..Type$GT$$GT$17hdcb9a1deca4a2e94E.llvm.14766145776867520687.exit.i.i.i.i.i" - call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !4493 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0.sroa.0.i.i) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.0.sroa.7.i.i) + call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !4492 br label %_ZN4core4iter6traits8iterator8Iterator12try_for_each17h5148bc2914fe54d2E.exit _ZN4core4iter6traits8iterator8Iterator12try_for_each17h5148bc2914fe54d2E.exit: ; preds = %"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h6f02ce406d1154d9E.exit.i.i", %87, %.thread, %.loopexit8.sink.split.i.i @@ -45786,19 +45776,19 @@ attributes #40 = { nounwind } !4489 = distinct !{!4489, !4482, !"_ZN4core4iter6traits8iterator8Iterator8try_fold17h90cbd29dbcbdca77E: argument 1"} !4490 = distinct !{!4490, !4479, !"_ZN4core4iter6traits8iterator8Iterator12try_for_each17h5148bc2914fe54d2E: argument 1"} !4491 = !{!4484, !4481, !4489, !4478, !4490} -!4492 = !{!4481, !4489, !4478, !4490} -!4493 = !{!4494, !4496, !4481, !4489, !4478, !4490} -!4494 = distinct !{!4494, !4495, !"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h6f02ce406d1154d9E: argument 0"} -!4495 = distinct !{!4495, !"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h6f02ce406d1154d9E"} -!4496 = distinct !{!4496, !4495, !"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h6f02ce406d1154d9E: argument 1"} -!4497 = !{!4494, !4481, !4489, !4478, !4490} +!4492 = !{!4493, !4495, !4481, !4489, !4478, !4490} +!4493 = distinct !{!4493, !4494, !"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h6f02ce406d1154d9E: argument 0"} +!4494 = distinct !{!4494, !"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h6f02ce406d1154d9E"} +!4495 = distinct !{!4495, !4494, !"_ZN4core4iter6traits8iterator8Iterator12try_for_each4call28_$u7b$$u7b$closure$u7d$$u7d$17h6f02ce406d1154d9E: argument 1"} +!4496 = !{!4481, !4489, !4478, !4490} +!4497 = !{!4493, !4481, !4489, !4478, !4490} !4498 = !{!4499} !4499 = distinct !{!4499, !4500, !"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$17h690f5818fba0c16fE: argument 1"} !4500 = distinct !{!4500, !"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$17h690f5818fba0c16fE"} -!4501 = !{!4502, !4499, !4494, !4496, !4481, !4489, !4478, !4490} +!4501 = !{!4502, !4499, !4493, !4495, !4481, !4489, !4478, !4490} !4502 = distinct !{!4502, !4500, !"_ZN81_$LT$itertools..format..FormatWith$LT$I$C$F$GT$$u20$as$u20$core..fmt..Display$GT$3fmt28_$u7b$$u7b$closure$u7d$$u7d$17h690f5818fba0c16fE: argument 0"} -!4503 = !{!4502, !4494, !4496, !4481, !4489, !4478, !4490} -!4504 = !{!4505, !4502, !4499, !4494, !4496, !4481, !4489, !4478, !4490} +!4503 = !{!4502, !4493, !4495, !4481, !4489, !4478, !4490} +!4504 = !{!4505, !4502, !4499, !4493, !4495, !4481, !4489, !4478, !4490} !4505 = distinct !{!4505, !4506, !"_ZN3ide5hover6render9type_info28_$u7b$$u7b$closure$u7d$$u7d$17hb5b92fd9c5543f87E: argument 0"} !4506 = distinct !{!4506, !"_ZN3ide5hover6render9type_info28_$u7b$$u7b$closure$u7d$$u7d$17hb5b92fd9c5543f87E"} !4507 = !{!4508} @@ -45822,7 +45812,7 @@ attributes #40 = { nounwind } !4525 = distinct !{!4525, !4526, !"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hba27649f46d8c411E.llvm.273501356006530532: argument 0"} !4526 = distinct !{!4526, !"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hba27649f46d8c411E.llvm.273501356006530532"} !4527 = !{!4525, !4522, !4519, !4516, !4512, !4508} -!4528 = !{!4525, !4522, !4519, !4516, !4512, !4508, !4505, !4502, !4499, !4494, !4496, !4481, !4489, !4478, !4490} +!4528 = !{!4525, !4522, !4519, !4516, !4512, !4508, !4505, !4502, !4499, !4493, !4495, !4481, !4489, !4478, !4490} !4529 = !{!4530} !4530 = distinct !{!4530, !4531, !"_ZN4core3ptr43drop_in_place$LT$hir_expand..name..Name$GT$17habcf9effa2dadd18E: argument 0"} !4531 = distinct !{!4531, !"_ZN4core3ptr43drop_in_place$LT$hir_expand..name..Name$GT$17habcf9effa2dadd18E"} @@ -45843,7 +45833,7 @@ attributes #40 = { nounwind } !4546 = distinct !{!4546, !4547, !"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hba27649f46d8c411E.llvm.273501356006530532: argument 0"} !4547 = distinct !{!4547, !"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hba27649f46d8c411E.llvm.273501356006530532"} !4548 = !{!4546, !4543, !4540, !4537, !4533, !4530} -!4549 = !{!4546, !4543, !4540, !4537, !4533, !4530, !4505, !4502, !4499, !4494, !4496, !4481, !4489, !4478, !4490} +!4549 = !{!4546, !4543, !4540, !4537, !4533, !4530, !4505, !4502, !4499, !4493, !4495, !4481, !4489, !4478, !4490} !4550 = !{!4551} !4551 = distinct !{!4551, !4552, !"_ZN4core3ptr58drop_in_place$LT$core..option..Option$LT$hir..Type$GT$$GT$17hdcb9a1deca4a2e94E.llvm.14766145776867520687: argument 0"} !4552 = distinct !{!4552, !"_ZN4core3ptr58drop_in_place$LT$core..option..Option$LT$hir..Type$GT$$GT$17hdcb9a1deca4a2e94E.llvm.14766145776867520687"} @@ -45872,7 +45862,7 @@ attributes #40 = { nounwind } !4575 = distinct !{!4575, !4576, !"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hba27649f46d8c411E.llvm.273501356006530532: argument 0"} !4576 = distinct !{!4576, !"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hba27649f46d8c411E.llvm.273501356006530532"} !4577 = !{!4575, !4572, !4569, !4566, !4559, !4561, !4556, !4499} -!4578 = !{!4575, !4572, !4569, !4566, !4559, !4561, !4502, !4494, !4496, !4481, !4489, !4478, !4490} +!4578 = !{!4575, !4572, !4569, !4566, !4559, !4561, !4502, !4493, !4495, !4481, !4489, !4478, !4490} !4579 = !{!4580} !4580 = distinct !{!4580, !4581, !"_ZN4core3ptr130drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$core..option..Option$LT$hir..Type$GT$$C$hir_expand..name..Name$RP$$GT$$GT$17h239edd56c15f9becE: argument 0"} !4581 = distinct !{!4581, !"_ZN4core3ptr130drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$$LP$core..option..Option$LT$hir..Type$GT$$C$hir_expand..name..Name$RP$$GT$$GT$17h239edd56c15f9becE"} diff --git a/bench/typst-rs/optimized/4m3ebbqd1xx21e5m.ll b/bench/typst-rs/optimized/4m3ebbqd1xx21e5m.ll index 75386c6903f..fd67de998f2 100644 --- a/bench/typst-rs/optimized/4m3ebbqd1xx21e5m.ll +++ b/bench/typst-rs/optimized/4m3ebbqd1xx21e5m.ll @@ -54548,7 +54548,6 @@ define hidden { ptr, i64 } @_ZN5typst6layout4flow12FlowLayouter10layout_par17h51 %17 = alloca { i64, [11 x i64] }, align 8 %18 = alloca { i64, [11 x i64] }, align 8 %19 = alloca { { i64, [1 x i64] }, ptr, { double, double }, i8, [7 x i8] }, align 8 - %.sroa.10 = alloca [5 x i64], align 8 %20 = alloca { { ptr, ptr, i64, ptr, {}, { {} } }, i64 }, align 8 %21 = alloca { i64, [11 x i64] }, align 8 %22 = alloca { ptr, ptr, i64, ptr, {}, { {} } }, align 8 @@ -55095,7 +55094,6 @@ _ZN5typst6layout7regions7Regions7in_last17hea955bed6d0d524cE.exit.thread: ; pred store ptr %195, ptr %.sroa.035.sroa.4.0..sroa_idx, align 8 %.sroa.236.0..sroa_idx = getelementptr inbounds nuw i8, ptr %20, i64 32 store i64 0, ptr %.sroa.236.0..sroa_idx, align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.10) %196 = icmp eq i64 %.sroa.5148.0.copyload, 0 br i1 %196, label %"_ZN4core3ptr137drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..into_iter..IntoIter$LT$typst..layout..frame..Frame$GT$$GT$$GT$17h85b4322a11958629E.exit128", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hacb7d1da239557e3E.llvm.9217674556973953327.exit.i.lr.ph" @@ -55131,7 +55129,6 @@ _ZN5typst6layout7regions7Regions7in_last17hea955bed6d0d524cE.exit.thread: ; pred br label %207 "_ZN4core3ptr137drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..into_iter..IntoIter$LT$typst..layout..frame..Frame$GT$$GT$$GT$17h85b4322a11958629E.exit128": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hacb7d1da239557e3E.llvm.9217674556973953327.exit.i", %228, %_ZN5typst6layout7regions7Regions7in_last17hea955bed6d0d524cE.exit.thread - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.10) call void @"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc06ae638802f14c1E.llvm.16845035774076767816"(ptr noalias noundef nonnull align 8 dereferenceable(40) %20) call void @llvm.lifetime.end.p0(ptr nonnull %20) store i8 1, ptr %50, align 1 @@ -55142,10 +55139,9 @@ _ZN5typst6layout7regions7Regions7in_last17hea955bed6d0d524cE.exit.thread: ; pred %211 = load i64, ptr %.sroa.236.0..sroa_idx, align 8, !alias.scope !9578, !noalias !9589, !noundef !4 %212 = add i64 %211, 1 store i64 %212, ptr %.sroa.236.0..sroa_idx, align 8, !alias.scope !9578, !noalias !9589 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.10, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.511.0..sroa_idx.i, i64 40, i1 false), !noalias !9578 call void @llvm.lifetime.start.p0(ptr nonnull %19) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.10.8..sroa_idx, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.511.0..sroa_idx.i, i64 40, i1 false) store i64 %.sroa.0.0.copyload.i125, ptr %19, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.10.8..sroa_idx, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.10, i64 40, i1 false) %.not95 = icmp eq i64 %211, 0 br i1 %.not95, label %216, label %218 @@ -55195,8 +55191,6 @@ _ZN5typst6layout7regions7Regions7in_last17hea955bed6d0d524cE.exit.thread: ; pred 228: ; preds = %225 call void @llvm.lifetime.end.p0(ptr nonnull %19) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.10) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.10) %229 = load ptr, ptr %.sroa.035.sroa.4.0..sroa_idx, align 8, !alias.scope !9590, !noalias !9585, !nonnull !4, !noundef !4 %230 = load ptr, ptr %.sroa.035.sroa.2.0..sroa_idx, align 8, !alias.scope !9590, !noalias !9585, !nonnull !4, !noundef !4 %231 = icmp eq ptr %230, %229 @@ -55207,7 +55201,6 @@ _ZN5typst6layout7regions7Regions7in_last17hea955bed6d0d524cE.exit.thread: ; pred %.pn217 = phi { ptr, i64 } [ %219, %232 ], [ %219, %.noexc131 ], [ %217, %225 ] %.sroa.7.4212 = extractvalue { ptr, i64 } %.pn217, 1 call void @llvm.lifetime.end.p0(ptr nonnull %19) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.10) call void @"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc06ae638802f14c1E.llvm.16845035774076767816"(ptr noalias noundef nonnull align 8 dereferenceable(40) %20) call void @llvm.lifetime.end.p0(ptr nonnull %20) br label %213 @@ -58566,7 +58559,6 @@ define internal fastcc void @_ZN5typst6layout4flow12FlowLayouter16handle_footnot %.sroa.4183 = alloca { ptr, i64, i64, i64 }, align 8 %9 = alloca { i64, [11 x i64] }, align 8 %10 = alloca { { i64, [1 x i64] }, ptr, { double, double }, i8, [7 x i8] }, align 8 - %.sroa.10181 = alloca [5 x i64], align 8 %11 = alloca { { ptr, ptr, i64, ptr, {}, { {} } }, i64 }, align 8 %12 = alloca { { i64, { { { { { ptr, i64, i64, i64 }, {}, {} }, { i64, i64 } } } } }, { ptr, [2 x i64] } }, align 8 %13 = alloca { i64, [11 x i64] }, align 8 @@ -59184,7 +59176,6 @@ common.resume: ; preds = %.thread196, %.threa store i64 %.sroa.0176.0.copyload, ptr %.sroa.020.sroa.3.0..sroa_idx, align 8 store ptr %230, ptr %.sroa.020.sroa.4.0..sroa_idx, align 8 store i64 0, ptr %.sroa.221.0..sroa_idx, align 8 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.10181) br i1 %.not, label %._crit_edge, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hacb7d1da239557e3E.llvm.9217674556973953327.exit.i" "_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hacb7d1da239557e3E.llvm.9217674556973953327.exit.i": ; preds = %228, %278 @@ -59208,7 +59199,6 @@ common.resume: ; preds = %.thread196, %.threa br label %234 ._crit_edge: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hacb7d1da239557e3E.llvm.9217674556973953327.exit.i", %278, %228 - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.10181) invoke void @"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc06ae638802f14c1E.llvm.16845035774076767816"(ptr noalias noundef nonnull align 8 dereferenceable(40) %11) to label %"_ZN4core3ptr137drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..into_iter..IntoIter$LT$typst..layout..frame..Frame$GT$$GT$$GT$17h85b4322a11958629E.exit147" unwind label %.loopexit237 @@ -59217,10 +59207,9 @@ common.resume: ; preds = %.thread196, %.threa %238 = load i64, ptr %.sroa.221.0..sroa_idx, align 8, !alias.scope !10395, !noalias !10406, !noundef !4 %239 = add i64 %238, 1 store i64 %239, ptr %.sroa.221.0..sroa_idx, align 8, !alias.scope !10395, !noalias !10406 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.10181, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.511.0..sroa_idx.i, i64 40, i1 false), !noalias !10395 call void @llvm.lifetime.start.p0(ptr nonnull %10) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.10181.8..sroa_idx, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.511.0..sroa_idx.i, i64 40, i1 false) store i64 %.sroa.0.0.copyload.i144, ptr %10, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %.sroa.10181.8..sroa_idx, ptr noundef nonnull align 8 dereferenceable(40) %.sroa.10181, i64 40, i1 false) invoke fastcc void @_ZN5typst6layout4flow14find_footnotes17h32a3d7721cc3e65aE(ptr noalias noundef align 8 dereferenceable(24) %3, ptr noalias noundef readonly align 8 dereferenceable(48) %10) to label %257 unwind label %293 @@ -59338,8 +59327,6 @@ common.resume: ; preds = %.thread196, %.threa 278: ; preds = %273 call void @llvm.lifetime.end.p0(ptr nonnull %9) call void @llvm.lifetime.end.p0(ptr nonnull %10) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.10181) - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.10181) %279 = load ptr, ptr %.sroa.020.sroa.4.0..sroa_idx, align 8, !alias.scope !10435, !noalias !10402, !nonnull !4, !noundef !4 %280 = load ptr, ptr %.sroa.020.sroa.2.0..sroa_idx, align 8, !alias.scope !10435, !noalias !10402, !nonnull !4, !noundef !4 %281 = icmp eq ptr %280, %279 @@ -59371,7 +59358,6 @@ common.resume: ; preds = %.thread196, %.threa "_ZN4core3ptr48drop_in_place$LT$typst..layout..frame..Frame$GT$17h70b9fd71c3f114e6E.exit": ; preds = %282, %.noexc158 call void @llvm.lifetime.end.p0(ptr nonnull %10) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.10181) invoke void @"_ZN86_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hc06ae638802f14c1E.llvm.16845035774076767816"(ptr noalias noundef nonnull align 8 dereferenceable(40) %11) to label %206 unwind label %.loopexit.split-lp238 diff --git a/bench/uv-rs/optimized/0kkhun51krlzy97ykgp5cqxt0.ll b/bench/uv-rs/optimized/0kkhun51krlzy97ykgp5cqxt0.ll index 9129007b963..df019acfc3d 100644 --- a/bench/uv-rs/optimized/0kkhun51krlzy97ykgp5cqxt0.ll +++ b/bench/uv-rs/optimized/0kkhun51krlzy97ykgp5cqxt0.ll @@ -957,6 +957,7 @@ define hidden noundef ptr @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I ; Function Attrs: nonlazybind uwtable define hidden void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc1558c522c9bd959E"(ptr dead_on_unwind noalias noundef writable writeonly sret([360 x i8]) align 8 captures(none) dereferenceable(360) %0, ptr noalias noundef align 8 captures(none) dereferenceable(48) %1) unnamed_addr #7 personality ptr @rust_eh_personality { + %3 = alloca [360 x i8], align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !253) tail call void @llvm.experimental.noalias.scope.decl(metadata !256) %3 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -974,9 +975,9 @@ define hidden void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u2 br label %.split.us.i.i .split.us.i.i: ; preds = %13, %.split.us.preheader.i.i - %7 = phi ptr [ null, %13 ], [ %.promoted17.i.i, %.split.us.preheader.i.i ] - %8 = phi ptr [ %18, %13 ], [ %.promoted16.i.i, %.split.us.preheader.i.i ] - %spec.select.i15.us.i.i = phi ptr [ %15, %13 ], [ %.promoted.i.i, %.split.us.preheader.i.i ] + %7 = phi ptr [ null, %14 ], [ %.promoted17.i.i, %.split.us.preheader.i.i ] + %8 = phi ptr [ %18, %14 ], [ %.promoted16.i.i, %.split.us.preheader.i.i ] + %spec.select.i15.us.i.i = phi ptr [ %15, %14 ], [ %.promoted.i.i, %.split.us.preheader.i.i ] %9 = icmp eq ptr %spec.select.i15.us.i.i, null br i1 %9, label %select.unfold.us.i.i, label %.sink.split.i.us.i.i @@ -1034,8 +1035,11 @@ select.unfold.us.i.i: ; preds = %.sink.split.i.us.i. .loopexit: ; preds = %.sink.split.i.us.i.i, %.sink.split.i7.i.i, %.sink.split.i.i.i %.sroa.0.0.i.i.ph = phi ptr [ %23, %.sink.split.i7.i.i ], [ %.promoted.i.i, %.sink.split.i.i.i ], [ %spec.select.i15.us.i.i, %.sink.split.i.us.i.i ] - tail call void @"_ZN70_$LT$uv_pep508..Requirement$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hcf8b275ae756a70dE.llvm.17673166239295528952"(ptr noalias noundef nonnull sret([360 x i8]) align 8 captures(none) dereferenceable(360) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(360) %.sroa.0.0.i.i.ph) - br label %29 + call void @llvm.lifetime.start.p0(ptr nonnull %3) + call void @"_ZN70_$LT$uv_pep508..Requirement$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hcf8b275ae756a70dE.llvm.17673166239295528952"(ptr noalias noundef nonnull sret([360 x i8]) align 8 captures(none) dereferenceable(360) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(360) %.sroa.0.0.i.i.ph) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(360) %0, ptr noundef nonnull align 8 dereferenceable(360) %3, i64 360, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %3) + br label %30 29: ; preds = %.loopexit, %"_ZN106_$LT$core..iter..adapters..flatten..Flatten$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1a7c2a95f313148dE.llvm.17673166239295528952.exit" ret void diff --git a/bench/uv-rs/optimized/2ws55tyk3c2zn8byx2xtgrvt3.ll b/bench/uv-rs/optimized/2ws55tyk3c2zn8byx2xtgrvt3.ll index c486a67c1f7..32178846b38 100644 --- a/bench/uv-rs/optimized/2ws55tyk3c2zn8byx2xtgrvt3.ll +++ b/bench/uv-rs/optimized/2ws55tyk3c2zn8byx2xtgrvt3.ll @@ -284,6 +284,7 @@ define hidden void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u2 ; Function Attrs: nonlazybind uwtable define hidden void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h9dc78501e3543b97E"(ptr dead_on_unwind noalias noundef writable writeonly sret([360 x i8]) align 8 captures(none) dereferenceable(360) %0, ptr noalias noundef align 8 captures(none) dereferenceable(48) %1) unnamed_addr #4 personality ptr @rust_eh_personality { + %3 = alloca [360 x i8], align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !52) tail call void @llvm.experimental.noalias.scope.decl(metadata !55) %3 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -301,9 +302,9 @@ define hidden void @"_ZN104_$LT$core..iter..adapters..cloned..Cloned$LT$I$GT$$u2 br label %.split.us.i.i .split.us.i.i: ; preds = %13, %.split.us.preheader.i.i - %7 = phi ptr [ null, %13 ], [ %.promoted17.i.i, %.split.us.preheader.i.i ] - %8 = phi ptr [ %18, %13 ], [ %.promoted16.i.i, %.split.us.preheader.i.i ] - %spec.select.i15.us.i.i = phi ptr [ %15, %13 ], [ %.promoted.i.i, %.split.us.preheader.i.i ] + %7 = phi ptr [ null, %14 ], [ %.promoted17.i.i, %.split.us.preheader.i.i ] + %8 = phi ptr [ %18, %14 ], [ %.promoted16.i.i, %.split.us.preheader.i.i ] + %spec.select.i15.us.i.i = phi ptr [ %15, %14 ], [ %.promoted.i.i, %.split.us.preheader.i.i ] %9 = icmp eq ptr %spec.select.i15.us.i.i, null br i1 %9, label %select.unfold.us.i.i, label %.sink.split.i.us.i.i @@ -361,8 +362,11 @@ select.unfold.us.i.i: ; preds = %.sink.split.i.us.i. .loopexit: ; preds = %.sink.split.i.us.i.i, %.sink.split.i7.i.i, %.sink.split.i.i.i %.sroa.0.0.i.i.ph = phi ptr [ %23, %.sink.split.i7.i.i ], [ %.promoted.i.i, %.sink.split.i.i.i ], [ %spec.select.i15.us.i.i, %.sink.split.i.us.i.i ] - tail call void @"_ZN70_$LT$uv_pep508..Requirement$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h15f84b4c3bc5d0c6E.llvm.8717112297715684712"(ptr noalias noundef nonnull sret([360 x i8]) align 8 captures(none) dereferenceable(360) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(360) %.sroa.0.0.i.i.ph) - br label %29 + call void @llvm.lifetime.start.p0(ptr nonnull %3) + call void @"_ZN70_$LT$uv_pep508..Requirement$LT$T$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h15f84b4c3bc5d0c6E.llvm.8717112297715684712"(ptr noalias noundef nonnull sret([360 x i8]) align 8 captures(none) dereferenceable(360) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(360) %.sroa.0.0.i.i.ph) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(360) %0, ptr noundef nonnull align 8 dereferenceable(360) %3, i64 360, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %3) + br label %30 29: ; preds = %.loopexit, %"_ZN106_$LT$core..iter..adapters..flatten..Flatten$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h1d18fb21b866f013E.llvm.8717112297715684712.exit" ret void diff --git a/bench/uv-rs/optimized/7rdx96gsz2ozv37i6eyh3cq12.ll b/bench/uv-rs/optimized/7rdx96gsz2ozv37i6eyh3cq12.ll index 0077867d12b..4d37efcedfd 100644 --- a/bench/uv-rs/optimized/7rdx96gsz2ozv37i6eyh3cq12.ll +++ b/bench/uv-rs/optimized/7rdx96gsz2ozv37i6eyh3cq12.ll @@ -7337,39 +7337,40 @@ define void @"_ZN102_$LT$uv_pypi_types..parsed_url..ParsedArchiveUrl$u20$as$u20$ ; Function Attrs: nonlazybind uwtable define internal fastcc void @_ZN13uv_pypi_types10parsed_url16get_subdirectory17hedb5be1e059f60abE(ptr dead_on_unwind noalias noundef nonnull writable writeonly align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(88) %1) unnamed_addr #0 personality ptr @rust_eh_personality { %3 = alloca [24 x i8], align 8 - %4 = alloca [72 x i8], align 8 - %5 = tail call { ptr, i64 } @_ZN3url3Url8fragment17h53423ef6d2336a71E(ptr noalias noundef nonnull readonly align 8 dereferenceable(88) %1) - %6 = extractvalue { ptr, i64 } %5, 0 - %7 = icmp eq ptr %6, null - br i1 %7, label %8, label %.lr.ph.i + %4 = alloca [24 x i8], align 8 + %5 = alloca [72 x i8], align 8 + %6 = tail call { ptr, i64 } @_ZN3url3Url8fragment17h53423ef6d2336a71E(ptr noalias noundef nonnull readonly align 8 dereferenceable(88) %1) + %7 = extractvalue { ptr, i64 } %6, 0 + %8 = icmp eq ptr %7, null + br i1 %8, label %9, label %.lr.ph.i 8: ; preds = %2 store i64 -9223372036854775808, ptr %0, align 8 br label %32 .lr.ph.i: ; preds = %2 - %9 = extractvalue { ptr, i64 } %5, 1 - call void @llvm.lifetime.start.p0(ptr nonnull %4) - store i64 0, ptr %4, align 8 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 8 + %9 = extractvalue { ptr, i64 } %6, 1 + call void @llvm.lifetime.start.p0(ptr nonnull %5) + store i64 0, ptr %5, align 8 + %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 8 store i64 %9, ptr %.sroa.4.0..sroa_idx, align 8 - %.sroa.58.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 16 - store ptr %6, ptr %.sroa.58.0..sroa_idx, align 8 - %.sroa.58.sroa.4.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 24 + %.sroa.58.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 16 + store ptr %7, ptr %.sroa.58.0..sroa_idx, align 8 + %.sroa.58.sroa.4.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 24 store i64 %9, ptr %.sroa.58.sroa.4.0..sroa.58.0..sroa_idx.sroa_idx, align 8 - %.sroa.58.sroa.5.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 32 + %.sroa.58.sroa.5.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 32 store i64 0, ptr %.sroa.58.sroa.5.0..sroa.58.0..sroa_idx.sroa_idx, align 8 - %.sroa.58.sroa.6.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 40 + %.sroa.58.sroa.6.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 40 store i64 %9, ptr %.sroa.58.sroa.6.0..sroa.58.0..sroa_idx.sroa_idx, align 8 - %.sroa.58.sroa.7.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 48 + %.sroa.58.sroa.7.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 48 store i32 38, ptr %.sroa.58.sroa.7.0..sroa.58.0..sroa_idx.sroa_idx, align 8 - %.sroa.58.sroa.8.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 52 + %.sroa.58.sroa.8.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 52 store i32 38, ptr %.sroa.58.sroa.8.0..sroa.58.0..sroa_idx.sroa_idx, align 4 - %.sroa.58.sroa.9.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 56 + %.sroa.58.sroa.9.0..sroa.58.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 56 store i8 1, ptr %.sroa.58.sroa.9.0..sroa.58.0..sroa_idx.sroa_idx, align 8 - %.sroa.69.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 64 + %.sroa.69.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 64 store i8 1, ptr %.sroa.69.0..sroa_idx, align 8 - %.sroa.710.0..sroa_idx = getelementptr inbounds nuw i8, ptr %4, i64 65 + %.sroa.710.0..sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 65 store i8 0, ptr %.sroa.710.0..sroa_idx, align 1 tail call void @llvm.experimental.noalias.scope.decl(metadata !1362) %10 = getelementptr inbounds nuw i8, ptr %3, i64 8 @@ -7395,7 +7396,7 @@ define internal fastcc void @_ZN13uv_pypi_types10parsed_url16get_subdirectory17h store i8 1, ptr %.sroa.710.0..sroa_idx, align 1, !alias.scope !1372 %18 = load i8, ptr %.sroa.69.0..sroa_idx, align 8, !range !954, !alias.scope !1372, !noundef !8 %19 = trunc nuw i8 %18 to i1 - %.pre.i.i.i.i = load i64, ptr %4, align 8, !alias.scope !1372 + %.pre.i.i.i.i = load i64, ptr %5, align 8, !alias.scope !1372 %.pre2.i.i.i.i = load i64, ptr %.sroa.4.0..sroa_idx, align 8, !alias.scope !1372 %.not.i.i.i.i = icmp ne i64 %.pre2.i.i.i.i, %.pre.i.i.i.i %or.cond.not.i.i.i.i = select i1 %19, i1 true, i1 %.not.i.i.i.i @@ -7408,21 +7409,21 @@ define internal fastcc void @_ZN13uv_pypi_types10parsed_url16get_subdirectory17h br label %28 22: ; preds = %12 - %23 = load i64, ptr %10, align 8, !noalias !1371, !noundef !8 %24 = load i64, ptr %11, align 8, !noalias !1371, !noundef !8 - %25 = load i64, ptr %4, align 8, !alias.scope !1371, !noundef !8 - %26 = sub nuw i64 %23, %25 - %27 = getelementptr inbounds i8, ptr %.val.i.i.i, i64 %25 - store i64 %24, ptr %4, align 8, !alias.scope !1371 - br label %28 + %25 = load i64, ptr %12, align 8, !noalias !1371, !noundef !8 + %26 = load i64, ptr %5, align 8, !alias.scope !1371, !noundef !8 + %27 = sub nuw i64 %24, %26 + %28 = getelementptr inbounds i8, ptr %.val.i.i.i, i64 %26 + store i64 %25, ptr %5, align 8, !alias.scope !1371 + br label %29 "_ZN90_$LT$core..str..iter..Split$LT$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h49a014984f931c5cE.exit.thread10.i": ; preds = %17, %14 call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !1371 br label %.loopexit 28: ; preds = %22, %._crit_edge.i.i.i.i - %.sroa.4.1.i.i.i = phi i64 [ %26, %22 ], [ %20, %._crit_edge.i.i.i.i ] - %.sroa.0.1.i.i.i = phi ptr [ %27, %22 ], [ %21, %._crit_edge.i.i.i.i ] + %.sroa.4.1.i.i.i = phi i64 [ %27, %23 ], [ %20, %._crit_edge.i.i.i.i ] + %.sroa.0.1.i.i.i = phi ptr [ %28, %23 ], [ %21, %._crit_edge.i.i.i.i ] call void @llvm.lifetime.end.p0(ptr nonnull %3), !noalias !1371 %.not.i.i.i.i.i = icmp ult i64 %.sroa.4.1.i.i.i, 13 br i1 %.not.i.i.i.i.i, label %"_ZN4core4iter6traits8iterator8Iterator8find_map5check28_$u7b$$u7b$closure$u7d$$u7d$17h71054012355904e9E.exit.i", label %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$11starts_with17hcf013de746a70a83E.exit.i.i.i.i" @@ -7443,15 +7444,16 @@ define internal fastcc void @_ZN13uv_pypi_types10parsed_url16get_subdirectory17h .loopexit: ; preds = %"_ZN4core4iter6traits8iterator8Iterator8find_map5check28_$u7b$$u7b$closure$u7d$$u7d$17h71054012355904e9E.exit.i", %"_ZN90_$LT$core..str..iter..Split$LT$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h49a014984f931c5cE.exit.thread10.i" store i64 -9223372036854775808, ptr %0, align 8 - call void @llvm.lifetime.end.p0(ptr nonnull %4) + call void @llvm.lifetime.end.p0(ptr nonnull %5) br label %32 33: ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$11starts_with17hcf013de746a70a83E.exit.i.i.i.i" %34 = getelementptr inbounds nuw i8, ptr %.sroa.0.1.i.i.i, i64 13 %35 = add i64 %.sroa.4.1.i.i.i, -13 - call void @llvm.lifetime.end.p0(ptr nonnull %4) - tail call void @_ZN3std3sys6os_str5bytes5Slice8to_owned17he65d9ecc046f07a3E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %0, ptr noalias noundef nonnull readonly align 1 %34, i64 noundef %35) - br label %32 + call void @llvm.lifetime.end.p0(ptr nonnull %5) + call void @_ZN3std3sys6os_str5bytes5Slice8to_owned17he65d9ecc046f07a3E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 1 %34, i64 noundef %35) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %4, i64 24, i1 false) + br label %33 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/wireshark/optimized/io_graph_dialog.ll b/bench/wireshark/optimized/io_graph_dialog.ll index e6714893193..2767a2c170a 100644 --- a/bench/wireshark/optimized/io_graph_dialog.ll +++ b/bench/wireshark/optimized/io_graph_dialog.ll @@ -15643,17 +15643,19 @@ define void @_ZN13IOGraphDialog8addGraphEb(ptr noundef readonly align 8 captures %3 = alloca %class.QString, align 8 %4 = alloca %class.QModelIndex, align 8 %5 = alloca %class.QModelIndex, align 8 - %6 = alloca %class.QDebug, align 8 - %7 = alloca %class.QMessageLogger, align 8 - %8 = alloca %class.QModelIndex, align 8 + %6 = alloca %class.QModelIndex, align 8 + %7 = alloca %class.QDebug, align 8 + %8 = alloca %class.QMessageLogger, align 8 %9 = alloca %class.QModelIndex, align 8 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 160 - %11 = load ptr, ptr %10, align 8 - %12 = icmp eq ptr %11, null - br i1 %12, label %_ZeqRK8QPointerI8UatModelEDn.exit.thread, label %13 + %10 = alloca %class.QModelIndex, align 8 + %11 = alloca %class.QModelIndex, align 8 + %12 = getelementptr inbounds nuw i8, ptr %0, i64 160 + %13 = load ptr, ptr %12, align 8 + %14 = icmp eq ptr %13, null + br i1 %14, label %_ZeqRK8QPointerI8UatModelEDn.exit.thread, label %15 13: ; preds = %2 - %14 = getelementptr inbounds nuw i8, ptr %11, i64 4 + %14 = getelementptr inbounds nuw i8, ptr %13, i64 4 %15 = load atomic i32, ptr %14 monotonic, align 4 %16 = icmp eq i32 %15, 0 br i1 %16, label %_ZeqRK8QPointerI8UatModelEDn.exit.thread, label %_ZeqRK8QPointerI8UatModelEDn.exit @@ -15667,77 +15669,80 @@ _ZeqRK8QPointerI8UatModelEDn.exit: ; preds = %13 20: ; preds = %_ZeqRK8QPointerI8UatModelEDn.exit call void @llvm.lifetime.start.p0(ptr nonnull %4) %21 = getelementptr inbounds nuw i8, ptr %0, i64 144 - %22 = load ptr, ptr %21, align 8 - %23 = getelementptr inbounds nuw i8, ptr %22, i64 224 %24 = load ptr, ptr %23, align 8 - call void @_ZNK17QAbstractItemView12currentIndexEv(ptr dead_on_unwind nonnull writable sret(%class.QModelIndex) align 8 %4, ptr noundef align 8 dereferenceable_or_null(40) %24) - br i1 %1, label %25, label %80 - -25: ; preds = %20 - %26 = load i32, ptr %4, align 8 - %27 = icmp sgt i32 %26, -1 - %28 = getelementptr inbounds nuw i8, ptr %4, i64 4 - %29 = load i32, ptr %28, align 4 - %30 = icmp sgt i32 %29, -1 - %or.cond = select i1 %27, i1 %30, i1 false - %31 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %32 = load ptr, ptr %31, align 8 - %33 = icmp ne ptr %32, null - %or.cond14 = select i1 %or.cond, i1 %33, i1 false - br i1 %or.cond14, label %34, label %_ZNK11QModelIndex7isValidEv.exit.thread + %25 = getelementptr inbounds nuw i8, ptr %24, i64 224 + %26 = load ptr, ptr %25, align 8 + call void @_ZNK17QAbstractItemView12currentIndexEv(ptr dead_on_unwind nonnull writable sret(%class.QModelIndex) align 8 %4, ptr noundef align 8 dereferenceable_or_null(40) %26) + br i1 %1, label %27, label %80 + +27:; preds = %22 + %28 = load i32, ptr %4, align 8 + %29 = icmp sgt i32 %28, -1 + %30 = getelementptr inbounds nuw i8, ptr %4, i64 4 + %31 = load i32, ptr %30, align 4 + %32 = icmp sgt i32 %31, -1 + %or.cond = select i1 %29, i1 %32, i1 false + %33 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %34 = load ptr, ptr %33, align 8 + %35 = icmp ne ptr %34, null + %or.cond14 = select i1 %or.cond, i1 %35, i1 false + br i1 %or.cond14, label %36, label %_ZNK11QModelIndex7isValidEv.exit.thread -34: ; preds = %25 +34: ; preds = %27 call void @llvm.lifetime.start.p0(ptr nonnull %5) store i32 -1, ptr %5, align 8 %35 = getelementptr inbounds nuw i8, ptr %5, i64 4 store i32 -1, ptr %35, align 4 %36 = getelementptr inbounds nuw i8, ptr %5, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %36, i8 0, i64 16, i1 false) - %37 = load ptr, ptr %10, align 8 - %38 = icmp eq ptr %37, null - br i1 %38, label %_ZNK8QPointerI8UatModelEptEv.exit, label %39 + call void @llvm.lifetime.start.p0(ptr nonnull %6) + %39 = load ptr, ptr %12, align 8 + %40 = icmp eq ptr %39, null + br i1 %40, label %_ZNK8QPointerI8UatModelEptEv.exit, label %41 -39: ; preds = %34 - %40 = getelementptr inbounds nuw i8, ptr %37, i64 4 - %41 = load atomic i32, ptr %40 monotonic, align 4 - %42 = icmp eq i32 %41, 0 - br i1 %42, label %_ZNK8QPointerI8UatModelEptEv.exit, label %43 +41: ; preds = %36 + %42 = getelementptr inbounds nuw i8, ptr %39, i64 4 + %43 = load atomic i32, ptr %42 monotonic, align 4 + %44 = icmp eq i32 %43, 0 + br i1 %44, label %_ZNK8QPointerI8UatModelEptEv.exit, label %45 -43: ; preds = %39 +43: ; preds = %41 %44 = load ptr, ptr %17, align 8 br label %_ZNK8QPointerI8UatModelEptEv.exit -_ZNK8QPointerI8UatModelEptEv.exit: ; preds = %34, %39, %43 - %45 = phi ptr [ %44, %43 ], [ null, %39 ], [ null, %34 ] - call void @_ZN8UatModel7copyRowE11QModelIndex(ptr dead_on_unwind nonnull writable sret(%class.QModelIndex) align 8 %5, ptr noundef align 8 dereferenceable_or_null(80) %45, ptr noundef nonnull byval(%class.QModelIndex) align 8 %4) - %46 = load i32, ptr %5, align 8 - %47 = icmp sgt i32 %46, -1 - %48 = load i32, ptr %35, align 4 +_ZNK8QPointerI8UatModelEptEv.exit: ; preds = %34, %41, %43 + %45 = phi ptr [ %44, %45 ], [ null, %41 ], [ null, %36 ] + call void @_ZN8UatModel7copyRowE11QModelIndex(ptr dead_on_unwind nonnull writable sret(%class.QModelIndex) align 8 %6, ptr noundef align 8 dereferenceable_or_null(80) %45, ptr noundef nonnull byval(%class.QModelIndex) align 8 %4) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %6) + %48 = load i32, ptr %5, align 8 %49 = icmp sgt i32 %48, -1 - %or.cond16 = select i1 %47, i1 %49, i1 false - %50 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %51 = load ptr, ptr %50, align 8 - %52 = icmp ne ptr %51, null - %or.cond19 = select i1 %or.cond16, i1 %52, i1 false - br i1 %or.cond19, label %76, label %_ZNK11QModelIndex7isValidEv.exit6.thread + %50 = load i32, ptr %35, align 4 + %51 = icmp sgt i32 %50, -1 + %or.cond16 = select i1 %49, i1 %51, i1 false + %52 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %53 = load ptr, ptr %52, align 8 + %54 = icmp ne ptr %53, null + %or.cond19 = select i1 %or.cond16, i1 %54, i1 false + br i1 %or.cond19, label %78, label %_ZNK11QModelIndex7isValidEv.exit6.thread _ZNK11QModelIndex7isValidEv.exit6.thread: ; preds = %_ZNK8QPointerI8UatModelEptEv.exit - call void @llvm.lifetime.start.p0(ptr nonnull %6) call void @llvm.lifetime.start.p0(ptr nonnull %7) - store i32 2, ptr %7, align 8 - %53 = getelementptr inbounds nuw i8, ptr %7, i64 4 - %54 = getelementptr inbounds nuw i8, ptr %7, i64 24 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %53, i8 0, i64 20, i1 false) - store ptr @.str.257, ptr %54, align 8 - call void @_ZNK14QMessageLogger5debugEv(ptr dead_on_unwind nonnull writable sret(%class.QDebug) align 8 %6, ptr noundef nonnull align 8 dereferenceable_or_null(32) %7) - %55 = load ptr, ptr %6, align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %8) + store i32 2, ptr %8, align 8 + %54 = getelementptr inbounds nuw i8, ptr %8, i64 4 + %56 = getelementptr inbounds nuw i8, ptr %8, i64 24 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %55, i8 0, i64 20, i1 false) + store ptr @.str.257, ptr %56, align 8 + call void @_ZNK14QMessageLogger5debugEv(ptr dead_on_unwind nonnull writable sret(%class.QDebug) align 8 %7, ptr noundef nonnull align 8 dereferenceable_or_null(32) %8) + %57 = load ptr, ptr %7, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %3) invoke void @_ZN7QString8fromUtf8E14QByteArrayView(ptr dead_on_unwind nonnull writable sret(%class.QString) align 8 %3, i64 26, ptr nonnull @.str.53) to label %.noexc unwind label %74 .noexc: ; preds = %_ZNK11QModelIndex7isValidEv.exit6.thread - %56 = invoke noundef align 8 dereferenceable(16) ptr @_ZN11QTextStreamlsERK7QString(ptr noundef align 8 dereferenceable_or_null(16) %55, ptr noundef nonnull align 8 dereferenceable(24) %3) - to label %57 unwind label %68 + %56 = invoke noundef align 8 dereferenceable(16) ptr @_ZN11QTextStreamlsERK7QString(ptr noundef align 8 dereferenceable_or_null(16) %57, ptr noundef nonnull align 8 dereferenceable(24) %3) + to label %59 unwind label %68 57: ; preds = %.noexc %58 = load ptr, ptr %3, align 8 @@ -15756,7 +15761,7 @@ _ZN17QArrayDataPointerIDsE5derefEv.exit.i.i.i: ; preds = %57 _ZN7QStringD2Ev.exit.i: ; preds = %60, %_ZN17QArrayDataPointerIDsE5derefEv.exit.i.i.i, %57 call void @llvm.lifetime.end.p0(ptr nonnull %3) - %62 = load ptr, ptr %6, align 8 + %62 = load ptr, ptr %7, align 8 %63 = getelementptr inbounds nuw i8, ptr %62, i64 48 %64 = load i8, ptr %63, align 8, !range !12, !noundef !13 %65 = trunc nuw i8 %64 to i1 @@ -15788,10 +15793,10 @@ _ZN7QStringD2Ev.exit5.i: ; preds = %72, %_ZN17QArrayDat br label %.body _ZN6QDebuglsEPKc.exit: ; preds = %_ZN7QStringD2Ev.exit.i, %66 - call void @_ZN6QDebugD1Ev(ptr noundef nonnull align 8 dereferenceable_or_null(8) %6) #34 + call void @_ZN6QDebugD1Ev(ptr noundef nonnull align 8 dereferenceable_or_null(8) %7) #34 + call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.end.p0(ptr nonnull %7) - call void @llvm.lifetime.end.p0(ptr nonnull %6) - br label %114 + br label %116 74: ; preds = %66, %_ZNK11QModelIndex7isValidEv.exit6.thread %75 = landingpad { ptr, i32 } @@ -15799,10 +15804,10 @@ _ZN6QDebuglsEPKc.exit: ; preds = %_ZN7QStringD2Ev.exi br label %.body .body: ; preds = %_ZN7QStringD2Ev.exit5.i, %74 - %eh.lpad-body = phi { ptr, i32 } [ %75, %74 ], [ %69, %_ZN7QStringD2Ev.exit5.i ] - call void @_ZN6QDebugD1Ev(ptr noundef nonnull align 8 dereferenceable_or_null(8) %6) #34 + %eh.lpad-body = phi { ptr, i32 } [ %75, %76 ], [ %69, %_ZN7QStringD2Ev.exit5.i ] + call void @_ZN6QDebugD1Ev(ptr noundef nonnull align 8 dereferenceable_or_null(8) %7) #34 + call void @llvm.lifetime.end.p0(ptr nonnull %8) call void @llvm.lifetime.end.p0(ptr nonnull %7) - call void @llvm.lifetime.end.p0(ptr nonnull %6) call void @llvm.lifetime.end.p0(ptr nonnull %5) call void @llvm.lifetime.end.p0(ptr nonnull %4) resume { ptr, i32 } %eh.lpad-body @@ -15822,23 +15827,24 @@ _ZN6QDebuglsEPKc.exit: ; preds = %_ZN7QStringD2Ev.exi %82 = getelementptr inbounds nuw i8, ptr %5, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %82, i8 0, i64 16, i1 false) call void @_ZN13IOGraphDialog15addDefaultGraphEbi(ptr noundef align 8 dereferenceable_or_null(384) %0, i1 noundef zeroext false, i32 noundef 0) - %83 = load ptr, ptr %10, align 8 - %84 = icmp eq ptr %83, null - br i1 %84, label %_ZNK8QPointerI8UatModelEptEv.exit9, label %85 - -85: ; preds = %80 - %86 = getelementptr inbounds nuw i8, ptr %83, i64 4 - %87 = load atomic i32, ptr %86 monotonic, align 4 - %88 = icmp eq i32 %87, 0 - br i1 %88, label %91, label %89 - -89: ; preds = %85 - %90 = load ptr, ptr %17, align 8 - br label %91 + call void @llvm.lifetime.start.p0(ptr nonnull %9) + %85 = load ptr, ptr %12, align 8 + %86 = icmp eq ptr %85, null + br i1 %86, label %_ZNK8QPointerI8UatModelEptEv.exit9, label %87 + +87: ; preds = %82 + %88 = getelementptr inbounds nuw i8, ptr %85, i64 4 + %89 = load atomic i32, ptr %88 monotonic, align 4 + %90 = icmp eq i32 %89, 0 + br i1 %90, label %93, label %91 + +91:; preds = %87 + %92 = load ptr, ptr %19, align 8 + br label %93 -91: ; preds = %85, %89 - %.ph = phi ptr [ null, %85 ], [ %90, %89 ] - %92 = load atomic i32, ptr %86 monotonic, align 4 +91: ; preds = %87, %91 + %.ph = phi ptr [ null, %87 ], [ %92, %91 ] + %92 = load atomic i32, ptr %88 monotonic, align 4 %93 = icmp eq i32 %92, 0 br i1 %93, label %_ZNK8QPointerI8UatModelEptEv.exit9, label %94 @@ -15847,32 +15853,34 @@ _ZN6QDebuglsEPKc.exit: ; preds = %_ZN7QStringD2Ev.exi br label %_ZNK8QPointerI8UatModelEptEv.exit9 _ZNK8QPointerI8UatModelEptEv.exit9: ; preds = %80, %91, %94 - %96 = phi ptr [ %.ph, %94 ], [ %.ph, %91 ], [ null, %80 ] - %97 = phi ptr [ %95, %94 ], [ null, %91 ], [ null, %80 ] - call void @llvm.lifetime.start.p0(ptr nonnull %8) - store i32 -1, ptr %8, align 8 - %98 = getelementptr inbounds nuw i8, ptr %8, i64 4 + %96 = phi ptr [ %.ph, %96 ], [ %.ph, %93 ], [ null, %82 ] + %97 = phi ptr [ %95, %96 ], [ null, %93 ], [ null, %82 ] + call void @llvm.lifetime.start.p0(ptr nonnull %10) + store i32 -1, ptr %10, align 8 + %98 = getelementptr inbounds nuw i8, ptr %10, i64 4 store i32 -1, ptr %98, align 4 - %99 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %99 = getelementptr inbounds nuw i8, ptr %10, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %99, i8 0, i64 16, i1 false) %100 = load ptr, ptr %97, align 8 %101 = getelementptr inbounds nuw i8, ptr %100, i64 120 %102 = load ptr, ptr %101, align 8 - %103 = call noundef i32 %102(ptr noundef align 8 dereferenceable_or_null(80) %97, ptr noundef nonnull align 8 dereferenceable(24) %8) + %103 = call noundef i32 %104(ptr noundef align 8 dereferenceable_or_null(80) %97, ptr noundef nonnull align 8 dereferenceable(24) %10) %104 = add i32 %103, -1 - call void @llvm.lifetime.start.p0(ptr nonnull %9) - store i32 -1, ptr %9, align 8 - %105 = getelementptr inbounds nuw i8, ptr %9, i64 4 + call void @llvm.lifetime.start.p0(ptr nonnull %11) + store i32 -1, ptr %11, align 8 + %105 = getelementptr inbounds nuw i8, ptr %11, i64 4 store i32 -1, ptr %105, align 4 - %106 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %106 = getelementptr inbounds nuw i8, ptr %11, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %106, i8 0, i64 16, i1 false) %107 = load ptr, ptr %96, align 8 %108 = getelementptr inbounds nuw i8, ptr %107, i64 96 %109 = load ptr, ptr %108, align 8 - call void %109(ptr dead_on_unwind nonnull writable sret(%class.QModelIndex) align 8 %5, ptr noundef align 8 dereferenceable_or_null(16) %96, i32 noundef %104, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %9) + call void %111(ptr dead_on_unwind nonnull writable sret(%class.QModelIndex) align 8 %9, ptr noundef align 8 dereferenceable_or_null(16) %96, i32 noundef %104, i32 noundef 0, ptr noundef nonnull align 8 dereferenceable(24) %11) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %11) + call void @llvm.lifetime.end.p0(ptr nonnull %10) call void @llvm.lifetime.end.p0(ptr nonnull %9) - call void @llvm.lifetime.end.p0(ptr nonnull %8) - br label %110 + br label %112 110: ; preds = %_ZNK8QPointerI8UatModelEptEv.exit9, %76 %111 = load ptr, ptr %21, align 8 @@ -15885,7 +15893,7 @@ _ZNK8QPointerI8UatModelEptEv.exit9: ; preds = %80, %91, %94 call void @llvm.lifetime.end.p0(ptr nonnull %5) br label %_ZNK11QModelIndex7isValidEv.exit.thread -_ZNK11QModelIndex7isValidEv.exit.thread: ; preds = %25, %114 +_ZNK11QModelIndex7isValidEv.exit.thread: ; preds = %27, %114 call void @llvm.lifetime.end.p0(ptr nonnull %4) br label %_ZeqRK8QPointerI8UatModelEDn.exit.thread diff --git a/bench/zed-rs/optimized/59wnsznecs6we2kopjyje48jo.ll b/bench/zed-rs/optimized/59wnsznecs6we2kopjyje48jo.ll index 5f6ba099daf..b0dd0f62608 100644 --- a/bench/zed-rs/optimized/59wnsznecs6we2kopjyje48jo.ll +++ b/bench/zed-rs/optimized/59wnsznecs6we2kopjyje48jo.ll @@ -41687,119 +41687,123 @@ define hidden void @"_ZN82_$LT$recent_projects..RecentProjectsDelegate$u20$as$u2 %10 = alloca [24 x i8], align 8 %11 = alloca [24 x i8], align 8 %12 = alloca [24 x i8], align 8 - %13 = alloca [32 x i8], align 8 - %14 = alloca [24 x i8], align 8 + %13 = alloca [24 x i8], align 8 + %14 = alloca [32 x i8], align 8 %15 = alloca [24 x i8], align 8 %16 = alloca [24 x i8], align 8 - %17 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %18 = load i64, ptr %17, align 8, !range !1509, !noundef !4 - %19 = xor i64 %18, -9223372036854775808 - %20 = icmp ult i64 %19, 3 - %21 = select i1 %20, i64 %19, i64 1 - switch i64 %21, label %22 [ - i64 0, label %23 + %17 = alloca [24 x i8], align 8 + %18 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %19 = load i64, ptr %18, align 8, !range !1509, !noundef !4 + %20 = xor i64 %19, -9223372036854775808 + %21 = icmp ult i64 %20, 3 + %22 = select i1 %21, i64 %20, i64 1 + switch i64 %22, label %23 [ + i64 0, label %24 i64 1, label %34 - i64 2, label %40 + i64 2, label %41 ] 22: ; preds = %4 unreachable 23: ; preds = %4 - call void @llvm.lifetime.start.p0(ptr nonnull %16) + call void @llvm.lifetime.start.p0(ptr nonnull %17) %24 = getelementptr inbounds nuw i8, ptr %3, i64 16 %25 = tail call { ptr, i64 } @_ZN9workspace11persistence5model15LocalPathsOrder5order17h767c88c2b3f0762bE(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %24) %26 = extractvalue { ptr, i64 } %25, 0 %27 = extractvalue { ptr, i64 } %25, 1 %28 = getelementptr inbounds i64, ptr %26, i64 %27 %29 = getelementptr inbounds nuw i8, ptr %3, i64 40 - store ptr %26, ptr %15, align 8 - %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 8 + store ptr %26, ptr %16, align 8 + %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %16, i64 8 store ptr %28, ptr %.sroa.4.0..sroa_idx, align 8 - %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %15, i64 16 + %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %16, i64 16 store ptr %29, ptr %.sroa.5.0..sroa_idx, align 8 - call void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter_nested..SpecFromIterNested$LT$T$C$I$GT$$GT$9from_iter17hb8c06485019e3193E.llvm.4734057639300609533"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %16, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %15) - %30 = getelementptr inbounds nuw i8, ptr %16, i64 8 + call void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter_nested..SpecFromIterNested$LT$T$C$I$GT$$GT$9from_iter17hb8c06485019e3193E.llvm.4734057639300609533"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %17, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %16) + %30 = getelementptr inbounds nuw i8, ptr %17, i64 8 %31 = load ptr, ptr %30, align 8, !nonnull !4, !noundef !4 - %32 = getelementptr inbounds nuw i8, ptr %16, i64 16 + %32 = getelementptr inbounds nuw i8, ptr %17, i64 16 %33 = load i64, ptr %32, align 8, !noundef !4 - call void @llvm.lifetime.start.p0(ptr nonnull %8) - invoke void @_ZN5alloc3str17join_generic_copy17h8a377812765dfce8E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %8, ptr noalias noundef nonnull readonly align 8 %31, i64 noundef %33, ptr noalias noundef nonnull readonly align 1 inttoptr (i64 1 to ptr), i64 noundef 0) - to label %49 unwind label %47 + call void @llvm.lifetime.start.p0(ptr nonnull %9) + invoke void @_ZN5alloc3str17join_generic_copy17h8a377812765dfce8E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %9, ptr noalias noundef nonnull readonly align 8 %31, i64 noundef %33, ptr noalias noundef nonnull readonly align 1 inttoptr (i64 1 to ptr), i64 noundef 0) + to label %50 unwind label %47 34: ; preds = %4 + call void @llvm.lifetime.start.p0(ptr nonnull %12) call void @llvm.lifetime.start.p0(ptr nonnull %11) - call void @llvm.lifetime.start.p0(ptr nonnull %10) - call void @_ZN9workspace11persistence5model20SerializedSshProject8ssh_urls17h3ffc8d275c1890b2E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %10, ptr noalias noundef nonnull readonly align 8 dereferenceable(88) %17) - %35 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %36 = load ptr, ptr %35, align 8, !nonnull !4, !noundef !4 - %37 = getelementptr inbounds nuw i8, ptr %10, i64 16 - %38 = load i64, ptr %37, align 8, !noundef !4 - %39 = getelementptr inbounds { { { { { i64, ptr, {} }, i64 } } } }, ptr %36, i64 %38 - invoke void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter_nested..SpecFromIterNested$LT$T$C$I$GT$$GT$9from_iter17h8bb80fe4f2b45640E.llvm.4734057639300609533"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %11, ptr noundef nonnull %36, ptr noundef nonnull %39) + call void @_ZN9workspace11persistence5model20SerializedSshProject8ssh_urls17h3ffc8d275c1890b2E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %11, ptr noalias noundef nonnull readonly align 8 dereferenceable(88) %18) + %36 = getelementptr inbounds nuw i8, ptr %11, i64 8 + %37 = load ptr, ptr %36, align 8, !nonnull !4, !noundef !4 + %38 = getelementptr inbounds nuw i8, ptr %11, i64 16 + %39 = load i64, ptr %38, align 8, !noundef !4 + %40 = getelementptr inbounds { { { { { i64, ptr, {} }, i64 } } } }, ptr %37, i64 %39 + invoke void @"_ZN111_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter_nested..SpecFromIterNested$LT$T$C$I$GT$$GT$9from_iter17h8bb80fe4f2b45640E.llvm.4734057639300609533"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %12, ptr noundef nonnull %37, ptr noundef nonnull %40) to label %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17hee134ea7e18c7a8fE.exit" unwind label %55 40: ; preds = %4 + call void @llvm.lifetime.start.p0(ptr nonnull %15) call void @llvm.lifetime.start.p0(ptr nonnull %14) + %42 = getelementptr inbounds nuw i8, ptr %3, i64 16 call void @llvm.lifetime.start.p0(ptr nonnull %13) - %41 = getelementptr inbounds nuw i8, ptr %3, i64 16 - call void @llvm.lifetime.start.p0(ptr nonnull %12) - %42 = getelementptr inbounds nuw i8, ptr %3, i64 48 - %43 = load ptr, ptr %42, align 8, !nonnull !4, !noundef !4 - %44 = getelementptr inbounds nuw i8, ptr %3, i64 56 - %45 = load i64, ptr %44, align 8, !noundef !4 - call void @_ZN5alloc3str17join_generic_copy17h282748c1a4878969E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %12, ptr noalias noundef nonnull readonly align 8 %43, i64 noundef %45, ptr noalias noundef nonnull readonly align 1 inttoptr (i64 1 to ptr), i64 noundef 0) - store ptr %41, ptr %13, align 8 - %.sroa.44.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 8 + %41 = getelementptr inbounds nuw i8, ptr %3, i64 48 + %44 = load ptr, ptr %43, align 8, !nonnull !4, !noundef !4 + %42 = getelementptr inbounds nuw i8, ptr %3, i64 56 + %43 = load i64, ptr %42, align 8, !noundef !4 + call void @llvm.lifetime.start.p0(ptr nonnull %8) + call void @_ZN5alloc3str17join_generic_copy17h282748c1a4878969E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %8, ptr noalias noundef nonnull readonly align 8 %44, i64 noundef %46, ptr noalias noundef nonnull readonly align 1 inttoptr (i64 1 to ptr), i64 noundef 0) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %13, ptr noundef nonnull align 8 dereferenceable(24) %8, i64 24, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %8) + store ptr %42, ptr %14, align 8 + %.sroa.44.0..sroa_idx = getelementptr inbounds nuw i8, ptr %14, i64 8 store ptr @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..fmt..Display$GT$3fmt17h69b42876f6df0e06E", ptr %.sroa.44.0..sroa_idx, align 8 - %46 = getelementptr inbounds nuw i8, ptr %13, i64 16 - store ptr %12, ptr %46, align 8 - %.sroa.48.0..sroa_idx = getelementptr inbounds nuw i8, ptr %13, i64 24 + %46 = getelementptr inbounds nuw i8, ptr %14, i64 16 + store ptr %13, ptr %46, align 8 + %.sroa.48.0..sroa_idx = getelementptr inbounds nuw i8, ptr %14, i64 24 store ptr @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..fmt..Display$GT$3fmt17h69b42876f6df0e06E", ptr %.sroa.48.0..sroa_idx, align 8 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !9225 store ptr @anon.ddff9895e551175a9d0e06e84e6a1095.165, ptr %6, align 8, !noalias !9233 %.sroa.4.0..sroa_idx13 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 2, ptr %.sroa.4.0..sroa_idx13, align 8, !noalias !9233 %.sroa.5.0..sroa_idx14 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store ptr %13, ptr %.sroa.5.0..sroa_idx14, align 8, !noalias !9233 + store ptr %14, ptr %.sroa.5.0..sroa_idx14, align 8, !noalias !9233 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 24 store i64 2, ptr %.sroa.6.0..sroa_idx, align 8, !noalias !9233 %.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 32 store ptr null, ptr %.sroa.7.0..sroa_idx, align 8, !noalias !9233 - invoke void @_ZN5alloc3fmt6format12format_inner17hfc591406982d9639E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %14, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %6) - to label %67 unwind label %65 + invoke void @_ZN5alloc3fmt6format12format_inner17hfc591406982d9639E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %6) + to label %68 unwind label %65 47: ; preds = %23 %48 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$17h79c33d7a895ba326E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %16) #58 - to label %53 unwind label %51 + invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$17h79c33d7a895ba326E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %17) #58 + to label %54 unwind label %51 49: ; preds = %23 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %8, i64 24, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %8) - call void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$17h79c33d7a895ba326E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %16) - call void @llvm.lifetime.end.p0(ptr nonnull %16) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %9) + call void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$17h79c33d7a895ba326E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %17) + call void @llvm.lifetime.end.p0(ptr nonnull %17) br label %50 50: ; preds = %79, %64, %49 - call void @_ZN5fuzzy7strings20StringMatchCandidate3new17h8d17e7a449539748E(ptr noalias noundef nonnull sret([40 x i8]) align 8 captures(none) dereferenceable(40) %0, i64 noundef %2, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %9) + call void @_ZN5fuzzy7strings20StringMatchCandidate3new17h8d17e7a449539748E(ptr noalias noundef nonnull sret([40 x i8]) align 8 captures(none) dereferenceable(40) %0, i64 noundef %2, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(24) %10) ret void -51: ; preds = %77, %65, %61, %54, %47 +51: ; preds = %78, %65, %61, %54, %47 %52 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hfa05ef7d5107e16aE() #59 unreachable -53: ; preds = %77, %65, %54, %47 - %.pn11 = phi { ptr, i32 } [ %48, %47 ], [ %.pn, %54 ], [ %78, %77 ], [ %66, %65 ] +53: ; preds = %78, %65, %54, %47 + %.pn11 = phi { ptr, i32 } [ %48, %48 ], [ %.pn, %55 ], [ %79, %78 ], [ %66, %66 ] resume { ptr, i32 } %.pn11 54: ; preds = %61, %55 - %.pn = phi { ptr, i32 } [ %56, %55 ], [ %62, %61 ] - invoke void @"_ZN4core3ptr62drop_in_place$LT$alloc..vec..Vec$LT$std..path..PathBuf$GT$$GT$17h4db1c7af0d37b01aE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %10) #58 - to label %53 unwind label %51 + %.pn = phi { ptr, i32 } [ %56, %56 ], [ %62, %62 ] + invoke void @"_ZN4core3ptr62drop_in_place$LT$alloc..vec..Vec$LT$std..path..PathBuf$GT$$GT$17h4db1c7af0d37b01aE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %11) #58 + to label %54 unwind label %51 55: ; preds = %34, %63 %56 = landingpad { ptr, i32 } @@ -41807,74 +41811,74 @@ define hidden void @"_ZN82_$LT$recent_projects..RecentProjectsDelegate$u20$as$u2 br label %54 "_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17hee134ea7e18c7a8fE.exit": ; preds = %34 - %57 = getelementptr inbounds nuw i8, ptr %11, i64 8 + %57 = getelementptr inbounds nuw i8, ptr %12, i64 8 %58 = load ptr, ptr %57, align 8, !nonnull !4, !noundef !4 - %59 = getelementptr inbounds nuw i8, ptr %11, i64 16 + %59 = getelementptr inbounds nuw i8, ptr %12, i64 16 %60 = load i64, ptr %59, align 8, !noundef !4 call void @llvm.lifetime.start.p0(ptr nonnull %7) invoke void @_ZN5alloc3str17join_generic_copy17h8a377812765dfce8E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 8 %58, i64 noundef %60, ptr noalias noundef nonnull readonly align 1 inttoptr (i64 1 to ptr), i64 noundef 0) - to label %63 unwind label %61 + to label %64 unwind label %61 61: ; preds = %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17hee134ea7e18c7a8fE.exit" %62 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$17h79c33d7a895ba326E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %11) #58 - to label %54 unwind label %51 + invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$17h79c33d7a895ba326E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %12) #58 + to label %55 unwind label %51 63: ; preds = %"_ZN98_$LT$alloc..vec..Vec$LT$T$GT$$u20$as$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$GT$9from_iter17hee134ea7e18c7a8fE.exit" - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %7) - invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$17h79c33d7a895ba326E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %11) - to label %64 unwind label %55 + invoke void @"_ZN4core3ptr65drop_in_place$LT$alloc..vec..Vec$LT$alloc..string..String$GT$$GT$17h79c33d7a895ba326E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %12) + to label %65 unwind label %55 64: ; preds = %63 - call void @"_ZN4core3ptr62drop_in_place$LT$alloc..vec..Vec$LT$std..path..PathBuf$GT$$GT$17h4db1c7af0d37b01aE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %10) - call void @llvm.lifetime.end.p0(ptr nonnull %10) + call void @"_ZN4core3ptr62drop_in_place$LT$alloc..vec..Vec$LT$std..path..PathBuf$GT$$GT$17h4db1c7af0d37b01aE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %11) call void @llvm.lifetime.end.p0(ptr nonnull %11) - br label %50 + call void @llvm.lifetime.end.p0(ptr nonnull %12) + br label %51 65: ; preds = %40 %66 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h456eb04633331537E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %12) #58 - to label %53 unwind label %51 + invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h456eb04633331537E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %13) #58 + to label %54 unwind label %51 67: ; preds = %40 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !9225 call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !9234 - invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h28ed4abcae931d82E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %12) - to label %.noexc unwind label %77 - -.noexc: ; preds = %67 - %68 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %69 = load i64, ptr %68, align 8, !range !48, !noalias !9234, !noundef !4 - %70 = icmp eq i64 %69, 0 - br i1 %70, label %79, label %71 - -71: ; preds = %.noexc - %72 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %73 = load i64, ptr %72, align 8, !noalias !9234, !noundef !4 - %74 = icmp eq i64 %73, 0 - br i1 %74, label %79, label %75 - -75: ; preds = %71 - %76 = load ptr, ptr %5, align 8, !noalias !9234, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %76, i64 noundef %73, i64 noundef %69) #60 - br label %79 + invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h28ed4abcae931d82E"(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %13) + to label %.noexc unwind label %78 77: ; preds = %67 - %78 = landingpad { ptr, i32 } + %69 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %70 = load i64, ptr %69, align 8, !range !48, !noalias !9234, !noundef !4 + %71 = icmp eq i64 %70, 0 + br i1 %71, label %80, label %72 + +72: ; preds = %.noexc + %73 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %74 = load i64, ptr %73, align 8, !noalias !9234, !noundef !4 + %75 = icmp eq i64 %74, 0 + br i1 %75, label %80, label %76 + +76: ; preds = %72 + %77 = load ptr, ptr %5, align 8, !noalias !9234, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %77, i64 noundef %74, i64 noundef %70) #60 + br label %80 + +78: ; preds = %68 + %79 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h456eb04633331537E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %14) #58 - to label %53 unwind label %51 + invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h456eb04633331537E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) #58 + to label %54 unwind label %51 -79: ; preds = %75, %71, %.noexc +79: ; preds = %76, %72, %.noexc call void @llvm.lifetime.end.p0(ptr nonnull %5), !noalias !9234 - call void @llvm.lifetime.end.p0(ptr nonnull %12) call void @llvm.lifetime.end.p0(ptr nonnull %13) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %14, i64 24, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %14) - br label %50 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %15, i64 24, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %15) + br label %51 } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/zed-rs/optimized/5x7hg1mlcao6i0r3jb3d14b77.ll b/bench/zed-rs/optimized/5x7hg1mlcao6i0r3jb3d14b77.ll index 898b6010c08..828d5dc702a 100644 --- a/bench/zed-rs/optimized/5x7hg1mlcao6i0r3jb3d14b77.ll +++ b/bench/zed-rs/optimized/5x7hg1mlcao6i0r3jb3d14b77.ll @@ -77808,7 +77808,6 @@ define hidden noundef ptr @"_ZN55_$LT$gpui..app..AppContext$u20$as$u20$gpui..Con %10 = alloca [16 x i8], align 8 %11 = alloca [616 x i8], align 8 %.sroa.633 = alloca [600 x i8], align 8 - %.sroa.530 = alloca [3904 x i8], align 8 %12 = alloca [3920 x i8], align 8 call void @llvm.lifetime.start.p0(ptr nonnull %12) %13 = load i32, ptr %0, align 4, !range !13951, !noundef !9 @@ -77855,14 +77854,11 @@ define hidden noundef ptr @"_ZN55_$LT$gpui..app..AppContext$u20$as$u20$gpui..Con 33: ; preds = %"_ZN7slotmap5basic20SlotMap$LT$K$C$V$GT$7get_mut17hb4123759a1e018afE.exit" %.sroa.618.sroa.5.0..sroa.618.0..sroa_idx.sroa_idx = getelementptr inbounds nuw i8, ptr %22, i64 16 - call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.530) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3904) %.sroa.530, ptr noundef nonnull align 8 dereferenceable(3904) %.sroa.618.sroa.5.0..sroa.618.0..sroa_idx.sroa_idx, i64 3904, i1 false) + %.sroa.530.0..sroa_idx = getelementptr inbounds nuw i8, ptr %12, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3904) %.sroa.530.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(3904) %.sroa.618.sroa.5.0..sroa.618.0..sroa_idx.sroa_idx, i64 3904, i1 false) store i64 %.sroa.016.0.copyload, ptr %12, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %12, i64 8 store ptr %.sroa.618.sroa.0.0.copyload, ptr %.sroa.4.0..sroa_idx, align 8 - %.sroa.530.0..sroa_idx = getelementptr inbounds nuw i8, ptr %12, i64 16 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3904) %.sroa.530.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(3904) %.sroa.530, i64 3904, i1 false) - call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.530) call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.633) %34 = getelementptr inbounds nuw i8, ptr %12, i64 1376 %35 = load i64, ptr %34, align 8, !range !4393, !noundef !9 diff --git a/bench/zed-rs/optimized/7z2xfgroq6luy23s4a62wgt90.ll b/bench/zed-rs/optimized/7z2xfgroq6luy23s4a62wgt90.ll index 1720916f675..a16fa7978f3 100644 --- a/bench/zed-rs/optimized/7z2xfgroq6luy23s4a62wgt90.ll +++ b/bench/zed-rs/optimized/7z2xfgroq6luy23s4a62wgt90.ll @@ -4305,28 +4305,31 @@ define hidden noundef zeroext i1 @"_ZN66_$LT$alloc..borrow..Cow$LT$B$GT$$u20$as$ ; Function Attrs: nonlazybind uwtable define hidden noalias noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$GT$$u20$as$u20$core..default..Default$GT$7default17h2700446f0f945802E"() unnamed_addr #1 personality ptr @rust_eh_personality { %1 = alloca [72 x i8], align 8 - %2 = getelementptr inbounds nuw i8, ptr %1, i64 16 - call void @llvm.lifetime.start.p0(ptr nonnull %1) + %2 = alloca [56 x i8], align 8 + call void @llvm.lifetime.start.p0(ptr nonnull %2) call void @_ZN5theme8registry13ThemeRegistry3new17hcf1f786472e2ebeeE(ptr noalias noundef nonnull sret([56 x i8]) align 8 captures(none) dereferenceable(56) %2, ptr noundef nonnull align 1 inttoptr (i64 1 to ptr), ptr noalias noundef readonly align 8 dereferenceable(40) @anon.af526d7afd9165893e02fad86719fb29.1579.llvm.3256121122046604821) + call void @llvm.lifetime.start.p0(ptr nonnull %1) store i64 1, ptr %1, align 8 %3 = getelementptr inbounds nuw i8, ptr %1, i64 8 store i64 1, ptr %3, align 8 - %4 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !888 - %5 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @__rust_alloc(i64 noundef range(i64 1, 0) 72, i64 noundef 8) #39, !noalias !888 - %6 = icmp eq ptr %5, null - br i1 %6, label %7, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h95c5f5ca5cd0dec9E.llvm.3256121122046604821.exit" - -7: ; preds = %0 + %4 = getelementptr inbounds nuw i8, ptr %1, i64 16 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %4, ptr noundef nonnull align 8 dereferenceable(56) %2, i64 56, i1 false) + %5 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !888 + %6 = tail call noalias noundef align 8 dereferenceable_or_null(72) ptr @__rust_alloc(i64 noundef range(i64 1, 0) 72, i64 noundef 8) #39, !noalias !888 + %7 = icmp eq ptr %6, null + br i1 %7, label %8, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h95c5f5ca5cd0dec9E.llvm.3256121122046604821.exit" + +8: ; preds = %0 invoke void @_ZN5alloc5alloc18handle_alloc_error17h6d7f2bdbc63ffea9E(i64 noundef 8, i64 noundef 72) #37 to label %.noexc unwind label %8 -.noexc: ; preds = %7 +.noexc: ; preds = %8 unreachable -8: ; preds = %7 +8: ; preds = %8 %9 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr51drop_in_place$LT$theme..registry..ThemeRegistry$GT$17h5293601305babb47E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %2) + invoke void @"_ZN4core3ptr51drop_in_place$LT$theme..registry..ThemeRegistry$GT$17h5293601305babb47E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %4) to label %"_ZN4core3ptr80drop_in_place$LT$alloc..sync..ArcInner$LT$theme..registry..ThemeRegistry$GT$$GT$17h9e582ed681307d42E.exit" unwind label %10 10: ; preds = %8 @@ -4339,9 +4342,10 @@ define hidden noalias noundef nonnull ptr @"_ZN68_$LT$alloc..sync..Arc$LT$T$GT$$ resume { ptr, i32 } %9 "_ZN5alloc5boxed12Box$LT$T$GT$3new17h95c5f5ca5cd0dec9E.llvm.3256121122046604821.exit": ; preds = %0 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %5, ptr noundef nonnull align 8 dereferenceable(72) %1, i64 72, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %6, ptr noundef nonnull align 8 dereferenceable(72) %1, i64 72, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %1) - ret ptr %5 + call void @llvm.lifetime.end.p0(ptr nonnull %2) + ret ptr %6 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/zed-rs/optimized/9eq7uj5u4le9a0i68pyu9khnb.ll b/bench/zed-rs/optimized/9eq7uj5u4le9a0i68pyu9khnb.ll index 5f001372169..8a088769720 100644 --- a/bench/zed-rs/optimized/9eq7uj5u4le9a0i68pyu9khnb.ll +++ b/bench/zed-rs/optimized/9eq7uj5u4le9a0i68pyu9khnb.ll @@ -1150,7 +1150,6 @@ define hidden void @"_ZN10serde_json5value2de78_$LT$impl$u20$serde..de..Deserial %14 = alloca [72 x i8], align 8 %15 = alloca [24 x i8], align 8 %16 = alloca [72 x i8], align 8 - %.sroa.273 = alloca [16 x i8], align 8 %.sroa.3 = alloca [64 x i8], align 8 %17 = alloca [24 x i8], align 8 %18 = alloca [24 x i8], align 8 @@ -1349,11 +1348,10 @@ _ZN5serde2de10EnumAccess7variant17h57b14bb0b1425697E.exit.i: ; preds = %47 %.sroa.6.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 8 %83 = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %83, i64 72, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) + %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 call void @llvm.lifetime.start.p0(ptr nonnull %24) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) store i64 %.sroa.0.0.copyload1.i, ptr %24, align 8 - %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %23) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %23, ptr noundef nonnull align 8 dereferenceable(72) %16, i64 72, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %21) @@ -1726,7 +1724,6 @@ define hidden void @"_ZN10serde_json5value2de78_$LT$impl$u20$serde..de..Deserial %14 = alloca [72 x i8], align 8 %15 = alloca [24 x i8], align 8 %16 = alloca [72 x i8], align 8 - %.sroa.273 = alloca [16 x i8], align 8 %.sroa.3 = alloca [64 x i8], align 8 %17 = alloca [24 x i8], align 8 %18 = alloca [24 x i8], align 8 @@ -1925,11 +1922,10 @@ _ZN5serde2de10EnumAccess7variant17h5b24f302e5c85f22E.exit.i: ; preds = %47 %.sroa.6.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 8 %83 = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %83, i64 72, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) + %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 call void @llvm.lifetime.start.p0(ptr nonnull %24) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) store i64 %.sroa.0.0.copyload1.i, ptr %24, align 8 - %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %23) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %23, ptr noundef nonnull align 8 dereferenceable(72) %16, i64 72, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %21) @@ -2302,7 +2298,6 @@ define hidden void @"_ZN10serde_json5value2de78_$LT$impl$u20$serde..de..Deserial %14 = alloca [72 x i8], align 8 %15 = alloca [24 x i8], align 8 %16 = alloca [72 x i8], align 8 - %.sroa.273 = alloca [16 x i8], align 8 %.sroa.3 = alloca [64 x i8], align 8 %17 = alloca [24 x i8], align 8 %18 = alloca [24 x i8], align 8 @@ -2501,11 +2496,10 @@ _ZN5serde2de10EnumAccess7variant17hc4e0ce5337b9092fE.exit.i: ; preds = %47 %.sroa.6.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 8 %83 = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %83, i64 72, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) + %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 call void @llvm.lifetime.start.p0(ptr nonnull %24) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) store i64 %.sroa.0.0.copyload1.i, ptr %24, align 8 - %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %23) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %23, ptr noundef nonnull align 8 dereferenceable(72) %16, i64 72, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %21) @@ -2878,7 +2872,6 @@ define hidden void @"_ZN10serde_json5value2de78_$LT$impl$u20$serde..de..Deserial %14 = alloca [72 x i8], align 8 %15 = alloca [24 x i8], align 8 %16 = alloca [72 x i8], align 8 - %.sroa.273 = alloca [16 x i8], align 8 %.sroa.3 = alloca [64 x i8], align 8 %17 = alloca [24 x i8], align 8 %18 = alloca [24 x i8], align 8 @@ -3077,11 +3070,10 @@ _ZN5serde2de10EnumAccess7variant17ha349232f15998be9E.exit.i: ; preds = %47 %.sroa.6.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 8 %83 = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %83, i64 72, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) + %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 call void @llvm.lifetime.start.p0(ptr nonnull %24) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) store i64 %.sroa.0.0.copyload1.i, ptr %24, align 8 - %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %23) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %23, ptr noundef nonnull align 8 dereferenceable(72) %16, i64 72, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %21) @@ -3454,7 +3446,6 @@ define hidden void @"_ZN10serde_json5value2de78_$LT$impl$u20$serde..de..Deserial %14 = alloca [72 x i8], align 8 %15 = alloca [24 x i8], align 8 %16 = alloca [72 x i8], align 8 - %.sroa.273 = alloca [16 x i8], align 8 %.sroa.3 = alloca [64 x i8], align 8 %17 = alloca [24 x i8], align 8 %18 = alloca [24 x i8], align 8 @@ -3653,11 +3644,10 @@ _ZN5serde2de10EnumAccess7variant17h17bc5f611d41052eE.exit.i: ; preds = %47 %.sroa.6.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 8 %83 = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %83, i64 72, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) + %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 call void @llvm.lifetime.start.p0(ptr nonnull %24) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) store i64 %.sroa.0.0.copyload1.i, ptr %24, align 8 - %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %23) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %23, ptr noundef nonnull align 8 dereferenceable(72) %16, i64 72, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %21) @@ -4030,7 +4020,6 @@ define hidden void @"_ZN10serde_json5value2de78_$LT$impl$u20$serde..de..Deserial %14 = alloca [72 x i8], align 8 %15 = alloca [24 x i8], align 8 %16 = alloca [72 x i8], align 8 - %.sroa.273 = alloca [16 x i8], align 8 %.sroa.3 = alloca [64 x i8], align 8 %17 = alloca [24 x i8], align 8 %18 = alloca [24 x i8], align 8 @@ -4229,11 +4218,10 @@ _ZN5serde2de10EnumAccess7variant17h34e00c0070fe1998E.exit.i: ; preds = %47 %.sroa.6.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 8 %83 = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %83, i64 72, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) + %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 call void @llvm.lifetime.start.p0(ptr nonnull %24) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) store i64 %.sroa.0.0.copyload1.i, ptr %24, align 8 - %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %23) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %23, ptr noundef nonnull align 8 dereferenceable(72) %16, i64 72, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %21) diff --git a/bench/zed-rs/optimized/9fdv7qxvc9ek9liffc7407f9x.ll b/bench/zed-rs/optimized/9fdv7qxvc9ek9liffc7407f9x.ll index 83c81ab55fe..f1cbe9403e0 100644 --- a/bench/zed-rs/optimized/9fdv7qxvc9ek9liffc7407f9x.ll +++ b/bench/zed-rs/optimized/9fdv7qxvc9ek9liffc7407f9x.ll @@ -13525,7 +13525,6 @@ define hidden void @"_ZN10serde_json5value2de78_$LT$impl$u20$serde..de..Deserial %14 = alloca [72 x i8], align 8 %15 = alloca [24 x i8], align 8 %16 = alloca [72 x i8], align 8 - %.sroa.273 = alloca [16 x i8], align 8 %.sroa.3 = alloca [64 x i8], align 8 %17 = alloca [24 x i8], align 8 %18 = alloca [24 x i8], align 8 @@ -13724,11 +13723,10 @@ _ZN5serde2de10EnumAccess7variant17h6a1840397571df8cE.exit.i: ; preds = %47 %.sroa.6.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 8 %83 = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %83, i64 72, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) + %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 call void @llvm.lifetime.start.p0(ptr nonnull %24) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) store i64 %.sroa.0.0.copyload1.i, ptr %24, align 8 - %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %23) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %23, ptr noundef nonnull align 8 dereferenceable(72) %16, i64 72, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %21) @@ -14101,7 +14099,6 @@ define hidden void @"_ZN10serde_json5value2de78_$LT$impl$u20$serde..de..Deserial %14 = alloca [72 x i8], align 8 %15 = alloca [24 x i8], align 8 %16 = alloca [72 x i8], align 8 - %.sroa.273 = alloca [16 x i8], align 8 %.sroa.3 = alloca [64 x i8], align 8 %17 = alloca [24 x i8], align 8 %18 = alloca [24 x i8], align 8 @@ -14300,11 +14297,10 @@ _ZN5serde2de10EnumAccess7variant17h84a06bb8249ee1e8E.exit.i: ; preds = %47 %.sroa.6.0..sroa_idx2.i = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 8 %83 = getelementptr inbounds nuw i8, ptr %.sroa.057.sroa.2.0.copyload, i64 24 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %16, ptr noundef nonnull align 8 dereferenceable(72) %83, i64 72, i1 false) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) + %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 call void @llvm.lifetime.start.p0(ptr nonnull %24) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6.0..sroa_idx2.i, i64 16, i1 false) store i64 %.sroa.0.0.copyload1.i, ptr %24, align 8 - %.sroa.273.0..sroa_idx = getelementptr inbounds nuw i8, ptr %24, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273.0..sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.273, i64 16, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %23) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %23, ptr noundef nonnull align 8 dereferenceable(72) %16, i64 72, i1 false) call void @llvm.lifetime.start.p0(ptr nonnull %21) diff --git a/bench/zed-rs/optimized/9r3tgj00e2sbbyanbvf1oqgns.ll b/bench/zed-rs/optimized/9r3tgj00e2sbbyanbvf1oqgns.ll index f5f9352638d..1282ec5f707 100644 --- a/bench/zed-rs/optimized/9r3tgj00e2sbbyanbvf1oqgns.ll +++ b/bench/zed-rs/optimized/9r3tgj00e2sbbyanbvf1oqgns.ll @@ -78919,11 +78919,13 @@ define hidden void @_ZN9workspace10pane_group9PaneGroup5panes17h0322a41a5ca8fdb6 } ; Function Attrs: nonlazybind uwtable -define hidden void @_ZN9workspace10pane_group9PaneGroup10first_pane17h5e5ff5206058956eE(ptr dead_on_unwind noalias noundef writable sret([32 x i8]) align 8 captures(none) dereferenceable(32) %0, ptr noalias noundef readonly align 8 dereferenceable(48) %1) unnamed_addr #1 { +define hidden void @_ZN9workspace10pane_group9PaneGroup10first_pane17h5e5ff5206058956eE(ptr dead_on_unwind noalias noundef writable writeonly sret([32 x i8]) align 8 captures(none) dereferenceable(32) %0, ptr noalias noundef readonly align 8 dereferenceable(48) %1) unnamed_addr #1 { + %3 = alloca [32 x i8], align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !20442) - %3 = load i64, ptr %1, align 8, !range !90, !alias.scope !20442, !noalias !20445, !noundef !4 - %4 = icmp eq i64 %3, -9223372036854775808 - br i1 %4, label %_ZN9workspace10pane_group6Member10first_pane17h4dd87b84f2f187f3E.llvm.4784060810856971783.exit, label %.lr.ph.i + call void @llvm.lifetime.start.p0(ptr nonnull %3) + %4 = load i64, ptr %1, align 8, !range !90, !alias.scope !20442, !noalias !20445, !noundef !4 + %5 = icmp eq i64 %4, -9223372036854775808 + br i1 %5, label %_ZN9workspace10pane_group6Member10first_pane17h4dd87b84f2f187f3E.llvm.4784060810856971783.exit, label %.lr.ph.i .lr.ph.i: ; preds = %2, %tailrecurse.i %.tr13.i = phi ptr [ %8, %tailrecurse.i ], [ %1, %2 ] @@ -78946,7 +78948,9 @@ tailrecurse.i: ; preds = %.lr.ph.i _ZN9workspace10pane_group6Member10first_pane17h4dd87b84f2f187f3E.llvm.4784060810856971783.exit: ; preds = %tailrecurse.i, %2 %.tr1.lcssa.i = phi ptr [ %1, %2 ], [ %8, %tailrecurse.i ] %12 = getelementptr inbounds nuw i8, ptr %.tr1.lcssa.i, i64 8 - tail call void @"_ZN70_$LT$gpui..app..entity_map..AnyModel$u20$as$u20$core..clone..Clone$GT$5clone17h13db8591b4f63891E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %12) + call void @"_ZN70_$LT$gpui..app..entity_map..AnyModel$u20$as$u20$core..clone..Clone$GT$5clone17h13db8591b4f63891E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %12), !noalias !20445 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %3, i64 32, i1 false), !noalias !20442 + call void @llvm.lifetime.end.p0(ptr nonnull %3) ret void } @@ -79293,9 +79297,10 @@ define hidden noundef zeroext i1 @"_ZN9workspace10pane_group6Member8contains28_$ ; Function Attrs: nonlazybind uwtable define hidden void @_ZN9workspace10pane_group6Member10first_pane17h4dd87b84f2f187f3E.llvm.4784060810856971783(ptr dead_on_unwind noalias noundef writable writeonly sret([32 x i8]) align 8 captures(none) dereferenceable(32) %0, ptr noalias noundef readonly align 8 dereferenceable(48) %1) unnamed_addr #1 { - %3 = load i64, ptr %1, align 8, !range !90, !noundef !4 - %4 = icmp eq i64 %3, -9223372036854775808 - br i1 %4, label %tailrecurse._crit_edge, label %.lr.ph + %3 = alloca [32 x i8], align 8 + %4 = load i64, ptr %1, align 8, !range !90, !noundef !4 + %5 = icmp eq i64 %4, -9223372036854775808 + br i1 %5, label %tailrecurse._crit_edge, label %.lr.ph .lr.ph: ; preds = %2, %tailrecurse %.tr13 = phi ptr [ %9, %tailrecurse ], [ %1, %2 ] @@ -79307,7 +79312,8 @@ define hidden void @_ZN9workspace10pane_group6Member10first_pane17h4dd87b84f2f18 tailrecurse._crit_edge: ; preds = %tailrecurse, %2 %.tr1.lcssa = phi ptr [ %1, %2 ], [ %9, %tailrecurse ] %7 = getelementptr inbounds nuw i8, ptr %.tr1.lcssa, i64 8 - tail call void @"_ZN70_$LT$gpui..app..entity_map..AnyModel$u20$as$u20$core..clone..Clone$GT$5clone17h13db8591b4f63891E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %0, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %7) + call void @"_ZN70_$LT$gpui..app..entity_map..AnyModel$u20$as$u20$core..clone..Clone$GT$5clone17h13db8591b4f63891E"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %7) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %3, i64 32, i1 false) ret void tailrecurse: ; preds = %.lr.ph diff --git a/bench/zed-rs/optimized/d7h2r6mystjn2jzwcl5ofeoiz.ll b/bench/zed-rs/optimized/d7h2r6mystjn2jzwcl5ofeoiz.ll index 5cc92e314e3..33585d9e78f 100644 --- a/bench/zed-rs/optimized/d7h2r6mystjn2jzwcl5ofeoiz.ll +++ b/bench/zed-rs/optimized/d7h2r6mystjn2jzwcl5ofeoiz.ll @@ -125579,7 +125579,7 @@ define hidden { float, float } @"_ZN73_$LT$editor..element..EditorElement$u20$as %26 = getelementptr inbounds nuw i8, ptr %8, i64 8 %27 = load ptr, ptr %26, align 8, !nonnull !4, !noundef !4 %28 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, { i64, { [373 x i64] } }, i64, float, float }, ptr %27, i64 %23 - call void @llvm.memmove.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3032) %9, ptr noundef nonnull align 8 dereferenceable(3032) %28, i64 3032, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3032) %9, ptr noundef nonnull align 8 dereferenceable(3032) %28, i64 3032, i1 false) br label %29 29: ; preds = %31, %22 diff --git a/bench/zed-rs/optimized/dd8ztmg64g4x9ypkzwkofy6vi.ll b/bench/zed-rs/optimized/dd8ztmg64g4x9ypkzwkofy6vi.ll index 98cd0f79f83..45d1368daed 100644 --- a/bench/zed-rs/optimized/dd8ztmg64g4x9ypkzwkofy6vi.ll +++ b/bench/zed-rs/optimized/dd8ztmg64g4x9ypkzwkofy6vi.ll @@ -2775,6 +2775,7 @@ define hidden void @_ZN4gpui6styled6Styled9flex_grow17h618b8f16246603eeE(ptr dea ; Function Attrs: nonlazybind uwtable define hidden noundef nonnull ptr @_ZN4gpui8elements4list9ListState3new17h53759b0987055659E(i64 noundef %0, i1 noundef zeroext %1, float noundef %2, ptr noalias noundef align 8 captures(none) dereferenceable(32) %3) unnamed_addr #0 personality ptr @rust_eh_personality { %5 = alloca [832 x i8], align 8 + %.sroa.6.i = alloca [32 x i8], align 8 %6 = alloca [136 x i8], align 8 %7 = alloca [8 x i8], align 8 call void @llvm.lifetime.start.p0(ptr nonnull %7) @@ -2809,12 +2810,12 @@ common.resume: ; preds = %.body, %41, %37, %1 "_ZN5alloc5boxed12Box$LT$T$GT$3new17h83a5df21f9fb4a2eE.exit": ; preds = %4 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull align 8 dereferenceable(32) %3, i64 32, i1 false) - %.sroa.6.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 800 - call void @llvm.lifetime.start.p0(ptr nonnull %5) - invoke void @"_ZN75_$LT$gpui..elements..list..ListItemSummary$u20$as$u20$sum_tree..Summary$GT$4zero17he19890d93f210d1cE"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %.sroa.6.0..sroa_idx.i, ptr noalias noundef nonnull readonly align 1 inttoptr (i64 1 to ptr)) + call void @llvm.lifetime.start.p0(ptr nonnull %.sroa.6.i) + invoke void @"_ZN75_$LT$gpui..elements..list..ListItemSummary$u20$as$u20$sum_tree..Summary$GT$4zero17he19890d93f210d1cE"(ptr noalias noundef nonnull sret([32 x i8]) align 8 captures(none) dereferenceable(32) %.sroa.6.i, ptr noalias noundef nonnull readonly align 1 inttoptr (i64 1 to ptr)) to label %.noexc25 unwind label %27 .noexc25: ; preds = %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h83a5df21f9fb4a2eE.exit" + call void @llvm.lifetime.start.p0(ptr nonnull %5) store i64 1, ptr %5, align 8 %17 = getelementptr inbounds nuw i8, ptr %5, i64 8 store i64 1, ptr %17, align 8 @@ -2822,6 +2823,8 @@ common.resume: ; preds = %.body, %41, %37, %1 store i32 0, ptr %18, align 8 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 408 store i32 0, ptr %.sroa.5.0..sroa_idx.i, align 8 + %.sroa.6.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %5, i64 800 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.6.0..sroa_idx.i, ptr noundef nonnull align 8 dereferenceable(32) %.sroa.6.i, i64 32, i1 false) %19 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1, !noalias !1012 %20 = tail call noalias noundef align 8 dereferenceable_or_null(832) ptr @__rust_alloc(i64 noundef range(i64 1, 0) 832, i64 noundef 8) #38, !noalias !1012 %21 = icmp eq ptr %20, null @@ -2859,6 +2862,7 @@ common.resume: ; preds = %.body, %41, %37, %1 29: ; preds = %.noexc25 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(832) %20, ptr noundef nonnull align 8 dereferenceable(832) %5, i64 832, i1 false) call void @llvm.lifetime.end.p0(ptr nonnull %5) + call void @llvm.lifetime.end.p0(ptr nonnull %.sroa.6.i) %30 = zext i1 %1 to i8 call void @llvm.lifetime.start.p0(ptr nonnull %6) store i64 1, ptr %6, align 8 diff --git a/bench/zed-rs/optimized/dm2ksdv5qc85lqu404cluyab5.ll b/bench/zed-rs/optimized/dm2ksdv5qc85lqu404cluyab5.ll index 7706fcf37f2..c2dec3bcc2d 100644 --- a/bench/zed-rs/optimized/dm2ksdv5qc85lqu404cluyab5.ll +++ b/bench/zed-rs/optimized/dm2ksdv5qc85lqu404cluyab5.ll @@ -15104,15 +15104,16 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %9 = alloca [8 x i8], align 8 %10 = alloca [632 x i8], align 8 %11 = alloca [616 x i8], align 8 - %12 = alloca [632 x i8], align 8 + %12 = alloca [616 x i8], align 8 %13 = alloca [632 x i8], align 8 - %14 = alloca [616 x i8], align 8 + %14 = alloca [632 x i8], align 8 %15 = alloca [616 x i8], align 8 - %16 = alloca [8 x i8], align 8 - store i64 %3, ptr %16, align 8 - %17 = load i64, ptr %1, align 8, !range !123, !noundef !24 - %18 = icmp eq i64 %17, 2 - br i1 %18, label %42, label %19 + %16 = alloca [616 x i8], align 8 + %17 = alloca [8 x i8], align 8 + store i64 %3, ptr %17, align 8 + %18 = load i64, ptr %1, align 8, !range !123, !noundef !24 + %19 = icmp eq i64 %18, 2 + br i1 %19, label %43, label %20 19: ; preds = %4 %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 @@ -15125,38 +15126,39 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %.sroa.5.0.copyload = load ptr, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.6.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 40 %.sroa.6.0.copyload = load ptr, ptr %.sroa.6.0..sroa_idx, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %15, ptr noundef nonnull align 8 dereferenceable(616) %2, i64 616, i1 false) - call void @llvm.lifetime.start.p0(ptr nonnull %11), !noalias !4504 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %16, ptr noundef nonnull align 8 dereferenceable(616) %2, i64 616, i1 false) + call void @llvm.lifetime.start.p0(ptr nonnull %12) %20 = icmp eq ptr %.sroa.3.0.copyload, null br i1 %20, label %24, label %21 21: ; preds = %19 - call void @llvm.lifetime.start.p0(ptr nonnull %13), !noalias !4515 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %13, ptr noundef nonnull align 8 dereferenceable(616) %2, i64 616, i1 false) - %22 = getelementptr inbounds nuw i8, ptr %13, i64 616 - store ptr %.sroa.3.0.copyload, ptr %22, align 8, !noalias !4515 - %23 = getelementptr inbounds nuw i8, ptr %13, i64 624 - store ptr %.sroa.4.0.copyload, ptr %23, align 8, !noalias !4515 - call fastcc void @"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17h0db27600b166c417E"(ptr noalias noundef align 8 captures(none) dereferenceable(616) %15, ptr nonnull align 8 dereferenceable(8) %16, ptr noalias noundef align 8 captures(none) dereferenceable(616) %13, ptr noundef nonnull %.sroa.3.0.copyload, ptr noundef %.sroa.4.0.copyload) - call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !4515 + call void @llvm.lifetime.start.p0(ptr nonnull %14), !noalias !4504 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %14, ptr noundef nonnull align 8 dereferenceable(616) %2, i64 616, i1 false) + %22 = getelementptr inbounds nuw i8, ptr %14, i64 616 + store ptr %.sroa.3.0.copyload, ptr %22, align 8, !noalias !4504 + %23 = getelementptr inbounds nuw i8, ptr %14, i64 624 + store ptr %.sroa.4.0.copyload, ptr %23, align 8, !noalias !4504 + call fastcc void @"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17h0db27600b166c417E"(ptr noalias noundef align 8 captures(none) dereferenceable(616) %16, ptr nonnull align 8 dereferenceable(8) %17, ptr noalias noundef align 8 captures(none) dereferenceable(616) %14, ptr noundef nonnull %.sroa.3.0.copyload, ptr noundef %.sroa.4.0.copyload) + call void @llvm.lifetime.end.p0(ptr nonnull %14), !noalias !4504 br label %24 24: ; preds = %21, %19 - %trunc.i.i.i.i = trunc nuw i64 %17 to i1 + %trunc.i.i.i.i = trunc nuw i64 %18 to i1 br i1 %trunc.i.i.i.i, label %25, label %37 25: ; preds = %24 - call void @llvm.experimental.noalias.scope.decl(metadata !4521) - call void @llvm.experimental.noalias.scope.decl(metadata !4524) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %11, ptr noundef nonnull align 8 dereferenceable(616) %15, i64 616, i1 false) + call void @llvm.experimental.noalias.scope.decl(metadata !4520) + call void @llvm.experimental.noalias.scope.decl(metadata !4523) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %12, ptr noundef nonnull align 8 dereferenceable(616) %16, i64 616, i1 false) %26 = icmp eq ptr %.sroa.2.0.copyload, null br i1 %26, label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE.exit.i.i.i", label %.lr.ph.split.us.i.i.i.i.i.i .lr.ph.split.us.i.i.i.i.i.i: ; preds = %25 %27 = getelementptr inbounds nuw i8, ptr %10, i64 624 %28 = getelementptr inbounds nuw i8, ptr %10, i64 616 - call void @llvm.lifetime.start.p0(ptr nonnull %10), !noalias !4527 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %10, ptr noundef nonnull align 8 dereferenceable(616) %15, i64 616, i1 false) + call void @llvm.lifetime.start.p0(ptr nonnull %11), !noalias !4526 + call void @llvm.lifetime.start.p0(ptr nonnull %10), !noalias !4535 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %10, ptr noundef nonnull align 8 dereferenceable(616) %16, i64 616, i1 false) %.val4.us.i.i.i.i.i.i = load ptr, ptr %.sroa.2.0.copyload, align 8, !alias.scope !4542, !noalias !4543, !nonnull !24, !noundef !24 %29 = getelementptr inbounds nuw i8, ptr %.val4.us.i.i.i.i.i.i, i64 16 %30 = load i64, ptr %29, align 8, !alias.scope !4544, !noalias !4547, !noundef !24 @@ -15168,35 +15170,37 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %.sink12.i.i.i.us.i.i.i.i.i.i = select i1 %31, ptr %33, ptr %32 %.sink11.i.i.i.us.i.i.i.i.i.i = select i1 %31, i64 %35, i64 %30 %36 = getelementptr inbounds { { i64, [6 x i64] }, { { { { { i64, ptr, {} }, i64 } } }, { { { { i64, ptr, {} }, i64 } }, { { { i64, ptr, {} }, i64 } }, { { i64, ptr, {} }, i64 }, { { i64, ptr, {} }, i64 }, { i64, [2 x i64] }, { [3 x i64], i64, [2 x i64] }, { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } }, i8, i8, i8, i8, [4 x i8] }, { { { i64, ptr, {} }, i64 } }, { i64, [31 x i64] }, { { { { { ptr, i64, i64, i64 }, {}, {} }, { {} } } } } } }, ptr %.sink12.i.i.i.us.i.i.i.i.i.i, i64 %.sink11.i.i.i.us.i.i.i.i.i.i - store ptr %.sink12.i.i.i.us.i.i.i.i.i.i, ptr %28, align 8, !noalias !4527 - store ptr %36, ptr %27, align 8, !noalias !4527 - call fastcc void @"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17h0db27600b166c417E"(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(616) %11, ptr nonnull align 8 dereferenceable(8) %16, ptr noalias noundef align 8 captures(none) dereferenceable(616) %10, ptr noundef nonnull %.sink12.i.i.i.us.i.i.i.i.i.i, ptr noundef nonnull %36), !noalias !4549 - call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !4527 + store ptr %.sink12.i.i.i.us.i.i.i.i.i.i, ptr %28, align 8, !noalias !4535 + store ptr %36, ptr %27, align 8, !noalias !4535 + call fastcc void @"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17h0db27600b166c417E"(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(616) %11, ptr nonnull align 8 dereferenceable(8) %17, ptr noalias noundef align 8 captures(none) dereferenceable(616) %10, ptr noundef nonnull %.sink12.i.i.i.us.i.i.i.i.i.i, ptr noundef nonnull %36), !noalias !4549 + call void @llvm.lifetime.end.p0(ptr nonnull %10), !noalias !4535 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %12, ptr noundef nonnull align 8 dereferenceable(616) %11, i64 616, i1 false), !noalias !4504 + call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !4526 br label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE.exit.i.i.i" 37: ; preds = %24 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %11, ptr noundef nonnull align 8 dereferenceable(616) %15, i64 616, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %12, ptr noundef nonnull align 8 dereferenceable(616) %16, i64 616, i1 false) br label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE.exit.i.i.i" "_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE.exit.i.i.i": ; preds = %37, %.lr.ph.split.us.i.i.i.i.i.i, %25 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %15, ptr noundef nonnull align 8 dereferenceable(616) %11, i64 616, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %16, ptr noundef nonnull align 8 dereferenceable(616) %12, i64 616, i1 false) %38 = icmp eq ptr %.sroa.5.0.copyload, null br i1 %38, label %"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E.exit", label %39 39: ; preds = %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE.exit.i.i.i" - call void @llvm.lifetime.start.p0(ptr nonnull %12), !noalias !4515 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %12, ptr noundef nonnull align 8 dereferenceable(616) %11, i64 616, i1 false), !noalias !4515 - %40 = getelementptr inbounds nuw i8, ptr %12, i64 616 - store ptr %.sroa.5.0.copyload, ptr %40, align 8, !noalias !4515 - %41 = getelementptr inbounds nuw i8, ptr %12, i64 624 - store ptr %.sroa.6.0.copyload, ptr %41, align 8, !noalias !4515 - call fastcc void @"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17h0db27600b166c417E"(ptr noalias noundef align 8 captures(none) dereferenceable(616) %15, ptr nonnull align 8 dereferenceable(8) %16, ptr noalias noundef align 8 captures(none) dereferenceable(616) %12, ptr noundef nonnull %.sroa.5.0.copyload, ptr noundef %.sroa.6.0.copyload) - call void @llvm.lifetime.end.p0(ptr nonnull %12), !noalias !4515 + call void @llvm.lifetime.start.p0(ptr nonnull %13), !noalias !4504 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %13, ptr noundef nonnull align 8 dereferenceable(616) %12, i64 616, i1 false), !noalias !4504 + %40 = getelementptr inbounds nuw i8, ptr %13, i64 616 + store ptr %.sroa.5.0.copyload, ptr %40, align 8, !noalias !4504 + %41 = getelementptr inbounds nuw i8, ptr %13, i64 624 + store ptr %.sroa.6.0.copyload, ptr %41, align 8, !noalias !4504 + call fastcc void @"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17h0db27600b166c417E"(ptr noalias noundef align 8 captures(none) dereferenceable(616) %16, ptr nonnull align 8 dereferenceable(8) %17, ptr noalias noundef align 8 captures(none) dereferenceable(616) %13, ptr noundef nonnull %.sroa.5.0.copyload, ptr noundef %.sroa.6.0.copyload) + call void @llvm.lifetime.end.p0(ptr nonnull %13), !noalias !4504 br label %"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E.exit" "_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E.exit": ; preds = %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE.exit.i.i.i", %39 - call void @llvm.lifetime.end.p0(ptr nonnull %11), !noalias !4504 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %2, ptr noundef nonnull align 8 dereferenceable(616) %15, i64 616, i1 false) + call void @llvm.lifetime.end.p0(ptr nonnull %12) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %2, ptr noundef nonnull align 8 dereferenceable(616) %16, i64 616, i1 false) br label %42 42: ; preds = %4, %"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E.exit" @@ -15216,8 +15220,8 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %.sroa.529.0.copyload = load ptr, ptr %.sroa.529.0..sroa_idx, align 8 %.sroa.630.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 88 %.sroa.630.0.copyload = load ptr, ptr %.sroa.630.0..sroa_idx, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %14, ptr noundef nonnull align 8 dereferenceable(616) %2, i64 616, i1 false) - %47 = load i64, ptr %16, align 8, !noundef !24 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %15, ptr noundef nonnull align 8 dereferenceable(616) %2, i64 616, i1 false) + %47 = load i64, ptr %17, align 8, !noundef !24 call void @llvm.lifetime.start.p0(ptr nonnull %6), !noalias !4550 call void @llvm.lifetime.start.p0(ptr nonnull %9), !noalias !4550 store i64 %47, ptr %9, align 8, !noalias !4559 @@ -15231,7 +15235,7 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ store ptr %.sroa.327.0.copyload, ptr %50, align 8, !noalias !4559 %51 = getelementptr inbounds nuw i8, ptr %8, i64 624 store ptr %.sroa.428.0.copyload, ptr %51, align 8, !noalias !4559 - call fastcc void @"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17hdfddf126f42418a4E"(ptr noalias noundef align 8 captures(none) dereferenceable(616) %14, ptr noalias noundef align 8 dereferenceable(8) %9, ptr noalias noundef align 8 captures(none) dereferenceable(616) %8, ptr noundef nonnull %.sroa.327.0.copyload, ptr noundef %.sroa.428.0.copyload) + call fastcc void @"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17hdfddf126f42418a4E"(ptr noalias noundef align 8 captures(none) dereferenceable(616) %15, ptr noalias noundef align 8 dereferenceable(8) %9, ptr noalias noundef align 8 captures(none) dereferenceable(616) %8, ptr noundef nonnull %.sroa.327.0.copyload, ptr noundef %.sroa.428.0.copyload) call void @llvm.lifetime.end.p0(ptr nonnull %8), !noalias !4559 br label %52 @@ -15242,7 +15246,7 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ 53: ; preds = %52 call void @llvm.experimental.noalias.scope.decl(metadata !4564) call void @llvm.experimental.noalias.scope.decl(metadata !4567) - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %6, ptr noundef nonnull align 8 dereferenceable(616) %14, i64 616, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %6, ptr noundef nonnull align 8 dereferenceable(616) %15, i64 616, i1 false) %54 = icmp eq ptr %.sroa.226.0.copyload, null br i1 %54, label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1720b2a483a68917E.exit.i.i.i", label %.lr.ph.split.us.i.i.i.i.i.i23 @@ -15250,7 +15254,7 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ %55 = getelementptr inbounds nuw i8, ptr %5, i64 624 %56 = getelementptr inbounds nuw i8, ptr %5, i64 616 call void @llvm.lifetime.start.p0(ptr nonnull %5), !noalias !4570 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %5, ptr noundef nonnull align 8 dereferenceable(616) %14, i64 616, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %5, ptr noundef nonnull align 8 dereferenceable(616) %15, i64 616, i1 false) %.val4.us.i.i.i.i.i.i24 = load ptr, ptr %.sroa.226.0.copyload, align 8, !alias.scope !4587, !noalias !4588, !nonnull !24, !noundef !24 %57 = getelementptr i8, ptr %.sroa.226.0.copyload, i64 8 %.val5.us.i.i.i.i.i.i = load i64, ptr %57, align 8, !alias.scope !4587, !noalias !4588, !noundef !24 @@ -15263,11 +15267,11 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ br label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1720b2a483a68917E.exit.i.i.i" 60: ; preds = %52 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %6, ptr noundef nonnull align 8 dereferenceable(616) %14, i64 616, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %6, ptr noundef nonnull align 8 dereferenceable(616) %15, i64 616, i1 false) br label %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1720b2a483a68917E.exit.i.i.i" "_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1720b2a483a68917E.exit.i.i.i": ; preds = %60, %.lr.ph.split.us.i.i.i.i.i.i23, %53 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %14, ptr noundef nonnull align 8 dereferenceable(616) %6, i64 616, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %15, ptr noundef nonnull align 8 dereferenceable(616) %6, i64 616, i1 false) %61 = icmp eq ptr %.sroa.529.0.copyload, null br i1 %61, label %"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7760680f32dc1d1fE.exit", label %62 @@ -15278,18 +15282,18 @@ define hidden void @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$ store ptr %.sroa.529.0.copyload, ptr %63, align 8, !noalias !4559 %64 = getelementptr inbounds nuw i8, ptr %7, i64 624 store ptr %.sroa.630.0.copyload, ptr %64, align 8, !noalias !4559 - call fastcc void @"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17hdfddf126f42418a4E"(ptr noalias noundef align 8 captures(none) dereferenceable(616) %14, ptr noalias noundef align 8 dereferenceable(8) %9, ptr noalias noundef align 8 captures(none) dereferenceable(616) %7, ptr noundef nonnull %.sroa.529.0.copyload, ptr noundef %.sroa.630.0.copyload) + call fastcc void @"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17hdfddf126f42418a4E"(ptr noalias noundef align 8 captures(none) dereferenceable(616) %15, ptr noalias noundef align 8 dereferenceable(8) %9, ptr noalias noundef align 8 captures(none) dereferenceable(616) %7, ptr noundef nonnull %.sroa.529.0.copyload, ptr noundef %.sroa.630.0.copyload) call void @llvm.lifetime.end.p0(ptr nonnull %7), !noalias !4559 br label %"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7760680f32dc1d1fE.exit" "_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7760680f32dc1d1fE.exit": ; preds = %"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1720b2a483a68917E.exit.i.i.i", %62 call void @llvm.lifetime.end.p0(ptr nonnull %6), !noalias !4550 call void @llvm.lifetime.end.p0(ptr nonnull %9), !noalias !4550 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %2, ptr noundef nonnull align 8 dereferenceable(616) %14, i64 616, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %2, ptr noundef nonnull align 8 dereferenceable(616) %15, i64 616, i1 false) br label %65 65: ; preds = %42, %"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7760680f32dc1d1fE.exit" - %.sink = phi ptr [ %14, %"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7760680f32dc1d1fE.exit" ], [ %2, %42 ] + %.sink = phi ptr [ %15, %"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h7760680f32dc1d1fE.exit" ], [ %2, %43 ] call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(616) %0, ptr noundef nonnull align 8 dereferenceable(616) %.sink, i64 616, i1 false) ret void } @@ -166016,52 +166020,52 @@ attributes #79 = { noreturn nounwind } !4501 = !{!4502, !4489, !4491, !4493, !4495, !4497, !4499} !4502 = distinct !{!4502, !4503, !"_ZN99_$LT$arrayvec..arrayvec..ArrayVec$LT$T$C$_$GT$$u20$as$u20$arrayvec..arrayvec_impl..ArrayVecImpl$GT$7set_len17h6dcd6cb18034df84E.llvm.5846128800800072799: argument 0"} !4503 = distinct !{!4503, !"_ZN99_$LT$arrayvec..arrayvec..ArrayVec$LT$T$C$_$GT$$u20$as$u20$arrayvec..arrayvec_impl..ArrayVecImpl$GT$7set_len17h6dcd6cb18034df84E.llvm.5846128800800072799"} -!4504 = !{!4505, !4507, !4508, !4509, !4510, !4512, !4513, !4514} -!4505 = distinct !{!4505, !4506, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5aef89e82ab43a10E: argument 0"} -!4506 = distinct !{!4506, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5aef89e82ab43a10E"} -!4507 = distinct !{!4507, !4506, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5aef89e82ab43a10E: argument 1"} -!4508 = distinct !{!4508, !4506, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5aef89e82ab43a10E: argument 2"} -!4509 = distinct !{!4509, !4506, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5aef89e82ab43a10E: argument 3"} -!4510 = distinct !{!4510, !4511, !"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E: argument 0"} -!4511 = distinct !{!4511, !"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E"} -!4512 = distinct !{!4512, !4511, !"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E: argument 1"} -!4513 = distinct !{!4513, !4511, !"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E: argument 2"} -!4514 = distinct !{!4514, !4511, !"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E: argument 3"} -!4515 = !{!4516, !4518, !4519, !4520, !4505, !4507, !4508, !4509, !4510, !4512, !4513, !4514} -!4516 = distinct !{!4516, !4517, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold17h1c8f044708bde352E: argument 0"} -!4517 = distinct !{!4517, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold17h1c8f044708bde352E"} -!4518 = distinct !{!4518, !4517, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold17h1c8f044708bde352E: argument 1"} -!4519 = distinct !{!4519, !4517, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold17h1c8f044708bde352E: argument 2"} -!4520 = distinct !{!4520, !4517, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold17h1c8f044708bde352E: argument 3"} -!4521 = !{!4522} -!4522 = distinct !{!4522, !4523, !"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1ecc488d15255720E: argument 1"} -!4523 = distinct !{!4523, !"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1ecc488d15255720E"} -!4524 = !{!4525} -!4525 = distinct !{!4525, !4526, !"_ZN4core4iter6traits8iterator8Iterator4fold17h7ae870f6b9eaa5d3E: argument 1"} -!4526 = distinct !{!4526, !"_ZN4core4iter6traits8iterator8Iterator4fold17h7ae870f6b9eaa5d3E"} -!4527 = !{!4528, !4530, !4531, !4533, !4534, !4525, !4535, !4536, !4537, !4522, !4538, !4539, !4541, !4516, !4518, !4519, !4520, !4505, !4507, !4508, !4509, !4510, !4512, !4513, !4514} -!4528 = distinct !{!4528, !4529, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17hc645aef1f9f6e6adE: argument 0"} -!4529 = distinct !{!4529, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17hc645aef1f9f6e6adE"} -!4530 = distinct !{!4530, !4529, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17hc645aef1f9f6e6adE: argument 1"} -!4531 = distinct !{!4531, !4532, !"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha65a04518ac38310E: argument 0"} -!4532 = distinct !{!4532, !"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha65a04518ac38310E"} -!4533 = distinct !{!4533, !4532, !"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha65a04518ac38310E: argument 1"} -!4534 = distinct !{!4534, !4526, !"_ZN4core4iter6traits8iterator8Iterator4fold17h7ae870f6b9eaa5d3E: argument 0"} -!4535 = distinct !{!4535, !4526, !"_ZN4core4iter6traits8iterator8Iterator4fold17h7ae870f6b9eaa5d3E: argument 2"} -!4536 = distinct !{!4536, !4526, !"_ZN4core4iter6traits8iterator8Iterator4fold17h7ae870f6b9eaa5d3E: argument 3"} -!4537 = distinct !{!4537, !4523, !"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1ecc488d15255720E: argument 0"} -!4538 = distinct !{!4538, !4523, !"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1ecc488d15255720E: argument 2"} -!4539 = distinct !{!4539, !4540, !"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE: argument 0"} -!4540 = distinct !{!4540, !"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE"} -!4541 = distinct !{!4541, !4540, !"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE: argument 1"} -!4542 = !{!4525, !4522} -!4543 = !{!4534, !4535, !4536, !4537, !4538, !4539, !4541, !4516, !4518, !4519, !4520, !4505, !4507, !4508, !4509, !4510, !4512, !4513, !4514} +!4504 = !{!4505, !4507, !4508, !4509, !4510, !4512, !4513, !4514, !4515, !4517, !4518, !4519} +!4505 = distinct !{!4505, !4506, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold17h1c8f044708bde352E: argument 0"} +!4506 = distinct !{!4506, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold17h1c8f044708bde352E"} +!4507 = distinct !{!4507, !4506, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold17h1c8f044708bde352E: argument 1"} +!4508 = distinct !{!4508, !4506, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold17h1c8f044708bde352E: argument 2"} +!4509 = distinct !{!4509, !4506, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold17h1c8f044708bde352E: argument 3"} +!4510 = distinct !{!4510, !4511, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5aef89e82ab43a10E: argument 0"} +!4511 = distinct !{!4511, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5aef89e82ab43a10E"} +!4512 = distinct !{!4512, !4511, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5aef89e82ab43a10E: argument 1"} +!4513 = distinct !{!4513, !4511, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5aef89e82ab43a10E: argument 2"} +!4514 = distinct !{!4514, !4511, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h5aef89e82ab43a10E: argument 3"} +!4515 = distinct !{!4515, !4516, !"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E: argument 0"} +!4516 = distinct !{!4516, !"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E"} +!4517 = distinct !{!4517, !4516, !"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E: argument 1"} +!4518 = distinct !{!4518, !4516, !"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E: argument 2"} +!4519 = distinct !{!4519, !4516, !"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17he67d1716d4a942e1E: argument 3"} +!4520 = !{!4521} +!4521 = distinct !{!4521, !4522, !"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1ecc488d15255720E: argument 1"} +!4522 = distinct !{!4522, !"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1ecc488d15255720E"} +!4523 = !{!4524} +!4524 = distinct !{!4524, !4525, !"_ZN4core4iter6traits8iterator8Iterator4fold17h7ae870f6b9eaa5d3E: argument 1"} +!4525 = distinct !{!4525, !"_ZN4core4iter6traits8iterator8Iterator4fold17h7ae870f6b9eaa5d3E"} +!4526 = !{!4527, !4524, !4528, !4529, !4530, !4521, !4531, !4532, !4534, !4505, !4507, !4508, !4509, !4510, !4512, !4513, !4514, !4515, !4517, !4518, !4519} +!4527 = distinct !{!4527, !4525, !"_ZN4core4iter6traits8iterator8Iterator4fold17h7ae870f6b9eaa5d3E: argument 0"} +!4528 = distinct !{!4528, !4525, !"_ZN4core4iter6traits8iterator8Iterator4fold17h7ae870f6b9eaa5d3E: argument 2"} +!4529 = distinct !{!4529, !4525, !"_ZN4core4iter6traits8iterator8Iterator4fold17h7ae870f6b9eaa5d3E: argument 3"} +!4530 = distinct !{!4530, !4522, !"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1ecc488d15255720E: argument 0"} +!4531 = distinct !{!4531, !4522, !"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h1ecc488d15255720E: argument 2"} +!4532 = distinct !{!4532, !4533, !"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE: argument 0"} +!4533 = distinct !{!4533, !"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE"} +!4534 = distinct !{!4534, !4533, !"_ZN100_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h6c39667a6da3a18cE: argument 1"} +!4535 = !{!4536, !4538, !4539, !4541, !4527, !4524, !4528, !4529, !4530, !4521, !4531, !4532, !4534, !4505, !4507, !4508, !4509, !4510, !4512, !4513, !4514, !4515, !4517, !4518, !4519} +!4536 = distinct !{!4536, !4537, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17hc645aef1f9f6e6adE: argument 0"} +!4537 = distinct !{!4537, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17hc645aef1f9f6e6adE"} +!4538 = distinct !{!4538, !4537, !"_ZN4core4iter8adapters7flatten26FlattenCompat$LT$I$C$U$GT$9iter_fold7flatten28_$u7b$$u7b$closure$u7d$$u7d$17hc645aef1f9f6e6adE: argument 1"} +!4539 = distinct !{!4539, !4540, !"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha65a04518ac38310E: argument 0"} +!4540 = distinct !{!4540, !"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha65a04518ac38310E"} +!4541 = distinct !{!4541, !4540, !"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha65a04518ac38310E: argument 1"} +!4542 = !{!4524, !4521} +!4543 = !{!4527, !4528, !4529, !4530, !4531, !4532, !4534, !4505, !4507, !4508, !4509, !4510, !4512, !4513, !4514, !4515, !4517, !4518, !4519} !4544 = !{!4545} !4545 = distinct !{!4545, !4546, !"_ZN8smallvec17SmallVec$LT$A$GT$6triple17h18beeea0bcc4fa73E: argument 1"} !4546 = distinct !{!4546, !"_ZN8smallvec17SmallVec$LT$A$GT$6triple17h18beeea0bcc4fa73E"} -!4547 = !{!4548, !4531, !4533, !4534, !4525, !4535, !4536, !4537, !4522, !4538, !4539, !4541, !4516, !4518, !4519, !4520, !4505, !4507, !4508, !4509, !4510, !4512, !4513, !4514} +!4547 = !{!4548, !4539, !4541, !4527, !4524, !4528, !4529, !4530, !4521, !4531, !4532, !4534, !4505, !4507, !4508, !4509, !4510, !4512, !4513, !4514, !4515, !4517, !4518, !4519} !4548 = distinct !{!4548, !4546, !"_ZN8smallvec17SmallVec$LT$A$GT$6triple17h18beeea0bcc4fa73E: argument 0"} -!4549 = !{!4516, !4518, !4519, !4505, !4507, !4508, !4510, !4512, !4513} +!4549 = !{!4527, !4524, !4528, !4529, !4530, !4521, !4531, !4532, !4534, !4505, !4507, !4508, !4510, !4512, !4513, !4515, !4517, !4518} !4550 = !{!4551, !4553, !4554, !4555, !4557, !4558} !4551 = distinct !{!4551, !4552, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h447bcd82c1f36d71E: argument 0"} !4552 = distinct !{!4552, !"_ZN116_$LT$core..iter..adapters..flatten..FlattenCompat$LT$I$C$U$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4fold17h447bcd82c1f36d71E"} diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c8d0fce0bf7..2ee736c36de 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/174739 export COMPTIME_MODE=0 export STAT_MODE=0 export STAT_NAME=""