diff --git a/bench/abc/optimized/cnfMap.c.ll b/bench/abc/optimized/cnfMap.c.ll index 4369a7753d3..df360457b21 100644 --- a/bench/abc/optimized/cnfMap.c.ll +++ b/bench/abc/optimized/cnfMap.c.ll @@ -266,7 +266,7 @@ Aig_ManObj.exit.i: ; preds = %54, %49 %64 = trunc i64 %63 to i32 %65 = shl i32 %64, 10 %66 = and i32 %65, 134152192 - %67 = add i32 %66, %51 + %67 = add nuw i32 %66, %51 %68 = and i32 %67, 134152192 %69 = and i32 %51, -134152193 %70 = or disjoint i32 %68, %69 diff --git a/bench/actix-rs/optimized/comsm606o4zjj7a.ll b/bench/actix-rs/optimized/comsm606o4zjj7a.ll index 1abb03db240..0f318a9d910 100644 --- a/bench/actix-rs/optimized/comsm606o4zjj7a.ll +++ b/bench/actix-rs/optimized/comsm606o4zjj7a.ll @@ -15099,7 +15099,7 @@ common.resume: ; preds = %43, %"_ZN63_$LT$all } ; Function Attrs: nonlazybind uwtable -define hidden i64 @"_ZN6brotli3enc9interface41PredictionModeContextMap$LT$SliceType$GT$17context_map_speed17h3bd846bdfe9ec372E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %0) unnamed_addr #0 { +define hidden range(i64 0, -4611686018427387904) i64 @"_ZN6brotli3enc9interface41PredictionModeContextMap$LT$SliceType$GT$17context_map_speed17h3bd846bdfe9ec372E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %0) unnamed_addr #0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 24 %.val = load ptr, ptr %2, align 8, !nonnull !62, !align !63, !noundef !62 %3 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -15230,7 +15230,7 @@ define hidden i64 @"_ZN6brotli3enc9interface41PredictionModeContextMap$LT$SliceT } ; Function Attrs: nonlazybind uwtable -define hidden i64 @"_ZN6brotli3enc9interface41PredictionModeContextMap$LT$SliceType$GT$20stride_context_speed17hfb44a4117ecb8261E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %0) unnamed_addr #0 { +define hidden range(i64 0, -4611686018427387904) i64 @"_ZN6brotli3enc9interface41PredictionModeContextMap$LT$SliceType$GT$20stride_context_speed17hfb44a4117ecb8261E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(48) %0) unnamed_addr #0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 24 %.val = load ptr, ptr %2, align 8, !nonnull !62, !align !63, !noundef !62 %3 = getelementptr inbounds nuw i8, ptr %0, i64 32 diff --git a/bench/base64-rs/optimized/3i18zkzed1c7jyoe.ll b/bench/base64-rs/optimized/3i18zkzed1c7jyoe.ll index 0d1d46304fc..3eac9f28267 100644 --- a/bench/base64-rs/optimized/3i18zkzed1c7jyoe.ll +++ b/bench/base64-rs/optimized/3i18zkzed1c7jyoe.ll @@ -1280,7 +1280,7 @@ define noundef i24 @_ZN6base646engine15general_purpose20GeneralPurposeConfig3new } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable -define i24 @_ZN6base646engine15general_purpose20GeneralPurposeConfig19with_encode_padding17h7fbcf9bb40e669f2E(i24 %0, i1 noundef zeroext %1) unnamed_addr #2 { +define range(i24 0, -32768) i24 @_ZN6base646engine15general_purpose20GeneralPurposeConfig19with_encode_padding17h7fbcf9bb40e669f2E(i24 %0, i1 noundef zeroext %1) unnamed_addr #2 { %.sroa.23.0.insert.insert = and i24 %0, -65280 %.sroa.02.0.insert.ext = zext i1 %1 to i24 %.sroa.02.0.insert.insert = or disjoint i24 %.sroa.23.0.insert.insert, %.sroa.02.0.insert.ext @@ -1288,7 +1288,7 @@ define i24 @_ZN6base646engine15general_purpose20GeneralPurposeConfig19with_encod } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable -define i24 @_ZN6base646engine15general_purpose20GeneralPurposeConfig31with_decode_allow_trailing_bits17h27e47288d598f1feE(i24 %0, i1 noundef zeroext %1) unnamed_addr #2 { +define range(i24 0, -32768) i24 @_ZN6base646engine15general_purpose20GeneralPurposeConfig31with_decode_allow_trailing_bits17h27e47288d598f1feE(i24 %0, i1 noundef zeroext %1) unnamed_addr #2 { %.sroa.24.0.insert.shift = select i1 %1, i24 256, i24 0 %3 = and i24 %0, -65535 %.sroa.03.0.insert.insert = or disjoint i24 %.sroa.24.0.insert.shift, %3 @@ -1296,7 +1296,7 @@ define i24 @_ZN6base646engine15general_purpose20GeneralPurposeConfig31with_decod } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable -define i24 @_ZN6base646engine15general_purpose20GeneralPurposeConfig24with_decode_padding_mode17h4ece7f156cfd6b88E(i24 %0, i8 noundef %1) unnamed_addr #2 { +define range(i24 0, -32768) i24 @_ZN6base646engine15general_purpose20GeneralPurposeConfig24with_decode_padding_mode17h4ece7f156cfd6b88E(i24 %0, i8 noundef %1) unnamed_addr #2 { %.sroa.34.0.insert.ext = zext i8 %1 to i24 %.sroa.34.0.insert.shift = shl nuw i24 %.sroa.34.0.insert.ext, 16 %3 = and i24 %0, 257 diff --git a/bench/clamav/optimized/entconv.c.ll b/bench/clamav/optimized/entconv.c.ll index 16c4d4e4c8d..ec80ee7ed6a 100644 --- a/bench/clamav/optimized/entconv.c.ll +++ b/bench/clamav/optimized/entconv.c.ll @@ -1906,19 +1906,15 @@ define ptr @cli_utf16toascii(ptr nocapture noundef readonly %0, i32 noundef %1) br label %.loopexit 5: ; preds = %2 - %spec.select = and i32 %1, -2 %6 = lshr i32 %1, 1 %7 = add nuw i32 %6, 1 %8 = zext i32 %7 to i64 %9 = tail call ptr @cli_max_calloc(i64 noundef %8, i64 noundef 1) #17 %.not22 = icmp eq ptr %9, null - br i1 %.not22, label %.loopexit, label %.preheader - -.preheader: ; preds = %5 - %.not = icmp eq i32 %spec.select, 0 - br i1 %.not, label %.loopexit, label %.lr.ph.preheader + br i1 %.not22, label %.loopexit, label %.lr.ph.preheader -.lr.ph.preheader: ; preds = %.preheader +.lr.ph.preheader: ; preds = %5 + %spec.select = and i32 %1, -2 %10 = add i32 %spec.select, -1 %11 = lshr i32 %10, 1 %12 = add nuw nsw i32 %11, 1 @@ -1943,8 +1939,8 @@ define ptr @cli_utf16toascii(ptr nocapture noundef readonly %0, i32 noundef %1) %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %.loopexit, label %.lr.ph -.loopexit: ; preds = %.lr.ph, %.preheader, %5, %4 - %.018 = phi ptr [ null, %4 ], [ null, %5 ], [ %9, %.preheader ], [ %9, %.lr.ph ] +.loopexit: ; preds = %.lr.ph, %5, %4 + %.018 = phi ptr [ null, %4 ], [ null, %5 ], [ %9, %.lr.ph ] ret ptr %.018 } diff --git a/bench/cmake/optimized/archive_write_set_format_iso9660.c.ll b/bench/cmake/optimized/archive_write_set_format_iso9660.c.ll index 88702583e24..7a7e88c9aa7 100644 --- a/bench/cmake/optimized/archive_write_set_format_iso9660.c.ll +++ b/bench/cmake/optimized/archive_write_set_format_iso9660.c.ll @@ -1634,16 +1634,16 @@ define internal range(i32 -30, 1) i32 @iso9660_finish_entry(ptr noundef %0) #0 { br label %.lr.ph.i.i .lr.ph.i.i: ; preds = %wb_consume.exit.thread.i.i, %33 - %.151.i.i = phi i64 [ %87, %wb_consume.exit.thread.i.i ], [ 16, %33 ] - %.13550.i.i = phi ptr [ %88, %wb_consume.exit.thread.i.i ], [ %2, %33 ] + %.150.i.i = phi i64 [ %87, %wb_consume.exit.thread.i.i ], [ 16, %33 ] + %.13549.i.i = phi ptr [ %88, %wb_consume.exit.thread.i.i ], [ %2, %33 ] %72 = load ptr, ptr %3, align 8 %73 = getelementptr inbounds nuw i8, ptr %72, i64 66272 %74 = load i64, ptr %73, align 8 - %spec.select.i.i = tail call i64 @llvm.umin.i64(i64 %.151.i.i, i64 %74) + %spec.select.i.i = tail call i64 @llvm.umin.i64(i64 %.150.i.i, i64 %74) %75 = getelementptr inbounds nuw i8, ptr %72, i64 732 %76 = sub i64 65536, %74 %77 = getelementptr inbounds [65536 x i8], ptr %75, i64 0, i64 %76 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %77, ptr align 1 %.13550.i.i, i64 %spec.select.i.i, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %77, ptr align 1 %.13549.i.i, i64 %spec.select.i.i, i1 false) %78 = load ptr, ptr %3, align 8 %79 = getelementptr inbounds nuw i8, ptr %78, i64 66272 %80 = load i64, ptr %79, align 8 @@ -1668,8 +1668,8 @@ wb_consume.exit.i.i: ; preds = %83 br i1 %.not40.i.i, label %wb_consume.exit.thread.i.i, label %zisofs_finish_entry.exit.thread wb_consume.exit.thread.i.i: ; preds = %wb_consume.exit.i.i, %83 - %87 = sub i64 %.151.i.i, %spec.select.i.i - %88 = getelementptr inbounds i8, ptr %.13550.i.i, i64 %spec.select.i.i + %87 = sub i64 %.150.i.i, %spec.select.i.i + %88 = getelementptr inbounds i8, ptr %.13549.i.i, i64 %spec.select.i.i %.not39.i.i = icmp eq i64 %87, 0 br i1 %.not39.i.i, label %wb_write_to_temp.exit.i, label %.lr.ph.i.i, !llvm.loop !9 @@ -6953,71 +6953,67 @@ define internal fastcc range(i32 -30, 1) i32 @wb_write_to_temp(ptr noundef %0, p %8 = icmp eq i64 %7, 65536 %9 = icmp ugt i64 %2, 16384 %or.cond = and i1 %9, %8 - br i1 %or.cond, label %10, label %29 + br i1 %or.cond, label %.lr.ph.i, label %29 -10: ; preds = %3 - %11 = and i64 %2, 2047 - %12 = and i64 %2, -2048 - %13 = getelementptr inbounds nuw i8, ptr %5, i64 66288 - %14 = load i64, ptr %13, align 8 - %15 = add i64 %14, %12 - store i64 %15, ptr %13, align 8 - %.not15.i = icmp eq i64 %12, 0 - br i1 %.not15.i, label %.loopexit48, label %.lr.ph.i +.lr.ph.i: ; preds = %3 + %10 = and i64 %2, 2047 + %11 = and i64 %2, -2048 + %12 = getelementptr inbounds nuw i8, ptr %5, i64 66288 + %13 = load i64, ptr %12, align 8 + %14 = add i64 %13, %11 + store i64 %14, ptr %12, align 8 + %15 = load ptr, ptr %4, align 8 + %16 = getelementptr inbounds nuw i8, ptr %15, i64 8 + br label %17 -.lr.ph.i: ; preds = %10 - %16 = load ptr, ptr %4, align 8 - %17 = getelementptr inbounds nuw i8, ptr %16, i64 8 - br label %18 - -18: ; preds = %22, %.lr.ph.i - %.017.i = phi ptr [ %1, %.lr.ph.i ], [ %24, %22 ] - %.01316.i = phi i64 [ %12, %.lr.ph.i ], [ %23, %22 ] - %19 = load i32, ptr %17, align 8 - %20 = tail call i64 @write(i32 noundef %19, ptr noundef %.017.i, i64 noundef %.01316.i) #23 - %21 = icmp slt i64 %20, 0 - br i1 %21, label %write_to_temp.exit, label %22 - -22: ; preds = %18 - %23 = sub i64 %.01316.i, %20 - %24 = getelementptr inbounds nuw i8, ptr %.017.i, i64 %20 - %.not.i = icmp eq i64 %23, 0 - br i1 %.not.i, label %.loopexit48, label %18, !llvm.loop !36 - -write_to_temp.exit: ; preds = %18 - %25 = tail call ptr @__errno_location() #26 - %26 = load i32, ptr %25, align 4 - tail call void (ptr, i32, ptr, ...) @archive_set_error(ptr noundef %0, i32 noundef %26, ptr noundef nonnull @.str.58) #23 +17: ; preds = %21, %.lr.ph.i + %.017.i = phi ptr [ %1, %.lr.ph.i ], [ %23, %21 ] + %.01316.i = phi i64 [ %11, %.lr.ph.i ], [ %22, %21 ] + %18 = load i32, ptr %16, align 8 + %19 = tail call i64 @write(i32 noundef %18, ptr noundef %.017.i, i64 noundef %.01316.i) #23 + %20 = icmp slt i64 %19, 0 + br i1 %20, label %write_to_temp.exit, label %21 + +21: ; preds = %17 + %22 = sub i64 %.01316.i, %19 + %23 = getelementptr inbounds nuw i8, ptr %.017.i, i64 %19 + %.not.i = icmp eq i64 %22, 0 + br i1 %.not.i, label %26, label %17, !llvm.loop !36 + +write_to_temp.exit: ; preds = %17 + %24 = tail call ptr @__errno_location() #26 + %25 = load i32, ptr %24, align 4 + tail call void (ptr, i32, ptr, ...) @archive_set_error(ptr noundef %0, i32 noundef %25, ptr noundef nonnull @.str.58) #23 br label %.loopexit -.loopexit48: ; preds = %22, %10 - %27 = icmp eq i64 %11, 0 +26: ; preds = %21 + %27 = icmp eq i64 %10, 0 br i1 %27, label %.loopexit, label %.thread -.thread: ; preds = %.loopexit48 - %28 = getelementptr inbounds i8, ptr %1, i64 %12 +.thread: ; preds = %26 + %28 = getelementptr inbounds i8, ptr %1, i64 %11 br label %.lr.ph.preheader 29: ; preds = %3 - %.not3949 = icmp eq i64 %2, 0 - br i1 %.not3949, label %.loopexit, label %.lr.ph.preheader + %.not3948 = icmp eq i64 %2, 0 + br i1 %.not3948, label %.loopexit, label %.lr.ph.preheader .lr.ph.preheader: ; preds = %.thread, %29 - %.151.ph = phi i64 [ %2, %29 ], [ %11, %.thread ] - %.13550.ph = phi ptr [ %1, %29 ], [ %28, %.thread ] + %.150.ph = phi i64 [ %2, %29 ], [ %10, %.thread ] + %.13549.ph = phi ptr [ %1, %29 ], [ %28, %.thread ] br label %.lr.ph .lr.ph: ; preds = %.lr.ph.preheader, %wb_consume.exit.thread - %.151 = phi i64 [ %45, %wb_consume.exit.thread ], [ %.151.ph, %.lr.ph.preheader ] - %.13550 = phi ptr [ %46, %wb_consume.exit.thread ], [ %.13550.ph, %.lr.ph.preheader ] + %.150 = phi i64 [ %45, %wb_consume.exit.thread ], [ %.150.ph, %.lr.ph.preheader ] + %.13549 = phi ptr [ %46, %wb_consume.exit.thread ], [ %.13549.ph, %.lr.ph.preheader ] %30 = load ptr, ptr %4, align 8 %31 = getelementptr inbounds nuw i8, ptr %30, i64 66272 %32 = load i64, ptr %31, align 8 - %spec.select = tail call i64 @llvm.umin.i64(i64 %.151, i64 %32) + %spec.select = tail call i64 @llvm.umin.i64(i64 %.150, i64 %32) %33 = getelementptr inbounds nuw i8, ptr %30, i64 732 %34 = sub i64 65536, %32 %35 = getelementptr inbounds [65536 x i8], ptr %33, i64 0, i64 %34 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %35, ptr align 1 %.13550, i64 %spec.select, i1 false) + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %35, ptr align 1 %.13549, i64 %spec.select, i1 false) %36 = load ptr, ptr %4, align 8 %37 = getelementptr inbounds nuw i8, ptr %36, i64 66272 %38 = load i64, ptr %37, align 8 @@ -7042,13 +7038,13 @@ wb_consume.exit: ; preds = %41 br i1 %.not40, label %wb_consume.exit.thread, label %.loopexit wb_consume.exit.thread: ; preds = %41, %wb_consume.exit - %45 = sub i64 %.151, %spec.select - %46 = getelementptr inbounds i8, ptr %.13550, i64 %spec.select + %45 = sub i64 %.150, %spec.select + %46 = getelementptr inbounds i8, ptr %.13549, i64 %spec.select %.not39 = icmp eq i64 %45, 0 br i1 %.not39, label %.loopexit, label %.lr.ph, !llvm.loop !9 -.loopexit: ; preds = %wb_consume.exit, %wb_consume.exit.thread, %29, %wb_consume.exit.thread45, %write_to_temp.exit, %.loopexit48 - %.032 = phi i32 [ -30, %write_to_temp.exit ], [ 0, %.loopexit48 ], [ -30, %wb_consume.exit.thread45 ], [ 0, %29 ], [ -30, %wb_consume.exit ], [ 0, %wb_consume.exit.thread ] +.loopexit: ; preds = %wb_consume.exit, %wb_consume.exit.thread, %29, %wb_consume.exit.thread45, %write_to_temp.exit, %26 + %.032 = phi i32 [ -30, %write_to_temp.exit ], [ 0, %26 ], [ -30, %wb_consume.exit.thread45 ], [ 0, %29 ], [ -30, %wb_consume.exit ], [ 0, %wb_consume.exit.thread ] ret i32 %.032 } diff --git a/bench/coreutils-rs/optimized/2vroer4nd2f1b54m.ll b/bench/coreutils-rs/optimized/2vroer4nd2f1b54m.ll index 395a2660e2f..8fc59d466fb 100644 --- a/bench/coreutils-rs/optimized/2vroer4nd2f1b54m.ll +++ b/bench/coreutils-rs/optimized/2vroer4nd2f1b54m.ll @@ -214,49 +214,47 @@ define hidden void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$ %3 = alloca { { i64, ptr, {} }, i64 }, align 8 %4 = and i64 %0, -8 %5 = inttoptr i64 %4 to ptr - %6 = icmp ne i64 %4, 0 - tail call void @llvm.assume(i1 %6) - %7 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 - %8 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %9 = load i64, ptr %8, align 8, !noundef !4 + %6 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 + %7 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %8 = load i64, ptr %7, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) - store i64 %9, ptr %3, align 8 - %10 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr %7, ptr %10, align 8 - %11 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i64 0, ptr %11, align 8 + store i64 %8, ptr %3, align 8 + %9 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %6, ptr %9, align 8 + %10 = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i64 0, ptr %10, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !33 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h0e6e0d89c801c3f1E.llvm.3531809010164697281"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) - to label %.noexc unwind label %21 + to label %.noexc unwind label %20 .noexc: ; preds = %1 - %12 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %13 = load i64, ptr %12, align 8, !range !40, !noalias !33, !noundef !4 - %.not.i.i.i.i = icmp eq i64 %13, 0 - br i1 %.not.i.i.i.i, label %20, label %14 + %11 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %12 = load i64, ptr %11, align 8, !range !40, !noalias !33, !noundef !4 + %.not.i.i.i.i = icmp eq i64 %12, 0 + br i1 %.not.i.i.i.i, label %19, label %13 -14: ; preds = %.noexc - %15 = getelementptr inbounds nuw i8, ptr %2, i64 16 - %16 = load i64, ptr %15, align 8, !noalias !33, !noundef !4 - %17 = icmp eq i64 %16, 0 - br i1 %17, label %20, label %18 +13: ; preds = %.noexc + %14 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %15 = load i64, ptr %14, align 8, !noalias !33, !noundef !4 + %16 = icmp eq i64 %15, 0 + br i1 %16, label %19, label %17 -18: ; preds = %14 - %19 = load ptr, ptr %2, align 8, !noalias !33, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %19, i64 noundef %16, i64 noundef %13) #30 - br label %20 +17: ; preds = %13 + %18 = load ptr, ptr %2, align 8, !noalias !33, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %18, i64 noundef %15, i64 noundef %12) #30 + br label %19 -20: ; preds = %18, %14, %.noexc +19: ; preds = %17, %13, %.noexc call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !33 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) call void @__rust_dealloc(ptr noundef nonnull %5, i64 noundef 16, i64 noundef 8) #30, !noalias !41 ret void -21: ; preds = %1 - %22 = landingpad { ptr, i32 } +20: ; preds = %1 + %21 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %5, i64 noundef 16, i64 noundef 8) #30, !noalias !46 - resume { ptr, i32 } %22 + resume { ptr, i32 } %21 } ; Function Attrs: nonlazybind uwtable @@ -275,56 +273,54 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h415f7f7e store i64 %1, ptr %9, align 8, !alias.scope !51 call void @_ZN15crossbeam_epoch8internal5Local5defer17hcf1987001642a368E(ptr noundef nonnull align 128 %6, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) - br label %29 + br label %28 10: ; preds = %2 %11 = and i64 %1, -8 %12 = inttoptr i64 %11 to ptr - %13 = icmp ne i64 %11, 0 - tail call void @llvm.assume(i1 %13) - %14 = load ptr, ptr %12, align 8, !nonnull !4, !noundef !4 - %15 = getelementptr inbounds nuw i8, ptr %12, i64 8 - %16 = load i64, ptr %15, align 8, !noundef !4 + %13 = load ptr, ptr %12, align 8, !nonnull !4, !noundef !4 + %14 = getelementptr inbounds nuw i8, ptr %12, i64 8 + %15 = load i64, ptr %14, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) - store i64 %16, ptr %4, align 8 - %17 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store ptr %14, ptr %17, align 8 - %18 = getelementptr inbounds nuw i8, ptr %4, i64 16 - store i64 0, ptr %18, align 8 + store i64 %15, ptr %4, align 8 + %16 = getelementptr inbounds nuw i8, ptr %4, i64 8 + store ptr %13, ptr %16, align 8 + %17 = getelementptr inbounds nuw i8, ptr %4, i64 16 + store i64 0, ptr %17, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !54 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h0e6e0d89c801c3f1E.llvm.3531809010164697281"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %4) - to label %.noexc.i unwind label %27 + to label %.noexc.i unwind label %26 .noexc.i: ; preds = %10 - %19 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %20 = load i64, ptr %19, align 8, !range !40, !noalias !54, !noundef !4 - %.not.i.i.i.i.i = icmp eq i64 %20, 0 - br i1 %.not.i.i.i.i.i, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h488951ee9110316dE.llvm.7442906621139507621.exit", label %21 - -21: ; preds = %.noexc.i - %22 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %23 = load i64, ptr %22, align 8, !noalias !54, !noundef !4 - %24 = icmp eq i64 %23, 0 - br i1 %24, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h488951ee9110316dE.llvm.7442906621139507621.exit", label %25 - -25: ; preds = %21 - %26 = load ptr, ptr %3, align 8, !noalias !54, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %26, i64 noundef %23, i64 noundef %20) #30 + %18 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %19 = load i64, ptr %18, align 8, !range !40, !noalias !54, !noundef !4 + %.not.i.i.i.i.i = icmp eq i64 %19, 0 + br i1 %.not.i.i.i.i.i, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h488951ee9110316dE.llvm.7442906621139507621.exit", label %20 + +20: ; preds = %.noexc.i + %21 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %22 = load i64, ptr %21, align 8, !noalias !54, !noundef !4 + %23 = icmp eq i64 %22, 0 + br i1 %23, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h488951ee9110316dE.llvm.7442906621139507621.exit", label %24 + +24: ; preds = %20 + %25 = load ptr, ptr %3, align 8, !noalias !54, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %25, i64 noundef %22, i64 noundef %19) #30 br label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h488951ee9110316dE.llvm.7442906621139507621.exit" -27: ; preds = %10 - %28 = landingpad { ptr, i32 } +26: ; preds = %10 + %27 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef 16, i64 noundef 8) #30, !noalias !61 - resume { ptr, i32 } %28 + resume { ptr, i32 } %27 -"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h488951ee9110316dE.llvm.7442906621139507621.exit": ; preds = %.noexc.i, %21, %25 +"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h488951ee9110316dE.llvm.7442906621139507621.exit": ; preds = %.noexc.i, %20, %24 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !54 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef 16, i64 noundef 8) #30, !noalias !66 - br label %29 + br label %28 -29: ; preds = %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h488951ee9110316dE.llvm.7442906621139507621.exit", %8 +28: ; preds = %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h488951ee9110316dE.llvm.7442906621139507621.exit", %8 ret void } @@ -344,46 +340,44 @@ define hidden void @_ZN15crossbeam_epoch8deferred8Deferred3new4call17hc1ff338a3a %5 = load i64, ptr %4, align 8, !noundef !4 %6 = and i64 %5, -8 %7 = inttoptr i64 %6 to ptr - %8 = icmp ne i64 %6, 0 - tail call void @llvm.assume(i1 %8) - %9 = load ptr, ptr %7, align 8, !nonnull !4, !noundef !4 - %10 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %11 = load i64, ptr %10, align 8, !noundef !4 + %8 = load ptr, ptr %7, align 8, !nonnull !4, !noundef !4 + %9 = getelementptr inbounds nuw i8, ptr %7, i64 8 + %10 = load i64, ptr %9, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) - store i64 %11, ptr %3, align 8 - %12 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr %9, ptr %12, align 8 - %13 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i64 0, ptr %13, align 8 + store i64 %10, ptr %3, align 8 + %11 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %8, ptr %11, align 8 + %12 = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i64 0, ptr %12, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !71 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h0e6e0d89c801c3f1E.llvm.3531809010164697281"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) - to label %.noexc.i.i unwind label %22 + to label %.noexc.i.i unwind label %21 .noexc.i.i: ; preds = %1 - %14 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %15 = load i64, ptr %14, align 8, !range !40, !noalias !71, !noundef !4 - %.not.i.i.i.i.i.i = icmp eq i64 %15, 0 - br i1 %.not.i.i.i.i.i.i, label %24, label %16 - -16: ; preds = %.noexc.i.i - %17 = getelementptr inbounds nuw i8, ptr %2, i64 16 - %18 = load i64, ptr %17, align 8, !noalias !71, !noundef !4 - %19 = icmp eq i64 %18, 0 - br i1 %19, label %24, label %20 - -20: ; preds = %16 - %21 = load ptr, ptr %2, align 8, !noalias !71, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %21, i64 noundef %18, i64 noundef %15) #30 - br label %24 + %13 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %14 = load i64, ptr %13, align 8, !range !40, !noalias !71, !noundef !4 + %.not.i.i.i.i.i.i = icmp eq i64 %14, 0 + br i1 %.not.i.i.i.i.i.i, label %23, label %15 -22: ; preds = %1 - %23 = landingpad { ptr, i32 } +15: ; preds = %.noexc.i.i + %16 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %17 = load i64, ptr %16, align 8, !noalias !71, !noundef !4 + %18 = icmp eq i64 %17, 0 + br i1 %18, label %23, label %19 + +19: ; preds = %15 + %20 = load ptr, ptr %2, align 8, !noalias !71, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %20, i64 noundef %17, i64 noundef %14) #30 + br label %23 + +21: ; preds = %1 + %22 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %7, i64 noundef 16, i64 noundef 8) #30, !noalias !78 call void @__rust_dealloc(ptr noundef nonnull %4, i64 noundef 8, i64 noundef 8) #30 - resume { ptr, i32 } %23 + resume { ptr, i32 } %22 -24: ; preds = %20, %16, %.noexc.i.i +23: ; preds = %19, %15, %.noexc.i.i call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !71 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) call void @__rust_dealloc(ptr noundef nonnull %7, i64 noundef 16, i64 noundef 8) #30, !noalias !83 @@ -398,45 +392,43 @@ define hidden void @_ZN15crossbeam_epoch8deferred8Deferred3new4call17heb71fa171c %4 = load i64, ptr %0, align 8, !noundef !4 %5 = and i64 %4, -8 %6 = inttoptr i64 %5 to ptr - %7 = icmp ne i64 %5, 0 - tail call void @llvm.assume(i1 %7) - %8 = load ptr, ptr %6, align 8, !nonnull !4, !noundef !4 - %9 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %10 = load i64, ptr %9, align 8, !noundef !4 + %7 = load ptr, ptr %6, align 8, !nonnull !4, !noundef !4 + %8 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %9 = load i64, ptr %8, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3) - store i64 %10, ptr %3, align 8 - %11 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr %8, ptr %11, align 8 - %12 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i64 0, ptr %12, align 8 + store i64 %9, ptr %3, align 8 + %10 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %7, ptr %10, align 8 + %11 = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i64 0, ptr %11, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !88 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h0e6e0d89c801c3f1E.llvm.3531809010164697281"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) - to label %.noexc.i.i unwind label %21 + to label %.noexc.i.i unwind label %20 .noexc.i.i: ; preds = %1 - %13 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %14 = load i64, ptr %13, align 8, !range !40, !noalias !88, !noundef !4 - %.not.i.i.i.i.i.i = icmp eq i64 %14, 0 - br i1 %.not.i.i.i.i.i.i, label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h45881ecae94fe2edE.exit", label %15 + %12 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %13 = load i64, ptr %12, align 8, !range !40, !noalias !88, !noundef !4 + %.not.i.i.i.i.i.i = icmp eq i64 %13, 0 + br i1 %.not.i.i.i.i.i.i, label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h45881ecae94fe2edE.exit", label %14 -15: ; preds = %.noexc.i.i - %16 = getelementptr inbounds nuw i8, ptr %2, i64 16 - %17 = load i64, ptr %16, align 8, !noalias !88, !noundef !4 - %18 = icmp eq i64 %17, 0 - br i1 %18, label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h45881ecae94fe2edE.exit", label %19 +14: ; preds = %.noexc.i.i + %15 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %16 = load i64, ptr %15, align 8, !noalias !88, !noundef !4 + %17 = icmp eq i64 %16, 0 + br i1 %17, label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h45881ecae94fe2edE.exit", label %18 -19: ; preds = %15 - %20 = load ptr, ptr %2, align 8, !noalias !88, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %20, i64 noundef %17, i64 noundef %14) #30 +18: ; preds = %14 + %19 = load ptr, ptr %2, align 8, !noalias !88, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %19, i64 noundef %16, i64 noundef %13) #30 br label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h45881ecae94fe2edE.exit" -21: ; preds = %1 - %22 = landingpad { ptr, i32 } +20: ; preds = %1 + %21 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %6, i64 noundef 16, i64 noundef 8) #30, !noalias !95 - resume { ptr, i32 } %22 + resume { ptr, i32 } %21 -"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h45881ecae94fe2edE.exit": ; preds = %.noexc.i.i, %15, %19 +"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h45881ecae94fe2edE.exit": ; preds = %.noexc.i.i, %14, %18 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !88 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) call void @__rust_dealloc(ptr noundef nonnull %6, i64 noundef 16, i64 noundef 8) #30, !noalias !100 diff --git a/bench/coreutils-rs/optimized/356ademi3o5g91h6.ll b/bench/coreutils-rs/optimized/356ademi3o5g91h6.ll index 548d29e2c06..e922ce5035b 100644 --- a/bench/coreutils-rs/optimized/356ademi3o5g91h6.ll +++ b/bench/coreutils-rs/optimized/356ademi3o5g91h6.ll @@ -2623,20 +2623,18 @@ define hidden void @"_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padd %2 = load atomic i64, ptr %0 monotonic, align 128, !alias.scope !741 %3 = and i64 %2, -8 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load i64, ptr %6, align 8, !noalias !741, !noundef !17 - %8 = icmp eq i64 %7, 0 - br i1 %8, label %"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h5edf0db4655b8c91E.llvm.3531809010164697281.exit", label %9 + %5 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %6 = load i64, ptr %5, align 8, !noalias !741, !noundef !17 + %7 = icmp eq i64 %6, 0 + br i1 %7, label %"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h5edf0db4655b8c91E.llvm.3531809010164697281.exit", label %8 -9: ; preds = %1 - %10 = load ptr, ptr %4, align 8, !noalias !741, !nonnull !17, !noundef !17 - %11 = shl nuw i64 %7, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %11, i64 noundef 8) #25, !noalias !742 +8: ; preds = %1 + %9 = load ptr, ptr %4, align 8, !noalias !741, !nonnull !17, !noundef !17 + %10 = shl nuw i64 %6, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %10, i64 noundef 8) #25, !noalias !742 br label %"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h5edf0db4655b8c91E.llvm.3531809010164697281.exit" -"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h5edf0db4655b8c91E.llvm.3531809010164697281.exit": ; preds = %1, %9 +"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h5edf0db4655b8c91E.llvm.3531809010164697281.exit": ; preds = %1, %8 tail call void @__rust_dealloc(ptr noundef nonnull %4, i64 noundef 16, i64 noundef 8) #25, !noalias !741 ret void } @@ -17393,20 +17391,18 @@ define hidden void @"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inne %2 = load atomic i64, ptr %0 monotonic, align 128, !alias.scope !7260 %3 = and i64 %2, -8 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load i64, ptr %6, align 8, !noalias !7260, !noundef !17 - %8 = icmp eq i64 %7, 0 - br i1 %8, label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hefbc58ce7740fc55E.llvm.3531809010164697281.exit", label %9 + %5 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %6 = load i64, ptr %5, align 8, !noalias !7260, !noundef !17 + %7 = icmp eq i64 %6, 0 + br i1 %7, label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hefbc58ce7740fc55E.llvm.3531809010164697281.exit", label %8 -9: ; preds = %1 - %10 = load ptr, ptr %4, align 8, !noalias !7260, !nonnull !17, !noundef !17 - %11 = shl nuw i64 %7, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %11, i64 noundef 8) #25, !noalias !7263 +8: ; preds = %1 + %9 = load ptr, ptr %4, align 8, !noalias !7260, !nonnull !17, !noundef !17 + %10 = shl nuw i64 %6, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %10, i64 noundef 8) #25, !noalias !7263 br label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hefbc58ce7740fc55E.llvm.3531809010164697281.exit" -"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hefbc58ce7740fc55E.llvm.3531809010164697281.exit": ; preds = %1, %9 +"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hefbc58ce7740fc55E.llvm.3531809010164697281.exit": ; preds = %1, %8 tail call void @__rust_dealloc(ptr noundef nonnull %4, i64 noundef 16, i64 noundef 8) #25, !noalias !7260 ret void } @@ -24114,20 +24110,18 @@ define hidden void @"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20 %2 = load atomic i64, ptr %0 monotonic, align 128 %3 = and i64 %2, -8 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load i64, ptr %6, align 8, !noundef !17 - %8 = icmp eq i64 %7, 0 - br i1 %8, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h8f3a92dc029a9e39E.exit", label %9 + %5 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %6 = load i64, ptr %5, align 8, !noundef !17 + %7 = icmp eq i64 %6, 0 + br i1 %7, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h8f3a92dc029a9e39E.exit", label %8 -9: ; preds = %1 - %10 = load ptr, ptr %4, align 8, !nonnull !17, !noundef !17 - %11 = shl nuw i64 %7, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %11, i64 noundef 8) #25, !noalias !8963 +8: ; preds = %1 + %9 = load ptr, ptr %4, align 8, !nonnull !17, !noundef !17 + %10 = shl nuw i64 %6, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %10, i64 noundef 8) #25, !noalias !8963 br label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h8f3a92dc029a9e39E.exit" -"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h8f3a92dc029a9e39E.exit": ; preds = %9, %1 +"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h8f3a92dc029a9e39E.exit": ; preds = %8, %1 tail call void @__rust_dealloc(ptr noundef nonnull %4, i64 noundef 16, i64 noundef 8) #25 ret void } diff --git a/bench/cpython/optimized/unicodeobject.ll b/bench/cpython/optimized/unicodeobject.ll index 8ff05b7d767..5d05b3bb800 100644 --- a/bench/cpython/optimized/unicodeobject.ll +++ b/bench/cpython/optimized/unicodeobject.ll @@ -6052,7 +6052,7 @@ if.end.i34: ; preds = %while.body.i46, %la br i1 %cmp3.i36, label %unicode_fromformat_arg.exit.thread, label %if.end5.i if.end5.i: ; preds = %if.end.i34 - %call6.i = call fastcc i32 @unicode_fromformat_write_str(ptr noundef nonnull %writer, ptr noundef nonnull %call2.i, i64 noundef %width.1.i, i64 noundef -1, i32 noundef range(i32 0, 32) %flags.2.i) + %call6.i = call fastcc i32 @unicode_fromformat_write_str(ptr noundef nonnull %writer, ptr noundef nonnull %call2.i, i64 noundef %width.1.i, i64 noundef -1, i32 noundef %flags.2.i) %131 = load i64, ptr %call2.i, align 8 %132 = and i64 %131, 2147483648 %cmp.i8.not.i = icmp eq i64 %132, 0 @@ -6122,7 +6122,7 @@ if.end.i: ; preds = %while.body.i29, %la br i1 %cmp3.i, label %unicode_fromformat_arg.exit.thread, label %if.end6.i if.end6.i: ; preds = %if.end.i - %call7.i = call fastcc i32 @unicode_fromformat_write_str(ptr noundef nonnull %writer, ptr noundef nonnull %call.i.i21, i64 noundef %width.1.i, i64 noundef -1, i32 noundef range(i32 0, 32) %flags.2.i) + %call7.i = call fastcc i32 @unicode_fromformat_write_str(ptr noundef nonnull %writer, ptr noundef nonnull %call.i.i21, i64 noundef %width.1.i, i64 noundef -1, i32 noundef %flags.2.i) %138 = load i64, ptr %call.i.i21, align 8 %139 = and i64 %138, 2147483648 %cmp.i9.not.i = icmp eq i64 %139, 0 @@ -49021,7 +49021,7 @@ declare noundef i32 @sprintf(ptr noalias nocapture noundef writeonly, ptr nocapt declare void @llvm.memmove.p0.p0.i64(ptr nocapture writeonly, ptr nocapture readonly, i64, i1 immarg) #7 ; Function Attrs: nounwind uwtable -define internal fastcc range(i32 -1, 1) i32 @unicode_fromformat_write_wcstr(ptr nocapture noundef nonnull %writer, ptr noundef %str, i64 noundef %width, i64 noundef %precision, i32 noundef range(i32 0, 32) %flags) unnamed_addr #0 { +define internal fastcc range(i32 -1, 1) i32 @unicode_fromformat_write_wcstr(ptr nocapture noundef nonnull %writer, ptr noundef %str, i64 noundef %width, i64 noundef %precision, i32 noundef %flags) unnamed_addr #0 { entry: %cmp = icmp eq i64 %precision, -1 br i1 %cmp, label %if.then, label %while.cond.preheader @@ -49075,7 +49075,7 @@ return: ; preds = %if.end.i, %if.then1 } ; Function Attrs: nounwind uwtable -define internal fastcc range(i32 -1, 1) i32 @unicode_fromformat_write_cstr(ptr nocapture noundef nonnull %writer, ptr noundef %str, i64 noundef %width, i64 noundef %precision, i32 noundef range(i32 0, 32) %flags) unnamed_addr #0 { +define internal fastcc range(i32 -1, 1) i32 @unicode_fromformat_write_cstr(ptr nocapture noundef nonnull %writer, ptr noundef %str, i64 noundef %width, i64 noundef %precision, i32 noundef %flags) unnamed_addr #0 { entry: %cmp = icmp eq i64 %precision, -1 br i1 %cmp, label %if.then, label %while.cond.preheader @@ -49129,7 +49129,7 @@ return: ; preds = %if.end.i, %if.then1 } ; Function Attrs: nounwind uwtable -define internal fastcc range(i32 -1, 1) i32 @unicode_fromformat_write_str(ptr nocapture noundef nonnull %writer, ptr noundef %str, i64 noundef %width, i64 noundef %precision, i32 noundef range(i32 0, 32) %flags) unnamed_addr #0 { +define internal fastcc range(i32 -1, 1) i32 @unicode_fromformat_write_str(ptr nocapture noundef nonnull %writer, ptr noundef %str, i64 noundef %width, i64 noundef %precision, i32 noundef %flags) unnamed_addr #0 { entry: %0 = getelementptr i8, ptr %str, i64 16 %str.val = load i64, ptr %0, align 8 diff --git a/bench/cvc5/optimized/SimpSolver.cc.ll b/bench/cvc5/optimized/SimpSolver.cc.ll index a1363a534bd..5c63a6fcfc6 100644 --- a/bench/cvc5/optimized/SimpSolver.cc.ll +++ b/bench/cvc5/optimized/SimpSolver.cc.ll @@ -3862,7 +3862,7 @@ for.body51.lr.ph: ; preds = %for.cond47.preheade br label %for.body51 for.body17: ; preds = %for.body17.lr.ph, %for.inc44 - %20 = phi i32 [ %7, %for.body17.lr.ph ], [ %65, %for.inc44 ] + %20 = phi i32 [ %7, %for.body17.lr.ph ], [ %64, %for.inc44 ] %indvars.iv133 = phi i64 [ 0, %for.body17.lr.ph ], [ %indvars.iv.next134, %for.inc44 ] %21 = load ptr, ptr %touched, align 8 %arrayidx.i = getelementptr inbounds nuw i8, ptr %21, i64 %indvars.iv133 @@ -3943,7 +3943,7 @@ _ZN4cvc58internal7Minisat8OccListsIiNS1_3vecIjEENS1_10SimpSolver13ClauseDeletedE br i1 %cmp24121, label %for.body25, label %for.end40 for.body25: ; preds = %_ZN4cvc58internal7Minisat8OccListsIiNS1_3vecIjEENS1_10SimpSolver13ClauseDeletedEE6lookupERKi.exit, %for.inc38 - %40 = phi i32 [ %62, %for.inc38 ], [ %39, %_ZN4cvc58internal7Minisat8OccListsIiNS1_3vecIjEENS1_10SimpSolver13ClauseDeletedEE6lookupERKi.exit ] + %40 = phi i32 [ %61, %for.inc38 ], [ %39, %_ZN4cvc58internal7Minisat8OccListsIiNS1_3vecIjEENS1_10SimpSolver13ClauseDeletedEE6lookupERKi.exit ] %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc38 ], [ 0, %_ZN4cvc58internal7Minisat8OccListsIiNS1_3vecIjEENS1_10SimpSolver13ClauseDeletedEE6lookupERKi.exit ] %41 = load ptr, ptr %arrayidx.i4.i, align 8 %arrayidx.i28 = getelementptr inbounds nuw i32, ptr %41, i64 %indvars.iv @@ -3989,8 +3989,7 @@ if.then8.i: ; preds = %if.end.i lor.lhs.false.i.i: ; preds = %if.then8.i %sub.i.i = add nuw nsw i32 %shr.i, 1 %and.i.i = and i32 %sub.i.i, 2147483646 - %50 = tail call i32 @llvm.umax.i32(i32 %and.i.i, i32 2) - %conv.i.i = zext nneg i32 %50 to i64 + %conv.i.i = zext nneg i32 %and.i.i to i64 %mul.i.i = shl nuw nsw i64 %conv.i.i, 2 %malloc = tail call ptr @malloc(i64 %mul.i.i) %cmp14.i.i = icmp eq ptr %malloc, null @@ -3998,8 +3997,8 @@ lor.lhs.false.i.i: ; preds = %if.then8.i land.lhs.true.i.i: ; preds = %lor.lhs.false.i.i %call15.i.i = tail call ptr @__errno_location() #26 - %51 = load i32, ptr %call15.i.i, align 4 - %cmp16.i.i = icmp eq i32 %51, 12 + %50 = load i32, ptr %call15.i.i, align 4 + %cmp16.i.i = icmp eq i32 %50, 12 br i1 %cmp16.i.i, label %if.then17.i.i, label %for.body.preheader.i84 if.then17.i.i: ; preds = %land.lhs.true.i.i @@ -4009,58 +4008,58 @@ if.then17.i.i: ; preds = %land.lhs.true.i.i for.body.preheader.i84: ; preds = %lor.lhs.false.i.i, %land.lhs.true.i.i %wide.trip.count.i = zext nneg i32 %shr.i to i64 - %52 = shl nuw nsw i64 %wide.trip.count.i, 2 - tail call void @llvm.memset.p0.i64(ptr align 4 %malloc, i8 0, i64 %52, i1 false) + %51 = shl nuw nsw i64 %wide.trip.count.i, 2 + tail call void @llvm.memset.p0.i64(ptr align 4 %malloc, i8 0, i64 %51, i1 false) br label %_ZN4cvc58internal7Minisat3vecIjE6growToEi.exit _ZN4cvc58internal7Minisat3vecIjE6growToEi.exit: ; preds = %for.body.preheader.i84, %if.then8.i %tmp.i.sroa.0.6 = phi ptr [ null, %if.then8.i ], [ %malloc, %for.body.preheader.i84 ] %tmp.i.sroa.9.5 = phi i32 [ 0, %if.then8.i ], [ %shr.i, %for.body.preheader.i84 ] - %tmp.i.sroa.13.6 = phi i32 [ 0, %if.then8.i ], [ %50, %for.body.preheader.i84 ] + %tmp.i.sroa.13.6 = phi i32 [ 0, %if.then8.i ], [ %and.i.i, %for.body.preheader.i84 ] %cmp1427.i = icmp slt i32 %48, %47 %.pre140.pre = load ptr, ptr %subsumption_queue, align 8 br i1 %cmp1427.i, label %for.body.preheader.i, label %for.cond21.preheader.i for.body.preheader.i: ; preds = %_ZN4cvc58internal7Minisat3vecIjE6growToEi.exit - %53 = sext i32 %48 to i64 - %54 = sext i32 %47 to i64 + %52 = sext i32 %48 to i64 + %53 = sext i32 %47 to i64 br label %for.body.i for.cond21.preheader.loopexit.i: ; preds = %for.body.i - %55 = and i64 %indvars.iv.next.i, 4294967295 + %54 = and i64 %indvars.iv.next.i, 4294967295 br label %for.cond21.preheader.i for.cond21.preheader.i: ; preds = %for.cond21.preheader.loopexit.i, %_ZN4cvc58internal7Minisat3vecIjE6growToEi.exit - %i.0.lcssa.i = phi i64 [ 0, %_ZN4cvc58internal7Minisat3vecIjE6growToEi.exit ], [ %55, %for.cond21.preheader.loopexit.i ] + %i.0.lcssa.i = phi i64 [ 0, %_ZN4cvc58internal7Minisat3vecIjE6growToEi.exit ], [ %54, %for.cond21.preheader.loopexit.i ] %cmp2330.i = icmp sgt i32 %48, 0 br i1 %cmp2330.i, label %for.body24.i.preheader, label %for.end31.i for.body24.i.preheader: ; preds = %for.cond21.preheader.i - %56 = zext nneg i32 %48 to i64 + %55 = zext nneg i32 %48 to i64 br label %for.body24.i for.body.i: ; preds = %for.body.i, %for.body.preheader.i - %indvars.iv33.i = phi i64 [ %53, %for.body.preheader.i ], [ %indvars.iv.next34.i, %for.body.i ] + %indvars.iv33.i = phi i64 [ %52, %for.body.preheader.i ], [ %indvars.iv.next34.i, %for.body.i ] %indvars.iv.i = phi i64 [ 0, %for.body.preheader.i ], [ %indvars.iv.next.i, %for.body.i ] %arrayidx.i9.i = getelementptr inbounds i32, ptr %.pre140.pre, i64 %indvars.iv33.i - %57 = load i32, ptr %arrayidx.i9.i, align 4 + %56 = load i32, ptr %arrayidx.i9.i, align 4 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %arrayidx.i11.i = getelementptr inbounds nuw i32, ptr %tmp.i.sroa.0.6, i64 %indvars.iv.i - store i32 %57, ptr %arrayidx.i11.i, align 4 + store i32 %56, ptr %arrayidx.i11.i, align 4 %indvars.iv.next34.i = add nsw i64 %indvars.iv33.i, 1 - %cmp14.i = icmp slt i64 %indvars.iv.next34.i, %54 + %cmp14.i = icmp slt i64 %indvars.iv.next34.i, %53 br i1 %cmp14.i, label %for.body.i, label %for.cond21.preheader.loopexit.i, !llvm.loop !19 for.body24.i: ; preds = %for.body24.i.preheader, %for.body24.i %indvars.iv40.i = phi i64 [ %indvars.iv.next41.i, %for.body24.i ], [ 0, %for.body24.i.preheader ] %indvars.iv38.i = phi i64 [ %indvars.iv.next39.i, %for.body24.i ], [ %i.0.lcssa.i, %for.body24.i.preheader ] %arrayidx.i13.i = getelementptr inbounds nuw i32, ptr %.pre140.pre, i64 %indvars.iv40.i - %58 = load i32, ptr %arrayidx.i13.i, align 4 + %57 = load i32, ptr %arrayidx.i13.i, align 4 %indvars.iv.next39.i = add nuw nsw i64 %indvars.iv38.i, 1 %arrayidx.i15.i = getelementptr inbounds nuw i32, ptr %tmp.i.sroa.0.6, i64 %indvars.iv38.i - store i32 %58, ptr %arrayidx.i15.i, align 4 + store i32 %57, ptr %arrayidx.i15.i, align 4 %indvars.iv.next41.i = add nuw nsw i64 %indvars.iv40.i, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next41.i, %56 + %exitcond.not = icmp eq i64 %indvars.iv.next41.i, %55 br i1 %exitcond.not, label %for.end31.i.thread, label %for.body24.i, !llvm.loop !20 for.end31.i.thread: ; preds = %for.body24.i @@ -4086,12 +4085,12 @@ _ZN4cvc58internal7Minisat3vecIjED2Ev.exit.i: ; preds = %for.cond.preheader. br label %_ZN4cvc58internal7Minisat5QueueIjE6insertEj.exit _ZN4cvc58internal7Minisat5QueueIjE6insertEj.exit: ; preds = %if.end.i, %_ZN4cvc58internal7Minisat3vecIjED2Ev.exit.i - %59 = load ptr, ptr %arrayidx.i4.i, align 8 - %arrayidx.i44 = getelementptr inbounds nuw i32, ptr %59, i64 %indvars.iv - %60 = load i32, ptr %arrayidx.i44, align 4 - %61 = load ptr, ptr %ca26, align 8 - %idxprom.i.i45 = zext i32 %60 to i64 - %arrayidx.i.i46 = getelementptr inbounds nuw i32, ptr %61, i64 %idxprom.i.i45 + %58 = load ptr, ptr %arrayidx.i4.i, align 8 + %arrayidx.i44 = getelementptr inbounds nuw i32, ptr %58, i64 %indvars.iv + %59 = load i32, ptr %arrayidx.i44, align 4 + %60 = load ptr, ptr %ca26, align 8 + %idxprom.i.i45 = zext i32 %59 to i64 + %arrayidx.i.i46 = getelementptr inbounds nuw i32, ptr %60, i64 %idxprom.i.i45 %bf.load.i47 = load i64, ptr %arrayidx.i.i46, align 4 %bf.clear.i48 = and i64 %bf.load.i47, -4 %bf.set.i49 = or disjoint i64 %bf.clear.i48, 2 @@ -4100,40 +4099,40 @@ _ZN4cvc58internal7Minisat5QueueIjE6insertEj.exit: ; preds = %if.end.i, %_ZN4cvc5 br label %for.inc38 for.inc38: ; preds = %for.body25, %_ZN4cvc58internal7Minisat5QueueIjE6insertEj.exit - %62 = phi i32 [ %40, %for.body25 ], [ %.pre141, %_ZN4cvc58internal7Minisat5QueueIjE6insertEj.exit ] + %61 = phi i32 [ %40, %for.body25 ], [ %.pre141, %_ZN4cvc58internal7Minisat5QueueIjE6insertEj.exit ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %63 = sext i32 %62 to i64 - %cmp24 = icmp slt i64 %indvars.iv.next, %63 + %62 = sext i32 %61 to i64 + %cmp24 = icmp slt i64 %indvars.iv.next, %62 br i1 %cmp24, label %for.body25, label %for.end40, !llvm.loop !33 for.end40: ; preds = %for.inc38, %_ZN4cvc58internal7Minisat8OccListsIiNS1_3vecIjEENS1_10SimpSolver13ClauseDeletedEE6lookupERKi.exit - %64 = load ptr, ptr %touched, align 8 - %arrayidx.i51 = getelementptr inbounds nuw i8, ptr %64, i64 %indvars.iv133 + %63 = load ptr, ptr %touched, align 8 + %arrayidx.i51 = getelementptr inbounds nuw i8, ptr %63, i64 %indvars.iv133 store i8 0, ptr %arrayidx.i51, align 1 %.pre142 = load i32, ptr %sz.i, align 8 br label %for.inc44 for.inc44: ; preds = %for.body17, %for.end40 - %65 = phi i32 [ %20, %for.body17 ], [ %.pre142, %for.end40 ] + %64 = phi i32 [ %20, %for.body17 ], [ %.pre142, %for.end40 ] %indvars.iv.next134 = add nuw nsw i64 %indvars.iv133, 1 - %66 = sext i32 %65 to i64 - %cmp16 = icmp slt i64 %indvars.iv.next134, %66 + %65 = sext i32 %64 to i64 + %cmp16 = icmp slt i64 %indvars.iv.next134, %65 br i1 %cmp16, label %for.body17, label %for.cond47.preheader.loopexit, !llvm.loop !34 for.body51: ; preds = %for.body51.lr.ph, %for.inc64 - %67 = phi i32 [ %17, %for.body51.lr.ph ], [ %73, %for.inc64 ] - %68 = phi i32 [ %18, %for.body51.lr.ph ], [ %74, %for.inc64 ] - %69 = phi i32 [ %19, %for.body51.lr.ph ], [ %75, %for.inc64 ] + %66 = phi i32 [ %17, %for.body51.lr.ph ], [ %72, %for.inc64 ] + %67 = phi i32 [ %18, %for.body51.lr.ph ], [ %73, %for.inc64 ] + %68 = phi i32 [ %19, %for.body51.lr.ph ], [ %74, %for.inc64 ] %storemerge9131 = phi i32 [ 0, %for.body51.lr.ph ], [ %inc65, %for.inc64 ] - %add.i60 = add nsw i32 %68, %storemerge9131 - %rem.i62 = srem i32 %add.i60, %67 - %70 = load ptr, ptr %subsumption_queue, align 8 + %add.i60 = add nsw i32 %67, %storemerge9131 + %rem.i62 = srem i32 %add.i60, %66 + %69 = load ptr, ptr %subsumption_queue, align 8 %idxprom.i.i63 = sext i32 %rem.i62 to i64 - %arrayidx.i.i64 = getelementptr inbounds i32, ptr %70, i64 %idxprom.i.i63 - %71 = load i32, ptr %arrayidx.i.i64, align 4 - %72 = load ptr, ptr %ca52, align 8 - %idxprom.i.i65 = zext i32 %71 to i64 - %arrayidx.i.i66 = getelementptr inbounds nuw i32, ptr %72, i64 %idxprom.i.i65 + %arrayidx.i.i64 = getelementptr inbounds i32, ptr %69, i64 %idxprom.i.i63 + %70 = load i32, ptr %arrayidx.i.i64, align 4 + %71 = load ptr, ptr %ca52, align 8 + %idxprom.i.i65 = zext i32 %70 to i64 + %arrayidx.i.i66 = getelementptr inbounds nuw i32, ptr %71, i64 %idxprom.i.i65 %bf.load.i67 = load i64, ptr %arrayidx.i.i66, align 4 %bf.cast.i68109 = and i64 %bf.load.i67, 3 %cmp57 = icmp eq i64 %bf.cast.i68109, 2 @@ -4148,13 +4147,13 @@ if.then58: ; preds = %for.body51 br label %for.inc64 for.inc64: ; preds = %for.body51, %if.then58 - %73 = phi i32 [ %67, %for.body51 ], [ %.pre148, %if.then58 ] - %74 = phi i32 [ %68, %for.body51 ], [ %.pre147, %if.then58 ] - %75 = phi i32 [ %69, %for.body51 ], [ %.pre146, %if.then58 ] + %72 = phi i32 [ %66, %for.body51 ], [ %.pre148, %if.then58 ] + %73 = phi i32 [ %67, %for.body51 ], [ %.pre147, %if.then58 ] + %74 = phi i32 [ %68, %for.body51 ], [ %.pre146, %if.then58 ] %inc65 = add nuw nsw i32 %storemerge9131, 1 - %cmp.not.i54 = icmp slt i32 %75, %74 - %sub.i55 = sub i32 %75, %74 - %add.i57 = select i1 %cmp.not.i54, i32 %73, i32 0 + %cmp.not.i54 = icmp slt i32 %74, %73 + %sub.i55 = sub i32 %74, %73 + %add.i57 = select i1 %cmp.not.i54, i32 %72, i32 0 %cond.i58 = add nsw i32 %sub.i55, %add.i57 %cmp50 = icmp slt i32 %inc65, %cond.i58 br i1 %cmp50, label %for.body51, label %for.end66, !llvm.loop !35 diff --git a/bench/darktable/optimized/IiqDecoder.cpp.ll b/bench/darktable/optimized/IiqDecoder.cpp.ll index c0c52a52b72..9adbcc90582 100644 --- a/bench/darktable/optimized/IiqDecoder.cpp.ll +++ b/bench/darktable/optimized/IiqDecoder.cpp.ll @@ -5329,10 +5329,10 @@ define internal fastcc void @"_ZSt16__introsort_loopIN9__gnu_cxx17__normal_itera %12 = getelementptr inbounds nuw i8, ptr %0, i64 4 br label %13 -13: ; preds = %283, %9 - %14 = phi i64 [ %7, %9 ], [ %286, %283 ] - %15 = phi i64 [ %2, %9 ], [ %181, %283 ] - %16 = phi ptr [ %1, %9 ], [ %252, %283 ] +13: ; preds = %279, %9 + %14 = phi i64 [ %7, %9 ], [ %282, %279 ] + %15 = phi i64 [ %2, %9 ], [ %181, %279 ] + %16 = phi ptr [ %1, %9 ], [ %248, %279 ] %17 = icmp eq i64 %15, 0 br i1 %17, label %18, label %180 @@ -5610,194 +5610,191 @@ define internal fastcc void @"_ZSt16__introsort_loopIN9__gnu_cxx17__normal_itera %186 = load i32, ptr %11, align 4, !tbaa !16 %187 = getelementptr inbounds nuw i8, ptr %184, i64 4 %188 = load i32, ptr %187, align 4, !tbaa !16 - %189 = icmp ne i32 %186, %188 - %190 = and i64 %14, 9223372036854775792 - %191 = icmp eq i64 %190, 16 - %192 = or i1 %191, %189 - br i1 %192, label %194, label %193 + %.not = icmp eq i32 %186, %188 + br i1 %.not, label %189, label %190 -193: ; preds = %180 +189: ; preds = %180 tail call void (ptr, ...) @_ZN8rawspeed14ThrowExceptionINS_19RawDecoderExceptionEEEvPKcz(ptr noundef nonnull @.str.15, ptr noundef nonnull @"__PRETTY_FUNCTION__._ZZN8rawspeed10IiqDecoder13computeSripesENS_6BufferESt6vectorINS0_9IiqOffsetESaIS3_EEjENK3$_0clERKS3_S8_") #16 unreachable -194: ; preds = %180 - %195 = icmp ult i32 %186, %188 - %196 = getelementptr inbounds i8, ptr %16, i64 -4 - %197 = load i32, ptr %196, align 4, !tbaa !16 - br i1 %195, label %198, label %220 +190: ; preds = %180 + %191 = icmp ult i32 %186, %188 + %192 = getelementptr inbounds i8, ptr %16, i64 -4 + %193 = load i32, ptr %192, align 4, !tbaa !16 + br i1 %191, label %194, label %216 -198: ; preds = %194 - %199 = icmp ne i32 %188, %197 - %200 = icmp eq ptr %184, %185 - %201 = or i1 %200, %199 - br i1 %201, label %203, label %202 +194: ; preds = %190 + %195 = icmp ne i32 %188, %193 + %196 = icmp eq ptr %184, %185 + %197 = or i1 %196, %195 + br i1 %197, label %199, label %198 -202: ; preds = %198 +198: ; preds = %194 tail call void (ptr, ...) @_ZN8rawspeed14ThrowExceptionINS_19RawDecoderExceptionEEEvPKcz(ptr noundef nonnull @.str.15, ptr noundef nonnull @"__PRETTY_FUNCTION__._ZZN8rawspeed10IiqDecoder13computeSripesENS_6BufferESt6vectorINS0_9IiqOffsetESaIS3_EEjENK3$_0clERKS3_S8_") #16 unreachable -203: ; preds = %198 - %204 = icmp ult i32 %188, %197 - br i1 %204, label %205, label %208 +199: ; preds = %194 + %200 = icmp ult i32 %188, %193 + br i1 %200, label %201, label %204 -205: ; preds = %203 - %206 = load i64, ptr %0, align 4, !tbaa.struct !19 - %207 = load i64, ptr %184, align 4, !tbaa.struct !19 - store i64 %207, ptr %0, align 4, !tbaa.struct !19 - store i64 %206, ptr %184, align 4, !tbaa.struct !19 - br label %242 +201: ; preds = %199 + %202 = load i64, ptr %0, align 4, !tbaa.struct !19 + %203 = load i64, ptr %184, align 4, !tbaa.struct !19 + store i64 %203, ptr %0, align 4, !tbaa.struct !19 + store i64 %202, ptr %184, align 4, !tbaa.struct !19 + br label %238 -208: ; preds = %203 - %209 = icmp ne i32 %186, %197 - %210 = icmp eq ptr %10, %185 - %211 = or i1 %210, %209 - br i1 %211, label %213, label %212 +204: ; preds = %199 + %205 = icmp ne i32 %186, %193 + %206 = icmp eq ptr %10, %185 + %207 = or i1 %206, %205 + br i1 %207, label %209, label %208 -212: ; preds = %208 +208: ; preds = %204 tail call void (ptr, ...) @_ZN8rawspeed14ThrowExceptionINS_19RawDecoderExceptionEEEvPKcz(ptr noundef nonnull @.str.15, ptr noundef nonnull @"__PRETTY_FUNCTION__._ZZN8rawspeed10IiqDecoder13computeSripesENS_6BufferESt6vectorINS0_9IiqOffsetESaIS3_EEjENK3$_0clERKS3_S8_") #16 unreachable -213: ; preds = %208 - %214 = icmp ult i32 %186, %197 - %215 = load i64, ptr %0, align 4 - br i1 %214, label %216, label %218 - -216: ; preds = %213 - %217 = load i64, ptr %185, align 4, !tbaa.struct !19 - store i64 %217, ptr %0, align 4, !tbaa.struct !19 - store i64 %215, ptr %185, align 4, !tbaa.struct !19 - br label %242 - -218: ; preds = %213 - %219 = load i64, ptr %10, align 4, !tbaa.struct !19 - store i64 %219, ptr %0, align 4, !tbaa.struct !19 - store i64 %215, ptr %10, align 4, !tbaa.struct !19 - br label %242 - -220: ; preds = %194 - %221 = icmp ne i32 %186, %197 - %222 = icmp eq ptr %10, %185 - %223 = or i1 %222, %221 - br i1 %223, label %225, label %224 - -224: ; preds = %220 +209: ; preds = %204 + %210 = icmp ult i32 %186, %193 + %211 = load i64, ptr %0, align 4 + br i1 %210, label %212, label %214 + +212: ; preds = %209 + %213 = load i64, ptr %185, align 4, !tbaa.struct !19 + store i64 %213, ptr %0, align 4, !tbaa.struct !19 + store i64 %211, ptr %185, align 4, !tbaa.struct !19 + br label %238 + +214: ; preds = %209 + %215 = load i64, ptr %10, align 4, !tbaa.struct !19 + store i64 %215, ptr %0, align 4, !tbaa.struct !19 + store i64 %211, ptr %10, align 4, !tbaa.struct !19 + br label %238 + +216: ; preds = %190 + %217 = icmp ne i32 %186, %193 + %218 = icmp eq ptr %10, %185 + %219 = or i1 %218, %217 + br i1 %219, label %221, label %220 + +220: ; preds = %216 tail call void (ptr, ...) @_ZN8rawspeed14ThrowExceptionINS_19RawDecoderExceptionEEEvPKcz(ptr noundef nonnull @.str.15, ptr noundef nonnull @"__PRETTY_FUNCTION__._ZZN8rawspeed10IiqDecoder13computeSripesENS_6BufferESt6vectorINS0_9IiqOffsetESaIS3_EEjENK3$_0clERKS3_S8_") #16 unreachable -225: ; preds = %220 - %226 = icmp ult i32 %186, %197 - br i1 %226, label %227, label %230 +221: ; preds = %216 + %222 = icmp ult i32 %186, %193 + br i1 %222, label %223, label %226 -227: ; preds = %225 - %228 = load <2 x i64>, ptr %0, align 4 - %229 = shufflevector <2 x i64> %228, <2 x i64> poison, <2 x i32> - store <2 x i64> %229, ptr %0, align 4 - br label %242 +223: ; preds = %221 + %224 = load <2 x i64>, ptr %0, align 4 + %225 = shufflevector <2 x i64> %224, <2 x i64> poison, <2 x i32> + store <2 x i64> %225, ptr %0, align 4 + br label %238 -230: ; preds = %225 - %231 = icmp ne i32 %188, %197 - %232 = icmp eq ptr %184, %185 - %233 = or i1 %232, %231 - br i1 %233, label %235, label %234 +226: ; preds = %221 + %227 = icmp ne i32 %188, %193 + %228 = icmp eq ptr %184, %185 + %229 = or i1 %228, %227 + br i1 %229, label %231, label %230 -234: ; preds = %230 +230: ; preds = %226 tail call void (ptr, ...) @_ZN8rawspeed14ThrowExceptionINS_19RawDecoderExceptionEEEvPKcz(ptr noundef nonnull @.str.15, ptr noundef nonnull @"__PRETTY_FUNCTION__._ZZN8rawspeed10IiqDecoder13computeSripesENS_6BufferESt6vectorINS0_9IiqOffsetESaIS3_EEjENK3$_0clERKS3_S8_") #16 unreachable -235: ; preds = %230 - %236 = icmp ult i32 %188, %197 - %237 = load i64, ptr %0, align 4 - br i1 %236, label %238, label %240 - -238: ; preds = %235 - %239 = load i64, ptr %185, align 4, !tbaa.struct !19 - store i64 %239, ptr %0, align 4, !tbaa.struct !19 - store i64 %237, ptr %185, align 4, !tbaa.struct !19 - br label %242 - -240: ; preds = %235 - %241 = load i64, ptr %184, align 4, !tbaa.struct !19 - store i64 %241, ptr %0, align 4, !tbaa.struct !19 - store i64 %237, ptr %184, align 4, !tbaa.struct !19 - br label %242 - -242: ; preds = %240, %238, %227, %218, %216, %205 - %243 = load i32, ptr %12, align 4, !tbaa !16 - %244 = load i32, ptr %11, align 4, !tbaa !16 - %245 = icmp eq i32 %244, %243 - br i1 %245, label %.loopexit66, label %.preheader67 - -.preheader67: ; preds = %242, %273 - %246 = phi i32 [ %279, %273 ], [ %244, %242 ] - %247 = phi i32 [ %277, %273 ], [ %243, %242 ] - %248 = phi ptr [ %262, %273 ], [ %16, %242 ] - %249 = phi ptr [ %276, %273 ], [ %10, %242 ] - br label %250 - -.loopexit66: ; preds = %242, %273, %254 +231: ; preds = %226 + %232 = icmp ult i32 %188, %193 + %233 = load i64, ptr %0, align 4 + br i1 %232, label %234, label %236 + +234: ; preds = %231 + %235 = load i64, ptr %185, align 4, !tbaa.struct !19 + store i64 %235, ptr %0, align 4, !tbaa.struct !19 + store i64 %233, ptr %185, align 4, !tbaa.struct !19 + br label %238 + +236: ; preds = %231 + %237 = load i64, ptr %184, align 4, !tbaa.struct !19 + store i64 %237, ptr %0, align 4, !tbaa.struct !19 + store i64 %233, ptr %184, align 4, !tbaa.struct !19 + br label %238 + +238: ; preds = %236, %234, %223, %214, %212, %201 + %239 = load i32, ptr %12, align 4, !tbaa !16 + %240 = load i32, ptr %11, align 4, !tbaa !16 + %241 = icmp eq i32 %240, %239 + br i1 %241, label %.loopexit66, label %.preheader67 + +.preheader67: ; preds = %238, %269 + %242 = phi i32 [ %275, %269 ], [ %240, %238 ] + %243 = phi i32 [ %273, %269 ], [ %239, %238 ] + %244 = phi ptr [ %258, %269 ], [ %16, %238 ] + %245 = phi ptr [ %272, %269 ], [ %10, %238 ] + br label %246 + +.loopexit66: ; preds = %238, %269, %250 tail call void (ptr, ...) @_ZN8rawspeed14ThrowExceptionINS_19RawDecoderExceptionEEEvPKcz(ptr noundef nonnull @.str.15, ptr noundef nonnull @"__PRETTY_FUNCTION__._ZZN8rawspeed10IiqDecoder13computeSripesENS_6BufferESt6vectorINS0_9IiqOffsetESaIS3_EEjENK3$_0clERKS3_S8_") #16 unreachable -250: ; preds = %254, %.preheader67 - %251 = phi i32 [ %246, %.preheader67 ], [ %257, %254 ] - %252 = phi ptr [ %249, %.preheader67 ], [ %255, %254 ] - %253 = icmp ult i32 %251, %247 - br i1 %253, label %254, label %.preheader65 - -254: ; preds = %250 - %255 = getelementptr inbounds nuw i8, ptr %252, i64 8 - %256 = getelementptr inbounds nuw i8, ptr %252, i64 12 - %257 = load i32, ptr %256, align 4, !tbaa !16 - %258 = icmp ne i32 %257, %247 - %259 = icmp eq ptr %255, %0 - %260 = or i1 %259, %258 - br i1 %260, label %250, label %.loopexit66, !llvm.loop !332 - -.preheader65: ; preds = %250, %269 - %261 = phi ptr [ %262, %269 ], [ %248, %250 ] - %262 = getelementptr inbounds i8, ptr %261, i64 -8 - %263 = getelementptr inbounds i8, ptr %261, i64 -4 - %264 = load i32, ptr %263, align 4, !tbaa !16 - %265 = icmp ne i32 %247, %264 - %266 = icmp eq ptr %262, %0 - %267 = or i1 %266, %265 - br i1 %267, label %269, label %268 - -268: ; preds = %.preheader65 +246: ; preds = %250, %.preheader67 + %247 = phi i32 [ %242, %.preheader67 ], [ %253, %250 ] + %248 = phi ptr [ %245, %.preheader67 ], [ %251, %250 ] + %249 = icmp ult i32 %247, %243 + br i1 %249, label %250, label %.preheader65 + +250: ; preds = %246 + %251 = getelementptr inbounds nuw i8, ptr %248, i64 8 + %252 = getelementptr inbounds nuw i8, ptr %248, i64 12 + %253 = load i32, ptr %252, align 4, !tbaa !16 + %254 = icmp ne i32 %253, %243 + %255 = icmp eq ptr %251, %0 + %256 = or i1 %255, %254 + br i1 %256, label %246, label %.loopexit66, !llvm.loop !332 + +.preheader65: ; preds = %246, %265 + %257 = phi ptr [ %258, %265 ], [ %244, %246 ] + %258 = getelementptr inbounds i8, ptr %257, i64 -8 + %259 = getelementptr inbounds i8, ptr %257, i64 -4 + %260 = load i32, ptr %259, align 4, !tbaa !16 + %261 = icmp ne i32 %243, %260 + %262 = icmp eq ptr %258, %0 + %263 = or i1 %262, %261 + br i1 %263, label %265, label %264 + +264: ; preds = %.preheader65 tail call void (ptr, ...) @_ZN8rawspeed14ThrowExceptionINS_19RawDecoderExceptionEEEvPKcz(ptr noundef nonnull @.str.15, ptr noundef nonnull @"__PRETTY_FUNCTION__._ZZN8rawspeed10IiqDecoder13computeSripesENS_6BufferESt6vectorINS0_9IiqOffsetESaIS3_EEjENK3$_0clERKS3_S8_") #16 unreachable -269: ; preds = %.preheader65 - %270 = icmp ult i32 %247, %264 - br i1 %270, label %.preheader65, label %271, !llvm.loop !333 - -271: ; preds = %269 - %272 = icmp ult ptr %252, %262 - br i1 %272, label %273, label %283 - -273: ; preds = %271 - %274 = load i64, ptr %252, align 4, !tbaa.struct !19 - %275 = load i64, ptr %262, align 4, !tbaa.struct !19 - store i64 %275, ptr %252, align 4, !tbaa.struct !19 - store i64 %274, ptr %262, align 4, !tbaa.struct !19 - %276 = getelementptr inbounds nuw i8, ptr %252, i64 8 - %277 = load i32, ptr %12, align 4, !tbaa !16 - %278 = getelementptr inbounds nuw i8, ptr %252, i64 12 - %279 = load i32, ptr %278, align 4, !tbaa !16 - %280 = icmp ne i32 %279, %277 - %281 = icmp eq ptr %276, %0 - %282 = or i1 %281, %280 - br i1 %282, label %.preheader67, label %.loopexit66, !llvm.loop !334 - -283: ; preds = %271 - tail call fastcc void @"_ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPN8rawspeed10IiqDecoder9IiqOffsetESt6vectorIS4_SaIS4_EEEElNS0_5__ops15_Iter_comp_iterIZNS3_13computeSripesENS2_6BufferES8_jE3$_0EEEvT_SF_T0_T1_"(ptr %252, ptr %16, i64 noundef %181) - %284 = ptrtoint ptr %252 to i64 - %285 = sub i64 %284, %4 - %286 = freeze i64 %285 - %287 = icmp sgt i64 %286, 128 - br i1 %287, label %13, label %.loopexit49, !llvm.loop !335 - -.loopexit49: ; preds = %283, %.loopexit, %3 +265: ; preds = %.preheader65 + %266 = icmp ult i32 %243, %260 + br i1 %266, label %.preheader65, label %267, !llvm.loop !333 + +267: ; preds = %265 + %268 = icmp ult ptr %248, %258 + br i1 %268, label %269, label %279 + +269: ; preds = %267 + %270 = load i64, ptr %248, align 4, !tbaa.struct !19 + %271 = load i64, ptr %258, align 4, !tbaa.struct !19 + store i64 %271, ptr %248, align 4, !tbaa.struct !19 + store i64 %270, ptr %258, align 4, !tbaa.struct !19 + %272 = getelementptr inbounds nuw i8, ptr %248, i64 8 + %273 = load i32, ptr %12, align 4, !tbaa !16 + %274 = getelementptr inbounds nuw i8, ptr %248, i64 12 + %275 = load i32, ptr %274, align 4, !tbaa !16 + %276 = icmp ne i32 %275, %273 + %277 = icmp eq ptr %272, %0 + %278 = or i1 %277, %276 + br i1 %278, label %.preheader67, label %.loopexit66, !llvm.loop !334 + +279: ; preds = %267 + tail call fastcc void @"_ZSt16__introsort_loopIN9__gnu_cxx17__normal_iteratorIPN8rawspeed10IiqDecoder9IiqOffsetESt6vectorIS4_SaIS4_EEEElNS0_5__ops15_Iter_comp_iterIZNS3_13computeSripesENS2_6BufferES8_jE3$_0EEEvT_SF_T0_T1_"(ptr %248, ptr %16, i64 noundef %181) + %280 = ptrtoint ptr %248 to i64 + %281 = sub i64 %280, %4 + %282 = freeze i64 %281 + %283 = icmp sgt i64 %282, 128 + br i1 %283, label %13, label %.loopexit49, !llvm.loop !335 + +.loopexit49: ; preds = %279, %.loopexit, %3 ret void } diff --git a/bench/darktable/optimized/RawDecoder.cpp.ll b/bench/darktable/optimized/RawDecoder.cpp.ll index 0394cdb544e..c3368c38437 100644 --- a/bench/darktable/optimized/RawDecoder.cpp.ll +++ b/bench/darktable/optimized/RawDecoder.cpp.ll @@ -2595,46 +2595,46 @@ define hidden void @_ZN8rawspeed10RawDecoder9decodeRawEv(ptr dead_on_unwind noal 26: ; preds = %7 %27 = ashr i32 %20, 1 - %28 = icmp sgt i32 %27, -1 + %28 = icmp ugt i32 %20, 1 tail call void @llvm.assume(i1 %28) - %29 = icmp samesign uge i32 %27, %16 + %29 = icmp sgt i32 %27, -1 tail call void @llvm.assume(i1 %29) + %30 = icmp samesign uge i32 %27, %16 + tail call void @llvm.assume(i1 %30) tail call void @llvm.assume(i1 %25) - %30 = shl nuw i32 %18, 1 - %31 = mul i32 %27, %30 - %32 = icmp sgt i32 %31, -1 - tail call void @llvm.assume(i1 %32) - %33 = shl nuw nsw i32 %16, 1 - %34 = and i32 %20, -2 - %35 = icmp ne i32 %34, 0 - tail call void @llvm.assume(i1 %35) - %36 = icmp uge i32 %34, %33 + %31 = shl nuw i32 %18, 1 + %32 = mul i32 %27, %31 + %33 = icmp sgt i32 %32, -1 + tail call void @llvm.assume(i1 %33) + %34 = shl nuw nsw i32 %16, 1 + %35 = and i32 %20, -2 + %36 = icmp uge i32 %35, %34 br label %48 37: ; preds = %7 %38 = ashr i32 %20, 2 - %39 = icmp sgt i32 %38, -1 + %39 = icmp ugt i32 %20, 3 tail call void @llvm.assume(i1 %39) - %40 = icmp samesign uge i32 %38, %16 + %40 = icmp sgt i32 %38, -1 tail call void @llvm.assume(i1 %40) + %41 = icmp samesign uge i32 %38, %16 + tail call void @llvm.assume(i1 %41) tail call void @llvm.assume(i1 %25) - %41 = shl i32 %18, 2 - %42 = mul i32 %38, %41 - %43 = icmp sgt i32 %42, -1 - tail call void @llvm.assume(i1 %43) - %44 = shl nuw nsw i32 %16, 2 - %45 = and i32 %20, -4 - %46 = icmp ne i32 %45, 0 - tail call void @llvm.assume(i1 %46) - %47 = icmp uge i32 %45, %44 + %42 = shl i32 %18, 2 + %43 = mul i32 %38, %42 + %44 = icmp sgt i32 %43, -1 + tail call void @llvm.assume(i1 %44) + %45 = shl nuw nsw i32 %16, 2 + %46 = and i32 %20, -4 + %47 = icmp uge i32 %46, %45 tail call void @llvm.assume(i1 %47) br label %48 48: ; preds = %37, %26 %49 = phi i1 [ true, %37 ], [ %36, %26 ] - %50 = phi i32 [ %45, %37 ], [ %34, %26 ] - %51 = phi i32 [ %42, %37 ], [ %31, %26 ] - %52 = phi i32 [ %44, %37 ], [ %33, %26 ] + %50 = phi i32 [ %46, %37 ], [ %35, %26 ] + %51 = phi i32 [ %43, %37 ], [ %32, %26 ] + %52 = phi i32 [ %45, %37 ], [ %34, %26 ] tail call void @llvm.assume(i1 %49) %53 = mul nuw nsw i32 %50, %18 %54 = icmp eq i32 %53, %51 @@ -2729,46 +2729,46 @@ define hidden void @_ZN8rawspeed10RawDecoder9decodeRawEv(ptr dead_on_unwind noal 106: ; preds = %87 %107 = ashr i32 %100, 1 - %108 = icmp sgt i32 %107, -1 + %108 = icmp ugt i32 %100, 1 call void @llvm.assume(i1 %108) - %109 = icmp samesign uge i32 %107, %96 + %109 = icmp sgt i32 %107, -1 call void @llvm.assume(i1 %109) + %110 = icmp samesign uge i32 %107, %96 + call void @llvm.assume(i1 %110) call void @llvm.assume(i1 %105) - %110 = shl nuw i32 %98, 1 - %111 = mul i32 %107, %110 - %112 = icmp sgt i32 %111, -1 - call void @llvm.assume(i1 %112) - %113 = shl nuw nsw i32 %96, 1 - %114 = and i32 %100, -2 - %115 = icmp ne i32 %114, 0 - call void @llvm.assume(i1 %115) - %116 = icmp uge i32 %114, %113 + %111 = shl nuw i32 %98, 1 + %112 = mul i32 %107, %111 + %113 = icmp sgt i32 %112, -1 + call void @llvm.assume(i1 %113) + %114 = shl nuw nsw i32 %96, 1 + %115 = and i32 %100, -2 + %116 = icmp uge i32 %115, %114 br label %128 117: ; preds = %87 %118 = ashr i32 %100, 2 - %119 = icmp sgt i32 %118, -1 + %119 = icmp ugt i32 %100, 3 call void @llvm.assume(i1 %119) - %120 = icmp samesign uge i32 %118, %96 + %120 = icmp sgt i32 %118, -1 call void @llvm.assume(i1 %120) + %121 = icmp samesign uge i32 %118, %96 + call void @llvm.assume(i1 %121) call void @llvm.assume(i1 %105) - %121 = shl i32 %98, 2 - %122 = mul i32 %118, %121 - %123 = icmp sgt i32 %122, -1 - call void @llvm.assume(i1 %123) - %124 = shl nuw nsw i32 %96, 2 - %125 = and i32 %100, -4 - %126 = icmp ne i32 %125, 0 - call void @llvm.assume(i1 %126) - %127 = icmp uge i32 %125, %124 + %122 = shl i32 %98, 2 + %123 = mul i32 %118, %122 + %124 = icmp sgt i32 %123, -1 + call void @llvm.assume(i1 %124) + %125 = shl nuw nsw i32 %96, 2 + %126 = and i32 %100, -4 + %127 = icmp uge i32 %126, %125 call void @llvm.assume(i1 %127) br label %128 128: ; preds = %117, %106 %129 = phi i1 [ true, %117 ], [ %116, %106 ] - %130 = phi i32 [ %125, %117 ], [ %114, %106 ] - %131 = phi i32 [ %122, %117 ], [ %111, %106 ] - %132 = phi i32 [ %124, %117 ], [ %113, %106 ] + %130 = phi i32 [ %126, %117 ], [ %115, %106 ] + %131 = phi i32 [ %123, %117 ], [ %112, %106 ] + %132 = phi i32 [ %125, %117 ], [ %114, %106 ] call void @llvm.assume(i1 %129) %133 = mul nuw nsw i32 %130, %98 %134 = icmp eq i32 %133, %131 diff --git a/bench/duckdb/optimized/ub_duckdb_optimizer_join_order.cpp.ll b/bench/duckdb/optimized/ub_duckdb_optimizer_join_order.cpp.ll index 7af4ce6e928..2db4c793241 100644 --- a/bench/duckdb/optimized/ub_duckdb_optimizer_join_order.cpp.ll +++ b/bench/duckdb/optimized/ub_duckdb_optimizer_join_order.cpp.ll @@ -39742,20 +39742,20 @@ land.rhs.i.i.us: ; preds = %while.body.i.us, %w %__holeIndex.addr.033.i.i.us = phi i64 [ %__parent.034.i.i.us, %while.body.i.i.us ], [ %spec.select.i.us, %while.body.i.us ] %__parent.034.in.i.i.us = add nsw i64 %__holeIndex.addr.033.i.i.us, -1 %__parent.034.i.i.us = sdiv i64 %__parent.034.in.i.i.us, 2 - %add.ptr.i.i.i.us = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__parent.034.i.i.us + %add.ptr.i.i.i.us = getelementptr inbounds i64, ptr %__first.coerce, i64 %__parent.034.i.i.us %5 = load i64, ptr %add.ptr.i.i.i.us, align 8, !tbaa !15 %cmp.i.i.i.us = icmp ult i64 %5, %1 br i1 %cmp.i.i.i.us, label %while.body.i.i.us, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit.us while.body.i.i.us: ; preds = %land.rhs.i.i.us - %add.ptr.i24.i.i.us = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i.us + %add.ptr.i24.i.i.us = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i.us store i64 %5, ptr %add.ptr.i24.i.i.us, align 8, !tbaa !15 %cmp.i58.i.us = icmp sgt i64 %__parent.034.i.i.us, %__parent.0.us br i1 %cmp.i58.i.us, label %land.rhs.i.i.us, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit.us, !llvm.loop !929 _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit.us: ; preds = %while.body.i.i.us, %land.rhs.i.i.us, %while.cond.us %__holeIndex.addr.0.lcssa.i.i.us = phi i64 [ %__parent.0.us, %while.cond.us ], [ %__holeIndex.addr.033.i.i.us, %land.rhs.i.i.us ], [ %__parent.034.i.i.us, %while.body.i.i.us ] - %add.ptr.i25.i.i.us = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i.us + %add.ptr.i25.i.i.us = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i.us store i64 %1, ptr %add.ptr.i25.i.i.us, align 8, !tbaa !15 %cmp8.not.us = icmp eq i64 %__parent.0.us, 0 %dec.us = add nsw i64 %__parent.0.us, -1 @@ -39805,20 +39805,20 @@ land.rhs.i.i: ; preds = %if.end33.i, %while. %__holeIndex.addr.033.i.i = phi i64 [ %__parent.034.i.i, %while.body.i.i ], [ %__holeIndex.addr.1.i, %if.end33.i ] %__parent.034.in.i.i = add nsw i64 %__holeIndex.addr.033.i.i, -1 %__parent.034.i.i = sdiv i64 %__parent.034.in.i.i, 2 - %add.ptr.i.i.i = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__parent.034.i.i + %add.ptr.i.i.i = getelementptr inbounds i64, ptr %__first.coerce, i64 %__parent.034.i.i %11 = load i64, ptr %add.ptr.i.i.i, align 8, !tbaa !15 %cmp.i.i.i = icmp ult i64 %11, %6 br i1 %cmp.i.i.i, label %while.body.i.i, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit while.body.i.i: ; preds = %land.rhs.i.i - %add.ptr.i24.i.i = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i + %add.ptr.i24.i.i = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i store i64 %11, ptr %add.ptr.i24.i.i, align 8, !tbaa !15 %cmp.i58.i = icmp sgt i64 %__parent.034.i.i, %__parent.0 br i1 %cmp.i58.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit, !llvm.loop !929 _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_less_iterEEvT_T0_SA_T1_T2_.exit: ; preds = %while.body.i.i, %land.rhs.i.i, %if.end33.i %__holeIndex.addr.0.lcssa.i.i = phi i64 [ %__holeIndex.addr.1.i, %if.end33.i ], [ %__holeIndex.addr.033.i.i, %land.rhs.i.i ], [ %__parent.034.i.i, %while.body.i.i ] - %add.ptr.i25.i.i = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i + %add.ptr.i25.i.i = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i store i64 %6, ptr %add.ptr.i25.i.i, align 8, !tbaa !15 %cmp8.not = icmp eq i64 %__parent.0, 0 %dec = add nsw i64 %__parent.0, -1 @@ -44575,20 +44575,20 @@ land.rhs.i.i.us: ; preds = %while.body.i.us, %w %__holeIndex.addr.019.i.i.us = phi i64 [ %__parent.020.i.i.us, %while.body.i.i.us ], [ %spec.select.i.us, %while.body.i.us ] %__parent.020.in.i.i.us = add nsw i64 %__holeIndex.addr.019.i.i.us, -1 %__parent.020.i.i.us = sdiv i64 %__parent.020.in.i.i.us, 2 - %add.ptr.i.i.us = getelementptr inbounds nuw i64, ptr %__first, i64 %__parent.020.i.i.us + %add.ptr.i.i.us = getelementptr inbounds i64, ptr %__first, i64 %__parent.020.i.i.us %5 = load i64, ptr %add.ptr.i.i.us, align 8, !tbaa !15 %cmp.i.i.i.us = icmp ult i64 %5, %1 br i1 %cmp.i.i.i.us, label %while.body.i.i.us, label %_ZSt13__adjust_heapIPmlmN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit.us while.body.i.i.us: ; preds = %land.rhs.i.i.us - %add.ptr2.i.i.us = getelementptr inbounds nuw i64, ptr %__first, i64 %__holeIndex.addr.019.i.i.us + %add.ptr2.i.i.us = getelementptr inbounds i64, ptr %__first, i64 %__holeIndex.addr.019.i.i.us store i64 %5, ptr %add.ptr2.i.i.us, align 8, !tbaa !15 %cmp.i39.i.us = icmp sgt i64 %__parent.020.i.i.us, %__parent.0.us br i1 %cmp.i39.i.us, label %land.rhs.i.i.us, label %_ZSt13__adjust_heapIPmlmN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit.us, !llvm.loop !1051 _ZSt13__adjust_heapIPmlmN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit.us: ; preds = %while.body.i.i.us, %land.rhs.i.i.us, %while.cond.us %__holeIndex.addr.0.lcssa.i.i.us = phi i64 [ %__parent.0.us, %while.cond.us ], [ %__holeIndex.addr.019.i.i.us, %land.rhs.i.i.us ], [ %__parent.020.i.i.us, %while.body.i.i.us ] - %add.ptr5.i.i.us = getelementptr inbounds nuw i64, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.us + %add.ptr5.i.i.us = getelementptr inbounds i64, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i.us store i64 %1, ptr %add.ptr5.i.i.us, align 8, !tbaa !15 %cmp5.not.us = icmp eq i64 %__parent.0.us, 0 %dec.us = add nsw i64 %__parent.0.us, -1 @@ -44638,20 +44638,20 @@ land.rhs.i.i: ; preds = %if.end16.i, %while. %__holeIndex.addr.019.i.i = phi i64 [ %__parent.020.i.i, %while.body.i.i ], [ %__holeIndex.addr.1.i, %if.end16.i ] %__parent.020.in.i.i = add nsw i64 %__holeIndex.addr.019.i.i, -1 %__parent.020.i.i = sdiv i64 %__parent.020.in.i.i, 2 - %add.ptr.i.i = getelementptr inbounds nuw i64, ptr %__first, i64 %__parent.020.i.i + %add.ptr.i.i = getelementptr inbounds i64, ptr %__first, i64 %__parent.020.i.i %11 = load i64, ptr %add.ptr.i.i, align 8, !tbaa !15 %cmp.i.i.i = icmp ult i64 %11, %6 br i1 %cmp.i.i.i, label %while.body.i.i, label %_ZSt13__adjust_heapIPmlmN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit while.body.i.i: ; preds = %land.rhs.i.i - %add.ptr2.i.i = getelementptr inbounds nuw i64, ptr %__first, i64 %__holeIndex.addr.019.i.i + %add.ptr2.i.i = getelementptr inbounds i64, ptr %__first, i64 %__holeIndex.addr.019.i.i store i64 %11, ptr %add.ptr2.i.i, align 8, !tbaa !15 %cmp.i39.i = icmp sgt i64 %__parent.020.i.i, %__parent.0 br i1 %cmp.i39.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIPmlmN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit, !llvm.loop !1051 _ZSt13__adjust_heapIPmlmN9__gnu_cxx5__ops15_Iter_less_iterEEvT_T0_S5_T1_T2_.exit: ; preds = %while.body.i.i, %land.rhs.i.i, %if.end16.i %__holeIndex.addr.0.lcssa.i.i = phi i64 [ %__holeIndex.addr.1.i, %if.end16.i ], [ %__holeIndex.addr.019.i.i, %land.rhs.i.i ], [ %__parent.020.i.i, %while.body.i.i ] - %add.ptr5.i.i = getelementptr inbounds nuw i64, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i + %add.ptr5.i.i = getelementptr inbounds i64, ptr %__first, i64 %__holeIndex.addr.0.lcssa.i.i store i64 %6, ptr %add.ptr5.i.i, align 8, !tbaa !15 %cmp5.not = icmp eq i64 %__parent.0, 0 %dec = add nsw i64 %__parent.0, -1 @@ -50626,20 +50626,20 @@ land.rhs.i.i.us: ; preds = %while.body.i.us, %w %__holeIndex.addr.033.i.i.us = phi i64 [ %__parent.034.i.i.us, %while.body.i.i.us ], [ %spec.select.i.us, %while.body.i.us ] %__parent.034.in.i.i.us = add nsw i64 %__holeIndex.addr.033.i.i.us, -1 %__parent.034.i.i.us = sdiv i64 %__parent.034.in.i.i.us, 2 - %add.ptr.i.i.i.us = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__parent.034.i.i.us + %add.ptr.i.i.i.us = getelementptr inbounds i64, ptr %__first.coerce, i64 %__parent.034.i.i.us %5 = load i64, ptr %add.ptr.i.i.i.us, align 8, !tbaa !15 %cmp.i.i.not.i.i.us = icmp ult i64 %5, %1 br i1 %cmp.i.i.not.i.i.us, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_comp_iterISt13greater_equalImEEEEvT_T0_SD_T1_T2_.exit.us, label %while.body.i.i.us while.body.i.i.us: ; preds = %land.rhs.i.i.us - %add.ptr.i24.i.i.us = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i.us + %add.ptr.i24.i.i.us = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i.us store i64 %5, ptr %add.ptr.i24.i.i.us, align 8, !tbaa !15 %cmp.i.i.us = icmp sgt i64 %__parent.034.i.i.us, %__parent.0.us br i1 %cmp.i.i.us, label %land.rhs.i.i.us, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_comp_iterISt13greater_equalImEEEEvT_T0_SD_T1_T2_.exit.us, !llvm.loop !1160 _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_comp_iterISt13greater_equalImEEEEvT_T0_SD_T1_T2_.exit.us: ; preds = %while.body.i.i.us, %land.rhs.i.i.us, %while.cond.us %__holeIndex.addr.0.lcssa.i.i.us = phi i64 [ %__parent.0.us, %while.cond.us ], [ %__holeIndex.addr.033.i.i.us, %land.rhs.i.i.us ], [ %__parent.034.i.i.us, %while.body.i.i.us ] - %add.ptr.i25.i.i.us = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i.us + %add.ptr.i25.i.i.us = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i.us store i64 %1, ptr %add.ptr.i25.i.i.us, align 8, !tbaa !15 %cmp8.not.us = icmp eq i64 %__parent.0.us, 0 %dec.us = add nsw i64 %__parent.0.us, -1 @@ -50689,20 +50689,20 @@ land.rhs.i.i: ; preds = %if.end33.i, %while. %__holeIndex.addr.033.i.i = phi i64 [ %__parent.034.i.i, %while.body.i.i ], [ %__holeIndex.addr.1.i, %if.end33.i ] %__parent.034.in.i.i = add nsw i64 %__holeIndex.addr.033.i.i, -1 %__parent.034.i.i = sdiv i64 %__parent.034.in.i.i, 2 - %add.ptr.i.i.i = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__parent.034.i.i + %add.ptr.i.i.i = getelementptr inbounds i64, ptr %__first.coerce, i64 %__parent.034.i.i %11 = load i64, ptr %add.ptr.i.i.i, align 8, !tbaa !15 %cmp.i.i.not.i.i = icmp ult i64 %11, %6 br i1 %cmp.i.i.not.i.i, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_comp_iterISt13greater_equalImEEEEvT_T0_SD_T1_T2_.exit, label %while.body.i.i while.body.i.i: ; preds = %land.rhs.i.i - %add.ptr.i24.i.i = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i + %add.ptr.i24.i.i = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.033.i.i store i64 %11, ptr %add.ptr.i24.i.i, align 8, !tbaa !15 %cmp.i.i = icmp sgt i64 %__parent.034.i.i, %__parent.0 br i1 %cmp.i.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_comp_iterISt13greater_equalImEEEEvT_T0_SD_T1_T2_.exit, !llvm.loop !1160 _ZSt13__adjust_heapIN9__gnu_cxx17__normal_iteratorIPmSt6vectorImSaImEEEElmNS0_5__ops15_Iter_comp_iterISt13greater_equalImEEEEvT_T0_SD_T1_T2_.exit: ; preds = %while.body.i.i, %land.rhs.i.i, %if.end33.i %__holeIndex.addr.0.lcssa.i.i = phi i64 [ %__holeIndex.addr.1.i, %if.end33.i ], [ %__holeIndex.addr.033.i.i, %land.rhs.i.i ], [ %__parent.034.i.i, %while.body.i.i ] - %add.ptr.i25.i.i = getelementptr inbounds nuw i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i + %add.ptr.i25.i.i = getelementptr inbounds i64, ptr %__first.coerce, i64 %__holeIndex.addr.0.lcssa.i.i store i64 %6, ptr %add.ptr.i25.i.i, align 8, !tbaa !15 %cmp8.not = icmp eq i64 %__parent.0, 0 %dec = add nsw i64 %__parent.0, -1 diff --git a/bench/folly/optimized/IOBuf.cpp.ll b/bench/folly/optimized/IOBuf.cpp.ll index 6631ae5a7f7..5caa72d24ac 100644 --- a/bench/folly/optimized/IOBuf.cpp.ll +++ b/bench/folly/optimized/IOBuf.cpp.ll @@ -858,15 +858,11 @@ if.then: ; preds = %entry if.end.i: ; preds = %entry %add1.i = add nuw i64 %minCapacity, 39 %and.i = and i64 %add1.i, -8 - %cmp.i.i = icmp eq i64 %and.i, 0 - br i1 %cmp.i.i, label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit, label %if.end.i.i - -if.end.i.i: ; preds = %if.end.i %0 = load atomic i8, ptr @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv acquire, align 8 %guard.uninitialized.i.i.i.i.i = icmp eq i8 %0, 0 br i1 %guard.uninitialized.i.i.i.i.i, label %init.check.i.i.i.i.i, label %_ZN5folly10canNallocxEv.exit.i.i, !prof !46 -init.check.i.i.i.i.i: ; preds = %if.end.i.i +init.check.i.i.i.i.i: ; preds = %if.end.i %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv) #34 %tobool.not.i.i.i.i.i = icmp eq i32 %1, 0 br i1 %tobool.not.i.i.i.i.i, label %_ZN5folly10canNallocxEv.exit.i.i, label %init.i.i.i.i.i @@ -881,7 +877,7 @@ init.i.i.i.i.i: ; preds = %init.check.i.i.i.i. call void @__cxa_guard_release(ptr nonnull @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv) #34 br label %_ZN5folly10canNallocxEv.exit.i.i -_ZN5folly10canNallocxEv.exit.i.i: ; preds = %init.i.i.i.i.i, %init.check.i.i.i.i.i, %if.end.i.i +_ZN5folly10canNallocxEv.exit.i.i: ; preds = %init.i.i.i.i.i, %init.check.i.i.i.i.i, %if.end.i %3 = load i8, ptr @_ZZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv, align 1, !tbaa !47, !range !29, !noundef !30 %tobool1.i.i.i.not.i.i = icmp eq i8 %3, 0 br i1 %tobool1.i.i.i.not.i.i, label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit, label %if.end2.i.i @@ -892,8 +888,8 @@ if.end2.i.i: ; preds = %_ZN5folly10canNallo %cond.i.i = select i1 %tobool.not.i.i, i64 %and.i, i64 %call3.i.i br label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit -_ZN5folly5IOBuf17goodExtBufferSizeEm.exit: ; preds = %if.end2.i.i, %_ZN5folly10canNallocxEv.exit.i.i, %if.end.i - %retval.0.i.i = phi i64 [ %cond.i.i, %if.end2.i.i ], [ 0, %if.end.i ], [ %and.i, %_ZN5folly10canNallocxEv.exit.i.i ] +_ZN5folly5IOBuf17goodExtBufferSizeEm.exit: ; preds = %if.end2.i.i, %_ZN5folly10canNallocxEv.exit.i.i + %retval.0.i.i = phi i64 [ %cond.i.i, %if.end2.i.i ], [ %and.i, %_ZN5folly10canNallocxEv.exit.i.i ] %call.i = call noalias ptr @malloc(i64 noundef %retval.0.i.i) #36 %tobool.not.i = icmp eq ptr %call.i, null br i1 %tobool.not.i, label %if.then.i12, label %_ZN5folly13checkedMallocEm.exit @@ -3023,15 +3019,11 @@ if.then.i190: ; preds = %if.then9 if.end.i: ; preds = %if.then9 %add1.i = add nuw i64 %add10, 39 %and.i = and i64 %add1.i, -8 - %cmp.i.i = icmp eq i64 %and.i, 0 - br i1 %cmp.i.i, label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit, label %if.end.i.i - -if.end.i.i: ; preds = %if.end.i %12 = load atomic i8, ptr @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv acquire, align 8 %guard.uninitialized.i.i.i.i.i = icmp eq i8 %12, 0 br i1 %guard.uninitialized.i.i.i.i.i, label %init.check.i.i.i.i.i, label %_ZN5folly10canNallocxEv.exit.i.i, !prof !46 -init.check.i.i.i.i.i: ; preds = %if.end.i.i +init.check.i.i.i.i.i: ; preds = %if.end.i %13 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv) #34 %tobool.not.i.i.i.i.i = icmp eq i32 %13, 0 br i1 %tobool.not.i.i.i.i.i, label %_ZN5folly10canNallocxEv.exit.i.i, label %init.i.i.i.i.i @@ -3046,7 +3038,7 @@ init.i.i.i.i.i: ; preds = %init.check.i.i.i.i. call void @__cxa_guard_release(ptr nonnull @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv) #34 br label %_ZN5folly10canNallocxEv.exit.i.i -_ZN5folly10canNallocxEv.exit.i.i: ; preds = %init.i.i.i.i.i, %init.check.i.i.i.i.i, %if.end.i.i +_ZN5folly10canNallocxEv.exit.i.i: ; preds = %init.i.i.i.i.i, %init.check.i.i.i.i.i, %if.end.i %15 = load i8, ptr @_ZZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv, align 1, !tbaa !47, !range !29, !noundef !30 %tobool1.i.i.i.not.i.i = icmp eq i8 %15, 0 br i1 %tobool1.i.i.i.not.i.i, label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit, label %if.end2.i.i @@ -3057,8 +3049,8 @@ if.end2.i.i: ; preds = %_ZN5folly10canNallo %cond.i.i = select i1 %tobool.not.i.i, i64 %and.i, i64 %call3.i.i br label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit -_ZN5folly5IOBuf17goodExtBufferSizeEm.exit: ; preds = %if.end2.i.i, %_ZN5folly10canNallocxEv.exit.i.i, %if.end.i - %retval.0.i.i = phi i64 [ %cond.i.i, %if.end2.i.i ], [ 0, %if.end.i ], [ %and.i, %_ZN5folly10canNallocxEv.exit.i.i ] +_ZN5folly5IOBuf17goodExtBufferSizeEm.exit: ; preds = %if.end2.i.i, %_ZN5folly10canNallocxEv.exit.i.i + %retval.0.i.i = phi i64 [ %cond.i.i, %if.end2.i.i ], [ %and.i, %_ZN5folly10canNallocxEv.exit.i.i ] %16 = load ptr, ptr %buf_.i.i, align 8, !tbaa !58 %17 = load i64, ptr %capacity_.i.i, align 8, !tbaa !76 %add.ptr.i.i193 = getelementptr inbounds i8, ptr %16, i64 %17 @@ -3216,15 +3208,11 @@ if.then: ; preds = %entry if.end: ; preds = %entry %add1 = add nuw i64 %minCapacity, 39 %and = and i64 %add1, -8 - %cmp.i = icmp eq i64 %and, 0 - br i1 %cmp.i, label %_ZN5folly14goodMallocSizeEm.exit, label %if.end.i - -if.end.i: ; preds = %if.end %0 = load atomic i8, ptr @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv acquire, align 8 %guard.uninitialized.i.i.i.i = icmp eq i8 %0, 0 br i1 %guard.uninitialized.i.i.i.i, label %init.check.i.i.i.i, label %_ZN5folly10canNallocxEv.exit.i, !prof !46 -init.check.i.i.i.i: ; preds = %if.end.i +init.check.i.i.i.i: ; preds = %if.end %1 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv) #34 %tobool.not.i.i.i.i = icmp eq i32 %1, 0 br i1 %tobool.not.i.i.i.i, label %_ZN5folly10canNallocxEv.exit.i, label %init.i.i.i.i @@ -3239,7 +3227,7 @@ init.i.i.i.i: ; preds = %init.check.i.i.i.i call void @__cxa_guard_release(ptr nonnull @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv) #34 br label %_ZN5folly10canNallocxEv.exit.i -_ZN5folly10canNallocxEv.exit.i: ; preds = %init.i.i.i.i, %init.check.i.i.i.i, %if.end.i +_ZN5folly10canNallocxEv.exit.i: ; preds = %init.i.i.i.i, %init.check.i.i.i.i, %if.end %3 = load i8, ptr @_ZZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv, align 1, !tbaa !47, !range !29, !noundef !30 %tobool1.i.i.i.not.i = icmp eq i8 %3, 0 br i1 %tobool1.i.i.i.not.i, label %_ZN5folly14goodMallocSizeEm.exit, label %if.end2.i @@ -3250,8 +3238,8 @@ if.end2.i: ; preds = %_ZN5folly10canNallo %cond.i = select i1 %tobool.not.i, i64 %and, i64 %call3.i br label %_ZN5folly14goodMallocSizeEm.exit -_ZN5folly14goodMallocSizeEm.exit: ; preds = %if.end2.i, %_ZN5folly10canNallocxEv.exit.i, %if.end - %retval.0.i = phi i64 [ %cond.i, %if.end2.i ], [ 0, %if.end ], [ %and, %_ZN5folly10canNallocxEv.exit.i ] +_ZN5folly14goodMallocSizeEm.exit: ; preds = %if.end2.i, %_ZN5folly10canNallocxEv.exit.i + %retval.0.i = phi i64 [ %cond.i, %if.end2.i ], [ %and, %_ZN5folly10canNallocxEv.exit.i ] ret i64 %retval.0.i } @@ -3935,15 +3923,11 @@ if.then.i: ; preds = %if.then41 if.end.i154: ; preds = %if.then41 %add1.i = add nuw i64 %add42, 39 %and.i155 = and i64 %add1.i, -8 - %cmp.i.i = icmp eq i64 %and.i155, 0 - br i1 %cmp.i.i, label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit, label %if.end.i.i - -if.end.i.i: ; preds = %if.end.i154 %14 = load atomic i8, ptr @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv acquire, align 8 %guard.uninitialized.i.i.i.i.i = icmp eq i8 %14, 0 br i1 %guard.uninitialized.i.i.i.i.i, label %init.check.i.i.i.i.i, label %_ZN5folly10canNallocxEv.exit.i.i, !prof !46 -init.check.i.i.i.i.i: ; preds = %if.end.i.i +init.check.i.i.i.i.i: ; preds = %if.end.i154 %15 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv) #34 %tobool.not.i.i.i.i.i = icmp eq i32 %15, 0 br i1 %tobool.not.i.i.i.i.i, label %_ZN5folly10canNallocxEv.exit.i.i, label %init.i.i.i.i.i @@ -3958,7 +3942,7 @@ init.i.i.i.i.i: ; preds = %init.check.i.i.i.i. call void @__cxa_guard_release(ptr nonnull @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv) #34 br label %_ZN5folly10canNallocxEv.exit.i.i -_ZN5folly10canNallocxEv.exit.i.i: ; preds = %init.i.i.i.i.i, %init.check.i.i.i.i.i, %if.end.i.i +_ZN5folly10canNallocxEv.exit.i.i: ; preds = %init.i.i.i.i.i, %init.check.i.i.i.i.i, %if.end.i154 %17 = load i8, ptr @_ZZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv, align 1, !tbaa !47, !range !29, !noundef !30 %tobool1.i.i.i.not.i.i = icmp eq i8 %17, 0 br i1 %tobool1.i.i.i.not.i.i, label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit, label %if.end2.i.i @@ -3969,8 +3953,8 @@ if.end2.i.i: ; preds = %_ZN5folly10canNallo %cond.i.i = select i1 %tobool.not.i.i, i64 %and.i155, i64 %call3.i.i br label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit -_ZN5folly5IOBuf17goodExtBufferSizeEm.exit: ; preds = %if.end2.i.i, %_ZN5folly10canNallocxEv.exit.i.i, %if.end.i154 - %retval.0.i.i = phi i64 [ %cond.i.i, %if.end2.i.i ], [ 0, %if.end.i154 ], [ %and.i155, %_ZN5folly10canNallocxEv.exit.i.i ] +_ZN5folly5IOBuf17goodExtBufferSizeEm.exit: ; preds = %if.end2.i.i, %_ZN5folly10canNallocxEv.exit.i.i + %retval.0.i.i = phi i64 [ %cond.i.i, %if.end2.i.i ], [ %and.i155, %_ZN5folly10canNallocxEv.exit.i.i ] %18 = load atomic i8, ptr @_ZGVZN5folly6detail14FastStaticBoolIZNS_13usingJEMallocEvE11InitializerE3getESt12memory_orderE2rv acquire, align 8 %guard.uninitialized.i.i = icmp eq i8 %18, 0 br i1 %guard.uninitialized.i.i, label %init.check.i.i, label %_ZN5folly13usingJEMallocEv.exit, !prof !46 @@ -4060,15 +4044,11 @@ if.end.i160: ; preds = %if.end81, %if.else, %31 = phi i1 [ %tobool33, %if.end81 ], [ %tobool33, %if.else ], [ %tobool33, %if.then47 ], [ %tobool33, %if.then51 ], [ %tobool33, %if.then45 ], [ %tobool33, %land.lhs.true ], [ false, %if.end28 ] %add1.i161 = add nuw i64 %6, 39 %and.i162 = and i64 %add1.i161, -8 - %cmp.i.i163 = icmp eq i64 %and.i162, 0 - br i1 %cmp.i.i163, label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit179, label %if.end.i.i164 - -if.end.i.i164: ; preds = %if.end.i160 %32 = load atomic i8, ptr @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv acquire, align 8 %guard.uninitialized.i.i.i.i.i165 = icmp eq i8 %32, 0 br i1 %guard.uninitialized.i.i.i.i.i165, label %init.check.i.i.i.i.i173, label %_ZN5folly10canNallocxEv.exit.i.i166, !prof !46 -init.check.i.i.i.i.i173: ; preds = %if.end.i.i164 +init.check.i.i.i.i.i173: ; preds = %if.end.i160 %33 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv) #34 %tobool.not.i.i.i.i.i174 = icmp eq i32 %33, 0 br i1 %tobool.not.i.i.i.i.i174, label %_ZN5folly10canNallocxEv.exit.i.i166, label %init.i.i.i.i.i175 @@ -4083,7 +4063,7 @@ init.i.i.i.i.i175: ; preds = %init.check.i.i.i.i. call void @__cxa_guard_release(ptr nonnull @_ZGVZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv) #34 br label %_ZN5folly10canNallocxEv.exit.i.i166 -_ZN5folly10canNallocxEv.exit.i.i166: ; preds = %init.i.i.i.i.i175, %init.check.i.i.i.i.i173, %if.end.i.i164 +_ZN5folly10canNallocxEv.exit.i.i166: ; preds = %init.i.i.i.i.i175, %init.check.i.i.i.i.i173, %if.end.i160 %35 = load i8, ptr @_ZZN5folly6detail14FastStaticBoolIZNS0_23usingJEMallocOrTCMallocEvE11InitializerE3getESt12memory_orderE2rv, align 1, !tbaa !47, !range !29, !noundef !30 %tobool1.i.i.i.not.i.i167 = icmp eq i8 %35, 0 br i1 %tobool1.i.i.i.not.i.i167, label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit179, label %if.end2.i.i168 @@ -4094,8 +4074,8 @@ if.end2.i.i168: ; preds = %_ZN5folly10canNallo %cond.i.i171 = select i1 %tobool.not.i.i170, i64 %and.i162, i64 %call3.i.i169 br label %_ZN5folly5IOBuf17goodExtBufferSizeEm.exit179 -_ZN5folly5IOBuf17goodExtBufferSizeEm.exit179: ; preds = %if.end2.i.i168, %_ZN5folly10canNallocxEv.exit.i.i166, %if.end.i160 - %retval.0.i.i172 = phi i64 [ %cond.i.i171, %if.end2.i.i168 ], [ 0, %if.end.i160 ], [ %and.i162, %_ZN5folly10canNallocxEv.exit.i.i166 ] +_ZN5folly5IOBuf17goodExtBufferSizeEm.exit179: ; preds = %if.end2.i.i168, %_ZN5folly10canNallocxEv.exit.i.i166 + %retval.0.i.i172 = phi i64 [ %cond.i.i171, %if.end2.i.i168 ], [ %and.i162, %_ZN5folly10canNallocxEv.exit.i.i166 ] %call.i = call noalias ptr @malloc(i64 noundef %retval.0.i.i172) #36 %tobool.not.i = icmp eq ptr %call.i, null br i1 %tobool.not.i, label %if.then.i181, label %_ZN5folly13checkedMallocEm.exit diff --git a/bench/folly/optimized/IPAddressV4.cpp.ll b/bench/folly/optimized/IPAddressV4.cpp.ll index f3f43345aa4..9225ff9cfee 100644 --- a/bench/folly/optimized/IPAddressV4.cpp.ll +++ b/bench/folly/optimized/IPAddressV4.cpp.ll @@ -49,7 +49,6 @@ target triple = "x86_64-unknown-linux-gnu" %struct.count_code_points = type { ptr } %class.anon = type { i8, %"class.fmt::v9::basic_string_view", ptr, i64 } %"struct.fmt::v9::detail::find_escape_result" = type { ptr, ptr, i32 } -%"class.folly::BadExpectedAccess.12" = type { %"class.std::exception" } %"class.std::reverse_iterator" = type { %"class.__gnu_cxx::__normal_iterator" } %"class.__gnu_cxx::__normal_iterator" = type { ptr } %"class.fmt::v9::format_arg_store.24" = type { %"struct.fmt::v9::detail::arg_data" } @@ -159,14 +158,6 @@ $_ZN5folly24IPAddressFormatExceptionD0Ev = comdat any $_ZN5folly6detail18ToAppendStrImplAllISt16integer_sequenceImJLm0ELm1ELm2ELm3EEEE4callIJA23_cNS_5RangeIPKcEEA2_cPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvDpRKT_ = comdat any -$_ZNK5folly17BadExpectedAccessIvE4whatEv = comdat any - -$_ZN5folly17BadExpectedAccessIvED0Ev = comdat any - -$_ZN5folly6detail16throw_exception_INS_17BadExpectedAccessIvEEJEEEvDpT0_ = comdat any - -$_ZN5folly15throw_exceptionINS_17BadExpectedAccessIvEEEEvOT_ = comdat any - $_ZN5folly2toINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJA55_cmEEENSt9enable_ifIXaasr12IsSomeStringIT_EE5valueoonesZT0_Li1Entsr3std7is_sameIS9_19__type_pack_elementIXmisPvDpT0_ELi1EEJvSC_EEEE5valueES9_E4typeEDpRKSB_ = comdat any $_ZN5folly11toAppendFitIJA55_cmPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEENSt9enable_ifIXsr12IsSomeStringINSt14remove_pointerI19__type_pack_elementIXmisPDpT_ELi1EEJSD_EEE4typeEEE5valueEvE4typeEDpRKSC_ = comdat any @@ -229,12 +220,6 @@ $_ZTIN5folly24IPAddressFormatExceptionE = comdat any $_ZTVN5folly24IPAddressFormatExceptionE = comdat any -$_ZTSN5folly17BadExpectedAccessIvEE = comdat any - -$_ZTIN5folly17BadExpectedAccessIvEE = comdat any - -$_ZTVN5folly17BadExpectedAccessIvEE = comdat any - $_ZTSN5folly29InvalidAddressFamilyExceptionE = comdat any $_ZTIN5folly29InvalidAddressFamilyExceptionE = comdat any @@ -258,7 +243,6 @@ $_ZZN5folly6detail5Bytes19longestCommonPrefixILm4EEESt4pairISt5arrayIhXT_EEhERKS @_ZGVZZN5folly13usingTCMallocEvENK11InitializerclEvE3ptr = linkonce_odr global i64 0, comdat, align 8 @_ZTISt9bad_alloc = external constant ptr @_ZTVSt9bad_alloc = external unnamed_addr constant { [5 x ptr] }, align 8 -@_ZTISt9exception = external constant ptr @.str.2 = private unnamed_addr constant [1 x i8] zeroinitializer, align 1 @_ZTISt12length_error = external constant ptr @_ZTVSt12length_error = external unnamed_addr constant { [5 x ptr] }, align 8 @@ -293,10 +277,6 @@ $_ZZN5folly6detail5Bytes19longestCommonPrefixILm4EEESt4pairISt5arrayIhXT_EEhERKS @_ZTVN5folly24IPAddressFormatExceptionE = linkonce_odr unnamed_addr constant { [5 x ptr] } { [5 x ptr] [ptr null, ptr @_ZTIN5folly24IPAddressFormatExceptionE, ptr @_ZNSt13runtime_errorD2Ev, ptr @_ZN5folly24IPAddressFormatExceptionD0Ev, ptr @_ZNKSt13runtime_error4whatEv] }, comdat, align 8 @.str.27 = private unnamed_addr constant [23 x i8] c"Invalid IPv4 address '\00", align 1 @.str.28 = private unnamed_addr constant [2 x i8] c"'\00", align 1 -@_ZTSN5folly17BadExpectedAccessIvEE = linkonce_odr constant [31 x i8] c"N5folly17BadExpectedAccessIvEE\00", comdat, align 1 -@_ZTIN5folly17BadExpectedAccessIvEE = linkonce_odr constant { ptr, ptr, ptr } { ptr getelementptr inbounds (ptr, ptr @_ZTVN10__cxxabiv120__si_class_type_infoE, i64 2), ptr @_ZTSN5folly17BadExpectedAccessIvEE, ptr @_ZTISt9exception }, comdat, align 8 -@_ZTVN5folly17BadExpectedAccessIvEE = linkonce_odr unnamed_addr constant { [5 x ptr] } { [5 x ptr] [ptr null, ptr @_ZTIN5folly17BadExpectedAccessIvEE, ptr @_ZNSt9exceptionD2Ev, ptr @_ZN5folly17BadExpectedAccessIvED0Ev, ptr @_ZNK5folly17BadExpectedAccessIvE4whatEv] }, comdat, align 8 -@.str.29 = private unnamed_addr constant [20 x i8] c"bad expected access\00", align 1 @.str.30 = private unnamed_addr constant [55 x i8] c"Invalid IPv4 binary data: length must be 4 bytes, got \00", align 1 @_ZN5folly6detail15to_ascii_powersILm10EmE4dataE = external local_unnamed_addr global %"struct.folly::c_array", align 8 @_ZN5folly6detail14to_ascii_tableILm10ENS_17to_ascii_alphabetILb0EEEE4dataE = external local_unnamed_addr global %"struct.folly::c_array.14", align 2 @@ -2078,7 +2058,7 @@ entry: } ; Function Attrs: mustprogress nounwind uwtable -define range(i64 4294967296, 17179869184) i64 @_ZN5folly11IPAddressV413tryFromStringENS_5RangeIPKcEE(ptr %str.coerce0, ptr %str.coerce1) local_unnamed_addr #10 align 2 personality ptr @__gxx_personality_v0 { +define range(i64 4294967296, 12884901888) i64 @_ZN5folly11IPAddressV413tryFromStringENS_5RangeIPKcEE(ptr %str.coerce0, ptr %str.coerce1) local_unnamed_addr #10 align 2 personality ptr @__gxx_personality_v0 { entry: %__dnew.i.i.i.i = alloca i64, align 8 %inAddr = alloca %struct.in_addr, align 4 @@ -6187,12 +6167,9 @@ entry: store ptr %addr.coerce1, ptr %0, align 8 store i32 0, ptr %this, align 4 %call = tail call i64 @_ZN5folly11IPAddressV413tryFromStringENS_5RangeIPKcEE(ptr %addr.coerce0, ptr %addr.coerce1) #31 - %maybeIp.sroa.6.0.extract.shift = lshr i64 %call, 32 - %maybeIp.sroa.6.0.extract.trunc = trunc nuw nsw i64 %maybeIp.sroa.6.0.extract.shift to i8 - switch i8 %maybeIp.sroa.6.0.extract.trunc, label %if.end.i.i [ - i8 2, label %if.then - i8 1, label %_ZNR5folly8ExpectedINS_11IPAddressV4ENS_20IPAddressFormatErrorEE5valueEv.exit - ], !prof !206 + %maybeIp.sroa.6.0.extract.shift.mask = and i64 %call, 12884901888 + %switch = icmp eq i64 %maybeIp.sroa.6.0.extract.shift.mask, 8589934592 + br i1 %switch, label %if.then, label %_ZNR5folly8ExpectedINS_11IPAddressV4ENS_20IPAddressFormatErrorEE5valueEv.exit, !prof !206 if.then: ; preds = %entry %exception = tail call ptr @__cxa_allocate_exception(i64 16) #31 @@ -6277,10 +6254,6 @@ cleanup.done: ; preds = %cleanup.action, %eh %.pn14 = phi { ptr, i32 } [ %.pn15, %cleanup.action ], [ %5, %ehcleanup ], [ %5, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i ] resume { ptr, i32 } %.pn14 -if.end.i.i: ; preds = %entry - tail call void @_ZN5folly6detail16throw_exception_INS_17BadExpectedAccessIvEEJEEEvDpT0_() #18 - unreachable - _ZNR5folly8ExpectedINS_11IPAddressV4ENS_20IPAddressFormatErrorEE5valueEv.exit: ; preds = %entry %maybeIp.sroa.0.0.extract.trunc = trunc i64 %call to i32 store i32 %maybeIp.sroa.0.0.extract.trunc, ptr %this, align 4, !tbaa !7 @@ -6341,52 +6314,6 @@ _ZN5folly8toAppendINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcEENSt9 ret void } -; Function Attrs: nounwind -declare void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8)) unnamed_addr #13 - -; Function Attrs: mustprogress nounwind uwtable -define linkonce_odr noundef ptr @_ZNK5folly17BadExpectedAccessIvE4whatEv(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #10 comdat align 2 { -entry: - ret ptr @.str.29 -} - -; Function Attrs: inlinehint mustprogress nounwind uwtable -define linkonce_odr void @_ZN5folly17BadExpectedAccessIvED0Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) unnamed_addr #24 comdat align 2 { -entry: - tail call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %this) #31 - tail call void @_ZdlPv(ptr noundef nonnull %this) #33 - ret void -} - -; Function Attrs: cold mustprogress noreturn optsize uwtable -define linkonce_odr void @_ZN5folly6detail16throw_exception_INS_17BadExpectedAccessIvEEJEEEvDpT0_() local_unnamed_addr #17 comdat personality ptr @__gxx_personality_v0 { -entry: - %ref.tmp = alloca %"class.folly::BadExpectedAccess.12", align 8 - call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %ref.tmp) #31 - store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN5folly17BadExpectedAccessIvEE, i64 16), ptr %ref.tmp, align 8, !tbaa !53 - invoke void @_ZN5folly15throw_exceptionINS_17BadExpectedAccessIvEEEEvOT_(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #18 - to label %invoke.cont unwind label %lpad - -invoke.cont: ; preds = %entry - unreachable - -lpad: ; preds = %entry - %0 = landingpad { ptr, i32 } - cleanup - call void @_ZNSt9exceptionD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) #31 - call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ref.tmp) #31 - resume { ptr, i32 } %0 -} - -; Function Attrs: cold mustprogress noreturn optsize uwtable -define linkonce_odr void @_ZN5folly15throw_exceptionINS_17BadExpectedAccessIvEEEEvOT_(ptr noundef nonnull align 8 dereferenceable(8) %ex) local_unnamed_addr #17 comdat personality ptr @__gxx_personality_v0 { -entry: - %exception = tail call ptr @__cxa_allocate_exception(i64 8) #31 - store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN5folly17BadExpectedAccessIvEE, i64 16), ptr %exception, align 8, !tbaa !53 - tail call void @__cxa_throw(ptr nonnull %exception, ptr nonnull @_ZTIN5folly17BadExpectedAccessIvEE, ptr nonnull @_ZNSt9exceptionD2Ev) #34 - unreachable -} - ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable define void @_ZN5folly11IPAddressV4C2E7in_addr(ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) initializes((0, 4)) %this, i32 %src.coerce) unnamed_addr #25 align 2 personality ptr @__gxx_personality_v0 { entry: @@ -6486,7 +6413,7 @@ unreachable: ; preds = %invoke.cont6 } ; Function Attrs: mustprogress nounwind uwtable -define range(i64 4294967296, 17179869184) i64 @_ZN5folly11IPAddressV413tryFromBinaryENS_5RangeIPKhEE(ptr %bytes.coerce0, ptr %bytes.coerce1) local_unnamed_addr #10 align 2 personality ptr @__gxx_personality_v0 { +define range(i64 4294967296, 12884901888) i64 @_ZN5folly11IPAddressV413tryFromBinaryENS_5RangeIPKhEE(ptr %bytes.coerce0, ptr %bytes.coerce1) local_unnamed_addr #10 align 2 personality ptr @__gxx_personality_v0 { entry: %addr = alloca %"class.folly::IPAddressV4", align 4 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %addr) #31 @@ -9404,7 +9331,7 @@ attributes #38 = { builtin allocsize(0) } !203 = distinct !{!203, !121} !204 = distinct !{!204, !121} !205 = distinct !{!205, !121} -!206 = !{!"branch_weights", i32 1, i32 4002001, i32 4002000} +!206 = !{!"branch_weights", i32 4002001, i32 4002001} !207 = !{!208} !208 = distinct !{!208, !209, !"_ZN5folly2toINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJA23_cNS_5RangeIPKcEEA2_cEEENSt9enable_ifIXaasr12IsSomeStringIT_EE5valueoonesZT0_Li1Entsr3std7is_sameISE_19__type_pack_elementIXmisPvDpT0_ELi1EEJvSH_EEEE5valueESE_E4typeEDpRKSG_: %agg.result"} !209 = distinct !{!209, !"_ZN5folly2toINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJA23_cNS_5RangeIPKcEEA2_cEEENSt9enable_ifIXaasr12IsSomeStringIT_EE5valueoonesZT0_Li1Entsr3std7is_sameISE_19__type_pack_elementIXmisPvDpT0_ELi1EEJvSH_EEEE5valueESE_E4typeEDpRKSG_"} diff --git a/bench/harfbuzz/optimized/hb-subset.cc.ll b/bench/harfbuzz/optimized/hb-subset.cc.ll index 450ffa75c30..5bad0d72e94 100644 --- a/bench/harfbuzz/optimized/hb-subset.cc.ll +++ b/bench/harfbuzz/optimized/hb-subset.cc.ll @@ -44797,9 +44797,9 @@ _ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_triviall %mul.i.i.i = zext i32 %49 to i64 %malloc.i = call ptr @malloc(i64 %mul.i.i.i) %tobool27.not.i.i = icmp eq ptr %malloc.i, null - br i1 %tobool27.not.i.i, label %if.then.i.i76, label %if.end.i.i.i + br i1 %tobool27.not.i.i, label %if.then.i.i76, label %if.end.i -if.end.i.i.i: ; preds = %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i +if.end.i: ; preds = %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i %50 = load ptr, ptr %arrayZ.i.i59, align 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %malloc.i, ptr readonly align 1 %50, i64 %mul.i.i.i, i1 false), !alias.scope !659 %idx.ext.i.i63 = zext nneg i32 %47 to i64 @@ -44808,9 +44808,9 @@ if.end.i.i.i: ; preds = %_ZN11hb_vector_tIjL %52 = icmp eq ptr %51, null br i1 %52, label %if.then.i.i76, label %for.body.i -for.body.i: ; preds = %if.end.i.i.i, %for.inc.i - %size.013.i = phi i32 [ %size.1.i, %for.inc.i ], [ 0, %if.end.i.i.i ] - %__begin2.012.i = phi ptr [ %incdec.ptr.i, %for.inc.i ], [ %malloc.i, %if.end.i.i.i ] +for.body.i: ; preds = %if.end.i, %for.inc.i + %size.013.i = phi i32 [ %size.1.i, %for.inc.i ], [ 0, %if.end.i ] + %__begin2.012.i = phi ptr [ %incdec.ptr.i, %for.inc.i ], [ %malloc.i, %if.end.i ] %53 = load i32, ptr %__begin2.012.i, align 4 %add.i66 = add i32 %53, %mul28 %idxprom.i.i67 = zext i32 %add.i66 to i64 @@ -44886,9 +44886,9 @@ _ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_co %add32 = add i32 %size.1.i, %accumulated_delta.1338 br label %if.then.i.i76 -if.then.i.i76: ; preds = %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i, %lor.rhs.i.i, %if.end.i.i.i - %add32282 = phi i32 [ %add32, %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit ], [ %accumulated_delta.1338, %if.end.i.i.i ], [ %accumulated_delta.1338, %lor.rhs.i.i ], [ %accumulated_delta.1338, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i ] - %agg.tmp30.sroa.8.4275281 = phi ptr [ %malloc.i, %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit ], [ %malloc.i, %if.end.i.i.i ], [ null, %lor.rhs.i.i ], [ null, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i ] +if.then.i.i76: ; preds = %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i, %lor.rhs.i.i, %if.end.i + %add32282 = phi i32 [ %add32, %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit ], [ %accumulated_delta.1338, %if.end.i ], [ %accumulated_delta.1338, %lor.rhs.i.i ], [ %accumulated_delta.1338, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i ] + %agg.tmp30.sroa.8.4275281 = phi ptr [ %malloc.i, %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit ], [ %malloc.i, %if.end.i ], [ null, %lor.rhs.i.i ], [ null, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i ] call void @free(ptr noundef %agg.tmp30.sroa.8.4275281) #23 br label %_ZN11hb_vector_tIjLb0EED2Ev.exit @@ -44907,9 +44907,9 @@ _ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_triviall %mul.i.i.i84 = zext i32 %67 to i64 %malloc.i85 = call ptr @malloc(i64 %mul.i.i.i84) %tobool27.not.i.i86 = icmp eq ptr %malloc.i85, null - br i1 %tobool27.not.i.i86, label %if.then.i.i159, label %if.end.i.i.i95 + br i1 %tobool27.not.i.i86, label %if.then.i.i159, label %if.end.i89 -if.end.i.i.i95: ; preds = %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i83 +if.end.i89: ; preds = %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i83 %68 = load ptr, ptr %arrayZ.i.i90, align 8 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %malloc.i85, ptr readonly align 1 %68, i64 %mul.i.i.i84, i1 false), !alias.scope !665 %idx.ext.i.i100 = zext nneg i32 %65 to i64 @@ -44918,9 +44918,9 @@ if.end.i.i.i95: ; preds = %_ZN11hb_vector_tIjL %70 = icmp eq ptr %69, null br i1 %70, label %if.then.i.i159, label %for.body.i110 -for.body.i110: ; preds = %if.end.i.i.i95, %for.inc.i152 - %size.013.i111 = phi i32 [ %size.1.i153, %for.inc.i152 ], [ 0, %if.end.i.i.i95 ] - %__begin2.012.i112 = phi ptr [ %incdec.ptr.i154, %for.inc.i152 ], [ %malloc.i85, %if.end.i.i.i95 ] +for.body.i110: ; preds = %if.end.i89, %for.inc.i152 + %size.013.i111 = phi i32 [ %size.1.i153, %for.inc.i152 ], [ 0, %if.end.i89 ] + %__begin2.012.i112 = phi ptr [ %incdec.ptr.i154, %for.inc.i152 ], [ %malloc.i85, %if.end.i89 ] %71 = load i32, ptr %__begin2.012.i112, align 4 %add.i113 = add i32 %add29, %71 %idxprom.i.i114 = zext i32 %add.i113 to i64 @@ -44996,9 +44996,9 @@ _ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_co %add35 = add i32 %size.1.i153, %add32283 br label %if.then.i.i159 -if.then.i.i159: ; preds = %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit157, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i83, %lor.rhs.i.i82, %if.end.i.i.i95 - %add35305 = phi i32 [ %add35, %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit157 ], [ %add32283, %if.end.i.i.i95 ], [ %add32283, %lor.rhs.i.i82 ], [ %add32283, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i83 ] - %agg.tmp33.sroa.8.4298304 = phi ptr [ %malloc.i85, %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit157 ], [ %malloc.i85, %if.end.i.i.i95 ], [ null, %lor.rhs.i.i82 ], [ null, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i83 ] +if.then.i.i159: ; preds = %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit157, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i83, %lor.rhs.i.i82, %if.end.i89 + %add35305 = phi i32 [ %add35, %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit157 ], [ %add32283, %if.end.i89 ], [ %add32283, %lor.rhs.i.i82 ], [ %add32283, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i83 ] + %agg.tmp33.sroa.8.4298304 = phi ptr [ %malloc.i85, %_ZN5graph14PairPosFormat229size_of_value_record_childrenERNS_24gsubgpos_graph_context_tERK12hb_hashmap_tIjjLb0EE11hb_vector_tIjLb0EEjR8hb_set_t.exit157 ], [ %malloc.i85, %if.end.i89 ], [ null, %lor.rhs.i.i82 ], [ null, %_ZN11hb_vector_tIjLb0EE14realloc_vectorIjTnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPjj11hb_priorityILj0EE.exit.i.i83 ] call void @free(ptr noundef %agg.tmp33.sroa.8.4298304) #23 br label %_ZN11hb_vector_tIjLb0EED2Ev.exit162 @@ -115534,9 +115534,9 @@ _ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIX %mul.i.i.i100 = zext nneg i32 %44 to i64 %malloc.i101 = tail call ptr @malloc(i64 %mul.i.i.i100) %tobool27.not.i.i102 = icmp eq ptr %malloc.i101, null - br i1 %tobool27.not.i.i102, label %cleanup, label %if.end.i.i.i111 + br i1 %tobool27.not.i.i102, label %cleanup, label %if.end.i105 -if.end.i.i.i111: ; preds = %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 +if.end.i105: ; preds = %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %malloc.i101, ptr readonly align 1 %out_layers.sroa.20.2.ph, i64 %mul.i.i.i100, i1 false), !alias.scope !1850 br label %cleanup @@ -115653,18 +115653,18 @@ _ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIX %mul.i.i.i164 = zext nneg i32 %58 to i64 %malloc.i165 = tail call ptr @malloc(i64 %mul.i.i.i164) %tobool27.not.i.i166 = icmp eq ptr %malloc.i165, null - br i1 %tobool27.not.i.i166, label %cleanup, label %if.end.i.i.i175 + br i1 %tobool27.not.i.i166, label %cleanup, label %if.end.i169 -if.end.i.i.i175: ; preds = %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 +if.end.i169: ; preds = %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %malloc.i165, ptr readonly align 1 %out_layers.sroa.20.2.ph, i64 %mul.i.i.i164, i1 false), !alias.scope !1855 br label %cleanup -cleanup: ; preds = %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163, %if.end.i.i.i175, %for.end, %if.end.i.i, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99, %if.end.i.i.i111, %if.then30 - %.sink = phi i8 [ 0, %if.then30 ], [ 0, %if.end.i.i.i111 ], [ 0, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 ], [ 1, %if.end.i.i ], [ 1, %for.end ], [ 1, %if.end.i.i.i175 ], [ 1, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 ] - %agg.tmp45.sroa.0.1.sink = phi i32 [ 0, %if.then30 ], [ %out_layers.sroa.7.1.ph, %if.end.i.i.i111 ], [ -1, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 ], [ 0, %if.end.i.i ], [ 0, %for.end ], [ %out_layers.sroa.7.1.ph, %if.end.i.i.i175 ], [ -1, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 ] - %agg.tmp45.sroa.7.0.sink = phi i32 [ 0, %if.then30 ], [ %out_layers.sroa.7.1.ph, %if.end.i.i.i111 ], [ 0, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 ], [ 0, %if.end.i.i ], [ 0, %for.end ], [ %out_layers.sroa.7.1.ph, %if.end.i.i.i175 ], [ 0, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 ] - %agg.tmp45.sroa.10.1.sink = phi ptr [ null, %if.then30 ], [ %malloc.i101, %if.end.i.i.i111 ], [ null, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 ], [ null, %if.end.i.i ], [ null, %for.end ], [ %malloc.i165, %if.end.i.i.i175 ], [ null, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 ] - %out_layers.sroa.20.2307 = phi ptr [ %out_layers.sroa.20.2.ph, %if.then30 ], [ %out_layers.sroa.20.2.ph, %if.end.i.i.i111 ], [ %out_layers.sroa.20.2.ph, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 ], [ null, %if.end.i.i ], [ %out_layers.sroa.20.2.ph, %for.end ], [ %out_layers.sroa.20.2.ph, %if.end.i.i.i175 ], [ %out_layers.sroa.20.2.ph, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 ] +cleanup: ; preds = %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163, %if.end.i169, %for.end, %if.end.i.i, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99, %if.end.i105, %if.then30 + %.sink = phi i8 [ 0, %if.then30 ], [ 0, %if.end.i105 ], [ 0, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 ], [ 1, %if.end.i.i ], [ 1, %for.end ], [ 1, %if.end.i169 ], [ 1, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 ] + %agg.tmp45.sroa.0.1.sink = phi i32 [ 0, %if.then30 ], [ %out_layers.sroa.7.1.ph, %if.end.i105 ], [ -1, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 ], [ 0, %if.end.i.i ], [ 0, %for.end ], [ %out_layers.sroa.7.1.ph, %if.end.i169 ], [ -1, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 ] + %agg.tmp45.sroa.7.0.sink = phi i32 [ 0, %if.then30 ], [ %out_layers.sroa.7.1.ph, %if.end.i105 ], [ 0, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 ], [ 0, %if.end.i.i ], [ 0, %for.end ], [ %out_layers.sroa.7.1.ph, %if.end.i169 ], [ 0, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 ] + %agg.tmp45.sroa.10.1.sink = phi ptr [ null, %if.then30 ], [ %malloc.i101, %if.end.i105 ], [ null, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 ], [ null, %if.end.i.i ], [ null, %for.end ], [ %malloc.i165, %if.end.i169 ], [ null, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 ] + %out_layers.sroa.20.2307 = phi ptr [ %out_layers.sroa.20.2.ph, %if.then30 ], [ %out_layers.sroa.20.2.ph, %if.end.i105 ], [ %out_layers.sroa.20.2.ph, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i99 ], [ null, %if.end.i.i ], [ %out_layers.sroa.20.2.ph, %for.end ], [ %out_layers.sroa.20.2.ph, %if.end.i169 ], [ %out_layers.sroa.20.2.ph, %_ZN11hb_vector_tIN2OT11LayerRecordELb0EE14realloc_vectorIS1_TnPN12hb_enable_ifIXsr3std28is_trivially_copy_assignableIT_EE5valueEvE4typeELPv0EEEPS1_j11hb_priorityILj0EE.exit.i.i163 ] store i8 %.sink, ptr %agg.result, align 8 %second.i178 = getelementptr inbounds nuw i8, ptr %agg.result, i64 8 %length.i.i179 = getelementptr inbounds nuw i8, ptr %agg.result, i64 12 diff --git a/bench/html5ever-rs/optimized/19ci5iy6gkdi8zuj.ll b/bench/html5ever-rs/optimized/19ci5iy6gkdi8zuj.ll index e4da56e0b1e..8c4c7b256f3 100644 --- a/bench/html5ever-rs/optimized/19ci5iy6gkdi8zuj.ll +++ b/bench/html5ever-rs/optimized/19ci5iy6gkdi8zuj.ll @@ -38,7 +38,7 @@ define hidden void @"_ZN4core3ptr100drop_in_place$LT$core..option..Option$LT$ten %3 = icmp eq i64 %2, 0 br i1 %3, label %"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671.exit", label %4 -"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671.exit": ; preds = %.sink.split.i.i, %15, %4, %1 +"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671.exit": ; preds = %.sink.split.i.i, %14, %4, %1 ret void 4: ; preds = %1 @@ -54,31 +54,29 @@ define hidden void @"_ZN4core3ptr100drop_in_place$LT$core..option..Option$LT$ten %10 = inttoptr i64 %9 to ptr %11 = and i64 %6, 1 %.not.i.i.i = icmp eq i64 %11, 0 - br i1 %.not.i.i.i, label %12, label %15 + br i1 %.not.i.i.i, label %12, label %14 12: ; preds = %8 %13 = getelementptr inbounds nuw i8, ptr %0, i64 20 %.03.i.i.i = load i32, ptr %13, align 4, !alias.scope !13, !noalias !14, !noundef !4 - %14 = icmp ne i64 %9, 0 - tail call void @llvm.assume(i1 %14) br label %.sink.split.i.i -15: ; preds = %8 - %16 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %.03.i8.i.i = load i32, ptr %16, align 4, !noalias !17, !noundef !4 - %17 = load i64, ptr %10, align 8, !noalias !13, !noundef !4 - %18 = add i64 %17, -1 - store i64 %18, ptr %10, align 8, !noalias !13 - %19 = icmp eq i64 %17, 1 - br i1 %19, label %.sink.split.i.i, label %"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671.exit" - -.sink.split.i.i: ; preds = %15, %12 - %.03.i8.sink.i.i = phi i32 [ %.03.i.i.i, %12 ], [ %.03.i8.i.i, %15 ] - %20 = zext i32 %.03.i8.sink.i.i to i64 - %21 = add nuw nsw i64 %20, 15 - %22 = and i64 %21, 8589934576 - %23 = add nuw nsw i64 %22, 16 - tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %23, i64 noundef 8) #17, !noalias !13 +14: ; preds = %8 + %15 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %.03.i8.i.i = load i32, ptr %15, align 4, !noalias !17, !noundef !4 + %16 = load i64, ptr %10, align 8, !noalias !13, !noundef !4 + %17 = add i64 %16, -1 + store i64 %17, ptr %10, align 8, !noalias !13 + %18 = icmp eq i64 %16, 1 + br i1 %18, label %.sink.split.i.i, label %"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671.exit" + +.sink.split.i.i: ; preds = %14, %12 + %.03.i8.sink.i.i = phi i32 [ %.03.i.i.i, %12 ], [ %.03.i8.i.i, %14 ] + %19 = zext i32 %.03.i8.sink.i.i to i64 + %20 = add nuw nsw i64 %19, 15 + %21 = and i64 %20, 8589934576 + %22 = add nuw nsw i64 %21, 16 + tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %22, i64 noundef 8) #17, !noalias !13 br label %"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671.exit" } @@ -595,34 +593,32 @@ define hidden void @"_ZN4core3ptr54drop_in_place$LT$markup5ever..interface..Attr %11 = inttoptr i64 %10 to ptr %12 = and i64 %7, 1 %.not.i.i.i = icmp eq i64 %12, 0 - br i1 %.not.i.i.i, label %13, label %16 + br i1 %.not.i.i.i, label %13, label %15 13: ; preds = %9 %14 = getelementptr inbounds nuw i8, ptr %0, i64 36 %.03.i.i.i = load i32, ptr %14, align 4, !alias.scope !178, !noalias !179, !noundef !4 - %15 = icmp ne i64 %10, 0 - tail call void @llvm.assume(i1 %15) br label %.sink.split.i.i -16: ; preds = %9 - %17 = getelementptr inbounds nuw i8, ptr %11, i64 8 - %.03.i8.i.i = load i32, ptr %17, align 4, !noalias !182, !noundef !4 - %18 = load i64, ptr %11, align 8, !noalias !178, !noundef !4 - %19 = add i64 %18, -1 - store i64 %19, ptr %11, align 8, !noalias !178 - %20 = icmp eq i64 %18, 1 - br i1 %20, label %.sink.split.i.i, label %"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671.exit" - -.sink.split.i.i: ; preds = %16, %13 - %.03.i8.sink.i.i = phi i32 [ %.03.i.i.i, %13 ], [ %.03.i8.i.i, %16 ] - %21 = zext i32 %.03.i8.sink.i.i to i64 - %22 = add nuw nsw i64 %21, 15 - %23 = and i64 %22, 8589934576 - %24 = add nuw nsw i64 %23, 16 - tail call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %24, i64 noundef 8) #17, !noalias !178 +15: ; preds = %9 + %16 = getelementptr inbounds nuw i8, ptr %11, i64 8 + %.03.i8.i.i = load i32, ptr %16, align 4, !noalias !182, !noundef !4 + %17 = load i64, ptr %11, align 8, !noalias !178, !noundef !4 + %18 = add i64 %17, -1 + store i64 %18, ptr %11, align 8, !noalias !178 + %19 = icmp eq i64 %17, 1 + br i1 %19, label %.sink.split.i.i, label %"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671.exit" + +.sink.split.i.i: ; preds = %15, %13 + %.03.i8.sink.i.i = phi i32 [ %.03.i.i.i, %13 ], [ %.03.i8.i.i, %15 ] + %20 = zext i32 %.03.i8.sink.i.i to i64 + %21 = add nuw nsw i64 %20, 15 + %22 = and i64 %21, 8589934576 + %23 = add nuw nsw i64 %22, 16 + tail call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %23, i64 noundef 8) #17, !noalias !178 br label %"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671.exit" -"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671.exit": ; preds = %5, %16, %.sink.split.i.i +"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671.exit": ; preds = %5, %15, %.sink.split.i.i ret void } @@ -644,7 +640,7 @@ define hidden void @"_ZN4core3ptr64drop_in_place$LT$$u5b$markup5ever..interface. cleanup %7 = getelementptr inbounds nuw i8, ptr %4, i64 24 tail call void @"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$17h53f0d835b390e662E.llvm.5870598909725602671"(ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %7) #18 - br label %29 + br label %28 8: ; preds = %.lr.ph %9 = getelementptr inbounds nuw i8, ptr %4, i64 24 @@ -659,56 +655,54 @@ define hidden void @"_ZN4core3ptr64drop_in_place$LT$$u5b$markup5ever..interface. %14 = inttoptr i64 %13 to ptr %15 = and i64 %10, 1 %.not.i.i.i.i = icmp eq i64 %15, 0 - br i1 %.not.i.i.i.i, label %16, label %19 + br i1 %.not.i.i.i.i, label %16, label %18 16: ; preds = %12 %17 = getelementptr inbounds nuw i8, ptr %4, i64 36 %.03.i.i.i.i = load i32, ptr %17, align 4, !alias.scope !192, !noalias !193, !noundef !4 - %18 = icmp ne i64 %13, 0 - tail call void @llvm.assume(i1 %18) br label %.sink.split.i.i.i -19: ; preds = %12 - %20 = getelementptr inbounds nuw i8, ptr %14, i64 8 - %.03.i8.i.i.i = load i32, ptr %20, align 4, !noalias !196, !noundef !4 - %21 = load i64, ptr %14, align 8, !noalias !192, !noundef !4 - %22 = add i64 %21, -1 - store i64 %22, ptr %14, align 8, !noalias !192 - %23 = icmp eq i64 %21, 1 - br i1 %23, label %.sink.split.i.i.i, label %"_ZN4core3ptr54drop_in_place$LT$markup5ever..interface..Attribute$GT$17hbe5f7200c00cd100E.llvm.5870598909725602671.exit" - -.sink.split.i.i.i: ; preds = %19, %16 - %.03.i8.sink.i.i.i = phi i32 [ %.03.i.i.i.i, %16 ], [ %.03.i8.i.i.i, %19 ] - %24 = zext i32 %.03.i8.sink.i.i.i to i64 - %25 = add nuw nsw i64 %24, 15 - %26 = and i64 %25, 8589934576 - %27 = add nuw nsw i64 %26, 16 - tail call void @__rust_dealloc(ptr noundef nonnull %14, i64 noundef %27, i64 noundef 8) #17, !noalias !192 +18: ; preds = %12 + %19 = getelementptr inbounds nuw i8, ptr %14, i64 8 + %.03.i8.i.i.i = load i32, ptr %19, align 4, !noalias !196, !noundef !4 + %20 = load i64, ptr %14, align 8, !noalias !192, !noundef !4 + %21 = add i64 %20, -1 + store i64 %21, ptr %14, align 8, !noalias !192 + %22 = icmp eq i64 %20, 1 + br i1 %22, label %.sink.split.i.i.i, label %"_ZN4core3ptr54drop_in_place$LT$markup5ever..interface..Attribute$GT$17hbe5f7200c00cd100E.llvm.5870598909725602671.exit" + +.sink.split.i.i.i: ; preds = %18, %16 + %.03.i8.sink.i.i.i = phi i32 [ %.03.i.i.i.i, %16 ], [ %.03.i8.i.i.i, %18 ] + %23 = zext i32 %.03.i8.sink.i.i.i to i64 + %24 = add nuw nsw i64 %23, 15 + %25 = and i64 %24, 8589934576 + %26 = add nuw nsw i64 %25, 16 + tail call void @__rust_dealloc(ptr noundef nonnull %14, i64 noundef %26, i64 noundef 8) #17, !noalias !192 br label %"_ZN4core3ptr54drop_in_place$LT$markup5ever..interface..Attribute$GT$17hbe5f7200c00cd100E.llvm.5870598909725602671.exit" -"_ZN4core3ptr54drop_in_place$LT$markup5ever..interface..Attribute$GT$17hbe5f7200c00cd100E.llvm.5870598909725602671.exit": ; preds = %8, %19, %.sink.split.i.i.i - %28 = icmp eq i64 %5, %1 - br i1 %28, label %._crit_edge, label %.lr.ph +"_ZN4core3ptr54drop_in_place$LT$markup5ever..interface..Attribute$GT$17hbe5f7200c00cd100E.llvm.5870598909725602671.exit": ; preds = %8, %18, %.sink.split.i.i.i + %27 = icmp eq i64 %5, %1 + br i1 %27, label %._crit_edge, label %.lr.ph ._crit_edge: ; preds = %"_ZN4core3ptr54drop_in_place$LT$markup5ever..interface..Attribute$GT$17hbe5f7200c00cd100E.llvm.5870598909725602671.exit", %2 ret void -29: ; preds = %31, %.body - %.1 = phi i64 [ %5, %.body ], [ %33, %31 ] - %30 = icmp eq i64 %.1, %1 - br i1 %30, label %34, label %31 +28: ; preds = %30, %.body + %.1 = phi i64 [ %5, %.body ], [ %32, %30 ] + %29 = icmp eq i64 %.1, %1 + br i1 %29, label %33, label %30 -31: ; preds = %29 - %32 = getelementptr inbounds [0 x { { i64, i64, i64 }, { i64, { { [2 x i32] } }, {}, {} } }], ptr %0, i64 0, i64 %.1 - %33 = add i64 %.1, 1 - invoke void @"_ZN4core3ptr54drop_in_place$LT$markup5ever..interface..Attribute$GT$17hbe5f7200c00cd100E.llvm.5870598909725602671"(ptr noalias noundef nonnull align 8 dereferenceable(40) %32) #18 - to label %29 unwind label %35 +30: ; preds = %28 + %31 = getelementptr inbounds [0 x { { i64, i64, i64 }, { i64, { { [2 x i32] } }, {}, {} } }], ptr %0, i64 0, i64 %.1 + %32 = add i64 %.1, 1 + invoke void @"_ZN4core3ptr54drop_in_place$LT$markup5ever..interface..Attribute$GT$17hbe5f7200c00cd100E.llvm.5870598909725602671"(ptr noalias noundef nonnull align 8 dereferenceable(40) %31) #18 + to label %28 unwind label %34 -34: ; preds = %29 +33: ; preds = %28 resume { ptr, i32 } %6 -35: ; preds = %31 - %36 = landingpad { ptr, i32 } +34: ; preds = %30 + %35 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #19 unreachable @@ -734,34 +728,32 @@ define hidden void @"_ZN4core3ptr69drop_in_place$LT$html5ever..tokenizer..char_r %10 = inttoptr i64 %9 to ptr %11 = and i64 %6, 1 %.not.i.i.i.i = icmp eq i64 %11, 0 - br i1 %.not.i.i.i.i, label %12, label %15 + br i1 %.not.i.i.i.i, label %12, label %14 12: ; preds = %8 %13 = getelementptr inbounds nuw i8, ptr %0, i64 20 %.03.i.i.i.i = load i32, ptr %13, align 4, !alias.scope !206, !noalias !207, !noundef !4 - %14 = icmp ne i64 %9, 0 - tail call void @llvm.assume(i1 %14) br label %.sink.split.i.i.i -15: ; preds = %8 - %16 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %.03.i8.i.i.i = load i32, ptr %16, align 4, !noalias !210, !noundef !4 - %17 = load i64, ptr %10, align 8, !noalias !206, !noundef !4 - %18 = add i64 %17, -1 - store i64 %18, ptr %10, align 8, !noalias !206 - %19 = icmp eq i64 %17, 1 - br i1 %19, label %.sink.split.i.i.i, label %"_ZN4core3ptr100drop_in_place$LT$core..option..Option$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$$GT$17h23157c58c58c6d9fE.llvm.5870598909725602671.exit" - -.sink.split.i.i.i: ; preds = %15, %12 - %.03.i8.sink.i.i.i = phi i32 [ %.03.i.i.i.i, %12 ], [ %.03.i8.i.i.i, %15 ] - %20 = zext i32 %.03.i8.sink.i.i.i to i64 - %21 = add nuw nsw i64 %20, 15 - %22 = and i64 %21, 8589934576 - %23 = add nuw nsw i64 %22, 16 - tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %23, i64 noundef 8) #17, !noalias !206 +14: ; preds = %8 + %15 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %.03.i8.i.i.i = load i32, ptr %15, align 4, !noalias !210, !noundef !4 + %16 = load i64, ptr %10, align 8, !noalias !206, !noundef !4 + %17 = add i64 %16, -1 + store i64 %17, ptr %10, align 8, !noalias !206 + %18 = icmp eq i64 %16, 1 + br i1 %18, label %.sink.split.i.i.i, label %"_ZN4core3ptr100drop_in_place$LT$core..option..Option$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$$GT$17h23157c58c58c6d9fE.llvm.5870598909725602671.exit" + +.sink.split.i.i.i: ; preds = %14, %12 + %.03.i8.sink.i.i.i = phi i32 [ %.03.i.i.i.i, %12 ], [ %.03.i8.i.i.i, %14 ] + %19 = zext i32 %.03.i8.sink.i.i.i to i64 + %20 = add nuw nsw i64 %19, 15 + %21 = and i64 %20, 8589934576 + %22 = add nuw nsw i64 %21, 16 + tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %22, i64 noundef 8) #17, !noalias !206 br label %"_ZN4core3ptr100drop_in_place$LT$core..option..Option$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$$GT$17h23157c58c58c6d9fE.llvm.5870598909725602671.exit" -"_ZN4core3ptr100drop_in_place$LT$core..option..Option$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$$GT$17h23157c58c58c6d9fE.llvm.5870598909725602671.exit": ; preds = %1, %4, %15, %.sink.split.i.i.i +"_ZN4core3ptr100drop_in_place$LT$core..option..Option$LT$tendril..tendril..Tendril$LT$tendril..fmt..UTF8$GT$$GT$$GT$17h23157c58c58c6d9fE.llvm.5870598909725602671.exit": ; preds = %1, %4, %14, %.sink.split.i.i.i ret void } @@ -777,34 +769,32 @@ define hidden void @"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$LT %6 = inttoptr i64 %5 to ptr %7 = and i64 %2, 1 %.not.i.i = icmp eq i64 %7, 0 - br i1 %.not.i.i, label %8, label %11 + br i1 %.not.i.i, label %8, label %10 8: ; preds = %4 %9 = getelementptr inbounds nuw i8, ptr %0, i64 12 %.03.i.i = load i32, ptr %9, align 4, !alias.scope !211, !noalias !214, !noundef !4 - %10 = icmp ne i64 %5, 0 - tail call void @llvm.assume(i1 %10) br label %.sink.split.i -11: ; preds = %4 - %12 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.03.i8.i = load i32, ptr %12, align 4, !noalias !217, !noundef !4 - %13 = load i64, ptr %6, align 8, !noalias !211, !noundef !4 - %14 = add i64 %13, -1 - store i64 %14, ptr %6, align 8, !noalias !211 - %15 = icmp eq i64 %13, 1 - br i1 %15, label %.sink.split.i, label %"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he441cd10ab3a275aE.llvm.5870598909725602671.exit" - -.sink.split.i: ; preds = %11, %8 - %.03.i8.sink.i = phi i32 [ %.03.i.i, %8 ], [ %.03.i8.i, %11 ] - %16 = zext i32 %.03.i8.sink.i to i64 - %17 = add nuw nsw i64 %16, 15 - %18 = and i64 %17, 8589934576 - %19 = add nuw nsw i64 %18, 16 - tail call void @__rust_dealloc(ptr noundef nonnull %6, i64 noundef %19, i64 noundef 8) #17, !noalias !211 +10: ; preds = %4 + %11 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %.03.i8.i = load i32, ptr %11, align 4, !noalias !217, !noundef !4 + %12 = load i64, ptr %6, align 8, !noalias !211, !noundef !4 + %13 = add i64 %12, -1 + store i64 %13, ptr %6, align 8, !noalias !211 + %14 = icmp eq i64 %12, 1 + br i1 %14, label %.sink.split.i, label %"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he441cd10ab3a275aE.llvm.5870598909725602671.exit" + +.sink.split.i: ; preds = %10, %8 + %.03.i8.sink.i = phi i32 [ %.03.i.i, %8 ], [ %.03.i8.i, %10 ] + %15 = zext i32 %.03.i8.sink.i to i64 + %16 = add nuw nsw i64 %15, 15 + %17 = and i64 %16, 8589934576 + %18 = add nuw nsw i64 %17, 16 + tail call void @__rust_dealloc(ptr noundef nonnull %6, i64 noundef %18, i64 noundef 8) #17, !noalias !211 br label %"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he441cd10ab3a275aE.llvm.5870598909725602671.exit" -"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he441cd10ab3a275aE.llvm.5870598909725602671.exit": ; preds = %1, %11, %.sink.split.i +"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he441cd10ab3a275aE.llvm.5870598909725602671.exit": ; preds = %1, %10, %.sink.split.i ret void } @@ -1345,41 +1335,39 @@ define hidden void @"_ZN80_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20 define hidden void @"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he441cd10ab3a275aE.llvm.5870598909725602671"(ptr noalias nocapture noundef readonly align 8 dereferenceable(16) %0) unnamed_addr #4 personality ptr @rust_eh_personality { %2 = load i64, ptr %0, align 8, !range !12, !noundef !4 %3 = icmp ult i64 %2, 16 - br i1 %3, label %20, label %4 + br i1 %3, label %19, label %4 4: ; preds = %1 %5 = and i64 %2, -2 %6 = inttoptr i64 %5 to ptr %7 = and i64 %2, 1 %.not.i = icmp eq i64 %7, 0 - br i1 %.not.i, label %8, label %11 + br i1 %.not.i, label %8, label %10 8: ; preds = %4 %9 = getelementptr inbounds nuw i8, ptr %0, i64 12 %.03.i = load i32, ptr %9, align 4, !noalias !305, !noundef !4 - %10 = icmp ne i64 %5, 0 - tail call void @llvm.assume(i1 %10) br label %.sink.split -11: ; preds = %4 - %12 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.03.i8 = load i32, ptr %12, align 4, !noalias !305, !noundef !4 - %13 = load i64, ptr %6, align 8, !noundef !4 - %14 = add i64 %13, -1 - store i64 %14, ptr %6, align 8 - %15 = icmp eq i64 %13, 1 - br i1 %15, label %.sink.split, label %20 - -.sink.split: ; preds = %11, %8 - %.03.i8.sink = phi i32 [ %.03.i, %8 ], [ %.03.i8, %11 ] - %16 = zext i32 %.03.i8.sink to i64 - %17 = add nuw nsw i64 %16, 15 - %18 = and i64 %17, 8589934576 - %19 = add nuw nsw i64 %18, 16 - tail call void @__rust_dealloc(ptr noundef nonnull %6, i64 noundef %19, i64 noundef 8) #17, !noalias !4 - br label %20 - -20: ; preds = %.sink.split, %11, %1 +10: ; preds = %4 + %11 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %.03.i8 = load i32, ptr %11, align 4, !noalias !305, !noundef !4 + %12 = load i64, ptr %6, align 8, !noundef !4 + %13 = add i64 %12, -1 + store i64 %13, ptr %6, align 8 + %14 = icmp eq i64 %12, 1 + br i1 %14, label %.sink.split, label %19 + +.sink.split: ; preds = %10, %8 + %.03.i8.sink = phi i32 [ %.03.i, %8 ], [ %.03.i8, %10 ] + %15 = zext i32 %.03.i8.sink to i64 + %16 = add nuw nsw i64 %15, 15 + %17 = and i64 %16, 8589934576 + %18 = add nuw nsw i64 %17, 16 + tail call void @__rust_dealloc(ptr noundef nonnull %6, i64 noundef %18, i64 noundef 8) #17, !noalias !4 + br label %19 + +19: ; preds = %.sink.split, %10, %1 ret void } diff --git a/bench/html5ever-rs/optimized/1wenjtbhc61q6deg.ll b/bench/html5ever-rs/optimized/1wenjtbhc61q6deg.ll index 24aa5d0c492..e00129b2d31 100644 --- a/bench/html5ever-rs/optimized/1wenjtbhc61q6deg.ll +++ b/bench/html5ever-rs/optimized/1wenjtbhc61q6deg.ll @@ -464,7 +464,7 @@ define internal void @"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$ %10 = inttoptr i64 %9 to ptr %11 = and i64 %6, 1 %.not.i.i = icmp eq i64 %11, 0 - br i1 %.not.i.i, label %12, label %29 + br i1 %.not.i.i, label %12, label %28 12: ; preds = %8 %13 = getelementptr inbounds nuw i8, ptr %0, i64 12 @@ -474,80 +474,78 @@ define internal void @"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..Tendril$ %15 = add nuw nsw i64 %14, 15 %16 = lshr i64 %15, 4 %17 = add nuw nsw i64 %16, 1 - %18 = icmp ne i64 %9, 0 - tail call void @llvm.assume(i1 %18) store i64 %17, ptr %5, align 8, !noalias !76 - %19 = getelementptr inbounds nuw i8, ptr %5, i64 8 - store ptr %10, ptr %19, align 8, !noalias !76 - %20 = getelementptr inbounds nuw i8, ptr %5, i64 16 - store i64 1, ptr %20, align 8, !noalias !76 + %18 = getelementptr inbounds nuw i8, ptr %5, i64 8 + store ptr %10, ptr %18, align 8, !noalias !76 + %19 = getelementptr inbounds nuw i8, ptr %5, i64 16 + store i64 1, ptr %19, align 8, !noalias !76 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !82 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h69007db3a43b7361E.llvm.10022686776672290337"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %5), !noalias !76 - %21 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %22 = load i64, ptr %21, align 8, !range !51, !noalias !82, !noundef !4 - %.not.i.i.i.i.i = icmp eq i64 %22, 0 - br i1 %.not.i.i.i.i.i, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit.i", label %23 - -23: ; preds = %12 - %24 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %25 = load i64, ptr %24, align 8, !noalias !82, !noundef !4 - %26 = icmp eq i64 %25, 0 - br i1 %26, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit.i", label %27 - -27: ; preds = %23 - %28 = load ptr, ptr %4, align 8, !noalias !82, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %28, i64 noundef %25, i64 noundef %22) #21, !noalias !76 + %20 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %21 = load i64, ptr %20, align 8, !range !51, !noalias !82, !noundef !4 + %.not.i.i.i.i.i = icmp eq i64 %21, 0 + br i1 %.not.i.i.i.i.i, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit.i", label %22 + +22: ; preds = %12 + %23 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %24 = load i64, ptr %23, align 8, !noalias !82, !noundef !4 + %25 = icmp eq i64 %24, 0 + br i1 %25, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit.i", label %26 + +26: ; preds = %22 + %27 = load ptr, ptr %4, align 8, !noalias !82, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %27, i64 noundef %24, i64 noundef %21) #21, !noalias !76 br label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit.i" -"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit.i": ; preds = %27, %23, %12 +"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit.i": ; preds = %26, %22, %12 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !82 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !76 br label %"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17haee683c1dfe44270E.exit" -29: ; preds = %8 - %30 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %.03.i12.i = load i32, ptr %30, align 4, !noalias !89, !noundef !4 - %31 = load i64, ptr %10, align 8, !noalias !76, !noundef !4 - %32 = add i64 %31, -1 - store i64 %32, ptr %10, align 8, !noalias !76 - %33 = icmp eq i64 %31, 1 - br i1 %33, label %34, label %"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17haee683c1dfe44270E.exit" +28: ; preds = %8 + %29 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %.03.i12.i = load i32, ptr %29, align 4, !noalias !89, !noundef !4 + %30 = load i64, ptr %10, align 8, !noalias !76, !noundef !4 + %31 = add i64 %30, -1 + store i64 %31, ptr %10, align 8, !noalias !76 + %32 = icmp eq i64 %30, 1 + br i1 %32, label %33, label %"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17haee683c1dfe44270E.exit" -34: ; preds = %29 +33: ; preds = %28 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !76 - %35 = zext i32 %.03.i12.i to i64 - %36 = add nuw nsw i64 %35, 15 - %37 = lshr i64 %36, 4 - %38 = add nuw nsw i64 %37, 1 - store i64 %38, ptr %3, align 8, !noalias !76 - %39 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr %10, ptr %39, align 8, !noalias !76 - %40 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i64 1, ptr %40, align 8, !noalias !76 + %34 = zext i32 %.03.i12.i to i64 + %35 = add nuw nsw i64 %34, 15 + %36 = lshr i64 %35, 4 + %37 = add nuw nsw i64 %36, 1 + store i64 %37, ptr %3, align 8, !noalias !76 + %38 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %10, ptr %38, align 8, !noalias !76 + %39 = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i64 1, ptr %39, align 8, !noalias !76 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !90 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h69007db3a43b7361E.llvm.10022686776672290337"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3), !noalias !76 - %41 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %42 = load i64, ptr %41, align 8, !range !51, !noalias !90, !noundef !4 - %.not.i.i.i.i4.i = icmp eq i64 %42, 0 - br i1 %.not.i.i.i.i4.i, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit5.i", label %43 - -43: ; preds = %34 - %44 = getelementptr inbounds nuw i8, ptr %2, i64 16 - %45 = load i64, ptr %44, align 8, !noalias !90, !noundef !4 - %46 = icmp eq i64 %45, 0 - br i1 %46, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit5.i", label %47 - -47: ; preds = %43 - %48 = load ptr, ptr %2, align 8, !noalias !90, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %48, i64 noundef %45, i64 noundef %42) #21, !noalias !76 + %40 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %41 = load i64, ptr %40, align 8, !range !51, !noalias !90, !noundef !4 + %.not.i.i.i.i4.i = icmp eq i64 %41, 0 + br i1 %.not.i.i.i.i4.i, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit5.i", label %42 + +42: ; preds = %33 + %43 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %44 = load i64, ptr %43, align 8, !noalias !90, !noundef !4 + %45 = icmp eq i64 %44, 0 + br i1 %45, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit5.i", label %46 + +46: ; preds = %42 + %47 = load ptr, ptr %2, align 8, !noalias !90, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %47, i64 noundef %44, i64 noundef %41) #21, !noalias !76 br label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit5.i" -"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit5.i": ; preds = %47, %43, %34 +"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit5.i": ; preds = %46, %42, %33 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !90 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !76 br label %"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17haee683c1dfe44270E.exit" -"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17haee683c1dfe44270E.exit": ; preds = %1, %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit.i", %29, %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit5.i" +"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17haee683c1dfe44270E.exit": ; preds = %1, %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit.i", %28, %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17h607c9b59279e7bffE.exit5.i" ret void } diff --git a/bench/html5ever-rs/optimized/2k27uywn6e9ruua6.ll b/bench/html5ever-rs/optimized/2k27uywn6e9ruua6.ll index 74a73a8bb36..3fe94f26fec 100644 --- a/bench/html5ever-rs/optimized/2k27uywn6e9ruua6.ll +++ b/bench/html5ever-rs/optimized/2k27uywn6e9ruua6.ll @@ -28,7 +28,7 @@ define internal fastcc void @"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..T %8 = inttoptr i64 %7 to ptr %9 = and i64 %.0.val, 1 %.not.i.i = icmp eq i64 %9, 0 - br i1 %.not.i.i, label %10, label %24 + br i1 %.not.i.i, label %10, label %23 10: ; preds = %6 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !4 @@ -36,72 +36,70 @@ define internal fastcc void @"_ZN4core3ptr72drop_in_place$LT$tendril..tendril..T %12 = add nuw nsw i64 %11, 15 %13 = lshr i64 %12, 4 %14 = add nuw nsw i64 %13, 1 - %15 = icmp ne i64 %7, 0 - tail call void @llvm.assume(i1 %15) store i64 %14, ptr %4, align 8, !noalias !4 - %16 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store ptr %8, ptr %16, align 8, !noalias !4 - %17 = getelementptr inbounds nuw i8, ptr %4, i64 16 - store i64 1, ptr %17, align 8, !noalias !4 + %15 = getelementptr inbounds nuw i8, ptr %4, i64 8 + store ptr %8, ptr %15, align 8, !noalias !4 + %16 = getelementptr inbounds nuw i8, ptr %4, i64 16 + store i64 1, ptr %16, align 8, !noalias !4 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !7 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h4c70336cea08fc79E.llvm.15586061709592140432"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %4), !noalias !4 - %18 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %19 = load i64, ptr %18, align 8, !range !14, !noalias !7, !noundef !15 - %.not.i.i.i.i.i = icmp eq i64 %19, 0 - br i1 %.not.i.i.i.i.i, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit.i", label %20 - -20: ; preds = %10 - %21 = load ptr, ptr %3, align 8, !noalias !7, !nonnull !15, !noundef !15 - %22 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %23 = load i64, ptr %22, align 8, !noalias !7, !noundef !15 - call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.15586061709592140432"(ptr noalias noundef nonnull readonly align 1 %17, ptr noundef nonnull %21, i64 noundef %19, i64 noundef %23), !noalias !4 + %17 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %18 = load i64, ptr %17, align 8, !range !14, !noalias !7, !noundef !15 + %.not.i.i.i.i.i = icmp eq i64 %18, 0 + br i1 %.not.i.i.i.i.i, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit.i", label %19 + +19: ; preds = %10 + %20 = load ptr, ptr %3, align 8, !noalias !7, !nonnull !15, !noundef !15 + %21 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %22 = load i64, ptr %21, align 8, !noalias !7, !noundef !15 + call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.15586061709592140432"(ptr noalias noundef nonnull readonly align 1 %16, ptr noundef nonnull %20, i64 noundef %18, i64 noundef %22), !noalias !4 br label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit.i" -"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit.i": ; preds = %20, %10 +"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit.i": ; preds = %19, %10 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !7 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !4 br label %"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7df8842257138d41E.exit" -24: ; preds = %6 - %25 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %.03.i12.i = load i32, ptr %25, align 4, !noalias !16, !noundef !15 - %26 = load i64, ptr %8, align 8, !noalias !4, !noundef !15 - %27 = add i64 %26, -1 - store i64 %27, ptr %8, align 8, !noalias !4 - %28 = icmp eq i64 %26, 1 - br i1 %28, label %29, label %"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7df8842257138d41E.exit" +23: ; preds = %6 + %24 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %.03.i12.i = load i32, ptr %24, align 4, !noalias !16, !noundef !15 + %25 = load i64, ptr %8, align 8, !noalias !4, !noundef !15 + %26 = add i64 %25, -1 + store i64 %26, ptr %8, align 8, !noalias !4 + %27 = icmp eq i64 %25, 1 + br i1 %27, label %28, label %"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7df8842257138d41E.exit" -29: ; preds = %24 +28: ; preds = %23 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !4 - %30 = zext i32 %.03.i12.i to i64 - %31 = add nuw nsw i64 %30, 15 - %32 = lshr i64 %31, 4 - %33 = add nuw nsw i64 %32, 1 - store i64 %33, ptr %2, align 8, !noalias !4 - %34 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store ptr %8, ptr %34, align 8, !noalias !4 - %35 = getelementptr inbounds nuw i8, ptr %2, i64 16 - store i64 1, ptr %35, align 8, !noalias !4 + %29 = zext i32 %.03.i12.i to i64 + %30 = add nuw nsw i64 %29, 15 + %31 = lshr i64 %30, 4 + %32 = add nuw nsw i64 %31, 1 + store i64 %32, ptr %2, align 8, !noalias !4 + %33 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store ptr %8, ptr %33, align 8, !noalias !4 + %34 = getelementptr inbounds nuw i8, ptr %2, i64 16 + store i64 1, ptr %34, align 8, !noalias !4 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1), !noalias !19 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h4c70336cea08fc79E.llvm.15586061709592140432"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %1, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %2), !noalias !4 - %36 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %37 = load i64, ptr %36, align 8, !range !14, !noalias !19, !noundef !15 - %.not.i.i.i.i4.i = icmp eq i64 %37, 0 - br i1 %.not.i.i.i.i4.i, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit5.i", label %38 - -38: ; preds = %29 - %39 = load ptr, ptr %1, align 8, !noalias !19, !nonnull !15, !noundef !15 - %40 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %41 = load i64, ptr %40, align 8, !noalias !19, !noundef !15 - call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.15586061709592140432"(ptr noalias noundef nonnull readonly align 1 %35, ptr noundef nonnull %39, i64 noundef %37, i64 noundef %41), !noalias !4 + %35 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %36 = load i64, ptr %35, align 8, !range !14, !noalias !19, !noundef !15 + %.not.i.i.i.i4.i = icmp eq i64 %36, 0 + br i1 %.not.i.i.i.i4.i, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit5.i", label %37 + +37: ; preds = %28 + %38 = load ptr, ptr %1, align 8, !noalias !19, !nonnull !15, !noundef !15 + %39 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %40 = load i64, ptr %39, align 8, !noalias !19, !noundef !15 + call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.15586061709592140432"(ptr noalias noundef nonnull readonly align 1 %34, ptr noundef nonnull %38, i64 noundef %36, i64 noundef %40), !noalias !4 br label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit5.i" -"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit5.i": ; preds = %38, %29 +"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit5.i": ; preds = %37, %28 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %1), !noalias !19 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !4 br label %"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7df8842257138d41E.exit" -"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7df8842257138d41E.exit": ; preds = %0, %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit.i", %24, %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit5.i" +"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7df8842257138d41E.exit": ; preds = %0, %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit.i", %23, %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.exit5.i" ret void } diff --git a/bench/html5ever-rs/optimized/59jk5zguloiuuwzu.ll b/bench/html5ever-rs/optimized/59jk5zguloiuuwzu.ll index 5896f288332..dde83289eed 100644 --- a/bench/html5ever-rs/optimized/59jk5zguloiuuwzu.ll +++ b/bench/html5ever-rs/optimized/59jk5zguloiuuwzu.ll @@ -89,7 +89,7 @@ define hidden void @"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$10pu 43: ; preds = %30 %44 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - tail call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #13 + tail call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #12 unreachable } @@ -322,7 +322,7 @@ define hidden void @"_ZN5alloc11collections9vec_deque21VecDeque$LT$T$C$A$GT$9pus 44: ; preds = %30 %45 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - tail call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #13 + tail call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #12 unreachable } @@ -439,90 +439,88 @@ define hidden void @"_ZN80_$LT$tendril..tendril..Tendril$LT$F$C$A$GT$$u20$as$u20 %5 = alloca { { i64, ptr }, i64 }, align 8 %6 = load i64, ptr %0, align 8, !range !43, !noundef !4 %7 = icmp ult i64 %6, 16 - br i1 %7, label %32, label %8 + br i1 %7, label %31, label %8 8: ; preds = %1 %9 = and i64 %6, -2 %10 = inttoptr i64 %9 to ptr %11 = and i64 %6, 1 %.not.i = icmp eq i64 %11, 0 - br i1 %.not.i, label %12, label %27 + br i1 %.not.i, label %12, label %26 12: ; preds = %8 %13 = getelementptr inbounds nuw i8, ptr %0, i64 12 %.03.i = load i32, ptr %13, align 4, !noalias !44, !noundef !4 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !47 - %14 = icmp ne i64 %9, 0 - tail call void @llvm.assume(i1 %14) - %15 = zext i32 %.03.i to i64 - %16 = add nuw nsw i64 %15, 15 - %17 = lshr i64 %16, 4 - %18 = add nuw nsw i64 %17, 1 - store i64 %18, ptr %5, align 8, !noalias !47 - %19 = getelementptr inbounds nuw i8, ptr %5, i64 8 - store ptr %10, ptr %19, align 8, !noalias !47 - %20 = getelementptr inbounds nuw i8, ptr %5, i64 16 - store i64 1, ptr %20, align 8, !noalias !47 + %14 = zext i32 %.03.i to i64 + %15 = add nuw nsw i64 %14, 15 + %16 = lshr i64 %15, 4 + %17 = add nuw nsw i64 %16, 1 + store i64 %17, ptr %5, align 8, !noalias !47 + %18 = getelementptr inbounds nuw i8, ptr %5, i64 8 + store ptr %10, ptr %18, align 8, !noalias !47 + %19 = getelementptr inbounds nuw i8, ptr %5, i64 16 + store i64 1, ptr %19, align 8, !noalias !47 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !50 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h4c70336cea08fc79E.llvm.15586061709592140432"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %5), !noalias !47 - %21 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %22 = load i64, ptr %21, align 8, !range !42, !noalias !50, !noundef !4 - %.not.i.i.i.i = icmp eq i64 %22, 0 - br i1 %.not.i.i.i.i, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit", label %23 - -23: ; preds = %12 - %24 = load ptr, ptr %4, align 8, !noalias !50, !nonnull !4, !noundef !4 - %25 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %26 = load i64, ptr %25, align 8, !noalias !50, !noundef !4 - call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.15586061709592140432"(ptr noalias noundef nonnull readonly align 1 %20, ptr noundef nonnull %24, i64 noundef %22, i64 noundef %26), !noalias !47 + %20 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %21 = load i64, ptr %20, align 8, !range !42, !noalias !50, !noundef !4 + %.not.i.i.i.i = icmp eq i64 %21, 0 + br i1 %.not.i.i.i.i, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit", label %22 + +22: ; preds = %12 + %23 = load ptr, ptr %4, align 8, !noalias !50, !nonnull !4, !noundef !4 + %24 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %25 = load i64, ptr %24, align 8, !noalias !50, !noundef !4 + call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.15586061709592140432"(ptr noalias noundef nonnull readonly align 1 %19, ptr noundef nonnull %23, i64 noundef %21, i64 noundef %25), !noalias !47 br label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit" -"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit": ; preds = %12, %23 +"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit": ; preds = %12, %22 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !50 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !47 - br label %32 - -27: ; preds = %8 - %28 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %.03.i10 = load i32, ptr %28, align 4, !noalias !44, !noundef !4 - %29 = load i64, ptr %10, align 8, !noundef !4 - %30 = add i64 %29, -1 - store i64 %30, ptr %10, align 8 - %31 = icmp eq i64 %29, 1 - br i1 %31, label %33, label %32 - -32: ; preds = %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit2", %27, %1, %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit" + br label %31 + +26: ; preds = %8 + %27 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %.03.i10 = load i32, ptr %27, align 4, !noalias !44, !noundef !4 + %28 = load i64, ptr %10, align 8, !noundef !4 + %29 = add i64 %28, -1 + store i64 %29, ptr %10, align 8 + %30 = icmp eq i64 %28, 1 + br i1 %30, label %32, label %31 + +31: ; preds = %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit2", %26, %1, %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit" ret void -33: ; preds = %27 +32: ; preds = %26 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !57 - %34 = zext i32 %.03.i10 to i64 - %35 = add nuw nsw i64 %34, 15 - %36 = lshr i64 %35, 4 - %37 = add nuw nsw i64 %36, 1 - store i64 %37, ptr %3, align 8, !noalias !57 - %38 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store ptr %10, ptr %38, align 8, !noalias !57 - %39 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store i64 1, ptr %39, align 8, !noalias !57 + %33 = zext i32 %.03.i10 to i64 + %34 = add nuw nsw i64 %33, 15 + %35 = lshr i64 %34, 4 + %36 = add nuw nsw i64 %35, 1 + store i64 %36, ptr %3, align 8, !noalias !57 + %37 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store ptr %10, ptr %37, align 8, !noalias !57 + %38 = getelementptr inbounds nuw i8, ptr %3, i64 16 + store i64 1, ptr %38, align 8, !noalias !57 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2), !noalias !60 call void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h4c70336cea08fc79E.llvm.15586061709592140432"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 dereferenceable(24) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3), !noalias !57 - %40 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %41 = load i64, ptr %40, align 8, !range !42, !noalias !60, !noundef !4 - %.not.i.i.i.i1 = icmp eq i64 %41, 0 - br i1 %.not.i.i.i.i1, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit2", label %42 - -42: ; preds = %33 - %43 = load ptr, ptr %2, align 8, !noalias !60, !nonnull !4, !noundef !4 - %44 = getelementptr inbounds nuw i8, ptr %2, i64 16 - %45 = load i64, ptr %44, align 8, !noalias !60, !noundef !4 - call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.15586061709592140432"(ptr noalias noundef nonnull readonly align 1 %39, ptr noundef nonnull %43, i64 noundef %41, i64 noundef %45), !noalias !57 + %39 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %40 = load i64, ptr %39, align 8, !range !42, !noalias !60, !noundef !4 + %.not.i.i.i.i1 = icmp eq i64 %40, 0 + br i1 %.not.i.i.i.i1, label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit2", label %41 + +41: ; preds = %32 + %42 = load ptr, ptr %2, align 8, !noalias !60, !nonnull !4, !noundef !4 + %43 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %44 = load i64, ptr %43, align 8, !noalias !60, !noundef !4 + call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.15586061709592140432"(ptr noalias noundef nonnull readonly align 1 %38, ptr noundef nonnull %42, i64 noundef %40, i64 noundef %44), !noalias !57 br label %"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit2" -"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit2": ; preds = %33, %42 +"_ZN7tendril5buf3214Buf32$LT$H$GT$7destroy17hdb0d62ca8f414148E.llvm.5646377590840740190.exit2": ; preds = %32, %41 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !60 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !57 - br label %32 + br label %31 } ; Function Attrs: nonlazybind uwtable @@ -552,11 +550,8 @@ declare hidden void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h4 ; Function Attrs: inlinehint nonlazybind uwtable declare hidden void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.15586061709592140432"(ptr noalias noundef nonnull readonly align 1, ptr noundef nonnull, i64 noundef, i64 noundef) unnamed_addr #6 -; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) -declare void @llvm.assume(i1 noundef) #11 - ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) -declare void @llvm.experimental.noalias.scope.decl(metadata) #12 +declare void @llvm.experimental.noalias.scope.decl(metadata) #11 attributes #0 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #1 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } @@ -569,9 +564,8 @@ attributes #7 = { inlinehint mustprogress nofree norecurse nosync nounwind nonla attributes #8 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #9 = { cold noreturn nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #10 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #11 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } -attributes #12 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } -attributes #13 = { cold noreturn nounwind } +attributes #11 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } +attributes #12 = { cold noreturn nounwind } !llvm.module.flags = !{!0, !1, !2} !llvm.ident = !{!3} diff --git a/bench/hyperscan/optimized/repeat.c.ll b/bench/hyperscan/optimized/repeat.c.ll index 93d620ae423..433e9abec9c 100644 --- a/bench/hyperscan/optimized/repeat.c.ll +++ b/bench/hyperscan/optimized/repeat.c.ll @@ -2566,15 +2566,11 @@ if.end.i356.i: ; preds = %sw.default.i.i, %sw if.end5.i80.i: ; preds = %if.then2.i.i %50 = and i32 %add.i, 448 %cond.i90.i = tail call i32 @llvm.umin.i32(i32 %spec.select274.i, i32 %50) - %cmp14.i929.not.i = icmp eq i32 %cond.i90.i, 0 - br i1 %cmp14.i929.not.i, label %for.end.i93.i, label %for.body.i109.i.preheader - -for.body.i109.i.preheader: ; preds = %if.end5.i80.i %51 = zext nneg i32 %cond.i90.i to i64 br label %for.body.i109.i -for.body.i109.i: ; preds = %for.body.i109.i.preheader, %if.end23.i117.i - %indvars.iv = phi i64 [ 0, %for.body.i109.i.preheader ], [ %indvars.iv.next, %if.end23.i117.i ] +for.body.i109.i: ; preds = %if.end23.i117.i, %if.end5.i80.i + %indvars.iv = phi i64 [ %indvars.iv.next, %if.end23.i117.i ], [ 0, %if.end5.i80.i ] %52 = lshr exact i64 %indvars.iv, 3 %add.ptr.i112.i = getelementptr inbounds nuw i8, ptr %state, i64 %52 %53 = load i64, ptr %add.ptr.i112.i, align 1 @@ -2594,7 +2590,7 @@ if.end23.i117.i: ; preds = %for.body.i109.i %cmp14.i92.i = icmp samesign ult i64 %indvars.iv.next, %51 br i1 %cmp14.i92.i, label %for.body.i109.i, label %for.end.i93.i, !llvm.loop !5 -for.end.i93.i: ; preds = %if.end23.i117.i, %if.end5.i80.i +for.end.i93.i: ; preds = %if.end23.i117.i %cmp27.i94.i = icmp ugt i32 %spec.select274.i, %50 br i1 %cmp27.i94.i, label %if.then29.i96.i, label %ringHasMatch.exit.thread45 @@ -5193,8 +5189,7 @@ if.then3.i454: ; preds = %if.end.i1123 if.end5.i403: ; preds = %if.then2.i191 %87 = and i32 %5, 448 %cond.i413 = tail call i32 @llvm.umin.i32(i32 %87, i32 %conv38) - %cmp14.i415702.not = icmp eq i32 %87, 0 - br i1 %cmp14.i415702.not, label %for.end.i416, label %for.body.i432 + br label %for.body.i432 for.body.i432: ; preds = %if.end5.i403, %if.end23.i440 %i.i394.0703 = phi i32 [ %add25.i442, %if.end23.i440 ], [ 0, %if.end5.i403 ] @@ -5223,7 +5218,7 @@ if.end23.i440: ; preds = %for.body.i432 %cmp14.i415 = icmp samesign ult i32 %add25.i442, %cond.i413 br i1 %cmp14.i415, label %for.body.i432, label %for.end.i416, !llvm.loop !5 -for.end.i416: ; preds = %if.end23.i440, %if.end5.i403 +for.end.i416: ; preds = %if.end23.i440 %cmp27.i417 = icmp samesign ult i32 %87, %conv38 br i1 %cmp27.i417, label %if.then29.i419, label %return diff --git a/bench/icu/optimized/normalizer2impl.ll b/bench/icu/optimized/normalizer2impl.ll index 59396efeb74..18e9bf1999d 100644 --- a/bench/icu/optimized/normalizer2impl.ll +++ b/bench/icu/optimized/normalizer2impl.ll @@ -4834,7 +4834,7 @@ entry: lor.lhs.false: ; preds = %entry %cmp2 = icmp samesign ult i32 %c, 65536 - br i1 %cmp2, label %land.lhs.true, label %lor.rhs.thread + br i1 %cmp2, label %land.lhs.true, label %cond.false6.i land.lhs.true: ; preds = %lor.lhs.false %smallFCD.i = getelementptr inbounds nuw i8, ptr %this, i64 56 @@ -4858,11 +4858,6 @@ lor.rhs: ; preds = %land.lhs.true %cmp.i5 = icmp eq i32 %and.i4, 55296 br i1 %cmp.i5, label %_ZNK6icu_7515Normalizer2Impl9getNorm16Ei.exit, label %cond.true3.i -lor.rhs.thread: ; preds = %lor.lhs.false - %and.i414 = and i32 %c, -1024 - %cmp.i515 = icmp eq i32 %and.i414, 55296 - br i1 %cmp.i515, label %_ZNK6icu_7515Normalizer2Impl9getNorm16Ei.exit, label %cond.false6.i - cond.true3.i: ; preds = %lor.rhs %normTrie.i = getelementptr inbounds nuw i8, ptr %this, i64 32 %5 = load ptr, ptr %normTrie.i, align 8 @@ -4878,7 +4873,7 @@ cond.true3.i: ; preds = %lor.rhs %add.i = add nuw nsw i32 %and5.i, %conv.i9 br label %cond.end21.i -cond.false6.i: ; preds = %lor.rhs.thread +cond.false6.i: ; preds = %lor.lhs.false %normTrie.i16 = getelementptr inbounds nuw i8, ptr %this, i64 32 %9 = load ptr, ptr %normTrie.i16, align 8 %data.i17 = getelementptr inbounds nuw i8, ptr %9, i64 8 @@ -4916,8 +4911,8 @@ cond.end21.i: ; preds = %cond.false15.i, %co %15 = load i16, ptr %arrayidx24.i, align 2 br label %_ZNK6icu_7515Normalizer2Impl9getNorm16Ei.exit -_ZNK6icu_7515Normalizer2Impl9getNorm16Ei.exit: ; preds = %lor.rhs.thread, %lor.rhs, %cond.end21.i - %cond26.i = phi i16 [ %15, %cond.end21.i ], [ 1, %lor.rhs ], [ 1, %lor.rhs.thread ] +_ZNK6icu_7515Normalizer2Impl9getNorm16Ei.exit: ; preds = %lor.rhs, %cond.end21.i + %cond26.i = phi i16 [ %15, %cond.end21.i ], [ 1, %lor.rhs ] %minNoNoCompNoMaybeCC.i = getelementptr inbounds nuw i8, ptr %this, i64 22 %16 = load i16, ptr %minNoNoCompNoMaybeCC.i, align 2 %cmp.i10 = icmp ult i16 %cond26.i, %16 @@ -4973,7 +4968,7 @@ entry: if.end: ; preds = %entry %cmp2 = icmp samesign ult i32 %c, 65536 - br i1 %cmp2, label %land.lhs.true, label %if.end4.thread + br i1 %cmp2, label %land.lhs.true, label %cond.false6.i land.lhs.true: ; preds = %if.end %smallFCD.i = getelementptr inbounds nuw i8, ptr %this, i64 56 @@ -4997,11 +4992,6 @@ if.end4: ; preds = %land.lhs.true %cmp.i5 = icmp eq i32 %and.i4, 55296 br i1 %cmp.i5, label %_ZNK6icu_7515Normalizer2Impl9getNorm16Ei.exit, label %cond.true3.i -if.end4.thread: ; preds = %if.end - %and.i413 = and i32 %c, -1024 - %cmp.i514 = icmp eq i32 %and.i413, 55296 - br i1 %cmp.i514, label %_ZNK6icu_7515Normalizer2Impl9getNorm16Ei.exit, label %cond.false6.i - cond.true3.i: ; preds = %if.end4 %normTrie.i = getelementptr inbounds nuw i8, ptr %this, i64 32 %5 = load ptr, ptr %normTrie.i, align 8 @@ -5017,7 +5007,7 @@ cond.true3.i: ; preds = %if.end4 %add.i = add nuw nsw i32 %and5.i, %conv.i9 br label %cond.end21.i -cond.false6.i: ; preds = %if.end4.thread +cond.false6.i: ; preds = %if.end %normTrie.i15 = getelementptr inbounds nuw i8, ptr %this, i64 32 %9 = load ptr, ptr %normTrie.i15, align 8 %data.i16 = getelementptr inbounds nuw i8, ptr %9, i64 8 @@ -5055,8 +5045,8 @@ cond.end21.i: ; preds = %cond.false15.i, %co %15 = load i16, ptr %arrayidx24.i, align 2 br label %_ZNK6icu_7515Normalizer2Impl9getNorm16Ei.exit -_ZNK6icu_7515Normalizer2Impl9getNorm16Ei.exit: ; preds = %if.end4.thread, %if.end4, %cond.end21.i - %cond26.i = phi i16 [ %15, %cond.end21.i ], [ 1, %if.end4 ], [ 1, %if.end4.thread ] +_ZNK6icu_7515Normalizer2Impl9getNorm16Ei.exit: ; preds = %if.end4, %cond.end21.i + %cond26.i = phi i16 [ %15, %cond.end21.i ], [ 1, %if.end4 ] %minYesNo.i = getelementptr inbounds nuw i8, ptr %this, i64 14 %16 = load i16, ptr %minYesNo.i, align 2 %cmp.not.i = icmp ugt i16 %cond26.i, %16 diff --git a/bench/image-rs/optimized/5oy2v8fghrh79s8.ll b/bench/image-rs/optimized/5oy2v8fghrh79s8.ll index 94226a4d631..1fe67727ae5 100644 --- a/bench/image-rs/optimized/5oy2v8fghrh79s8.ll +++ b/bench/image-rs/optimized/5oy2v8fghrh79s8.ll @@ -12122,23 +12122,21 @@ define hidden void @"_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padd %3 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h85acb266b9e56f70E.llvm.10740287948243559469(ptr noundef nonnull align 128 dereferenceable(256) %0, i8 noundef 0) %4 = and i64 %3, -8 %5 = inttoptr i64 %4 to ptr - %6 = icmp ne i64 %4, 0 - tail call void @llvm.assume(i1 %6) - %7 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 - %8 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %9 = load i64, ptr %8, align 8, !noundef !4 + %6 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 + %7 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %8 = load i64, ptr %7, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2), !noalias !4966 - store ptr %7, ptr %2, align 8, !noalias !4966 - %10 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 %9, ptr %10, align 8, !noalias !4966 + store ptr %6, ptr %2, align 8, !noalias !4966 + %9 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store i64 %8, ptr %9, align 8, !noalias !4966 invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb6ce462556f4b073E.llvm.9742654456972663382"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) - to label %"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h4c95731121ad61c0E.llvm.9832446184049035033.exit" unwind label %11 + to label %"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h4c95731121ad61c0E.llvm.9832446184049035033.exit" unwind label %10 -11: ; preds = %1 - %12 = landingpad { ptr, i32 } +10: ; preds = %1 + %11 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %5, i64 noundef 16, i64 noundef 8) #45 - resume { ptr, i32 } %12 + resume { ptr, i32 } %11 "_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h4c95731121ad61c0E.llvm.9832446184049035033.exit": ; preds = %1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2), !noalias !4966 @@ -14593,23 +14591,21 @@ define hidden void @"_ZN4core3ptr160drop_in_place$LT$alloc..sync..ArcInner$LT$cr %4 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h85acb266b9e56f70E.llvm.10740287948243559469(ptr noundef nonnull align 128 dereferenceable(256) %3, i8 noundef 0) %5 = and i64 %4, -8 %6 = inttoptr i64 %5 to ptr - %7 = icmp ne i64 %5, 0 - tail call void @llvm.assume(i1 %7) - %8 = load ptr, ptr %6, align 8, !nonnull !4, !noundef !4 - %9 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %10 = load i64, ptr %9, align 8, !noundef !4 + %7 = load ptr, ptr %6, align 8, !nonnull !4, !noundef !4 + %8 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %9 = load i64, ptr %8, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2), !noalias !6206 - store ptr %8, ptr %2, align 8, !noalias !6206 - %11 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 %10, ptr %11, align 8, !noalias !6206 + store ptr %7, ptr %2, align 8, !noalias !6206 + %10 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store i64 %9, ptr %10, align 8, !noalias !6206 invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb6ce462556f4b073E.llvm.9742654456972663382"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) - to label %"_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$$GT$17h2c2bd8f28bb1a510E.exit" unwind label %12 + to label %"_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$$GT$17h2c2bd8f28bb1a510E.exit" unwind label %11 -12: ; preds = %1 - %13 = landingpad { ptr, i32 } +11: ; preds = %1 + %12 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %6, i64 noundef 16, i64 noundef 8) #45 - resume { ptr, i32 } %13 + resume { ptr, i32 } %12 "_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$$GT$17h2c2bd8f28bb1a510E.exit": ; preds = %1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2), !noalias !6206 @@ -32961,23 +32957,21 @@ define hidden void @"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inne %3 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h85acb266b9e56f70E.llvm.10740287948243559469(ptr noundef nonnull align 128 dereferenceable(256) %0, i8 noundef 0) %4 = and i64 %3, -8 %5 = inttoptr i64 %4 to ptr - %6 = icmp ne i64 %4, 0 - tail call void @llvm.assume(i1 %6) - %7 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 - %8 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %9 = load i64, ptr %8, align 8, !noundef !4 + %6 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 + %7 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %8 = load i64, ptr %7, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2), !noalias !15854 - store ptr %7, ptr %2, align 8, !noalias !15854 - %10 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 %9, ptr %10, align 8, !noalias !15854 + store ptr %6, ptr %2, align 8, !noalias !15854 + %9 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store i64 %8, ptr %9, align 8, !noalias !15854 invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb6ce462556f4b073E.llvm.9742654456972663382"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) - to label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h62f49dae0d6c1e9cE.llvm.9832446184049035033.exit" unwind label %11 + to label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h62f49dae0d6c1e9cE.llvm.9832446184049035033.exit" unwind label %10 -11: ; preds = %1 - %12 = landingpad { ptr, i32 } +10: ; preds = %1 + %11 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %5, i64 noundef 16, i64 noundef 8) #45 - resume { ptr, i32 } %12 + resume { ptr, i32 } %11 "_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h62f49dae0d6c1e9cE.llvm.9832446184049035033.exit": ; preds = %1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2), !noalias !15854 @@ -46136,28 +46130,26 @@ define hidden void @"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20 %3 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h85acb266b9e56f70E.llvm.10740287948243559469(ptr noundef nonnull align 8 %0, i8 noundef 0) %4 = and i64 %3, -8 %5 = inttoptr i64 %4 to ptr - %6 = icmp ne i64 %4, 0 - tail call void @llvm.assume(i1 %6) - %7 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 - %8 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %9 = load i64, ptr %8, align 8, !noundef !4 + %6 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 + %7 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %8 = load i64, ptr %7, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) - store ptr %7, ptr %2, align 8 - %10 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 %9, ptr %10, align 8 + store ptr %6, ptr %2, align 8 + %9 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store i64 %8, ptr %9, align 8 invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hb6ce462556f4b073E.llvm.9742654456972663382"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) - to label %11 unwind label %12 + to label %10 unwind label %11 -11: ; preds = %1 +10: ; preds = %1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) call void @__rust_dealloc(ptr noundef nonnull %5, i64 noundef 16, i64 noundef 8) #45 ret void -12: ; preds = %1 - %13 = landingpad { ptr, i32 } +11: ; preds = %1 + %12 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %5, i64 noundef 16, i64 noundef 8) #45 - resume { ptr, i32 } %13 + resume { ptr, i32 } %12 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/jemalloc/optimized/arena.ll b/bench/jemalloc/optimized/arena.ll index 4ff1a652307..1c301590819 100644 --- a/bench/jemalloc/optimized/arena.ll +++ b/bench/jemalloc/optimized/arena.ll @@ -855,8 +855,6 @@ if.then8: ; preds = %if.end if.then.i24: ; preds = %if.then8 %add.i = add nuw nsw i64 %alignment, 63 %and.i25 = and i64 %add.i, 8128 - %cmp.i12.i = icmp ne i64 %and.i25, 0 - call void @llvm.assume(i1 %cmp.i12.i) %12 = call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 range(i64 1, -2305843009213693952) %and.i25, i1 true) %conv1.i.i.i.i = xor i64 %12, 63 %cmp.i.i26 = icmp eq ptr %tsdn, null @@ -4846,7 +4844,7 @@ if.end18.i: ; preds = %sz_s2u.exit38.i, %i %add20.i = add nuw nsw i64 %alignment, 4095 %and21.i = and i64 %add20.i, 9223372036854771712 %add19.i = add nsw i64 %and21.i, -4096 - %add22.i = add i64 %add19.i, %usize.i.0 + %add22.i = add nuw i64 %add19.i, %usize.i.0 %sub23.i = add i64 %add22.i, %10 %cmp24.i = icmp ult i64 %sub23.i, %usize.i.0 %.usize.i.0 = select i1 %cmp24.i, i64 0, i64 %usize.i.0 @@ -5168,7 +5166,7 @@ if.end18.i.i: ; preds = %sz_s2u.exit.i.i, %i %add20.i.i = add nuw nsw i64 %alignment, 4095 %and21.i.i = and i64 %add20.i.i, 9223372036854771712 %add19.i.i = add nsw i64 %and21.i.i, -4096 - %add22.i.i = add i64 %add19.i.i, %usize.i.0.i + %add22.i.i = add nuw i64 %add19.i.i, %usize.i.0.i %sub23.i.i = add i64 %add22.i.i, %52 %cmp24.i.i = icmp ult i64 %sub23.i.i, %usize.i.0.i %.usize.i.0.i = select i1 %cmp24.i.i, i64 0, i64 %usize.i.0.i diff --git a/bench/libquic/optimized/mul.c.ll b/bench/libquic/optimized/mul.c.ll index 1423079c37c..1c47f9d2522 100644 --- a/bench/libquic/optimized/mul.c.ll +++ b/bench/libquic/optimized/mul.c.ll @@ -459,15 +459,15 @@ if.end17: ; preds = %if.end %call24 = tail call i32 @bn_cmp_part_words(ptr noundef %arrayidx22, ptr noundef %b, i32 noundef %add1, i32 noundef %dnb) #4 %mul25 = mul nsw i32 %call, 3 %add26 = add nsw i32 %mul25, %call24 - switch i32 %add26, label %sw.epilog [ + switch i32 %add26, label %if.else96 [ i32 -4, label %sw.bb - i32 -3, label %sw.epilog.thread + i32 -3, label %if.else96.thread i32 -2, label %sw.bb38 - i32 -1, label %sw.epilog.thread - i32 0, label %sw.epilog.thread - i32 1, label %sw.epilog.thread + i32 -1, label %if.else96.thread + i32 0, label %if.else96.thread + i32 1, label %if.else96.thread i32 2, label %sw.bb50 - i32 3, label %sw.epilog.thread + i32 3, label %if.else96.thread i32 4, label %sw.bb62 ] @@ -476,59 +476,36 @@ sw.bb: ; preds = %if.end17 %arrayidx32 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom18 %sub35 = sub i32 0, %dnb tail call fastcc void @bn_sub_part_words(ptr noundef %arrayidx32, ptr noundef %b, ptr noundef %arrayidx22, i32 noundef %add1, i32 noundef %sub35) - br label %sw.epilog + br label %if.else96 sw.bb38: ; preds = %if.end17 tail call fastcc void @bn_sub_part_words(ptr noundef %t, ptr noundef %arrayidx19, ptr noundef %a, i32 noundef %add, i32 noundef %dna) %arrayidx44 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom18 tail call fastcc void @bn_sub_part_words(ptr noundef %arrayidx44, ptr noundef %arrayidx22, ptr noundef %b, i32 noundef %add1, i32 noundef %dnb) - br label %sw.epilog + br label %if.else96 sw.bb50: ; preds = %if.end17 tail call fastcc void @bn_sub_part_words(ptr noundef %t, ptr noundef %a, ptr noundef %arrayidx19, i32 noundef %add, i32 noundef %sub20) %arrayidx56 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom18 %sub59 = sub i32 0, %dnb tail call fastcc void @bn_sub_part_words(ptr noundef %arrayidx56, ptr noundef %b, ptr noundef %arrayidx22, i32 noundef %add1, i32 noundef %sub59) - br label %sw.epilog + br label %if.else96 sw.bb62: ; preds = %if.end17 tail call fastcc void @bn_sub_part_words(ptr noundef %t, ptr noundef %a, ptr noundef %arrayidx19, i32 noundef %add, i32 noundef %sub20) %arrayidx68 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom18 tail call fastcc void @bn_sub_part_words(ptr noundef %arrayidx68, ptr noundef %arrayidx22, ptr noundef %b, i32 noundef %add1, i32 noundef %dnb) - br label %sw.epilog + br label %if.else96 -sw.epilog: ; preds = %sw.bb62, %sw.bb50, %sw.bb38, %sw.bb, %if.end17 +if.else96: ; preds = %if.end17, %sw.bb, %sw.bb38, %sw.bb50, %sw.bb62 %tobool150.not = phi i1 [ true, %if.end17 ], [ true, %sw.bb62 ], [ false, %sw.bb50 ], [ false, %sw.bb38 ], [ true, %sw.bb ] %2 = and i32 %n2, 2147483646 - %cmp73 = icmp eq i32 %2, 8 - %or.cond3 = and i1 %cmp73, %1 - br i1 %or.cond3, label %if.then82, label %if.else96 - -sw.epilog.thread: ; preds = %if.end17, %if.end17, %if.end17, %if.end17, %if.end17 - %3 = and i32 %n2, 2147483646 - %cmp73205 = icmp eq i32 %3, 8 - %or.cond3206 = and i1 %cmp73205, %1 - br i1 %or.cond3206, label %if.else, label %if.else96.thread - -if.then82: ; preds = %sw.epilog - %idxprom83 = zext nneg i32 %n2 to i64 - %arrayidx84 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom83 - %arrayidx86 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom18 - tail call void @bn_mul_comba4(ptr noundef %arrayidx84, ptr noundef %t, ptr noundef nonnull %arrayidx86) #4 - br label %if.end145 - -if.else: ; preds = %sw.epilog.thread - %idxprom87 = zext nneg i32 %n2 to i64 - %arrayidx88 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom87 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(64) %arrayidx88, i8 0, i64 64, i1 false) - br label %if.end145 - -if.else96: ; preds = %sw.epilog %cmp97 = icmp eq i32 %2, 16 %or.cond5 = and i1 %cmp97, %1 br i1 %or.cond5, label %if.then107, label %if.then127 -if.else96.thread: ; preds = %sw.epilog.thread +if.else96.thread: ; preds = %if.end17, %if.end17, %if.end17, %if.end17, %if.end17 + %3 = and i32 %n2, 2147483646 %cmp97218 = icmp eq i32 %3, 16 %or.cond5219 = and i1 %cmp97218, %1 br i1 %or.cond5219, label %if.else112, label %if.else132 @@ -537,7 +514,7 @@ if.then107: ; preds = %if.else96 %idxprom108 = zext nneg i32 %n2 to i64 %arrayidx109 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom108 %arrayidx111 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom18 - tail call void @bn_mul_comba8(ptr noundef %arrayidx109, ptr noundef %t, ptr noundef nonnull %arrayidx111) #4 + tail call void @bn_mul_comba8(ptr noundef nonnull %arrayidx109, ptr noundef %t, ptr noundef nonnull %arrayidx111) #4 br label %if.end115 if.else112: ; preds = %if.else96.thread @@ -563,7 +540,7 @@ if.then127: ; preds = %if.else96 %idxprom128 = zext nneg i32 %n2 to i64 %arrayidx129 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom128 %arrayidx131 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom18 - tail call fastcc void @bn_mul_recursive(ptr noundef %arrayidx129, ptr noundef %t, ptr noundef %arrayidx131, i32 noundef %div, i32 noundef 0, i32 noundef 0, ptr noundef %arrayidx125232) + tail call fastcc void @bn_mul_recursive(ptr noundef nonnull %arrayidx129, ptr noundef %t, ptr noundef %arrayidx131, i32 noundef %div, i32 noundef 0, i32 noundef 0, ptr noundef nonnull %arrayidx125232) br label %if.end137 if.else132: ; preds = %if.else96.thread @@ -573,7 +550,7 @@ if.else132: ; preds = %if.else96.thread %idxprom133 = zext nneg i32 %n2 to i64 %arrayidx134 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom133 %mul136 = shl nuw nsw i64 %idxprom133, 3 - tail call void @llvm.memset.p0.i64(ptr align 8 %arrayidx134, i8 0, i64 %mul136, i1 false) + tail call void @llvm.memset.p0.i64(ptr nonnull align 8 %arrayidx134, i8 0, i64 %mul136, i1 false) br label %if.end137 if.end137: ; preds = %if.else132, %if.then127 @@ -587,28 +564,18 @@ if.end137: ; preds = %if.else132, %if.the %conv149249 = trunc i64 %call148248 to i32 br i1 %tobool150.not208223233, label %if.else159, label %if.then151 -if.end145: ; preds = %if.then82, %if.else - %idxprom90.pre-phi = phi i64 [ %idxprom83, %if.then82 ], [ %idxprom87, %if.else ] - %tobool150.not209214 = phi i1 [ %tobool150.not, %if.then82 ], [ true, %if.else ] - tail call void @bn_mul_comba4(ptr noundef %r, ptr noundef %a, ptr noundef %b) #4 - %arrayidx91 = getelementptr inbounds nuw i64, ptr %r, i64 %idxprom90.pre-phi - tail call void @bn_mul_comba4(ptr noundef %arrayidx91, ptr noundef nonnull %arrayidx19, ptr noundef nonnull %arrayidx22) #4 - %call148 = tail call i64 @bn_add_words(ptr noundef %t, ptr noundef %r, ptr noundef %arrayidx91, i32 noundef %n2) #4 - %conv149 = trunc i64 %call148 to i32 - br i1 %tobool150.not209214, label %if.else159, label %if.then151 - -if.then151: ; preds = %if.end137, %if.end115, %if.end145 - %conv149244 = phi i32 [ %conv149240, %if.end115 ], [ %conv149, %if.end145 ], [ %conv149249, %if.end137 ] - %idxprom146243 = phi i64 [ %idxprom116.pre-phi, %if.end115 ], [ %idxprom90.pre-phi, %if.end145 ], [ %idxprom138.pre-phi, %if.end137 ] +if.then151: ; preds = %if.end137, %if.end115 + %conv149244 = phi i32 [ %conv149240, %if.end115 ], [ %conv149249, %if.end137 ] + %idxprom146243 = phi i64 [ %idxprom116.pre-phi, %if.end115 ], [ %idxprom138.pre-phi, %if.end137 ] %arrayidx153 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom146243 %call156 = tail call i64 @bn_sub_words(ptr noundef %arrayidx153, ptr noundef %t, ptr noundef %arrayidx153, i32 noundef %n2) #4 %conv157 = trunc i64 %call156 to i32 %sub158 = sub nsw i32 %conv149244, %conv157 br label %if.end167 -if.else159: ; preds = %if.end137, %if.end115, %if.end145 - %conv149245 = phi i32 [ %conv149240, %if.end115 ], [ %conv149, %if.end145 ], [ %conv149249, %if.end137 ] - %idxprom146241 = phi i64 [ %idxprom116.pre-phi, %if.end115 ], [ %idxprom90.pre-phi, %if.end145 ], [ %idxprom138.pre-phi, %if.end137 ] +if.else159: ; preds = %if.end137, %if.end115 + %conv149245 = phi i32 [ %conv149240, %if.end115 ], [ %conv149249, %if.end137 ] + %idxprom146241 = phi i64 [ %idxprom116.pre-phi, %if.end115 ], [ %idxprom138.pre-phi, %if.end137 ] %arrayidx161 = getelementptr inbounds nuw i64, ptr %t, i64 %idxprom146241 %call164 = tail call i64 @bn_add_words(ptr noundef %arrayidx161, ptr noundef %arrayidx161, ptr noundef %t, i32 noundef %n2) #4 %conv165 = trunc i64 %call164 to i32 @@ -1279,8 +1246,6 @@ declare i64 @bn_add_words(ptr noundef, ptr noundef, ptr noundef, i32 noundef) lo declare i64 @bn_sub_words(ptr noundef, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1 -declare void @bn_mul_comba4(ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #1 - declare i64 @bn_mul_add_words(ptr noundef, ptr noundef, i32 noundef, i64 noundef) local_unnamed_addr #1 declare void @bn_sqr_words(ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1 diff --git a/bench/libquic/optimized/poly1305_vec.c.ll b/bench/libquic/optimized/poly1305_vec.c.ll index d3c99bd3efb..12c083cc492 100644 --- a/bench/libquic/optimized/poly1305_vec.c.ll +++ b/bench/libquic/optimized/poly1305_vec.c.ll @@ -631,7 +631,7 @@ for.end: ; preds = %for.body } ; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable -define internal fastcc void @poly1305_blocks(ptr nocapture noundef %st, ptr nocapture noundef readonly %m, i64 noundef range(i64 0, -63) %bytes) unnamed_addr #2 { +define internal fastcc void @poly1305_blocks(ptr nocapture noundef %st, ptr nocapture noundef readonly %m, i64 noundef range(i64 64, -63) %bytes) unnamed_addr #2 { entry: %0 = getelementptr inbounds nuw i8, ptr %st, i64 288 %1 = load <2 x i64>, ptr %0, align 16 @@ -643,10 +643,6 @@ entry: %4 = load <2 x i64>, ptr %arrayidx5, align 16 %arrayidx6 = getelementptr inbounds nuw i8, ptr %st, i64 352 %5 = load <2 x i64>, ptr %arrayidx6, align 16 - %cmp268 = icmp ugt i64 %bytes, 63 - br i1 %cmp268, label %while.body.lr.ph, label %while.end - -while.body.lr.ph: ; preds = %entry %6 = load <2 x i64>, ptr %st, align 16 %7 = and <2 x i64> %6, splat (i64 4294967295) %R21 = getelementptr inbounds nuw i8, ptr %st, i64 16 @@ -705,58 +701,58 @@ while.body.lr.ph: ; preds = %entry %44 = and <2 x i64> %4, splat (i64 4294967295) br label %while.body -while.body: ; preds = %while.body.lr.ph, %while.body - %m.addr.0275 = phi ptr [ %m, %while.body.lr.ph ], [ %add.ptr214, %while.body ] - %bytes.addr.0274 = phi i64 [ %bytes, %while.body.lr.ph ], [ %sub, %while.body ] - %H0.0273 = phi <2 x i64> [ %42, %while.body.lr.ph ], [ %and.i366, %while.body ] - %H1.0272 = phi <2 x i64> [ %2, %while.body.lr.ph ], [ %add.i454, %while.body ] - %H2.0271 = phi <2 x i64> [ %43, %while.body.lr.ph ], [ %and.i369, %while.body ] - %H3.0270 = phi <2 x i64> [ %44, %while.body.lr.ph ], [ %and.i, %while.body ] - %H4.0269 = phi <2 x i64> [ %5, %while.body.lr.ph ], [ %add.i, %while.body ] - %45 = mul nuw <2 x i64> %7, %H0.0273 - %46 = mul nuw <2 x i64> %9, %H0.0273 - %47 = mul nuw <2 x i64> %11, %H0.0273 - %48 = mul nuw <2 x i64> %13, %H0.0273 - %49 = mul nuw <2 x i64> %15, %H0.0273 - %50 = and <2 x i64> %H1.0272, splat (i64 4294967295) +while.body: ; preds = %entry, %while.body + %m.addr.0274 = phi ptr [ %m, %entry ], [ %add.ptr214, %while.body ] + %bytes.addr.0273 = phi i64 [ %bytes, %entry ], [ %sub, %while.body ] + %H0.0272 = phi <2 x i64> [ %42, %entry ], [ %and.i366, %while.body ] + %H1.0271 = phi <2 x i64> [ %2, %entry ], [ %add.i454, %while.body ] + %H2.0270 = phi <2 x i64> [ %43, %entry ], [ %and.i369, %while.body ] + %H3.0269 = phi <2 x i64> [ %44, %entry ], [ %and.i, %while.body ] + %H4.0268 = phi <2 x i64> [ %5, %entry ], [ %add.i, %while.body ] + %45 = mul nuw <2 x i64> %7, %H0.0272 + %46 = mul nuw <2 x i64> %9, %H0.0272 + %47 = mul nuw <2 x i64> %11, %H0.0272 + %48 = mul nuw <2 x i64> %13, %H0.0272 + %49 = mul nuw <2 x i64> %15, %H0.0272 + %50 = and <2 x i64> %H1.0271, splat (i64 4294967295) %51 = mul nuw <2 x i64> %17, %50 %52 = mul nuw <2 x i64> %7, %50 %add.i619 = add <2 x i64> %51, %45 %add.i616 = add <2 x i64> %46, %52 - %53 = mul nuw <2 x i64> %19, %H2.0271 - %54 = mul nuw <2 x i64> %17, %H2.0271 + %53 = mul nuw <2 x i64> %19, %H2.0270 + %54 = mul nuw <2 x i64> %17, %H2.0270 %add.i613 = add <2 x i64> %add.i619, %53 %add.i610 = add <2 x i64> %add.i616, %54 - %55 = mul nuw <2 x i64> %21, %H3.0270 - %56 = mul nuw <2 x i64> %19, %H3.0270 + %55 = mul nuw <2 x i64> %21, %H3.0269 + %56 = mul nuw <2 x i64> %19, %H3.0269 %add.i607 = add <2 x i64> %add.i613, %55 %add.i604 = add <2 x i64> %add.i610, %56 - %57 = and <2 x i64> %H4.0269, splat (i64 4294967295) + %57 = and <2 x i64> %H4.0268, splat (i64 4294967295) %58 = mul nuw <2 x i64> %23, %57 %59 = mul nuw <2 x i64> %21, %57 %add.i601 = add <2 x i64> %add.i607, %58 %add.i598 = add <2 x i64> %add.i604, %59 %60 = mul nuw <2 x i64> %9, %50 %61 = mul nuw <2 x i64> %11, %50 - %62 = mul nuw <2 x i64> %7, %H2.0271 - %63 = mul nuw <2 x i64> %9, %H2.0271 - %64 = mul nuw <2 x i64> %17, %H3.0270 - %65 = mul nuw <2 x i64> %7, %H3.0270 + %62 = mul nuw <2 x i64> %7, %H2.0270 + %63 = mul nuw <2 x i64> %9, %H2.0270 + %64 = mul nuw <2 x i64> %17, %H3.0269 + %65 = mul nuw <2 x i64> %7, %H3.0269 %66 = mul nuw <2 x i64> %19, %57 %67 = mul nuw <2 x i64> %17, %57 %68 = mul nuw <2 x i64> %13, %50 - %69 = mul nuw <2 x i64> %11, %H2.0271 - %70 = mul nuw <2 x i64> %9, %H3.0270 + %69 = mul nuw <2 x i64> %11, %H2.0270 + %70 = mul nuw <2 x i64> %9, %H3.0269 %71 = mul nuw <2 x i64> %7, %57 - %72 = load i64, ptr %m.addr.0275, align 1 + %72 = load i64, ptr %m.addr.0274, align 1 %vecinit1.i361 = insertelement <2 x i64> poison, i64 %72, i64 0 - %add.ptr70 = getelementptr inbounds nuw i8, ptr %m.addr.0275, i64 16 + %add.ptr70 = getelementptr inbounds nuw i8, ptr %m.addr.0274, i64 16 %73 = load i64, ptr %add.ptr70, align 1 %shuffle.i332 = insertelement <2 x i64> %vecinit1.i361, i64 %73, i64 1 - %add.ptr73 = getelementptr inbounds nuw i8, ptr %m.addr.0275, i64 8 + %add.ptr73 = getelementptr inbounds nuw i8, ptr %m.addr.0274, i64 8 %74 = load i64, ptr %add.ptr73, align 1 %vecinit1.i353 = insertelement <2 x i64> poison, i64 %74, i64 0 - %add.ptr75 = getelementptr inbounds nuw i8, ptr %m.addr.0275, i64 24 + %add.ptr75 = getelementptr inbounds nuw i8, ptr %m.addr.0274, i64 24 %75 = load i64, ptr %add.ptr75, align 1 %shuffle.i329 = insertelement <2 x i64> %vecinit1.i353, i64 %75, i64 1 %and.i405 = and <2 x i64> %shuffle.i332, splat (i64 67108863) @@ -798,16 +794,16 @@ while.body: ; preds = %while.body.lr.ph, % %101 = mul nuw nsw <2 x i64> %37, %and.i399 %102 = mul nuw nsw <2 x i64> %and.i396, %27 %103 = mul nuw nsw <2 x i64> %or.i442, %25 - %add.ptr166 = getelementptr inbounds nuw i8, ptr %m.addr.0275, i64 32 + %add.ptr166 = getelementptr inbounds nuw i8, ptr %m.addr.0274, i64 32 %104 = load i64, ptr %add.ptr166, align 1 %vecinit1.i345 = insertelement <2 x i64> poison, i64 %104, i64 0 - %add.ptr168 = getelementptr inbounds nuw i8, ptr %m.addr.0275, i64 48 + %add.ptr168 = getelementptr inbounds nuw i8, ptr %m.addr.0274, i64 48 %105 = load i64, ptr %add.ptr168, align 1 %shuffle.i326 = insertelement <2 x i64> %vecinit1.i345, i64 %105, i64 1 - %add.ptr171 = getelementptr inbounds nuw i8, ptr %m.addr.0275, i64 40 + %add.ptr171 = getelementptr inbounds nuw i8, ptr %m.addr.0274, i64 40 %106 = load i64, ptr %add.ptr171, align 1 %vecinit1.i337 = insertelement <2 x i64> poison, i64 %106, i64 0 - %add.ptr173 = getelementptr inbounds nuw i8, ptr %m.addr.0275, i64 56 + %add.ptr173 = getelementptr inbounds nuw i8, ptr %m.addr.0274, i64 56 %107 = load i64, ptr %add.ptr173, align 1 %shuffle.i = insertelement <2 x i64> %vecinit1.i337, i64 %107, i64 1 %and.i393 = and <2 x i64> %shuffle.i326, splat (i64 67108863) @@ -879,22 +875,17 @@ while.body: ; preds = %while.body.lr.ph, % %119 = lshr <2 x i64> %add.i457, splat (i64 26) %and.i = and <2 x i64> %add.i457, splat (i64 67108863) %add.i = add nuw nsw <2 x i64> %and.i372, %119 - %add.ptr214 = getelementptr inbounds nuw i8, ptr %m.addr.0275, i64 64 - %sub = add i64 %bytes.addr.0274, -64 + %add.ptr214 = getelementptr inbounds nuw i8, ptr %m.addr.0274, i64 64 + %sub = add i64 %bytes.addr.0273, -64 %cmp = icmp ugt i64 %sub, 63 br i1 %cmp, label %while.body, label %while.end, !llvm.loop !9 -while.end: ; preds = %while.body, %entry - %H4.0.lcssa = phi <2 x i64> [ %5, %entry ], [ %add.i, %while.body ] - %H3.0.lcssa = phi <2 x i64> [ %4, %entry ], [ %and.i, %while.body ] - %H2.0.lcssa = phi <2 x i64> [ %3, %entry ], [ %and.i369, %while.body ] - %H1.0.lcssa = phi <2 x i64> [ %2, %entry ], [ %add.i454, %while.body ] - %H0.0.lcssa = phi <2 x i64> [ %1, %entry ], [ %and.i366, %while.body ] - store <2 x i64> %H0.0.lcssa, ptr %0, align 16 - store <2 x i64> %H1.0.lcssa, ptr %arrayidx3, align 16 - store <2 x i64> %H2.0.lcssa, ptr %arrayidx4, align 16 - store <2 x i64> %H3.0.lcssa, ptr %arrayidx5, align 16 - store <2 x i64> %H4.0.lcssa, ptr %arrayidx6, align 16 +while.end: ; preds = %while.body + store <2 x i64> %and.i366, ptr %0, align 16 + store <2 x i64> %add.i454, ptr %arrayidx3, align 16 + store <2 x i64> %and.i369, ptr %arrayidx4, align 16 + store <2 x i64> %and.i, ptr %arrayidx5, align 16 + store <2 x i64> %add.i, ptr %arrayidx6, align 16 ret void } diff --git a/bench/libsodium/optimized/libsodium_la-poly1305_donna.ll b/bench/libsodium/optimized/libsodium_la-poly1305_donna.ll index 05d8ce7eaae..fe2a798e5e3 100644 --- a/bench/libsodium/optimized/libsodium_la-poly1305_donna.ll +++ b/bench/libsodium/optimized/libsodium_la-poly1305_donna.ll @@ -46,8 +46,8 @@ if.then17.i: ; preds = %if.end15.i %and.i2 = and i64 %inlen, -16 %arrayidx9.i = getelementptr inbounds nuw i8, ptr %state, i64 32 %arrayidx11.i = getelementptr inbounds nuw i8, ptr %state, i64 40 - %mul12.i = mul nuw nsw i64 %and8.i, 20 %mul.i = mul nuw nsw i64 %and4.i, 20 + %mul12.i = mul nuw nsw i64 %and8.i, 20 %conv24.i = zext nneg i64 %and.i to i128 %conv27.i = zext nneg i64 %mul12.i to i128 %conv31.i = zext nneg i64 %mul.i to i128 @@ -56,21 +56,21 @@ if.then17.i: ; preds = %if.end15.i br label %while.body.i while.body.i: ; preds = %while.body.i, %if.then17.i - %m.addr.061.i = phi ptr [ %m, %if.then17.i ], [ %add.ptr.i10, %while.body.i ] - %bytes.addr.060.i = phi i64 [ %and.i2, %if.then17.i ], [ %sub.i11, %while.body.i ] - %h0.059.i = phi i64 [ 0, %if.then17.i ], [ %and75.i, %while.body.i ] - %h1.058.i = phi i64 [ 0, %if.then17.i ], [ %add76.i, %while.body.i ] - %h2.057.i = phi i64 [ 0, %if.then17.i ], [ %and71.i, %while.body.i ] - %m.addr.0.val.i = load i64, ptr %m.addr.061.i, align 1 - %arrayidx15.i = getelementptr i8, ptr %m.addr.061.i, i64 8 + %m.addr.060.i = phi ptr [ %m, %if.then17.i ], [ %add.ptr.i10, %while.body.i ] + %bytes.addr.059.i = phi i64 [ %and.i2, %if.then17.i ], [ %sub.i11, %while.body.i ] + %h0.058.i = phi i64 [ 0, %if.then17.i ], [ %and75.i, %while.body.i ] + %h1.057.i = phi i64 [ 0, %if.then17.i ], [ %add76.i, %while.body.i ] + %h2.056.i = phi i64 [ 0, %if.then17.i ], [ %and71.i, %while.body.i ] + %m.addr.0.val.i = load i64, ptr %m.addr.060.i, align 1 + %arrayidx15.i = getelementptr i8, ptr %m.addr.060.i, i64 8 %arrayidx15.val.i = load i64, ptr %arrayidx15.i, align 1 %and.i7 = and i64 %m.addr.0.val.i, 17592186044415 - %add.i8 = add nuw nsw i64 %and.i7, %h0.059.i + %add.i8 = add nuw nsw i64 %and.i7, %h0.058.i %or.i9 = tail call i64 @llvm.fshl.i64(i64 %arrayidx15.val.i, i64 %m.addr.0.val.i, i64 20) %and17.i = and i64 %or.i9, 17592186044415 - %add18.i = add nuw nsw i64 %and17.i, %h1.058.i + %add18.i = add nuw nsw i64 %and17.i, %h1.057.i %shr19.i = lshr i64 %arrayidx15.val.i, 24 - %or21.i = add nuw nsw i64 %h2.057.i, 1099511627776 + %or21.i = add nuw nsw i64 %h2.056.i, 1099511627776 %add22.i = add nuw nsw i64 %or21.i, %shr19.i %conv23.i = zext nneg i64 %add.i8 to i128 %mul25.i = mul nuw nsw i128 %conv23.i, %conv24.i @@ -109,8 +109,8 @@ while.body.i: ; preds = %while.body.i, %if.t %shr74.i = lshr i64 %add73.i, 44 %and75.i = and i64 %add73.i, 17592186044415 %add76.i = add nuw nsw i64 %shr74.i, %and65.i - %add.ptr.i10 = getelementptr i8, ptr %m.addr.061.i, i64 16 - %sub.i11 = add i64 %bytes.addr.060.i, -16 + %add.ptr.i10 = getelementptr i8, ptr %m.addr.060.i, i64 16 + %sub.i11 = add i64 %bytes.addr.059.i, -16 %cmp.i.not = icmp eq i64 %sub.i11, 0 br i1 %cmp.i.not, label %poly1305_blocks.exit, label %while.body.i, !llvm.loop !4 @@ -403,52 +403,48 @@ if.end: ; preds = %for.end, %entry } ; Function Attrs: nofree norecurse nosync nounwind ssp memory(argmem: readwrite) uwtable -define internal fastcc void @poly1305_blocks(ptr nocapture noundef %st, ptr nocapture noundef readonly %m, i64 noundef range(i64 0, -15) %bytes) unnamed_addr #2 { +define internal fastcc void @poly1305_blocks(ptr nocapture noundef %st, ptr nocapture noundef readonly %m, i64 noundef range(i64 16, -15) %bytes) unnamed_addr #2 { entry: %final = getelementptr inbounds nuw i8, ptr %st, i64 88 %0 = load i8, ptr %final, align 8 %tobool.not = icmp eq i8 %0, 0 %cond = select i1 %tobool.not, i64 1099511627776, i64 0 + %1 = load i64, ptr %st, align 8 + %arrayidx4 = getelementptr i8, ptr %st, i64 8 + %2 = load i64, ptr %arrayidx4, align 8 + %arrayidx6 = getelementptr i8, ptr %st, i64 16 + %3 = load i64, ptr %arrayidx6, align 8 %h = getelementptr inbounds nuw i8, ptr %st, i64 24 - %1 = load i64, ptr %h, align 8 + %4 = load i64, ptr %h, align 8 %arrayidx9 = getelementptr i8, ptr %st, i64 32 - %2 = load i64, ptr %arrayidx9, align 8 + %5 = load i64, ptr %arrayidx9, align 8 %arrayidx11 = getelementptr i8, ptr %st, i64 40 - %3 = load i64, ptr %arrayidx11, align 8 - %cmp56 = icmp ugt i64 %bytes, 15 - br i1 %cmp56, label %while.body.lr.ph, label %while.end - -while.body.lr.ph: ; preds = %entry - %arrayidx6 = getelementptr i8, ptr %st, i64 16 - %4 = load i64, ptr %arrayidx6, align 8 - %mul12 = mul i64 %4, 20 - %arrayidx4 = getelementptr i8, ptr %st, i64 8 - %5 = load i64, ptr %arrayidx4, align 8 - %mul = mul i64 %5, 20 - %6 = load i64, ptr %st, align 8 - %conv24 = zext i64 %6 to i128 + %6 = load i64, ptr %arrayidx11, align 8 + %mul = mul i64 %2, 20 + %mul12 = mul i64 %3, 20 + %conv24 = zext i64 %1 to i128 %conv27 = zext i64 %mul12 to i128 %conv31 = zext i64 %mul to i128 - %conv35 = zext i64 %5 to i128 - %conv46 = zext i64 %4 to i128 + %conv35 = zext i64 %2 to i128 + %conv46 = zext i64 %3 to i128 br label %while.body -while.body: ; preds = %while.body.lr.ph, %while.body - %m.addr.061 = phi ptr [ %m, %while.body.lr.ph ], [ %add.ptr, %while.body ] - %bytes.addr.060 = phi i64 [ %bytes, %while.body.lr.ph ], [ %sub, %while.body ] - %h0.059 = phi i64 [ %1, %while.body.lr.ph ], [ %and75, %while.body ] - %h1.058 = phi i64 [ %2, %while.body.lr.ph ], [ %add76, %while.body ] - %h2.057 = phi i64 [ %3, %while.body.lr.ph ], [ %and71, %while.body ] - %m.addr.0.val = load i64, ptr %m.addr.061, align 1 - %arrayidx15 = getelementptr i8, ptr %m.addr.061, i64 8 +while.body: ; preds = %entry, %while.body + %m.addr.060 = phi ptr [ %m, %entry ], [ %add.ptr, %while.body ] + %bytes.addr.059 = phi i64 [ %bytes, %entry ], [ %sub, %while.body ] + %h0.058 = phi i64 [ %4, %entry ], [ %and75, %while.body ] + %h1.057 = phi i64 [ %5, %entry ], [ %add76, %while.body ] + %h2.056 = phi i64 [ %6, %entry ], [ %and71, %while.body ] + %m.addr.0.val = load i64, ptr %m.addr.060, align 1 + %arrayidx15 = getelementptr i8, ptr %m.addr.060, i64 8 %arrayidx15.val = load i64, ptr %arrayidx15, align 1 %and = and i64 %m.addr.0.val, 17592186044415 - %add = add i64 %and, %h0.059 + %add = add i64 %and, %h0.058 %or = tail call i64 @llvm.fshl.i64(i64 %arrayidx15.val, i64 %m.addr.0.val, i64 20) %and17 = and i64 %or, 17592186044415 - %add18 = add i64 %and17, %h1.058 + %add18 = add i64 %and17, %h1.057 %shr19 = lshr i64 %arrayidx15.val, 24 - %or21 = add i64 %h2.057, %cond + %or21 = add i64 %h2.056, %cond %add22 = add i64 %or21, %shr19 %conv23 = zext i64 %add to i128 %mul25 = mul nuw i128 %conv23, %conv24 @@ -487,18 +483,15 @@ while.body: ; preds = %while.body.lr.ph, % %shr74 = lshr i64 %add73, 44 %and75 = and i64 %add73, 17592186044415 %add76 = add nuw nsw i64 %shr74, %and65 - %add.ptr = getelementptr i8, ptr %m.addr.061, i64 16 - %sub = add i64 %bytes.addr.060, -16 + %add.ptr = getelementptr i8, ptr %m.addr.060, i64 16 + %sub = add i64 %bytes.addr.059, -16 %cmp = icmp ugt i64 %sub, 15 br i1 %cmp, label %while.body, label %while.end, !llvm.loop !4 -while.end: ; preds = %while.body, %entry - %h2.0.lcssa = phi i64 [ %3, %entry ], [ %and71, %while.body ] - %h1.0.lcssa = phi i64 [ %2, %entry ], [ %add76, %while.body ] - %h0.0.lcssa = phi i64 [ %1, %entry ], [ %and75, %while.body ] - store i64 %h0.0.lcssa, ptr %h, align 8 - store i64 %h1.0.lcssa, ptr %arrayidx9, align 8 - store i64 %h2.0.lcssa, ptr %arrayidx11, align 8 +while.end: ; preds = %while.body + store i64 %and75, ptr %h, align 8 + store i64 %add76, ptr %arrayidx9, align 8 + store i64 %and71, ptr %arrayidx11, align 8 ret void } diff --git a/bench/lief/optimized/CoreAuxv.cpp.ll b/bench/lief/optimized/CoreAuxv.cpp.ll index ac1571ec8b5..e44c42a8be9 100644 --- a/bench/lief/optimized/CoreAuxv.cpp.ll +++ b/bench/lief/optimized/CoreAuxv.cpp.ll @@ -2721,9 +2721,7 @@ _ZNK6frozen3mapIN4LIEF3ELF8CoreAuxv4TYPEEPKcLm30ESt4lessIS4_EE4findIS4_EEPKSt4pa %38 = phi i32 [ %.pre.i.i.i, %_ZNK6frozen3mapIN4LIEF3ELF8CoreAuxv4TYPEEPKcLm30ESt4lessIS4_EE11lower_boundIS4_EEPKSt4pairIS4_S6_ERKT_.exit._crit_edge.i.i.i ], [ 32, %28 ] %.0.i.i.i.i14.i.i.i.idx = phi i64 [ %.0.i.i.i.i.idx38.i.i.i, %_ZNK6frozen3mapIN4LIEF3ELF8CoreAuxv4TYPEEPKcLm30ESt4lessIS4_EE11lower_boundIS4_EEPKSt4pairIS4_S6_ERKT_.exit._crit_edge.i.i.i ], [ 456, %28 ] %.not34.i.i.i = icmp slt i32 %25, %38 - %.not.i46 = icmp eq i64 %.0.i.i.i.i14.i.i.i.idx, 488 - %.not.i = or i1 %.not34.i.i.i, %.not.i46 - br i1 %.not.i, label %41, label %39 + br i1 %.not34.i.i.i, label %41, label %39 39: ; preds = %_ZNK6frozen3mapIN4LIEF3ELF8CoreAuxv4TYPEEPKcLm30ESt4lessIS4_EE4findIS4_EEPKSt4pairIS4_S6_ERKT_.exit.i %gep47 = getelementptr i8, ptr getelementptr inbounds nuw (i8, ptr @__const._ZN4LIEF3ELF9to_stringENS0_8CoreAuxv4TYPEE.enums2str, i64 8), i64 %.0.i.i.i.i14.i.i.i.idx diff --git a/bench/linux/optimized/e1000_ethtool.ll b/bench/linux/optimized/e1000_ethtool.ll index 8c967864fdc..b4ed04c049a 100644 --- a/bench/linux/optimized/e1000_ethtool.ll +++ b/bench/linux/optimized/e1000_ethtool.ll @@ -904,7 +904,7 @@ define internal noundef range(i32 -95, 1) i32 @e1000_set_coalesce(ptr nocapture %6 = getelementptr i8, ptr %0, i64 3488 %7 = load i32, ptr %6, align 8 %8 = icmp ult i32 %7, 6 - br i1 %8, label %43, label %9 + br i1 %8, label %40, label %9 9: ; preds = %4 %10 = getelementptr inbounds nuw i8, ptr %1, i64 4 @@ -913,66 +913,61 @@ define internal noundef range(i32 -95, 1) i32 @e1000_set_coalesce(ptr nocapture %13 = add nsw i32 %11, -5 %14 = icmp ult i32 %13, 5 %15 = select i1 %12, i1 true, i1 %14 - br i1 %15, label %43, label %16 + br i1 %15, label %40, label %16 16: ; preds = %9 - switch i32 %11, label %19 [ - i32 2, label %43 - i32 4, label %.thread + switch i32 %11, label %20 [ + i32 2, label %40 + i32 4, label %17 ] -.thread: ; preds = %16 - %17 = getelementptr i8, ptr %0, i64 2868 - store i32 4, ptr %17, align 4 - %18 = getelementptr i8, ptr %0, i64 2864 - store i32 4, ptr %18, align 8 - br label %35 - -19: ; preds = %16 - %20 = icmp samesign ult i32 %11, 4 - br i1 %20, label %21, label %25 - -21: ; preds = %19 - %22 = getelementptr i8, ptr %0, i64 2864 - store i32 20000, ptr %22, align 8 - %23 = load i32, ptr %10, align 4 - %24 = getelementptr i8, ptr %0, i64 2868 - store i32 %23, ptr %24, align 4 - br label %31 - -25: ; preds = %19 - %26 = udiv i32 1000000, %11 - %27 = getelementptr i8, ptr %0, i64 2864 - store i32 %26, ptr %27, align 8 - %28 = and i32 %26, 1048572 - %29 = getelementptr i8, ptr %0, i64 2868 - store i32 %28, ptr %29, align 4 - %30 = shl nuw nsw i32 %26, 8 - br label %31 - -31: ; preds = %25, %21 - %32 = phi i32 [ %30, %25 ], [ 5120000, %21 ] - %33 = phi i32 [ %28, %25 ], [ %23, %21 ] - %34 = icmp eq i32 %33, 0 - br i1 %34, label %40, label %35 +17: ; preds = %16 + %18 = getelementptr i8, ptr %0, i64 2868 + store i32 4, ptr %18, align 4 + %19 = getelementptr i8, ptr %0, i64 2864 + store i32 4, ptr %19, align 8 + br label %.thread + +20: ; preds = %16 + %21 = icmp samesign ult i32 %11, 4 + br i1 %21, label %28, label %22 + +22: ; preds = %20 + %23 = udiv i32 1000000, %11 + %24 = getelementptr i8, ptr %0, i64 2864 + store i32 %23, ptr %24, align 8 + %25 = and i32 %23, 1048572 + %26 = getelementptr i8, ptr %0, i64 2868 + store i32 %25, ptr %26, align 4 + %27 = shl nuw nsw i32 %23, 8 + br label %.thread -35: ; preds = %.thread, %31 - %36 = phi i32 [ 1024, %.thread ], [ %32, %31 ] - %37 = udiv i32 1000000000, %36 +28: ; preds = %20 + %29 = getelementptr i8, ptr %0, i64 2864 + store i32 20000, ptr %29, align 8 + %30 = load i32, ptr %10, align 4 + %31 = getelementptr i8, ptr %0, i64 2868 + store i32 %30, ptr %31, align 4 + %32 = icmp eq i32 %30, 0 + br i1 %32, label %37, label %.thread + +.thread: ; preds = %17, %22, %28 + %33 = phi i32 [ 5120000, %28 ], [ 1024, %17 ], [ %27, %22 ] + %34 = udiv i32 1000000000, %33 + %35 = load ptr, ptr %5, align 8 + %36 = getelementptr i8, ptr %35, i64 196 + tail call void asm sideeffect "movl $0,$1", "r,*m,~{memory},~{dirflag},~{fpsr},~{flags}"(i32 %34, ptr elementtype(i32) %36) #18, !srcloc !13 + br label %40 + +37: ; preds = %28 %38 = load ptr, ptr %5, align 8 %39 = getelementptr i8, ptr %38, i64 196 - tail call void asm sideeffect "movl $0,$1", "r,*m,~{memory},~{dirflag},~{fpsr},~{flags}"(i32 %37, ptr elementtype(i32) %39) #18, !srcloc !13 - br label %43 - -40: ; preds = %31 - %41 = load ptr, ptr %5, align 8 - %42 = getelementptr i8, ptr %41, i64 196 - tail call void asm sideeffect "movl $0,$1", "r,*m,~{memory},~{dirflag},~{fpsr},~{flags}"(i32 0, ptr elementtype(i32) %42) #18, !srcloc !13 - br label %43 + tail call void asm sideeffect "movl $0,$1", "r,*m,~{memory},~{dirflag},~{fpsr},~{flags}"(i32 0, ptr elementtype(i32) %39) #18, !srcloc !13 + br label %40 -43: ; preds = %40, %35, %16, %9, %4 - %44 = phi i32 [ -95, %4 ], [ -22, %16 ], [ -22, %9 ], [ 0, %40 ], [ 0, %35 ] - ret i32 %44 +40: ; preds = %37, %.thread, %16, %9, %4 + %41 = phi i32 [ -95, %4 ], [ -22, %16 ], [ -22, %9 ], [ 0, %37 ], [ 0, %.thread ] + ret i32 %41 } ; Function Attrs: fn_ret_thunk_extern mustprogress nofree norecurse nosync nounwind null_pointer_is_valid willreturn memory(read, argmem: readwrite, inaccessiblemem: none) diff --git a/bench/linux/optimized/intel_reset.ll b/bench/linux/optimized/intel_reset.ll index 5c7c03e4c05..32c216fb7d2 100644 --- a/bench/linux/optimized/intel_reset.ll +++ b/bench/linux/optimized/intel_reset.ll @@ -2672,79 +2672,72 @@ define internal i32 @gen8_reset_engines(ptr nocapture noundef readonly %0, i32 n .thread12: ; preds = %.lr.ph, %109, %108 %128 = phi i32 [ 1, %108 ], [ 0, %109 ], [ %126, %.lr.ph ] %129 = load ptr, ptr %5, align 8 - %130 = zext nneg i8 %104 to i32 - %131 = shl nuw nsw i32 %130, 8 - %132 = getelementptr inbounds nuw i8, ptr %102, i64 7177 - %133 = load i8, ptr %132, align 1 - %134 = zext i8 %133 to i32 - %135 = or disjoint i32 %131, %134 - %136 = icmp samesign ugt i32 %135, 3141 - %137 = getelementptr inbounds nuw i8, ptr %129, i64 36 - br label %138 - -138: ; preds = %138, %.thread12 - %139 = phi i1 [ %136, %.thread12 ], [ true, %138 ] - %140 = load i32, ptr %137, align 4 - %141 = add i32 %140, 37916 - %142 = load ptr, ptr %129, align 8 - %143 = zext i32 %141 to i64 - %144 = getelementptr i8, ptr %142, i64 %143 - tail call void asm sideeffect "movl $0,$1", "r,*m,~{memory},~{dirflag},~{fpsr},~{flags}"(i32 %128, ptr elementtype(i32) %144) #10, !srcloc !16 - %145 = tail call i32 @__intel_wait_for_register_fw(ptr noundef %129, i32 37916, i32 noundef %128, i32 noundef 0, i32 noundef 2000, i32 noundef 0, ptr noundef null) #10 - %146 = icmp ne i32 %145, 0 - %147 = select i1 %146, i1 true, i1 %139 - br i1 %147, label %148, label %138 - -148: ; preds = %138 + %130 = getelementptr inbounds nuw i8, ptr %129, i64 36 + br label %131 + +131: ; preds = %131, %.thread12 + %132 = phi i1 [ false, %.thread12 ], [ true, %131 ] + %133 = load i32, ptr %130, align 4 + %134 = add i32 %133, 37916 + %135 = load ptr, ptr %129, align 8 + %136 = zext i32 %134 to i64 + %137 = getelementptr i8, ptr %135, i64 %136 + tail call void asm sideeffect "movl $0,$1", "r,*m,~{memory},~{dirflag},~{fpsr},~{flags}"(i32 %128, ptr elementtype(i32) %137) #10, !srcloc !16 + %138 = tail call i32 @__intel_wait_for_register_fw(ptr noundef %129, i32 37916, i32 noundef %128, i32 noundef 0, i32 noundef 2000, i32 noundef 0, ptr noundef null) #10 + %139 = icmp ne i32 %138, 0 + %140 = or i1 %132, %139 + br i1 %140, label %141, label %131 + +141: ; preds = %131 tail call void @__const_udelay(i64 noundef 214750) #10 br label %.loopexit -.loopexit: ; preds = %86, %148, %106 - %149 = phi i32 [ %107, %106 ], [ %145, %148 ], [ %87, %86 ] - %150 = load i32, ptr %9, align 4 - %151 = and i32 %150, %1 - %152 = icmp eq i32 %151, 0 - br i1 %152, label %._crit_edge, label %.lr.ph16 - -.lr.ph16: ; preds = %.loopexit, %173 - %153 = phi i32 [ %159, %173 ], [ %151, %.loopexit ] - %154 = tail call i32 asm "bsfl $1,$0", "=r,rm,0,~{dirflag},~{fpsr},~{flags}"(i32 %153, i32 -1) #13, !srcloc !39 - %155 = zext nneg i32 %154 to i64 - %156 = shl nuw i64 1, %155 - %157 = trunc i64 %156 to i32 - %158 = xor i32 %157, -1 - %159 = and i32 %153, %158 - %160 = sext i32 %154 to i64 - %161 = getelementptr [27 x ptr], ptr %12, i64 0, i64 %160 - %162 = load ptr, ptr %161, align 8 - %163 = getelementptr inbounds nuw i8, ptr %162, i64 16 - %164 = load ptr, ptr %163, align 8 - %165 = getelementptr inbounds nuw i8, ptr %162, i64 72 - %166 = load i32, ptr %165, align 8 - %167 = add i32 %166, 208 - %168 = icmp ult i32 %167, 262144 - br i1 %168, label %169, label %173 - -169: ; preds = %.lr.ph16 - %170 = getelementptr inbounds nuw i8, ptr %164, i64 36 - %171 = load i32, ptr %170, align 4 - %172 = add i32 %171, %167 - br label %173 - -173: ; preds = %169, %.lr.ph16 - %174 = phi i32 [ %172, %169 ], [ %167, %.lr.ph16 ] - %175 = load ptr, ptr %164, align 8 - %176 = zext i32 %174 to i64 - %177 = getelementptr i8, ptr %175, i64 %176 - tail call void asm sideeffect "movl $0,$1", "r,*m,~{memory},~{dirflag},~{fpsr},~{flags}"(i32 65536, ptr elementtype(i32) %177) #10, !srcloc !16 - %178 = icmp eq i32 %159, 0 - br i1 %178, label %._crit_edge, label %.lr.ph16, !llvm.loop !63 - -._crit_edge: ; preds = %173, %.loopexit - %179 = load ptr, ptr %5, align 8 - %180 = getelementptr inbounds nuw i8, ptr %179, i64 32 - tail call void @_raw_spin_unlock_irqrestore(ptr noundef nonnull %180, i64 noundef %8) #10 - ret i32 %149 +.loopexit: ; preds = %86, %141, %106 + %142 = phi i32 [ %107, %106 ], [ %138, %141 ], [ %87, %86 ] + %143 = load i32, ptr %9, align 4 + %144 = and i32 %143, %1 + %145 = icmp eq i32 %144, 0 + br i1 %145, label %._crit_edge, label %.lr.ph16 + +.lr.ph16: ; preds = %.loopexit, %166 + %146 = phi i32 [ %152, %166 ], [ %144, %.loopexit ] + %147 = tail call i32 asm "bsfl $1,$0", "=r,rm,0,~{dirflag},~{fpsr},~{flags}"(i32 %146, i32 -1) #13, !srcloc !39 + %148 = zext nneg i32 %147 to i64 + %149 = shl nuw i64 1, %148 + %150 = trunc i64 %149 to i32 + %151 = xor i32 %150, -1 + %152 = and i32 %146, %151 + %153 = sext i32 %147 to i64 + %154 = getelementptr [27 x ptr], ptr %12, i64 0, i64 %153 + %155 = load ptr, ptr %154, align 8 + %156 = getelementptr inbounds nuw i8, ptr %155, i64 16 + %157 = load ptr, ptr %156, align 8 + %158 = getelementptr inbounds nuw i8, ptr %155, i64 72 + %159 = load i32, ptr %158, align 8 + %160 = add i32 %159, 208 + %161 = icmp ult i32 %160, 262144 + br i1 %161, label %162, label %166 + +162: ; preds = %.lr.ph16 + %163 = getelementptr inbounds nuw i8, ptr %157, i64 36 + %164 = load i32, ptr %163, align 4 + %165 = add i32 %164, %160 + br label %166 + +166: ; preds = %162, %.lr.ph16 + %167 = phi i32 [ %165, %162 ], [ %160, %.lr.ph16 ] + %168 = load ptr, ptr %157, align 8 + %169 = zext i32 %167 to i64 + %170 = getelementptr i8, ptr %168, i64 %169 + tail call void asm sideeffect "movl $0,$1", "r,*m,~{memory},~{dirflag},~{fpsr},~{flags}"(i32 65536, ptr elementtype(i32) %170) #10, !srcloc !16 + %171 = icmp eq i32 %152, 0 + br i1 %171, label %._crit_edge, label %.lr.ph16, !llvm.loop !63 + +._crit_edge: ; preds = %166, %.loopexit + %172 = load ptr, ptr %5, align 8 + %173 = getelementptr inbounds nuw i8, ptr %172, i64 32 + tail call void @_raw_spin_unlock_irqrestore(ptr noundef nonnull %173, i64 noundef %8) #10 + ret i32 %142 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid diff --git a/bench/linux/optimized/io_uring.ll b/bench/linux/optimized/io_uring.ll index d2857d0d7ea..304f33a3ff9 100644 --- a/bench/linux/optimized/io_uring.ll +++ b/bench/linux/optimized/io_uring.ll @@ -13031,7 +13031,7 @@ declare dso_local i32 @schedule_hrtimeout(ptr noundef, i32 noundef) local_unname declare dso_local void @__set_current_blocked(ptr noundef) local_unnamed_addr #0 ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid -define internal range(i32 0, 512) i32 @io_uring_poll(ptr noundef %0, ptr noundef %1) #1 align 16 { +define internal range(i32 0, 384) i32 @io_uring_poll(ptr noundef %0, ptr noundef %1) #1 align 16 { %3 = getelementptr inbounds nuw i8, ptr %0, i64 200 %4 = load ptr, ptr %3, align 8 %5 = getelementptr inbounds nuw i8, ptr %4, i64 4 @@ -14894,56 +14894,52 @@ define internal fastcc i32 @io_allocate_scq_urings(ptr nocapture noundef nonnull %6 = load i32, ptr %5, align 4 %7 = getelementptr inbounds nuw i8, ptr %0, i64 404 store i32 %6, ptr %7, align 4 - %8 = zext i32 %6 to i64 - %9 = shl nuw nsw i64 %8, 4 - %10 = add nuw nsw i64 %9, 64 - %11 = load i32, ptr %0, align 64 - %12 = lshr i32 %11, 11 - %13 = and i32 %12, 1 - %14 = zext nneg i32 %13 to i64 - %15 = shl nuw nsw i64 %10, %14 - %16 = add nuw nsw i64 %15, 63 - %17 = and i64 %16, 549755813824 - %18 = icmp eq i64 %17, 0 - br i1 %18, label %100, label %19 - -19: ; preds = %2 - %20 = load i32, ptr %1, align 8 - %21 = and i32 %11, 65536 - %22 = icmp eq i32 %21, 0 - %23 = zext i32 %20 to i64 - %24 = shl nuw nsw i64 %23, 2 - %.ph = select i1 %22, i64 %17, i64 -1 - %25 = select i1 %22, i64 %24, i64 0 - %.ph5 = add nuw nsw i64 %25, %17 - %26 = and i32 %11, 16384 + %8 = load i32, ptr %1, align 8 + %9 = zext i32 %6 to i64 + %10 = shl nuw nsw i64 %9, 4 + %11 = add nuw nsw i64 %10, 64 + %12 = load i32, ptr %0, align 64 + %13 = lshr i32 %12, 11 + %14 = and i32 %13, 1 + %15 = zext nneg i32 %14 to i64 + %16 = shl nuw nsw i64 %11, %15 + %17 = add nuw nsw i64 %16, 63 + %18 = and i64 %17, 549755813824 + %19 = and i32 %12, 65536 + %20 = icmp eq i32 %19, 0 + %21 = zext i32 %8 to i64 + %22 = shl nuw nsw i64 %21, 2 + %23 = select i1 %20, i64 %18, i64 -1 + %24 = select i1 %20, i64 %22, i64 0 + %25 = add nuw nsw i64 %18, %24 + %26 = and i32 %12, 16384 %27 = icmp eq i32 %26, 0 br i1 %27, label %28, label %36 -28: ; preds = %19 - %29 = add nsw i64 %.ph5, -1 +28: ; preds = %2 + %29 = add nsw i64 %25, -1 %30 = lshr i64 %29, 12 %31 = tail call i32 asm "bsrq $1,${0:q}", "=r,rm,0,~{dirflag},~{fpsr},~{flags}"(i64 %30, i32 -1) #25, !srcloc !137 %32 = add i32 %31, 1 %33 = tail call i64 @__get_free_pages(i32 noundef 4468160, i32 noundef %32) #24 %34 = icmp eq i64 %33, 0 %35 = inttoptr i64 %33 to ptr - br i1 %34, label %.thread6, label %42 + br i1 %34, label %.thread, label %42 -36: ; preds = %19 +36: ; preds = %2 %37 = getelementptr inbounds nuw i8, ptr %1, i64 112 %38 = load i64, ptr %37, align 8 %39 = getelementptr inbounds nuw i8, ptr %0, i64 1472 %40 = getelementptr inbounds nuw i8, ptr %0, i64 1464 - %41 = tail call fastcc ptr @__io_uaddr_map(ptr noundef nonnull %39, ptr noundef nonnull %40, i64 noundef %38, i64 noundef %.ph5) + %41 = tail call fastcc ptr @__io_uaddr_map(ptr noundef nonnull %39, ptr noundef nonnull %40, i64 noundef %38, i64 noundef %25) br label %42 42: ; preds = %28, %36 %43 = phi ptr [ %41, %36 ], [ %35, %28 ] %44 = icmp ugt ptr %43, inttoptr (i64 -4096 to ptr) - br i1 %44, label %.thread6, label %48 + br i1 %44, label %.thread, label %48 -.thread6: ; preds = %28, %42 +.thread: ; preds = %28, %42 %45 = phi ptr [ %43, %42 ], [ inttoptr (i64 -12 to ptr), %28 ] %46 = ptrtoint ptr %45 to i64 %47 = trunc i64 %46 to i32 @@ -14958,7 +14954,7 @@ define internal fastcc i32 @io_allocate_scq_urings(ptr nocapture noundef nonnull br i1 %52, label %53, label %56 53: ; preds = %48 - %54 = getelementptr i8, ptr %43, i64 %.ph + %54 = getelementptr i8, ptr %43, i64 %23 %55 = getelementptr inbounds nuw i8, ptr %0, i64 96 store ptr %54, ptr %55, align 32 br label %56 @@ -14999,7 +14995,7 @@ define internal fastcc i32 @io_allocate_scq_urings(ptr nocapture noundef nonnull %83 = tail call i64 @__get_free_pages(i32 noundef 4468160, i32 noundef %82) #24 %84 = icmp eq i64 %83, 0 %85 = inttoptr i64 %83 to ptr - br i1 %84, label %.thread8, label %92 + br i1 %84, label %.thread6, label %92 86: ; preds = %56 %87 = getelementptr inbounds nuw i8, ptr %1, i64 72 @@ -15012,9 +15008,9 @@ define internal fastcc i32 @io_allocate_scq_urings(ptr nocapture noundef nonnull 92: ; preds = %78, %86 %93 = phi ptr [ %91, %86 ], [ %85, %78 ] %94 = icmp ugt ptr %93, inttoptr (i64 -4096 to ptr) - br i1 %94, label %.thread8, label %98 + br i1 %94, label %.thread6, label %98 -.thread8: ; preds = %78, %92 +.thread6: ; preds = %78, %92 %95 = phi ptr [ %93, %92 ], [ inttoptr (i64 -12 to ptr), %78 ] tail call fastcc void @io_rings_free(ptr noundef nonnull %0) %96 = ptrtoint ptr %95 to i64 @@ -15026,8 +15022,8 @@ define internal fastcc i32 @io_allocate_scq_urings(ptr nocapture noundef nonnull store ptr %93, ptr %99, align 8 br label %100 -100: ; preds = %2, %98, %.thread8, %.thread6 - %101 = phi i32 [ %47, %.thread6 ], [ %97, %.thread8 ], [ 0, %98 ], [ -75, %2 ] +100: ; preds = %98, %.thread6, %.thread + %101 = phi i32 [ %47, %.thread ], [ %97, %.thread6 ], [ 0, %98 ] ret i32 %101 } diff --git a/bench/linux/optimized/seccomp.ll b/bench/linux/optimized/seccomp.ll index 8bbe57cfd1c..9ab2fd4712b 100644 --- a/bench/linux/optimized/seccomp.ll +++ b/bench/linux/optimized/seccomp.ll @@ -2965,7 +2965,7 @@ define internal fastcc void @seccomp_cache_prepare_bitmap(ptr %.152.val.64.val, 14: ; preds = %.thread3.us, %.split.us %15 = add nuw nsw i64 %10, 1 %16 = icmp eq i64 %15, 462 - br i1 %16, label %.split7.us, label %.split.us, !llvm.loop !84 + br i1 %16, label %.split8.us, label %.split.us, !llvm.loop !84 .split: ; preds = %7, %68 %17 = phi i64 [ %69, %68 ], [ 0, %7 ] @@ -3030,7 +3030,7 @@ define internal fastcc void @seccomp_cache_prepare_bitmap(ptr %.152.val.64.val, %45 = zext nneg i16 %44 to i32 %46 = add nsw i32 %45, -16 %47 = lshr exact i32 %46, 4 - switch i32 %47, label %.thread3 [ + switch i32 %47, label %default.unreachable [ i32 0, label %48 i32 2, label %50 i32 1, label %52 @@ -3077,16 +3077,19 @@ define internal fastcc void @seccomp_cache_prepare_bitmap(ptr %.152.val.64.val, %67 = icmp eq i32 %38, 2147418112 br i1 %67, label %68, label %.thread3 -.thread3: ; preds = %31, %43, %39, %66, %.loopexit +default.unreachable: ; preds = %43 + unreachable + +.thread3: ; preds = %31, %39, %66, %.loopexit tail call void asm sideeffect " btrq $1,$0", "*m,Ir,~{memory},~{dirflag},~{fpsr},~{flags}"(ptr elementtype(i64) %0, i64 %17) #14, !srcloc !83 br label %68 68: ; preds = %.thread3, %66, %.split %69 = add nuw nsw i64 %17, 1 %70 = icmp eq i64 %69, 462 - br i1 %70, label %.split7.us, label %.split, !llvm.loop !84 + br i1 %70, label %.split8.us, label %.split, !llvm.loop !84 -.split7.us: ; preds = %68, %14 +.split8.us: ; preds = %68, %14 ret void } diff --git a/bench/llvm/optimized/AArch64A53Fix835769.cpp.ll b/bench/llvm/optimized/AArch64A53Fix835769.cpp.ll index a563194232a..c04970d9e3d 100644 --- a/bench/llvm/optimized/AArch64A53Fix835769.cpp.ll +++ b/bench/llvm/optimized/AArch64A53Fix835769.cpp.ll @@ -1033,8 +1033,6 @@ _ZL18getBBFallenThroughPN4llvm17MachineBasicBlockEPKNS_15TargetInstrInfoE.exit: %.0.copyload.i.i.i.i.i.i.i.i.i.i.i.i.i = load i64, ptr %40, align 8 %41 = and i64 %.0.copyload.i.i.i.i.i.i.i.i.i.i.i.i.i, -8 %42 = inttoptr i64 %41 to ptr - %.not.i.i.i.i.i.i.i.i.i = icmp ne i64 %41, 0 - call void @llvm.assume(i1 %.not.i.i.i.i.i.i.i.i.i) %.0.copyload.i.i.i.i.i.i.i.i.i.i.i.i.i.i = load i64, ptr %42, align 8 %43 = and i64 %.0.copyload.i.i.i.i.i.i.i.i.i.i.i.i.i.i, 4 %.not.i.i.i.i.i.i.i.i = icmp eq i64 %43, 0 @@ -1077,8 +1075,6 @@ _ZN4llvm7reverseIRNS_17MachineBasicBlockEEEDaOT_.exit: ; preds = %_ZNK4llvm14ili %.0.copyload.i.i.i.i.i.i.i.i.i.i.i = load i64, ptr %.sroa.012.024, align 8 %58 = and i64 %.0.copyload.i.i.i.i.i.i.i.i.i.i.i, -8 %59 = inttoptr i64 %58 to ptr - %.not.i.i.i.i.i = icmp ne i64 %58, 0 - call void @llvm.assume(i1 %.not.i.i.i.i.i) %.0.copyload.i.i.i.i.i.i.i.i.i.i = load i64, ptr %59, align 8 %60 = and i64 %.0.copyload.i.i.i.i.i.i.i.i.i.i, 4 %.not.i.i.i.i = icmp eq i64 %60, 0 diff --git a/bench/llvm/optimized/DIE.cpp.ll b/bench/llvm/optimized/DIE.cpp.ll index 78d4173fd59..af5f36cca80 100644 --- a/bench/llvm/optimized/DIE.cpp.ll +++ b/bench/llvm/optimized/DIE.cpp.ll @@ -1055,9 +1055,7 @@ select.unfold.i.i: ; preds = %2 %7 = icmp eq i64 %6, 0 %8 = and i64 %.sroa.0.0.copyload.i.i.i.i.i.i, -8 %9 = inttoptr i64 %8 to ptr - %.not10.i.i = icmp ne i64 %8, 0 tail call void @llvm.assume(i1 %7) - tail call void @llvm.assume(i1 %.not10.i.i) br label %2 _ZNK4llvm3DIE10getUnitDieEv.exit.i: ; preds = %2, %2, %2 @@ -3157,9 +3155,7 @@ select.unfold.i.i.i: ; preds = %22 %27 = icmp eq i64 %26, 0 %28 = and i64 %.sroa.0.0.copyload.i.i.i.i.i.i.i, -8 %29 = inttoptr i64 %28 to ptr - %.not10.i.i.i = icmp ne i64 %28, 0 tail call void @llvm.assume(i1 %27) - tail call void @llvm.assume(i1 %.not10.i.i.i) br label %22 _ZNK4llvm3DIE21getDebugSectionOffsetEv.exit: ; preds = %22, %22, %22 @@ -3195,9 +3191,7 @@ select.unfold.i.i: ; preds = %40 %45 = icmp eq i64 %44, 0 %46 = and i64 %.sroa.0.0.copyload.i.i.i.i.i.i, -8 %47 = inttoptr i64 %46 to ptr - %.not10.i.i = icmp ne i64 %46, 0 tail call void @llvm.assume(i1 %45) - tail call void @llvm.assume(i1 %.not10.i.i) br label %40 _ZNK4llvm3DIE10getUnitDieEv.exit.i: ; preds = %40, %40, %40 diff --git a/bench/llvm/optimized/Interp.cpp.ll b/bench/llvm/optimized/Interp.cpp.ll index fccad1f37a3..5176bc694fe 100644 --- a/bench/llvm/optimized/Interp.cpp.ll +++ b/bench/llvm/optimized/Interp.cpp.ll @@ -22537,9 +22537,7 @@ _ZNK5clang6interp7Pointer12getFieldDescEv.exit: ; preds = %126, %_ZNK5clang6in %156 = icmp eq i64 %155, 0 %157 = and i64 %.sroa.0.0.copyload.i.i.i.i.i58, -8 %158 = inttoptr i64 %157 to ptr - %.not.i8.i59 = icmp ne i64 %157, 0 call void @llvm.assume(i1 %156) - call void @llvm.assume(i1 %.not.i8.i59) %159 = getelementptr inbounds nuw i8, ptr %158, i64 28 %160 = load i32, ptr %159, align 4 %161 = and i32 %160, 124 diff --git a/bench/luau/optimized/AssemblyBuilderX64.cpp.ll b/bench/luau/optimized/AssemblyBuilderX64.cpp.ll index b868e26b379..ecbeb1dfa78 100644 --- a/bench/luau/optimized/AssemblyBuilderX64.cpp.ll +++ b/bench/luau/optimized/AssemblyBuilderX64.cpp.ll @@ -6159,7 +6159,7 @@ _ZNSt6vectorIjSaIjEE9push_backEOj.exit: ; preds = %_ZNSt6vectorIjSaIjE } ; Function Attrs: mustprogress uwtable -define dso_local range(i64 318799873, 0) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX643i32Ei(ptr noundef nonnull align 8 dereferenceable(252) %0, i32 noundef %1) local_unnamed_addr #0 align 2 { +define dso_local range(i64 318799873, -2147483648) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX643i32Ei(ptr noundef nonnull align 8 dereferenceable(252) %0, i32 noundef %1) local_unnamed_addr #0 align 2 { %.not = icmp eq i32 %1, -1 br i1 %.not, label %_ZN4Luau12DenseHashMapIjiSt4hashIjESt8equal_toIjEE4findERKj.exit.thread, label %3 @@ -6392,7 +6392,7 @@ define dso_local noundef i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX6412allocate } ; Function Attrs: mustprogress uwtable -define dso_local range(i64 335577089, 0) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX643i64El(ptr noundef nonnull align 8 dereferenceable(252) %0, i64 noundef %1) local_unnamed_addr #0 align 2 { +define dso_local range(i64 335577089, -2147483648) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX643i64El(ptr noundef nonnull align 8 dereferenceable(252) %0, i64 noundef %1) local_unnamed_addr #0 align 2 { %.not = icmp eq i64 %1, -1 br i1 %.not, label %_ZN4Luau12DenseHashMapImiSt4hashImESt8equal_toImEE4findERKm.exit.thread, label %3 @@ -6588,7 +6588,7 @@ _ZN4Luau12DenseHashMapImiSt4hashImESt8equal_toImEEixERKm.exit: ; preds = %.lr.ph } ; Function Attrs: mustprogress uwtable -define dso_local range(i64 318799873, 0) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX643f32Ef(ptr noundef nonnull align 8 dereferenceable(252) %0, float noundef %1) local_unnamed_addr #0 align 2 { +define dso_local range(i64 318799873, -2147483648) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX643f32Ef(ptr noundef nonnull align 8 dereferenceable(252) %0, float noundef %1) local_unnamed_addr #0 align 2 { %3 = bitcast float %1 to i32 %.not = icmp eq i32 %3, -1 br i1 %.not, label %_ZN4Luau12DenseHashMapIjiSt4hashIjESt8equal_toIjEE4findERKj.exit.thread, label %4 @@ -6788,7 +6788,7 @@ _ZN4Luau12DenseHashMapIjiSt4hashIjESt8equal_toIjEEixERKj.exit: ; preds = %.lr.ph } ; Function Attrs: mustprogress uwtable -define dso_local range(i64 335577089, 0) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX643f64Ed(ptr noundef nonnull align 8 dereferenceable(252) %0, double noundef %1) local_unnamed_addr #0 align 2 { +define dso_local range(i64 335577089, -2147483648) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX643f64Ed(ptr noundef nonnull align 8 dereferenceable(252) %0, double noundef %1) local_unnamed_addr #0 align 2 { %3 = bitcast double %1 to i64 %.not = icmp eq i64 %3, -1 br i1 %.not, label %_ZN4Luau12DenseHashMapImiSt4hashImESt8equal_toImEE4findERKm.exit.thread, label %4 @@ -6985,7 +6985,7 @@ _ZN4Luau12DenseHashMapImiSt4hashImESt8equal_toImEEixERKm.exit: ; preds = %.lr.ph } ; Function Attrs: mustprogress uwtable -define dso_local range(i64 352354305, 0) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX645u32x4Ejjjj(ptr noundef nonnull align 8 dereferenceable(252) %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4) local_unnamed_addr #0 align 2 { +define dso_local range(i64 352354305, -2147483648) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX645u32x4Ejjjj(ptr noundef nonnull align 8 dereferenceable(252) %0, i32 noundef %1, i32 noundef %2, i32 noundef %3, i32 noundef %4) local_unnamed_addr #0 align 2 { %6 = getelementptr inbounds nuw i8, ptr %0, i64 224 %7 = load i64, ptr %6, align 8 %8 = icmp ult i64 %7, 16 @@ -7042,7 +7042,7 @@ _ZN4Luau7CodeGen3X6418AssemblyBuilderX6412allocateDataEmm.exit: ; preds = %5, %9 } ; Function Attrs: mustprogress uwtable -define dso_local range(i64 352354305, 0) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX645f32x4Effff(ptr noundef nonnull align 8 dereferenceable(252) %0, float noundef %1, float noundef %2, float noundef %3, float noundef %4) local_unnamed_addr #0 align 2 { +define dso_local range(i64 352354305, -2147483648) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX645f32x4Effff(ptr noundef nonnull align 8 dereferenceable(252) %0, float noundef %1, float noundef %2, float noundef %3, float noundef %4) local_unnamed_addr #0 align 2 { %6 = getelementptr inbounds nuw i8, ptr %0, i64 224 %7 = load i64, ptr %6, align 8 %8 = icmp ult i64 %7, 16 @@ -7099,7 +7099,7 @@ _ZN4Luau7CodeGen3X6418AssemblyBuilderX6412allocateDataEmm.exit: ; preds = %5, %9 } ; Function Attrs: mustprogress uwtable -define dso_local range(i64 352354305, 0) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX645f64x2Edd(ptr noundef nonnull align 8 dereferenceable(252) %0, double noundef %1, double noundef %2) local_unnamed_addr #0 align 2 { +define dso_local range(i64 352354305, -2147483648) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX645f64x2Edd(ptr noundef nonnull align 8 dereferenceable(252) %0, double noundef %1, double noundef %2) local_unnamed_addr #0 align 2 { %4 = getelementptr inbounds nuw i8, ptr %0, i64 224 %5 = load i64, ptr %4, align 8 %6 = icmp ult i64 %5, 16 @@ -7148,7 +7148,7 @@ _ZN4Luau7CodeGen3X6418AssemblyBuilderX6412allocateDataEmm.exit: ; preds = %3, %7 } ; Function Attrs: mustprogress uwtable -define dso_local range(i64 268468225, 0) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX645bytesEPKvmm(ptr noundef nonnull align 8 dereferenceable(252) %0, ptr nocapture noundef readonly %1, i64 noundef %2, i64 noundef %3) local_unnamed_addr #0 align 2 { +define dso_local range(i64 268468225, -2147483648) i64 @_ZN4Luau7CodeGen3X6418AssemblyBuilderX645bytesEPKvmm(ptr noundef nonnull align 8 dereferenceable(252) %0, ptr nocapture noundef readonly %1, i64 noundef %2, i64 noundef %3) local_unnamed_addr #0 align 2 { %5 = getelementptr inbounds nuw i8, ptr %0, i64 224 %6 = load i64, ptr %5, align 8 %7 = icmp ult i64 %6, %2 diff --git a/bench/lvgl/optimized/lv_style.ll b/bench/lvgl/optimized/lv_style.ll index d94deec84c2..7adba83a02d 100644 --- a/bench/lvgl/optimized/lv_style.ll +++ b/bench/lvgl/optimized/lv_style.ll @@ -51,46 +51,39 @@ declare void @lv_free(ptr noundef) local_unnamed_addr #1 define zeroext i8 @lv_style_register_prop(i8 noundef zeroext %0) local_unnamed_addr #0 { %2 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @lv_global, i64 88), align 8, !tbaa !10 %3 = icmp eq ptr %2, null - br i1 %3, label %.thread22, label %.thread20 + br i1 %3, label %4, label %.thread18 -.thread22: ; preds = %1 +4: ; preds = %1 store i32 0, ptr getelementptr inbounds nuw (i8, ptr @lv_global, i64 76), align 4, !tbaa !21 store i32 140, ptr getelementptr inbounds nuw (i8, ptr @lv_global, i64 80), align 8, !tbaa !22 - br label %10 + br label %7 -.thread20: ; preds = %1 +.thread18: ; preds = %1 %.pre = load i32, ptr getelementptr inbounds nuw (i8, ptr @lv_global, i64 80), align 8, !tbaa !22 - %.pre19 = load i32, ptr getelementptr inbounds nuw (i8, ptr @lv_global, i64 76), align 4, !tbaa !21 - %4 = add i32 %.pre, -139 - %5 = icmp ult i32 %.pre19, %4 - br i1 %5, label %6, label %.thread21 - -6: ; preds = %.thread20 - %7 = zext i32 %4 to i64 - %8 = add nuw nsw i64 %7, 31 - %9 = and i64 %8, 8589934560 - %.not = icmp eq i64 %9, 0 - br i1 %.not, label %.preheader, label %10 - -.preheader: ; preds = %6, %.preheader - br label %.preheader - -10: ; preds = %.thread22, %6 - %11 = phi i64 [ 32, %.thread22 ], [ %9, %6 ] + %.pre17 = load i32, ptr getelementptr inbounds nuw (i8, ptr @lv_global, i64 76), align 4, !tbaa !21 + %5 = add i32 %.pre, -139 + %6 = icmp ult i32 %.pre17, %5 + br i1 %6, label %7, label %.thread19 + +7: ; preds = %4, %.thread18 + %8 = phi i32 [ %5, %.thread18 ], [ 1, %4 ] + %9 = zext i32 %8 to i64 + %10 = add nuw nsw i64 %9, 31 + %11 = and i64 %10, 8589934560 %12 = tail call ptr @lv_realloc(ptr noundef %2, i64 noundef %11) #8 - %.not15 = icmp eq ptr %12, null - br i1 %.not15, label %.critedge, label %.thread + %.not = icmp eq ptr %12, null + br i1 %.not, label %.critedge, label %.thread -.thread: ; preds = %10 +.thread: ; preds = %7 store ptr %12, ptr getelementptr inbounds nuw (i8, ptr @lv_global, i64 88), align 8, !tbaa !10 %13 = trunc i64 %11 to i32 store i32 %13, ptr getelementptr inbounds nuw (i8, ptr @lv_global, i64 76), align 4, !tbaa !21 %14 = load i32, ptr getelementptr inbounds nuw (i8, ptr @lv_global, i64 80), align 8, !tbaa !22 - br label %.thread21 + br label %.thread19 -.thread21: ; preds = %.thread20, %.thread - %.pre.sink = phi i32 [ %14, %.thread ], [ %.pre, %.thread20 ] - %15 = phi ptr [ %12, %.thread ], [ %2, %.thread20 ] +.thread19: ; preds = %.thread18, %.thread + %.pre.sink = phi i32 [ %14, %.thread ], [ %.pre, %.thread18 ] + %15 = phi ptr [ %12, %.thread ], [ %2, %.thread18 ] %16 = add i32 %.pre.sink, 1 store i32 %16, ptr getelementptr inbounds nuw (i8, ptr @lv_global, i64 80), align 8, !tbaa !22 %17 = add i32 %.pre.sink, -140 @@ -101,8 +94,8 @@ define zeroext i8 @lv_style_register_prop(i8 noundef zeroext %0) local_unnamed_a %21 = trunc i32 %20 to i8 br label %.critedge -.critedge: ; preds = %10, %.thread21 - %.1 = phi i8 [ %21, %.thread21 ], [ 0, %10 ] +.critedge: ; preds = %7, %.thread19 + %.1 = phi i8 [ %21, %.thread19 ], [ 0, %7 ] ret i8 %.1 } diff --git a/bench/lvgl/optimized/lv_tlsf.ll b/bench/lvgl/optimized/lv_tlsf.ll index ad291714ca8..e9f43582719 100644 --- a/bench/lvgl/optimized/lv_tlsf.ll +++ b/bench/lvgl/optimized/lv_tlsf.ll @@ -367,21 +367,21 @@ define noundef ptr @lv_tlsf_add_pool(ptr noundef %0, ptr noundef %1, i64 noundef %18 = and i64 %12, -8 %19 = trunc nuw i64 %18 to i32 %20 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %19, i1 true) - %21 = sub nsw i32 26, %20 + %21 = sub nuw nsw i32 26, %20 %22 = zext nneg i32 %21 to i64 %23 = lshr i64 %18, %22 %24 = trunc i64 %23 to i32 %25 = xor i32 %24, 32 - %26 = sub nsw i32 24, %20 + %26 = sub nuw nsw i32 24, %20 br label %mapping_insert.exit.i mapping_insert.exit.i: ; preds = %17, %14 %.09.i.i = phi i32 [ 0, %14 ], [ %26, %17 ] %.0.i.i = phi i32 [ %16, %14 ], [ %25, %17 ] %27 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %28 = sext i32 %.09.i.i to i64 + %28 = zext nneg i32 %.09.i.i to i64 %29 = zext nneg i32 %.0.i.i to i64 - %30 = getelementptr inbounds [9 x [32 x ptr]], ptr %27, i64 0, i64 %28, i64 %29 + %30 = getelementptr inbounds nuw [9 x [32 x ptr]], ptr %27, i64 0, i64 %28, i64 %29 %31 = load ptr, ptr %30, align 8, !tbaa !12 %.not.i.i = icmp eq ptr %31, null br i1 %.not.i.i, label %.preheader.i.i, label %block_link_next.exit @@ -396,22 +396,22 @@ block_link_next.exit: ; preds = %mapping_insert.exit store ptr %0, ptr %33, align 8, !tbaa !20 %34 = getelementptr inbounds nuw i8, ptr %31, i64 24 store ptr %10, ptr %34, align 8, !tbaa !20 + %35 = ptrtoint ptr %32 to i64 store ptr %10, ptr %30, align 8, !tbaa !12 - %35 = shl nuw nsw i32 1, %.09.i.i - %36 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %37 = load i32, ptr %36, align 8, !tbaa !3 - %38 = or i32 %37, %35 - store i32 %38, ptr %36, align 8, !tbaa !3 - %39 = shl nuw i32 1, %.0.i.i - %40 = getelementptr inbounds nuw i8, ptr %0, i64 36 - %41 = getelementptr inbounds [9 x i32], ptr %40, i64 0, i64 %28 - %42 = load i32, ptr %41, align 4, !tbaa !11 - %43 = or i32 %42, %39 - store i32 %43, ptr %41, align 4, !tbaa !11 - %44 = ptrtoint ptr %32 to i64 + %36 = shl nuw nsw i32 1, %.09.i.i + %37 = getelementptr inbounds nuw i8, ptr %0, i64 32 + %38 = load i32, ptr %37, align 8, !tbaa !3 + %39 = or i32 %38, %36 + store i32 %39, ptr %37, align 8, !tbaa !3 + %40 = shl nuw i32 1, %.0.i.i + %41 = getelementptr inbounds nuw i8, ptr %0, i64 36 + %42 = getelementptr inbounds nuw [9 x i32], ptr %41, i64 0, i64 %28 + %43 = load i32, ptr %42, align 4, !tbaa !11 + %44 = or i32 %43, %40 + store i32 %44, ptr %42, align 4, !tbaa !11 %45 = and i64 %12, -8 %46 = add nsw i64 %45, -8 - %47 = add i64 %46, %44 + %47 = add i64 %46, %35 %48 = inttoptr i64 %47 to ptr store ptr %10, ptr %48, align 8, !tbaa !21 %49 = getelementptr inbounds nuw i8, ptr %48, i64 8 @@ -656,21 +656,21 @@ lv_tlsf_create.exit: ; preds = %13, %2 %29 = and i64 %23, -8 %30 = trunc nuw i64 %29 to i32 %31 = tail call range(i32 0, 33) i32 @llvm.ctlz.i32(i32 %30, i1 true) - %32 = sub nsw i32 26, %31 + %32 = sub nuw nsw i32 26, %31 %33 = zext nneg i32 %32 to i64 %34 = lshr i64 %29, %33 %35 = trunc i64 %34 to i32 %36 = xor i32 %35, 32 - %37 = sub nsw i32 24, %31 + %37 = sub nuw nsw i32 24, %31 br label %mapping_insert.exit.i.i mapping_insert.exit.i.i: ; preds = %28, %25 %.09.i.i.i = phi i32 [ 0, %25 ], [ %37, %28 ] %.0.i.i.i = phi i32 [ %27, %25 ], [ %36, %28 ] %38 = getelementptr inbounds nuw i8, ptr %.0.i, i64 72 - %39 = sext i32 %.09.i.i.i to i64 + %39 = zext nneg i32 %.09.i.i.i to i64 %40 = zext nneg i32 %.0.i.i.i to i64 - %41 = getelementptr inbounds [9 x [32 x ptr]], ptr %38, i64 0, i64 %39, i64 %40 + %41 = getelementptr inbounds nuw [9 x [32 x ptr]], ptr %38, i64 0, i64 %39, i64 %40 %42 = load ptr, ptr %41, align 8, !tbaa !12 %.not.i.i.i = icmp eq ptr %42, null br i1 %.not.i.i.i, label %.preheader.i.i.i, label %block_link_next.exit.i @@ -685,22 +685,22 @@ block_link_next.exit.i: ; preds = %mapping_insert.exit store ptr %.0.i, ptr %44, align 8, !tbaa !20 %45 = getelementptr inbounds nuw i8, ptr %42, i64 24 store ptr %21, ptr %45, align 8, !tbaa !20 + %46 = ptrtoint ptr %43 to i64 store ptr %21, ptr %41, align 8, !tbaa !12 - %46 = shl nuw nsw i32 1, %.09.i.i.i - %47 = getelementptr inbounds nuw i8, ptr %.0.i, i64 32 - %48 = load i32, ptr %47, align 8, !tbaa !3 - %49 = or i32 %48, %46 - store i32 %49, ptr %47, align 8, !tbaa !3 - %50 = shl nuw i32 1, %.0.i.i.i - %51 = getelementptr inbounds nuw i8, ptr %.0.i, i64 36 - %52 = getelementptr inbounds [9 x i32], ptr %51, i64 0, i64 %39 - %53 = load i32, ptr %52, align 4, !tbaa !11 - %54 = or i32 %53, %50 - store i32 %54, ptr %52, align 4, !tbaa !11 - %55 = ptrtoint ptr %43 to i64 + %47 = shl nuw nsw i32 1, %.09.i.i.i + %48 = getelementptr inbounds nuw i8, ptr %.0.i, i64 32 + %49 = load i32, ptr %48, align 8, !tbaa !3 + %50 = or i32 %49, %47 + store i32 %50, ptr %48, align 8, !tbaa !3 + %51 = shl nuw i32 1, %.0.i.i.i + %52 = getelementptr inbounds nuw i8, ptr %.0.i, i64 36 + %53 = getelementptr inbounds nuw [9 x i32], ptr %52, i64 0, i64 %39 + %54 = load i32, ptr %53, align 4, !tbaa !11 + %55 = or i32 %54, %51 + store i32 %55, ptr %53, align 4, !tbaa !11 %56 = and i64 %23, -8 %57 = add nsw i64 %56, -8 - %58 = add i64 %57, %55 + %58 = add i64 %57, %46 %59 = inttoptr i64 %58 to ptr store ptr %21, ptr %59, align 8, !tbaa !21 %60 = getelementptr inbounds nuw i8, ptr %59, i64 8 diff --git a/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll b/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll index 48bb00d62d8..f48984f3afc 100644 --- a/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll +++ b/bench/meilisearch-rs/optimized/134vr9xz294dqnvo.ll @@ -33140,17 +33140,15 @@ define hidden void @"_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padd %2 = load atomic i64, ptr %0 monotonic, align 128, !alias.scope !11593 %3 = and i64 %2, -8 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load i64, ptr %6, align 8, !noalias !11593, !noundef !4 - %8 = icmp eq i64 %7, 0 - br i1 %8, label %"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h6fe4b4616dae2ee2E.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i" + %5 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %6 = load i64, ptr %5, align 8, !noalias !11593, !noundef !4 + %7 = icmp eq i64 %6, 0 + br i1 %7, label %"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h6fe4b4616dae2ee2E.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i": ; preds = %1 - %9 = load ptr, ptr %4, align 8, !noalias !11593, !nonnull !4, !noundef !4 - %10 = shl nsw i64 %7, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %10, i64 noundef 8) #31, !noalias !11594 + %8 = load ptr, ptr %4, align 8, !noalias !11593, !nonnull !4, !noundef !4 + %9 = shl nsw i64 %6, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef %9, i64 noundef 8) #31, !noalias !11594 br label %"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h6fe4b4616dae2ee2E.llvm.4616129397091597767.exit" "_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17h6fe4b4616dae2ee2E.llvm.4616129397091597767.exit": ; preds = %1, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i" @@ -191192,17 +191190,15 @@ define hidden void @"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inne %2 = load atomic i64, ptr %0 monotonic, align 128, !alias.scope !85774 %3 = and i64 %2, -8 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load i64, ptr %6, align 8, !noalias !85774, !noundef !4 - %8 = icmp eq i64 %7, 0 - br i1 %8, label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h670f22425ef27b5aE.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i" + %5 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %6 = load i64, ptr %5, align 8, !noalias !85774, !noundef !4 + %7 = icmp eq i64 %6, 0 + br i1 %7, label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h670f22425ef27b5aE.llvm.4616129397091597767.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i": ; preds = %1 - %9 = load ptr, ptr %4, align 8, !noalias !85774, !nonnull !4, !noundef !4 - %10 = shl nsw i64 %7, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %10, i64 noundef 8) #31, !noalias !85777 + %8 = load ptr, ptr %4, align 8, !noalias !85774, !nonnull !4, !noundef !4 + %9 = shl nsw i64 %6, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef %9, i64 noundef 8) #31, !noalias !85777 br label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h670f22425ef27b5aE.llvm.4616129397091597767.exit" "_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h670f22425ef27b5aE.llvm.4616129397091597767.exit": ; preds = %1, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i" @@ -230228,17 +230224,15 @@ define hidden void @"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20 %2 = load atomic i64, ptr %0 monotonic, align 128 %3 = and i64 %2, -8 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load i64, ptr %6, align 8, !noundef !4 - %8 = icmp eq i64 %7, 0 - br i1 %8, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h20bffb5574f09686E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i" + %5 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %6 = load i64, ptr %5, align 8, !noundef !4 + %7 = icmp eq i64 %6, 0 + br i1 %7, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h20bffb5574f09686E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i": ; preds = %1 - %9 = load ptr, ptr %4, align 8, !nonnull !4, !noundef !4 - %10 = shl nsw i64 %7, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %10, i64 noundef 8) #31, !noalias !96892 + %8 = load ptr, ptr %4, align 8, !nonnull !4, !noundef !4 + %9 = shl nsw i64 %6, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef %9, i64 noundef 8) #31, !noalias !96892 br label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h20bffb5574f09686E.exit" "_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h20bffb5574f09686E.exit": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i", %1 diff --git a/bench/meilisearch-rs/optimized/2zqq886j9ovgawmv.ll b/bench/meilisearch-rs/optimized/2zqq886j9ovgawmv.ll index 15ca7cff31e..b69846e2255 100644 --- a/bench/meilisearch-rs/optimized/2zqq886j9ovgawmv.ll +++ b/bench/meilisearch-rs/optimized/2zqq886j9ovgawmv.ll @@ -13420,12 +13420,12 @@ common.resume: ; preds = %44, %26 %.not = icmp eq i64 %43, %9 br i1 %.not, label %._crit_edge, label %38 -44: ; preds = %62, %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit.i", %37, %65 +44: ; preds = %61, %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit.i", %37, %64 %45 = landingpad { ptr, i32 } cleanup %.val = load ptr, ptr %6, align 8, !noundef !16 invoke fastcc void @"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17he149ac98860f7c6eE"(ptr %.val) #69 - to label %common.resume unwind label %79 + to label %common.resume unwind label %78 46: ; preds = %._crit_edge store ptr %.sroa.42.0.copyload.i.i.i, ptr %35, align 8 @@ -13437,24 +13437,22 @@ common.resume: ; preds = %44, %26 call void @llvm.experimental.noalias.scope.decl(metadata !1776) %51 = load ptr, ptr %6, align 8, !alias.scope !1776, !noundef !16 %52 = icmp eq ptr %51, null - br i1 %52, label %53, label %62 + br i1 %52, label %53, label %61 53: ; preds = %46 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !1776 %54 = and i64 %50, -8 %55 = inttoptr i64 %54 to ptr - %56 = icmp ne i64 %54, 0 - call void @llvm.assume(i1 %56) store ptr %55, ptr %3, align 8, !noalias !1776 - %57 = getelementptr inbounds nuw i8, ptr %55, i64 8 - %58 = load i64, ptr %57, align 8, !noalias !1776, !noundef !16 - %59 = icmp eq i64 %58, 0 - br i1 %59, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit.i", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i" + %56 = getelementptr inbounds nuw i8, ptr %55, i64 8 + %57 = load i64, ptr %56, align 8, !noalias !1776, !noundef !16 + %58 = icmp eq i64 %57, 0 + br i1 %58, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit.i", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i": ; preds = %53 - %60 = load ptr, ptr %55, align 8, !noalias !1776, !nonnull !16, !noundef !16 - %61 = shl nsw i64 %58, 4 - call void @__rust_dealloc(ptr noundef nonnull %60, i64 noundef %61, i64 noundef 8) #71, !noalias !1779 + %59 = load ptr, ptr %55, align 8, !noalias !1776, !nonnull !16, !noundef !16 + %60 = shl nsw i64 %57, 4 + call void @__rust_dealloc(ptr noundef nonnull %59, i64 noundef %60, i64 noundef 8) #71, !noalias !1779 br label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit.i" "_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit.i": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i", %53 @@ -13465,58 +13463,58 @@ common.resume: ; preds = %44, %26 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !1776 br label %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17ha8baee0fb7ea33a3E.exit -62: ; preds = %46 +61: ; preds = %46 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4), !noalias !1776 store ptr @_ZN15crossbeam_epoch8deferred8Deferred3new4call17hb2936d2885cb1bbeE.llvm.1929265744411185926, ptr %4, align 8, !alias.scope !1784, !noalias !1776 - %63 = getelementptr inbounds nuw i8, ptr %4, i64 8 - store i64 %50, ptr %63, align 8, !alias.scope !1784, !noalias !1776 + %62 = getelementptr inbounds nuw i8, ptr %4, i64 8 + store i64 %50, ptr %62, align 8, !alias.scope !1784, !noalias !1776 invoke void @_ZN15crossbeam_epoch8internal5Local5defer17hba253d6502c5d5abE(ptr noundef nonnull align 128 %51, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %6) to label %.noexc10 unwind label %44 -.noexc10: ; preds = %62 +.noexc10: ; preds = %61 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4), !noalias !1776 br label %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17ha8baee0fb7ea33a3E.exit _ZN15crossbeam_epoch5guard5Guard15defer_unchecked17ha8baee0fb7ea33a3E.exit: ; preds = %.noexc10, %.noexc9 - %64 = and i64 %1, 1152921504606846912 - %.not7 = icmp eq i64 %64, 0 - br i1 %.not7, label %66, label %65 + %63 = and i64 %1, 1152921504606846912 + %.not7 = icmp eq i64 %63, 0 + br i1 %.not7, label %65, label %64 -65: ; preds = %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17ha8baee0fb7ea33a3E.exit +64: ; preds = %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17ha8baee0fb7ea33a3E.exit invoke void @_ZN15crossbeam_epoch5guard5Guard5flush17h25392a3df7a32d82E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %6) - to label %66 unwind label %44 + to label %65 unwind label %44 -66: ; preds = %65, %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17ha8baee0fb7ea33a3E.exit +65: ; preds = %64, %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17ha8baee0fb7ea33a3E.exit %.val8 = load ptr, ptr %6, align 8, !noundef !16 - %67 = icmp eq ptr %.val8, null - br i1 %67, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17he149ac98860f7c6eE.exit", label %68 - -68: ; preds = %66 - %69 = getelementptr inbounds nuw i8, ptr %.val8, i64 2072 - %70 = load i64, ptr %69, align 8, !noundef !16 - %71 = add i64 %70, -1 - store i64 %71, ptr %69, align 8 - %72 = icmp eq i64 %70, 1 - br i1 %72, label %73, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17he149ac98860f7c6eE.exit" - -73: ; preds = %68 - %74 = getelementptr inbounds nuw i8, ptr %.val8, i64 2176 - store atomic i64 0, ptr %74 release, align 8 - %75 = getelementptr inbounds nuw i8, ptr %.val8, i64 2080 - %76 = load i64, ptr %75, align 8, !noundef !16 - %77 = icmp eq i64 %76, 0 - br i1 %77, label %78, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17he149ac98860f7c6eE.exit" - -78: ; preds = %73 + %66 = icmp eq ptr %.val8, null + br i1 %66, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17he149ac98860f7c6eE.exit", label %67 + +67: ; preds = %65 + %68 = getelementptr inbounds nuw i8, ptr %.val8, i64 2072 + %69 = load i64, ptr %68, align 8, !noundef !16 + %70 = add i64 %69, -1 + store i64 %70, ptr %68, align 8 + %71 = icmp eq i64 %69, 1 + br i1 %71, label %72, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17he149ac98860f7c6eE.exit" + +72: ; preds = %67 + %73 = getelementptr inbounds nuw i8, ptr %.val8, i64 2176 + store atomic i64 0, ptr %73 release, align 8 + %74 = getelementptr inbounds nuw i8, ptr %.val8, i64 2080 + %75 = load i64, ptr %74, align 8, !noundef !16 + %76 = icmp eq i64 %75, 0 + br i1 %76, label %77, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17he149ac98860f7c6eE.exit" + +77: ; preds = %72 call void @_ZN15crossbeam_epoch8internal5Local8finalize17h069f4f3221876c69E(ptr noundef nonnull align 128 %.val8) br label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17he149ac98860f7c6eE.exit" -"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17he149ac98860f7c6eE.exit": ; preds = %66, %68, %73, %78 +"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17he149ac98860f7c6eE.exit": ; preds = %65, %67, %72, %77 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) ret void -79: ; preds = %44 - %80 = landingpad { ptr, i32 } +78: ; preds = %44 + %79 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hd62aa59d1fda1c9fE() #70 unreachable diff --git a/bench/meilisearch-rs/optimized/4llghrvh6vzci59o.ll b/bench/meilisearch-rs/optimized/4llghrvh6vzci59o.ll index ab0b42948a8..f6135e646b8 100644 --- a/bench/meilisearch-rs/optimized/4llghrvh6vzci59o.ll +++ b/bench/meilisearch-rs/optimized/4llghrvh6vzci59o.ll @@ -2945,17 +2945,15 @@ define internal fastcc void @"_ZN13tracing_trace5entry1_80_$LT$impl$u20$serde..s define hidden void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926"(i64 noundef %0) unnamed_addr #7 personality ptr @rust_eh_personality { %2 = and i64 %0, -8 %3 = inttoptr i64 %2 to ptr - %4 = icmp ne i64 %2, 0 - tail call void @llvm.assume(i1 %4) - %5 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %6 = load i64, ptr %5, align 8, !noundef !11 - %7 = icmp eq i64 %6, 0 - br i1 %7, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h20bffb5574f09686E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i" + %4 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %5 = load i64, ptr %4, align 8, !noundef !11 + %6 = icmp eq i64 %5, 0 + br i1 %6, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h20bffb5574f09686E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i": ; preds = %1 - %8 = load ptr, ptr %3, align 8, !nonnull !11, !noundef !11 - %9 = shl nsw i64 %6, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef %9, i64 noundef 8) #35, !noalias !833 + %7 = load ptr, ptr %3, align 8, !nonnull !11, !noundef !11 + %8 = shl nsw i64 %5, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %7, i64 noundef %8, i64 noundef 8) #35, !noalias !833 br label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h20bffb5574f09686E.exit" "_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h20bffb5574f09686E.exit": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i", %1 @@ -2968,38 +2966,36 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17ha8baee0f %3 = alloca [32 x i8], align 8 %4 = load ptr, ptr %0, align 8, !noundef !11 %5 = icmp eq ptr %4, null - br i1 %5, label %6, label %15 + br i1 %5, label %6, label %14 6: ; preds = %2 %7 = and i64 %1, -8 %8 = inttoptr i64 %7 to ptr - %9 = icmp ne i64 %7, 0 - tail call void @llvm.assume(i1 %9) - %10 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %11 = load i64, ptr %10, align 8, !noundef !11 - %12 = icmp eq i64 %11, 0 - br i1 %12, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i" + %9 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %10 = load i64, ptr %9, align 8, !noundef !11 + %11 = icmp eq i64 %10, 0 + br i1 %11, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i": ; preds = %6 - %13 = load ptr, ptr %8, align 8, !nonnull !11, !noundef !11 - %14 = shl nsw i64 %11, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %13, i64 noundef %14, i64 noundef 8) #35, !noalias !843 + %12 = load ptr, ptr %8, align 8, !nonnull !11, !noundef !11 + %13 = shl nsw i64 %10, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %13, i64 noundef 8) #35, !noalias !843 br label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit" "_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit": ; preds = %6, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i" tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef 16, i64 noundef 8) #35, !noalias !848 - br label %17 + br label %16 -15: ; preds = %2 +14: ; preds = %2 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) store ptr @_ZN15crossbeam_epoch8deferred8Deferred3new4call17hb2936d2885cb1bbeE.llvm.1929265744411185926, ptr %3, align 8, !alias.scope !853 - %16 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store i64 %1, ptr %16, align 8, !alias.scope !853 + %15 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store i64 %1, ptr %15, align 8, !alias.scope !853 call void @_ZN15crossbeam_epoch8internal5Local5defer17hba253d6502c5d5abE(ptr noundef nonnull align 128 %4, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) - br label %17 + br label %16 -17: ; preds = %15, %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit" +16: ; preds = %14, %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hbea81c3f17327d28E.llvm.1929265744411185926.exit" ret void } @@ -3017,20 +3013,18 @@ define hidden void @_ZN15crossbeam_epoch8deferred8Deferred3new4call17h902c337a7a %3 = load i64, ptr %2, align 8, !noundef !11 %4 = and i64 %3, -8 %5 = inttoptr i64 %4 to ptr - %6 = icmp ne i64 %4, 0 - tail call void @llvm.assume(i1 %6) - %7 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %8 = load i64, ptr %7, align 8, !noundef !11 - %9 = icmp eq i64 %8, 0 - br i1 %9, label %12, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i" + %6 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %7 = load i64, ptr %6, align 8, !noundef !11 + %8 = icmp eq i64 %7, 0 + br i1 %8, label %11, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i": ; preds = %1 - %10 = load ptr, ptr %5, align 8, !nonnull !11, !noundef !11 - %11 = shl nsw i64 %8, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %11, i64 noundef 8) #35, !noalias !856 - br label %12 + %9 = load ptr, ptr %5, align 8, !nonnull !11, !noundef !11 + %10 = shl nsw i64 %7, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %10, i64 noundef 8) #35, !noalias !856 + br label %11 -12: ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i", %1 +11: ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i", %1 tail call void @__rust_dealloc(ptr noundef nonnull %5, i64 noundef 16, i64 noundef 8) #35, !noalias !861 tail call void @__rust_dealloc(ptr noundef nonnull %2, i64 noundef 8, i64 noundef 8) #35 ret void @@ -3041,17 +3035,15 @@ define hidden void @_ZN15crossbeam_epoch8deferred8Deferred3new4call17hb2936d2885 %2 = load i64, ptr %0, align 8, !noundef !11 %3 = and i64 %2, -8 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load i64, ptr %6, align 8, !noundef !11 - %8 = icmp eq i64 %7, 0 - br i1 %8, label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h06e2160bd4012c02E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i" + %5 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %6 = load i64, ptr %5, align 8, !noundef !11 + %7 = icmp eq i64 %6, 0 + br i1 %7, label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h06e2160bd4012c02E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i": ; preds = %1 - %9 = load ptr, ptr %4, align 8, !nonnull !11, !noundef !11 - %10 = shl nsw i64 %7, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %10, i64 noundef 8) #35, !noalias !866 + %8 = load ptr, ptr %4, align 8, !nonnull !11, !noundef !11 + %9 = shl nsw i64 %6, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef %9, i64 noundef 8) #35, !noalias !866 br label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h06e2160bd4012c02E.exit" "_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h06e2160bd4012c02E.exit": ; preds = %1, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0315fd2d83659e8fE.llvm.6955530683240799244.exit.i.i.i.i.i" diff --git a/bench/meshlab/optimized/filter_developability.cpp.ll b/bench/meshlab/optimized/filter_developability.cpp.ll index 2ae7def912e..94606cee808 100644 --- a/bench/meshlab/optimized/filter_developability.cpp.ll +++ b/bench/meshlab/optimized/filter_developability.cpp.ll @@ -17580,248 +17580,243 @@ define linkonce_odr noundef double @_Z24localCombinatorialEnergyI6CMeshOEdNT_13V %27 = load i32, ptr %26, align 4 %28 = and i32 %27, 256 %.not46 = icmp eq i32 %28, 0 - br i1 %.not46, label %.preheader50, label %.loopexit + br i1 %.not46, label %.preheader.lr.ph, label %.loopexit -.preheader50: ; preds = %25 - %29 = and i64 %23, -16 - %.not1573 = icmp eq i64 %29, 16 - br i1 %.not1573, label %.loopexit, label %.preheader.lr.ph - -.preheader.lr.ph: ; preds = %.preheader50 - %30 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %31 = getelementptr inbounds nuw i8, ptr %3, i64 12 +.preheader.lr.ph: ; preds = %25 + %29 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %30 = getelementptr inbounds nuw i8, ptr %3, i64 12 br label %.preheader .preheader: ; preds = %.preheader.lr.ph, %._crit_edge - %32 = phi ptr [ %20, %.preheader.lr.ph ], [ %143, %._crit_edge ] - %33 = phi ptr [ %19, %.preheader.lr.ph ], [ %144, %._crit_edge ] + %31 = phi ptr [ %20, %.preheader.lr.ph ], [ %142, %._crit_edge ] + %32 = phi ptr [ %19, %.preheader.lr.ph ], [ %143, %._crit_edge ] %indvars.iv91 = phi i64 [ 2, %.preheader.lr.ph ], [ %indvars.iv.next92, %._crit_edge ] %.175 = phi double [ -1.000000e+00, %.preheader.lr.ph ], [ %.2.lcssa, %._crit_edge ] - %34 = ptrtoint ptr %33 to i64 - %35 = ptrtoint ptr %32 to i64 - %36 = sub i64 %34, %35 - %37 = ashr exact i64 %36, 3 - %.not77 = icmp eq i64 %37, %indvars.iv91 + %33 = ptrtoint ptr %32 to i64 + %34 = ptrtoint ptr %31 to i64 + %35 = sub i64 %33, %34 + %36 = ashr exact i64 %35, 3 + %.not77 = icmp eq i64 %36, %indvars.iv91 br i1 %.not77, label %._crit_edge, label %.lr.ph.preheader .lr.ph.preheader: ; preds = %.preheader - %38 = trunc nuw nsw i64 %indvars.iv91 to i32 + %37 = trunc nuw nsw i64 %indvars.iv91 to i32 br label %.lr.ph41.i.preheader -.lr.ph41.i.preheader: ; preds = %132, %.lr.ph.preheader - %39 = phi ptr [ %32, %.lr.ph.preheader ], [ %133, %132 ] - %40 = phi ptr [ %33, %.lr.ph.preheader ], [ %134, %132 ] - %41 = phi ptr [ %32, %.lr.ph.preheader ], [ %135, %132 ] - %42 = phi ptr [ %33, %.lr.ph.preheader ], [ %136, %132 ] - %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %132 ] - %43 = phi i64 [ %37, %.lr.ph.preheader ], [ %140, %132 ] - %44 = phi i64 [ %36, %.lr.ph.preheader ], [ %139, %132 ] - %.272 = phi double [ %.175, %.lr.ph.preheader ], [ %.3, %132 ] - %45 = lshr exact i64 %44, 3 - %46 = trunc i64 %45 to i32 - %47 = trunc i64 %43 to i32 - %48 = add nuw nsw i64 %indvars.iv, %indvars.iv91 - %49 = add nsw i64 %48, -1 - %50 = trunc nuw nsw i64 %indvars.iv to i32 +.lr.ph41.i.preheader: ; preds = %131, %.lr.ph.preheader + %38 = phi ptr [ %31, %.lr.ph.preheader ], [ %132, %131 ] + %39 = phi ptr [ %32, %.lr.ph.preheader ], [ %133, %131 ] + %40 = phi ptr [ %31, %.lr.ph.preheader ], [ %134, %131 ] + %41 = phi ptr [ %32, %.lr.ph.preheader ], [ %135, %131 ] + %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %131 ] + %42 = phi i64 [ %36, %.lr.ph.preheader ], [ %139, %131 ] + %43 = phi i64 [ %35, %.lr.ph.preheader ], [ %138, %131 ] + %.272 = phi double [ %.175, %.lr.ph.preheader ], [ %.3, %131 ] + %44 = lshr exact i64 %43, 3 + %45 = trunc i64 %44 to i32 + %46 = trunc i64 %42 to i32 + %47 = add nuw nsw i64 %indvars.iv, %indvars.iv91 + %48 = add nsw i64 %47, -1 + %49 = trunc nuw nsw i64 %indvars.iv to i32 br label %.lr.ph41.i .loopexit.i: ; preds = %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i, %.lr.ph41.i %.1.lcssa.i = phi double [ %.03039.i, %.lr.ph41.i ], [ %.sroa.speculated.i, %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i ] - %exitcond46.not.i = icmp eq i64 %49, %52 + %exitcond46.not.i = icmp eq i64 %48, %51 br i1 %exitcond46.not.i, label %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit, label %.lr.ph41.i, !llvm.loop !201 .lr.ph41.i: ; preds = %.lr.ph41.i.preheader, %.loopexit.i - %.040.i = phi i32 [ %51, %.loopexit.i ], [ %50, %.lr.ph41.i.preheader ] + %.040.i = phi i32 [ %50, %.loopexit.i ], [ %49, %.lr.ph41.i.preheader ] %.03039.i = phi double [ %.1.lcssa.i, %.loopexit.i ], [ 0.000000e+00, %.lr.ph41.i.preheader ] - %51 = add nuw nsw i32 %.040.i, 1 - %52 = zext i32 %51 to i64 - %53 = icmp samesign ugt i64 %48, %52 - br i1 %53, label %.lr.ph.i, label %.loopexit.i + %50 = add nuw nsw i32 %.040.i, 1 + %51 = zext i32 %50 to i64 + %52 = icmp samesign ugt i64 %47, %51 + br i1 %52, label %.lr.ph.i, label %.loopexit.i .lr.ph.i: ; preds = %.lr.ph41.i - %54 = srem i32 %.040.i, %47 - %55 = zext nneg i32 %54 to i64 - %.not.i.i.i = icmp ugt i64 %43, %55 - %56 = getelementptr inbounds nuw ptr, ptr %41, i64 %55 - br i1 %.not.i.i.i, label %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i, label %59 + %53 = srem i32 %.040.i, %46 + %54 = zext nneg i32 %53 to i64 + %.not.i.i.i = icmp ugt i64 %42, %54 + %55 = getelementptr inbounds nuw ptr, ptr %40, i64 %54 + br i1 %.not.i.i.i, label %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i, label %58 _ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i: ; preds = %.lr.ph.i, %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i - %.02438.i = phi i32 [ %86, %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i ], [ %51, %.lr.ph.i ] + %.02438.i = phi i32 [ %85, %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i ], [ %50, %.lr.ph.i ] %.137.i = phi double [ %.sroa.speculated.i, %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i ], [ %.03039.i, %.lr.ph.i ] - %57 = srem i32 %.02438.i, %47 - %58 = zext nneg i32 %57 to i64 - %.not.i.i25.i = icmp ugt i64 %43, %58 - br i1 %.not.i.i25.i, label %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i, label %60 + %56 = srem i32 %.02438.i, %46 + %57 = zext nneg i32 %56 to i64 + %.not.i.i25.i = icmp ugt i64 %42, %57 + br i1 %.not.i.i25.i, label %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i, label %59 -59: ; preds = %.lr.ph.i - tail call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.64, i64 noundef %55, i64 noundef %43) #31 +58: ; preds = %.lr.ph.i + tail call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.64, i64 noundef %54, i64 noundef %42) #31 unreachable -60: ; preds = %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i - tail call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.64, i64 noundef %58, i64 noundef %43) #31 +59: ; preds = %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i + tail call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.64, i64 noundef %57, i64 noundef %42) #31 unreachable _ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i: ; preds = %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i - %61 = load ptr, ptr %56, align 8 - %62 = getelementptr inbounds nuw i8, ptr %61, i64 36 - %63 = getelementptr inbounds nuw ptr, ptr %41, i64 %58 - %64 = load ptr, ptr %63, align 8 - %65 = getelementptr inbounds nuw i8, ptr %64, i64 36 - %66 = load float, ptr %62, align 4 - %67 = load float, ptr %65, align 4 - %68 = fsub float %66, %67 - %69 = getelementptr inbounds nuw i8, ptr %61, i64 40 - %70 = load float, ptr %69, align 4 - %71 = getelementptr inbounds nuw i8, ptr %64, i64 40 - %72 = load float, ptr %71, align 4 - %73 = fsub float %70, %72 - %74 = getelementptr inbounds nuw i8, ptr %61, i64 44 - %75 = load float, ptr %74, align 4 - %76 = getelementptr inbounds nuw i8, ptr %64, i64 44 - %77 = load float, ptr %76, align 4 - %78 = fsub float %75, %77 - %79 = fpext float %68 to double - %80 = fpext float %73 to double - %81 = fpext float %78 to double - %82 = fmul double %80, %80 - %83 = tail call double @llvm.fmuladd.f64(double %79, double %79, double %82) - %84 = tail call noundef double @llvm.fmuladd.f64(double %81, double %81, double %83) - %85 = fcmp olt double %.137.i, %84 - %.sroa.speculated.i = select i1 %85, double %84, double %.137.i - %86 = add nuw nsw i32 %.02438.i, 1 - %87 = zext i32 %86 to i64 - %exitcond.not.i = icmp eq i64 %48, %87 + %60 = load ptr, ptr %55, align 8 + %61 = getelementptr inbounds nuw i8, ptr %60, i64 36 + %62 = getelementptr inbounds nuw ptr, ptr %40, i64 %57 + %63 = load ptr, ptr %62, align 8 + %64 = getelementptr inbounds nuw i8, ptr %63, i64 36 + %65 = load float, ptr %61, align 4 + %66 = load float, ptr %64, align 4 + %67 = fsub float %65, %66 + %68 = getelementptr inbounds nuw i8, ptr %60, i64 40 + %69 = load float, ptr %68, align 4 + %70 = getelementptr inbounds nuw i8, ptr %63, i64 40 + %71 = load float, ptr %70, align 4 + %72 = fsub float %69, %71 + %73 = getelementptr inbounds nuw i8, ptr %60, i64 44 + %74 = load float, ptr %73, align 4 + %75 = getelementptr inbounds nuw i8, ptr %63, i64 44 + %76 = load float, ptr %75, align 4 + %77 = fsub float %74, %76 + %78 = fpext float %67 to double + %79 = fpext float %72 to double + %80 = fpext float %77 to double + %81 = fmul double %79, %79 + %82 = tail call double @llvm.fmuladd.f64(double %78, double %78, double %81) + %83 = tail call noundef double @llvm.fmuladd.f64(double %80, double %80, double %82) + %84 = fcmp olt double %.137.i, %83 + %.sroa.speculated.i = select i1 %84, double %83, double %.137.i + %85 = add nuw nsw i32 %.02438.i, 1 + %86 = zext i32 %85 to i64 + %exitcond.not.i = icmp eq i64 %47, %86 br i1 %exitcond.not.i, label %.loopexit.i, label %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i, !llvm.loop !202 _Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit: ; preds = %.loopexit.i - %88 = add i32 %50, %46 - %89 = add nsw i32 %88, -1 - %90 = sext i32 %89 to i64 - %91 = icmp slt i64 %48, %90 - br i1 %91, label %.lr.ph41.i19.preheader, label %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 + %87 = add i32 %49, %45 + %88 = add nsw i32 %87, -1 + %89 = sext i32 %88 to i64 + %90 = icmp slt i64 %47, %89 + br i1 %90, label %.lr.ph41.i19.preheader, label %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 .lr.ph41.i19.preheader: ; preds = %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit - %92 = trunc nuw nsw i64 %48 to i32 + %91 = trunc nuw nsw i64 %47 to i32 br label %.lr.ph41.i19 .loopexit.i22: ; preds = %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i31, %.lr.ph41.i19 %.1.lcssa.i23 = phi double [ %.03039.i21, %.lr.ph41.i19 ], [ %.sroa.speculated.i32, %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i31 ] - %exitcond46.not.i24 = icmp eq i32 %93, %89 + %exitcond46.not.i24 = icmp eq i32 %92, %88 br i1 %exitcond46.not.i24, label %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34, label %.lr.ph41.i19, !llvm.loop !201 .lr.ph41.i19: ; preds = %.lr.ph41.i19.preheader, %.loopexit.i22 - %.040.i20 = phi i32 [ %93, %.loopexit.i22 ], [ %92, %.lr.ph41.i19.preheader ] + %.040.i20 = phi i32 [ %92, %.loopexit.i22 ], [ %91, %.lr.ph41.i19.preheader ] %.03039.i21 = phi double [ %.1.lcssa.i23, %.loopexit.i22 ], [ 0.000000e+00, %.lr.ph41.i19.preheader ] - %93 = add nuw nsw i32 %.040.i20, 1 - %94 = icmp slt i32 %93, %88 - br i1 %94, label %.lr.ph.i25, label %.loopexit.i22 + %92 = add nuw nsw i32 %.040.i20, 1 + %93 = icmp slt i32 %92, %87 + br i1 %93, label %.lr.ph.i25, label %.loopexit.i22 .lr.ph.i25: ; preds = %.lr.ph41.i19 - %95 = srem i32 %.040.i20, %47 - %96 = zext nneg i32 %95 to i64 - %.not.i.i.i26 = icmp ugt i64 %43, %96 - %97 = getelementptr inbounds nuw ptr, ptr %41, i64 %96 - br i1 %.not.i.i.i26, label %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i27, label %100 + %94 = srem i32 %.040.i20, %46 + %95 = zext nneg i32 %94 to i64 + %.not.i.i.i26 = icmp ugt i64 %42, %95 + %96 = getelementptr inbounds nuw ptr, ptr %40, i64 %95 + br i1 %.not.i.i.i26, label %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i27, label %99 _ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i27: ; preds = %.lr.ph.i25, %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i31 - %.02438.i28 = phi i32 [ %127, %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i31 ], [ %93, %.lr.ph.i25 ] + %.02438.i28 = phi i32 [ %126, %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i31 ], [ %92, %.lr.ph.i25 ] %.137.i29 = phi double [ %.sroa.speculated.i32, %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i31 ], [ %.03039.i21, %.lr.ph.i25 ] - %98 = srem i32 %.02438.i28, %47 - %99 = zext nneg i32 %98 to i64 - %.not.i.i25.i30 = icmp ugt i64 %43, %99 - br i1 %.not.i.i25.i30, label %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i31, label %101 + %97 = srem i32 %.02438.i28, %46 + %98 = zext nneg i32 %97 to i64 + %.not.i.i25.i30 = icmp ugt i64 %42, %98 + br i1 %.not.i.i25.i30, label %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i31, label %100 -100: ; preds = %.lr.ph.i25 - tail call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.64, i64 noundef %96, i64 noundef %43) #31 +99: ; preds = %.lr.ph.i25 + tail call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.64, i64 noundef %95, i64 noundef %42) #31 unreachable -101: ; preds = %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i27 - tail call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.64, i64 noundef %99, i64 noundef %43) #31 +100: ; preds = %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i27 + tail call void (ptr, ...) @_ZSt24__throw_out_of_range_fmtPKcz(ptr noundef nonnull @.str.64, i64 noundef %98, i64 noundef %42) #31 unreachable _ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit26.i31: ; preds = %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i27 - %102 = load ptr, ptr %97, align 8 - %103 = getelementptr inbounds nuw i8, ptr %102, i64 36 - %104 = getelementptr inbounds nuw ptr, ptr %41, i64 %99 - %105 = load ptr, ptr %104, align 8 - %106 = getelementptr inbounds nuw i8, ptr %105, i64 36 - %107 = load float, ptr %103, align 4 - %108 = load float, ptr %106, align 4 - %109 = fsub float %107, %108 - %110 = getelementptr inbounds nuw i8, ptr %102, i64 40 - %111 = load float, ptr %110, align 4 - %112 = getelementptr inbounds nuw i8, ptr %105, i64 40 - %113 = load float, ptr %112, align 4 - %114 = fsub float %111, %113 - %115 = getelementptr inbounds nuw i8, ptr %102, i64 44 - %116 = load float, ptr %115, align 4 - %117 = getelementptr inbounds nuw i8, ptr %105, i64 44 - %118 = load float, ptr %117, align 4 - %119 = fsub float %116, %118 - %120 = fpext float %109 to double - %121 = fpext float %114 to double - %122 = fpext float %119 to double - %123 = fmul double %121, %121 - %124 = tail call double @llvm.fmuladd.f64(double %120, double %120, double %123) - %125 = tail call noundef double @llvm.fmuladd.f64(double %122, double %122, double %124) - %126 = fcmp olt double %.137.i29, %125 - %.sroa.speculated.i32 = select i1 %126, double %125, double %.137.i29 - %127 = add nuw nsw i32 %.02438.i28, 1 - %exitcond.not.i33 = icmp eq i32 %127, %88 + %101 = load ptr, ptr %96, align 8 + %102 = getelementptr inbounds nuw i8, ptr %101, i64 36 + %103 = getelementptr inbounds nuw ptr, ptr %40, i64 %98 + %104 = load ptr, ptr %103, align 8 + %105 = getelementptr inbounds nuw i8, ptr %104, i64 36 + %106 = load float, ptr %102, align 4 + %107 = load float, ptr %105, align 4 + %108 = fsub float %106, %107 + %109 = getelementptr inbounds nuw i8, ptr %101, i64 40 + %110 = load float, ptr %109, align 4 + %111 = getelementptr inbounds nuw i8, ptr %104, i64 40 + %112 = load float, ptr %111, align 4 + %113 = fsub float %110, %112 + %114 = getelementptr inbounds nuw i8, ptr %101, i64 44 + %115 = load float, ptr %114, align 4 + %116 = getelementptr inbounds nuw i8, ptr %104, i64 44 + %117 = load float, ptr %116, align 4 + %118 = fsub float %115, %117 + %119 = fpext float %108 to double + %120 = fpext float %113 to double + %121 = fpext float %118 to double + %122 = fmul double %120, %120 + %123 = tail call double @llvm.fmuladd.f64(double %119, double %119, double %122) + %124 = tail call noundef double @llvm.fmuladd.f64(double %121, double %121, double %123) + %125 = fcmp olt double %.137.i29, %124 + %.sroa.speculated.i32 = select i1 %125, double %124, double %.137.i29 + %126 = add nuw nsw i32 %.02438.i28, 1 + %exitcond.not.i33 = icmp eq i32 %126, %87 br i1 %exitcond.not.i33, label %.loopexit.i22, label %_ZNSt6vectorIP6CFaceOSaIS1_EE2atEm.exit.i27, !llvm.loop !202 _Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34: ; preds = %.loopexit.i22, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit %.030.lcssa.i18 = phi double [ 0.000000e+00, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit ], [ %.1.lcssa.i23, %.loopexit.i22 ] - %128 = fcmp olt double %.1.lcssa.i, %.030.lcssa.i18 - %.sroa.speculated = select i1 %128, double %.030.lcssa.i18, double %.1.lcssa.i - %129 = fcmp uge double %.272, 0.000000e+00 - %130 = fcmp uge double %.sroa.speculated, %.272 - %or.cond.not49 = select i1 %129, i1 %130, i1 false + %127 = fcmp olt double %.1.lcssa.i, %.030.lcssa.i18 + %.sroa.speculated = select i1 %127, double %.030.lcssa.i18, double %.1.lcssa.i + %128 = fcmp uge double %.272, 0.000000e+00 + %129 = fcmp uge double %.sroa.speculated, %.272 + %or.cond.not49 = select i1 %128, i1 %129, i1 false %brmerge = or i1 %.not, %or.cond.not49 %.2.mux = select i1 %or.cond.not49, double %.272, double %.sroa.speculated - br i1 %brmerge, label %132, label %131 + br i1 %brmerge, label %131, label %130 -131: ; preds = %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 - store i32 %50, ptr %30, align 8 - store i32 %38, ptr %31, align 4 +130: ; preds = %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 + store i32 %49, ptr %29, align 8 + store i32 %37, ptr %30, align 4 %.pre = load ptr, ptr %18, align 8 %.pre94 = load ptr, ptr %15, align 8 - br label %132 + br label %131 -132: ; preds = %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34, %131 - %133 = phi ptr [ %.pre94, %131 ], [ %39, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 ] - %134 = phi ptr [ %.pre, %131 ], [ %40, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 ] - %135 = phi ptr [ %.pre94, %131 ], [ %41, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 ] - %136 = phi ptr [ %.pre, %131 ], [ %42, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 ] - %.3 = phi double [ %.sroa.speculated, %131 ], [ %.2.mux, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 ] +131: ; preds = %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34, %130 + %132 = phi ptr [ %.pre94, %130 ], [ %38, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 ] + %133 = phi ptr [ %.pre, %130 ], [ %39, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 ] + %134 = phi ptr [ %.pre94, %130 ], [ %40, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 ] + %135 = phi ptr [ %.pre, %130 ], [ %41, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 ] + %.3 = phi double [ %.sroa.speculated, %130 ], [ %.2.mux, %_Z21regionNormalDeviationI6CMeshOEdRK16StarPartitioningIT_EbRS2_.exit34 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %137 = ptrtoint ptr %136 to i64 - %138 = ptrtoint ptr %135 to i64 - %139 = sub i64 %137, %138 - %140 = ashr exact i64 %139, 3 - %141 = sub nsw i64 %140, %indvars.iv91 - %142 = icmp ugt i64 %141, %indvars.iv.next - br i1 %142, label %.lr.ph41.i.preheader, label %._crit_edge.loopexit, !llvm.loop !203 - -._crit_edge.loopexit: ; preds = %132 - %.pre95 = ptrtoint ptr %134 to i64 - %.pre96 = ptrtoint ptr %133 to i64 + %136 = ptrtoint ptr %135 to i64 + %137 = ptrtoint ptr %134 to i64 + %138 = sub i64 %136, %137 + %139 = ashr exact i64 %138, 3 + %140 = sub nsw i64 %139, %indvars.iv91 + %141 = icmp ugt i64 %140, %indvars.iv.next + br i1 %141, label %.lr.ph41.i.preheader, label %._crit_edge.loopexit, !llvm.loop !203 + +._crit_edge.loopexit: ; preds = %131 + %.pre95 = ptrtoint ptr %133 to i64 + %.pre96 = ptrtoint ptr %132 to i64 %.pre98 = sub i64 %.pre95, %.pre96 %.pre100 = ashr exact i64 %.pre98, 3 br label %._crit_edge ._crit_edge: ; preds = %._crit_edge.loopexit, %.preheader - %.pre-phi101 = phi i64 [ %.pre100, %._crit_edge.loopexit ], [ %37, %.preheader ] + %.pre-phi101 = phi i64 [ %.pre100, %._crit_edge.loopexit ], [ %36, %.preheader ] + %142 = phi ptr [ %132, %._crit_edge.loopexit ], [ %31, %.preheader ] %143 = phi ptr [ %133, %._crit_edge.loopexit ], [ %32, %.preheader ] - %144 = phi ptr [ %134, %._crit_edge.loopexit ], [ %33, %.preheader ] %.2.lcssa = phi double [ %.3, %._crit_edge.loopexit ], [ %.175, %.preheader ] %indvars.iv.next92 = add nuw nsw i64 %indvars.iv91, 1 - %145 = add nsw i64 %.pre-phi101, -2 - %.not15.not = icmp ugt i64 %145, %indvars.iv91 + %144 = add nsw i64 %.pre-phi101, -2 + %.not15.not = icmp ugt i64 %144, %indvars.iv91 br i1 %.not15.not, label %.preheader, label %.loopexit, !llvm.loop !204 -.loopexit: ; preds = %._crit_edge, %.preheader50, %17, %25 - %.0 = phi double [ 0.000000e+00, %25 ], [ 0.000000e+00, %17 ], [ -1.000000e+00, %.preheader50 ], [ %.2.lcssa, %._crit_edge ] +.loopexit: ; preds = %._crit_edge, %17, %25 + %.0 = phi double [ 0.000000e+00, %25 ], [ 0.000000e+00, %17 ], [ %.2.lcssa, %._crit_edge ] ret double %.0 } diff --git a/bench/mini-lsm-rs/optimized/300n4o8itowzm2cs.ll b/bench/mini-lsm-rs/optimized/300n4o8itowzm2cs.ll index c84fd84dd97..a7a70e32b17 100644 --- a/bench/mini-lsm-rs/optimized/300n4o8itowzm2cs.ll +++ b/bench/mini-lsm-rs/optimized/300n4o8itowzm2cs.ll @@ -239,40 +239,38 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h08ef0140 store i64 %1, ptr %8, align 8, !alias.scope !41 call void @_ZN15crossbeam_epoch8internal5Local5defer17h63f66b08c2fc0a6aE(ptr noundef nonnull align 8 %5, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %18 + br label %17 9: ; preds = %2 fence acquire %10 = and i64 %1, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !44 %11 = inttoptr i64 %10 to ptr - %12 = icmp ne i64 %10, 0 - tail call void @llvm.assume(i1 %12) store ptr %11, ptr %3, align 8, !noalias !44 invoke void @"_ZN4core3ptr260drop_in_place$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$17h4be0859298d8f186E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %11) - to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hfa706bc385afec6dE.llvm.16478127874811385373.exit" unwind label %13, !noalias !49 + to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hfa706bc385afec6dE.llvm.16478127874811385373.exit" unwind label %12, !noalias !49 -13: ; preds = %9 - %14 = landingpad { ptr, i32 } +12: ; preds = %9 + %13 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h67db66f32b9ea1b1E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) #19 - to label %17 unwind label %15, !noalias !44 + to label %16 unwind label %14, !noalias !44 -15: ; preds = %13 - %16 = landingpad { ptr, i32 } +14: ; preds = %12 + %15 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !44 unreachable -17: ; preds = %13 - resume { ptr, i32 } %14 +16: ; preds = %12 + resume { ptr, i32 } %13 "_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hfa706bc385afec6dE.llvm.16478127874811385373.exit": ; preds = %9 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h67db66f32b9ea1b1E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !44 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !44 - br label %18 + br label %17 -18: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hfa706bc385afec6dE.llvm.16478127874811385373.exit", %7 +17: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hfa706bc385afec6dE.llvm.16478127874811385373.exit", %7 ret void } @@ -291,40 +289,38 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h183e0e17 store i64 %1, ptr %8, align 8, !alias.scope !52 call void @_ZN15crossbeam_epoch8internal5Local5defer17h63f66b08c2fc0a6aE(ptr noundef nonnull align 8 %5, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %18 + br label %17 9: ; preds = %2 fence acquire %10 = and i64 %1, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !55 %11 = inttoptr i64 %10 to ptr - %12 = icmp ne i64 %10, 0 - tail call void @llvm.assume(i1 %12) store ptr %11, ptr %3, align 8, !noalias !55 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(16) %11) - to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h71387598b4594f49E.llvm.16478127874811385373.exit" unwind label %13, !noalias !60 + to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h71387598b4594f49E.llvm.16478127874811385373.exit" unwind label %12, !noalias !60 -13: ; preds = %9 - %14 = landingpad { ptr, i32 } +12: ; preds = %9 + %13 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h655a138829c6a6adE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) #19 - to label %17 unwind label %15, !noalias !55 + to label %16 unwind label %14, !noalias !55 -15: ; preds = %13 - %16 = landingpad { ptr, i32 } +14: ; preds = %12 + %15 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !55 unreachable -17: ; preds = %13 - resume { ptr, i32 } %14 +16: ; preds = %12 + resume { ptr, i32 } %13 "_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h71387598b4594f49E.llvm.16478127874811385373.exit": ; preds = %9 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h655a138829c6a6adE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !55 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !55 - br label %18 + br label %17 -18: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h71387598b4594f49E.llvm.16478127874811385373.exit", %7 +17: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h71387598b4594f49E.llvm.16478127874811385373.exit", %7 ret void } @@ -367,7 +363,7 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h389b9dcc store i64 %1, ptr %8, align 8, !alias.scope !66 call void @_ZN15crossbeam_epoch8internal5Local5defer17h63f66b08c2fc0a6aE(ptr noundef nonnull align 8 %5, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %28 + br label %27 9: ; preds = %2 fence acquire @@ -394,33 +390,31 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h389b9dcc "_ZN4core3ptr321drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$17hbc3a3f5f3651c2c2E.llvm.16478127874811385373.exit.i": ; preds = %19, %14, %9 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !76 - %22 = icmp ne i64 %12, 0 - tail call void @llvm.assume(i1 %22) store ptr %13, ptr %3, align 8, !noalias !76 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(32) %13) - to label %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17h5ff3ce6e79325bfcE.llvm.16478127874811385373.exit" unwind label %23, !noalias !81 + to label %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17h5ff3ce6e79325bfcE.llvm.16478127874811385373.exit" unwind label %22, !noalias !81 -23: ; preds = %"_ZN4core3ptr321drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$17hbc3a3f5f3651c2c2E.llvm.16478127874811385373.exit.i" - %24 = landingpad { ptr, i32 } +22: ; preds = %"_ZN4core3ptr321drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$17hbc3a3f5f3651c2c2E.llvm.16478127874811385373.exit.i" + %23 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha23b38634b0d3e1eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) #19 - to label %27 unwind label %25, !noalias !76 + to label %26 unwind label %24, !noalias !76 -25: ; preds = %23 - %26 = landingpad { ptr, i32 } +24: ; preds = %22 + %25 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !76 unreachable -27: ; preds = %23 - resume { ptr, i32 } %24 +26: ; preds = %22 + resume { ptr, i32 } %23 "_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17h5ff3ce6e79325bfcE.llvm.16478127874811385373.exit": ; preds = %"_ZN4core3ptr321drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$17hbc3a3f5f3651c2c2E.llvm.16478127874811385373.exit.i" call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha23b38634b0d3e1eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !76 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !76 - br label %28 + br label %27 -28: ; preds = %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17h5ff3ce6e79325bfcE.llvm.16478127874811385373.exit", %7 +27: ; preds = %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17h5ff3ce6e79325bfcE.llvm.16478127874811385373.exit", %7 ret void } @@ -439,40 +433,38 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h73e065e3 store i64 %1, ptr %8, align 8, !alias.scope !84 call void @_ZN15crossbeam_epoch8internal5Local5defer17h63f66b08c2fc0a6aE(ptr noundef nonnull align 8 %5, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %18 + br label %17 9: ; preds = %2 fence acquire %10 = and i64 %1, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !87 %11 = inttoptr i64 %10 to ptr - %12 = icmp ne i64 %10, 0 - tail call void @llvm.assume(i1 %12) store ptr %11, ptr %3, align 8, !noalias !87 invoke void @"_ZN4core3ptr211drop_in_place$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$17h142e6d5dad7048f8E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %11) - to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h7c9f4ce449a258f1E.llvm.16478127874811385373.exit" unwind label %13, !noalias !92 + to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h7c9f4ce449a258f1E.llvm.16478127874811385373.exit" unwind label %12, !noalias !92 -13: ; preds = %9 - %14 = landingpad { ptr, i32 } +12: ; preds = %9 + %13 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58f995838c09c44bE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) #19 - to label %17 unwind label %15, !noalias !87 + to label %16 unwind label %14, !noalias !87 -15: ; preds = %13 - %16 = landingpad { ptr, i32 } +14: ; preds = %12 + %15 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !87 unreachable -17: ; preds = %13 - resume { ptr, i32 } %14 +16: ; preds = %12 + resume { ptr, i32 } %13 "_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h7c9f4ce449a258f1E.llvm.16478127874811385373.exit": ; preds = %9 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58f995838c09c44bE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !87 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !87 - br label %18 + br label %17 -18: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h7c9f4ce449a258f1E.llvm.16478127874811385373.exit", %7 +17: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h7c9f4ce449a258f1E.llvm.16478127874811385373.exit", %7 ret void } @@ -491,40 +483,38 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h83387705 store i64 %1, ptr %8, align 8, !alias.scope !95 call void @_ZN15crossbeam_epoch8internal5Local5defer17h63f66b08c2fc0a6aE(ptr noundef nonnull align 8 %5, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %18 + br label %17 9: ; preds = %2 fence acquire %10 = and i64 %1, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !98 %11 = inttoptr i64 %10 to ptr - %12 = icmp ne i64 %10, 0 - tail call void @llvm.assume(i1 %12) store ptr %11, ptr %3, align 8, !noalias !98 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(32) %11) - to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h1a2c84dd9c7553e6E.llvm.16478127874811385373.exit" unwind label %13, !noalias !103 + to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h1a2c84dd9c7553e6E.llvm.16478127874811385373.exit" unwind label %12, !noalias !103 -13: ; preds = %9 - %14 = landingpad { ptr, i32 } +12: ; preds = %9 + %13 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha23b38634b0d3e1eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) #19 - to label %17 unwind label %15, !noalias !98 + to label %16 unwind label %14, !noalias !98 -15: ; preds = %13 - %16 = landingpad { ptr, i32 } +14: ; preds = %12 + %15 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !98 unreachable -17: ; preds = %13 - resume { ptr, i32 } %14 +16: ; preds = %12 + resume { ptr, i32 } %13 "_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h1a2c84dd9c7553e6E.llvm.16478127874811385373.exit": ; preds = %9 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha23b38634b0d3e1eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !98 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !98 - br label %18 + br label %17 -18: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h1a2c84dd9c7553e6E.llvm.16478127874811385373.exit", %7 +17: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h1a2c84dd9c7553e6E.llvm.16478127874811385373.exit", %7 ret void } @@ -543,7 +533,7 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h8d6eb315 store i64 %1, ptr %8, align 8, !alias.scope !106 call void @_ZN15crossbeam_epoch8internal5Local5defer17h63f66b08c2fc0a6aE(ptr noundef nonnull align 8 %5, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %28 + br label %27 9: ; preds = %2 fence acquire @@ -570,33 +560,31 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h8d6eb315 "_ZN4core3ptr169drop_in_place$LT$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$17hcabd3eba2e9429deE.llvm.16478127874811385373.exit.i": ; preds = %19, %14, %9 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !116 - %22 = icmp ne i64 %12, 0 - tail call void @llvm.assume(i1 %22) store ptr %13, ptr %3, align 8, !noalias !116 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(16) %13) - to label %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17hf124301d469581a6E.llvm.16478127874811385373.exit" unwind label %23, !noalias !121 + to label %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17hf124301d469581a6E.llvm.16478127874811385373.exit" unwind label %22, !noalias !121 -23: ; preds = %"_ZN4core3ptr169drop_in_place$LT$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$17hcabd3eba2e9429deE.llvm.16478127874811385373.exit.i" - %24 = landingpad { ptr, i32 } +22: ; preds = %"_ZN4core3ptr169drop_in_place$LT$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$17hcabd3eba2e9429deE.llvm.16478127874811385373.exit.i" + %23 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h655a138829c6a6adE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) #19 - to label %27 unwind label %25, !noalias !116 + to label %26 unwind label %24, !noalias !116 -25: ; preds = %23 - %26 = landingpad { ptr, i32 } +24: ; preds = %22 + %25 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !116 unreachable -27: ; preds = %23 - resume { ptr, i32 } %24 +26: ; preds = %22 + resume { ptr, i32 } %23 "_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17hf124301d469581a6E.llvm.16478127874811385373.exit": ; preds = %"_ZN4core3ptr169drop_in_place$LT$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$17hcabd3eba2e9429deE.llvm.16478127874811385373.exit.i" call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h655a138829c6a6adE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !116 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !116 - br label %28 + br label %27 -28: ; preds = %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17hf124301d469581a6E.llvm.16478127874811385373.exit", %7 +27: ; preds = %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17hf124301d469581a6E.llvm.16478127874811385373.exit", %7 ret void } @@ -615,40 +603,38 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hcac4749c store i64 %1, ptr %8, align 8, !alias.scope !124 call void @_ZN15crossbeam_epoch8internal5Local5defer17h63f66b08c2fc0a6aE(ptr noundef nonnull align 8 %5, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %18 + br label %17 9: ; preds = %2 fence acquire %10 = and i64 %1, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !127 %11 = inttoptr i64 %10 to ptr - %12 = icmp ne i64 %10, 0 - tail call void @llvm.assume(i1 %12) store ptr %11, ptr %3, align 8, !noalias !127 invoke void @"_ZN4core3ptr440drop_in_place$LT$moka..cht..map..bucket..BucketArray$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$17hf4e82e596f2a7508E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %11) - to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h29c1b418600b5c54E.llvm.16478127874811385373.exit" unwind label %13, !noalias !132 + to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h29c1b418600b5c54E.llvm.16478127874811385373.exit" unwind label %12, !noalias !132 -13: ; preds = %9 - %14 = landingpad { ptr, i32 } +12: ; preds = %9 + %13 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd690d4d87cac768eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) #19 - to label %17 unwind label %15, !noalias !127 + to label %16 unwind label %14, !noalias !127 -15: ; preds = %13 - %16 = landingpad { ptr, i32 } +14: ; preds = %12 + %15 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !127 unreachable -17: ; preds = %13 - resume { ptr, i32 } %14 +16: ; preds = %12 + resume { ptr, i32 } %13 "_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h29c1b418600b5c54E.llvm.16478127874811385373.exit": ; preds = %9 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd690d4d87cac768eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !127 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !127 - br label %18 + br label %17 -18: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h29c1b418600b5c54E.llvm.16478127874811385373.exit", %7 +17: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h29c1b418600b5c54E.llvm.16478127874811385373.exit", %7 ret void } @@ -667,40 +653,38 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hda8cea00 store i64 %1, ptr %8, align 8, !alias.scope !135 call void @_ZN15crossbeam_epoch8internal5Local5defer17h63f66b08c2fc0a6aE(ptr noundef nonnull align 8 %5, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %18 + br label %17 9: ; preds = %2 fence acquire %10 = and i64 %1, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !138 %11 = inttoptr i64 %10 to ptr - %12 = icmp ne i64 %10, 0 - tail call void @llvm.assume(i1 %12) store ptr %11, ptr %3, align 8, !noalias !138 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(16) %11) - to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hb3f0b31939783805E.llvm.16478127874811385373.exit" unwind label %13, !noalias !143 + to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hb3f0b31939783805E.llvm.16478127874811385373.exit" unwind label %12, !noalias !143 -13: ; preds = %9 - %14 = landingpad { ptr, i32 } +12: ; preds = %9 + %13 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h34bdfef4c91bdf02E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) #19 - to label %17 unwind label %15, !noalias !138 + to label %16 unwind label %14, !noalias !138 -15: ; preds = %13 - %16 = landingpad { ptr, i32 } +14: ; preds = %12 + %15 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !138 unreachable -17: ; preds = %13 - resume { ptr, i32 } %14 +16: ; preds = %12 + resume { ptr, i32 } %13 "_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hb3f0b31939783805E.llvm.16478127874811385373.exit": ; preds = %9 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h34bdfef4c91bdf02E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !138 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !138 - br label %18 + br label %17 -18: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hb3f0b31939783805E.llvm.16478127874811385373.exit", %7 +17: ; preds = %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hb3f0b31939783805E.llvm.16478127874811385373.exit", %7 ret void } @@ -719,7 +703,7 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17he0184dcf store i64 %1, ptr %8, align 8, !alias.scope !146 call void @_ZN15crossbeam_epoch8internal5Local5defer17h63f66b08c2fc0a6aE(ptr noundef nonnull align 8 %5, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %28 + br label %27 9: ; preds = %2 fence acquire @@ -746,33 +730,31 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17he0184dcf "_ZN4core3ptr120drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$17h8238071365db368eE.llvm.16478127874811385373.exit.i": ; preds = %19, %14, %9 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !156 - %22 = icmp ne i64 %12, 0 - tail call void @llvm.assume(i1 %22) store ptr %13, ptr %3, align 8, !noalias !156 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(16) %13) - to label %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17h00e5511eb61af144E.llvm.16478127874811385373.exit" unwind label %23, !noalias !161 + to label %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17h00e5511eb61af144E.llvm.16478127874811385373.exit" unwind label %22, !noalias !161 -23: ; preds = %"_ZN4core3ptr120drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$17h8238071365db368eE.llvm.16478127874811385373.exit.i" - %24 = landingpad { ptr, i32 } +22: ; preds = %"_ZN4core3ptr120drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$17h8238071365db368eE.llvm.16478127874811385373.exit.i" + %23 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h34bdfef4c91bdf02E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) #19 - to label %27 unwind label %25, !noalias !156 + to label %26 unwind label %24, !noalias !156 -25: ; preds = %23 - %26 = landingpad { ptr, i32 } +24: ; preds = %22 + %25 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !156 unreachable -27: ; preds = %23 - resume { ptr, i32 } %24 +26: ; preds = %22 + resume { ptr, i32 } %23 "_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17h00e5511eb61af144E.llvm.16478127874811385373.exit": ; preds = %"_ZN4core3ptr120drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$17h8238071365db368eE.llvm.16478127874811385373.exit.i" call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h34bdfef4c91bdf02E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !156 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !156 - br label %28 + br label %27 -28: ; preds = %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17h00e5511eb61af144E.llvm.16478127874811385373.exit", %7 +27: ; preds = %"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$closure$u7d$$u7d$17h00e5511eb61af144E.llvm.16478127874811385373.exit", %7 ret void } @@ -791,20 +773,18 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hef6a5415 store i64 %1, ptr %8, align 8, !alias.scope !164 call void @_ZN15crossbeam_epoch8internal5Local5defer17h63f66b08c2fc0a6aE(ptr noundef nonnull align 8 %5, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %13 + br label %12 9: ; preds = %2 %10 = and i64 %1, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !167 %11 = inttoptr i64 %10 to ptr - %12 = icmp ne i64 %10, 0 - tail call void @llvm.assume(i1 %12) store ptr %11, ptr %3, align 8, !noalias !167 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h16850a4d90b20d23E.llvm.11765080855088437741"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !167 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !167 - br label %13 + br label %12 -13: ; preds = %9, %7 +12: ; preds = %9, %7 ret void } @@ -2019,26 +1999,24 @@ define hidden void @"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$c "_ZN4core3ptr120drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$17h8238071365db368eE.llvm.16478127874811385373.exit": ; preds = %1, %12, %7 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2), !noalias !246 - %15 = icmp ne i64 %5, 0 - tail call void @llvm.assume(i1 %15) store ptr %6, ptr %2, align 8, !noalias !246 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(16) %6) - to label %"_ZN4core3ptr244drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$$GT$17heda606079c001eb9E.exit" unwind label %16, !noalias !251 + to label %"_ZN4core3ptr244drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$$GT$17heda606079c001eb9E.exit" unwind label %15, !noalias !251 -16: ; preds = %"_ZN4core3ptr120drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$17h8238071365db368eE.llvm.16478127874811385373.exit" - %17 = landingpad { ptr, i32 } +15: ; preds = %"_ZN4core3ptr120drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$17h8238071365db368eE.llvm.16478127874811385373.exit" + %16 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h34bdfef4c91bdf02E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2) #19 - to label %20 unwind label %18, !noalias !246 + to label %19 unwind label %17, !noalias !246 -18: ; preds = %16 - %19 = landingpad { ptr, i32 } +17: ; preds = %15 + %18 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !246 unreachable -20: ; preds = %16 - resume { ptr, i32 } %17 +19: ; preds = %15 + resume { ptr, i32 } %16 "_ZN4core3ptr244drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$$GT$17heda606079c001eb9E.exit": ; preds = %"_ZN4core3ptr120drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$17h8238071365db368eE.llvm.16478127874811385373.exit" call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h34bdfef4c91bdf02E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2), !noalias !246 @@ -2073,26 +2051,24 @@ define hidden void @"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$c "_ZN4core3ptr321drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$17hbc3a3f5f3651c2c2E.llvm.16478127874811385373.exit": ; preds = %1, %12, %7 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2), !noalias !261 - %15 = icmp ne i64 %5, 0 - tail call void @llvm.assume(i1 %15) store ptr %6, ptr %2, align 8, !noalias !261 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(32) %6) - to label %"_ZN4core3ptr473drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$$GT$17hfa65fe2baceed019E.exit" unwind label %16, !noalias !266 + to label %"_ZN4core3ptr473drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$$GT$17hfa65fe2baceed019E.exit" unwind label %15, !noalias !266 -16: ; preds = %"_ZN4core3ptr321drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$17hbc3a3f5f3651c2c2E.llvm.16478127874811385373.exit" - %17 = landingpad { ptr, i32 } +15: ; preds = %"_ZN4core3ptr321drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$17hbc3a3f5f3651c2c2E.llvm.16478127874811385373.exit" + %16 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha23b38634b0d3e1eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2) #19 - to label %20 unwind label %18, !noalias !261 + to label %19 unwind label %17, !noalias !261 -18: ; preds = %16 - %19 = landingpad { ptr, i32 } +17: ; preds = %15 + %18 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !261 unreachable -20: ; preds = %16 - resume { ptr, i32 } %17 +19: ; preds = %15 + resume { ptr, i32 } %16 "_ZN4core3ptr473drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$$GT$17hfa65fe2baceed019E.exit": ; preds = %"_ZN4core3ptr321drop_in_place$LT$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$17hbc3a3f5f3651c2c2E.llvm.16478127874811385373.exit" call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha23b38634b0d3e1eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2), !noalias !261 @@ -2127,26 +2103,24 @@ define hidden void @"_ZN4moka3cht3map6bucket20defer_destroy_bucket28_$u7b$$u7b$c "_ZN4core3ptr169drop_in_place$LT$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$17hcabd3eba2e9429deE.llvm.16478127874811385373.exit": ; preds = %1, %12, %7 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2), !noalias !276 - %15 = icmp ne i64 %5, 0 - tail call void @llvm.assume(i1 %15) store ptr %6, ptr %2, align 8, !noalias !276 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(16) %6) - to label %"_ZN4core3ptr293drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$$GT$17hc0a058a705b44c24E.exit" unwind label %16, !noalias !281 + to label %"_ZN4core3ptr293drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$$GT$17hc0a058a705b44c24E.exit" unwind label %15, !noalias !281 -16: ; preds = %"_ZN4core3ptr169drop_in_place$LT$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$17hcabd3eba2e9429deE.llvm.16478127874811385373.exit" - %17 = landingpad { ptr, i32 } +15: ; preds = %"_ZN4core3ptr169drop_in_place$LT$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$17hcabd3eba2e9429deE.llvm.16478127874811385373.exit" + %16 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h655a138829c6a6adE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2) #19 - to label %20 unwind label %18, !noalias !276 + to label %19 unwind label %17, !noalias !276 -18: ; preds = %16 - %19 = landingpad { ptr, i32 } +17: ; preds = %15 + %18 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !276 unreachable -20: ; preds = %16 - resume { ptr, i32 } %17 +19: ; preds = %15 + resume { ptr, i32 } %16 "_ZN4core3ptr293drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$$GT$17hc0a058a705b44c24E.exit": ; preds = %"_ZN4core3ptr169drop_in_place$LT$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$17hcabd3eba2e9429deE.llvm.16478127874811385373.exit" call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h655a138829c6a6adE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2), !noalias !276 @@ -2161,26 +2135,24 @@ define hidden void @"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$ %3 = and i64 %0, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2), !noalias !284 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) store ptr %4, ptr %2, align 8, !noalias !284 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(32) %4) - to label %"_ZN4core3ptr473drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$$GT$17hfa65fe2baceed019E.exit" unwind label %6, !noalias !289 + to label %"_ZN4core3ptr473drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$$GT$17hfa65fe2baceed019E.exit" unwind label %5, !noalias !289 -6: ; preds = %1 - %7 = landingpad { ptr, i32 } +5: ; preds = %1 + %6 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha23b38634b0d3e1eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2) #19 - to label %10 unwind label %8, !noalias !284 + to label %9 unwind label %7, !noalias !284 -8: ; preds = %6 - %9 = landingpad { ptr, i32 } +7: ; preds = %5 + %8 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !284 unreachable -10: ; preds = %6 - resume { ptr, i32 } %7 +9: ; preds = %5 + resume { ptr, i32 } %6 "_ZN4core3ptr473drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$$GT$17hfa65fe2baceed019E.exit": ; preds = %1 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha23b38634b0d3e1eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2), !noalias !284 @@ -2195,26 +2167,24 @@ define hidden void @"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$ %3 = and i64 %0, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2), !noalias !292 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) store ptr %4, ptr %2, align 8, !noalias !292 invoke void @"_ZN4core3ptr440drop_in_place$LT$moka..cht..map..bucket..BucketArray$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$17hf4e82e596f2a7508E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %4) - to label %"_ZN4core3ptr478drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..BucketArray$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$$GT$17h288af4c2beca3807E.exit" unwind label %6, !noalias !297 + to label %"_ZN4core3ptr478drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..BucketArray$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$$GT$17h288af4c2beca3807E.exit" unwind label %5, !noalias !297 -6: ; preds = %1 - %7 = landingpad { ptr, i32 } +5: ; preds = %1 + %6 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd690d4d87cac768eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2) #19 - to label %10 unwind label %8, !noalias !292 + to label %9 unwind label %7, !noalias !292 -8: ; preds = %6 - %9 = landingpad { ptr, i32 } +7: ; preds = %5 + %8 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !292 unreachable -10: ; preds = %6 - resume { ptr, i32 } %7 +9: ; preds = %5 + resume { ptr, i32 } %6 "_ZN4core3ptr478drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..BucketArray$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$$GT$17h288af4c2beca3807E.exit": ; preds = %1 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd690d4d87cac768eE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2), !noalias !292 @@ -2229,26 +2199,24 @@ define hidden void @"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$ %3 = and i64 %0, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2), !noalias !300 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) store ptr %4, ptr %2, align 8, !noalias !300 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) - to label %"_ZN4core3ptr293drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$$GT$17hc0a058a705b44c24E.exit" unwind label %6, !noalias !305 + to label %"_ZN4core3ptr293drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$$GT$17hc0a058a705b44c24E.exit" unwind label %5, !noalias !305 -6: ; preds = %1 - %7 = landingpad { ptr, i32 } +5: ; preds = %1 + %6 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h655a138829c6a6adE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2) #19 - to label %10 unwind label %8, !noalias !300 + to label %9 unwind label %7, !noalias !300 -8: ; preds = %6 - %9 = landingpad { ptr, i32 } +7: ; preds = %5 + %8 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !300 unreachable -10: ; preds = %6 - resume { ptr, i32 } %7 +9: ; preds = %5 + resume { ptr, i32 } %6 "_ZN4core3ptr293drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$$GT$17hc0a058a705b44c24E.exit": ; preds = %1 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h655a138829c6a6adE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2), !noalias !300 @@ -2263,26 +2231,24 @@ define hidden void @"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$ %3 = and i64 %0, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2), !noalias !308 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) store ptr %4, ptr %2, align 8, !noalias !308 invoke void @"_ZN4core3ptr211drop_in_place$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$17h142e6d5dad7048f8E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %4) - to label %"_ZN4core3ptr249drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$$GT$17h28a3cd80024b8480E.exit" unwind label %6, !noalias !313 + to label %"_ZN4core3ptr249drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$$GT$17h28a3cd80024b8480E.exit" unwind label %5, !noalias !313 -6: ; preds = %1 - %7 = landingpad { ptr, i32 } +5: ; preds = %1 + %6 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58f995838c09c44bE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2) #19 - to label %10 unwind label %8, !noalias !308 + to label %9 unwind label %7, !noalias !308 -8: ; preds = %6 - %9 = landingpad { ptr, i32 } +7: ; preds = %5 + %8 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !308 unreachable -10: ; preds = %6 - resume { ptr, i32 } %7 +9: ; preds = %5 + resume { ptr, i32 } %6 "_ZN4core3ptr249drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$$GT$17h28a3cd80024b8480E.exit": ; preds = %1 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h58f995838c09c44bE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2), !noalias !308 @@ -2297,26 +2263,24 @@ define hidden void @"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$ %3 = and i64 %0, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2), !noalias !316 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) store ptr %4, ptr %2, align 8, !noalias !316 invoke void @"_ZN71_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96c838a25aa34875E.llvm.8684371289217427975"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) - to label %"_ZN4core3ptr244drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$$GT$17heda606079c001eb9E.exit" unwind label %6, !noalias !321 + to label %"_ZN4core3ptr244drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$$GT$17heda606079c001eb9E.exit" unwind label %5, !noalias !321 -6: ; preds = %1 - %7 = landingpad { ptr, i32 } +5: ; preds = %1 + %6 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h34bdfef4c91bdf02E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2) #19 - to label %10 unwind label %8, !noalias !316 + to label %9 unwind label %7, !noalias !316 -8: ; preds = %6 - %9 = landingpad { ptr, i32 } +7: ; preds = %5 + %8 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !316 unreachable -10: ; preds = %6 - resume { ptr, i32 } %7 +9: ; preds = %5 + resume { ptr, i32 } %6 "_ZN4core3ptr244drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..Bucket$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$$GT$17heda606079c001eb9E.exit": ; preds = %1 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h34bdfef4c91bdf02E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2), !noalias !316 @@ -2331,26 +2295,24 @@ define hidden void @"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$ %3 = and i64 %0, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %2), !noalias !324 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) store ptr %4, ptr %2, align 8, !noalias !324 invoke void @"_ZN4core3ptr260drop_in_place$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$17h4be0859298d8f186E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %4) - to label %"_ZN4core3ptr298drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$$GT$17h1be9bf22ef595d81E.exit" unwind label %6, !noalias !329 + to label %"_ZN4core3ptr298drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$$GT$17h1be9bf22ef595d81E.exit" unwind label %5, !noalias !329 -6: ; preds = %1 - %7 = landingpad { ptr, i32 } +5: ; preds = %1 + %6 = landingpad { ptr, i32 } cleanup invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h67db66f32b9ea1b1E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2) #19 - to label %10 unwind label %8, !noalias !324 + to label %9 unwind label %7, !noalias !324 -8: ; preds = %6 - %9 = landingpad { ptr, i32 } +7: ; preds = %5 + %8 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #20, !noalias !324 unreachable -10: ; preds = %6 - resume { ptr, i32 } %7 +9: ; preds = %5 + resume { ptr, i32 } %6 "_ZN4core3ptr298drop_in_place$LT$crossbeam_epoch..atomic..Owned$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$$GT$17h1be9bf22ef595d81E.exit": ; preds = %1 call void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h67db66f32b9ea1b1E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %2), !noalias !324 diff --git a/bench/mini-lsm-rs/optimized/5148wh4ru143gbx4.ll b/bench/mini-lsm-rs/optimized/5148wh4ru143gbx4.ll index 0656a53a07c..a4706878b4c 100644 --- a/bench/mini-lsm-rs/optimized/5148wh4ru143gbx4.ll +++ b/bench/mini-lsm-rs/optimized/5148wh4ru143gbx4.ll @@ -1583,28 +1583,26 @@ define hidden void @_ZN4moka3cht3map6bucket21defer_acquire_destroy17h49adfbb71c8 fence acquire %12 = and i64 %1, -8 %13 = inttoptr i64 %12 to ptr - %14 = icmp ne i64 %12, 0 - tail call void @llvm.assume(i1 %14) tail call void @llvm.experimental.noalias.scope.decl(metadata !369) tail call void @llvm.experimental.noalias.scope.decl(metadata !372) tail call void @llvm.experimental.noalias.scope.decl(metadata !375) - %15 = load ptr, ptr %13, align 8, !alias.scope !378, !noalias !379, !nonnull !5, !noundef !5 - %16 = atomicrmw sub ptr %15, i64 1 release, align 8, !noalias !386 - %17 = icmp eq i64 %16, 1 - br i1 %17, label %18, label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hb3f0b31939783805E.llvm.16478127874811385373.exit.i" + %14 = load ptr, ptr %13, align 8, !alias.scope !378, !noalias !379, !nonnull !5, !noundef !5 + %15 = atomicrmw sub ptr %14, i64 1 release, align 8, !noalias !386 + %16 = icmp eq i64 %15, 1 + br i1 %16, label %17, label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hb3f0b31939783805E.llvm.16478127874811385373.exit.i" -18: ; preds = %11 +17: ; preds = %11 fence acquire invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h366f64372751430eE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %13) - to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hb3f0b31939783805E.llvm.16478127874811385373.exit.i" unwind label %19, !noalias !379 + to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hb3f0b31939783805E.llvm.16478127874811385373.exit.i" unwind label %18, !noalias !379 -19: ; preds = %18 - %20 = landingpad { ptr, i32 } +18: ; preds = %17 + %19 = landingpad { ptr, i32 } cleanup tail call void @__rust_dealloc(ptr noundef nonnull %13, i64 noundef 16, i64 noundef 8) #25, !noalias !387 - resume { ptr, i32 } %20 + resume { ptr, i32 } %19 -"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hb3f0b31939783805E.llvm.16478127874811385373.exit.i": ; preds = %18, %11 +"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17hb3f0b31939783805E.llvm.16478127874811385373.exit.i": ; preds = %17, %11 tail call void @__rust_dealloc(ptr noundef nonnull %13, i64 noundef 16, i64 noundef 8) #25, !noalias !390 br label %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hda8cea00dcdd2078E.exit @@ -1643,8 +1641,6 @@ define hidden void @_ZN4moka3cht3map6bucket21defer_acquire_destroy17h51a5ba65bdd %13 = and i64 %1, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !399 %14 = inttoptr i64 %13 to ptr - %15 = icmp ne i64 %13, 0 - tail call void @llvm.assume(i1 %15) store ptr %14, ptr %3, align 8, !noalias !399 call void @"_ZN4core3ptr465drop_in_place$LT$alloc..boxed..Box$LT$moka..cht..map..bucket..BucketArray$LT$$LP$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$core..any..TypeId$RP$$C$triomphe..arc..Arc$LT$lock_api..rwlock..RwLock$LT$parking_lot..raw_rwlock..RawRwLock$C$core..option..Option$LT$core..result..Result$LT$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$C$alloc..sync..Arc$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$$GT$$GT$$GT$$GT$$GT$$GT$17h811fd5c20b19a81bE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !399 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !399 @@ -1683,28 +1679,26 @@ define hidden void @_ZN4moka3cht3map6bucket21defer_acquire_destroy17h931f407ff31 fence acquire %12 = and i64 %1, -8 %13 = inttoptr i64 %12 to ptr - %14 = icmp ne i64 %12, 0 - tail call void @llvm.assume(i1 %14) tail call void @llvm.experimental.noalias.scope.decl(metadata !410) tail call void @llvm.experimental.noalias.scope.decl(metadata !413) tail call void @llvm.experimental.noalias.scope.decl(metadata !416) - %15 = load ptr, ptr %13, align 8, !alias.scope !419, !noalias !420, !nonnull !5, !noundef !5 - %16 = atomicrmw sub ptr %15, i64 1 release, align 8, !noalias !427 - %17 = icmp eq i64 %16, 1 - br i1 %17, label %18, label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h71387598b4594f49E.llvm.16478127874811385373.exit.i" + %14 = load ptr, ptr %13, align 8, !alias.scope !419, !noalias !420, !nonnull !5, !noundef !5 + %15 = atomicrmw sub ptr %14, i64 1 release, align 8, !noalias !427 + %16 = icmp eq i64 %15, 1 + br i1 %16, label %17, label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h71387598b4594f49E.llvm.16478127874811385373.exit.i" -18: ; preds = %11 +17: ; preds = %11 fence acquire invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h366f64372751430eE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %13) - to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h71387598b4594f49E.llvm.16478127874811385373.exit.i" unwind label %19, !noalias !420 + to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h71387598b4594f49E.llvm.16478127874811385373.exit.i" unwind label %18, !noalias !420 -19: ; preds = %18 - %20 = landingpad { ptr, i32 } +18: ; preds = %17 + %19 = landingpad { ptr, i32 } cleanup tail call void @__rust_dealloc(ptr noundef nonnull %13, i64 noundef 16, i64 noundef 8) #25, !noalias !428 - resume { ptr, i32 } %20 + resume { ptr, i32 } %19 -"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h71387598b4594f49E.llvm.16478127874811385373.exit.i": ; preds = %18, %11 +"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h71387598b4594f49E.llvm.16478127874811385373.exit.i": ; preds = %17, %11 tail call void @__rust_dealloc(ptr noundef nonnull %13, i64 noundef 16, i64 noundef 8) #25, !noalias !431 br label %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h183e0e1798a735a7E.exit @@ -1743,8 +1737,6 @@ define hidden void @_ZN4moka3cht3map6bucket21defer_acquire_destroy17ha3ae156a769 %13 = and i64 %1, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !440 %14 = inttoptr i64 %13 to ptr - %15 = icmp ne i64 %13, 0 - tail call void @llvm.assume(i1 %15) store ptr %14, ptr %3, align 8, !noalias !440 call void @"_ZN4core3ptr236drop_in_place$LT$alloc..boxed..Box$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$lock_api..mutex..Mutex$LT$parking_lot..raw_mutex..RawMutex$C$$LP$$RP$$GT$$GT$$GT$$GT$$GT$17h0ade02ab968ff36cE.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !440 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !440 @@ -1783,29 +1775,27 @@ define hidden void @_ZN4moka3cht3map6bucket21defer_acquire_destroy17hddb910c8338 fence acquire %12 = and i64 %1, -8 %13 = inttoptr i64 %12 to ptr - %14 = icmp ne i64 %12, 0 - tail call void @llvm.assume(i1 %14) tail call void @llvm.experimental.noalias.scope.decl(metadata !451) tail call void @llvm.experimental.noalias.scope.decl(metadata !454) tail call void @llvm.experimental.noalias.scope.decl(metadata !457) tail call void @llvm.experimental.noalias.scope.decl(metadata !460) - %15 = load ptr, ptr %13, align 8, !alias.scope !463, !noalias !464, !nonnull !5, !noundef !5 - %16 = atomicrmw sub ptr %15, i64 1 release, align 8, !noalias !471 - %17 = icmp eq i64 %16, 1 - br i1 %17, label %18, label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h1a2c84dd9c7553e6E.llvm.16478127874811385373.exit.i" + %14 = load ptr, ptr %13, align 8, !alias.scope !463, !noalias !464, !nonnull !5, !noundef !5 + %15 = atomicrmw sub ptr %14, i64 1 release, align 8, !noalias !471 + %16 = icmp eq i64 %15, 1 + br i1 %16, label %17, label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h1a2c84dd9c7553e6E.llvm.16478127874811385373.exit.i" -18: ; preds = %11 +17: ; preds = %11 fence acquire invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h366f64372751430eE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %13) - to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h1a2c84dd9c7553e6E.llvm.16478127874811385373.exit.i" unwind label %19, !noalias !464 + to label %"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h1a2c84dd9c7553e6E.llvm.16478127874811385373.exit.i" unwind label %18, !noalias !464 -19: ; preds = %18 - %20 = landingpad { ptr, i32 } +18: ; preds = %17 + %19 = landingpad { ptr, i32 } cleanup tail call void @__rust_dealloc(ptr noundef nonnull %13, i64 noundef 32, i64 noundef 8) #25, !noalias !472 - resume { ptr, i32 } %20 + resume { ptr, i32 } %19 -"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h1a2c84dd9c7553e6E.llvm.16478127874811385373.exit.i": ; preds = %18, %11 +"_ZN4moka3cht3map6bucket21defer_acquire_destroy28_$u7b$$u7b$closure$u7d$$u7d$17h1a2c84dd9c7553e6E.llvm.16478127874811385373.exit.i": ; preds = %17, %11 tail call void @__rust_dealloc(ptr noundef nonnull %13, i64 noundef 32, i64 noundef 8) #25, !noalias !475 br label %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h833877056ab4d3daE.exit @@ -1844,8 +1834,6 @@ define hidden void @_ZN4moka3cht3map6bucket21defer_acquire_destroy17he64297c71ee %13 = and i64 %1, -8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !484 %14 = inttoptr i64 %13 to ptr - %15 = icmp ne i64 %13, 0 - tail call void @llvm.assume(i1 %15) store ptr %14, ptr %3, align 8, !noalias !484 call void @"_ZN4core3ptr285drop_in_place$LT$alloc..boxed..Box$LT$moka..cht..map..bucket..BucketArray$LT$alloc..sync..Arc$LT$$LP$usize$C$usize$RP$$GT$$C$triomphe..arc..Arc$LT$moka..common..concurrent..ValueEntry$LT$$LP$usize$C$usize$RP$$C$alloc..sync..Arc$LT$mini_lsm_starter..block..Block$GT$$GT$$GT$$GT$$GT$$GT$17h2265e321e1c0ed41E.llvm.3849484896252022153"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3), !noalias !484 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3), !noalias !484 diff --git a/bench/mini-lsm-rs/optimized/xb52qaqr7dfb8ti.ll b/bench/mini-lsm-rs/optimized/xb52qaqr7dfb8ti.ll index 62304e937e7..ce5e246a48c 100644 --- a/bench/mini-lsm-rs/optimized/xb52qaqr7dfb8ti.ll +++ b/bench/mini-lsm-rs/optimized/xb52qaqr7dfb8ti.ll @@ -61,7 +61,7 @@ define hidden void @"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_intern 13: ; preds = %3 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - br label %30 + br label %29 "_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit": ; preds = %3 %14 = tail call { i64, i64 } @_ZN4core4sync6atomic23atomic_compare_exchange17h0ff28c87a5c5938fE.llvm.16478127874811385373(ptr noundef nonnull align 8 %1, i64 noundef %5, i64 noundef %9, i8 noundef 1, i8 noundef 0), !noalias !4 @@ -92,34 +92,32 @@ define hidden void @"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_intern store i64 %5, ptr %25, align 8, !alias.scope !23, !noalias !22 call void @_ZN15crossbeam_epoch8internal5Local5defer17h63f66b08c2fc0a6aE(ptr noundef nonnull align 8 %22, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %2), !noalias !7 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4), !noalias !22 - br label %28 + br label %27 26: ; preds = %21 - %27 = icmp ne i64 %6, 0 - tail call void @llvm.assume(i1 %27) tail call void @__rust_dealloc(ptr noundef nonnull %7, i64 noundef 2072, i64 noundef 8) #22, !noalias !26 - br label %28 + br label %27 -28: ; preds = %26, %24 +27: ; preds = %26, %24 %.sroa.44.8.copyload = load i64, ptr %11, align 8, !noalias !35 %.sroa.7.8..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 8 %.sroa.7.8.copyload = load i64, ptr %.sroa.7.8..sroa_idx, align 8, !noalias !35 %.sroa.8.8..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 16 tail call void @llvm.experimental.noalias.scope.decl(metadata !36) - %29 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 %.sroa.44.8.copyload, ptr %29, align 8, !alias.scope !39 + %28 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 %.sroa.44.8.copyload, ptr %28, align 8, !alias.scope !39 %.sroa.7.8..sroa_idx6 = getelementptr inbounds nuw i8, ptr %0, i64 16 store i64 %.sroa.7.8.copyload, ptr %.sroa.7.8..sroa_idx6, align 8, !alias.scope !39 %.sroa.8.8..sroa_idx8 = getelementptr inbounds nuw i8, ptr %0, i64 24 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(2048) %.sroa.8.8..sroa_idx8, ptr noundef nonnull align 8 dereferenceable(2048) %.sroa.8.8..sroa_idx, i64 2048, i1 false) br label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13b35fcad657c9e9E.llvm.11765080855088437741.exit" -"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13b35fcad657c9e9E.llvm.11765080855088437741.exit": ; preds = %"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit", %28 - %storemerge.i3 = phi i64 [ 0, %28 ], [ 1, %"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit" ] +"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13b35fcad657c9e9E.llvm.11765080855088437741.exit": ; preds = %"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit", %27 + %storemerge.i3 = phi i64 [ 0, %27 ], [ 1, %"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit" ] store i64 %storemerge.i3, ptr %0, align 8, !alias.scope !41, !noalias !36 - br label %30 + br label %29 -30: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13b35fcad657c9e9E.llvm.11765080855088437741.exit", %13 +29: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h13b35fcad657c9e9E.llvm.11765080855088437741.exit", %13 ret void } @@ -168,16 +166,14 @@ define hidden void @"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_intern 28: ; preds = %21 %29 = and i64 %22, -8 %30 = inttoptr i64 %29 to ptr - %31 = icmp ne i64 %29, 0 - tail call void @llvm.assume(i1 %31) tail call void @__rust_dealloc(ptr noundef nonnull %30, i64 noundef 2072, i64 noundef 8) #22, !noalias !53 br label %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hef6a54156fe241f4E.exit _ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hef6a54156fe241f4E.exit: ; preds = %26, %28 - %32 = getelementptr inbounds nuw i8, ptr %1, i64 32 + %31 = getelementptr inbounds nuw i8, ptr %1, i64 32 + %32 = load ptr, ptr %31, align 8, !nonnull !21, !align !42, !noundef !21 %33 = load ptr, ptr %32, align 8, !nonnull !21, !align !42, !noundef !21 - %34 = load ptr, ptr %33, align 8, !nonnull !21, !align !42, !noundef !21 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(2064) %0, ptr noundef nonnull align 8 dereferenceable(2064) %34, i64 2064, i1 false) + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(2064) %0, ptr noundef nonnull align 8 dereferenceable(2064) %33, i64 2064, i1 false) ret void } @@ -203,29 +199,28 @@ define hidden void @"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$7try_pop17hc .lr.ph.preheader: ; preds = %3 %12 = tail call { i64, i64 } @_ZN4core4sync6atomic23atomic_compare_exchange17h0ff28c87a5c5938fE.llvm.16478127874811385373(ptr noundef nonnull align 8 %1, i64 noundef %5, i64 noundef %9, i8 noundef 1, i8 noundef 0), !noalias !65 %13 = extractvalue { i64, i64 } %12, 0 - %switch.i2.i71 = icmp eq i64 %13, 0 - br i1 %switch.i2.i71, label %"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit.thread", label %"_ZN4core3ptr124drop_in_place$LT$core..result..Result$LT$core..option..Option$LT$crossbeam_epoch..internal..SealedBag$GT$$C$$LP$$RP$$GT$$GT$17he92facb1d6cbfdccE.llvm.11765080855088437741.exit" + %switch.i2.i63 = icmp eq i64 %13, 0 + br i1 %switch.i2.i63, label %"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit.thread", label %"_ZN4core3ptr124drop_in_place$LT$core..result..Result$LT$core..option..Option$LT$crossbeam_epoch..internal..SealedBag$GT$$C$$LP$$RP$$GT$$GT$17he92facb1d6cbfdccE.llvm.11765080855088437741.exit" .lr.ph: ; preds = %"_ZN4core3ptr124drop_in_place$LT$core..result..Result$LT$core..option..Option$LT$crossbeam_epoch..internal..SealedBag$GT$$C$$LP$$RP$$GT$$GT$17he92facb1d6cbfdccE.llvm.11765080855088437741.exit" - %14 = tail call { i64, i64 } @_ZN4core4sync6atomic23atomic_compare_exchange17h0ff28c87a5c5938fE.llvm.16478127874811385373(ptr noundef nonnull align 8 %1, i64 noundef %28, i64 noundef %32, i8 noundef 1, i8 noundef 0), !noalias !65 + %14 = tail call { i64, i64 } @_ZN4core4sync6atomic23atomic_compare_exchange17h0ff28c87a5c5938fE.llvm.16478127874811385373(ptr noundef nonnull align 8 %1, i64 noundef %27, i64 noundef %31, i8 noundef 1, i8 noundef 0), !noalias !65 %15 = extractvalue { i64, i64 } %14, 0 %switch.i2.i = icmp eq i64 %15, 0 br i1 %switch.i2.i, label %"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit.thread", label %"_ZN4core3ptr124drop_in_place$LT$core..result..Result$LT$core..option..Option$LT$crossbeam_epoch..internal..SealedBag$GT$$C$$LP$$RP$$GT$$GT$17he92facb1d6cbfdccE.llvm.11765080855088437741.exit" "_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit.thread": ; preds = %.lr.ph, %.lr.ph.preheader - %.lcssa69 = phi i64 [ %10, %.lr.ph.preheader ], [ %33, %.lr.ph ] - %.lcssa67 = phi i64 [ %9, %.lr.ph.preheader ], [ %32, %.lr.ph ] - %.lcssa65 = phi ptr [ %7, %.lr.ph.preheader ], [ %30, %.lr.ph ] - %.lcssa63 = phi i64 [ %6, %.lr.ph.preheader ], [ %29, %.lr.ph ] - %.lcssa = phi i64 [ %5, %.lr.ph.preheader ], [ %28, %.lr.ph ] - %16 = inttoptr i64 %.lcssa69 to ptr + %.lcssa61 = phi i64 [ %10, %.lr.ph.preheader ], [ %32, %.lr.ph ] + %.lcssa59 = phi i64 [ %9, %.lr.ph.preheader ], [ %31, %.lr.ph ] + %.lcssa57 = phi ptr [ %7, %.lr.ph.preheader ], [ %29, %.lr.ph ] + %.lcssa = phi i64 [ %5, %.lr.ph.preheader ], [ %27, %.lr.ph ] + %16 = inttoptr i64 %.lcssa61 to ptr %17 = getelementptr inbounds nuw i8, ptr %1, i64 128 %18 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h568f0302a0a458e1E.llvm.16478127874811385373(ptr noundef nonnull align 8 %17, i8 noundef 0), !noalias !69 %19 = icmp eq i64 %.lcssa, %18 br i1 %19, label %"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit.i.i", label %21 "_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit.i.i": ; preds = %"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit.thread" - %20 = tail call { i64, i64 } @_ZN4core4sync6atomic23atomic_compare_exchange17h0ff28c87a5c5938fE.llvm.16478127874811385373(ptr noundef nonnull align 8 %17, i64 noundef %.lcssa, i64 noundef %.lcssa67, i8 noundef 1, i8 noundef 0), !noalias !77 + %20 = tail call { i64, i64 } @_ZN4core4sync6atomic23atomic_compare_exchange17h0ff28c87a5c5938fE.llvm.16478127874811385373(ptr noundef nonnull align 8 %17, i64 noundef %.lcssa, i64 noundef %.lcssa59, i8 noundef 1, i8 noundef 0), !noalias !77 br label %21 21: ; preds = %"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit.i.i", %"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$16compare_exchange17h071626a54c9b46c1E.exit.thread" @@ -244,9 +239,7 @@ define hidden void @"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$7try_pop17hc br label %"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_internal17h198811e5efa53918E.llvm.11765080855088437741.exit.thread31" 26: ; preds = %21 - %27 = icmp ne i64 %.lcssa63, 0 - tail call void @llvm.assume(i1 %27), !noalias !83 - tail call void @__rust_dealloc(ptr noundef nonnull %.lcssa65, i64 noundef 2072, i64 noundef 8) #22, !noalias !88 + tail call void @__rust_dealloc(ptr noundef nonnull %.lcssa57, i64 noundef 2072, i64 noundef 8) #22, !noalias !88 br label %"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_internal17h198811e5efa53918E.llvm.11765080855088437741.exit.thread31" "_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_internal17h198811e5efa53918E.llvm.11765080855088437741.exit.thread31": ; preds = %24, %26 @@ -271,14 +264,14 @@ define hidden void @"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$7try_pop17hc "_ZN4core3ptr124drop_in_place$LT$core..result..Result$LT$core..option..Option$LT$crossbeam_epoch..internal..SealedBag$GT$$C$$LP$$RP$$GT$$GT$17he92facb1d6cbfdccE.llvm.11765080855088437741.exit": ; preds = %.lr.ph.preheader, %.lr.ph call void @llvm.lifetime.end.p0(i64 2048, ptr nonnull %.sroa.12) call void @llvm.lifetime.start.p0(i64 2048, ptr nonnull %.sroa.12) - %28 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h568f0302a0a458e1E.llvm.16478127874811385373(ptr noundef nonnull align 128 %1, i8 noundef 2), !noalias !98 - %29 = and i64 %28, -8 - %30 = inttoptr i64 %29 to ptr - %31 = getelementptr inbounds nuw i8, ptr %30, i64 2064 - %32 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h568f0302a0a458e1E.llvm.16478127874811385373(ptr noundef nonnull align 8 %31, i8 noundef 2), !noalias !98 - %33 = and i64 %32, -8 - %34 = icmp eq i64 %33, 0 - br i1 %34, label %"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_internal17h198811e5efa53918E.llvm.11765080855088437741.exit.thread", label %.lr.ph + %27 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h568f0302a0a458e1E.llvm.16478127874811385373(ptr noundef nonnull align 128 %1, i8 noundef 2), !noalias !98 + %28 = and i64 %27, -8 + %29 = inttoptr i64 %28 to ptr + %30 = getelementptr inbounds nuw i8, ptr %29, i64 2064 + %31 = tail call noundef i64 @_ZN4core4sync6atomic11atomic_load17h568f0302a0a458e1E.llvm.16478127874811385373(ptr noundef nonnull align 8 %30, i8 noundef 2), !noalias !98 + %32 = and i64 %31, -8 + %33 = icmp eq i64 %32, 0 + br i1 %33, label %"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_internal17h198811e5efa53918E.llvm.11765080855088437741.exit.thread", label %.lr.ph } ; Function Attrs: nonlazybind uwtable @@ -2731,7 +2724,7 @@ define hidden void @"_ZN4core6result19Result$LT$T$C$E$GT$3map17h989e71332ba1de71 %4 = alloca { ptr, { [3 x i64] }, {} }, align 8 %5 = load i64, ptr %1, align 8, !range !132, !noundef !21 %trunc = trunc nuw i64 %5 to i1 - br i1 %trunc, label %32, label %6 + br i1 %trunc, label %31, label %6 6: ; preds = %3 %.sroa.0.0.copyload = load ptr, ptr %2, align 8, !nonnull !21, !noundef !21 @@ -2782,32 +2775,30 @@ define hidden void @"_ZN4core6result19Result$LT$T$C$E$GT$3map17h989e71332ba1de71 25: ; preds = %18 %26 = and i64 %19, -8 %27 = inttoptr i64 %26 to ptr - %28 = icmp ne i64 %26, 0 - tail call void @llvm.assume(i1 %28) tail call void @__rust_dealloc(ptr noundef nonnull %27, i64 noundef 2072, i64 noundef 8) #22, !noalias !695 br label %"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_internal28_$u7b$$u7b$closure$u7d$$u7d$17h76bedb52c0ed91c3E.llvm.11765080855088437741.exit" "_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_internal28_$u7b$$u7b$closure$u7d$$u7d$17h76bedb52c0ed91c3E.llvm.11765080855088437741.exit": ; preds = %23, %25 - %29 = icmp ne ptr %.sroa.7.0.copyload, null - tail call void @llvm.assume(i1 %29) - %30 = load ptr, ptr %.sroa.7.0.copyload, align 8, !noalias !681, !nonnull !21, !align !42, !noundef !21 - %31 = getelementptr inbounds nuw i8, ptr %0, i64 8 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(2064) %31, ptr noundef nonnull align 8 dereferenceable(2064) %30, i64 2064, i1 false) - br label %39 - -32: ; preds = %3 - %33 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %34 = load i64, ptr %33, align 8, !noundef !21 - %35 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %36 = load i64, ptr %35, align 8, !noundef !21 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 %34, ptr %37, align 8 - %38 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %36, ptr %38, align 8 - br label %39 - -39: ; preds = %"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_internal28_$u7b$$u7b$closure$u7d$$u7d$17h76bedb52c0ed91c3E.llvm.11765080855088437741.exit", %32 - %storemerge = phi i64 [ 0, %"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_internal28_$u7b$$u7b$closure$u7d$$u7d$17h76bedb52c0ed91c3E.llvm.11765080855088437741.exit" ], [ 1, %32 ] + %28 = icmp ne ptr %.sroa.7.0.copyload, null + tail call void @llvm.assume(i1 %28) + %29 = load ptr, ptr %.sroa.7.0.copyload, align 8, !noalias !681, !nonnull !21, !align !42, !noundef !21 + %30 = getelementptr inbounds nuw i8, ptr %0, i64 8 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(2064) %30, ptr noundef nonnull align 8 dereferenceable(2064) %29, i64 2064, i1 false) + br label %38 + +31: ; preds = %3 + %32 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %33 = load i64, ptr %32, align 8, !noundef !21 + %34 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %35 = load i64, ptr %34, align 8, !noundef !21 + %36 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 %33, ptr %36, align 8 + %37 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store i64 %35, ptr %37, align 8 + br label %38 + +38: ; preds = %"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_internal28_$u7b$$u7b$closure$u7d$$u7d$17h76bedb52c0ed91c3E.llvm.11765080855088437741.exit", %31 + %storemerge = phi i64 [ 0, %"_ZN15crossbeam_epoch4sync5queue14Queue$LT$T$GT$12pop_internal28_$u7b$$u7b$closure$u7d$$u7d$17h76bedb52c0ed91c3E.llvm.11765080855088437741.exit" ], [ 1, %31 ] store i64 %storemerge, ptr %0, align 8 ret void } diff --git a/bench/mitsuba3/optimized/codeholder.cpp.ll b/bench/mitsuba3/optimized/codeholder.cpp.ll index 3e387069ce8..96367934a1d 100644 --- a/bench/mitsuba3/optimized/codeholder.cpp.ll +++ b/bench/mitsuba3/optimized/codeholder.cpp.ll @@ -1223,7 +1223,7 @@ define linkonce_odr hidden void @_ZN6asmjit9_abi_1_108ZoneTreeINS0_17AddressTabl 7: ; preds = %3 store ptr %1, ptr %0, align 8, !tbaa !99 - br label %150 + br label %149 8: ; preds = %3 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4) #17 @@ -1238,13 +1238,13 @@ define linkonce_odr hidden void @_ZN6asmjit9_abi_1_108ZoneTreeINS0_17AddressTabl %14 = getelementptr inbounds nuw i8, ptr %1, i64 16 br label %15 -15: ; preds = %133, %8 - %16 = phi ptr [ null, %8 ], [ %17, %133 ] - %17 = phi ptr [ null, %8 ], [ %55, %133 ] - %18 = phi ptr [ %4, %8 ], [ %140, %133 ] - %19 = phi ptr [ %5, %8 ], [ %144, %133 ] - %20 = phi i64 [ 0, %8 ], [ %138, %133 ] - %21 = phi i64 [ 0, %8 ], [ %20, %133 ] +15: ; preds = %132, %8 + %16 = phi ptr [ null, %8 ], [ %17, %132 ] + %17 = phi ptr [ null, %8 ], [ %55, %132 ] + %18 = phi ptr [ %4, %8 ], [ %139, %132 ] + %19 = phi ptr [ %5, %8 ], [ %143, %132 ] + %20 = phi i64 [ 0, %8 ], [ %137, %132 ] + %21 = phi i64 [ 0, %8 ], [ %20, %132 ] %22 = icmp eq ptr %19, null br i1 %22, label %23, label %28 @@ -1302,13 +1302,13 @@ define linkonce_odr hidden void @_ZN6asmjit9_abi_1_108ZoneTreeINS0_17AddressTabl %58 = icmp eq i64 %57, 0 %59 = icmp eq ptr %17, null %60 = or i1 %59, %58 - br i1 %60, label %131, label %61 + br i1 %60, label %130, label %61 61: ; preds = %54 %62 = load i64, ptr %17, align 8, !tbaa !104 %63 = and i64 %62, 1 %64 = icmp eq i64 %63, 0 - br i1 %64, label %131, label %65 + br i1 %64, label %130, label %65 65: ; preds = %61 %66 = icmp ne ptr %16, null @@ -1331,101 +1331,99 @@ define linkonce_odr hidden void @_ZN6asmjit9_abi_1_108ZoneTreeINS0_17AddressTabl %82 = load i64, ptr %81, align 8, !tbaa !104 %83 = and i64 %82, -2 %84 = inttoptr i64 %83 to ptr - %85 = icmp ne i64 %83, 0 - tail call void @llvm.assume(i1 %85) - %86 = getelementptr inbounds nuw [2 x i64], ptr %84, i64 0, i64 %78 - %87 = load i64, ptr %86, align 8, !tbaa !104 - %88 = and i64 %87, -2 - br i1 %76, label %89, label %92 - -89: ; preds = %65 - %90 = and i64 %82, 1 - %91 = or disjoint i64 %88, %90 - br label %114 - -92: ; preds = %65 - %93 = inttoptr i64 %88 to ptr - %94 = icmp ne i64 %88, 0 - tail call void @llvm.assume(i1 %94) - %95 = getelementptr inbounds nuw [2 x i64], ptr %93, i64 0, i64 %80 - %96 = load i64, ptr %95, align 8, !tbaa !104 - %97 = and i64 %96, -2 - %98 = and i64 %87, 1 - %99 = or disjoint i64 %97, %98 - store i64 %99, ptr %86, align 8, !tbaa !104 - %100 = load i64, ptr %95, align 8, !tbaa !104 - %101 = and i64 %100, 1 - %102 = or disjoint i64 %101, %83 - store i64 %102, ptr %95, align 8, !tbaa !104 - %103 = load i64, ptr %84, align 8, !tbaa !104 - %104 = or i64 %103, 1 - store i64 %104, ptr %84, align 8, !tbaa !104 - %105 = load i64, ptr %93, align 8, !tbaa !104 - %106 = and i64 %105, -2 - store i64 %106, ptr %93, align 8, !tbaa !104 - %107 = load i64, ptr %81, align 8, !tbaa !104 - %108 = and i64 %107, 1 - %109 = or disjoint i64 %108, %88 - store i64 %109, ptr %81, align 8, !tbaa !104 - %110 = getelementptr inbounds nuw [2 x i64], ptr %93, i64 0, i64 %78 - %111 = load i64, ptr %110, align 8, !tbaa !104 - %112 = and i64 %111, -2 - %113 = or disjoint i64 %112, %108 - br label %114 - -114: ; preds = %92, %89 - %115 = phi i64 [ %113, %92 ], [ %91, %89 ] - %116 = phi ptr [ %110, %92 ], [ %86, %89 ] - %117 = phi ptr [ %93, %92 ], [ %84, %89 ] - %118 = phi i64 [ %88, %92 ], [ %83, %89 ] - store i64 %115, ptr %81, align 8, !tbaa !104 - %119 = load i64, ptr %116, align 8, !tbaa !104 - %120 = and i64 %119, 1 - %121 = ptrtoint ptr %16 to i64 - %122 = or i64 %120, %121 - store i64 %122, ptr %116, align 8, !tbaa !104 - %123 = load i64, ptr %16, align 8, !tbaa !104 - %124 = or i64 %123, 1 - store i64 %124, ptr %16, align 8, !tbaa !104 - %125 = load i64, ptr %117, align 8, !tbaa !104 - %126 = and i64 %125, -2 - store i64 %126, ptr %117, align 8, !tbaa !104 - %127 = getelementptr inbounds nuw [2 x i64], ptr %18, i64 0, i64 %71 - %128 = load i64, ptr %127, align 8, !tbaa !104 - %129 = and i64 %128, 1 - %130 = or disjoint i64 %129, %118 - store i64 %130, ptr %127, align 8, !tbaa !104 - br label %131 - -131: ; preds = %114, %61, %54 - %132 = icmp eq ptr %55, %1 - br i1 %132, label %145, label %133 - -133: ; preds = %131 - %134 = getelementptr inbounds nuw i8, ptr %55, i64 16 - %135 = load i64, ptr %134, align 8, !tbaa !100 - %136 = load i64, ptr %14, align 8, !tbaa !100 - %137 = icmp ult i64 %135, %136 - %138 = zext i1 %137 to i64 - %139 = icmp eq ptr %16, null - %140 = select i1 %139, ptr %18, ptr %16 - %141 = getelementptr inbounds nuw [2 x i64], ptr %55, i64 0, i64 %138 - %142 = load i64, ptr %141, align 8, !tbaa !104 - %143 = and i64 %142, -2 - %144 = inttoptr i64 %143 to ptr + %85 = getelementptr inbounds nuw [2 x i64], ptr %84, i64 0, i64 %78 + %86 = load i64, ptr %85, align 8, !tbaa !104 + %87 = and i64 %86, -2 + br i1 %76, label %88, label %91 + +88: ; preds = %65 + %89 = and i64 %82, 1 + %90 = or disjoint i64 %87, %89 + br label %113 + +91: ; preds = %65 + %92 = inttoptr i64 %87 to ptr + %93 = icmp ne i64 %87, 0 + tail call void @llvm.assume(i1 %93) + %94 = getelementptr inbounds nuw [2 x i64], ptr %92, i64 0, i64 %80 + %95 = load i64, ptr %94, align 8, !tbaa !104 + %96 = and i64 %95, -2 + %97 = and i64 %86, 1 + %98 = or disjoint i64 %96, %97 + store i64 %98, ptr %85, align 8, !tbaa !104 + %99 = load i64, ptr %94, align 8, !tbaa !104 + %100 = and i64 %99, 1 + %101 = or disjoint i64 %100, %83 + store i64 %101, ptr %94, align 8, !tbaa !104 + %102 = load i64, ptr %84, align 8, !tbaa !104 + %103 = or i64 %102, 1 + store i64 %103, ptr %84, align 8, !tbaa !104 + %104 = load i64, ptr %92, align 8, !tbaa !104 + %105 = and i64 %104, -2 + store i64 %105, ptr %92, align 8, !tbaa !104 + %106 = load i64, ptr %81, align 8, !tbaa !104 + %107 = and i64 %106, 1 + %108 = or disjoint i64 %107, %87 + store i64 %108, ptr %81, align 8, !tbaa !104 + %109 = getelementptr inbounds nuw [2 x i64], ptr %92, i64 0, i64 %78 + %110 = load i64, ptr %109, align 8, !tbaa !104 + %111 = and i64 %110, -2 + %112 = or disjoint i64 %111, %107 + br label %113 + +113: ; preds = %91, %88 + %114 = phi i64 [ %112, %91 ], [ %90, %88 ] + %115 = phi ptr [ %109, %91 ], [ %85, %88 ] + %116 = phi ptr [ %92, %91 ], [ %84, %88 ] + %117 = phi i64 [ %87, %91 ], [ %83, %88 ] + store i64 %114, ptr %81, align 8, !tbaa !104 + %118 = load i64, ptr %115, align 8, !tbaa !104 + %119 = and i64 %118, 1 + %120 = ptrtoint ptr %16 to i64 + %121 = or i64 %119, %120 + store i64 %121, ptr %115, align 8, !tbaa !104 + %122 = load i64, ptr %16, align 8, !tbaa !104 + %123 = or i64 %122, 1 + store i64 %123, ptr %16, align 8, !tbaa !104 + %124 = load i64, ptr %116, align 8, !tbaa !104 + %125 = and i64 %124, -2 + store i64 %125, ptr %116, align 8, !tbaa !104 + %126 = getelementptr inbounds nuw [2 x i64], ptr %18, i64 0, i64 %71 + %127 = load i64, ptr %126, align 8, !tbaa !104 + %128 = and i64 %127, 1 + %129 = or disjoint i64 %128, %117 + store i64 %129, ptr %126, align 8, !tbaa !104 + br label %130 + +130: ; preds = %113, %61, %54 + %131 = icmp eq ptr %55, %1 + br i1 %131, label %144, label %132 + +132: ; preds = %130 + %133 = getelementptr inbounds nuw i8, ptr %55, i64 16 + %134 = load i64, ptr %133, align 8, !tbaa !100 + %135 = load i64, ptr %14, align 8, !tbaa !100 + %136 = icmp ult i64 %134, %135 + %137 = zext i1 %136 to i64 + %138 = icmp eq ptr %16, null + %139 = select i1 %138, ptr %18, ptr %16 + %140 = getelementptr inbounds nuw [2 x i64], ptr %55, i64 0, i64 %137 + %141 = load i64, ptr %140, align 8, !tbaa !104 + %142 = and i64 %141, -2 + %143 = inttoptr i64 %142 to ptr br label %15, !llvm.loop !110 -145: ; preds = %131 - %146 = load i64, ptr %10, align 8, !tbaa !104 - %147 = inttoptr i64 %146 to ptr - store ptr %147, ptr %0, align 8, !tbaa !99 - %148 = load i64, ptr %147, align 8, !tbaa !104 - %149 = and i64 %148, -2 - store i64 %149, ptr %147, align 8, !tbaa !104 +144: ; preds = %130 + %145 = load i64, ptr %10, align 8, !tbaa !104 + %146 = inttoptr i64 %145 to ptr + store ptr %146, ptr %0, align 8, !tbaa !99 + %147 = load i64, ptr %146, align 8, !tbaa !104 + %148 = and i64 %147, -2 + store i64 %148, ptr %146, align 8, !tbaa !104 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) #17 - br label %150 + br label %149 -150: ; preds = %145, %7 +149: ; preds = %144, %7 ret void } diff --git a/bench/mitsuba3/optimized/ralocal.cpp.ll b/bench/mitsuba3/optimized/ralocal.cpp.ll index 94db9ad47d3..11781c861d5 100644 --- a/bench/mitsuba3/optimized/ralocal.cpp.ll +++ b/bench/mitsuba3/optimized/ralocal.cpp.ll @@ -1716,17 +1716,16 @@ define hidden noundef i32 @_ZN6asmjit9_abi_1_1016RALocalAllocator9allocInstEPNS0 %193 = and i32 %191, %192 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #11 %194 = icmp eq i32 %182, 0 - br i1 %194, label %.loopexit94, label %195 + br i1 %194, label %.loopexit93, label %195 195: ; preds = %188 %196 = load ptr, ptr %21, align 8, !tbaa !23 %197 = and i32 %182, 7 %198 = zext nneg i32 %197 to i64 - %199 = icmp eq i32 %197, 0 - br i1 %199, label %.loopexit94, label %.preheader93 + br label %199 -.preheader93: ; preds = %195, %.preheader93 - %200 = phi i64 [ %209, %.preheader93 ], [ 0, %195 ] +199: ; preds = %195, %199 + %200 = phi i64 [ %209, %199 ], [ 0, %195 ] %201 = getelementptr inbounds nuw [4 x ptr], ptr %5, i64 0, i64 %200 %202 = load ptr, ptr %201, align 8, !tbaa !24 %203 = load i32, ptr %202, align 4, !tbaa !151 @@ -1736,17 +1735,17 @@ define hidden noundef i32 @_ZN6asmjit9_abi_1_1016RALocalAllocator9allocInstEPNS0 %207 = zext i8 %206 to i32 %208 = getelementptr inbounds nuw [4 x i32], ptr %6, i64 0, i64 %200 store i32 %207, ptr %208, align 4, !tbaa !91 - %209 = add nuw nsw i64 %200, 1 + %209 = add nuw i64 %200, 1 %210 = icmp eq i64 %209, %198 - br i1 %210, label %.loopexit94, label %.preheader93, !llvm.loop !156 + br i1 %210, label %.loopexit93, label %199, !llvm.loop !156 -.loopexit94: ; preds = %.preheader93, %195, %188 +.loopexit93: ; preds = %199, %188 %211 = getelementptr inbounds nuw i8, ptr %183, i64 16 %212 = load i32, ptr %211, align 4, !tbaa !153 %213 = icmp eq i32 %212, 0 br i1 %213, label %272, label %214 -214: ; preds = %.loopexit94 +214: ; preds = %.loopexit93 %215 = load ptr, ptr %0, align 8 %216 = getelementptr inbounds nuw i8, ptr %215, i64 320 %217 = zext nneg i32 %182 to i64 @@ -1825,7 +1824,7 @@ define hidden noundef i32 @_ZN6asmjit9_abi_1_1016RALocalAllocator9allocInstEPNS0 271: ; preds = %269 br i1 %194, label %.loopexit92, label %.preheader91 -272: ; preds = %269, %.loopexit94 +272: ; preds = %269, %.loopexit93 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) #11 br label %.loopexit72 @@ -3020,10 +3019,10 @@ define hidden noundef i32 @_ZN6asmjit9_abi_1_1016RALocalAllocator9allocInstEPNS0 1137: ; preds = %1133 %1138 = icmp eq i32 %1135, -1 - br i1 %1138, label %.loopexit72, label %.preheader197 + br i1 %1138, label %.loopexit72, label %.preheader196 -.preheader197: ; preds = %1137, %.preheader197 - %1139 = phi i64 [ %1146, %.preheader197 ], [ 0, %1137 ] +.preheader196: ; preds = %1137, %.preheader196 + %1139 = phi i64 [ %1146, %.preheader196 ], [ 0, %1137 ] %1140 = trunc i64 %1139 to i32 %1141 = add i32 %1135, %1140 %1142 = getelementptr inbounds nuw [4 x ptr], ptr %5, i64 0, i64 %1139 @@ -3033,9 +3032,9 @@ define hidden noundef i32 @_ZN6asmjit9_abi_1_1016RALocalAllocator9allocInstEPNS0 store i8 %1144, ptr %1145, align 1, !tbaa !16 %1146 = add nuw nsw i64 %1139, 1 %1147 = icmp eq i64 %1146, %1091 - br i1 %1147, label %.loopexit77, label %.preheader197, !llvm.loop !180 + br i1 %1147, label %.loopexit77, label %.preheader196, !llvm.loop !180 -.loopexit77: ; preds = %.preheader197, %1076, %1071 +.loopexit77: ; preds = %.preheader196, %1076, %1071 br i1 %919, label %.loopexit76, label %1148 1148: ; preds = %.loopexit77 diff --git a/bench/nuttx/optimized/lib_swab.c.ll b/bench/nuttx/optimized/lib_swab.c.ll index bb01da8db6b..9305aeef830 100644 --- a/bench/nuttx/optimized/lib_swab.c.ll +++ b/bench/nuttx/optimized/lib_swab.c.ll @@ -6,29 +6,28 @@ target triple = "x86_64-pc-linux-gnu" ; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable define void @swab(ptr nocapture noundef readonly %0, ptr noundef writeonly %1, i64 noundef %2) local_unnamed_addr #0 { %4 = icmp sgt i64 %2, 1 - br i1 %4, label %5, label %.loopexit + br i1 %4, label %.lr.ph.preheader, label %.loopexit -5: ; preds = %3 - %6 = and i64 %2, 9223372036854775806 - %7 = getelementptr inbounds nuw i8, ptr %1, i64 %6 - %.not13 = icmp samesign eq i64 %6, 0 - br i1 %.not13, label %.loopexit, label %.lr.ph +.lr.ph.preheader: ; preds = %3 + %5 = and i64 %2, 9223372036854775806 + %6 = getelementptr inbounds nuw i8, ptr %1, i64 %5 + br label %.lr.ph -.lr.ph: ; preds = %5, %.lr.ph - %.015 = phi ptr [ %10, %.lr.ph ], [ %0, %5 ] - %.01114 = phi ptr [ %13, %.lr.ph ], [ %1, %5 ] - %8 = getelementptr inbounds nuw i8, ptr %.015, i64 1 - %9 = load i8, ptr %.015, align 1 - %10 = getelementptr inbounds nuw i8, ptr %.015, i64 2 - %11 = load i8, ptr %8, align 1 - %12 = getelementptr inbounds nuw i8, ptr %.01114, i64 1 - store i8 %11, ptr %.01114, align 1 - %13 = getelementptr inbounds nuw i8, ptr %.01114, i64 2 - store i8 %9, ptr %12, align 1 - %.not = icmp eq ptr %13, %7 +.lr.ph: ; preds = %.lr.ph.preheader, %.lr.ph + %.015 = phi ptr [ %9, %.lr.ph ], [ %0, %.lr.ph.preheader ] + %.01114 = phi ptr [ %12, %.lr.ph ], [ %1, %.lr.ph.preheader ] + %7 = getelementptr inbounds nuw i8, ptr %.015, i64 1 + %8 = load i8, ptr %.015, align 1 + %9 = getelementptr inbounds nuw i8, ptr %.015, i64 2 + %10 = load i8, ptr %7, align 1 + %11 = getelementptr inbounds nuw i8, ptr %.01114, i64 1 + store i8 %10, ptr %.01114, align 1 + %12 = getelementptr inbounds nuw i8, ptr %.01114, i64 2 + store i8 %8, ptr %11, align 1 + %.not = icmp eq ptr %12, %6 br i1 %.not, label %.loopexit, label %.lr.ph, !llvm.loop !6 -.loopexit: ; preds = %.lr.ph, %5, %3 +.loopexit: ; preds = %.lr.ph, %3 ret void } diff --git a/bench/ocio/optimized/CPUProcessor.cpp.ll b/bench/ocio/optimized/CPUProcessor.cpp.ll index 24a59e030bf..c2b8c3261ec 100644 --- a/bench/ocio/optimized/CPUProcessor.cpp.ll +++ b/bench/ocio/optimized/CPUProcessor.cpp.ll @@ -7527,7 +7527,7 @@ lor.lhs.false.i.i.i: ; preds = %if.end40.i.i.i br i1 %or.cond.i.i.i, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit, label %if.then55.i.i.i if.then55.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end40.i.i.i - %inc.i.i.i = add i16 %conv49.i.i.i, 1 + %inc.i.i.i = add nuw i16 %conv49.i.i.i, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit: ; preds = %if.then4.i.i.i, %if.end.i.i.i, %if.then23.i.i.i, %if.end27.i.i.i, %if.end37.i.i.i, %lor.lhs.false.i.i.i, %if.then55.i.i.i @@ -7611,7 +7611,7 @@ lor.lhs.false.i.i.i28: ; preds = %if.end40.i.i.i16 br i1 %or.cond.i.i.i32, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59, label %if.then55.i.i.i33 if.then55.i.i.i33: ; preds = %lor.lhs.false.i.i.i28, %if.end40.i.i.i16 - %inc.i.i.i34 = add i16 %conv49.i.i.i26, 1 + %inc.i.i.i34 = add nuw i16 %conv49.i.i.i26, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59: ; preds = %if.then4.i.i.i51, %if.end.i.i.i54, %if.then23.i.i.i49, %if.end27.i.i.i40, %if.end37.i.i.i14, %lor.lhs.false.i.i.i28, %if.then55.i.i.i33 @@ -7696,7 +7696,7 @@ lor.lhs.false.i.i.i78: ; preds = %if.end40.i.i.i66 br i1 %or.cond.i.i.i82, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109, label %if.then55.i.i.i83 if.then55.i.i.i83: ; preds = %lor.lhs.false.i.i.i78, %if.end40.i.i.i66 - %inc.i.i.i84 = add i16 %conv49.i.i.i76, 1 + %inc.i.i.i84 = add nuw i16 %conv49.i.i.i76, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109: ; preds = %if.then4.i.i.i101, %if.end.i.i.i104, %if.then23.i.i.i99, %if.end27.i.i.i90, %if.end37.i.i.i64, %lor.lhs.false.i.i.i78, %if.then55.i.i.i83 @@ -7781,7 +7781,7 @@ lor.lhs.false.i.i.i128: ; preds = %if.end40.i.i.i116 br i1 %or.cond.i.i.i132, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159, label %if.then55.i.i.i133 if.then55.i.i.i133: ; preds = %lor.lhs.false.i.i.i128, %if.end40.i.i.i116 - %inc.i.i.i134 = add i16 %conv49.i.i.i126, 1 + %inc.i.i.i134 = add nuw i16 %conv49.i.i.i126, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159: ; preds = %if.then4.i.i.i151, %if.end.i.i.i154, %if.then23.i.i.i149, %if.end27.i.i.i140, %if.end37.i.i.i114, %lor.lhs.false.i.i.i128, %if.then55.i.i.i133 @@ -8781,7 +8781,7 @@ lor.lhs.false.i.i.i: ; preds = %if.end40.i.i.i br i1 %or.cond.i.i.i, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit, label %if.then55.i.i.i if.then55.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end40.i.i.i - %inc.i.i.i = add i16 %conv49.i.i.i, 1 + %inc.i.i.i = add nuw i16 %conv49.i.i.i, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit: ; preds = %if.then4.i.i.i, %if.end.i.i.i, %if.then23.i.i.i, %if.end27.i.i.i, %if.end37.i.i.i, %lor.lhs.false.i.i.i, %if.then55.i.i.i @@ -8865,7 +8865,7 @@ lor.lhs.false.i.i.i28: ; preds = %if.end40.i.i.i16 br i1 %or.cond.i.i.i32, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59, label %if.then55.i.i.i33 if.then55.i.i.i33: ; preds = %lor.lhs.false.i.i.i28, %if.end40.i.i.i16 - %inc.i.i.i34 = add i16 %conv49.i.i.i26, 1 + %inc.i.i.i34 = add nuw i16 %conv49.i.i.i26, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59: ; preds = %if.then4.i.i.i51, %if.end.i.i.i54, %if.then23.i.i.i49, %if.end27.i.i.i40, %if.end37.i.i.i14, %lor.lhs.false.i.i.i28, %if.then55.i.i.i33 @@ -8950,7 +8950,7 @@ lor.lhs.false.i.i.i78: ; preds = %if.end40.i.i.i66 br i1 %or.cond.i.i.i82, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109, label %if.then55.i.i.i83 if.then55.i.i.i83: ; preds = %lor.lhs.false.i.i.i78, %if.end40.i.i.i66 - %inc.i.i.i84 = add i16 %conv49.i.i.i76, 1 + %inc.i.i.i84 = add nuw i16 %conv49.i.i.i76, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109: ; preds = %if.then4.i.i.i101, %if.end.i.i.i104, %if.then23.i.i.i99, %if.end27.i.i.i90, %if.end37.i.i.i64, %lor.lhs.false.i.i.i78, %if.then55.i.i.i83 @@ -9035,7 +9035,7 @@ lor.lhs.false.i.i.i128: ; preds = %if.end40.i.i.i116 br i1 %or.cond.i.i.i132, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159, label %if.then55.i.i.i133 if.then55.i.i.i133: ; preds = %lor.lhs.false.i.i.i128, %if.end40.i.i.i116 - %inc.i.i.i134 = add i16 %conv49.i.i.i126, 1 + %inc.i.i.i134 = add nuw i16 %conv49.i.i.i126, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159: ; preds = %if.then4.i.i.i151, %if.end.i.i.i154, %if.then23.i.i.i149, %if.end27.i.i.i140, %if.end37.i.i.i114, %lor.lhs.false.i.i.i128, %if.then55.i.i.i133 @@ -10035,7 +10035,7 @@ lor.lhs.false.i.i.i: ; preds = %if.end40.i.i.i br i1 %or.cond.i.i.i, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit, label %if.then55.i.i.i if.then55.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end40.i.i.i - %inc.i.i.i = add i16 %conv49.i.i.i, 1 + %inc.i.i.i = add nuw i16 %conv49.i.i.i, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit: ; preds = %if.then4.i.i.i, %if.end.i.i.i, %if.then23.i.i.i, %if.end27.i.i.i, %if.end37.i.i.i, %lor.lhs.false.i.i.i, %if.then55.i.i.i @@ -10119,7 +10119,7 @@ lor.lhs.false.i.i.i28: ; preds = %if.end40.i.i.i16 br i1 %or.cond.i.i.i32, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59, label %if.then55.i.i.i33 if.then55.i.i.i33: ; preds = %lor.lhs.false.i.i.i28, %if.end40.i.i.i16 - %inc.i.i.i34 = add i16 %conv49.i.i.i26, 1 + %inc.i.i.i34 = add nuw i16 %conv49.i.i.i26, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59: ; preds = %if.then4.i.i.i51, %if.end.i.i.i54, %if.then23.i.i.i49, %if.end27.i.i.i40, %if.end37.i.i.i14, %lor.lhs.false.i.i.i28, %if.then55.i.i.i33 @@ -10204,7 +10204,7 @@ lor.lhs.false.i.i.i78: ; preds = %if.end40.i.i.i66 br i1 %or.cond.i.i.i82, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109, label %if.then55.i.i.i83 if.then55.i.i.i83: ; preds = %lor.lhs.false.i.i.i78, %if.end40.i.i.i66 - %inc.i.i.i84 = add i16 %conv49.i.i.i76, 1 + %inc.i.i.i84 = add nuw i16 %conv49.i.i.i76, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109: ; preds = %if.then4.i.i.i101, %if.end.i.i.i104, %if.then23.i.i.i99, %if.end27.i.i.i90, %if.end37.i.i.i64, %lor.lhs.false.i.i.i78, %if.then55.i.i.i83 @@ -10289,7 +10289,7 @@ lor.lhs.false.i.i.i128: ; preds = %if.end40.i.i.i116 br i1 %or.cond.i.i.i132, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159, label %if.then55.i.i.i133 if.then55.i.i.i133: ; preds = %lor.lhs.false.i.i.i128, %if.end40.i.i.i116 - %inc.i.i.i134 = add i16 %conv49.i.i.i126, 1 + %inc.i.i.i134 = add nuw i16 %conv49.i.i.i126, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159: ; preds = %if.then4.i.i.i151, %if.end.i.i.i154, %if.then23.i.i.i149, %if.end27.i.i.i140, %if.end37.i.i.i114, %lor.lhs.false.i.i.i128, %if.then55.i.i.i133 @@ -11289,7 +11289,7 @@ lor.lhs.false.i.i.i: ; preds = %if.end40.i.i.i br i1 %or.cond.i.i.i, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit, label %if.then55.i.i.i if.then55.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end40.i.i.i - %inc.i.i.i = add i16 %conv49.i.i.i, 1 + %inc.i.i.i = add nuw i16 %conv49.i.i.i, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit: ; preds = %if.then4.i.i.i, %if.end.i.i.i, %if.then23.i.i.i, %if.end27.i.i.i, %if.end37.i.i.i, %lor.lhs.false.i.i.i, %if.then55.i.i.i @@ -11373,7 +11373,7 @@ lor.lhs.false.i.i.i28: ; preds = %if.end40.i.i.i16 br i1 %or.cond.i.i.i32, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59, label %if.then55.i.i.i33 if.then55.i.i.i33: ; preds = %lor.lhs.false.i.i.i28, %if.end40.i.i.i16 - %inc.i.i.i34 = add i16 %conv49.i.i.i26, 1 + %inc.i.i.i34 = add nuw i16 %conv49.i.i.i26, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59: ; preds = %if.then4.i.i.i51, %if.end.i.i.i54, %if.then23.i.i.i49, %if.end27.i.i.i40, %if.end37.i.i.i14, %lor.lhs.false.i.i.i28, %if.then55.i.i.i33 @@ -11458,7 +11458,7 @@ lor.lhs.false.i.i.i78: ; preds = %if.end40.i.i.i66 br i1 %or.cond.i.i.i82, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109, label %if.then55.i.i.i83 if.then55.i.i.i83: ; preds = %lor.lhs.false.i.i.i78, %if.end40.i.i.i66 - %inc.i.i.i84 = add i16 %conv49.i.i.i76, 1 + %inc.i.i.i84 = add nuw i16 %conv49.i.i.i76, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109: ; preds = %if.then4.i.i.i101, %if.end.i.i.i104, %if.then23.i.i.i99, %if.end27.i.i.i90, %if.end37.i.i.i64, %lor.lhs.false.i.i.i78, %if.then55.i.i.i83 @@ -11543,7 +11543,7 @@ lor.lhs.false.i.i.i128: ; preds = %if.end40.i.i.i116 br i1 %or.cond.i.i.i132, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159, label %if.then55.i.i.i133 if.then55.i.i.i133: ; preds = %lor.lhs.false.i.i.i128, %if.end40.i.i.i116 - %inc.i.i.i134 = add i16 %conv49.i.i.i126, 1 + %inc.i.i.i134 = add nuw i16 %conv49.i.i.i126, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159: ; preds = %if.then4.i.i.i151, %if.end.i.i.i154, %if.then23.i.i.i149, %if.end27.i.i.i140, %if.end37.i.i.i114, %lor.lhs.false.i.i.i128, %if.then55.i.i.i133 @@ -13175,7 +13175,7 @@ lor.lhs.false.i.i.i: ; preds = %if.end40.i.i.i br i1 %or.cond.i.i.i, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit, label %if.then55.i.i.i if.then55.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end40.i.i.i - %inc.i.i.i = add i16 %conv49.i.i.i, 1 + %inc.i.i.i = add nuw i16 %conv49.i.i.i, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit: ; preds = %if.then4.i.i.i, %if.end.i.i.i, %if.then23.i.i.i, %if.end27.i.i.i, %if.end37.i.i.i, %lor.lhs.false.i.i.i, %if.then55.i.i.i @@ -13296,7 +13296,7 @@ lor.lhs.false.i.i.i51: ; preds = %if.end40.i.i.i39 br i1 %or.cond.i.i.i55, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit82, label %if.then55.i.i.i56 if.then55.i.i.i56: ; preds = %lor.lhs.false.i.i.i51, %if.end40.i.i.i39 - %inc.i.i.i57 = add i16 %conv49.i.i.i49, 1 + %inc.i.i.i57 = add nuw i16 %conv49.i.i.i49, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit82 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit82: ; preds = %if.then4.i.i.i74, %if.end.i.i.i77, %if.then23.i.i.i72, %if.end27.i.i.i63, %if.end37.i.i.i37, %lor.lhs.false.i.i.i51, %if.then55.i.i.i56 @@ -13418,7 +13418,7 @@ lor.lhs.false.i.i.i124: ; preds = %if.end40.i.i.i112 br i1 %or.cond.i.i.i128, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit155, label %if.then55.i.i.i129 if.then55.i.i.i129: ; preds = %lor.lhs.false.i.i.i124, %if.end40.i.i.i112 - %inc.i.i.i130 = add i16 %conv49.i.i.i122, 1 + %inc.i.i.i130 = add nuw i16 %conv49.i.i.i122, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit155 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit155: ; preds = %if.then4.i.i.i147, %if.end.i.i.i150, %if.then23.i.i.i145, %if.end27.i.i.i136, %if.end37.i.i.i110, %lor.lhs.false.i.i.i124, %if.then55.i.i.i129 @@ -13540,7 +13540,7 @@ lor.lhs.false.i.i.i197: ; preds = %if.end40.i.i.i185 br i1 %or.cond.i.i.i201, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit228, label %if.then55.i.i.i202 if.then55.i.i.i202: ; preds = %lor.lhs.false.i.i.i197, %if.end40.i.i.i185 - %inc.i.i.i203 = add i16 %conv49.i.i.i195, 1 + %inc.i.i.i203 = add nuw i16 %conv49.i.i.i195, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit228 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit228: ; preds = %if.then4.i.i.i220, %if.end.i.i.i223, %if.then23.i.i.i218, %if.end27.i.i.i209, %if.end37.i.i.i183, %lor.lhs.false.i.i.i197, %if.then55.i.i.i202 @@ -14671,7 +14671,7 @@ lor.lhs.false.i.i.i: ; preds = %if.end40.i.i.i br i1 %or.cond.i.i.i, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit, label %if.then55.i.i.i if.then55.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end40.i.i.i - %inc.i.i.i = add i16 %conv49.i.i.i, 1 + %inc.i.i.i = add nuw i16 %conv49.i.i.i, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit: ; preds = %if.then4.i.i.i, %if.end.i.i.i, %if.then23.i.i.i, %if.end27.i.i.i, %if.end37.i.i.i, %lor.lhs.false.i.i.i, %if.then55.i.i.i @@ -14754,7 +14754,7 @@ lor.lhs.false.i.i.i28: ; preds = %if.end40.i.i.i16 br i1 %or.cond.i.i.i32, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59, label %if.then55.i.i.i33 if.then55.i.i.i33: ; preds = %lor.lhs.false.i.i.i28, %if.end40.i.i.i16 - %inc.i.i.i34 = add i16 %conv49.i.i.i26, 1 + %inc.i.i.i34 = add nuw i16 %conv49.i.i.i26, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit59: ; preds = %if.then4.i.i.i51, %if.end.i.i.i54, %if.then23.i.i.i49, %if.end27.i.i.i40, %if.end37.i.i.i14, %lor.lhs.false.i.i.i28, %if.then55.i.i.i33 @@ -14838,7 +14838,7 @@ lor.lhs.false.i.i.i78: ; preds = %if.end40.i.i.i66 br i1 %or.cond.i.i.i82, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109, label %if.then55.i.i.i83 if.then55.i.i.i83: ; preds = %lor.lhs.false.i.i.i78, %if.end40.i.i.i66 - %inc.i.i.i84 = add i16 %conv49.i.i.i76, 1 + %inc.i.i.i84 = add nuw i16 %conv49.i.i.i76, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit109: ; preds = %if.then4.i.i.i101, %if.end.i.i.i104, %if.then23.i.i.i99, %if.end27.i.i.i90, %if.end37.i.i.i64, %lor.lhs.false.i.i.i78, %if.then55.i.i.i83 @@ -14922,7 +14922,7 @@ lor.lhs.false.i.i.i128: ; preds = %if.end40.i.i.i116 br i1 %or.cond.i.i.i132, label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159, label %if.then55.i.i.i133 if.then55.i.i.i133: ; preds = %lor.lhs.false.i.i.i128, %if.end40.i.i.i116 - %inc.i.i.i134 = add i16 %conv49.i.i.i126, 1 + %inc.i.i.i134 = add nuw i16 %conv49.i.i.i126, 1 br label %_ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159 _ZN19OpenColorIO_v2_4dev9ConverterILNS_8BitDepthE7EE9CastValueEf.exit159: ; preds = %if.then4.i.i.i151, %if.end.i.i.i154, %if.then23.i.i.i149, %if.end27.i.i.i140, %if.end37.i.i.i114, %lor.lhs.false.i.i.i128, %if.then55.i.i.i133 diff --git a/bench/opencv/optimized/softfloat.cpp.ll b/bench/opencv/optimized/softfloat.cpp.ll index 3628bc290bf..2ffad25d48b 100644 --- a/bench/opencv/optimized/softfloat.cpp.ll +++ b/bench/opencv/optimized/softfloat.cpp.ll @@ -98,93 +98,89 @@ define void @_ZN2cv9softfloatC2Ej(ptr nocapture noundef nonnull writeonly align 3: ; preds = %2 %.not5.i = icmp sgt i32 %1, -1 - br i1 %.not5.i, label %15, label %4 + br i1 %.not5.i, label %12, label %4 4: ; preds = %3 %5 = lshr i32 %1, 1 %6 = and i32 %1, 1 %narrow.i = add nuw i32 %5, 64 %7 = lshr i32 %narrow.i, 7 - %8 = zext nneg i32 %7 to i64 %.masked.i = and i32 %5, 127 %.039.i6.i = or i32 %.masked.i, %6 %.not48.i.i = icmp eq i32 %.039.i6.i, 64 - %9 = zext i1 %.not48.i.i to i64 - %10 = xor i64 %9, -1 - %11 = and i64 %10, %8 - %.not49.i.i = icmp eq i64 %11, 0 - %12 = select i1 %.not49.i.i, i64 0, i64 1317011456 - %13 = add nuw nsw i64 %12, %11 - %14 = trunc nuw nsw i64 %13 to i32 + %8 = zext i1 %.not48.i.i to i32 + %9 = xor i32 %8, -1 + %10 = and i32 %7, %9 + %11 = add nuw nsw i32 %10, 1317011456 br label %_ZN2cvL11ui32_to_f32Ej.exit -15: ; preds = %3 - %16 = zext nneg i32 %1 to i64 - %17 = icmp samesign ult i32 %1, 65536 - %18 = shl nuw i32 %1, 16 - %spec.select.i.i = select i1 %17, i32 %18, i32 %1 - %spec.select12.i.i = select i1 %17, i8 16, i8 0 - %19 = icmp ult i32 %spec.select.i.i, 16777216 - %20 = or disjoint i8 %spec.select12.i.i, 8 - %21 = shl nuw i32 %spec.select.i.i, 8 - %.19.i.i = select i1 %19, i32 %21, i32 %spec.select.i.i - %.1.i.i = select i1 %19, i8 %20, i8 %spec.select12.i.i - %22 = lshr i32 %.19.i.i, 24 - %23 = zext nneg i32 %22 to i64 - %24 = getelementptr inbounds nuw [256 x i8], ptr @_ZN2cvL28softfloat_countLeadingZeros8E, i64 0, i64 %23 - %25 = load i8, ptr %24, align 1, !alias.scope !4, !noalias !7 - %26 = add nsw i8 %.1.i.i, -1 - %27 = add i8 %26, %25 - %28 = sext i8 %27 to i64 - %29 = sub nsw i64 156, %28 - %30 = sext i8 %27 to i32 - %31 = icmp sgt i8 %27, 6 - %32 = icmp samesign ult i64 %29, 253 - %or.cond.i = select i1 %31, i1 %32, i1 false - br i1 %or.cond.i, label %33, label %39 - -33: ; preds = %15 - %34 = shl nuw nsw i64 %29, 23 - %35 = add nsw i32 %30, -7 - %36 = zext nneg i32 %35 to i64 - %37 = shl i64 %16, %36 - %38 = add i64 %37, %34 +12: ; preds = %3 + %13 = zext nneg i32 %1 to i64 + %14 = icmp samesign ult i32 %1, 65536 + %15 = shl nuw i32 %1, 16 + %spec.select.i.i = select i1 %14, i32 %15, i32 %1 + %spec.select12.i.i = select i1 %14, i8 16, i8 0 + %16 = icmp ult i32 %spec.select.i.i, 16777216 + %17 = or disjoint i8 %spec.select12.i.i, 8 + %18 = shl nuw i32 %spec.select.i.i, 8 + %.19.i.i = select i1 %16, i32 %18, i32 %spec.select.i.i + %.1.i.i = select i1 %16, i8 %17, i8 %spec.select12.i.i + %19 = lshr i32 %.19.i.i, 24 + %20 = zext nneg i32 %19 to i64 + %21 = getelementptr inbounds nuw [256 x i8], ptr @_ZN2cvL28softfloat_countLeadingZeros8E, i64 0, i64 %20 + %22 = load i8, ptr %21, align 1, !alias.scope !4, !noalias !7 + %23 = add nsw i8 %.1.i.i, -1 + %24 = add i8 %23, %22 + %25 = sext i8 %24 to i64 + %26 = sub nsw i64 156, %25 + %27 = sext i8 %24 to i32 + %28 = icmp sgt i8 %24, 6 + %29 = icmp samesign ult i64 %26, 253 + %or.cond.i = select i1 %28, i1 %29, i1 false + br i1 %or.cond.i, label %30, label %36 + +30: ; preds = %12 + %31 = shl nuw nsw i64 %26, 23 + %32 = add nsw i32 %27, -7 + %33 = zext nneg i32 %32 to i64 + %34 = shl i64 %13, %33 + %35 = add i64 %34, %31 br label %_ZN2cvL28softfloat_normRoundPackToF32Eblm.exit -39: ; preds = %15 - %40 = zext nneg i32 %30 to i64 - %41 = shl i64 %16, %40 - %42 = icmp samesign ugt i64 %29, 252 - br i1 %42, label %43, label %47 - -43: ; preds = %39 - %44 = icmp ne i8 %27, -97 - %45 = add i64 %41, -2147483584 - %46 = icmp ult i64 %45, -2147483648 - %or.cond.i.i = or i1 %44, %46 - br i1 %or.cond.i.i, label %_ZN2cvL28softfloat_normRoundPackToF32Eblm.exit, label %47 - -47: ; preds = %43, %39 - %48 = add i64 %41, 64 - %49 = lshr i64 %48, 7 - %.039.i.i5 = and i64 %41, 127 - %.not48.i.i2 = icmp eq i64 %.039.i.i5, 64 - %50 = zext i1 %.not48.i.i2 to i64 - %51 = xor i64 %50, -1 - %52 = and i64 %49, %51 - %.not49.i.i3 = icmp eq i64 %52, 0 - %53 = shl nuw nsw i64 %29, 23 - %54 = select i1 %.not49.i.i3, i64 0, i64 %53 - %55 = add nuw nsw i64 %54, %52 +36: ; preds = %12 + %37 = zext nneg i32 %27 to i64 + %38 = shl i64 %13, %37 + %39 = icmp samesign ugt i64 %26, 252 + br i1 %39, label %40, label %44 + +40: ; preds = %36 + %41 = icmp ne i8 %24, -97 + %42 = add i64 %38, -2147483584 + %43 = icmp ult i64 %42, -2147483648 + %or.cond.i.i = or i1 %41, %43 + br i1 %or.cond.i.i, label %_ZN2cvL28softfloat_normRoundPackToF32Eblm.exit, label %44 + +44: ; preds = %40, %36 + %45 = add i64 %38, 64 + %46 = lshr i64 %45, 7 + %.039.i.i4 = and i64 %38, 127 + %.not48.i.i2 = icmp eq i64 %.039.i.i4, 64 + %47 = zext i1 %.not48.i.i2 to i64 + %48 = xor i64 %47, -1 + %49 = and i64 %46, %48 + %.not49.i.i = icmp eq i64 %49, 0 + %50 = shl nuw nsw i64 %26, 23 + %51 = select i1 %.not49.i.i, i64 0, i64 %50 + %52 = add nuw nsw i64 %51, %49 br label %_ZN2cvL28softfloat_normRoundPackToF32Eblm.exit -_ZN2cvL28softfloat_normRoundPackToF32Eblm.exit: ; preds = %43, %33, %47 - %storemerge.in.i = phi i64 [ %38, %33 ], [ %55, %47 ], [ 2139095040, %43 ] +_ZN2cvL28softfloat_normRoundPackToF32Eblm.exit: ; preds = %40, %30, %44 + %storemerge.in.i = phi i64 [ %35, %30 ], [ %52, %44 ], [ 2139095040, %40 ] %storemerge.i = trunc i64 %storemerge.in.i to i32 br label %_ZN2cvL11ui32_to_f32Ej.exit _ZN2cvL11ui32_to_f32Ej.exit: ; preds = %2, %_ZN2cvL28softfloat_normRoundPackToF32Eblm.exit, %4 - %.sroa.0.0 = phi i32 [ %storemerge.i, %_ZN2cvL28softfloat_normRoundPackToF32Eblm.exit ], [ %14, %4 ], [ 0, %2 ] + %.sroa.0.0 = phi i32 [ %storemerge.i, %_ZN2cvL28softfloat_normRoundPackToF32Eblm.exit ], [ %11, %4 ], [ 0, %2 ] store i32 %.sroa.0.0, ptr %0, align 4 ret void } @@ -1612,7 +1608,7 @@ define void @_ZN2cv10softdoubleC2Em(ptr nocapture noundef nonnull writeonly alig 4: ; preds = %2 %.not4.i = icmp sgt i64 %1, -1 - br i1 %.not4.i, label %15, label %5 + br i1 %.not4.i, label %14, label %5 5: ; preds = %4 %6 = lshr i64 %1, 1 @@ -1625,19 +1621,17 @@ define void @_ZN2cv10softdoubleC2Em(ptr nocapture noundef nonnull writeonly alig %10 = zext i1 %.not48.i.i to i64 %11 = xor i64 %10, -1 %12 = and i64 %9, %11 - %.not49.i.i = icmp eq i64 %12, 0 - %13 = select i1 %.not49.i.i, i64 0, i64 4886405595696988160 - %14 = add nuw nsw i64 %13, %12 + %13 = add nuw nsw i64 %12, 4886405595696988160 br label %_ZN2cvL11ui64_to_f64Em.exit -15: ; preds = %4 +14: ; preds = %4 call fastcc void @_ZN2cvL28softfloat_normRoundPackToF64Eblm(ptr dead_on_unwind noalias nonnull writable align 8 %3, i1 noundef zeroext false, i64 noundef 1084, i64 noundef %1), !alias.scope !49 %.pre = load i64, ptr %3, align 8 br label %_ZN2cvL11ui64_to_f64Em.exit -_ZN2cvL11ui64_to_f64Em.exit: ; preds = %2, %15, %5 - %16 = phi i64 [ %.pre, %15 ], [ %14, %5 ], [ 0, %2 ] - store i64 %16, ptr %0, align 8 +_ZN2cvL11ui64_to_f64Em.exit: ; preds = %2, %14, %5 + %15 = phi i64 [ %.pre, %14 ], [ %13, %5 ], [ 0, %2 ] + store i64 %15, ptr %0, align 8 ret void } @@ -8391,7 +8385,7 @@ define internal fastcc void @_ZN2cvL20softfloat_addMagsF32Emm(ptr dead_on_unwind 14: ; preds = %11 %15 = or i64 %9, %6 %.not70 = icmp eq i64 %15, 0 - br i1 %.not70, label %_ZN2cvL24softfloat_roundPackToF32Eblm.exit, label %123 + br i1 %.not70, label %_ZN2cvL24softfloat_roundPackToF32Eblm.exit, label %122 16: ; preds = %11 %17 = icmp samesign ugt i64 %1, 2147483647 @@ -8428,7 +8422,7 @@ define internal fastcc void @_ZN2cvL20softfloat_addMagsF32Emm(ptr dead_on_unwind 38: ; preds = %36 %.not74 = icmp eq i64 %9, 0 - br i1 %.not74, label %39, label %123 + br i1 %.not74, label %39, label %122 39: ; preds = %38 %40 = select i1 %32, i64 4286578688, i64 2139095040 @@ -8470,7 +8464,7 @@ _ZN2cvL25softfloat_shiftRightJam32Ejm.exit: ; preds = %46, %56 63: ; preds = %61 %.not72 = icmp eq i64 %6, 0 - br i1 %.not72, label %_ZN2cvL24softfloat_roundPackToF32Eblm.exit, label %123 + br i1 %.not72, label %_ZN2cvL24softfloat_roundPackToF32Eblm.exit, label %122 64: ; preds = %61 %.not71 = icmp eq i64 %8, 0 @@ -8563,37 +8557,35 @@ _ZN2cvL25softfloat_shiftRightJam32Ejm.exit.i: ; preds = %93 %115 = zext i1 %.not48.i to i64 %116 = xor i64 %115, -1 %117 = and i64 %114, %116 - %.not49.i = icmp eq i64 %117, 0 %118 = select i1 %.059.in, i64 2147483648, i64 0 %119 = shl nuw nsw i64 %.038.i, 23 - %120 = select i1 %.not49.i, i64 0, i64 %119 - %121 = add nuw nsw i64 %117, %118 - %122 = add nuw nsw i64 %121, %120 + %120 = add nuw nsw i64 %117, %118 + %121 = add nuw nsw i64 %120, %119 br label %_ZN2cvL24softfloat_roundPackToF32Eblm.exit -123: ; preds = %63, %38, %14 - %124 = and i64 %1, 2143289344 - %125 = icmp eq i64 %124, 2139095040 - %126 = and i64 %1, 4194303 - %127 = icmp ne i64 %126, 0 - %128 = and i1 %125, %127 - br i1 %128, label %_ZN2cvL27softfloat_propagateNaNF32UIEmm.exit, label %129 - -129: ; preds = %123 - %130 = and i64 %1, 2139095040 - %131 = icmp ne i64 %130, 2139095040 +122: ; preds = %63, %38, %14 + %123 = and i64 %1, 2143289344 + %124 = icmp eq i64 %123, 2139095040 + %125 = and i64 %1, 4194303 + %126 = icmp ne i64 %125, 0 + %127 = and i1 %124, %126 + br i1 %127, label %_ZN2cvL27softfloat_propagateNaNF32UIEmm.exit, label %128 + +128: ; preds = %122 + %129 = and i64 %1, 2139095040 + %130 = icmp ne i64 %129, 2139095040 %.not12.i = icmp eq i64 %6, 0 - %or.cond13.i = or i1 %131, %.not12.i - %132 = select i1 %or.cond13.i, i64 %2, i64 %1 + %or.cond13.i = or i1 %130, %.not12.i + %131 = select i1 %or.cond13.i, i64 %2, i64 %1 br label %_ZN2cvL27softfloat_propagateNaNF32UIEmm.exit -_ZN2cvL27softfloat_propagateNaNF32UIEmm.exit: ; preds = %123, %129 - %.0.in.i = phi i64 [ %132, %129 ], [ %1, %123 ] +_ZN2cvL27softfloat_propagateNaNF32UIEmm.exit: ; preds = %122, %128 + %.0.in.i = phi i64 [ %131, %128 ], [ %1, %122 ] %.0.i76 = or i64 %.0.in.i, 4194304 br label %_ZN2cvL24softfloat_roundPackToF32Eblm.exit _ZN2cvL24softfloat_roundPackToF32Eblm.exit: ; preds = %12, %23, %39, %_ZN2cvL27softfloat_propagateNaNF32UIEmm.exit, %14, %63, %112, %110 - %storemerge.in = phi i64 [ %122, %112 ], [ %111, %110 ], [ %.0.i76, %_ZN2cvL27softfloat_propagateNaNF32UIEmm.exit ], [ %40, %39 ], [ %28, %23 ], [ %13, %12 ], [ %1, %14 ], [ %1, %63 ] + %storemerge.in = phi i64 [ %121, %112 ], [ %111, %110 ], [ %.0.i76, %_ZN2cvL27softfloat_propagateNaNF32UIEmm.exit ], [ %40, %39 ], [ %28, %23 ], [ %13, %12 ], [ %1, %14 ], [ %1, %63 ] %storemerge = trunc i64 %storemerge.in to i32 store i32 %storemerge, ptr %0, align 4 ret void @@ -8738,7 +8730,7 @@ define internal fastcc void @_ZN2cvL20softfloat_addMagsF64Emmb(ptr dead_on_unwin 15: ; preds = %12 %16 = or i64 %10, %7 %.not63 = icmp eq i64 %16, 0 - br i1 %.not63, label %_ZN2cvL24softfloat_roundPackToF64Eblm.exit, label %98 + br i1 %.not63, label %_ZN2cvL24softfloat_roundPackToF64Eblm.exit, label %97 17: ; preds = %12 %18 = or disjoint i64 %7, 9007199254740992 @@ -8758,7 +8750,7 @@ define internal fastcc void @_ZN2cvL20softfloat_addMagsF64Emmb(ptr dead_on_unwin 27: ; preds = %25 %.not67 = icmp eq i64 %10, 0 - br i1 %.not67, label %28, label %98 + br i1 %.not67, label %28, label %97 28: ; preds = %27 %29 = select i1 %3, i64 -4503599627370496, i64 9218868437227405312 @@ -8793,7 +8785,7 @@ define internal fastcc void @_ZN2cvL20softfloat_addMagsF64Emmb(ptr dead_on_unwin 47: ; preds = %45 %.not65 = icmp eq i64 %7, 0 - br i1 %.not65, label %_ZN2cvL24softfloat_roundPackToF64Eblm.exit, label %98 + br i1 %.not65, label %_ZN2cvL24softfloat_roundPackToF64Eblm.exit, label %97 48: ; preds = %45 %.not64 = icmp eq i64 %9, 0 @@ -8874,37 +8866,35 @@ _ZN2cvL25softfloat_shiftRightJam64Emm.exit.i: ; preds = %82, %74, %69 %90 = zext i1 %.not48.i to i64 %91 = xor i64 %90, -1 %92 = and i64 %89, %91 - %.not49.i = icmp eq i64 %92, 0 %93 = select i1 %3, i64 -9223372036854775808, i64 0 %94 = shl nsw i64 %.038.i, 52 - %95 = select i1 %.not49.i, i64 0, i64 %94 - %96 = or disjoint i64 %92, %93 - %97 = add i64 %96, %95 + %95 = or disjoint i64 %92, %93 + %96 = add i64 %95, %94 br label %_ZN2cvL24softfloat_roundPackToF64Eblm.exit -98: ; preds = %47, %27, %15 - %99 = and i64 %1, 9221120237041090560 - %100 = icmp eq i64 %99, 9218868437227405312 - %101 = and i64 %1, 2251799813685247 - %102 = icmp ne i64 %101, 0 - %103 = and i1 %100, %102 - br i1 %103, label %_ZN2cvL27softfloat_propagateNaNF64UIEmm.exit, label %104 - -104: ; preds = %98 - %105 = and i64 %1, 9218868437227405312 - %106 = icmp ne i64 %105, 9218868437227405312 +97: ; preds = %47, %27, %15 + %98 = and i64 %1, 9221120237041090560 + %99 = icmp eq i64 %98, 9218868437227405312 + %100 = and i64 %1, 2251799813685247 + %101 = icmp ne i64 %100, 0 + %102 = and i1 %99, %101 + br i1 %102, label %_ZN2cvL27softfloat_propagateNaNF64UIEmm.exit, label %103 + +103: ; preds = %97 + %104 = and i64 %1, 9218868437227405312 + %105 = icmp ne i64 %104, 9218868437227405312 %.not12.i = icmp eq i64 %7, 0 - %or.cond13.i = or i1 %106, %.not12.i - %107 = select i1 %or.cond13.i, i64 %2, i64 %1 + %or.cond13.i = or i1 %105, %.not12.i + %106 = select i1 %or.cond13.i, i64 %2, i64 %1 br label %_ZN2cvL27softfloat_propagateNaNF64UIEmm.exit -_ZN2cvL27softfloat_propagateNaNF64UIEmm.exit: ; preds = %98, %104 - %.0.in.i = phi i64 [ %107, %104 ], [ %1, %98 ] +_ZN2cvL27softfloat_propagateNaNF64UIEmm.exit: ; preds = %97, %103 + %.0.in.i = phi i64 [ %106, %103 ], [ %1, %97 ] %.0.i69 = or i64 %.0.in.i, 2251799813685248 br label %_ZN2cvL24softfloat_roundPackToF64Eblm.exit _ZN2cvL24softfloat_roundPackToF64Eblm.exit: ; preds = %13, %28, %_ZN2cvL27softfloat_propagateNaNF64UIEmm.exit, %15, %47, %_ZN2cvL25softfloat_shiftRightJam64Emm.exit.i, %86 - %storemerge = phi i64 [ %97, %_ZN2cvL25softfloat_shiftRightJam64Emm.exit.i ], [ %87, %86 ], [ %.0.i69, %_ZN2cvL27softfloat_propagateNaNF64UIEmm.exit ], [ %29, %28 ], [ %14, %13 ], [ %1, %15 ], [ %1, %47 ] + %storemerge = phi i64 [ %96, %_ZN2cvL25softfloat_shiftRightJam64Emm.exit.i ], [ %87, %86 ], [ %.0.i69, %_ZN2cvL27softfloat_propagateNaNF64UIEmm.exit ], [ %29, %28 ], [ %14, %13 ], [ %1, %15 ], [ %1, %47 ] store i64 %storemerge, ptr %0, align 8 ret void } diff --git a/bench/opencv/optimized/subdivision2d.cpp.ll b/bench/opencv/optimized/subdivision2d.cpp.ll index acebadc276f..d2d5770ebc6 100644 --- a/bench/opencv/optimized/subdivision2d.cpp.ll +++ b/bench/opencv/optimized/subdivision2d.cpp.ll @@ -2117,7 +2117,7 @@ define noundef i32 @_ZN2cv8Subdiv2D6insertENS_6Point_IfEE(ptr noundef nonnull al ._crit_edge72: ; preds = %14 %.0.pre = load i32, ptr %5, align 4 - br label %342 + br label %341 ._crit_edge: ; preds = %14 %.pre = load i32, ptr %6, align 4 @@ -2138,12 +2138,12 @@ define noundef i32 @_ZN2cv8Subdiv2D6insertENS_6Point_IfEE(ptr noundef nonnull al .loopexit59: ; preds = %202 %lpad.loopexit = landingpad { ptr, i32 } cleanup - br label %349 + br label %348 .loopexit.split-lp: ; preds = %2, %128, %141, %144, %153 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup - br label %349 + br label %348 18: ; preds = %15 %19 = landingpad { ptr, i32 } @@ -2159,7 +2159,7 @@ define noundef i32 @_ZN2cv8Subdiv2D6insertENS_6Point_IfEE(ptr noundef nonnull al 22: ; preds = %20, %18 %.pn48 = phi { ptr, i32 } [ %21, %20 ], [ %19, %18 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #32 - br label %349 + br label %348 23: ; preds = %14 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #32 @@ -2187,7 +2187,7 @@ define noundef i32 @_ZN2cv8Subdiv2D6insertENS_6Point_IfEE(ptr noundef nonnull al 30: ; preds = %28, %26 %.pn46 = phi { ptr, i32 } [ %29, %28 ], [ %27, %26 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #32 - br label %349 + br label %348 31: ; preds = %14 %32 = load i32, ptr %6, align 4 @@ -2326,7 +2326,7 @@ default.unreachable74: ; preds = %14 127: ; preds = %125, %123 %.pn = phi { ptr, i32 } [ %126, %125 ], [ %124, %123 ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #32 - br label %349 + br label %348 128: ; preds = %119 %129 = getelementptr inbounds nuw i8, ptr %0, i64 56 @@ -2494,172 +2494,171 @@ _ZNSt6vectorIN2cv8Subdiv2D8QuadEdgeESaIS2_EE12emplace_backIJEEEvDpOT_.exit.i: ; .lr.ph.preheader: ; preds = %226 %233 = and i32 %tr.sh.diff, 2147483644 - %234 = call i32 @llvm.umax.i32(i32 %233, i32 1) br label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %339 - %235 = phi ptr [ %340, %339 ], [ %209, %.lr.ph.preheader ] - %.04166 = phi i32 [ %341, %339 ], [ 0, %.lr.ph.preheader ] - %storemerge6465 = phi i32 [ %storemerge, %339 ], [ %219, %.lr.ph.preheader ] - %236 = ashr i32 %storemerge6465, 2 - %237 = sext i32 %236 to i64 - %238 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %235, i64 %237 - %239 = add i32 %storemerge6465, 1 - %240 = and i32 %239, 3 - %241 = zext nneg i32 %240 to i64 - %242 = getelementptr inbounds nuw [4 x i32], ptr %238, i64 0, i64 %241 - %243 = load i32, ptr %242, align 4 - %244 = add i32 %243, 1 - %245 = and i32 %244, 3 - %246 = ashr i32 %243, 2 - %247 = sext i32 %246 to i64 - %248 = xor i32 %245, 2 - %249 = zext nneg i32 %248 to i64 - %250 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %235, i64 %247, i32 1, i64 %249 - %251 = load i32, ptr %250, align 4 - %252 = and i32 %storemerge6465, 3 - %253 = zext nneg i32 %252 to i64 - %254 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %235, i64 %237, i32 1, i64 %253 - %255 = load i32, ptr %254, align 4 - %256 = xor i32 %252, 2 - %257 = zext nneg i32 %256 to i64 - %258 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %235, i64 %237, i32 1, i64 %257 - %259 = load i32, ptr %258, align 4 - %260 = sext i32 %251 to i64 - %261 = load ptr, ptr %0, align 8 - %262 = getelementptr inbounds %"struct.cv::Subdiv2D::Vertex", ptr %261, i64 %260, i32 2 - %.sroa.04.0.copyload = load <2 x float>, ptr %262, align 4 - %263 = sext i32 %255 to i64 - %264 = getelementptr inbounds %"struct.cv::Subdiv2D::Vertex", ptr %261, i64 %263, i32 2 - %265 = load <2 x float>, ptr %264, align 4 - %266 = sext i32 %259 to i64 - %267 = getelementptr inbounds %"struct.cv::Subdiv2D::Vertex", ptr %261, i64 %266, i32 2 - %268 = load <2 x float>, ptr %267, align 4 - %.sroa.01.0.vec.extract.i.i = extractelement <2 x float> %268, i64 0 - %269 = fpext float %.sroa.01.0.vec.extract.i.i to double +.lr.ph: ; preds = %.lr.ph.preheader, %338 + %234 = phi ptr [ %339, %338 ], [ %209, %.lr.ph.preheader ] + %.04166 = phi i32 [ %340, %338 ], [ 0, %.lr.ph.preheader ] + %storemerge6465 = phi i32 [ %storemerge, %338 ], [ %219, %.lr.ph.preheader ] + %235 = ashr i32 %storemerge6465, 2 + %236 = sext i32 %235 to i64 + %237 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %234, i64 %236 + %238 = add i32 %storemerge6465, 1 + %239 = and i32 %238, 3 + %240 = zext nneg i32 %239 to i64 + %241 = getelementptr inbounds nuw [4 x i32], ptr %237, i64 0, i64 %240 + %242 = load i32, ptr %241, align 4 + %243 = add i32 %242, 1 + %244 = and i32 %243, 3 + %245 = ashr i32 %242, 2 + %246 = sext i32 %245 to i64 + %247 = xor i32 %244, 2 + %248 = zext nneg i32 %247 to i64 + %249 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %234, i64 %246, i32 1, i64 %248 + %250 = load i32, ptr %249, align 4 + %251 = and i32 %storemerge6465, 3 + %252 = zext nneg i32 %251 to i64 + %253 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %234, i64 %236, i32 1, i64 %252 + %254 = load i32, ptr %253, align 4 + %255 = xor i32 %251, 2 + %256 = zext nneg i32 %255 to i64 + %257 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %234, i64 %236, i32 1, i64 %256 + %258 = load i32, ptr %257, align 4 + %259 = sext i32 %250 to i64 + %260 = load ptr, ptr %0, align 8 + %261 = getelementptr inbounds %"struct.cv::Subdiv2D::Vertex", ptr %260, i64 %259, i32 2 + %.sroa.04.0.copyload = load <2 x float>, ptr %261, align 4 + %262 = sext i32 %254 to i64 + %263 = getelementptr inbounds %"struct.cv::Subdiv2D::Vertex", ptr %260, i64 %262, i32 2 + %264 = load <2 x float>, ptr %263, align 4 + %265 = sext i32 %258 to i64 + %266 = getelementptr inbounds %"struct.cv::Subdiv2D::Vertex", ptr %260, i64 %265, i32 2 + %267 = load <2 x float>, ptr %266, align 4 + %.sroa.01.0.vec.extract.i.i = extractelement <2 x float> %267, i64 0 + %268 = fpext float %.sroa.01.0.vec.extract.i.i to double %.sroa.02.0.vec.extract.i.i = extractelement <2 x float> %.sroa.04.0.copyload, i64 0 - %270 = fpext float %.sroa.02.0.vec.extract.i.i to double - %271 = fsub double %269, %270 - %.sroa.0.4.vec.extract.i.i = extractelement <2 x float> %265, i64 1 - %272 = fpext float %.sroa.0.4.vec.extract.i.i to double + %269 = fpext float %.sroa.02.0.vec.extract.i.i to double + %270 = fsub double %268, %269 + %.sroa.0.4.vec.extract.i.i = extractelement <2 x float> %264, i64 1 + %271 = fpext float %.sroa.0.4.vec.extract.i.i to double %.sroa.02.4.vec.extract.i.i = extractelement <2 x float> %.sroa.04.0.copyload, i64 1 - %273 = fpext float %.sroa.02.4.vec.extract.i.i to double - %274 = fsub double %272, %273 - %.sroa.01.4.vec.extract.i.i = extractelement <2 x float> %268, i64 1 - %275 = fpext float %.sroa.01.4.vec.extract.i.i to double - %276 = fsub double %275, %273 - %.sroa.0.0.vec.extract.i.i = extractelement <2 x float> %265, i64 0 - %277 = fpext float %.sroa.0.0.vec.extract.i.i to double - %278 = fsub double %277, %270 - %279 = fneg double %278 - %280 = fmul double %276, %279 - %281 = call noundef double @llvm.fmuladd.f64(double %271, double %274, double %280) - %282 = fcmp ogt double %281, 0.000000e+00 - br i1 %282, label %283, label %326 - -283: ; preds = %.lr.ph - %284 = getelementptr inbounds %"struct.cv::Subdiv2D::Vertex", ptr %261, i64 %177, i32 2 - %.sroa.0.0.copyload = load <2 x float>, ptr %284, align 4 - %285 = fmul double %273, %273 - %286 = call double @llvm.fmuladd.f64(double %270, double %270, double %285) + %272 = fpext float %.sroa.02.4.vec.extract.i.i to double + %273 = fsub double %271, %272 + %.sroa.01.4.vec.extract.i.i = extractelement <2 x float> %267, i64 1 + %274 = fpext float %.sroa.01.4.vec.extract.i.i to double + %275 = fsub double %274, %272 + %.sroa.0.0.vec.extract.i.i = extractelement <2 x float> %264, i64 0 + %276 = fpext float %.sroa.0.0.vec.extract.i.i to double + %277 = fsub double %276, %269 + %278 = fneg double %277 + %279 = fmul double %275, %278 + %280 = call noundef double @llvm.fmuladd.f64(double %270, double %273, double %279) + %281 = fcmp ogt double %280, 0.000000e+00 + br i1 %281, label %282, label %325 + +282: ; preds = %.lr.ph + %283 = getelementptr inbounds %"struct.cv::Subdiv2D::Vertex", ptr %260, i64 %177, i32 2 + %.sroa.0.0.copyload = load <2 x float>, ptr %283, align 4 + %284 = fmul double %272, %272 + %285 = call double @llvm.fmuladd.f64(double %269, double %269, double %284) %.sroa.01.0.vec.extract.i.i53 = extractelement <2 x float> %.sroa.0.0.copyload, i64 0 - %287 = fpext float %.sroa.01.0.vec.extract.i.i53 to double - %288 = fsub double %287, %269 - %289 = fsub double %272, %275 + %286 = fpext float %.sroa.01.0.vec.extract.i.i53 to double + %287 = fsub double %286, %268 + %288 = fsub double %271, %274 %.sroa.01.4.vec.extract.i.i57 = extractelement <2 x float> %.sroa.0.0.copyload, i64 1 - %290 = fpext float %.sroa.01.4.vec.extract.i.i57 to double - %291 = fsub double %290, %275 - %292 = fsub double %277, %269 - %293 = fneg double %292 - %294 = fmul double %291, %293 - %295 = call noundef double @llvm.fmuladd.f64(double %288, double %289, double %294) - %296 = fmul double %286, %295 - %297 = fmul double %275, %275 - %298 = call double @llvm.fmuladd.f64(double %269, double %269, double %297) - %299 = fsub double %287, %270 - %300 = fsub double %290, %273 - %301 = fmul double %300, %279 - %302 = call noundef double @llvm.fmuladd.f64(double %299, double %274, double %301) - %303 = fneg double %298 - %304 = call double @llvm.fmuladd.f64(double %303, double %302, double %296) - %305 = fmul double %290, %290 - %306 = call double @llvm.fmuladd.f64(double %287, double %287, double %305) - %307 = call double @llvm.fmuladd.f64(double %306, double %281, double %304) - %308 = fmul double %272, %272 - %309 = call double @llvm.fmuladd.f64(double %277, double %277, double %308) - %310 = fneg double %299 - %311 = fmul double %276, %310 - %312 = call noundef double @llvm.fmuladd.f64(double %271, double %300, double %311) - %313 = fneg double %309 - %314 = call double @llvm.fmuladd.f64(double %313, double %312, double %307) - %315 = fcmp ule double %314, 0x3E50000000000000 - %316 = fcmp olt double %314, 0xBE50000000000000 - %narrow = and i1 %315, %316 - br i1 %narrow, label %317, label %326 - -317: ; preds = %283 + %289 = fpext float %.sroa.01.4.vec.extract.i.i57 to double + %290 = fsub double %289, %274 + %291 = fsub double %276, %268 + %292 = fneg double %291 + %293 = fmul double %290, %292 + %294 = call noundef double @llvm.fmuladd.f64(double %287, double %288, double %293) + %295 = fmul double %285, %294 + %296 = fmul double %274, %274 + %297 = call double @llvm.fmuladd.f64(double %268, double %268, double %296) + %298 = fsub double %286, %269 + %299 = fsub double %289, %272 + %300 = fmul double %299, %278 + %301 = call noundef double @llvm.fmuladd.f64(double %298, double %273, double %300) + %302 = fneg double %297 + %303 = call double @llvm.fmuladd.f64(double %302, double %301, double %295) + %304 = fmul double %289, %289 + %305 = call double @llvm.fmuladd.f64(double %286, double %286, double %304) + %306 = call double @llvm.fmuladd.f64(double %305, double %280, double %303) + %307 = fmul double %271, %271 + %308 = call double @llvm.fmuladd.f64(double %276, double %276, double %307) + %309 = fneg double %298 + %310 = fmul double %275, %309 + %311 = call noundef double @llvm.fmuladd.f64(double %270, double %299, double %310) + %312 = fneg double %308 + %313 = call double @llvm.fmuladd.f64(double %312, double %311, double %306) + %314 = fcmp ule double %313, 0x3E50000000000000 + %315 = fcmp olt double %313, 0xBE50000000000000 + %narrow = and i1 %314, %315 + br i1 %narrow, label %316, label %325 + +316: ; preds = %282 call void @_ZN2cv8Subdiv2D9swapEdgesEi(ptr noundef nonnull align 8 dereferenceable(80) %0, i32 noundef %storemerge6465) - %318 = load ptr, ptr %135, align 8 - %319 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %318, i64 %237 - %320 = getelementptr inbounds nuw [4 x i32], ptr %319, i64 0, i64 %241 - %321 = load i32, ptr %320, align 4 - %322 = and i32 %321, -4 - %323 = add i32 %321, 1 - %324 = and i32 %323, 3 - %325 = or disjoint i32 %324, %322 - br label %339 - -326: ; preds = %283, %.lr.ph - %327 = icmp eq i32 %255, %169 - br i1 %327, label %.loopexit, label %328 - -328: ; preds = %326 - %329 = getelementptr inbounds nuw [4 x i32], ptr %238, i64 0, i64 %253 - %330 = load i32, ptr %329, align 4 - %331 = ashr i32 %330, 2 - %332 = sext i32 %331 to i64 - %333 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %235, i64 %332 - %334 = and i32 %330, 3 - %335 = zext nneg i32 %334 to i64 - %336 = getelementptr inbounds nuw [4 x i32], ptr %333, i64 0, i64 %335 - %337 = load i32, ptr %336, align 4 - %338 = xor i32 %337, 2 - br label %339 - -339: ; preds = %317, %328 - %340 = phi ptr [ %235, %328 ], [ %318, %317 ] - %storemerge = phi i32 [ %338, %328 ], [ %325, %317 ] - %341 = add nuw nsw i32 %.04166, 1 - %exitcond.not = icmp eq i32 %341, %234 + %317 = load ptr, ptr %135, align 8 + %318 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %317, i64 %236 + %319 = getelementptr inbounds nuw [4 x i32], ptr %318, i64 0, i64 %240 + %320 = load i32, ptr %319, align 4 + %321 = and i32 %320, -4 + %322 = add i32 %320, 1 + %323 = and i32 %322, 3 + %324 = or disjoint i32 %323, %321 + br label %338 + +325: ; preds = %282, %.lr.ph + %326 = icmp eq i32 %254, %169 + br i1 %326, label %.loopexit, label %327 + +327: ; preds = %325 + %328 = getelementptr inbounds nuw [4 x i32], ptr %237, i64 0, i64 %252 + %329 = load i32, ptr %328, align 4 + %330 = ashr i32 %329, 2 + %331 = sext i32 %330 to i64 + %332 = getelementptr inbounds %"struct.cv::Subdiv2D::QuadEdge", ptr %234, i64 %331 + %333 = and i32 %329, 3 + %334 = zext nneg i32 %333 to i64 + %335 = getelementptr inbounds nuw [4 x i32], ptr %332, i64 0, i64 %334 + %336 = load i32, ptr %335, align 4 + %337 = xor i32 %336, 2 + br label %338 + +338: ; preds = %316, %327 + %339 = phi ptr [ %234, %327 ], [ %317, %316 ] + %storemerge = phi i32 [ %337, %327 ], [ %324, %316 ] + %340 = add nuw nsw i32 %.04166, 1 + %exitcond.not = icmp eq i32 %340, %233 br i1 %exitcond.not, label %.loopexit, label %.lr.ph, !llvm.loop !21 -.loopexit: ; preds = %339, %326, %226 - %storemerge64.lcssa = phi i32 [ %219, %226 ], [ %storemerge6465, %326 ], [ %storemerge, %339 ] +.loopexit: ; preds = %338, %325, %226 + %storemerge64.lcssa = phi i32 [ %219, %226 ], [ %storemerge6465, %325 ], [ %storemerge, %338 ] store i32 %storemerge64.lcssa, ptr %6, align 4 - br label %342 + br label %341 -342: ; preds = %._crit_edge72, %.loopexit +341: ; preds = %._crit_edge72, %.loopexit %.0 = phi i32 [ %.0.pre, %._crit_edge72 ], [ %130, %.loopexit ] - %343 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %344 = load i32, ptr %343, align 8 - %.not.i = icmp eq i32 %344, 0 - br i1 %.not.i, label %_ZN2cv5utils5trace7details6RegionD2Ev.exit, label %345 + %342 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %343 = load i32, ptr %342, align 8 + %.not.i = icmp eq i32 %343, 0 + br i1 %.not.i, label %_ZN2cv5utils5trace7details6RegionD2Ev.exit, label %344 -345: ; preds = %342 +344: ; preds = %341 invoke void @_ZN2cv5utils5trace7details6Region7destroyEv(ptr noundef nonnull align 8 dereferenceable(12) %4) - to label %_ZN2cv5utils5trace7details6RegionD2Ev.exit unwind label %346 + to label %_ZN2cv5utils5trace7details6RegionD2Ev.exit unwind label %345 -346: ; preds = %345 - %347 = landingpad { ptr, i32 } +345: ; preds = %344 + %346 = landingpad { ptr, i32 } catch ptr null - %348 = extractvalue { ptr, i32 } %347, 0 - call void @__clang_call_terminate(ptr %348) #31 + %347 = extractvalue { ptr, i32 } %346, 0 + call void @__clang_call_terminate(ptr %347) #31 unreachable -_ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %342, %345 +_ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %341, %344 ret i32 %.0 -349: ; preds = %.loopexit59, %.loopexit.split-lp, %127, %30, %22 +348: ; preds = %.loopexit59, %.loopexit.split-lp, %127, %30, %22 %.pn48.pn = phi { ptr, i32 } [ %.pn48, %22 ], [ %.pn46, %30 ], [ %.pn, %127 ], [ %lpad.loopexit, %.loopexit59 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %4) #32 resume { ptr, i32 } %.pn48.pn @@ -5393,9 +5392,6 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #27 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #27 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #24 - attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } diff --git a/bench/openusd/optimized/openexr-c.c.ll b/bench/openusd/optimized/openexr-c.c.ll index 4c6923247a0..68ba9ef9d85 100644 --- a/bench/openusd/optimized/openexr-c.c.ll +++ b/bench/openusd/optimized/openexr-c.c.ll @@ -23297,7 +23297,7 @@ define internal range(i32 0, 4) i32 @default_pack(ptr nocapture noundef %0) #29 br i1 %or.cond.i, label %float_to_half.exit, label %124 124: ; preds = %121, %109 - %125 = add i16 %119, 1 + %125 = add nuw i16 %119, 1 br label %float_to_half.exit float_to_half.exit: ; preds = %83, %86, %96, %98, %107, %121, %124 @@ -25154,8 +25154,8 @@ define internal fastcc i32 @internal_exr_apply_pxr24(ptr nocapture noundef %0) u %109 = tail call float @llvm.fabs.f32(float %108) %110 = bitcast float %109 to i32 %111 = and i32 %.0130.val.i, 128 - %112 = add nuw i32 %111, %110 - %113 = icmp ugt i32 %112, 2139095039 + %112 = add nuw nsw i32 %111, %110 + %113 = icmp samesign ugt i32 %112, 2139095039 %spec.select.v.i.i = select i1 %113, i32 %110, i32 %112 %spec.select.i.i = lshr i32 %spec.select.v.i.i, 8 br label %float_to_float24.exit.i @@ -39183,7 +39183,7 @@ define internal void @convertFloatToHalf64_scalar(ptr nocapture noundef writeonl br i1 %or.cond.i, label %float_to_half.exit, label %56 56: ; preds = %53, %41 - %57 = add i16 %51, 1 + %57 = add nuw i16 %51, 1 br label %float_to_half.exit float_to_half.exit: ; preds = %15, %18, %28, %30, %39, %53, %56 @@ -41906,7 +41906,7 @@ define internal void @convertFloatToHalf64_f16c(ptr nocapture noundef writeonly br i1 %or.cond.i.i, label %float_to_half.exit.i, label %56 56: ; preds = %53, %41 - %57 = add i16 %51, 1 + %57 = add nuw i16 %51, 1 br label %float_to_half.exit.i float_to_half.exit.i: ; preds = %56, %53, %39, %30, %28, %18, %15 @@ -43866,7 +43866,7 @@ define internal fastcc range(i32 0, 2) i32 @LossyDctEncoder_execute(ptr nocaptur br i1 %or.cond.i, label %float_to_half.exit, label %111 111: ; preds = %108, %96 - %112 = add i16 %106, 1 + %112 = add nuw i16 %106, 1 br label %float_to_half.exit float_to_half.exit: ; preds = %70, %73, %83, %85, %94, %108, %111 @@ -44298,7 +44298,7 @@ LossyDctEncoder_rleAc.exit.us: ; preds = %.backedge.i.us br i1 %or.cond.i.i.us, label %float_to_half.exit.i.us, label %363 363: ; preds = %360, %348 - %364 = add i16 %358, 1 + %364 = add nuw i16 %358, 1 br label %float_to_half.exit.i.us 365: ; preds = %334 @@ -55735,7 +55735,7 @@ dctInverse8x8DcOnly.exit: ; preds = %198, %dctInverse8x8 br i1 %or.cond.i, label %float_to_half.exit, label %484 484: ; preds = %481, %469 - %485 = add i16 %479, 1 + %485 = add nuw i16 %479, 1 br label %float_to_half.exit float_to_half.exit: ; preds = %443, %446, %456, %458, %467, %481, %484 @@ -56679,7 +56679,7 @@ float_to_uint_int.exit.us.us: ; preds = %114, %.lr.ph228.us. br i1 %or.cond.i.i.us.us, label %float_to_half_int.exit.us.us, label %149 149: ; preds = %146, %134 - %150 = add i16 %144, 1 + %150 = add nuw i16 %144, 1 br label %float_to_half_int.exit.us.us 151: ; preds = %.lr.ph236.us.us @@ -57255,7 +57255,7 @@ float_to_uint_int.exit.us.us: ; preds = %108, %.lr.ph238.us. br i1 %or.cond.i.i.us.us, label %float_to_half_int.exit.us.us, label %143 143: ; preds = %140, %128 - %144 = add i16 %138, 1 + %144 = add nuw i16 %138, 1 br label %float_to_half_int.exit.us.us 145: ; preds = %.lr.ph248.us.us @@ -58817,7 +58817,7 @@ half_to_uint.exit: ; preds = %97, %103, %half_to_ br i1 %or.cond.i.i, label %float_to_half_int.exit, label %187 187: ; preds = %184, %172 - %188 = add i16 %182, 1 + %188 = add nuw i16 %182, 1 br label %float_to_half_int.exit float_to_half_int.exit: ; preds = %146, %149, %159, %161, %170, %184, %187 diff --git a/bench/openvdb/optimized/VolumeAdvect.cc.ll b/bench/openvdb/optimized/VolumeAdvect.cc.ll index 6aaa4534ee8..7747d8b3eb2 100644 --- a/bench/openvdb/optimized/VolumeAdvect.cc.ll +++ b/bench/openvdb/optimized/VolumeAdvect.cc.ll @@ -77730,7 +77730,7 @@ lor.lhs.false.i.i.i: ; preds = %if.end40.i.i.i br i1 %or.cond.i.i.i, label %_ZN7openvdb5v11_02io10RealToHalfIfE7convertEf.exit, label %if.then55.i.i.i if.then55.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end40.i.i.i - %inc.i.i.i = add i16 %conv49.i.i.i, 1 + %inc.i.i.i = add nuw i16 %conv49.i.i.i, 1 br label %_ZN7openvdb5v11_02io10RealToHalfIfE7convertEf.exit _ZN7openvdb5v11_02io10RealToHalfIfE7convertEf.exit: ; preds = %if.then4.i.i.i, %if.end.i.i.i, %if.then23.i.i.i, %if.end27.i.i.i, %if.end37.i.i.i, %lor.lhs.false.i.i.i, %if.then55.i.i.i @@ -78694,7 +78694,7 @@ lor.lhs.false.i.i.i: ; preds = %if.end40.i.i.i br i1 %or.cond.i.i.i, label %_ZN7openvdb5v11_02io10RealToHalfIfE7convertEf.exit, label %if.then55.i.i.i if.then55.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end40.i.i.i - %inc.i.i.i = add i16 %conv49.i.i.i, 1 + %inc.i.i.i = add nuw i16 %conv49.i.i.i, 1 br label %_ZN7openvdb5v11_02io10RealToHalfIfE7convertEf.exit _ZN7openvdb5v11_02io10RealToHalfIfE7convertEf.exit: ; preds = %if.then4.i.i.i, %if.end.i.i.i, %if.then23.i.i.i, %if.end27.i.i.i, %if.end37.i.i.i, %lor.lhs.false.i.i.i, %if.then55.i.i.i @@ -184576,7 +184576,7 @@ lor.lhs.false.i.i.i: ; preds = %if.end40.i.i.i br i1 %or.cond.i.i.i, label %_ZN7openvdb5v11_02io10RealToHalfIdE7convertEd.exit, label %if.then55.i.i.i if.then55.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end40.i.i.i - %inc.i.i.i = add i16 %conv49.i.i.i, 1 + %inc.i.i.i = add nuw i16 %conv49.i.i.i, 1 br label %_ZN7openvdb5v11_02io10RealToHalfIdE7convertEd.exit _ZN7openvdb5v11_02io10RealToHalfIdE7convertEd.exit: ; preds = %if.then4.i.i.i, %if.end.i.i.i, %if.then23.i.i.i, %if.end27.i.i.i, %if.end37.i.i.i, %lor.lhs.false.i.i.i, %if.then55.i.i.i @@ -185542,7 +185542,7 @@ lor.lhs.false.i.i.i: ; preds = %if.end40.i.i.i br i1 %or.cond.i.i.i, label %_ZN7openvdb5v11_02io10RealToHalfIdE7convertEd.exit, label %if.then55.i.i.i if.then55.i.i.i: ; preds = %lor.lhs.false.i.i.i, %if.end40.i.i.i - %inc.i.i.i = add i16 %conv49.i.i.i, 1 + %inc.i.i.i = add nuw i16 %conv49.i.i.i, 1 br label %_ZN7openvdb5v11_02io10RealToHalfIdE7convertEd.exit _ZN7openvdb5v11_02io10RealToHalfIdE7convertEd.exit: ; preds = %if.then4.i.i.i, %if.end.i.i.i, %if.then23.i.i.i, %if.end27.i.i.i, %if.end37.i.i.i, %lor.lhs.false.i.i.i, %if.then55.i.i.i @@ -287168,7 +287168,7 @@ lor.lhs.false.i.i: ; preds = %if.end40.i.i br i1 %or.cond.i.i, label %_ZN7openvdb5v11_04math8internal4halfC2Ef.exit, label %if.then55.i.i if.then55.i.i: ; preds = %lor.lhs.false.i.i, %if.end40.i.i - %inc.i.i = add i16 %conv49.i.i, 1 + %inc.i.i = add nuw i16 %conv49.i.i, 1 br label %_ZN7openvdb5v11_04math8internal4halfC2Ef.exit _ZN7openvdb5v11_04math8internal4halfC2Ef.exit: ; preds = %if.then4.i.i, %if.end.i.i, %if.then23.i.i, %if.end27.i.i, %if.end37.i.i, %lor.lhs.false.i.i, %if.then55.i.i @@ -287249,7 +287249,7 @@ lor.lhs.false.i.i21: ; preds = %if.end40.i.i9 br i1 %or.cond.i.i25, label %_ZN7openvdb5v11_04math8internal4halfC2Ef.exit52, label %if.then55.i.i26 if.then55.i.i26: ; preds = %lor.lhs.false.i.i21, %if.end40.i.i9 - %inc.i.i27 = add i16 %conv49.i.i19, 1 + %inc.i.i27 = add nuw i16 %conv49.i.i19, 1 br label %_ZN7openvdb5v11_04math8internal4halfC2Ef.exit52 _ZN7openvdb5v11_04math8internal4halfC2Ef.exit52: ; preds = %if.then4.i.i44, %if.end.i.i47, %if.then23.i.i42, %if.end27.i.i33, %if.end37.i.i7, %lor.lhs.false.i.i21, %if.then55.i.i26 @@ -287331,7 +287331,7 @@ lor.lhs.false.i.i72: ; preds = %if.end40.i.i60 br i1 %or.cond.i.i76, label %_ZN7openvdb5v11_04math8internal4halfC2Ef.exit103, label %if.then55.i.i77 if.then55.i.i77: ; preds = %lor.lhs.false.i.i72, %if.end40.i.i60 - %inc.i.i78 = add i16 %conv49.i.i70, 1 + %inc.i.i78 = add nuw i16 %conv49.i.i70, 1 br label %_ZN7openvdb5v11_04math8internal4halfC2Ef.exit103 _ZN7openvdb5v11_04math8internal4halfC2Ef.exit103: ; preds = %if.then4.i.i95, %if.end.i.i98, %if.then23.i.i93, %if.end27.i.i84, %if.end37.i.i58, %lor.lhs.false.i.i72, %if.then55.i.i77 diff --git a/bench/php/optimized/pcre2_jit_compile.ll b/bench/php/optimized/pcre2_jit_compile.ll index b059310d725..82ec3f7763d 100644 --- a/bench/php/optimized/pcre2_jit_compile.ll +++ b/bench/php/optimized/pcre2_jit_compile.ll @@ -12794,9 +12794,8 @@ define ptr @php_pcre2_jit_stack_create(i64 noundef %0, i64 noundef %1, ptr nound %12 = and i64 %11, -8192 %13 = add nuw i64 %spec.select, 8191 %14 = and i64 %13, -8192 - %15 = add i64 %14, -1 - %or.cond.not.i = icmp ult i64 %15, %12 - br i1 %or.cond.not.i, label %16, label %42 + %15 = icmp ugt i64 %14, %12 + br i1 %15, label %42, label %16 16: ; preds = %10 %.val.i = load ptr, ptr %8, align 8 @@ -13905,7 +13904,7 @@ default.unreachable135: ; preds = %21 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @sljit_emit_op2(ptr nocapture noundef %0, i32 noundef range(i32 32, 16384) %1, i32 noundef range(i32 1, 143) %2, i64 noundef range(i64 -2147483648, 2147483648) %3, i32 noundef %4, i64 noundef %5, i32 noundef range(i32 1, 143) %6, i64 noundef %7) unnamed_addr #0 { +define internal fastcc i32 @sljit_emit_op2(ptr nocapture noundef %0, i32 noundef range(i32 32, 12288) %1, i32 noundef range(i32 1, 143) %2, i64 noundef range(i64 -2147483648, 2147483648) %3, i32 noundef %4, i64 noundef %5, i32 noundef range(i32 1, 143) %6, i64 noundef %7) unnamed_addr #0 { %9 = load i32, ptr %0, align 8 %.not = icmp eq i32 %9, 0 br i1 %.not, label %10, label %emit_mul.exit @@ -34725,7 +34724,7 @@ sljit_set_label.exit30: ; preds = %sljit_set_label.exi } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @sljit_emit_op2u(ptr noundef %0, i32 noundef range(i32 66, 16384) %1, i32 noundef %2, i64 noundef %3, i32 noundef range(i32 1, 143) %4, i64 noundef %5) unnamed_addr #0 { +define internal fastcc i32 @sljit_emit_op2u(ptr noundef %0, i32 noundef range(i32 512, 12288) %1, i32 noundef %2, i64 noundef %3, i32 noundef range(i32 1, 143) %4, i64 noundef %5) unnamed_addr #0 { %7 = and i32 %1, 1279 %8 = load i32, ptr %0, align 8 %.not = icmp eq i32 %8, 0 @@ -54030,7 +54029,7 @@ emit_load_imm64.exit: ; preds = %92, %83, %41, %40, } ; Function Attrs: nounwind uwtable -define internal fastcc ptr @emit_x86_instruction(ptr nocapture noundef %0, i64 noundef range(i64 1, 8388608) %1, i32 noundef %2, i64 noundef %3, i32 noundef %4, i64 noundef %5) unnamed_addr #0 { +define internal fastcc ptr @emit_x86_instruction(ptr nocapture noundef %0, i64 noundef range(i64 1, 3670016) %1, i32 noundef %2, i64 noundef %3, i32 noundef %4, i64 noundef %5) unnamed_addr #0 { %7 = and i64 %1, 15 %8 = add nuw nsw i64 %7, 1 %9 = getelementptr inbounds nuw i8, ptr %0, i64 152 @@ -56478,7 +56477,7 @@ emit_mov.exit: ; preds = %205 } ; Function Attrs: nounwind uwtable -define internal fastcc i32 @emit_shift_with_flags(ptr nocapture noundef %0, i8 noundef zeroext range(i8 0, 57) %1, i32 noundef range(i32 0, 14849) %2, i32 noundef range(i32 1, 143) %3, i64 noundef range(i64 -2147483648, 2147483648) %4, i32 noundef %5, i64 noundef %6, i32 noundef range(i32 1, 143) %7, i64 noundef %8) unnamed_addr #0 { +define internal fastcc i32 @emit_shift_with_flags(ptr nocapture noundef %0, i8 noundef zeroext range(i8 0, 57) %1, i32 noundef range(i32 0, 12288) %2, i32 noundef range(i32 1, 143) %3, i64 noundef range(i64 -2147483648, 2147483648) %4, i32 noundef %5, i64 noundef %6, i32 noundef range(i32 1, 143) %7, i64 noundef %8) unnamed_addr #0 { %10 = icmp eq i32 %7, 127 br i1 %10, label %11, label %23 @@ -59664,7 +59663,7 @@ sljit_alloc_memory.exit.thread: ; preds = %20, %3, %sljit_allo } ; Function Attrs: nounwind uwtable -define internal fastcc void @sljit_emit_op_flags(ptr nocapture noundef %0, i32 noundef range(i32 32, 1024) %1, i32 noundef range(i32 1, 5) %2, i32 noundef range(i32 0, 6) %3) unnamed_addr #0 { +define internal fastcc void @sljit_emit_op_flags(ptr nocapture noundef %0, i32 noundef range(i32 32, 768) %1, i32 noundef range(i32 1, 5) %2, i32 noundef range(i32 0, 6) %3) unnamed_addr #0 { %5 = load i32, ptr %0, align 8 %.not = icmp eq i32 %5, 0 br i1 %.not, label %switch.lookup, label %89 diff --git a/bench/postgres/optimized/aclchk.ll b/bench/postgres/optimized/aclchk.ll index 9b76713ab68..c0d549699f1 100644 --- a/bench/postgres/optimized/aclchk.ll +++ b/bench/postgres/optimized/aclchk.ll @@ -5781,29 +5781,29 @@ define internal fastcc range(i64 0, 4294967296) i64 @restrict_and_check_grant(i1 ] 30: ; preds = %29 - %31 = tail call fastcc i64 @pg_class_aclmask_ext(i32 noundef %4, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, i32 noundef 1, ptr noundef null) - %32 = tail call fastcc i64 @pg_attribute_aclmask_ext(i32 noundef %4, i16 noundef signext %8, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, ptr noundef null) + %31 = tail call fastcc i64 @pg_class_aclmask_ext(i32 noundef %4, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, i32 noundef 1, ptr noundef null) + %32 = tail call fastcc i64 @pg_attribute_aclmask_ext(i32 noundef %4, i16 noundef signext %8, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, ptr noundef null) %33 = or i64 %32, %31 br label %pg_aclmask.exit 34: ; preds = %29, %29 - %35 = tail call fastcc i64 @pg_class_aclmask_ext(i32 noundef %4, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, i32 noundef 1, ptr noundef null) + %35 = tail call fastcc i64 @pg_class_aclmask_ext(i32 noundef %4, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, i32 noundef 1, ptr noundef null) br label %pg_aclmask.exit 36: ; preds = %29 - %37 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 1262, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, ptr noundef null) + %37 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 1262, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, ptr noundef null) br label %pg_aclmask.exit 38: ; preds = %29 - %39 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 1255, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, ptr noundef null) + %39 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 1255, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, ptr noundef null) br label %pg_aclmask.exit 40: ; preds = %29 - %41 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 2612, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, ptr noundef null) + %41 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 2612, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, ptr noundef null) br label %pg_aclmask.exit 42: ; preds = %29 - %43 = tail call fastcc i64 @pg_largeobject_aclmask_snapshot(i32 noundef %4, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, ptr noundef null) + %43 = tail call fastcc i64 @pg_largeobject_aclmask_snapshot(i32 noundef %4, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, ptr noundef null) br label %pg_aclmask.exit 44: ; preds = %29 @@ -5843,7 +5843,7 @@ define internal fastcc range(i64 0, 4294967296) i64 @restrict_and_check_grant(i1 62: ; preds = %59, %57 %.017.i.i = phi ptr [ null, %57 ], [ %60, %59 ] %.0.i.i = phi ptr [ %58, %57 ], [ %61, %59 ] - %63 = call i64 @aclmask(ptr noundef %.0.i.i, i32 noundef %5, i32 noundef 10, i64 noundef range(i64 6, 70368744177664) %.0, i32 noundef 1) #8 + %63 = call i64 @aclmask(ptr noundef %.0.i.i, i32 noundef %5, i32 noundef 10, i64 noundef range(i64 17179869184, 61572651155456) %.0, i32 noundef 1) #8 %.not20.i.i = icmp eq ptr %.0.i.i, null %.not21.i.i = icmp eq ptr %.0.i.i, %.017.i.i %or.cond.i.i = or i1 %.not20.i.i, %.not21.i.i @@ -5863,7 +5863,7 @@ pg_parameter_acl_aclmask.exit.i: ; preds = %65, %44 br label %pg_aclmask.exit 66: ; preds = %29 - %67 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 2615, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, ptr noundef null) + %67 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 2615, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, ptr noundef null) br label %pg_aclmask.exit 68: ; preds = %29 @@ -5874,15 +5874,15 @@ pg_parameter_acl_aclmask.exit.i: ; preds = %65, %44 unreachable 71: ; preds = %29 - %72 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 1213, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, ptr noundef null) + %72 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 1213, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, ptr noundef null) br label %pg_aclmask.exit 73: ; preds = %29 - %74 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 2328, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, ptr noundef null) + %74 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 2328, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, ptr noundef null) br label %pg_aclmask.exit 75: ; preds = %29 - %76 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 1417, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, ptr noundef null) + %76 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 1417, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, ptr noundef null) br label %pg_aclmask.exit 77: ; preds = %29 @@ -5893,7 +5893,7 @@ pg_parameter_acl_aclmask.exit.i: ; preds = %65, %44 unreachable 80: ; preds = %29 - %81 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 1247, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 6, 70368744177664) %.0, ptr noundef null) + %81 = tail call fastcc i64 @object_aclmask_ext(i32 noundef 1247, i32 noundef %4, i32 noundef %5, i64 noundef range(i64 17179869184, 61572651155456) %.0, ptr noundef null) br label %pg_aclmask.exit 82: ; preds = %29 diff --git a/bench/qemu/optimized/hw_usb_dev-mtp.c.ll b/bench/qemu/optimized/hw_usb_dev-mtp.c.ll index 110faf76a13..4eb9e5c6238 100644 --- a/bench/qemu/optimized/hw_usb_dev-mtp.c.ll +++ b/bench/qemu/optimized/hw_usb_dev-mtp.c.ll @@ -4130,11 +4130,10 @@ usb_mtp_queue_result.exit31.i: ; preds = %if.then7.i if.end8.i: ; preds = %for.body.i.i, %if.end5.i %o.058.i = phi ptr [ %423, %if.end5.i ], [ %o.06.i.i, %for.body.i.i ] %call9.i = tail call fastcc i32 @usb_mtp_deletefn(ptr noundef %s, ptr noundef %o.058.i) - switch i32 %call9.i, label %default.unreachable [ + switch i32 %call9.i, label %do.body.i [ i32 1, label %sw.bb.i i32 2, label %sw.bb10.i i32 3, label %sw.bb11.i - i32 0, label %do.body.i ] sw.bb.i: ; preds = %if.end8.i @@ -4197,9 +4196,6 @@ usb_mtp_queue_result.exit52.i: ; preds = %sw.bb11.i store ptr %call.i46.i, ptr %result.i49.i, align 8 br label %return -default.unreachable: ; preds = %if.end8.i - unreachable - do.body.i: ; preds = %if.end8.i tail call void @g_assertion_message_expr(ptr noundef null, ptr noundef nonnull @.str.8, i32 noundef 1235, ptr noundef nonnull @__func__.usb_mtp_object_delete, ptr noundef null) #18 unreachable @@ -8253,7 +8249,7 @@ declare void @g_date_time_unref(ptr noundef) local_unnamed_addr #1 declare noalias ptr @g_malloc(i64 noundef) local_unnamed_addr #11 ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc range(i32 0, 4) i32 @usb_mtp_deletefn(ptr nocapture noundef %s, ptr noundef nonnull %o) unnamed_addr #0 { +define internal fastcc i32 @usb_mtp_deletefn(ptr nocapture noundef %s, ptr noundef nonnull %o) unnamed_addr #0 { entry: %children = getelementptr inbounds nuw i8, ptr %o, i64 192 %iter.023 = load ptr, ptr %children, align 8 diff --git a/bench/qemu/optimized/tcg.c.ll b/bench/qemu/optimized/tcg.c.ll index 73fd13f3d23..59bcbcdb99c 100644 --- a/bench/qemu/optimized/tcg.c.ll +++ b/bench/qemu/optimized/tcg.c.ll @@ -20296,36 +20296,30 @@ if.then16: ; preds = %do.body if.else18: ; preds = %do.body %add19 = add nuw nsw i32 %opc, 384 - %and38.i = and i32 %add19, 66304 - %tobool39.not.i = icmp eq i32 %and38.i, 0 - br i1 %tobool39.not.i, label %tcg_out_opc.exit, label %if.then40.i - -if.then40.i: ; preds = %if.else18 %incdec.ptr.i38.i = getelementptr i8, ptr %s.val, i64 1 store ptr %incdec.ptr.i38.i, ptr %2, align 8 store i8 15, ptr %s.val, align 1 %and41.i = and i32 %add19, 512 %tobool42.not.i = icmp eq i32 %and41.i, 0 - %.pre131 = load ptr, ptr %2, align 8 br i1 %tobool42.not.i, label %tcg_out_opc.exit, label %if.end50.sink.split.i -if.end50.sink.split.i: ; preds = %if.then40.i - %incdec.ptr.i40.i = getelementptr i8, ptr %.pre131, i64 1 +if.end50.sink.split.i: ; preds = %if.else18 + %10 = load ptr, ptr %2, align 8 + %incdec.ptr.i40.i = getelementptr i8, ptr %10, i64 1 store ptr %incdec.ptr.i40.i, ptr %2, align 8 - store i8 56, ptr %.pre131, align 1 - %.pre = load ptr, ptr %2, align 8 + store i8 56, ptr %10, align 1 br label %tcg_out_opc.exit -tcg_out_opc.exit: ; preds = %if.then40.i, %if.else18, %if.end50.sink.split.i - %10 = phi ptr [ %.pre131, %if.then40.i ], [ %s.val, %if.else18 ], [ %.pre, %if.end50.sink.split.i ] +tcg_out_opc.exit: ; preds = %if.else18, %if.end50.sink.split.i %conv51.i = trunc i32 %add19 to i8 - %incdec.ptr.i44.i = getelementptr i8, ptr %10, i64 1 + %11 = load ptr, ptr %2, align 8 + %incdec.ptr.i44.i = getelementptr i8, ptr %11, i64 1 store ptr %incdec.ptr.i44.i, ptr %2, align 8 - store i8 %conv51.i, ptr %10, align 1 + store i8 %conv51.i, ptr %11, align 1 %sub20 = add i32 %conv, -6 - %11 = load ptr, ptr %2, align 8 - store i32 %sub20, ptr %11, align 1 - %add.ptr.i41 = getelementptr i8, ptr %11, i64 4 + %12 = load ptr, ptr %2, align 8 + store i32 %sub20, ptr %12, align 1 + %add.ptr.i41 = getelementptr i8, ptr %12, i64 4 store ptr %add.ptr.i41, ptr %2, align 8 br label %if.end45 @@ -20334,40 +20328,40 @@ if.else23: ; preds = %entry br i1 %small, label %if.then25, label %if.else34 if.then25: ; preds = %if.else23 - %12 = trunc i32 %opc to i8 - %conv31 = add i8 %12, 112 + %13 = trunc i32 %opc to i8 + %conv31 = add i8 %13, 112 %conv31.sink = select i1 %cmp26, i8 -21, i8 %conv31 %code_ptr.i44 = getelementptr inbounds nuw i8, ptr %s, i64 128 - %13 = load ptr, ptr %code_ptr.i44, align 8 - %incdec.ptr.i45 = getelementptr i8, ptr %13, i64 1 + %14 = load ptr, ptr %code_ptr.i44, align 8 + %incdec.ptr.i45 = getelementptr i8, ptr %14, i64 1 store ptr %incdec.ptr.i45, ptr %code_ptr.i44, align 8 - store i8 %conv31.sink, ptr %13, align 1 + store i8 %conv31.sink, ptr %14, align 1 %code_ptr = getelementptr inbounds nuw i8, ptr %s, i64 128 - %14 = load ptr, ptr %code_ptr, align 8 - %15 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) - %16 = load ptr, ptr %15, align 8 + %15 = load ptr, ptr %code_ptr, align 8 + %16 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) %17 = load ptr, ptr %16, align 8 - %add.ptr.i.i46 = getelementptr i8, ptr %17, i64 32 - %pool_end.i.i = getelementptr inbounds nuw i8, ptr %16, i64 8 - %18 = load ptr, ptr %pool_end.i.i, align 8 - %cmp.i.i = icmp ugt ptr %add.ptr.i.i46, %18 + %18 = load ptr, ptr %17, align 8 + %add.ptr.i.i46 = getelementptr i8, ptr %18, i64 32 + %pool_end.i.i = getelementptr inbounds nuw i8, ptr %17, i64 8 + %19 = load ptr, ptr %pool_end.i.i, align 8 + %cmp.i.i = icmp ugt ptr %add.ptr.i.i46, %19 br i1 %cmp.i.i, label %if.then.i.i, label %if.else.i.i if.then.i.i: ; preds = %if.then25 - %pool_current.i.i.i = getelementptr inbounds nuw i8, ptr %16, i64 24 - %19 = load ptr, ptr %pool_current.i.i.i, align 8 - %tobool.not.i.i.i = icmp eq ptr %19, null + %pool_current.i.i.i = getelementptr inbounds nuw i8, ptr %17, i64 24 + %20 = load ptr, ptr %pool_current.i.i.i, align 8 + %tobool.not.i.i.i = icmp eq ptr %20, null br i1 %tobool.not.i.i.i, label %if.then3.i.i.i, label %if.else6.i.i.i if.then3.i.i.i: ; preds = %if.then.i.i - %pool_first.i.i.i = getelementptr inbounds nuw i8, ptr %16, i64 16 - %20 = load ptr, ptr %pool_first.i.i.i, align 8 - %tobool4.not.i.i.i = icmp eq ptr %20, null + %pool_first.i.i.i = getelementptr inbounds nuw i8, ptr %17, i64 16 + %21 = load ptr, ptr %pool_first.i.i.i, align 8 + %tobool4.not.i.i.i = icmp eq ptr %21, null br i1 %tobool4.not.i.i.i, label %new_pool.i.i.i, label %if.end27.i.i.i if.else6.i.i.i: ; preds = %if.then.i.i - %21 = load ptr, ptr %19, align 16 - %tobool8.not.i.i.i = icmp eq ptr %21, null + %22 = load ptr, ptr %20, align 16 + %tobool8.not.i.i.i = icmp eq ptr %22, null br i1 %tobool8.not.i.i.i, label %new_pool.i.i.i, label %if.end27.i.i.i new_pool.i.i.i: ; preds = %if.else6.i.i.i, %if.then3.i.i.i @@ -20375,117 +20369,118 @@ new_pool.i.i.i: ; preds = %if.else6.i.i.i, %if %size13.i.i.i = getelementptr inbounds nuw i8, ptr %call12.i.i.i, i64 8 store i32 32768, ptr %size13.i.i.i, align 8 store ptr null, ptr %call12.i.i.i, align 16 - %22 = load ptr, ptr %pool_current.i.i.i, align 8 - %tobool16.not.i.i.i = icmp eq ptr %22, null + %23 = load ptr, ptr %pool_current.i.i.i, align 8 + %tobool16.not.i.i.i = icmp eq ptr %23, null br i1 %tobool16.not.i.i.i, label %if.else20.i.i.i, label %if.then17.i.i.i if.then17.i.i.i: ; preds = %new_pool.i.i.i - store ptr %call12.i.i.i, ptr %22, align 16 + store ptr %call12.i.i.i, ptr %23, align 16 br label %if.end27.i.i.i if.else20.i.i.i: ; preds = %new_pool.i.i.i - %pool_first21.i.i.i = getelementptr inbounds nuw i8, ptr %16, i64 16 + %pool_first21.i.i.i = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %call12.i.i.i, ptr %pool_first21.i.i.i, align 8 br label %if.end27.i.i.i if.end27.i.i.i: ; preds = %if.else20.i.i.i, %if.then17.i.i.i, %if.else6.i.i.i, %if.then3.i.i.i - %p.0.i.i.i = phi ptr [ %call12.i.i.i, %if.then17.i.i.i ], [ %call12.i.i.i, %if.else20.i.i.i ], [ %20, %if.then3.i.i.i ], [ %21, %if.else6.i.i.i ] + %p.0.i.i.i = phi ptr [ %call12.i.i.i, %if.then17.i.i.i ], [ %call12.i.i.i, %if.else20.i.i.i ], [ %21, %if.then3.i.i.i ], [ %22, %if.else6.i.i.i ] store ptr %p.0.i.i.i, ptr %pool_current.i.i.i, align 8 %data29.i.i.i = getelementptr inbounds nuw i8, ptr %p.0.i.i.i, i64 16 %add.ptr.i.i.i = getelementptr i8, ptr %p.0.i.i.i, i64 48 - store ptr %add.ptr.i.i.i, ptr %16, align 8 + store ptr %add.ptr.i.i.i, ptr %17, align 8 %size33.i.i.i = getelementptr inbounds nuw i8, ptr %p.0.i.i.i, i64 8 - %23 = load i32, ptr %size33.i.i.i, align 8 - %idx.ext34.i.i.i = sext i32 %23 to i64 + %24 = load i32, ptr %size33.i.i.i, align 8 + %idx.ext34.i.i.i = sext i32 %24 to i64 %add.ptr35.i.i.i = getelementptr i8, ptr %data29.i.i.i, i64 %idx.ext34.i.i.i store ptr %add.ptr35.i.i.i, ptr %pool_end.i.i, align 8 br label %tcg_out_reloc.exit if.else.i.i: ; preds = %if.then25 - store ptr %add.ptr.i.i46, ptr %16, align 8 + store ptr %add.ptr.i.i46, ptr %17, align 8 br label %tcg_out_reloc.exit tcg_out_reloc.exit: ; preds = %if.end27.i.i.i, %if.else.i.i - %retval.0.i.i = phi ptr [ %17, %if.else.i.i ], [ %data29.i.i.i, %if.end27.i.i.i ] + %retval.0.i.i = phi ptr [ %18, %if.else.i.i ], [ %data29.i.i.i, %if.end27.i.i.i ] %type1.i = getelementptr inbounds nuw i8, ptr %retval.0.i.i, i64 24 store i32 23, ptr %type1.i, align 8 %ptr.i = getelementptr inbounds nuw i8, ptr %retval.0.i.i, i64 8 - store ptr %14, ptr %ptr.i, align 8 + store ptr %15, ptr %ptr.i, align 8 %addend2.i = getelementptr inbounds nuw i8, ptr %retval.0.i.i, i64 16 store i64 -1, ptr %addend2.i, align 8 store ptr null, ptr %retval.0.i.i, align 8 %sqh_last.i = getelementptr inbounds nuw i8, ptr %l, i64 40 - %24 = load ptr, ptr %sqh_last.i, align 8 - store ptr %retval.0.i.i, ptr %24, align 8 + %25 = load ptr, ptr %sqh_last.i, align 8 + store ptr %retval.0.i.i, ptr %25, align 8 store ptr %retval.0.i.i, ptr %sqh_last.i, align 8 - %25 = load ptr, ptr %code_ptr, align 8 - %add.ptr = getelementptr i8, ptr %25, i64 1 + %26 = load ptr, ptr %code_ptr, align 8 + %add.ptr = getelementptr i8, ptr %26, i64 1 store ptr %add.ptr, ptr %code_ptr, align 8 br label %if.end45 if.else34: ; preds = %if.else23 - br i1 %cmp26, label %if.end40, label %if.else38 + br i1 %cmp26, label %if.then37, label %if.else38 + +if.then37: ; preds = %if.else34 + %code_ptr.i47 = getelementptr inbounds nuw i8, ptr %s, i64 128 + %27 = load ptr, ptr %code_ptr.i47, align 8 + %incdec.ptr.i48 = getelementptr i8, ptr %27, i64 1 + store ptr %incdec.ptr.i48, ptr %code_ptr.i47, align 8 + store i8 -23, ptr %27, align 1 + br label %if.end40 if.else38: ; preds = %if.else34 %add39 = add nuw nsw i32 %opc, 384 - %and38.i78 = and i32 %add39, 66304 - %tobool39.not.i79 = icmp eq i32 %and38.i78, 0 - br i1 %tobool39.not.i79, label %tcg_out_opc.exit97, label %if.then40.i80 - -if.then40.i80: ; preds = %if.else38 %code_ptr.i37.i81 = getelementptr inbounds nuw i8, ptr %s, i64 128 - %26 = load ptr, ptr %code_ptr.i37.i81, align 8 - %incdec.ptr.i38.i82 = getelementptr i8, ptr %26, i64 1 + %28 = load ptr, ptr %code_ptr.i37.i81, align 8 + %incdec.ptr.i38.i82 = getelementptr i8, ptr %28, i64 1 store ptr %incdec.ptr.i38.i82, ptr %code_ptr.i37.i81, align 8 - store i8 15, ptr %26, align 1 + store i8 15, ptr %28, align 1 %and41.i83 = and i32 %add39, 512 %tobool42.not.i84 = icmp eq i32 %and41.i83, 0 br i1 %tobool42.not.i84, label %tcg_out_opc.exit97, label %if.end50.sink.split.i85 -if.end50.sink.split.i85: ; preds = %if.then40.i80 - %27 = load ptr, ptr %code_ptr.i37.i81, align 8 - %incdec.ptr.i40.i87 = getelementptr i8, ptr %27, i64 1 +if.end50.sink.split.i85: ; preds = %if.else38 + %29 = load ptr, ptr %code_ptr.i37.i81, align 8 + %incdec.ptr.i40.i87 = getelementptr i8, ptr %29, i64 1 store ptr %incdec.ptr.i40.i87, ptr %code_ptr.i37.i81, align 8 - store i8 56, ptr %27, align 1 + store i8 56, ptr %29, align 1 br label %tcg_out_opc.exit97 -tcg_out_opc.exit97: ; preds = %if.then40.i80, %if.else38, %if.end50.sink.split.i85 +tcg_out_opc.exit97: ; preds = %if.else38, %if.end50.sink.split.i85 %conv51.i88 = trunc i32 %add39 to i8 + %30 = load ptr, ptr %code_ptr.i37.i81, align 8 + %incdec.ptr.i44.i90 = getelementptr i8, ptr %30, i64 1 + store ptr %incdec.ptr.i44.i90, ptr %code_ptr.i37.i81, align 8 + store i8 %conv51.i88, ptr %30, align 1 br label %if.end40 -if.end40: ; preds = %if.else34, %tcg_out_opc.exit97 - %conv51.i88.sink = phi i8 [ %conv51.i88, %tcg_out_opc.exit97 ], [ -23, %if.else34 ] - %code_ptr.i43.i89 = getelementptr inbounds nuw i8, ptr %s, i64 128 - %28 = load ptr, ptr %code_ptr.i43.i89, align 8 - %incdec.ptr.i44.i90 = getelementptr i8, ptr %28, i64 1 - store ptr %incdec.ptr.i44.i90, ptr %code_ptr.i43.i89, align 8 - store i8 %conv51.i88.sink, ptr %28, align 1 +if.end40: ; preds = %tcg_out_opc.exit97, %if.then37 %code_ptr41 = getelementptr inbounds nuw i8, ptr %s, i64 128 - %29 = load ptr, ptr %code_ptr41, align 8 - %30 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) - %31 = load ptr, ptr %30, align 8 - %32 = load ptr, ptr %31, align 8 - %add.ptr.i.i98 = getelementptr i8, ptr %32, i64 32 - %pool_end.i.i99 = getelementptr inbounds nuw i8, ptr %31, i64 8 - %33 = load ptr, ptr %pool_end.i.i99, align 8 - %cmp.i.i100 = icmp ugt ptr %add.ptr.i.i98, %33 + %31 = load ptr, ptr %code_ptr41, align 8 + %32 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @tcg_ctx) + %33 = load ptr, ptr %32, align 8 + %34 = load ptr, ptr %33, align 8 + %add.ptr.i.i98 = getelementptr i8, ptr %34, i64 32 + %pool_end.i.i99 = getelementptr inbounds nuw i8, ptr %33, i64 8 + %35 = load ptr, ptr %pool_end.i.i99, align 8 + %cmp.i.i100 = icmp ugt ptr %add.ptr.i.i98, %35 br i1 %cmp.i.i100, label %if.then.i.i107, label %if.else.i.i101 if.then.i.i107: ; preds = %if.end40 - %pool_current.i.i.i108 = getelementptr inbounds nuw i8, ptr %31, i64 24 - %34 = load ptr, ptr %pool_current.i.i.i108, align 8 - %tobool.not.i.i.i109 = icmp eq ptr %34, null + %pool_current.i.i.i108 = getelementptr inbounds nuw i8, ptr %33, i64 24 + %36 = load ptr, ptr %pool_current.i.i.i108, align 8 + %tobool.not.i.i.i109 = icmp eq ptr %36, null br i1 %tobool.not.i.i.i109, label %if.then3.i.i.i126, label %if.else6.i.i.i110 if.then3.i.i.i126: ; preds = %if.then.i.i107 - %pool_first.i.i.i127 = getelementptr inbounds nuw i8, ptr %31, i64 16 - %35 = load ptr, ptr %pool_first.i.i.i127, align 8 - %tobool4.not.i.i.i128 = icmp eq ptr %35, null + %pool_first.i.i.i127 = getelementptr inbounds nuw i8, ptr %33, i64 16 + %37 = load ptr, ptr %pool_first.i.i.i127, align 8 + %tobool4.not.i.i.i128 = icmp eq ptr %37, null br i1 %tobool4.not.i.i.i128, label %new_pool.i.i.i119, label %if.end27.i.i.i112 if.else6.i.i.i110: ; preds = %if.then.i.i107 - %36 = load ptr, ptr %34, align 16 - %tobool8.not.i.i.i111 = icmp eq ptr %36, null + %38 = load ptr, ptr %36, align 16 + %tobool8.not.i.i.i111 = icmp eq ptr %38, null br i1 %tobool8.not.i.i.i111, label %new_pool.i.i.i119, label %if.end27.i.i.i112 new_pool.i.i.i119: ; preds = %if.else6.i.i.i110, %if.then3.i.i.i126 @@ -20493,51 +20488,51 @@ new_pool.i.i.i119: ; preds = %if.else6.i.i.i110, %size13.i.i.i121 = getelementptr inbounds nuw i8, ptr %call12.i.i.i120, i64 8 store i32 32768, ptr %size13.i.i.i121, align 8 store ptr null, ptr %call12.i.i.i120, align 16 - %37 = load ptr, ptr %pool_current.i.i.i108, align 8 - %tobool16.not.i.i.i122 = icmp eq ptr %37, null + %39 = load ptr, ptr %pool_current.i.i.i108, align 8 + %tobool16.not.i.i.i122 = icmp eq ptr %39, null br i1 %tobool16.not.i.i.i122, label %if.else20.i.i.i124, label %if.then17.i.i.i123 if.then17.i.i.i123: ; preds = %new_pool.i.i.i119 - store ptr %call12.i.i.i120, ptr %37, align 16 + store ptr %call12.i.i.i120, ptr %39, align 16 br label %if.end27.i.i.i112 if.else20.i.i.i124: ; preds = %new_pool.i.i.i119 - %pool_first21.i.i.i125 = getelementptr inbounds nuw i8, ptr %31, i64 16 + %pool_first21.i.i.i125 = getelementptr inbounds nuw i8, ptr %33, i64 16 store ptr %call12.i.i.i120, ptr %pool_first21.i.i.i125, align 8 br label %if.end27.i.i.i112 if.end27.i.i.i112: ; preds = %if.else20.i.i.i124, %if.then17.i.i.i123, %if.else6.i.i.i110, %if.then3.i.i.i126 - %p.0.i.i.i113 = phi ptr [ %call12.i.i.i120, %if.then17.i.i.i123 ], [ %call12.i.i.i120, %if.else20.i.i.i124 ], [ %35, %if.then3.i.i.i126 ], [ %36, %if.else6.i.i.i110 ] + %p.0.i.i.i113 = phi ptr [ %call12.i.i.i120, %if.then17.i.i.i123 ], [ %call12.i.i.i120, %if.else20.i.i.i124 ], [ %37, %if.then3.i.i.i126 ], [ %38, %if.else6.i.i.i110 ] store ptr %p.0.i.i.i113, ptr %pool_current.i.i.i108, align 8 %data29.i.i.i114 = getelementptr inbounds nuw i8, ptr %p.0.i.i.i113, i64 16 %add.ptr.i.i.i115 = getelementptr i8, ptr %p.0.i.i.i113, i64 48 - store ptr %add.ptr.i.i.i115, ptr %31, align 8 + store ptr %add.ptr.i.i.i115, ptr %33, align 8 %size33.i.i.i116 = getelementptr inbounds nuw i8, ptr %p.0.i.i.i113, i64 8 - %38 = load i32, ptr %size33.i.i.i116, align 8 - %idx.ext34.i.i.i117 = sext i32 %38 to i64 + %40 = load i32, ptr %size33.i.i.i116, align 8 + %idx.ext34.i.i.i117 = sext i32 %40 to i64 %add.ptr35.i.i.i118 = getelementptr i8, ptr %data29.i.i.i114, i64 %idx.ext34.i.i.i117 store ptr %add.ptr35.i.i.i118, ptr %pool_end.i.i99, align 8 br label %tcg_out_reloc.exit129 if.else.i.i101: ; preds = %if.end40 - store ptr %add.ptr.i.i98, ptr %31, align 8 + store ptr %add.ptr.i.i98, ptr %33, align 8 br label %tcg_out_reloc.exit129 tcg_out_reloc.exit129: ; preds = %if.end27.i.i.i112, %if.else.i.i101 - %retval.0.i.i102 = phi ptr [ %32, %if.else.i.i101 ], [ %data29.i.i.i114, %if.end27.i.i.i112 ] + %retval.0.i.i102 = phi ptr [ %34, %if.else.i.i101 ], [ %data29.i.i.i114, %if.end27.i.i.i112 ] %type1.i103 = getelementptr inbounds nuw i8, ptr %retval.0.i.i102, i64 24 store i32 2, ptr %type1.i103, align 8 %ptr.i104 = getelementptr inbounds nuw i8, ptr %retval.0.i.i102, i64 8 - store ptr %29, ptr %ptr.i104, align 8 + store ptr %31, ptr %ptr.i104, align 8 %addend2.i105 = getelementptr inbounds nuw i8, ptr %retval.0.i.i102, i64 16 store i64 -4, ptr %addend2.i105, align 8 store ptr null, ptr %retval.0.i.i102, align 8 %sqh_last.i106 = getelementptr inbounds nuw i8, ptr %l, i64 40 - %39 = load ptr, ptr %sqh_last.i106, align 8 - store ptr %retval.0.i.i102, ptr %39, align 8 + %41 = load ptr, ptr %sqh_last.i106, align 8 + store ptr %retval.0.i.i102, ptr %41, align 8 store ptr %retval.0.i.i102, ptr %sqh_last.i106, align 8 - %40 = load ptr, ptr %code_ptr41, align 8 - %add.ptr43 = getelementptr i8, ptr %40, i64 4 + %42 = load ptr, ptr %code_ptr41, align 8 + %add.ptr43 = getelementptr i8, ptr %42, i64 4 store ptr %add.ptr43, ptr %code_ptr41, align 8 br label %if.end45 diff --git a/bench/rayon-rs/optimized/1ospp3uz7h49thev.ll b/bench/rayon-rs/optimized/1ospp3uz7h49thev.ll index b5d286735a7..de43c2841d8 100644 --- a/bench/rayon-rs/optimized/1ospp3uz7h49thev.ll +++ b/bench/rayon-rs/optimized/1ospp3uz7h49thev.ll @@ -28,28 +28,26 @@ define hidden void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$ %2 = alloca { ptr, i64 }, align 8 %3 = and i64 %0, -8 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) - %6 = load ptr, ptr %4, align 8, !nonnull !4, !noundef !4 - %7 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %8 = load i64, ptr %7, align 8, !noundef !4 + %5 = load ptr, ptr %4, align 8, !nonnull !4, !noundef !4 + %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %7 = load i64, ptr %6, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) - store ptr %6, ptr %2, align 8 - %9 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 %8, ptr %9, align 8 + store ptr %5, ptr %2, align 8 + %8 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store i64 %7, ptr %8, align 8 invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h14fcd6ddb83fe083E.llvm.9679142966780209040"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) - to label %10 unwind label %11 + to label %9 unwind label %10 -10: ; preds = %1 +9: ; preds = %1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) call void @__rust_dealloc(ptr noundef nonnull %4, i64 noundef 16, i64 noundef 8) #13, !noalias !5 ret void -11: ; preds = %1 - %12 = landingpad { ptr, i32 } +10: ; preds = %1 + %11 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %4, i64 noundef 16, i64 noundef 8) #13, !noalias !10 - resume { ptr, i32 } %12 + resume { ptr, i32 } %11 } ; Function Attrs: nonlazybind uwtable @@ -67,35 +65,33 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h4ccf3bef store i64 %1, ptr %8, align 8, !alias.scope !15 call void @_ZN15crossbeam_epoch8internal5Local5defer17he931d8941bee3f39E(ptr noundef nonnull align 128 %5, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %19 + br label %18 9: ; preds = %2 %10 = and i64 %1, -8 %11 = inttoptr i64 %10 to ptr - %12 = icmp ne i64 %10, 0 - tail call void @llvm.assume(i1 %12) - %13 = load ptr, ptr %11, align 8, !nonnull !4, !noundef !4 - %14 = getelementptr inbounds nuw i8, ptr %11, i64 8 - %15 = load i64, ptr %14, align 8, !noundef !4 + %12 = load ptr, ptr %11, align 8, !nonnull !4, !noundef !4 + %13 = getelementptr inbounds nuw i8, ptr %11, i64 8 + %14 = load i64, ptr %13, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) - store ptr %13, ptr %3, align 8 - %16 = getelementptr inbounds nuw i8, ptr %3, i64 8 - store i64 %15, ptr %16, align 8 + store ptr %12, ptr %3, align 8 + %15 = getelementptr inbounds nuw i8, ptr %3, i64 8 + store i64 %14, ptr %15, align 8 invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h14fcd6ddb83fe083E.llvm.9679142966780209040"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) - to label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit" unwind label %17 + to label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit" unwind label %16 -17: ; preds = %9 - %18 = landingpad { ptr, i32 } +16: ; preds = %9 + %17 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef 16, i64 noundef 8) #13, !noalias !18 - resume { ptr, i32 } %18 + resume { ptr, i32 } %17 "_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit": ; preds = %9 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef 16, i64 noundef 8) #13, !noalias !23 - br label %19 + br label %18 -19: ; preds = %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit", %7 +18: ; preds = %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit", %7 ret void } diff --git a/bench/rayon-rs/optimized/2xi93mrj8f00xnic.ll b/bench/rayon-rs/optimized/2xi93mrj8f00xnic.ll index 227fda64b7e..425df5fc112 100644 --- a/bench/rayon-rs/optimized/2xi93mrj8f00xnic.ll +++ b/bench/rayon-rs/optimized/2xi93mrj8f00xnic.ll @@ -258,12 +258,12 @@ define internal fastcc void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize %.not = icmp eq i64 %32, %9 br i1 %.not, label %._crit_edge, label %27 -33: ; preds = %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit.i", %42, %26, %55 +33: ; preds = %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit.i", %42, %26, %54 %34 = landingpad { ptr, i32 } cleanup %.val = load ptr, ptr %6, align 8, !noundef !9 invoke fastcc void @"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h0f560ee4f7794edaE"(ptr %.val) #22 - to label %71 unwind label %69 + to label %70 unwind label %68 35: ; preds = %._crit_edge store ptr %17, ptr %24, align 8 @@ -293,21 +293,19 @@ define internal fastcc void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !11 %45 = and i64 %39, -8 %46 = inttoptr i64 %45 to ptr - %47 = icmp ne i64 %45, 0 - tail call void @llvm.assume(i1 %47) store ptr %46, ptr %3, align 8, !noalias !11 - %48 = getelementptr inbounds nuw i8, ptr %46, i64 8 - %49 = load i64, ptr %48, align 8, !noalias !11, !noundef !9 - %50 = icmp eq i64 %49, 0 - br i1 %50, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit.i", label %51 - -51: ; preds = %44 - %52 = load ptr, ptr %46, align 8, !noalias !11, !nonnull !9, !noundef !9 - %53 = shl nsw i64 %49, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %52, i64 noundef range(i64 1, 0) %53, i64 noundef 8) #14, !noalias !17 + %47 = getelementptr inbounds nuw i8, ptr %46, i64 8 + %48 = load i64, ptr %47, align 8, !noalias !11, !noundef !9 + %49 = icmp eq i64 %48, 0 + br i1 %49, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit.i", label %50 + +50: ; preds = %44 + %51 = load ptr, ptr %46, align 8, !noalias !11, !nonnull !9, !noundef !9 + %52 = shl nsw i64 %48, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %51, i64 noundef range(i64 1, 0) %52, i64 noundef 8) #14, !noalias !17 br label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit.i" -"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit.i": ; preds = %51, %44 +"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17h277ab886a182d976E.llvm.9411856555795096292.exit.i": ; preds = %50, %44 invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h259b44b9f0912580E.llvm.9411856555795096292"(ptr noalias noundef nonnull align 8 dereferenceable(8) %3) to label %.noexc17 unwind label %33 @@ -316,50 +314,50 @@ define internal fastcc void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize br label %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h4ccf3bef69ace06cE.exit _ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h4ccf3bef69ace06cE.exit: ; preds = %.noexc17, %.noexc16 - %54 = and i64 %1, 1152921504606846912 - %.not14 = icmp eq i64 %54, 0 - br i1 %.not14, label %56, label %55 + %53 = and i64 %1, 1152921504606846912 + %.not14 = icmp eq i64 %53, 0 + br i1 %.not14, label %55, label %54 -55: ; preds = %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h4ccf3bef69ace06cE.exit +54: ; preds = %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h4ccf3bef69ace06cE.exit invoke void @_ZN15crossbeam_epoch5guard5Guard5flush17ha9db119c4ac3be11E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %6) - to label %56 unwind label %33 + to label %55 unwind label %33 -56: ; preds = %55, %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h4ccf3bef69ace06cE.exit +55: ; preds = %54, %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h4ccf3bef69ace06cE.exit %.val15 = load ptr, ptr %6, align 8, !noundef !9 - %57 = icmp eq ptr %.val15, null - br i1 %57, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h0f560ee4f7794edaE.exit", label %58 + %56 = icmp eq ptr %.val15, null + br i1 %56, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h0f560ee4f7794edaE.exit", label %57 -58: ; preds = %56 - %59 = getelementptr inbounds nuw i8, ptr %.val15, i64 2072 - %60 = load i64, ptr %59, align 8, !noundef !9 - %61 = add i64 %60, -1 - store i64 %61, ptr %59, align 8 - %62 = icmp eq i64 %60, 1 - br i1 %62, label %63, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h0f560ee4f7794edaE.exit" - -63: ; preds = %58 - %64 = getelementptr inbounds nuw i8, ptr %.val15, i64 2176 - store atomic i64 0, ptr %64 release, align 8 - %65 = getelementptr inbounds nuw i8, ptr %.val15, i64 2080 - %66 = load i64, ptr %65, align 8, !noundef !9 - %67 = icmp eq i64 %66, 0 - br i1 %67, label %68, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h0f560ee4f7794edaE.exit" +57: ; preds = %55 + %58 = getelementptr inbounds nuw i8, ptr %.val15, i64 2072 + %59 = load i64, ptr %58, align 8, !noundef !9 + %60 = add i64 %59, -1 + store i64 %60, ptr %58, align 8 + %61 = icmp eq i64 %59, 1 + br i1 %61, label %62, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h0f560ee4f7794edaE.exit" + +62: ; preds = %57 + %63 = getelementptr inbounds nuw i8, ptr %.val15, i64 2176 + store atomic i64 0, ptr %63 release, align 8 + %64 = getelementptr inbounds nuw i8, ptr %.val15, i64 2080 + %65 = load i64, ptr %64, align 8, !noundef !9 + %66 = icmp eq i64 %65, 0 + br i1 %66, label %67, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h0f560ee4f7794edaE.exit" -68: ; preds = %63 +67: ; preds = %62 call void @_ZN15crossbeam_epoch8internal5Local8finalize17h63b198663ed08730E(ptr noundef nonnull align 128 %.val15) br label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h0f560ee4f7794edaE.exit" -"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h0f560ee4f7794edaE.exit": ; preds = %56, %58, %63, %68 +"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h0f560ee4f7794edaE.exit": ; preds = %55, %57, %62, %67 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) ret void -69: ; preds = %33 - %70 = landingpad { ptr, i32 } +68: ; preds = %33 + %69 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #23 unreachable -71: ; preds = %33 +70: ; preds = %33 resume { ptr, i32 } %34 } diff --git a/bench/rayon-rs/optimized/4k8zt5cv4x2jivhi.ll b/bench/rayon-rs/optimized/4k8zt5cv4x2jivhi.ll index 4167cd8959c..386fcbb739f 100644 --- a/bench/rayon-rs/optimized/4k8zt5cv4x2jivhi.ll +++ b/bench/rayon-rs/optimized/4k8zt5cv4x2jivhi.ll @@ -61,23 +61,21 @@ define hidden void @_ZN15crossbeam_epoch8deferred8Deferred3new4call17h2c83d87f31 %3 = load i64, ptr %0, align 8, !noundef !4 %4 = and i64 %3, -8 %5 = inttoptr i64 %4 to ptr - %6 = icmp ne i64 %4, 0 - tail call void @llvm.assume(i1 %6) - %7 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 - %8 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %9 = load i64, ptr %8, align 8, !noundef !4 + %6 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 + %7 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %8 = load i64, ptr %7, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) - store ptr %7, ptr %2, align 8 - %10 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 %9, ptr %10, align 8 + store ptr %6, ptr %2, align 8 + %9 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store i64 %8, ptr %9, align 8 invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h14fcd6ddb83fe083E.llvm.9679142966780209040"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) - to label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h389c90f79e7d37dcE.exit" unwind label %11 + to label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h389c90f79e7d37dcE.exit" unwind label %10 -11: ; preds = %1 - %12 = landingpad { ptr, i32 } +10: ; preds = %1 + %11 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %5, i64 noundef 16, i64 noundef 8) #19 - resume { ptr, i32 } %12 + resume { ptr, i32 } %11 "_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h389c90f79e7d37dcE.exit": ; preds = %1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) @@ -92,26 +90,24 @@ define hidden void @_ZN15crossbeam_epoch8deferred8Deferred3new4call17h94c2fe8421 %4 = load i64, ptr %3, align 8, !noundef !4 %5 = and i64 %4, -8 %6 = inttoptr i64 %5 to ptr - %7 = icmp ne i64 %5, 0 - tail call void @llvm.assume(i1 %7) - %8 = load ptr, ptr %6, align 8, !nonnull !4, !noundef !4 - %9 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %10 = load i64, ptr %9, align 8, !noundef !4 + %7 = load ptr, ptr %6, align 8, !nonnull !4, !noundef !4 + %8 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %9 = load i64, ptr %8, align 8, !noundef !4 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2) - store ptr %8, ptr %2, align 8 - %11 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 %10, ptr %11, align 8 + store ptr %7, ptr %2, align 8 + %10 = getelementptr inbounds nuw i8, ptr %2, i64 8 + store i64 %9, ptr %10, align 8 invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h14fcd6ddb83fe083E.llvm.9679142966780209040"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2) - to label %14 unwind label %12 + to label %13 unwind label %11 -12: ; preds = %1 - %13 = landingpad { ptr, i32 } +11: ; preds = %1 + %12 = landingpad { ptr, i32 } cleanup call void @__rust_dealloc(ptr noundef nonnull %6, i64 noundef 16, i64 noundef 8) #19 call void @__rust_dealloc(ptr noundef nonnull %3, i64 noundef 8, i64 noundef 8) #19 - resume { ptr, i32 } %13 + resume { ptr, i32 } %12 -14: ; preds = %1 +13: ; preds = %1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) call void @__rust_dealloc(ptr noundef nonnull %6, i64 noundef 16, i64 noundef 8) #19 call void @__rust_dealloc(ptr noundef nonnull %3, i64 noundef 8, i64 noundef 8) #19 diff --git a/bench/rayon-rs/optimized/aeba4nd7ialzggy.ll b/bench/rayon-rs/optimized/aeba4nd7ialzggy.ll index 3283873abf2..c15b9a00606 100644 --- a/bench/rayon-rs/optimized/aeba4nd7ialzggy.ll +++ b/bench/rayon-rs/optimized/aeba4nd7ialzggy.ll @@ -157,7 +157,7 @@ define hidden { ptr, ptr } @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$ ] 48: ; preds = %43 - tail call void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef %37, i64 noundef %.sroa.5.0.copyload, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.35) #16, !noalias !55 + tail call void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef %37, i64 noundef %.sroa.5.0.copyload, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.35) #14, !noalias !55 unreachable default.unreachable: ; preds = %45 @@ -192,12 +192,10 @@ _ZN4core4iter6traits8iterator8Iterator8try_fold17h986421bd6c20431eE.exit.thread: ret { ptr, ptr } %55 } -; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(inaccessiblemem: write) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define hidden noundef nonnull align 8 ptr @"_ZN15crossbeam_epoch6atomic14Owned$LT$T$GT$8into_box17h06d60643629aab33E"(i64 noundef %0) unnamed_addr #2 { %2 = and i64 %0, -8 %3 = inttoptr i64 %2 to ptr - %4 = icmp ne i64 %2, 0 - tail call void @llvm.assume(i1 %4) ret ptr %3 } @@ -231,7 +229,7 @@ define hidden noundef i64 @"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$4load17h store ptr @anon.6bfb40bdba5575227de52f328afb9133.0, ptr %12, align 8 %13 = getelementptr inbounds nuw i8, ptr %5, i64 24 store i64 0, ptr %13, align 8 - call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.8) #16 + call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.8) #14 unreachable 14: ; preds = %3 @@ -249,7 +247,7 @@ define hidden noundef i64 @"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$4load17h store ptr @anon.6bfb40bdba5575227de52f328afb9133.0, ptr %19, align 8 %20 = getelementptr inbounds nuw i8, ptr %4, i64 24 store i64 0, ptr %20, align 8 - call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.11) #16 + call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.11) #14 unreachable 21: ; preds = %3 @@ -519,7 +517,7 @@ define hidden noundef i8 @_ZN4core4sync6atomic11atomic_load17h5793edc2db4770a0E. store ptr @anon.6bfb40bdba5575227de52f328afb9133.0, ptr %11, align 8 %12 = getelementptr inbounds nuw i8, ptr %4, i64 24 store i64 0, ptr %12, align 8 - call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.8) #16 + call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.8) #14 unreachable 13: ; preds = %2 @@ -537,7 +535,7 @@ define hidden noundef i8 @_ZN4core4sync6atomic11atomic_load17h5793edc2db4770a0E. store ptr @anon.6bfb40bdba5575227de52f328afb9133.0, ptr %18, align 8 %19 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 0, ptr %19, align 8 - call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.11) #16 + call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.11) #14 unreachable 20: ; preds = %2 @@ -579,7 +577,7 @@ define hidden noundef i64 @_ZN4core4sync6atomic11atomic_load17h939a445d398624cfE store ptr @anon.6bfb40bdba5575227de52f328afb9133.0, ptr %11, align 8 %12 = getelementptr inbounds nuw i8, ptr %4, i64 24 store i64 0, ptr %12, align 8 - call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.8) #16 + call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.8) #14 unreachable 13: ; preds = %2 @@ -597,7 +595,7 @@ define hidden noundef i64 @_ZN4core4sync6atomic11atomic_load17h939a445d398624cfE store ptr @anon.6bfb40bdba5575227de52f328afb9133.0, ptr %18, align 8 %19 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 0, ptr %19, align 8 - call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.11) #16 + call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.11) #14 unreachable 20: ; preds = %2 @@ -643,7 +641,7 @@ define hidden void @_ZN4core4sync6atomic12atomic_store17h1574303c9bdc4bbcE.llvm. store ptr @anon.6bfb40bdba5575227de52f328afb9133.0, ptr %12, align 8 %13 = getelementptr inbounds nuw i8, ptr %5, i64 24 store i64 0, ptr %13, align 8 - call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.14) #16 + call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.14) #14 unreachable 14: ; preds = %3 @@ -657,7 +655,7 @@ define hidden void @_ZN4core4sync6atomic12atomic_store17h1574303c9bdc4bbcE.llvm. store ptr @anon.6bfb40bdba5575227de52f328afb9133.0, ptr %17, align 8 %18 = getelementptr inbounds nuw i8, ptr %4, i64 24 store i64 0, ptr %18, align 8 - call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.17) #16 + call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.17) #14 unreachable 19: ; preds = %3 @@ -809,7 +807,7 @@ define hidden { i32, i32 } @_ZN4core4sync6atomic23atomic_compare_exchange17h498a store ptr @anon.6bfb40bdba5575227de52f328afb9133.0, ptr %50, align 8 %51 = getelementptr inbounds nuw i8, ptr %6, i64 24 store i64 0, ptr %51, align 8 - call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.20) #16 + call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.20) #14 unreachable 52: ; preds = %13, %12, %11, %10, %9 @@ -823,7 +821,7 @@ define hidden { i32, i32 } @_ZN4core4sync6atomic23atomic_compare_exchange17h498a store ptr @anon.6bfb40bdba5575227de52f328afb9133.0, ptr %55, align 8 %56 = getelementptr inbounds nuw i8, ptr %7, i64 24 store i64 0, ptr %56, align 8 - call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.23) #16 + call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.23) #14 unreachable } @@ -852,13 +850,13 @@ define hidden { ptr, i8 } @"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h2e81de store ptr %14, ptr %3, align 8 %17 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i8 %16, ptr %17, align 8 - invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.6bfb40bdba5575227de52f328afb9133.24, i64 noundef 43, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %1) #16 + invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.6bfb40bdba5575227de52f328afb9133.24, i64 noundef 43, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %1) #14 to label %20 unwind label %18 18: ; preds = %12 %19 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr99drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$bool$GT$$GT$$GT$17h5a2246340cb6bcd0E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) #17 + invoke void @"_ZN4core3ptr99drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$bool$GT$$GT$$GT$17h5a2246340cb6bcd0E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) #15 to label %23 unwind label %21 20: ; preds = %12 @@ -867,7 +865,7 @@ define hidden { ptr, i8 } @"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h2e81de 21: ; preds = %18 %22 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #18 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16 unreachable 23: ; preds = %18 @@ -885,7 +883,7 @@ define hidden { ptr, i64 } @"_ZN55_$LT$$RF$T$u20$as$u20$core..convert..AsRef$LT$ } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable -define hidden noundef align 8 dereferenceable(16) ptr @"_ZN56_$LT$T$u20$as$u20$crossbeam_epoch..atomic..Pointable$GT$5deref17h424818de35272a61E.llvm.4364434838112105284"(i64 noundef %0) unnamed_addr #7 { +define hidden noundef align 8 dereferenceable(16) ptr @"_ZN56_$LT$T$u20$as$u20$crossbeam_epoch..atomic..Pointable$GT$5deref17h424818de35272a61E.llvm.4364434838112105284"(i64 noundef %0) unnamed_addr #2 { %2 = inttoptr i64 %0 to ptr ret ptr %2 } @@ -938,7 +936,7 @@ define hidden noundef zeroext i1 @"_ZN69_$LT$std..sync..mutex..Mutex$LT$T$GT$$u2 26: ; preds = %23 %27 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr61drop_in_place$LT$std..sync..mutex..MutexGuard$LT$bool$GT$$GT$17h037f25805bba7023E.llvm.4364434838112105284"(ptr noalias noundef nonnull align 8 dereferenceable(16) %8) #17 + invoke void @"_ZN4core3ptr61drop_in_place$LT$std..sync..mutex..MutexGuard$LT$bool$GT$$GT$17h037f25805bba7023E.llvm.4364434838112105284"(ptr noalias noundef nonnull align 8 dereferenceable(16) %8) #15 to label %48 unwind label %46 28: ; preds = %23 @@ -989,7 +987,7 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.llvm.4364434838112105284.exit. 46: ; preds = %58, %26 %47 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #18 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16 unreachable 48: ; preds = %58, %26 @@ -1024,7 +1022,7 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.llvm.4364434838112105284.exit. 58: ; preds = %49 %59 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr99drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$bool$GT$$GT$$GT$17h5a2246340cb6bcd0E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %6) #17 + invoke void @"_ZN4core3ptr99drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$bool$GT$$GT$$GT$17h5a2246340cb6bcd0E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %6) #15 to label %48 unwind label %46 60: ; preds = %49 @@ -1070,7 +1068,7 @@ define hidden noundef nonnull align 128 ptr @"_ZN75_$LT$usize$u20$as$u20$core..s ret ptr %7 8: ; preds = %4 - tail call void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef %0, i64 noundef %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) #16 + tail call void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef %0, i64 noundef %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) #14 unreachable } @@ -1119,7 +1117,7 @@ define hidden noundef nonnull align 128 ptr @"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A br i1 %6, label %"_ZN75_$LT$usize$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h61d1fc09bc3e3cbfE.llvm.4364434838112105284.exit", label %7, !prof !54 7: ; preds = %3 - tail call void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef %1, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %2) #16 + tail call void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef %1, i64 noundef %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %2) #14 unreachable "_ZN75_$LT$usize$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h61d1fc09bc3e3cbfE.llvm.4364434838112105284.exit": ; preds = %3 @@ -1136,7 +1134,7 @@ define void @_ZN10rayon_core5sleep5Sleep3new17h97a0d250b2f3199bE(ptr noalias noc br i1 %4, label %6, label %5 5: ; preds = %2 - tail call void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.6bfb40bdba5575227de52f328afb9133.36.llvm.4364434838112105284, i64 noundef 42, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.38.llvm.4364434838112105284) #16 + tail call void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.6bfb40bdba5575227de52f328afb9133.36.llvm.4364434838112105284, i64 noundef 42, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.38.llvm.4364434838112105284) #14 unreachable 6: ; preds = %2 @@ -1150,7 +1148,7 @@ define void @_ZN10rayon_core5sleep5Sleep3new17h97a0d250b2f3199bE(ptr noalias noc } ; Function Attrs: cold nonlazybind uwtable -define hidden noundef range(i64 0, 4294967296) i64 @_ZN10rayon_core5sleep5Sleep15announce_sleepy17hd873976ca361f7c4E(ptr noundef nonnull align 8 %0) unnamed_addr #8 personality ptr @rust_eh_personality { +define hidden noundef range(i64 0, 4294967296) i64 @_ZN10rayon_core5sleep5Sleep15announce_sleepy17hd873976ca361f7c4E(ptr noundef nonnull align 8 %0) unnamed_addr #7 personality ptr @rust_eh_personality { %2 = getelementptr inbounds nuw i8, ptr %0, i64 24 br label %3 @@ -1180,7 +1178,7 @@ define void @_ZN10rayon_core5sleep5Sleep26notify_worker_latch_is_set17hd2845a688 } ; Function Attrs: cold nonlazybind uwtable -define void @_ZN10rayon_core5sleep5Sleep16wake_any_threads17hdf2987505f1636b6E(ptr nocapture noundef nonnull align 8 %0, i32 noundef %1) unnamed_addr #8 { +define void @_ZN10rayon_core5sleep5Sleep16wake_any_threads17hdf2987505f1636b6E(ptr nocapture noundef nonnull align 8 %0, i32 noundef %1) unnamed_addr #7 { %.not = icmp eq i32 %1, 0 br i1 %.not, label %.thread, label %3 @@ -1222,7 +1220,7 @@ define hidden noundef zeroext i1 @_ZN10rayon_core5sleep5Sleep20wake_specific_thr br i1 %7, label %"_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17ha78111fc5ebf76fcE.llvm.4364434838112105284.exit", label %8, !prof !54 8: ; preds = %2 - tail call void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef %1, i64 noundef %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.39.llvm.4364434838112105284) #16, !noalias !101 + tail call void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef %1, i64 noundef %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.39.llvm.4364434838112105284) #14, !noalias !101 unreachable "_ZN81_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..ops..index..Index$LT$I$GT$$GT$5index17ha78111fc5ebf76fcE.llvm.4364434838112105284.exit": ; preds = %2 @@ -1262,13 +1260,13 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.llvm.43644348 store ptr %11, ptr %3, align 8, !noalias !109 %24 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i8 %.0.i.i.i, ptr %24, align 8, !noalias !109 - invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.6bfb40bdba5575227de52f328afb9133.24, i64 noundef 43, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.40.llvm.4364434838112105284) #16 + invoke void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1 @anon.6bfb40bdba5575227de52f328afb9133.24, i64 noundef 43, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.25, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6bfb40bdba5575227de52f328afb9133.40.llvm.4364434838112105284) #14 to label %27 unwind label %25, !noalias !113 25: ; preds = %23 %26 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr99drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$bool$GT$$GT$$GT$17h5a2246340cb6bcd0E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) #17 + invoke void @"_ZN4core3ptr99drop_in_place$LT$std..sync..poison..PoisonError$LT$std..sync..mutex..MutexGuard$LT$bool$GT$$GT$$GT$17h5a2246340cb6bcd0E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %3) #15 to label %common.resume unwind label %28, !noalias !113 27: ; preds = %23 @@ -1277,7 +1275,7 @@ _ZN3std3sys4unix5locks11futex_mutex5Mutex4lock17h2824c483f8557e8fE.llvm.43644348 28: ; preds = %25 %29 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #18, !noalias !113 + call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16, !noalias !113 unreachable common.resume: ; preds = %49, %25 @@ -1339,7 +1337,7 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.llvm.4364434838112105284.exit. 49: ; preds = %33 %50 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr61drop_in_place$LT$std..sync..mutex..MutexGuard$LT$bool$GT$$GT$17h037f25805bba7023E.llvm.4364434838112105284"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) #17 + invoke void @"_ZN4core3ptr61drop_in_place$LT$std..sync..mutex..MutexGuard$LT$bool$GT$$GT$17h037f25805bba7023E.llvm.4364434838112105284"(ptr noalias noundef nonnull align 8 dereferenceable(16) %4) #15 to label %common.resume unwind label %54 51: ; preds = %33 @@ -1352,12 +1350,12 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.llvm.4364434838112105284.exit. 54: ; preds = %49 %55 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - tail call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #18 + tail call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #16 unreachable } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable -define hidden void @_ZN10rayon_core5sleep9IdleState10wake_fully17h605886b4e5c58020E(ptr noalias nocapture noundef writeonly align 8 dereferenceable(24) initializes((8, 20)) %0) unnamed_addr #9 { +define hidden void @_ZN10rayon_core5sleep9IdleState10wake_fully17h605886b4e5c58020E(ptr noalias nocapture noundef writeonly align 8 dereferenceable(24) initializes((8, 20)) %0) unnamed_addr #8 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 16 store i32 0, ptr %2, align 8 %3 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -1366,7 +1364,7 @@ define hidden void @_ZN10rayon_core5sleep9IdleState10wake_fully17h605886b4e5c580 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable -define hidden void @_ZN10rayon_core5sleep9IdleState11wake_partly17h7a9dde494bf6f5ccE(ptr noalias nocapture noundef writeonly align 8 dereferenceable(24) initializes((8, 20)) %0) unnamed_addr #9 { +define hidden void @_ZN10rayon_core5sleep9IdleState11wake_partly17h7a9dde494bf6f5ccE(ptr noalias nocapture noundef writeonly align 8 dereferenceable(24) initializes((8, 20)) %0) unnamed_addr #8 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 16 store i32 32, ptr %2, align 8 %3 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -1378,31 +1376,31 @@ define hidden void @_ZN10rayon_core5sleep9IdleState11wake_partly17h7a9dde494bf6f declare noundef i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #1 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #10 +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #9 ; Function Attrs: nonlazybind uwtable declare void @_ZN3std3env4_var17heb1759b01e9820adE(ptr noalias nocapture noundef sret({ i64, [3 x i64] }) align 8 dereferenceable(32), ptr noalias noundef nonnull readonly align 1, i64 noundef) unnamed_addr #1 ; Function Attrs: cold nonlazybind uwtable -declare void @_ZN3std3sys4unix5locks11futex_mutex5Mutex14lock_contended17h711e3c2fa7879c2dE(ptr noundef nonnull align 4) unnamed_addr #8 +declare void @_ZN3std3sys4unix5locks11futex_mutex5Mutex14lock_contended17h711e3c2fa7879c2dE(ptr noundef nonnull align 4) unnamed_addr #7 ; Function Attrs: cold nonlazybind uwtable -declare noundef zeroext i1 @_ZN3std9panicking11panic_count17is_zero_slow_path17h658c934b8397a2acE() unnamed_addr #8 +declare noundef zeroext i1 @_ZN3std9panicking11panic_count17is_zero_slow_path17h658c934b8397a2acE() unnamed_addr #7 ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @"_ZN43_$LT$bool$u20$as$u20$core..fmt..Display$GT$3fmt17h66f0ab6491e96cc2E"(ptr noalias noundef readonly align 1 dereferenceable(1), ptr noalias noundef align 8 dereferenceable(64)) unnamed_addr #1 ; Function Attrs: cold noreturn nonlazybind uwtable -declare void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef align 8 dereferenceable(48), ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #11 +declare void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef align 8 dereferenceable(48), ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #10 ; Function Attrs: nonlazybind uwtable declare hidden noundef zeroext i1 @"_ZN76_$LT$std..sync..poison..PoisonError$LT$T$GT$$u20$as$u20$core..fmt..Debug$GT$3fmt17hfaccba8df3425db0E"(ptr noalias noundef readonly align 8 dereferenceable(16), ptr noalias noundef align 8 dereferenceable(64)) unnamed_addr #1 ; Function Attrs: cold noreturn nonlazybind uwtable -declare void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noundef nonnull align 1, ptr noalias noundef readonly align 8 dereferenceable(24), ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #11 +declare void @_ZN4core6result13unwrap_failed17h03d8a5018196e1cdE(ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noundef nonnull align 1, ptr noalias noundef readonly align 8 dereferenceable(24), ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #10 ; Function Attrs: cold noreturn nounwind nonlazybind uwtable -declare void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() unnamed_addr #12 +declare void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() unnamed_addr #11 ; Function Attrs: nonlazybind uwtable declare void @_ZN4core3fmt9Formatter12debug_struct17h182b2d36b73186b9E(ptr noalias nocapture noundef sret({ ptr, i8, i8, [6 x i8] }) align 8 dereferenceable(16), ptr noalias noundef align 8 dereferenceable(64), ptr noalias noundef nonnull readonly align 1, i64 noundef) unnamed_addr #1 @@ -1420,25 +1418,25 @@ declare noundef zeroext i1 @"_ZN57_$LT$core..fmt..Arguments$u20$as$u20$core..fmt declare noundef zeroext i1 @_ZN4core3fmt8builders11DebugStruct21finish_non_exhaustive17h376fe039ed28a878E(ptr noalias noundef align 8 dereferenceable(16)) unnamed_addr #1 ; Function Attrs: cold noreturn nonlazybind uwtable -declare void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef, i64 noundef, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #11 +declare void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef, i64 noundef, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #10 ; Function Attrs: cold nonlazybind uwtable -declare void @_ZN3std3sys4unix5locks11futex_mutex5Mutex4wake17hb07a3d057da5ea39E(ptr noundef nonnull align 4) unnamed_addr #8 +declare void @_ZN3std3sys4unix5locks11futex_mutex5Mutex4wake17hb07a3d057da5ea39E(ptr noundef nonnull align 4) unnamed_addr #7 ; Function Attrs: nonlazybind uwtable declare hidden void @"_ZN15crossbeam_deque5deque16Stealer$LT$T$GT$5steal17h201b268e9298e0a7E"(ptr noalias nocapture noundef sret({ i64, [2 x i64] }) align 8 dereferenceable(24), ptr noalias noundef readonly align 8 dereferenceable(16)) unnamed_addr #1 ; Function Attrs: cold noreturn nonlazybind uwtable -declare void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #11 +declare void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #10 ; Function Attrs: nonlazybind uwtable declare void @_ZN3std4sync7condvar7Condvar10notify_one17h2467c63876d6f3cfE(ptr noundef nonnull align 4) unnamed_addr #1 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #13 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #12 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #13 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #12 ; Function Attrs: inlinehint nonlazybind uwtable declare hidden { ptr, ptr } @"_ZN10rayon_core8registry12WorkerThread5steal28_$u7b$$u7b$closure$u7d$$u7d$17hbe8279d478d8944cE.llvm.17432428852515034553"(ptr noalias noundef align 8 dereferenceable(24), i64 noundef) unnamed_addr #5 @@ -1461,31 +1459,26 @@ declare hidden void @"_ZN4core3ptr99drop_in_place$LT$std..sync..poison..PoisonEr ; Function Attrs: nonlazybind uwtable declare hidden 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_iter17hcf05d76f64e5335aE.llvm.15553549611834190124"(ptr noalias nocapture noundef sret({ { i64, ptr }, i64 }) align 8 dereferenceable(24), i64 noundef, i64 noundef) unnamed_addr #1 -; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) -declare void @llvm.assume(i1 noundef) #14 - ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) -declare void @llvm.experimental.noalias.scope.decl(metadata) #15 +declare void @llvm.experimental.noalias.scope.decl(metadata) #13 attributes #0 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #1 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #2 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(inaccessiblemem: write) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #2 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #3 = { mustprogress nofree norecurse nounwind nonlazybind willreturn memory(argmem: readwrite) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #4 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #5 = { inlinehint nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #6 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #7 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #8 = { cold nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #9 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #10 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #11 = { cold noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #12 = { cold noreturn nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #13 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #14 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } -attributes #15 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } -attributes #16 = { noreturn } -attributes #17 = { cold } -attributes #18 = { cold noreturn nounwind } +attributes #7 = { cold nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #8 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #9 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #10 = { cold noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #11 = { cold noreturn nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #12 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #13 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } +attributes #14 = { noreturn } +attributes #15 = { cold } +attributes #16 = { cold noreturn nounwind } !llvm.module.flags = !{!0, !1, !2} !llvm.ident = !{!3} diff --git a/bench/ripgrep-rs/optimized/1zzjpab9m5homdm3.ll b/bench/ripgrep-rs/optimized/1zzjpab9m5homdm3.ll index 4d063b74ec9..4e9dccaf47a 100644 --- a/bench/ripgrep-rs/optimized/1zzjpab9m5homdm3.ll +++ b/bench/ripgrep-rs/optimized/1zzjpab9m5homdm3.ll @@ -161,17 +161,15 @@ target triple = "x86_64-unknown-linux-gnu" define hidden void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597"(i64 noundef %0) unnamed_addr #0 personality ptr @rust_eh_personality { %2 = and i64 %0, -8 %3 = inttoptr i64 %2 to ptr - %4 = icmp ne i64 %2, 0 - tail call void @llvm.assume(i1 %4) - %5 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %6 = load i64, ptr %5, align 8, !noundef !4 - %7 = icmp eq i64 %6, 0 - br i1 %7, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h4e8b4a5aaa0d8598E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i" + %4 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %5 = load i64, ptr %4, align 8, !noundef !4 + %6 = icmp eq i64 %5, 0 + br i1 %6, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h4e8b4a5aaa0d8598E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i": ; preds = %1 - %8 = load ptr, ptr %3, align 8, !nonnull !4, !noundef !4 - %9 = mul nsw i64 %6, 136 - tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef %9, i64 noundef 8) #28, !noalias !5 + %7 = load ptr, ptr %3, align 8, !nonnull !4, !noundef !4 + %8 = mul nsw i64 %5, 136 + tail call void @__rust_dealloc(ptr noundef nonnull %7, i64 noundef %8, i64 noundef 8) #28, !noalias !5 br label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h4e8b4a5aaa0d8598E.exit" "_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h4e8b4a5aaa0d8598E.exit": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i", %1 @@ -193,29 +191,27 @@ define hidden void @_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hfbb5dba3 store i64 %1, ptr %7, align 8, !alias.scope !15 call void @_ZN15crossbeam_epoch8internal5Local5defer17h6fac878d96264b2aE(ptr noundef nonnull align 128 %4, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) - br label %17 + br label %16 8: ; preds = %2 %9 = and i64 %1, -8 %10 = inttoptr i64 %9 to ptr - %11 = icmp ne i64 %9, 0 - tail call void @llvm.assume(i1 %11) - %12 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %13 = load i64, ptr %12, align 8, !noundef !4 - %14 = icmp eq i64 %13, 0 - br i1 %14, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i" + %11 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %12 = load i64, ptr %11, align 8, !noundef !4 + %13 = icmp eq i64 %12, 0 + br i1 %13, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i": ; preds = %8 - %15 = load ptr, ptr %10, align 8, !nonnull !4, !noundef !4 - %16 = mul nsw i64 %13, 136 - tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %16, i64 noundef 8) #28, !noalias !18 + %14 = load ptr, ptr %10, align 8, !nonnull !4, !noundef !4 + %15 = mul nsw i64 %12, 136 + tail call void @__rust_dealloc(ptr noundef nonnull %14, i64 noundef %15, i64 noundef 8) #28, !noalias !18 br label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit" "_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit": ; preds = %8, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i" tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef 16, i64 noundef 8) #28, !noalias !23 - br label %17 + br label %16 -17: ; preds = %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit", %6 +16: ; preds = %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit", %6 ret void } @@ -232,17 +228,15 @@ define hidden void @_ZN15crossbeam_epoch8deferred8Deferred3new4call17habbd5f1c58 %2 = load i64, ptr %0, align 8, !noundef !4 %3 = and i64 %2, -8 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load i64, ptr %6, align 8, !noundef !4 - %8 = icmp eq i64 %7, 0 - br i1 %8, label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h9a6eed283c0c2df6E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i" + %5 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %6 = load i64, ptr %5, align 8, !noundef !4 + %7 = icmp eq i64 %6, 0 + br i1 %7, label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h9a6eed283c0c2df6E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i": ; preds = %1 - %9 = load ptr, ptr %4, align 8, !nonnull !4, !noundef !4 - %10 = mul nsw i64 %7, 136 - tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %10, i64 noundef 8) #28, !noalias !28 + %8 = load ptr, ptr %4, align 8, !nonnull !4, !noundef !4 + %9 = mul nsw i64 %6, 136 + tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef %9, i64 noundef 8) #28, !noalias !28 br label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h9a6eed283c0c2df6E.exit" "_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h9a6eed283c0c2df6E.exit": ; preds = %1, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i" @@ -256,20 +250,18 @@ define hidden void @_ZN15crossbeam_epoch8deferred8Deferred3new4call17hb50e4af012 %3 = load i64, ptr %2, align 8, !noundef !4 %4 = and i64 %3, -8 %5 = inttoptr i64 %4 to ptr - %6 = icmp ne i64 %4, 0 - tail call void @llvm.assume(i1 %6) - %7 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %8 = load i64, ptr %7, align 8, !noundef !4 - %9 = icmp eq i64 %8, 0 - br i1 %9, label %12, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i" + %6 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %7 = load i64, ptr %6, align 8, !noundef !4 + %8 = icmp eq i64 %7, 0 + br i1 %8, label %11, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i": ; preds = %1 - %10 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 - %11 = mul nsw i64 %8, 136 - tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %11, i64 noundef 8) #28, !noalias !39 - br label %12 + %9 = load ptr, ptr %5, align 8, !nonnull !4, !noundef !4 + %10 = mul nsw i64 %7, 136 + tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %10, i64 noundef 8) #28, !noalias !39 + br label %11 -12: ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i", %1 +11: ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i", %1 tail call void @__rust_dealloc(ptr noundef nonnull %5, i64 noundef 16, i64 noundef 8) #28, !noalias !44 tail call void @__rust_dealloc(ptr noundef nonnull %2, i64 noundef 8, i64 noundef 8) #28 ret void diff --git a/bench/ripgrep-rs/optimized/2tdjht0mwe9cctwp.ll b/bench/ripgrep-rs/optimized/2tdjht0mwe9cctwp.ll index 8973506ef6a..8be5286098f 100644 --- a/bench/ripgrep-rs/optimized/2tdjht0mwe9cctwp.ll +++ b/bench/ripgrep-rs/optimized/2tdjht0mwe9cctwp.ll @@ -2826,41 +2826,39 @@ define hidden void @"_ZN4core3ptr129drop_in_place$LT$crossbeam_utils..cache_padd .lr.ph.i.i: ; preds = %1 %7 = getelementptr inbounds nuw i8, ptr %.pre8.i.i, i64 8 - br label %14 + br label %13 ._crit_edge.i.i: ; preds = %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i", %1 - %8 = icmp ne i64 %.pre.i.i, 0 - tail call void @llvm.assume(i1 %8) - %9 = getelementptr inbounds nuw i8, ptr %.pre8.i.i, i64 8 - %10 = load i64, ptr %9, align 8, !noalias !942, !noundef !4 - %11 = icmp eq i64 %10, 0 - br i1 %11, label %"_ZN4core3ptr79drop_in_place$LT$crossbeam_deque..deque..Inner$LT$ignore..walk..Message$GT$$GT$17h18e9c2b65eced92eE.llvm.12875954175451687458.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i" + %8 = getelementptr inbounds nuw i8, ptr %.pre8.i.i, i64 8 + %9 = load i64, ptr %8, align 8, !noalias !942, !noundef !4 + %10 = icmp eq i64 %9, 0 + br i1 %10, label %"_ZN4core3ptr79drop_in_place$LT$crossbeam_deque..deque..Inner$LT$ignore..walk..Message$GT$$GT$17h18e9c2b65eced92eE.llvm.12875954175451687458.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i": ; preds = %._crit_edge.i.i - %12 = load ptr, ptr %.pre8.i.i, align 8, !noalias !942, !nonnull !4, !noundef !4 - %13 = mul nsw i64 %10, 136 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %13, i64 noundef 8) #24, !noalias !943 + %11 = load ptr, ptr %.pre8.i.i, align 8, !noalias !942, !nonnull !4, !noundef !4 + %12 = mul nsw i64 %9, 136 + tail call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %12, i64 noundef 8) #24, !noalias !943 br label %"_ZN4core3ptr79drop_in_place$LT$crossbeam_deque..deque..Inner$LT$ignore..walk..Message$GT$$GT$17h18e9c2b65eced92eE.llvm.12875954175451687458.exit" -14: ; preds = %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i", %.lr.ph.i.i - %.07.i.i = phi i64 [ %5, %.lr.ph.i.i ], [ %22, %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i" ] - %15 = load ptr, ptr %.pre8.i.i, align 8, !noalias !942, !noundef !4 - %16 = load i64, ptr %7, align 8, !noalias !942, !noundef !4 - %17 = add i64 %16, -1 - %18 = and i64 %17, %.07.i.i - %19 = getelementptr inbounds { i64, [16 x i64] }, ptr %15, i64 %18 - %20 = load i64, ptr %19, align 8, !range !424, !alias.scope !948, !noalias !942, !noundef !4 - %.not.i.i.i = icmp eq i64 %20, 2 - br i1 %.not.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i", label %21 - -21: ; preds = %14 - tail call void @"_ZN4core3ptr39drop_in_place$LT$ignore..walk..Work$GT$17h7bf73ef0638c5567E"(ptr noalias noundef nonnull align 8 dereferenceable(136) %19), !noalias !942 +13: ; preds = %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i", %.lr.ph.i.i + %.07.i.i = phi i64 [ %5, %.lr.ph.i.i ], [ %21, %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i" ] + %14 = load ptr, ptr %.pre8.i.i, align 8, !noalias !942, !noundef !4 + %15 = load i64, ptr %7, align 8, !noalias !942, !noundef !4 + %16 = add i64 %15, -1 + %17 = and i64 %16, %.07.i.i + %18 = getelementptr inbounds { i64, [16 x i64] }, ptr %14, i64 %17 + %19 = load i64, ptr %18, align 8, !range !424, !alias.scope !948, !noalias !942, !noundef !4 + %.not.i.i.i = icmp eq i64 %19, 2 + br i1 %.not.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i", label %20 + +20: ; preds = %13 + tail call void @"_ZN4core3ptr39drop_in_place$LT$ignore..walk..Work$GT$17h7bf73ef0638c5567E"(ptr noalias noundef nonnull align 8 dereferenceable(136) %18), !noalias !942 br label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i" -"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i": ; preds = %21, %14 - %22 = add i64 %.07.i.i, 1 - %.not.i.i = icmp eq i64 %22, %3 - br i1 %.not.i.i, label %._crit_edge.i.i, label %14 +"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i": ; preds = %20, %13 + %21 = add i64 %.07.i.i, 1 + %.not.i.i = icmp eq i64 %21, %3 + br i1 %.not.i.i, label %._crit_edge.i.i, label %13 "_ZN4core3ptr79drop_in_place$LT$crossbeam_deque..deque..Inner$LT$ignore..walk..Message$GT$$GT$17h18e9c2b65eced92eE.llvm.12875954175451687458.exit": ; preds = %._crit_edge.i.i, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i" tail call void @__rust_dealloc(ptr noundef nonnull %.pre8.i.i, i64 noundef 16, i64 noundef 8) #24, !noalias !942 @@ -3595,41 +3593,39 @@ define hidden void @"_ZN4core3ptr158drop_in_place$LT$alloc..sync..ArcInner$LT$cr .lr.ph.i.i.i: ; preds = %1 %8 = getelementptr inbounds nuw i8, ptr %.pre8.i.i.i, i64 8 - br label %15 + br label %14 ._crit_edge.i.i.i: ; preds = %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i.i", %1 - %9 = icmp ne i64 %.pre.i.i.i, 0 - tail call void @llvm.assume(i1 %9) - %10 = getelementptr inbounds nuw i8, ptr %.pre8.i.i.i, i64 8 - %11 = load i64, ptr %10, align 8, !noalias !1194, !noundef !4 - %12 = icmp eq i64 %11, 0 - br i1 %12, label %"_ZN4core3ptr129drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$ignore..walk..Message$GT$$GT$$GT$17h19951b1b19c1b037E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i.i" + %9 = getelementptr inbounds nuw i8, ptr %.pre8.i.i.i, i64 8 + %10 = load i64, ptr %9, align 8, !noalias !1194, !noundef !4 + %11 = icmp eq i64 %10, 0 + br i1 %11, label %"_ZN4core3ptr129drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$ignore..walk..Message$GT$$GT$$GT$17h19951b1b19c1b037E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i.i": ; preds = %._crit_edge.i.i.i - %13 = load ptr, ptr %.pre8.i.i.i, align 8, !noalias !1194, !nonnull !4, !noundef !4 - %14 = mul nsw i64 %11, 136 - tail call void @__rust_dealloc(ptr noundef nonnull %13, i64 noundef %14, i64 noundef 8) #24, !noalias !1195 + %12 = load ptr, ptr %.pre8.i.i.i, align 8, !noalias !1194, !nonnull !4, !noundef !4 + %13 = mul nsw i64 %10, 136 + tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %13, i64 noundef 8) #24, !noalias !1195 br label %"_ZN4core3ptr129drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$ignore..walk..Message$GT$$GT$$GT$17h19951b1b19c1b037E.exit" -15: ; preds = %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i.i", %.lr.ph.i.i.i - %.07.i.i.i = phi i64 [ %6, %.lr.ph.i.i.i ], [ %23, %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i.i" ] - %16 = load ptr, ptr %.pre8.i.i.i, align 8, !noalias !1194, !noundef !4 - %17 = load i64, ptr %8, align 8, !noalias !1194, !noundef !4 - %18 = add i64 %17, -1 - %19 = and i64 %18, %.07.i.i.i - %20 = getelementptr inbounds { i64, [16 x i64] }, ptr %16, i64 %19 - %21 = load i64, ptr %20, align 8, !range !424, !alias.scope !1200, !noalias !1194, !noundef !4 - %.not.i.i.i.i = icmp eq i64 %21, 2 - br i1 %.not.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i.i", label %22 - -22: ; preds = %15 - tail call void @"_ZN4core3ptr39drop_in_place$LT$ignore..walk..Work$GT$17h7bf73ef0638c5567E"(ptr noalias noundef nonnull align 8 dereferenceable(136) %20), !noalias !1194 +14: ; preds = %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i.i", %.lr.ph.i.i.i + %.07.i.i.i = phi i64 [ %6, %.lr.ph.i.i.i ], [ %22, %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i.i" ] + %15 = load ptr, ptr %.pre8.i.i.i, align 8, !noalias !1194, !noundef !4 + %16 = load i64, ptr %8, align 8, !noalias !1194, !noundef !4 + %17 = add i64 %16, -1 + %18 = and i64 %17, %.07.i.i.i + %19 = getelementptr inbounds { i64, [16 x i64] }, ptr %15, i64 %18 + %20 = load i64, ptr %19, align 8, !range !424, !alias.scope !1200, !noalias !1194, !noundef !4 + %.not.i.i.i.i = icmp eq i64 %20, 2 + br i1 %.not.i.i.i.i, label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i.i", label %21 + +21: ; preds = %14 + tail call void @"_ZN4core3ptr39drop_in_place$LT$ignore..walk..Work$GT$17h7bf73ef0638c5567E"(ptr noalias noundef nonnull align 8 dereferenceable(136) %19), !noalias !1194 br label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i.i" -"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i.i": ; preds = %22, %15 - %23 = add i64 %.07.i.i.i, 1 - %.not.i.i.i = icmp eq i64 %23, %4 - br i1 %.not.i.i.i, label %._crit_edge.i.i.i, label %15 +"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i.i.i": ; preds = %21, %14 + %22 = add i64 %.07.i.i.i, 1 + %.not.i.i.i = icmp eq i64 %22, %4 + br i1 %.not.i.i.i, label %._crit_edge.i.i.i, label %14 "_ZN4core3ptr129drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$ignore..walk..Message$GT$$GT$$GT$17h19951b1b19c1b037E.exit": ; preds = %._crit_edge.i.i.i, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i.i" tail call void @__rust_dealloc(ptr noundef nonnull %.pre8.i.i.i, i64 noundef 16, i64 noundef 8) #24, !noalias !1194 @@ -15257,41 +15253,39 @@ define hidden void @"_ZN4core3ptr79drop_in_place$LT$crossbeam_deque..deque..Inne .lr.ph.i: ; preds = %1 %7 = getelementptr inbounds nuw i8, ptr %.pre8.i, i64 8 - br label %14 + br label %13 ._crit_edge.i: ; preds = %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i", %1 - %8 = icmp ne i64 %.pre.i, 0 - tail call void @llvm.assume(i1 %8) - %9 = getelementptr inbounds nuw i8, ptr %.pre8.i, i64 8 - %10 = load i64, ptr %9, align 8, !noalias !7148, !noundef !4 - %11 = icmp eq i64 %10, 0 - br i1 %11, label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hcd41c712a35d4ba1E.llvm.12875954175451687458.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i" + %8 = getelementptr inbounds nuw i8, ptr %.pre8.i, i64 8 + %9 = load i64, ptr %8, align 8, !noalias !7148, !noundef !4 + %10 = icmp eq i64 %9, 0 + br i1 %10, label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hcd41c712a35d4ba1E.llvm.12875954175451687458.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i": ; preds = %._crit_edge.i - %12 = load ptr, ptr %.pre8.i, align 8, !noalias !7148, !nonnull !4, !noundef !4 - %13 = mul nsw i64 %10, 136 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %13, i64 noundef 8) #24, !noalias !7151 + %11 = load ptr, ptr %.pre8.i, align 8, !noalias !7148, !nonnull !4, !noundef !4 + %12 = mul nsw i64 %9, 136 + tail call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %12, i64 noundef 8) #24, !noalias !7151 br label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hcd41c712a35d4ba1E.llvm.12875954175451687458.exit" -14: ; preds = %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i", %.lr.ph.i - %.07.i = phi i64 [ %5, %.lr.ph.i ], [ %22, %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i" ] - %15 = load ptr, ptr %.pre8.i, align 8, !noalias !7148, !noundef !4 - %16 = load i64, ptr %7, align 8, !noalias !7148, !noundef !4 - %17 = add i64 %16, -1 - %18 = and i64 %17, %.07.i - %19 = getelementptr inbounds { i64, [16 x i64] }, ptr %15, i64 %18 - %20 = load i64, ptr %19, align 8, !range !424, !alias.scope !7156, !noalias !7148, !noundef !4 - %.not.i.i = icmp eq i64 %20, 2 - br i1 %.not.i.i, label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i", label %21 +13: ; preds = %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i", %.lr.ph.i + %.07.i = phi i64 [ %5, %.lr.ph.i ], [ %21, %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i" ] + %14 = load ptr, ptr %.pre8.i, align 8, !noalias !7148, !noundef !4 + %15 = load i64, ptr %7, align 8, !noalias !7148, !noundef !4 + %16 = add i64 %15, -1 + %17 = and i64 %16, %.07.i + %18 = getelementptr inbounds { i64, [16 x i64] }, ptr %14, i64 %17 + %19 = load i64, ptr %18, align 8, !range !424, !alias.scope !7156, !noalias !7148, !noundef !4 + %.not.i.i = icmp eq i64 %19, 2 + br i1 %.not.i.i, label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i", label %20 -21: ; preds = %14 - tail call void @"_ZN4core3ptr39drop_in_place$LT$ignore..walk..Work$GT$17h7bf73ef0638c5567E"(ptr noalias noundef nonnull align 8 dereferenceable(136) %19), !noalias !7148 +20: ; preds = %13 + tail call void @"_ZN4core3ptr39drop_in_place$LT$ignore..walk..Work$GT$17h7bf73ef0638c5567E"(ptr noalias noundef nonnull align 8 dereferenceable(136) %18), !noalias !7148 br label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i" -"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i": ; preds = %21, %14 - %22 = add i64 %.07.i, 1 - %.not.i = icmp eq i64 %22, %3 - br i1 %.not.i, label %._crit_edge.i, label %14 +"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit.i": ; preds = %20, %13 + %21 = add i64 %.07.i, 1 + %.not.i = icmp eq i64 %21, %3 + br i1 %.not.i, label %._crit_edge.i, label %13 "_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hcd41c712a35d4ba1E.llvm.12875954175451687458.exit": ; preds = %._crit_edge.i, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i" tail call void @__rust_dealloc(ptr noundef nonnull %.pre8.i, i64 noundef 16, i64 noundef 8) #24, !noalias !7148 @@ -22106,41 +22100,39 @@ define hidden void @"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20 .lr.ph: ; preds = %1 %7 = getelementptr inbounds nuw i8, ptr %.pre8, i64 8 - br label %14 + br label %13 ._crit_edge: ; preds = %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit", %1 - %8 = icmp ne i64 %.pre, 0 - tail call void @llvm.assume(i1 %8) - %9 = getelementptr inbounds nuw i8, ptr %.pre8, i64 8 - %10 = load i64, ptr %9, align 8, !noundef !4 - %11 = icmp eq i64 %10, 0 - br i1 %11, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h4e8b4a5aaa0d8598E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i" + %8 = getelementptr inbounds nuw i8, ptr %.pre8, i64 8 + %9 = load i64, ptr %8, align 8, !noundef !4 + %10 = icmp eq i64 %9, 0 + br i1 %10, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h4e8b4a5aaa0d8598E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i": ; preds = %._crit_edge - %12 = load ptr, ptr %.pre8, align 8, !nonnull !4, !noundef !4 - %13 = mul nsw i64 %10, 136 - tail call void @__rust_dealloc(ptr noundef nonnull %12, i64 noundef %13, i64 noundef 8) #24, !noalias !8654 + %11 = load ptr, ptr %.pre8, align 8, !nonnull !4, !noundef !4 + %12 = mul nsw i64 %9, 136 + tail call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %12, i64 noundef 8) #24, !noalias !8654 br label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h4e8b4a5aaa0d8598E.exit" -14: ; preds = %.lr.ph, %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit" - %.07 = phi i64 [ %5, %.lr.ph ], [ %22, %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit" ] - %15 = load ptr, ptr %.pre8, align 8, !noundef !4 - %16 = load i64, ptr %7, align 8, !noundef !4 - %17 = add i64 %16, -1 - %18 = and i64 %17, %.07 - %19 = getelementptr inbounds { i64, [16 x i64] }, ptr %15, i64 %18 - %20 = load i64, ptr %19, align 8, !range !424, !alias.scope !8659, !noundef !4 - %.not.i = icmp eq i64 %20, 2 - br i1 %.not.i, label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit", label %21 - -21: ; preds = %14 - tail call void @"_ZN4core3ptr39drop_in_place$LT$ignore..walk..Work$GT$17h7bf73ef0638c5567E"(ptr noalias noundef nonnull align 8 dereferenceable(136) %19) +13: ; preds = %.lr.ph, %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit" + %.07 = phi i64 [ %5, %.lr.ph ], [ %21, %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit" ] + %14 = load ptr, ptr %.pre8, align 8, !noundef !4 + %15 = load i64, ptr %7, align 8, !noundef !4 + %16 = add i64 %15, -1 + %17 = and i64 %16, %.07 + %18 = getelementptr inbounds { i64, [16 x i64] }, ptr %14, i64 %17 + %19 = load i64, ptr %18, align 8, !range !424, !alias.scope !8659, !noundef !4 + %.not.i = icmp eq i64 %19, 2 + br i1 %.not.i, label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit", label %20 + +20: ; preds = %13 + tail call void @"_ZN4core3ptr39drop_in_place$LT$ignore..walk..Work$GT$17h7bf73ef0638c5567E"(ptr noalias noundef nonnull align 8 dereferenceable(136) %18) br label %"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit" -"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit": ; preds = %14, %21 - %22 = add i64 %.07, 1 - %.not = icmp eq i64 %22, %3 - br i1 %.not, label %._crit_edge, label %14 +"_ZN4core3ptr42drop_in_place$LT$ignore..walk..Message$GT$17hd2e024aa87cb631fE.llvm.12875954175451687458.exit": ; preds = %13, %20 + %21 = add i64 %.07, 1 + %.not = icmp eq i64 %21, %3 + br i1 %.not, label %._crit_edge, label %13 "_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h4e8b4a5aaa0d8598E.exit": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i", %._crit_edge tail call void @__rust_dealloc(ptr noundef nonnull %.pre8, i64 noundef 16, i64 noundef 8) #24 diff --git a/bench/ripgrep-rs/optimized/c8unzkdiauw9hyd.ll b/bench/ripgrep-rs/optimized/c8unzkdiauw9hyd.ll index 30a06df01bf..0aa1760bb32 100644 --- a/bench/ripgrep-rs/optimized/c8unzkdiauw9hyd.ll +++ b/bench/ripgrep-rs/optimized/c8unzkdiauw9hyd.ll @@ -413,7 +413,7 @@ define hidden void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$ 25: ; preds = %.loopexit.split-lp.i, %.loopexit.i %lpad.phi.i = phi { ptr, i32 } [ %lpad.loopexit.i, %.loopexit.i ], [ %lpad.loopexit.split-lp.i, %.loopexit.split-lp.i ] - invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6) #33 + invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6) #32 to label %37 unwind label %28, !noalias !92 26: ; preds = %22 @@ -421,7 +421,7 @@ define hidden void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$ br i1 %24, label %27, label %30 27: ; preds = %26 - invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.d3e4a78b3ed32467f97afa1d1e6744a5.6, i64 noundef 55, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.41, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.8) #34 + invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.d3e4a78b3ed32467f97afa1d1e6744a5.6, i64 noundef 55, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.41, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.8) #33 to label %.noexc.i.i.i.i unwind label %.loopexit.split-lp.i, !noalias !92 .noexc.i.i.i.i: ; preds = %27 @@ -430,7 +430,7 @@ define hidden void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$ 28: ; preds = %25 %29 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !92 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !92 unreachable 30: ; preds = %26 @@ -863,12 +863,10 @@ define hidden void @"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$5alloc28_$u7b$$u ret void } -; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(inaccessiblemem: write) uwtable +; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define hidden noundef nonnull align 8 ptr @"_ZN15crossbeam_epoch6atomic14Owned$LT$T$GT$8into_box17he8d209bd6f89e311E"(i64 noundef %0) unnamed_addr #6 { %2 = and i64 %0, -8 %3 = inttoptr i64 %2 to ptr - %4 = icmp ne i64 %2, 0 - tail call void @llvm.assume(i1 %4) ret ptr %3 } @@ -902,7 +900,7 @@ define hidden noundef i64 @"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$4load17h store ptr @anon.d3e4a78b3ed32467f97afa1d1e6744a5.11.llvm.9621075337328414724, ptr %12, align 8 %13 = getelementptr inbounds nuw i8, ptr %5, i64 24 store i64 0, ptr %13, align 8 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.27.llvm.9621075337328414724) #34 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.27.llvm.9621075337328414724) #33 unreachable 14: ; preds = %3 @@ -920,7 +918,7 @@ define hidden noundef i64 @"_ZN15crossbeam_epoch6atomic15Atomic$LT$T$GT$4load17h store ptr @anon.d3e4a78b3ed32467f97afa1d1e6744a5.11.llvm.9621075337328414724, ptr %19, align 8 %20 = getelementptr inbounds nuw i8, ptr %4, i64 24 store i64 0, ptr %20, align 8 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.30.llvm.9621075337328414724) #34 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.30.llvm.9621075337328414724) #33 unreachable 21: ; preds = %3 @@ -1326,7 +1324,7 @@ define hidden void @_ZN4core3fmt9Arguments9new_const17h46d05cae8456bbbbE.llvm.96 store ptr @anon.d3e4a78b3ed32467f97afa1d1e6744a5.11.llvm.9621075337328414724, ptr %14, align 8, !alias.scope !286, !noalias !289 %15 = getelementptr inbounds nuw i8, ptr %4, i64 24 store i64 0, ptr %15, align 8, !alias.scope !286, !noalias !289 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.14.llvm.9621075337328414724) #34 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.14.llvm.9621075337328414724) #33 unreachable } @@ -1371,7 +1369,7 @@ define internal fastcc void @"_ZN4core3ptr120drop_in_place$LT$alloc..vec..in_pla 16: ; preds = %12 %17 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - tail call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + tail call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable "_ZN89_$LT$alloc..vec..in_place_drop..InPlaceDrop$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h18e414cce7f6ad2aE.exit": ; preds = %"_ZN4core3ptr74drop_in_place$LT$std..thread..scoped..ScopedJoinHandle$LT$$LP$$RP$$GT$$GT$17h3d04870ef3130f8cE.exit.i.i" @@ -1463,7 +1461,7 @@ define internal fastcc void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17 common.resume.sink.split: ; preds = %16, %31, %78 %.sink = phi ptr [ %77, %78 ], [ %30, %31 ], [ %15, %16 ] %common.resume.op.ph = phi { ptr, i32 } [ %79, %78 ], [ %32, %31 ], [ %17, %16 ] - tail call void @__rust_dealloc(ptr noundef nonnull %.sink, i64 noundef 56, i64 noundef 8) #36, !noalias !4 + tail call void @__rust_dealloc(ptr noundef nonnull %.sink, i64 noundef 56, i64 noundef 8) #35, !noalias !4 br label %common.resume common.resume: ; preds = %common.resume.sink.split, %72, %82, %95 @@ -1476,7 +1474,7 @@ common.resume: ; preds = %common.resume.sink. br label %common.resume.sink.split "_ZN4core3ptr59drop_in_place$LT$alloc..boxed..Box$LT$ignore..Error$GT$$GT$17h4f1225ff0926fd7bE.exit": ; preds = %13 - tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef 56, i64 noundef 8) #36, !noalias !299 + tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef 56, i64 noundef 8) #35, !noalias !299 br label %10 18: ; preds = %1 @@ -1499,7 +1497,7 @@ common.resume: ; preds = %common.resume.sink. 26: ; preds = %22 %27 = load ptr, ptr %8, align 8, !noalias !302, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %27, i64 noundef %24, i64 noundef %21) #36 + tail call void @__rust_dealloc(ptr noundef nonnull %27, i64 noundef %24, i64 noundef %21) #35 br label %75 28: ; preds = %1 @@ -1515,7 +1513,7 @@ common.resume: ; preds = %common.resume.sink. br label %common.resume.sink.split "_ZN4core3ptr59drop_in_place$LT$alloc..boxed..Box$LT$ignore..Error$GT$$GT$17h4f1225ff0926fd7bE.exit4": ; preds = %28 - tail call void @__rust_dealloc(ptr noundef nonnull %30, i64 noundef 56, i64 noundef 8) #36, !noalias !316 + tail call void @__rust_dealloc(ptr noundef nonnull %30, i64 noundef 56, i64 noundef 8) #35, !noalias !316 br label %10 33: ; preds = %1 @@ -1538,7 +1536,7 @@ common.resume: ; preds = %common.resume.sink. 41: ; preds = %37 %42 = load ptr, ptr %7, align 8, !noalias !319, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %42, i64 noundef %39, i64 noundef %36) #36 + tail call void @__rust_dealloc(ptr noundef nonnull %42, i64 noundef %39, i64 noundef %36) #35 br label %85 43: ; preds = %1 @@ -1588,7 +1586,7 @@ common.resume: ; preds = %common.resume.sink. 60: ; preds = %56 %61 = load ptr, ptr %5, align 8, !noalias !349, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %61, i64 noundef %58, i64 noundef %55) #36 + tail call void @__rust_dealloc(ptr noundef nonnull %61, i64 noundef %58, i64 noundef %55) #35 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E.exit.i" "_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E.exit.i": ; preds = %60, %56, %.noexc8 @@ -1612,7 +1610,7 @@ common.resume: ; preds = %common.resume.sink. 70: ; preds = %66 %71 = load ptr, ptr %4, align 8, !noalias !358, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %71, i64 noundef %68, i64 noundef %65) #36 + tail call void @__rust_dealloc(ptr noundef nonnull %71, i64 noundef %68, i64 noundef %65) #35 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E.exit" "_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E.exit": ; preds = %62, %66, %70 @@ -1623,7 +1621,7 @@ common.resume: ; preds = %common.resume.sink. %73 = landingpad { ptr, i32 } cleanup %74 = getelementptr inbounds nuw i8, ptr %0, i64 8 - invoke fastcc void @"_ZN4core3ptr59drop_in_place$LT$alloc..boxed..Box$LT$ignore..Error$GT$$GT$17h4f1225ff0926fd7bE"(ptr noalias noundef align 8 dereferenceable(8) %74) #33 + invoke fastcc void @"_ZN4core3ptr59drop_in_place$LT$alloc..boxed..Box$LT$ignore..Error$GT$$GT$17h4f1225ff0926fd7bE"(ptr noalias noundef align 8 dereferenceable(8) %74) #32 to label %common.resume unwind label %80 75: ; preds = %26, %22, %.noexc @@ -1640,20 +1638,20 @@ common.resume: ; preds = %common.resume.sink. br label %common.resume.sink.split "_ZN4core3ptr59drop_in_place$LT$alloc..boxed..Box$LT$ignore..Error$GT$$GT$17h4f1225ff0926fd7bE.exit11": ; preds = %75 - tail call void @__rust_dealloc(ptr noundef nonnull %77, i64 noundef 56, i64 noundef 8) #36, !noalias !367 + tail call void @__rust_dealloc(ptr noundef nonnull %77, i64 noundef 56, i64 noundef 8) #35, !noalias !367 br label %10 80: ; preds = %95, %82, %72 %81 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - tail call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + tail call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable 82: ; preds = %33 %83 = landingpad { ptr, i32 } cleanup %84 = getelementptr inbounds nuw i8, ptr %0, i64 32 - invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %84) #33 + invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %84) #32 to label %common.resume unwind label %80 85: ; preds = %41, %37, %.noexc6 @@ -1674,7 +1672,7 @@ common.resume: ; preds = %common.resume.sink. 93: ; preds = %89 %94 = load ptr, ptr %3, align 8, !noalias !370, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %94, i64 noundef %91, i64 noundef %88) #36 + tail call void @__rust_dealloc(ptr noundef nonnull %94, i64 noundef %91, i64 noundef %88) #35 br label %"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E.exit13" "_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E.exit13": ; preds = %85, %89, %93 @@ -1685,7 +1683,7 @@ common.resume: ; preds = %common.resume.sink. %96 = landingpad { ptr, i32 } cleanup %97 = getelementptr inbounds nuw i8, ptr %0, i64 32 - invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %97) #33 + invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %97) #32 to label %common.resume unwind label %80 "_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hce1383ed14e73d63E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E.exit.i", %49 @@ -1705,7 +1703,7 @@ common.resume: ; preds = %common.resume.sink. 105: ; preds = %101 %106 = load ptr, ptr %2, align 8, !noalias !383, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %106, i64 noundef %103, i64 noundef %100) #36 + tail call void @__rust_dealloc(ptr noundef nonnull %106, i64 noundef %103, i64 noundef %100) #35 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E.exit15" "_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E.exit15": ; preds = %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$alloc..string..String$GT$$GT$17hce1383ed14e73d63E.exit", %101, %105 @@ -1767,13 +1765,13 @@ define internal fastcc void @"_ZN4core3ptr59drop_in_place$LT$alloc..boxed..Box$L to label %3 unwind label %4 3: ; preds = %1 - tail call void @__rust_dealloc(ptr noundef nonnull %2, i64 noundef 56, i64 noundef 8) #36 + tail call void @__rust_dealloc(ptr noundef nonnull %2, i64 noundef 56, i64 noundef 8) #35 ret void 4: ; preds = %1 %5 = landingpad { ptr, i32 } cleanup - tail call void @__rust_dealloc(ptr noundef nonnull %2, i64 noundef 56, i64 noundef 8) #36 + tail call void @__rust_dealloc(ptr noundef nonnull %2, i64 noundef 56, i64 noundef 8) #35 resume { ptr, i32 } %5 } @@ -1813,7 +1811,7 @@ define internal void @"_ZN4core3ptr67drop_in_place$LT$core..option..Option$LT$st 13: ; preds = %9 %14 = load ptr, ptr %2, align 8, !noalias !405, !nonnull !4, !noundef !4 - tail call void @__rust_dealloc(ptr noundef nonnull %14, i64 noundef %11, i64 noundef %8) #36 + tail call void @__rust_dealloc(ptr noundef nonnull %14, i64 noundef %11, i64 noundef %8) #35 br label %"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E.exit" "_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E.exit": ; preds = %6, %9, %13 @@ -2120,7 +2118,7 @@ define hidden void @_ZN4core4iter6traits8iterator8Iterator4fold17h8cf95be0832454 %eh.lpad-body = phi { ptr, i32 } [ %42, %41 ], [ %77, %76 ], [ %88, %87 ] %.val = load ptr, ptr %1, align 8, !alias.scope !551, !nonnull !4, !align !5, !noundef !4 store i64 %.val440, ptr %.val, align 8, !noalias !556 - invoke void @"_ZN4core3ptr79drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ignore..walk..Stack$GT$$GT$17he4844d325830916fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %0) #33 + invoke void @"_ZN4core3ptr79drop_in_place$LT$alloc..vec..into_iter..IntoIter$LT$ignore..walk..Stack$GT$$GT$17he4844d325830916fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %0) #32 to label %common.resume unwind label %105 "_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hbd2fa43c1966c20eE.exit": ; preds = %2, %92 @@ -2211,13 +2209,13 @@ define hidden void @_ZN4core4iter6traits8iterator8Iterator4fold17h8cf95be0832454 74: ; preds = %76 %75 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !574 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !574 unreachable 76: ; preds = %45 %77 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr40drop_in_place$LT$ignore..walk..Stack$GT$17h134fe4bf036a3eb1E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %8) #33 + invoke void @"_ZN4core3ptr40drop_in_place$LT$ignore..walk..Stack$GT$17h134fe4bf036a3eb1E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %8) #32 to label %.body unwind label %74, !noalias !574 "_ZN6ignore4walk12WalkParallel5visit28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17ha1fa0e0477eb5a7dE.exit.i": ; preds = %72, %"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17ha99b066db8a1a3efE.exit.i.i" @@ -2266,13 +2264,13 @@ define hidden void @_ZN4core4iter6traits8iterator8Iterator4fold17h8cf95be0832454 %85 = getelementptr inbounds nuw i8, ptr %6, i64 8 %86 = load ptr, ptr %85, align 8, !alias.scope !589, !noalias !592, !nonnull !4, !noundef !4 store ptr %86, ptr %4, align 8, !noalias !596 - invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.108a9ece013d176004cde08aef0e6670.16.llvm.18333092558533072501, i64 noundef 22, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.108a9ece013d176004cde08aef0e6670.51.llvm.18333092558533072501, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.108a9ece013d176004cde08aef0e6670.18.llvm.18333092558533072501) #34 + invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.108a9ece013d176004cde08aef0e6670.16.llvm.18333092558533072501, i64 noundef 22, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.108a9ece013d176004cde08aef0e6670.51.llvm.18333092558533072501, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.108a9ece013d176004cde08aef0e6670.18.llvm.18333092558533072501) #33 to label %89 unwind label %87, !noalias !597 87: ; preds = %84 %88 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h6c416b0226bfbab1E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %4) #33 + invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h6c416b0226bfbab1E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %4) #32 to label %.body unwind label %90, !noalias !597 89: ; preds = %84 @@ -2281,7 +2279,7 @@ define hidden void @_ZN4core4iter6traits8iterator8Iterator4fold17h8cf95be0832454 90: ; preds = %87 %91 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !597 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !597 unreachable 92: ; preds = %.noexc @@ -2327,7 +2325,7 @@ define hidden void @_ZN4core4iter6traits8iterator8Iterator4fold17h8cf95be0832454 103: ; preds = %100 %104 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable common.resume: ; preds = %.body, %100 @@ -2342,7 +2340,7 @@ common.resume: ; preds = %.body, %100 105: ; preds = %.body %106 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable } @@ -2507,13 +2505,13 @@ define hidden { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h07 69: ; preds = %71 %70 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !647 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !647 unreachable 71: ; preds = %27 %72 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr40drop_in_place$LT$ignore..walk..Stack$GT$17h134fe4bf036a3eb1E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %9) #33 + invoke void @"_ZN4core3ptr40drop_in_place$LT$ignore..walk..Stack$GT$17h134fe4bf036a3eb1E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %9) #32 to label %.body.i unwind label %69, !noalias !647 73: ; preds = %67, %"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17ha99b066db8a1a3efE.exit.i.i" @@ -2563,13 +2561,13 @@ define hidden { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h07 %81 = getelementptr inbounds nuw i8, ptr %7, i64 8 %82 = load ptr, ptr %81, align 8, !alias.scope !661, !noalias !664, !nonnull !4, !noundef !4 store ptr %82, ptr %5, align 8, !noalias !668 - invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.108a9ece013d176004cde08aef0e6670.16.llvm.18333092558533072501, i64 noundef 22, ptr noundef nonnull align 1 %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.108a9ece013d176004cde08aef0e6670.51.llvm.18333092558533072501, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.108a9ece013d176004cde08aef0e6670.18.llvm.18333092558533072501) #34 + invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.108a9ece013d176004cde08aef0e6670.16.llvm.18333092558533072501, i64 noundef 22, ptr noundef nonnull align 1 %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.108a9ece013d176004cde08aef0e6670.51.llvm.18333092558533072501, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.108a9ece013d176004cde08aef0e6670.18.llvm.18333092558533072501) #33 to label %85 unwind label %83, !noalias !669 83: ; preds = %80 %84 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h6c416b0226bfbab1E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %5) #33 + invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h6c416b0226bfbab1E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %5) #32 to label %.body.i.i unwind label %86, !noalias !669 85: ; preds = %80 @@ -2578,7 +2576,7 @@ define hidden { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h07 86: ; preds = %83 %87 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !669 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !669 unreachable 88: ; preds = %73 @@ -2588,23 +2586,23 @@ define hidden { ptr, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h07 .body.i.i: ; preds = %88, %83 %eh.lpad-body.i.i = phi { ptr, i32 } [ %89, %88 ], [ %84, %83 ] - invoke fastcc void @"_ZN4core3ptr120drop_in_place$LT$alloc..vec..in_place_drop..InPlaceDrop$LT$std..thread..scoped..ScopedJoinHandle$LT$$LP$$RP$$GT$$GT$$GT$17h8d6bf9609722ebccE"(ptr %1, ptr %.sroa.7.058) #33 + invoke fastcc void @"_ZN4core3ptr120drop_in_place$LT$alloc..vec..in_place_drop..InPlaceDrop$LT$std..thread..scoped..ScopedJoinHandle$LT$$LP$$RP$$GT$$GT$$GT$17h8d6bf9609722ebccE"(ptr %1, ptr %.sroa.7.058) #32 to label %.body unwind label %90, !noalias !654 90: ; preds = %.body.i.i %91 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !654 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !654 unreachable .body.i: ; preds = %71 - invoke fastcc void @"_ZN4core3ptr120drop_in_place$LT$alloc..vec..in_place_drop..InPlaceDrop$LT$std..thread..scoped..ScopedJoinHandle$LT$$LP$$RP$$GT$$GT$$GT$17h8d6bf9609722ebccE"(ptr %1, ptr %.sroa.7.058) #33 + invoke fastcc void @"_ZN4core3ptr120drop_in_place$LT$alloc..vec..in_place_drop..InPlaceDrop$LT$std..thread..scoped..ScopedJoinHandle$LT$$LP$$RP$$GT$$GT$$GT$17h8d6bf9609722ebccE"(ptr %1, ptr %.sroa.7.058) #32 to label %.body unwind label %92, !noalias !637 92: ; preds = %.body.i %93 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !637 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !637 unreachable 94: ; preds = %.noexc.i.i @@ -2746,7 +2744,7 @@ define hidden noundef i64 @_ZN4core4sync6atomic11atomic_load17h856f236b6151f1f4E store ptr @anon.d3e4a78b3ed32467f97afa1d1e6744a5.11.llvm.9621075337328414724, ptr %11, align 8 %12 = getelementptr inbounds nuw i8, ptr %4, i64 24 store i64 0, ptr %12, align 8 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.27.llvm.9621075337328414724) #34 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.27.llvm.9621075337328414724) #33 unreachable 13: ; preds = %2 @@ -2764,7 +2762,7 @@ define hidden noundef i64 @_ZN4core4sync6atomic11atomic_load17h856f236b6151f1f4E store ptr @anon.d3e4a78b3ed32467f97afa1d1e6744a5.11.llvm.9621075337328414724, ptr %18, align 8 %19 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 0, ptr %19, align 8 - call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.30.llvm.9621075337328414724) #34 + call void @_ZN4core9panicking9panic_fmt17hc69c4d258fe11477E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.30.llvm.9621075337328414724) #33 unreachable 20: ; preds = %2 @@ -2782,7 +2780,7 @@ define hidden void @_ZN4core9panicking13assert_failed17h861798dcb10103a8E(i8 nou %7 = alloca ptr, align 8 store ptr %1, ptr %7, align 8 store ptr %2, ptr %6, align 8 - call void @_ZN4core9panicking19assert_failed_inner17hf6c64d802c7353bcE(i8 noundef %0, ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.42, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.42, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %4) #34 + call void @_ZN4core9panicking19assert_failed_inner17hf6c64d802c7353bcE(i8 noundef %0, ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.42, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.42, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %4) #33 unreachable } @@ -2792,7 +2790,7 @@ define hidden void @_ZN4core9panicking13assert_failed17hd3181082795db958E(i8 nou %7 = alloca ptr, align 8 store ptr %1, ptr %7, align 8 store ptr %2, ptr %6, align 8 - call void @_ZN4core9panicking19assert_failed_inner17hf6c64d802c7353bcE(i8 noundef %0, ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.43, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.43, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %4) #34 + call void @_ZN4core9panicking19assert_failed_inner17hf6c64d802c7353bcE(i8 noundef %0, ptr noundef nonnull align 1 %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.43, ptr noundef nonnull align 1 %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.43, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %4) #33 unreachable } @@ -2857,7 +2855,7 @@ define hidden { ptr, i64 } @"_ZN55_$LT$$RF$T$u20$as$u20$core..convert..AsRef$LT$ } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable -define hidden noundef align 8 dereferenceable(16) ptr @"_ZN56_$LT$T$u20$as$u20$crossbeam_epoch..atomic..Pointable$GT$5deref17hb598447021b38d4bE.llvm.9621075337328414724"(i64 noundef %0) unnamed_addr #18 { +define hidden noundef align 8 dereferenceable(16) ptr @"_ZN56_$LT$T$u20$as$u20$crossbeam_epoch..atomic..Pointable$GT$5deref17hb598447021b38d4bE.llvm.9621075337328414724"(i64 noundef %0) unnamed_addr #6 { %2 = inttoptr i64 %0 to ptr ret ptr %2 } @@ -3031,7 +3029,7 @@ define internal noundef zeroext i1 @"_ZN58_$LT$alloc..string..String$u20$as$u20$ } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(readwrite, inaccessiblemem: none) uwtable -define hidden void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$14extend_trusted28_$u7b$$u7b$closure$u7d$$u7d$17hcff8f77056d44e12E.llvm.9621075337328414724"(ptr noalias nocapture noundef align 8 dereferenceable(24) %0, ptr noalias nocapture noundef readonly align 8 dereferenceable(136) %1) unnamed_addr #19 { +define hidden void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$14extend_trusted28_$u7b$$u7b$closure$u7d$$u7d$17hcff8f77056d44e12E.llvm.9621075337328414724"(ptr noalias nocapture noundef align 8 dereferenceable(24) %0, ptr noalias nocapture noundef readonly align 8 dereferenceable(136) %1) unnamed_addr #18 { %3 = getelementptr inbounds nuw i8, ptr %0, i64 16 %4 = load ptr, ptr %3, align 8, !noundef !4 %5 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -3303,7 +3301,7 @@ define hidden { ptr, i64 } @"_ZN82_$LT$std..path..PathBuf$u20$as$u20$core..conve } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable -define hidden void @"_ZN83_$LT$alloc..vec..set_len_on_drop..SetLenOnDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h9e5deef5da130b14E.llvm.9621075337328414724"(ptr noalias nocapture noundef readonly align 8 dereferenceable(16) %0) unnamed_addr #20 { +define hidden void @"_ZN83_$LT$alloc..vec..set_len_on_drop..SetLenOnDrop$u20$as$u20$core..ops..drop..Drop$GT$4drop17h9e5deef5da130b14E.llvm.9621075337328414724"(ptr noalias nocapture noundef readonly align 8 dereferenceable(16) %0) unnamed_addr #19 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 8 %3 = load i64, ptr %2, align 8, !noundef !4 %4 = load ptr, ptr %0, align 8, !nonnull !4, !align !5, !noundef !4 @@ -3464,7 +3462,7 @@ define hidden void @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core. .body: ; preds = %112, %121, %149, %69 %eh.lpad-body = phi { ptr, i32 } [ %70, %69 ], [ %113, %112 ], [ %lpad.thr_comm.split-lp.i.i, %149 ], [ %122, %121 ] - invoke fastcc void @"_ZN4core3ptr769drop_in_place$LT$core..iter..adapters..map..map_fold$LT$$RF$std..path..PathBuf$C$$LP$std..path..PathBuf$C$core..option..Option$LT$ignore..walk..WalkEventIter$GT$$RP$$C$$LP$$RP$$C$ignore..walk..WalkBuilder..build..$u7b$$u7b$closure$u7d$$u7d$$C$core..iter..traits..iterator..Iterator..for_each..call$LT$$LP$std..path..PathBuf$C$core..option..Option$LT$ignore..walk..WalkEventIter$GT$$RP$$C$alloc..vec..Vec$LT$$LP$std..path..PathBuf$C$core..option..Option$LT$ignore..walk..WalkEventIter$GT$$RP$$GT$..extend_trusted$LT$core..iter..adapters..map..Map$LT$core..slice..iter..Iter$LT$std..path..PathBuf$GT$$C$ignore..walk..WalkBuilder..build..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17hd9ac85e13f75bba2E"(ptr noalias noundef align 8 dereferenceable(80) %2) #33 + invoke fastcc void @"_ZN4core3ptr769drop_in_place$LT$core..iter..adapters..map..map_fold$LT$$RF$std..path..PathBuf$C$$LP$std..path..PathBuf$C$core..option..Option$LT$ignore..walk..WalkEventIter$GT$$RP$$C$$LP$$RP$$C$ignore..walk..WalkBuilder..build..$u7b$$u7b$closure$u7d$$u7d$$C$core..iter..traits..iterator..Iterator..for_each..call$LT$$LP$std..path..PathBuf$C$core..option..Option$LT$ignore..walk..WalkEventIter$GT$$RP$$C$alloc..vec..Vec$LT$$LP$std..path..PathBuf$C$core..option..Option$LT$ignore..walk..WalkEventIter$GT$$RP$$GT$..extend_trusted$LT$core..iter..adapters..map..Map$LT$core..slice..iter..Iter$LT$std..path..PathBuf$GT$$C$ignore..walk..WalkBuilder..build..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$17hd9ac85e13f75bba2E"(ptr noalias noundef align 8 dereferenceable(80) %2) #32 to label %175 unwind label %173 71: ; preds = %150, %18 @@ -3629,13 +3627,13 @@ define hidden void @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core. 112: ; preds = %111 %113 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr44drop_in_place$LT$walkdir..WalkDirOptions$GT$17h7a7e7347935f63d9E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %5) #33 + invoke void @"_ZN4core3ptr44drop_in_place$LT$walkdir..WalkDirOptions$GT$17h7a7e7347935f63d9E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %5) #32 to label %.body unwind label %114, !noalias !821 114: ; preds = %112 %115 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !821 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !821 unreachable _ZN7walkdir7WalkDir3new17hd7db67eb644640c8E.exit.i.i: ; preds = %111 @@ -3660,7 +3658,7 @@ _ZN7walkdir7WalkDir3new17hd7db67eb644640c8E.exit.i.i: ; preds = %111 121: ; preds = %119 %122 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr37drop_in_place$LT$walkdir..WalkDir$GT$17h9d2fc9b02fa153a1E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %14) #33 + invoke void @"_ZN4core3ptr37drop_in_place$LT$walkdir..WalkDir$GT$17h9d2fc9b02fa153a1E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %14) #32 to label %.body unwind label %130, !noalias !780 123: ; preds = %119 @@ -3683,7 +3681,7 @@ _ZN7walkdir7WalkDir3new17hd7db67eb644640c8E.exit.i.i: ; preds = %111 130: ; preds = %149, %121 %131 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !780 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !780 unreachable 132: ; preds = %125 @@ -3764,7 +3762,7 @@ _ZN7walkdir7WalkDir3new17hd7db67eb644640c8E.exit.i.i: ; preds = %111 149: ; preds = %143 %lpad.thr_comm.split-lp.i.i = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr37drop_in_place$LT$walkdir..WalkDir$GT$17h9d2fc9b02fa153a1E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %15) #33 + invoke void @"_ZN4core3ptr37drop_in_place$LT$walkdir..WalkDir$GT$17h9d2fc9b02fa153a1E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %15) #32 to label %.body unwind label %130, !noalias !780 150: ; preds = %148, %118 @@ -3861,7 +3859,7 @@ _ZN7walkdir7WalkDir3new17hd7db67eb644640c8E.exit.i.i: ; preds = %111 173: ; preds = %.body %174 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable 175: ; preds = %.body @@ -3938,7 +3936,7 @@ define hidden void @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core. 28: ; preds = %.loopexit.split-lp, %.loopexit %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] - invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6) #33 + invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %6) #32 to label %40 unwind label %31, !noalias !902 29: ; preds = %25 @@ -3946,7 +3944,7 @@ define hidden void @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core. br i1 %27, label %30, label %33 30: ; preds = %29 - invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.d3e4a78b3ed32467f97afa1d1e6744a5.6, i64 noundef 55, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.41, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.8) #34 + invoke void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.d3e4a78b3ed32467f97afa1d1e6744a5.6, i64 noundef 55, ptr noundef nonnull align 1 %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.41, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.8) #33 to label %.noexc.i.i.i unwind label %.loopexit.split-lp, !noalias !902 .noexc.i.i.i: ; preds = %30 @@ -3955,7 +3953,7 @@ define hidden void @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core. 31: ; preds = %28 %32 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !902 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !902 unreachable 33: ; preds = %29 @@ -4160,7 +4158,7 @@ common.resume: ; preds = %.body37, %156, %.bo br i1 %21, label %22, label %23 22: ; preds = %18 - tail call void @_ZN4core6option13unwrap_failed17hac39b9b7507453f8E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.121) #34 + tail call void @_ZN4core6option13unwrap_failed17hac39b9b7507453f8E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.121) #33 unreachable 23: ; preds = %18 @@ -4179,7 +4177,7 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i 29: ; preds = %_ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i.i call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %5), !noalias !977 - call void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.d3e4a78b3ed32467f97afa1d1e6744a5.1, i64 noundef 70, ptr noundef nonnull align 1 %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.3) #34, !noalias !977 + call void @_ZN4core6result13unwrap_failed17hff299ec748d62aabE(ptr noalias noundef nonnull readonly align 1 @anon.d3e4a78b3ed32467f97afa1d1e6744a5.1, i64 noundef 70, ptr noundef nonnull align 1 %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.3) #33, !noalias !977 unreachable "_ZN4core6result19Result$LT$T$C$E$GT$6expect17h72c58dd31d047b88E.exit.i": ; preds = %_ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i.i, %23 @@ -4217,7 +4215,7 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i 38: ; preds = %52, %39 %.pn = phi { ptr, i32 } [ %40, %39 ], [ %53, %52 ] - invoke void @"_ZN4core3ptr150drop_in_place$LT$regex_automata..util..pool..PoolGuard$LT$alloc..vec..Vec$LT$usize$GT$$C$fn$LP$$RP$$u20$.$GT$$u20$alloc..vec..Vec$LT$usize$GT$$GT$$GT$17hacaf8e244605dfccE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14) #33 + invoke void @"_ZN4core3ptr150drop_in_place$LT$regex_automata..util..pool..PoolGuard$LT$alloc..vec..Vec$LT$usize$GT$$C$fn$LP$$RP$$u20$.$GT$$u20$alloc..vec..Vec$LT$usize$GT$$GT$$GT$17hacaf8e244605dfccE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14) #32 to label %common.resume unwind label %162 39: ; preds = %.split55, %.split.us, %"_ZN14regex_automata4util4pool5inner17Pool$LT$T$C$F$GT$3get17h53e9c1cdb46262caE.exit" @@ -4248,7 +4246,7 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i 52: ; preds = %.split52.us, %"_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$9value_mut17ha2a3fac9a95d40f5E.exit" %53 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr39drop_in_place$LT$globset..Candidate$GT$17h74ecebdc0240c104E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %13) #33 + invoke void @"_ZN4core3ptr39drop_in_place$LT$globset..Candidate$GT$17h74ecebdc0240c104E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %13) #32 to label %38 unwind label %162 "_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$9value_mut17ha2a3fac9a95d40f5E.exit": ; preds = %46, %43 @@ -4362,13 +4360,13 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i 97: ; preds = %96 %98 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf51bce13ad7f9502E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(8) %11) #33 + invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf51bce13ad7f9502E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(8) %11) #32 to label %.body unwind label %99, !noalias !998 99: ; preds = %97 %100 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !998 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !998 unreachable "_ZN4core3ptr74drop_in_place$LT$alloc..boxed..Box$LT$alloc..vec..Vec$LT$usize$GT$$GT$$GT$17h336347503b118f89E.llvm.12875954175451687458.exit.i": ; preds = %96 @@ -4382,7 +4380,7 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i 101: ; preds = %91 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9), !noalias !998 store ptr null, ptr %9, align 8, !noalias !998 - invoke void @_ZN4core9panicking13assert_failed17hd3181082795db958E(i8 noundef 1, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @_ZN14regex_automata4util4pool5inner17THREAD_ID_DROPPED17hfc39d7cf23ef2419E, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %10, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.9f5b8d279e0de62dbb78dc0cd48a30c9.8.llvm.12875954175451687458) #34 + invoke void @_ZN4core9panicking13assert_failed17hd3181082795db958E(i8 noundef 1, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @_ZN14regex_automata4util4pool5inner17THREAD_ID_DROPPED17hfc39d7cf23ef2419E, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %10, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.9f5b8d279e0de62dbb78dc0cd48a30c9.8.llvm.12875954175451687458) #33 to label %.noexc29 unwind label %106 .noexc29: ; preds = %101 @@ -4406,7 +4404,7 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i .body: ; preds = %97, %106 %eh.lpad-body = phi { ptr, i32 } [ %107, %106 ], [ %98, %97 ] - invoke void @"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$alloc..boxed..Box$LT$alloc..vec..Vec$LT$usize$GT$$GT$$C$usize$GT$$GT$17h8d72fcd5b4f361d6E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14) #33 + invoke void @"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$alloc..boxed..Box$LT$alloc..vec..Vec$LT$usize$GT$$GT$$C$usize$GT$$GT$17h8d72fcd5b4f361d6E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14) #32 to label %common.resume unwind label %116 "_ZN99_$LT$regex_automata..util..pool..inner..PoolGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h0e4c550350ca24deE.llvm.12875954175451687458.exit": ; preds = %.noexc30, %.noexc28, %.noexc @@ -4424,19 +4422,19 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i 112: ; preds = %110 %113 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf51bce13ad7f9502E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(8) %.sroa.5.0..sroa_idx.i.i) #33 + invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf51bce13ad7f9502E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(8) %.sroa.5.0..sroa_idx.i.i) #32 to label %common.resume unwind label %114 114: ; preds = %112 %115 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable 116: ; preds = %.body %117 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable .sink.split.sink.split: ; preds = %110, %154 @@ -4461,7 +4459,7 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i .split52.us: ; preds = %81, %75 %.us-phi = phi i64 [ %77, %75 ], [ %83, %81 ] - invoke void @_ZN4core9panicking18panic_bounds_check17he5254f424ac3a4c4E(i64 noundef %.us-phi, i64 noundef %71, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.122) #34 + invoke void @_ZN4core9panicking18panic_bounds_check17he5254f424ac3a4c4E(i64 noundef %.us-phi, i64 noundef %71, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.d3e4a78b3ed32467f97afa1d1e6744a5.122) #33 to label %37 unwind label %52 121: ; preds = %81 @@ -4524,13 +4522,13 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i 141: ; preds = %140 %142 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf51bce13ad7f9502E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(8) %8) #33 + invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf51bce13ad7f9502E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(8) %8) #32 to label %.body37 unwind label %143, !noalias !1027 143: ; preds = %141 %144 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !1027 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !1027 unreachable "_ZN4core3ptr74drop_in_place$LT$alloc..boxed..Box$LT$alloc..vec..Vec$LT$usize$GT$$GT$$GT$17h336347503b118f89E.llvm.12875954175451687458.exit.i35": ; preds = %140 @@ -4544,7 +4542,7 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i 145: ; preds = %135 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6), !noalias !1027 store ptr null, ptr %6, align 8, !noalias !1027 - invoke void @_ZN4core9panicking13assert_failed17hd3181082795db958E(i8 noundef 1, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @_ZN14regex_automata4util4pool5inner17THREAD_ID_DROPPED17hfc39d7cf23ef2419E, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %7, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.9f5b8d279e0de62dbb78dc0cd48a30c9.8.llvm.12875954175451687458) #34 + invoke void @_ZN4core9panicking13assert_failed17hd3181082795db958E(i8 noundef 1, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) @_ZN14regex_automata4util4pool5inner17THREAD_ID_DROPPED17hfc39d7cf23ef2419E, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %7, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.9f5b8d279e0de62dbb78dc0cd48a30c9.8.llvm.12875954175451687458) #33 to label %.noexc40 unwind label %150 .noexc40: ; preds = %145 @@ -4568,7 +4566,7 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i .body37: ; preds = %141, %150 %eh.lpad-body38 = phi { ptr, i32 } [ %151, %150 ], [ %142, %141 ] - invoke void @"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$alloc..boxed..Box$LT$alloc..vec..Vec$LT$usize$GT$$GT$$C$usize$GT$$GT$17h8d72fcd5b4f361d6E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14) #33 + invoke void @"_ZN4core3ptr110drop_in_place$LT$core..result..Result$LT$alloc..boxed..Box$LT$alloc..vec..Vec$LT$usize$GT$$GT$$C$usize$GT$$GT$17h8d72fcd5b4f361d6E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(32) %14) #32 to label %common.resume unwind label %160 "_ZN99_$LT$regex_automata..util..pool..inner..PoolGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h0e4c550350ca24deE.llvm.12875954175451687458.exit42": ; preds = %.noexc41, %.noexc39, %.noexc36 @@ -4586,25 +4584,25 @@ _ZN14regex_automata4util4pool5inner9THREAD_ID7__getit17h0e3c264006ba64b3E.exit.i 156: ; preds = %154 %157 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf51bce13ad7f9502E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(8) %.sroa.5.0..sroa_idx.i.i32) #33 + invoke void @"_ZN72_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hf51bce13ad7f9502E.llvm.12875954175451687458"(ptr noalias noundef nonnull align 8 dereferenceable(8) %.sroa.5.0..sroa_idx.i.i32) #32 to label %common.resume unwind label %158 158: ; preds = %156 %159 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable 160: ; preds = %.body37 %161 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable 162: ; preds = %52, %38 %163 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable } @@ -4863,7 +4861,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3new17h3e69f9e7713aaff 12: ; preds = %14 %13 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr44drop_in_place$LT$globset..GlobSetBuilder$GT$17hf60a9b5e456b66acE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #33 + invoke void @"_ZN4core3ptr44drop_in_place$LT$globset..GlobSetBuilder$GT$17hf60a9b5e456b66acE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #32 to label %11 unwind label %20 14: ; preds = %8, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17he055145884a405c0E.exit.i", %3 @@ -4894,7 +4892,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3new17h3e69f9e7713aaff 20: ; preds = %12 %21 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable } @@ -4924,7 +4922,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3new17he9295db81bb3103 12: ; preds = %14 %13 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr44drop_in_place$LT$globset..GlobSetBuilder$GT$17hf60a9b5e456b66acE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #33 + invoke void @"_ZN4core3ptr44drop_in_place$LT$globset..GlobSetBuilder$GT$17hf60a9b5e456b66acE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #32 to label %11 unwind label %20 14: ; preds = %8, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17he055145884a405c0E.exit.i", %3 @@ -4955,7 +4953,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3new17he9295db81bb3103 20: ; preds = %12 %21 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable } @@ -4999,7 +4997,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3add17hc9bcd3292c1942a .body: ; preds = %.thread77, %153, %147, %37, %29 %.pn29 = phi { ptr, i32 } [ %148, %147 ], [ %30, %29 ], [ %38, %37 ], [ %154, %153 ], [ %.pn2780, %.thread77 ] - invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %2) #33 + invoke void @"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %2) #32 to label %184 unwind label %124 29: ; preds = %3, %42 @@ -5029,7 +5027,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3add17hc9bcd3292c1942a 40: ; preds = %37 %41 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !1128 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !1128 unreachable 42: ; preds = %31 @@ -5093,7 +5091,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3add17hc9bcd3292c1942a .body37: ; preds = %.loopexit, %.loopexit.split-lp, %.body47, %138, %77, %126, %133, %84 %.pn25 = phi { ptr, i32 } [ %127, %133 ], [ %127, %126 ], [ %85, %84 ], [ %78, %77 ], [ %139, %138 ], [ %eh.lpad-body48, %.body47 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] - invoke void @"_ZN4core3ptr153drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$std..io..Lines$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$$GT$$GT$17hbacd2299040eb549E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %20) #33 + invoke void @"_ZN4core3ptr153drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$std..io..Lines$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$$GT$$GT$17hbacd2299040eb549E"(ptr noalias noundef nonnull align 8 dereferenceable(56) %20) #32 to label %.thread77 unwind label %124 .loopexit: ; preds = %132, %52 @@ -5120,7 +5118,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3add17hc9bcd3292c1942a 60: ; preds = %56 %61 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable "_ZN4core3ptr103drop_in_place$LT$std..io..Lines$LT$std..io..buffered..bufreader..BufReader$LT$std..fs..File$GT$$GT$$GT$17h3d5ceb8cb7183459E.exit.i": ; preds = %55 @@ -5172,7 +5170,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3add17hc9bcd3292c1942a br i1 %75, label %76, label %81 76: ; preds = %.noexc.i - invoke void @_ZN5alloc5alloc18handle_alloc_error17h836e982fea7018bdE(i64 noundef 8, i64 noundef 56) #34 + invoke void @_ZN5alloc5alloc18handle_alloc_error17h836e982fea7018bdE(i64 noundef 8, i64 noundef 56) #33 to label %.noexc2.i unwind label %77, !noalias !1169 .noexc2.i: ; preds = %76 @@ -5181,13 +5179,13 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3add17hc9bcd3292c1942a 77: ; preds = %76, %70 %78 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E.llvm.8988879509220902597"(ptr noalias noundef nonnull align 8 dereferenceable(56) %17) #33 + invoke void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E.llvm.8988879509220902597"(ptr noalias noundef nonnull align 8 dereferenceable(56) %17) #32 to label %.body37 unwind label %79, !noalias !1172 79: ; preds = %77 %80 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !1172 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !1172 unreachable 81: ; preds = %.noexc.i @@ -5219,7 +5217,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3add17hc9bcd3292c1942a 84: ; preds = %86, %69 %85 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19) #33 + invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19) #32 to label %.body37 unwind label %124 86: ; preds = %69 @@ -5249,7 +5247,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3add17hc9bcd3292c1942a br i1 %94, label %95, label %99 95: ; preds = %.noexc.i41 - invoke void @_ZN5alloc5alloc18handle_alloc_error17h836e982fea7018bdE(i64 noundef 8, i64 noundef 56) #34 + invoke void @_ZN5alloc5alloc18handle_alloc_error17h836e982fea7018bdE(i64 noundef 8, i64 noundef 56) #33 to label %.noexc2.i46 unwind label %.loopexit.split-lp90, !noalias !1178 .noexc2.i46: ; preds = %95 @@ -5267,13 +5265,13 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3add17hc9bcd3292c1942a 96: ; preds = %.loopexit.split-lp90, %.loopexit89 %lpad.phi93 = phi { ptr, i32 } [ %lpad.loopexit91, %.loopexit89 ], [ %lpad.loopexit.split-lp92, %.loopexit.split-lp90 ] - invoke void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E.llvm.8988879509220902597"(ptr noalias noundef nonnull align 8 dereferenceable(56) %13) #33 + invoke void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E.llvm.8988879509220902597"(ptr noalias noundef nonnull align 8 dereferenceable(56) %13) #32 to label %.body47 unwind label %97, !noalias !1181 97: ; preds = %96 %98 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !1181 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !1181 unreachable 99: ; preds = %.noexc.i41 @@ -5315,7 +5313,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3add17hc9bcd3292c1942a 107: ; preds = %104 %108 = load ptr, ptr %6, align 8, !noalias !1183, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %108, i64 noundef %105, i64 noundef %103) #36 + call void @__rust_dealloc(ptr noundef nonnull %108, i64 noundef %105, i64 noundef %103) #35 br label %129 109: ; preds = %101 @@ -5325,7 +5323,7 @@ define hidden void @_ZN6ignore9gitignore16GitignoreBuilder3add17hc9bcd3292c1942a .body47: ; preds = %115, %109, %96 %eh.lpad-body48 = phi { ptr, i32 } [ %lpad.phi93, %96 ], [ %110, %109 ], [ %116, %115 ] - invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19) #33 + invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h7cb2294537b99227E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19) #32 to label %.body37 unwind label %124 _ZN6ignore5Error6tagged17h86093f5d516173f6E.exit50: ; preds = %.noexc49, %100 @@ -5345,13 +5343,13 @@ _ZN6ignore5Error6tagged17h86093f5d516173f6E.exit50: ; preds = %.noexc49, %100 115: ; preds = %114 %116 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E.llvm.8988879509220902597"(ptr noalias noundef nonnull align 8 dereferenceable(56) %12) #33 + invoke void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E.llvm.8988879509220902597"(ptr noalias noundef nonnull align 8 dereferenceable(56) %12) #32 to label %.body47 unwind label %117 117: ; preds = %115 %118 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable 119: ; preds = %._crit_edge.i.i, %_ZN6ignore5Error6tagged17h86093f5d516173f6E.exit50 @@ -5367,7 +5365,7 @@ _ZN6ignore5Error6tagged17h86093f5d516173f6E.exit50: ; preds = %.noexc49, %100 124: ; preds = %.thread77, %133, %.body47, %84, %.body37, %.body %125 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable 126: ; preds = %102 @@ -5395,7 +5393,7 @@ _ZN6ignore5Error6tagged17h86093f5d516173f6E.exit50: ; preds = %.noexc49, %100 to label %131 unwind label %.loopexit 133: ; preds = %126 - invoke fastcc void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E"(ptr noalias noundef align 8 dereferenceable(56) %16) #33 + invoke fastcc void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E"(ptr noalias noundef align 8 dereferenceable(56) %16) #32 to label %.body37 unwind label %124 _ZN6ignore5Error6tagged17h86093f5d516173f6E.exit: ; preds = %.noexc39, %82 @@ -5416,13 +5414,13 @@ _ZN6ignore5Error6tagged17h86093f5d516173f6E.exit: ; preds = %.noexc39, %82 138: ; preds = %137 %139 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E.llvm.8988879509220902597"(ptr noalias noundef nonnull align 8 dereferenceable(56) %18) #33 + invoke void @"_ZN4core3ptr34drop_in_place$LT$ignore..Error$GT$17hd529253980965e42E.llvm.8988879509220902597"(ptr noalias noundef nonnull align 8 dereferenceable(56) %18) #32 to label %.body37 unwind label %140 140: ; preds = %138 %141 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable 142: ; preds = %._crit_edge.i.i54, %_ZN6ignore5Error6tagged17h86093f5d516173f6E.exit @@ -5483,7 +5481,7 @@ _ZN6ignore5Error6tagged17h86093f5d516173f6E.exit: ; preds = %.noexc39, %82 br i1 %160, label %161, label %162 161: ; preds = %155 - invoke void @_ZN4core6option13unwrap_failed17hac39b9b7507453f8E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.4b9c4c38424876b331722fa561e5794f.145.llvm.8988879509220902597) #34 + invoke void @_ZN4core6option13unwrap_failed17hac39b9b7507453f8E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.4b9c4c38424876b331722fa561e5794f.145.llvm.8988879509220902597) #33 to label %163 unwind label %153, !noalias !1220 162: ; preds = %155 @@ -5499,7 +5497,7 @@ _ZN6ignore5Error6tagged17h86093f5d516173f6E.exit: ; preds = %.noexc39, %82 164: ; preds = %153 %165 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !1208 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !1208 unreachable .critedge.i: ; preds = %162, %151 @@ -5524,7 +5522,7 @@ _ZN6ignore19PartialErrorBuilder17into_error_option17h2052c7fece7a73a5E.exit: ; p 172: ; preds = %168 %173 = load ptr, ptr %5, align 8, !noalias !1221, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %173, i64 noundef %170, i64 noundef %167) #36 + call void @__rust_dealloc(ptr noundef nonnull %173, i64 noundef %170, i64 noundef %167) #35 br label %"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E.exit" "_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E.exit": ; preds = %_ZN6ignore19PartialErrorBuilder17into_error_option17h2052c7fece7a73a5E.exit, %168, %172 @@ -5559,7 +5557,7 @@ _ZN6ignore19PartialErrorBuilder17into_error_option17h2052c7fece7a73a5E.exit: ; p 182: ; preds = %178 %183 = load ptr, ptr %4, align 8, !noalias !1234, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %183, i64 noundef %180, i64 noundef %177) #36 + call void @__rust_dealloc(ptr noundef nonnull %183, i64 noundef %180, i64 noundef %177) #35 br label %"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E.exit66" "_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17hd75aa06507621107E.exit66": ; preds = %175, %178, %182 @@ -5571,7 +5569,7 @@ _ZN6ignore19PartialErrorBuilder17into_error_option17h2052c7fece7a73a5E.exit: ; p } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable -define noalias noundef align 8 dereferenceable_or_null(80) ptr @_ZN6ignore9overrides4Glob9unmatched17hd5d250b51193be53E() unnamed_addr #18 { +define noalias noundef align 8 dereferenceable_or_null(80) ptr @_ZN6ignore9overrides4Glob9unmatched17hd5d250b51193be53E() unnamed_addr #6 { ret ptr null } @@ -5596,13 +5594,13 @@ define void @_ZN6ignore9overrides8Override5empty17hb97654b91ceb3134E(ptr noalias 5: ; preds = %1 %6 = landingpad { ptr, i32 } cleanup - invoke void @"_ZN4core3ptr37drop_in_place$LT$globset..GlobSet$GT$17h82fcf96f1552e304E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3) #33 + invoke void @"_ZN4core3ptr37drop_in_place$LT$globset..GlobSet$GT$17h82fcf96f1552e304E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3) #32 to label %9 unwind label %7, !noalias !1247 7: ; preds = %5 %8 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #35, !noalias !1247 + call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34, !noalias !1247 unreachable 9: ; preds = %5 @@ -5730,7 +5728,7 @@ define void @_ZN6ignore9overrides15OverrideBuilder3add17h639b07ef60c81e31E(ptr n } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable -define void @_ZN6ignore9overrides15OverrideBuilder16case_insensitive17h99331b97eeb0bc2aE(ptr noalias nocapture noundef writeonly sret({ i64, [6 x i64] }) align 8 dereferenceable(56) initializes((0, 16)) %0, ptr noalias noundef align 8 dereferenceable(80) initializes((72, 73)) %1, i1 noundef zeroext %2) unnamed_addr #21 { +define void @_ZN6ignore9overrides15OverrideBuilder16case_insensitive17h99331b97eeb0bc2aE(ptr noalias nocapture noundef writeonly sret({ i64, [6 x i64] }) align 8 dereferenceable(56) initializes((0, 16)) %0, ptr noalias noundef align 8 dereferenceable(80) initializes((72, 73)) %1, i1 noundef zeroext %2) unnamed_addr #20 { %4 = getelementptr inbounds nuw i8, ptr %1, i64 72 %5 = zext i1 %2 to i8 store i8 %5, ptr %4, align 8, !alias.scope !1262, !noalias !1265 @@ -5741,10 +5739,10 @@ define void @_ZN6ignore9overrides15OverrideBuilder16case_insensitive17h99331b97e } ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) -declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #22 +declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #21 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #23 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #22 ; Function Attrs: nonlazybind uwtable declare noundef i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #0 @@ -5753,16 +5751,16 @@ declare noundef i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, declare hidden void @"_ZN82_$LT$std..io..Lines$LT$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h68c3a900d19e4be6E"(ptr noalias nocapture noundef sret({ i64, [2 x i64] }) align 8 dereferenceable(24), ptr noalias noundef align 8 dereferenceable(48)) unnamed_addr #0 ; Function Attrs: cold noreturn nounwind nonlazybind uwtable -declare void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() unnamed_addr #24 +declare void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() unnamed_addr #23 ; Function Attrs: cold nonlazybind uwtable -declare hidden void @"_ZN14regex_automata4util4pool5inner17Pool$LT$T$C$F$GT$8get_slow17h5d7fd6bf42c03e74E"(ptr noalias nocapture noundef sret({ { i64, [1 x i64] }, ptr, i8, [7 x i8] }) align 8 dereferenceable(32), ptr noundef nonnull align 8, i64 noundef, i64 noundef) unnamed_addr #25 +declare hidden void @"_ZN14regex_automata4util4pool5inner17Pool$LT$T$C$F$GT$8get_slow17h5d7fd6bf42c03e74E"(ptr noalias nocapture noundef sret({ { i64, [1 x i64] }, ptr, i8, [7 x i8] }) align 8 dereferenceable(32), ptr noundef nonnull align 8, i64 noundef, i64 noundef) unnamed_addr #24 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) -declare void @llvm.assume(i1 noundef) #26 +declare void @llvm.assume(i1 noundef) #25 ; Function Attrs: cold noreturn nounwind memory(inaccessiblemem: write) -declare void @llvm.trap() #27 +declare void @llvm.trap() #26 ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @"_ZN43_$LT$bool$u20$as$u20$core..fmt..Display$GT$3fmt17h13a45a17a3eda331E"(ptr noalias noundef readonly align 1 dereferenceable(1), ptr noalias noundef align 8 dereferenceable(64)) unnamed_addr #0 @@ -5837,7 +5835,7 @@ declare hidden void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$16reserve_for_push17 declare noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field3_finish17h5a30cf30306e32eeE(ptr noalias noundef align 8 dereferenceable(64), ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noundef nonnull align 1, ptr noalias noundef readonly align 8 dereferenceable(24), ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noundef nonnull align 1, ptr noalias noundef readonly align 8 dereferenceable(24), ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noundef nonnull align 1, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #0 ; Function Attrs: nounwind nonlazybind allockind("free") uwtable -declare void @__rust_dealloc(ptr allocptr noundef, i64 noundef, i64 noundef) unnamed_addr #28 +declare void @__rust_dealloc(ptr allocptr noundef, i64 noundef, i64 noundef) unnamed_addr #27 ; Function Attrs: nonlazybind uwtable declare noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_field1_finish17h5e43d4be3efa18a7E(ptr noalias noundef align 8 dereferenceable(64), ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noundef nonnull align 1, ptr noalias noundef readonly align 8 dereferenceable(24)) unnamed_addr #0 @@ -5930,10 +5928,10 @@ declare hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$ declare noundef zeroext i1 @_ZN4core3fmt9Formatter26debug_struct_fields_finish17h96053a3a6afd56ceE(ptr noalias noundef align 8 dereferenceable(64), ptr noalias noundef nonnull readonly align 1, i64 noundef, ptr noalias noundef nonnull readonly align 8, i64 noundef, ptr noalias noundef nonnull readonly align 8, i64 noundef) unnamed_addr #0 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #29 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #28 ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #29 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #28 ; Function Attrs: inlinehint nonlazybind uwtable declare hidden noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17hf2adafbad218d714E.llvm.17461529481112251919(ptr noalias noundef readonly align 8 dereferenceable(32)) unnamed_addr #4 @@ -6074,16 +6072,16 @@ declare void @"_ZN95_$LT$std..path..Components$u20$as$u20$core..iter..traits..do declare hidden noundef i8 @_ZN4core4iter6traits12double_ended19DoubleEndedIterator9try_rfold17h8b630d47df92e240E.llvm.18333092558533072501(ptr noalias noundef align 8 dereferenceable(64), ptr noalias noundef align 8 dereferenceable(64)) unnamed_addr #4 ; Function Attrs: nofree nounwind nonlazybind willreturn memory(argmem: read) -declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #30 +declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #29 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) -declare void @llvm.experimental.noalias.scope.decl(metadata) #31 +declare void @llvm.experimental.noalias.scope.decl(metadata) #30 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.usub.sat.i64(i64, i64) #32 +declare i64 @llvm.usub.sat.i64(i64, i64) #31 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umax.i64(i64, i64) #32 +declare i64 @llvm.umax.i64(i64, i64) #31 attributes #0 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #1 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } @@ -6091,7 +6089,7 @@ attributes #2 = { nounwind nonlazybind uwtable "probe-stack"="inline-asm" "targe attributes #3 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #4 = { inlinehint nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #5 = { inlinehint nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #6 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(inaccessiblemem: write) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #6 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #7 = { mustprogress nofree norecurse nounwind nonlazybind willreturn memory(argmem: readwrite) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #8 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #9 = { alwaysinline mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } @@ -6103,25 +6101,24 @@ attributes #14 = { inlinehint mustprogress nofree norecurse nosync nounwind nonl attributes #15 = { cold noreturn nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #16 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(read, inaccessiblemem: none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } attributes #17 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #18 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #19 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(readwrite, inaccessiblemem: none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #20 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #21 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #22 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #23 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #24 = { cold noreturn nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #25 = { cold nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #26 = { mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } -attributes #27 = { cold noreturn nounwind memory(inaccessiblemem: write) } -attributes #28 = { nounwind nonlazybind allockind("free") uwtable "alloc-family"="__rust_alloc" "probe-stack"="inline-asm" "target-cpu"="x86-64" } -attributes #29 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #30 = { nofree nounwind nonlazybind willreturn memory(argmem: read) } -attributes #31 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } -attributes #32 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #33 = { cold } -attributes #34 = { noreturn } -attributes #35 = { cold noreturn nounwind } -attributes #36 = { nounwind } +attributes #18 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(readwrite, inaccessiblemem: none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #19 = { inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #20 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #21 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } +attributes #22 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #23 = { cold noreturn nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #24 = { cold nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #25 = { mustprogress nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #26 = { cold noreturn nounwind memory(inaccessiblemem: write) } +attributes #27 = { nounwind nonlazybind allockind("free") uwtable "alloc-family"="__rust_alloc" "probe-stack"="inline-asm" "target-cpu"="x86-64" } +attributes #28 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #29 = { nofree nounwind nonlazybind willreturn memory(argmem: read) } +attributes #30 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) } +attributes #31 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #32 = { cold } +attributes #33 = { noreturn } +attributes #34 = { cold noreturn nounwind } +attributes #35 = { nounwind } !llvm.module.flags = !{!0, !1, !2} !llvm.ident = !{!3} diff --git a/bench/ripgrep-rs/optimized/n2o0pbfhrfss8aa.ll b/bench/ripgrep-rs/optimized/n2o0pbfhrfss8aa.ll index b7e0478ed88..d70a977e492 100644 --- a/bench/ripgrep-rs/optimized/n2o0pbfhrfss8aa.ll +++ b/bench/ripgrep-rs/optimized/n2o0pbfhrfss8aa.ll @@ -482,12 +482,12 @@ define internal fastcc void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize %.not = icmp eq i64 %32, %9 br i1 %.not, label %._crit_edge, label %27 -33: ; preds = %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit.i", %42, %26, %55 +33: ; preds = %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit.i", %42, %26, %54 %34 = landingpad { ptr, i32 } cleanup %.val = load ptr, ptr %6, align 8, !noundef !5 invoke fastcc void @"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h1e8a1a0d33897bedE"(ptr %.val) #33 - to label %71 unwind label %69 + to label %70 unwind label %68 35: ; preds = %._crit_edge store ptr %17, ptr %24, align 8 @@ -517,18 +517,16 @@ define internal fastcc void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3), !noalias !13 %45 = and i64 %39, -8 %46 = inttoptr i64 %45 to ptr - %47 = icmp ne i64 %45, 0 - tail call void @llvm.assume(i1 %47) store ptr %46, ptr %3, align 8, !noalias !13 - %48 = getelementptr inbounds nuw i8, ptr %46, i64 8 - %49 = load i64, ptr %48, align 8, !noalias !13, !noundef !5 - %50 = icmp eq i64 %49, 0 - br i1 %50, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit.i", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i" + %47 = getelementptr inbounds nuw i8, ptr %46, i64 8 + %48 = load i64, ptr %47, align 8, !noalias !13, !noundef !5 + %49 = icmp eq i64 %48, 0 + br i1 %49, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit.i", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i": ; preds = %44 - %51 = load ptr, ptr %46, align 8, !noalias !13, !nonnull !5, !noundef !5 - %52 = mul nsw i64 %49, 136 - tail call void @__rust_dealloc(ptr noundef nonnull %51, i64 noundef %52, i64 noundef 8) #32, !noalias !19 + %50 = load ptr, ptr %46, align 8, !noalias !13, !nonnull !5, !noundef !5 + %51 = mul nsw i64 %48, 136 + tail call void @__rust_dealloc(ptr noundef nonnull %50, i64 noundef %51, i64 noundef 8) #32, !noalias !19 br label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit.i" "_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hde5ecd6a252aaf8bE.llvm.8988879509220902597.exit.i": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h613b0af57122470fE.llvm.18333092558533072501.exit.i.i.i.i.i", %44 @@ -540,50 +538,50 @@ define internal fastcc void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize br label %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hfbb5dba3c40daf30E.exit _ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hfbb5dba3c40daf30E.exit: ; preds = %.noexc16, %.noexc15 - %53 = mul i64 %1, 136 - %54 = icmp ugt i64 %53, 1023 - br i1 %54, label %55, label %56 + %52 = mul i64 %1, 136 + %53 = icmp ugt i64 %52, 1023 + br i1 %53, label %54, label %55 -55: ; preds = %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hfbb5dba3c40daf30E.exit +54: ; preds = %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hfbb5dba3c40daf30E.exit invoke void @_ZN15crossbeam_epoch5guard5Guard5flush17ha6ff653c88b4fa86E(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %6) - to label %56 unwind label %33 + to label %55 unwind label %33 -56: ; preds = %55, %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hfbb5dba3c40daf30E.exit +55: ; preds = %54, %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17hfbb5dba3c40daf30E.exit %.val14 = load ptr, ptr %6, align 8, !noundef !5 - %57 = icmp eq ptr %.val14, null - br i1 %57, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h1e8a1a0d33897bedE.exit", label %58 - -58: ; preds = %56 - %59 = getelementptr inbounds nuw i8, ptr %.val14, i64 2072 - %60 = load i64, ptr %59, align 8, !noundef !5 - %61 = add i64 %60, -1 - store i64 %61, ptr %59, align 8 - %62 = icmp eq i64 %60, 1 - br i1 %62, label %63, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h1e8a1a0d33897bedE.exit" - -63: ; preds = %58 - %64 = getelementptr inbounds nuw i8, ptr %.val14, i64 2176 - store atomic i64 0, ptr %64 release, align 8 - %65 = getelementptr inbounds nuw i8, ptr %.val14, i64 2080 - %66 = load i64, ptr %65, align 8, !noundef !5 - %67 = icmp eq i64 %66, 0 - br i1 %67, label %68, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h1e8a1a0d33897bedE.exit" - -68: ; preds = %63 + %56 = icmp eq ptr %.val14, null + br i1 %56, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h1e8a1a0d33897bedE.exit", label %57 + +57: ; preds = %55 + %58 = getelementptr inbounds nuw i8, ptr %.val14, i64 2072 + %59 = load i64, ptr %58, align 8, !noundef !5 + %60 = add i64 %59, -1 + store i64 %60, ptr %58, align 8 + %61 = icmp eq i64 %59, 1 + br i1 %61, label %62, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h1e8a1a0d33897bedE.exit" + +62: ; preds = %57 + %63 = getelementptr inbounds nuw i8, ptr %.val14, i64 2176 + store atomic i64 0, ptr %63 release, align 8 + %64 = getelementptr inbounds nuw i8, ptr %.val14, i64 2080 + %65 = load i64, ptr %64, align 8, !noundef !5 + %66 = icmp eq i64 %65, 0 + br i1 %66, label %67, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h1e8a1a0d33897bedE.exit" + +67: ; preds = %62 call void @_ZN15crossbeam_epoch8internal5Local8finalize17h42375cbc65a347f4E(ptr noundef nonnull align 128 %.val14) br label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h1e8a1a0d33897bedE.exit" -"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h1e8a1a0d33897bedE.exit": ; preds = %56, %58, %63, %68 +"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h1e8a1a0d33897bedE.exit": ; preds = %55, %57, %62, %67 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) ret void -69: ; preds = %33 - %70 = landingpad { ptr, i32 } +68: ; preds = %33 + %69 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #34 unreachable -71: ; preds = %33 +70: ; preds = %33 resume { ptr, i32 } %34 } diff --git a/bench/rust-analyzer-rs/optimized/4n4kpy0miblxvsjy.ll b/bench/rust-analyzer-rs/optimized/4n4kpy0miblxvsjy.ll index 23eb187cc9c..965696a774a 100644 --- a/bench/rust-analyzer-rs/optimized/4n4kpy0miblxvsjy.ll +++ b/bench/rust-analyzer-rs/optimized/4n4kpy0miblxvsjy.ll @@ -8198,12 +8198,12 @@ define internal fastcc void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize %.not = icmp eq i64 %31, %8 br i1 %.not, label %._crit_edge, label %26 -32: ; preds = %41, %25, %53 +32: ; preds = %41, %25, %52 %33 = landingpad { ptr, i32 } cleanup %.val = load ptr, ptr %5, align 8, !noundef !5 invoke fastcc void @"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h9f86cab90245e9a2E"(ptr %.val) #38 - to label %69 unwind label %67 + to label %68 unwind label %66 34: ; preds = %._crit_edge store ptr %16, ptr %23, align 8 @@ -8232,17 +8232,15 @@ define internal fastcc void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize 43: ; preds = %34 %44 = and i64 %38, -8 %45 = inttoptr i64 %44 to ptr - %46 = icmp ne i64 %44, 0 - tail call void @llvm.assume(i1 %46) - %47 = getelementptr inbounds nuw i8, ptr %45, i64 8 - %48 = load i64, ptr %47, align 8, !noalias !647, !noundef !5 - %49 = icmp eq i64 %48, 0 - br i1 %49, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hf1ed0bc33fd23454E.exit.i", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.17769526770162137697.exit.i.i.i.i.i" + %46 = getelementptr inbounds nuw i8, ptr %45, i64 8 + %47 = load i64, ptr %46, align 8, !noalias !647, !noundef !5 + %48 = icmp eq i64 %47, 0 + br i1 %48, label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hf1ed0bc33fd23454E.exit.i", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.17769526770162137697.exit.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.17769526770162137697.exit.i.i.i.i.i": ; preds = %43 - %50 = load ptr, ptr %45, align 8, !noalias !647, !nonnull !5, !noundef !5 - %51 = shl nsw i64 %48, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %50, i64 noundef %51, i64 noundef 8) #26, !noalias !653 + %49 = load ptr, ptr %45, align 8, !noalias !647, !nonnull !5, !noundef !5 + %50 = shl nsw i64 %47, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %49, i64 noundef %50, i64 noundef 8) #26, !noalias !653 br label %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hf1ed0bc33fd23454E.exit.i" "_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hf1ed0bc33fd23454E.exit.i": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.17769526770162137697.exit.i.i.i.i.i", %43 @@ -8250,50 +8248,50 @@ define internal fastcc void @"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize br label %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h46f24b4b4ea03991E.exit _ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h46f24b4b4ea03991E.exit: ; preds = %"_ZN15crossbeam_deque5deque15Worker$LT$T$GT$6resize28_$u7b$$u7b$closure$u7d$$u7d$17hf1ed0bc33fd23454E.exit.i", %.noexc16 - %52 = and i64 %1, 1152921504606846912 - %.not14 = icmp eq i64 %52, 0 - br i1 %.not14, label %54, label %53 + %51 = and i64 %1, 1152921504606846912 + %.not14 = icmp eq i64 %51, 0 + br i1 %.not14, label %53, label %52 -53: ; preds = %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h46f24b4b4ea03991E.exit +52: ; preds = %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h46f24b4b4ea03991E.exit invoke void @_ZN15crossbeam_epoch5guard5Guard5flush17h9ee36c4acc8f8b0cE(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %5) - to label %54 unwind label %32 + to label %53 unwind label %32 -54: ; preds = %53, %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h46f24b4b4ea03991E.exit +53: ; preds = %52, %_ZN15crossbeam_epoch5guard5Guard15defer_unchecked17h46f24b4b4ea03991E.exit %.val15 = load ptr, ptr %5, align 8, !noundef !5 - %55 = icmp eq ptr %.val15, null - br i1 %55, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h9f86cab90245e9a2E.exit", label %56 + %54 = icmp eq ptr %.val15, null + br i1 %54, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h9f86cab90245e9a2E.exit", label %55 -56: ; preds = %54 - %57 = getelementptr inbounds nuw i8, ptr %.val15, i64 2072 - %58 = load i64, ptr %57, align 8, !noundef !5 - %59 = add i64 %58, -1 - store i64 %59, ptr %57, align 8 - %60 = icmp eq i64 %58, 1 - br i1 %60, label %61, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h9f86cab90245e9a2E.exit" +55: ; preds = %53 + %56 = getelementptr inbounds nuw i8, ptr %.val15, i64 2072 + %57 = load i64, ptr %56, align 8, !noundef !5 + %58 = add i64 %57, -1 + store i64 %58, ptr %56, align 8 + %59 = icmp eq i64 %57, 1 + br i1 %59, label %60, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h9f86cab90245e9a2E.exit" + +60: ; preds = %55 + %61 = getelementptr inbounds nuw i8, ptr %.val15, i64 2176 + store atomic i64 0, ptr %61 release, align 8 + %62 = getelementptr inbounds nuw i8, ptr %.val15, i64 2080 + %63 = load i64, ptr %62, align 8, !noundef !5 + %64 = icmp eq i64 %63, 0 + br i1 %64, label %65, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h9f86cab90245e9a2E.exit" -61: ; preds = %56 - %62 = getelementptr inbounds nuw i8, ptr %.val15, i64 2176 - store atomic i64 0, ptr %62 release, align 8 - %63 = getelementptr inbounds nuw i8, ptr %.val15, i64 2080 - %64 = load i64, ptr %63, align 8, !noundef !5 - %65 = icmp eq i64 %64, 0 - br i1 %65, label %66, label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h9f86cab90245e9a2E.exit" - -66: ; preds = %61 +65: ; preds = %60 call void @_ZN15crossbeam_epoch8internal5Local8finalize17hab282190cf411441E(ptr noundef nonnull align 128 %.val15) br label %"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h9f86cab90245e9a2E.exit" -"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h9f86cab90245e9a2E.exit": ; preds = %54, %56, %61, %66 +"_ZN4core3ptr50drop_in_place$LT$crossbeam_epoch..guard..Guard$GT$17h9f86cab90245e9a2E.exit": ; preds = %53, %55, %60, %65 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) ret void -67: ; preds = %32 - %68 = landingpad { ptr, i32 } +66: ; preds = %32 + %67 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #37 unreachable -69: ; preds = %32 +68: ; preds = %32 resume { ptr, i32 } %33 } @@ -8636,17 +8634,15 @@ define internal void @_ZN15crossbeam_epoch8deferred8Deferred3new4call17h60b8256a %2 = load i64, ptr %0, align 8, !noundef !5 %3 = and i64 %2, -8 %4 = inttoptr i64 %3 to ptr - %5 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %5) - %6 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %7 = load i64, ptr %6, align 8, !noundef !5 - %8 = icmp eq i64 %7, 0 - br i1 %8, label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h43c8be7dc3f41182E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.17769526770162137697.exit.i.i.i.i.i" + %5 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %6 = load i64, ptr %5, align 8, !noundef !5 + %7 = icmp eq i64 %6, 0 + br i1 %7, label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h43c8be7dc3f41182E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.17769526770162137697.exit.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.17769526770162137697.exit.i.i.i.i.i": ; preds = %1 - %9 = load ptr, ptr %4, align 8, !nonnull !5, !noundef !5 - %10 = shl nsw i64 %7, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef %10, i64 noundef 8) #26, !noalias !668 + %8 = load ptr, ptr %4, align 8, !nonnull !5, !noundef !5 + %9 = shl nsw i64 %6, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef %9, i64 noundef 8) #26, !noalias !668 br label %"_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h43c8be7dc3f41182E.exit" "_ZN15crossbeam_epoch5guard5Guard15defer_unchecked28_$u7b$$u7b$closure$u7d$$u7d$17h43c8be7dc3f41182E.exit": ; preds = %1, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.17769526770162137697.exit.i.i.i.i.i" diff --git a/bench/sqlite/optimized/sqlite3.ll b/bench/sqlite/optimized/sqlite3.ll index 52a9b6b0e2c..12fc79a0ba1 100644 --- a/bench/sqlite/optimized/sqlite3.ll +++ b/bench/sqlite/optimized/sqlite3.ll @@ -47887,12 +47887,12 @@ sqlite3BitvecCreate.exit.i: ; preds = %118, %113 %121 = sdiv i32 %120, 8 %122 = add nsw i32 %121, 1 %123 = sext i32 %122 to i64 - %124 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %123) + %124 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %123) %.not.i.i97 = icmp eq ptr %124, null br i1 %.not.i.i97, label %sqlite3MallocZero.exit.i, label %125 125: ; preds = %sqlite3BitvecCreate.exit.i - call void @llvm.memset.p0.i64(ptr nonnull align 1 %124, i8 0, i64 range(i64 -4294966874, 34359738361) %123, i1 false) + call void @llvm.memset.p0.i64(ptr nonnull align 1 %124, i8 0, i64 range(i64 -4294966746, 34359738361) %123, i1 false) br label %sqlite3MallocZero.exit.i sqlite3MallocZero.exit.i: ; preds = %125, %sqlite3BitvecCreate.exit.i @@ -58058,7 +58058,7 @@ sqlite3_mutex_enter.exit.i.i.i: ; preds = %209, %207 %232 = add nuw nsw i64 %factor.i, %231 %233 = add nsw i64 %232, %230 %234 = add nsw i64 %233, %227 - %235 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %234) + %235 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %234) %.not.i230.i = icmp eq ptr %235, null br i1 %.not.i230.i, label %236, label %256 @@ -58108,7 +58108,7 @@ sqlite3_mutex_enter.exit.i.i258.i: ; preds = %241, %239 br label %.thread361.sink.split 256: ; preds = %.thread.i - tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %235, i8 0, i64 range(i64 -4294966874, 34359738361) %234, i1 false) + tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %235, i8 0, i64 range(i64 -4294966746, 34359738361) %234, i1 false) %257 = getelementptr inbounds nuw i8, ptr %235, i64 312 %258 = getelementptr inbounds nuw i8, ptr %235, i64 288 store ptr %257, ptr %258, align 8 @@ -66384,12 +66384,12 @@ tailrecurse.i.i: ; preds = %54, %tailrecurse.i. %81 = load i16, ptr %80, align 8 %82 = zext i16 %81 to i64 %83 = add nuw nsw i64 %82, 80 - %84 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %83) + %84 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %83) %.not.i.i50 = icmp eq ptr %84, null br i1 %.not.i.i50, label %.thread62, label %85 85: ; preds = %79 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %84, i8 0, i64 range(i64 -4294966874, 34359738361) %83, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %84, i8 0, i64 range(i64 -4294966746, 34359738361) %83, i1 false) %86 = getelementptr inbounds nuw i8, ptr %84, i64 80 %87 = getelementptr inbounds nuw i8, ptr %84, i64 16 store ptr %86, ptr %87, align 8 @@ -68275,12 +68275,12 @@ sqlite3PagerSync.exit.thread: ; preds = %181, %.thread.i103, %204 = load i32, ptr %203, align 4 %205 = shl nsw i32 %204, 1 %206 = sext i32 %205 to i64 - %207 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %206) + %207 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %206) %.not.i.i107 = icmp eq ptr %207, null br i1 %.not.i.i107, label %pager_delsuper.exit, label %208 208: ; preds = %201 - call void @llvm.memset.p0.i64(ptr nonnull align 1 %207, i8 0, i64 range(i64 -4294966874, 34359738361) %206, i1 false) + call void @llvm.memset.p0.i64(ptr nonnull align 1 %207, i8 0, i64 range(i64 -4294966746, 34359738361) %206, i1 false) %209 = getelementptr inbounds nuw i8, ptr %.val, i64 40 %210 = load ptr, ptr %209, align 8 %211 = call i32 %210(ptr noundef nonnull %.val, ptr noundef nonnull %159, ptr noundef nonnull %207, i32 noundef 16385, ptr noundef null) #57 @@ -75404,12 +75404,12 @@ pagerExclusiveLock.exit: ; preds = %pagerLockDb.exit.i, %47 = load i32, ptr %46, align 4 %48 = sext i32 %47 to i64 %49 = add nsw i64 %48, 144 - %50 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %49) + %50 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %49) %.not.i.i10 = icmp eq ptr %50, null br i1 %.not.i.i10, label %sqlite3WalOpen.exit, label %51 51: ; preds = %37 - tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %50, i8 0, i64 range(i64 -4294966874, 34359738361) %49, i1 false) + tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %50, i8 0, i64 range(i64 -4294966746, 34359738361) %49, i1 false) store ptr %38, ptr %50, align 8 %52 = getelementptr inbounds nuw i8, ptr %50, i64 144 %53 = getelementptr inbounds nuw i8, ptr %50, i64 16 @@ -86922,12 +86922,12 @@ define internal fastcc i32 @sqlite3OsOpenMalloc(ptr noundef %0, ptr noundef %1, %6 = getelementptr inbounds nuw i8, ptr %0, i64 4 %7 = load i32, ptr %6, align 4 %8 = sext i32 %7 to i64 - %9 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %8) + %9 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %8) %.not.i = icmp eq ptr %9, null br i1 %.not.i, label %sqlite3_free.exit, label %10 10: ; preds = %5 - tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %9, i8 0, i64 range(i64 -4294966874, 34359738361) %8, i1 false) + tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %9, i8 0, i64 range(i64 -4294966746, 34359738361) %8, i1 false) %11 = getelementptr inbounds nuw i8, ptr %0, i64 40 %12 = load ptr, ptr %11, align 8 %13 = and i32 %3, 32639 @@ -100744,12 +100744,12 @@ sqlite3FaultSim.exit.thread.i.i.i.i: ; preds = %sqlite3FaultSim.exi %5634 = mul i32 %.0.i.i.i.i4039, 84 %5635 = add i32 %5634, 32 %5636 = sext i32 %5635 to i64 - %5637 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %5636) + %5637 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %5636) %.not.i17.i.i.i.i = icmp eq ptr %5637, null br i1 %.not.i17.i.i.i.i, label %vdbeSorterMergeTreeBuild.exit.thread.i.i, label %vdbeMergeEngineNew.exit.i.i.i vdbeMergeEngineNew.exit.i.i.i: ; preds = %sqlite3FaultSim.exit.thread.i.i.i.i - call void @llvm.memset.p0.i64(ptr nonnull align 1 %5637, i8 0, i64 range(i64 -4294966874, 34359738361) %5636, i1 false) + call void @llvm.memset.p0.i64(ptr nonnull align 1 %5637, i8 0, i64 range(i64 -4294966746, 34359738361) %5636, i1 false) store i32 %.0.i.i.i.i4039, ptr %5637, align 8 %5638 = getelementptr inbounds nuw i8, ptr %5637, i64 8 store ptr null, ptr %5638, align 8 @@ -100817,7 +100817,7 @@ sqlite3FaultSim.exit.i58.i.i.i: ; preds = %vdbeSorterTreeDepth br i1 %.not.i59.i.i.i, label %sqlite3FaultSim.exit.thread.i60.i.i.i, label %.loopexit.thread.thread.i.i.i sqlite3FaultSim.exit.thread.i60.i.i.i: ; preds = %sqlite3FaultSim.exit.i58.i.i.i, %vdbeSorterTreeDepth.exit.i.i.i - %5660 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) 1376) + %5660 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) 1376) %.not.i17.i61.i.i.i = icmp eq ptr %5660, null br i1 %.not.i17.i61.i.i.i, label %.loopexit.thread.thread.i.i.i, label %vdbeMergeEngineNew.exit62.i.i.i @@ -100827,7 +100827,7 @@ sqlite3FaultSim.exit.thread.i60.i.i.i: ; preds = %sqlite3FaultSim.exi vdbeMergeEngineNew.exit62.i.i.i: ; preds = %sqlite3FaultSim.exit.thread.i60.i.i.i %5661 = getelementptr inbounds nuw i8, ptr %5660, i64 4 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1376) %5661, i8 0, i64 range(i64 -4294966874, 34359738361) 1372, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1376) %5661, i8 0, i64 range(i64 -4294966746, 34359738361) 1372, i1 false) store i32 16, ptr %5660, align 8 %5662 = getelementptr inbounds nuw i8, ptr %5660, i64 32 %5663 = getelementptr inbounds nuw i8, ptr %5660, i64 24 @@ -101032,7 +101032,7 @@ sqlite3Malloc.exit.i.i.i: ; preds = %5739, %5737, %mallo 5742: ; preds = %sqlite3Malloc.exit.i.i.i %5743 = getelementptr inbounds nuw i8, ptr %.0.i91.i.i.i, i64 4 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1376) %5743, i8 0, i64 range(i64 -4294966874, 34359738361) 1372, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1376) %5743, i8 0, i64 range(i64 -4294966746, 34359738361) 1372, i1 false) store i32 16, ptr %.0.i91.i.i.i, align 8 %5744 = getelementptr inbounds nuw i8, ptr %.0.i91.i.i.i, i64 32 %5745 = getelementptr inbounds nuw i8, ptr %.0.i91.i.i.i, i64 24 @@ -104188,7 +104188,7 @@ tableOfTrigger.exit.i: ; preds = %sqlite3StrICmp.exit %7364 = lshr i32 %.val.i4129, 3 %7365 = add nuw nsw i32 %7364, 1 %7366 = zext nneg i32 %7365 to i64 - %7367 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %7366) + %7367 = call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %7366) %.not.i.i4130 = icmp eq ptr %7367, null br i1 %.not.i.i4130, label %7368, label %7371 @@ -104201,7 +104201,7 @@ tableOfTrigger.exit.i: ; preds = %sqlite3StrICmp.exit br i1 %7370, label %checkOom.exit.i.sink.split, label %checkOom.exit.i 7371: ; preds = %7363 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %7367, i8 0, i64 range(i64 -4294966874, 34359738361) %7366, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %7367, i8 0, i64 range(i64 -4294966746, 34359738361) %7366, i1 false) store ptr %7367, ptr %321, align 8 %7372 = getelementptr inbounds nuw i8, ptr %7349, i64 52 %7373 = load i32, ptr %7372, align 4 @@ -134459,12 +134459,12 @@ sqlite3FaultSim.exit.thread: ; preds = %3, %sqlite3FaultSim %12 = getelementptr inbounds nuw i8, ptr %11, i64 4 %13 = load i32, ptr %12, align 4 %14 = sext i32 %13 to i64 - %15 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %14) + %15 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %14) %.not.i.i = icmp eq ptr %15, null br i1 %.not.i.i, label %sqlite3OsOpenMalloc.exit.thread, label %16 16: ; preds = %sqlite3FaultSim.exit.thread - tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %15, i8 0, i64 range(i64 -4294966874, 34359738361) %14, i1 false) + tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %15, i8 0, i64 range(i64 -4294966746, 34359738361) %14, i1 false) %17 = getelementptr inbounds nuw i8, ptr %11, i64 40 %18 = load ptr, ptr %17, align 8 %19 = call i32 %18(ptr noundef nonnull %11, ptr noundef null, ptr noundef nonnull %15, i32 noundef 4126, ptr noundef nonnull %7) #57 @@ -135192,12 +135192,12 @@ sqlite3FaultSim.exit.thread.i: ; preds = %sqlite3FaultSim.exi %14 = mul i32 %.0.i, 84 %15 = add i32 %14, 32 %16 = sext i32 %15 to i64 - %17 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %16) + %17 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %16) %.not.i17.i = icmp eq ptr %17, null br i1 %.not.i17.i, label %vdbeMergeEngineFree.exit, label %vdbeMergeEngineNew.exit vdbeMergeEngineNew.exit: ; preds = %sqlite3FaultSim.exit.thread.i - tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %17, i8 0, i64 range(i64 -4294966874, 34359738361) %16, i1 false) + tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %17, i8 0, i64 range(i64 -4294966746, 34359738361) %16, i1 false) store i32 %.0.i, ptr %17, align 8 %18 = getelementptr inbounds nuw i8, ptr %17, i64 8 store ptr null, ptr %18, align 8 @@ -234321,7 +234321,7 @@ sqlite3VdbeAddOp2.exit126: ; preds = %180, %sqlite3VdbeAd } ; Function Attrs: nounwind uwtable -define internal fastcc ptr @sqlite3WhereBegin(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, i16 noundef zeroext range(i16 0, -32768) %6, i32 noundef %7) unnamed_addr #0 { +define internal fastcc ptr @sqlite3WhereBegin(ptr noundef %0, ptr noundef %1, ptr noundef %2, ptr noundef %3, ptr noundef %4, ptr noundef %5, i16 noundef zeroext range(i16 0, 24576) %6, i32 noundef %7) unnamed_addr #0 { %9 = alloca %struct.Walker, align 8 %10 = alloca %struct.IdxCover, align 8 %11 = alloca %struct.WhereScan, align 8 @@ -272045,7 +272045,7 @@ sqlite3VdbeJumpHere.exit158: ; preds = %.thread, %1051 } ; Function Attrs: nounwind uwtable -define internal fastcc void @sqlite3WhereExplainOneScan(ptr nocapture noundef readonly %0, ptr noundef %1, ptr nocapture noundef readonly %2, i16 noundef zeroext range(i16 0, -32768) %3) unnamed_addr #0 { +define internal fastcc void @sqlite3WhereExplainOneScan(ptr nocapture noundef readonly %0, ptr noundef %1, ptr nocapture noundef readonly %2, i16 noundef zeroext range(i16 0, 24576) %3) unnamed_addr #0 { %5 = alloca %struct.sqlite3_str, align 8 %6 = alloca [100 x i8], align 16 %7 = getelementptr inbounds nuw i8, ptr %0, i64 176 @@ -377199,12 +377199,12 @@ define internal ptr @pcache1Create(i32 noundef %0, i32 noundef %1, i32 noundef % %5 = mul i32 %4, 80 %6 = add i32 %5, 88 %7 = sext i32 %6 to i64 - %8 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %7) + %8 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %7) %.not.i = icmp eq ptr %8, null br i1 %.not.i, label %sqlite3MallocZero.exit.thread, label %9 9: ; preds = %3 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %8, i8 0, i64 range(i64 -4294966874, 34359738361) %7, i1 false) + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %8, i8 0, i64 range(i64 -4294966746, 34359738361) %7, i1 false) %10 = load i32, ptr getelementptr inbounds nuw (i8, ptr @pcache1_g, i64 84), align 4 %.not36 = icmp eq i32 %10, 0 br i1 %.not36, label %14, label %11 @@ -378168,12 +378168,12 @@ define internal fastcc void @pcache1ResizeHash(ptr nocapture noundef %0) unnamed sqlite3BeginBenignMalloc.exit: ; preds = %7, %5, %1 %8 = zext i32 %spec.store.select to i64 %9 = shl nuw nsw i64 %8, 3 - %10 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966874, 34359738361) %9) + %10 = tail call fastcc ptr @sqlite3Malloc(i64 noundef range(i64 -4294966746, 34359738361) %9) %.not.i30 = icmp eq ptr %10, null br i1 %.not.i30, label %sqlite3MallocZero.exit, label %11 11: ; preds = %sqlite3BeginBenignMalloc.exit - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %10, i8 0, i64 range(i64 -4294966874, 34359738361) %9, i1 false) + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %10, i8 0, i64 range(i64 -4294966746, 34359738361) %9, i1 false) br label %sqlite3MallocZero.exit sqlite3MallocZero.exit: ; preds = %sqlite3BeginBenignMalloc.exit, %11 diff --git a/bench/syn/optimized/59s55fjcmu2d325w.ll b/bench/syn/optimized/59s55fjcmu2d325w.ll index a6ce92145da..43394aee524 100644 --- a/bench/syn/optimized/59s55fjcmu2d325w.ll +++ b/bench/syn/optimized/59s55fjcmu2d325w.ll @@ -335,7 +335,7 @@ define internal noundef zeroext i1 @"_ZN4core3fmt3num52_$LT$impl$u20$core..fmt.. } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable -define hidden range(i64 2, 0) i64 @_ZN4core3ops8function6FnOnce9call_once17h570c669cd80a5791E.llvm.11523544799934805625(i32 %0) unnamed_addr #2 { +define hidden range(i64 2, -2147483648) i64 @_ZN4core3ops8function6FnOnce9call_once17h570c669cd80a5791E.llvm.11523544799934805625(i32 %0) unnamed_addr #2 { %.sroa.2.0.insert.ext.i = zext i32 %0 to i64 %.sroa.2.0.insert.shift.i = shl nuw i64 %.sroa.2.0.insert.ext.i, 32 %.sroa.02.0.insert.insert.i = or disjoint i64 %.sroa.2.0.insert.shift.i, 2 @@ -350,7 +350,7 @@ define hidden range(i64 0, -4294967295) i64 @_ZN4core3ops8function6FnOnce9call_o } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable -define hidden range(i64 1, 0) i64 @_ZN4core3ops8function6FnOnce9call_once17he9ea03ece50375afE.llvm.11523544799934805625(i32 %0) unnamed_addr #2 { +define hidden range(i64 1, -2147483648) i64 @_ZN4core3ops8function6FnOnce9call_once17he9ea03ece50375afE.llvm.11523544799934805625(i32 %0) unnamed_addr #2 { %.sroa.2.0.insert.ext.i = zext i32 %0 to i64 %.sroa.2.0.insert.shift.i = shl nuw i64 %.sroa.2.0.insert.ext.i, 32 %.sroa.02.0.insert.insert.i = or disjoint i64 %.sroa.2.0.insert.shift.i, 1 @@ -5814,7 +5814,7 @@ define hidden range(i64 0, -4294967295) i64 @_ZN3syn2op4UnOp5Deref17h83ba1c80255 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable -define hidden range(i64 1, 0) i64 @_ZN3syn2op4UnOp3Not17ha14ca47f4f9546e7E.llvm.11523544799934805625(i32 %0) unnamed_addr #2 { +define hidden range(i64 1, -2147483648) i64 @_ZN3syn2op4UnOp3Not17ha14ca47f4f9546e7E.llvm.11523544799934805625(i32 %0) unnamed_addr #2 { %.sroa.2.0.insert.ext = zext i32 %0 to i64 %.sroa.2.0.insert.shift = shl nuw i64 %.sroa.2.0.insert.ext, 32 %.sroa.02.0.insert.insert = or disjoint i64 %.sroa.2.0.insert.shift, 1 @@ -5822,7 +5822,7 @@ define hidden range(i64 1, 0) i64 @_ZN3syn2op4UnOp3Not17ha14ca47f4f9546e7E.llvm. } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable -define hidden range(i64 2, 0) i64 @_ZN3syn2op4UnOp3Neg17h8fb6b1c1bb916c80E.llvm.11523544799934805625(i32 %0) unnamed_addr #2 { +define hidden range(i64 2, -2147483648) i64 @_ZN3syn2op4UnOp3Neg17h8fb6b1c1bb916c80E.llvm.11523544799934805625(i32 %0) unnamed_addr #2 { %.sroa.2.0.insert.ext = zext i32 %0 to i64 %.sroa.2.0.insert.shift = shl nuw i64 %.sroa.2.0.insert.ext, 32 %.sroa.02.0.insert.insert = or disjoint i64 %.sroa.2.0.insert.shift, 2 diff --git a/bench/verilator/optimized/V3Clean.cpp.ll b/bench/verilator/optimized/V3Clean.cpp.ll index 794d0123827..8bc0ef679ea 100644 --- a/bench/verilator/optimized/V3Clean.cpp.ll +++ b/bench/verilator/optimized/V3Clean.cpp.ll @@ -4376,175 +4376,174 @@ _ZN12CleanVisitor8cppWidthEP7AstNode.exit: ; preds = %_ZNK7AstNode10width %37 = and i8 %36, -64 store i8 %37, ptr %35, align 1 %38 = getelementptr inbounds nuw i8, ptr %5, i64 40 - %39 = icmp ne i32 %.0.i, 0 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %38, i8 0, i64 16, i1 false) - invoke void @_ZN8V3Number4initEP7AstNodeib(ptr noundef nonnull align 8 dereferenceable(56) %5, ptr noundef nonnull %1, i32 noundef %.0.i, i1 noundef zeroext %39) - to label %_ZN8V3NumberC2EP7AstNodei.exit unwind label %40 + invoke void @_ZN8V3Number4initEP7AstNodeib(ptr noundef nonnull align 8 dereferenceable(56) %5, ptr noundef nonnull %1, i32 noundef %.0.i, i1 noundef zeroext true) + to label %_ZN8V3NumberC2EP7AstNodei.exit unwind label %39 -40: ; preds = %_ZN12CleanVisitor8cppWidthEP7AstNode.exit - %41 = landingpad { ptr, i32 } +39: ; preds = %_ZN12CleanVisitor8cppWidthEP7AstNode.exit + %40 = landingpad { ptr, i32 } cleanup call void @_ZN12V3NumberDataD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %5) #18 br label %.body _ZN8V3NumberC2EP7AstNodei.exit: ; preds = %_ZN12CleanVisitor8cppWidthEP7AstNode.exit - %42 = load ptr, ptr %25, align 8 - %.not.i25 = icmp eq ptr %42, null - br i1 %.not.i25, label %_ZNK7AstNode8widthMinEv.exit, label %43 - -43: ; preds = %_ZN8V3NumberC2EP7AstNodei.exit - %44 = getelementptr inbounds nuw i8, ptr %42, i64 156 - %45 = load i32, ptr %44, align 4 - %.not.i.i26 = icmp eq i32 %45, 0 - %46 = getelementptr inbounds nuw i8, ptr %42, i64 152 - %47 = load i32, ptr %46, align 8 - %48 = select i1 %.not.i.i26, i32 %47, i32 %45 + %41 = load ptr, ptr %25, align 8 + %.not.i25 = icmp eq ptr %41, null + br i1 %.not.i25, label %_ZNK7AstNode8widthMinEv.exit, label %42 + +42: ; preds = %_ZN8V3NumberC2EP7AstNodei.exit + %43 = getelementptr inbounds nuw i8, ptr %41, i64 156 + %44 = load i32, ptr %43, align 4 + %.not.i.i26 = icmp eq i32 %44, 0 + %45 = getelementptr inbounds nuw i8, ptr %41, i64 152 + %46 = load i32, ptr %45, align 8 + %47 = select i1 %.not.i.i26, i32 %46, i32 %44 br label %_ZNK7AstNode8widthMinEv.exit -_ZNK7AstNode8widthMinEv.exit: ; preds = %43, %_ZN8V3NumberC2EP7AstNodei.exit - %49 = phi i32 [ %48, %43 ], [ 0, %_ZN8V3NumberC2EP7AstNodei.exit ] - %50 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN8V3Number7setMaskEi(ptr noundef nonnull align 8 dereferenceable(56) %5, i32 noundef %49) - to label %51 unwind label %85 +_ZNK7AstNode8widthMinEv.exit: ; preds = %42, %_ZN8V3NumberC2EP7AstNodei.exit + %48 = phi i32 [ %47, %42 ], [ 0, %_ZN8V3NumberC2EP7AstNodei.exit ] + %49 = invoke noundef nonnull align 8 dereferenceable(56) ptr @_ZN8V3Number7setMaskEi(ptr noundef nonnull align 8 dereferenceable(56) %5, i32 noundef %48) + to label %50 unwind label %84 -51: ; preds = %_ZNK7AstNode8widthMinEv.exit - %52 = invoke noalias noundef nonnull dereferenceable(160) ptr @_Znwm(i64 noundef 160) #23 - to label %53 unwind label %85 +50: ; preds = %_ZNK7AstNode8widthMinEv.exit + %51 = invoke noalias noundef nonnull dereferenceable(160) ptr @_Znwm(i64 noundef 160) #23 + to label %52 unwind label %84 -53: ; preds = %51 - %54 = getelementptr inbounds nuw i8, ptr %1, i64 88 - %55 = load ptr, ptr %54, align 8 - %56 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #23 - to label %57 unwind label %87 +52: ; preds = %50 + %53 = getelementptr inbounds nuw i8, ptr %1, i64 88 + %54 = load ptr, ptr %53, align 8 + %55 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #23 + to label %56 unwind label %86 -57: ; preds = %53 - invoke void @_ZN7AstNodeC2E6VNTypeP8FileLine(ptr noundef nonnull align 8 dereferenceable(208) %56, i16 95, ptr noundef %55) - to label %.noexc27 unwind label %89 +56: ; preds = %52 + invoke void @_ZN7AstNodeC2E6VNTypeP8FileLine(ptr noundef nonnull align 8 dereferenceable(208) %55, i16 95, ptr noundef %54) + to label %.noexc27 unwind label %88 -.noexc27: ; preds = %57 - store ptr getelementptr inbounds nuw (i8, ptr @_ZTV8AstConst, i64 16), ptr %56, align 8 - %58 = getelementptr inbounds nuw i8, ptr %56, i64 152 - invoke void @_ZN12V3NumberDataC2ERKS_(ptr noundef nonnull align 8 dereferenceable(56) %58, ptr noundef nonnull align 8 dereferenceable(56) %5) - to label %.noexc28 unwind label %89 +.noexc27: ; preds = %56 + store ptr getelementptr inbounds nuw (i8, ptr @_ZTV8AstConst, i64 16), ptr %55, align 8 + %57 = getelementptr inbounds nuw i8, ptr %55, i64 152 + invoke void @_ZN12V3NumberDataC2ERKS_(ptr noundef nonnull align 8 dereferenceable(56) %57, ptr noundef nonnull align 8 dereferenceable(56) %5) + to label %.noexc28 unwind label %88 .noexc28: ; preds = %.noexc27 - %59 = getelementptr inbounds nuw i8, ptr %56, i64 192 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %59, ptr noundef nonnull align 8 dereferenceable(16) %38, i64 16, i1 false) - invoke void @_ZN8AstConst14initWithNumberEv(ptr noundef nonnull align 8 dereferenceable(208) %56) - to label %_ZN8AstConstC2EP8FileLineRK8V3Number.exit unwind label %60 + %58 = getelementptr inbounds nuw i8, ptr %55, i64 192 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %58, ptr noundef nonnull align 8 dereferenceable(16) %38, i64 16, i1 false) + invoke void @_ZN8AstConst14initWithNumberEv(ptr noundef nonnull align 8 dereferenceable(208) %55) + to label %_ZN8AstConstC2EP8FileLineRK8V3Number.exit unwind label %59 -60: ; preds = %.noexc28 - %61 = landingpad { ptr, i32 } +59: ; preds = %.noexc28 + %60 = landingpad { ptr, i32 } cleanup - call void @_ZN8V3NumberD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %58) #18 + call void @_ZN8V3NumberD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %57) #18 br label %.body29 _ZN8AstConstC2EP8FileLineRK8V3Number.exit: ; preds = %.noexc28 - invoke void @_ZN7AstNodeC2E6VNTypeP8FileLine(ptr noundef nonnull align 8 dereferenceable(160) %52, i16 216, ptr noundef %55) - to label %.noexc32 unwind label %87 + invoke void @_ZN7AstNodeC2E6VNTypeP8FileLine(ptr noundef nonnull align 8 dereferenceable(160) %51, i16 216, ptr noundef %54) + to label %.noexc32 unwind label %86 .noexc32: ; preds = %_ZN8AstConstC2EP8FileLineRK8V3Number.exit - store ptr getelementptr inbounds nuw (i8, ptr @_ZTV11AstNodeBiop, i64 16), ptr %52, align 8 - %62 = getelementptr inbounds nuw i8, ptr %52, i64 152 - store i64 0, ptr %62, align 8 - invoke void @_ZN7AstNode7setOp1pEPS_(ptr noundef nonnull align 8 dereferenceable(160) %52, ptr noundef nonnull %56) - to label %.noexc33 unwind label %87 + store ptr getelementptr inbounds nuw (i8, ptr @_ZTV11AstNodeBiop, i64 16), ptr %51, align 8 + %61 = getelementptr inbounds nuw i8, ptr %51, i64 152 + store i64 0, ptr %61, align 8 + invoke void @_ZN7AstNode7setOp1pEPS_(ptr noundef nonnull align 8 dereferenceable(160) %51, ptr noundef nonnull %55) + to label %.noexc33 unwind label %86 .noexc33: ; preds = %.noexc32 - invoke void @_ZN7AstNode7setOp2pEPS_(ptr noundef nonnull align 8 dereferenceable(160) %52, ptr noundef nonnull %1) - to label %.noexc34 unwind label %87 + invoke void @_ZN7AstNode7setOp2pEPS_(ptr noundef nonnull align 8 dereferenceable(160) %51, ptr noundef nonnull %1) + to label %.noexc34 unwind label %86 .noexc34: ; preds = %.noexc33 - store ptr getelementptr inbounds nuw (i8, ptr @_ZTV6AstAnd, i64 16), ptr %52, align 8 - %63 = getelementptr inbounds nuw i8, ptr %56, i64 72 - %64 = load ptr, ptr %63, align 8 - %65 = getelementptr inbounds nuw i8, ptr %52, i64 72 - %66 = load ptr, ptr %65, align 8 - %.not.i.i.i = icmp eq ptr %66, %64 - br i1 %.not.i.i.i, label %_ZN6AstAndC2EP8FileLineP11AstNodeExprS3_.exit, label %67 - -67: ; preds = %.noexc34 - store ptr %64, ptr %65, align 8 - %68 = load i64, ptr @_ZN7AstNode12s_editCntGblE, align 8 - %69 = add i64 %68, 1 - store i64 %69, ptr @_ZN7AstNode12s_editCntGblE, align 8 + store ptr getelementptr inbounds nuw (i8, ptr @_ZTV6AstAnd, i64 16), ptr %51, align 8 + %62 = getelementptr inbounds nuw i8, ptr %55, i64 72 + %63 = load ptr, ptr %62, align 8 + %64 = getelementptr inbounds nuw i8, ptr %51, i64 72 + %65 = load ptr, ptr %64, align 8 + %.not.i.i.i = icmp eq ptr %65, %63 + br i1 %.not.i.i.i, label %_ZN6AstAndC2EP8FileLineP11AstNodeExprS3_.exit, label %66 + +66: ; preds = %.noexc34 + store ptr %63, ptr %64, align 8 + %67 = load i64, ptr @_ZN7AstNode12s_editCntGblE, align 8 + %68 = add i64 %67, 1 + store i64 %68, ptr @_ZN7AstNode12s_editCntGblE, align 8 br label %_ZN6AstAndC2EP8FileLineP11AstNodeExprS3_.exit -_ZN6AstAndC2EP8FileLineP11AstNodeExprS3_.exit: ; preds = %.noexc34, %67 - %70 = load ptr, ptr %25, align 8 - %.not.i.i36 = icmp eq ptr %64, %70 - br i1 %.not.i.i36, label %_ZN7AstNode9dtypeFromEPKS_.exit, label %71 +_ZN6AstAndC2EP8FileLineP11AstNodeExprS3_.exit: ; preds = %.noexc34, %66 + %69 = load ptr, ptr %25, align 8 + %.not.i.i36 = icmp eq ptr %63, %69 + br i1 %.not.i.i36, label %_ZN7AstNode9dtypeFromEPKS_.exit, label %70 -71: ; preds = %_ZN6AstAndC2EP8FileLineP11AstNodeExprS3_.exit - store ptr %70, ptr %65, align 8 - %72 = load i64, ptr @_ZN7AstNode12s_editCntGblE, align 8 - %73 = add i64 %72, 1 - store i64 %73, ptr @_ZN7AstNode12s_editCntGblE, align 8 +70: ; preds = %_ZN6AstAndC2EP8FileLineP11AstNodeExprS3_.exit + store ptr %69, ptr %64, align 8 + %71 = load i64, ptr @_ZN7AstNode12s_editCntGblE, align 8 + %72 = add i64 %71, 1 + store i64 %72, ptr @_ZN7AstNode12s_editCntGblE, align 8 br label %_ZN7AstNode9dtypeFromEPKS_.exit -_ZN7AstNode9dtypeFromEPKS_.exit: ; preds = %71, %_ZN6AstAndC2EP8FileLineP11AstNodeExprS3_.exit - invoke void @_ZN7AstNode6relinkEP10VNRelinker(ptr noundef nonnull align 8 dereferenceable(152) %52, ptr noundef nonnull align 8 dereferenceable(32) %4) - to label %_ZN10VNRelinker6relinkEP7AstNode.exit unwind label %85 +_ZN7AstNode9dtypeFromEPKS_.exit: ; preds = %70, %_ZN6AstAndC2EP8FileLineP11AstNodeExprS3_.exit + invoke void @_ZN7AstNode6relinkEP10VNRelinker(ptr noundef nonnull align 8 dereferenceable(152) %51, ptr noundef nonnull align 8 dereferenceable(32) %4) + to label %_ZN10VNRelinker6relinkEP7AstNode.exit unwind label %84 _ZN10VNRelinker6relinkEP7AstNode.exit: ; preds = %_ZN7AstNode9dtypeFromEPKS_.exit - %74 = load i8, ptr %34, align 4 - %75 = icmp eq i8 %74, 3 - br i1 %75, label %76, label %77 + %73 = load i8, ptr %34, align 4 + %74 = icmp eq i8 %73, 3 + br i1 %74, label %75, label %76 -76: ; preds = %_ZN10VNRelinker6relinkEP7AstNode.exit +75: ; preds = %_ZN10VNRelinker6relinkEP7AstNode.exit call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(56) %5) #18 br label %_ZN8V3NumberD2Ev.exit -77: ; preds = %_ZN10VNRelinker6relinkEP7AstNode.exit - %78 = load i32, ptr %33, align 8 - %79 = icmp sgt i32 %78, 128 - %80 = icmp eq i8 %74, 1 - %81 = and i1 %80, %79 - br i1 %81, label %82, label %_ZN8V3NumberD2Ev.exit - -82: ; preds = %77 - %83 = load ptr, ptr %5, align 8 - %.not.i.i.i.i.i.i.i = icmp eq ptr %83, null - br i1 %.not.i.i.i.i.i.i.i, label %_ZN8V3NumberD2Ev.exit, label %84 - -84: ; preds = %82 - call void @_ZdlPv(ptr noundef nonnull %83) #21 +76: ; preds = %_ZN10VNRelinker6relinkEP7AstNode.exit + %77 = load i32, ptr %33, align 8 + %78 = icmp sgt i32 %77, 128 + %79 = icmp eq i8 %73, 1 + %80 = and i1 %79, %78 + br i1 %80, label %81, label %_ZN8V3NumberD2Ev.exit + +81: ; preds = %76 + %82 = load ptr, ptr %5, align 8 + %.not.i.i.i.i.i.i.i = icmp eq ptr %82, null + br i1 %.not.i.i.i.i.i.i.i, label %_ZN8V3NumberD2Ev.exit, label %83 + +83: ; preds = %81 + call void @_ZdlPv(ptr noundef nonnull %82) #21 br label %_ZN8V3NumberD2Ev.exit -_ZN8V3NumberD2Ev.exit: ; preds = %76, %77, %82, %84 +_ZN8V3NumberD2Ev.exit: ; preds = %75, %76, %81, %83 ret void -85: ; preds = %_ZN7AstNode9dtypeFromEPKS_.exit, %51, %_ZNK7AstNode8widthMinEv.exit - %86 = landingpad { ptr, i32 } +84: ; preds = %_ZN7AstNode9dtypeFromEPKS_.exit, %50, %_ZNK7AstNode8widthMinEv.exit + %85 = landingpad { ptr, i32 } cleanup - br label %92 + br label %91 -87: ; preds = %.noexc33, %.noexc32, %_ZN8AstConstC2EP8FileLineRK8V3Number.exit, %53 - %88 = landingpad { ptr, i32 } +86: ; preds = %.noexc33, %.noexc32, %_ZN8AstConstC2EP8FileLineRK8V3Number.exit, %52 + %87 = landingpad { ptr, i32 } cleanup - br label %91 + br label %90 -89: ; preds = %.noexc27, %57 - %90 = landingpad { ptr, i32 } +88: ; preds = %.noexc27, %56 + %89 = landingpad { ptr, i32 } cleanup br label %.body29 -.body29: ; preds = %60, %89 - %eh.lpad-body30 = phi { ptr, i32 } [ %90, %89 ], [ %61, %60 ] - call void @_ZdlPv(ptr noundef nonnull %56) #21 - br label %91 +.body29: ; preds = %59, %88 + %eh.lpad-body30 = phi { ptr, i32 } [ %89, %88 ], [ %60, %59 ] + call void @_ZdlPv(ptr noundef nonnull %55) #21 + br label %90 -91: ; preds = %.body29, %87 - %.pn = phi { ptr, i32 } [ %88, %87 ], [ %eh.lpad-body30, %.body29 ] - call void @_ZdlPv(ptr noundef nonnull %52) #21 - br label %92 +90: ; preds = %.body29, %86 + %.pn = phi { ptr, i32 } [ %87, %86 ], [ %eh.lpad-body30, %.body29 ] + call void @_ZdlPv(ptr noundef nonnull %51) #21 + br label %91 -92: ; preds = %91, %85 - %.pn19 = phi { ptr, i32 } [ %86, %85 ], [ %.pn, %91 ] +91: ; preds = %90, %84 + %.pn19 = phi { ptr, i32 } [ %85, %84 ], [ %.pn, %90 ] call void @_ZN8V3NumberD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %5) #18 br label %.body -.body: ; preds = %92, %40, %22 - %.pn19.pn.pn = phi { ptr, i32 } [ %23, %22 ], [ %.pn19, %92 ], [ %41, %40 ] +.body: ; preds = %91, %39, %22 + %.pn19.pn.pn = phi { ptr, i32 } [ %23, %22 ], [ %.pn19, %91 ], [ %40, %39 ] resume { ptr, i32 } %.pn19.pn.pn } diff --git a/bench/wasmedge/optimized/inode-linux.cpp.ll b/bench/wasmedge/optimized/inode-linux.cpp.ll index 561b8bbaaca..718b2e83d90 100644 --- a/bench/wasmedge/optimized/inode-linux.cpp.ll +++ b/bench/wasmedge/optimized/inode-linux.cpp.ll @@ -463,7 +463,7 @@ define range(i32 0, -65535) i32 @_ZNK8WasmEdge4Host4WASI5INode10fdDatasyncEv(ptr declare i32 @fdatasync(i32 noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind uwtable -define i32 @_ZNK8WasmEdge4Host4WASI5INode11fdFdstatGetER15__wasi_fdstat_t(ptr nocapture noundef nonnull align 8 dereferenceable(200) initializes((8, 153)) %0, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(24) %1) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { +define range(i32 0, -32768) i32 @_ZNK8WasmEdge4Host4WASI5INode11fdFdstatGetER15__wasi_fdstat_t(ptr nocapture noundef nonnull align 8 dereferenceable(200) initializes((8, 153)) %0, ptr nocapture noundef nonnull writeonly align 8 dereferenceable(24) %1) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { %3 = getelementptr inbounds nuw i8, ptr %0, i64 8 %4 = getelementptr inbounds nuw i8, ptr %0, i64 152 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(152) %3, i8 0, i64 144, i1 false) @@ -1078,7 +1078,7 @@ define range(i32 0, -65535) i32 @_ZNK8WasmEdge4Host4WASI5INode6fdReadEN5cxx204sp declare i64 @readv(i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind uwtable -define i32 @_ZN8WasmEdge4Host4WASI5INode9fdReaddirEN5cxx204spanIhLm18446744073709551615EEEmRj(ptr noundef nonnull align 8 dereferenceable(200) %0, ptr nocapture writeonly %1, i64 %2, i64 noundef %3, ptr nocapture noundef nonnull align 4 dereferenceable(4) %4) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { +define range(i32 0, -32768) i32 @_ZN8WasmEdge4Host4WASI5INode9fdReaddirEN5cxx204spanIhLm18446744073709551615EEEmRj(ptr noundef nonnull align 8 dereferenceable(200) %0, ptr nocapture writeonly %1, i64 %2, i64 noundef %3, ptr nocapture noundef nonnull align 4 dereferenceable(4) %4) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { %6 = getelementptr inbounds nuw i8, ptr %0, i64 160 %7 = load ptr, ptr %6, align 8 %.not75 = icmp eq ptr %7, null @@ -2051,7 +2051,7 @@ define range(i32 0, -65535) i32 @_ZNK8WasmEdge4Host4WASI5INode14pathUnlinkFileEN } ; Function Attrs: mustprogress nounwind uwtable -define range(i32 0, 8388608) i32 @_ZN8WasmEdge4Host4WASI5INode11getAddrinfoESt17basic_string_viewIcSt11char_traitsIcEES6_RK17__wasi_addrinfo_tjN5cxx204spanIPS7_Lm18446744073709551615EEENSB_IP17__wasi_sockaddr_tLm18446744073709551615EEENSB_IPcLm18446744073709551615EEESI_Rj(i64 %0, ptr %1, i64 %2, ptr %3, ptr nocapture noundef nonnull readonly align 4 dereferenceable(28) %4, i32 noundef %5, ptr nocapture noundef readonly byval(%"struct.cxx20::span.46") align 8 %6, ptr nocapture noundef readonly byval(%"struct.cxx20::span.48") align 8 %7, ptr nocapture noundef readonly byval(%"struct.cxx20::span.50") align 8 %8, ptr nocapture noundef readonly byval(%"struct.cxx20::span.50") align 8 %9, ptr nocapture noundef nonnull align 4 dereferenceable(4) %10) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { +define range(i32 0, 6291456) i32 @_ZN8WasmEdge4Host4WASI5INode11getAddrinfoESt17basic_string_viewIcSt11char_traitsIcEES6_RK17__wasi_addrinfo_tjN5cxx204spanIPS7_Lm18446744073709551615EEENSB_IP17__wasi_sockaddr_tLm18446744073709551615EEENSB_IPcLm18446744073709551615EEESI_Rj(i64 %0, ptr %1, i64 %2, ptr %3, ptr nocapture noundef nonnull readonly align 4 dereferenceable(28) %4, i32 noundef %5, ptr nocapture noundef readonly byval(%"struct.cxx20::span.46") align 8 %6, ptr nocapture noundef readonly byval(%"struct.cxx20::span.48") align 8 %7, ptr nocapture noundef readonly byval(%"struct.cxx20::span.50") align 8 %8, ptr nocapture noundef readonly byval(%"struct.cxx20::span.50") align 8 %9, ptr nocapture noundef nonnull align 4 dereferenceable(4) %10) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { %12 = alloca %struct.addrinfo, align 8 %13 = alloca ptr, align 8 %14 = icmp eq i64 %0, 0 @@ -2770,7 +2770,7 @@ _ZSt5visitIN8WasmEdge4Host4WASI11VarAddrSizeEJRSt7variantIJNS2_13SockEmptyAddrE1 declare i32 @connect(i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #1 ; Function Attrs: mustprogress nounwind uwtable -define i32 @_ZNK8WasmEdge4Host4WASI5INode8sockRecvEN5cxx204spanINS4_IhLm18446744073709551615EEELm18446744073709551615EEE16__wasi_riflags_tRjR16__wasi_roflags_t(ptr nocapture noundef nonnull readonly align 8 dereferenceable(200) %0, ptr %1, i64 %2, i16 noundef zeroext %3, ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) %4, ptr nocapture noundef nonnull writeonly align 2 dereferenceable(2) %5) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { +define range(i32 0, -32768) i32 @_ZNK8WasmEdge4Host4WASI5INode8sockRecvEN5cxx204spanINS4_IhLm18446744073709551615EEELm18446744073709551615EEE16__wasi_riflags_tRjR16__wasi_roflags_t(ptr nocapture noundef nonnull readonly align 8 dereferenceable(200) %0, ptr %1, i64 %2, i16 noundef zeroext %3, ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) %4, ptr nocapture noundef nonnull writeonly align 2 dereferenceable(2) %5) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { %7 = alloca %"struct.cxx20::span.25", align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %7, i8 0, i64 16, i1 false) %8 = tail call i32 @_ZNK8WasmEdge4Host4WASI5INode12sockRecvFromEN5cxx204spanINS4_IhLm18446744073709551615EEELm18446744073709551615EEE16__wasi_riflags_tP23__wasi_address_family_tS5_PtRjR16__wasi_roflags_t(ptr noundef nonnull align 8 dereferenceable(200) %0, ptr %1, i64 %2, i16 noundef zeroext %3, ptr noundef null, ptr noundef nonnull byval(%"struct.cxx20::span.25") align 8 %7, ptr noundef null, ptr noundef nonnull align 4 dereferenceable(4) %4, ptr noundef nonnull align 2 dereferenceable(2) %5) #24 @@ -2778,7 +2778,7 @@ define i32 @_ZNK8WasmEdge4Host4WASI5INode8sockRecvEN5cxx204spanINS4_IhLm18446744 } ; Function Attrs: mustprogress nounwind uwtable -define i32 @_ZNK8WasmEdge4Host4WASI5INode12sockRecvFromEN5cxx204spanINS4_IhLm18446744073709551615EEELm18446744073709551615EEE16__wasi_riflags_tP23__wasi_address_family_tS5_PtRjR16__wasi_roflags_t(ptr nocapture noundef nonnull readonly align 8 dereferenceable(200) %0, ptr readonly %1, i64 %2, i16 noundef zeroext %3, ptr noundef writeonly %4, ptr nocapture noundef readonly byval(%"struct.cxx20::span.25") align 8 %5, ptr noundef writeonly %6, ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) %7, ptr nocapture noundef nonnull writeonly align 2 dereferenceable(2) %8) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { +define range(i32 0, -32768) i32 @_ZNK8WasmEdge4Host4WASI5INode12sockRecvFromEN5cxx204spanINS4_IhLm18446744073709551615EEELm18446744073709551615EEE16__wasi_riflags_tP23__wasi_address_family_tS5_PtRjR16__wasi_roflags_t(ptr nocapture noundef nonnull readonly align 8 dereferenceable(200) %0, ptr readonly %1, i64 %2, i16 noundef zeroext %3, ptr noundef writeonly %4, ptr nocapture noundef readonly byval(%"struct.cxx20::span.25") align 8 %5, ptr noundef writeonly %6, ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) %7, ptr nocapture noundef nonnull writeonly align 2 dereferenceable(2) %8) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { %10 = alloca [1024 x %struct.iovec], align 16 %11 = alloca %struct.sockaddr_storage, align 8 %12 = alloca %struct.msghdr, align 8 @@ -3190,7 +3190,7 @@ define range(i32 0, -65535) i32 @_ZNK8WasmEdge4Host4WASI5INode12sockShutdownE16_ declare i32 @shutdown(i32 noundef, i32 noundef) local_unnamed_addr #4 ; Function Attrs: mustprogress nounwind uwtable -define i32 @_ZNK8WasmEdge4Host4WASI5INode10sockGetOptE23__wasi_sock_opt_level_t20__wasi_sock_opt_so_tRN5cxx204spanIhLm18446744073709551615EEE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(200) %0, i32 noundef %1, i32 noundef %2, ptr nocapture noundef nonnull align 8 dereferenceable(16) %3) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { +define range(i32 0, -32768) i32 @_ZNK8WasmEdge4Host4WASI5INode10sockGetOptE23__wasi_sock_opt_level_t20__wasi_sock_opt_so_tRN5cxx204spanIhLm18446744073709551615EEE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(200) %0, i32 noundef %1, i32 noundef %2, ptr nocapture noundef nonnull align 8 dereferenceable(16) %3) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { switch.lookup: %4 = alloca i32, align 4 %5 = sext i32 %2 to i64 @@ -3292,7 +3292,7 @@ switch.lookup: declare i32 @setsockopt(i32 noundef, i32 noundef, i32 noundef, ptr noundef, i32 noundef) local_unnamed_addr #4 ; Function Attrs: mustprogress nounwind uwtable -define i32 @_ZNK8WasmEdge4Host4WASI5INode16sockGetLocalAddrEP23__wasi_address_family_tN5cxx204spanIhLm18446744073709551615EEEPt(ptr nocapture noundef nonnull readonly align 8 dereferenceable(200) %0, ptr noundef writeonly %1, ptr nocapture writeonly %2, i64 %3, ptr noundef writeonly %4) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { +define range(i32 0, -32768) i32 @_ZNK8WasmEdge4Host4WASI5INode16sockGetLocalAddrEP23__wasi_address_family_tN5cxx204spanIhLm18446744073709551615EEEPt(ptr nocapture noundef nonnull readonly align 8 dereferenceable(200) %0, ptr noundef writeonly %1, ptr nocapture writeonly %2, i64 %3, ptr noundef writeonly %4) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { %6 = alloca %struct.sockaddr_storage, align 8 %7 = alloca i32, align 4 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(128) %6, i8 0, i64 128, i1 false) @@ -3410,7 +3410,7 @@ declare i32 @getsockname(i32 noundef, ptr noundef, ptr noundef) local_unnamed_ad declare zeroext i16 @ntohs(i16 noundef zeroext) local_unnamed_addr #9 ; Function Attrs: mustprogress nounwind uwtable -define i32 @_ZNK8WasmEdge4Host4WASI5INode15sockGetPeerAddrEP23__wasi_address_family_tN5cxx204spanIhLm18446744073709551615EEEPt(ptr nocapture noundef nonnull readonly align 8 dereferenceable(200) %0, ptr noundef writeonly %1, ptr nocapture writeonly %2, i64 %3, ptr noundef writeonly %4) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { +define range(i32 0, -32768) i32 @_ZNK8WasmEdge4Host4WASI5INode15sockGetPeerAddrEP23__wasi_address_family_tN5cxx204spanIhLm18446744073709551615EEEPt(ptr nocapture noundef nonnull readonly align 8 dereferenceable(200) %0, ptr noundef writeonly %1, ptr nocapture writeonly %2, i64 %3, ptr noundef writeonly %4) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { %6 = alloca %struct.sockaddr_storage, align 8 %7 = alloca i32, align 4 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(128) %6, i8 0, i64 128, i1 false) @@ -3525,7 +3525,7 @@ define i32 @_ZNK8WasmEdge4Host4WASI5INode15sockGetPeerAddrEP23__wasi_address_fam declare i32 @getpeername(i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #4 ; Function Attrs: mustprogress nounwind uwtable -define i32 @_ZNK8WasmEdge4Host4WASI5INode8filetypeEv(ptr nocapture noundef nonnull align 8 dereferenceable(200) %0) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { +define range(i32 0, -32768) i32 @_ZNK8WasmEdge4Host4WASI5INode8filetypeEv(ptr nocapture noundef nonnull align 8 dereferenceable(200) %0) local_unnamed_addr #0 align 2 personality ptr @__gxx_personality_v0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 152 %3 = load i8, ptr %2, align 8 %4 = trunc i8 %3 to i1 diff --git a/bench/wasmtime-rs/optimized/1kan0u7yfu7u6hal.ll b/bench/wasmtime-rs/optimized/1kan0u7yfu7u6hal.ll index 8e6a7cd0baf..0a094140575 100644 --- a/bench/wasmtime-rs/optimized/1kan0u7yfu7u6hal.ll +++ b/bench/wasmtime-rs/optimized/1kan0u7yfu7u6hal.ll @@ -3324,20 +3324,18 @@ define hidden void @"_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padd %6 = load atomic i64, ptr %0 monotonic, align 128, !alias.scope !1444 %7 = and i64 %6, -8 %8 = inttoptr i64 %7 to ptr - %9 = icmp ne i64 %7, 0 - tail call void @llvm.assume(i1 %9) - %10 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %11 = load i64, ptr %10, align 8, !noalias !1444, !noundef !4 - %12 = icmp eq i64 %11, 0 - br i1 %12, label %"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17hffec2d24f542fce8E.llvm.3847999990672408200.exit", label %13 + %9 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %10 = load i64, ptr %9, align 8, !noalias !1444, !noundef !4 + %11 = icmp eq i64 %10, 0 + br i1 %11, label %"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17hffec2d24f542fce8E.llvm.3847999990672408200.exit", label %12 -13: ; preds = %1 - %14 = load ptr, ptr %8, align 8, !noalias !1444, !nonnull !4, !noundef !4 - %15 = shl nuw i64 %11, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %14, i64 noundef %15, i64 noundef 8) #23, !noalias !1445 +12: ; preds = %1 + %13 = load ptr, ptr %8, align 8, !noalias !1444, !nonnull !4, !noundef !4 + %14 = shl nuw i64 %10, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %13, i64 noundef %14, i64 noundef 8) #23, !noalias !1445 br label %"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17hffec2d24f542fce8E.llvm.3847999990672408200.exit" -"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17hffec2d24f542fce8E.llvm.3847999990672408200.exit": ; preds = %1, %13 +"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$17hffec2d24f542fce8E.llvm.3847999990672408200.exit": ; preds = %1, %12 tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef 16, i64 noundef 8) #23, !noalias !1444 ret void } @@ -4515,20 +4513,18 @@ define hidden void @"_ZN4core3ptr160drop_in_place$LT$alloc..sync..ArcInner$LT$cr %7 = load atomic i64, ptr %2 monotonic, align 128, !alias.scope !1858 %8 = and i64 %7, -8 %9 = inttoptr i64 %8 to ptr - %10 = icmp ne i64 %8, 0 - tail call void @llvm.assume(i1 %10) - %11 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %12 = load i64, ptr %11, align 8, !noalias !1858, !noundef !4 - %13 = icmp eq i64 %12, 0 - br i1 %13, label %"_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$$GT$17hfc282761384fc8adE.exit", label %14 + %10 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %11 = load i64, ptr %10, align 8, !noalias !1858, !noundef !4 + %12 = icmp eq i64 %11, 0 + br i1 %12, label %"_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$$GT$17hfc282761384fc8adE.exit", label %13 -14: ; preds = %1 - %15 = load ptr, ptr %9, align 8, !noalias !1858, !nonnull !4, !noundef !4 - %16 = shl nuw i64 %12, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %15, i64 noundef %16, i64 noundef 8) #23, !noalias !1859 +13: ; preds = %1 + %14 = load ptr, ptr %9, align 8, !noalias !1858, !nonnull !4, !noundef !4 + %15 = shl nuw i64 %11, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %14, i64 noundef %15, i64 noundef 8) #23, !noalias !1859 br label %"_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$$GT$17hfc282761384fc8adE.exit" -"_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$$GT$17hfc282761384fc8adE.exit": ; preds = %1, %14 +"_ZN4core3ptr131drop_in_place$LT$crossbeam_utils..cache_padded..CachePadded$LT$crossbeam_deque..deque..Inner$LT$rayon_core..job..JobRef$GT$$GT$$GT$17hfc282761384fc8adE.exit": ; preds = %1, %13 tail call void @__rust_dealloc(ptr noundef nonnull %9, i64 noundef 16, i64 noundef 8) #23, !noalias !1858 ret void } @@ -14176,20 +14172,18 @@ define hidden void @"_ZN4core3ptr81drop_in_place$LT$crossbeam_deque..deque..Inne %6 = load atomic i64, ptr %0 monotonic, align 128, !alias.scope !6291 %7 = and i64 %6, -8 %8 = inttoptr i64 %7 to ptr - %9 = icmp ne i64 %7, 0 - tail call void @llvm.assume(i1 %9) - %10 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %11 = load i64, ptr %10, align 8, !noalias !6291, !noundef !4 - %12 = icmp eq i64 %11, 0 - br i1 %12, label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4634f3d4adebef54E.llvm.3847999990672408200.exit", label %13 + %9 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %10 = load i64, ptr %9, align 8, !noalias !6291, !noundef !4 + %11 = icmp eq i64 %10, 0 + br i1 %11, label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4634f3d4adebef54E.llvm.3847999990672408200.exit", label %12 -13: ; preds = %1 - %14 = load ptr, ptr %8, align 8, !noalias !6291, !nonnull !4, !noundef !4 - %15 = shl nuw i64 %11, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %14, i64 noundef %15, i64 noundef 8) #23, !noalias !6294 +12: ; preds = %1 + %13 = load ptr, ptr %8, align 8, !noalias !6291, !nonnull !4, !noundef !4 + %14 = shl nuw i64 %10, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %13, i64 noundef %14, i64 noundef 8) #23, !noalias !6294 br label %"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4634f3d4adebef54E.llvm.3847999990672408200.exit" -"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4634f3d4adebef54E.llvm.3847999990672408200.exit": ; preds = %1, %13 +"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4634f3d4adebef54E.llvm.3847999990672408200.exit": ; preds = %1, %12 tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef 16, i64 noundef 8) #23, !noalias !6291 ret void } @@ -21806,20 +21800,18 @@ define hidden void @"_ZN80_$LT$crossbeam_deque..deque..Inner$LT$T$GT$$u20$as$u20 %6 = load atomic i64, ptr %0 monotonic, align 128 %7 = and i64 %6, -8 %8 = inttoptr i64 %7 to ptr - %9 = icmp ne i64 %7, 0 - tail call void @llvm.assume(i1 %9) - %10 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %11 = load i64, ptr %10, align 8, !noundef !4 - %12 = icmp eq i64 %11, 0 - br i1 %12, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h395d7a358c084a71E.exit", label %13 + %9 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %10 = load i64, ptr %9, align 8, !noundef !4 + %11 = icmp eq i64 %10, 0 + br i1 %11, label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h395d7a358c084a71E.exit", label %12 -13: ; preds = %1 - %14 = load ptr, ptr %8, align 8, !nonnull !4, !noundef !4 - %15 = shl nuw i64 %11, 4 - tail call void @__rust_dealloc(ptr noundef nonnull %14, i64 noundef %15, i64 noundef 8) #23, !noalias !8310 +12: ; preds = %1 + %13 = load ptr, ptr %8, align 8, !nonnull !4, !noundef !4 + %14 = shl nuw i64 %10, 4 + tail call void @__rust_dealloc(ptr noundef nonnull %13, i64 noundef %14, i64 noundef 8) #23, !noalias !8310 br label %"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h395d7a358c084a71E.exit" -"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h395d7a358c084a71E.exit": ; preds = %13, %1 +"_ZN15crossbeam_deque5deque15Buffer$LT$T$GT$7dealloc17h395d7a358c084a71E.exit": ; preds = %12, %1 tail call void @__rust_dealloc(ptr noundef nonnull %8, i64 noundef 16, i64 noundef 8) #23 ret void } diff --git a/bench/wolfssl/optimized/aes.c.ll b/bench/wolfssl/optimized/aes.c.ll index 96fe7fca9fc..f6095f43444 100644 --- a/bench/wolfssl/optimized/aes.c.ll +++ b/bench/wolfssl/optimized/aes.c.ll @@ -74,20 +74,11 @@ for.body.i.i: ; preds = %for.body.i.i, %for. if.else.i24.i: ; preds = %if.end16.i %and6.i.i = and i32 %keylen, 252 - %cmp818.not.i.i = icmp eq i32 %and6.i.i, 0 - br i1 %cmp818.not.i.i, label %if.else.i.i.thread.i, label %for.body9.preheader.i.i - -if.else.i.i.thread.i: ; preds = %if.else.i24.i - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %temp.i.i) - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %aes, ptr readonly align 1 %userKey, i64 %conv.i, i1 false) - br label %ByteReverseWords.exit.i.i - -for.body9.preheader.i.i: ; preds = %if.else.i24.i %3 = zext nneg i32 %and6.i.i to i64 br label %for.body9.i.i -for.body9.i.i: ; preds = %for.body9.i.i, %for.body9.preheader.i.i - %indvars.iv.i.i = phi i64 [ 0, %for.body9.preheader.i.i ], [ %indvars.iv.next.i.i, %for.body9.i.i ] +for.body9.i.i: ; preds = %for.body9.i.i, %if.else.i24.i + %indvars.iv.i.i = phi i64 [ 0, %if.else.i24.i ], [ %indvars.iv.next.i.i, %for.body9.i.i ] %add.ptr.i.i = getelementptr inbounds nuw i8, ptr %aes, i64 %indvars.iv.i.i %scratch.0.copyload.i.i = load i32, ptr %add.ptr.i.i, align 1 %or.i16.i.i = tail call noundef i32 @llvm.bswap.i32(i32 %scratch.0.copyload.i.i) @@ -120,12 +111,12 @@ for.body.i.i.i: ; preds = %for.body.i.i.i, %fo br i1 %exitcond.not.i.i.i, label %ByteReverseWords.exit.i.i, label %for.body.i.i.i, !llvm.loop !4 if.else.i.i.i: ; preds = %ByteReverseWords.exit.i - %.pre.i = and i32 %keylen, 252 - %cmp818.not.i.i.i = icmp eq i32 %.pre.i, 0 + %and6.i.i.i = and i32 %keylen, 252 + %cmp818.not.i.i.i = icmp eq i32 %and6.i.i.i, 0 br i1 %cmp818.not.i.i.i, label %ByteReverseWords.exit.i.i, label %for.body9.preheader.i.i.i for.body9.preheader.i.i.i: ; preds = %if.else.i.i.i - %5 = zext nneg i32 %.pre.i to i64 + %5 = zext nneg i32 %and6.i.i.i to i64 br label %for.body9.i.i.i for.body9.i.i.i: ; preds = %for.body9.i.i.i, %for.body9.preheader.i.i.i @@ -138,7 +129,7 @@ for.body9.i.i.i: ; preds = %for.body9.i.i.i, %f %cmp8.i.i.i = icmp samesign ult i64 %indvars.iv.next.i.i.i, %5 br i1 %cmp8.i.i.i, label %for.body9.i.i.i, label %ByteReverseWords.exit.i.i, !llvm.loop !6 -ByteReverseWords.exit.i.i: ; preds = %for.body9.i.i.i, %for.body.i.i.i, %if.else.i.i.i, %if.then.i.i.i, %if.else.i.i.thread.i +ByteReverseWords.exit.i.i: ; preds = %for.body9.i.i.i, %for.body.i.i.i, %if.else.i.i.i, %if.then.i.i.i switch i8 %trunc, label %sw.epilog.i.i [ i8 16, label %while.body.preheader.i.i i8 24, label %while.body45.preheader.i.i diff --git a/bench/wolfssl/optimized/poly1305.c.ll b/bench/wolfssl/optimized/poly1305.c.ll index 692ec50bf90..ca46dbef046 100644 --- a/bench/wolfssl/optimized/poly1305.c.ll +++ b/bench/wolfssl/optimized/poly1305.c.ll @@ -334,52 +334,48 @@ return: ; preds = %if.end42, %for.end5 } ; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable -define internal fastcc void @poly1305_blocks(ptr nocapture noundef nonnull %ctx, ptr nocapture noundef readonly %m, i64 noundef range(i64 0, 4294967281) %bytes) unnamed_addr #1 { +define internal fastcc void @poly1305_blocks(ptr nocapture noundef nonnull %ctx, ptr nocapture noundef readonly %m, i64 noundef range(i64 16, 4294967281) %bytes) unnamed_addr #1 { entry: %finished = getelementptr inbounds nuw i8, ptr %ctx, i64 88 %0 = load i8, ptr %finished, align 8 %tobool.not = icmp eq i8 %0, 0 %cond = select i1 %tobool.not, i64 1099511627776, i64 0 + %1 = load i64, ptr %ctx, align 8 + %arrayidx4 = getelementptr inbounds nuw i8, ptr %ctx, i64 8 + %2 = load i64, ptr %arrayidx4, align 8 + %arrayidx6 = getelementptr inbounds nuw i8, ptr %ctx, i64 16 + %3 = load i64, ptr %arrayidx6, align 8 %h = getelementptr inbounds nuw i8, ptr %ctx, i64 24 - %1 = load i64, ptr %h, align 8 + %4 = load i64, ptr %h, align 8 %arrayidx9 = getelementptr inbounds nuw i8, ptr %ctx, i64 32 - %2 = load i64, ptr %arrayidx9, align 8 + %5 = load i64, ptr %arrayidx9, align 8 %arrayidx11 = getelementptr inbounds nuw i8, ptr %ctx, i64 40 - %3 = load i64, ptr %arrayidx11, align 8 - %cmp56 = icmp samesign ugt i64 %bytes, 15 - br i1 %cmp56, label %while.body.lr.ph, label %while.end - -while.body.lr.ph: ; preds = %entry - %arrayidx6 = getelementptr inbounds nuw i8, ptr %ctx, i64 16 - %4 = load i64, ptr %arrayidx6, align 8 - %mul12 = mul i64 %4, 20 - %arrayidx4 = getelementptr inbounds nuw i8, ptr %ctx, i64 8 - %5 = load i64, ptr %arrayidx4, align 8 - %mul = mul i64 %5, 20 - %6 = load i64, ptr %ctx, align 8 - %conv24 = zext i64 %6 to i128 + %6 = load i64, ptr %arrayidx11, align 8 + %mul = mul i64 %2, 20 + %mul12 = mul i64 %3, 20 + %conv24 = zext i64 %1 to i128 %conv27 = zext i64 %mul12 to i128 %conv31 = zext i64 %mul to i128 - %conv35 = zext i64 %5 to i128 - %conv46 = zext i64 %4 to i128 + %conv35 = zext i64 %2 to i128 + %conv46 = zext i64 %3 to i128 br label %while.body -while.body: ; preds = %while.body.lr.ph, %while.body - %m.addr.061 = phi ptr [ %m, %while.body.lr.ph ], [ %add.ptr, %while.body ] - %bytes.addr.060 = phi i64 [ %bytes, %while.body.lr.ph ], [ %sub, %while.body ] - %h0.059 = phi i64 [ %1, %while.body.lr.ph ], [ %and75, %while.body ] - %h1.058 = phi i64 [ %2, %while.body.lr.ph ], [ %add76, %while.body ] - %h2.057 = phi i64 [ %3, %while.body.lr.ph ], [ %and71, %while.body ] - %7 = load i64, ptr %m.addr.061, align 1 - %arrayidx15 = getelementptr inbounds nuw i8, ptr %m.addr.061, i64 8 +while.body: ; preds = %entry, %while.body + %m.addr.060 = phi ptr [ %m, %entry ], [ %add.ptr, %while.body ] + %bytes.addr.059 = phi i64 [ %bytes, %entry ], [ %sub, %while.body ] + %h0.058 = phi i64 [ %4, %entry ], [ %and75, %while.body ] + %h1.057 = phi i64 [ %5, %entry ], [ %add76, %while.body ] + %h2.056 = phi i64 [ %6, %entry ], [ %and71, %while.body ] + %7 = load i64, ptr %m.addr.060, align 1 + %arrayidx15 = getelementptr inbounds nuw i8, ptr %m.addr.060, i64 8 %8 = load i64, ptr %arrayidx15, align 1 %and = and i64 %7, 17592186044415 - %add = add i64 %and, %h0.059 + %add = add i64 %and, %h0.058 %or = tail call i64 @llvm.fshl.i64(i64 %8, i64 %7, i64 20) %and17 = and i64 %or, 17592186044415 - %add18 = add i64 %and17, %h1.058 + %add18 = add i64 %and17, %h1.057 %shr19 = lshr i64 %8, 24 - %or21 = add i64 %h2.057, %cond + %or21 = add i64 %h2.056, %cond %add22 = add i64 %or21, %shr19 %conv23 = zext i64 %add to i128 %mul25 = mul nuw i128 %conv23, %conv24 @@ -418,18 +414,15 @@ while.body: ; preds = %while.body.lr.ph, % %shr74 = lshr i64 %add73, 44 %and75 = and i64 %add73, 17592186044415 %add76 = add nuw nsw i64 %shr74, %and65 - %add.ptr = getelementptr inbounds nuw i8, ptr %m.addr.061, i64 16 - %sub = add nsw i64 %bytes.addr.060, -16 + %add.ptr = getelementptr inbounds nuw i8, ptr %m.addr.060, i64 16 + %sub = add nsw i64 %bytes.addr.059, -16 %cmp = icmp ugt i64 %sub, 15 br i1 %cmp, label %while.body, label %while.end, !llvm.loop !7 -while.end: ; preds = %while.body, %entry - %h2.0.lcssa = phi i64 [ %3, %entry ], [ %and71, %while.body ] - %h1.0.lcssa = phi i64 [ %2, %entry ], [ %add76, %while.body ] - %h0.0.lcssa = phi i64 [ %1, %entry ], [ %and75, %while.body ] - store i64 %h0.0.lcssa, ptr %h, align 8 - store i64 %h1.0.lcssa, ptr %arrayidx9, align 8 - store i64 %h2.0.lcssa, ptr %arrayidx11, align 8 +while.end: ; preds = %while.body + store i64 %and75, ptr %h, align 8 + store i64 %add76, ptr %arrayidx9, align 8 + store i64 %and71, ptr %arrayidx11, align 8 ret void } diff --git a/bench/xgboost/optimized/indexed_recordio_split.cc.ll b/bench/xgboost/optimized/indexed_recordio_split.cc.ll index 9af86c07cb1..97636fe3cb3 100644 --- a/bench/xgboost/optimized/indexed_recordio_split.cc.ll +++ b/bench/xgboost/optimized/indexed_recordio_split.cc.ll @@ -6155,20 +6155,20 @@ define linkonce_odr void @_ZSt11__make_heapIN9__gnu_cxx17__normal_iteratorIPmSt6 %39 = phi i64 [ %41, %45 ], [ %34, %.preheader21 ] %40 = add nsw i64 %39, -1 %41 = sdiv i64 %40, 2 - %42 = getelementptr inbounds nuw i64, ptr %0, i64 %41 + %42 = getelementptr inbounds i64, ptr %0, i64 %41 %43 = load i64, ptr %42, align 8, !tbaa !7 %44 = icmp ult i64 %43, %23 br i1 %44, label %45, label %.loopexit19 45: ; preds = %.preheader18 - %46 = getelementptr inbounds nuw i64, ptr %0, i64 %39 + %46 = getelementptr inbounds i64, ptr %0, i64 %39 store i64 %43, ptr %46, align 8, !tbaa !7 %47 = icmp sgt i64 %41, %21 br i1 %47, label %.preheader18, label %.loopexit19, !llvm.loop !171 .loopexit19: ; preds = %45, %.preheader18, %.preheader22 %48 = phi i64 [ %21, %.preheader22 ], [ %39, %.preheader18 ], [ %41, %45 ] - %49 = getelementptr inbounds nuw i64, ptr %0, i64 %48 + %49 = getelementptr inbounds i64, ptr %0, i64 %48 store i64 %23, ptr %49, align 8, !tbaa !7 %50 = icmp eq i64 %21, 0 %51 = add nsw i64 %21, -1 @@ -6218,20 +6218,20 @@ define linkonce_odr void @_ZSt11__make_heapIN9__gnu_cxx17__normal_iteratorIPmSt6 %78 = phi i64 [ %80, %84 ], [ %76, %75 ] %79 = add nsw i64 %78, -1 %80 = sdiv i64 %79, 2 - %81 = getelementptr inbounds nuw i64, ptr %0, i64 %80 + %81 = getelementptr inbounds i64, ptr %0, i64 %80 %82 = load i64, ptr %81, align 8, !tbaa !7 %83 = icmp ult i64 %82, %55 br i1 %83, label %84, label %.loopexit 84: ; preds = %.preheader - %85 = getelementptr inbounds nuw i64, ptr %0, i64 %78 + %85 = getelementptr inbounds i64, ptr %0, i64 %78 store i64 %82, ptr %85, align 8, !tbaa !7 %86 = icmp sgt i64 %80, %53 br i1 %86, label %.preheader, label %.loopexit, !llvm.loop !171 .loopexit: ; preds = %84, %.preheader, %75 %87 = phi i64 [ %76, %75 ], [ %78, %.preheader ], [ %80, %84 ] - %88 = getelementptr inbounds nuw i64, ptr %0, i64 %87 + %88 = getelementptr inbounds i64, ptr %0, i64 %87 store i64 %55, ptr %88, align 8, !tbaa !7 %89 = icmp eq i64 %53, 0 %90 = add nsw i64 %53, -1 diff --git a/bench/yosys/optimized/SimpSolver.ll b/bench/yosys/optimized/SimpSolver.ll index 56297b4937e..9bef7c9e664 100644 --- a/bench/yosys/optimized/SimpSolver.ll +++ b/bench/yosys/optimized/SimpSolver.ll @@ -3307,7 +3307,7 @@ define void @_ZN7Minisat10SimpSolver20gatherTouchedClausesEv(ptr nocapture nound %2 = getelementptr inbounds nuw i8, ptr %0, i64 1188 %3 = load i32, ptr %2, align 4 %4 = icmp eq i32 %3, 0 - br i1 %4, label %210, label %.preheader42 + br i1 %4, label %209, label %.preheader42 .preheader42: ; preds = %1 %5 = getelementptr inbounds nuw i8, ptr %0, i64 1096 @@ -3385,7 +3385,7 @@ define void @_ZN7Minisat10SimpSolver20gatherTouchedClausesEv(ptr nocapture nound %55 = icmp slt i32 %51, %54 br i1 %55, label %29, label %.preheader41, !llvm.loop !32 -.preheader.loopexit: ; preds = %179 +.preheader.loopexit: ; preds = %178 %.pre71 = load i32, ptr %6, align 4 %.pre72 = load i32, ptr %7, align 8 %.pre73 = load i32, ptr %8, align 8 @@ -3404,16 +3404,16 @@ define void @_ZN7Minisat10SimpSolver20gatherTouchedClausesEv(ptr nocapture nound .lr.ph58: ; preds = %.preheader %63 = getelementptr inbounds nuw i8, ptr %0, i64 680 - br label %183 + br label %182 -64: ; preds = %.lr.ph54, %179 - %65 = phi i32 [ %21, %.lr.ph54 ], [ %180, %179 ] - %indvars.iv61 = phi i64 [ 0, %.lr.ph54 ], [ %indvars.iv.next62, %179 ] +64: ; preds = %.lr.ph54, %178 + %65 = phi i32 [ %21, %.lr.ph54 ], [ %179, %178 ] + %indvars.iv61 = phi i64 [ 0, %.lr.ph54 ], [ %indvars.iv.next62, %178 ] %66 = load ptr, ptr %23, align 8 %67 = getelementptr inbounds nuw i8, ptr %66, i64 %indvars.iv61 %68 = load i8, ptr %67, align 1 %.not = icmp eq i8 %68, 0 - br i1 %.not, label %179, label %69 + br i1 %.not, label %178, label %69 69: ; preds = %64 %70 = load ptr, ptr %25, align 8 @@ -3487,9 +3487,9 @@ _ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDef %108 = icmp sgt i32 %107, 0 br i1 %108, label %.lr.ph52, label %._crit_edge -.lr.ph52: ; preds = %_ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE6lookupERKi.exit, %173 - %109 = phi i32 [ %174, %173 ], [ %107, %_ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE6lookupERKi.exit ] - %indvars.iv = phi i64 [ %indvars.iv.next, %173 ], [ 0, %_ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE6lookupERKi.exit ] +.lr.ph52: ; preds = %_ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE6lookupERKi.exit, %172 + %109 = phi i32 [ %173, %172 ], [ %107, %_ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE6lookupERKi.exit ] + %indvars.iv = phi i64 [ %indvars.iv.next, %172 ], [ 0, %_ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE6lookupERKi.exit ] %110 = load ptr, ptr %105, align 8 %111 = getelementptr inbounds nuw i32, ptr %110, i64 %indvars.iv %112 = load i32, ptr %111, align 4 @@ -3499,7 +3499,7 @@ _ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDef %116 = load i32, ptr %115, align 4 %117 = and i32 %116, 3 %118 = icmp eq i32 %117, 0 - br i1 %118, label %119, label %173 + br i1 %118, label %119, label %172 119: ; preds = %.lr.ph52 %120 = load i32, ptr %6, align 4 @@ -3534,78 +3534,77 @@ _ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDef 137: ; preds = %133 %138 = add nuw nsw i32 %136, 1 %139 = and i32 %138, 2147483646 - %140 = tail call i32 @llvm.umax.i32(i32 %139, i32 2) - %141 = zext nneg i32 %140 to i64 - %142 = shl nuw nsw i64 %141, 2 - %malloc = tail call ptr @malloc(i64 %142) - %143 = icmp eq ptr %malloc, null - br i1 %143, label %144, label %.lr.ph.preheader.i16 - -144: ; preds = %137 - %145 = tail call ptr @__errno_location() #23 - %146 = load i32, ptr %145, align 4 - %147 = icmp eq i32 %146, 12 - br i1 %147, label %148, label %.lr.ph.preheader.i16 - -148: ; preds = %144 - %149 = tail call ptr @__cxa_allocate_exception(i64 1) #24 - tail call void @__cxa_throw(ptr %149, ptr nonnull @_ZTIN7Minisat20OutOfMemoryExceptionE, ptr null) #25 + %140 = zext nneg i32 %139 to i64 + %141 = shl nuw nsw i64 %140, 2 + %malloc = tail call ptr @malloc(i64 %141) + %142 = icmp eq ptr %malloc, null + br i1 %142, label %143, label %.lr.ph.preheader.i16 + +143: ; preds = %137 + %144 = tail call ptr @__errno_location() #23 + %145 = load i32, ptr %144, align 4 + %146 = icmp eq i32 %145, 12 + br i1 %146, label %147, label %.lr.ph.preheader.i16 + +147: ; preds = %143 + %148 = tail call ptr @__cxa_allocate_exception(i64 1) #24 + tail call void @__cxa_throw(ptr %148, ptr nonnull @_ZTIN7Minisat20OutOfMemoryExceptionE, ptr null) #25 unreachable -.lr.ph.preheader.i16: ; preds = %137, %144 +.lr.ph.preheader.i16: ; preds = %137, %143 %wide.trip.count.i = zext nneg i32 %136 to i64 - %150 = shl nuw nsw i64 %wide.trip.count.i, 2 - tail call void @llvm.memset.p0.i64(ptr align 4 %malloc, i8 0, i64 %150, i1 false) + %149 = shl nuw nsw i64 %wide.trip.count.i, 2 + tail call void @llvm.memset.p0.i64(ptr align 4 %malloc, i8 0, i64 %149, i1 false) br label %_ZN7Minisat3vecIjiE6growToEi.exit _ZN7Minisat3vecIjiE6growToEi.exit: ; preds = %.lr.ph.preheader.i16, %133 %.sroa.0.6 = phi ptr [ null, %133 ], [ %malloc, %.lr.ph.preheader.i16 ] %.sroa.9.5 = phi i32 [ 0, %133 ], [ %136, %.lr.ph.preheader.i16 ] - %.sroa.13.6 = phi i32 [ 0, %133 ], [ %140, %.lr.ph.preheader.i16 ] - %151 = icmp slt i32 %130, %126 + %.sroa.13.6 = phi i32 [ 0, %133 ], [ %139, %.lr.ph.preheader.i16 ] + %150 = icmp slt i32 %130, %126 %.pre68.pre = load ptr, ptr %5, align 8 - br i1 %151, label %.lr.ph.preheader.i, label %.preheader.i + br i1 %150, label %.lr.ph.preheader.i, label %.preheader.i .lr.ph.preheader.i: ; preds = %_ZN7Minisat3vecIjiE6growToEi.exit - %152 = sext i32 %130 to i64 - %153 = sext i32 %126 to i64 + %151 = sext i32 %130 to i64 + %152 = sext i32 %126 to i64 br label %.lr.ph.i .preheader.loopexit.i: ; preds = %.lr.ph.i - %154 = and i64 %indvars.iv.next.i, 4294967295 + %153 = and i64 %indvars.iv.next.i, 4294967295 br label %.preheader.i .preheader.i: ; preds = %.preheader.loopexit.i, %_ZN7Minisat3vecIjiE6growToEi.exit - %.0.lcssa.i = phi i64 [ 0, %_ZN7Minisat3vecIjiE6growToEi.exit ], [ %154, %.preheader.loopexit.i ] - %155 = icmp sgt i32 %130, 0 - br i1 %155, label %.lr.ph22.i.preheader, label %._crit_edge.i + %.0.lcssa.i = phi i64 [ 0, %_ZN7Minisat3vecIjiE6growToEi.exit ], [ %153, %.preheader.loopexit.i ] + %154 = icmp sgt i32 %130, 0 + br i1 %154, label %.lr.ph22.i.preheader, label %._crit_edge.i .lr.ph22.i.preheader: ; preds = %.preheader.i - %156 = zext nneg i32 %130 to i64 + %155 = zext nneg i32 %130 to i64 br label %.lr.ph22.i .lr.ph.i: ; preds = %.lr.ph.i, %.lr.ph.preheader.i - %indvars.iv23.i = phi i64 [ %152, %.lr.ph.preheader.i ], [ %indvars.iv.next24.i, %.lr.ph.i ] + %indvars.iv23.i = phi i64 [ %151, %.lr.ph.preheader.i ], [ %indvars.iv.next24.i, %.lr.ph.i ] %indvars.iv.i = phi i64 [ 0, %.lr.ph.preheader.i ], [ %indvars.iv.next.i, %.lr.ph.i ] - %157 = getelementptr inbounds i32, ptr %.pre68.pre, i64 %indvars.iv23.i - %158 = load i32, ptr %157, align 4 + %156 = getelementptr inbounds i32, ptr %.pre68.pre, i64 %indvars.iv23.i + %157 = load i32, ptr %156, align 4 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %159 = getelementptr inbounds nuw i32, ptr %.sroa.0.6, i64 %indvars.iv.i - store i32 %158, ptr %159, align 4 + %158 = getelementptr inbounds nuw i32, ptr %.sroa.0.6, i64 %indvars.iv.i + store i32 %157, ptr %158, align 4 %indvars.iv.next24.i = add nsw i64 %indvars.iv23.i, 1 - %160 = icmp slt i64 %indvars.iv.next24.i, %153 - br i1 %160, label %.lr.ph.i, label %.preheader.loopexit.i, !llvm.loop !20 + %159 = icmp slt i64 %indvars.iv.next24.i, %152 + br i1 %159, label %.lr.ph.i, label %.preheader.loopexit.i, !llvm.loop !20 .lr.ph22.i: ; preds = %.lr.ph22.i.preheader, %.lr.ph22.i %indvars.iv30.i = phi i64 [ %indvars.iv.next31.i, %.lr.ph22.i ], [ 0, %.lr.ph22.i.preheader ] %indvars.iv28.i = phi i64 [ %indvars.iv.next29.i, %.lr.ph22.i ], [ %.0.lcssa.i, %.lr.ph22.i.preheader ] - %161 = getelementptr inbounds nuw i32, ptr %.pre68.pre, i64 %indvars.iv30.i - %162 = load i32, ptr %161, align 4 + %160 = getelementptr inbounds nuw i32, ptr %.pre68.pre, i64 %indvars.iv30.i + %161 = load i32, ptr %160, align 4 %indvars.iv.next29.i = add nuw nsw i64 %indvars.iv28.i, 1 - %163 = getelementptr inbounds nuw i32, ptr %.sroa.0.6, i64 %indvars.iv28.i - store i32 %162, ptr %163, align 4 + %162 = getelementptr inbounds nuw i32, ptr %.sroa.0.6, i64 %indvars.iv28.i + store i32 %161, ptr %162, align 4 %indvars.iv.next31.i = add nuw nsw i64 %indvars.iv30.i, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next31.i, %156 + %exitcond.not = icmp eq i64 %indvars.iv.next31.i, %155 br i1 %exitcond.not, label %._crit_edge.i.thread, label %.lr.ph22.i, !llvm.loop !21 ._crit_edge.i.thread: ; preds = %.lr.ph22.i @@ -3631,84 +3630,84 @@ _ZN7Minisat3vecIjiED2Ev.exit.i: ; preds = %.preheader.i.i.i, % br label %_ZN7Minisat5QueueIjE6insertEj.exit _ZN7Minisat5QueueIjE6insertEj.exit: ; preds = %129, %_ZN7Minisat3vecIjiED2Ev.exit.i - %164 = load ptr, ptr %105, align 8 - %165 = getelementptr inbounds nuw i32, ptr %164, i64 %indvars.iv - %166 = load i32, ptr %165, align 4 - %167 = load ptr, ptr %27, align 8 - %168 = zext i32 %166 to i64 - %169 = getelementptr inbounds nuw i32, ptr %167, i64 %168 - %170 = load i32, ptr %169, align 4 - %171 = and i32 %170, -4 - %172 = or disjoint i32 %171, 2 - store i32 %172, ptr %169, align 4 + %163 = load ptr, ptr %105, align 8 + %164 = getelementptr inbounds nuw i32, ptr %163, i64 %indvars.iv + %165 = load i32, ptr %164, align 4 + %166 = load ptr, ptr %27, align 8 + %167 = zext i32 %165 to i64 + %168 = getelementptr inbounds nuw i32, ptr %166, i64 %167 + %169 = load i32, ptr %168, align 4 + %170 = and i32 %169, -4 + %171 = or disjoint i32 %170, 2 + store i32 %171, ptr %168, align 4 %.pre69 = load i32, ptr %106, align 8 - br label %173 + br label %172 -173: ; preds = %.lr.ph52, %_ZN7Minisat5QueueIjE6insertEj.exit - %174 = phi i32 [ %109, %.lr.ph52 ], [ %.pre69, %_ZN7Minisat5QueueIjE6insertEj.exit ] +172: ; preds = %.lr.ph52, %_ZN7Minisat5QueueIjE6insertEj.exit + %173 = phi i32 [ %109, %.lr.ph52 ], [ %.pre69, %_ZN7Minisat5QueueIjE6insertEj.exit ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %175 = sext i32 %174 to i64 - %176 = icmp slt i64 %indvars.iv.next, %175 - br i1 %176, label %.lr.ph52, label %._crit_edge, !llvm.loop !34 - -._crit_edge: ; preds = %173, %_ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE6lookupERKi.exit - %177 = load ptr, ptr %23, align 8 - %178 = getelementptr inbounds nuw i8, ptr %177, i64 %indvars.iv61 - store i8 0, ptr %178, align 1 + %174 = sext i32 %173 to i64 + %175 = icmp slt i64 %indvars.iv.next, %174 + br i1 %175, label %.lr.ph52, label %._crit_edge, !llvm.loop !34 + +._crit_edge: ; preds = %172, %_ZN7Minisat8OccListsIiNS_3vecIjiEENS_10SimpSolver13ClauseDeletedENS_14MkIndexDefaultIiEEE6lookupERKi.exit + %176 = load ptr, ptr %23, align 8 + %177 = getelementptr inbounds nuw i8, ptr %176, i64 %indvars.iv61 + store i8 0, ptr %177, align 1 %.pre70 = load i32, ptr %20, align 4 - br label %179 + br label %178 -179: ; preds = %64, %._crit_edge - %180 = phi i32 [ %65, %64 ], [ %.pre70, %._crit_edge ] +178: ; preds = %64, %._crit_edge + %179 = phi i32 [ %65, %64 ], [ %.pre70, %._crit_edge ] %indvars.iv.next62 = add nuw nsw i64 %indvars.iv61, 1 - %181 = sext i32 %180 to i64 - %182 = icmp slt i64 %indvars.iv.next62, %181 - br i1 %182, label %64, label %.preheader.loopexit, !llvm.loop !35 - -183: ; preds = %.lr.ph58, %201 - %184 = phi i32 [ %56, %.lr.ph58 ], [ %202, %201 ] - %185 = phi i32 [ %57, %.lr.ph58 ], [ %203, %201 ] - %186 = phi i32 [ %58, %.lr.ph58 ], [ %204, %201 ] - %storemerge1057 = phi i32 [ 0, %.lr.ph58 ], [ %205, %201 ] - %187 = add nsw i32 %185, %storemerge1057 - %188 = srem i32 %187, %184 - %189 = load ptr, ptr %5, align 8 - %190 = sext i32 %188 to i64 - %191 = getelementptr inbounds i32, ptr %189, i64 %190 - %192 = load i32, ptr %191, align 4 - %193 = load ptr, ptr %63, align 8 - %194 = zext i32 %192 to i64 - %195 = getelementptr inbounds nuw i32, ptr %193, i64 %194 - %196 = load i32, ptr %195, align 4 - %197 = and i32 %196, 3 - %198 = icmp eq i32 %197, 2 - br i1 %198, label %199, label %201 - -199: ; preds = %183 - %200 = and i32 %196, -4 - store i32 %200, ptr %195, align 4 + %180 = sext i32 %179 to i64 + %181 = icmp slt i64 %indvars.iv.next62, %180 + br i1 %181, label %64, label %.preheader.loopexit, !llvm.loop !35 + +182: ; preds = %.lr.ph58, %200 + %183 = phi i32 [ %56, %.lr.ph58 ], [ %201, %200 ] + %184 = phi i32 [ %57, %.lr.ph58 ], [ %202, %200 ] + %185 = phi i32 [ %58, %.lr.ph58 ], [ %203, %200 ] + %storemerge1057 = phi i32 [ 0, %.lr.ph58 ], [ %204, %200 ] + %186 = add nsw i32 %184, %storemerge1057 + %187 = srem i32 %186, %183 + %188 = load ptr, ptr %5, align 8 + %189 = sext i32 %187 to i64 + %190 = getelementptr inbounds i32, ptr %188, i64 %189 + %191 = load i32, ptr %190, align 4 + %192 = load ptr, ptr %63, align 8 + %193 = zext i32 %191 to i64 + %194 = getelementptr inbounds nuw i32, ptr %192, i64 %193 + %195 = load i32, ptr %194, align 4 + %196 = and i32 %195, 3 + %197 = icmp eq i32 %196, 2 + br i1 %197, label %198, label %200 + +198: ; preds = %182 + %199 = and i32 %195, -4 + store i32 %199, ptr %194, align 4 %.pre74 = load i32, ptr %6, align 4 %.pre75 = load i32, ptr %7, align 8 %.pre76 = load i32, ptr %8, align 8 - br label %201 - -201: ; preds = %183, %199 - %202 = phi i32 [ %184, %183 ], [ %.pre76, %199 ] - %203 = phi i32 [ %185, %183 ], [ %.pre75, %199 ] - %204 = phi i32 [ %186, %183 ], [ %.pre74, %199 ] - %205 = add nuw nsw i32 %storemerge1057, 1 - %.not.i13 = icmp slt i32 %204, %203 - %206 = sub i32 %204, %203 - %207 = select i1 %.not.i13, i32 %202, i32 0 - %208 = add nsw i32 %206, %207 - %209 = icmp slt i32 %205, %208 - br i1 %209, label %183, label %._crit_edge59, !llvm.loop !36 - -._crit_edge59: ; preds = %201, %.preheader + br label %200 + +200: ; preds = %182, %198 + %201 = phi i32 [ %183, %182 ], [ %.pre76, %198 ] + %202 = phi i32 [ %184, %182 ], [ %.pre75, %198 ] + %203 = phi i32 [ %185, %182 ], [ %.pre74, %198 ] + %204 = add nuw nsw i32 %storemerge1057, 1 + %.not.i13 = icmp slt i32 %203, %202 + %205 = sub i32 %203, %202 + %206 = select i1 %.not.i13, i32 %201, i32 0 + %207 = add nsw i32 %205, %206 + %208 = icmp slt i32 %204, %207 + br i1 %208, label %182, label %._crit_edge59, !llvm.loop !36 + +._crit_edge59: ; preds = %200, %.preheader store i32 0, ptr %2, align 4 - br label %210 + br label %209 -210: ; preds = %1, %._crit_edge59 +209: ; preds = %1, %._crit_edge59 ret void } @@ -7756,9 +7755,6 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #22 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #22 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #18 - attributes #0 = { mustprogress nounwind uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #1 = { nofree nounwind } attributes #2 = { mustprogress uwtable "frame-pointer"="all" "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } diff --git a/bench/z3/optimized/seq_rewriter.cpp.ll b/bench/z3/optimized/seq_rewriter.cpp.ll index 0e7289577cf..9e12a78ad75 100644 --- a/bench/z3/optimized/seq_rewriter.cpp.ll +++ b/bench/z3/optimized/seq_rewriter.cpp.ll @@ -16733,14 +16733,14 @@ if.end30: ; preds = %invoke.cont26, %inv %is_empty.2 = phi i1 [ %is_empty.1, %invoke.cont8 ], [ %spec.select15, %invoke.cont26 ] call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i) store ptr %lo, ptr %e.addr.i, align 8 - %call.i28 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) + %call.i28 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) to label %invoke.cont31 unwind label %lpad invoke.cont31: ; preds = %if.end30 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %e.addr.i) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i29) store ptr %hi, ptr %e.addr.i29, align 8 - %call.i30 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i29) + %call.i30 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i29) to label %invoke.cont37 unwind label %lpad invoke.cont37: ; preds = %invoke.cont31 @@ -18830,7 +18830,7 @@ for.body: ; preds = %_ZNK15ref_vector_co %10 = load ptr, ptr %__begin1.0314, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i) store ptr %10, ptr %e.addr.i, align 8 - %call.i28 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) + %call.i28 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) to label %invoke.cont12 unwind label %lpad2.loopexit invoke.cont12: ; preds = %for.body @@ -19262,7 +19262,7 @@ land.lhs.true: ; preds = %land.lhs.true.i113 %73 = load ptr, ptr %arrayidx.i7.i, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i.i) store ptr %72, ptr %e.addr.i.i, align 8 - %call.i.i120 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i.i) + %call.i.i120 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i.i) to label %call.i.i.noexc unwind label %lpad2.loopexit.split-lp.loopexit.split-lp call.i.i.noexc: ; preds = %land.lhs.true @@ -19277,7 +19277,7 @@ call.i.i.noexc.invoke.cont86_crit_edge: ; preds = %call.i.i.noexc if.end.i117: ; preds = %call.i.i.noexc call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i1.i) store ptr %73, ptr %e.addr.i1.i, align 8 - %call.i2.i121 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i1.i) + %call.i2.i121 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i1.i) to label %call.i2.i.noexc unwind label %lpad2.loopexit.split-lp.loopexit.split-lp call.i2.i.noexc: ; preds = %if.end.i117 @@ -21894,7 +21894,7 @@ if.end.i.i.i: ; preds = %if.end106 _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i: ; preds = %if.end.i.i.i, %if.end106 %retval.0.i.i.i = phi i32 [ %60, %if.end.i.i.i ], [ 0, %if.end106 ] - %call3.i190 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i, ptr noundef %59) + %call3.i190 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i, ptr noundef %59) to label %invoke.cont107 unwind label %lpad93.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont107: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i @@ -21914,7 +21914,7 @@ if.end.i.i.i193: ; preds = %if.then111 _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i195: ; preds = %if.end.i.i.i193, %if.then111 %retval.0.i.i.i196 = phi i32 [ %62, %if.end.i.i.i193 ], [ 0, %if.then111 ] - %call3.i197 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i196, ptr noundef %61) + %call3.i197 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i196, ptr noundef %61) to label %invoke.cont113 unwind label %lpad93.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont113: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i195 @@ -24885,7 +24885,7 @@ terminate.lpad.i.i305: ; preds = %if.then2.i.i.i.i.i. if.end159: ; preds = %land.rhs.i.i.i58, %invoke.cont13, %_ZNK8seq_util3str10is_extractEPK4expr.exit.i, %land.lhs.true.i65, %if.then.i.i.i.i.i301, %invoke.cont8.i.i298, %_ZN8rationalD2Ev.exit281, %invoke.cont22, %invoke.cont19 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i) store ptr %a, ptr %e.addr.i, align 8 - %call.i308 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) + %call.i308 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) to label %invoke.cont160 unwind label %lpad2 invoke.cont160: ; preds = %if.end159 @@ -25530,7 +25530,7 @@ if.then71: ; preds = %_ZNK11ast_manager6i %53 = load ptr, ptr %arrayidx.i6.i, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i) store ptr %39, ptr %e.addr.i, align 8 - %call.i101 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) + %call.i101 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) to label %invoke.cont72 unwind label %lpad47.loopexit invoke.cont72: ; preds = %if.then71 @@ -26767,7 +26767,7 @@ invoke.cont343: ; preds = %if.end342 if.then347: ; preds = %invoke.cont343 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i) store ptr %a, ptr %e.addr.i, align 8 - %call.i377 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) + %call.i377 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) to label %invoke.cont349 unwind label %lpad348 invoke.cont349: ; preds = %if.then347 @@ -27682,7 +27682,7 @@ invoke.cont147: ; preds = %if.end146 if.then150: ; preds = %invoke.cont147 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i) store ptr %a, ptr %e.addr.i, align 8 - %call.i222 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) + %call.i222 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) to label %invoke.cont152 unwind label %lpad151 invoke.cont152: ; preds = %if.then150 @@ -31278,7 +31278,7 @@ if.end.i.i.i: ; preds = %invoke.cont69 _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i: ; preds = %if.end.i.i.i, %invoke.cont69 %retval.0.i.i.i = phi i32 [ %36, %if.end.i.i.i ], [ 0, %invoke.cont69 ] - %call3.i147 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i, ptr noundef %35) + %call3.i147 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i, ptr noundef %35) to label %invoke.cont72 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp invoke.cont72: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.i @@ -39217,7 +39217,7 @@ declare void @_ZNK7zstringplERKS_(ptr sret(%class.zstring) align 8, ptr noundef declare void @_ZNK8seq_util3str10get_concatEP4exprR10ref_vectorIS1_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(20), ptr noundef, ptr noundef nonnull align 8 dereferenceable(16)) local_unnamed_addr #0 ; Function Attrs: mustprogress uwtable -define hidden i64 @_ZN12seq_rewriter10min_lengthEP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, ptr noundef %e) local_unnamed_addr #3 align 2 { +define hidden range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, ptr noundef %e) local_unnamed_addr #3 align 2 { entry: %e.addr = alloca ptr, align 8 store ptr %e, ptr %e.addr, align 8 @@ -39515,7 +39515,7 @@ entry: %e.addr.i = alloca ptr, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i) store ptr %x, ptr %e.addr.i, align 8 - %call.i = call i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) + %call.i = call range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %e.addr.i) %tobool = trunc i64 %call.i to i1 br i1 %tobool, label %if.end, label %return @@ -39523,7 +39523,7 @@ entry: if.end: ; preds = %entry call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i1) store ptr %y, ptr %e.addr.i1, align 8 - %call.i2 = call i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i1) + %call.i2 = call range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i1) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %e.addr.i1) %tobool7 = trunc i64 %call.i2 to i1 br i1 %tobool7, label %if.end9, label %return @@ -42871,7 +42871,7 @@ if.end.i.i.i: ; preds = %entry invoke.cont: ; preds = %if.end.i.i.i, %entry %retval.0.i.i.i = phi i32 [ %1, %if.end.i.i.i ], [ 0, %entry ] - %call3.i = tail call i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i, ptr noundef %0) + %call3.i = tail call range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i, ptr noundef %0) %ref.tmp.sroa.1.0.extract.shift = lshr i64 %call3.i, 32 %ref.tmp.sroa.1.0.extract.trunc = trunc nuw i64 %ref.tmp.sroa.1.0.extract.shift to i32 store i32 0, ptr %pos, align 8 @@ -43023,7 +43023,7 @@ invoke.cont42: ; preds = %cleanup.done37 %14 = load ptr, ptr %arrayidx.i.i39, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i) store ptr %14, ptr %e.addr.i, align 8 - %call.i40 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) + %call.i40 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) to label %invoke.cont44 unwind label %lpad2.loopexit invoke.cont44: ; preds = %invoke.cont42 @@ -43197,7 +43197,7 @@ ehcleanup: ; preds = %lpad2.loopexit, %lp } ; Function Attrs: mustprogress uwtable -define hidden i64 @_ZN12seq_rewriter10min_lengthERK10ref_vectorI4expr11ast_managerE(ptr noundef nonnull align 8 dereferenceable(497) %this, ptr nocapture noundef nonnull readonly align 8 dereferenceable(16) %es) local_unnamed_addr #3 align 2 { +define hidden range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthERK10ref_vectorI4expr11ast_managerE(ptr noundef nonnull align 8 dereferenceable(497) %this, ptr nocapture noundef nonnull readonly align 8 dereferenceable(16) %es) local_unnamed_addr #3 align 2 { entry: %m_nodes.i = getelementptr inbounds nuw i8, ptr %es, i64 8 %0 = load ptr, ptr %m_nodes.i, align 8 @@ -79272,7 +79272,7 @@ if.end.if.end.i.i.i_crit_edge: ; preds = %if.end _ZN12seq_rewriter10min_lengthERK10ref_vectorI4expr11ast_managerE.exit: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE5emptyEv.exit, %if.end.if.end.i.i.i_crit_edge, %if.end %retval.0.i.i.i = phi i32 [ 0, %if.end ], [ %.pre, %if.end.if.end.i.i.i_crit_edge ], [ %1, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE5emptyEv.exit ] - %call3.i = tail call i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i, ptr noundef %0) + %call3.i = tail call range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i, ptr noundef %0) %.sroa.3187.0.extract.shift = lshr i64 %call3.i, 32 %m_nodes.i.i38 = getelementptr inbounds nuw i8, ptr %rs, i64 8 %4 = load ptr, ptr %m_nodes.i.i38, align 8 @@ -79286,7 +79286,7 @@ if.end.i.i.i40: ; preds = %_ZN12seq_rewriter10 _ZN12seq_rewriter10min_lengthERK10ref_vectorI4expr11ast_managerE.exit44: ; preds = %_ZN12seq_rewriter10min_lengthERK10ref_vectorI4expr11ast_managerE.exit, %if.end.i.i.i40 %retval.0.i.i.i42 = phi i32 [ %5, %if.end.i.i.i40 ], [ 0, %_ZN12seq_rewriter10min_lengthERK10ref_vectorI4expr11ast_managerE.exit ] - %call3.i43 = tail call i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i42, ptr noundef %4) + %call3.i43 = tail call range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %retval.0.i.i.i42, ptr noundef %4) %.sroa.3179.0.extract.shift = lshr i64 %call3.i43, 32 %tobool = trunc i64 %call3.i to i1 %cmp = icmp samesign ult i64 %.sroa.3187.0.extract.shift, %.sroa.3179.0.extract.shift @@ -79331,7 +79331,7 @@ for.body.i: ; preds = %_ZNK15ref_vector_co %9 = load ptr, ptr %__begin1.05.i, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i.i) store ptr %9, ptr %e.addr.i.i, align 8 - %call.i.i = call i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i.i) + %call.i.i = call range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %e.addr.i.i) %cmp6.i = icmp ult i64 %call.i.i, 4294967296 br i1 %cmp6.i, label %if.then24, label %for.cond.i @@ -79530,7 +79530,7 @@ for.body.i89: ; preds = %_ZNK15ref_vector_co %37 = load ptr, ptr %__begin1.05.i90, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i.i82) store ptr %37, ptr %e.addr.i.i82, align 8 - %call.i.i91 = call i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i.i82) + %call.i.i91 = call range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i.i82) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %e.addr.i.i82) %cmp6.i92 = icmp ult i64 %call.i.i91, 4294967296 br i1 %cmp6.i92, label %if.then40, label %for.cond.i93 @@ -82431,7 +82431,7 @@ for.body: ; preds = %for.body.lr.ph, %fo %0 = load ptr, ptr %arrayidx, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i) store ptr %0, ptr %e.addr.i, align 8 - %call.i10 = invoke i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) + %call.i10 = invoke range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %for.body @@ -82567,7 +82567,7 @@ _ZN7zstringD2Ev.exit: ; preds = %entry, %cleanup, %i } ; Function Attrs: mustprogress uwtable -define hidden i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %sz, ptr nocapture noundef readonly %ss) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { +define hidden range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef %sz, ptr nocapture noundef readonly %ss) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { entry: %ref.tmp.i100.i = alloca %"struct.obj_map>::key_data", align 8 %ref.tmp.i96.i = alloca %"struct.obj_map>::key_data", align 8 @@ -84566,7 +84566,7 @@ for.body: ; preds = %_ZNK15ref_vector_co %3 = load ptr, ptr %__begin1.05, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %e.addr.i) store ptr %3, ptr %e.addr.i, align 8 - %call.i = call i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) + %call.i = call range(i64 0, -2147483648) i64 @_ZN12seq_rewriter10min_lengthEjPKP4expr(ptr noundef nonnull align 8 dereferenceable(497) %this, i32 noundef 1, ptr noundef nonnull %e.addr.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %e.addr.i) %cmp6 = icmp ult i64 %call.i, 4294967296 %incdec.ptr = getelementptr inbounds nuw i8, ptr %__begin1.05, i64 8 diff --git a/bench/zed-rs/optimized/0pbj35jdb0n0bb6blyk493qkr.ll b/bench/zed-rs/optimized/0pbj35jdb0n0bb6blyk493qkr.ll index 927ac514ce5..7e0ec6d1271 100644 --- a/bench/zed-rs/optimized/0pbj35jdb0n0bb6blyk493qkr.ll +++ b/bench/zed-rs/optimized/0pbj35jdb0n0bb6blyk493qkr.ll @@ -13221,7 +13221,7 @@ define hidden { ptr, i64 } @"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$15from_iter_e 8: ; preds = %2 call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) invoke void @_ZN4core6result13unwrap_failed17hfa79a499befff387E(ptr noalias noundef nonnull readonly align 1 @anon.1a8c884ce52c583e29ab2228e11503ba.42.llvm.17066669856223443129, i64 noundef 43, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) @anon.1a8c884ce52c583e29ab2228e11503ba.41.llvm.17066669856223443129, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.1a8c884ce52c583e29ab2228e11503ba.75.llvm.17066669856223443129) #44 - to label %.noexc unwind label %69 + to label %.noexc unwind label %67 .noexc: ; preds = %8 unreachable @@ -13229,7 +13229,7 @@ define hidden { ptr, i64 } @"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$15from_iter_e "_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17haa6b3dac78881659E.llvm.17066669856223443129.exit.i": ; preds = %2 %9 = mul nuw nsw i64 %1, 120 %10 = invoke { i64, i64 } @_ZN5alloc4sync32arcinner_layout_for_value_layout17hd5ad131baef83e15E(i64 noundef range(i64 1, 0) 8, i64 noundef %9) - to label %.noexc6 unwind label %69 + to label %.noexc6 unwind label %67 .noexc6: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17haa6b3dac78881659E.llvm.17066669856223443129.exit.i" %11 = extractvalue { i64, i64 } %10, 0 @@ -13255,163 +13255,159 @@ define hidden { ptr, i64 } @"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$15from_iter_e "_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$18allocate_for_slice28_$u7b$$u7b$closure$u7d$$u7d$17h18f251471f990db4E.exit.i.i": ; preds = %18, %14 %.sroa.06.0.i.i.i.i = phi ptr [ %17, %14 ], [ %22, %18 ] %23 = icmp eq ptr %.sroa.06.0.i.i.i.i, null - br i1 %23, label %24, label %29 + br i1 %23, label %24, label %27 24: ; preds = %"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$18allocate_for_slice28_$u7b$$u7b$closure$u7d$$u7d$17h18f251471f990db4E.exit.i.i" invoke void @_ZN5alloc5alloc18handle_alloc_error17h6d7f2bdbc63ffea9E(i64 noundef %11, i64 noundef %12) #44 - to label %.noexc7 unwind label %69 + to label %.noexc7 unwind label %67 .noexc7: ; preds = %24 unreachable -.body: ; preds = %52, %27, %49 - %.pn = phi { ptr, i32 } [ %50, %49 ], [ %28, %27 ], [ %53, %52 ] - %25 = icmp eq i64 %32, 0 - br i1 %25, label %68, label %26 +.body: ; preds = %47, %25, %50 + %.pn = phi { ptr, i32 } [ %48, %47 ], [ %26, %25 ], [ %51, %50 ] + call void @__rust_dealloc(ptr noundef nonnull %.sroa.06.0.i.i.i.i, i64 noundef %30, i64 noundef 8) #36, !noalias !3470 + br label %66 -26: ; preds = %.body - call void @__rust_dealloc(ptr noundef nonnull %.sroa.06.0.i.i.i.i, i64 noundef %32, i64 noundef 8) #36, !noalias !3470 - br label %68 - -27: ; preds = %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17hd3309a947e69cfa2E.exit.i" - %28 = landingpad { ptr, i32 } +25: ; preds = %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17hd3309a947e69cfa2E.exit.i" + %26 = landingpad { ptr, i32 } cleanup br label %.body -29: ; preds = %"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$18allocate_for_slice28_$u7b$$u7b$closure$u7d$$u7d$17h18f251471f990db4E.exit.i.i" +27: ; preds = %"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$18allocate_for_slice28_$u7b$$u7b$closure$u7d$$u7d$17h18f251471f990db4E.exit.i.i" store i64 1, ptr %.sroa.06.0.i.i.i.i, align 8 - %30 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i.i.i.i, i64 8 - store i64 1, ptr %30, align 8 - %31 = add nuw i64 %9, 23 - %32 = and i64 %31, -8 - %33 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i.i.i.i, i64 16 + %28 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i.i.i.i, i64 8 + store i64 1, ptr %28, align 8 + %29 = add nuw i64 %9, 23 + %30 = and i64 %29, -8 + %31 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i.i.i.i, i64 16 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, ptr noundef nonnull align 8 dereferenceable(40) %0, i64 40, i1 false) %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 40 store i64 0, ptr %.sroa.2.0..sroa_idx, align 8 - %34 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %35 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %36 = load ptr, ptr %34, align 8, !alias.scope !3475, !noalias !3482, !nonnull !4, !noundef !4 - %37 = load ptr, ptr %35, align 8, !alias.scope !3475, !noalias !3482, !nonnull !4, !noundef !4 - %38 = icmp eq ptr %37, %36 - br i1 %38, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i._crit_edge", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i.lr.ph" - -"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i.lr.ph": ; preds = %29 - %39 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %40 = getelementptr inbounds nuw i8, ptr %5, i64 48 + %32 = getelementptr inbounds nuw i8, ptr %6, i64 24 + %33 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %34 = load ptr, ptr %32, align 8, !alias.scope !3475, !noalias !3482, !nonnull !4, !noundef !4 + %35 = load ptr, ptr %33, align 8, !alias.scope !3475, !noalias !3482, !nonnull !4, !noundef !4 + %36 = icmp eq ptr %35, %34 + br i1 %36, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i._crit_edge", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i.lr.ph" + +"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i.lr.ph": ; preds = %27 + %37 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %38 = getelementptr inbounds nuw i8, ptr %5, i64 48 %.sroa.8.24..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %5, i64 108 - %41 = getelementptr inbounds nuw i8, ptr %5, i64 96 - %42 = getelementptr inbounds nuw i8, ptr %5, i64 116 + %39 = getelementptr inbounds nuw i8, ptr %5, i64 96 + %40 = getelementptr inbounds nuw i8, ptr %5, i64 116 br label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i" -"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i.lr.ph", %56 - %43 = phi ptr [ %37, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i.lr.ph" ], [ %61, %56 ] +"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i.lr.ph", %54 + %41 = phi ptr [ %35, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i.lr.ph" ], [ %59, %54 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !3486) tail call void @llvm.experimental.noalias.scope.decl(metadata !3488) tail call void @llvm.experimental.noalias.scope.decl(metadata !3490) - %44 = getelementptr inbounds nuw i8, ptr %43, i64 40 - store ptr %44, ptr %35, align 8, !alias.scope !3492, !noalias !3482 - %.sroa.4.0..sroa_idx1.i.i = getelementptr inbounds nuw i8, ptr %43, i64 24 + %42 = getelementptr inbounds nuw i8, ptr %41, i64 40 + store ptr %42, ptr %33, align 8, !alias.scope !3492, !noalias !3482 + %.sroa.4.0..sroa_idx1.i.i = getelementptr inbounds nuw i8, ptr %41, i64 24 %.sroa.4.0.copyload2.i.i = load i32, ptr %.sroa.4.0..sroa_idx1.i.i, align 8, !noalias !3493 - %45 = icmp eq i32 %.sroa.4.0.copyload2.i.i, 4 - br i1 %45, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i._crit_edge", label %46 + %43 = icmp eq i32 %.sroa.4.0.copyload2.i.i, 4 + br i1 %43, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i._crit_edge", label %44 -46: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i" - %.sroa.6.sroa.4.0..sroa.6.0..sroa_idx3.sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %43, i64 36 +44: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i" + %.sroa.6.sroa.4.0..sroa.6.0..sroa_idx3.sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %41, i64 36 %.sroa.6.sroa.4.0.copyload.i.i = load i8, ptr %.sroa.6.sroa.4.0..sroa.6.0..sroa_idx3.sroa_idx.i.i, align 4, !noalias !3493 - %.sroa.6.0..sroa_idx3.i.i = getelementptr inbounds nuw i8, ptr %43, i64 28 + %.sroa.6.0..sroa_idx3.i.i = getelementptr inbounds nuw i8, ptr %41, i64 28 %.sroa.6.sroa.0.0.copyload.i.i = load i64, ptr %.sroa.6.0..sroa_idx3.i.i, align 4, !noalias !3493 - %.sroa.0.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %43, i64 16 + %.sroa.0.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %41, i64 16 %.sroa.0.sroa.5.0.copyload.i.i = load i64, ptr %.sroa.0.sroa.5.0..sroa_idx.i.i, align 8, !noalias !3493 - %.sroa.0.sroa.4.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %43, i64 8 + %.sroa.0.sroa.4.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %41, i64 8 %.sroa.0.sroa.4.0.copyload.i.i = load i64, ptr %.sroa.0.sroa.4.0..sroa_idx.i.i, align 8, !noalias !3493 - %.sroa.0.sroa.0.0.copyload.i.i = load i64, ptr %43, align 8, !noalias !3493 + %.sroa.0.sroa.0.0.copyload.i.i = load i64, ptr %41, align 8, !noalias !3493 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %5), !noalias !3494 tail call void @llvm.experimental.noalias.scope.decl(metadata !3495) tail call void @llvm.experimental.noalias.scope.decl(metadata !3498) tail call void @llvm.experimental.noalias.scope.decl(metadata !3500) tail call void @llvm.experimental.noalias.scope.decl(metadata !3502) tail call void @llvm.experimental.noalias.scope.decl(metadata !3505) - %47 = load ptr, ptr %39, align 8, !alias.scope !3507, !noalias !3508, !nonnull !4, !align !45, !noundef !4 - invoke void @_ZN12multi_buffer19MultiBufferSnapshot9anchor_at17hda6e2ee430670bf0E(ptr noalias nocapture noundef nonnull sret([48 x i8]) align 8 dereferenceable(120) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %47, i64 noundef %.sroa.0.sroa.4.0.copyload.i.i, i1 noundef zeroext true) - to label %.noexc8 unwind label %49 + %45 = load ptr, ptr %37, align 8, !alias.scope !3507, !noalias !3508, !nonnull !4, !align !45, !noundef !4 + invoke void @_ZN12multi_buffer19MultiBufferSnapshot9anchor_at17hda6e2ee430670bf0E(ptr noalias nocapture noundef nonnull sret([48 x i8]) align 8 dereferenceable(120) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %45, i64 noundef %.sroa.0.sroa.4.0.copyload.i.i, i1 noundef zeroext true) + to label %.noexc8 unwind label %47 -.noexc8: ; preds = %46 - %48 = icmp ule i64 %.sroa.0.sroa.5.0.copyload.i.i, %.sroa.0.sroa.4.0.copyload.i.i - invoke void @_ZN12multi_buffer19MultiBufferSnapshot9anchor_at17hda6e2ee430670bf0E(ptr noalias nocapture noundef nonnull sret([48 x i8]) align 8 dereferenceable(48) %40, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %47, i64 noundef %.sroa.0.sroa.5.0.copyload.i.i, i1 noundef zeroext %48) - to label %56 unwind label %49 +.noexc8: ; preds = %44 + %46 = icmp ule i64 %.sroa.0.sroa.5.0.copyload.i.i, %.sroa.0.sroa.4.0.copyload.i.i + invoke void @_ZN12multi_buffer19MultiBufferSnapshot9anchor_at17hda6e2ee430670bf0E(ptr noalias nocapture noundef nonnull sret([48 x i8]) align 8 dereferenceable(48) %38, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %45, i64 noundef %.sroa.0.sroa.5.0.copyload.i.i, i1 noundef zeroext %46) + to label %54 unwind label %47 -49: ; preds = %.noexc8, %46 - %50 = landingpad { ptr, i32 } +47: ; preds = %.noexc8, %44 + %48 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr298drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h466740663ef530daE"(ptr noalias noundef nonnull align 8 dereferenceable(48) %6) #42 - to label %.body unwind label %66 + to label %.body unwind label %64 -"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i._crit_edge": ; preds = %56, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i", %29 +"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i._crit_edge": ; preds = %54, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i", %27 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !3510 store ptr %6, ptr %4, align 8, !noalias !3510 - %51 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17hf4660a62a88ddb7dE.llvm.7484384291333293019(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %6) - to label %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17hd3309a947e69cfa2E.exit.i" unwind label %52 + %49 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17hf4660a62a88ddb7dE.llvm.7484384291333293019(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %6) + to label %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17hd3309a947e69cfa2E.exit.i" unwind label %50 -52: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i._crit_edge" - %53 = landingpad { ptr, i32 } +50: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i._crit_edge" + %51 = landingpad { ptr, i32 } cleanup invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha290650db566b0d6E.llvm.7484384291333293019"(ptr noalias noundef nonnull align 8 dereferenceable(8) %4) - to label %.body unwind label %54 + to label %.body unwind label %52 -54: ; preds = %52 - %55 = landingpad { ptr, i32 } +52: ; preds = %50 + %53 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hfa05ef7d5107e16aE() #43 unreachable "_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17hd3309a947e69cfa2E.exit.i": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i._crit_edge" invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha290650db566b0d6E.llvm.7484384291333293019"(ptr noalias noundef nonnull align 8 dereferenceable(8) %4) - to label %63 unwind label %27 + to label %61 unwind label %25 -56: ; preds = %.noexc8 +54: ; preds = %.noexc8 store i64 %.sroa.6.sroa.0.0.copyload.i.i, ptr %.sroa.8.24..sroa_idx.i.i, align 4, !alias.scope !3519, !noalias !3520 - store i64 %.sroa.0.sroa.0.0.copyload.i.i, ptr %41, align 8, !alias.scope !3521, !noalias !3522 - store i8 %.sroa.6.sroa.4.0.copyload.i.i, ptr %42, align 4, !alias.scope !3521, !noalias !3522 + store i64 %.sroa.0.sroa.0.0.copyload.i.i, ptr %39, align 8, !alias.scope !3521, !noalias !3522 + store i8 %.sroa.6.sroa.4.0.copyload.i.i, ptr %40, align 4, !alias.scope !3521, !noalias !3522 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %.sroa.013, ptr noundef nonnull align 8 dereferenceable(104) %5, i64 104, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.3, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.8.24..sroa_idx.i.i, i64 12, i1 false) call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %5), !noalias !3494 - %57 = load i64, ptr %.sroa.2.0..sroa_idx, align 8, !alias.scope !3486, !noalias !3523, !noundef !4 - %58 = add i64 %57, 1 - store i64 %58, ptr %.sroa.2.0..sroa_idx, align 8, !alias.scope !3486, !noalias !3523 - %59 = getelementptr inbounds { { i64, i64, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { i64, i64, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, { i32, [2 x i32] }, i8, [3 x i8] }, ptr %33, i64 %57 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %59, ptr noundef nonnull align 8 dereferenceable(104) %.sroa.013, i64 104, i1 false) - %.sroa.214.0..sroa_idx = getelementptr inbounds nuw i8, ptr %59, i64 104 + %55 = load i64, ptr %.sroa.2.0..sroa_idx, align 8, !alias.scope !3486, !noalias !3523, !noundef !4 + %56 = add i64 %55, 1 + store i64 %56, ptr %.sroa.2.0..sroa_idx, align 8, !alias.scope !3486, !noalias !3523 + %57 = getelementptr inbounds { { i64, i64, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { i64, i64, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, { i32, [2 x i32] }, i8, [3 x i8] }, ptr %31, i64 %55 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %57, ptr noundef nonnull align 8 dereferenceable(104) %.sroa.013, i64 104, i1 false) + %.sroa.214.0..sroa_idx = getelementptr inbounds nuw i8, ptr %57, i64 104 store i32 %.sroa.4.0.copyload2.i.i, ptr %.sroa.214.0..sroa_idx, align 8 - %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %59, i64 108 + %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %57, i64 108 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.3.0..sroa_idx, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.3, i64 12, i1 false) - %60 = load ptr, ptr %34, align 8, !alias.scope !3524, !noalias !3482, !nonnull !4, !noundef !4 - %61 = load ptr, ptr %35, align 8, !alias.scope !3524, !noalias !3482, !nonnull !4, !noundef !4 - %62 = icmp eq ptr %61, %60 - br i1 %62, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i._crit_edge", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i" - -63: ; preds = %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17hd3309a947e69cfa2E.exit.i" - %64 = insertvalue { ptr, i64 } poison, ptr %.sroa.06.0.i.i.i.i, 0 - %65 = insertvalue { ptr, i64 } %64, i64 %1, 1 + %58 = load ptr, ptr %32, align 8, !alias.scope !3524, !noalias !3482, !nonnull !4, !noundef !4 + %59 = load ptr, ptr %33, align 8, !alias.scope !3524, !noalias !3482, !nonnull !4, !noundef !4 + %60 = icmp eq ptr %59, %58 + br i1 %60, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i._crit_edge", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6564327f0657b943E.exit.i.i" + +61: ; preds = %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17hd3309a947e69cfa2E.exit.i" + %62 = insertvalue { ptr, i64 } poison, ptr %.sroa.06.0.i.i.i.i, 0 + %63 = insertvalue { ptr, i64 } %62, i64 %1, 1 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4), !noalias !3510 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) - ret { ptr, i64 } %65 + ret { ptr, i64 } %63 -66: ; preds = %69, %49 - %67 = landingpad { ptr, i32 } +64: ; preds = %67, %47 + %65 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hfa05ef7d5107e16aE() #43 unreachable -68: ; preds = %.body, %26, %69 - %.pn.pn17 = phi { ptr, i32 } [ %70, %69 ], [ %.pn, %26 ], [ %.pn, %.body ] +66: ; preds = %.body, %67 + %.pn.pn17 = phi { ptr, i32 } [ %68, %67 ], [ %.pn, %.body ] resume { ptr, i32 } %.pn.pn17 -69: ; preds = %24, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17haa6b3dac78881659E.llvm.17066669856223443129.exit.i", %8 - %70 = landingpad { ptr, i32 } +67: ; preds = %24, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17haa6b3dac78881659E.llvm.17066669856223443129.exit.i", %8 + %68 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17hd3309a947e69cfa2E"(ptr noalias noundef nonnull align 8 dereferenceable(40) %0) #42 - to label %68 unwind label %66 + to label %66 unwind label %64 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/zed-rs/optimized/dhtd8mxtyja4srmt3ddrqkjib.ll b/bench/zed-rs/optimized/dhtd8mxtyja4srmt3ddrqkjib.ll index c34ccc1f703..b87a4337199 100644 --- a/bench/zed-rs/optimized/dhtd8mxtyja4srmt3ddrqkjib.ll +++ b/bench/zed-rs/optimized/dhtd8mxtyja4srmt3ddrqkjib.ll @@ -10026,7 +10026,7 @@ define hidden { ptr, i64 } @"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$15from_iter_e 8: ; preds = %2 call void @llvm.lifetime.start.p0(i64 0, ptr nonnull %3) invoke void @_ZN4core6result13unwrap_failed17hfa79a499befff387E(ptr noalias noundef nonnull readonly align 1 @anon.24a05b5f4b3ca50598fe531abcd13015.30.llvm.12718283123501650770, i64 noundef 43, ptr noundef nonnull align 1 %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) @anon.24a05b5f4b3ca50598fe531abcd13015.29.llvm.12718283123501650770, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.24a05b5f4b3ca50598fe531abcd13015.49.llvm.12718283123501650770) #32 - to label %.noexc unwind label %68 + to label %.noexc unwind label %66 .noexc: ; preds = %8 unreachable @@ -10034,7 +10034,7 @@ define hidden { ptr, i64 } @"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$15from_iter_e "_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h7c8e4bbf05623d26E.llvm.12718283123501650770.exit.i": ; preds = %2 %9 = mul nuw nsw i64 %1, 120 %10 = invoke { i64, i64 } @_ZN5alloc4sync32arcinner_layout_for_value_layout17hd5ad131baef83e15E(i64 noundef range(i64 1, 0) 8, i64 noundef %9) - to label %.noexc6 unwind label %68 + to label %.noexc6 unwind label %66 .noexc6: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h7c8e4bbf05623d26E.llvm.12718283123501650770.exit.i" %11 = extractvalue { i64, i64 } %10, 0 @@ -10060,159 +10060,155 @@ define hidden { ptr, i64 } @"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$15from_iter_e "_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$18allocate_for_slice28_$u7b$$u7b$closure$u7d$$u7d$17h22a76fe96f9a6646E.exit.i.i": ; preds = %18, %14 %.sroa.06.0.i.i.i.i = phi ptr [ %17, %14 ], [ %22, %18 ] %23 = icmp eq ptr %.sroa.06.0.i.i.i.i, null - br i1 %23, label %24, label %29 + br i1 %23, label %24, label %27 24: ; preds = %"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$18allocate_for_slice28_$u7b$$u7b$closure$u7d$$u7d$17h22a76fe96f9a6646E.exit.i.i" invoke void @_ZN5alloc5alloc18handle_alloc_error17h6d7f2bdbc63ffea9E(i64 noundef %11, i64 noundef %12) #32 - to label %.noexc7 unwind label %68 + to label %.noexc7 unwind label %66 .noexc7: ; preds = %24 unreachable -.body: ; preds = %51, %27, %48 - %.pn = phi { ptr, i32 } [ %49, %48 ], [ %28, %27 ], [ %52, %51 ] - %25 = icmp eq i64 %32, 0 - br i1 %25, label %67, label %26 - -26: ; preds = %.body - call void @__rust_dealloc(ptr noundef nonnull %.sroa.06.0.i.i.i.i, i64 noundef %32, i64 noundef 8) #23, !noalias !3259 - br label %67 +.body: ; preds = %46, %25, %49 + %.pn = phi { ptr, i32 } [ %47, %46 ], [ %26, %25 ], [ %50, %49 ] + call void @__rust_dealloc(ptr noundef nonnull %.sroa.06.0.i.i.i.i, i64 noundef %30, i64 noundef 8) #23, !noalias !3259 + br label %65 -27: ; preds = %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h9cfb5cf4799bfd6cE.exit.i" - %28 = landingpad { ptr, i32 } +25: ; preds = %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h9cfb5cf4799bfd6cE.exit.i" + %26 = landingpad { ptr, i32 } cleanup br label %.body -29: ; preds = %"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$18allocate_for_slice28_$u7b$$u7b$closure$u7d$$u7d$17h22a76fe96f9a6646E.exit.i.i" +27: ; preds = %"_ZN5alloc4sync22Arc$LT$$u5b$T$u5d$$GT$18allocate_for_slice28_$u7b$$u7b$closure$u7d$$u7d$17h22a76fe96f9a6646E.exit.i.i" store i64 1, ptr %.sroa.06.0.i.i.i.i, align 8 - %30 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i.i.i.i, i64 8 - store i64 1, ptr %30, align 8 - %31 = add nuw i64 %9, 23 - %32 = and i64 %31, -8 - %33 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i.i.i.i, i64 16 + %28 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i.i.i.i, i64 8 + store i64 1, ptr %28, align 8 + %29 = add nuw i64 %9, 23 + %30 = and i64 %29, -8 + %31 = getelementptr inbounds nuw i8, ptr %.sroa.06.0.i.i.i.i, i64 16 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %6, ptr noundef nonnull align 8 dereferenceable(40) %0, i64 40, i1 false) %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %6, i64 40 store i64 0, ptr %.sroa.2.0..sroa_idx, align 8 - %34 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %35 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %36 = load ptr, ptr %34, align 8, !alias.scope !3264, !noalias !3271, !nonnull !4, !noundef !4 - %37 = load ptr, ptr %35, align 8, !alias.scope !3264, !noalias !3271, !nonnull !4, !noundef !4 - %38 = icmp eq ptr %37, %36 - br i1 %38, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i._crit_edge", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i.lr.ph" - -"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i.lr.ph": ; preds = %29 - %39 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %40 = getelementptr inbounds nuw i8, ptr %5, i64 48 + %32 = getelementptr inbounds nuw i8, ptr %6, i64 24 + %33 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %34 = load ptr, ptr %32, align 8, !alias.scope !3264, !noalias !3271, !nonnull !4, !noundef !4 + %35 = load ptr, ptr %33, align 8, !alias.scope !3264, !noalias !3271, !nonnull !4, !noundef !4 + %36 = icmp eq ptr %35, %34 + br i1 %36, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i._crit_edge", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i.lr.ph" + +"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i.lr.ph": ; preds = %27 + %37 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %38 = getelementptr inbounds nuw i8, ptr %5, i64 48 %.sroa.8.24..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %5, i64 108 - %41 = getelementptr inbounds nuw i8, ptr %5, i64 96 - %42 = getelementptr inbounds nuw i8, ptr %5, i64 116 + %39 = getelementptr inbounds nuw i8, ptr %5, i64 96 + %40 = getelementptr inbounds nuw i8, ptr %5, i64 116 br label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i" -"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i.lr.ph", %55 - %43 = phi ptr [ %37, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i.lr.ph" ], [ %60, %55 ] +"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i.lr.ph", %53 + %41 = phi ptr [ %35, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i.lr.ph" ], [ %58, %53 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !3275) tail call void @llvm.experimental.noalias.scope.decl(metadata !3277) tail call void @llvm.experimental.noalias.scope.decl(metadata !3279) - %44 = getelementptr inbounds nuw i8, ptr %43, i64 40 - store ptr %44, ptr %35, align 8, !alias.scope !3281, !noalias !3271 - %.sroa.4.0..sroa_idx1.i.i = getelementptr inbounds nuw i8, ptr %43, i64 24 + %42 = getelementptr inbounds nuw i8, ptr %41, i64 40 + store ptr %42, ptr %33, align 8, !alias.scope !3281, !noalias !3271 + %.sroa.4.0..sroa_idx1.i.i = getelementptr inbounds nuw i8, ptr %41, i64 24 %.sroa.4.0.copyload2.i.i = load i32, ptr %.sroa.4.0..sroa_idx1.i.i, align 8, !noalias !3282 - %45 = icmp eq i32 %.sroa.4.0.copyload2.i.i, 4 - br i1 %45, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i._crit_edge", label %46 + %43 = icmp eq i32 %.sroa.4.0.copyload2.i.i, 4 + br i1 %43, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i._crit_edge", label %44 -46: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i" - %.sroa.6.sroa.4.0..sroa.6.0..sroa_idx3.sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %43, i64 36 +44: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i" + %.sroa.6.sroa.4.0..sroa.6.0..sroa_idx3.sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %41, i64 36 %.sroa.6.sroa.4.0.copyload.i.i = load i8, ptr %.sroa.6.sroa.4.0..sroa.6.0..sroa_idx3.sroa_idx.i.i, align 4, !noalias !3282 - %.sroa.6.0..sroa_idx3.i.i = getelementptr inbounds nuw i8, ptr %43, i64 28 + %.sroa.6.0..sroa_idx3.i.i = getelementptr inbounds nuw i8, ptr %41, i64 28 %.sroa.6.sroa.0.0.copyload.i.i = load i64, ptr %.sroa.6.0..sroa_idx3.i.i, align 4, !noalias !3282 - %.sroa.0.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %43, i64 16 + %.sroa.0.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %41, i64 16 %.sroa.0.sroa.5.0.copyload.i.i = load i64, ptr %.sroa.0.sroa.5.0..sroa_idx.i.i, align 8, !noalias !3282 - %.sroa.0.sroa.4.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %43, i64 8 + %.sroa.0.sroa.4.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %41, i64 8 %.sroa.0.sroa.4.0.copyload.i.i = load i64, ptr %.sroa.0.sroa.4.0..sroa_idx.i.i, align 8, !noalias !3282 - %.sroa.0.sroa.0.0.copyload.i.i = load i64, ptr %43, align 8, !noalias !3282 + %.sroa.0.sroa.0.0.copyload.i.i = load i64, ptr %41, align 8, !noalias !3282 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %5), !noalias !3283 - %.val.i.i = load ptr, ptr %39, align 8, !alias.scope !3284, !noalias !3285, !nonnull !4, !align !80, !noundef !4 + %.val.i.i = load ptr, ptr %37, align 8, !alias.scope !3284, !noalias !3285, !nonnull !4, !align !80, !noundef !4 tail call void @llvm.experimental.noalias.scope.decl(metadata !3286) invoke void @_ZN12multi_buffer19MultiBufferSnapshot9anchor_at17h825e9eab273d35c9E(ptr noalias nocapture noundef nonnull sret([48 x i8]) align 8 dereferenceable(120) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %.val.i.i, i64 noundef %.sroa.0.sroa.4.0.copyload.i.i, i1 noundef zeroext true) - to label %.noexc8 unwind label %48 + to label %.noexc8 unwind label %46 -.noexc8: ; preds = %46 - %47 = icmp ule i64 %.sroa.0.sroa.5.0.copyload.i.i, %.sroa.0.sroa.4.0.copyload.i.i - invoke void @_ZN12multi_buffer19MultiBufferSnapshot9anchor_at17h825e9eab273d35c9E(ptr noalias nocapture noundef nonnull sret([48 x i8]) align 8 dereferenceable(48) %40, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %.val.i.i, i64 noundef %.sroa.0.sroa.5.0.copyload.i.i, i1 noundef zeroext %47) - to label %55 unwind label %48 +.noexc8: ; preds = %44 + %45 = icmp ule i64 %.sroa.0.sroa.5.0.copyload.i.i, %.sroa.0.sroa.4.0.copyload.i.i + invoke void @_ZN12multi_buffer19MultiBufferSnapshot9anchor_at17h825e9eab273d35c9E(ptr noalias nocapture noundef nonnull sret([48 x i8]) align 8 dereferenceable(48) %38, ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %.val.i.i, i64 noundef %.sroa.0.sroa.5.0.copyload.i.i, i1 noundef zeroext %45) + to label %53 unwind label %46 -48: ; preds = %.noexc8, %46 - %49 = landingpad { ptr, i32 } +46: ; preds = %.noexc8, %44 + %47 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr298drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17hd08e33d804e80f0bE"(ptr noalias noundef nonnull align 8 dereferenceable(48) %6) #34 - to label %.body unwind label %65 + to label %.body unwind label %63 -"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i._crit_edge": ; preds = %55, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i", %29 +"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i._crit_edge": ; preds = %53, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i", %27 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4), !noalias !3289 store ptr %6, ptr %4, align 8, !noalias !3289 - %50 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17h712bd032341c28c3E.llvm.7593862546455217030(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %6) - to label %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h9cfb5cf4799bfd6cE.exit.i" unwind label %51 + %48 = invoke noundef i64 @_ZN4core4iter6traits10exact_size17ExactSizeIterator3len17h712bd032341c28c3E.llvm.7593862546455217030(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %6) + to label %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h9cfb5cf4799bfd6cE.exit.i" unwind label %49 -51: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i._crit_edge" - %52 = landingpad { ptr, i32 } +49: ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i._crit_edge" + %50 = landingpad { ptr, i32 } cleanup invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdfdece867a8e4893E.llvm.7593862546455217030"(ptr noalias noundef nonnull align 8 dereferenceable(8) %4) - to label %.body unwind label %53 + to label %.body unwind label %51 -53: ; preds = %51 - %54 = landingpad { ptr, i32 } +51: ; preds = %49 + %52 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hfa05ef7d5107e16aE() #33 unreachable "_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h9cfb5cf4799bfd6cE.exit.i": ; preds = %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i._crit_edge" invoke void @"_ZN157_$LT$$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$..drop..DropGuard$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17hdfdece867a8e4893E.llvm.7593862546455217030"(ptr noalias noundef nonnull align 8 dereferenceable(8) %4) - to label %62 unwind label %27 + to label %60 unwind label %25 -55: ; preds = %.noexc8 +53: ; preds = %.noexc8 store i64 %.sroa.6.sroa.0.0.copyload.i.i, ptr %.sroa.8.24..sroa_idx.i.i, align 4, !alias.scope !3298, !noalias !3283 - store i64 %.sroa.0.sroa.0.0.copyload.i.i, ptr %41, align 8, !alias.scope !3300, !noalias !3303 - store i8 %.sroa.6.sroa.4.0.copyload.i.i, ptr %42, align 4, !alias.scope !3300, !noalias !3303 + store i64 %.sroa.0.sroa.0.0.copyload.i.i, ptr %39, align 8, !alias.scope !3300, !noalias !3303 + store i8 %.sroa.6.sroa.4.0.copyload.i.i, ptr %40, align 4, !alias.scope !3300, !noalias !3303 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %.sroa.013, ptr noundef nonnull align 8 dereferenceable(104) %5, i64 104, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.3, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.8.24..sroa_idx.i.i, i64 12, i1 false) call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %5), !noalias !3283 - %56 = load i64, ptr %.sroa.2.0..sroa_idx, align 8, !alias.scope !3275, !noalias !3305, !noundef !4 - %57 = add i64 %56, 1 - store i64 %57, ptr %.sroa.2.0..sroa_idx, align 8, !alias.scope !3275, !noalias !3305 - %58 = getelementptr inbounds { { i64, i64, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { i64, i64, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, { i32, [2 x i32] }, i8, [3 x i8] }, ptr %33, i64 %56 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %58, ptr noundef nonnull align 8 dereferenceable(104) %.sroa.013, i64 104, i1 false) - %.sroa.214.0..sroa_idx = getelementptr inbounds nuw i8, ptr %58, i64 104 + %54 = load i64, ptr %.sroa.2.0..sroa_idx, align 8, !alias.scope !3275, !noalias !3305, !noundef !4 + %55 = add i64 %54, 1 + store i64 %55, ptr %.sroa.2.0..sroa_idx, align 8, !alias.scope !3275, !noalias !3305 + %56 = getelementptr inbounds { { i64, i64, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, { i64, i64, { { i32, i16, [1 x i16] }, i64, i64, i8, [7 x i8] } }, i64, { i32, [2 x i32] }, i8, [3 x i8] }, ptr %31, i64 %54 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(104) %56, ptr noundef nonnull align 8 dereferenceable(104) %.sroa.013, i64 104, i1 false) + %.sroa.214.0..sroa_idx = getelementptr inbounds nuw i8, ptr %56, i64 104 store i32 %.sroa.4.0.copyload2.i.i, ptr %.sroa.214.0..sroa_idx, align 8 - %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %58, i64 108 + %.sroa.3.0..sroa_idx = getelementptr inbounds nuw i8, ptr %56, i64 108 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %.sroa.3.0..sroa_idx, ptr noundef nonnull align 4 dereferenceable(12) %.sroa.3, i64 12, i1 false) - %59 = load ptr, ptr %34, align 8, !alias.scope !3306, !noalias !3271, !nonnull !4, !noundef !4 - %60 = load ptr, ptr %35, align 8, !alias.scope !3306, !noalias !3271, !nonnull !4, !noundef !4 - %61 = icmp eq ptr %60, %59 - br i1 %61, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i._crit_edge", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i" - -62: ; preds = %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h9cfb5cf4799bfd6cE.exit.i" - %63 = insertvalue { ptr, i64 } poison, ptr %.sroa.06.0.i.i.i.i, 0 - %64 = insertvalue { ptr, i64 } %63, i64 %1, 1 + %57 = load ptr, ptr %32, align 8, !alias.scope !3306, !noalias !3271, !nonnull !4, !noundef !4 + %58 = load ptr, ptr %33, align 8, !alias.scope !3306, !noalias !3271, !nonnull !4, !noundef !4 + %59 = icmp eq ptr %58, %57 + br i1 %59, label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i._crit_edge", label %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf5c4adefa9aea884E.exit.i.i" + +60: ; preds = %"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h9cfb5cf4799bfd6cE.exit.i" + %61 = insertvalue { ptr, i64 } poison, ptr %.sroa.06.0.i.i.i.i, 0 + %62 = insertvalue { ptr, i64 } %61, i64 %1, 1 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4), !noalias !3289 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) - ret { ptr, i64 } %64 + ret { ptr, i64 } %62 -65: ; preds = %68, %48 - %66 = landingpad { ptr, i32 } +63: ; preds = %66, %46 + %64 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hfa05ef7d5107e16aE() #33 unreachable -67: ; preds = %.body, %26, %68 - %.pn.pn17 = phi { ptr, i32 } [ %69, %68 ], [ %.pn, %26 ], [ %.pn, %.body ] +65: ; preds = %.body, %66 + %.pn.pn17 = phi { ptr, i32 } [ %67, %66 ], [ %.pn, %.body ] resume { ptr, i32 } %.pn.pn17 -68: ; preds = %24, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h7c8e4bbf05623d26E.llvm.12718283123501650770.exit.i", %8 - %69 = landingpad { ptr, i32 } +66: ; preds = %24, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h7c8e4bbf05623d26E.llvm.12718283123501650770.exit.i", %8 + %67 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr248drop_in_place$LT$core..iter..adapters..map..Map$LT$alloc..vec..into_iter..IntoIter$LT$text..selection..Selection$LT$usize$GT$$GT$$C$editor..selections_collection..MutableSelectionsCollection..select$LT$usize$GT$..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$17h9cfb5cf4799bfd6cE"(ptr noalias noundef nonnull align 8 dereferenceable(40) %0) #34 - to label %67 unwind label %65 + to label %65 unwind label %63 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/zed-rs/optimized/dm2ksdv5qc85lqu404cluyab5.ll b/bench/zed-rs/optimized/dm2ksdv5qc85lqu404cluyab5.ll index 5f2bf480435..08acf5075ed 100644 --- a/bench/zed-rs/optimized/dm2ksdv5qc85lqu404cluyab5.ll +++ b/bench/zed-rs/optimized/dm2ksdv5qc85lqu404cluyab5.ll @@ -29584,36 +29584,30 @@ _ZN4core7unicode12unicode_data11white_space6lookup17h068e552cef3c7d19E.exit.i.i. br i1 %66, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0b2fe6121ef909c7E.exit.i", label %_ZN4core7unicode12unicode_data11white_space6lookup17h068e552cef3c7d19E.exit.thread.i.i.i.i _ZN4core7unicode12unicode_data11white_space6lookup17h068e552cef3c7d19E.exit.thread.i.i.i.i: ; preds = %_ZN4core7unicode12unicode_data11white_space6lookup17h068e552cef3c7d19E.exit.i.i.i.i, %47 - %67 = and i32 %44, -33 - %68 = add nsw i32 %67, -91 - %or.cond5.i.i.i.i = icmp ult i32 %68, -26 - br i1 %or.cond5.i.i.i.i, label %69, label %74 - -69: ; preds = %_ZN4core7unicode12unicode_data11white_space6lookup17h068e552cef3c7d19E.exit.thread.i.i.i.i - %70 = tail call noundef zeroext i1 @_ZN4core7unicode12unicode_data10alphabetic6lookup17h417bf3450422e9e5E(i32 noundef range(i32 1114113, 1114112) %44), !noalias !9282 - br i1 %70, label %74, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0b2fe6121ef909c7E.exit.i" + %67 = tail call noundef zeroext i1 @_ZN4core7unicode12unicode_data10alphabetic6lookup17h417bf3450422e9e5E(i32 noundef range(i32 1114113, 1114112) %44), !noalias !9282 + br i1 %67, label %71, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0b2fe6121ef909c7E.exit.i" "_ZN6editor6Editor32accept_partial_inline_completion28_$u7b$$u7b$closure$u7d$$u7d$17h80000e7cd0b6ee8fE.exit.i.i.i": ; preds = %45 - %71 = and i32 %44, 95 - %72 = add nsw i32 %71, -91 - %or.cond52.i.i.i.i = icmp ult i32 %72, -26 - br i1 %or.cond52.i.i.i.i, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0b2fe6121ef909c7E.exit.i", label %74 + %68 = and i32 %44, 95 + %69 = add nsw i32 %68, -91 + %or.cond52.i.i.i.i = icmp ult i32 %69, -26 + br i1 %or.cond52.i.i.i.i, label %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0b2fe6121ef909c7E.exit.i", label %71 -"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0b2fe6121ef909c7E.exit.i": ; preds = %"_ZN6editor6Editor32accept_partial_inline_completion28_$u7b$$u7b$closure$u7d$$u7d$17h80000e7cd0b6ee8fE.exit.i.i.i", %69, %_ZN4core7unicode12unicode_data11white_space6lookup17h068e552cef3c7d19E.exit.i.i.i.i, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i" +"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0b2fe6121ef909c7E.exit.i": ; preds = %"_ZN6editor6Editor32accept_partial_inline_completion28_$u7b$$u7b$closure$u7d$$u7d$17h80000e7cd0b6ee8fE.exit.i.i.i", %_ZN4core7unicode12unicode_data11white_space6lookup17h068e552cef3c7d19E.exit.thread.i.i.i.i, %_ZN4core7unicode12unicode_data11white_space6lookup17h068e552cef3c7d19E.exit.i.i.i.i, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i", %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.thread.i" tail call void @llvm.assume(i1 %5) tail call void @_ZN5alloc6string6String4push17h41bd6cc148f6c106E.llvm.933925041898046037(ptr noalias noundef nonnull align 8 dereferenceable(24) %.8.val, i32 noundef range(i32 0, 1114112) %44), !noalias !9282 - %73 = icmp eq ptr %43, %3 - br i1 %73, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h3045d1f44b9ca712E.exit, label %6 + %70 = icmp eq ptr %43, %3 + br i1 %70, label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h3045d1f44b9ca712E.exit, label %6 -74: ; preds = %"_ZN6editor6Editor32accept_partial_inline_completion28_$u7b$$u7b$closure$u7d$$u7d$17h80000e7cd0b6ee8fE.exit.i.i.i", %69, %_ZN4core7unicode12unicode_data11white_space6lookup17h068e552cef3c7d19E.exit.thread.i.i.i.i - %75 = icmp ne ptr %.16.val, null - tail call void @llvm.assume(i1 %75) +71: ; preds = %"_ZN6editor6Editor32accept_partial_inline_completion28_$u7b$$u7b$closure$u7d$$u7d$17h80000e7cd0b6ee8fE.exit.i.i.i", %_ZN4core7unicode12unicode_data11white_space6lookup17h068e552cef3c7d19E.exit.thread.i.i.i.i + %72 = icmp ne ptr %.16.val, null + tail call void @llvm.assume(i1 %72) store i8 1, ptr %.16.val, align 1, !noalias !9282 br label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h3045d1f44b9ca712E.exit -_ZN4core4iter6traits8iterator8Iterator8try_fold17h3045d1f44b9ca712E.exit: ; preds = %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.i", %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0b2fe6121ef909c7E.exit.i", %1, %74 - %76 = phi i1 [ true, %74 ], [ false, %1 ], [ false, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0b2fe6121ef909c7E.exit.i" ], [ false, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.i" ] - ret i1 %76 +_ZN4core4iter6traits8iterator8Iterator8try_fold17h3045d1f44b9ca712E.exit: ; preds = %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.i", %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0b2fe6121ef909c7E.exit.i", %1, %71 + %73 = phi i1 [ true, %71 ], [ false, %1 ], [ false, %"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..function..FnMut$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$8call_mut17h0b2fe6121ef909c7E.exit.i" ], [ false, %"_ZN81_$LT$core..str..iter..Chars$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb5130c238633cf11E.exit.i" ] + ret i1 %73 } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/zstd/optimized/zstd_compress.c.ll b/bench/zstd/optimized/zstd_compress.c.ll index cc807ee53b3..60045258197 100644 --- a/bench/zstd/optimized/zstd_compress.c.ll +++ b/bench/zstd/optimized/zstd_compress.c.ll @@ -13536,7 +13536,11 @@ if.then54: ; preds = %if.end50 if.then56: ; preds = %if.then54 %cmp.i.i.i = icmp eq i32 %46, 0 - br i1 %cmp.i.i.i, label %if.then.i.i.i, label %ZSTD_cwksp_internal_advance_phase.exit.i.i + br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.then56.if.end.i.i_crit_edge + +if.then56.if.end.i.i_crit_edge: ; preds = %if.then56 + %.pre = load ptr, ptr %tableEnd.i, align 8 + br label %if.end.i.i if.then.i.i.i: ; preds = %if.then56 %47 = load ptr, ptr %objectEnd.i63, align 8 @@ -13568,19 +13572,15 @@ if.then25.i.i.i: ; preds = %do.end20.i.i.i if.end29.i.i.i: ; preds = %if.then25.i.i.i, %do.end20.i.i.i store i32 1, ptr %phase1.i, align 8 - br label %ZSTD_cwksp_internal_advance_phase.exit.i.i - -ZSTD_cwksp_internal_advance_phase.exit.i.i: ; preds = %if.end29.i.i.i, %if.then56 - %cmp.i.i132 = icmp eq i64 %and.i.i, 0 - br i1 %cmp.i.i132, label %ZSTD_cwksp_reserve_aligned_init_once.exit, label %if.end.i.i + br label %if.end.i.i -if.end.i.i: ; preds = %ZSTD_cwksp_internal_advance_phase.exit.i.i +if.end.i.i: ; preds = %if.then56.if.end.i.i_crit_edge, %if.end29.i.i.i + %52 = phi ptr [ %.pre, %if.then56.if.end.i.i_crit_edge ], [ %add.ptr.i.i.i, %if.end29.i.i.i ] %allocStart.i.i.i = getelementptr inbounds nuw i8, ptr %ws, i64 40 - %52 = load ptr, ptr %allocStart.i.i.i, align 8 + %53 = load ptr, ptr %allocStart.i.i.i, align 8 %idx.neg.i.i.i = sub i64 0, %and.i.i - %add.ptr.i4.i.i = getelementptr inbounds i8, ptr %52, i64 %idx.neg.i.i.i - %53 = load ptr, ptr %tableEnd.i, align 8 - %cmp.i6.i.i = icmp ult ptr %add.ptr.i4.i.i, %53 + %add.ptr.i4.i.i = getelementptr inbounds i8, ptr %53, i64 %idx.neg.i.i.i + %cmp.i6.i.i = icmp ult ptr %add.ptr.i4.i.i, %52 br i1 %cmp.i6.i.i, label %do.end2.i.i.i, label %if.end.i.i.i do.end2.i.i.i: ; preds = %if.end.i.i @@ -13613,8 +13613,8 @@ if.then.i135: ; preds = %ZSTD_cwksp_reserve_ store ptr %add.ptr.i4.i.i, ptr %initOnceStart.i, align 8 br label %ZSTD_cwksp_reserve_aligned_init_once.exit -ZSTD_cwksp_reserve_aligned_init_once.exit: ; preds = %if.then.i.i.i, %ZSTD_cwksp_internal_advance_phase.exit.i.i, %do.end2.i.i.i, %ZSTD_cwksp_reserve_internal.exit.i, %if.then.i135 - %retval.0.i15.i = phi ptr [ %add.ptr.i4.i.i, %if.then.i135 ], [ %add.ptr.i4.i.i, %ZSTD_cwksp_reserve_internal.exit.i ], [ null, %ZSTD_cwksp_internal_advance_phase.exit.i.i ], [ null, %do.end2.i.i.i ], [ null, %if.then.i.i.i ] +ZSTD_cwksp_reserve_aligned_init_once.exit: ; preds = %if.then.i.i.i, %do.end2.i.i.i, %ZSTD_cwksp_reserve_internal.exit.i, %if.then.i135 + %retval.0.i15.i = phi ptr [ %add.ptr.i4.i.i, %if.then.i135 ], [ %add.ptr.i4.i.i, %ZSTD_cwksp_reserve_internal.exit.i ], [ null, %do.end2.i.i.i ], [ null, %if.then.i.i.i ] %tagTable = getelementptr inbounds nuw i8, ptr %ms, i64 56 store ptr %retval.0.i15.i, ptr %tagTable, align 8 %hashSalt.i = getelementptr inbounds nuw i8, ptr %ms, i64 96 @@ -13649,7 +13649,7 @@ ZSTD_cwksp_reserve_aligned_init_once.exit: ; preds = %if.then.i.i.i, %ZST if.else: ; preds = %if.then54 %cmp.i.i.i144 = icmp ult i32 %46, 2 - br i1 %cmp.i.i.i144, label %if.then.i.i.i160, label %ZSTD_cwksp_internal_advance_phase.exit.i.i145 + br i1 %cmp.i.i.i144, label %if.then.i.i.i160, label %if.end.i.i147 if.then.i.i.i160: ; preds = %if.else %cmp3.i.i.i = icmp eq i32 %46, 0 @@ -13685,13 +13685,9 @@ if.then25.i.i.i174: ; preds = %do.end20.i.i.i171 if.end29.i.i.i161: ; preds = %if.then25.i.i.i174, %do.end20.i.i.i171, %if.then.i.i.i160 store i32 2, ptr %phase1.i, align 8 - br label %ZSTD_cwksp_internal_advance_phase.exit.i.i145 - -ZSTD_cwksp_internal_advance_phase.exit.i.i145: ; preds = %if.end29.i.i.i161, %if.else - %cmp.i.i146 = icmp eq i64 %and.i.i, 0 - br i1 %cmp.i.i146, label %ZSTD_cwksp_reserve_aligned.exit, label %if.end.i.i147 + br label %if.end.i.i147 -if.end.i.i147: ; preds = %ZSTD_cwksp_internal_advance_phase.exit.i.i145 +if.end.i.i147: ; preds = %if.else, %if.end29.i.i.i161 %allocStart.i.i.i148 = getelementptr inbounds nuw i8, ptr %ws, i64 40 %68 = load ptr, ptr %allocStart.i.i.i148, align 8 %idx.neg.i.i.i149 = sub i64 0, %and.i.i @@ -13718,8 +13714,8 @@ if.end6.i.i.i: ; preds = %if.then4.i.i.i157, store ptr %add.ptr.i4.i.i150, ptr %allocStart.i.i.i148, align 8 br label %ZSTD_cwksp_reserve_aligned.exit -ZSTD_cwksp_reserve_aligned.exit: ; preds = %if.then5.i.i.i, %ZSTD_cwksp_internal_advance_phase.exit.i.i145, %do.end2.i.i.i158, %if.end6.i.i.i - %retval.0.i.i = phi ptr [ null, %ZSTD_cwksp_internal_advance_phase.exit.i.i145 ], [ null, %do.end2.i.i.i158 ], [ %add.ptr.i4.i.i150, %if.end6.i.i.i ], [ null, %if.then5.i.i.i ] +ZSTD_cwksp_reserve_aligned.exit: ; preds = %if.then5.i.i.i, %do.end2.i.i.i158, %if.end6.i.i.i + %retval.0.i.i = phi ptr [ null, %do.end2.i.i.i158 ], [ %add.ptr.i4.i.i150, %if.end6.i.i.i ], [ null, %if.then5.i.i.i ] %tagTable59 = getelementptr inbounds nuw i8, ptr %ms, i64 56 store ptr %retval.0.i.i, ptr %tagTable59, align 8 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(1) %retval.0.i.i, i8 0, i64 %shl3, i1 false) diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..158f24e0e26 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/120352 export COMPTIME_MODE=0 # Please rebase manually