diff --git a/bench/actix-rs/optimized/4jlfyqkak9x9x2yv.ll b/bench/actix-rs/optimized/4jlfyqkak9x9x2yv.ll index cc5bd28ee79..1a31456c37f 100644 --- a/bench/actix-rs/optimized/4jlfyqkak9x9x2yv.ll +++ b/bench/actix-rs/optimized/4jlfyqkak9x9x2yv.ll @@ -3489,19 +3489,19 @@ define noundef zeroext i1 @"_ZN76_$LT$actix_router..resource..ResourceDef$u20$as 6: ; preds = %2 %trunc.i = trunc nuw i64 %3 to i1 - br i1 %trunc.i, label %15, label %7 + %7 = getelementptr inbounds nuw i8, ptr %0, i64 24 + br i1 %trunc.i, label %15, label %8 -7: ; preds = %6 - %8 = icmp eq i64 %3, 0 - tail call void @llvm.assume(i1 %8) - %9 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %.val3.i = load i64, ptr %9, align 8, !alias.scope !446, !noalias !449, !noundef !5 +8: ; preds = %6 + %9 = icmp eq i64 %3, 0 + tail call void @llvm.assume(i1 %9) + %.val3.i = load i64, ptr %7, align 8, !alias.scope !446, !noalias !449, !noundef !5 %10 = getelementptr inbounds nuw i8, ptr %1, i64 24 %.val5.i = load i64, ptr %10, align 8, !alias.scope !449, !noalias !446, !noundef !5 %.not.i.i.i = icmp eq i64 %.val3.i, %.val5.i br i1 %.not.i.i.i, label %11, label %"_ZN72_$LT$actix_router..pattern..Patterns$u20$as$u20$core..cmp..PartialEq$GT$2eq17h658df384a9a5d314E.exit" -11: ; preds = %7 +11: ; preds = %8 %12 = getelementptr inbounds nuw i8, ptr %1, i64 16 %.val4.i = load ptr, ptr %12, align 8, !alias.scope !449, !noalias !446, !nonnull !5, !noundef !5 %13 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -3511,38 +3511,35 @@ define noundef zeroext i1 @"_ZN76_$LT$actix_router..resource..ResourceDef$u20$as br label %"_ZN72_$LT$actix_router..pattern..Patterns$u20$as$u20$core..cmp..PartialEq$GT$2eq17h658df384a9a5d314E.exit" 15: ; preds = %6 - %16 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %16) - %17 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %.val6.i = load ptr, ptr %17, align 8, !alias.scope !446, !noalias !449, !nonnull !5, !noundef !5 - %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %.val7.i = load i64, ptr %18, align 8, !alias.scope !446, !noalias !449, !noundef !5 - %19 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.val8.i = load ptr, ptr %19, align 8, !alias.scope !449, !noalias !446, !nonnull !5, !noundef !5 - %20 = getelementptr inbounds nuw i8, ptr %1, i64 24 - %.val9.i = load i64, ptr %20, align 8, !alias.scope !449, !noalias !446, !noundef !5 + %16 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %.val6.i = load ptr, ptr %16, align 8, !alias.scope !446, !noalias !449, !nonnull !5, !noundef !5 + %.val7.i = load i64, ptr %7, align 8, !alias.scope !446, !noalias !449, !noundef !5 + %17 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %.val8.i = load ptr, ptr %17, align 8, !alias.scope !449, !noalias !446, !nonnull !5, !noundef !5 + %18 = getelementptr inbounds nuw i8, ptr %1, i64 24 + %.val9.i = load i64, ptr %18, align 8, !alias.scope !449, !noalias !446, !noundef !5 %.not.i.i10.i = icmp eq i64 %.val7.i, %.val9.i br i1 %.not.i.i10.i, label %.preheader.split.i.i.i, label %"_ZN72_$LT$actix_router..pattern..Patterns$u20$as$u20$core..cmp..PartialEq$GT$2eq17h658df384a9a5d314E.exit" -.preheader.split.i.i.i: ; preds = %15, %21 - %.sroa.01.0.i.i.i = phi i64 [ %22, %21 ], [ 0, %15 ] +.preheader.split.i.i.i: ; preds = %15, %19 + %.sroa.01.0.i.i.i = phi i64 [ %20, %19 ], [ 0, %15 ] %exitcond.not.i.i.i = icmp eq i64 %.sroa.01.0.i.i.i, %.val7.i - br i1 %exitcond.not.i.i.i, label %"_ZN72_$LT$actix_router..pattern..Patterns$u20$as$u20$core..cmp..PartialEq$GT$2eq17h658df384a9a5d314E.exit", label %21 - -21: ; preds = %.preheader.split.i.i.i - %22 = add i64 %.sroa.01.0.i.i.i, 1 - %23 = getelementptr inbounds [0 x { { { i64, ptr, {} }, i64 } }], ptr %.val6.i, i64 0, i64 %.sroa.01.0.i.i.i - %24 = getelementptr inbounds [0 x { { { i64, ptr, {} }, i64 } }], ptr %.val8.i, i64 0, i64 %.sroa.01.0.i.i.i - %25 = tail call noundef zeroext i1 @"_ZN5alloc3vec10partial_eq117_$LT$impl$u20$core..cmp..PartialEq$LT$alloc..vec..Vec$LT$U$C$A2$GT$$GT$$u20$for$u20$alloc..vec..Vec$LT$T$C$A1$GT$$GT$2eq17h5101c8de422f1c19E.llvm.3646540950948783737"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %23, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %24), !noalias !455 - br i1 %25, label %.preheader.split.i.i.i, label %"_ZN72_$LT$actix_router..pattern..Patterns$u20$as$u20$core..cmp..PartialEq$GT$2eq17h658df384a9a5d314E.exit" - -"_ZN72_$LT$actix_router..pattern..Patterns$u20$as$u20$core..cmp..PartialEq$GT$2eq17h658df384a9a5d314E.exit": ; preds = %.preheader.split.i.i.i, %21, %2, %7, %11, %15 - %.0.shrunk.i = phi i1 [ false, %2 ], [ %14, %11 ], [ false, %7 ], [ false, %15 ], [ %exitcond.not.i.i.i, %21 ], [ %exitcond.not.i.i.i, %.preheader.split.i.i.i ] - %26 = getelementptr inbounds nuw i8, ptr %0, i64 146 + br i1 %exitcond.not.i.i.i, label %"_ZN72_$LT$actix_router..pattern..Patterns$u20$as$u20$core..cmp..PartialEq$GT$2eq17h658df384a9a5d314E.exit", label %19 + +19: ; preds = %.preheader.split.i.i.i + %20 = add i64 %.sroa.01.0.i.i.i, 1 + %21 = getelementptr inbounds [0 x { { { i64, ptr, {} }, i64 } }], ptr %.val6.i, i64 0, i64 %.sroa.01.0.i.i.i + %22 = getelementptr inbounds [0 x { { { i64, ptr, {} }, i64 } }], ptr %.val8.i, i64 0, i64 %.sroa.01.0.i.i.i + %23 = tail call noundef zeroext i1 @"_ZN5alloc3vec10partial_eq117_$LT$impl$u20$core..cmp..PartialEq$LT$alloc..vec..Vec$LT$U$C$A2$GT$$GT$$u20$for$u20$alloc..vec..Vec$LT$T$C$A1$GT$$GT$2eq17h5101c8de422f1c19E.llvm.3646540950948783737"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %21, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %22), !noalias !455 + br i1 %23, label %.preheader.split.i.i.i, label %"_ZN72_$LT$actix_router..pattern..Patterns$u20$as$u20$core..cmp..PartialEq$GT$2eq17h658df384a9a5d314E.exit" + +"_ZN72_$LT$actix_router..pattern..Patterns$u20$as$u20$core..cmp..PartialEq$GT$2eq17h658df384a9a5d314E.exit": ; preds = %.preheader.split.i.i.i, %19, %2, %8, %11, %15 + %.0.shrunk.i = phi i1 [ false, %2 ], [ %14, %11 ], [ false, %8 ], [ false, %15 ], [ %exitcond.not.i.i.i, %19 ], [ %exitcond.not.i.i.i, %.preheader.split.i.i.i ] + %24 = getelementptr inbounds nuw i8, ptr %0, i64 146 + %25 = load i8, ptr %24, align 2, !range !127 + %26 = getelementptr inbounds nuw i8, ptr %1, i64 146 %27 = load i8, ptr %26, align 2, !range !127 - %28 = getelementptr inbounds nuw i8, ptr %1, i64 146 - %29 = load i8, ptr %28, align 2, !range !127 - %.not = icmp eq i8 %27, %29 + %.not = icmp eq i8 %25, %27 %.0 = select i1 %.0.shrunk.i, i1 %.not, i1 false ret i1 %.0 } diff --git a/bench/actix-rs/optimized/4pmtvrahn6eloepe.ll b/bench/actix-rs/optimized/4pmtvrahn6eloepe.ll index 71f76510ace..1bc27ffc2af 100644 --- a/bench/actix-rs/optimized/4pmtvrahn6eloepe.ll +++ b/bench/actix-rs/optimized/4pmtvrahn6eloepe.ll @@ -9799,7 +9799,7 @@ define hidden void @"_ZN6brotli3enc6writer64CompressorWriterCustomIo$LT$ErrType$ 16: ; preds = %12 invoke void @"_ZN68_$LT$bytes..bytes_mut..BytesMut$u20$as$u20$core..ops..drop..Drop$GT$4drop17ha467eeae9528831cE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %9) - to label %"_ZN4core3ptr131drop_in_place$LT$core..option..Option$LT$brotli_decompressor..io_wrappers..IntoIoWriter$LT$actix_http..encoding..Writer$GT$$GT$$GT$17hdf47ee8631e6c537E.exit" unwind label %37 + to label %"_ZN4core3ptr131drop_in_place$LT$core..option..Option$LT$brotli_decompressor..io_wrappers..IntoIoWriter$LT$actix_http..encoding..Writer$GT$$GT$$GT$17hdf47ee8631e6c537E.exit" unwind label %36 17: ; preds = %7 %18 = getelementptr inbounds nuw i8, ptr %10, i64 5592 @@ -9820,59 +9820,55 @@ define hidden void @"_ZN6brotli3enc6writer64CompressorWriterCustomIo$LT$ErrType$ %24 = getelementptr inbounds nuw i8, ptr %10, i64 5579 %25 = load i8, ptr %24, align 1, !range !617, !alias.scope !1025, !noundef !13 %26 = trunc nuw i8 %25 to i1 - br i1 %26, label %_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit, label %27 + br i1 %26, label %_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit5, label %27 27: ; preds = %17 %28 = getelementptr inbounds nuw i8, ptr %10, i64 144 %29 = invoke noundef i32 @_ZN6brotli3enc6encode13set_parameter17h6672fa74cdecd6e9E(ptr noalias noundef nonnull align 8 dereferenceable(112) %28, i32 noundef 1, i32 noundef %5) - to label %._ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit_crit_edge unwind label %30 + to label %_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit unwind label %30 -._ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit_crit_edge: ; preds = %27 - %.pre = load i8, ptr %24, align 1, !range !617, !alias.scope !1028 - br label %_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit - -30: ; preds = %34, %27 +30: ; preds = %33, %27 %31 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr267drop_in_place$LT$brotli..enc..writer..CompressorWriterCustomIo$LT$std..io..error..Error$C$brotli_decompressor..io_wrappers..IntoIoWriter$LT$actix_http..encoding..Writer$GT$$C$alloc_stdlib..heap_alloc..WrapBox$LT$u8$GT$$C$alloc_stdlib..std_alloc..StandardAlloc$GT$$GT$17h43cb033ac16bc87fE"(ptr noalias noundef nonnull align 8 dereferenceable(5648) %10) #33 - to label %40 unwind label %37 + to label %39 unwind label %36 -_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit: ; preds = %._ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit_crit_edge, %17 - %32 = phi i8 [ %.pre, %._ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit_crit_edge ], [ %25, %17 ] - %33 = trunc nuw i8 %32 to i1 - br i1 %33, label %_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit5, label %34 +_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit: ; preds = %27 + %.pre = load i8, ptr %24, align 1, !range !617, !alias.scope !1028 + %32 = trunc nuw i8 %.pre to i1 + br i1 %32, label %_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit5, label %33 -34: ; preds = %_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit - %35 = getelementptr inbounds nuw i8, ptr %10, i64 144 - %36 = invoke noundef i32 @_ZN6brotli3enc6encode13set_parameter17h6672fa74cdecd6e9E(ptr noalias noundef nonnull align 8 dereferenceable(112) %35, i32 noundef 2, i32 noundef %6) +33: ; preds = %_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit + %34 = getelementptr inbounds nuw i8, ptr %10, i64 144 + %35 = invoke noundef i32 @_ZN6brotli3enc6encode13set_parameter17h6672fa74cdecd6e9E(ptr noalias noundef nonnull align 8 dereferenceable(112) %34, i32 noundef 2, i32 noundef %6) to label %_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit5 unwind label %30 -_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit5: ; preds = %_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit, %34 +_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit5: ; preds = %17, %_ZN6brotli3enc6encode25BrotliEncoderSetParameter17h1c2e2834920a22acE.exit, %33 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5648) %0, ptr noundef nonnull align 8 dereferenceable(5648) %10, i64 5648, i1 false) call void @llvm.lifetime.end.p0(i64 5648, ptr nonnull %10) ret void -37: ; preds = %16, %.thread, %30 - %38 = landingpad { ptr, i32 } +36: ; preds = %16, %.thread, %30 + %37 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #34 unreachable "_ZN4core3ptr131drop_in_place$LT$core..option..Option$LT$brotli_decompressor..io_wrappers..IntoIoWriter$LT$actix_http..encoding..Writer$GT$$GT$$GT$17hdf47ee8631e6c537E.exit": ; preds = %12, %16 - %39 = icmp eq i64 %3, 0 - br i1 %39, label %.thread, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.14998522591088738574.exit.i.i.i" + %38 = icmp eq i64 %3, 0 + br i1 %38, label %.thread, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.14998522591088738574.exit.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.14998522591088738574.exit.i.i.i": ; preds = %"_ZN4core3ptr131drop_in_place$LT$core..option..Option$LT$brotli_decompressor..io_wrappers..IntoIoWriter$LT$actix_http..encoding..Writer$GT$$GT$$GT$17hdf47ee8631e6c537E.exit" call void @__rust_dealloc(ptr noundef nonnull %2, i64 noundef %3, i64 noundef 1) #32, !noalias !1031 br label %.thread -40: ; preds = %30, %.thread +39: ; preds = %30, %.thread %.pn10 = phi { ptr, i32 } [ %13, %.thread ], [ %31, %30 ] resume { ptr, i32 } %.pn10 .thread: ; preds = %"_ZN4core3ptr131drop_in_place$LT$core..option..Option$LT$brotli_decompressor..io_wrappers..IntoIoWriter$LT$actix_http..encoding..Writer$GT$$GT$$GT$17hdf47ee8631e6c537E.exit", %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h611556c63980c062E.llvm.14998522591088738574.exit.i.i.i" invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h5ad080ef8b5853c3E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %11) #33 - to label %40 unwind label %37 + to label %39 unwind label %36 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/assimp/optimized/glTF2Importer.cpp.ll b/bench/assimp/optimized/glTF2Importer.cpp.ll index 8e1116b0bac..b0f6f90fd0c 100644 --- a/bench/assimp/optimized/glTF2Importer.cpp.ll +++ b/bench/assimp/optimized/glTF2Importer.cpp.ll @@ -71512,7 +71512,7 @@ land.lhs.true105.us: ; preds = %land.lhs.true102.us br label %if.end111.us if.end111.us: ; preds = %land.lhs.true105.us, %land.lhs.true102.us, %while.end.us - %isNumber.3.us = phi i8 [ %spec.select64.us, %land.lhs.true102.us ], [ %spec.select64.us, %while.end.us ], [ %spec.select65.us, %land.lhs.true105.us ] + %isNumber.3.us = phi i8 [ %isNumber.0.lcssa.us, %land.lhs.true102.us ], [ %spec.select64.us, %while.end.us ], [ %spec.select65.us, %land.lhs.true105.us ] %tobool112.us = trunc nuw i8 %isNumber.3.us to i1 br i1 %tobool112.us, label %for.cond114.preheader.us, label %if.end131.us @@ -71760,7 +71760,7 @@ land.lhs.true105: ; preds = %land.lhs.true102 br label %if.end111 if.end111: ; preds = %land.lhs.true105, %land.lhs.true102, %while.end - %isNumber.3 = phi i8 [ %spec.select64, %land.lhs.true102 ], [ %spec.select64, %while.end ], [ %spec.select65, %land.lhs.true105 ] + %isNumber.3 = phi i8 [ %isNumber.0.lcssa, %land.lhs.true102 ], [ %spec.select64, %while.end ], [ %spec.select65, %land.lhs.true105 ] %tobool112 = trunc nuw i8 %isNumber.3 to i1 br i1 %tobool112, label %for.cond114.preheader, label %if.end131 diff --git a/bench/boost/optimized/ext.ll b/bench/boost/optimized/ext.ll index 94727534a70..5c239ac3f3d 100644 --- a/bench/boost/optimized/ext.ll +++ b/bench/boost/optimized/ext.ll @@ -19319,7 +19319,7 @@ _ZN5boost4asio6detail27conditionally_enabled_event10signal_allERNS1_27conditiona %30 = getelementptr inbounds nuw i8, ptr %29, i64 8 %31 = load ptr, ptr %30, align 8 invoke void %31(ptr noundef nonnull align 8 dereferenceable(8) %27) - to label %_ZN5boost4asio6detail9scheduler16stop_all_threadsERNS1_27conditionally_enabled_mutex11scoped_lockE.exit unwind label %78 + to label %_ZN5boost4asio6detail9scheduler16stop_all_threadsERNS1_27conditionally_enabled_mutex11scoped_lockE.exit unwind label %77 _ZN5boost4asio6detail9scheduler16stop_all_threadsERNS1_27conditionally_enabled_mutex11scoped_lockE.exit: ; preds = %25, %_ZN5boost4asio6detail27conditionally_enabled_event10signal_allERNS1_27conditionally_enabled_mutex11scoped_lockE.exit.i, %28 %32 = trunc nuw i8 %.sink.i to i1 @@ -19341,103 +19341,99 @@ _ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lock6unlockEv.exit: ; %40 = getelementptr inbounds nuw i8, ptr %39, i64 8 %41 = load i8, ptr %40, align 8, !tbaa !523, !range !448, !noundef !449 %42 = trunc nuw i8 %41 to i1 - br i1 %42, label %_ZN5boost4asio6detail12posix_thread4joinEv.exit.thread, label %43 + br i1 %42, label %_ZN5boost4asio6detail12posix_threadD2Ev.exit, label %43 43: ; preds = %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lock6unlockEv.exit %44 = load i64, ptr %39, align 8, !tbaa !528 %45 = invoke i32 @pthread_join(i64 noundef %44, ptr noundef null) - to label %_ZN5boost4asio6detail12posix_thread4joinEv.exit unwind label %78 + to label %_ZN5boost4asio6detail12posix_thread4joinEv.exit unwind label %77 _ZN5boost4asio6detail12posix_thread4joinEv.exit: ; preds = %43 store i8 1, ptr %40, align 8, !tbaa !523 %.pr = load ptr, ptr %3, align 8, !tbaa !167 %46 = icmp eq ptr %.pr, null - br i1 %46, label %53, label %_ZN5boost4asio6detail12posix_thread4joinEv.exit._ZN5boost4asio6detail12posix_thread4joinEv.exit.thread_crit_edge + br i1 %46, label %52, label %_ZN5boost4asio6detail12posix_thread4joinEv.exit.thread -_ZN5boost4asio6detail12posix_thread4joinEv.exit._ZN5boost4asio6detail12posix_thread4joinEv.exit.thread_crit_edge: ; preds = %_ZN5boost4asio6detail12posix_thread4joinEv.exit +_ZN5boost4asio6detail12posix_thread4joinEv.exit.thread: ; preds = %_ZN5boost4asio6detail12posix_thread4joinEv.exit %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %.pr, i64 8 %.pre6 = load i8, ptr %.phi.trans.insert, align 8, !tbaa !523, !range !448 - br label %_ZN5boost4asio6detail12posix_thread4joinEv.exit.thread + %47 = trunc nuw i8 %.pre6 to i1 + br i1 %47, label %_ZN5boost4asio6detail12posix_threadD2Ev.exit, label %48 -_ZN5boost4asio6detail12posix_thread4joinEv.exit.thread: ; preds = %_ZN5boost4asio6detail12posix_thread4joinEv.exit._ZN5boost4asio6detail12posix_thread4joinEv.exit.thread_crit_edge, %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lock6unlockEv.exit - %47 = phi i8 [ %.pre6, %_ZN5boost4asio6detail12posix_thread4joinEv.exit._ZN5boost4asio6detail12posix_thread4joinEv.exit.thread_crit_edge ], [ %41, %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lock6unlockEv.exit ] - %48 = phi ptr [ %.pr, %_ZN5boost4asio6detail12posix_thread4joinEv.exit._ZN5boost4asio6detail12posix_thread4joinEv.exit.thread_crit_edge ], [ %39, %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lock6unlockEv.exit ] - %49 = trunc nuw i8 %47 to i1 - br i1 %49, label %_ZN5boost4asio6detail12posix_threadD2Ev.exit, label %50 - -50: ; preds = %_ZN5boost4asio6detail12posix_thread4joinEv.exit.thread - %51 = load i64, ptr %48, align 8, !tbaa !528 - %52 = tail call i32 @pthread_detach(i64 noundef %51) #35 +48: ; preds = %_ZN5boost4asio6detail12posix_thread4joinEv.exit.thread + %49 = load i64, ptr %.pr, align 8, !tbaa !528 + %50 = tail call i32 @pthread_detach(i64 noundef %49) #35 br label %_ZN5boost4asio6detail12posix_threadD2Ev.exit -_ZN5boost4asio6detail12posix_threadD2Ev.exit: ; preds = %_ZN5boost4asio6detail12posix_thread4joinEv.exit.thread, %50 - tail call void @_ZdlPvm(ptr noundef nonnull %48, i64 noundef 16) #38 - br label %53 +_ZN5boost4asio6detail12posix_threadD2Ev.exit: ; preds = %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lock6unlockEv.exit, %_ZN5boost4asio6detail12posix_thread4joinEv.exit.thread, %48 + %51 = phi ptr [ %.pr, %_ZN5boost4asio6detail12posix_thread4joinEv.exit.thread ], [ %.pr, %48 ], [ %39, %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lock6unlockEv.exit ] + tail call void @_ZdlPvm(ptr noundef nonnull %51, i64 noundef 16) #38 + br label %52 -53: ; preds = %_ZN5boost4asio6detail12posix_threadD2Ev.exit, %_ZN5boost4asio6detail12posix_thread4joinEv.exit - %54 = trunc nuw i8 %.sroa.6.0 to i1 - br i1 %54, label %55, label %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockD2Ev.exit +52: ; preds = %_ZN5boost4asio6detail12posix_threadD2Ev.exit, %_ZN5boost4asio6detail12posix_thread4joinEv.exit + %53 = trunc nuw i8 %.sroa.6.0 to i1 + br i1 %53, label %54, label %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockD2Ev.exit -55: ; preds = %53 - %56 = getelementptr inbounds nuw i8, ptr %0, i64 56 - %57 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %56) #35 +54: ; preds = %52 + %55 = getelementptr inbounds nuw i8, ptr %0, i64 56 + %56 = tail call i32 @pthread_mutex_unlock(ptr noundef nonnull align 8 dereferenceable(40) %55) #35 br label %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockD2Ev.exit -_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockD2Ev.exit: ; preds = %55, %53, %1 - %58 = getelementptr inbounds nuw i8, ptr %0, i64 224 - %59 = load ptr, ptr %58, align 8, !tbaa !510 - %.not6.i = icmp eq ptr %59, null +_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockD2Ev.exit: ; preds = %54, %52, %1 + %57 = getelementptr inbounds nuw i8, ptr %0, i64 224 + %58 = load ptr, ptr %57, align 8, !tbaa !510 + %.not6.i = icmp eq ptr %58, null br i1 %.not6.i, label %_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEED2Ev.exit, label %.lr.ph.i .lr.ph.i: ; preds = %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockD2Ev.exit - %60 = getelementptr inbounds nuw i8, ptr %0, i64 232 - br label %61 - -61: ; preds = %69, %.lr.ph.i - %62 = phi ptr [ %59, %.lr.ph.i ], [ %70, %69 ] - %63 = load ptr, ptr %62, align 8, !tbaa !500 - store ptr %63, ptr %58, align 8, !tbaa !510 - %64 = icmp eq ptr %63, null - br i1 %64, label %65, label %66 - -65: ; preds = %61 - store ptr null, ptr %60, align 8, !tbaa !507 - br label %66 + %59 = getelementptr inbounds nuw i8, ptr %0, i64 232 + br label %60 + +60: ; preds = %68, %.lr.ph.i + %61 = phi ptr [ %58, %.lr.ph.i ], [ %69, %68 ] + %62 = load ptr, ptr %61, align 8, !tbaa !500 + store ptr %62, ptr %57, align 8, !tbaa !510 + %63 = icmp eq ptr %62, null + br i1 %63, label %64, label %65 + +64: ; preds = %60 + store ptr null, ptr %59, align 8, !tbaa !507 + br label %65 -66: ; preds = %65, %61 - store ptr null, ptr %62, align 8, !tbaa !500 - %67 = getelementptr inbounds nuw i8, ptr %62, i64 8 - %68 = load ptr, ptr %67, align 8, !tbaa !502 +65: ; preds = %64, %60 + store ptr null, ptr %61, align 8, !tbaa !500 + %66 = getelementptr inbounds nuw i8, ptr %61, i64 8 + %67 = load ptr, ptr %66, align 8, !tbaa !502 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) #35 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %2, i8 0, i64 24, i1 false) - invoke void %68(ptr noundef null, ptr noundef nonnull align 8 dereferenceable(20) %62, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 0) - to label %69 unwind label %71 + invoke void %67(ptr noundef null, ptr noundef nonnull align 8 dereferenceable(20) %61, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 noundef 0) + to label %68 unwind label %70 -69: ; preds = %66 +68: ; preds = %65 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) #35 - %70 = load ptr, ptr %58, align 8, !tbaa !510 - %.not.i2 = icmp eq ptr %70, null - br i1 %.not.i2, label %_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEED2Ev.exit, label %61 + %69 = load ptr, ptr %57, align 8, !tbaa !510 + %.not.i2 = icmp eq ptr %69, null + br i1 %.not.i2, label %_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEED2Ev.exit, label %60 -71: ; preds = %66 - %72 = landingpad { ptr, i32 } +70: ; preds = %65 + %71 = landingpad { ptr, i32 } catch ptr null - %73 = extractvalue { ptr, i32 } %72, 0 - call void @__clang_call_terminate(ptr %73) #36 + %72 = extractvalue { ptr, i32 } %71, 0 + call void @__clang_call_terminate(ptr %72) #36 unreachable -_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEED2Ev.exit: ; preds = %69, %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockD2Ev.exit - %74 = getelementptr inbounds nuw i8, ptr %0, i64 112 - %75 = call i32 @pthread_cond_destroy(ptr noundef nonnull align 8 dereferenceable(56) %74) #35 - %76 = getelementptr inbounds nuw i8, ptr %0, i64 56 - %77 = call i32 @pthread_mutex_destroy(ptr noundef nonnull align 8 dereferenceable(40) %76) #35 +_ZN5boost4asio6detail8op_queueINS1_19scheduler_operationEED2Ev.exit: ; preds = %68, %_ZN5boost4asio6detail27conditionally_enabled_mutex11scoped_lockD2Ev.exit + %73 = getelementptr inbounds nuw i8, ptr %0, i64 112 + %74 = call i32 @pthread_cond_destroy(ptr noundef nonnull align 8 dereferenceable(56) %73) #35 + %75 = getelementptr inbounds nuw i8, ptr %0, i64 56 + %76 = call i32 @pthread_mutex_destroy(ptr noundef nonnull align 8 dereferenceable(40) %75) #35 ret void -78: ; preds = %43, %28 - %79 = landingpad { ptr, i32 } +77: ; preds = %43, %28 + %78 = landingpad { ptr, i32 } catch ptr null - %80 = extractvalue { ptr, i32 } %79, 0 - tail call void @__clang_call_terminate(ptr %80) #36 + %79 = extractvalue { ptr, i32 } %78, 0 + tail call void @__clang_call_terminate(ptr %79) #36 unreachable } diff --git a/bench/boost/optimized/junit_log_formatter.ll b/bench/boost/optimized/junit_log_formatter.ll index a77dc70c16f..a1f2cb3320a 100644 --- a/bench/boost/optimized/junit_log_formatter.ll +++ b/bench/boost/optimized/junit_log_formatter.ll @@ -11140,23 +11140,20 @@ define linkonce_odr hidden void @_ZN5boost9unit_test5utils13print_escapedERSoNS0 %19 = load ptr, ptr %1, align 8, !tbaa !3 %20 = getelementptr inbounds nuw i8, ptr %1, i64 8 %21 = load ptr, ptr %20, align 8, !tbaa !8 - %.not37 = icmp eq ptr %19, %21 - br i1 %.not37, label %.critedge, label %.lr.ph - -.lr.ph: ; preds = %18 %invariant.gep = getelementptr i8, ptr %0, i64 16 - br label %22 + %22 = icmp eq ptr %19, %21 + br i1 %22, label %.critedge, label %.critedge34 -22: ; preds = %.lr.ph, %72 - %.sroa.028.036 = phi ptr [ %19, %.lr.ph ], [ %73, %72 ] - %23 = load i8, ptr %.sroa.028.036, align 1, !tbaa !9 +.critedge34: ; preds = %18, %72 + %.sroa.028.037 = phi ptr [ %73, %72 ], [ %19, %18 ] + %23 = load i8, ptr %.sroa.028.037, align 1, !tbaa !9 %24 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZZN5boost9unit_test5utils13print_escapedERSoNS0_13basic_cstringIKcEEE9char_type, i64 16), align 8, !tbaa !13 %.not10.i.i.i = icmp eq ptr %24, null br i1 %.not10.i.i.i, label %select.unfold, label %.lr.ph.i.i.i -.lr.ph.i.i.i: ; preds = %22, %.lr.ph.i.i.i - %.012.i.i.i = phi ptr [ %.1.i.i.i, %.lr.ph.i.i.i ], [ %24, %22 ] - %.0811.i.i.i = phi ptr [ %.19.i.i.i, %.lr.ph.i.i.i ], [ getelementptr inbounds nuw (i8, ptr @_ZZN5boost9unit_test5utils13print_escapedERSoNS0_13basic_cstringIKcEEE9char_type, i64 8), %22 ] +.lr.ph.i.i.i: ; preds = %.critedge34, %.lr.ph.i.i.i + %.012.i.i.i = phi ptr [ %.1.i.i.i, %.lr.ph.i.i.i ], [ %24, %.critedge34 ] + %.0811.i.i.i = phi ptr [ %.19.i.i.i, %.lr.ph.i.i.i ], [ getelementptr inbounds nuw (i8, ptr @_ZZN5boost9unit_test5utils13print_escapedERSoNS0_13basic_cstringIKcEEE9char_type, i64 8), %.critedge34 ] %25 = getelementptr inbounds nuw i8, ptr %.012.i.i.i, i64 32 %26 = load i8, ptr %25, align 1, !tbaa !9 %27 = icmp slt i8 %26, %23 @@ -11244,14 +11241,14 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit15: ; preds = %60, %62 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %4) br label %72 -select.unfold: ; preds = %29, %_ZNKSt8_Rb_treeIcSt4pairIKcPS1_ESt10_Select1stIS3_ESt4lessIcESaIS3_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS3_EPKSt18_Rb_tree_node_baseRS1_.exit.i.i, %22 +select.unfold: ; preds = %29, %_ZNKSt8_Rb_treeIcSt4pairIKcPS1_ESt10_Select1stIS3_ESt4lessIcESaIS3_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS3_EPKSt18_Rb_tree_node_baseRS1_.exit.i.i, %.critedge34 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %3) store i8 %23, ptr %3, align 1, !tbaa !9 %64 = load ptr, ptr %0, align 8, !tbaa !45 %65 = getelementptr i8, ptr %64, i64 -24 %66 = load i64, ptr %65, align 8 - %gep35 = getelementptr i8, ptr %invariant.gep, i64 %66 - %67 = load i64, ptr %gep35, align 8, !tbaa !236 + %gep36 = getelementptr i8, ptr %invariant.gep, i64 %66 + %67 = load i64, ptr %gep36, align 8, !tbaa !236 %.not.i16 = icmp eq i64 %67, 0 br i1 %.not.i16, label %70, label %68 @@ -11268,9 +11265,9 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit18: ; preds = %68, %70 br label %72 72: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit18, %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c.exit15 - %73 = getelementptr inbounds nuw i8, ptr %.sroa.028.036, i64 1 - %.not38 = icmp eq ptr %73, %21 - br i1 %.not38, label %.critedge, label %22, !llvm.loop !299 + %73 = getelementptr inbounds nuw i8, ptr %.sroa.028.037, i64 1 + %74 = icmp eq ptr %73, %21 + br i1 %74, label %.critedge, label %.critedge34, !llvm.loop !299 .critedge: ; preds = %72, %18 ret void diff --git a/bench/bullet3/optimized/btGjkPairDetector.ll b/bench/bullet3/optimized/btGjkPairDetector.ll index 9e3b87bc99d..fa766e309e1 100644 --- a/bench/bullet3/optimized/btGjkPairDetector.ll +++ b/bench/bullet3/optimized/btGjkPairDetector.ll @@ -233,8 +233,8 @@ entry: land.rhs: ; preds = %entry %m_shapeType.i.i91 = getelementptr inbounds nuw i8, ptr %10, i64 8 %11 = load i32, ptr %m_shapeType.i.i91, align 8 - %.fr954 = freeze i32 %11 - %12 = add i32 %.fr954, -17 + %.fr953 = freeze i32 %11 + %12 = add i32 %.fr953, -17 %13 = icmp ult i32 %12, 2 br label %land.end @@ -1223,13 +1223,15 @@ land.rhs194: ; preds = %if.end187 land.lhs.true200: ; preds = %if.end187, %land.rhs194 %377 = phi i1 [ false, %if.end187 ], [ %cmp196, %land.rhs194 ] + %tobool201.not = xor i1 %isValid.0, true %or.cond = or i1 %status.1, %377 - %or.cond.not = xor i1 %or.cond, true - %or.cond57.not = select i1 %isValid.0, i1 %or.cond.not, i1 false - %brmerge = select i1 %or.cond57.not, i1 true, i1 %tobool190.not - br i1 %brmerge, label %if.end289, label %if.then208 + %or.cond57 = select i1 %tobool201.not, i1 true, i1 %or.cond + br i1 %or.cond57, label %if.then205, label %land.lhs.true291 -if.then208: ; preds = %land.lhs.true200 +if.then205: ; preds = %land.lhs.true200 + br i1 %tobool190.not, label %if.end289, label %if.then208 + +if.then208: ; preds = %if.then205 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %m_cachedSeparatingAxis, i8 0, i64 16, i1 false) %378 = load ptr, ptr %m_simplexSolver, align 8 %379 = load ptr, ptr %m_minkowskiA, align 8 @@ -1287,7 +1289,7 @@ if.end232: ; preds = %if.then228, %if.the %tmpNormalInB.sroa.9.0 = phi <2 x float> [ %retval.sroa.3.12.vec.insert.i349, %if.then222 ], [ %tmpNormalInB.sroa.9.0.copyload, %if.then228 ] %lenSqr225.0 = phi float [ %394, %if.then222 ], [ %398, %if.then228 ] %cmp233 = fcmp ogt float %lenSqr225.0, 0x3D10000000000000 - br i1 %cmp233, label %if.then234, label %if.end289.sink.split + br i1 %cmp233, label %if.then234, label %if.else250 if.then234: ; preds = %if.end232 %call.i358 = call noundef float @sqrtf(float noundef %lenSqr225.0) #13 @@ -1308,7 +1310,7 @@ if.then234: ; preds = %if.end232 store i32 3, ptr %m_lastUsedMethod, align 8 %cmp245 = fcmp ule float %distance.0, %fneg %or.cond58.not = select i1 %isValid.0, i1 %cmp245, i1 false - br i1 %or.cond58.not, label %if.end289.sink.split, label %if.then246 + br i1 %or.cond58.not, label %if.else247, label %if.then246 if.then246: ; preds = %if.then234 %div.i = fdiv float 1.000000e+00, %call.i358 @@ -1327,6 +1329,14 @@ if.then246: ; preds = %if.then234 store <2 x float> %tmpNormalInB.sroa.9.8.vec.insert, ptr %arrayidx5.i, align 8 br label %land.lhs.true291 +if.else247: ; preds = %if.then234 + store i32 8, ptr %m_lastUsedMethod, align 8 + br label %land.lhs.true291 + +if.else250: ; preds = %if.end232 + store i32 9, ptr %m_lastUsedMethod, align 8 + br label %if.end289 + if.else253: ; preds = %if.then220 %cmp256 = fcmp ogt float %386, 0.000000e+00 br i1 %cmp256, label %if.then257, label %if.end289 @@ -1352,7 +1362,7 @@ if.then257: ; preds = %if.else253 %sub263 = fsub float %sqrt.i394, %add %cmp266 = fcmp uge float %sub263, %distance.0 %or.cond59.not = select i1 %isValid.0, i1 %cmp266, i1 false - br i1 %or.cond59.not, label %if.end289.sink.split, label %if.then267 + br i1 %or.cond59.not, label %if.else281, label %if.then267 if.then267: ; preds = %if.then257 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %pointOnA, ptr noundef nonnull align 4 dereferenceable(16) %tmpPointOnA, i64 16, i1 false) @@ -1403,16 +1413,15 @@ if.then267: ; preds = %if.then257 store i32 6, ptr %m_lastUsedMethod, align 8 br label %land.lhs.true291 -if.end289.sink.split: ; preds = %if.then257, %if.end232, %if.then234 - %.sink953 = phi i32 [ 8, %if.then234 ], [ 9, %if.end232 ], [ 5, %if.then257 ] - store i32 %.sink953, ptr %m_lastUsedMethod, align 8 - br label %if.end289 +if.else281: ; preds = %if.then257 + store i32 5, ptr %m_lastUsedMethod, align 8 + br label %land.lhs.true291 -if.end289: ; preds = %if.end289.sink.split, %land.lhs.true200, %if.then208, %if.else253 +if.end289: ; preds = %if.then205, %if.then208, %if.else250, %if.else253 br i1 %isValid.0, label %land.lhs.true291, label %if.end418 -land.lhs.true291: ; preds = %if.then267, %if.then246, %if.end289 - %distance.1892 = phi float [ %distance.0, %if.end289 ], [ %sub263, %if.then267 ], [ %fneg, %if.then246 ] +land.lhs.true291: ; preds = %land.lhs.true200, %if.else281, %if.then267, %if.else247, %if.then246, %if.end289 + %distance.1892 = phi float [ %distance.0, %if.end289 ], [ %distance.0, %land.lhs.true200 ], [ %distance.0, %if.else281 ], [ %sub263, %if.then267 ], [ %distance.0, %if.else247 ], [ %fneg, %if.then246 ] %cmp292 = fcmp olt float %distance.1892, 0.000000e+00 br i1 %cmp292, label %if.then297, label %lor.lhs.false293 diff --git a/bench/clamav/optimized/extract.cpp.ll b/bench/clamav/optimized/extract.cpp.ll index c4b691aaddb..dadcdf2b67f 100644 --- a/bench/clamav/optimized/extract.cpp.ll +++ b/bench/clamav/optimized/extract.cpp.ll @@ -998,12 +998,12 @@ _ZN10CmdExtract15FreeAnalyzeDataEv.exit: ; preds = %._crit_edge.i, %25 34: ; preds = %_ZN10CmdExtract15FreeAnalyzeDataEv.exit %35 = tail call i32 @wcscmp(ptr noundef nonnull %31, ptr noundef nonnull @.str.10) #23 %36 = icmp eq i32 %35, 0 - br i1 %36, label %175, label %37 + br i1 %36, label %173, label %37 37: ; preds = %34 %38 = tail call i32 @wcscmp(ptr noundef nonnull %31, ptr noundef nonnull @.str.11) #23 %39 = icmp eq i32 %38, 0 - br i1 %39, label %175, label %40 + br i1 %39, label %173, label %40 40: ; preds = %37, %_ZN10CmdExtract15FreeAnalyzeDataEv.exit br i1 %2, label %41, label %42 @@ -1033,11 +1033,11 @@ _ZN10CmdExtract15FreeAnalyzeDataEv.exit: ; preds = %._crit_edge.i, %25 %57 = getelementptr inbounds nuw i8, ptr %6, i64 48850 br label %58 -58: ; preds = %171, %43 - %.048 = phi i8 [ 1, %43 ], [ 0, %171 ] - %.042 = phi i8 [ 0, %43 ], [ %.244, %171 ] - %.034 = phi i1 [ false, %43 ], [ %.337, %171 ] - %.0 = phi i1 [ false, %43 ], [ %.3, %171 ] +58: ; preds = %169, %43 + %.048 = phi i8 [ 1, %43 ], [ 0, %169 ] + %.042 = phi i1 [ false, %43 ], [ true, %169 ] + %.034 = phi i1 [ false, %43 ], [ %.337, %169 ] + %.0 = phi i1 [ false, %43 ], [ %.3, %169 ] %59 = load ptr, ptr %28, align 8 call void @_ZN7ArchiveC1EP11CommandData(ptr noundef nonnull align 8 dereferenceable(57108) %6, ptr noundef %59) %60 = invoke noundef zeroext i1 @_ZN7Archive4OpenEPKwj(ptr noundef nonnull align 8 dereferenceable(57108) %6, ptr noundef nonnull %5, i32 noundef 0) @@ -1051,74 +1051,74 @@ _ZN10CmdExtract15FreeAnalyzeDataEv.exit: ; preds = %._crit_edge.i, %25 to label %64 unwind label %.loopexit.split-lp 64: ; preds = %62 - br i1 %63, label %.preheader71, label %66 + br i1 %63, label %.preheader72, label %66 -.preheader71: ; preds = %64 +.preheader72: ; preds = %64 %65 = trunc nuw i8 %.048 to i1 - br label %74 + br label %73 66: ; preds = %64, %61 - %67 = trunc i8 %.042 to i1 - br i1 %67, label %68, label %.loopexit73 - -68: ; preds = %66 - %69 = load ptr, ptr %26, align 8 - %70 = getelementptr inbounds nuw i8, ptr %69, i64 8200 - store i32 0, ptr %70, align 8 - %71 = load ptr, ptr %26, align 8 - %72 = getelementptr inbounds nuw i8, ptr %71, i64 16392 - store i64 0, ptr %72, align 8 - br label %.loopexit73 - -.loopexit: ; preds = %74, %77, %95, %103, %152, %162, %134, %.noexc, %145 + br i1 %.042, label %67, label %.loopexit74 + +67: ; preds = %66 + %68 = load ptr, ptr %26, align 8 + %69 = getelementptr inbounds nuw i8, ptr %68, i64 8200 + store i32 0, ptr %69, align 8 + %70 = load ptr, ptr %26, align 8 + %71 = getelementptr inbounds nuw i8, ptr %70, i64 16392 + store i64 0, ptr %71, align 8 + br label %.loopexit74 + +.loopexit: ; preds = %73, %76, %95, %103, %152, %162, %134, %.noexc, %145 %lpad.loopexit = landingpad { ptr, i32 } cleanup - br label %73 + br label %72 -.loopexit.split-lp: ; preds = %58, %62, %.loopexit72, %167 +.loopexit.split-lp: ; preds = %58, %62, %.loopexit73, %165 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup - br label %73 + br label %72 -73: ; preds = %.loopexit.split-lp, %.loopexit +72: ; preds = %.loopexit.split-lp, %.loopexit %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] call void @_ZN7ArchiveD1Ev(ptr noundef nonnull align 8 dereferenceable(57108) %6) #19 resume { ptr, i32 } %lpad.phi -74: ; preds = %.preheader71, %162 - %.250 = phi i8 [ %.452, %162 ], [ %.048, %.preheader71 ] - %.236 = phi i1 [ %.438, %162 ], [ %.034, %.preheader71 ] - %.2 = phi i1 [ %.4, %162 ], [ %.0, %.preheader71 ] - %75 = invoke noundef i64 @_ZN7Archive10ReadHeaderEv(ptr noundef nonnull align 8 dereferenceable(57108) %6) - to label %76 unwind label %.loopexit +73: ; preds = %.preheader72, %162 + %.250 = phi i8 [ %.452, %162 ], [ %.048, %.preheader72 ] + %.236 = phi i1 [ %.438, %162 ], [ %.034, %.preheader72 ] + %.2 = phi i1 [ %.4, %162 ], [ %.0, %.preheader72 ] + %74 = invoke noundef i64 @_ZN7Archive10ReadHeaderEv(ptr noundef nonnull align 8 dereferenceable(57108) %6) + to label %75 unwind label %.loopexit -76: ; preds = %74 - %.not55 = icmp eq i64 %75, 0 - br i1 %.not55, label %.loopexit72, label %77 +75: ; preds = %73 + %.not55 = icmp eq i64 %74, 0 + br i1 %.not55, label %.loopexit73, label %76 -77: ; preds = %76 +76: ; preds = %75 invoke void @_Z4Waitv() - to label %78 unwind label %.loopexit + to label %77 unwind label %.loopexit -78: ; preds = %77 - %79 = load i32, ptr %44, align 4 - switch i32 %79, label %162 [ - i32 5, label %80 +77: ; preds = %76 + %78 = load i32, ptr %44, align 4 + switch i32 %78, label %162 [ + i32 5, label %79 i32 2, label %82 ] -80: ; preds = %78 - %81 = load i8, ptr %56, align 4 - br label %.loopexit72 +79: ; preds = %77 + %80 = load i8, ptr %56, align 4 + %81 = trunc i8 %80 to i1 + br label %.loopexit73 -82: ; preds = %78 +82: ; preds = %77 %83 = load i32, ptr %45, align 8 %84 = add i32 %83, -1 %or.cond = icmp ult i32 %84, 2 %85 = load i32, ptr %47, align 4 %86 = icmp ult i32 %85, 16 %or.cond6 = select i1 %or.cond, i1 %86, i1 false - br i1 %or.cond6, label %.loopexit72, label %87 + br i1 %or.cond6, label %.loopexit73, label %87 87: ; preds = %82 %88 = load i8, ptr %48, align 8 @@ -1171,21 +1171,21 @@ _ZN10CmdExtract15FreeAnalyzeDataEv.exit: ; preds = %._crit_edge.i, %25 .preheader: ; preds = %107 %112 = load i64, ptr %7, align 8 - %.not82 = icmp eq i64 %112, 0 - br i1 %.not82, label %.critedge.thread, label %.lr.ph + %.not83 = icmp eq i64 %112, 0 + br i1 %.not83, label %.critedge.thread, label %.lr.ph .lr.ph: ; preds = %.preheader %113 = load ptr, ptr %0, align 8 br label %116 114: ; preds = %116 - %115 = add nuw i64 %.04081, 1 + %115 = add nuw i64 %.04082, 1 %exitcond.not = icmp eq i64 %115, %112 br i1 %exitcond.not, label %.critedge, label %116, !llvm.loop !12 116: ; preds = %.lr.ph, %114 - %.04081 = phi i64 [ 0, %.lr.ph ], [ %115, %114 ] - %117 = getelementptr inbounds %"struct.CmdExtract::ExtractRef", ptr %113, i64 %.04081 + %.04082 = phi i64 [ 0, %.lr.ph ], [ %115, %114 ] + %117 = getelementptr inbounds %"struct.CmdExtract::ExtractRef", ptr %113, i64 %.04082 %118 = load ptr, ptr %117, align 8 %119 = call i32 @wcscmp(ptr noundef nonnull %52, ptr noundef %118) #23 %120 = icmp eq i32 %119, 0 @@ -1294,52 +1294,49 @@ _ZN5ArrayIN10CmdExtract10ExtractRefEE4PushES1_.exit: ; preds = %._ZN5ArrayIN10Cm %.5 = phi i1 [ %.2, %87 ], [ true, %121 ], [ true, %_ZN5ArrayIN10CmdExtract10ExtractRefEE4PushES1_.exit ], [ true, %.critedge ], [ true, %107 ], [ %.2, %155 ], [ %.2, %150 ] %160 = load i8, ptr %55, align 1 %161 = trunc i8 %160 to i1 - br i1 %161, label %.loopexit72, label %162 + br i1 %161, label %.loopexit73, label %162 -162: ; preds = %78, %159 - %.452 = phi i8 [ 0, %159 ], [ %.250, %78 ] - %.438 = phi i1 [ %.539, %159 ], [ %.236, %78 ] - %.4 = phi i1 [ %.5, %159 ], [ %.2, %78 ] +162: ; preds = %77, %159 + %.452 = phi i8 [ 0, %159 ], [ %.250, %77 ] + %.438 = phi i1 [ %.539, %159 ], [ %.236, %77 ] + %.4 = phi i1 [ %.5, %159 ], [ %.2, %77 ] invoke void @_ZN7Archive10SeekToNextEv(ptr noundef nonnull align 8 dereferenceable(57108) %6) - to label %74 unwind label %.loopexit, !llvm.loop !13 + to label %73 unwind label %.loopexit, !llvm.loop !13 -.loopexit72: ; preds = %159, %82, %76, %80 - %.244 = phi i8 [ %81, %80 ], [ 1, %159 ], [ 0, %82 ], [ 0, %76 ] - %.337 = phi i1 [ %.236, %80 ], [ %.539, %159 ], [ %.236, %82 ], [ %.236, %76 ] - %.3 = phi i1 [ %.2, %80 ], [ %.5, %159 ], [ %.2, %82 ], [ %.2, %76 ] +.loopexit73: ; preds = %159, %82, %75, %79 + %.244.not = phi i1 [ %81, %79 ], [ true, %159 ], [ false, %82 ], [ false, %75 ] + %.337 = phi i1 [ %.236, %79 ], [ %.539, %159 ], [ %.236, %82 ], [ %.236, %75 ] + %.3 = phi i1 [ %.2, %79 ], [ %.5, %159 ], [ %.2, %82 ], [ %.2, %75 ] %163 = invoke noundef zeroext i1 @_ZN4File5CloseEv(ptr noundef nonnull align 8 dereferenceable(8256) %6) to label %164 unwind label %.loopexit.split-lp -164: ; preds = %.loopexit72 - br i1 %2, label %165, label %.loopexit73 +164: ; preds = %.loopexit73 + %brmerge.not = select i1 %2, i1 %.244.not, i1 false + br i1 %brmerge.not, label %165, label %.loopexit74 165: ; preds = %164 - %166 = trunc i8 %.244 to i1 - br i1 %166, label %167, label %.loopexit73 + %166 = load i8, ptr %57, align 2 + %167 = trunc i8 %166 to i1 + %168 = xor i1 %167, true + invoke void @_Z14NextVolumeNamePwjb(ptr noundef nonnull %5, i32 noundef 2048, i1 noundef zeroext %168) + to label %169 unwind label %.loopexit.split-lp -167: ; preds = %165 - %168 = load i8, ptr %57, align 2 - %169 = trunc i8 %168 to i1 - %170 = xor i1 %169, true - invoke void @_Z14NextVolumeNamePwjb(ptr noundef nonnull %5, i32 noundef 2048, i1 noundef zeroext %170) - to label %171 unwind label %.loopexit.split-lp - -171: ; preds = %167 +169: ; preds = %165 call void @_ZN7ArchiveD1Ev(ptr noundef nonnull align 8 dereferenceable(57108) %6) #19 br label %58 -.loopexit73: ; preds = %165, %164, %68, %66 +.loopexit74: ; preds = %164, %67, %66 call void @_ZN7ArchiveD1Ev(ptr noundef nonnull align 8 dereferenceable(57108) %6) #19 - %172 = load i64, ptr %7, align 8 - %.not57 = icmp eq i64 %172, 0 - br i1 %.not57, label %175, label %173 + %170 = load i64, ptr %7, align 8 + %.not57 = icmp eq i64 %170, 0 + br i1 %.not57, label %173, label %171 -173: ; preds = %.loopexit73 - %174 = load ptr, ptr %26, align 8 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16400) %174, i8 0, i64 16400, i1 false) - br label %175 +171: ; preds = %.loopexit74 + %172 = load ptr, ptr %26, align 8 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16400) %172, i8 0, i64 16400, i1 false) + br label %173 -175: ; preds = %34, %37, %173, %.loopexit73 +173: ; preds = %34, %37, %171, %.loopexit74 ret void } @@ -1707,7 +1704,7 @@ define noundef zeroext i1 @_ZN10CmdExtract18ExtractCurrentFileER7ArchivemRb(ptr br label %.preheader 213: ; preds = %.thread371, %199, %192, %173 - %.2249 = phi i8 [ %.1248, %199 ], [ %.1248, %192 ], [ %.1248, %173 ], [ %.1248.mux375, %.thread371 ] + %.2249 = phi i8 [ 1, %199 ], [ %.1248, %192 ], [ %.1248, %173 ], [ %.1248.mux375, %.thread371 ] store i8 0, ptr %187, align 8 %214 = trunc nuw i8 %.2249 to i1 br i1 %214, label %.loopexit, label %.preheader @@ -1760,7 +1757,7 @@ define noundef zeroext i1 @_ZN10CmdExtract18ExtractCurrentFileER7ArchivemRb(ptr br label %.loopexit .loopexit: ; preds = %218, %.preheader, %225, %230, %213 - %.2249436 = phi i8 [ %.2249, %213 ], [ %.2249435, %230 ], [ %.2249435, %225 ], [ %.2249435, %.preheader ], [ %.2249435, %218 ] + %.2249436 = phi i8 [ 1, %213 ], [ %.2249435, %230 ], [ %.2249435, %225 ], [ %.2249435, %.preheader ], [ %.2249435, %218 ] %.0264 = phi i1 [ false, %213 ], [ true, %230 ], [ true, %225 ], [ false, %.preheader ], [ false, %218 ] %239 = getelementptr inbounds nuw i8, ptr %1, i64 22331 %240 = load i8, ptr %239, align 1 diff --git a/bench/clamav/optimized/libmspack.c.ll b/bench/clamav/optimized/libmspack.c.ll index c86b75ec63c..dc8442dc225 100644 --- a/bench/clamav/optimized/libmspack.c.ll +++ b/bench/clamav/optimized/libmspack.c.ll @@ -45,7 +45,7 @@ define i32 @cli_scanmscab(ptr noundef %0, i64 noundef %1) local_unnamed_addr #0 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %4, ptr noundef nonnull align 8 dereferenceable(88) @mspack_sys_fmap_ops, i64 88, i1 false) %9 = call ptr @mspack_create_cab_decompressor(ptr noundef nonnull %4) #14 %.not = icmp eq ptr %9, null - br i1 %.not, label %77, label %10 + br i1 %.not, label %72, label %10 10: ; preds = %2 %11 = getelementptr inbounds nuw i8, ptr %9, i64 48 @@ -60,7 +60,7 @@ define i32 @cli_scanmscab(ptr noundef %0, i64 noundef %1) local_unnamed_addr #0 .thread121.thread: ; preds = %10 call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str, ptr noundef nonnull @__func__.cli_scanmscab, i32 noundef 376) #14 - br label %80 + br label %75 19: ; preds = %10 %20 = getelementptr inbounds nuw i8, ptr %17, i64 80 @@ -76,9 +76,9 @@ define i32 @cli_scanmscab(ptr noundef %0, i64 noundef %1) local_unnamed_addr #0 %25 = getelementptr inbounds nuw i8, ptr %9, i64 40 br label %26 -26: ; preds = %.lr.ph, %67 - %.068133 = phi ptr [ %.068130, %.lr.ph ], [ %.068, %67 ] - %.067132 = phi i32 [ 0, %.lr.ph ], [ %68, %67 ] +26: ; preds = %.lr.ph, %.thread140 + %.068133 = phi ptr [ %.068130, %.lr.ph ], [ %.068, %.thread140 ] + %.067132 = phi i32 [ 0, %.lr.ph ], [ %65, %.thread140 ] %27 = getelementptr inbounds nuw i8, ptr %.068133, i64 8 %28 = load ptr, ptr %27, align 8 %29 = getelementptr inbounds nuw i8, ptr %.068133, i64 16 @@ -147,77 +147,64 @@ define i32 @cli_scanmscab(ptr noundef %0, i64 noundef %1) local_unnamed_addr #0 56: ; preds = %55, %52 %57 = load ptr, ptr %27, align 8 %58 = call i32 @cli_magic_scan_file(ptr noundef nonnull %51, ptr noundef nonnull %0, ptr noundef %57, i32 noundef 0) #14 - switch i32 %58, label %69 [ - i32 8, label %59 - i32 0, label %.fold.split + switch i32 %58, label %66 [ + i32 8, label %.thread140 + i32 0, label %59 ] -.fold.split: ; preds = %56 - br label %59 - -59: ; preds = %56, %.fold.split - %.2 = phi i8 [ 0, %56 ], [ 1, %.fold.split ] +59: ; preds = %56 %60 = load ptr, ptr %21, align 8 %61 = getelementptr inbounds nuw i8, ptr %60, i64 40 %62 = load i32, ptr %61, align 8 - %.not98 = icmp eq i32 %62, 0 - br i1 %.not98, label %63, label %67 + %.not98.not = icmp eq i32 %62, 0 + br i1 %.not98.not, label %63, label %.thread140 63: ; preds = %59 - %64 = trunc nuw i8 %.2 to i1 - br i1 %64, label %65, label %67 - -65: ; preds = %63 - %66 = call i32 @cli_unlink(ptr noundef nonnull %51) #14 - %.not99 = icmp eq i32 %66, 0 - br i1 %.not99, label %67, label %69 + %64 = call i32 @cli_unlink(ptr noundef nonnull %51) #14 + %.not99 = icmp eq i32 %64, 0 + br i1 %.not99, label %.thread140, label %66 -67: ; preds = %65, %63, %59 +.thread140: ; preds = %56, %59, %63 call void @free(ptr noundef nonnull %51) #14 - %68 = add nuw nsw i32 %.067132, 1 + %65 = add nuw nsw i32 %.067132, 1 %.068 = load ptr, ptr %.068133, align 8 %.not86 = icmp eq ptr %.068, null br i1 %.not86, label %.thread121, label %26 -69: ; preds = %56, %65 - %.070 = phi i32 [ %58, %56 ], [ 10, %65 ] - %.064 = phi i8 [ 1, %56 ], [ %.2, %65 ] - %70 = load ptr, ptr %21, align 8 - %71 = getelementptr inbounds nuw i8, ptr %70, i64 40 - %72 = load i32, ptr %71, align 8 - %.not101 = icmp eq i32 %72, 0 - br i1 %.not101, label %73, label %.thread114 - -73: ; preds = %69 - %74 = trunc nuw i8 %.064 to i1 - br i1 %74, label %75, label %.thread114 - -75: ; preds = %73 - %76 = call i32 @cli_unlink(ptr noundef nonnull %51) #14 +66: ; preds = %56, %63 + %.070 = phi i32 [ %58, %56 ], [ 10, %63 ] + %67 = load ptr, ptr %21, align 8 + %68 = getelementptr inbounds nuw i8, ptr %67, i64 40 + %69 = load i32, ptr %68, align 8 + %.not101 = icmp eq i32 %69, 0 + br i1 %.not101, label %70, label %.thread114 + +70: ; preds = %66 + %71 = call i32 @cli_unlink(ptr noundef nonnull %51) #14 br label %.thread114 -.thread114: ; preds = %69, %73, %75 +.thread114: ; preds = %66, %70 call void @free(ptr noundef nonnull %51) #14 br label %.thread121 -77: ; preds = %2 +72: ; preds = %2 call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str, ptr noundef nonnull @__func__.cli_scanmscab, i32 noundef 364) #14 - br label %81 + br label %76 -.thread121: ; preds = %49, %37, %67, %26, %19, %.thread114 - %.070112118 = phi i32 [ %.070, %.thread114 ], [ 0, %19 ], [ 20, %49 ], [ 0, %37 ], [ 0, %67 ], [ %32, %26 ] - %78 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %79 = load ptr, ptr %78, align 8 - call void %79(ptr noundef nonnull %9, ptr noundef nonnull %17) #14 - br label %80 +.thread121: ; preds = %49, %37, %.thread140, %26, %19, %.thread114 + %.070112118 = phi i32 [ %.070, %.thread114 ], [ 0, %19 ], [ 20, %49 ], [ 0, %37 ], [ 0, %.thread140 ], [ %32, %26 ] + %73 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %74 = load ptr, ptr %73, align 8 + call void %74(ptr noundef nonnull %9, ptr noundef nonnull %17) #14 + br label %75 -80: ; preds = %.thread121.thread, %.thread121 +75: ; preds = %.thread121.thread, %.thread121 %.070112118127 = phi i32 [ 26, %.thread121.thread ], [ %.070112118, %.thread121 ] call void @mspack_destroy_cab_decompressor(ptr noundef nonnull %9) #14 - br label %81 + br label %76 -81: ; preds = %77, %80 - %.070112119 = phi i32 [ %.070112118127, %80 ], [ 7, %77 ] +76: ; preds = %72, %75 + %.070112119 = phi i32 [ %.070112118127, %75 ], [ 7, %72 ] ret i32 %.070112119 } @@ -258,7 +245,7 @@ define i32 @cli_scanmschm(ptr noundef %0) local_unnamed_addr #0 { call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %3, ptr noundef nonnull align 8 dereferenceable(88) @mspack_sys_fmap_ops, i64 88, i1 false) %8 = call ptr @mspack_create_chm_decompressor(ptr noundef nonnull %3) #14 %.not = icmp eq ptr %8, null - br i1 %.not, label %69, label %9 + br i1 %.not, label %64, label %9 9: ; preds = %1 %10 = load ptr, ptr %8, align 8 @@ -268,7 +255,7 @@ define i32 @cli_scanmschm(ptr noundef %0) local_unnamed_addr #0 { .thread117.thread: ; preds = %9 call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str, ptr noundef nonnull @__func__.cli_scanmschm, i32 noundef 505) #14 - br label %72 + br label %67 12: ; preds = %9 %13 = getelementptr inbounds nuw i8, ptr %11, i64 32 @@ -284,9 +271,9 @@ define i32 @cli_scanmschm(ptr noundef %0) local_unnamed_addr #0 { %18 = getelementptr inbounds nuw i8, ptr %8, i64 16 br label %19 -19: ; preds = %.lr.ph, %59 - %.063129 = phi ptr [ %.063126, %.lr.ph ], [ %.063, %59 ] - %.062128 = phi i32 [ 0, %.lr.ph ], [ %60, %59 ] +19: ; preds = %.lr.ph, %.thread136 + %.063129 = phi ptr [ %.063126, %.lr.ph ], [ %.063, %.thread136 ] + %.062128 = phi i32 [ 0, %.lr.ph ], [ %57, %.thread136 ] %20 = getelementptr inbounds nuw i8, ptr %.063129, i64 32 %21 = load ptr, ptr %20, align 8 %22 = getelementptr inbounds nuw i8, ptr %.063129, i64 24 @@ -354,77 +341,64 @@ define i32 @cli_scanmschm(ptr noundef %0) local_unnamed_addr #0 { 48: ; preds = %47, %44 %49 = load ptr, ptr %20, align 8 %50 = call i32 @cli_magic_scan_file(ptr noundef nonnull %43, ptr noundef nonnull %0, ptr noundef %49, i32 noundef 0) #14 - switch i32 %50, label %61 [ - i32 8, label %51 - i32 0, label %.fold.split + switch i32 %50, label %58 [ + i32 8, label %.thread136 + i32 0, label %51 ] -.fold.split: ; preds = %48 - br label %51 - -51: ; preds = %48, %.fold.split - %.2 = phi i8 [ 0, %48 ], [ 1, %.fold.split ] +51: ; preds = %48 %52 = load ptr, ptr %14, align 8 %53 = getelementptr inbounds nuw i8, ptr %52, i64 40 %54 = load i32, ptr %53, align 8 - %.not94 = icmp eq i32 %54, 0 - br i1 %.not94, label %55, label %59 + %.not94.not = icmp eq i32 %54, 0 + br i1 %.not94.not, label %55, label %.thread136 55: ; preds = %51 - %56 = trunc nuw i8 %.2 to i1 - br i1 %56, label %57, label %59 - -57: ; preds = %55 - %58 = call i32 @cli_unlink(ptr noundef nonnull %43) #14 - %.not95 = icmp eq i32 %58, 0 - br i1 %.not95, label %59, label %61 + %56 = call i32 @cli_unlink(ptr noundef nonnull %43) #14 + %.not95 = icmp eq i32 %56, 0 + br i1 %.not95, label %.thread136, label %58 -59: ; preds = %57, %55, %51 +.thread136: ; preds = %48, %51, %55 call void @free(ptr noundef nonnull %43) #14 - %60 = add nuw nsw i32 %.062128, 1 + %57 = add nuw nsw i32 %.062128, 1 %.063 = load ptr, ptr %.063129, align 8 %.not82 = icmp eq ptr %.063, null br i1 %.not82, label %.thread117, label %19 -61: ; preds = %48, %57 - %.065 = phi i32 [ %50, %48 ], [ 10, %57 ] - %.059 = phi i8 [ 1, %48 ], [ %.2, %57 ] - %62 = load ptr, ptr %14, align 8 - %63 = getelementptr inbounds nuw i8, ptr %62, i64 40 - %64 = load i32, ptr %63, align 8 - %.not97 = icmp eq i32 %64, 0 - br i1 %.not97, label %65, label %.thread110 - -65: ; preds = %61 - %66 = trunc nuw i8 %.059 to i1 - br i1 %66, label %67, label %.thread110 - -67: ; preds = %65 - %68 = call i32 @cli_unlink(ptr noundef nonnull %43) #14 +58: ; preds = %48, %55 + %.065 = phi i32 [ %50, %48 ], [ 10, %55 ] + %59 = load ptr, ptr %14, align 8 + %60 = getelementptr inbounds nuw i8, ptr %59, i64 40 + %61 = load i32, ptr %60, align 8 + %.not97 = icmp eq i32 %61, 0 + br i1 %.not97, label %62, label %.thread110 + +62: ; preds = %58 + %63 = call i32 @cli_unlink(ptr noundef nonnull %43) #14 br label %.thread110 -.thread110: ; preds = %61, %65, %67 +.thread110: ; preds = %58, %62 call void @free(ptr noundef nonnull %43) #14 br label %.thread117 -69: ; preds = %1 +64: ; preds = %1 call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str, ptr noundef nonnull @__func__.cli_scanmschm, i32 noundef 498) #14 - br label %73 + br label %68 -.thread117: ; preds = %41, %29, %59, %19, %12, %.thread110 - %.065108114 = phi i32 [ %.065, %.thread110 ], [ 0, %12 ], [ 20, %41 ], [ 0, %29 ], [ 0, %59 ], [ %24, %19 ] - %70 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %71 = load ptr, ptr %70, align 8 - call void %71(ptr noundef nonnull %8, ptr noundef nonnull %11) #14 - br label %72 +.thread117: ; preds = %41, %29, %.thread136, %19, %12, %.thread110 + %.065108114 = phi i32 [ %.065, %.thread110 ], [ 0, %12 ], [ 20, %41 ], [ 0, %29 ], [ 0, %.thread136 ], [ %24, %19 ] + %65 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %66 = load ptr, ptr %65, align 8 + call void %66(ptr noundef nonnull %8, ptr noundef nonnull %11) #14 + br label %67 -72: ; preds = %.thread117.thread, %.thread117 +67: ; preds = %.thread117.thread, %.thread117 %.065108114123 = phi i32 [ 26, %.thread117.thread ], [ %.065108114, %.thread117 ] call void @mspack_destroy_chm_decompressor(ptr noundef nonnull %8) #14 - br label %73 + br label %68 -73: ; preds = %69, %72 - %.065108115 = phi i32 [ %.065108114123, %72 ], [ 7, %69 ] +68: ; preds = %64, %67 + %.065108115 = phi i32 [ %.065108114123, %67 ], [ 7, %64 ] ret i32 %.065108115 } diff --git a/bench/clap-rs/optimized/1rbie63mhpvpjak.ll b/bench/clap-rs/optimized/1rbie63mhpvpjak.ll index d8e66b24c80..d18dbbab4fe 100644 --- a/bench/clap-rs/optimized/1rbie63mhpvpjak.ll +++ b/bench/clap-rs/optimized/1rbie63mhpvpjak.ll @@ -7640,7 +7640,7 @@ _ZN12clap_builder5error6format21write_dynamic_context17h87a10de77816625dE.exit: br label %789 787: ; preds = %805, %781 - %.1 = phi i8 [ %.2, %805 ], [ %.0, %781 ] + %.1 = phi i8 [ 1, %805 ], [ %.0, %781 ] %788 = invoke noundef align 8 dereferenceable_or_null(32) ptr @"_ZN12clap_builder5error14Error$LT$F$GT$3get17h38f9c2490293ae7cE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %1, i8 noundef 12) to label %806 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -7679,7 +7679,6 @@ _ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exi br label %805 805: ; preds = %_ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exit116, %789 - %.2 = phi i8 [ %.0, %789 ], [ 1, %_ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exit116 ] invoke fastcc void @_ZN12clap_builder5error6format12did_you_mean17h40f8da9e36e564a6E(ptr noalias noundef align 8 dereferenceable(24) %140, ptr noalias noundef readonly align 2 dereferenceable(98) %142, ptr noalias noundef nonnull readonly align 1 @anon.85f68effae4436bb4f25a144403dc49c.51, i64 noundef 8, ptr noalias noundef readonly align 8 dereferenceable(32) %765) to label %787 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -7702,7 +7701,7 @@ _ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exi br label %814 812: ; preds = %830, %806 - %.3 = phi i8 [ %.4, %830 ], [ %.1, %806 ] + %.3 = phi i8 [ 1, %830 ], [ %.1, %806 ] %813 = invoke noundef align 8 dereferenceable_or_null(32) ptr @"_ZN12clap_builder5error14Error$LT$F$GT$3get17h38f9c2490293ae7cE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %1, i8 noundef 14) to label %831 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -7741,7 +7740,6 @@ _ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exi br label %830 830: ; preds = %_ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exit122, %814 - %.4 = phi i8 [ %.1, %814 ], [ 1, %_ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exit122 ] invoke fastcc void @_ZN12clap_builder5error6format12did_you_mean17h40f8da9e36e564a6E(ptr noalias noundef align 8 dereferenceable(24) %140, ptr noalias noundef readonly align 2 dereferenceable(98) %142, ptr noalias noundef nonnull readonly align 1 @anon.85f68effae4436bb4f25a144403dc49c.52, i64 noundef 5, ptr noalias noundef readonly align 8 dereferenceable(32) %788) to label %812 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp diff --git a/bench/clap-rs/optimized/46qpaucouebcxfrx.ll b/bench/clap-rs/optimized/46qpaucouebcxfrx.ll index d110e9415b4..d3d0e65e483 100644 --- a/bench/clap-rs/optimized/46qpaucouebcxfrx.ll +++ b/bench/clap-rs/optimized/46qpaucouebcxfrx.ll @@ -135,14 +135,14 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h3a29324553fc3c %7 = alloca { i64, [1 x i64] }, align 8 %8 = getelementptr inbounds { ptr, i64 }, ptr %1, i64 %2 %9 = icmp eq i64 %2, 0 - %.sink77.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.sink77.sroa.gep90 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sink77.sroa.gep92 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %.sink77.sroa.gep93 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %.sink77.sroa.gep95 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %.sink77.sroa.gep96 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %.sink77.sroa.gep98 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %.sink77.sroa.gep99 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %.sink84.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 + %.sink84.sroa.gep97 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %.sink84.sroa.gep99 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %.sink84.sroa.gep100 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %.sink84.sroa.gep102 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %.sink84.sroa.gep103 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %.sink84.sroa.gep105 = getelementptr inbounds nuw i8, ptr %6, i64 24 + %.sink84.sroa.gep106 = getelementptr inbounds nuw i8, ptr %5, i64 24 br i1 %9, label %.loopexit, label %.lr.ph.i "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc85ba585de1c934eE.exit.thread.i": ; preds = %15, %.lr.ph.i @@ -181,8 +181,8 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h3a29324553fc3c br label %23 23: ; preds = %.lr.ph, %73 - %.sroa.0.040 = phi ptr [ %19, %.lr.ph ], [ %.sroa.0.1, %73 ] - %.sroa.8.039 = phi i64 [ %20, %.lr.ph ], [ %.sroa.8.1, %73 ] + %.sroa.0.040 = phi ptr [ %19, %.lr.ph ], [ %.sroa.0.156, %73 ] + %.sroa.8.039 = phi i64 [ %20, %.lr.ph ], [ %.sroa.8.154, %73 ] call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) call void @"_ZN61_$LT$std..io..stdio..StderrLock$u20$as$u20$std..io..Write$GT$14write_vectored17ha4bfc838676caca2E"(ptr noalias nocapture noundef nonnull sret({ i64, [1 x i64] }) align 8 dereferenceable(16) %7, ptr noalias noundef nonnull align 8 dereferenceable(8) %.val, ptr noalias noundef nonnull readonly align 8 %.sroa.0.040, i64 noundef %.sroa.8.039) %24 = load i64, ptr %7, align 8, !range !15, !noundef !7 @@ -215,13 +215,13 @@ default.unreachable: ; preds = %28 31: ; preds = %28 %.mask.i = and i64 %29, -4294967296 %32 = icmp eq i64 %.mask.i, 17179869184 - br i1 %32, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21, label %69 + br i1 %32, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread, label %69 33: ; preds = %28 %34 = getelementptr inbounds nuw i8, ptr %.val7, i64 16 %35 = load i8, ptr %34, align 8, !range !16, !noundef !7 %36 = icmp eq i8 %35, 35 - br i1 %36, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21, label %69 + br i1 %36, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread, label %69 37: ; preds = %28 %38 = getelementptr i8, ptr %.val7, i64 -1 @@ -230,7 +230,7 @@ default.unreachable: ; preds = %28 %40 = getelementptr i8, ptr %.val7, i64 15 %41 = load i8, ptr %40, align 8, !range !16, !noundef !7 %42 = icmp eq i8 %41, 35 - br i1 %42, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21, label %69 + br i1 %42, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread, label %69 43: ; preds = %25 %44 = getelementptr inbounds { ptr, i64 }, ptr %.sroa.0.040, i64 %.sroa.8.039 @@ -301,17 +301,17 @@ default.unreachable: ; preds = %28 br label %.invoke .invoke: ; preds = %58, %67 - %.sink77.sroa.phi = phi ptr [ %.sink77.sroa.gep, %58 ], [ %.sink77.sroa.gep90, %67 ] - %.sink77.sroa.phi91 = phi ptr [ %.sink77.sroa.gep92, %58 ], [ %.sink77.sroa.gep93, %67 ] - %.sink77.sroa.phi94 = phi ptr [ %.sink77.sroa.gep95, %58 ], [ %.sink77.sroa.gep96, %67 ] - %.sink77.sroa.phi97 = phi ptr [ %.sink77.sroa.gep98, %58 ], [ %.sink77.sroa.gep99, %67 ] - %.sink77 = phi ptr [ %6, %58 ], [ %5, %67 ] + %.sink84.sroa.phi = phi ptr [ %.sink84.sroa.gep, %58 ], [ %.sink84.sroa.gep97, %67 ] + %.sink84.sroa.phi98 = phi ptr [ %.sink84.sroa.gep99, %58 ], [ %.sink84.sroa.gep100, %67 ] + %.sink84.sroa.phi101 = phi ptr [ %.sink84.sroa.gep102, %58 ], [ %.sink84.sroa.gep103, %67 ] + %.sink84.sroa.phi104 = phi ptr [ %.sink84.sroa.gep105, %58 ], [ %.sink84.sroa.gep106, %67 ] + %.sink84 = phi ptr [ %6, %58 ], [ %5, %67 ] %68 = phi ptr [ @anon.eab39818d4b18baaa8ef384a74ffd2e4.14, %58 ], [ @anon.eab39818d4b18baaa8ef384a74ffd2e4.19, %67 ] - store i64 1, ptr %.sink77.sroa.phi, align 8, !noalias !17 - store ptr null, ptr %.sink77.sroa.phi91, align 8, !noalias !17 - store ptr @anon.eab39818d4b18baaa8ef384a74ffd2e4.9.llvm.4786290445112235611, ptr %.sink77.sroa.phi94, align 8, !noalias !17 - store i64 0, ptr %.sink77.sroa.phi97, align 8, !noalias !17 - invoke void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %.sink77, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %68) #42 + store i64 1, ptr %.sink84.sroa.phi, align 8, !noalias !17 + store ptr null, ptr %.sink84.sroa.phi98, align 8, !noalias !17 + store ptr @anon.eab39818d4b18baaa8ef384a74ffd2e4.9.llvm.4786290445112235611, ptr %.sink84.sroa.phi101, align 8, !noalias !17 + store i64 0, ptr %.sink84.sroa.phi104, align 8, !noalias !17 + invoke void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %.sink84, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %68) #42 to label %.cont unwind label %70 .cont: ; preds = %.invoke @@ -326,53 +326,56 @@ default.unreachable: ; preds = %28 %71 = landingpad { ptr, i32 } cleanup %.not = icmp eq i64 %24, 0 - br i1 %.not, label %79, label %80 + br i1 %.not, label %78, label %79 -_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21: ; preds = %31, %33, %37, %63, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17", %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit - %72 = phi i64 [ %24, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ], [ %24, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" ], [ %.pre, %63 ], [ %24, %37 ], [ %24, %33 ], [ %24, %31 ] - %.sroa.8.1 = phi i64 [ %.sroa.8.039, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ], [ 0, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" ], [ %47, %63 ], [ %.sroa.8.039, %37 ], [ %.sroa.8.039, %33 ], [ %.sroa.8.039, %31 ] - %.sroa.0.1 = phi ptr [ %.sroa.0.040, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ], [ %48, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" ], [ %48, %63 ], [ %.sroa.0.040, %37 ], [ %.sroa.0.040, %33 ], [ %.sroa.0.040, %31 ] +_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21: ; preds = %63, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" + %72 = phi i64 [ %24, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" ], [ %.pre, %63 ] + %.sroa.8.1 = phi i64 [ 0, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" ], [ %47, %63 ] %.not6 = icmp eq i64 %72, 0 - br i1 %.not6, label %73, label %75 + br i1 %.not6, label %73, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread _ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit: ; preds = %28 %.mask20.i = and i64 %29, -4294967296 %switch.i = icmp eq i64 %.mask20.i, 150323855360 - br i1 %switch.i, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21, label %69 + br i1 %switch.i, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread, label %69 73: ; preds = %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit", %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 + %.sroa.0.156 = phi ptr [ %.sroa.0.155, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit" ], [ %48, %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 ] + %.sroa.8.154 = phi i64 [ %.sroa.8.153, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit" ], [ %.sroa.8.1, %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) - %74 = icmp eq i64 %.sroa.8.1, 0 + %74 = icmp eq i64 %.sroa.8.154, 0 br i1 %74, label %.loopexit, label %23 -75: ; preds = %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 +_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread: ; preds = %31, %33, %37, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit, %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 + %.sroa.0.155 = phi ptr [ %48, %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 ], [ %.sroa.0.040, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ], [ %.sroa.0.040, %37 ], [ %.sroa.0.040, %33 ], [ %.sroa.0.040, %31 ] + %.sroa.8.153 = phi i64 [ %.sroa.8.1, %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 ], [ %.sroa.8.039, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ], [ %.sroa.8.039, %37 ], [ %.sroa.8.039, %33 ], [ %.sroa.8.039, %31 ] call void @llvm.experimental.noalias.scope.decl(metadata !20) call void @llvm.experimental.noalias.scope.decl(metadata !23) call void @llvm.experimental.noalias.scope.decl(metadata !26) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4), !noalias !29 - %76 = load ptr, ptr %21, align 8, !alias.scope !29, !nonnull !7, !noundef !7 - call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h2773506a7f69e859E.llvm.13290713768692451428(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %4, ptr noundef nonnull %76), !noalias !29 - %77 = load i8, ptr %4, align 8, !range !30, !alias.scope !31, !noalias !29, !noundef !7 - %switch.not.i.i.i.i = icmp eq i8 %77, 3 - br i1 %switch.not.i.i.i.i, label %78, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit" + %75 = load ptr, ptr %21, align 8, !alias.scope !29, !nonnull !7, !noundef !7 + call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h2773506a7f69e859E.llvm.13290713768692451428(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %4, ptr noundef nonnull %75), !noalias !29 + %76 = load i8, ptr %4, align 8, !range !30, !alias.scope !31, !noalias !29, !noundef !7 + %switch.not.i.i.i.i = icmp eq i8 %76, 3 + br i1 %switch.not.i.i.i.i, label %77, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit" -78: ; preds = %75 +77: ; preds = %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h998814149a233ed5E.llvm.13290713768692451428"(ptr noalias noundef nonnull align 8 dereferenceable(8) %22), !noalias !29 br label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit" -"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit": ; preds = %75, %78 +"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit": ; preds = %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread, %77 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !29 br label %73 -79: ; preds = %80, %70 +78: ; preds = %79, %70 resume { ptr, i32 } %71 -80: ; preds = %70 +79: ; preds = %70 invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %21) #43 - to label %79 unwind label %81 + to label %78 unwind label %80 -81: ; preds = %80 - %82 = landingpad { ptr, i32 } +80: ; preds = %79 + %81 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #44 unreachable @@ -386,14 +389,14 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h4eae29bdf8fe70 %7 = alloca { i64, [1 x i64] }, align 8 %8 = getelementptr inbounds { ptr, i64 }, ptr %1, i64 %2 %9 = icmp eq i64 %2, 0 - %.sink77.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.sink77.sroa.gep90 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sink77.sroa.gep92 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %.sink77.sroa.gep93 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %.sink77.sroa.gep95 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %.sink77.sroa.gep96 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %.sink77.sroa.gep98 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %.sink77.sroa.gep99 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %.sink84.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 + %.sink84.sroa.gep97 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %.sink84.sroa.gep99 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %.sink84.sroa.gep100 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %.sink84.sroa.gep102 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %.sink84.sroa.gep103 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %.sink84.sroa.gep105 = getelementptr inbounds nuw i8, ptr %6, i64 24 + %.sink84.sroa.gep106 = getelementptr inbounds nuw i8, ptr %5, i64 24 br i1 %9, label %.loopexit, label %.lr.ph.i "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hc85ba585de1c934eE.exit.thread.i": ; preds = %15, %.lr.ph.i @@ -432,8 +435,8 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h4eae29bdf8fe70 br label %23 23: ; preds = %.lr.ph, %73 - %.sroa.0.040 = phi ptr [ %19, %.lr.ph ], [ %.sroa.0.1, %73 ] - %.sroa.8.039 = phi i64 [ %20, %.lr.ph ], [ %.sroa.8.1, %73 ] + %.sroa.0.040 = phi ptr [ %19, %.lr.ph ], [ %.sroa.0.156, %73 ] + %.sroa.8.039 = phi i64 [ %20, %.lr.ph ], [ %.sroa.8.154, %73 ] call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) call void @"_ZN61_$LT$std..io..stdio..StdoutLock$u20$as$u20$std..io..Write$GT$14write_vectored17hea8e1fe852490ccbE"(ptr noalias nocapture noundef nonnull sret({ i64, [1 x i64] }) align 8 dereferenceable(16) %7, ptr noalias noundef nonnull align 8 dereferenceable(8) %.val7, ptr noalias noundef nonnull readonly align 8 %.sroa.0.040, i64 noundef %.sroa.8.039) %24 = load i64, ptr %7, align 8, !range !15, !noundef !7 @@ -466,13 +469,13 @@ default.unreachable: ; preds = %28 31: ; preds = %28 %.mask.i = and i64 %29, -4294967296 %32 = icmp eq i64 %.mask.i, 17179869184 - br i1 %32, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21, label %69 + br i1 %32, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread, label %69 33: ; preds = %28 %34 = getelementptr inbounds nuw i8, ptr %.val, i64 16 %35 = load i8, ptr %34, align 8, !range !16, !noundef !7 %36 = icmp eq i8 %35, 35 - br i1 %36, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21, label %69 + br i1 %36, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread, label %69 37: ; preds = %28 %38 = getelementptr i8, ptr %.val, i64 -1 @@ -481,7 +484,7 @@ default.unreachable: ; preds = %28 %40 = getelementptr i8, ptr %.val, i64 15 %41 = load i8, ptr %40, align 8, !range !16, !noundef !7 %42 = icmp eq i8 %41, 35 - br i1 %42, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21, label %69 + br i1 %42, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread, label %69 43: ; preds = %25 %44 = getelementptr inbounds { ptr, i64 }, ptr %.sroa.0.040, i64 %.sroa.8.039 @@ -552,17 +555,17 @@ default.unreachable: ; preds = %28 br label %.invoke .invoke: ; preds = %58, %67 - %.sink77.sroa.phi = phi ptr [ %.sink77.sroa.gep, %58 ], [ %.sink77.sroa.gep90, %67 ] - %.sink77.sroa.phi91 = phi ptr [ %.sink77.sroa.gep92, %58 ], [ %.sink77.sroa.gep93, %67 ] - %.sink77.sroa.phi94 = phi ptr [ %.sink77.sroa.gep95, %58 ], [ %.sink77.sroa.gep96, %67 ] - %.sink77.sroa.phi97 = phi ptr [ %.sink77.sroa.gep98, %58 ], [ %.sink77.sroa.gep99, %67 ] - %.sink77 = phi ptr [ %6, %58 ], [ %5, %67 ] + %.sink84.sroa.phi = phi ptr [ %.sink84.sroa.gep, %58 ], [ %.sink84.sroa.gep97, %67 ] + %.sink84.sroa.phi98 = phi ptr [ %.sink84.sroa.gep99, %58 ], [ %.sink84.sroa.gep100, %67 ] + %.sink84.sroa.phi101 = phi ptr [ %.sink84.sroa.gep102, %58 ], [ %.sink84.sroa.gep103, %67 ] + %.sink84.sroa.phi104 = phi ptr [ %.sink84.sroa.gep105, %58 ], [ %.sink84.sroa.gep106, %67 ] + %.sink84 = phi ptr [ %6, %58 ], [ %5, %67 ] %68 = phi ptr [ @anon.eab39818d4b18baaa8ef384a74ffd2e4.14, %58 ], [ @anon.eab39818d4b18baaa8ef384a74ffd2e4.19, %67 ] - store i64 1, ptr %.sink77.sroa.phi, align 8, !noalias !40 - store ptr null, ptr %.sink77.sroa.phi91, align 8, !noalias !40 - store ptr @anon.eab39818d4b18baaa8ef384a74ffd2e4.9.llvm.4786290445112235611, ptr %.sink77.sroa.phi94, align 8, !noalias !40 - store i64 0, ptr %.sink77.sroa.phi97, align 8, !noalias !40 - invoke void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %.sink77, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %68) #42 + store i64 1, ptr %.sink84.sroa.phi, align 8, !noalias !40 + store ptr null, ptr %.sink84.sroa.phi98, align 8, !noalias !40 + store ptr @anon.eab39818d4b18baaa8ef384a74ffd2e4.9.llvm.4786290445112235611, ptr %.sink84.sroa.phi101, align 8, !noalias !40 + store i64 0, ptr %.sink84.sroa.phi104, align 8, !noalias !40 + invoke void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %.sink84, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %68) #42 to label %.cont unwind label %70 .cont: ; preds = %.invoke @@ -577,53 +580,56 @@ default.unreachable: ; preds = %28 %71 = landingpad { ptr, i32 } cleanup %.not = icmp eq i64 %24, 0 - br i1 %.not, label %79, label %80 + br i1 %.not, label %78, label %79 -_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21: ; preds = %31, %33, %37, %63, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17", %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit - %72 = phi i64 [ %24, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ], [ %24, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" ], [ %.pre, %63 ], [ %24, %37 ], [ %24, %33 ], [ %24, %31 ] - %.sroa.8.1 = phi i64 [ %.sroa.8.039, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ], [ 0, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" ], [ %47, %63 ], [ %.sroa.8.039, %37 ], [ %.sroa.8.039, %33 ], [ %.sroa.8.039, %31 ] - %.sroa.0.1 = phi ptr [ %.sroa.0.040, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ], [ %48, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" ], [ %48, %63 ], [ %.sroa.0.040, %37 ], [ %.sroa.0.040, %33 ], [ %.sroa.0.040, %31 ] +_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21: ; preds = %63, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" + %72 = phi i64 [ %24, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" ], [ %.pre, %63 ] + %.sroa.8.1 = phi i64 [ 0, %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h975858101c53a168E.exit.thread.i17" ], [ %47, %63 ] %.not6 = icmp eq i64 %72, 0 - br i1 %.not6, label %73, label %75 + br i1 %.not6, label %73, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread _ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit: ; preds = %28 %.mask20.i = and i64 %29, -4294967296 %switch.i = icmp eq i64 %.mask20.i, 150323855360 - br i1 %switch.i, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21, label %69 + br i1 %switch.i, label %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread, label %69 73: ; preds = %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit", %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 + %.sroa.0.156 = phi ptr [ %.sroa.0.155, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit" ], [ %48, %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 ] + %.sroa.8.154 = phi i64 [ %.sroa.8.153, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit" ], [ %.sroa.8.1, %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) - %74 = icmp eq i64 %.sroa.8.1, 0 + %74 = icmp eq i64 %.sroa.8.154, 0 br i1 %74, label %.loopexit, label %23 -75: ; preds = %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 +_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread: ; preds = %31, %33, %37, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit, %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 + %.sroa.0.155 = phi ptr [ %48, %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 ], [ %.sroa.0.040, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ], [ %.sroa.0.040, %37 ], [ %.sroa.0.040, %33 ], [ %.sroa.0.040, %31 ] + %.sroa.8.153 = phi i64 [ %.sroa.8.1, %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21 ], [ %.sroa.8.039, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ], [ %.sroa.8.039, %37 ], [ %.sroa.8.039, %33 ], [ %.sroa.8.039, %31 ] call void @llvm.experimental.noalias.scope.decl(metadata !43) call void @llvm.experimental.noalias.scope.decl(metadata !46) call void @llvm.experimental.noalias.scope.decl(metadata !49) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4), !noalias !52 - %76 = load ptr, ptr %21, align 8, !alias.scope !52, !nonnull !7, !noundef !7 - call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h2773506a7f69e859E.llvm.13290713768692451428(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %4, ptr noundef nonnull %76), !noalias !52 - %77 = load i8, ptr %4, align 8, !range !30, !alias.scope !53, !noalias !52, !noundef !7 - %switch.not.i.i.i.i = icmp eq i8 %77, 3 - br i1 %switch.not.i.i.i.i, label %78, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit" + %75 = load ptr, ptr %21, align 8, !alias.scope !52, !nonnull !7, !noundef !7 + call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h2773506a7f69e859E.llvm.13290713768692451428(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %4, ptr noundef nonnull %75), !noalias !52 + %76 = load i8, ptr %4, align 8, !range !30, !alias.scope !53, !noalias !52, !noundef !7 + %switch.not.i.i.i.i = icmp eq i8 %76, 3 + br i1 %switch.not.i.i.i.i, label %77, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit" -78: ; preds = %75 +77: ; preds = %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h998814149a233ed5E.llvm.13290713768692451428"(ptr noalias noundef nonnull align 8 dereferenceable(8) %22), !noalias !52 br label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit" -"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit": ; preds = %75, %78 +"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E.exit": ; preds = %_ZN3std2io7IoSlice14advance_slices17h140462c502129a66E.exit21.thread, %77 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !52 br label %73 -79: ; preds = %80, %70 +78: ; preds = %79, %70 resume { ptr, i32 } %71 -80: ; preds = %70 +79: ; preds = %70 invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hdb10f04695275942E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %21) #43 - to label %79 unwind label %81 + to label %78 unwind label %80 -81: ; preds = %80 - %82 = landingpad { ptr, i32 } +80: ; preds = %79 + %81 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #44 unreachable @@ -10100,7 +10106,7 @@ define hidden noundef nonnull align 8 ptr @"_ZN12clap_builder5error14Error$LT$F$ unreachable .thread155: ; preds = %86, %103, %47, %39 - %.043 = phi i8 [ %.4, %103 ], [ %.4, %47 ], [ 1, %39 ], [ 0, %86 ] + %.043 = phi i8 [ 1, %103 ], [ %.4, %47 ], [ 1, %39 ], [ 0, %86 ] %.pn58.pn.pn = phi { ptr, i32 } [ %.pn58, %103 ], [ %.pn58, %47 ], [ %40, %39 ], [ %87, %86 ] %38 = load i64, ptr %2, align 8, !range !118, !noundef !7 %.not62 = icmp eq i64 %38, -9223372036854775808 diff --git a/bench/coreutils-rs/optimized/1ip9n5ft8j8xkx64.ll b/bench/coreutils-rs/optimized/1ip9n5ft8j8xkx64.ll index 084bd8918d0..6a2f03e76cc 100644 --- a/bench/coreutils-rs/optimized/1ip9n5ft8j8xkx64.ll +++ b/bench/coreutils-rs/optimized/1ip9n5ft8j8xkx64.ll @@ -311,14 +311,14 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h344774d67f5eff %7 = alloca { i64, [1 x i64] }, align 8 %8 = getelementptr inbounds { { { ptr, i64 }, {} } }, ptr %1, i64 %2 %9 = icmp eq i64 %2, 0 - %.sink76.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.sink76.sroa.gep89 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sink76.sroa.gep91 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %.sink76.sroa.gep92 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %.sink76.sroa.gep94 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %.sink76.sroa.gep95 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %.sink76.sroa.gep97 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %.sink76.sroa.gep98 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %.sink83.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 + %.sink83.sroa.gep96 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %.sink83.sroa.gep98 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %.sink83.sroa.gep99 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %.sink83.sroa.gep101 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %.sink83.sroa.gep102 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %.sink83.sroa.gep104 = getelementptr inbounds nuw i8, ptr %6, i64 24 + %.sink83.sroa.gep105 = getelementptr inbounds nuw i8, ptr %5, i64 24 br i1 %9, label %.loopexit, label %.lr.ph.i "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hca0ebce053e237faE.exit.thread.i": ; preds = %13, %.lr.ph.i @@ -355,17 +355,17 @@ define hidden noundef ptr @_ZN3std2io5Write18write_all_vectored17h344774d67f5eff %23 = getelementptr inbounds nuw i8, ptr %4, i64 8 br label %24 -24: ; preds = %.lr.ph, %78 - %.sroa.0.039 = phi ptr [ %20, %.lr.ph ], [ %.sroa.0.1, %78 ] - %.sroa.8.038 = phi i64 [ %21, %.lr.ph ], [ %.sroa.8.1, %78 ] +24: ; preds = %.lr.ph, %77 + %.sroa.0.039 = phi ptr [ %20, %.lr.ph ], [ %.sroa.0.155, %77 ] + %.sroa.8.038 = phi i64 [ %21, %.lr.ph ], [ %.sroa.8.153, %77 ] call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) call void @"_ZN48_$LT$std..fs..File$u20$as$u20$std..io..Write$GT$14write_vectored17h1c3cc6ced1697b9eE"(ptr noalias nocapture noundef nonnull sret({ i64, [1 x i64] }) align 8 dereferenceable(16) %7, ptr noalias noundef nonnull align 4 dereferenceable(4) %0, ptr noalias noundef nonnull readonly align 8 %.sroa.0.039, i64 noundef %.sroa.8.038) %25 = load i64, ptr %7, align 8, !range !13, !noundef !5 %trunc = trunc nuw i64 %25 to i1 br i1 %trunc, label %29, label %26 -.loopexit: ; preds = %78, %17, %3, %70 - %.0 = phi ptr [ %.1, %70 ], [ null, %3 ], [ null, %17 ], [ null, %78 ] +.loopexit: ; preds = %77, %17, %3, %70 + %.0 = phi ptr [ %.1, %70 ], [ null, %3 ], [ null, %17 ], [ null, %77 ] ret ptr %.0 26: ; preds = %24 @@ -390,13 +390,13 @@ default.unreachable: ; preds = %29 32: ; preds = %29 %.mask.i = and i64 %30, -4294967296 %33 = icmp eq i64 %.mask.i, 17179869184 - br i1 %33, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20, label %70 + br i1 %33, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20.thread, label %70 34: ; preds = %29 %35 = getelementptr inbounds nuw i8, ptr %.val, i64 16 %36 = load i8, ptr %35, align 8, !range !33, !noundef !5 %37 = icmp eq i8 %36, 35 - br i1 %37, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20, label %70 + br i1 %37, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20.thread, label %70 38: ; preds = %29 %39 = getelementptr i8, ptr %.val, i64 -1 @@ -405,7 +405,7 @@ default.unreachable: ; preds = %29 %41 = getelementptr i8, ptr %.val, i64 15 %42 = load i8, ptr %41, align 8, !range !33, !noundef !5 %43 = icmp eq i8 %42, 35 - br i1 %43, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20, label %70 + br i1 %43, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20.thread, label %70 44: ; preds = %26 %45 = getelementptr inbounds { { { ptr, i64 }, {} } }, ptr %.sroa.0.039, i64 %.sroa.8.038 @@ -468,17 +468,17 @@ default.unreachable: ; preds = %29 br label %.invoke .invoke: ; preds = %60, %65 - %.sink76.sroa.phi = phi ptr [ %.sink76.sroa.gep, %60 ], [ %.sink76.sroa.gep89, %65 ] - %.sink76.sroa.phi90 = phi ptr [ %.sink76.sroa.gep91, %60 ], [ %.sink76.sroa.gep92, %65 ] - %.sink76.sroa.phi93 = phi ptr [ %.sink76.sroa.gep94, %60 ], [ %.sink76.sroa.gep95, %65 ] - %.sink76.sroa.phi96 = phi ptr [ %.sink76.sroa.gep97, %60 ], [ %.sink76.sroa.gep98, %65 ] - %.sink76 = phi ptr [ %6, %60 ], [ %5, %65 ] + %.sink83.sroa.phi = phi ptr [ %.sink83.sroa.gep, %60 ], [ %.sink83.sroa.gep96, %65 ] + %.sink83.sroa.phi97 = phi ptr [ %.sink83.sroa.gep98, %60 ], [ %.sink83.sroa.gep99, %65 ] + %.sink83.sroa.phi100 = phi ptr [ %.sink83.sroa.gep101, %60 ], [ %.sink83.sroa.gep102, %65 ] + %.sink83.sroa.phi103 = phi ptr [ %.sink83.sroa.gep104, %60 ], [ %.sink83.sroa.gep105, %65 ] + %.sink83 = phi ptr [ %6, %60 ], [ %5, %65 ] %66 = phi ptr [ @anon.93245e8f96c02d2faf95a87e43b1c55b.20, %60 ], [ @anon.93245e8f96c02d2faf95a87e43b1c55b.30, %65 ] - store i64 1, ptr %.sink76.sroa.phi, align 8, !noalias !48 - store ptr null, ptr %.sink76.sroa.phi90, align 8, !noalias !48 - store ptr @anon.93245e8f96c02d2faf95a87e43b1c55b.17.llvm.15234885945043149955, ptr %.sink76.sroa.phi93, align 8, !noalias !48 - store i64 0, ptr %.sink76.sroa.phi96, align 8, !noalias !48 - invoke void @_ZN4core9panicking9panic_fmt17ha6effc2775a0749cE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %.sink76, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %66) #19 + store i64 1, ptr %.sink83.sroa.phi, align 8, !noalias !48 + store ptr null, ptr %.sink83.sroa.phi97, align 8, !noalias !48 + store ptr @anon.93245e8f96c02d2faf95a87e43b1c55b.17.llvm.15234885945043149955, ptr %.sink83.sroa.phi100, align 8, !noalias !48 + store i64 0, ptr %.sink83.sroa.phi103, align 8, !noalias !48 + invoke void @_ZN4core9panicking9panic_fmt17ha6effc2775a0749cE(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %.sink83, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %66) #19 to label %.cont unwind label %71 .cont: ; preds = %.invoke @@ -502,53 +502,56 @@ _ZN3std3sys3pal4unix2io7IoSlice7advance17hb760a64f4068ca53E.exit.i15: ; preds = %72 = landingpad { ptr, i32 } cleanup %.not = icmp eq i64 %25, 0 - br i1 %.not, label %81, label %80 + br i1 %.not, label %80, label %79 -_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20: ; preds = %32, %34, %38, %_ZN3std3sys3pal4unix2io7IoSlice7advance17hb760a64f4068ca53E.exit.i15, %.thread.i16, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit - %73 = phi i64 [ %25, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit ], [ %25, %.thread.i16 ], [ %.pre, %_ZN3std3sys3pal4unix2io7IoSlice7advance17hb760a64f4068ca53E.exit.i15 ], [ %25, %38 ], [ %25, %34 ], [ %25, %32 ] - %.sroa.8.1 = phi i64 [ %.sroa.8.038, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit ], [ 0, %.thread.i16 ], [ %55, %_ZN3std3sys3pal4unix2io7IoSlice7advance17hb760a64f4068ca53E.exit.i15 ], [ %.sroa.8.038, %38 ], [ %.sroa.8.038, %34 ], [ %.sroa.8.038, %32 ] - %.sroa.0.1 = phi ptr [ %.sroa.0.039, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit ], [ %56, %.thread.i16 ], [ %56, %_ZN3std3sys3pal4unix2io7IoSlice7advance17hb760a64f4068ca53E.exit.i15 ], [ %.sroa.0.039, %38 ], [ %.sroa.0.039, %34 ], [ %.sroa.0.039, %32 ] +_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20: ; preds = %_ZN3std3sys3pal4unix2io7IoSlice7advance17hb760a64f4068ca53E.exit.i15, %.thread.i16 + %73 = phi i64 [ %25, %.thread.i16 ], [ %.pre, %_ZN3std3sys3pal4unix2io7IoSlice7advance17hb760a64f4068ca53E.exit.i15 ] + %.sroa.8.1 = phi i64 [ 0, %.thread.i16 ], [ %55, %_ZN3std3sys3pal4unix2io7IoSlice7advance17hb760a64f4068ca53E.exit.i15 ] %.not6 = icmp eq i64 %73, 0 - br i1 %.not6, label %78, label %74 + br i1 %.not6, label %77, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20.thread _ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit: ; preds = %29 %.mask20.i = and i64 %30, -4294967296 %switch.i = icmp eq i64 %.mask20.i, 150323855360 - br i1 %switch.i, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20, label %70 + br i1 %switch.i, label %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20.thread, label %70 -74: ; preds = %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20 +_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20.thread: ; preds = %32, %34, %38, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20 + %.sroa.0.154 = phi ptr [ %56, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20 ], [ %.sroa.0.039, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit ], [ %.sroa.0.039, %38 ], [ %.sroa.0.039, %34 ], [ %.sroa.0.039, %32 ] + %.sroa.8.152 = phi i64 [ %.sroa.8.1, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20 ], [ %.sroa.8.038, %_ZN3std2io5error5Error14is_interrupted17haa138aed658ec797E.exit ], [ %.sroa.8.038, %38 ], [ %.sroa.8.038, %34 ], [ %.sroa.8.038, %32 ] call void @llvm.experimental.noalias.scope.decl(metadata !55) call void @llvm.experimental.noalias.scope.decl(metadata !58) call void @llvm.experimental.noalias.scope.decl(metadata !61) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4), !noalias !64 - %75 = load ptr, ptr %22, align 8, !alias.scope !64, !nonnull !5, !noundef !5 - call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h693af1a2af2a7919E.llvm.1206798258238166277(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %4, ptr noundef nonnull %75), !noalias !64 - %76 = load i8, ptr %4, align 8, !range !41, !alias.scope !65, !noalias !64, !noundef !5 - %switch.not.i.i.i.i = icmp eq i8 %76, 3 - br i1 %switch.not.i.i.i.i, label %77, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h97bc9d31b2cc9982E.exit" + %74 = load ptr, ptr %22, align 8, !alias.scope !64, !nonnull !5, !noundef !5 + call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h693af1a2af2a7919E.llvm.1206798258238166277(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %4, ptr noundef nonnull %74), !noalias !64 + %75 = load i8, ptr %4, align 8, !range !41, !alias.scope !65, !noalias !64, !noundef !5 + %switch.not.i.i.i.i = icmp eq i8 %75, 3 + br i1 %switch.not.i.i.i.i, label %76, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h97bc9d31b2cc9982E.exit" -77: ; preds = %74 +76: ; preds = %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20.thread call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h1fb3f3b0ff3c7692E.llvm.1206798258238166277"(ptr noalias noundef nonnull align 8 dereferenceable(8) %23), !noalias !64 br label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h97bc9d31b2cc9982E.exit" -"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h97bc9d31b2cc9982E.exit": ; preds = %74, %77 +"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h97bc9d31b2cc9982E.exit": ; preds = %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20.thread, %76 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !64 - br label %78 + br label %77 -78: ; preds = %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h97bc9d31b2cc9982E.exit", %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20 +77: ; preds = %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h97bc9d31b2cc9982E.exit", %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20 + %.sroa.0.155 = phi ptr [ %.sroa.0.154, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h97bc9d31b2cc9982E.exit" ], [ %56, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20 ] + %.sroa.8.153 = phi i64 [ %.sroa.8.152, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h97bc9d31b2cc9982E.exit" ], [ %.sroa.8.1, %_ZN3std2io7IoSlice14advance_slices17h594e87d33cca00edE.exit20 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) - %79 = icmp eq i64 %.sroa.8.1, 0 - br i1 %79, label %.loopexit, label %24 + %78 = icmp eq i64 %.sroa.8.153, 0 + br i1 %78, label %.loopexit, label %24 -80: ; preds = %71 +79: ; preds = %71 invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h97bc9d31b2cc9982E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %22) #20 - to label %81 unwind label %82 + to label %80 unwind label %81 -81: ; preds = %80, %71 +80: ; preds = %79, %71 resume { ptr, i32 } %72 -82: ; preds = %80 - %83 = landingpad { ptr, i32 } +81: ; preds = %79 + %82 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #21 unreachable diff --git a/bench/coreutils-rs/optimized/3t9yvjig6ylv2f7b.ll b/bench/coreutils-rs/optimized/3t9yvjig6ylv2f7b.ll index f3a98017c65..112190496dd 100644 --- a/bench/coreutils-rs/optimized/3t9yvjig6ylv2f7b.ll +++ b/bench/coreutils-rs/optimized/3t9yvjig6ylv2f7b.ll @@ -737,7 +737,7 @@ define hidden void @_ZN8uu_split12custom_write17h934ebbfa2cf8753cE(ptr noalias n call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7), !noalias !93 %25 = load ptr, ptr %24, align 8, !alias.scope !94, !noalias !88, !nonnull !5, !noundef !5 invoke void @_ZN3std2io5error14repr_bitpacked11decode_repr17hbce672da22bbe2b3E.llvm.4295070668343094693(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %7, ptr noundef nonnull %25) - to label %.noexc unwind label %45 + to label %.noexc unwind label %57 .noexc: ; preds = %23 %26 = load i8, ptr %7, align 8, !range !14, !noalias !93, !noundef !5 @@ -755,80 +755,76 @@ default.unreachable: ; preds = %.noexc %28 = getelementptr inbounds nuw i8, ptr %7, i64 4 %29 = load i32, ptr %28, align 4, !noalias !93, !noundef !5 %30 = invoke noundef i8 @_ZN3std3sys3pal4unix17decode_error_kind17hc61899be20d8e934E.llvm.4295070668343094693(i32 noundef %29) - to label %46 unwind label %45 + to label %45 unwind label %57 31: ; preds = %.noexc %32 = getelementptr inbounds nuw i8, ptr %7, i64 1 %33 = load i8, ptr %32, align 1, !range !6, !noalias !93, !noundef !5 - br label %46 + br label %45 34: ; preds = %.noexc %35 = getelementptr inbounds nuw i8, ptr %7, i64 8 %36 = load ptr, ptr %35, align 8, !noalias !93, !nonnull !5, !align !38, !noundef !5 %37 = getelementptr inbounds nuw i8, ptr %36, i64 16 %38 = load i8, ptr %37, align 8, !range !6, !noalias !93, !noundef !5 - br label %46 + br label %45 39: ; preds = %.noexc %40 = getelementptr inbounds nuw i8, ptr %7, i64 8 %41 = load ptr, ptr %40, align 8, !noalias !93, !nonnull !5, !align !38, !noundef !5 %42 = getelementptr inbounds nuw i8, ptr %41, i64 16 %43 = load i8, ptr %42, align 8, !range !6, !noalias !93, !noundef !5 - br label %46 + br label %45 -44: ; preds = %56, %52, %19 +44: ; preds = %55, %51, %19 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) ret void -45: ; preds = %27, %23 - %lpad.thr_comm.split-lp = landingpad { ptr, i32 } - cleanup - %.not = icmp eq i64 %.pre, 0 - br i1 %.not, label %57, label %58 - -46: ; preds = %39, %34, %31, %27 +45: ; preds = %39, %34, %31, %27 %.0.i.i = phi i8 [ %43, %39 ], [ %38, %34 ], [ %33, %31 ], [ %30, %27 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7), !noalias !93 - %47 = icmp eq i8 %.0.i.i, 11 - %48 = getelementptr inbounds nuw i8, ptr %4, i64 136 - %49 = load i64, ptr %48, align 8, !range !95, !alias.scope !88, !noalias !85 - %50 = icmp ne i64 %49, -9223372036854775808 - %.0.i = select i1 %47, i1 %50, i1 false - %51 = getelementptr inbounds nuw i8, ptr %0, i64 8 - br i1 %.0.i, label %.noexc2, label %52 - -52: ; preds = %46 - store ptr %25, ptr %51, align 8 + %46 = icmp eq i8 %.0.i.i, 11 + %47 = getelementptr inbounds nuw i8, ptr %4, i64 136 + %48 = load i64, ptr %47, align 8, !range !95, !alias.scope !88, !noalias !85 + %49 = icmp ne i64 %48, -9223372036854775808 + %.0.i = select i1 %46, i1 %49, i1 false + %50 = getelementptr inbounds nuw i8, ptr %0, i64 8 + br i1 %.0.i, label %.noexc2, label %51 + +51: ; preds = %45 + store ptr %25, ptr %50, align 8 store i64 1, ptr %0, align 8 br label %44 -.noexc2: ; preds = %46 - store i64 %2, ptr %51, align 8 +.noexc2: ; preds = %45 + store i64 %2, ptr %50, align 8 store i64 0, ptr %0, align 8 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6), !noalias !96 call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h693af1a2af2a7919E.llvm.1206798258238166277(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %6, ptr noundef nonnull %25) - %53 = load i8, ptr %6, align 8, !range !14, !alias.scope !103, !noalias !96, !noundef !5 - %switch.not.i.i.i.i = icmp eq i8 %53, 3 - br i1 %switch.not.i.i.i.i, label %54, label %56 + %52 = load i8, ptr %6, align 8, !range !14, !alias.scope !103, !noalias !96, !noundef !5 + %switch.not.i.i.i.i = icmp eq i8 %52, 3 + br i1 %switch.not.i.i.i.i, label %53, label %55 -54: ; preds = %.noexc2 - %55 = getelementptr inbounds nuw i8, ptr %6, i64 8 - call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h1fb3f3b0ff3c7692E.llvm.1206798258238166277"(ptr noalias noundef nonnull align 8 dereferenceable(8) %55) - br label %56 +53: ; preds = %.noexc2 + %54 = getelementptr inbounds nuw i8, ptr %6, i64 8 + call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h1fb3f3b0ff3c7692E.llvm.1206798258238166277"(ptr noalias noundef nonnull align 8 dereferenceable(8) %54) + br label %55 -56: ; preds = %54, %.noexc2 +55: ; preds = %53, %.noexc2 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6), !noalias !96 br label %44 -57: ; preds = %45, %58 +56: ; preds = %57 resume { ptr, i32 } %lpad.thr_comm.split-lp -58: ; preds = %45 +57: ; preds = %23, %27 + %lpad.thr_comm.split-lp = landingpad { ptr, i32 } + cleanup invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h97bc9d31b2cc9982E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %24) #13 - to label %57 unwind label %59 + to label %56 unwind label %58 -59: ; preds = %58 - %60 = landingpad { ptr, i32 } +58: ; preds = %57 + %59 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #14 unreachable diff --git a/bench/curl/optimized/libcurl_la-smtp.ll b/bench/curl/optimized/libcurl_la-smtp.ll index ff205017370..4b3b2d97db4 100644 --- a/bench/curl/optimized/libcurl_la-smtp.ll +++ b/bench/curl/optimized/libcurl_la-smtp.ll @@ -354,7 +354,7 @@ if.then64.i.i.i: ; preds = %lor.lhs.false61.i.i br label %if.end65.i.i.i if.end65.i.i.i: ; preds = %if.then64.i.i.i, %lor.lhs.false61.i.i.i, %land.lhs.true48.i.i.i, %if.end46.i.i.i - %utf8.2.i.i.i = phi i8 [ %utf8.0.i.i.i, %if.end46.i.i.i ], [ 1, %if.then64.i.i.i ], [ %utf8.0.i.i.i, %lor.lhs.false61.i.i.i ], [ %utf8.0.i.i.i, %land.lhs.true48.i.i.i ] + %utf8.2.i.i.i = phi i8 [ 1, %if.end46.i.i.i ], [ 1, %if.then64.i.i.i ], [ %utf8.0.i.i.i, %lor.lhs.false61.i.i.i ], [ %utf8.0.i.i.i, %land.lhs.true48.i.i.i ] %34 = load ptr, ptr %name.i76.i.i.i, align 8 %tobool67.not.i.i.i = icmp eq ptr %34, null br i1 %tobool67.not.i.i.i, label %if.else71.i.i.i, label %if.then68.i.i.i @@ -393,7 +393,6 @@ if.then78.i.i.i: ; preds = %if.end76.i.i.i if.end80.i.i.i: ; preds = %if.end76.i.i.i, %land.lhs.true.i.i.i, %if.end23.i.i.i %auth.0.i.i.i = phi ptr [ %auth.2.i.i.i, %if.end76.i.i.i ], [ null, %land.lhs.true.i.i.i ], [ null, %if.end23.i.i.i ] %utf8.1.i.i.i = phi i8 [ %utf8.3.i.i.i, %if.end76.i.i.i ], [ %utf8.0.i.i.i, %land.lhs.true.i.i.i ], [ %utf8.0.i.i.i, %if.end23.i.i.i ] - %utf8.1.fr.i.i.i = freeze i8 %utf8.1.i.i.i %mimepost.i.i.i = getelementptr inbounds nuw i8, ptr %data, i64 816 %kind.i.i.i = getelementptr inbounds nuw i8, ptr %data, i64 832 %38 = load i32, ptr %kind.i.i.i, align 8 @@ -481,100 +480,60 @@ if.end139.i.i.i: ; preds = %if.then132.if.end13 %size.0.i.i.i = phi ptr [ %call135.i.i.i, %if.then132.if.end139_crit_edge.i.i.i ], [ null, %land.lhs.true127.i.i.i ], [ null, %if.end120.i.i.i ] %47 = and i8 %bf.load142.i.i.i, 8 %tobool146.not.i.i.i = icmp eq i8 %47, 0 - %.pre.i.i.i = trunc i8 %utf8.1.fr.i.i.i to i1 - br i1 %tobool146.not.i.i.i, label %if.end139.if.end160_crit_edge.i.i.i, label %land.lhs.true147.i.i.i - -if.end139.if.end160_crit_edge.i.i.i: ; preds = %if.end139.i.i.i - %tobool162.not139.i.i.i = icmp eq ptr %auth.0.i.i.i, null - %cond140.i.i.i = select i1 %tobool162.not139.i.i.i, ptr @.str.22, ptr @.str.47 - %cond164141.i.i.i = select i1 %tobool162.not139.i.i.i, ptr @.str.22, ptr %auth.0.i.i.i - %tobool165.not142.i.i.i = icmp eq ptr %size.0.i.i.i, null - %cond166143.i.i.i = select i1 %tobool165.not142.i.i.i, ptr @.str.22, ptr @.str.48 - %cond171144.i.i.i = select i1 %tobool165.not142.i.i.i, ptr @.str.22, ptr %size.0.i.i.i - br i1 %.pre.i.i.i, label %50, label %51 + br i1 %tobool146.not.i.i.i, label %if.end160.i.i.i, label %land.lhs.true147.i.i.i land.lhs.true147.i.i.i: ; preds = %if.end139.i.i.i - br i1 %.pre.i.i.i, label %if.end160.thread.i.i.i, label %if.then149.i.i.i - -if.end160.thread.i.i.i: ; preds = %land.lhs.true147.i.i.i - %tobool162.not115.i.i.i = icmp eq ptr %auth.0.i.i.i, null - %cond116.i.i.i = select i1 %tobool162.not115.i.i.i, ptr @.str.22, ptr @.str.47 - %cond164117.i.i.i = select i1 %tobool162.not115.i.i.i, ptr @.str.22, ptr %auth.0.i.i.i - %tobool165.not118.i.i.i = icmp eq ptr %size.0.i.i.i, null - %cond166119.i.i.i = select i1 %tobool165.not118.i.i.i, ptr @.str.22, ptr @.str.48 - %cond171120.i.i.i = select i1 %tobool165.not118.i.i.i, ptr @.str.22, ptr %size.0.i.i.i - br label %50 + %tobool148.i.i.i = trunc nuw i8 %utf8.1.i.i.i to i1 + br i1 %tobool148.i.i.i, label %if.end160.i.i.i, label %if.then149.i.i.i if.then149.i.i.i: ; preds = %land.lhs.true147.i.i.i %48 = load ptr, ptr %p.i.i, align 8 %rcpt150.i.i.i = getelementptr inbounds nuw i8, ptr %48, i64 16 %rcpt.0107.i.i.i = load ptr, ptr %rcpt150.i.i.i, align 8 %tobool151108.i.i.i = icmp eq ptr %rcpt.0107.i.i.i, null - br i1 %tobool151108.i.i.i, label %if.end160.thread130.i.i.i, label %while.body.i.i.i - -if.end160.thread130.i.i.i: ; preds = %if.then149.i.i.i - %tobool162.not132.i.i.i = icmp eq ptr %auth.0.i.i.i, null - %cond133.i.i.i = select i1 %tobool162.not132.i.i.i, ptr @.str.22, ptr @.str.47 - %cond164134.i.i.i = select i1 %tobool162.not132.i.i.i, ptr @.str.22, ptr %auth.0.i.i.i - %tobool165.not135.i.i.i = icmp eq ptr %size.0.i.i.i, null - %cond166136.i.i.i = select i1 %tobool165.not135.i.i.i, ptr @.str.22, ptr @.str.48 - %cond171137.i.i.i = select i1 %tobool165.not135.i.i.i, ptr @.str.22, ptr %size.0.i.i.i - br label %51 + br i1 %tobool151108.i.i.i, label %if.end160.i.i.i, label %while.body.i.i.i while.body.i.i.i: ; preds = %if.then149.i.i.i, %while.body.i.i.i %rcpt.0112.i.i.i = phi ptr [ %rcpt.0.i.i.i, %while.body.i.i.i ], [ %rcpt.0107.i.i.i, %if.then149.i.i.i ] - %utf8.5111.i.i.i = phi i8 [ %spec.select.i.i.i, %while.body.i.i.i ], [ %utf8.1.fr.i.i.i, %if.then149.i.i.i ] + %utf8.5111.i.i.i = phi i8 [ %spec.select.i.i.i, %while.body.i.i.i ], [ %utf8.1.i.i.i, %if.then149.i.i.i ] %49 = load ptr, ptr %rcpt.0112.i.i.i, align 8 %call157.i.i.i = call zeroext i1 @Curl_is_ASCII_name(ptr noundef %49) #8 - %call157.i.fr.i.i = freeze i1 %call157.i.i.i - %spec.select.i.i.i = select i1 %call157.i.fr.i.i, i8 %utf8.5111.i.i.i, i8 1 + %spec.select.i.i.i = select i1 %call157.i.i.i, i8 %utf8.5111.i.i.i, i8 1 %next.i.i.i = getelementptr inbounds nuw i8, ptr %rcpt.0112.i.i.i, i64 8 %rcpt.0.i.i.i = load ptr, ptr %next.i.i.i, align 8 %tobool151.i.i.i = icmp eq ptr %rcpt.0.i.i.i, null - %tobool153.i.i.i = trunc i8 %spec.select.i.i.i to i1 - %.not.i.i.i = or i1 %tobool151.i.i.i, %tobool153.i.i.i + %tobool153.i.i.i = trunc nuw i8 %spec.select.i.i.i to i1 + %.not.i.i.i = select i1 %tobool151.i.i.i, i1 true, i1 %tobool153.i.i.i br i1 %.not.i.i.i, label %if.end160.i.i.i, label %while.body.i.i.i, !llvm.loop !4 -if.end160.i.i.i: ; preds = %while.body.i.i.i +if.end160.i.i.i: ; preds = %while.body.i.i.i, %if.then149.i.i.i, %land.lhs.true147.i.i.i, %if.end139.i.i.i + %utf8.4.i.i.i = phi i8 [ 1, %land.lhs.true147.i.i.i ], [ %utf8.1.i.i.i, %if.end139.i.i.i ], [ %utf8.1.i.i.i, %if.then149.i.i.i ], [ %spec.select.i.i.i, %while.body.i.i.i ] %tobool162.not.i.i.i = icmp eq ptr %auth.0.i.i.i, null %cond.i.i.i = select i1 %tobool162.not.i.i.i, ptr @.str.22, ptr @.str.47 %cond164.i.i.i = select i1 %tobool162.not.i.i.i, ptr @.str.22, ptr %auth.0.i.i.i %tobool165.not.i.i.i = icmp eq ptr %size.0.i.i.i, null %cond166.i.i.i = select i1 %tobool165.not.i.i.i, ptr @.str.22, ptr @.str.48 %cond171.i.i.i = select i1 %tobool165.not.i.i.i, ptr @.str.22, ptr %size.0.i.i.i - br i1 %tobool153.i.i.i, label %50, label %51 - -50: ; preds = %if.end160.i.i.i, %if.end160.thread.i.i.i, %if.end139.if.end160_crit_edge.i.i.i - %cond171129.i.i.i = phi ptr [ %cond171120.i.i.i, %if.end160.thread.i.i.i ], [ %cond171.i.i.i, %if.end160.i.i.i ], [ %cond171144.i.i.i, %if.end139.if.end160_crit_edge.i.i.i ] - %cond166127.i.i.i = phi ptr [ %cond166119.i.i.i, %if.end160.thread.i.i.i ], [ %cond166.i.i.i, %if.end160.i.i.i ], [ %cond166143.i.i.i, %if.end139.if.end160_crit_edge.i.i.i ] - %cond164125.i.i.i = phi ptr [ %cond164117.i.i.i, %if.end160.thread.i.i.i ], [ %cond164.i.i.i, %if.end160.i.i.i ], [ %cond164141.i.i.i, %if.end139.if.end160_crit_edge.i.i.i ] - %cond123.i.i.i = phi ptr [ %cond116.i.i.i, %if.end160.thread.i.i.i ], [ %cond.i.i.i, %if.end160.i.i.i ], [ %cond140.i.i.i, %if.end139.if.end160_crit_edge.i.i.i ] - br label %51 - -51: ; preds = %50, %if.end160.i.i.i, %if.end160.thread130.i.i.i, %if.end139.if.end160_crit_edge.i.i.i - %cond171128.i.i.i = phi ptr [ %cond171129.i.i.i, %50 ], [ %cond171.i.i.i, %if.end160.i.i.i ], [ %cond171137.i.i.i, %if.end160.thread130.i.i.i ], [ %cond171144.i.i.i, %if.end139.if.end160_crit_edge.i.i.i ] - %cond166126.i.i.i = phi ptr [ %cond166127.i.i.i, %50 ], [ %cond166.i.i.i, %if.end160.i.i.i ], [ %cond166136.i.i.i, %if.end160.thread130.i.i.i ], [ %cond166143.i.i.i, %if.end139.if.end160_crit_edge.i.i.i ] - %cond164124.i.i.i = phi ptr [ %cond164125.i.i.i, %50 ], [ %cond164.i.i.i, %if.end160.i.i.i ], [ %cond164134.i.i.i, %if.end160.thread130.i.i.i ], [ %cond164141.i.i.i, %if.end139.if.end160_crit_edge.i.i.i ] - %cond122.i.i.i = phi ptr [ %cond123.i.i.i, %50 ], [ %cond.i.i.i, %if.end160.i.i.i ], [ %cond133.i.i.i, %if.end160.thread130.i.i.i ], [ %cond140.i.i.i, %if.end139.if.end160_crit_edge.i.i.i ] - %52 = phi ptr [ @.str.23, %50 ], [ @.str.22, %if.end160.i.i.i ], [ @.str.22, %if.end160.thread130.i.i.i ], [ @.str.22, %if.end139.if.end160_crit_edge.i.i.i ] - %call175.i.i.i = call i32 (ptr, ptr, ptr, ...) @Curl_pp_sendf(ptr noundef %data, ptr noundef nonnull %proto121.i.i.i, ptr noundef nonnull @.str.46, ptr noundef nonnull %from.1.i.i.i, ptr noundef nonnull %cond122.i.i.i, ptr noundef nonnull %cond164124.i.i.i, ptr noundef nonnull %cond166126.i.i.i, ptr noundef nonnull %cond171128.i.i.i, ptr noundef nonnull %52) #8 - %53 = load ptr, ptr @Curl_cfree, align 8 - call void %53(ptr noundef nonnull %from.1.i.i.i) #8 - %54 = load ptr, ptr @Curl_cfree, align 8 - call void %54(ptr noundef %auth.0.i.i.i) #8 - %55 = load ptr, ptr @Curl_cfree, align 8 - call void %55(ptr noundef %size.0.i.i.i) #8 + %tobool172.i.i.i = trunc nuw i8 %utf8.4.i.i.i to i1 + %cond174.i.i.i = select i1 %tobool172.i.i.i, ptr @.str.23, ptr @.str.22 + %call175.i.i.i = call i32 (ptr, ptr, ptr, ...) @Curl_pp_sendf(ptr noundef %data, ptr noundef nonnull %proto121.i.i.i, ptr noundef nonnull @.str.46, ptr noundef nonnull %from.1.i.i.i, ptr noundef nonnull %cond.i.i.i, ptr noundef nonnull %cond164.i.i.i, ptr noundef nonnull %cond166.i.i.i, ptr noundef nonnull %cond171.i.i.i, ptr noundef nonnull %cond174.i.i.i) #8 + %50 = load ptr, ptr @Curl_cfree, align 8 + call void %50(ptr noundef nonnull %from.1.i.i.i) #8 + %51 = load ptr, ptr @Curl_cfree, align 8 + call void %51(ptr noundef %auth.0.i.i.i) #8 + %52 = load ptr, ptr @Curl_cfree, align 8 + call void %52(ptr noundef %size.0.i.i.i) #8 %tobool176.not.i.i.i = icmp eq i32 %call175.i.i.i, 0 br i1 %tobool176.not.i.i.i, label %if.then177.i.i.i, label %smtp_perform_mail.exit.i.i -if.then177.i.i.i: ; preds = %51 +if.then177.i.i.i: ; preds = %if.end160.i.i.i %data.val.i.i.i = load ptr, ptr %conn1.i.i.i, align 8 %state.i.i.i.i = getelementptr inbounds nuw i8, ptr %data.val.i.i.i, i64 1024 store i32 8, ptr %state.i.i.i.i, align 8 br label %smtp_perform_mail.exit.i.i -smtp_perform_mail.exit.i.i: ; preds = %if.then177.i.i.i, %51, %if.then137.i.i.i, %if.then111.i.i.i, %if.then78.i.i.i, %if.then45.i.i.i, %if.end20.i.i.i, %if.then.i.i.i - %retval.0.i.i.i = phi i32 [ 27, %if.then45.i.i.i ], [ %result.1106.i.i.i, %if.then111.i.i.i ], [ 27, %if.then137.i.i.i ], [ 27, %if.then78.i.i.i ], [ 27, %if.end20.i.i.i ], [ 0, %if.then177.i.i.i ], [ %call175.i.i.i, %51 ], [ 27, %if.then.i.i.i ] +smtp_perform_mail.exit.i.i: ; preds = %if.then177.i.i.i, %if.end160.i.i.i, %if.then137.i.i.i, %if.then111.i.i.i, %if.then78.i.i.i, %if.then45.i.i.i, %if.end20.i.i.i, %if.then.i.i.i + %retval.0.i.i.i = phi i32 [ 27, %if.then45.i.i.i ], [ %result.1106.i.i.i, %if.then111.i.i.i ], [ 27, %if.then137.i.i.i ], [ 27, %if.then78.i.i.i ], [ 27, %if.end20.i.i.i ], [ 0, %if.then177.i.i.i ], [ %call175.i.i.i, %if.end160.i.i.i ], [ 27, %if.then.i.i.i ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %host.i.i.i) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %host39.i.i.i) br label %if.end18.i.i @@ -591,18 +550,18 @@ if.end18.i.i: ; preds = %if.else.i.i, %smtp_ if.end21.i.i: ; preds = %if.end18.i.i call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ssldone3.i.i.i) %conn1.i19.i.i = getelementptr inbounds nuw i8, ptr %data, i64 32 - %56 = load ptr, ptr %conn1.i19.i.i, align 8 - %proto.i.i.i = getelementptr inbounds nuw i8, ptr %56, i64 856 - %handler.i.i.i = getelementptr inbounds nuw i8, ptr %56, i64 712 - %57 = load ptr, ptr %handler.i.i.i, align 8 - %flags.i20.i.i = getelementptr inbounds nuw i8, ptr %57, i64 140 - %58 = load i32, ptr %flags.i20.i.i, align 4 - %and.i21.i.i = and i32 %58, 1 + %53 = load ptr, ptr %conn1.i19.i.i, align 8 + %proto.i.i.i = getelementptr inbounds nuw i8, ptr %53, i64 856 + %handler.i.i.i = getelementptr inbounds nuw i8, ptr %53, i64 712 + %54 = load ptr, ptr %handler.i.i.i, align 8 + %flags.i20.i.i = getelementptr inbounds nuw i8, ptr %54, i64 140 + %55 = load i32, ptr %flags.i20.i.i, align 4 + %and.i21.i.i = and i32 %55, 1 %tobool.not.i22.i.i = icmp eq i32 %and.i21.i.i, 0 br i1 %tobool.not.i22.i.i, label %if.end15.i.i.i, label %land.lhs.true.i23.i.i land.lhs.true.i23.i.i: ; preds = %if.end21.i.i - %ssldone.i.i.i = getelementptr inbounds nuw i8, ptr %56, i64 1040 + %ssldone.i.i.i = getelementptr inbounds nuw i8, ptr %53, i64 1040 %bf.load.i24.i.i = load i8, ptr %ssldone.i.i.i, align 8 %bf.clear.i.i.i = and i8 %bf.load.i24.i.i, 1 %tobool2.not.i.i.i = icmp eq i8 %bf.clear.i.i.i, 0 @@ -611,22 +570,22 @@ land.lhs.true.i23.i.i: ; preds = %if.end21.i.i if.then.i28.i.i: ; preds = %land.lhs.true.i23.i.i store i8 0, ptr %ssldone3.i.i.i, align 1 %call.i.i.i = call i32 @Curl_conn_connect(ptr noundef nonnull %data, i32 noundef 0, i1 noundef zeroext false, ptr noundef nonnull %ssldone3.i.i.i) #8 - %59 = load i8, ptr %ssldone3.i.i.i, align 1 - %60 = and i8 %59, 1 + %56 = load i8, ptr %ssldone3.i.i.i, align 1 + %57 = and i8 %56, 1 %bf.load6.i.i.i = load i8, ptr %ssldone.i.i.i, align 8 %bf.clear7.i.i.i = and i8 %bf.load6.i.i.i, -2 - %bf.set.i.i.i = or disjoint i8 %bf.clear7.i.i.i, %60 + %bf.set.i.i.i = or disjoint i8 %bf.clear7.i.i.i, %57 store i8 %bf.set.i.i.i, ptr %ssldone.i.i.i, align 8 %tobool8.not.i29.i.i = icmp ne i32 %call.i.i.i, 0 - %tobool13.not.i.i.i = icmp eq i8 %60, 0 + %tobool13.not.i.i.i = icmp eq i8 %57, 0 %or.cond.i.i.i = select i1 %tobool8.not.i29.i.i, i1 true, i1 %tobool13.not.i.i.i br i1 %or.cond.i.i.i, label %smtp_perform.exit.i, label %if.end15.i.i.i if.end15.i.i.i: ; preds = %if.then.i28.i.i, %land.lhs.true.i23.i.i, %if.end21.i.i %call16.i25.i.i = call i32 @Curl_pp_statemach(ptr noundef nonnull %data, ptr noundef nonnull %proto.i.i.i, i1 noundef zeroext false, i1 noundef zeroext false) #8 - %state.i.i.i = getelementptr inbounds nuw i8, ptr %56, i64 1024 - %61 = load i32, ptr %state.i.i.i, align 8 - %cmp.i.i.i = icmp eq i32 %61, 0 + %state.i.i.i = getelementptr inbounds nuw i8, ptr %53, i64 1024 + %58 = load i32, ptr %state.i.i.i, align 8 + %cmp.i.i.i = icmp eq i32 %58, 0 %frombool.i26.i.i = zext i1 %cmp.i.i.i to i8 store i8 %frombool.i26.i.i, ptr %done, align 1 br label %smtp_perform.exit.i @@ -634,20 +593,20 @@ if.end15.i.i.i: ; preds = %if.then.i28.i.i, %l smtp_perform.exit.i: ; preds = %if.end15.i.i.i, %if.then.i28.i.i %retval.0.i27.i.i = phi i32 [ %call16.i25.i.i, %if.end15.i.i.i ], [ %call.i.i.i, %if.then.i28.i.i ] call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ssldone3.i.i.i) - %62 = load ptr, ptr %conn1.i19.i.i, align 8 - %call23.i.i = call zeroext i1 @Curl_conn_is_connected(ptr noundef %62, i32 noundef 0) #8 + %59 = load ptr, ptr %conn1.i19.i.i, align 8 + %call23.i.i = call zeroext i1 @Curl_conn_is_connected(ptr noundef %59, i32 noundef 0) #8 %tobool.not.i7 = icmp eq i32 %retval.0.i27.i.i, 0 br i1 %tobool.not.i7, label %land.lhs.true.i, label %return land.lhs.true.i: ; preds = %smtp_perform.exit.i - %63 = load i8, ptr %done, align 1 - %tobool2.i = trunc i8 %63 to i1 + %60 = load i8, ptr %done, align 1 + %tobool2.i = trunc i8 %60 to i1 br i1 %tobool2.i, label %if.then.i8, label %return if.then.i8: ; preds = %land.lhs.true.i - %64 = load ptr, ptr %p.i.i, align 8 - %65 = load i32, ptr %64, align 8 - %cmp.not.i.i = icmp eq i32 %65, 0 + %61 = load ptr, ptr %p.i.i, align 8 + %62 = load i32, ptr %61, align 8 + %cmp.not.i.i = icmp eq i32 %62, 0 br i1 %cmp.not.i.i, label %return, label %if.then.i10.i if.then.i10.i: ; preds = %if.then.i8 diff --git a/bench/cvc5/optimized/candidate_rewrite_filter.cpp.ll b/bench/cvc5/optimized/candidate_rewrite_filter.cpp.ll index 2482915fd53..98b6dc731b2 100644 --- a/bench/cvc5/optimized/candidate_rewrite_filter.cpp.ll +++ b/bench/cvc5/optimized/candidate_rewrite_filter.cpp.ll @@ -1487,7 +1487,7 @@ _ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit589: ; preds = %invoke.cont134, %i %bf.load.i.i590 = load i64, ptr %108, align 8 %109 = and i64 %bf.load.i.i590, 1152920405095219200 %cmp.not.i.i591 = icmp eq i64 %109, 1152920405095219200 - br i1 %cmp.not.i.i591, label %if.end161, label %if.then.i.i592 + br i1 %cmp.not.i.i591, label %if.end142, label %if.then.i.i592 if.then.i.i592: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit589 %bf.value.i.i593 = add i64 %bf.load.i.i590, 1152920405095219200 @@ -1496,11 +1496,11 @@ if.then.i.i592: ; preds = %_ZN4cvc58internal12 %bf.set.i.i596 = or disjoint i64 %bf.shl.i.i594, %bf.clear7.i.i595 store i64 %bf.set.i.i596, ptr %108, align 8 %cmp12.i.i597 = icmp eq i64 %bf.shl.i.i594, 0 - br i1 %cmp12.i.i597, label %if.then13.i.i598, label %if.end161 + br i1 %cmp12.i.i597, label %if.then13.i.i598, label %if.end142 if.then13.i.i598: ; preds = %if.then.i.i592 invoke void @_ZN4cvc58internal4expr9NodeValue15markForDeletionEv(ptr noundef nonnull align 8 dereferenceable(16) %108) - to label %if.end161 unwind label %terminate.lpad.i599 + to label %if.end142 unwind label %terminate.lpad.i599 terminate.lpad.i599: ; preds = %if.then13.i.i598 %110 = landingpad { ptr, i32 } @@ -1525,10 +1525,10 @@ ehcleanup138: ; preds = %lpad133, %lpad131 call void @_ZN4cvc58internal12NodeTemplateILb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp128) #20 br label %ehcleanup375 -if.end161: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit589, %if.then.i.i592, %if.then13.i.i598 - br i1 %call135, label %cleanup.done319, label %land.lhs.true +if.end142: ; preds = %if.then13.i.i598, %if.then.i.i592, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit589 + br i1 %call135, label %if.end295, label %land.lhs.true -land.lhs.true: ; preds = %if.then13.i.i546, %if.then.i.i540, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit537, %if.else124, %invoke.cont38, %if.end161 +land.lhs.true: ; preds = %if.then13.i.i546, %if.then.i.i540, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit537, %if.else124, %invoke.cont38, %if.end142 %call164 = invoke noundef nonnull align 8 dereferenceable(392) ptr @_ZNK4cvc58internal6EnvObj7optionsEv(ptr noundef nonnull align 8 dereferenceable(16) %this) to label %invoke.cont163 unwind label %lpad2 @@ -1675,7 +1675,7 @@ ehcleanup193: ; preds = %lpad189, %lpad187 call void @_ZN4cvc58internal12NodeTemplateILb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp184) #20 br label %ehcleanup375 -land.lhs.true213: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit744, %invoke.cont163 +land.lhs.true213: ; preds = %invoke.cont163, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit744 %call215 = invoke noundef nonnull align 8 dereferenceable(392) ptr @_ZNK4cvc58internal6EnvObj7optionsEv(ptr noundef nonnull align 8 dereferenceable(16) %this) to label %invoke.cont214 unwind label %lpad2 @@ -2173,11 +2173,12 @@ ehcleanup294: ; preds = %lpad251, %lpad.i.i, call void @_ZN4cvc58internal12NodeTemplateILb1EED2Ev(ptr noundef nonnull align 8 dereferenceable(8) %bni) #20 br label %ehcleanup375 -if.end295: ; preds = %if.then13.i.i1171, %if.then.i.i1165, %if.end293 - %tobool296 = trunc nuw i8 %keep.4 to i1 +if.end295: ; preds = %if.end142, %if.then13.i.i1171, %if.then.i.i1165, %if.end293 + %keep.3 = phi i8 [ %keep.4, %if.end293 ], [ %keep.4, %if.then.i.i1165 ], [ %keep.4, %if.then13.i.i1171 ], [ 0, %if.end142 ] + %tobool296 = trunc nuw i8 %keep.3 to i1 br i1 %tobool296, label %cleanup, label %cleanup.done319 -cleanup.done319: ; preds = %lor.lhs.false99, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit511, %if.end161, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit744, %if.end295 +cleanup.done319: ; preds = %lor.lhs.false99, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit511, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit744, %if.end295 br label %cleanup cleanup: ; preds = %invoke.cont214, %cleanup.done319, %if.end295 diff --git a/bench/cvc5/optimized/ho_extension.cpp.ll b/bench/cvc5/optimized/ho_extension.cpp.ll index 70215c47f8f..589d2948bb4 100644 --- a/bench/cvc5/optimized/ho_extension.cpp.ll +++ b/bench/cvc5/optimized/ho_extension.cpp.ll @@ -15577,28 +15577,19 @@ do.body: ; preds = %do.cond, %cond.end do.cond: ; preds = %do.body %cmp.not = icmp eq i32 %call5, 0 - br i1 %cmp.not, label %for.body, label %do.body, !llvm.loop !218 + br i1 %cmp.not, label %sw.epilog, label %do.body, !llvm.loop !218 -for.body: ; preds = %do.cond, %sw.epilog - %i.0204 = phi i1 [ true, %sw.epilog ], [ false, %do.cond ] - br i1 %i.0204, label %sw.bb19, label %sw.bb - -sw.bb: ; preds = %for.body +sw.epilog: ; preds = %do.cond %call18 = tail call noundef i32 @_ZN4cvc58internal6theory2uf11HoExtension19checkExtensionalityEPNS1_11TheoryModelE(ptr noundef nonnull align 8 dereferenceable(376) %this, ptr noundef null) - br label %sw.epilog + %cmp21.not.not = icmp eq i32 %call18, 0 + br i1 %cmp21.not.not, label %sw.epilog.thread, label %return -sw.bb19: ; preds = %for.body +sw.epilog.thread: ; preds = %sw.epilog %call20 = tail call noundef i32 @_ZN4cvc58internal6theory2uf11HoExtension15checkLazyLambdaEv(ptr noundef nonnull align 8 dereferenceable(376) %this) - br label %sw.epilog - -sw.epilog: ; preds = %sw.bb19, %sw.bb - %storemerge = phi i32 [ %call20, %sw.bb19 ], [ %call18, %sw.bb ] - %cmp21.not = icmp ne i32 %storemerge, 0 - %brmerge = or i1 %cmp21.not, %i.0204 - br i1 %brmerge, label %return, label %for.body + br label %return -return: ; preds = %do.body, %sw.epilog - %retval.0 = phi i32 [ %storemerge, %sw.epilog ], [ 1, %do.body ] +return: ; preds = %do.body, %sw.epilog, %sw.epilog.thread + %retval.0 = phi i32 [ %call20, %sw.epilog.thread ], [ %call18, %sw.epilog ], [ 1, %do.body ] ret i32 %retval.0 } diff --git a/bench/cvc5/optimized/inst_strategy_enumerative.cpp.ll b/bench/cvc5/optimized/inst_strategy_enumerative.cpp.ll index 6a5e679d9f3..d135ea77748 100644 --- a/bench/cvc5/optimized/inst_strategy_enumerative.cpp.ll +++ b/bench/cvc5/optimized/inst_strategy_enumerative.cpp.ll @@ -232,7 +232,7 @@ if.end: ; preds = %land.rhs, %if.then land.lhs.true: ; preds = %if.end %tobool8 = trunc nuw i8 %doCheck.1 to i1 - br i1 %tobool8, label %if.end17, label %if.then9 + br i1 %tobool8, label %if.end49, label %if.then9 if.then9: ; preds = %land.lhs.true %d_qstate = getelementptr inbounds nuw i8, ptr %this, i64 16 @@ -246,13 +246,14 @@ if.then12: ; preds = %if.then9 %frombool14 = zext i1 %cmp13 to i8 br label %if.end17 -if.end17: ; preds = %if.end, %land.lhs.true, %if.then12, %if.then9 - %fullEffort.0 = phi i1 [ false, %land.lhs.true ], [ false, %if.then9 ], [ true, %if.then12 ], [ false, %if.end ] - %doCheck.0 = phi i8 [ %doCheck.1, %land.lhs.true ], [ %doCheck.1, %if.then9 ], [ %frombool14, %if.then12 ], [ %doCheck.1, %if.end ] +if.end17: ; preds = %if.end, %if.then12, %if.then9 + %fullEffort.0 = phi i1 [ false, %if.then9 ], [ true, %if.then12 ], [ false, %if.end ] + %doCheck.0 = phi i8 [ %doCheck.1, %if.then9 ], [ %frombool14, %if.then12 ], [ %doCheck.1, %if.end ] %tobool18 = trunc nuw i8 %doCheck.0 to i1 br i1 %tobool18, label %if.end49, label %return -if.end49: ; preds = %if.end17 +if.end49: ; preds = %land.lhs.true, %if.end17 + %fullEffort.0526 = phi i1 [ %fullEffort.0, %if.end17 ], [ false, %land.lhs.true ] %call50 = tail call noundef nonnull align 8 dereferenceable(392) ptr @_ZNK4cvc58internal6EnvObj7optionsEv(ptr noundef nonnull align 8 dereferenceable(16) %this) %quantifiers51 = getelementptr inbounds nuw i8, ptr %call50, i64 328 %8 = load ptr, ptr %quantifiers51, align 8 @@ -261,7 +262,7 @@ if.end49: ; preds = %if.end17 %10 = and i8 %9, 1 %11 = xor i8 %10, 1 %cond53 = zext nneg i8 %11 to i32 - %cond58 = select i1 %fullEffort.0, i32 1, i32 %cond53 + %spec.select = select i1 %fullEffort.0526, i32 1, i32 %cond53 %d_treg = getelementptr inbounds nuw i8, ptr %this, i64 40 %12 = load ptr, ptr %d_treg, align 8 %call59 = tail call noundef ptr @_ZNK4cvc58internal6theory11quantifiers12TermRegistry8getModelEv(ptr noundef nonnull align 8 dereferenceable(208) %12) @@ -277,27 +278,27 @@ if.end49: ; preds = %if.end17 store ptr %13, ptr %_M_right.i.i.i.i.i, align 8 %_M_node_count.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %alreadyProc, i64 40 store i64 0, ptr %_M_node_count.i.i.i.i.i, align 8 - %cmp62.not534 = icmp samesign ult i32 %cond58, %cond53 - br i1 %cmp62.not534, label %if.end282, label %for.body.lr.ph + %cmp62.not540 = icmp samesign ult i32 %spec.select, %cond53 + br i1 %cmp62.not540, label %if.end282, label %for.body.lr.ph for.body.lr.ph: ; preds = %if.end49 %d_rd = getelementptr inbounds nuw i8, ptr %this, i64 48 - %cmp133530.not = icmp eq i32 %conv61, 0 + %cmp133536.not = icmp eq i32 %conv61, 0 %d_qreg = getelementptr inbounds nuw i8, ptr %this, i64 32 %d_qstate186 = getelementptr inbounds nuw i8, ptr %this, i64 16 - br i1 %cmp133530.not, label %for.body, label %for.body.us + br i1 %cmp133536.not, label %for.body, label %for.body.us for.body.us: ; preds = %for.body.lr.ph, %for.inc210.us - %r.0536.us = phi i32 [ %inc211.us, %for.inc210.us ], [ %cond53, %for.body.lr.ph ] - %addedLemmas.0535.us = phi i32 [ %addedLemmas.7.us, %for.inc210.us ], [ 0, %for.body.lr.ph ] + %r.0542.us = phi i32 [ %inc211.us, %for.inc210.us ], [ %cond53, %for.body.lr.ph ] + %addedLemmas.0541.us = phi i32 [ %addedLemmas.7.us, %for.inc210.us ], [ 0, %for.body.lr.ph ] %14 = load ptr, ptr %d_rd, align 8 %tobool63.us = icmp ne ptr %14, null - %cmp64.us = icmp ne i32 %r.0536.us, 0 + %cmp64.us = icmp ne i32 %r.0542.us, 0 %or.cond.us = or i1 %cmp64.us, %tobool63.us br i1 %or.cond.us, label %if.then65.us, label %for.inc210.us if.then65.us: ; preds = %for.body.us - %cmp66.us = icmp eq i32 %r.0536.us, 0 + %cmp66.us = icmp eq i32 %r.0542.us, 0 br i1 %cmp66.us, label %cond.true72.us, label %for.body134.us.preheader cond.true72.us: ; preds = %if.then65.us @@ -308,9 +309,9 @@ for.body134.us.preheader: ; preds = %cond.true72.us, %if br label %for.body134.us for.body134.us: ; preds = %for.body134.us.preheader, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit331.us - %i.0532.us = phi i32 [ %inc193.us, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit331.us ], [ 0, %for.body134.us.preheader ] - %addedLemmas.2531.us = phi i32 [ %addedLemmas.6.us, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit331.us ], [ %addedLemmas.0535.us, %for.body134.us.preheader ] - invoke void @_ZN4cvc58internal6theory11quantifiers15FirstOrderModel21getAssertedQuantifierEjb(ptr nonnull sret(%"class.cvc5::internal::NodeTemplate") align 8 %q, ptr noundef nonnull align 8 dereferenceable(656) %call59, i32 noundef %i.0532.us, i1 noundef zeroext true) + %i.0538.us = phi i32 [ %inc193.us, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit331.us ], [ 0, %for.body134.us.preheader ] + %addedLemmas.2537.us = phi i32 [ %addedLemmas.6.us, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit331.us ], [ %addedLemmas.0541.us, %for.body134.us.preheader ] + invoke void @_ZN4cvc58internal6theory11quantifiers15FirstOrderModel21getAssertedQuantifierEjb(ptr nonnull sret(%"class.cvc5::internal::NodeTemplate") align 8 %q, ptr noundef nonnull align 8 dereferenceable(656) %call59, i32 noundef %i.0538.us, i1 noundef zeroext true) to label %invoke.cont135.us unwind label %lpad69.loopexit.split.us invoke.cont135.us: ; preds = %for.body134.us @@ -425,12 +426,12 @@ if.then13.i.i288.us: ; preds = %if.then.i.i282.us to label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit.us unwind label %terminate.lpad.i.split.us _ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit.us: ; preds = %if.then13.i.i288.us, %if.then.i.i282.us, %cleanup.done159.us - %.pre549 = load ptr, ptr %q, align 8 + %.pre555 = load ptr, ptr %q, align 8 br i1 %23, label %if.then167.us, label %cleanup.us if.then167.us: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit.us - store ptr %.pre549, ptr %agg.tmp168, align 8 - %bf.load.i.i289.us = load i64, ptr %.pre549, align 8 + store ptr %.pre555, ptr %agg.tmp168, align 8 + %bf.load.i.i289.us = load i64, ptr %.pre555, align 8 %bf.lshr.i.i290.us = lshr i64 %bf.load.i.i289.us, 40 %26 = trunc nuw nsw i64 %bf.lshr.i.i290.us to i32 %bf.cast.i.i291.us = and i32 %26, 1048575 @@ -443,8 +444,8 @@ if.else.i.i293.us: ; preds = %if.then167.us if.then13.i.i295.us: ; preds = %if.else.i.i293.us %bf.set23.i.i296.us = or i64 %bf.load.i.i289.us, 1152920405095219200 - store i64 %bf.set23.i.i296.us, ptr %.pre549, align 8 - invoke void @_ZN4cvc58internal4expr9NodeValue20markRefCountMaxedOutEv(ptr noundef nonnull align 8 dereferenceable(16) %.pre549) + store i64 %bf.set23.i.i296.us, ptr %.pre555, align 8 + invoke void @_ZN4cvc58internal4expr9NodeValue20markRefCountMaxedOutEv(ptr noundef nonnull align 8 dereferenceable(16) %.pre555) to label %invoke.cont169.us unwind label %lpad136.split.us if.then.i.i297.us: ; preds = %if.then167.us @@ -452,15 +453,15 @@ if.then.i.i297.us: ; preds = %if.then167.us %bf.shl.i.i299.us = and i64 %bf.value.i.i298.us, 1152920405095219200 %bf.clear7.i.i300.us = and i64 %bf.load.i.i289.us, -1152920405095219201 %bf.set.i.i301.us = or disjoint i64 %bf.shl.i.i299.us, %bf.clear7.i.i300.us - store i64 %bf.set.i.i301.us, ptr %.pre549, align 8 + store i64 %bf.set.i.i301.us, ptr %.pre555, align 8 br label %invoke.cont169.us invoke.cont169.us: ; preds = %if.then.i.i297.us, %if.then13.i.i295.us, %if.else.i.i293.us - %call174.us = invoke noundef zeroext i1 @_ZN4cvc58internal6theory11quantifiers16InstStrategyEnum7processENS0_12NodeTemplateILb1EEEbb(ptr noundef nonnull align 8 dereferenceable(60) %this, ptr noundef nonnull %agg.tmp168, i1 noundef zeroext %fullEffort.0, i1 noundef zeroext %cmp66.us) + %call174.us = invoke noundef zeroext i1 @_ZN4cvc58internal6theory11quantifiers16InstStrategyEnum7processENS0_12NodeTemplateILb1EEEbb(ptr noundef nonnull align 8 dereferenceable(60) %this, ptr noundef nonnull %agg.tmp168, i1 noundef zeroext %fullEffort.0526, i1 noundef zeroext %cmp66.us) to label %invoke.cont173.us unwind label %lpad172.split.us invoke.cont173.us: ; preds = %invoke.cont169.us - %bf.load.i.i304.us = load i64, ptr %.pre549, align 8 + %bf.load.i.i304.us = load i64, ptr %.pre555, align 8 %27 = and i64 %bf.load.i.i304.us, 1152920405095219200 %cmp.not.i.i305.us = icmp eq i64 %27, 1152920405095219200 br i1 %cmp.not.i.i305.us, label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit314.us, label %if.then.i.i306.us @@ -470,12 +471,12 @@ if.then.i.i306.us: ; preds = %invoke.cont173.us %bf.shl.i.i308.us = and i64 %bf.value.i.i307.us, 1152920405095219200 %bf.clear7.i.i309.us = and i64 %bf.load.i.i304.us, -1152920405095219201 %bf.set.i.i310.us = or disjoint i64 %bf.shl.i.i308.us, %bf.clear7.i.i309.us - store i64 %bf.set.i.i310.us, ptr %.pre549, align 8 + store i64 %bf.set.i.i310.us, ptr %.pre555, align 8 %cmp12.i.i311.us = icmp eq i64 %bf.shl.i.i308.us, 0 br i1 %cmp12.i.i311.us, label %if.then13.i.i312.us, label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit314.us if.then13.i.i312.us: ; preds = %if.then.i.i306.us - invoke void @_ZN4cvc58internal4expr9NodeValue15markForDeletionEv(ptr noundef nonnull align 8 dereferenceable(16) %.pre549) + invoke void @_ZN4cvc58internal4expr9NodeValue15markForDeletionEv(ptr noundef nonnull align 8 dereferenceable(16) %.pre555) to label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit314.us unwind label %terminate.lpad.i313.split.us _ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit314.us: ; preds = %if.then13.i.i312.us, %if.then.i.i306.us, %invoke.cont173.us @@ -549,11 +550,11 @@ invoke.cont182.us: ; preds = %if.then.i319.us, %l br label %if.end184.us if.end184.us: ; preds = %invoke.cont182.us, %invoke.cont177.us - %inc.us = add i32 %addedLemmas.2531.us, 1 + %inc.us = add i32 %addedLemmas.2537.us, 1 br label %if.end185.us if.end185.us: ; preds = %if.end184.us, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit314.us - %addedLemmas.5.us = phi i32 [ %inc.us, %if.end184.us ], [ %addedLemmas.2531.us, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit314.us ] + %addedLemmas.5.us = phi i32 [ %inc.us, %if.end184.us ], [ %addedLemmas.2537.us, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit314.us ] %34 = load ptr, ptr %d_qstate186, align 8 %vtable.us = load ptr, ptr %34, align 8 %vfn.us = getelementptr inbounds nuw i8, ptr %vtable.us, i64 72 @@ -567,8 +568,8 @@ invoke.cont187.us: ; preds = %if.end185.us br label %cleanup.us cleanup.us: ; preds = %invoke.cont187.us, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit.us - %36 = phi ptr [ %.pre549, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit.us ], [ %.pre, %invoke.cont187.us ] - %addedLemmas.6.us = phi i32 [ %addedLemmas.2531.us, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit.us ], [ %addedLemmas.5.us, %invoke.cont187.us ] + %36 = phi ptr [ %.pre555, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit.us ], [ %.pre, %invoke.cont187.us ] + %addedLemmas.6.us = phi i32 [ %addedLemmas.2537.us, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit.us ], [ %addedLemmas.5.us, %invoke.cont187.us ] %cleanup.dest.slot.0.us = phi i1 [ true, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit.us ], [ %not.call188.us, %invoke.cont187.us ] %bf.load.i.i321.us = load i64, ptr %36, align 8 %37 = and i64 %bf.load.i.i321.us, 1152920405095219200 @@ -589,10 +590,10 @@ if.then13.i.i329.us: ; preds = %if.then.i.i323.us to label %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit331.us unwind label %terminate.lpad.i330.split.us _ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit331.us: ; preds = %if.then13.i.i329.us, %if.then.i.i323.us, %cleanup.us - %inc193.us = add nuw i32 %i.0532.us, 1 + %inc193.us = add nuw i32 %i.0538.us, 1 %cmp133.us = icmp ult i32 %inc193.us, %conv61 - %or.cond545 = and i1 %cleanup.dest.slot.0.us, %cmp133.us - br i1 %or.cond545, label %for.body134.us, label %for.end.us, !llvm.loop !6 + %or.cond551 = and i1 %cleanup.dest.slot.0.us, %cmp133.us + br i1 %or.cond551, label %for.body134.us, label %for.end.us, !llvm.loop !6 for.end.us: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit331.us %38 = load ptr, ptr %d_qstate186, align 8 @@ -622,9 +623,9 @@ invoke.cont202.us: ; preds = %land.lhs.true201.us br i1 %tobool206.us, label %if.end282, label %for.inc210.us for.inc210.us: ; preds = %invoke.cont202.us, %lor.lhs.false199.us, %for.body.us - %addedLemmas.7.us = phi i32 [ 0, %lor.lhs.false199.us ], [ %addedLemmas.6.us, %invoke.cont202.us ], [ %addedLemmas.0535.us, %for.body.us ] - %inc211.us = add nuw nsw i32 %r.0536.us, 1 - %exitcond.not = icmp eq i32 %r.0536.us, %cond58 + %addedLemmas.7.us = phi i32 [ 0, %lor.lhs.false199.us ], [ %addedLemmas.6.us, %invoke.cont202.us ], [ %addedLemmas.0541.us, %for.body.us ] + %inc211.us = add nuw nsw i32 %r.0542.us, 1 + %exitcond.not = icmp eq i32 %r.0542.us, %spec.select br i1 %exitcond.not, label %if.end282, label %for.body.us, !llvm.loop !7 lpad69.loopexit.split-lp.split.us: ; preds = %land.lhs.true201.us, %for.end.us, %cond.true72.us @@ -680,15 +681,15 @@ terminate.lpad.i330.split.us: ; preds = %if.then13.i.i329.us unreachable for.body: ; preds = %for.body.lr.ph, %for.body.backedge - %r.0536 = phi i32 [ %r.0536.be, %for.body.backedge ], [ %cond53, %for.body.lr.ph ] + %r.0542 = phi i32 [ %r.0542.be, %for.body.backedge ], [ %cond53, %for.body.lr.ph ] %52 = load ptr, ptr %d_rd, align 8 %tobool63 = icmp ne ptr %52, null - %cmp64 = icmp ne i32 %r.0536, 0 + %cmp64 = icmp ne i32 %r.0542, 0 %or.cond = or i1 %cmp64, %tobool63 br i1 %or.cond, label %if.then65, label %for.inc210 if.then65: ; preds = %for.body - %cmp66 = icmp eq i32 %r.0536, 0 + %cmp66 = icmp eq i32 %r.0542, 0 br i1 %cmp66, label %cond.true72, label %if.end131 cond.true72: ; preds = %if.then65 @@ -719,17 +720,17 @@ ehcleanup192: ; preds = %lpad172.split.us, % br label %eh.resume invoke.cont197: ; preds = %if.end131 - %inc211 = add nuw nsw i32 %r.0536, 1 - %exitcond548.not = icmp eq i32 %r.0536, %cond58 - %or.cond552 = select i1 %call198, i1 true, i1 %exitcond548.not - br i1 %or.cond552, label %if.end282, label %for.body.backedge + %inc211 = add nuw nsw i32 %r.0542, 1 + %exitcond554.not = icmp eq i32 %r.0542, %spec.select + %or.cond558 = select i1 %call198, i1 true, i1 %exitcond554.not + br i1 %or.cond558, label %if.end282, label %for.body.backedge for.inc210: ; preds = %for.body - %exitcond548.not.old = icmp eq i32 %r.0536, %cond58 - br i1 %exitcond548.not.old, label %if.end282, label %for.body.backedge + %exitcond554.not.old = icmp eq i32 %r.0542, %spec.select + br i1 %exitcond554.not.old, label %if.end282, label %for.body.backedge for.body.backedge: ; preds = %for.inc210, %invoke.cont197 - %r.0536.be = phi i32 [ 1, %for.inc210 ], [ %inc211, %invoke.cont197 ] + %r.0542.be = phi i32 [ 1, %for.inc210 ], [ %inc211, %invoke.cont197 ] br label %for.body, !llvm.loop !7 if.end282: ; preds = %invoke.cont197.us, %invoke.cont202.us, %for.inc210.us, %invoke.cont197, %for.inc210, %if.end49 diff --git a/bench/cvc5/optimized/sygus_simple_sym.cpp.ll b/bench/cvc5/optimized/sygus_simple_sym.cpp.ll index e1444ed8c31..b70bfec4ec1 100644 --- a/bench/cvc5/optimized/sygus_simple_sym.cpp.ll +++ b/bench/cvc5/optimized/sygus_simple_sym.cpp.ll @@ -5126,7 +5126,6 @@ if.end102: ; preds = %if.then13.i.i866, % br i1 %tobool, label %if.then103, label %if.end263 if.then103: ; preds = %if.then, %if.end102 - %ret.11428 = phi i8 [ %ret.1, %if.end102 ], [ 1, %if.then ] call void @_ZN4cvc58internal6theory9datatypes7ReqTrieC2Ev(ptr noundef nonnull align 8 dereferenceable(72) %rt) invoke void @_ZNK4cvc58internal12NodeTemplateILb1EE7getTypeEb(ptr nonnull sret(%"class.cvc5::internal::TypeNode") align 8 %agg.tmp104, ptr noundef nonnull align 8 dereferenceable(8) %c, i1 noundef zeroext false) to label %invoke.cont106 unwind label %lpad105 @@ -5668,7 +5667,7 @@ terminate.lpad.i1033: ; preds = %if.then13.i.i1032 unreachable _ZN4cvc58internal8TypeNodeD2Ev.exit1034: ; preds = %invoke.cont206, %if.then.i.i1026, %if.then13.i.i1032 - %spec.select1430 = select i1 %call207, i8 0, i8 %ret.11428 + %not.call207 = xor i1 %call207, true br label %if.end258 lpad205: ; preds = %invoke.cont204 @@ -5678,7 +5677,7 @@ lpad205: ; preds = %invoke.cont204 br label %ehcleanup259 if.end258: ; preds = %_ZN4cvc58internal8TypeNodeD2Ev.exit1034, %invoke.cont199 - %ret.4 = phi i8 [ %ret.11428, %invoke.cont199 ], [ %spec.select1430, %_ZN4cvc58internal8TypeNodeD2Ev.exit1034 ] + %ret.4 = phi i1 [ true, %invoke.cont199 ], [ %not.call207, %_ZN4cvc58internal8TypeNodeD2Ev.exit1034 ] %106 = load ptr, ptr %one_c, align 8 %bf.load.i.i1321 = load i64, ptr %106, align 8 %107 = and i64 %bf.load.i.i1321, 1152920405095219200 @@ -5761,7 +5760,6 @@ terminate.lpad.i1352: ; preds = %if.then13.i.i1351 _ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit1353: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit1342, %if.then.i.i1345, %if.then13.i.i1351 call void @_ZN4cvc58internal6theory9datatypes7ReqTrieD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %rt) #17 - %.pre = trunc nuw i8 %ret.4 to i1 br label %if.end263 ehcleanup259: ; preds = %lpad205, %lpad188, %lpad174, %lpad125 @@ -5785,7 +5783,7 @@ ehcleanup262: ; preds = %ehcleanup261, %lpad br label %eh.resume if.end263: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit1353, %if.end102 - %tobool264.pre-phi = phi i1 [ %.pre, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit1353 ], [ false, %if.end102 ] + %tobool264.pre-phi = phi i1 [ %ret.4, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit1353 ], [ false, %if.end102 ] ret i1 %tobool264.pre-phi eh.resume: ; preds = %ehcleanup262, %ehcleanup, %lpad57, %lpad14, %lpad diff --git a/bench/delta-rs/optimized/11w0at10aiwuq3yr.ll b/bench/delta-rs/optimized/11w0at10aiwuq3yr.ll index c00b7dd2b2b..5d4b48a62b9 100644 --- a/bench/delta-rs/optimized/11w0at10aiwuq3yr.ll +++ b/bench/delta-rs/optimized/11w0at10aiwuq3yr.ll @@ -106612,7 +106612,7 @@ _ZN14deltalake_core7storage9factories17h058b76954b9f05c7E.exit: ; preds = %"_ZN3 br i1 %.not, label %"_ZN4core3ptr168drop_in_place$LT$core..option..Option$LT$dashmap..mapref..one..Ref$LT$url..Url$C$alloc..sync..Arc$LT$dyn$u20$deltalake_core..storage..ObjectStoreFactory$GT$$GT$$GT$$GT$17h97279dec2bac242bE.exit", label %118 .body: ; preds = %278, %281, %.thread282, %204, %116, %268, %240 - %.7 = phi i8 [ %.0104, %268 ], [ 1, %240 ], [ 1, %116 ], [ 1, %204 ], [ 0, %.thread282 ], [ %.0104, %281 ], [ %.0104, %278 ] + %.7 = phi i8 [ %.0104, %268 ], [ 1, %240 ], [ 1, %116 ], [ 1, %204 ], [ 0, %.thread282 ], [ 1, %281 ], [ 1, %278 ] %.pn126 = phi { ptr, i32 } [ %258, %268 ], [ %241, %240 ], [ %117, %116 ], [ %205, %204 ], [ %270, %.thread282 ], [ %258, %281 ], [ %258, %278 ] %113 = atomicrmw sub ptr %112, i64 4 release, align 8, !noalias !26086 %114 = icmp eq i64 %113, 6 @@ -107223,7 +107223,7 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hfb4783fc25b01e0cE.exit.th br i1 %315, label %333, label %332 316: ; preds = %.noexc194, %322, %.noexc191, %312 - %.12 = phi i8 [ 0, %312 ], [ 0, %.noexc191 ], [ %.11287, %322 ], [ %.11287, %.noexc194 ] + %.12 = phi i8 [ 0, %312 ], [ 0, %.noexc191 ], [ 1, %322 ], [ 1, %.noexc194 ] %317 = landingpad { ptr, i32 } cleanup br label %314 @@ -107238,7 +107238,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hfb4783fc25b01e0cE.exit.th br label %318 318: ; preds = %.thread285, %294 - %.11287 = phi i8 [ 1, %.thread285 ], [ %.10, %294 ] %319 = getelementptr inbounds nuw i8, ptr %2, i64 8 %320 = load i64, ptr %319, align 8, !alias.scope !26240, !noalias !26253, !noundef !12 %321 = icmp eq i64 %320, 0 @@ -108338,7 +108337,7 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hfb4783fc25b01e0cE.exit221 to label %"_ZN4core3ptr60drop_in_place$LT$deltalake_core..storage..StorageOptions$GT$17h7ab1df7824d9fdbdE.exit251" unwind label %386 385: ; preds = %.thread, %386, %72 - %.2 = phi i8 [ 1, %386 ], [ %.1129355, %.thread ], [ %.1129, %72 ] + %.2 = phi i8 [ 1, %386 ], [ 1, %.thread ], [ %.1129, %72 ] %.pn156 = phi { ptr, i32 } [ %387, %386 ], [ %.pn154356, %.thread ], [ %.pn154, %72 ] invoke void @"_ZN4core3ptr29drop_in_place$LT$url..Url$GT$17hcd91649e58ba1c65E"(ptr noalias noundef nonnull align 8 dereferenceable(88) %3) #47 to label %396 unwind label %263 @@ -108463,7 +108462,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hfb4783fc25b01e0cE.exit221 .thread: ; preds = %85, %72 %.pn154356 = phi { ptr, i32 } [ %.pn154, %72 ], [ %86, %85 ] - %.1129355 = phi i8 [ %.1129, %72 ], [ 1, %85 ] invoke void @"_ZN4core3ptr60drop_in_place$LT$deltalake_core..storage..StorageOptions$GT$17h7ab1df7824d9fdbdE"(ptr noalias noundef nonnull align 8 dereferenceable(48) %4) #47 to label %385 unwind label %263 @@ -110046,7 +110044,7 @@ _ZN14deltalake_core7storage9factories17h058b76954b9f05c7E.exit.i: ; preds = %"_Z br i1 %.not.i, label %"_ZN4core3ptr168drop_in_place$LT$core..option..Option$LT$dashmap..mapref..one..Ref$LT$url..Url$C$alloc..sync..Arc$LT$dyn$u20$deltalake_core..storage..ObjectStoreFactory$GT$$GT$$GT$$GT$17h97279dec2bac242bE.exit.i", label %355 .body.i: ; preds = %895, %891, %.thread287.i, %881, %477, %441, %353 - %.7.i = phi i8 [ %.0104.lpad-body.i, %881 ], [ 1, %477 ], [ 1, %353 ], [ 1, %441 ], [ 0, %.thread287.i ], [ %.0104.lpad-body.i, %895 ], [ %.0104.lpad-body.i, %891 ] + %.7.i = phi i8 [ %.0104.lpad-body.i, %881 ], [ 1, %477 ], [ 1, %353 ], [ 1, %441 ], [ 0, %.thread287.i ], [ 1, %895 ], [ 1, %891 ] %.pn126.i = phi { ptr, i32 } [ %eh.lpad-body182.i, %881 ], [ %478, %477 ], [ %354, %353 ], [ %442, %441 ], [ %883, %.thread287.i ], [ %eh.lpad-body182.i, %895 ], [ %eh.lpad-body182.i, %891 ] %350 = atomicrmw sub ptr %349, i64 4 release, align 8, !noalias !26859 %351 = icmp eq i64 %350, 6 @@ -111476,7 +111474,7 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hfb4783fc25b01e0cE.exit221 to label %"_ZN4core3ptr110drop_in_place$LT$std..collections..hash..map..HashMap$LT$alloc..string..String$C$alloc..string..String$GT$$GT$17haf363ba8a503ae5eE.exit.i.i" unwind label %826, !noalias !26997 825: ; preds = %.thread.i.i, %826, %512 - %.2.i.i = phi i8 [ 1, %826 ], [ %.1129354.i.i, %.thread.i.i ], [ %.1129.i.i, %512 ] + %.2.i.i = phi i8 [ 1, %826 ], [ 1, %.thread.i.i ], [ %.1129.i.i, %512 ] %.pn156.i.i = phi { ptr, i32 } [ %827, %826 ], [ %.pn154355.i.i, %.thread.i.i ], [ %.pn154.i.i, %512 ] invoke void @"_ZN4core3ptr29drop_in_place$LT$url..Url$GT$17hcd91649e58ba1c65E"(ptr noalias noundef nonnull align 8 dereferenceable(88) %138) #47 to label %836 unwind label %703, !noalias !26997 @@ -111598,7 +111596,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hfb4783fc25b01e0cE.exit221 .thread.i.i: ; preds = %525, %512 %.pn154355.i.i = phi { ptr, i32 } [ %.pn154.i.i, %512 ], [ %526, %525 ] - %.1129354.i.i = phi i8 [ %.1129.i.i, %512 ], [ 1, %525 ] invoke void @"_ZN4core3ptr110drop_in_place$LT$std..collections..hash..map..HashMap$LT$alloc..string..String$C$alloc..string..String$GT$$GT$17haf363ba8a503ae5eE"(ptr noalias noundef nonnull align 8 dereferenceable(48) %137) #47 to label %825 unwind label %703, !noalias !26997 @@ -111796,7 +111793,7 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hfb4783fc25b01e0cE.exit221 br i1 %929, label %946, label %947 930: ; preds = %.noexc199.i, %936, %.noexc197.i, %926 - %.12.i = phi i8 [ 0, %926 ], [ 0, %.noexc197.i ], [ %.11292.i, %936 ], [ %.11292.i, %.noexc199.i ] + %.12.i = phi i8 [ 0, %926 ], [ 0, %.noexc197.i ], [ 1, %936 ], [ 1, %.noexc199.i ] %931 = landingpad { ptr, i32 } cleanup br label %928 @@ -111808,7 +111805,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hfb4783fc25b01e0cE.exit221 br label %932 932: ; preds = %.thread290.i, %908 - %.11292.i = phi i8 [ 1, %.thread290.i ], [ %.10.i, %908 ] %933 = getelementptr inbounds nuw i8, ptr %234, i64 8 %934 = load i64, ptr %933, align 8, !alias.scope !27291, !noalias !27302, !noundef !12 %935 = icmp eq i64 %934, 0 diff --git a/bench/delta-rs/optimized/3qkwqfk85qralejq.ll b/bench/delta-rs/optimized/3qkwqfk85qralejq.ll index a51514a53c1..07ea113879d 100644 --- a/bench/delta-rs/optimized/3qkwqfk85qralejq.ll +++ b/bench/delta-rs/optimized/3qkwqfk85qralejq.ll @@ -77114,151 +77114,111 @@ define hidden void @"_ZN5tokio4task8join_set16JoinSet$LT$T$GT$14poll_join_next17 store ptr %5, ptr %4, align 8, !noalias !8883 %24 = getelementptr inbounds nuw i8, ptr %11, i64 40 invoke void @"_ZN96_$LT$tokio..runtime..task..join..JoinHandle$LT$T$GT$$u20$as$u20$core..future..future..Future$GT$4poll17h07d94104f7717904E"(ptr noalias nocapture noundef nonnull sret({ [1 x i64], i64, [12 x i64] }) align 8 dereferenceable(112) %7, ptr noalias noundef nonnull align 8 dereferenceable(8) %24, ptr noalias noundef nonnull align 8 dereferenceable(8) %4) - to label %29 unwind label %27 + to label %27 unwind label %25 -"_ZN4core3ptr276drop_in_place$LT$tokio..util..idle_notified_set..EntryInOneOfTheLists$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$$GT$17hfba3a103a9a6ea40E.exit": ; preds = %55, %57, %61, %.thread21, %13 +"_ZN4core3ptr276drop_in_place$LT$tokio..util..idle_notified_set..EntryInOneOfTheLists$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$$GT$17hfba3a103a9a6ea40E.exit": ; preds = %.thread25, %52, %.thread36, %13 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) ret void -25: ; preds = %64, %62, %45, %27 - %.1 = phi i8 [ %.08, %27 ], [ %.2, %64 ], [ %.2, %62 ], [ %.2, %45 ] - %.pn14 = phi { ptr, i32 } [ %28, %27 ], [ %.pn, %64 ], [ %.pn, %62 ], [ %.pn, %45 ] - %26 = trunc nuw i8 %.1 to i1 - br i1 %26, label %66, label %65 - -27: ; preds = %18, %56 - %.08 = phi i8 [ %.3, %56 ], [ 1, %18 ] - %28 = landingpad { ptr, i32 } +25: ; preds = %18, %48 + %26 = landingpad { ptr, i32 } cleanup - br label %25 + br label %.thread -29: ; preds = %18 +27: ; preds = %18 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4), !noalias !8883 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5), !noalias !8883 - %30 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %31 = load i64, ptr %30, align 8, !range !38, !noundef !16 - %.not = icmp eq i64 %31, -9223372036854775788 - br i1 %.not, label %34, label %32 + %28 = getelementptr inbounds nuw i8, ptr %7, i64 8 + %29 = load i64, ptr %28, align 8, !range !38, !noundef !16 + %.not.not = icmp eq i64 %29, -9223372036854775788 + br i1 %.not.not, label %32, label %30 -32: ; preds = %29 +30: ; preds = %27 call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %6) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %6, ptr noundef nonnull align 8 dereferenceable(112) %7, i64 112, i1 false) - %33 = invoke noundef nonnull ptr @"_ZN5tokio4util17idle_notified_set29EntryInOneOfTheLists$LT$T$GT$6remove17h83e42606fc1ee714E"(ptr noundef nonnull %11, ptr noalias noundef nonnull align 8 dereferenceable(16) %19) - to label %40 unwind label %47 - -34: ; preds = %29 - %35 = load ptr, ptr %9, align 8, !nonnull !16, !align !365, !noundef !16 - %36 = getelementptr inbounds nuw i8, ptr %35, i64 16 - %37 = load ptr, ptr %36, align 8, !nonnull !16, !noundef !16 - %38 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %39 = load ptr, ptr %38, align 8, !noundef !16 - invoke void %37(ptr noundef %39) - to label %52 unwind label %50 - -.thread: ; preds = %40, %42 - %lpad.thr_comm = landingpad { ptr, i32 } - cleanup - br label %45 - -40: ; preds = %32 + %31 = invoke noundef nonnull ptr @"_ZN5tokio4util17idle_notified_set29EntryInOneOfTheLists$LT$T$GT$6remove17h83e42606fc1ee714E"(ptr noundef nonnull %11, ptr noalias noundef nonnull align 8 dereferenceable(16) %19) + to label %.noexc unwind label %45 + +32: ; preds = %27 + %33 = load ptr, ptr %9, align 8, !nonnull !16, !align !365, !noundef !16 + %34 = getelementptr inbounds nuw i8, ptr %33, i64 16 + %35 = load ptr, ptr %34, align 8, !nonnull !16, !noundef !16 + %36 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %37 = load ptr, ptr %36, align 8, !noundef !16 + invoke void %35(ptr noundef %37) + to label %40 unwind label %.thread26 + +.noexc: ; preds = %30 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %0, ptr noundef nonnull align 8 dereferenceable(112) %6, i64 112, i1 false) - %41 = invoke noundef zeroext i1 @_ZN5tokio7runtime4task5state5State21drop_join_handle_fast17h1721eeb79c95030bE(ptr noundef nonnull align 8 %33) - to label %.noexc unwind label %.thread + %38 = call noundef zeroext i1 @_ZN5tokio7runtime4task5state5State21drop_join_handle_fast17h1721eeb79c95030bE(ptr noundef nonnull align 8 %31) + br i1 %38, label %39, label %.thread36 -.noexc: ; preds = %40 - br i1 %41, label %42, label %"_ZN4core3ptr216drop_in_place$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$17h996cc847f855eeb9E.exit" - -42: ; preds = %.noexc - invoke void @_ZN5tokio7runtime4task3raw7RawTask21drop_join_handle_slow17ha4fc8de09d20bf2fE(ptr noundef nonnull %33) - to label %"_ZN4core3ptr216drop_in_place$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$17h996cc847f855eeb9E.exit" unwind label %.thread +39: ; preds = %.noexc + call void @_ZN5tokio7runtime4task3raw7RawTask21drop_join_handle_slow17ha4fc8de09d20bf2fE(ptr noundef nonnull %31) + br label %.thread36 -"_ZN4core3ptr216drop_in_place$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$17h996cc847f855eeb9E.exit": ; preds = %.noexc, %42 +.thread36: ; preds = %39, %.noexc call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %6) - br label %43 + call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %7) + br label %"_ZN4core3ptr276drop_in_place$LT$tokio..util..idle_notified_set..EntryInOneOfTheLists$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$$GT$17hfba3a103a9a6ea40E.exit" + +40: ; preds = %32 + %41 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 -9223372036854775787, ptr %41, align 8 + %42 = load i64, ptr %28, align 8, !range !38, !noundef !16 + %.not13 = icmp eq i64 %42, -9223372036854775788 + br i1 %.not13, label %.thread25, label %48 + +.thread26: ; preds = %32 + %43 = landingpad { ptr, i32 } + cleanup + %44 = load i64, ptr %28, align 8, !range !38, !noundef !16 + %.not1228 = icmp eq i64 %44, -9223372036854775788 + br i1 %.not1228, label %.thread, label %.thread37 -43: ; preds = %52, %"_ZN4core3ptr216drop_in_place$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$17h996cc847f855eeb9E.exit" - %.3 = phi i8 [ 0, %"_ZN4core3ptr216drop_in_place$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$17h996cc847f855eeb9E.exit" ], [ 1, %52 ] - %44 = load i64, ptr %30, align 8, !range !38, !noundef !16 - %.not13 = icmp eq i64 %44, -9223372036854775788 - %.pre = trunc nuw i8 %.3 to i1 - br i1 %.not13, label %55, label %54 - -45: ; preds = %.thread, %50, %47 - %.2 = phi i8 [ 0, %47 ], [ 1, %50 ], [ 0, %.thread ] - %.pn = phi { ptr, i32 } [ %lpad.thr_comm.split-lp, %47 ], [ %51, %50 ], [ %lpad.thr_comm, %.thread ] - %46 = load i64, ptr %30, align 8, !range !38, !noundef !16 - %.not12 = icmp eq i64 %46, -9223372036854775788 - br i1 %.not12, label %25, label %62 - -47: ; preds = %32 +45: ; preds = %30 %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr239drop_in_place$LT$core..result..Result$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$C$tokio..runtime..task..error..JoinError$GT$$GT$17h885f523d04c15bc5E"(ptr noalias noundef align 8 dereferenceable(112) %6) #40 - to label %45 unwind label %48 + to label %.critedge unwind label %46 -48: ; preds = %66, %64, %47 - %49 = landingpad { ptr, i32 } +46: ; preds = %.thread, %.thread37, %45 + %47 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #41 unreachable -50: ; preds = %34 - %51 = landingpad { ptr, i32 } - cleanup - br label %45 - -52: ; preds = %34 - %53 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 -9223372036854775787, ptr %53, align 8 - br label %43 - -54: ; preds = %43 - br i1 %.pre, label %56, label %.thread21 - -.thread21: ; preds = %54 - call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %7) - br label %"_ZN4core3ptr276drop_in_place$LT$tokio..util..idle_notified_set..EntryInOneOfTheLists$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$$GT$17hfba3a103a9a6ea40E.exit" - -55: ; preds = %43 - call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %7) - br i1 %.pre, label %57, label %"_ZN4core3ptr276drop_in_place$LT$tokio..util..idle_notified_set..EntryInOneOfTheLists$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$$GT$17hfba3a103a9a6ea40E.exit" - -56: ; preds = %54 +48: ; preds = %40 invoke fastcc void @"_ZN4core3ptr239drop_in_place$LT$core..result..Result$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$C$tokio..runtime..task..error..JoinError$GT$$GT$17h885f523d04c15bc5E"(ptr noalias noundef align 8 dereferenceable(112) %7) - to label %.thread19 unwind label %27 + to label %.thread25 unwind label %25 -.thread19: ; preds = %56 +.thread25: ; preds = %48, %40 call void @llvm.lifetime.end.p0(i64 112, ptr nonnull %7) - br label %57 - -57: ; preds = %.thread19, %55 call void @llvm.experimental.noalias.scope.decl(metadata !8887) call void @llvm.experimental.noalias.scope.decl(metadata !8890) call void @llvm.experimental.noalias.scope.decl(metadata !8893) - %58 = load ptr, ptr %8, align 8, !alias.scope !8896, !nonnull !16, !noundef !16 - %59 = atomicrmw sub ptr %58, i64 1 release, align 8, !noalias !8896 - %60 = icmp eq i64 %59, 1 - br i1 %60, label %61, label %"_ZN4core3ptr276drop_in_place$LT$tokio..util..idle_notified_set..EntryInOneOfTheLists$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$$GT$17hfba3a103a9a6ea40E.exit" + %49 = load ptr, ptr %8, align 8, !alias.scope !8896, !nonnull !16, !noundef !16 + %50 = atomicrmw sub ptr %49, i64 1 release, align 8, !noalias !8896 + %51 = icmp eq i64 %50, 1 + br i1 %51, label %52, label %"_ZN4core3ptr276drop_in_place$LT$tokio..util..idle_notified_set..EntryInOneOfTheLists$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$$GT$17hfba3a103a9a6ea40E.exit" -61: ; preds = %57 +52: ; preds = %.thread25 call void @_ZN4core4sync6atomic5fence17h58c21b3babc78cabE.llvm.4057250340930679409(i8 noundef 2), !noalias !8896 call void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h8f1dded62ca51e58E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %8) br label %"_ZN4core3ptr276drop_in_place$LT$tokio..util..idle_notified_set..EntryInOneOfTheLists$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$$GT$17hfba3a103a9a6ea40E.exit" -62: ; preds = %45 - %63 = trunc nuw i8 %.2 to i1 - br i1 %63, label %64, label %25 - -64: ; preds = %62 +.thread37: ; preds = %.thread26 invoke fastcc void @"_ZN4core3ptr239drop_in_place$LT$core..result..Result$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$C$tokio..runtime..task..error..JoinError$GT$$GT$17h885f523d04c15bc5E"(ptr noalias noundef align 8 dereferenceable(112) %7) #40 - to label %25 unwind label %48 + to label %.thread unwind label %46 -65: ; preds = %66, %25 - resume { ptr, i32 } %.pn14 +.critedge: ; preds = %45, %.thread + %.pn1419 = phi { ptr, i32 } [ %.pn1420, %.thread ], [ %lpad.thr_comm.split-lp, %45 ] + resume { ptr, i32 } %.pn1419 -66: ; preds = %25 +.thread: ; preds = %.thread26, %.thread37, %25 + %.pn1420 = phi { ptr, i32 } [ %43, %.thread37 ], [ %26, %25 ], [ %43, %.thread26 ] invoke void @"_ZN4core3ptr276drop_in_place$LT$tokio..util..idle_notified_set..EntryInOneOfTheLists$LT$tokio..runtime..task..join..JoinHandle$LT$$LP$usize$C$core..result..Result$LT$alloc..vec..Vec$LT$arrow_array..record_batch..RecordBatch$GT$$C$datafusion_common..error..DataFusionError$GT$$RP$$GT$$GT$$GT$17hfba3a103a9a6ea40E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %8) #40 - to label %65 unwind label %48 + to label %.critedge unwind label %46 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/diesel-rs/optimized/154vdacr98taww8b.ll b/bench/diesel-rs/optimized/154vdacr98taww8b.ll index 52d0406fb8c..029bd5e0e37 100644 --- a/bench/diesel-rs/optimized/154vdacr98taww8b.ll +++ b/bench/diesel-rs/optimized/154vdacr98taww8b.ll @@ -346,46 +346,44 @@ define hidden noundef zeroext i1 @_ZN4core4iter6traits8iterator8Iterator8try_fol br i1 %.0.i.i.i.i.i, label %.backedge, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split" 24: ; preds = %15 - %25 = icmp ne i32 %12, 0 - tail call void @llvm.assume(i1 %25) - %26 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %27 = getelementptr inbounds nuw i8, ptr %11, i64 8 - %.val6.i.i.i.i = load ptr, ptr %26, align 8, !alias.scope !99, !noalias !100, !nonnull !5, !align !101, !noundef !5 - %.val7.i.i.i.i = load ptr, ptr %27, align 8, !alias.scope !100, !noalias !99, !nonnull !5, !align !101, !noundef !5 + %25 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %26 = getelementptr inbounds nuw i8, ptr %11, i64 8 + %.val6.i.i.i.i = load ptr, ptr %25, align 8, !alias.scope !99, !noalias !100, !nonnull !5, !align !101, !noundef !5 + %.val7.i.i.i.i = load ptr, ptr %26, align 8, !alias.scope !100, !noalias !99, !nonnull !5, !align !101, !noundef !5 tail call void @llvm.experimental.noalias.scope.decl(metadata !102) tail call void @llvm.experimental.noalias.scope.decl(metadata !105) - %28 = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i, i64 24 - %29 = load i64, ptr %28, align 8, !range !107, !alias.scope !102, !noalias !108, !noundef !5 - %30 = icmp eq i64 %29, -9223372036854775807 - %31 = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i, i64 24 - %32 = load i64, ptr %31, align 8, !range !107, !alias.scope !105, !noalias !109, !noundef !5 - %33 = icmp eq i64 %32, -9223372036854775807 - br i1 %30, label %34, label %35 + %27 = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i, i64 24 + %28 = load i64, ptr %27, align 8, !range !107, !alias.scope !102, !noalias !108, !noundef !5 + %29 = icmp eq i64 %28, -9223372036854775807 + %30 = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i, i64 24 + %31 = load i64, ptr %30, align 8, !range !107, !alias.scope !105, !noalias !109, !noundef !5 + %32 = icmp eq i64 %31, -9223372036854775807 + br i1 %29, label %33, label %34 -34: ; preds = %24 - br i1 %33, label %39, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split" +33: ; preds = %24 + br i1 %32, label %38, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split" -35: ; preds = %24 - br i1 %33, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split", label %38 +34: ; preds = %24 + br i1 %32, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split", label %37 -36: ; preds = %38 +35: ; preds = %37 %.pn3.in.i11.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i, i64 32 %.pn3.i12.i.i.i.i.i.i = load ptr, ptr %.pn3.in.i11.i.i.i.i.i.i, align 8, !alias.scope !110, !noalias !109, !nonnull !5, !noundef !5 %.pn3.in.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i, i64 32 %.pn3.i.i.i.i.i.i.i = load ptr, ptr %.pn3.in.i.i.i.i.i.i.i, align 8, !alias.scope !113, !noalias !108, !nonnull !5, !noundef !5 %bcmp.i.i.i.i.i.i.i = tail call i32 @bcmp(ptr nonnull readonly align 1 %.pn3.i.i.i.i.i.i.i, ptr nonnull readonly align 1 %.pn3.i12.i.i.i.i.i.i, i64 %.pn1.i.i.i.i.i.i.i), !alias.scope !116, !noalias !120 - %37 = icmp eq i32 %bcmp.i.i.i.i.i.i.i, 0 - br i1 %37, label %39, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split" + %36 = icmp eq i32 %bcmp.i.i.i.i.i.i.i, 0 + br i1 %36, label %38, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split" -38: ; preds = %35 +37: ; preds = %34 %.pn1.in.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i, i64 40 %.pn1.i.i.i.i.i.i.i = load i64, ptr %.pn1.in.i.i.i.i.i.i.i, align 8, !alias.scope !113, !noalias !108, !noundef !5 %.pn1.in.i9.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i, i64 40 %.pn1.i10.i.i.i.i.i.i = load i64, ptr %.pn1.in.i9.i.i.i.i.i.i, align 8, !alias.scope !110, !noalias !109, !noundef !5 %.not.i.i.i.i.i.i.i = icmp eq i64 %.pn1.i.i.i.i.i.i.i, %.pn1.i10.i.i.i.i.i.i - br i1 %.not.i.i.i.i.i.i.i, label %36, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split" + br i1 %.not.i.i.i.i.i.i.i, label %35, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split" -39: ; preds = %36, %34 +38: ; preds = %35, %33 %.pn1.in.i15.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i, i64 16 %.pn1.i16.i.i.i.i.i.i = load i64, ptr %.pn1.in.i15.i.i.i.i.i.i, align 8, !alias.scope !121, !noalias !108, !noundef !5 %.pn1.in.i21.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i, i64 16 @@ -393,22 +391,22 @@ define hidden noundef zeroext i1 @_ZN4core4iter6traits8iterator8Iterator8try_fol %.not.i27.i.i.i.i.i.i = icmp eq i64 %.pn1.i16.i.i.i.i.i.i, %.pn1.i22.i.i.i.i.i.i br i1 %.not.i27.i.i.i.i.i.i, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit", label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split" -"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit": ; preds = %39 +"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit": ; preds = %38 %.pn3.in.i23.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i, i64 8 %.pn3.i24.i.i.i.i.i.i = load ptr, ptr %.pn3.in.i23.i.i.i.i.i.i, align 8, !alias.scope !124, !noalias !109, !nonnull !5, !noundef !5 %.pn3.in.i17.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i, i64 8 %.pn3.i18.i.i.i.i.i.i = load ptr, ptr %.pn3.in.i17.i.i.i.i.i.i, align 8, !alias.scope !121, !noalias !108, !nonnull !5, !noundef !5 %bcmp.i29.i.i.i.i.i.i = tail call i32 @bcmp(ptr nonnull readonly align 1 %.pn3.i18.i.i.i.i.i.i, ptr nonnull readonly align 1 %.pn3.i24.i.i.i.i.i.i, i64 %.pn1.i16.i.i.i.i.i.i), !alias.scope !127, !noalias !120 - %40 = icmp eq i32 %bcmp.i29.i.i.i.i.i.i, 0 - br i1 %40, label %.backedge, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split" + %39 = icmp eq i32 %bcmp.i29.i.i.i.i.i.i, 0 + br i1 %39, label %.backedge, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split" .backedge: ; preds = %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit", %16 %exitcond.not = icmp eq i64 %9, %4 br i1 %exitcond.not, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split", label %7 -"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split": ; preds = %16, %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit", %7, %35, %36, %34, %38, %39, %.backedge - %.lcssa50.sink = phi i64 [ %4, %.backedge ], [ %9, %39 ], [ %9, %38 ], [ %9, %34 ], [ %9, %36 ], [ %9, %35 ], [ %9, %7 ], [ %9, %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit" ], [ %9, %16 ] - %.lcssa.ph = phi i1 [ false, %.backedge ], [ true, %39 ], [ true, %38 ], [ true, %34 ], [ true, %36 ], [ true, %35 ], [ true, %7 ], [ true, %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit" ], [ true, %16 ] +"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread.sink.split": ; preds = %16, %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit", %7, %34, %35, %33, %37, %38, %.backedge + %.lcssa50.sink = phi i64 [ %4, %.backedge ], [ %9, %38 ], [ %9, %37 ], [ %9, %33 ], [ %9, %35 ], [ %9, %34 ], [ %9, %7 ], [ %9, %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit" ], [ %9, %16 ] + %.lcssa.ph = phi i1 [ false, %.backedge ], [ true, %38 ], [ true, %37 ], [ true, %33 ], [ true, %35 ], [ true, %34 ], [ true, %7 ], [ true, %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit" ], [ true, %16 ] store i64 %.lcssa50.sink, ptr %2, align 8, !alias.scope !73 br label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.thread" @@ -1265,46 +1263,44 @@ define hidden noundef zeroext i1 @"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice. br i1 %.0.i.i.i.i.i.i, label %.backedge.i, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit" 22: ; preds = %13 - %23 = icmp ne i32 %10, 0 - tail call void @llvm.assume(i1 %23) - %24 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %25 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %.val6.i.i.i.i.i = load ptr, ptr %24, align 8, !alias.scope !328, !noalias !329, !nonnull !5, !align !101, !noundef !5 - %.val7.i.i.i.i.i = load ptr, ptr %25, align 8, !alias.scope !332, !noalias !333, !nonnull !5, !align !101, !noundef !5 + %23 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %24 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %.val6.i.i.i.i.i = load ptr, ptr %23, align 8, !alias.scope !328, !noalias !329, !nonnull !5, !align !101, !noundef !5 + %.val7.i.i.i.i.i = load ptr, ptr %24, align 8, !alias.scope !332, !noalias !333, !nonnull !5, !align !101, !noundef !5 tail call void @llvm.experimental.noalias.scope.decl(metadata !334) tail call void @llvm.experimental.noalias.scope.decl(metadata !337) - %26 = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i.i, i64 24 - %27 = load i64, ptr %26, align 8, !range !107, !alias.scope !334, !noalias !339, !noundef !5 - %28 = icmp eq i64 %27, -9223372036854775807 - %29 = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i.i, i64 24 - %30 = load i64, ptr %29, align 8, !range !107, !alias.scope !337, !noalias !340, !noundef !5 - %31 = icmp eq i64 %30, -9223372036854775807 - br i1 %28, label %32, label %33 + %25 = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i.i, i64 24 + %26 = load i64, ptr %25, align 8, !range !107, !alias.scope !334, !noalias !339, !noundef !5 + %27 = icmp eq i64 %26, -9223372036854775807 + %28 = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i.i, i64 24 + %29 = load i64, ptr %28, align 8, !range !107, !alias.scope !337, !noalias !340, !noundef !5 + %30 = icmp eq i64 %29, -9223372036854775807 + br i1 %27, label %31, label %32 -32: ; preds = %22 - br i1 %31, label %37, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit" +31: ; preds = %22 + br i1 %30, label %36, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit" -33: ; preds = %22 - br i1 %31, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit", label %36 +32: ; preds = %22 + br i1 %30, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit", label %35 -34: ; preds = %36 +33: ; preds = %35 %.pn3.in.i11.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i.i, i64 32 %.pn3.i12.i.i.i.i.i.i.i = load ptr, ptr %.pn3.in.i11.i.i.i.i.i.i.i, align 8, !alias.scope !341, !noalias !340, !nonnull !5, !noundef !5 %.pn3.in.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i.i, i64 32 %.pn3.i.i.i.i.i.i.i.i = load ptr, ptr %.pn3.in.i.i.i.i.i.i.i.i, align 8, !alias.scope !344, !noalias !339, !nonnull !5, !noundef !5 %bcmp.i.i.i.i.i.i.i.i = tail call i32 @bcmp(ptr nonnull readonly align 1 %.pn3.i.i.i.i.i.i.i.i, ptr nonnull readonly align 1 %.pn3.i12.i.i.i.i.i.i.i, i64 %.pn1.i.i.i.i.i.i.i.i), !alias.scope !347, !noalias !351 - %35 = icmp eq i32 %bcmp.i.i.i.i.i.i.i.i, 0 - br i1 %35, label %37, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit" + %34 = icmp eq i32 %bcmp.i.i.i.i.i.i.i.i, 0 + br i1 %34, label %36, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit" -36: ; preds = %33 +35: ; preds = %32 %.pn1.in.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i.i, i64 40 %.pn1.i.i.i.i.i.i.i.i = load i64, ptr %.pn1.in.i.i.i.i.i.i.i.i, align 8, !alias.scope !344, !noalias !339, !noundef !5 %.pn1.in.i9.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i.i, i64 40 %.pn1.i10.i.i.i.i.i.i.i = load i64, ptr %.pn1.in.i9.i.i.i.i.i.i.i, align 8, !alias.scope !341, !noalias !340, !noundef !5 %.not.i.i.i.i.i.i.i.i = icmp eq i64 %.pn1.i.i.i.i.i.i.i.i, %.pn1.i10.i.i.i.i.i.i.i - br i1 %.not.i.i.i.i.i.i.i.i, label %34, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit" + br i1 %.not.i.i.i.i.i.i.i.i, label %33, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit" -37: ; preds = %34, %32 +36: ; preds = %33, %31 %.pn1.in.i15.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i.i, i64 16 %.pn1.i16.i.i.i.i.i.i.i = load i64, ptr %.pn1.in.i15.i.i.i.i.i.i.i, align 8, !alias.scope !352, !noalias !339, !noundef !5 %.pn1.in.i21.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i.i, i64 16 @@ -1312,21 +1308,21 @@ define hidden noundef zeroext i1 @"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice. %.not.i27.i.i.i.i.i.i.i = icmp eq i64 %.pn1.i16.i.i.i.i.i.i.i, %.pn1.i22.i.i.i.i.i.i.i br i1 %.not.i27.i.i.i.i.i.i.i, label %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.i", label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit" -"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.i": ; preds = %37 +"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.i": ; preds = %36 %.pn3.in.i23.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val7.i.i.i.i.i, i64 8 %.pn3.i24.i.i.i.i.i.i.i = load ptr, ptr %.pn3.in.i23.i.i.i.i.i.i.i, align 8, !alias.scope !355, !noalias !340, !nonnull !5, !noundef !5 %.pn3.in.i17.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %.val6.i.i.i.i.i, i64 8 %.pn3.i18.i.i.i.i.i.i.i = load ptr, ptr %.pn3.in.i17.i.i.i.i.i.i.i, align 8, !alias.scope !352, !noalias !339, !nonnull !5, !noundef !5 %bcmp.i29.i.i.i.i.i.i.i = tail call i32 @bcmp(ptr nonnull readonly align 1 %.pn3.i18.i.i.i.i.i.i.i, ptr nonnull readonly align 1 %.pn3.i24.i.i.i.i.i.i.i, i64 %.pn1.i16.i.i.i.i.i.i.i), !alias.scope !358, !noalias !351 - %38 = icmp eq i32 %bcmp.i29.i.i.i.i.i.i.i, 0 - br i1 %38, label %.backedge.i, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit" + %37 = icmp eq i32 %bcmp.i29.i.i.i.i.i.i.i, 0 + br i1 %37, label %.backedge.i, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit" .backedge.i: ; preds = %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.i", %14 %exitcond.not.i = icmp eq i64 %7, %1 br i1 %exitcond.not.i, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit", label %.lr.ph.i -"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit": ; preds = %.backedge.i, %14, %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.i", %.lr.ph.i, %33, %34, %32, %36, %37, %5, %4 - %.0 = phi i1 [ false, %4 ], [ true, %5 ], [ true, %.backedge.i ], [ false, %14 ], [ false, %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.i" ], [ false, %.lr.ph.i ], [ false, %33 ], [ false, %34 ], [ false, %32 ], [ false, %36 ], [ false, %37 ] +"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h3d2468f386e24dc5E.llvm.2440784533363613794.exit": ; preds = %.backedge.i, %14, %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.i", %.lr.ph.i, %32, %33, %31, %35, %36, %5, %4 + %.0 = phi i1 [ false, %4 ], [ true, %5 ], [ true, %.backedge.i ], [ false, %14 ], [ false, %"_ZN4core4iter6traits8iterator8Iterator3all5check28_$u7b$$u7b$closure$u7d$$u7d$17h9878aa96837342beE.exit.i" ], [ false, %.lr.ph.i ], [ false, %32 ], [ false, %33 ], [ false, %31 ], [ false, %35 ], [ false, %36 ] ret i1 %.0 } diff --git a/bench/diesel-rs/optimized/6mxppzo10xu8mhv.ll b/bench/diesel-rs/optimized/6mxppzo10xu8mhv.ll index f697b761f82..3c72cb925da 100644 --- a/bench/diesel-rs/optimized/6mxppzo10xu8mhv.ll +++ b/bench/diesel-rs/optimized/6mxppzo10xu8mhv.ll @@ -54,27 +54,27 @@ define void @"_ZN74_$LT$diesel_table_macro_syntax..TableDecl$u20$as$u20$syn..par cleanup br label %.thread -.loopexit.split-lp: ; preds = %38, %42, %43, %135 +.loopexit.split-lp: ; preds = %38, %42, %43, %136 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup br label %.thread 28: ; preds = %27 invoke void @"_ZN3syn4item7parsing66_$LT$impl$u20$syn..parse..Parse$u20$for$u20$syn..item..ItemUse$GT$5parse17h85b2e3fea84aa8ecE"(ptr nonnull sret({ i64, [18 x i64] }) align 8 %22, ptr nonnull align 8 %23) - to label %30 unwind label %.loopexit194 + to label %30 unwind label %.loopexit195 -.loopexit194: ; preds = %28, %32, %34, %37 - %lpad.loopexit196 = landingpad { ptr, i32 } +.loopexit195: ; preds = %28, %32, %34, %37 + %lpad.loopexit197 = landingpad { ptr, i32 } cleanup br label %29 -.loopexit.split-lp195: ; preds = %33 - %lpad.loopexit.split-lp197 = landingpad { ptr, i32 } +.loopexit.split-lp196: ; preds = %33 + %lpad.loopexit.split-lp198 = landingpad { ptr, i32 } cleanup br label %29 -29: ; preds = %.loopexit.split-lp195, %.loopexit194 - %lpad.phi198 = phi { ptr, i32 } [ %lpad.loopexit196, %.loopexit194 ], [ %lpad.loopexit.split-lp197, %.loopexit.split-lp195 ] +29: ; preds = %.loopexit.split-lp196, %.loopexit195 + %lpad.phi199 = phi { ptr, i32 } [ %lpad.loopexit197, %.loopexit195 ], [ %lpad.loopexit.split-lp198, %.loopexit.split-lp196 ] invoke void @"_ZN4core3ptr44drop_in_place$LT$syn..parse..ParseBuffer$GT$17hdce955f790c05645E"(ptr nonnull align 8 %23) #4 to label %.thread unwind label %126 @@ -85,15 +85,15 @@ define void @"_ZN74_$LT$diesel_table_macro_syntax..TableDecl$u20$as$u20$syn..par 32: ; preds = %30 invoke void @"_ZN4core3ptr87drop_in_place$LT$core..result..Result$LT$syn..item..ItemUse$C$syn..error..Error$GT$$GT$17h92a057fa54b41a9fE"(ptr nonnull align 8 %22) - to label %34 unwind label %.loopexit194 + to label %34 unwind label %.loopexit195 33: ; preds = %30 invoke void @"_ZN4core3ptr87drop_in_place$LT$core..result..Result$LT$syn..item..ItemUse$C$syn..error..Error$GT$$GT$17h92a057fa54b41a9fE"(ptr nonnull align 8 %22) - to label %42 unwind label %.loopexit.split-lp195 + to label %42 unwind label %.loopexit.split-lp196 34: ; preds = %32 invoke void @"_ZN3syn4item7parsing66_$LT$impl$u20$syn..parse..Parse$u20$for$u20$syn..item..ItemUse$GT$5parse17h85b2e3fea84aa8ecE"(ptr nonnull sret({ i64, [18 x i64] }) align 8 %21, ptr align 8 %1) - to label %35 unwind label %.loopexit194 + to label %35 unwind label %.loopexit195 35: ; preds = %34 %36 = load i64, ptr %21, align 8, !range !3, !noundef !4 @@ -105,7 +105,7 @@ define void @"_ZN74_$LT$diesel_table_macro_syntax..TableDecl$u20$as$u20$syn..par store i64 %36, ptr %20, align 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4.0..sroa_idx2, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.247.0..sroa_idx, i64 24, i1 false) invoke void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$4push17hacab200d8e89dafcE"(ptr nonnull align 8 %24, ptr nonnull align 8 %20) - to label %40 unwind label %.loopexit194 + to label %40 unwind label %.loopexit195 38: ; preds = %35 %39 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -118,7 +118,7 @@ define void @"_ZN74_$LT$diesel_table_macro_syntax..TableDecl$u20$as$u20$syn..par invoke void @"_ZN4core3ptr44drop_in_place$LT$syn..parse..ParseBuffer$GT$17hdce955f790c05645E"(ptr nonnull align 8 %23) to label %27 unwind label %.loopexit -41: ; preds = %135, %49, %38 +41: ; preds = %136, %49, %38 call void @"_ZN4core3ptr62drop_in_place$LT$alloc..vec..Vec$LT$syn..item..ItemUse$GT$$GT$17hcc74d761130ecf7eE"(ptr nonnull align 8 %24) br label %123 @@ -151,7 +151,7 @@ define void @"_ZN74_$LT$diesel_table_macro_syntax..TableDecl$u20$as$u20$syn..par %.1110 = phi i8 [ %.0109, %53 ], [ %.2111, %56 ] %.pn142 = phi { ptr, i32 } [ %54, %53 ], [ %.pn138.pn.pn, %56 ] %52 = trunc nuw i8 %.1110 to i1 - br i1 %52, label %136, label %137 + br i1 %52, label %137, label %138 53: ; preds = %122, %70, %48 %.0109 = phi i8 [ 0, %122 ], [ 1, %70 ], [ 1, %48 ] @@ -163,13 +163,13 @@ define void @"_ZN74_$LT$diesel_table_macro_syntax..TableDecl$u20$as$u20$syn..par invoke void @_ZN25diesel_table_macro_syntax23parse_table_with_schema17h6604c15ba41dd5e2E(ptr nonnull sret({ i64, [8 x i64] }) align 8 %14, ptr nonnull align 8 %17) to label %59 unwind label %57 -56: ; preds = %76, %.thread200, %57 - %.2111 = phi i8 [ %.2106192, %.thread200 ], [ 1, %57 ], [ %.1102, %76 ] - %.pn138.pn.pn = phi { ptr, i32 } [ %.pn138.pn193, %.thread200 ], [ %58, %57 ], [ %.pn138, %76 ] +56: ; preds = %76, %.thread190, %57 + %.2111 = phi i8 [ 1, %.thread190 ], [ 1, %57 ], [ %.1102, %76 ] + %.pn138.pn.pn = phi { ptr, i32 } [ %.pn138.pn194, %.thread190 ], [ %58, %57 ], [ %.pn138, %76 ] invoke void @"_ZN4core3ptr44drop_in_place$LT$syn..parse..ParseBuffer$GT$17hdce955f790c05645E"(ptr nonnull align 8 %17) #4 to label %51 unwind label %126 -57: ; preds = %133, %71, %63, %62, %61, %55 +57: ; preds = %134, %71, %63, %62, %61, %55 %58 = landingpad { ptr, i32 } cleanup br label %56 @@ -222,15 +222,15 @@ define void @"_ZN74_$LT$diesel_table_macro_syntax..TableDecl$u20$as$u20$syn..par to label %80 unwind label %78 .sink.split: ; preds = %64, %72 - %.sink201 = phi ptr [ %74, %72 ], [ %66, %64 ] + %.sink200 = phi ptr [ %74, %72 ], [ %66, %64 ] %69 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 8 dereferenceable(24) %.sink201, i64 24, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %69, ptr noundef nonnull align 8 dereferenceable(24) %.sink200, i64 24, i1 false) store i64 -9223372036854775808, ptr %0, align 8 br label %70 -70: ; preds = %.sink.split, %133 +70: ; preds = %.sink.split, %134 invoke void @"_ZN4core3ptr44drop_in_place$LT$syn..parse..ParseBuffer$GT$17hdce955f790c05645E"(ptr nonnull align 8 %17) - to label %135 unwind label %53 + to label %136 unwind label %53 71: ; preds = %62 invoke void @"_ZN3syn5ident7parsing66_$LT$impl$u20$syn..parse..Parse$u20$for$u20$proc_macro2..Ident$GT$5parse17hb4074eb879d2535cE"(ptr nonnull sret({ i64, [3 x i64] }) align 8 %12, ptr align 8 %1) @@ -250,7 +250,7 @@ define void @"_ZN74_$LT$diesel_table_macro_syntax..TableDecl$u20$as$u20$syn..par %.1102 = phi i8 [ %.0101, %78 ], [ %.2103, %81 ] %.pn138 = phi { ptr, i32 } [ %79, %78 ], [ %.pn135.pn, %81 ] %77 = trunc nuw i8 %.1102 to i1 - br i1 %77, label %134, label %56 + br i1 %77, label %135, label %56 78: ; preds = %121, %96, %68 %.0101 = phi i8 [ 0, %121 ], [ 1, %96 ], [ 1, %68 ] @@ -427,7 +427,7 @@ define void @"_ZN74_$LT$diesel_table_macro_syntax..TableDecl$u20$as$u20$syn..par store i64 -9223372036854775808, ptr %0, align 8 br label %128 -126: ; preds = %.thread, %136, %.thread200, %134, %.thread180, %.thread167, %110, %81, %56, %29 +126: ; preds = %.thread, %137, %.thread190, %135, %.thread180, %.thread167, %110, %81, %56, %29 %127 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #5 @@ -448,14 +448,14 @@ define void @"_ZN74_$LT$diesel_table_macro_syntax..TableDecl$u20$as$u20$syn..par 131: ; preds = %96 invoke void @"_ZN4core3ptr39drop_in_place$LT$proc_macro2..Ident$GT$17hd77a02f7128d44e3E"(ptr nonnull align 8 %15) - to label %133 unwind label %.thread189 + to label %134 unwind label %132 -.thread189: ; preds = %131 - %132 = landingpad { ptr, i32 } +132: ; preds = %131 + %133 = landingpad { ptr, i32 } cleanup - br label %.thread200 + br label %.thread190 -133: ; preds = %131 +134: ; preds = %131 invoke void @"_ZN4core3ptr67drop_in_place$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$17he1765364b70bc707E"(ptr nonnull align 8 %16) to label %70 unwind label %57 @@ -469,32 +469,31 @@ define void @"_ZN74_$LT$diesel_table_macro_syntax..TableDecl$u20$as$u20$syn..par invoke void @"_ZN4core3ptr86drop_in_place$LT$core..option..Option$LT$diesel_table_macro_syntax..PrimaryKey$GT$$GT$17h817316a4c1ff7760E"(ptr nonnull align 8 %10) #4 to label %81 unwind label %126 -134: ; preds = %76 +135: ; preds = %76 invoke void @"_ZN4core3ptr39drop_in_place$LT$proc_macro2..Ident$GT$17hd77a02f7128d44e3E"(ptr nonnull align 8 %15) #4 - to label %.thread200 unwind label %126 + to label %.thread190 unwind label %126 -.thread200: ; preds = %134, %.thread189 - %.pn138.pn193 = phi { ptr, i32 } [ %132, %.thread189 ], [ %.pn138, %134 ] - %.2106192 = phi i8 [ 1, %.thread189 ], [ %.1102, %134 ] +.thread190: ; preds = %132, %135 + %.pn138.pn194 = phi { ptr, i32 } [ %133, %132 ], [ %.pn138, %135 ] invoke void @"_ZN4core3ptr67drop_in_place$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$17he1765364b70bc707E"(ptr nonnull align 8 %16) #4 to label %56 unwind label %126 -135: ; preds = %70 +136: ; preds = %70 invoke void @"_ZN4core3ptr64drop_in_place$LT$alloc..vec..Vec$LT$syn..attr..Attribute$GT$$GT$17h78578bc7b7ee0514E"(ptr nonnull align 8 %19) to label %41 unwind label %.loopexit.split-lp -136: ; preds = %51 +137: ; preds = %51 invoke void @"_ZN4core3ptr64drop_in_place$LT$alloc..vec..Vec$LT$syn..attr..Attribute$GT$$GT$17h78578bc7b7ee0514E"(ptr nonnull align 8 %19) #4 to label %.thread unwind label %126 -137: ; preds = %51, %.thread +138: ; preds = %51, %.thread %.pn146150 = phi { ptr, i32 } [ %.pn146151, %.thread ], [ %.pn142, %51 ] resume { ptr, i32 } %.pn146150 -.thread: ; preds = %136, %.loopexit, %.loopexit.split-lp, %29 - %.pn146151 = phi { ptr, i32 } [ %lpad.phi198, %29 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %.pn142, %136 ] +.thread: ; preds = %.loopexit, %.loopexit.split-lp, %137, %29 + %.pn146151 = phi { ptr, i32 } [ %.pn142, %137 ], [ %lpad.phi199, %29 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] invoke void @"_ZN4core3ptr62drop_in_place$LT$alloc..vec..Vec$LT$syn..item..ItemUse$GT$$GT$17hcc74d761130ecf7eE"(ptr nonnull align 8 %24) #4 - to label %137 unwind label %126 + to label %138 unwind label %126 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/diesel-rs/optimized/ejac3nrysber2ti.ll b/bench/diesel-rs/optimized/ejac3nrysber2ti.ll index 9983fe81504..44e2384d7ad 100644 --- a/bench/diesel-rs/optimized/ejac3nrysber2ti.ll +++ b/bench/diesel-rs/optimized/ejac3nrysber2ti.ll @@ -387,7 +387,7 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17h158debfebab1b264E.llvm.5761680 %23 = load i64, ptr %10, align 8, !alias.scope !167, !noalias !169, !noundef !7 %24 = load i64, ptr %9, align 8, !alias.scope !167, !noalias !169, !noundef !7 %.not.not.i.i.i.i = icmp eq i64 %23, %24 - br i1 %.not.not.i.i.i.i, label %"_ZN4core3ptr144drop_in_place$LT$core..option..Option$LT$core..iter..adapters..cloned..Cloned$LT$syn..punctuated..Iter$LT$syn..path..PathSegment$GT$$GT$$GT$$GT$17h9f323ba51233ef57E.llvm.566609780180471337.exit.i", label %27 + br i1 %.not.not.i.i.i.i, label %.sink.split, label %27 .thread5: ; preds = %.noexc1 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %.sroa.9, ptr noundef nonnull align 8 dereferenceable(88) %.sroa.6.0..sroa_idx6.i, i64 88, i1 false), !noalias !127 @@ -411,14 +411,18 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17h158debfebab1b264E.llvm.5761680 %.sroa.0.0.copyload2 = load i64, ptr %8, align 8, !alias.scope !170, !noalias !171 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(88) %.sroa.9, ptr noundef nonnull align 8 dereferenceable(88) %.sroa.9.0..sroa_idx3, i64 88, i1 false), !alias.scope !170, !noalias !171 %29 = icmp eq i64 %.sroa.0.0.copyload2, -9223372036854775807 - br i1 %29, label %"_ZN4core3ptr144drop_in_place$LT$core..option..Option$LT$core..iter..adapters..cloned..Cloned$LT$syn..punctuated..Iter$LT$syn..path..PathSegment$GT$$GT$$GT$$GT$17h9f323ba51233ef57E.llvm.566609780180471337.exit.i", label %35 + br i1 %29, label %.sink.split, label %35 -"_ZN4core3ptr144drop_in_place$LT$core..option..Option$LT$core..iter..adapters..cloned..Cloned$LT$syn..punctuated..Iter$LT$syn..path..PathSegment$GT$$GT$$GT$$GT$17h9f323ba51233ef57E.llvm.566609780180471337.exit.i": ; preds = %27, %20, %22 +"_ZN4core3ptr144drop_in_place$LT$core..option..Option$LT$core..iter..adapters..cloned..Cloned$LT$syn..punctuated..Iter$LT$syn..path..PathSegment$GT$$GT$$GT$$GT$17h9f323ba51233ef57E.llvm.566609780180471337.exit.i": ; preds = %20 call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %.sroa.9) %30 = icmp eq i64 %21, 0 br i1 %30, label %"_ZN4core3ptr228drop_in_place$LT$core..iter..adapters..chain..Chain$LT$core..iter..adapters..cloned..Cloned$LT$syn..punctuated..Iter$LT$syn..path..PathSegment$GT$$GT$$C$core..array..iter..IntoIter$LT$syn..path..PathSegment$C$1_usize$GT$$GT$$GT$17h271a2640e5996d4cE.exit", label %31 -31: ; preds = %"_ZN4core3ptr144drop_in_place$LT$core..option..Option$LT$core..iter..adapters..cloned..Cloned$LT$syn..punctuated..Iter$LT$syn..path..PathSegment$GT$$GT$$GT$$GT$17h9f323ba51233ef57E.llvm.566609780180471337.exit.i" +.sink.split: ; preds = %27, %22 + call void @llvm.lifetime.end.p0(i64 88, ptr nonnull %.sroa.9) + br label %31 + +31: ; preds = %.sink.split, %"_ZN4core3ptr144drop_in_place$LT$core..option..Option$LT$core..iter..adapters..cloned..Cloned$LT$syn..punctuated..Iter$LT$syn..path..PathSegment$GT$$GT$$GT$$GT$17h9f323ba51233ef57E.llvm.566609780180471337.exit.i" %32 = call { ptr, i64 } @"_ZN4core5array4iter21IntoIter$LT$T$C$_$GT$12as_mut_slice17h41ada16ea521a985E.llvm.566609780180471337"(ptr noalias noundef nonnull align 8 dereferenceable(112) %8) %33 = extractvalue { ptr, i64 } %32, 0 %34 = extractvalue { ptr, i64 } %32, 1 diff --git a/bench/flatbuffers/optimized/idl_parser.cpp.ll b/bench/flatbuffers/optimized/idl_parser.cpp.ll index 81db7b67b78..b79326437a8 100644 --- a/bench/flatbuffers/optimized/idl_parser.cpp.ll +++ b/bench/flatbuffers/optimized/idl_parser.cpp.ll @@ -34960,9 +34960,9 @@ nrvo.unused124: ; preds = %invoke.cont116 land.lhs.true135: ; preds = %nrvo.unused124 %call.i95 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(ptr noundef nonnull align 8 dereferenceable(32) %functionname, ptr noundef nonnull @.str.146) #30 %cmp.i96 = icmp eq i32 %call.i95, 0 - br i1 %cmp.i96, label %if.end141.thread, label %land.lhs.true143 + br i1 %cmp.i96, label %if.then138, label %land.lhs.true143 -if.end141.thread: ; preds = %land.lhs.true135 +if.then138: ; preds = %land.lhs.true135 %mul139 = fmul double %28, 0x400921FB54442D18 %div140 = fdiv double %mul139, 1.800000e+02 br label %if.end234 @@ -35172,8 +35172,8 @@ ehcleanup233: ; preds = %ehcleanup232, %lpad call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp192) #30 br label %ehcleanup241 -if.end234: ; preds = %nrvo.unused124, %if.end141.thread, %if.then146, %if.then153, %if.then160, %if.then167, %if.then174, %if.then181 - %y.7155 = phi double [ %call182, %if.then181 ], [ %call175, %if.then174 ], [ %call168, %if.then167 ], [ %call161, %if.then160 ], [ %call154, %if.then153 ], [ %div140, %if.end141.thread ], [ %call147, %if.then146 ], [ %mul, %nrvo.unused124 ] +if.end234: ; preds = %if.then138, %nrvo.unused124, %if.then146, %if.then153, %if.then160, %if.then167, %if.then174, %if.then181 + %y.7155 = phi double [ %call182, %if.then181 ], [ %call175, %if.then174 ], [ %call168, %if.then167 ], [ %call161, %if.then160 ], [ %call154, %if.then153 ], [ %call147, %if.then146 ], [ %div140, %if.then138 ], [ %mul, %nrvo.unused124 ] invoke void @_ZN11flatbuffers13FloatToStringIdEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_i(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp235, double noundef %y.7155, i32 noundef 12) to label %invoke.cont236 unwind label %lpad5 diff --git a/bench/glslang/optimized/IntermTraverse.cpp.ll b/bench/glslang/optimized/IntermTraverse.cpp.ll index 700eaba3a6d..951f0e70347 100644 --- a/bench/glslang/optimized/IntermTraverse.cpp.ll +++ b/bench/glslang/optimized/IntermTraverse.cpp.ll @@ -290,7 +290,7 @@ define void @_ZN7glslang13TIntermBinary8traverseEPNS_16TIntermTraverserE(ptr nou %8 = getelementptr inbounds nuw i8, ptr %7, i64 32 %9 = load ptr, ptr %8, align 8 %10 = tail call noundef zeroext i1 %9(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef 0, ptr noundef nonnull %0) #7 - br i1 %10, label %.thread, label %.thread28 + br i1 %10, label %.thread, label %.thread33 .thread: ; preds = %2, %6 %11 = getelementptr inbounds nuw i8, ptr %1, i64 12 @@ -389,20 +389,20 @@ _ZN7glslang16TIntermTraverser14incrementDepthEP11TIntermNode.exit: ; preds = %22 %58 = getelementptr inbounds nuw i8, ptr %1, i64 9 %59 = load i8, ptr %58, align 1 %60 = trunc i8 %59 to i1 - br i1 %60, label %61, label %.critedge + br i1 %60, label %61, label %.thread28 61: ; preds = %57 %62 = load ptr, ptr %1, align 8 %63 = getelementptr inbounds nuw i8, ptr %62, i64 32 %64 = load ptr, ptr %63, align 8 %65 = tail call noundef zeroext i1 %64(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef 1, ptr noundef nonnull %0) #7 - br i1 %65, label %.critedge, label %86 + br i1 %65, label %.thread28, label %96 -.critedge: ; preds = %57, %61 +.thread28: ; preds = %57, %61 %66 = getelementptr inbounds nuw i8, ptr %0, i64 192 %67 = load ptr, ptr %66, align 8 %.not25 = icmp eq ptr %67, null - br i1 %.not25, label %94, label %.sink.split + br i1 %.not25, label %.thread35, label %.thread35.sink.split 68: ; preds = %_ZN7glslang16TIntermTraverser14incrementDepthEP11TIntermNode.exit %69 = getelementptr inbounds nuw i8, ptr %0, i64 192 @@ -421,58 +421,58 @@ _ZN7glslang16TIntermTraverser14incrementDepthEP11TIntermNode.exit: ; preds = %22 %76 = getelementptr inbounds nuw i8, ptr %1, i64 9 %77 = load i8, ptr %76, align 1 %78 = trunc i8 %77 to i1 - br i1 %78, label %79, label %.critedge37 + br i1 %78, label %79, label %.thread31 79: ; preds = %75 %80 = load ptr, ptr %1, align 8 %81 = getelementptr inbounds nuw i8, ptr %80, i64 32 %82 = load ptr, ptr %81, align 8 %83 = tail call noundef zeroext i1 %82(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef 1, ptr noundef nonnull %0) #7 - br i1 %83, label %.critedge37, label %86 + br i1 %83, label %.thread31, label %96 -.critedge37: ; preds = %75, %79 +.thread31: ; preds = %75, %79 %84 = getelementptr inbounds nuw i8, ptr %0, i64 200 %85 = load ptr, ptr %84, align 8 %.not23 = icmp eq ptr %85, null - br i1 %.not23, label %94, label %.sink.split - -86: ; preds = %61, %79 - %87 = load i32, ptr %11, align 4 - %88 = add nsw i32 %87, -1 - store i32 %88, ptr %11, align 4 - %89 = load ptr, ptr %18, align 8 - %90 = getelementptr inbounds i8, ptr %89, i64 -8 - store ptr %90, ptr %18, align 8 - br label %.thread28 - -.sink.split: ; preds = %.critedge37, %.critedge - %.sink35 = phi ptr [ %67, %.critedge ], [ %85, %.critedge37 ] - %91 = load ptr, ptr %.sink35, align 8 - %92 = getelementptr inbounds nuw i8, ptr %91, i64 16 - %93 = load ptr, ptr %92, align 8 - tail call void %93(ptr noundef nonnull align 8 dereferenceable(32) %.sink35, ptr noundef nonnull %1) #7 - br label %94 - -94: ; preds = %.sink.split, %.critedge37, %.critedge - %95 = load i32, ptr %11, align 4 - %96 = add nsw i32 %95, -1 - store i32 %96, ptr %11, align 4 - %97 = load ptr, ptr %18, align 8 - %98 = getelementptr inbounds i8, ptr %97, i64 -8 - store ptr %98, ptr %18, align 8 - %99 = getelementptr inbounds nuw i8, ptr %1, i64 10 - %100 = load i8, ptr %99, align 2 - %101 = trunc i8 %100 to i1 - br i1 %101, label %102, label %.thread28 - -102: ; preds = %94 - %103 = load ptr, ptr %1, align 8 - %104 = getelementptr inbounds nuw i8, ptr %103, i64 32 - %105 = load ptr, ptr %104, align 8 - %106 = tail call noundef zeroext i1 %105(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef 2, ptr noundef nonnull %0) #7 - br label %.thread28 - -.thread28: ; preds = %6, %86, %102, %94 + br i1 %.not23, label %.thread35, label %.thread35.sink.split + +.thread35.sink.split: ; preds = %.thread31, %.thread28 + %.sink40 = phi ptr [ %67, %.thread28 ], [ %85, %.thread31 ] + %86 = load ptr, ptr %.sink40, align 8 + %87 = getelementptr inbounds nuw i8, ptr %86, i64 16 + %88 = load ptr, ptr %87, align 8 + tail call void %88(ptr noundef nonnull align 8 dereferenceable(32) %.sink40, ptr noundef nonnull %1) #7 + br label %.thread35 + +.thread35: ; preds = %.thread35.sink.split, %.thread28, %.thread31 + %89 = load i32, ptr %11, align 4 + %90 = add nsw i32 %89, -1 + store i32 %90, ptr %11, align 4 + %91 = load ptr, ptr %18, align 8 + %92 = getelementptr inbounds i8, ptr %91, i64 -8 + store ptr %92, ptr %18, align 8 + %93 = getelementptr inbounds nuw i8, ptr %1, i64 10 + %94 = load i8, ptr %93, align 2 + %95 = trunc i8 %94 to i1 + br i1 %95, label %101, label %.thread33 + +96: ; preds = %61, %79 + %97 = load i32, ptr %11, align 4 + %98 = add nsw i32 %97, -1 + store i32 %98, ptr %11, align 4 + %99 = load ptr, ptr %18, align 8 + %100 = getelementptr inbounds i8, ptr %99, i64 -8 + store ptr %100, ptr %18, align 8 + br label %.thread33 + +101: ; preds = %.thread35 + %102 = load ptr, ptr %1, align 8 + %103 = getelementptr inbounds nuw i8, ptr %102, i64 32 + %104 = load ptr, ptr %103, align 8 + %105 = tail call noundef zeroext i1 %104(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef 2, ptr noundef nonnull %0) #7 + br label %.thread33 + +.thread33: ; preds = %96, %6, %101, %.thread35 ret void } @@ -693,7 +693,7 @@ _ZN7glslang16TIntermTraverser14incrementDepthEP11TIntermNode.exit: ; preds = %22 %53 = getelementptr inbounds nuw i8, ptr %0, i64 200 %54 = load ptr, ptr %53, align 8, !noalias !9 %.not3035 = icmp eq ptr %52, %54 - br i1 %.not3035, label %.loopexit, label %.lr.ph38 + br i1 %.not3035, label %.thread43, label %.lr.ph38 .lr.ph38: ; preds = %50 %55 = getelementptr inbounds nuw i8, ptr %1, i64 9 @@ -743,7 +743,7 @@ _ZN7glslang16TIntermTraverser14incrementDepthEP11TIntermNode.exit: ; preds = %22 %81 = getelementptr inbounds nuw i8, ptr %0, i64 208 %82 = load ptr, ptr %81, align 8 %.not2932 = icmp eq ptr %80, %82 - br i1 %.not2932, label %.loopexit, label %.lr.ph + br i1 %.not2932, label %.thread43, label %.lr.ph .lr.ph: ; preds = %78 %83 = getelementptr inbounds nuw i8, ptr %1, i64 9 @@ -788,31 +788,40 @@ _ZN7glslang16TIntermTraverser14incrementDepthEP11TIntermNode.exit: ; preds = %22 %.not29 = icmp eq ptr %105, %106 br i1 %.not29, label %.loopexit, label %84, !llvm.loop !13 -.loopexit: ; preds = %104, %76, %50, %78 - %.4 = phi i8 [ 1, %50 ], [ 1, %78 ], [ %.3, %76 ], [ %.6, %104 ] +.thread43: ; preds = %50, %78 %107 = load i32, ptr %11, align 4 %108 = add nsw i32 %107, -1 store i32 %108, ptr %11, align 4 %109 = load ptr, ptr %18, align 8 %110 = getelementptr inbounds i8, ptr %109, i64 -8 store ptr %110, ptr %18, align 8 - %111 = trunc nuw i8 %.4 to i1 - br i1 %111, label %112, label %.thread41 - -112: ; preds = %.loopexit - %113 = getelementptr inbounds nuw i8, ptr %1, i64 10 - %114 = load i8, ptr %113, align 2 - %115 = trunc i8 %114 to i1 + br label %116 + +.loopexit: ; preds = %104, %76 + %.4 = phi i8 [ %.3, %76 ], [ %.6, %104 ] + %111 = load i32, ptr %11, align 4 + %112 = add nsw i32 %111, -1 + store i32 %112, ptr %11, align 4 + %113 = load ptr, ptr %18, align 8 + %114 = getelementptr inbounds i8, ptr %113, i64 -8 + store ptr %114, ptr %18, align 8 + %115 = trunc nuw i8 %.4 to i1 br i1 %115, label %116, label %.thread41 -116: ; preds = %112 - %117 = load ptr, ptr %1, align 8 - %118 = getelementptr inbounds nuw i8, ptr %117, i64 56 - %119 = load ptr, ptr %118, align 8 - %120 = tail call noundef zeroext i1 %119(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef 2, ptr noundef nonnull %0) #7 +116: ; preds = %.thread43, %.loopexit + %117 = getelementptr inbounds nuw i8, ptr %1, i64 10 + %118 = load i8, ptr %117, align 2 + %119 = trunc i8 %118 to i1 + br i1 %119, label %120, label %.thread41 + +120: ; preds = %116 + %121 = load ptr, ptr %1, align 8 + %122 = getelementptr inbounds nuw i8, ptr %121, i64 56 + %123 = load ptr, ptr %122, align 8 + %124 = tail call noundef zeroext i1 %123(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef 2, ptr noundef nonnull %0) #7 br label %.thread41 -.thread41: ; preds = %6, %116, %112, %.loopexit +.thread41: ; preds = %6, %120, %116, %.loopexit ret void } diff --git a/bench/graphviz/optimized/psusershape.c.ll b/bench/graphviz/optimized/psusershape.c.ll index ad6fd9ccdd8..a54b70a33a7 100644 --- a/bench/graphviz/optimized/psusershape.c.ll +++ b/bench/graphviz/optimized/psusershape.c.ll @@ -322,93 +322,85 @@ define void @cat_libfile(ptr noundef %0, ptr noundef readonly %1, ptr nocapture .preheader45: ; preds = %3, %7 %indvars.iv = phi i64 [ %indvars.iv.next, %7 ], [ 0, %3 ] - %.147 = phi i8 [ %spec.select, %7 ], [ 1, %3 ] %5 = getelementptr inbounds nuw ptr, ptr %1, i64 %indvars.iv %6 = load ptr, ptr %5, align 8 %.not37 = icmp eq ptr %6, null - br i1 %.not37, label %.critedge, label %7 + br i1 %.not37, label %.preheader43, label %7 7: ; preds = %.preheader45 %8 = load i8, ptr %6, align 1 - %9 = icmp eq i8 %8, 0 - %spec.select = select i1 %9, i8 0, i8 %.147 + %.not57 = icmp eq i8 %8, 0 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %10 = trunc nuw i8 %spec.select to i1 - br i1 %10, label %.preheader45, label %.critedge + br i1 %.not57, label %.loopexit44, label %.preheader45 -.critedge: ; preds = %.preheader45, %7 - %.0.ph = phi i8 [ %.147, %.preheader45 ], [ %spec.select, %7 ] - %11 = trunc nuw i8 %.0.ph to i1 - br i1 %11, label %.preheader43, label %.loopexit44 - -.preheader43: ; preds = %3, %.critedge - %12 = load ptr, ptr %2, align 8 - %.not3848 = icmp eq ptr %12, null +.preheader43: ; preds = %.preheader45, %3 + %9 = load ptr, ptr %2, align 8 + %.not3848 = icmp eq ptr %9, null br i1 %.not3848, label %.loopexit44, label %.lr.ph .lr.ph: ; preds = %.preheader43, %.lr.ph - %13 = phi ptr [ %17, %.lr.ph ], [ %12, %.preheader43 ] - %.02949 = phi ptr [ %16, %.lr.ph ], [ %2, %.preheader43 ] - %14 = tail call i32 @gvputs(ptr noundef %0, ptr noundef nonnull %13) #15 - %15 = tail call i32 @gvputs(ptr noundef %0, ptr noundef nonnull @.str.2) #15 - %16 = getelementptr inbounds nuw i8, ptr %.02949, i64 8 - %17 = load ptr, ptr %16, align 8 - %.not38 = icmp eq ptr %17, null + %10 = phi ptr [ %14, %.lr.ph ], [ %9, %.preheader43 ] + %.02949 = phi ptr [ %13, %.lr.ph ], [ %2, %.preheader43 ] + %11 = tail call i32 @gvputs(ptr noundef %0, ptr noundef nonnull %10) #15 + %12 = tail call i32 @gvputs(ptr noundef %0, ptr noundef nonnull @.str.2) #15 + %13 = getelementptr inbounds nuw i8, ptr %.02949, i64 8 + %14 = load ptr, ptr %13, align 8 + %.not38 = icmp eq ptr %14, null br i1 %.not38, label %.loopexit44, label %.lr.ph -.loopexit44: ; preds = %.lr.ph, %.preheader43, %.critedge +.loopexit44: ; preds = %.lr.ph, %7, %.preheader43 br i1 %.not, label %.loopexit, label %.preheader42 .preheader42: ; preds = %.loopexit44 - %18 = load ptr, ptr %1, align 8 - %.not3950 = icmp eq ptr %18, null + %15 = load ptr, ptr %1, align 8 + %.not3950 = icmp eq ptr %15, null br i1 %.not3950, label %.loopexit, label %.lr.ph52 -.lr.ph52: ; preds = %.preheader42, %36 - %indvars.iv53 = phi i64 [ %indvars.iv.next54, %36 ], [ 0, %.preheader42 ] - %19 = phi ptr [ %38, %36 ], [ %18, %.preheader42 ] - %20 = load i8, ptr %19, align 1 - %21 = icmp eq i8 %20, 0 - br i1 %21, label %36, label %22 +.lr.ph52: ; preds = %.preheader42, %33 + %indvars.iv53 = phi i64 [ %indvars.iv.next54, %33 ], [ 0, %.preheader42 ] + %16 = phi ptr [ %35, %33 ], [ %15, %.preheader42 ] + %17 = load i8, ptr %16, align 1 + %18 = icmp eq i8 %17, 0 + br i1 %18, label %33, label %19 -22: ; preds = %.lr.ph52 - %23 = call ptr @safefile(ptr noundef nonnull %19) #15 - %.not40 = icmp eq ptr %23, null - br i1 %.not40, label %24, label %26 +19: ; preds = %.lr.ph52 + %20 = call ptr @safefile(ptr noundef nonnull %16) #15 + %.not40 = icmp eq ptr %20, null + br i1 %.not40, label %21, label %23 -24: ; preds = %22 - %25 = call i32 (i32, ptr, ...) @agerr(i32 noundef 0, ptr noundef nonnull @.str.3, ptr noundef nonnull %19) #15 - br label %36 +21: ; preds = %19 + %22 = call i32 (i32, ptr, ...) @agerr(i32 noundef 0, ptr noundef nonnull @.str.3, ptr noundef nonnull %16) #15 + br label %33 -26: ; preds = %22 - %27 = call noalias ptr @fopen(ptr noundef nonnull %23, ptr noundef nonnull @.str.4) - %.not41 = icmp eq ptr %27, null - br i1 %.not41, label %34, label %.preheader +23: ; preds = %19 + %24 = call noalias ptr @fopen(ptr noundef nonnull %20, ptr noundef nonnull @.str.4) + %.not41 = icmp eq ptr %24, null + br i1 %.not41, label %31, label %.preheader -.preheader: ; preds = %26, %.preheader +.preheader: ; preds = %23, %.preheader call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(8192) %4, i8 0, i64 8192, i1 false) - %28 = call i64 @fread(ptr noundef nonnull %4, i64 noundef 1, i64 noundef 8192, ptr noundef nonnull %27) - %29 = call i64 @gvwrite(ptr noundef %0, ptr noundef nonnull %4, i64 noundef %28) #15 - %30 = icmp ult i64 %28, 8192 - br i1 %30, label %31, label %.preheader + %25 = call i64 @fread(ptr noundef nonnull %4, i64 noundef 1, i64 noundef 8192, ptr noundef nonnull %24) + %26 = call i64 @gvwrite(ptr noundef %0, ptr noundef nonnull %4, i64 noundef %25) #15 + %27 = icmp ult i64 %25, 8192 + br i1 %27, label %28, label %.preheader -31: ; preds = %.preheader - %32 = call i32 @gvputs(ptr noundef %0, ptr noundef nonnull @.str.2) #15 - %33 = call i32 @fclose(ptr noundef nonnull %27) - br label %36 +28: ; preds = %.preheader + %29 = call i32 @gvputs(ptr noundef %0, ptr noundef nonnull @.str.2) #15 + %30 = call i32 @fclose(ptr noundef nonnull %24) + br label %33 -34: ; preds = %26 - %35 = call i32 (i32, ptr, ...) @agerr(i32 noundef 0, ptr noundef nonnull @.str.5, ptr noundef nonnull %23) #15 - br label %36 +31: ; preds = %23 + %32 = call i32 (i32, ptr, ...) @agerr(i32 noundef 0, ptr noundef nonnull @.str.5, ptr noundef nonnull %20) #15 + br label %33 -36: ; preds = %24, %34, %31, %.lr.ph52 +33: ; preds = %21, %31, %28, %.lr.ph52 %indvars.iv.next54 = add nuw nsw i64 %indvars.iv53, 1 - %37 = getelementptr inbounds nuw ptr, ptr %1, i64 %indvars.iv.next54 - %38 = load ptr, ptr %37, align 8 - %.not39 = icmp eq ptr %38, null + %34 = getelementptr inbounds nuw ptr, ptr %1, i64 %indvars.iv.next54 + %35 = load ptr, ptr %34, align 8 + %.not39 = icmp eq ptr %35, null br i1 %.not39, label %.loopexit, label %.lr.ph52 -.loopexit: ; preds = %36, %.preheader42, %.loopexit44 +.loopexit: ; preds = %33, %.preheader42, %.loopexit44 ret void } diff --git a/bench/grpc/optimized/connected_channel.cc.ll b/bench/grpc/optimized/connected_channel.cc.ll index 82476c4fdce..55d5f799185 100644 --- a/bench/grpc/optimized/connected_channel.cc.ll +++ b/bench/grpc/optimized/connected_channel.cc.ll @@ -26608,7 +26608,7 @@ common.resume: ; preds = %common.resume.i.i.i "_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.thread.i": ; preds = %if.end call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %r.i.i), !noalias !954 store i8 1, ptr %p4, align 8, !alias.scope !1055 - br label %if.then.i1.i + br label %invoke.cont6.thread cleanup.i.i: ; preds = %_ZN4absl12lts_202308026StatusD2Ev.exit53.i.i.i.i.i, %if.then23.i.i.i.i.i, %_ZN9grpc_core4PollIN4absl12lts_202308026StatusEED2Ev.exit.thread.i.i.i.i.i, %if.end.cont.i.i.i.i.i %ref.tmp.sroa.5.1.i = phi i64 [ undef, %_ZN9grpc_core4PollIN4absl12lts_202308026StatusEED2Ev.exit.thread.i.i.i.i.i ], [ %78, %if.end.cont.i.i.i.i.i ], [ %145, %_ZN4absl12lts_202308026StatusD2Ev.exit53.i.i.i.i.i ], [ undef, %if.then23.i.i.i.i.i ] @@ -26640,22 +26640,22 @@ terminate.lpad.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %r.i.i), !noalias !954 %tobool.i.i.i.i = trunc nuw i8 %ref.tmp.sroa.0.0.i to i1 store i8 %ref.tmp.sroa.0.0.i, ptr %p4, align 8, !alias.scope !1055 - br i1 %tobool.i.i.i.i, label %if.then.i1.i, label %invoke.cont6 + br i1 %tobool.i.i.i.i, label %invoke.cont6.thread, label %invoke.cont6 -if.then.i1.i: ; preds = %"_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.i", %"_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.thread.i" - %149 = phi i8 [ 1, %"_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.thread.i" ], [ %ref.tmp.sroa.0.0.i, %"_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.i" ] +invoke.cont6.thread: ; preds = %"_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.thread.i", %"_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.i" %ref.tmp.sroa.5.310.i = phi i64 [ 0, %"_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.thread.i" ], [ %ref.tmp.sroa.5.1.i, %"_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.i" ] + %149 = getelementptr inbounds nuw i8, ptr %p4, i64 8 + store i64 %ref.tmp.sroa.5.310.i, ptr %149, align 8, !alias.scope !1055 %150 = getelementptr inbounds nuw i8, ptr %p4, i64 8 - store i64 %ref.tmp.sroa.5.310.i, ptr %150, align 8, !alias.scope !1055 - br label %invoke.cont6 + br label %if.then8 -invoke.cont6: ; preds = %if.then.i1.i, %"_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.i" - %151 = phi i8 [ %149, %if.then.i1.i ], [ %ref.tmp.sroa.0.0.i, %"_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.i" ] - %tobool.i.i = trunc nuw i8 %151 to i1 - %152 = getelementptr inbounds nuw i8, ptr %p4, i64 8 +invoke.cont6: ; preds = %"_ZN9grpc_core14promise_detail4RaceIJNS0_3MapIZNS_25ExternallyObservableLatchIvE4WaitEvEUlvE_ZNS_12_GLOBAL__N_121MakeServerCallPromiseEPNS_9TransportENS_8CallArgsESt8functionIFNS_12ArenaPromiseISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEES9_EEE3$_9EENS0_6TrySeqINS0_3SeqINS1_IJNS2_IS5_ZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_1EENSN_INS_11pipe_detail4NextISG_EEJZNS_12PipeReceiverISG_E4NextEvEUlSt8optionalISG_EE_EEEEEEJZNS6_21MakeServerCallPromiseES8_S9_SJ_E3$_2EEEJNS_15for_each_detail7ForEachINST_ISC_INS_7MessageESF_EEEZNS6_22ConnectedChannelStream12SendMessagesEPS16_E3$_0EEEEEEEclEv.exit.i" + %tobool.i.i = trunc nuw i8 %ref.tmp.sroa.0.0.i to i1 + %151 = getelementptr inbounds nuw i8, ptr %p4, i64 8 br i1 %tobool.i.i, label %if.then8, label %_ZN9grpc_core4PollIN4absl12lts_202308026StatusEED2Ev.exit -if.then8: ; preds = %invoke.cont6 +if.then8: ; preds = %invoke.cont6.thread, %invoke.cont6 + %152 = phi ptr [ %150, %invoke.cont6.thread ], [ %151, %invoke.cont6 ] %153 = load i64, ptr %152, align 8 store i64 54, ptr %152, align 8 %and.i.i.i = and i64 %153, 1 @@ -26713,7 +26713,8 @@ terminate.lpad.i.i.i: ; preds = %if.then.i.i.i.i unreachable _ZN9grpc_core4PollIN4absl12lts_202308026StatusEED2Ev.exit: ; preds = %invoke.cont6, %if.then.i6, %if.then.i.i.i.i - ret i1 %tobool.i.i + %tobool.i.i811 = phi i1 [ true, %if.then.i6 ], [ true, %if.then.i.i.i.i ], [ false, %invoke.cont6 ] + ret i1 %tobool.i.i811 } ; Function Attrs: mustprogress uwtable diff --git a/bench/grpc/optimized/posix_endpoint.cc.ll b/bench/grpc/optimized/posix_endpoint.cc.ll index 6f2b98b8e62..b356e26fbac 100644 --- a/bench/grpc/optimized/posix_endpoint.cc.ll +++ b/bench/grpc/optimized/posix_endpoint.cc.ll @@ -3737,7 +3737,7 @@ if.then.i.i: ; preds = %if.then.i _ZN4absl12lts_202308026StatusD2Ev.exit: ; preds = %if.then.i, %entry, %if.then.i.i %count.i.i.phi.trans.insert = getelementptr inbounds nuw i8, ptr %record, i64 16 - %.pre136.pre = load i64, ptr %count.i.i.phi.trans.insert, align 8 + %.pre137.pre = load i64, ptr %count.i.i.phi.trans.insert, align 8 %out_offset_.i.phi.trans.insert = getelementptr inbounds nuw i8, ptr %record, i64 272 %.pre.pre = load i64, ptr %out_offset_.i.phi.trans.insert, align 8 %out_offset_.i = getelementptr inbounds nuw i8, ptr %record, i64 272 @@ -3760,7 +3760,7 @@ _ZN4absl12lts_202308026StatusD2Ev.exit: ; preds = %if.then.i, %entry, br label %while.body while.body: ; preds = %_ZN17grpc_event_engine12experimental21TcpZerocopySendRecord24UpdateOffsetForBytesSentEmm.exit, %_ZN4absl12lts_202308026StatusD2Ev.exit - %1 = phi i64 [ %68, %_ZN17grpc_event_engine12experimental21TcpZerocopySendRecord24UpdateOffsetForBytesSentEmm.exit ], [ %.pre136.pre, %_ZN4absl12lts_202308026StatusD2Ev.exit ] + %1 = phi i64 [ %68, %_ZN17grpc_event_engine12experimental21TcpZerocopySendRecord24UpdateOffsetForBytesSentEmm.exit ], [ %.pre137.pre, %_ZN4absl12lts_202308026StatusD2Ev.exit ] %out_offset_.i.promoted = phi i64 [ %67, %_ZN17grpc_event_engine12experimental21TcpZerocopySendRecord24UpdateOffsetForBytesSentEmm.exit ], [ %.pre.pre, %_ZN4absl12lts_202308026StatusD2Ev.exit ] %2 = load i64, ptr %byte_idx.i, align 8 %cmp11.not.i = icmp eq i64 %out_offset_.i.promoted, %1 @@ -3771,11 +3771,11 @@ for.body.lr.ph.i: ; preds = %while.body br label %for.body.i for.body.i: ; preds = %for.body.i, %for.body.lr.ph.i - %inc.i115 = phi i64 [ %out_offset_.i.promoted, %for.body.lr.ph.i ], [ %inc.i, %for.body.i ] + %inc.i116 = phi i64 [ %out_offset_.i.promoted, %for.body.lr.ph.i ], [ %inc.i, %for.body.i ] %4 = phi i64 [ %2, %for.body.lr.ph.i ], [ 0, %for.body.i ] %sending_length.0 = phi i64 [ 0, %for.body.lr.ph.i ], [ %add.i, %for.body.i ] %iov_size.012.i = phi i64 [ 0, %for.body.lr.ph.i ], [ %inc22.i, %for.body.i ] - %arrayidx.i.i = getelementptr inbounds %struct.grpc_slice, ptr %3, i64 %inc.i115 + %arrayidx.i.i = getelementptr inbounds %struct.grpc_slice, ptr %3, i64 %inc.i116 %5 = load ptr, ptr %arrayidx.i.i, align 8 %tobool.not.i.i.i = icmp eq ptr %5, null %bytes.i.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i, i64 16 @@ -3794,7 +3794,7 @@ for.body.i: ; preds = %for.body.i, %for.bo %iov_len.i = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 8 store i64 %sub.i, ptr %iov_len.i, align 8 %add.i = add i64 %sub.i, %sending_length.0 - %inc.i = add i64 %inc.i115, 1 + %inc.i = add i64 %inc.i116, 1 store i64 %inc.i, ptr %out_offset_.i, align 8 store i64 0, ptr %byte_idx.i, align 8 %inc22.i = add nuw nsw i64 %iov_size.012.i, 1 @@ -3833,18 +3833,18 @@ lor.lhs.false: ; preds = %if.then br i1 %call5, label %lor.lhs.false.if.end12_crit_edge, label %if.then6 lor.lhs.false.if.end12_crit_edge: ; preds = %lor.lhs.false - %.pre139 = load i32, ptr %saved_errno, align 4 + %.pre140 = load i32, ptr %saved_errno, align 4 br label %if.end12 if.then6: ; preds = %lor.lhs.false - %.pre137 = load ptr, ptr %outgoing_buffer_arg_, align 16 + %.pre138 = load ptr, ptr %outgoing_buffer_arg_, align 16 store i8 0, ptr %ts_capable_, align 1 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %agg.tmp.i) - %cmp.not.i13 = icmp eq ptr %.pre137, null + %cmp.not.i13 = icmp eq ptr %.pre138, null br i1 %cmp.not.i13, label %_ZN17grpc_event_engine12experimental17PosixEndpointImpl27TcpShutdownTracedBufferListEv.exit, label %if.then.i14 if.then.i14: ; preds = %if.then6.thread, %if.then6 - %13 = phi ptr [ %11, %if.then6.thread ], [ %.pre137, %if.then6 ] + %13 = phi ptr [ %11, %if.then6.thread ], [ %.pre138, %if.then6 ] call void @_ZN4absl12lts_2023080213InternalErrorESt17basic_string_viewIcSt11char_traitsIcEE(ptr nonnull sret(%"class.absl::lts_20230802::Status") align 8 %agg.tmp.i, i64 26, ptr nonnull @.str.12) invoke void @_ZN17grpc_event_engine12experimental16TracedBufferList8ShutdownEPvN4absl12lts_202308026StatusE(ptr noundef nonnull align 8 dereferenceable(24) %traced_buffers_.i, ptr noundef nonnull %13, ptr noundef nonnull %agg.tmp.i) to label %invoke.cont.i unwind label %lpad.i @@ -3895,15 +3895,15 @@ if.then10.critedge: ; preds = %_ZN17grpc_event_eng %saved_errno.promoted = phi i32 [ 0, %_ZN17grpc_event_engine12experimental21TcpZerocopySendRecord12PopulateIovsEPmS2_S2_P5iovec.exit ], [ %saved_errno.promoted.pre, %_ZN17grpc_event_engine12experimental17PosixEndpointImpl27TcpShutdownTracedBufferListEv.exit ] call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %msg_control, i8 0, i64 16, i1 false) %19 = load i32, ptr %fd_, align 4 - %call.i116 = call i64 @sendmsg(i32 noundef %19, ptr noundef nonnull %msg, i32 noundef 67125248) - %cmp.i15117 = icmp slt i64 %call.i116, 0 - br i1 %cmp.i15117, label %land.rhs.i.lr.ph, label %_ZN17grpc_event_engine12experimental12_GLOBAL__N_17TcpSendEiPK6msghdrPii.exit + %call.i117 = call i64 @sendmsg(i32 noundef %19, ptr noundef nonnull %msg, i32 noundef 67125248) + %cmp.i15118 = icmp slt i64 %call.i117, 0 + br i1 %cmp.i15118, label %land.rhs.i.lr.ph, label %_ZN17grpc_event_engine12experimental12_GLOBAL__N_17TcpSendEiPK6msghdrPii.exit land.rhs.i.lr.ph: ; preds = %if.then10.critedge %call1.i = tail call ptr @__errno_location() #32 %20 = load i32, ptr %call1.i, align 4 - %cmp2.i169 = icmp eq i32 %20, 4 - br i1 %cmp2.i169, label %do.body.i, label %_ZN17grpc_event_engine12experimental12_GLOBAL__N_17TcpSendEiPK6msghdrPii.exit, !llvm.loop !53 + %cmp2.i170 = icmp eq i32 %20, 4 + br i1 %cmp2.i170, label %do.body.i, label %_ZN17grpc_event_engine12experimental12_GLOBAL__N_17TcpSendEiPK6msghdrPii.exit, !llvm.loop !53 do.body.i: ; preds = %land.rhs.i.lr.ph, %land.rhs.i %call.i = call i64 @sendmsg(i32 noundef %19, ptr noundef nonnull %msg, i32 noundef 67125248) @@ -3917,13 +3917,13 @@ land.rhs.i: ; preds = %do.body.i _ZN17grpc_event_engine12experimental12_GLOBAL__N_17TcpSendEiPK6msghdrPii.exit: ; preds = %do.body.i, %land.rhs.i, %land.rhs.i.lr.ph, %if.then10.critedge %22 = phi i32 [ %saved_errno.promoted, %if.then10.critedge ], [ %20, %land.rhs.i.lr.ph ], [ %21, %land.rhs.i ], [ 4, %do.body.i ] - %call.i.lcssa = phi i64 [ %call.i116, %if.then10.critedge ], [ %call.i116, %land.rhs.i.lr.ph ], [ %call.i, %land.rhs.i ], [ %call.i, %do.body.i ] + %call.i.lcssa = phi i64 [ %call.i117, %if.then10.critedge ], [ %call.i117, %land.rhs.i.lr.ph ], [ %call.i, %land.rhs.i ], [ %call.i, %do.body.i ] store i32 %22, ptr %saved_errno, align 4 store i64 %call.i.lcssa, ptr %sent_length, align 8 br label %if.end12 if.end12: ; preds = %lor.lhs.false.if.end12_crit_edge, %_ZN17grpc_event_engine12experimental12_GLOBAL__N_17TcpSendEiPK6msghdrPii.exit - %23 = phi i32 [ %.pre139, %lor.lhs.false.if.end12_crit_edge ], [ %22, %_ZN17grpc_event_engine12experimental12_GLOBAL__N_17TcpSendEiPK6msghdrPii.exit ] + %23 = phi i32 [ %.pre140, %lor.lhs.false.if.end12_crit_edge ], [ %22, %_ZN17grpc_event_engine12experimental12_GLOBAL__N_17TcpSendEiPK6msghdrPii.exit ] %24 = load ptr, ptr %tcp_zerocopy_send_ctx_, align 8 %cmp15 = icmp eq i32 %23, 105 %mu_.i = getelementptr inbounds nuw i8, ptr %24, i64 24 @@ -3961,7 +3961,7 @@ if.then11.i: ; preds = %if.else8.i cleanup.i: ; preds = %if.then11.i, %if.else8.i, %if.else.i, %if.then4.i %constrained.0.shrunk = phi i1 [ %cmp.i17, %if.then4.i ], [ %cmp.i17, %if.else.i ], [ false, %if.else8.i ], [ false, %if.then11.i ] - %retval.0.i = phi i1 [ true, %if.then4.i ], [ %cmp.i17, %if.else.i ], [ false, %if.else8.i ], [ false, %if.then11.i ] + %retval.0.i = phi i1 [ true, %if.then4.i ], [ false, %if.else.i ], [ false, %if.else8.i ], [ false, %if.then11.i ] invoke void @_ZN4absl12lts_202308025Mutex6UnlockEv(ptr noundef nonnull align 8 dereferenceable(8) %mu_.i) to label %_ZN17grpc_event_engine12experimental18TcpZerocopySendCtx34UpdateZeroCopyOptMemStateAfterSendEbRb.exit unwind label %terminate.lpad.i2.i @@ -3973,7 +3973,10 @@ terminate.lpad.i2.i: ; preds = %cleanup.i unreachable _ZN17grpc_event_engine12experimental18TcpZerocopySendCtx34UpdateZeroCopyOptMemStateAfterSendEbRb.exit: ; preds = %cleanup.i - br i1 %retval.0.i, label %if.then19, label %if.end38 + br i1 %retval.0.i, label %if.then19, label %lor.lhs.false17 + +lor.lhs.false17: ; preds = %_ZN17grpc_event_engine12experimental18TcpZerocopySendCtx34UpdateZeroCopyOptMemStateAfterSendEbRb.exit + br i1 %constrained.0.shrunk, label %do.body, label %if.end38 if.then19: ; preds = %_ZN17grpc_event_engine12experimental18TcpZerocopySendCtx34UpdateZeroCopyOptMemStateAfterSendEbRb.exit br i1 %constrained.0.shrunk, label %do.body, label %if.then21 @@ -3986,7 +3989,7 @@ if.then21: ; preds = %if.then19 call void %31(ptr noundef nonnull align 8 dereferenceable(8) %30) br label %if.end38 -do.body: ; preds = %if.then19 +do.body: ; preds = %lor.lhs.false17, %if.then19 %call24 = call { i64, i64 } @gpr_now(i32 noundef 0) %32 = extractvalue { i64, i64 } %call24, 0 %33 = extractvalue { i64, i64 } %call24, 1 @@ -4049,7 +4052,7 @@ _ZN17grpc_event_engine12experimental12_GLOBAL__N_120GetUlimitHardMemLockEv.exit: call void (ptr, i32, i32, ptr, ...) @gpr_log(ptr noundef nonnull @.str.1, i32 noundef 978, i32 noundef 1, ptr noundef nonnull @.str.13, i64 noundef %38, i64 noundef %42) br label %if.end38 -if.end38: ; preds = %_ZN17grpc_event_engine12experimental18TcpZerocopySendCtx34UpdateZeroCopyOptMemStateAfterSendEbRb.exit, %if.then21, %lor.lhs.false29, %_ZN17grpc_event_engine12experimental12_GLOBAL__N_120GetUlimitHardMemLockEv.exit +if.end38: ; preds = %if.then21, %lor.lhs.false29, %_ZN17grpc_event_engine12experimental12_GLOBAL__N_120GetUlimitHardMemLockEv.exit, %lor.lhs.false17 %43 = load i64, ptr %sent_length, align 8 %cmp39 = icmp slt i64 %43, 0 br i1 %cmp39, label %if.then40, label %if.end55 diff --git a/bench/hdf5/optimized/H5Tconv_vlen.c.ll b/bench/hdf5/optimized/H5Tconv_vlen.c.ll index 34608fbd977..cc6a0c9730e 100644 --- a/bench/hdf5/optimized/H5Tconv_vlen.c.ll +++ b/bench/hdf5/optimized/H5Tconv_vlen.c.ll @@ -855,6 +855,7 @@ define range(i32 -1, 1) i32 @H5T__conv_vlen(ptr noundef readonly %0, ptr noundef br label %.thread 475: ; preds = %268, %285, %298, %311, %439, %456, %362, %377, %389, %406, %423, %336, %351, %323 + %.0346.ph = phi i1 [ %.not424, %323 ], [ %.not424, %351 ], [ %.not424, %336 ], [ %.not424, %423 ], [ true, %406 ], [ true, %389 ], [ true, %377 ], [ %.not424, %362 ], [ true, %456 ], [ %.not424, %439 ], [ true, %311 ], [ %.not424, %298 ], [ %.not424, %285 ], [ %.not424, %268 ] %.0339.ph = phi ptr [ null, %323 ], [ %.5344, %351 ], [ null, %336 ], [ %.4343, %423 ], [ %.4343, %406 ], [ %.4343, %389 ], [ %.4343, %377 ], [ %.4343, %362 ], [ %.4343, %456 ], [ %.4343, %439 ], [ null, %311 ], [ %.2341826, %298 ], [ %.2341826, %285 ], [ %.2341826, %268 ] %.0325.ph = phi ptr [ %.3328828, %323 ], [ %.3328828, %351 ], [ %.3328828, %336 ], [ %.7332, %423 ], [ %.9, %406 ], [ null, %389 ], [ %.6331, %377 ], [ null, %362 ], [ %.5330, %456 ], [ %.5330, %439 ], [ %.3328828, %311 ], [ %.3328828, %298 ], [ %.3328828, %285 ], [ %.3328828, %268 ] br i1 %.2313832, label %476, label %.thread487 @@ -912,7 +913,7 @@ define range(i32 -1, 1) i32 @H5T__conv_vlen(ptr noundef readonly %0, ptr noundef %.0308483 = phi i32 [ -1, %.loopexit ], [ -1, %475 ], [ -1, %216 ], [ -1, %209 ], [ -1, %196 ], [ 0, %220 ], [ -1, %.lr.ph853 ], [ 0, %469 ] %.0325475 = phi ptr [ %.0325.ph, %.loopexit ], [ %.0325.ph, %475 ], [ %.1326, %216 ], [ null, %209 ], [ null, %196 ], [ %.1326, %220 ], [ %.0325.ph, %.lr.ph853 ], [ %.4329, %469 ] %.0339473 = phi ptr [ %.0339.ph, %.loopexit ], [ %.0339.ph, %475 ], [ null, %216 ], [ null, %209 ], [ null, %196 ], [ null, %220 ], [ %.0339.ph, %.lr.ph853 ], [ %.3342, %469 ] - %.0346471.shrunk = phi i1 [ %.not424, %.loopexit ], [ %.not424, %475 ], [ false, %216 ], [ false, %209 ], [ false, %196 ], [ %.not424, %220 ], [ %.not424, %.lr.ph853 ], [ %.not424, %469 ] + %.0346471 = phi i1 [ %.0346.ph, %.loopexit ], [ %.0346.ph, %475 ], [ false, %216 ], [ false, %209 ], [ false, %196 ], [ %.not424, %220 ], [ %.0346.ph, %.lr.ph853 ], [ %.not424, %469 ] %489 = icmp sgt i64 %.1380, -1 br i1 %489, label %490, label %.thread487.thread @@ -920,7 +921,7 @@ define range(i32 -1, 1) i32 @H5T__conv_vlen(ptr noundef readonly %0, ptr noundef %.0382461590 = phi ptr [ %144, %.thread487.thread573 ], [ %.1383, %.thread487 ] %.0379463589 = phi i64 [ %175, %.thread487.thread573 ], [ %.1380, %.thread487 ] %.0376465588 = phi i64 [ %182, %.thread487.thread573 ], [ %.1377, %.thread487 ] - %.0346471587 = phi i1 [ false, %.thread487.thread573 ], [ %.0346471.shrunk, %.thread487 ] + %.0346471587 = phi i1 [ false, %.thread487.thread573 ], [ %.0346471, %.thread487 ] %.0339473586 = phi ptr [ null, %.thread487.thread573 ], [ %.0339473, %.thread487 ] %.0325475585 = phi ptr [ null, %.thread487.thread573 ], [ %.0325475, %.thread487 ] %.0315479584 = phi i8 [ 0, %.thread487.thread573 ], [ %.1316, %.thread487 ] @@ -944,7 +945,7 @@ define range(i32 -1, 1) i32 @H5T__conv_vlen(ptr noundef readonly %0, ptr noundef %.0315479516617 = phi i8 [ %.1316, %.thread487.thread ], [ 0, %177 ], [ 0, %164 ], [ 0, %146 ], [ 0, %136 ] %.0325475518616 = phi ptr [ %.0325475, %.thread487.thread ], [ null, %177 ], [ null, %164 ], [ null, %146 ], [ null, %136 ] %.0339473520615 = phi ptr [ %.0339473, %.thread487.thread ], [ null, %177 ], [ null, %164 ], [ null, %146 ], [ null, %136 ] - %.0346471522614 = phi i1 [ %.0346471.shrunk, %.thread487.thread ], [ false, %177 ], [ false, %164 ], [ false, %146 ], [ false, %136 ] + %.0346471522614 = phi i1 [ %.0346471, %.thread487.thread ], [ false, %177 ], [ false, %164 ], [ false, %146 ], [ false, %136 ] %.0348469523613 = phi ptr [ %.1349, %.thread487.thread ], [ %116, %177 ], [ %116, %164 ], [ %116, %146 ], [ %116, %136 ] %.0376465525612 = phi i64 [ %.1377, %.thread487.thread ], [ -1, %177 ], [ -1, %164 ], [ -1, %146 ], [ -1, %136 ] %.0382461527611 = phi ptr [ %.1383, %.thread487.thread ], [ %144, %177 ], [ %144, %164 ], [ null, %146 ], [ null, %136 ] @@ -961,7 +962,7 @@ define range(i32 -1, 1) i32 @H5T__conv_vlen(ptr noundef readonly %0, ptr noundef 503: ; preds = %.thread487.thread, %499, %.thread487.thread.thread601, %490, %493 %.0382461526 = phi ptr [ %.0382461590, %493 ], [ %.0382461590, %490 ], [ %.0382461527611, %499 ], [ %.0382461527611, %.thread487.thread.thread601 ], [ %.1383, %.thread487.thread ] %.0376465524 = phi i64 [ %.0376465588, %493 ], [ %.0376465588, %490 ], [ %.0376465525612, %499 ], [ %.0376465525612, %.thread487.thread.thread601 ], [ %.1377, %.thread487.thread ] - %.0346471521 = phi i1 [ %.0346471587, %493 ], [ %.0346471587, %490 ], [ %.0346471522614, %499 ], [ %.0346471522614, %.thread487.thread.thread601 ], [ %.0346471.shrunk, %.thread487.thread ] + %.0346471521 = phi i1 [ %.0346471587, %493 ], [ %.0346471587, %490 ], [ %.0346471522614, %499 ], [ %.0346471522614, %.thread487.thread.thread601 ], [ %.0346471, %.thread487.thread ] %.0339473519 = phi ptr [ %.0339473586, %493 ], [ %.0339473586, %490 ], [ %.0339473520615, %499 ], [ %.0339473520615, %.thread487.thread.thread601 ], [ %.0339473, %.thread487.thread ] %.0325475517 = phi ptr [ %.0325475585, %493 ], [ %.0325475585, %490 ], [ %.0325475518616, %499 ], [ %.0325475518616, %.thread487.thread.thread601 ], [ %.0325475, %.thread487.thread ] %.0315479515 = phi i8 [ %.0315479584, %493 ], [ %.0315479584, %490 ], [ %.0315479516617, %499 ], [ %.0315479516617, %.thread487.thread.thread601 ], [ %.1316, %.thread487.thread ] diff --git a/bench/hdf5/optimized/h5diff.c.ll b/bench/hdf5/optimized/h5diff.c.ll index 2d16fb4ec5b..f8a72c5fbb9 100644 --- a/bench/hdf5/optimized/h5diff.c.ll +++ b/bench/hdf5/optimized/h5diff.c.ll @@ -2834,7 +2834,7 @@ define i64 @diff(i64 noundef %0, ptr noundef %1, i64 noundef %2, ptr noundef %3, 114: ; preds = %92, %90 %.2272 = phi i8 [ 0, %90 ], [ 1, %92 ] %115 = trunc nuw i8 %.2275 to i1 - br i1 %115, label %.thread439, label %116 + br i1 %115, label %.thread483, label %116 116: ; preds = %114 %117 = trunc nuw i8 %.2272 to i1 @@ -3379,19 +3379,19 @@ print_objname.exit: ; preds = %331 print_objname.exit408: ; preds = %382 %384 = load i32, ptr %4, align 8 %.not.i407.not = icmp eq i32 %384, 0 - br i1 %.not.i407.not, label %385, label %.thread499 + br i1 %.not.i407.not, label %385, label %.thread518 385: ; preds = %print_objname.exit408 call void @do_print_objname(ptr noundef nonnull @.str.37, ptr noundef %1, ptr noundef %3, ptr noundef nonnull %4) %.pr433.pre = load i32, ptr %14, align 8 %386 = icmp eq i32 %.pr433.pre, 0 - br i1 %386, label %.thread434, label %.thread499 + br i1 %386, label %.thread434, label %.thread518 -.thread499: ; preds = %print_objname.exit408, %385 +.thread518: ; preds = %print_objname.exit408, %385 call void @print_found(i64 noundef 0) #13 br label %.thread434 -.thread434: ; preds = %382, %.thread499, %385 +.thread434: ; preds = %382, %.thread518, %385 %387 = call i64 @H5Gopen2(i64 noundef %0, ptr noundef %1, i64 noundef 0) #13 %388 = icmp slt i64 %387, 0 br i1 %388, label %389, label %405 @@ -3596,7 +3596,7 @@ print_objname.exit414: ; preds = %487, %493 %.0268445 = phi i64 [ %499, %493 ], [ 1, %487 ] %502 = load i32, ptr %4, align 8 %.not.i413.not = icmp eq i32 %502, 0 - br i1 %.not.i413.not, label %.sink.split501, label %510 + br i1 %.not.i413.not, label %.sink.split520, label %510 503: ; preds = %480 %.not347 = icmp eq i32 %482, %485 @@ -3612,23 +3612,23 @@ print_objname.exit414: ; preds = %487, %493 .split: ; preds = %504 %509 = load i32, ptr %14, align 8 - %.not494 = icmp eq i32 %509, 0 - br i1 %.not494, label %.thread439, label %print_objname.exit419 + %.not513 = icmp eq i32 %509, 0 + br i1 %.not513, label %.thread439, label %print_objname.exit419 print_objname.exit419: ; preds = %.split, %504, %503 %.6 = phi i64 [ 1, %503 ], [ 1, %504 ], [ 0, %.split ] %phi.call.in.in = load i32, ptr %4, align 8 %phi.call.in.not = icmp eq i32 %phi.call.in.in, 0 - br i1 %phi.call.in.not, label %.sink.split501, label %510 + br i1 %phi.call.in.not, label %.sink.split520, label %510 -.sink.split501: ; preds = %print_objname.exit419, %print_objname.exit414 +.sink.split520: ; preds = %print_objname.exit419, %print_objname.exit414 %.str.40.sink = phi ptr [ @.str.39, %print_objname.exit414 ], [ @.str.40, %print_objname.exit419 ] %.5.ph.ph = phi i64 [ %.0268445, %print_objname.exit414 ], [ %.6, %print_objname.exit419 ] call void @do_print_objname(ptr noundef nonnull %.str.40.sink, ptr noundef %1, ptr noundef %3, ptr noundef nonnull %4) br label %510 -510: ; preds = %.sink.split501, %print_objname.exit419, %print_objname.exit414 - %.5.ph = phi i64 [ %.6, %print_objname.exit419 ], [ %.0268445, %print_objname.exit414 ], [ %.5.ph.ph, %.sink.split501 ] +510: ; preds = %.sink.split520, %print_objname.exit419, %print_objname.exit414 + %.5.ph = phi i64 [ %.6, %print_objname.exit419 ], [ %.0268445, %print_objname.exit414 ], [ %.5.ph.ph, %.sink.split520 ] %.pr452 = load i32, ptr %14, align 8 %.not352 = icmp eq i32 %.pr452, 0 br i1 %.not352, label %.thread439, label %511 @@ -3658,82 +3658,91 @@ print_objname.exit419: ; preds = %.split, %504, %503 store i32 %519, ptr %12, align 8 br label %print_objname.exit422.thread -.thread439: ; preds = %.split, %493, %467, %451, %463, %459, %432, %444, %440, %408, %420, %416, %389, %401, %397, %366, %378, %374, %347, %359, %355, %315, %327, %323, %296, %308, %304, %277, %289, %285, %258, %270, %266, %239, %251, %247, %202, %214, %210, %183, %195, %191, %178, %158, %116, %114, %98, %110, %106, %74, %86, %82, %516, %255, %363, %448, %479, %478, %511, %510, %145 - %.0281 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ -1, %448 ], [ -1, %363 ], [ %181, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %114 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ %181, %191 ], [ %181, %195 ], [ %181, %183 ], [ %181, %210 ], [ %181, %214 ], [ %181, %202 ], [ %181, %247 ], [ %181, %251 ], [ %181, %239 ], [ %181, %266 ], [ %181, %270 ], [ %181, %258 ], [ -1, %285 ], [ -1, %289 ], [ -1, %277 ], [ -1, %304 ], [ -1, %308 ], [ -1, %296 ], [ -1, %323 ], [ -1, %327 ], [ -1, %315 ], [ -1, %355 ], [ -1, %359 ], [ -1, %347 ], [ -1, %374 ], [ -1, %378 ], [ -1, %366 ], [ -1, %397 ], [ -1, %401 ], [ -1, %389 ], [ -1, %416 ], [ -1, %420 ], [ -1, %408 ], [ -1, %440 ], [ -1, %444 ], [ -1, %432 ], [ -1, %459 ], [ -1, %463 ], [ -1, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] - %.0280 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ -1, %448 ], [ -1, %363 ], [ %200, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %114 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ -1, %191 ], [ -1, %195 ], [ -1, %183 ], [ %200, %210 ], [ %200, %214 ], [ %200, %202 ], [ %200, %247 ], [ %200, %251 ], [ %200, %239 ], [ %200, %266 ], [ %200, %270 ], [ %200, %258 ], [ -1, %285 ], [ -1, %289 ], [ -1, %277 ], [ -1, %304 ], [ -1, %308 ], [ -1, %296 ], [ -1, %323 ], [ -1, %327 ], [ -1, %315 ], [ -1, %355 ], [ -1, %359 ], [ -1, %347 ], [ -1, %374 ], [ -1, %378 ], [ -1, %366 ], [ -1, %397 ], [ -1, %401 ], [ -1, %389 ], [ -1, %416 ], [ -1, %420 ], [ -1, %408 ], [ -1, %440 ], [ -1, %444 ], [ -1, %432 ], [ -1, %459 ], [ -1, %463 ], [ -1, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] - %.0279 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ -1, %448 ], [ %275, %363 ], [ -1, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %114 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ -1, %191 ], [ -1, %195 ], [ -1, %183 ], [ -1, %210 ], [ -1, %214 ], [ -1, %202 ], [ -1, %247 ], [ -1, %251 ], [ -1, %239 ], [ -1, %266 ], [ -1, %270 ], [ -1, %258 ], [ %275, %285 ], [ %275, %289 ], [ %275, %277 ], [ %275, %304 ], [ %275, %308 ], [ %275, %296 ], [ %275, %323 ], [ %275, %327 ], [ %275, %315 ], [ %275, %355 ], [ %275, %359 ], [ %275, %347 ], [ %275, %374 ], [ %275, %378 ], [ %275, %366 ], [ -1, %397 ], [ -1, %401 ], [ -1, %389 ], [ -1, %416 ], [ -1, %420 ], [ -1, %408 ], [ -1, %440 ], [ -1, %444 ], [ -1, %432 ], [ -1, %459 ], [ -1, %463 ], [ -1, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] - %.0278 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ -1, %448 ], [ %294, %363 ], [ -1, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %114 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ -1, %191 ], [ -1, %195 ], [ -1, %183 ], [ -1, %210 ], [ -1, %214 ], [ -1, %202 ], [ -1, %247 ], [ -1, %251 ], [ -1, %239 ], [ -1, %266 ], [ -1, %270 ], [ -1, %258 ], [ -1, %285 ], [ -1, %289 ], [ -1, %277 ], [ %294, %304 ], [ %294, %308 ], [ %294, %296 ], [ %294, %323 ], [ %294, %327 ], [ %294, %315 ], [ %294, %355 ], [ %294, %359 ], [ %294, %347 ], [ %294, %374 ], [ %294, %378 ], [ %294, %366 ], [ -1, %397 ], [ -1, %401 ], [ -1, %389 ], [ -1, %416 ], [ -1, %420 ], [ -1, %408 ], [ -1, %440 ], [ -1, %444 ], [ -1, %432 ], [ -1, %459 ], [ -1, %463 ], [ -1, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] - %.0277 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ %387, %448 ], [ -1, %363 ], [ -1, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %114 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ -1, %191 ], [ -1, %195 ], [ -1, %183 ], [ -1, %210 ], [ -1, %214 ], [ -1, %202 ], [ -1, %247 ], [ -1, %251 ], [ -1, %239 ], [ -1, %266 ], [ -1, %270 ], [ -1, %258 ], [ -1, %285 ], [ -1, %289 ], [ -1, %277 ], [ -1, %304 ], [ -1, %308 ], [ -1, %296 ], [ -1, %323 ], [ -1, %327 ], [ -1, %315 ], [ -1, %355 ], [ -1, %359 ], [ -1, %347 ], [ -1, %374 ], [ -1, %378 ], [ -1, %366 ], [ %387, %397 ], [ %387, %401 ], [ %387, %389 ], [ %387, %416 ], [ %387, %420 ], [ %387, %408 ], [ %387, %440 ], [ %387, %444 ], [ %387, %432 ], [ %387, %459 ], [ %387, %463 ], [ %387, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] - %.0276 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ %406, %448 ], [ -1, %363 ], [ -1, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %114 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ -1, %191 ], [ -1, %195 ], [ -1, %183 ], [ -1, %210 ], [ -1, %214 ], [ -1, %202 ], [ -1, %247 ], [ -1, %251 ], [ -1, %239 ], [ -1, %266 ], [ -1, %270 ], [ -1, %258 ], [ -1, %285 ], [ -1, %289 ], [ -1, %277 ], [ -1, %304 ], [ -1, %308 ], [ -1, %296 ], [ -1, %323 ], [ -1, %327 ], [ -1, %315 ], [ -1, %355 ], [ -1, %359 ], [ -1, %347 ], [ -1, %374 ], [ -1, %378 ], [ -1, %366 ], [ -1, %397 ], [ -1, %401 ], [ -1, %389 ], [ %406, %416 ], [ %406, %420 ], [ %406, %408 ], [ %406, %440 ], [ %406, %444 ], [ %406, %432 ], [ %406, %459 ], [ %406, %463 ], [ %406, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] - %.1274 = phi i8 [ %.0273, %145 ], [ %.0273, %516 ], [ %.0273, %511 ], [ %.0273, %510 ], [ %.0273, %479 ], [ %.0273, %478 ], [ %.0273, %448 ], [ %.0273, %363 ], [ %.0273, %255 ], [ %.2275, %82 ], [ %.2275, %86 ], [ %.2275, %74 ], [ %.2275, %106 ], [ %.2275, %110 ], [ %.2275, %98 ], [ %.2275, %114 ], [ %.2275, %116 ], [ %.0273, %158 ], [ %.0273, %178 ], [ %.0273, %191 ], [ %.0273, %195 ], [ %.0273, %183 ], [ %.0273, %210 ], [ %.0273, %214 ], [ %.0273, %202 ], [ %.0273, %247 ], [ %.0273, %251 ], [ %.0273, %239 ], [ %.0273, %266 ], [ %.0273, %270 ], [ %.0273, %258 ], [ %.0273, %285 ], [ %.0273, %289 ], [ %.0273, %277 ], [ %.0273, %304 ], [ %.0273, %308 ], [ %.0273, %296 ], [ %.0273, %323 ], [ %.0273, %327 ], [ %.0273, %315 ], [ %.0273, %355 ], [ %.0273, %359 ], [ %.0273, %347 ], [ %.0273, %374 ], [ %.0273, %378 ], [ %.0273, %366 ], [ %.0273, %397 ], [ %.0273, %401 ], [ %.0273, %389 ], [ %.0273, %416 ], [ %.0273, %420 ], [ %.0273, %408 ], [ %.0273, %440 ], [ %.0273, %444 ], [ %.0273, %432 ], [ %.0273, %459 ], [ %.0273, %463 ], [ %.0273, %451 ], [ %.0273, %467 ], [ %.0273, %493 ], [ %.0273, %.split ] - %.1271 = phi i8 [ %.0270, %145 ], [ %.0270, %516 ], [ %.0270, %511 ], [ %.0270, %510 ], [ %.0270, %479 ], [ %.0270, %478 ], [ %.0270, %448 ], [ %.0270, %363 ], [ %.0270, %255 ], [ 0, %82 ], [ 0, %86 ], [ 0, %74 ], [ 0, %106 ], [ 0, %110 ], [ 0, %98 ], [ %.2272, %114 ], [ %.2272, %116 ], [ %.0270, %158 ], [ %.0270, %178 ], [ %.0270, %191 ], [ %.0270, %195 ], [ %.0270, %183 ], [ %.0270, %210 ], [ %.0270, %214 ], [ %.0270, %202 ], [ %.0270, %247 ], [ %.0270, %251 ], [ %.0270, %239 ], [ %.0270, %266 ], [ %.0270, %270 ], [ %.0270, %258 ], [ %.0270, %285 ], [ %.0270, %289 ], [ %.0270, %277 ], [ %.0270, %304 ], [ %.0270, %308 ], [ %.0270, %296 ], [ %.0270, %323 ], [ %.0270, %327 ], [ %.0270, %315 ], [ %.0270, %355 ], [ %.0270, %359 ], [ %.0270, %347 ], [ %.0270, %374 ], [ %.0270, %378 ], [ %.0270, %366 ], [ %.0270, %397 ], [ %.0270, %401 ], [ %.0270, %389 ], [ %.0270, %416 ], [ %.0270, %420 ], [ %.0270, %408 ], [ %.0270, %440 ], [ %.0270, %444 ], [ %.0270, %432 ], [ %.0270, %459 ], [ %.0270, %463 ], [ %.0270, %451 ], [ %.0270, %467 ], [ %.0270, %493 ], [ %.0270, %.split ] - %.0269 = phi i64 [ 0, %145 ], [ 0, %516 ], [ %.5.ph, %511 ], [ %.5.ph, %510 ], [ %473, %479 ], [ %473, %478 ], [ %.4, %448 ], [ %.3, %363 ], [ %.2, %255 ], [ 0, %82 ], [ 0, %86 ], [ 0, %74 ], [ 0, %106 ], [ 0, %110 ], [ 0, %98 ], [ 0, %114 ], [ 0, %116 ], [ 0, %158 ], [ 0, %178 ], [ 0, %191 ], [ 0, %195 ], [ 0, %183 ], [ 0, %210 ], [ 0, %214 ], [ 0, %202 ], [ %.2, %247 ], [ %.2, %251 ], [ %.2, %239 ], [ %.2, %266 ], [ %.2, %270 ], [ %.2, %258 ], [ 0, %285 ], [ 0, %289 ], [ 0, %277 ], [ 0, %304 ], [ 0, %308 ], [ 0, %296 ], [ 0, %323 ], [ 0, %327 ], [ 0, %315 ], [ %.3, %355 ], [ %.3, %359 ], [ %.3, %347 ], [ %.3, %374 ], [ %.3, %378 ], [ %.3, %366 ], [ 0, %397 ], [ 0, %401 ], [ 0, %389 ], [ 0, %416 ], [ 0, %420 ], [ 0, %408 ], [ %.4, %440 ], [ %.4, %444 ], [ %.4, %432 ], [ %.4, %459 ], [ %.4, %463 ], [ %.4, %451 ], [ %473, %467 ], [ 0, %493 ], [ 0, %.split ] - %.0 = phi i32 [ 0, %145 ], [ %13, %516 ], [ %13, %511 ], [ %13, %510 ], [ %13, %479 ], [ %13, %478 ], [ %13, %448 ], [ %13, %363 ], [ %13, %255 ], [ 2, %82 ], [ 2, %86 ], [ 2, %74 ], [ 2, %106 ], [ 2, %110 ], [ 2, %98 ], [ 0, %114 ], [ 0, %116 ], [ 0, %158 ], [ 0, %178 ], [ 2, %191 ], [ 2, %195 ], [ 2, %183 ], [ 2, %210 ], [ 2, %214 ], [ 2, %202 ], [ 2, %247 ], [ 2, %251 ], [ 2, %239 ], [ 2, %266 ], [ 2, %270 ], [ 2, %258 ], [ 2, %285 ], [ 2, %289 ], [ 2, %277 ], [ 2, %304 ], [ 2, %308 ], [ 2, %296 ], [ 2, %323 ], [ 2, %327 ], [ 2, %315 ], [ 2, %355 ], [ 2, %359 ], [ 2, %347 ], [ 2, %374 ], [ 2, %378 ], [ 2, %366 ], [ 2, %397 ], [ 2, %401 ], [ 2, %389 ], [ 2, %416 ], [ 2, %420 ], [ 2, %408 ], [ 2, %440 ], [ 2, %444 ], [ 2, %432 ], [ 2, %459 ], [ 2, %463 ], [ 2, %451 ], [ %13, %467 ], [ %13, %493 ], [ %13, %.split ] +.thread439: ; preds = %.split, %493, %467, %451, %463, %459, %432, %444, %440, %408, %420, %416, %389, %401, %397, %366, %378, %374, %347, %359, %355, %315, %327, %323, %296, %308, %304, %277, %289, %285, %258, %270, %266, %239, %251, %247, %202, %214, %210, %183, %195, %191, %178, %158, %116, %98, %110, %106, %74, %86, %82, %516, %255, %363, %448, %479, %478, %511, %510, %145 + %.0281 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ -1, %448 ], [ -1, %363 ], [ %181, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ %181, %191 ], [ %181, %195 ], [ %181, %183 ], [ %181, %210 ], [ %181, %214 ], [ %181, %202 ], [ %181, %247 ], [ %181, %251 ], [ %181, %239 ], [ %181, %266 ], [ %181, %270 ], [ %181, %258 ], [ -1, %285 ], [ -1, %289 ], [ -1, %277 ], [ -1, %304 ], [ -1, %308 ], [ -1, %296 ], [ -1, %323 ], [ -1, %327 ], [ -1, %315 ], [ -1, %355 ], [ -1, %359 ], [ -1, %347 ], [ -1, %374 ], [ -1, %378 ], [ -1, %366 ], [ -1, %397 ], [ -1, %401 ], [ -1, %389 ], [ -1, %416 ], [ -1, %420 ], [ -1, %408 ], [ -1, %440 ], [ -1, %444 ], [ -1, %432 ], [ -1, %459 ], [ -1, %463 ], [ -1, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] + %.0280 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ -1, %448 ], [ -1, %363 ], [ %200, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ -1, %191 ], [ -1, %195 ], [ -1, %183 ], [ %200, %210 ], [ %200, %214 ], [ %200, %202 ], [ %200, %247 ], [ %200, %251 ], [ %200, %239 ], [ %200, %266 ], [ %200, %270 ], [ %200, %258 ], [ -1, %285 ], [ -1, %289 ], [ -1, %277 ], [ -1, %304 ], [ -1, %308 ], [ -1, %296 ], [ -1, %323 ], [ -1, %327 ], [ -1, %315 ], [ -1, %355 ], [ -1, %359 ], [ -1, %347 ], [ -1, %374 ], [ -1, %378 ], [ -1, %366 ], [ -1, %397 ], [ -1, %401 ], [ -1, %389 ], [ -1, %416 ], [ -1, %420 ], [ -1, %408 ], [ -1, %440 ], [ -1, %444 ], [ -1, %432 ], [ -1, %459 ], [ -1, %463 ], [ -1, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] + %.0279 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ -1, %448 ], [ %275, %363 ], [ -1, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ -1, %191 ], [ -1, %195 ], [ -1, %183 ], [ -1, %210 ], [ -1, %214 ], [ -1, %202 ], [ -1, %247 ], [ -1, %251 ], [ -1, %239 ], [ -1, %266 ], [ -1, %270 ], [ -1, %258 ], [ %275, %285 ], [ %275, %289 ], [ %275, %277 ], [ %275, %304 ], [ %275, %308 ], [ %275, %296 ], [ %275, %323 ], [ %275, %327 ], [ %275, %315 ], [ %275, %355 ], [ %275, %359 ], [ %275, %347 ], [ %275, %374 ], [ %275, %378 ], [ %275, %366 ], [ -1, %397 ], [ -1, %401 ], [ -1, %389 ], [ -1, %416 ], [ -1, %420 ], [ -1, %408 ], [ -1, %440 ], [ -1, %444 ], [ -1, %432 ], [ -1, %459 ], [ -1, %463 ], [ -1, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] + %.0278 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ -1, %448 ], [ %294, %363 ], [ -1, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ -1, %191 ], [ -1, %195 ], [ -1, %183 ], [ -1, %210 ], [ -1, %214 ], [ -1, %202 ], [ -1, %247 ], [ -1, %251 ], [ -1, %239 ], [ -1, %266 ], [ -1, %270 ], [ -1, %258 ], [ -1, %285 ], [ -1, %289 ], [ -1, %277 ], [ %294, %304 ], [ %294, %308 ], [ %294, %296 ], [ %294, %323 ], [ %294, %327 ], [ %294, %315 ], [ %294, %355 ], [ %294, %359 ], [ %294, %347 ], [ %294, %374 ], [ %294, %378 ], [ %294, %366 ], [ -1, %397 ], [ -1, %401 ], [ -1, %389 ], [ -1, %416 ], [ -1, %420 ], [ -1, %408 ], [ -1, %440 ], [ -1, %444 ], [ -1, %432 ], [ -1, %459 ], [ -1, %463 ], [ -1, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] + %.0277 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ %387, %448 ], [ -1, %363 ], [ -1, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ -1, %191 ], [ -1, %195 ], [ -1, %183 ], [ -1, %210 ], [ -1, %214 ], [ -1, %202 ], [ -1, %247 ], [ -1, %251 ], [ -1, %239 ], [ -1, %266 ], [ -1, %270 ], [ -1, %258 ], [ -1, %285 ], [ -1, %289 ], [ -1, %277 ], [ -1, %304 ], [ -1, %308 ], [ -1, %296 ], [ -1, %323 ], [ -1, %327 ], [ -1, %315 ], [ -1, %355 ], [ -1, %359 ], [ -1, %347 ], [ -1, %374 ], [ -1, %378 ], [ -1, %366 ], [ %387, %397 ], [ %387, %401 ], [ %387, %389 ], [ %387, %416 ], [ %387, %420 ], [ %387, %408 ], [ %387, %440 ], [ %387, %444 ], [ %387, %432 ], [ %387, %459 ], [ %387, %463 ], [ %387, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] + %.0276 = phi i64 [ -1, %145 ], [ -1, %516 ], [ -1, %511 ], [ -1, %510 ], [ -1, %479 ], [ -1, %478 ], [ %406, %448 ], [ -1, %363 ], [ -1, %255 ], [ -1, %82 ], [ -1, %86 ], [ -1, %74 ], [ -1, %106 ], [ -1, %110 ], [ -1, %98 ], [ -1, %116 ], [ -1, %158 ], [ -1, %178 ], [ -1, %191 ], [ -1, %195 ], [ -1, %183 ], [ -1, %210 ], [ -1, %214 ], [ -1, %202 ], [ -1, %247 ], [ -1, %251 ], [ -1, %239 ], [ -1, %266 ], [ -1, %270 ], [ -1, %258 ], [ -1, %285 ], [ -1, %289 ], [ -1, %277 ], [ -1, %304 ], [ -1, %308 ], [ -1, %296 ], [ -1, %323 ], [ -1, %327 ], [ -1, %315 ], [ -1, %355 ], [ -1, %359 ], [ -1, %347 ], [ -1, %374 ], [ -1, %378 ], [ -1, %366 ], [ -1, %397 ], [ -1, %401 ], [ -1, %389 ], [ %406, %416 ], [ %406, %420 ], [ %406, %408 ], [ %406, %440 ], [ %406, %444 ], [ %406, %432 ], [ %406, %459 ], [ %406, %463 ], [ %406, %451 ], [ -1, %467 ], [ -1, %493 ], [ -1, %.split ] + %.1274 = phi i8 [ %.0273, %145 ], [ %.0273, %516 ], [ %.0273, %511 ], [ %.0273, %510 ], [ %.0273, %479 ], [ %.0273, %478 ], [ %.0273, %448 ], [ %.0273, %363 ], [ %.0273, %255 ], [ %.2275, %82 ], [ %.2275, %86 ], [ %.2275, %74 ], [ %.2275, %106 ], [ %.2275, %110 ], [ %.2275, %98 ], [ %.2275, %116 ], [ %.0273, %158 ], [ %.0273, %178 ], [ %.0273, %191 ], [ %.0273, %195 ], [ %.0273, %183 ], [ %.0273, %210 ], [ %.0273, %214 ], [ %.0273, %202 ], [ %.0273, %247 ], [ %.0273, %251 ], [ %.0273, %239 ], [ %.0273, %266 ], [ %.0273, %270 ], [ %.0273, %258 ], [ %.0273, %285 ], [ %.0273, %289 ], [ %.0273, %277 ], [ %.0273, %304 ], [ %.0273, %308 ], [ %.0273, %296 ], [ %.0273, %323 ], [ %.0273, %327 ], [ %.0273, %315 ], [ %.0273, %355 ], [ %.0273, %359 ], [ %.0273, %347 ], [ %.0273, %374 ], [ %.0273, %378 ], [ %.0273, %366 ], [ %.0273, %397 ], [ %.0273, %401 ], [ %.0273, %389 ], [ %.0273, %416 ], [ %.0273, %420 ], [ %.0273, %408 ], [ %.0273, %440 ], [ %.0273, %444 ], [ %.0273, %432 ], [ %.0273, %459 ], [ %.0273, %463 ], [ %.0273, %451 ], [ %.0273, %467 ], [ %.0273, %493 ], [ %.0273, %.split ] + %.1271 = phi i8 [ %.0270, %145 ], [ %.0270, %516 ], [ %.0270, %511 ], [ %.0270, %510 ], [ %.0270, %479 ], [ %.0270, %478 ], [ %.0270, %448 ], [ %.0270, %363 ], [ %.0270, %255 ], [ 0, %82 ], [ 0, %86 ], [ 0, %74 ], [ 0, %106 ], [ 0, %110 ], [ 0, %98 ], [ 1, %116 ], [ %.0270, %158 ], [ %.0270, %178 ], [ %.0270, %191 ], [ %.0270, %195 ], [ %.0270, %183 ], [ %.0270, %210 ], [ %.0270, %214 ], [ %.0270, %202 ], [ %.0270, %247 ], [ %.0270, %251 ], [ %.0270, %239 ], [ %.0270, %266 ], [ %.0270, %270 ], [ %.0270, %258 ], [ %.0270, %285 ], [ %.0270, %289 ], [ %.0270, %277 ], [ %.0270, %304 ], [ %.0270, %308 ], [ %.0270, %296 ], [ %.0270, %323 ], [ %.0270, %327 ], [ %.0270, %315 ], [ %.0270, %355 ], [ %.0270, %359 ], [ %.0270, %347 ], [ %.0270, %374 ], [ %.0270, %378 ], [ %.0270, %366 ], [ %.0270, %397 ], [ %.0270, %401 ], [ %.0270, %389 ], [ %.0270, %416 ], [ %.0270, %420 ], [ %.0270, %408 ], [ %.0270, %440 ], [ %.0270, %444 ], [ %.0270, %432 ], [ %.0270, %459 ], [ %.0270, %463 ], [ %.0270, %451 ], [ %.0270, %467 ], [ %.0270, %493 ], [ %.0270, %.split ] + %.0269 = phi i64 [ 0, %145 ], [ 0, %516 ], [ %.5.ph, %511 ], [ %.5.ph, %510 ], [ %473, %479 ], [ %473, %478 ], [ %.4, %448 ], [ %.3, %363 ], [ %.2, %255 ], [ 0, %82 ], [ 0, %86 ], [ 0, %74 ], [ 0, %106 ], [ 0, %110 ], [ 0, %98 ], [ 0, %116 ], [ 0, %158 ], [ 0, %178 ], [ 0, %191 ], [ 0, %195 ], [ 0, %183 ], [ 0, %210 ], [ 0, %214 ], [ 0, %202 ], [ %.2, %247 ], [ %.2, %251 ], [ %.2, %239 ], [ %.2, %266 ], [ %.2, %270 ], [ %.2, %258 ], [ 0, %285 ], [ 0, %289 ], [ 0, %277 ], [ 0, %304 ], [ 0, %308 ], [ 0, %296 ], [ 0, %323 ], [ 0, %327 ], [ 0, %315 ], [ %.3, %355 ], [ %.3, %359 ], [ %.3, %347 ], [ %.3, %374 ], [ %.3, %378 ], [ %.3, %366 ], [ 0, %397 ], [ 0, %401 ], [ 0, %389 ], [ 0, %416 ], [ 0, %420 ], [ 0, %408 ], [ %.4, %440 ], [ %.4, %444 ], [ %.4, %432 ], [ %.4, %459 ], [ %.4, %463 ], [ %.4, %451 ], [ %473, %467 ], [ 0, %493 ], [ 0, %.split ] + %.0 = phi i32 [ 0, %145 ], [ %13, %516 ], [ %13, %511 ], [ %13, %510 ], [ %13, %479 ], [ %13, %478 ], [ %13, %448 ], [ %13, %363 ], [ %13, %255 ], [ 2, %82 ], [ 2, %86 ], [ 2, %74 ], [ 2, %106 ], [ 2, %110 ], [ 2, %98 ], [ 0, %116 ], [ 0, %158 ], [ 0, %178 ], [ 2, %191 ], [ 2, %195 ], [ 2, %183 ], [ 2, %210 ], [ 2, %214 ], [ 2, %202 ], [ 2, %247 ], [ 2, %251 ], [ 2, %239 ], [ 2, %266 ], [ 2, %270 ], [ 2, %258 ], [ 2, %285 ], [ 2, %289 ], [ 2, %277 ], [ 2, %304 ], [ 2, %308 ], [ 2, %296 ], [ 2, %323 ], [ 2, %327 ], [ 2, %315 ], [ 2, %355 ], [ 2, %359 ], [ 2, %347 ], [ 2, %374 ], [ 2, %378 ], [ 2, %366 ], [ 2, %397 ], [ 2, %401 ], [ 2, %389 ], [ 2, %416 ], [ 2, %420 ], [ 2, %408 ], [ 2, %440 ], [ 2, %444 ], [ 2, %432 ], [ 2, %459 ], [ 2, %463 ], [ 2, %451 ], [ %13, %467 ], [ %13, %493 ], [ %13, %.split ] %520 = load i32, ptr %12, align 8 %521 = or i32 %520, %.0 store i32 %521, ptr %12, align 8 %522 = trunc nuw i8 %.1274 to i1 - %523 = trunc nuw i8 %.1271 to i1 - br i1 %522, label %524, label %.critedge - -524: ; preds = %.thread439 - %525 = load i32, ptr %14, align 8 - br i1 %523, label %526, label %535 - -526: ; preds = %524 - %527 = icmp ne i32 %525, 0 - %528 = icmp ne i64 %.0269, 0 - %or.cond.i420 = or i1 %528, %527 + br i1 %522, label %.thread483, label %.critedge + +.thread483: ; preds = %114, %.thread439 + %.0269501 = phi i64 [ %.0269, %.thread439 ], [ 0, %114 ] + %.1271500 = phi i8 [ %.1271, %.thread439 ], [ %.2272, %114 ] + %.0276499 = phi i64 [ %.0276, %.thread439 ], [ -1, %114 ] + %.0277498 = phi i64 [ %.0277, %.thread439 ], [ -1, %114 ] + %.0278497 = phi i64 [ %.0278, %.thread439 ], [ -1, %114 ] + %.0279496 = phi i64 [ %.0279, %.thread439 ], [ -1, %114 ] + %.0280495 = phi i64 [ %.0280, %.thread439 ], [ -1, %114 ] + %.0281494 = phi i64 [ %.0281, %.thread439 ], [ -1, %114 ] + %523 = trunc nuw i8 %.1271500 to i1 + %524 = load i32, ptr %14, align 8 + br i1 %523, label %525, label %534 + +525: ; preds = %.thread483 + %526 = icmp ne i32 %524, 0 + %527 = icmp ne i64 %.0269501, 0 + %or.cond.i420 = or i1 %527, %526 br i1 %or.cond.i420, label %print_objname.exit422, label %print_objname.exit422.thread -print_objname.exit422: ; preds = %526 - %529 = load i32, ptr %4, align 8 - %.not.i421.not = icmp eq i32 %529, 0 - br i1 %.not.i421.not, label %530, label %print_objname.exit422.thread +print_objname.exit422: ; preds = %525 + %528 = load i32, ptr %4, align 8 + %.not.i421.not = icmp eq i32 %528, 0 + br i1 %.not.i421.not, label %529, label %print_objname.exit422.thread -530: ; preds = %print_objname.exit422 - %531 = getelementptr inbounds nuw i8, ptr %4, i64 12 - %532 = load i32, ptr %531, align 4 - %533 = icmp sgt i32 %532, 0 - br i1 %533, label %534, label %do_print_objname.exit +529: ; preds = %print_objname.exit422 + %530 = getelementptr inbounds nuw i8, ptr %4, i64 12 + %531 = load i32, ptr %530, align 4 + %532 = icmp sgt i32 %531, 0 + br i1 %532, label %533, label %do_print_objname.exit -534: ; preds = %530 +533: ; preds = %529 call void (ptr, ...) @parallel_print(ptr noundef nonnull @.str) #13 br label %do_print_objname.exit -do_print_objname.exit: ; preds = %530, %534 +do_print_objname.exit: ; preds = %529, %533 call void (ptr, ...) @parallel_print(ptr noundef nonnull @.str.1, ptr noundef nonnull @.str.48, ptr noundef %1, ptr noundef %3) #13 - call void @print_found(i64 noundef %.0269) #13 + call void @print_found(i64 noundef %.0269501) #13 br label %print_objname.exit422.thread -535: ; preds = %524 - %.not396 = icmp eq i32 %525, 0 - br i1 %.not396, label %538, label %536 +534: ; preds = %.thread483 + %.not396 = icmp eq i32 %524, 0 + br i1 %.not396, label %537, label %535 -536: ; preds = %535 +535: ; preds = %534 call void (ptr, ...) @parallel_print(ptr noundef nonnull @.str.20, ptr noundef %1) #13 - %.pre498 = load i32, ptr %14, align 8 - %537 = icmp ne i32 %.pre498, 0 - br label %538 - -538: ; preds = %536, %535 - %539 = phi i1 [ %537, %536 ], [ false, %535 ] - %540 = add i64 %.0269, 1 - %541 = icmp ne i64 %540, 0 - %or.cond.i423 = or i1 %541, %539 + %.pre517 = load i32, ptr %14, align 8 + %536 = icmp ne i32 %.pre517, 0 + br label %537 + +537: ; preds = %535, %534 + %538 = phi i1 [ %536, %535 ], [ false, %534 ] + %539 = add i64 %.0269501, 1 + %540 = icmp ne i64 %539, 0 + %or.cond.i423 = or i1 %540, %538 br i1 %or.cond.i423, label %print_objname.exit425, label %print_objname.exit422.thread -print_objname.exit425: ; preds = %538 - %542 = load i32, ptr %4, align 8 - %.not.i424.not = icmp eq i32 %542, 0 - br i1 %.not.i424.not, label %543, label %print_objname.exit422.thread +print_objname.exit425: ; preds = %537 + %541 = load i32, ptr %4, align 8 + %.not.i424.not = icmp eq i32 %541, 0 + br i1 %.not.i424.not, label %542, label %print_objname.exit422.thread -543: ; preds = %print_objname.exit425 - call void @print_found(i64 noundef %540) #13 +542: ; preds = %print_objname.exit425 + call void @print_found(i64 noundef %539) #13 br label %print_objname.exit422.thread .critedge: ; preds = %.thread439 - br i1 %523, label %544, label %print_objname.exit422.thread + %543 = trunc nuw i8 %.1271 to i1 + br i1 %543, label %544, label %print_objname.exit422.thread 544: ; preds = %.critedge %545 = load i32, ptr %14, align 8 @@ -3762,14 +3771,14 @@ print_objname.exit428: ; preds = %548 call void @print_found(i64 noundef %550) #13 br label %print_objname.exit422.thread -print_objname.exit422.thread: ; preds = %548, %538, %526, %.critedge.thread, %543, %print_objname.exit425, %print_objname.exit428, %553, %.critedge, %print_objname.exit422, %do_print_objname.exit - %.0276479 = phi i64 [ %.0276, %do_print_objname.exit ], [ %.0276, %print_objname.exit422 ], [ %.0276, %543 ], [ %.0276, %print_objname.exit425 ], [ %.0276, %553 ], [ %.0276, %print_objname.exit428 ], [ %.0276, %.critedge ], [ -1, %.critedge.thread ], [ %.0276, %526 ], [ %.0276, %538 ], [ %.0276, %548 ] - %.0277477 = phi i64 [ %.0277, %do_print_objname.exit ], [ %.0277, %print_objname.exit422 ], [ %.0277, %543 ], [ %.0277, %print_objname.exit425 ], [ %.0277, %553 ], [ %.0277, %print_objname.exit428 ], [ %.0277, %.critedge ], [ -1, %.critedge.thread ], [ %.0277, %526 ], [ %.0277, %538 ], [ %.0277, %548 ] - %.0278475 = phi i64 [ %.0278, %do_print_objname.exit ], [ %.0278, %print_objname.exit422 ], [ %.0278, %543 ], [ %.0278, %print_objname.exit425 ], [ %.0278, %553 ], [ %.0278, %print_objname.exit428 ], [ %.0278, %.critedge ], [ -1, %.critedge.thread ], [ %.0278, %526 ], [ %.0278, %538 ], [ %.0278, %548 ] - %.0279473 = phi i64 [ %.0279, %do_print_objname.exit ], [ %.0279, %print_objname.exit422 ], [ %.0279, %543 ], [ %.0279, %print_objname.exit425 ], [ %.0279, %553 ], [ %.0279, %print_objname.exit428 ], [ %.0279, %.critedge ], [ -1, %.critedge.thread ], [ %.0279, %526 ], [ %.0279, %538 ], [ %.0279, %548 ] - %.0280471 = phi i64 [ %.0280, %do_print_objname.exit ], [ %.0280, %print_objname.exit422 ], [ %.0280, %543 ], [ %.0280, %print_objname.exit425 ], [ %.0280, %553 ], [ %.0280, %print_objname.exit428 ], [ %.0280, %.critedge ], [ -1, %.critedge.thread ], [ %.0280, %526 ], [ %.0280, %538 ], [ %.0280, %548 ] - %.0281469 = phi i64 [ %.0281, %do_print_objname.exit ], [ %.0281, %print_objname.exit422 ], [ %.0281, %543 ], [ %.0281, %print_objname.exit425 ], [ %.0281, %553 ], [ %.0281, %print_objname.exit428 ], [ %.0281, %.critedge ], [ -1, %.critedge.thread ], [ %.0281, %526 ], [ %.0281, %538 ], [ %.0281, %548 ] - %.7 = phi i64 [ %.0269, %do_print_objname.exit ], [ %.0269, %print_objname.exit422 ], [ %540, %543 ], [ %540, %print_objname.exit425 ], [ %550, %553 ], [ %550, %print_objname.exit428 ], [ %.0269, %.critedge ], [ 0, %.critedge.thread ], [ 0, %526 ], [ 0, %538 ], [ 0, %548 ] +print_objname.exit422.thread: ; preds = %548, %537, %525, %.critedge.thread, %542, %print_objname.exit425, %print_objname.exit428, %553, %.critedge, %print_objname.exit422, %do_print_objname.exit + %.0276479 = phi i64 [ %.0276499, %do_print_objname.exit ], [ %.0276499, %print_objname.exit422 ], [ %.0276499, %542 ], [ %.0276499, %print_objname.exit425 ], [ %.0276, %553 ], [ %.0276, %print_objname.exit428 ], [ %.0276, %.critedge ], [ -1, %.critedge.thread ], [ %.0276499, %525 ], [ %.0276499, %537 ], [ %.0276, %548 ] + %.0277477 = phi i64 [ %.0277498, %do_print_objname.exit ], [ %.0277498, %print_objname.exit422 ], [ %.0277498, %542 ], [ %.0277498, %print_objname.exit425 ], [ %.0277, %553 ], [ %.0277, %print_objname.exit428 ], [ %.0277, %.critedge ], [ -1, %.critedge.thread ], [ %.0277498, %525 ], [ %.0277498, %537 ], [ %.0277, %548 ] + %.0278475 = phi i64 [ %.0278497, %do_print_objname.exit ], [ %.0278497, %print_objname.exit422 ], [ %.0278497, %542 ], [ %.0278497, %print_objname.exit425 ], [ %.0278, %553 ], [ %.0278, %print_objname.exit428 ], [ %.0278, %.critedge ], [ -1, %.critedge.thread ], [ %.0278497, %525 ], [ %.0278497, %537 ], [ %.0278, %548 ] + %.0279473 = phi i64 [ %.0279496, %do_print_objname.exit ], [ %.0279496, %print_objname.exit422 ], [ %.0279496, %542 ], [ %.0279496, %print_objname.exit425 ], [ %.0279, %553 ], [ %.0279, %print_objname.exit428 ], [ %.0279, %.critedge ], [ -1, %.critedge.thread ], [ %.0279496, %525 ], [ %.0279496, %537 ], [ %.0279, %548 ] + %.0280471 = phi i64 [ %.0280495, %do_print_objname.exit ], [ %.0280495, %print_objname.exit422 ], [ %.0280495, %542 ], [ %.0280495, %print_objname.exit425 ], [ %.0280, %553 ], [ %.0280, %print_objname.exit428 ], [ %.0280, %.critedge ], [ -1, %.critedge.thread ], [ %.0280495, %525 ], [ %.0280495, %537 ], [ %.0280, %548 ] + %.0281469 = phi i64 [ %.0281494, %do_print_objname.exit ], [ %.0281494, %print_objname.exit422 ], [ %.0281494, %542 ], [ %.0281494, %print_objname.exit425 ], [ %.0281, %553 ], [ %.0281, %print_objname.exit428 ], [ %.0281, %.critedge ], [ -1, %.critedge.thread ], [ %.0281494, %525 ], [ %.0281494, %537 ], [ %.0281, %548 ] + %.7 = phi i64 [ %.0269501, %do_print_objname.exit ], [ %.0269501, %print_objname.exit422 ], [ %539, %542 ], [ %539, %print_objname.exit425 ], [ %550, %553 ], [ %550, %print_objname.exit428 ], [ %.0269, %.critedge ], [ 0, %.critedge.thread ], [ 0, %525 ], [ 0, %537 ], [ 0, %548 ] %554 = getelementptr inbounds nuw i8, ptr %7, i64 8 %555 = load ptr, ptr %554, align 8 %.not399 = icmp eq ptr %555, null diff --git a/bench/hermes/optimized/CompilerDriver.cpp.ll b/bench/hermes/optimized/CompilerDriver.cpp.ll index a726bc7ea55..3841c61920a 100644 --- a/bench/hermes/optimized/CompilerDriver.cpp.ll +++ b/bench/hermes/optimized/CompilerDriver.cpp.ll @@ -3541,7 +3541,7 @@ if.end.i.i42.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end8.i if.end8.i: ; preds = %if.end.i.i42.i, %if.then.i.i39.i, %if.then7.i, %land.lhs.true5.i, %land.lhs.true3.i, %if.end.i13 - %errored.1.i = phi i8 [ %errored.0.i, %land.lhs.true5.i ], [ %errored.0.i, %land.lhs.true3.i ], [ %errored.0.i, %if.end.i13 ], [ %errored.0.i, %if.then7.i ], [ 1, %if.end.i.i42.i ], [ 1, %if.then.i.i39.i ] + %errored.1.i = phi i8 [ %errored.0.i, %land.lhs.true5.i ], [ %errored.0.i, %land.lhs.true3.i ], [ %errored.0.i, %if.end.i13 ], [ 1, %if.then7.i ], [ 1, %if.end.i.i42.i ], [ 1, %if.then.i.i39.i ] %28 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL15LazyCompilationE, i64 152), align 8 %tobool.i.i47.i = trunc i8 %28 to i1 br i1 %tobool.i.i47.i, label %land.lhs.true10.i, label %if.end13.i15 @@ -3600,7 +3600,7 @@ if.end.i.i71.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end13.i15 if.end13.i15: ; preds = %if.end.i.i71.i, %if.then.i.i68.i, %if.then12.i, %land.lhs.true10.i, %if.end8.i - %errored.2.i = phi i8 [ %errored.1.i, %land.lhs.true10.i ], [ %errored.1.i, %if.end8.i ], [ %errored.1.i, %if.then12.i ], [ 1, %if.end.i.i71.i ], [ 1, %if.then.i.i68.i ] + %errored.2.i = phi i8 [ %errored.1.i, %land.lhs.true10.i ], [ %errored.1.i, %if.end8.i ], [ 1, %if.then12.i ], [ 1, %if.end.i.i71.i ], [ 1, %if.then.i.i68.i ] %35 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL15LazyCompilationE, i64 152), align 8 %tobool.i.i76.i = trunc i8 %35 to i1 br i1 %tobool.i.i76.i, label %if.then15.i, label %if.end37.i @@ -3659,7 +3659,7 @@ if.end.i.i99.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end19.i if.end19.i: ; preds = %if.end.i.i99.i, %if.then.i.i96.i, %if.then18.i19, %if.then15.i - %errored.4.i = phi i8 [ %errored.2.i, %if.then15.i ], [ %errored.2.i, %if.then18.i19 ], [ 1, %if.end.i.i99.i ], [ 1, %if.then.i.i96.i ] + %errored.4.i = phi i8 [ %errored.2.i, %if.then15.i ], [ 1, %if.then18.i19 ], [ 1, %if.end.i.i99.i ], [ 1, %if.then.i.i96.i ] %42 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL10DumpTargetE, i64 152), align 8 %cmp21.not.i = icmp eq i32 %42, 12 br i1 %cmp21.not.i, label %if.end23.i, label %if.then22.i @@ -3713,7 +3713,7 @@ if.end.i.i126.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end23.i if.end23.i: ; preds = %if.end.i.i126.i, %if.then.i.i123.i, %if.then22.i, %if.end19.i - %errored.5.i = phi i8 [ %errored.4.i, %if.end19.i ], [ %errored.4.i, %if.then22.i ], [ 1, %if.end.i.i126.i ], [ 1, %if.then.i.i123.i ] + %errored.5.i = phi i8 [ %errored.4.i, %if.end19.i ], [ 1, %if.then22.i ], [ 1, %if.end.i.i126.i ], [ 1, %if.then.i.i123.i ] %48 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2cl17OptimizationLevelE, i64 152), align 8 %cmp25.i20 = icmp sgt i32 %48, 1 br i1 %cmp25.i20, label %if.then26.i21, label %if.end27.i @@ -3767,7 +3767,7 @@ if.end.i.i153.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end27.i if.end27.i: ; preds = %if.end.i.i153.i, %if.then.i.i150.i, %if.then26.i21, %if.end23.i - %errored.6.i = phi i8 [ %errored.5.i, %if.end23.i ], [ %errored.5.i, %if.then26.i21 ], [ 1, %if.end.i.i153.i ], [ 1, %if.then.i.i150.i ] + %errored.6.i = phi i8 [ %errored.5.i, %if.end23.i ], [ 1, %if.then26.i21 ], [ 1, %if.end.i.i153.i ], [ 1, %if.then.i.i150.i ] %54 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL12BytecodeModeE, i64 152), align 8 %tobool.i.i158.i = trunc i8 %54 to i1 br i1 %tobool.i.i158.i, label %if.then29.i, label %if.end30.i @@ -3821,7 +3821,7 @@ if.end.i.i181.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end30.i if.end30.i: ; preds = %if.end.i.i181.i, %if.then.i.i178.i, %if.then29.i, %if.end27.i - %errored.7.i = phi i8 [ %errored.6.i, %if.end27.i ], [ %errored.6.i, %if.then29.i ], [ 1, %if.end.i.i181.i ], [ 1, %if.then.i.i178.i ] + %errored.7.i = phi i8 [ %errored.6.i, %if.end27.i ], [ 1, %if.then29.i ], [ 1, %if.end.i.i181.i ], [ 1, %if.then.i.i178.i ] %60 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14CustomOptimizeB5cxx11E, i64 152), align 8 %61 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14CustomOptimizeB5cxx11E, i64 160), align 8 %cmp.i.i.i186.i = icmp eq ptr %60, %61 @@ -3876,7 +3876,7 @@ if.end.i.i209.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end33.i if.end33.i: ; preds = %if.end.i.i209.i, %if.then.i.i206.i, %if.then32.i, %if.end30.i - %errored.8.i = phi i8 [ %errored.7.i, %if.end30.i ], [ %errored.7.i, %if.then32.i ], [ 1, %if.end.i.i209.i ], [ 1, %if.then.i.i206.i ] + %errored.8.i = phi i8 [ %errored.7.i, %if.end30.i ], [ 1, %if.then32.i ], [ 1, %if.end.i.i209.i ], [ 1, %if.then.i.i206.i ] %67 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL8CommonJSE, i64 152), align 8 %tobool.i.i214.i = trunc i8 %67 to i1 br i1 %tobool.i.i214.i, label %if.then35.i, label %if.end37.i @@ -3930,7 +3930,7 @@ if.end.i.i237.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end37.i if.end37.i: ; preds = %if.end.i.i237.i, %if.then.i.i234.i, %if.then35.i, %if.end33.i, %if.end13.i15 - %errored.3.i = phi i8 [ %errored.8.i, %if.end33.i ], [ %errored.2.i, %if.end13.i15 ], [ %errored.8.i, %if.then35.i ], [ 1, %if.end.i.i237.i ], [ 1, %if.then.i.i234.i ] + %errored.3.i = phi i8 [ %errored.8.i, %if.end33.i ], [ %errored.2.i, %if.end13.i15 ], [ 1, %if.then35.i ], [ 1, %if.end.i.i237.i ], [ 1, %if.then.i.i234.i ] %73 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2cl14InputFilenamesB5cxx11E, i64 160), align 8 %74 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2cl14InputFilenamesB5cxx11E, i64 152), align 8 %sub.ptr.lhs.cast.i.i.i16 = ptrtoint ptr %73 to i64 @@ -3993,7 +3993,7 @@ if.end.i.i265.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end43.i if.end43.i: ; preds = %if.end.i.i265.i, %if.then.i.i262.i, %if.then42.i, %if.then40.i - %errored.10.i = phi i8 [ %errored.3.i, %if.then40.i ], [ %errored.3.i, %if.then42.i ], [ 1, %if.end.i.i265.i ], [ 1, %if.then.i.i262.i ] + %errored.10.i = phi i8 [ %errored.3.i, %if.then40.i ], [ 1, %if.then42.i ], [ 1, %if.end.i.i265.i ], [ 1, %if.then.i.i262.i ] %81 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14BytecodeFormatE, i64 152), align 8 %cmp45.not.i = icmp eq i32 %81, 0 br i1 %cmp45.not.i, label %if.end47.i, label %if.then46.i @@ -4047,7 +4047,7 @@ if.end.i.i292.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end47.i if.end47.i: ; preds = %if.end.i.i292.i, %if.then.i.i289.i, %if.then46.i, %if.end43.i - %errored.11.i = phi i8 [ %errored.10.i, %if.end43.i ], [ %errored.10.i, %if.then46.i ], [ 1, %if.end.i.i292.i ], [ 1, %if.then.i.i289.i ] + %errored.11.i = phi i8 [ %errored.10.i, %if.end43.i ], [ 1, %if.then46.i ], [ 1, %if.end.i.i292.i ], [ 1, %if.then.i.i289.i ] %87 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL8CommonJSE, i64 152), align 8 %tobool.i.i297.i = trunc i8 %87 to i1 br i1 %tobool.i.i297.i, label %if.end51.i, label %if.then49.i @@ -4101,7 +4101,7 @@ if.end.i.i320.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end51.i if.end51.i: ; preds = %if.end.i.i320.i, %if.then.i.i317.i, %if.then49.i, %if.end47.i, %if.end37.i - %errored.9.i = phi i8 [ %errored.11.i, %if.end47.i ], [ %errored.3.i, %if.end37.i ], [ %errored.11.i, %if.then49.i ], [ 1, %if.end.i.i320.i ], [ 1, %if.then.i.i317.i ] + %errored.9.i = phi i8 [ %errored.11.i, %if.end47.i ], [ %errored.3.i, %if.end37.i ], [ 1, %if.then49.i ], [ 1, %if.end.i.i320.i ], [ 1, %if.then.i.i317.i ] %93 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL15OutputSourceMapE, i64 152), align 8 %tobool.i.i325.i = trunc i8 %93 to i1 br i1 %tobool.i.i325.i, label %if.then53.i, label %if.end65.i @@ -4159,7 +4159,7 @@ if.end.i.i348.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end56.i if.end56.i: ; preds = %if.end.i.i348.i, %if.then.i.i345.i, %if.then55.i, %if.then53.i - %errored.13.i = phi i8 [ %errored.9.i, %if.then53.i ], [ %errored.9.i, %if.then55.i ], [ 1, %if.end.i.i348.i ], [ 1, %if.then.i.i345.i ] + %errored.13.i = phi i8 [ %errored.9.i, %if.then53.i ], [ 1, %if.then55.i ], [ 1, %if.end.i.i348.i ], [ 1, %if.then.i.i345.i ] %99 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14BytecodeFormatE, i64 152), align 8 %cmp58.not.i = icmp eq i32 %99, 0 br i1 %cmp58.not.i, label %if.end60.i, label %if.then59.i @@ -4213,7 +4213,7 @@ if.end.i.i375.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end60.i if.end60.i: ; preds = %if.end.i.i375.i, %if.then.i.i372.i, %if.then59.i, %if.end56.i - %errored.14.i = phi i8 [ %errored.13.i, %if.end56.i ], [ %errored.13.i, %if.then59.i ], [ 1, %if.end.i.i375.i ], [ 1, %if.then.i.i372.i ] + %errored.14.i = phi i8 [ %errored.13.i, %if.end56.i ], [ 1, %if.then59.i ], [ 1, %if.end.i.i375.i ], [ 1, %if.then.i.i372.i ] %105 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL10DumpTargetE, i64 152), align 8 %cmp62.not.i = icmp eq i32 %105, 11 br i1 %cmp62.not.i, label %if.end65.i, label %if.then63.i @@ -4267,7 +4267,7 @@ if.end.i.i402.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end65.i if.end65.i: ; preds = %if.end.i.i402.i, %if.then.i.i399.i, %if.then63.i, %if.end60.i, %if.end51.i - %errored.12.i = phi i8 [ %errored.14.i, %if.end60.i ], [ %errored.9.i, %if.end51.i ], [ %errored.14.i, %if.then63.i ], [ 1, %if.end.i.i402.i ], [ 1, %if.then.i.i399.i ] + %errored.12.i = phi i8 [ %errored.14.i, %if.end60.i ], [ %errored.9.i, %if.end51.i ], [ 1, %if.then63.i ], [ 1, %if.end.i.i402.i ], [ 1, %if.then.i.i399.i ] %111 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL12BytecodeModeE, i64 152), align 8 %tobool.i.i407.i = trunc i8 %111 to i1 br i1 %tobool.i.i407.i, label %land.lhs.true67.i, label %if.end79.i @@ -4331,13 +4331,12 @@ if.end.i.i430.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end74thread-pre-split.i if.end74thread-pre-split.i: ; preds = %if.end.i.i430.i, %if.then.i.i427.i, %if.then73.i - %errored.16.ph.i = phi i8 [ 1, %if.then.i.i427.i ], [ 1, %if.end.i.i430.i ], [ %errored.12.i, %if.then73.i ] %.pr.i = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL10DumpTargetE, i64 152), align 8 br label %if.end74.i if.end74.i: ; preds = %if.end74thread-pre-split.i, %if.then70.i %119 = phi i32 [ %.pr.i, %if.end74thread-pre-split.i ], [ %112, %if.then70.i ] - %errored.16.i = phi i8 [ %errored.16.ph.i, %if.end74thread-pre-split.i ], [ %errored.12.i, %if.then70.i ] + %errored.16.i = phi i8 [ 1, %if.end74thread-pre-split.i ], [ %errored.12.i, %if.then70.i ] %cmp76.not.i = icmp eq i32 %119, 10 br i1 %cmp76.not.i, label %if.end79.i, label %if.then77.i @@ -4390,7 +4389,7 @@ if.end.i.i457.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end79.i if.end79.i: ; preds = %if.end.i.i457.i, %if.then.i.i454.i, %if.then77.i, %if.end74.i, %land.lhs.true67.i, %if.end65.i - %errored.15.i = phi i8 [ %errored.12.i, %land.lhs.true67.i ], [ %errored.16.i, %if.end74.i ], [ %errored.12.i, %if.end65.i ], [ %errored.16.i, %if.then77.i ], [ 1, %if.end.i.i457.i ], [ 1, %if.then.i.i454.i ] + %errored.15.i = phi i8 [ %errored.12.i, %land.lhs.true67.i ], [ %errored.16.i, %if.end74.i ], [ %errored.12.i, %if.end65.i ], [ 1, %if.then77.i ], [ 1, %if.end.i.i457.i ], [ 1, %if.then.i.i454.i ] %125 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL12InstrumentIRE, i64 152), align 8 %tobool.i.i462.i = trunc i8 %125 to i1 %tobool.i463.i = trunc nuw i8 %errored.15.i to i1 @@ -4446,7 +4445,7 @@ if.end.i.i485.i: ; preds = %_ZN4llvh11raw_ostre _ZN12_GLOBAL__N_113validateFlagsEv.exit: ; preds = %if.end79.i br i1 %tobool.i463.i, label %if.then, label %if.end -if.then: ; preds = %if.then81.i, %if.then.i.i482.i, %if.end.i.i485.i, %_ZN12_GLOBAL__N_113validateFlagsEv.exit +if.then: ; preds = %if.then.i.i482.i, %if.end.i.i485.i, %if.then81.i, %_ZN12_GLOBAL__N_113validateFlagsEv.exit store i32 1, ptr %agg.result, align 8 %bytecodeProvider.i = getelementptr inbounds nuw i8, ptr %agg.result, i64 8 %filename.i.i = getelementptr inbounds nuw i8, ptr %agg.result, i64 40 diff --git a/bench/hermes/optimized/synth.cpp.ll b/bench/hermes/optimized/synth.cpp.ll index 325de509ae5..1b51dd47629 100644 --- a/bench/hermes/optimized/synth.cpp.ll +++ b/bench/hermes/optimized/synth.cpp.ll @@ -3840,7 +3840,7 @@ invoke.cont38: ; preds = %if.then.i.i, %invok %_ZN2clL11MaxHeapSizeE.val20 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL11MaxHeapSizeE, i64 152), align 8 %cmp.i41 = icmp sgt i32 %_ZN2clL11MaxHeapSizeE.val, 0 %_ZN2clL15OccupancyTargetE.val = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL15OccupancyTargetE, i64 8), align 8 - %_ZN2clL15OccupancyTargetE.val21241242 = load double, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL15OccupancyTargetE, i64 152), align 8 + %_ZN2clL15OccupancyTargetE.val21245246 = load double, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL15OccupancyTargetE, i64 152), align 8 %cmp.i46 = icmp sgt i32 %_ZN2clL15OccupancyTargetE.val, 0 %20 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL19ShouldReleaseUnusedE, i64 8), align 8 %cmp.i48 = icmp sgt i32 %20, 0 @@ -3870,10 +3870,10 @@ invoke.cont38: ; preds = %if.then.i.i, %invok %bytecodeWarmupPercent = getelementptr inbounds nuw i8, ptr %options, i64 308 store i64 %retval.sroa.0.0.insert.insert.i65, ptr %bytecodeWarmupPercent, align 4 %_ZN2clL14GCSanitizeRateE.val = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14GCSanitizeRateE, i64 8), align 8 - %_ZN2clL14GCSanitizeRateE.val22243244 = load double, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14GCSanitizeRateE, i64 152), align 8 + %_ZN2clL14GCSanitizeRateE.val22247248 = load double, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14GCSanitizeRateE, i64 152), align 8 %cmp.i66 = icmp sgt i32 %_ZN2clL14GCSanitizeRateE.val, 0 %26 = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL20GCSanitizeRandomSeedE, i64 152), align 8 - %tobool.not.not = icmp ne i64 %26, 0 + %tobool.not.not = icmp eq i64 %26, 0 %ShouldRecordStats_.i = getelementptr inbounds nuw i8, ptr %options, i64 48 store i8 %shouldPrintGCStats.0, ptr %ShouldRecordStats_.i, align 8 %ShouldRecordStatsExplicit_.i = getelementptr inbounds nuw i8, ptr %options, i64 206 @@ -3910,7 +3910,7 @@ if.end121: ; preds = %invoke.cont117, %if invoke.cont126: ; preds = %if.end121 %OccupancyTarget_.i = getelementptr inbounds nuw i8, ptr %options, i64 16 - store double %_ZN2clL15OccupancyTargetE.val21241242, ptr %OccupancyTarget_.i, align 8 + store double %_ZN2clL15OccupancyTargetE.val21245246, ptr %OccupancyTarget_.i, align 8 %OccupancyTargetExplicit_.i = getelementptr inbounds nuw i8, ptr %options, i64 203 store i8 1, ptr %OccupancyTargetExplicit_.i, align 1 br label %if.end130 @@ -3948,21 +3948,27 @@ invoke.cont154: ; preds = %if.end149 br label %if.end159 if.end159: ; preds = %invoke.cont154, %if.end149 - %brmerge = select i1 %cmp.i66, i1 true, i1 %tobool.not.not - br i1 %brmerge, label %if.end172, label %if.end187 + br i1 %cmp.i66, label %if.end172, label %lor.lhs.false + +lor.lhs.false: ; preds = %if.end159 + br i1 %tobool.not.not, label %if.end187, label %invoke.cont183 if.end172: ; preds = %if.end159 - %_ZN2clL14GCSanitizeRateE.val22243244.mux = select i1 %cmp.i66, double %_ZN2clL14GCSanitizeRateE.val22243244, double 0.000000e+00 - %spec.select240 = select i1 %tobool.not.not, i64 %26, i64 -1 + %spec.select244 = select i1 %tobool.not.not, i64 -1, i64 %26 + br label %invoke.cont183 + +invoke.cont183: ; preds = %lor.lhs.false, %if.end172 + %sanitizeConfigBuilder.sroa.0.0241 = phi double [ %_ZN2clL14GCSanitizeRateE.val22247248, %if.end172 ], [ 0.000000e+00, %lor.lhs.false ] + %sanitizeConfigBuilder.sroa.4.0 = phi i64 [ %spec.select244, %if.end172 ], [ %26, %lor.lhs.false ] %SanitizeConfig_.i = getelementptr inbounds nuw i8, ptr %options, i64 32 - store double %_ZN2clL14GCSanitizeRateE.val22243244.mux, ptr %SanitizeConfig_.i, align 8 + store double %sanitizeConfigBuilder.sroa.0.0241, ptr %SanitizeConfig_.i, align 8 %SanitizeConfig.sroa.2.0.SanitizeConfig_.sroa_idx.i = getelementptr inbounds nuw i8, ptr %options, i64 40 - store i64 %spec.select240, ptr %SanitizeConfig.sroa.2.0.SanitizeConfig_.sroa_idx.i, align 8 + store i64 %sanitizeConfigBuilder.sroa.4.0, ptr %SanitizeConfig.sroa.2.0.SanitizeConfig_.sroa_idx.i, align 8 %SanitizeConfigExplicit_.i = getelementptr inbounds nuw i8, ptr %options, i64 205 store i8 1, ptr %SanitizeConfigExplicit_.i, align 1 br label %if.end187 -if.end187: ; preds = %if.end159, %if.end172 +if.end187: ; preds = %invoke.cont183, %lor.lhs.false %27 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL13BytecodeFilesB5cxx11E, i64 152), align 8 %28 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL13BytecodeFilesB5cxx11E, i64 160), align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %bytecodeFiles, i8 0, i64 24, i1 false) diff --git a/bench/hyperscan/optimized/ng_som.cpp.ll b/bench/hyperscan/optimized/ng_som.cpp.ll index 10b8c7a320f..aa6bb1acaeb 100644 --- a/bench/hyperscan/optimized/ng_som.cpp.ll +++ b/bench/hyperscan/optimized/ng_som.cpp.ll @@ -10896,17 +10896,15 @@ invoke.cont63.i119: ; preds = %if.then.i.i.i.i.i.i invoke.cont71.i: ; preds = %invoke.cont63.i119, %invoke.cont71.i %ai.sroa.0.0353.i = phi ptr [ %ai.sroa.0.0.i, %invoke.cont71.i ], [ %ai.sroa.0.0350.i, %invoke.cont63.i119 ] - %lhs_all_vac.0352.i = phi i8 [ %spec.select.i, %invoke.cont71.i ], [ 1, %invoke.cont63.i119 ] %target.i.i.i135.i = getelementptr inbounds nuw i8, ptr %ai.sroa.0.0353.i, i64 40 %204 = load ptr, ptr %target.i.i.i135.i, align 8 %index.i.i120 = getelementptr inbounds nuw i8, ptr %204, i64 80 %205 = load i64, ptr %index.i.i120, align 8 - %cmp.i136.i = icmp ult i64 %205, 4 - %spec.select.i = select i1 %cmp.i136.i, i8 %lhs_all_vac.0352.i, i8 0 + %.fr = freeze i64 %205 + %cmp.i136.i = icmp ult i64 %.fr, 4 %ai.sroa.0.0.i = load ptr, ptr %ai.sroa.0.0353.i, align 8 %cmp.i.i.i.i.i.i.i.i = icmp ne ptr %ai.sroa.0.0.i, %m_header.i.i.i.i.i.i - %tobool69.i = trunc nuw i8 %spec.select.i to i1 - %206 = select i1 %cmp.i.i.i.i.i.i.i.i, i1 %tobool69.i, i1 false + %206 = and i1 %cmp.i.i.i.i.i.i.i.i, %cmp.i136.i br i1 %206, label %invoke.cont71.i, label %invoke.cont84.i121 lpad47.loopexit.i: ; preds = %for.body.i.i @@ -10932,33 +10930,29 @@ lpad54.i: ; preds = %if.then.i.i.i.i.i.i br label %ehcleanup366.i invoke.cont84.i121: ; preds = %invoke.cont71.i, %invoke.cont63.i119 - %lhs_all_vac.0.lcssa.i = phi i8 [ 1, %invoke.cont63.i119 ], [ %spec.select.i, %invoke.cont71.i ] + %lhs_all_vac.0.lcssa.i = phi i1 [ true, %invoke.cont63.i119 ], [ %cmp.i136.i, %invoke.cont71.i ] %start82.i = getelementptr inbounds nuw i8, ptr %203, i64 72 %agg.tmp80.sroa.0.0.copyload.i = load ptr, ptr %start82.i, align 8 %m_header.i.i.i.i.i137.i = getelementptr inbounds nuw i8, ptr %agg.tmp80.sroa.0.0.copyload.i, i64 136 %ai.sroa.0.1354.i = load ptr, ptr %m_header.i.i.i.i.i137.i, align 8 %cmp.i.i.i.i.i.i.i141355.i = icmp ne ptr %ai.sroa.0.1354.i, %m_header.i.i.i.i.i137.i - %tobool92356.i = trunc nuw i8 %lhs_all_vac.0.lcssa.i to i1 - %209 = select i1 %cmp.i.i.i.i.i.i.i141355.i, i1 %tobool92356.i, i1 false + %209 = and i1 %cmp.i.i.i.i.i.i.i141355.i, %lhs_all_vac.0.lcssa.i br i1 %209, label %invoke.cont96.i, label %for.end105.i invoke.cont96.i: ; preds = %invoke.cont84.i121, %invoke.cont96.i %ai.sroa.0.1358.i = phi ptr [ %ai.sroa.0.1.i, %invoke.cont96.i ], [ %ai.sroa.0.1354.i, %invoke.cont84.i121 ] - %lhs_all_vac.2357.i = phi i8 [ %spec.select60.i, %invoke.cont96.i ], [ %lhs_all_vac.0.lcssa.i, %invoke.cont84.i121 ] %target.i.i.i142.i = getelementptr inbounds nuw i8, ptr %ai.sroa.0.1358.i, i64 40 %210 = load ptr, ptr %target.i.i.i142.i, align 8 %index.i146.i = getelementptr inbounds nuw i8, ptr %210, i64 80 %211 = load i64, ptr %index.i146.i, align 8 %cmp.i147.i = icmp ult i64 %211, 4 - %spec.select60.i = select i1 %cmp.i147.i, i8 %lhs_all_vac.2357.i, i8 0 %ai.sroa.0.1.i = load ptr, ptr %ai.sroa.0.1358.i, align 8 %cmp.i.i.i.i.i.i.i141.i = icmp ne ptr %ai.sroa.0.1.i, %m_header.i.i.i.i.i137.i - %tobool92.i = trunc nuw i8 %spec.select60.i to i1 - %212 = select i1 %cmp.i.i.i.i.i.i.i141.i, i1 %tobool92.i, i1 false + %212 = select i1 %cmp.i.i.i.i.i.i.i141.i, i1 %cmp.i147.i, i1 false br i1 %212, label %invoke.cont96.i, label %for.end105.i for.end105.i: ; preds = %invoke.cont96.i, %invoke.cont84.i121 - %tobool92.lcssa.i = phi i1 [ %tobool92356.i, %invoke.cont84.i121 ], [ %tobool92.i, %invoke.cont96.i ] + %tobool92.lcssa.i = phi i1 [ %lhs_all_vac.0.lcssa.i, %invoke.cont84.i121 ], [ %cmp.i147.i, %invoke.cont96.i ] br i1 %tobool92.lcssa.i, label %if.then107.i, label %if.else.i if.then107.i: ; preds = %for.end105.i diff --git a/bench/icu/optimized/numparse_decimal.ll b/bench/icu/optimized/numparse_decimal.ll index 4cb22bfef14..98953e1f84f 100644 --- a/bench/icu/optimized/numparse_decimal.ll +++ b/bench/icu/optimized/numparse_decimal.ll @@ -844,7 +844,7 @@ invoke.cont169: ; preds = %if.then168 if.end172: ; preds = %if.then153, %invoke.cont165, %invoke.cont169, %land.lhs.true160, %if.end158 %maybeMore.7225 = phi i8 [ %maybeMore.7, %if.end158 ], [ %maybeMore.7, %invoke.cont169 ], [ %maybeMore.7, %invoke.cont165 ], [ %maybeMore.7, %land.lhs.true160 ], [ %frombool148, %if.then153 ] - %isGrouping.1224 = phi i8 [ %isGrouping.0, %if.end158 ], [ %isGrouping.0, %invoke.cont169 ], [ %isGrouping.0, %invoke.cont165 ], [ %isGrouping.0, %land.lhs.true160 ], [ 1, %if.then153 ] + %isGrouping.1224 = phi i8 [ 1, %if.end158 ], [ %isGrouping.0, %invoke.cont169 ], [ %isGrouping.0, %invoke.cont165 ], [ %isGrouping.0, %land.lhs.true160 ], [ 1, %if.then153 ] %isDecimal.1 = phi i1 [ %isDecimal.0, %if.end158 ], [ true, %invoke.cont169 ], [ %isDecimal.0, %invoke.cont165 ], [ %isDecimal.0, %land.lhs.true160 ], [ %isDecimal.0, %if.then153 ] %33 = load i8, ptr %groupingDisabled, align 1 %tobool174 = trunc i8 %33 to i1 diff --git a/bench/image-rs/optimized/1njpscpjlgoe3i07.ll b/bench/image-rs/optimized/1njpscpjlgoe3i07.ll index f5b66d2e10c..b7efc223653 100644 --- a/bench/image-rs/optimized/1njpscpjlgoe3i07.ll +++ b/bench/image-rs/optimized/1njpscpjlgoe3i07.ll @@ -22402,10 +22402,10 @@ define hidden noundef zeroext i1 @"_ZN74_$LT$core..result..Result$LT$T$C$E$GT$$u 6: ; preds = %2 %trunc = trunc nuw i64 %3 to i1 - br i1 %trunc, label %15, label %8 + br i1 %trunc, label %7, label %8 -7: ; preds = %2, %15, %8 - %.0 = phi i1 [ true, %15 ], [ %14, %8 ], [ false, %2 ] +7: ; preds = %6, %2, %8 + %.0 = phi i1 [ %14, %8 ], [ false, %2 ], [ true, %6 ] ret i1 %.0 8: ; preds = %6 @@ -22419,11 +22419,6 @@ define hidden noundef zeroext i1 @"_ZN74_$LT$core..result..Result$LT$T$C$E$GT$$u %13 = load i64, ptr %11, align 8, !alias.scope !4623, !noalias !4620, !noundef !5 %14 = icmp eq i64 %12, %13 br label %7 - -15: ; preds = %6 - %16 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %16) - br label %7 } ; Function Attrs: inlinehint nonlazybind uwtable @@ -27837,7 +27832,7 @@ define internal fastcc void @_ZN5image6codecs3pnm7decoder12HeaderReader13read_ne %.sroa.2.0..sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %13, i64 1 %.sroa.410.0..sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %13, i64 8 %25 = getelementptr inbounds nuw i8, ptr %12, i64 8 - %.sroa.9.8..sroa_idx82.i = getelementptr inbounds nuw i8, ptr %17, i64 1 + %.sroa.9.8..sroa_idx81.i = getelementptr inbounds nuw i8, ptr %17, i64 1 br label %26 26: ; preds = %83, %2 @@ -27917,12 +27912,12 @@ _ZN4core4iter6traits8iterator8Iterator4find17h6a09a7965df17cbdE.exit.thread.i: ; br label %.thread.i .thread70.loopexit.split-lp.loopexit.i: ; preds = %26 - %lpad.loopexit102.i = landingpad { ptr, i32 } + %lpad.loopexit101.i = landingpad { ptr, i32 } cleanup br label %.thread.i .thread70.loopexit.split-lp.loopexit.split-lp.i: ; preds = %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread.i, %48, %46 - %lpad.loopexit.split-lp103.i = landingpad { ptr, i32 } + %lpad.loopexit.split-lp102.i = landingpad { ptr, i32 } cleanup br label %.thread.i @@ -27936,7 +27931,7 @@ _ZN4core4iter6traits8iterator8Iterator4find17h6a09a7965df17cbdE.exit.thread.i: ; call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %13), !noalias !5465 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %17), !noalias !5455 store i8 0, ptr %17, align 8, !noalias !5455 - store i8 %.sroa.2.0.copyload.i.i.i.i, ptr %.sroa.9.8..sroa_idx82.i, align 1, !noalias !5455 + store i8 %.sroa.2.0.copyload.i.i.i.i, ptr %.sroa.9.8..sroa_idx81.i, align 1, !noalias !5455 switch i8 %.sroa.2.0.copyload.i.i.i.i, label %50 [ i8 9, label %52 i8 10, label %52 @@ -28131,7 +28126,7 @@ _ZN4core4iter6traits8iterator8Iterator4find17h6a09a7965df17cbdE.exit.thread.i: ; .preheader.i.i: ; preds = %86, %109 %.sroa.6.0.i.i = phi i64 [ %110, %109 ], [ %43, %86 ] %.not18.i.i = icmp eq i64 %.sroa.6.0.i.i, 0 - br i1 %.not18.i.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread96.i, label %109 + br i1 %.not18.i.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread95.i, label %109 109: ; preds = %.preheader.i.i %110 = add i64 %.sroa.6.0.i.i, -1 @@ -28145,9 +28140,9 @@ _ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.i: ; preds = %105, %97 %.0.copyload11.i.i = load i64, ptr %114, align 1, !alias.scope !5538, !noalias !5471 %115 = and i64 %.0.copyload11.i.i, -9187201950435737472 %.not.i.i = icmp eq i64 %115, 0 - br i1 %.not.i.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread96.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread.i + br i1 %.not.i.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread95.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread.i -_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread96.i: ; preds = %.preheader.i.i, %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.i +_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread95.i: ; preds = %.preheader.i.i, %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.i call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15), !noalias !5455 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %15, ptr noundef nonnull align 8 dereferenceable(24) %19, i64 24, i1 false), !noalias !5455 call void @llvm.experimental.noalias.scope.decl(metadata !5541) @@ -28161,18 +28156,18 @@ _ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread96.i: ; preds = %.p invoke void @_ZN4core3str8converts9from_utf817hc5206d8edcf9d82eE(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 1 %117, i64 noundef %119) to label %123 unwind label %121, !noalias !5548 -121: ; preds = %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread96.i +121: ; preds = %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread95.i %122 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h232faed5db661fa9E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) #38 to label %common.resume unwind label %125, !noalias !5549 -123: ; preds = %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread96.i +123: ; preds = %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread95.i %124 = load i64, ptr %7, align 8, !range !19, !noalias !5546, !noundef !5 %trunc.i.i = trunc nuw i64 %124 to i1 - br i1 %trunc.i.i, label %132, label %.thread98.i + br i1 %trunc.i.i, label %132, label %.thread97.i -.thread98.i: ; preds = %123 +.thread97.i: ; preds = %123 %.sroa.651.sroa.0.i.sroa.0.0.copyload = load ptr, ptr %15, align 8, !alias.scope !5550, !noalias !5455 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7), !noalias !5546 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %15), !noalias !5455 @@ -28231,14 +28226,14 @@ common.resume: ; preds = %157, %.body.i.i.i.i resume { ptr, i32 } %common.resume.op .thread.i: ; preds = %.body.i, %.thread70.loopexit.split-lp.loopexit.split-lp.i, %.thread70.loopexit.split-lp.loopexit.i, %.thread70.loopexit.i - %.pn66.i = phi { ptr, i32 } [ %eh.lpad-body.i, %.body.i ], [ %lpad.loopexit.i, %.thread70.loopexit.i ], [ %lpad.loopexit102.i, %.thread70.loopexit.split-lp.loopexit.i ], [ %lpad.loopexit.split-lp103.i, %.thread70.loopexit.split-lp.loopexit.split-lp.i ] + %.pn66.i = phi { ptr, i32 } [ %eh.lpad-body.i, %.body.i ], [ %lpad.loopexit.i, %.thread70.loopexit.i ], [ %lpad.loopexit101.i, %.thread70.loopexit.split-lp.loopexit.i ], [ %lpad.loopexit.split-lp102.i, %.thread70.loopexit.split-lp.loopexit.split-lp.i ] invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h232faed5db661fa9E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %19) #38 to label %common.resume unwind label %84, !noalias !5471 -136: ; preds = %.thread98.i, %132 - %.sroa.728.1.ph = phi ptr [ %.sroa.651.sroa.0.i.sroa.0.0.copyload, %.thread98.i ], [ %117, %132 ] - %.sroa.1231.0.ph = phi i64 [ %119, %.thread98.i ], [ %134, %132 ] - %.sroa.12.0.ph = phi i64 [ %120, %.thread98.i ], [ %119, %132 ] +136: ; preds = %.thread97.i, %132 + %.sroa.728.1.ph = phi ptr [ %.sroa.651.sroa.0.i.sroa.0.0.copyload, %.thread97.i ], [ %117, %132 ] + %.sroa.1231.0.ph = phi i64 [ %119, %.thread97.i ], [ %134, %132 ] + %.sroa.12.0.ph = phi i64 [ %120, %.thread97.i ], [ %119, %132 ] call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19), !noalias !5455 call void @llvm.lifetime.end.p0(i64 0, ptr nonnull %3) store ptr %.sroa.728.1.ph, ptr %21, align 8 diff --git a/bench/image-rs/optimized/2s4mh02dvph60euq.ll b/bench/image-rs/optimized/2s4mh02dvph60euq.ll index 7656e7723fa..6ea18c1db10 100644 --- a/bench/image-rs/optimized/2s4mh02dvph60euq.ll +++ b/bench/image-rs/optimized/2s4mh02dvph60euq.ll @@ -2703,10 +2703,10 @@ define hidden noundef zeroext i1 @"_ZN74_$LT$core..result..Result$LT$T$C$E$GT$$u 6: ; preds = %2 %trunc = trunc nuw i64 %3 to i1 - br i1 %trunc, label %15, label %8 + br i1 %trunc, label %7, label %8 -7: ; preds = %2, %15, %8 - %.0 = phi i1 [ true, %15 ], [ %14, %8 ], [ false, %2 ] +7: ; preds = %6, %2, %8 + %.0 = phi i1 [ %14, %8 ], [ false, %2 ], [ true, %6 ] ret i1 %.0 8: ; preds = %6 @@ -2720,11 +2720,6 @@ define hidden noundef zeroext i1 @"_ZN74_$LT$core..result..Result$LT$T$C$E$GT$$u %13 = load i64, ptr %11, align 8, !alias.scope !441, !noalias !438, !noundef !4 %14 = icmp eq i64 %12, %13 br label %7 - -15: ; preds = %6 - %16 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %16) - br label %7 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable diff --git a/bench/image-rs/optimized/5oy2v8fghrh79s8.ll b/bench/image-rs/optimized/5oy2v8fghrh79s8.ll index 1fe67727ae5..f28a4c4e4fd 100644 --- a/bench/image-rs/optimized/5oy2v8fghrh79s8.ll +++ b/bench/image-rs/optimized/5oy2v8fghrh79s8.ll @@ -43884,10 +43884,10 @@ define hidden noundef zeroext i1 @"_ZN74_$LT$core..result..Result$LT$T$C$E$GT$$u 6: ; preds = %2 %trunc = trunc nuw i64 %3 to i1 - br i1 %trunc, label %15, label %8 + br i1 %trunc, label %7, label %8 -7: ; preds = %2, %15, %8 - %.0 = phi i1 [ true, %15 ], [ %14, %8 ], [ false, %2 ] +7: ; preds = %6, %2, %8 + %.0 = phi i1 [ %14, %8 ], [ false, %2 ], [ true, %6 ] ret i1 %.0 8: ; preds = %6 @@ -43901,11 +43901,6 @@ define hidden noundef zeroext i1 @"_ZN74_$LT$core..result..Result$LT$T$C$E$GT$$u %13 = load i64, ptr %11, align 8, !alias.scope !18565, !noalias !18562, !noundef !4 %14 = icmp eq i64 %12, %13 br label %7 - -15: ; preds = %6 - %16 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %16) - br label %7 } ; Function Attrs: nonlazybind uwtable @@ -53591,7 +53586,7 @@ define hidden void @_ZN5image6codecs3pnm7decoder12HeaderReader13read_next_u3217h store i8 1, ptr %16, align 8, !noalias !20884 %.sroa.2.0..sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %9, i64 1 %.sroa.410.0..sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %9, i64 8 - %.sroa.9.8..sroa_idx134.i = getelementptr inbounds nuw i8, ptr %11, i64 1 + %.sroa.9.8..sroa_idx133.i = getelementptr inbounds nuw i8, ptr %11, i64 1 br label %17 17: ; preds = %108, %2 @@ -53705,12 +53700,12 @@ _ZN4core4iter6traits8iterator8Iterator4find17h28758f7544f65a49E.exit.thread.i: ; br label %.thread.i .thread122.loopexit.split-lp.loopexit.i: ; preds = %17 - %lpad.loopexit160.i = landingpad { ptr, i32 } + %lpad.loopexit159.i = landingpad { ptr, i32 } cleanup br label %.thread.i .thread122.loopexit.split-lp.loopexit.split-lp.i: ; preds = %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread.i - %lpad.loopexit.split-lp161.i = landingpad { ptr, i32 } + %lpad.loopexit.split-lp160.i = landingpad { ptr, i32 } cleanup br label %.thread.i @@ -53724,7 +53719,7 @@ _ZN4core4iter6traits8iterator8Iterator4find17h28758f7544f65a49E.exit.thread.i: ; call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9), !noalias !20894 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %11), !noalias !20884 store i8 0, ptr %11, align 8, !noalias !20884 - store i8 %.sroa.2.0.copyload.i.i.i.i, ptr %.sroa.9.8..sroa_idx134.i, align 1, !noalias !20884 + store i8 %.sroa.2.0.copyload.i.i.i.i, ptr %.sroa.9.8..sroa_idx133.i, align 1, !noalias !20884 switch i8 %.sroa.2.0.copyload.i.i.i.i, label %78 [ i8 9, label %80 i8 10, label %80 @@ -53954,7 +53949,7 @@ _ZN4core4iter6traits8iterator8Iterator4find17h28758f7544f65a49E.exit.thread.i: ; .preheader.i.i: ; preds = %111, %134 %.sroa.6.0.i.i = phi i64 [ %135, %134 ], [ %52, %111 ] %.not18.i.i = icmp eq i64 %.sroa.6.0.i.i, 0 - br i1 %.not18.i.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread148.i, label %134 + br i1 %.not18.i.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread147.i, label %134 134: ; preds = %.preheader.i.i %135 = add i64 %.sroa.6.0.i.i, -1 @@ -53968,15 +53963,15 @@ _ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.i: ; preds = %130, %122 %.0.copyload11.i.i = load i64, ptr %139, align 1, !alias.scope !21001, !noalias !20900 %140 = and i64 %.0.copyload11.i.i, -9187201950435737472 %.not.i.i = icmp eq i64 %140, 0 - br i1 %.not.i.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread148.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread.i + br i1 %.not.i.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread147.i, label %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread.i -_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread148.i: ; preds = %.preheader.i.i, %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.i +_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread147.i: ; preds = %.preheader.i.i, %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.i %.sroa.070.0.copyload.i = load i64, ptr %13, align 8, !noalias !20884 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6), !noalias !21004 invoke void @_ZN4core3str8converts9from_utf817hc5206d8edcf9d82eE(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %6, ptr noalias noundef nonnull readonly align 1 %112, i64 noundef %52) to label %144 unwind label %141, !noalias !21008 -141: ; preds = %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread148.i +141: ; preds = %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread147.i %142 = landingpad { ptr, i32 } cleanup %143 = icmp eq i64 %.sroa.070.0.copyload.i, 0 @@ -53986,12 +53981,12 @@ _ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread148.i: ; preds = %. call void @__rust_dealloc(ptr noundef nonnull %112, i64 noundef %.sroa.070.0.copyload.i, i64 noundef 1) #45, !noalias !21009 br label %common.resume -144: ; preds = %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread148.i +144: ; preds = %_ZN4core5slice5ascii8is_ascii17hd613dae18f560376E.exit.thread147.i %145 = load i64, ptr %6, align 8, !range !1985, !noalias !21004, !noundef !4 %trunc.i.i = trunc nuw i64 %145 to i1 - br i1 %trunc.i.i, label %151, label %.thread150.i + br i1 %trunc.i.i, label %151, label %.thread149.i -.thread150.i: ; preds = %144 +.thread149.i: ; preds = %144 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !21004 br label %158 @@ -54029,7 +54024,7 @@ common.resume: ; preds = %.body.i.i.i.i, %173 resume { ptr, i32 } %common.resume.op .thread.i: ; preds = %.body30.i, %.thread110.i, %.thread122.loopexit.split-lp.loopexit.split-lp.i, %.thread122.loopexit.split-lp.loopexit.i, %.thread122.loopexit.i, %.thread107.i - %.pn106.i = phi { ptr, i32 } [ %36, %.thread107.i ], [ %64, %.thread110.i ], [ %eh.lpad-body31.i, %.body30.i ], [ %lpad.loopexit.i, %.thread122.loopexit.i ], [ %lpad.loopexit160.i, %.thread122.loopexit.split-lp.loopexit.i ], [ %lpad.loopexit.split-lp161.i, %.thread122.loopexit.split-lp.loopexit.split-lp.i ] + %.pn106.i = phi { ptr, i32 } [ %36, %.thread107.i ], [ %64, %.thread110.i ], [ %eh.lpad-body31.i, %.body30.i ], [ %lpad.loopexit.i, %.thread122.loopexit.i ], [ %lpad.loopexit159.i, %.thread122.loopexit.split-lp.loopexit.i ], [ %lpad.loopexit.split-lp160.i, %.thread122.loopexit.split-lp.loopexit.split-lp.i ] call void @llvm.experimental.noalias.scope.decl(metadata !21022) call void @llvm.experimental.noalias.scope.decl(metadata !21025) call void @llvm.experimental.noalias.scope.decl(metadata !21028) @@ -54042,13 +54037,13 @@ common.resume: ; preds = %.body.i.i.i.i, %173 call void @__rust_dealloc(ptr noundef nonnull %157, i64 noundef %155, i64 noundef 1) #45, !noalias !21036 br label %common.resume -158: ; preds = %.thread150.i, %151 - %.sroa.665.sroa.6.0156.i = phi ptr [ %112, %.thread150.i ], [ %153, %151 ] - %.sroa.087.0.i = phi i64 [ %.sroa.070.0.copyload.i, %.thread150.i ], [ %113, %151 ] - %.sroa.3.0.i = phi i64 [ %52, %.thread150.i ], [ %.sroa.8101.24.copyload.i, %151 ] +158: ; preds = %.thread149.i, %151 + %.sroa.665.sroa.6.0155.i = phi ptr [ %112, %.thread149.i ], [ %153, %151 ] + %.sroa.087.0.i = phi i64 [ %.sroa.070.0.copyload.i, %.thread149.i ], [ %113, %151 ] + %.sroa.3.0.i = phi i64 [ %52, %.thread149.i ], [ %.sroa.8101.24.copyload.i, %151 ] call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %13), !noalias !20884 call void @llvm.lifetime.end.p0(i64 0, ptr nonnull %3) - %159 = invoke i64 @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$u32$GT$8from_str17h92ab62e9fc9d4b93E"(ptr noalias noundef nonnull readonly align 1 %.sroa.665.sroa.6.0156.i, i64 noundef %.sroa.3.0.i) + %159 = invoke i64 @"_ZN4core3num60_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$u32$GT$8from_str17h92ab62e9fc9d4b93E"(ptr noalias noundef nonnull readonly align 1 %.sroa.665.sroa.6.0155.i, i64 noundef %.sroa.3.0.i) to label %161 unwind label %173 160: ; preds = %104, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.9832446184049035033.exit.i.i1.i.i" @@ -54081,7 +54076,7 @@ common.resume: ; preds = %.body.i.i.i.i, %173 %.sroa.7.i.i.sroa.4.0..sroa.7.0..sroa_idx.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 8 store i64 %.sroa.087.0.i, ptr %.sroa.7.i.i.sroa.4.0..sroa.7.0..sroa_idx.i.i.sroa_idx, align 8, !noalias !21048 %.sroa.7.i.i.sroa.5.0..sroa.7.0..sroa_idx.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 16 - store ptr %.sroa.665.sroa.6.0156.i, ptr %.sroa.7.i.i.sroa.5.0..sroa.7.0..sroa_idx.i.i.sroa_idx, align 8, !noalias !21048 + store ptr %.sroa.665.sroa.6.0155.i, ptr %.sroa.7.i.i.sroa.5.0..sroa.7.0..sroa_idx.i.i.sroa_idx, align 8, !noalias !21048 %.sroa.7.i.i.sroa.6.0..sroa.7.0..sroa_idx.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %5, i64 24 store i64 %.sroa.3.0.i, ptr %.sroa.7.i.i.sroa.6.0..sroa.7.0..sroa_idx.i.i.sroa_idx, align 8, !noalias !21048 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4), !noalias !21049 @@ -54122,7 +54117,7 @@ common.resume: ; preds = %.body.i.i.i.i, %173 %.sroa.7.i.i.sroa.4.0..sroa.7.0..sroa_idx7.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %163, i64 8 store i64 %.sroa.087.0.i, ptr %.sroa.7.i.i.sroa.4.0..sroa.7.0..sroa_idx7.i.i.sroa_idx, align 1, !noalias !21048 %.sroa.7.i.i.sroa.5.0..sroa.7.0..sroa_idx7.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %163, i64 16 - store ptr %.sroa.665.sroa.6.0156.i, ptr %.sroa.7.i.i.sroa.5.0..sroa.7.0..sroa_idx7.i.i.sroa_idx, align 1, !noalias !21048 + store ptr %.sroa.665.sroa.6.0155.i, ptr %.sroa.7.i.i.sroa.5.0..sroa.7.0..sroa_idx7.i.i.sroa_idx, align 1, !noalias !21048 %.sroa.7.i.i.sroa.6.0..sroa.7.0..sroa_idx7.i.i.sroa_idx = getelementptr inbounds nuw i8, ptr %163, i64 24 store i64 %.sroa.3.0.i, ptr %.sroa.7.i.i.sroa.6.0..sroa.7.0..sroa_idx7.i.i.sroa_idx, align 1, !noalias !21048 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4), !noalias !21049 @@ -54148,7 +54143,7 @@ common.resume: ; preds = %.body.i.i.i.i, %173 br i1 %172, label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h0ad0bf6894027b27E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.9832446184049035033.exit.i.i1.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.9832446184049035033.exit.i.i1.i.i.i.i": ; preds = %170 - call void @__rust_dealloc(ptr noundef nonnull %.sroa.665.sroa.6.0156.i, i64 noundef %.sroa.087.0.i, i64 noundef 1) #45, !noalias !21064 + call void @__rust_dealloc(ptr noundef nonnull %.sroa.665.sroa.6.0155.i, i64 noundef %.sroa.087.0.i, i64 noundef 1) #45, !noalias !21064 br label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h0ad0bf6894027b27E.exit" "_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h0ad0bf6894027b27E.exit": ; preds = %.thread.i25, %170, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.9832446184049035033.exit.i.i1.i.i.i.i", %160 @@ -54161,7 +54156,7 @@ common.resume: ; preds = %.body.i.i.i.i, %173 br i1 %175, label %common.resume, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.9832446184049035033.exit.i.i1.i.i26" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.9832446184049035033.exit.i.i1.i.i26": ; preds = %173 - call void @__rust_dealloc(ptr noundef nonnull %.sroa.665.sroa.6.0156.i, i64 noundef %.sroa.087.0.i, i64 noundef 1) #45, !noalias !21073 + call void @__rust_dealloc(ptr noundef nonnull %.sroa.665.sroa.6.0155.i, i64 noundef %.sroa.087.0.i, i64 noundef 1) #45, !noalias !21073 br label %common.resume } diff --git a/bench/imgui/optimized/imgui.cpp.ll b/bench/imgui/optimized/imgui.cpp.ll index f80403427ac..ab507108b63 100644 --- a/bench/imgui/optimized/imgui.cpp.ll +++ b/bench/imgui/optimized/imgui.cpp.ll @@ -32583,8 +32583,8 @@ land.lhs.true382: ; preds = %if.end375 %and384 = and i32 %214, 2 %tobool385.not = icmp eq i32 %and384, 0 %cmp388 = fcmp oeq float %210, 0.000000e+00 - %or.cond1505 = select i1 %tobool385.not, i1 %cmp388, i1 false - br i1 %or.cond1505, label %if.then389, label %if.end400 + %or.cond1509 = select i1 %tobool385.not, i1 %cmp388, i1 false + br i1 %or.cond1509, label %if.then389, label %if.end400 if.then389: ; preds = %land.lhs.true382 %and391 = and i32 %flags.addr.1, 1024 @@ -33273,10 +33273,10 @@ if.end632: ; preds = %_ZN5ImGui20MarkIniS %brmerge263 = select i1 %window_pos_set_by_api.0.shrunk, i1 true, i1 %tobool267.not %brmerge263.not = xor i1 %brmerge263, true %cmp648 = fcmp ogt float %add.i568, %319 - %or.cond1506 = select i1 %brmerge263.not, i1 %cmp648, i1 false + %or.cond1510 = select i1 %brmerge263.not, i1 %cmp648, i1 false %cmp651 = fcmp ogt float %add10.i, %320 - %or.cond1507 = select i1 %or.cond1506, i1 %cmp651, i1 false - br i1 %or.cond1507, label %if.then652, label %if.end654 + %or.cond1511 = select i1 %or.cond1510, i1 %cmp651, i1 false + br i1 %or.cond1511, label %if.then652, label %if.end654 if.then652: ; preds = %if.end632 %330 = load ptr, ptr @GImGui, align 8 @@ -34666,7 +34666,7 @@ lor.end792.thread: ; preds = %lor.end %ScrollbarX1447 = getelementptr inbounds nuw i8, ptr %window.0, i64 188 store i8 1, ptr %ScrollbarX1447, align 4 %.pre1494 = trunc nuw i8 %frombool772 to i1 - br i1 %.pre1494, label %if.end809, label %if.then799 + br i1 %.pre1494, label %cond.true813, label %if.then799 lor.rhs775: ; preds = %lor.end %needed_size_from_last_frame.sroa.0.0.vec.extract = extractelement <2 x float> %needed_size_from_last_frame.sroa.0.0, i64 0 @@ -34700,8 +34700,9 @@ lor.end792: ; preds = %cond.end781 store i8 %518, ptr %ScrollbarX, align 4 %tobool795 = trunc i32 %and789 to i1 %tobool795.not = xor i1 %tobool795, true - %brmerge1508 = or i1 %tobool795.not, %tobool778 - br i1 %brmerge1508, label %if.end809, label %if.then799 + %brmerge1512 = or i1 %tobool795.not, %tobool778 + %frombool772.mux = select i1 %tobool795, i8 1, i8 %frombool772 + br i1 %brmerge1512, label %if.end809, label %if.then799 if.then799: ; preds = %lor.end792, %lor.end792.thread %ScrollbarX14501502 = phi ptr [ %ScrollbarX1447, %lor.end792.thread ], [ %ScrollbarX, %lor.end792 ] @@ -34714,20 +34715,22 @@ if.then799: ; preds = %lor.end792, %lor.en store i8 %frombool808, ptr %ScrollbarY, align 1 br label %if.end809 -if.end809: ; preds = %lor.end792, %lor.end792.thread, %lor.end792.thread1451, %if.then799 - %520 = phi i8 [ %frombool808, %if.then799 ], [ %frombool772, %lor.end792 ], [ %frombool772, %lor.end792.thread1451 ], [ %frombool772, %lor.end792.thread ] - %ScrollbarX1449 = phi ptr [ %ScrollbarX14501502, %if.then799 ], [ %ScrollbarX, %lor.end792 ], [ %ScrollbarX1453, %lor.end792.thread1451 ], [ %ScrollbarX1447, %lor.end792.thread ] +if.end809: ; preds = %lor.end792, %lor.end792.thread1451, %if.then799 + %520 = phi i8 [ %frombool808, %if.then799 ], [ %frombool772.mux, %lor.end792 ], [ %frombool772, %lor.end792.thread1451 ] + %ScrollbarX1449 = phi ptr [ %ScrollbarX14501502, %if.then799 ], [ %ScrollbarX, %lor.end792 ], [ %ScrollbarX1453, %lor.end792.thread1451 ] %tobool812 = trunc nuw i8 %520 to i1 br i1 %tobool812, label %cond.true813, label %cond.end816 -cond.true813: ; preds = %if.end809 +cond.true813: ; preds = %lor.end792.thread, %if.end809 + %ScrollbarX14491506 = phi ptr [ %ScrollbarX1449, %if.end809 ], [ %ScrollbarX1447, %lor.end792.thread ] %ScrollbarSize814 = getelementptr inbounds nuw i8, ptr %0, i64 14692 %521 = load float, ptr %ScrollbarSize814, align 4 br label %cond.end816 cond.end816: ; preds = %if.end809, %cond.true813 + %ScrollbarX14491505 = phi ptr [ %ScrollbarX14491506, %cond.true813 ], [ %ScrollbarX1449, %if.end809 ] %.cast = phi float [ %521, %cond.true813 ], [ 0.000000e+00, %if.end809 ] - %522 = load i8, ptr %ScrollbarX1449, align 4 + %522 = load i8, ptr %ScrollbarX14491505, align 4 %tobool819 = trunc i8 %522 to i1 br i1 %tobool819, label %cond.true820, label %cond.end823 diff --git a/bench/ipopt/optimized/IpBacktrackingLineSearch.ll b/bench/ipopt/optimized/IpBacktrackingLineSearch.ll index 4b44ee285b6..ecda35155e9 100644 --- a/bench/ipopt/optimized/IpBacktrackingLineSearch.ll +++ b/bench/ipopt/optimized/IpBacktrackingLineSearch.ll @@ -5190,7 +5190,7 @@ _ZN5Ipopt8SmartPtrIKNS_14IteratesVectorEED2Ev.exit217: ; preds = %390, %402, %40 430: ; preds = %.thread450, %428, %.critedge165.thread %431 = phi i1 [ true, %.critedge165.thread ], [ false, %428 ], [ true, %.thread450 ] - %432 = phi i8 [ %.1, %.critedge165.thread ], [ %.1, %428 ], [ 1, %.thread450 ] + %432 = phi i8 [ 1, %.critedge165.thread ], [ %.1, %428 ], [ 1, %.thread450 ] %433 = phi i1 [ false, %.critedge165.thread ], [ %429, %428 ], [ false, %.thread450 ] %434 = getelementptr inbounds nuw i8, ptr %0, i64 160 %435 = load i8, ptr %434, align 8 @@ -9402,11 +9402,11 @@ _ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i: ; preds = %_ZNK5Ipopt1 store i32 %30, ptr %28, align 8, !noalias !259 %.pre = load ptr, ptr %7, align 8 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %.pre, i64 208 - %.pre197 = load ptr, ptr %.phi.trans.insert, align 8, !noalias !262 + %.pre195 = load ptr, ptr %.phi.trans.insert, align 8, !noalias !262 br label %_ZNK5Ipopt14IteratesVector1xEv.exit _ZNK5Ipopt14IteratesVector1xEv.exit: ; preds = %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i - %31 = phi ptr [ %23, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i ], [ %.pre197, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i ] + %31 = phi ptr [ %23, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i ], [ %.pre195, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i ] %32 = phi ptr [ %21, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i ], [ %.pre, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i ] %storemerge.i.i = phi ptr [ null, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i ], [ %.0.i3.i.i.i, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i ] %33 = getelementptr inbounds nuw i8, ptr %31, i64 8 @@ -9539,7 +9539,7 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit114: ; preds = %74, %69 %104 = getelementptr inbounds nuw i8, ptr %103, i64 72 %105 = load ptr, ptr %104, align 8 %106 = tail call noundef zeroext i1 %105(ptr noundef nonnull align 8 dereferenceable(49) %102, double noundef %.071, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %7) - br i1 %106, label %.loopexit.sink.split, label %.critedge95.preheader + br i1 %106, label %.critedge103.sink.split, label %.critedge95.preheader .critedge95.preheader: ; preds = %.thread, %100 %107 = load double, ptr %2, align 8 @@ -9547,7 +9547,7 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit114: ; preds = %74, %69 %109 = load i32, ptr %5, align 4 %110 = icmp eq i32 %109, 0 %or.cond183 = select i1 %108, i1 true, i1 %110 - br i1 %or.cond183, label %.lr.ph, label %.loopexit + br i1 %or.cond183, label %.lr.ph, label %._crit_edge.thread .lr.ph: ; preds = %.critedge95.preheader %111 = getelementptr inbounds nuw i8, ptr %0, i64 92 @@ -9589,14 +9589,14 @@ _ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i118: ; preds = %_ZNK5Ipo %134 = load i32, ptr %133, align 8, !noalias !275 %135 = add nsw i32 %134, 1 store i32 %135, ptr %133, align 8, !noalias !275 - %.pre198 = load ptr, ptr %7, align 8 - %.phi.trans.insert199 = getelementptr inbounds nuw i8, ptr %.pre198, i64 208 - %.pre200 = load ptr, ptr %.phi.trans.insert199, align 8, !noalias !278 + %.pre196 = load ptr, ptr %7, align 8 + %.phi.trans.insert197 = getelementptr inbounds nuw i8, ptr %.pre196, i64 208 + %.pre198 = load ptr, ptr %.phi.trans.insert197, align 8, !noalias !278 br label %_ZNK5Ipopt14IteratesVector1xEv.exit123 _ZNK5Ipopt14IteratesVector1xEv.exit123: ; preds = %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i118, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i121 - %136 = phi ptr [ %128, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i121 ], [ %.pre200, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i118 ] - %137 = phi ptr [ %126, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i121 ], [ %.pre198, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i118 ] + %136 = phi ptr [ %128, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i121 ], [ %.pre198, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i118 ] + %137 = phi ptr [ %126, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i121 ], [ %.pre196, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i118 ] %storemerge.i.i120 = phi ptr [ null, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i121 ], [ %.0.i3.i.i.i119, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i118 ] %138 = getelementptr inbounds nuw i8, ptr %136, i64 8 %139 = load ptr, ptr %138, align 8, !noalias !278 @@ -9864,7 +9864,7 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit138: ; preds = %182, %177, %_ZN5Ipo %.576174 = phi double [ %.475, %.thread171 ], [ %187, %234 ] %250 = load i8, ptr %59, align 8 %251 = trunc i8 %250 to i1 - br i1 %251, label %.loopexit.thread, label %252 + br i1 %251, label %._crit_edge.thread, label %252 252: ; preds = %249 %253 = load i8, ptr %115, align 4 @@ -9872,7 +9872,7 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit138: ; preds = %182, %177, %_ZN5Ipo %255 = load i32, ptr %116, align 4 %256 = icmp sgt i32 %255, 4 %or.cond100 = select i1 %254, i1 %256, i1 false - br i1 %or.cond100, label %.loopexit.thread, label %257 + br i1 %or.cond100, label %._crit_edge.thread, label %257 257: ; preds = %252 %258 = load i8, ptr %6, align 1 @@ -9902,7 +9902,7 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit138: ; preds = %182, %177, %_ZN5Ipo %277 = getelementptr inbounds nuw i8, ptr %276, i64 64 %278 = load ptr, ptr %277, align 8 %279 = call noundef zeroext i1 %278(ptr noundef nonnull align 8 dereferenceable(49) %275, double noundef %.576174, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %7) - br i1 %279, label %.loopexit.sink.split, label %.critedge95 + br i1 %279, label %.critedge103.sink.split, label %.critedge95 .critedge95: ; preds = %260, %274, %257 %280 = load double, ptr %117, align 8 @@ -9916,27 +9916,22 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit138: ; preds = %182, %177, %_ZN5Ipo %286 = fcmp ogt double %285, %.077 %287 = icmp eq i32 %284, 0 %or.cond = select i1 %286, i1 true, i1 %287 - br i1 %or.cond, label %118, label %.loopexit, !llvm.loop !286 + br i1 %or.cond, label %118, label %._crit_edge.thread, !llvm.loop !286 -.loopexit.sink.split: ; preds = %274, %100 - %.sink = phi ptr [ %3, %100 ], [ %4, %274 ] - %.172.ph = phi double [ %.071, %100 ], [ %.576174, %274 ] - store i8 1, ptr %.sink, align 1 - br label %.loopexit - -.loopexit: ; preds = %.critedge95, %.loopexit.sink.split, %.critedge95.preheader - %.172 = phi double [ %.071, %.critedge95.preheader ], [ %.172.ph, %.loopexit.sink.split ], [ %.576174, %.critedge95 ] - %.156 = phi i1 [ false, %.critedge95.preheader ], [ true, %.loopexit.sink.split ], [ false, %.critedge95 ] - br i1 %.156, label %.critedge103, label %.loopexit.thread - -.loopexit.thread: ; preds = %249, %252, %.loopexit +._crit_edge.thread: ; preds = %252, %249, %.critedge95, %.critedge95.preheader %288 = load i8, ptr %59, align 8 %289 = trunc i8 %288 to i1 %.mux = select i1 %289, i8 119, i8 63 br label %296 -.critedge103: ; preds = %234, %_ZN5Ipopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit, %.loopexit - %.172179 = phi double [ %.172, %.loopexit ], [ %187, %_ZN5Ipopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit ], [ %187, %234 ] +.critedge103.sink.split: ; preds = %274, %100 + %.sink = phi ptr [ %3, %100 ], [ %4, %274 ] + %.172179.ph = phi double [ %.071, %100 ], [ %.576174, %274 ] + store i8 1, ptr %.sink, align 1 + br label %.critedge103 + +.critedge103: ; preds = %_ZN5Ipopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit, %234, %.critedge103.sink.split + %.172179 = phi double [ %.172179.ph, %.critedge103.sink.split ], [ %187, %234 ], [ %187, %_ZN5Ipopt9IpoptData18Append_info_stringERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit ] %290 = getelementptr inbounds nuw i8, ptr %0, i64 240 %291 = load ptr, ptr %290, align 8 %292 = load ptr, ptr %291, align 8 @@ -9945,9 +9940,9 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit138: ; preds = %182, %177, %_ZN5Ipo %295 = call noundef signext i8 %294(ptr noundef nonnull align 8 dereferenceable(49) %291, double noundef %.172179) br label %296 -296: ; preds = %.loopexit.thread, %.critedge103 - %297 = phi i1 [ true, %.critedge103 ], [ false, %.loopexit.thread ] - %.0 = phi i8 [ %295, %.critedge103 ], [ %.mux, %.loopexit.thread ] +296: ; preds = %._crit_edge.thread, %.critedge103 + %297 = phi i1 [ true, %.critedge103 ], [ false, %._crit_edge.thread ] + %.0 = phi i8 [ %295, %.critedge103 ], [ %.mux, %._crit_edge.thread ] %298 = load i8, ptr %4, align 1 %299 = trunc i8 %298 to i1 br i1 %299, label %300, label %304 diff --git a/bench/ipopt/optimized/IpCGPenaltyLSAcceptor.ll b/bench/ipopt/optimized/IpCGPenaltyLSAcceptor.ll index 262e5aa0947..ac8fb57b09a 100644 --- a/bench/ipopt/optimized/IpCGPenaltyLSAcceptor.ll +++ b/bench/ipopt/optimized/IpCGPenaltyLSAcceptor.ll @@ -4946,7 +4946,7 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit106: ; preds = %123, %128, %133 143: ; preds = %140 %144 = trunc nuw i8 %.062 to i1 - br i1 %144, label %.critedge, label %145 + br i1 %144, label %.critedge.thread, label %145 145: ; preds = %143 %146 = icmp eq i32 %.059, 0 @@ -5413,11 +5413,11 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEEaSERKS3_.exit161: ; preds = %365, %360, %_ZN5Ipo %376 = getelementptr inbounds nuw i8, ptr %375, i64 8 %377 = load ptr, ptr %376, align 8 call void %377(ptr noundef nonnull align 8 dereferenceable(205) %storemerge.i.i153357367) #23 - %.pre478 = load i32, ptr %370, align 8 + %.pre489 = load i32, ptr %370, align 8 br label %378 378: ; preds = %369, %374 - %379 = phi i32 [ %372, %369 ], [ %.pre478, %374 ] + %379 = phi i32 [ %372, %369 ], [ %.pre489, %374 ] %380 = add nsw i32 %379, -1 store i32 %380, ptr %370, align 8 %381 = icmp eq i32 %380, 0 @@ -5455,11 +5455,11 @@ _ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i167: ; preds = %_ZNK5Ipo %399 = load i32, ptr %398, align 8, !noalias !72 %400 = add nsw i32 %399, 1 store i32 %400, ptr %398, align 8, !noalias !72 - %.pre479 = load ptr, ptr %392, align 8, !noalias !75 + %.pre490 = load ptr, ptr %392, align 8, !noalias !75 br label %_ZNK5Ipopt14IteratesVector1xEv.exit _ZNK5Ipopt14IteratesVector1xEv.exit: ; preds = %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i167, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i170 - %401 = phi ptr [ %393, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i170 ], [ %.pre479, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i167 ] + %401 = phi ptr [ %393, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i170 ], [ %.pre490, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i167 ] %storemerge.i.i169 = phi ptr [ null, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i170 ], [ %.0.i3.i.i.i168, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i167 ] %402 = getelementptr inbounds nuw i8, ptr %401, i64 8 %403 = load ptr, ptr %402, align 8, !noalias !75 @@ -5533,11 +5533,11 @@ _ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i183: ; preds = %_ZNK5Ipo %438 = load i32, ptr %437, align 8, !noalias !89 %439 = add nsw i32 %438, 1 store i32 %439, ptr %437, align 8, !noalias !89 - %.pre480 = load ptr, ptr %431, align 8, !noalias !92 + %.pre491 = load ptr, ptr %431, align 8, !noalias !92 br label %_ZNK5Ipopt14IteratesVector1xEv.exit188 _ZNK5Ipopt14IteratesVector1xEv.exit188: ; preds = %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i183, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i186 - %440 = phi ptr [ %432, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i186 ], [ %.pre480, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i183 ] + %440 = phi ptr [ %432, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i186 ], [ %.pre491, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i183 ] %storemerge.i.i185 = phi ptr [ null, %_ZNK5Ipopt14CompoundVector10IsCompNullEi.exit.i.i186 ], [ %.0.i3.i.i.i184, %_ZNK5Ipopt14CompoundVector9ConstCompEi.exit.thread.i.i.i183 ] %441 = getelementptr inbounds nuw i8, ptr %440, i64 8 %442 = load ptr, ptr %441, align 8, !noalias !92 @@ -6146,33 +6146,38 @@ _ZN5Ipopt8SmartPtrINS_14IteratesVectorEED2Ev.exit247: ; preds = %726, %721, %_ZN call void %739(ptr noundef nonnull align 8 dereferenceable(280) %730) #23 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit209 -.critedge: ; preds = %_ZN5Ipopt8SmartPtrINS_14IteratesVectorEED2Ev.exit245, %147, %143, %140 - %.sroa.0323.1 = phi ptr [ %.sroa.0323.0, %143 ], [ %storemerge.i.i153357367, %_ZN5Ipopt8SmartPtrINS_14IteratesVectorEED2Ev.exit245 ], [ %.sroa.0323.0, %147 ], [ %.sroa.0323.0, %140 ] - %.sroa.0335.1 = phi ptr [ %.sroa.0335.0, %143 ], [ %storemerge.i.i139344354, %_ZN5Ipopt8SmartPtrINS_14IteratesVectorEED2Ev.exit245 ], [ %.sroa.0335.0, %147 ], [ %.sroa.0335.0, %140 ] - %.163 = phi i8 [ %.062, %143 ], [ %.264, %_ZN5Ipopt8SmartPtrINS_14IteratesVectorEED2Ev.exit245 ], [ %.062, %147 ], [ %.062, %140 ] +.critedge: ; preds = %_ZN5Ipopt8SmartPtrINS_14IteratesVectorEED2Ev.exit245, %147, %140 + %.sroa.0323.1 = phi ptr [ %storemerge.i.i153357367, %_ZN5Ipopt8SmartPtrINS_14IteratesVectorEED2Ev.exit245 ], [ %.sroa.0323.0, %147 ], [ %.sroa.0323.0, %140 ] + %.sroa.0335.1 = phi ptr [ %storemerge.i.i139344354, %_ZN5Ipopt8SmartPtrINS_14IteratesVectorEED2Ev.exit245 ], [ %.sroa.0335.0, %147 ], [ %.sroa.0335.0, %140 ] + %.163 = phi i8 [ %.264, %_ZN5Ipopt8SmartPtrINS_14IteratesVectorEED2Ev.exit245 ], [ %.062, %147 ], [ %.062, %140 ] %740 = trunc nuw i8 %.163 to i1 - br i1 %740, label %741, label %743 - -741: ; preds = %.critedge - %742 = getelementptr inbounds nuw i8, ptr %0, i64 248 - store i32 0, ptr %742, align 8 - br label %743 - -743: ; preds = %.critedge, %741 + br i1 %740, label %.critedge.thread, label %742 + +.critedge.thread: ; preds = %143, %.critedge + %.sroa.0335.1374 = phi ptr [ %.sroa.0335.1, %.critedge ], [ %.sroa.0335.0, %143 ] + %.sroa.0323.1372 = phi ptr [ %.sroa.0323.1, %.critedge ], [ %.sroa.0323.0, %143 ] + %741 = getelementptr inbounds nuw i8, ptr %0, i64 248 + store i32 0, ptr %741, align 8 + br label %742 + +742: ; preds = %.critedge, %.critedge.thread + %743 = phi i1 [ true, %.critedge.thread ], [ false, %.critedge ] + %.sroa.0335.1373 = phi ptr [ %.sroa.0335.1374, %.critedge.thread ], [ %.sroa.0335.1, %.critedge ] + %.sroa.0323.1371 = phi ptr [ %.sroa.0323.1372, %.critedge.thread ], [ %.sroa.0323.1, %.critedge ] %744 = load i32, ptr %124, align 8 %745 = add nsw i32 %744, -1 store i32 %745, ptr %124, align 8 %746 = icmp eq i32 %745, 0 br i1 %746, label %747, label %_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit -747: ; preds = %743 +747: ; preds = %742 %748 = load ptr, ptr %122, align 8 %749 = getelementptr inbounds nuw i8, ptr %748, i64 8 %750 = load ptr, ptr %749, align 8 call void %750(ptr noundef nonnull align 8 dereferenceable(205) %122) #23 br label %_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit -_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit: ; preds = %747, %743 +_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit: ; preds = %747, %742 %751 = load i32, ptr %100, align 8 %752 = add nsw i32 %751, -1 store i32 %752, ptr %100, align 8 @@ -6187,11 +6192,11 @@ _ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit: ; preds = %747, %743 br label %_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit252 _ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit252: ; preds = %_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit, %754 - %.not.i.i253 = icmp eq ptr %.sroa.0323.1, null + %.not.i.i253 = icmp eq ptr %.sroa.0323.1371, null br i1 %.not.i.i253, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit254, label %758 758: ; preds = %_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit252 - %759 = getelementptr inbounds nuw i8, ptr %.sroa.0323.1, i64 8 + %759 = getelementptr inbounds nuw i8, ptr %.sroa.0323.1371, i64 8 %760 = load i32, ptr %759, align 8 %761 = add nsw i32 %760, -1 store i32 %761, ptr %759, align 8 @@ -6199,18 +6204,18 @@ _ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit252: ; preds = %_ZN5Ipopt8SmartPtrI br i1 %762, label %763, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit254 763: ; preds = %758 - %764 = load ptr, ptr %.sroa.0323.1, align 8 + %764 = load ptr, ptr %.sroa.0323.1371, align 8 %765 = getelementptr inbounds nuw i8, ptr %764, i64 8 %766 = load ptr, ptr %765, align 8 - call void %766(ptr noundef nonnull align 8 dereferenceable(205) %.sroa.0323.1) #23 + call void %766(ptr noundef nonnull align 8 dereferenceable(205) %.sroa.0323.1371) #23 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit254 _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit254: ; preds = %_ZN5Ipopt8SmartPtrINS_6VectorEED2Ev.exit252, %758, %763 - %.not.i.i255 = icmp eq ptr %.sroa.0335.1, null + %.not.i.i255 = icmp eq ptr %.sroa.0335.1373, null br i1 %.not.i.i255, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit256, label %767 767: ; preds = %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit254 - %768 = getelementptr inbounds nuw i8, ptr %.sroa.0335.1, i64 8 + %768 = getelementptr inbounds nuw i8, ptr %.sroa.0335.1373, i64 8 %769 = load i32, ptr %768, align 8 %770 = add nsw i32 %769, -1 store i32 %770, ptr %768, align 8 @@ -6218,10 +6223,10 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit254: ; preds = %_ZN5Ipopt8SmartPtrI br i1 %771, label %772, label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit256 772: ; preds = %767 - %773 = load ptr, ptr %.sroa.0335.1, align 8 + %773 = load ptr, ptr %.sroa.0335.1373, align 8 %774 = getelementptr inbounds nuw i8, ptr %773, i64 8 %775 = load ptr, ptr %774, align 8 - call void %775(ptr noundef nonnull align 8 dereferenceable(205) %.sroa.0335.1) #23 + call void %775(ptr noundef nonnull align 8 dereferenceable(205) %.sroa.0335.1373) #23 br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit256 _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit209: ; preds = %499, %501, %504, %509, %513, %516, %521, %_ZN5Ipopt8SmartPtrINS_14IteratesVectorEED2Ev.exit247, %731, %736 @@ -6300,7 +6305,7 @@ _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit262: ; preds = %795, %790, %_ZN5Ipo br label %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit264 _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit256: ; preds = %772, %767, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit254, %4 - %.034 = phi i1 [ false, %4 ], [ %740, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit254 ], [ %740, %767 ], [ %740, %772 ] + %.034 = phi i1 [ false, %4 ], [ %743, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit254 ], [ %743, %767 ], [ %743, %772 ] ret i1 %.034 _ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit264: ; preds = %804, %799, %_ZN5Ipopt8SmartPtrIKNS_6VectorEED2Ev.exit262 diff --git a/bench/lightgbm/optimized/serial_tree_learner.cpp.ll b/bench/lightgbm/optimized/serial_tree_learner.cpp.ll index 785d37e8b4c..b84454dd4f7 100644 --- a/bench/lightgbm/optimized/serial_tree_learner.cpp.ll +++ b/bench/lightgbm/optimized/serial_tree_learner.cpp.ll @@ -18883,9 +18883,9 @@ define linkonce_odr void @_ZN8LightGBM23AdvancedLeafConstraints30GoDownToFindCon br label %24 tailrecurse._crit_edge: ; preds = %tailrecurse, %.tailrecurse._crit_edge_crit_edge - %17 = phi ptr [ %.pre80, %.tailrecurse._crit_edge_crit_edge ], [ %110, %tailrecurse ] - %.tr61.lcssa = phi i32 [ %3, %.tailrecurse._crit_edge_crit_edge ], [ %114, %tailrecurse ] - %.tr63.lcssa = phi i32 [ %5, %.tailrecurse._crit_edge_crit_edge ], [ %109, %tailrecurse ] + %17 = phi ptr [ %.pre80, %.tailrecurse._crit_edge_crit_edge ], [ %111, %tailrecurse ] + %.tr61.lcssa = phi i32 [ %3, %.tailrecurse._crit_edge_crit_edge ], [ %115, %tailrecurse ] + %.tr63.lcssa = phi i32 [ %5, %.tailrecurse._crit_edge_crit_edge ], [ %110, %tailrecurse ] %18 = xor i32 %.tr61.lcssa, -1 %19 = getelementptr inbounds nuw i8, ptr %17, i64 336 %20 = zext nneg i32 %18 to i64 @@ -18896,11 +18896,11 @@ tailrecurse._crit_edge: ; preds = %tailrecurse, %.tail br label %.loopexit 24: ; preds = %.lr.ph, %tailrecurse - %25 = phi i32 [ %5, %.lr.ph ], [ %109, %tailrecurse ] - %26 = phi ptr [ %.pre, %.lr.ph ], [ %110, %tailrecurse ] - %.tr6174 = phi i32 [ %3, %.lr.ph ], [ %114, %tailrecurse ] + %25 = phi i32 [ %5, %.lr.ph ], [ %110, %tailrecurse ] + %26 = phi ptr [ %.pre, %.lr.ph ], [ %111, %tailrecurse ] + %.tr6173 = phi i32 [ %3, %.lr.ph ], [ %115, %tailrecurse ] %27 = getelementptr inbounds nuw i8, ptr %26, i64 64 - %28 = zext nneg i32 %.tr6174 to i64 + %28 = zext nneg i32 %.tr6173 to i64 %29 = load ptr, ptr %27, align 8 %30 = getelementptr inbounds nuw i32, ptr %29, i64 %28 %31 = load i32, ptr %30, align 4 @@ -19039,38 +19039,43 @@ _ZN8LightGBM27IntermediateLeafConstraints24ShouldKeepGoingLeftRightEiRKSt6vector _ZN8LightGBM23AdvancedLeafConstraints36LeftRightContainsRelevantInformationEbib.exit: ; preds = %_ZN8LightGBM27IntermediateLeafConstraints24ShouldKeepGoingLeftRightEiRKSt6vectorIiSaIiEERKS1_IjSaIjEERKS1_IbSaIbEE.exit, %86, %97, %98, %99 %.sroa.0.0.i = phi i1 [ %.027.i, %99 ], [ true, %_ZN8LightGBM27IntermediateLeafConstraints24ShouldKeepGoingLeftRightEiRKSt6vectorIiSaIiEERKS1_IjSaIjEERKS1_IbSaIbEE.exit ], [ true, %86 ], [ true, %98 ], [ true, %97 ] %.not.not.not = phi i1 [ false, %99 ], [ false, %_ZN8LightGBM27IntermediateLeafConstraints24ShouldKeepGoingLeftRightEiRKSt6vectorIiSaIiEERKS1_IjSaIjEERKS1_IbSaIbEE.exit ], [ false, %86 ], [ true, %98 ], [ true, %97 ] - %or.cond71 = select i1 %.026.i, i1 %.sroa.0.0.i, i1 false - br i1 %or.cond71, label %100, label %107 + br i1 %.026.i, label %100, label %108 100: ; preds = %_ZN8LightGBM23AdvancedLeafConstraints36LeftRightContainsRelevantInformationEbib.exit - %101 = add i32 %35, 1 - %.pre78 = tail call i32 @llvm.umin.i32(i32 %6, i32 %101) - %102 = select i1 %84, i32 %.pre78, i32 %6 - %103 = getelementptr inbounds nuw i8, ptr %26, i64 16 - %104 = load ptr, ptr %103, align 8 - %105 = getelementptr inbounds nuw i32, ptr %104, i64 %28 - %106 = load i32, ptr %105, align 4 - tail call void @_ZN8LightGBM23AdvancedLeafConstraints30GoDownToFindConstrainingLeavesEiiibjjRKSt6vectorIiSaIiEERKS1_IjSaIjEERKS1_IbSaIbEEPNS_26FeatureMinOrMaxConstraintsEj(ptr noundef nonnull align 8 dereferenceable(144) %0, i32 noundef %1, i32 noundef %2, i32 noundef %106, i1 noundef zeroext %4, i32 noundef %25, i32 noundef %102, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef %10, i32 noundef %11) - br label %107 + br i1 %.sroa.0.0.i, label %101, label %.thread -107: ; preds = %100, %_ZN8LightGBM23AdvancedLeafConstraints36LeftRightContainsRelevantInformationEbib.exit +101: ; preds = %100 + %102 = add i32 %35, 1 + %.pre78 = tail call i32 @llvm.umin.i32(i32 %6, i32 %102) + %103 = select i1 %84, i32 %.pre78, i32 %6 + %104 = getelementptr inbounds nuw i8, ptr %26, i64 16 + %105 = load ptr, ptr %104, align 8 + %106 = getelementptr inbounds nuw i32, ptr %105, i64 %28 + %107 = load i32, ptr %106, align 4 + tail call void @_ZN8LightGBM23AdvancedLeafConstraints30GoDownToFindConstrainingLeavesEiiibjjRKSt6vectorIiSaIiEERKS1_IjSaIjEERKS1_IbSaIbEEPNS_26FeatureMinOrMaxConstraintsEj(ptr noundef nonnull align 8 dereferenceable(144) %0, i32 noundef %1, i32 noundef %2, i32 noundef %107, i1 noundef zeroext %4, i32 noundef %25, i32 noundef %103, ptr noundef nonnull align 8 dereferenceable(24) %7, ptr noundef nonnull align 8 dereferenceable(24) %8, ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef %10, i32 noundef %11) + br label %108 + +108: ; preds = %101, %_ZN8LightGBM23AdvancedLeafConstraints36LeftRightContainsRelevantInformationEbib.exit %brmerge.not = and i1 %.026.i, %.not.not.not %or.cond = select i1 %.027.i, i1 true, i1 %brmerge.not br i1 %or.cond, label %.loopexit, label %tailrecurse -tailrecurse: ; preds = %107 - %108 = add i32 %35, 1 - %.pre79 = tail call i32 @llvm.umax.i32(i32 %108, i32 %25) - %109 = select i1 %84, i32 %.pre79, i32 %25 - %110 = load ptr, ptr %.phi.trans.insert, align 8 - %111 = getelementptr inbounds nuw i8, ptr %110, i64 40 - %112 = load ptr, ptr %111, align 8 - %113 = getelementptr inbounds nuw i32, ptr %112, i64 %28 - %114 = load i32, ptr %113, align 4 - %115 = icmp slt i32 %114, 0 - br i1 %115, label %tailrecurse._crit_edge, label %24 +.thread: ; preds = %100 + br i1 %.not.not.not, label %.loopexit, label %tailrecurse + +tailrecurse: ; preds = %108, %.thread + %109 = add i32 %35, 1 + %.pre79 = tail call i32 @llvm.umax.i32(i32 %109, i32 %25) + %110 = select i1 %84, i32 %.pre79, i32 %25 + %111 = load ptr, ptr %.phi.trans.insert, align 8 + %112 = getelementptr inbounds nuw i8, ptr %111, i64 40 + %113 = load ptr, ptr %112, align 8 + %114 = getelementptr inbounds nuw i32, ptr %113, i64 %28 + %115 = load i32, ptr %114, align 4 + %116 = icmp slt i32 %115, 0 + br i1 %116, label %tailrecurse._crit_edge, label %24 -.loopexit: ; preds = %107, %tailrecurse._crit_edge +.loopexit: ; preds = %.thread, %108, %tailrecurse._crit_edge ret void } diff --git a/bench/llvm/optimized/ARMTargetParserCommon.cpp.ll b/bench/llvm/optimized/ARMTargetParserCommon.cpp.ll index 5ba43dd5c69..0cc9408749f 100644 --- a/bench/llvm/optimized/ARMTargetParserCommon.cpp.ll +++ b/bench/llvm/optimized/ARMTargetParserCommon.cpp.ll @@ -175,7 +175,7 @@ _ZN4llvmeqENS_9StringRefES0_.exit.i30: ; preds = %_ZN4llvm12StringSwi br i1 %14, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93.sink.split, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit34 _ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit34: ; preds = %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit25, %_ZN4llvmeqENS_9StringRefES0_.exit.i30 - br i1 %12, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E5CasesENS_13StringLiteralES3_S3_S3_S1_.exit, label %15 + br i1 %12, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93, label %15 15: ; preds = %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit34 switch i64 %1, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E5CasesENS_13StringLiteralES3_S3_S3_S1_.exit [ @@ -237,27 +237,24 @@ _ZN4llvmeqENS_9StringRefES0_.exit.i15.i.i.i: ; preds = %_ZN4llvmeqENS_9Stri %24 = icmp eq i32 %bcmp.i.i16.i.i.i, 0 br i1 %24, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93.sink.split, label %_ZN4llvmeqENS_9StringRefES0_.exit.i71 -_ZN4llvm12StringSwitchINS_9StringRefES1_E5CasesENS_13StringLiteralES3_S3_S3_S1_.exit: ; preds = %15, %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit34, %_ZN4llvm12StringSwitchINS_9StringRefES1_E5CasesENS_13StringLiteralES3_S1_.exit - %or.cond467.not = or i1 %.not.i.i11474, %12 - br i1 %or.cond467.not, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit75, label %_ZN4llvmeqENS_9StringRefES0_.exit.i71 +_ZN4llvm12StringSwitchINS_9StringRefES1_E5CasesENS_13StringLiteralES3_S3_S3_S1_.exit: ; preds = %15, %_ZN4llvm12StringSwitchINS_9StringRefES1_E5CasesENS_13StringLiteralES3_S1_.exit + br i1 %.not.i.i11474, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit84, label %_ZN4llvmeqENS_9StringRefES0_.exit.i71 _ZN4llvmeqENS_9StringRefES0_.exit.i71: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit.i15.i.i.i, %_ZN4llvm12StringSwitchINS_9StringRefES1_E5CasesENS_13StringLiteralES3_S3_S3_S1_.exit %bcmp.i.i72 = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(3) %0, ptr noundef nonnull dereferenceable(3) @.str.20, i64 3) %25 = icmp eq i32 %bcmp.i.i72, 0 br i1 %25, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93.sink.split, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit75 -_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit75: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit.i.i65, %_ZN4llvmeqENS_9StringRefES0_.exit.i.i.i.i, %_ZN4llvm12StringSwitchINS_9StringRefES1_E5CasesENS_13StringLiteralES3_S3_S3_S1_.exit, %_ZN4llvmeqENS_9StringRefES0_.exit.i71 - %or.cond469.not = or i1 %.not.i.i11474, %12 - br i1 %or.cond469.not, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit84, label %_ZN4llvmeqENS_9StringRefES0_.exit.i80 +_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit75: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit.i.i65, %_ZN4llvmeqENS_9StringRefES0_.exit.i.i.i.i, %_ZN4llvmeqENS_9StringRefES0_.exit.i71 + br i1 %.not.i.i11474, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit84, label %_ZN4llvmeqENS_9StringRefES0_.exit.i80 _ZN4llvmeqENS_9StringRefES0_.exit.i80: ; preds = %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit75 %bcmp.i.i81 = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(3) %0, ptr noundef nonnull dereferenceable(3) @.str.22, i64 3) %26 = icmp eq i32 %bcmp.i.i81, 0 br i1 %26, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93.sink.split, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit84 -_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit84: ; preds = %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit75, %_ZN4llvmeqENS_9StringRefES0_.exit.i80 - %or.cond471.not = or i1 %.not.i.i29, %12 - br i1 %or.cond471.not, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93, label %_ZN4llvmeqENS_9StringRefES0_.exit.i89 +_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit84: ; preds = %_ZN4llvm12StringSwitchINS_9StringRefES1_E5CasesENS_13StringLiteralES3_S3_S3_S1_.exit, %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit75, %_ZN4llvmeqENS_9StringRefES0_.exit.i80 + br i1 %.not.i.i29, label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93, label %_ZN4llvmeqENS_9StringRefES0_.exit.i89 _ZN4llvmeqENS_9StringRefES0_.exit.i89: ; preds = %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit84 %bcmp.i.i90 = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(4) %0, ptr noundef nonnull dereferenceable(4) @.str.24, i64 4) @@ -273,7 +270,7 @@ _ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93.sin store i8 1, ptr %8, align 8 br label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93 -_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93: ; preds = %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93.sink.split, %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit84, %_ZN4llvmeqENS_9StringRefES0_.exit.i89 +_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93: ; preds = %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit93.sink.split, %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit34, %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit84, %_ZN4llvmeqENS_9StringRefES0_.exit.i89 store ptr @.str.28, ptr %4, align 8 %28 = getelementptr inbounds nuw i8, ptr %4, i64 8 store i64 3, ptr %28, align 8 @@ -603,10 +600,10 @@ _ZN4llvmeqENS_9StringRefES0_.exit.i270: ; preds = %92 _ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit274.sink.split: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit.i270, %_ZN4llvmeqENS_9StringRefES0_.exit.i261, %_ZN4llvmeqENS_9StringRefES0_.exit.i252, %_ZN4llvmeqENS_9StringRefES0_.exit.i243, %_ZN4llvmeqENS_9StringRefES0_.exit.i234, %_ZN4llvmeqENS_9StringRefES0_.exit.i225, %_ZN4llvmeqENS_9StringRefES0_.exit.i216, %_ZN4llvmeqENS_9StringRefES0_.exit.i207, %_ZN4llvmeqENS_9StringRefES0_.exit.i.i200, %_ZN4llvmeqENS_9StringRefES0_.exit.i15.i196, %_ZN4llvmeqENS_9StringRefES0_.exit.i179, %_ZN4llvmeqENS_9StringRefES0_.exit.i170, %_ZN4llvmeqENS_9StringRefES0_.exit.i161, %_ZN4llvmeqENS_9StringRefES0_.exit.i152, %_ZN4llvmeqENS_9StringRefES0_.exit.i143, %_ZN4llvmeqENS_9StringRefES0_.exit.i134, %_ZN4llvmeqENS_9StringRefES0_.exit.i125, %_ZN4llvmeqENS_9StringRefES0_.exit.i116, %_ZN4llvmeqENS_9StringRefES0_.exit.i107, %_ZN4llvmeqENS_9StringRefES0_.exit.i98 %.str.33.sink = phi ptr [ @.str.33, %_ZN4llvmeqENS_9StringRefES0_.exit.i98 ], [ @.str.35, %_ZN4llvmeqENS_9StringRefES0_.exit.i107 ], [ @.str.37, %_ZN4llvmeqENS_9StringRefES0_.exit.i116 ], [ @.str.39, %_ZN4llvmeqENS_9StringRefES0_.exit.i125 ], [ @.str.41, %_ZN4llvmeqENS_9StringRefES0_.exit.i134 ], [ @.str.43, %_ZN4llvmeqENS_9StringRefES0_.exit.i143 ], [ @.str.45, %_ZN4llvmeqENS_9StringRefES0_.exit.i152 ], [ @.str.47, %_ZN4llvmeqENS_9StringRefES0_.exit.i161 ], [ @.str.49, %_ZN4llvmeqENS_9StringRefES0_.exit.i170 ], [ @.str.51, %_ZN4llvmeqENS_9StringRefES0_.exit.i179 ], [ @.str.54, %_ZN4llvmeqENS_9StringRefES0_.exit.i15.i196 ], [ @.str.54, %_ZN4llvmeqENS_9StringRefES0_.exit.i.i200 ], [ @.str.56, %_ZN4llvmeqENS_9StringRefES0_.exit.i207 ], [ @.str.58, %_ZN4llvmeqENS_9StringRefES0_.exit.i216 ], [ @.str.60, %_ZN4llvmeqENS_9StringRefES0_.exit.i225 ], [ @.str.62, %_ZN4llvmeqENS_9StringRefES0_.exit.i234 ], [ @.str.64, %_ZN4llvmeqENS_9StringRefES0_.exit.i243 ], [ @.str.66, %_ZN4llvmeqENS_9StringRefES0_.exit.i252 ], [ @.str.68, %_ZN4llvmeqENS_9StringRefES0_.exit.i261 ], [ @.str.70, %_ZN4llvmeqENS_9StringRefES0_.exit.i270 ] - %.sink515 = phi i64 [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i98 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i107 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i116 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i125 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i134 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i143 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i152 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i161 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i170 ], [ 4, %_ZN4llvmeqENS_9StringRefES0_.exit.i179 ], [ 4, %_ZN4llvmeqENS_9StringRefES0_.exit.i15.i196 ], [ 4, %_ZN4llvmeqENS_9StringRefES0_.exit.i.i200 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i207 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i216 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i225 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i234 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i243 ], [ 9, %_ZN4llvmeqENS_9StringRefES0_.exit.i252 ], [ 9, %_ZN4llvmeqENS_9StringRefES0_.exit.i261 ], [ 11, %_ZN4llvmeqENS_9StringRefES0_.exit.i270 ] + %.sink520 = phi i64 [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i98 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i107 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i116 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i125 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i134 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i143 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i152 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i161 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i170 ], [ 4, %_ZN4llvmeqENS_9StringRefES0_.exit.i179 ], [ 4, %_ZN4llvmeqENS_9StringRefES0_.exit.i15.i196 ], [ 4, %_ZN4llvmeqENS_9StringRefES0_.exit.i.i200 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i207 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i216 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i225 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i234 ], [ 6, %_ZN4llvmeqENS_9StringRefES0_.exit.i243 ], [ 9, %_ZN4llvmeqENS_9StringRefES0_.exit.i252 ], [ 9, %_ZN4llvmeqENS_9StringRefES0_.exit.i261 ], [ 11, %_ZN4llvmeqENS_9StringRefES0_.exit.i270 ] store ptr %.str.33.sink, ptr %33, align 8 %.sroa.2.0..sroa_idx.i101 = getelementptr inbounds nuw i8, ptr %32, i64 24 - store i64 %.sink515, ptr %.sroa.2.0..sroa_idx.i101, align 8 + store i64 %.sink520, ptr %.sroa.2.0..sroa_idx.i101, align 8 store i8 1, ptr %34, align 8 br label %_ZN4llvm12StringSwitchINS_9StringRefES1_E4CaseENS_13StringLiteralES1_.exit274 diff --git a/bench/llvm/optimized/BranchProbabilityInfo.cpp.ll b/bench/llvm/optimized/BranchProbabilityInfo.cpp.ll index 4323194222e..efa368837d1 100644 --- a/bench/llvm/optimized/BranchProbabilityInfo.cpp.ll +++ b/bench/llvm/optimized/BranchProbabilityInfo.cpp.ll @@ -5073,9 +5073,7 @@ _ZNK4llvm21BranchProbabilityInfo22getEstimatedEdgeWeightERKSt4pairIRKNS0_9LoopBl %279 = trunc nuw i8 %.sroa.312.025.i to i1 %280 = icmp uge i32 %.sroa.010.026.i, %.sroa.0.0.extract.trunc.i %or.cond.not.i = select i1 %279, i1 %280, i1 false - %.sroa.312.0.extract.shift.i = lshr i64 %.sroa.04.0.i, 32 - %.sroa.312.0.extract.trunc.i = trunc nuw nsw i64 %.sroa.312.0.extract.shift.i to i8 - %.sroa.312.1.i = select i1 %or.cond.not.i, i8 %.sroa.312.025.i, i8 %.sroa.312.0.extract.trunc.i + %.sroa.312.1.i = select i1 %or.cond.not.i, i8 %.sroa.312.025.i, i8 1 %.sroa.010.1.i = select i1 %or.cond.not.i, i32 %.sroa.010.026.i, i32 %.sroa.0.0.extract.trunc.i %281 = getelementptr inbounds nuw i8, ptr %.027.i, i64 8 %.not.i24 = icmp eq ptr %281, %176 @@ -5606,10 +5604,8 @@ _ZNK4llvm21BranchProbabilityInfo22getEstimatedEdgeWeightERKSt4pairIRKNS0_9LoopBl %561 = trunc nuw i8 %.sroa.321.033.i to i1 %562 = icmp uge i32 %.sroa.019.032.i, %.sroa.0.0.extract.trunc.i35 %or.cond.not.i36 = select i1 %561, i1 %562, i1 false - %.sroa.321.0.extract.shift.i = lshr i64 %.sroa.04.0.i81, 32 - %.sroa.321.0.extract.trunc.i = trunc nuw nsw i64 %.sroa.321.0.extract.shift.i to i8 %.sroa.019.1.i = select i1 %or.cond.not.i36, i32 %.sroa.019.032.i, i32 %.sroa.0.0.extract.trunc.i35 - %.sroa.321.1.i = select i1 %or.cond.not.i36, i8 %.sroa.321.033.i, i8 %.sroa.321.0.extract.trunc.i + %.sroa.321.1.i = select i1 %or.cond.not.i36, i8 %.sroa.321.033.i, i8 1 %563 = add nuw nsw i32 %.sroa.2.031.i, 1 %.not25.i = icmp eq i32 %563, %456 br i1 %.not25.i, label %._crit_edge.loopexit.i37, label %.lr.ph.i33 @@ -6364,7 +6360,7 @@ _ZNK4llvm21BranchProbabilityInfo17isLoopExitingEdgeERKSt4pairIRKNS0_9LoopBlockES .critedge: ; preds = %303, %309, %_ZNK4llvm21BranchProbabilityInfo17isLoopExitingEdgeERKSt4pairIRKNS0_9LoopBlockES4_E.exit.thread %.sroa.087.0 = phi i32 [ %.sroa.087.0.extract.trunc89, %309 ], [ 0, %_ZNK4llvm21BranchProbabilityInfo17isLoopExitingEdgeERKSt4pairIRKNS0_9LoopBlockES4_E.exit.thread ], [ %.sroa.087.0.extract.trunc, %303 ] - %.sroa.8.0 = phi i8 [ 1, %309 ], [ %.sroa.8.0.extract.trunc, %_ZNK4llvm21BranchProbabilityInfo17isLoopExitingEdgeERKSt4pairIRKNS0_9LoopBlockES4_E.exit.thread ], [ %.sroa.8.0.extract.trunc, %303 ] + %.sroa.8.0 = phi i8 [ 1, %309 ], [ 1, %_ZNK4llvm21BranchProbabilityInfo17isLoopExitingEdgeERKSt4pairIRKNS0_9LoopBlockES4_E.exit.thread ], [ %.sroa.8.0.extract.trunc, %303 ] %312 = load ptr, ptr %24, align 8 %.not = icmp eq ptr %312, null br i1 %.not, label %.critedge2, label %313 diff --git a/bench/llvm/optimized/CodeGenRegisters.cpp.ll b/bench/llvm/optimized/CodeGenRegisters.cpp.ll index 058a7be7011..974508c084a 100644 --- a/bench/llvm/optimized/CodeGenRegisters.cpp.ll +++ b/bench/llvm/optimized/CodeGenRegisters.cpp.ll @@ -11592,7 +11592,7 @@ _ZNK4llvm15SparseBitVectorILj128EE5beginEv.exit.i.i: ; preds = %_ZNK4llvm22Spars br label %37, !llvm.loop !196 _ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit: ; preds = %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.i.i, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i, %14 - %67 = phi i8 [ 1, %14 ], [ %.sroa.02.08.i.i, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i ], [ %.sroa.02.08.i.i, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.i.i ] + %67 = phi i8 [ 1, %14 ], [ %.sroa.02.08.i.i, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.i.i ], [ 1, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i ] %68 = getelementptr inbounds nuw i8, ptr %4, i64 80 %69 = getelementptr inbounds nuw i8, ptr %4, i64 40 %70 = getelementptr inbounds nuw i8, ptr %1, i64 440 @@ -18238,13 +18238,13 @@ _ZNK4llvm15SparseBitVectorILj128EE5beginEv.exit.i: ; preds = %_ZNK4llvm15SparseB %30 = trunc nuw i8 %.sroa.8.0 to i1 %31 = icmp eq i32 %.sroa.28.0, 0 %32 = select i1 %29, i1 %31, i1 false - %or.cond134 = select i1 %30, i1 true, i1 %32 - br i1 %or.cond134, label %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i, label %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit + %or.cond161 = select i1 %30, i1 true, i1 %32 + br i1 %or.cond161, label %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i, label %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit _ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i: ; preds = %_ZNK4llvm15SparseBitVectorILj128EE5beginEv.exit.i %33 = getelementptr inbounds nuw i8, ptr %.sroa.04.0, i64 8 %34 = icmp eq ptr %33, %6 - br i1 %34, label %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit, label %35 + br i1 %34, label %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit.thread, label %35 35: ; preds = %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i %36 = load ptr, ptr %33, align 8 @@ -18286,8 +18286,7 @@ _ZNK4llvm15SparseBitVectorILj128EE5beginEv.exit.i.backedge: ; preds = %_ZNK4llvm %.sroa.8.0.be = phi i8 [ 0, %_ZNK4llvm22SparseBitVectorElementILj128EE10find_firstEv.exit.i.i.i.i.i ], [ 1, %35 ] br label %_ZNK4llvm15SparseBitVectorILj128EE5beginEv.exit.i, !llvm.loop !196 -_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit: ; preds = %_ZNK4llvm15SparseBitVectorILj128EE5beginEv.exit.i, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i - %.sroa.04.1 = phi ptr [ %33, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i ], [ %.sroa.04.0, %_ZNK4llvm15SparseBitVectorILj128EE5beginEv.exit.i ] +_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit: ; preds = %_ZNK4llvm15SparseBitVectorILj128EE5beginEv.exit.i %56 = trunc nuw i8 %.sroa.8.0 to i1 br i1 %56, label %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit.thread, label %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit @@ -18295,7 +18294,7 @@ _ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit: ; preds = %_ZN12_GLOBAL__N_1 %.055 = phi ptr [ %.val45.val, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ null, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ] %.02354 = phi i32 [ %.124, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ 0, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ] %.02653 = phi i32 [ %.228, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ 0, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ] - %.sroa.04.252 = phi ptr [ %.sroa.04.4, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ %.sroa.04.1, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ] + %.sroa.04.252 = phi ptr [ %.sroa.04.4, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ %.sroa.04.0, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ] %.sroa.8.251 = phi i8 [ %.sroa.8.4, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ %.sroa.8.0, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ] %.sroa.22.350 = phi ptr [ %.sroa.22.5, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ %.sroa.73.1, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ] %.sroa.28.249 = phi i32 [ %.sroa.28.5, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ %.sroa.28.0, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ] @@ -18528,13 +18527,13 @@ _ZN4llvm15SparseBitVectorILj128EE23SparseBitVectorIterator20AdvanceToNextNonZero br label %_ZN4llvm15SparseBitVectorILj128EE23SparseBitVectorIterator20AdvanceToNextNonZeroEv.exit, !llvm.loop !196 _ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit: ; preds = %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.i.i48, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i49 - %.lcssa89 = phi i1 [ false, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.i.i48 ], [ %138, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i49 ] + %.lcssa96 = phi i1 [ false, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.i.i48 ], [ %138, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i49 ] %.sroa.04.4 = phi ptr [ %.sroa.04.3, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.i.i48 ], [ %143, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i49 ] - br i1 %.lcssa89, label %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit.thread, label %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit, !llvm.loop !427 + br i1 %.lcssa96, label %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit.thread, label %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit, !llvm.loop !427 -_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit.thread: ; preds = %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit, %3, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit - %.026.lcssa = phi i32 [ 0, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ], [ 0, %3 ], [ %.228, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ %.02653, %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit ] - %.023.lcssa = phi i32 [ 0, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ], [ 0, %3 ], [ %.124, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ %.02354, %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit ] +_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit.thread: ; preds = %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i, %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit, %3, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit + %.026.lcssa = phi i32 [ 0, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ], [ 0, %3 ], [ %.228, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ %.02653, %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit ], [ 0, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i ] + %.023.lcssa = phi i32 [ 0, %_ZN12_GLOBAL__N_115RegUnitIteratorC2ERKSt6vectorIPKN4llvm15CodeGenRegisterESaIS5_EE.exit ], [ 0, %3 ], [ %.124, %_ZN12_GLOBAL__N_115RegUnitIteratorppEv.exit ], [ %.02354, %_ZNK12_GLOBAL__N_115RegUnitIterator7isValidEv.exit ], [ 0, %_ZNK4llvm15SparseBitVectorILj128EE23SparseBitVectorIteratoreqERKS2_.exit.thread.i.i ] %spec.select32 = tail call i32 @llvm.umax.i32(i32 %.026.lcssa, i32 %.023.lcssa) %166 = getelementptr inbounds nuw i8, ptr %.0.val.pn63, i64 88 %167 = load i32, ptr %166, align 8 diff --git a/bench/llvm/optimized/CommonArgs.cpp.ll b/bench/llvm/optimized/CommonArgs.cpp.ll index 5f084b1f919..6e49e8b6020 100644 --- a/bench/llvm/optimized/CommonArgs.cpp.ll +++ b/bench/llvm/optimized/CommonArgs.cpp.ll @@ -17112,7 +17112,6 @@ _ZNK5clang19StreamingDiagnostic10getStorageEv.exit.i.i.i: ; preds = %_ZN4llvmneE br i1 %190, label %191, label %.thread265 191: ; preds = %.thread271, %189 - %.3277 = phi i8 [ 1, %.thread271 ], [ %.3, %189 ] %.290276 = phi i8 [ %.189, %.thread271 ], [ %.290, %189 ] %.1252275 = phi i8 [ 0, %.thread271 ], [ %.1252, %189 ] %192 = load i32, ptr %43, align 4 @@ -17156,7 +17155,7 @@ _ZNK4llvm6Triple10isOSDarwinEv.exit.thread: ; preds = %191, %194, %194, %1 br label %.thread265 .thread265: ; preds = %_ZNK4llvm6Triple10isOSDarwinEv.exit, %145, %_ZNK4llvm6Triple4isPSEv.exit, %_ZN4llvmneENS_9StringRefES0_.exit, %_ZNK4llvm6Triple10isOSDarwinEv.exit.thread, %_ZNK4llvm6Triple4isPSEv.exit128, %189 - %.3270 = phi i8 [ %.3277, %_ZNK4llvm6Triple10isOSDarwinEv.exit.thread ], [ %.3277, %_ZNK4llvm6Triple4isPSEv.exit128 ], [ %.3, %189 ], [ 0, %_ZN4llvmneENS_9StringRefES0_.exit ], [ 0, %_ZNK4llvm6Triple4isPSEv.exit ], [ 0, %145 ], [ %.3277, %_ZNK4llvm6Triple10isOSDarwinEv.exit ] + %.3270 = phi i8 [ 1, %_ZNK4llvm6Triple10isOSDarwinEv.exit.thread ], [ 1, %_ZNK4llvm6Triple4isPSEv.exit128 ], [ %.3, %189 ], [ 0, %_ZN4llvmneENS_9StringRefES0_.exit ], [ 0, %_ZNK4llvm6Triple4isPSEv.exit ], [ 0, %145 ], [ 1, %_ZNK4llvm6Triple10isOSDarwinEv.exit ] %.1252269 = phi i8 [ %.1252275, %_ZNK4llvm6Triple10isOSDarwinEv.exit.thread ], [ %.1252275, %_ZNK4llvm6Triple4isPSEv.exit128 ], [ %.1252, %189 ], [ 0, %_ZN4llvmneENS_9StringRefES0_.exit ], [ 0, %_ZNK4llvm6Triple4isPSEv.exit ], [ 0, %145 ], [ %.1252275, %_ZNK4llvm6Triple10isOSDarwinEv.exit ] %.391 = phi i8 [ %209, %_ZNK4llvm6Triple10isOSDarwinEv.exit.thread ], [ %.290276, %_ZNK4llvm6Triple4isPSEv.exit128 ], [ %.290, %189 ], [ %.189, %_ZN4llvmneENS_9StringRefES0_.exit ], [ %.189, %_ZNK4llvm6Triple4isPSEv.exit ], [ %.189, %145 ], [ %.290276, %_ZNK4llvm6Triple10isOSDarwinEv.exit ] br i1 %.not295, label %221, label %210 diff --git a/bench/llvm/optimized/ValueTracking.cpp.ll b/bench/llvm/optimized/ValueTracking.cpp.ll index c955cf8a548..0aaf8a67be8 100644 --- a/bench/llvm/optimized/ValueTracking.cpp.ll +++ b/bench/llvm/optimized/ValueTracking.cpp.ll @@ -40638,7 +40638,7 @@ _ZL32isImpliedCondCommonOperandWithCRN4llvm7CmpInst9PredicateERKNS_13ConstantRan br label %.critedge6.i .critedge6.i: ; preds = %174, %171, %169, %161, %156, %154, %146, %_ZL32isImpliedCondCommonOperandWithCRN4llvm7CmpInst9PredicateERKNS_13ConstantRangeES1_S4_.exit.i - %.sroa.7.0.i = phi i8 [ %.sroa.3.0.i.i, %_ZL32isImpliedCondCommonOperandWithCRN4llvm7CmpInst9PredicateERKNS_13ConstantRangeES1_S4_.exit.i ], [ 0, %174 ], [ %.sroa.3.0.i.i, %146 ], [ %.sroa.3.0.i.i, %156 ], [ %.sroa.3.0.i.i, %154 ], [ %.sroa.3.0.i.i, %161 ], [ %.sroa.3.0.i.i, %171 ], [ %.sroa.3.0.i.i, %169 ] + %.sroa.7.0.i = phi i8 [ 1, %_ZL32isImpliedCondCommonOperandWithCRN4llvm7CmpInst9PredicateERKNS_13ConstantRangeES1_S4_.exit.i ], [ 0, %174 ], [ %.sroa.3.0.i.i, %146 ], [ %.sroa.3.0.i.i, %156 ], [ %.sroa.3.0.i.i, %154 ], [ %.sroa.3.0.i.i, %161 ], [ %.sroa.3.0.i.i, %171 ], [ %.sroa.3.0.i.i, %169 ] %switch.i = phi i1 [ false, %_ZL32isImpliedCondCommonOperandWithCRN4llvm7CmpInst9PredicateERKNS_13ConstantRangeES1_S4_.exit.i ], [ false, %174 ], [ true, %146 ], [ true, %156 ], [ true, %154 ], [ true, %161 ], [ true, %171 ], [ true, %169 ] %175 = getelementptr inbounds nuw i8, ptr %14, i64 24 %176 = load i32, ptr %175, align 8 @@ -41044,30 +41044,28 @@ _ZL18isImpliedCondICmpsPKN4llvm8ICmpInstENS_7CmpInst9PredicateEPKNS_5ValueES7_RK %337 = load ptr, ptr %8, align 8 %338 = add i32 %6, 1 %339 = call i16 @_ZN4llvm18isImpliedConditionEPKNS_5ValueENS_7CmpInst9PredicateES2_S2_RKNS_10DataLayoutEbj(ptr noundef %337, i32 noundef %1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(512) %4, i1 noundef zeroext %56, i32 noundef %338) - %.sroa.5.0.extract.shift = lshr i16 %339, 8 - %340 = trunc nuw i16 %.sroa.5.0.extract.shift to i1 - br i1 %340, label %_ZL18isImpliedCondAndOrPKN4llvm11InstructionENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEbj.exit, label %341 - -341: ; preds = %.critedge.i27 - %342 = load ptr, ptr %9, align 8 - %343 = call i16 @_ZN4llvm18isImpliedConditionEPKNS_5ValueENS_7CmpInst9PredicateES2_S2_RKNS_10DataLayoutEbj(ptr noundef %342, i32 noundef %1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(512) %4, i1 noundef zeroext %56, i32 noundef %338) - %.not46 = icmp samesign ugt i16 %343, 255 - %spec.select = zext i1 %.not46 to i16 + %.not47 = icmp samesign ult i16 %339, 256 + br i1 %.not47, label %340, label %_ZL18isImpliedCondAndOrPKN4llvm11InstructionENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEbj.exit + +340: ; preds = %.critedge.i27 + %341 = load ptr, ptr %9, align 8 + %342 = call i16 @_ZN4llvm18isImpliedConditionEPKNS_5ValueENS_7CmpInst9PredicateES2_S2_RKNS_10DataLayoutEbj(ptr noundef %341, i32 noundef %1, ptr noundef nonnull %2, ptr noundef %3, ptr noundef nonnull align 8 dereferenceable(512) %4, i1 noundef zeroext %56, i32 noundef %338) + %.not46 = icmp samesign ugt i16 %342, 255 + %343 = zext i1 %.not46 to i8 br label %_ZL18isImpliedCondAndOrPKN4llvm11InstructionENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEbj.exit -_ZL18isImpliedCondAndOrPKN4llvm11InstructionENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEbj.exit: ; preds = %341, %.critedge18.i, %332, %.critedge.i27 - %.sroa.038.0 = phi i16 [ %339, %.critedge.i27 ], [ 0, %332 ], [ 0, %.critedge18.i ], [ %343, %341 ] - %.sroa.5.0 = phi i16 [ %.sroa.5.0.extract.shift, %.critedge.i27 ], [ 0, %332 ], [ 0, %.critedge18.i ], [ %spec.select, %341 ] +_ZL18isImpliedCondAndOrPKN4llvm11InstructionENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEbj.exit: ; preds = %340, %.critedge18.i, %332, %.critedge.i27 + %.sroa.038.0 = phi i16 [ %339, %.critedge.i27 ], [ 0, %332 ], [ 0, %.critedge18.i ], [ %342, %340 ] + %.sroa.5.0 = phi i8 [ 1, %.critedge.i27 ], [ 0, %332 ], [ 0, %.critedge18.i ], [ %343, %340 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %8) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %10) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %11) %.sroa.030.0.extract.trunc31 = trunc i16 %.sroa.038.0 to i8 - %.sroa.3.0.extract.trunc33 = trunc nuw nsw i16 %.sroa.5.0 to i8 br label %344 344: ; preds = %330, %328, %20, %7, %_ZL18isImpliedCondAndOrPKN4llvm11InstructionENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEbj.exit, %_ZL18isImpliedCondICmpsPKN4llvm8ICmpInstENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEb.exit - %.sroa.3.0 = phi i8 [ %.sroa.3.0.extract.trunc33, %_ZL18isImpliedCondAndOrPKN4llvm11InstructionENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEbj.exit ], [ %.sroa.7.1.i, %_ZL18isImpliedCondICmpsPKN4llvm8ICmpInstENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEb.exit ], [ 0, %7 ], [ 0, %20 ], [ 0, %328 ], [ 0, %330 ] + %.sroa.3.0 = phi i8 [ %.sroa.5.0, %_ZL18isImpliedCondAndOrPKN4llvm11InstructionENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEbj.exit ], [ %.sroa.7.1.i, %_ZL18isImpliedCondICmpsPKN4llvm8ICmpInstENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEb.exit ], [ 0, %7 ], [ 0, %20 ], [ 0, %328 ], [ 0, %330 ] %.sroa.030.0 = phi i8 [ %.sroa.030.0.extract.trunc31, %_ZL18isImpliedCondAndOrPKN4llvm11InstructionENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEbj.exit ], [ %.sroa.071.1.i, %_ZL18isImpliedCondICmpsPKN4llvm8ICmpInstENS_7CmpInst9PredicateEPKNS_5ValueES7_RKNS_10DataLayoutEb.exit ], [ undef, %7 ], [ undef, %20 ], [ undef, %328 ], [ undef, %330 ] %.sroa.3.0.insert.ext = zext nneg i8 %.sroa.3.0 to i16 %.sroa.3.0.insert.shift = shl nuw nsw i16 %.sroa.3.0.insert.ext, 8 diff --git a/bench/logos-rs/optimized/hveonhe6t8dfmid.ll b/bench/logos-rs/optimized/hveonhe6t8dfmid.ll index d2d4d142c9f..bd17a53bda7 100644 --- a/bench/logos-rs/optimized/hveonhe6t8dfmid.ll +++ b/bench/logos-rs/optimized/hveonhe6t8dfmid.ll @@ -59,7 +59,7 @@ define hidden void @_ZN13logos_codegen6parser10definition10Definition10named_att %22 = alloca [24 x i8], align 8 %23 = alloca [72 x i8], align 8 invoke void @"_ZN45_$LT$T$u20$as$u20$alloc..string..ToString$GT$9to_string17h7132a4cebc4ff8c7E"(ptr nonnull sret([24 x i8]) align 8 %22, ptr align 8 %1) - to label %24 unwind label %203 + to label %24 unwind label %206 .thread52: ; preds = %.invoke, %89, %185 %.sroa.014.0.ph = phi i8 [ 1, %185 ], [ %.sroa.014.4, %89 ], [ 0, %.invoke ] @@ -218,9 +218,9 @@ define hidden void @_ZN13logos_codegen6parser10definition10Definition10named_att invoke void @"_ZN4core3ptr45drop_in_place$LT$proc_macro2..TokenStream$GT$17h42e110f8c7741f7dE"(ptr nonnull align 8 %78) to label %.invoke unwind label %92 -91: ; preds = %.invoke76, %199, %198, %197, %92 - %.sroa.014.6 = phi i8 [ %.sroa.014.5, %92 ], [ %.sroa.09.1, %197 ], [ %.sroa.09.1, %199 ], [ %.sroa.09.1, %198 ], [ %.sroa.09.1, %.invoke76 ] - %.pn43 = phi { ptr, i32 } [ %93, %92 ], [ %.pn41, %197 ], [ %.pn41, %199 ], [ %.pn41, %198 ], [ %.pn41, %.invoke76 ] +91: ; preds = %203, %201, %199, %198, %197, %92 + %.sroa.014.6 = phi i8 [ %.sroa.014.5, %92 ], [ %.sroa.09.1, %197 ], [ 1, %203 ], [ %.sroa.09.1, %199 ], [ %.sroa.09.1, %201 ], [ %.sroa.09.1, %198 ] + %.pn43 = phi { ptr, i32 } [ %93, %92 ], [ %.pn41, %197 ], [ %.pn41, %203 ], [ %.pn41, %199 ], [ %.pn41, %201 ], [ %.pn41, %198 ] invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h6babfb2ad2ffb03eE"(ptr nonnull align 8 %22) #10 to label %.thread unwind label %140 @@ -298,8 +298,8 @@ define hidden void @_ZN13logos_codegen6parser10definition10Definition10named_att 116: ; preds = %110 store i64 %.sroa.0.0.copyload, ptr %14, align 8 - %.sroa.3.0..sroa_idx80 = getelementptr inbounds nuw i8, ptr %14, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.3.0..sroa_idx80, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.3, i64 24, i1 false) + %.sroa.3.0..sroa_idx79 = getelementptr inbounds nuw i8, ptr %14, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.3.0..sroa_idx79, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.3, i64 24, i1 false) %117 = getelementptr inbounds nuw i8, ptr %1, i64 16 %118 = load i8, ptr %117, align 8 %119 = icmp eq i8 %118, 2 @@ -350,7 +350,7 @@ define hidden void @_ZN13logos_codegen6parser10definition10Definition10named_att invoke void @"_ZN4core3ptr50drop_in_place$LT$logos_codegen..leaf..Callback$GT$17h794f05d070dd2e0aE"(ptr nonnull align 8 %14) to label %.thread66 unwind label %.thread63 -140: ; preds = %.invoke76, %.thread.thread, %203, %197, %157, %149, %142, %125, %91 +140: ; preds = %.thread.thread, %206, %203, %201, %197, %157, %149, %142, %125, %91 %141 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hd62aa59d1fda1c9fE() #12 @@ -465,14 +465,14 @@ define hidden void @_ZN13logos_codegen6parser10definition10Definition10named_att .invoke74.sink.split: ; preds = %145, %97, %80 %.ph = phi ptr [ @anon.d59d2d7d722f715afc7086b35f63c822.7, %80 ], [ @anon.d59d2d7d722f715afc7086b35f63c822.13, %97 ], [ @anon.d59d2d7d722f715afc7086b35f63c822.16, %145 ] - %.ph77 = phi i64 [ 29, %80 ], [ 24, %97 ], [ 30, %145 ] + %.ph76 = phi i64 [ 29, %80 ], [ 24, %97 ], [ 30, %145 ] %186 = getelementptr inbounds nuw i8, ptr %1, i64 4 %187 = load i32, ptr %186, align 4 br label %.invoke74 .invoke74: ; preds = %.invoke74.sink.split, %145, %97, %80 %188 = phi ptr [ @anon.d59d2d7d722f715afc7086b35f63c822.7, %80 ], [ @anon.d59d2d7d722f715afc7086b35f63c822.13, %97 ], [ @anon.d59d2d7d722f715afc7086b35f63c822.16, %145 ], [ %.ph, %.invoke74.sink.split ] - %189 = phi i64 [ 29, %80 ], [ 24, %97 ], [ 30, %145 ], [ %.ph77, %.invoke74.sink.split ] + %189 = phi i64 [ 29, %80 ], [ 24, %97 ], [ 30, %145 ], [ %.ph76, %.invoke74.sink.split ] %190 = phi i32 [ 0, %80 ], [ 0, %97 ], [ 0, %145 ], [ %187, %.invoke74.sink.split ] %191 = invoke align 8 ptr @_ZN13logos_codegen5error6Errors3err17hfe641ffc7d3ca420E(ptr align 8 %3, ptr nonnull align 1 %188, i64 %189, i32 %190) to label %.thread66 unwind label %35 @@ -498,37 +498,42 @@ define hidden void @_ZN13logos_codegen6parser10definition10Definition10named_att to label %91 unwind label %140 198: ; preds = %.thread56 - br i1 %.sroa.011.1, label %.invoke76, label %91 + br i1 %.sroa.011.1, label %201, label %91 199: ; preds = %.thread56 %200 = trunc nuw i8 %.sroa.09.1 to i1 - br i1 %200, label %.invoke76, label %91 + br i1 %200, label %203, label %91 -.invoke76: ; preds = %199, %198 - %201 = getelementptr inbounds nuw i8, ptr %23, i64 24 - invoke void @"_ZN4core3ptr45drop_in_place$LT$proc_macro2..TokenStream$GT$17h42e110f8c7741f7dE"(ptr nonnull align 8 %201) #10 +201: ; preds = %198 + %202 = getelementptr inbounds nuw i8, ptr %23, i64 24 + invoke void @"_ZN4core3ptr45drop_in_place$LT$proc_macro2..TokenStream$GT$17h42e110f8c7741f7dE"(ptr nonnull align 8 %202) #10 + to label %91 unwind label %140 + +203: ; preds = %199 + %204 = getelementptr inbounds nuw i8, ptr %23, i64 24 + invoke void @"_ZN4core3ptr45drop_in_place$LT$proc_macro2..TokenStream$GT$17h42e110f8c7741f7dE"(ptr nonnull align 8 %204) #10 to label %91 unwind label %140 .thread: ; preds = %91, %.thread52 %.pn4551 = phi { ptr, i32 } [ %lpad.thr_comm, %.thread52 ], [ %.pn43, %91 ] %.sroa.014.150 = phi i8 [ %.sroa.014.0.ph, %.thread52 ], [ %.sroa.014.6, %91 ] - %202 = trunc nuw i8 %.sroa.014.150 to i1 - br i1 %202, label %.thread.thread, label %204 + %205 = trunc nuw i8 %.sroa.014.150 to i1 + br i1 %205, label %.thread.thread, label %207 -203: ; preds = %4 +206: ; preds = %4 %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr63drop_in_place$LT$logos_codegen..parser..nested..NestedValue$GT$17h2da3a33f6ba165f2E"(ptr align 8 %2) #10 to label %.thread.thread unwind label %140 -204: ; preds = %.thread.thread, %.thread +207: ; preds = %.thread.thread, %.thread %.pn455172 = phi { ptr, i32 } [ %.pn455173, %.thread.thread ], [ %.pn4551, %.thread ] resume { ptr, i32 } %.pn455172 -.thread.thread: ; preds = %203, %.thread - %.pn455173 = phi { ptr, i32 } [ %.pn4551, %.thread ], [ %lpad.thr_comm.split-lp, %203 ] +.thread.thread: ; preds = %206, %.thread + %.pn455173 = phi { ptr, i32 } [ %.pn4551, %.thread ], [ %lpad.thr_comm.split-lp, %206 ] invoke void @"_ZN4core3ptr39drop_in_place$LT$proc_macro2..Ident$GT$17h833339f276f31dc6E"(ptr align 8 %1) #10 - to label %204 unwind label %140 + to label %207 unwind label %140 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/luau/optimized/Parser.cpp.ll b/bench/luau/optimized/Parser.cpp.ll index 0764f8d888b..4dc3f7fe66c 100644 --- a/bench/luau/optimized/Parser.cpp.ll +++ b/bench/luau/optimized/Parser.cpp.ll @@ -9960,16 +9960,16 @@ _ZN4Luau6Parser25incrementRecursionCounterEPKc.exit: ; preds = %2 _ZN4Luau6Parser12parseUnaryOpERKNS_6LexemeE.exit: ; preds = %_ZN4Luau6Parser25incrementRecursionCounterEPKc.exit call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) %.not.i = icmp eq i32 %15, 33 - br i1 %.not.i, label %.thread53, label %25 + br i1 %.not.i, label %.thread49, label %25 -.thread53: ; preds = %_ZN4Luau6Parser12parseUnaryOpERKNS_6LexemeE.exit +.thread49: ; preds = %_ZN4Luau6Parser12parseUnaryOpERKNS_6LexemeE.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %3, ptr noundef nonnull align 4 dereferenceable(16) %14, i64 16, i1 false) call void (ptr, ptr, ptr, ...) @_ZN4Luau6Parser6reportERKNS_8LocationEPKcz(ptr noundef nonnull align 8 dereferenceable(840) %0, ptr noundef nonnull align 4 dereferenceable(16) %3, ptr noundef nonnull @.str.146) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) br label %.thread -.thread: ; preds = %17, %16, %_ZN4Luau6Parser25incrementRecursionCounterEPKc.exit, %.thread53 - %.sroa.034.052 = phi i32 [ 0, %.thread53 ], [ 0, %_ZN4Luau6Parser25incrementRecursionCounterEPKc.exit ], [ 1, %16 ], [ 2, %17 ] +.thread: ; preds = %_ZN4Luau6Parser25incrementRecursionCounterEPKc.exit, %16, %17, %.thread49 + %.sroa.034.048 = phi i32 [ 0, %.thread49 ], [ 0, %_ZN4Luau6Parser25incrementRecursionCounterEPKc.exit ], [ 1, %16 ], [ 2, %17 ] call void @_ZN4Luau6Parser10nextLexemeEv(ptr noundef nonnull align 8 dereferenceable(840) %0) %18 = call noundef ptr @_ZN4Luau6Parser9parseExprEj(ptr noundef nonnull align 8 dereferenceable(840) %0, i32 noundef 8) %19 = getelementptr inbounds nuw i8, ptr %0, i64 128 @@ -9980,7 +9980,7 @@ _ZN4Luau6Parser12parseUnaryOpERKNS_6LexemeE.exit: ; preds = %_ZN4Luau6Parser25in %23 = load i64, ptr %22, align 4 store i64 %23, ptr %21, align 8 %24 = call noundef ptr @_ZN4Luau9Allocator8allocateEm(ptr noundef nonnull align 8 dereferenceable(16) %20, i64 noundef 40) - call void @_ZN4Luau12AstExprUnaryC1ERKNS_8LocationENS0_2OpEPNS_7AstExprE(ptr noundef nonnull align 8 dereferenceable(40) %24, ptr noundef nonnull align 4 dereferenceable(16) %4, i32 noundef %.sroa.034.052, ptr noundef %18) + call void @_ZN4Luau12AstExprUnaryC1ERKNS_8LocationENS0_2OpEPNS_7AstExprE(ptr noundef nonnull align 8 dereferenceable(40) %24, ptr noundef nonnull align 4 dereferenceable(16) %4, i32 noundef %.sroa.034.048, ptr noundef %18) br label %27 25: ; preds = %_ZN4Luau6Parser12parseUnaryOpERKNS_6LexemeE.exit diff --git a/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll b/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll index c6bd1fb9136..7ef20df7566 100644 --- a/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll +++ b/bench/meilisearch-rs/optimized/1wnbkg3u8l6dyln4.ll @@ -50024,154 +50024,160 @@ define hidden void @"_ZN11meilisearch12search_queue11SearchQueue3run28_$u7b$$u7b %9 = getelementptr inbounds nuw i8, ptr %6, i64 24 br label %11 -10: ; preds = %36 - br i1 %.sroa.013.1, label %18, label %17 +10: ; preds = %35 + br i1 %.sroa.013.1, label %.thread.thread, label %17 -11: ; preds = %3, %36 - %12 = phi i1 [ true, %3 ], [ false, %36 ] - %.sroa.018.071 = phi i32 [ 0, %3 ], [ 1, %36 ] - %.sroa.013.070 = phi i1 [ false, %3 ], [ %.sroa.013.1, %36 ] +11: ; preds = %3, %35 + %12 = phi i1 [ true, %3 ], [ false, %35 ] + %.sroa.018.071 = phi i32 [ 0, %3 ], [ 1, %35 ] + %.sroa.013.070 = phi i1 [ false, %3 ], [ %.sroa.013.1, %35 ] %trunc = trunc nuw i32 %.sroa.018.071 to i1 %13 = trunc nuw nsw i32 %.sroa.018.071 to i8 %14 = shl nuw nsw i8 1, %13 %15 = load i8, ptr %4, align 1, !noundef !7 %16 = and i8 %15, %14 %.not = icmp eq i8 %16, 0 - br i1 %trunc, label %21, label %20 + br i1 %trunc, label %20, label %19 -17: ; preds = %10 +17: ; preds = %.thread, %10 store i64 4, ptr %0, align 8 - br label %19 + br label %18 -18: ; preds = %10 +.thread.thread: ; preds = %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h24bbd9f90c59d547E.exit", %.thread, %10 store i64 5, ptr %0, align 8 - br label %19 + br label %18 -19: ; preds = %33, %49, %18, %17 +18: ; preds = %32, %48, %.thread.thread, %17 ret void -20: ; preds = %11 - br i1 %.not, label %22, label %36 +19: ; preds = %11 + br i1 %.not, label %21, label %35 -21: ; preds = %11 - br i1 %.not, label %37, label %36 +20: ; preds = %11 + br i1 %.not, label %36, label %.thread -22: ; preds = %20 - %23 = load i8, ptr %7, align 8, !range !1190, !noalias !8139, !noundef !7 - switch i8 %23, label %default.unreachable [ - i8 0, label %24 - i8 1, label %26 - i8 2, label %27 +21: ; preds = %19 + %22 = load i8, ptr %7, align 8, !range !1190, !noalias !8139, !noundef !7 + switch i8 %22, label %.unreachabledefault [ + i8 0, label %23 + i8 1, label %25 + i8 2, label %26 i8 3, label %._crit_edge.i ] -._crit_edge.i: ; preds = %22 +._crit_edge.i: ; preds = %21 %.val.pre.i = load ptr, ptr %.phi.trans.insert.i, align 8, !noalias !8139 - br label %28 + br label %27 -default.unreachable: ; preds = %37, %22 +.unreachabledefault: ; preds = %21 unreachable -24: ; preds = %22 - %25 = load ptr, ptr %6, align 8, !noalias !8139, !nonnull !7, !align !1202, !noundef !7 - store ptr %25, ptr %.phi.trans.insert.i, align 8, !noalias !8139 - br label %28 +default.unreachable: ; preds = %36 + unreachable -26: ; preds = %22 +23: ; preds = %21 + %24 = load ptr, ptr %6, align 8, !noalias !8139, !nonnull !7, !align !1202, !noundef !7 + store ptr %24, ptr %.phi.trans.insert.i, align 8, !noalias !8139 + br label %27 + +25: ; preds = %21 tail call void @_ZN4core9panicking11panic_const28panic_const_async_fn_resumed17hc58cbb670ca18f94E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.22b8788852e0b7971c9c7c884072fc21.381) #54, !noalias !8139 unreachable -27: ; preds = %22 +26: ; preds = %21 tail call void @_ZN4core9panicking11panic_const34panic_const_async_fn_resumed_panic17hed37460786e569beE(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.22b8788852e0b7971c9c7c884072fc21.381) #54, !noalias !8139 unreachable -28: ; preds = %24, %._crit_edge.i - %.val.i = phi ptr [ %.val.pre.i, %._crit_edge.i ], [ %25, %24 ] - %29 = invoke noundef range(i8 0, 3) i8 @"_ZN5tokio4sync4mpsc4chan15Rx$LT$T$C$S$GT$4recv17h1da8f7cb018569c4E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %.val.i, ptr noalias noundef nonnull align 8 dereferenceable(32) %2) - to label %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h7828f84a7efc92ceE.exit" unwind label %30 +27: ; preds = %23, %._crit_edge.i + %.val.i = phi ptr [ %.val.pre.i, %._crit_edge.i ], [ %24, %23 ] + %28 = invoke noundef range(i8 0, 3) i8 @"_ZN5tokio4sync4mpsc4chan15Rx$LT$T$C$S$GT$4recv17h1da8f7cb018569c4E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %.val.i, ptr noalias noundef nonnull align 8 dereferenceable(32) %2) + to label %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h7828f84a7efc92ceE.exit" unwind label %29 -common.resume: ; preds = %45, %30 - %common.resume.op = phi { ptr, i32 } [ %31, %30 ], [ %46, %45 ] +common.resume: ; preds = %44, %29 + %common.resume.op = phi { ptr, i32 } [ %30, %29 ], [ %45, %44 ] resume { ptr, i32 } %common.resume.op -30: ; preds = %28 - %31 = landingpad { ptr, i32 } +29: ; preds = %27 + %30 = landingpad { ptr, i32 } cleanup store i8 2, ptr %7, align 8, !noalias !8139 br label %common.resume -"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h7828f84a7efc92ceE.exit": ; preds = %28 - %32 = icmp eq i8 %29, 2 - %storemerge.i = select i1 %32, i8 3, i8 1 +"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h7828f84a7efc92ceE.exit": ; preds = %27 + %31 = icmp eq i8 %28, 2 + %storemerge.i = select i1 %31, i8 3, i8 1 store i8 %storemerge.i, ptr %7, align 8, !noalias !8139 - br i1 %32, label %36, label %33 + br i1 %31, label %35, label %32 -33: ; preds = %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h7828f84a7efc92ceE.exit" - %34 = load i8, ptr %4, align 1, !noundef !7 - %35 = or i8 %34, %14 - store i8 %35, ptr %4, align 1 +32: ; preds = %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h7828f84a7efc92ceE.exit" + %33 = load i8, ptr %4, align 1, !noundef !7 + %34 = or i8 %33, %14 + store i8 %34, ptr %4, align 1 store i64 2, ptr %0, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i8 %29, ptr %.sroa.4.0..sroa_idx, align 8 - br label %19 + store i8 %28, ptr %.sroa.4.0..sroa_idx, align 8 + br label %18 + +.thread: ; preds = %20 + br i1 %.sroa.013.070, label %.thread.thread, label %17 -36: ; preds = %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h24bbd9f90c59d547E.exit", %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h7828f84a7efc92ceE.exit", %21, %20 - %.sroa.013.1 = phi i1 [ %.sroa.013.070, %21 ], [ %.sroa.013.070, %20 ], [ true, %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h7828f84a7efc92ceE.exit" ], [ true, %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h24bbd9f90c59d547E.exit" ] +35: ; preds = %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h7828f84a7efc92ceE.exit", %19 + %.sroa.013.1 = phi i1 [ %.sroa.013.070, %19 ], [ true, %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h7828f84a7efc92ceE.exit" ] br i1 %12, label %11, label %10 -37: ; preds = %21 - %38 = load i8, ptr %8, align 8, !range !1190, !noalias !8142, !noundef !7 - switch i8 %38, label %default.unreachable [ - i8 0, label %39 - i8 1, label %41 - i8 2, label %42 +36: ; preds = %20 + %37 = load i8, ptr %8, align 8, !range !1190, !noalias !8142, !noundef !7 + switch i8 %37, label %default.unreachable [ + i8 0, label %38 + i8 1, label %40 + i8 2, label %41 i8 3, label %._crit_edge.i24 ] -._crit_edge.i24: ; preds = %37 +._crit_edge.i24: ; preds = %36 %.val.pre.i26 = load ptr, ptr %.phi.trans.insert.i25, align 8, !noalias !8142 - br label %43 + br label %42 -39: ; preds = %37 - %40 = load ptr, ptr %9, align 8, !noalias !8142, !nonnull !7, !align !1202, !noundef !7 - store ptr %40, ptr %.phi.trans.insert.i25, align 8, !noalias !8142 - br label %43 +38: ; preds = %36 + %39 = load ptr, ptr %9, align 8, !noalias !8142, !nonnull !7, !align !1202, !noundef !7 + store ptr %39, ptr %.phi.trans.insert.i25, align 8, !noalias !8142 + br label %42 -41: ; preds = %37 +40: ; preds = %36 tail call void @_ZN4core9panicking11panic_const28panic_const_async_fn_resumed17hc58cbb670ca18f94E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.22b8788852e0b7971c9c7c884072fc21.381) #54, !noalias !8142 unreachable -42: ; preds = %37 +41: ; preds = %36 tail call void @_ZN4core9panicking11panic_const34panic_const_async_fn_resumed_panic17hed37460786e569beE(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.22b8788852e0b7971c9c7c884072fc21.381) #54, !noalias !8142 unreachable -43: ; preds = %39, %._crit_edge.i24 - %.val.i27 = phi ptr [ %.val.pre.i26, %._crit_edge.i24 ], [ %40, %39 ] - %44 = invoke { i64, ptr } @"_ZN5tokio4sync4mpsc4chan15Rx$LT$T$C$S$GT$4recv17hb11ed6ff2a090116E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %.val.i27, ptr noalias noundef nonnull align 8 dereferenceable(32) %2) - to label %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h24bbd9f90c59d547E.exit" unwind label %45 +42: ; preds = %38, %._crit_edge.i24 + %.val.i27 = phi ptr [ %.val.pre.i26, %._crit_edge.i24 ], [ %39, %38 ] + %43 = invoke { i64, ptr } @"_ZN5tokio4sync4mpsc4chan15Rx$LT$T$C$S$GT$4recv17hb11ed6ff2a090116E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %.val.i27, ptr noalias noundef nonnull align 8 dereferenceable(32) %2) + to label %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h24bbd9f90c59d547E.exit" unwind label %44 -45: ; preds = %43 - %46 = landingpad { ptr, i32 } +44: ; preds = %42 + %45 = landingpad { ptr, i32 } cleanup store i8 2, ptr %8, align 8, !noalias !8142 br label %common.resume -"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h24bbd9f90c59d547E.exit": ; preds = %43 - %47 = extractvalue { i64, ptr } %44, 0 - %48 = icmp eq i64 %47, 2 - %..i = select i1 %48, i8 3, i8 1 +"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h24bbd9f90c59d547E.exit": ; preds = %42 + %46 = extractvalue { i64, ptr } %43, 0 + %47 = icmp eq i64 %46, 2 + %..i = select i1 %47, i8 3, i8 1 store i8 %..i, ptr %8, align 8, !noalias !8142 - br i1 %48, label %36, label %49 - -49: ; preds = %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h24bbd9f90c59d547E.exit" - %50 = extractvalue { i64, ptr } %44, 1 - %51 = load i8, ptr %4, align 1, !noundef !7 - %52 = or i8 %51, %14 - store i8 %52, ptr %4, align 1 - store i64 %47, ptr %0, align 8 + br i1 %47, label %.thread.thread, label %48 + +48: ; preds = %"_ZN5tokio4sync4mpsc7bounded17Receiver$LT$T$GT$4recv28_$u7b$$u7b$closure$u7d$$u7d$17h24bbd9f90c59d547E.exit" + %49 = extractvalue { i64, ptr } %43, 1 + %50 = load i8, ptr %4, align 1, !noundef !7 + %51 = or i8 %50, %14 + store i8 %51, ptr %4, align 1 + store i64 %46, ptr %0, align 8 %.sroa.412.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %50, ptr %.sroa.412.0..sroa_idx, align 8 - br label %19 + store ptr %49, ptr %.sroa.412.0..sroa_idx, align 8 + br label %18 } ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) diff --git a/bench/meilisearch-rs/optimized/50l87gnpqq82g6pe.ll b/bench/meilisearch-rs/optimized/50l87gnpqq82g6pe.ll index b10445f79a4..e4ee56b3a5a 100644 --- a/bench/meilisearch-rs/optimized/50l87gnpqq82g6pe.ll +++ b/bench/meilisearch-rs/optimized/50l87gnpqq82g6pe.ll @@ -2994,10 +2994,9 @@ define hidden void @"_ZN243_$LT$$LT$meilisearch_types..keys.._..$LT$impl$u20$ser br label %10 10: ; preds = %9, %8 - %.sink = phi i8 [ 1, %9 ], [ %5, %8 ] store ptr %7, ptr %0, align 8 %11 = getelementptr inbounds nuw i8, ptr %0, i64 11 - store i8 %.sink, ptr %11, align 1 + store i8 %5, ptr %11, align 1 ret void } @@ -3028,10 +3027,9 @@ define hidden void @"_ZN243_$LT$$LT$meilisearch_types..keys.._..$LT$impl$u20$ser br label %10 10: ; preds = %9, %8 - %.sink = phi i8 [ 1, %9 ], [ %5, %8 ] store ptr %7, ptr %0, align 8 %11 = getelementptr inbounds nuw i8, ptr %0, i64 11 - store i8 %.sink, ptr %11, align 1 + store i8 %5, ptr %11, align 1 ret void } @@ -3062,10 +3060,9 @@ define hidden void @"_ZN243_$LT$$LT$meilisearch_types..keys.._..$LT$impl$u20$ser br label %10 10: ; preds = %9, %8 - %.sink = phi i8 [ 1, %9 ], [ %5, %8 ] store ptr %7, ptr %0, align 8 %11 = getelementptr inbounds nuw i8, ptr %0, i64 11 - store i8 %.sink, ptr %11, align 1 + store i8 %5, ptr %11, align 1 ret void } @@ -3223,10 +3220,9 @@ define hidden void @"_ZN243_$LT$$LT$meilisearch_types..keys.._..$LT$impl$u20$ser br label %10 10: ; preds = %9, %8 - %.sink = phi i8 [ 1, %9 ], [ %5, %8 ] store ptr %7, ptr %0, align 8 %11 = getelementptr inbounds nuw i8, ptr %0, i64 11 - store i8 %.sink, ptr %11, align 1 + store i8 %5, ptr %11, align 1 ret void } diff --git a/bench/nlohmann_json/optimized/unit.cpp.ll b/bench/nlohmann_json/optimized/unit.cpp.ll index fa10b70e6fc..5408dc21c7d 100644 --- a/bench/nlohmann_json/optimized/unit.cpp.ll +++ b/bench/nlohmann_json/optimized/unit.cpp.ll @@ -12824,8 +12824,8 @@ _ZN7doctest6detail18getRegisteredTestsEv.exit: ; preds = %if.end120, %init.ch for.end139.thread: ; preds = %_ZN7doctest6detail18getRegisteredTestsEv.exit %67 = load ptr, ptr %this, align 8 - %add.ptr142716 = getelementptr inbounds nuw i8, ptr %67, i64 136 - store i32 0, ptr %add.ptr142716, align 8 + %add.ptr142717 = getelementptr inbounds nuw i8, ptr %67, i64 136 + store i32 0, ptr %add.ptr142717, align 8 br label %if.end226 for.body131: ; preds = %_ZN7doctest6detail18getRegisteredTestsEv.exit, %for.inc137 @@ -13008,9 +13008,9 @@ for.body204: ; preds = %if.then197, %for.bo br i1 %cmp203.not, label %if.end226, label %for.body204, !llvm.loop !90 if.end226: ; preds = %for.body204, %if.then149.invoke, %for.end139.thread, %if.then197, %if.else191, %for.end139 - %cmp.i.i169721 = phi i1 [ true, %for.end139.thread ], [ false, %if.then197 ], [ false, %if.else191 ], [ true, %for.end139 ], [ false, %if.then149.invoke ], [ false, %for.body204 ] - %testArray.sroa.0.0.lcssa719 = phi ptr [ null, %for.end139.thread ], [ %testArray.sroa.0.1, %if.then197 ], [ %testArray.sroa.0.1, %if.else191 ], [ %testArray.sroa.0.1, %for.end139 ], [ %testArray.sroa.0.1, %if.then149.invoke ], [ %testArray.sroa.0.1, %for.body204 ] - %testArray.sroa.13.0.lcssa718 = phi ptr [ null, %for.end139.thread ], [ %testArray.sroa.13.1, %if.then197 ], [ %testArray.sroa.13.1, %if.else191 ], [ %testArray.sroa.13.1, %for.end139 ], [ %testArray.sroa.13.1, %if.then149.invoke ], [ %testArray.sroa.13.1, %for.body204 ] + %cmp.i.i169722 = phi i1 [ true, %for.end139.thread ], [ false, %if.then197 ], [ false, %if.else191 ], [ true, %for.end139 ], [ false, %if.then149.invoke ], [ false, %for.body204 ] + %testArray.sroa.0.0.lcssa720 = phi ptr [ null, %for.end139.thread ], [ %testArray.sroa.0.1, %if.then197 ], [ %testArray.sroa.0.1, %if.else191 ], [ %testArray.sroa.0.1, %for.end139 ], [ %testArray.sroa.0.1, %if.then149.invoke ], [ %testArray.sroa.0.1, %for.body204 ] + %testArray.sroa.13.0.lcssa719 = phi ptr [ null, %for.end139.thread ], [ %testArray.sroa.13.1, %if.then197 ], [ %testArray.sroa.13.1, %if.else191 ], [ %testArray.sroa.13.1, %for.end139 ], [ %testArray.sroa.13.1, %if.then149.invoke ], [ %testArray.sroa.13.1, %for.body204 ] %81 = getelementptr inbounds nuw i8, ptr %testSuitesPassingFilt, i64 8 store i32 0, ptr %81, align 8 %_M_parent.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %testSuitesPassingFilt, i64 16 @@ -13116,7 +13116,7 @@ lpad252.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp. if.end257: ; preds = %for.inc254, %if.then236, %if.end226, %lor.lhs.false229, %lor.end %91 = phi i1 [ true, %lor.end ], [ true, %lor.lhs.false229 ], [ true, %if.end226 ], [ false, %if.then236 ], [ false, %for.inc254 ] - br i1 %cmp.i.i169721, label %for.end589, label %for.body267.lr.ph + br i1 %cmp.i.i169722, label %for.end589, label %for.body267.lr.ph for.body267.lr.ph: ; preds = %if.end257 %tv_usec.i.i = getelementptr inbounds nuw i8, ptr %t.i.i, i64 8 @@ -13138,7 +13138,7 @@ for.body267: ; preds = %for.body267.lr.ph, %queryResults.sroa.0.2662 = phi ptr [ null, %for.body267.lr.ph ], [ %queryResults.sroa.0.3, %for.inc587 ] %queryResults.sroa.9.0661 = phi ptr [ null, %for.body267.lr.ph ], [ %queryResults.sroa.9.1, %for.inc587 ] %queryResults.sroa.18.0660 = phi ptr [ null, %for.body267.lr.ph ], [ %queryResults.sroa.18.1, %for.inc587 ] - %__begin1259.sroa.0.0659 = phi ptr [ %testArray.sroa.0.0.lcssa719, %for.body267.lr.ph ], [ %incdec.ptr.i410, %for.inc587 ] + %__begin1259.sroa.0.0659 = phi ptr [ %testArray.sroa.0.0.lcssa720, %for.body267.lr.ph ], [ %incdec.ptr.i410, %for.inc587 ] %93 = load ptr, ptr %__begin1259.sroa.0.0659, align 8 %m_skip = getelementptr inbounds nuw i8, ptr %93, i64 56 %94 = load i8, ptr %m_skip, align 8 @@ -13226,10 +13226,10 @@ if.end346: ; preds = %if.then343, %invoke %first354 = getelementptr inbounds nuw i8, ptr %117, i64 92 %120 = load i32, ptr %first354, align 4 %cmp357.not = icmp ule i32 %120, %118 - %or.cond.not750 = select i1 %cmp351, i1 %cmp357.not, i1 false + %or.cond.not751 = select i1 %cmp351, i1 %cmp357.not, i1 false %cmp364 = icmp ugt i32 %120, %119 - %or.cond746 = select i1 %or.cond.not750, i1 true, i1 %cmp364 - %brmerge = or i1 %or.cond746, %tobool342 + %or.cond747 = select i1 %or.cond.not751, i1 true, i1 %cmp364 + %brmerge = or i1 %or.cond747, %tobool342 br i1 %brmerge, label %if.then368, label %if.end388 if.then368: ; preds = %if.end346 @@ -13570,8 +13570,8 @@ delete.notnull.i339: ; preds = %if.then.i337 if.end429.critedge: ; preds = %invoke.cont409 %cmp.i.i343 = icmp sgt i8 %.pre708, -1 %isnull.i345 = icmp eq ptr %133, null - %or.cond747 = select i1 %cmp.i.i343, i1 true, i1 %isnull.i345 - br i1 %or.cond747, label %for.inc587, label %delete.notnull.i346 + %or.cond748 = select i1 %cmp.i.i343, i1 true, i1 %isnull.i345 + br i1 %or.cond748, label %for.inc587, label %delete.notnull.i346 delete.notnull.i346: ; preds = %if.end429.critedge call void @_ZdaPv(ptr noundef nonnull %133) #45 @@ -13672,7 +13672,7 @@ for.end456: ; preds = %for.inc454, %_ZNSt1 do.body: ; preds = %if.end544, %for.end456 %168 = phi ptr [ %.pre702, %for.end456 ], [ %221, %if.end544 ] - %run_test.0 = phi i8 [ 1, %for.end456 ], [ %spec.select59, %if.end544 ] + %run_test.0 = phi i8 [ 1, %for.end456 ], [ %run_test.1, %if.end544 ] %reachedLeaf = getelementptr inbounds nuw i8, ptr %168, i64 4368 store i8 0, ptr %reachedLeaf, align 8 %169 = load ptr, ptr %this, align 8 @@ -13915,11 +13915,11 @@ delete.notnull.i.i398: ; preds = %if.then.i.i396 br label %ehcleanup for.end489.invoke: ; preds = %_ZN7doctest17TestCaseExceptionD2Ev.exit, %catch, %lpad467 - %.sink748 = phi i32 [ 1, %lpad467 ], [ 2, %catch ], [ 2, %_ZN7doctest17TestCaseExceptionD2Ev.exit ] + %.sink749 = phi i32 [ 1, %lpad467 ], [ 2, %catch ], [ 2, %_ZN7doctest17TestCaseExceptionD2Ev.exit ] %209 = load ptr, ptr %this, align 8 %failure_flags499 = getelementptr inbounds nuw i8, ptr %209, i64 176 %210 = load i32, ptr %failure_flags499, align 8 - %or500 = or i32 %210, %.sink748 + %or500 = or i32 %210, %.sink749 store i32 %or500, ptr %failure_flags499, align 8 invoke void @__cxa_end_catch() to label %try.cont unwind label %lpad252.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit @@ -13941,7 +13941,7 @@ if.end519: ; preds = %if.then514, %_ZNK7d land.lhs.true522: ; preds = %if.end519 %tobool523 = trunc nuw i8 %run_test.1 to i1 - br i1 %tobool523, label %if.then524, label %if.end544 + br i1 %tobool523, label %if.then524, label %do.end if.then524: ; preds = %land.lhs.true522 %214 = load ptr, ptr @_ZN7doctest6detail4g_csE, align 8 @@ -13974,17 +13974,15 @@ if.end544.loopexit: ; preds = %for.inc541 %.pre707 = load ptr, ptr %_M_finish.i.i405.phi.trans.insert, align 8 br label %if.end544 -if.end544: ; preds = %if.end544.loopexit, %if.then524, %land.lhs.true522 - %219 = phi ptr [ %.pre707, %if.end544.loopexit ], [ %213, %if.then524 ], [ %213, %land.lhs.true522 ] - %220 = phi ptr [ %.pre706, %if.end544.loopexit ], [ %212, %if.then524 ], [ %212, %land.lhs.true522 ] - %221 = phi ptr [ %.pre705, %if.end544.loopexit ], [ %211, %if.then524 ], [ %211, %land.lhs.true522 ] - %cmp.i.i406 = icmp eq ptr %220, %219 - %spec.select59 = select i1 %cmp.i.i406, i8 0, i8 %run_test.1 - %tobool550 = trunc nuw i8 %spec.select59 to i1 - br i1 %tobool550, label %do.body, label %do.end, !llvm.loop !94 - -do.end: ; preds = %if.end519, %if.end544 - %222 = phi ptr [ %221, %if.end544 ], [ %211, %if.end519 ] +if.end544: ; preds = %if.end544.loopexit, %if.then524 + %219 = phi ptr [ %.pre707, %if.end544.loopexit ], [ %213, %if.then524 ] + %220 = phi ptr [ %.pre706, %if.end544.loopexit ], [ %212, %if.then524 ] + %221 = phi ptr [ %.pre705, %if.end544.loopexit ], [ %211, %if.then524 ] + %cmp.i.i406.not = icmp eq ptr %220, %219 + br i1 %cmp.i.i406.not, label %do.end, label %do.body, !llvm.loop !94 + +do.end: ; preds = %if.end519, %land.lhs.true522, %if.end544 + %222 = phi ptr [ %221, %if.end544 ], [ %211, %land.lhs.true522 ], [ %211, %if.end519 ] invoke void @_ZN7doctest6detail12ContextState20finalizeTestCaseDataEv(ptr noundef nonnull align 8 dereferenceable(4489) %222) to label %invoke.cont552 unwind label %lpad252.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit @@ -14034,7 +14032,7 @@ for.inc587: ; preds = %for.inc384, %if.the %queryResults.sroa.9.1 = phi ptr [ %queryResults.sroa.9.0661, %if.then368 ], [ %queryResults.sroa.9.0661, %if.end388 ], [ %queryResults.sroa.9.0661, %_ZN7doctest6StringD2Ev.exit265 ], [ %queryResults.sroa.9.3, %_ZN7doctest6StringD2Ev.exit327 ], [ %queryResults.sroa.9.0661, %land.lhs.true578 ], [ %queryResults.sroa.9.0661, %for.end572 ], [ %incdec.ptr.i.i.i224, %_ZNSt6vectorIPKN7doctest12TestCaseDataESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %incdec.ptr.i.i209, %if.then.i.i208 ], [ %queryResults.sroa.9.0661, %if.end429.critedge ], [ %queryResults.sroa.9.0661, %delete.notnull.i346 ], [ %queryResults.sroa.9.0661, %if.then370 ], [ %queryResults.sroa.9.0661, %for.inc384 ] %queryResults.sroa.0.3 = phi ptr [ %queryResults.sroa.0.2662, %if.then368 ], [ %queryResults.sroa.0.2662, %if.end388 ], [ %queryResults.sroa.0.2662, %_ZN7doctest6StringD2Ev.exit265 ], [ %queryResults.sroa.0.5, %_ZN7doctest6StringD2Ev.exit327 ], [ %queryResults.sroa.0.2662, %land.lhs.true578 ], [ %queryResults.sroa.0.2662, %for.end572 ], [ %call5.i.i.i.i.i.i232, %_ZNSt6vectorIPKN7doctest12TestCaseDataESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %queryResults.sroa.0.2662, %if.then.i.i208 ], [ %queryResults.sroa.0.2662, %if.end429.critedge ], [ %queryResults.sroa.0.2662, %delete.notnull.i346 ], [ %queryResults.sroa.0.2662, %if.then370 ], [ %queryResults.sroa.0.2662, %for.inc384 ] %incdec.ptr.i410 = getelementptr inbounds nuw i8, ptr %__begin1259.sroa.0.0659, i64 8 - %cmp.i189.not = icmp eq ptr %incdec.ptr.i410, %testArray.sroa.13.0.lcssa718 + %cmp.i189.not = icmp eq ptr %incdec.ptr.i410, %testArray.sroa.13.0.lcssa719 br i1 %cmp.i189.not, label %for.end589.loopexit, label %for.body267 for.end589.loopexit: ; preds = %land.lhs.true578, %for.inc587 @@ -14207,11 +14205,11 @@ terminate.lpad.i.i: ; preds = %_ZNSt6vectorIPKN7do unreachable _ZNSt3setIN7doctest6StringESt4lessIS1_ESaIS1_EED2Ev.exit: ; preds = %_ZNSt6vectorIPKN7doctest12TestCaseDataESaIS3_EED2Ev.exit - %tobool.not.i.i.i463 = icmp eq ptr %testArray.sroa.0.0.lcssa719, null + %tobool.not.i.i.i463 = icmp eq ptr %testArray.sroa.0.0.lcssa720, null br i1 %tobool.not.i.i.i463, label %cleanup, label %if.then.i.i.i464 if.then.i.i.i464: ; preds = %_ZNSt3setIN7doctest6StringESt4lessIS1_ESaIS1_EED2Ev.exit - call void @_ZdlPv(ptr noundef nonnull %testArray.sroa.0.0.lcssa719) #45 + call void @_ZdlPv(ptr noundef nonnull %testArray.sroa.0.0.lcssa720) #45 br label %cleanup ehcleanup642: ; preds = %lpad252.loopexit, %lpad252.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad252.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad252.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad252.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad252.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad252.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad252.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad252.loopexit.split-lp.loopexit, %delete.notnull.i339, %if.then.i337, %lpad422, %ehcleanup @@ -14225,13 +14223,13 @@ if.then.i.i.i466: ; preds = %ehcleanup642 br label %_ZNSt6vectorIPKN7doctest12TestCaseDataESaIS3_EED2Ev.exit467 _ZNSt6vectorIPKN7doctest12TestCaseDataESaIS3_EED2Ev.exit467: ; preds = %ehcleanup642.thread, %ehcleanup642, %if.then.i.i.i466 - %.pn47730 = phi { ptr, i32 } [ %lpad.loopexit579, %ehcleanup642.thread ], [ %.pn47, %ehcleanup642 ], [ %.pn47, %if.then.i.i.i466 ] + %.pn47731 = phi { ptr, i32 } [ %lpad.loopexit579, %ehcleanup642.thread ], [ %.pn47, %ehcleanup642 ], [ %.pn47, %if.then.i.i.i466 ] call void @_ZNSt3setIN7doctest6StringESt4lessIS1_ESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %testSuitesPassingFilt) #44 br label %ehcleanup644 ehcleanup644: ; preds = %lpad135.loopexit, %lpad135.loopexit.split-lp, %_ZNSt6vectorIPKN7doctest12TestCaseDataESaIS3_EED2Ev.exit467 - %testArray.sroa.0.0617 = phi ptr [ %testArray.sroa.0.0.lcssa719, %_ZNSt6vectorIPKN7doctest12TestCaseDataESaIS3_EED2Ev.exit467 ], [ %testArray.sroa.0.0640, %lpad135.loopexit ], [ %testArray.sroa.0.0629, %lpad135.loopexit.split-lp ] - %.pn49 = phi { ptr, i32 } [ %.pn47730, %_ZNSt6vectorIPKN7doctest12TestCaseDataESaIS3_EED2Ev.exit467 ], [ %lpad.loopexit582, %lpad135.loopexit ], [ %lpad.loopexit.split-lp583, %lpad135.loopexit.split-lp ] + %testArray.sroa.0.0617 = phi ptr [ %testArray.sroa.0.0.lcssa720, %_ZNSt6vectorIPKN7doctest12TestCaseDataESaIS3_EED2Ev.exit467 ], [ %testArray.sroa.0.0640, %lpad135.loopexit ], [ %testArray.sroa.0.0629, %lpad135.loopexit.split-lp ] + %.pn49 = phi { ptr, i32 } [ %.pn47731, %_ZNSt6vectorIPKN7doctest12TestCaseDataESaIS3_EED2Ev.exit467 ], [ %lpad.loopexit582, %lpad135.loopexit ], [ %lpad.loopexit.split-lp583, %lpad135.loopexit.split-lp ] %tobool.not.i.i.i468 = icmp eq ptr %testArray.sroa.0.0617, null br i1 %tobool.not.i.i.i468, label %ehcleanup645, label %if.then.i.i.i469 diff --git a/bench/nori/optimized/screen.cpp.ll b/bench/nori/optimized/screen.cpp.ll index fd6d2b11b0b..b9122e252ea 100644 --- a/bench/nori/optimized/screen.cpp.ll +++ b/bench/nori/optimized/screen.cpp.ll @@ -4595,13 +4595,13 @@ _ZN7nanogui5ArrayIfLm2EEC2IiEERKNS0_IT_Lm2EEE.exit.critedge: %42 = extractvalue { ptr, i32 } %41, 1 %43 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #32 %44 = icmp eq i32 %42, %43 - br i1 %44, label %45, label %108 + br i1 %44, label %45, label %110 45: ; preds = %40 %46 = extractvalue { ptr, i32 } %41, 0 %47 = call ptr @__cxa_begin_catch(ptr %46) #32 %48 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) @_ZSt4cerr, ptr noundef nonnull @.str.9) - to label %49 unwind label %106 + to label %49 unwind label %108 49: ; preds = %45 %50 = load ptr, ptr %47, align 8 @@ -4609,17 +4609,17 @@ _ZN7nanogui5ArrayIfLm2EEC2IiEERKNS0_IT_Lm2EEE.exit.critedge: %52 = load ptr, ptr %51, align 8 %53 = call noundef ptr %52(ptr noundef nonnull align 8 dereferenceable(8) %47) #32 %54 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %48, ptr noundef %53) - to label %55 unwind label %106 + to label %55 unwind label %108 55: ; preds = %49 %56 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSolsEPFRSoS_E(ptr noundef nonnull align 8 dereferenceable(8) %54, ptr noundef nonnull @_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_) - to label %57 unwind label %106 + to label %57 unwind label %108 57: ; preds = %55 call void @__cxa_end_catch() br label %58 -58: ; preds = %100, %57 +58: ; preds = %102, %57 ret void 59: ; preds = %_ZN7nanogui5ArrayIfLm2EEC2IiEERKNS0_IT_Lm2EEE.exit.critedge @@ -4661,7 +4661,7 @@ _ZN7nanogui5ArrayIfLm2EEC2IiEERKNS0_IT_Lm2EEE.exit.critedge: to label %83 unwind label %40 83: ; preds = %.critedge - br i1 %82, label %100, label %.thread + br i1 %82, label %102, label %.thread .thread: ; preds = %27, %28, %33, %83 %84 = getelementptr inbounds nuw i8, ptr %0, i64 260 @@ -4685,34 +4685,37 @@ _ZN7nanogui5ArrayIfLm2EEC2IiEERKNS0_IT_Lm2EEE.exit.critedge: %99 = invoke noundef zeroext i1 %98(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 4 dereferenceable(8) %3, ptr noundef nonnull align 4 dereferenceable(8) %6, i32 noundef %93, i32 noundef %95) to label %100 unwind label %40 -100: ; preds = %.thread, %83 - %.1.in = phi i1 [ true, %83 ], [ %99, %.thread ] - %101 = getelementptr inbounds nuw i8, ptr %0, i64 260 - %102 = load i64, ptr %3, align 8 - store i64 %102, ptr %101, align 4 - %103 = getelementptr inbounds nuw i8, ptr %0, i64 349 - %104 = load i8, ptr %103, align 1 - %.tr = trunc i8 %104 to i1 - %.narrow = or i1 %.1.in, %.tr - %105 = zext i1 %.narrow to i8 - store i8 %105, ptr %103, align 1 +100: ; preds = %.thread + %101 = zext i1 %99 to i8 + br label %102 + +102: ; preds = %100, %83 + %.1 = phi i8 [ 1, %83 ], [ %101, %100 ] + %103 = getelementptr inbounds nuw i8, ptr %0, i64 260 + %104 = load i64, ptr %3, align 8 + store i64 %104, ptr %103, align 4 + %105 = getelementptr inbounds nuw i8, ptr %0, i64 349 + %106 = load i8, ptr %105, align 1 + %.masked = and i8 %106, 1 + %107 = or i8 %.masked, %.1 + store i8 %107, ptr %105, align 1 br label %58 -106: ; preds = %55, %49, %45 - %107 = landingpad { ptr, i32 } +108: ; preds = %55, %49, %45 + %109 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() - to label %108 unwind label %109 + to label %110 unwind label %111 -108: ; preds = %106, %40 - %.merged = phi { ptr, i32 } [ %107, %106 ], [ %41, %40 ] +110: ; preds = %108, %40 + %.merged = phi { ptr, i32 } [ %109, %108 ], [ %41, %40 ] resume { ptr, i32 } %.merged -109: ; preds = %106 - %110 = landingpad { ptr, i32 } +111: ; preds = %108 + %112 = landingpad { ptr, i32 } catch ptr null - %111 = extractvalue { ptr, i32 } %110, 0 - call void @__clang_call_terminate(ptr %111) #33 + %113 = extractvalue { ptr, i32 } %112, 0 + call void @__clang_call_terminate(ptr %113) #33 unreachable } diff --git a/bench/ockam-rs/optimized/3mmfh9oxbbu2kjan.ll b/bench/ockam-rs/optimized/3mmfh9oxbbu2kjan.ll index 5f216491dc1..9747fe18044 100644 --- a/bench/ockam-rs/optimized/3mmfh9oxbbu2kjan.ll +++ b/bench/ockam-rs/optimized/3mmfh9oxbbu2kjan.ll @@ -2577,7 +2577,7 @@ _ZN3std3sys4unix5locks12futex_rwlock6RwLock4read17h6bf1135d6eae1b97E.exit.i.i: ; 32: ; preds = %28 %33 = invoke noundef zeroext i1 @_ZN3std9panicking11panic_count17is_zero_slow_path17h4671fa193704fdaeE() - to label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.exit.i.i unwind label %282, !noalias !504 + to label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.exit.i.i unwind label %281, !noalias !504 34: ; preds = %_ZN3std3sys4unix5locks12futex_rwlock6RwLock4read17h6bf1135d6eae1b97E.exit.i.i %.sink.i.i.i.i = getelementptr inbounds nuw i8, ptr %0, i64 1216 @@ -2588,10 +2588,10 @@ _ZN3std3sys4unix5locks12futex_rwlock6RwLock4read17h6bf1135d6eae1b97E.exit.i.i: ; %36 = invoke noundef align 8 dereferenceable(120) ptr @_ZN12tracing_core4span10Attributes8metadata17hf3c37deaeae0e9cbE(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %1) to label %38 unwind label %.loopexit.split-lp.i.i, !noalias !504 -37: ; preds = %280, %125, %.loopexit.split-lp.i.i, %.loopexit.i.i - %.pn7.pn.i.i = phi { ptr, i32 } [ %.pn7.i.i, %280 ], [ %.pn7.i.i, %125 ], [ %lpad.loopexit.i.i, %.loopexit.i.i ], [ %lpad.loopexit.split-lp.i.i, %.loopexit.split-lp.i.i ] +37: ; preds = %.thread7.i.i, %125, %.loopexit.split-lp.i.i, %.loopexit.i.i + %.pn7.pn.i.i = phi { ptr, i32 } [ %.pn710.i.i, %.thread7.i.i ], [ %.pn7.i.i, %125 ], [ %lpad.loopexit.i.i, %.loopexit.i.i ], [ %lpad.loopexit.split-lp.i.i, %.loopexit.split-lp.i.i ] invoke void @"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h8c2e976ac04d01f1E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %16) #38 - to label %281 unwind label %266, !noalias !504 + to label %280 unwind label %266, !noalias !504 .loopexit.i.i: ; preds = %90 %lpad.loopexit.i.i = landingpad { ptr, i32 } @@ -2756,7 +2756,7 @@ _ZN3std3sys4unix5locks12futex_rwlock6RwLock4read17h6bf1135d6eae1b97E.exit.i.i: ; to label %110 unwind label %.loopexit.split-lp.i.i, !noalias !504 .thread.i.i: ; preds = %87, %264, %38 - %105 = phi ptr [ %20, %38 ], [ %.pre14.i.i, %264 ], [ %20, %87 ] + %105 = phi ptr [ %20, %38 ], [ %.pre18.i.i, %264 ], [ %20, %87 ] call void @llvm.experimental.noalias.scope.decl(metadata !566) call void @llvm.experimental.noalias.scope.decl(metadata !569) %106 = atomicrmw sub ptr %105, i32 1 release, align 4, !noalias !572 @@ -2812,11 +2812,11 @@ _ZN3std3sys4unix5locks12futex_rwlock6RwLock4read17h6bf1135d6eae1b97E.exit.i.i: ; %124 = invoke noundef i8 @_ZN4core4sync6atomic11atomic_load17h19d2698532a6a9b6E.llvm.1091148472540163290(ptr noundef nonnull align 1 %123, i8 noundef 0) to label %129 unwind label %127, !noalias !504 -125: ; preds = %279, %278, %276, %127 - %.15.i.i = phi i8 [ %.04.i.i, %127 ], [ %.1.i.i, %279 ], [ %.1.i.i, %276 ], [ %.1.i.i, %278 ] - %.pn7.i.i = phi { ptr, i32 } [ %128, %127 ], [ %.pn.i.i, %279 ], [ %.pn.i.i, %276 ], [ %.pn.i.i, %278 ] +125: ; preds = %278, %276, %127 + %.15.i.i = phi i8 [ %.04.i.i, %127 ], [ %.1.i.i, %276 ], [ %.1.i.i, %278 ] + %.pn7.i.i = phi { ptr, i32 } [ %128, %127 ], [ %.pn.i.i, %276 ], [ %.pn.i.i, %278 ] %126 = trunc nuw i8 %.15.i.i to i1 - br i1 %126, label %280, label %37 + br i1 %126, label %.thread7.i.i, label %37 127: ; preds = %268, %265, %"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new17h5c21308e4c1ec771E.exit.i.i.i", %118, %.noexc23.i.i, %114 %.04.i.i = phi i8 [ 0, %265 ], [ 1, %268 ], [ 1, %114 ], [ 1, %.noexc23.i.i ], [ 1, %118 ], [ 1, %"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new17h5c21308e4c1ec771E.exit.i.i.i" ] @@ -3152,14 +3152,14 @@ _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8848114157358331746.exit.th call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12), !noalias !497 call void @llvm.lifetime.end.p0(i64 536, ptr nonnull %13), !noalias !497 call void @llvm.lifetime.end.p0(i64 536, ptr nonnull %14), !noalias !497 - %.pre14.i.i = load ptr, ptr %35, align 8, !alias.scope !668, !noalias !497 + %.pre18.i.i = load ptr, ptr %35, align 8, !alias.scope !668, !noalias !497 br label %.thread.i.i 265: ; preds = %"_ZN4core3ptr242drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$GT$17h480871b30302e092E.exit.i.i" invoke fastcc void @"_ZN4core3ptr532drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$GT$$GT$$GT$17h3a5becbf3561ab08E"(ptr noalias noundef align 8 dereferenceable(24) %11) to label %264 unwind label %127, !noalias !504 -266: ; preds = %282, %280, %279, %278, %.body.i.i, %37 +266: ; preds = %281, %.thread7.i.i, %279, %278, %.body.i.i, %37 %267 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hceade526831b1e89E() #39, !noalias !504 @@ -3216,41 +3216,42 @@ _ZN3std9panicking9panicking17hfd7edc4736053a04E.exit41.thread.i.i: ; preds = %_Z 279: ; preds = %276 invoke void @"_ZN4core3ptr242drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$GT$17h480871b30302e092E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %131) #38 - to label %125 unwind label %266, !noalias !504 + to label %.thread7.i.i unwind label %266, !noalias !504 -280: ; preds = %125 +.thread7.i.i: ; preds = %279, %125 + %.pn710.i.i = phi { ptr, i32 } [ %.pn7.i.i, %125 ], [ %.pn.i.i, %279 ] invoke void @"_ZN4core3ptr130drop_in_place$LT$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$17h83ef37e5ba4ab079E"(ptr noalias noundef nonnull align 8 dereferenceable(536) %14) #38 to label %37 unwind label %266, !noalias !504 -281: ; preds = %282, %37 - %.pn7.pn.pn.i.i = phi { ptr, i32 } [ %.pn7.pn.i.i, %37 ], [ %283, %282 ] +280: ; preds = %281, %37 + %.pn7.pn.pn.i.i = phi { ptr, i32 } [ %.pn7.pn.i.i, %37 ], [ %282, %281 ] resume { ptr, i32 } %.pn7.pn.pn.i.i -282: ; preds = %_ZN3std9panicking9panicking17hfd7edc4736053a04E.exit.thread.i.i, %32 - %283 = landingpad { ptr, i32 } +281: ; preds = %_ZN3std9panicking9panicking17hfd7edc4736053a04E.exit.thread.i.i, %32 + %282 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr562drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$$GT$$GT$17hc231e3a061f519dcE"(ptr nonnull %20) #38 - to label %281 unwind label %266 + to label %280 unwind label %266 _ZN3std9panicking9panicking17hfd7edc4736053a04E.exit.i.i: ; preds = %32 - br i1 %33, label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.exit.thread.i.i, label %284 + br i1 %33, label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.exit.thread.i.i, label %283 _ZN3std9panicking9panicking17hfd7edc4736053a04E.exit.thread.i.i: ; preds = %_ZN3std9panicking9panicking17hfd7edc4736053a04E.exit.i.i, %28 invoke void @_ZN3std9panicking11begin_panic17h5818c4be95b5ada0E(ptr noalias noundef nonnull readonly align 1 @anon.8b457b887d344fb719f81df40212423d.7, i64 noundef 13, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.8b457b887d344fb719f81df40212423d.10) #40 - to label %269 unwind label %282, !noalias !504 + to label %269 unwind label %281, !noalias !504 -284: ; preds = %_ZN3std9panicking9panicking17hfd7edc4736053a04E.exit.i.i - %285 = atomicrmw sub ptr %20, i32 1 release, align 4, !noalias !497 - %286 = add i32 %285, -1 - %287 = and i32 %286, -1073741825 - %or.cond.not.i.i.i50.i.i = icmp eq i32 %287, -2147483648 +283: ; preds = %_ZN3std9panicking9panicking17hfd7edc4736053a04E.exit.i.i + %284 = atomicrmw sub ptr %20, i32 1 release, align 4, !noalias !497 + %285 = add i32 %284, -1 + %286 = and i32 %285, -1073741825 + %or.cond.not.i.i.i50.i.i = icmp eq i32 %286, -2147483648 br i1 %or.cond.not.i.i.i50.i.i, label %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h8c2e976ac04d01f1E.exit.sink.split.i51.i.i", label %"_ZN4core3ptr562drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$$GT$$GT$17hc231e3a061f519dcE.exit52.i.i" -"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h8c2e976ac04d01f1E.exit.sink.split.i51.i.i": ; preds = %284 - tail call void @_ZN3std3sys4unix5locks12futex_rwlock6RwLock22wake_writer_or_readers17h18502b593df6c008E(ptr noundef nonnull align 4 %20, i32 noundef %286), !noalias !504 +"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h8c2e976ac04d01f1E.exit.sink.split.i51.i.i": ; preds = %283 + tail call void @_ZN3std3sys4unix5locks12futex_rwlock6RwLock22wake_writer_or_readers17h18502b593df6c008E(ptr noundef nonnull align 4 %20, i32 noundef %285), !noalias !504 br label %"_ZN4core3ptr562drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$$GT$$GT$17hc231e3a061f519dcE.exit52.i.i" -"_ZN4core3ptr562drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$$GT$$GT$17hc231e3a061f519dcE.exit52.i.i": ; preds = %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h8c2e976ac04d01f1E.exit.sink.split.i51.i.i", %284 +"_ZN4core3ptr562drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$$GT$$GT$17hc231e3a061f519dcE.exit52.i.i": ; preds = %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h8c2e976ac04d01f1E.exit.sink.split.i51.i.i", %283 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16), !noalias !497 br label %"_ZN104_$LT$tracing_subscriber..filter..env..EnvFilter$u20$as$u20$tracing_subscriber..layer..Layer$LT$S$GT$$GT$11on_new_span17hcaec224d1ac4e6f6E.exit" diff --git a/bench/ockam-rs/optimized/49ti4bj9tyhrfks7.ll b/bench/ockam-rs/optimized/49ti4bj9tyhrfks7.ll index cc7f76f1b86..43c3971384d 100644 --- a/bench/ockam-rs/optimized/49ti4bj9tyhrfks7.ll +++ b/bench/ockam-rs/optimized/49ti4bj9tyhrfks7.ll @@ -153,7 +153,7 @@ _ZN3std3sys4unix5locks12futex_rwlock6RwLock4read17h6bf1135d6eae1b97E.llvm.892809 24: ; preds = %20 %25 = invoke noundef zeroext i1 @_ZN3std9panicking11panic_count17is_zero_slow_path17h4671fa193704fdaeE() - to label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit unwind label %145 + to label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit unwind label %144 26: ; preds = %_ZN3std3sys4unix5locks12futex_rwlock6RwLock4read17h6bf1135d6eae1b97E.llvm.8928096027746465073.exit %.sink.i.i = getelementptr inbounds nuw i8, ptr %0, i64 1216 @@ -164,20 +164,20 @@ _ZN3std3sys4unix5locks12futex_rwlock6RwLock4read17h6bf1135d6eae1b97E.llvm.892809 %28 = invoke noundef align 8 dereferenceable(120) ptr @_ZN12tracing_core4span10Attributes8metadata17hf3c37deaeae0e9cbE(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %1) to label %29 unwind label %.loopexit.split-lp -.thread59: ; preds = %104, %.loopexit, %.loopexit.split-lp, %143, %86 - %.pn7.pn = phi { ptr, i32 } [ %.pn7, %143 ], [ %.pn7, %86 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %105, %104 ] +.thread63: ; preds = %104, %.loopexit, %.loopexit.split-lp, %.thread45, %86 + %.pn7.pn = phi { ptr, i32 } [ %.pn748, %.thread45 ], [ %.pn7, %86 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %105, %104 ] invoke void @"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h4605b60f31167a01E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %12) #19 - to label %144 unwind label %128 + to label %143 unwind label %128 .loopexit: ; preds = %52 %lpad.loopexit = landingpad { ptr, i32 } cleanup - br label %.thread59 + br label %.thread63 .loopexit.split-lp: ; preds = %26, %64, %38, %132 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup - br label %.thread59 + br label %.thread63 29: ; preds = %26 %30 = getelementptr inbounds nuw i8, ptr %28, i64 64 @@ -258,7 +258,7 @@ _ZN3std3sys4unix5locks12futex_rwlock6RwLock4read17h6bf1135d6eae1b97E.llvm.892809 to label %72 unwind label %.loopexit.split-lp .thread: ; preds = %49, %29, %126 - %67 = phi ptr [ %13, %29 ], [ %.pre50, %126 ], [ %13, %49 ] + %67 = phi ptr [ %13, %29 ], [ %.pre54, %126 ], [ %13, %49 ] call void @llvm.experimental.noalias.scope.decl(metadata !39) call void @llvm.experimental.noalias.scope.decl(metadata !42) %68 = atomicrmw sub ptr %67, i32 1 release, align 4, !noalias !45 @@ -314,11 +314,11 @@ _ZN3std3sys4unix5locks12futex_rwlock6RwLock4read17h6bf1135d6eae1b97E.llvm.892809 %85 = invoke noundef i8 @_ZN4core4sync6atomic11atomic_load17hf8786cd089701c2dE.llvm.1214941078669613289(ptr noundef nonnull align 1 %84, i8 noundef 0) to label %90 unwind label %88 -86: ; preds = %142, %141, %139, %88 - %.15 = phi i8 [ %.04, %88 ], [ %.0, %142 ], [ %.0, %139 ], [ %.0, %141 ] - %.pn7 = phi { ptr, i32 } [ %89, %88 ], [ %122, %142 ], [ %122, %139 ], [ %122, %141 ] +86: ; preds = %141, %139, %88 + %.15 = phi i8 [ %.04, %88 ], [ %.0, %139 ], [ %.0, %141 ] + %.pn7 = phi { ptr, i32 } [ %89, %88 ], [ %122, %139 ], [ %122, %141 ] %87 = trunc nuw i8 %.15 to i1 - br i1 %87, label %143, label %.thread59 + br i1 %87, label %.thread45, label %.thread63 88: ; preds = %"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new17h8e062c2867e568d2E.exit.i", %79, %.noexc21, %75, %130, %127 %.04 = phi i8 [ 0, %127 ], [ 1, %130 ], [ 1, %75 ], [ 1, %.noexc21 ], [ 1, %79 ], [ 1, %"_ZN3std4sync6rwlock25RwLockWriteGuard$LT$T$GT$3new17h8e062c2867e568d2E.exit.i" ] @@ -361,7 +361,7 @@ _ZN3std3sys4unix5locks12futex_rwlock6RwLock4read17h6bf1135d6eae1b97E.llvm.892809 %105 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr242drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$GT$17h8bdd7559e877ce12E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %8) #19 - to label %.thread59 unwind label %128 + to label %.thread63 unwind label %128 106: ; preds = %94 call void @llvm.lifetime.end.p0(i64 536, ptr nonnull %6) @@ -426,14 +426,14 @@ _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.1799741712541865863.exit.th call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) call void @llvm.lifetime.end.p0(i64 536, ptr nonnull %9) call void @llvm.lifetime.end.p0(i64 536, ptr nonnull %10) - %.pre50 = load ptr, ptr %27, align 8, !alias.scope !45 + %.pre54 = load ptr, ptr %27, align 8, !alias.scope !45 br label %.thread 127: ; preds = %"_ZN4core3ptr242drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$GT$17h8bdd7559e877ce12E.exit" invoke void @"_ZN4core3ptr532drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$GT$$GT$$GT$17h7f3d678a7077b144E.llvm.8928096027746465073"(ptr noalias noundef nonnull align 8 dereferenceable(24) %7) to label %126 unwind label %88 -128: ; preds = %145, %143, %142, %141, %104, %.thread59 +128: ; preds = %144, %.thread45, %142, %141, %104, %.thread63 %129 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hceade526831b1e89E() #20 @@ -493,41 +493,42 @@ _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit27. 142: ; preds = %139 invoke void @"_ZN4core3ptr242drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$GT$17h8bdd7559e877ce12E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %92) #19 - to label %86 unwind label %128 + to label %.thread45 unwind label %128 -143: ; preds = %86 +.thread45: ; preds = %142, %86 + %.pn748 = phi { ptr, i32 } [ %.pn7, %86 ], [ %122, %142 ] invoke void @"_ZN4core3ptr130drop_in_place$LT$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$17he5aebb2ce52372c9E"(ptr noalias noundef nonnull align 8 dereferenceable(536) %10) #19 - to label %.thread59 unwind label %128 + to label %.thread63 unwind label %128 -144: ; preds = %145, %.thread59 - %.pn7.pn.pn = phi { ptr, i32 } [ %.pn7.pn, %.thread59 ], [ %146, %145 ] +143: ; preds = %144, %.thread63 + %.pn7.pn.pn = phi { ptr, i32 } [ %.pn7.pn, %.thread63 ], [ %145, %144 ] resume { ptr, i32 } %.pn7.pn.pn -145: ; preds = %24, %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit.thread - %146 = landingpad { ptr, i32 } +144: ; preds = %24, %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit.thread + %145 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr562drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$$GT$$GT$17hb804f63c13eb1319E"(ptr nonnull %13) #19 - to label %144 unwind label %128 + to label %143 unwind label %128 _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit: ; preds = %24 - br i1 %25, label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit.thread, label %147 + br i1 %25, label %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit.thread, label %146 _ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit.thread: ; preds = %20, %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit invoke void @_ZN3std9panicking11begin_panic17h4484d861d01dd41fE(ptr noalias noundef nonnull readonly align 1 @anon.793505ffd18f7c066000dc06e6aa6fdc.1.llvm.8928096027746465073, i64 noundef 13, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.793505ffd18f7c066000dc06e6aa6fdc.4) #21 - to label %131 unwind label %145 + to label %131 unwind label %144 -147: ; preds = %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit - %148 = atomicrmw sub ptr %13, i32 1 release, align 4, !noalias !13 - %149 = add i32 %148, -1 - %150 = and i32 %149, -1073741825 - %or.cond.not.i.i.i36 = icmp eq i32 %150, -2147483648 +146: ; preds = %_ZN3std9panicking9panicking17hfd7edc4736053a04E.llvm.8928096027746465073.exit + %147 = atomicrmw sub ptr %13, i32 1 release, align 4, !noalias !13 + %148 = add i32 %147, -1 + %149 = and i32 %148, -1073741825 + %or.cond.not.i.i.i36 = icmp eq i32 %149, -2147483648 br i1 %or.cond.not.i.i.i36, label %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h4605b60f31167a01E.exit.sink.split.i37", label %"_ZN4core3ptr562drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$$GT$$GT$17hb804f63c13eb1319E.exit38" -"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h4605b60f31167a01E.exit.sink.split.i37": ; preds = %147 - tail call void @_ZN3std3sys4unix5locks12futex_rwlock6RwLock22wake_writer_or_readers17h18502b593df6c008E(ptr noundef nonnull align 4 %13, i32 noundef %149), !noalias !13 +"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h4605b60f31167a01E.exit.sink.split.i37": ; preds = %146 + tail call void @_ZN3std3sys4unix5locks12futex_rwlock6RwLock22wake_writer_or_readers17h18502b593df6c008E(ptr noundef nonnull align 4 %13, i32 noundef %148), !noalias !13 br label %"_ZN4core3ptr562drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$$GT$$GT$17hb804f63c13eb1319E.exit38" -"_ZN4core3ptr562drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$$GT$$GT$17hb804f63c13eb1319E.exit38": ; preds = %147, %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h4605b60f31167a01E.exit.sink.split.i37" +"_ZN4core3ptr562drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$$GT$$GT$17hb804f63c13eb1319E.exit38": ; preds = %146, %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h4605b60f31167a01E.exit.sink.split.i37" call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %12) br label %138 } diff --git a/bench/ockam-rs/optimized/58bgotmnlu3rwn4k.ll b/bench/ockam-rs/optimized/58bgotmnlu3rwn4k.ll index b33151c5e0f..a48367a3383 100644 --- a/bench/ockam-rs/optimized/58bgotmnlu3rwn4k.ll +++ b/bench/ockam-rs/optimized/58bgotmnlu3rwn4k.ll @@ -933,7 +933,7 @@ define hidden noundef range(i8 0, 18) i8 @"_ZN113_$LT$futures_util..stream..stre call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) %5 = tail call noundef align 8 dereferenceable_or_null(8) ptr @"_ZN12futures_util4lock6bilock15BiLock$LT$T$GT$9poll_lock17hb1154f23612036faE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %0, ptr noalias noundef nonnull align 8 dereferenceable(8) %1) %6 = icmp eq ptr %5, null - br i1 %6, label %36, label %7 + br i1 %6, label %33, label %7 7: ; preds = %2 store ptr %5, ptr %4, align 8 @@ -943,11 +943,11 @@ define hidden noundef range(i8 0, 18) i8 @"_ZN113_$LT$futures_util..stream..stre %trunc.i = trunc nuw i64 %10 to i1 br i1 %trunc.i, label %13, label %.invoke -11: ; preds = %.invoke, %"_ZN139_$LT$tokio_util..udp..frame..UdpFramed$LT$C$C$T$GT$$u20$as$u20$futures_sink..Sink$LT$$LP$I$C$core..net..socket_addr..SocketAddr$RP$$GT$$GT$10poll_ready17h0c817e0eb4df3dbbE.exit.thread.i", %"_ZN139_$LT$tokio_util..udp..frame..UdpFramed$LT$C$C$T$GT$$u20$as$u20$futures_sink..Sink$LT$$LP$I$C$core..net..socket_addr..SocketAddr$RP$$GT$$GT$10poll_ready17h0c817e0eb4df3dbbE.exit.i", %31 +11: ; preds = %.invoke, %"_ZN139_$LT$tokio_util..udp..frame..UdpFramed$LT$C$C$T$GT$$u20$as$u20$futures_sink..Sink$LT$$LP$I$C$core..net..socket_addr..SocketAddr$RP$$GT$$GT$10poll_ready17h0c817e0eb4df3dbbE.exit.thread.i", %"_ZN139_$LT$tokio_util..udp..frame..UdpFramed$LT$C$C$T$GT$$u20$as$u20$futures_sink..Sink$LT$$LP$I$C$core..net..socket_addr..SocketAddr$RP$$GT$$GT$10poll_ready17h0c817e0eb4df3dbbE.exit.i", %"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread.thread" %12 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr167drop_in_place$LT$futures_util..lock..bilock..BiLockGuard$LT$tokio_util..udp..frame..UdpFramed$LT$ockam_transport_udp..workers..codec..TransportMessageCodec$GT$$GT$$GT$17h9d3c58d358afdef7E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %4) #20 - to label %39 unwind label %37 + to label %36 unwind label %34 13: ; preds = %7 %14 = getelementptr inbounds nuw i8, ptr %8, i64 24 @@ -957,7 +957,7 @@ define hidden noundef range(i8 0, 18) i8 @"_ZN113_$LT$futures_util..stream..stre %16 = getelementptr inbounds nuw i8, ptr %0, i64 128 %17 = load i16, ptr %16, align 8, !range !171, !alias.scope !181, !noalias !183, !noundef !115 %.not.i = icmp eq i16 %17, 2 - br i1 %.not.i, label %"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread", label %18 + br i1 %.not.i, label %"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread.thread", label %18 18: ; preds = %13 %19 = getelementptr inbounds nuw i8, ptr %8, i64 184 @@ -987,25 +987,20 @@ define hidden noundef range(i8 0, 18) i8 @"_ZN113_$LT$futures_util..stream..stre .noexc16: ; preds = %"_ZN139_$LT$tokio_util..udp..frame..UdpFramed$LT$C$C$T$GT$$u20$as$u20$futures_sink..Sink$LT$$LP$I$C$core..net..socket_addr..SocketAddr$RP$$GT$$GT$10poll_ready17h0c817e0eb4df3dbbE.exit.thread.i" call void @llvm.lifetime.end.p0(i64 120, ptr nonnull %3), !noalias !190 %26 = icmp eq i8 %25, 0 - br i1 %26, label %27, label %.sink.split + br i1 %26, label %"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread", label %.sink.split -27: ; preds = %.noexc16 +"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread": ; preds = %.noexc16 %.sroa.5.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %0, i64 130 - %28 = getelementptr inbounds nuw i8, ptr %8, i64 56 - store i16 %17, ptr %28, align 8, !alias.scope !196, !noalias !197 + %27 = getelementptr inbounds nuw i8, ptr %8, i64 56 + store i16 %17, ptr %27, align 8, !alias.scope !196, !noalias !197 %.sroa.6.120..sroa_idx.i = getelementptr inbounds nuw i8, ptr %8, i64 58 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 2 dereferenceable(30) %.sroa.6.120..sroa_idx.i, ptr noundef nonnull align 2 dereferenceable(30) %.sroa.5.0..sroa_idx.i, i64 30, i1 false), !alias.scope !198, !noalias !199 store i8 0, ptr %19, align 8, !alias.scope !200, !noalias !201 %.pre = load ptr, ptr %5, align 8, !noalias !202 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %.pre, i64 16 %.pre24 = load i64, ptr %.phi.trans.insert, align 8, !range !130, !noalias !202 - br label %"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread" - -"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread": ; preds = %27, %13 - %29 = phi i64 [ %.pre24, %27 ], [ %10, %13 ] - %30 = phi ptr [ %.pre, %27 ], [ %8, %13 ] - %trunc.i17 = trunc nuw i64 %29 to i1 - br i1 %trunc.i17, label %31, label %.invoke + %trunc.i17 = trunc nuw i64 %.pre24 to i1 + br i1 %trunc.i17, label %"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread.thread", label %.invoke .invoke: ; preds = %7, %"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread" invoke void @_ZN4core9panicking5panic17h440670b29ba8362fE(ptr noalias noundef nonnull readonly align 1 @anon.86854b3818c1e107d967125bc7de3ba7.27.llvm.3380558238963146499, i64 noundef 43, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.86854b3818c1e107d967125bc7de3ba7.28.llvm.3380558238963146499) #19 @@ -1014,33 +1009,34 @@ define hidden noundef range(i8 0, 18) i8 @"_ZN113_$LT$futures_util..stream..stre .cont: ; preds = %.invoke unreachable -31: ; preds = %"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread" - %32 = getelementptr inbounds nuw i8, ptr %30, i64 24 - %33 = invoke noundef i8 @"_ZN139_$LT$tokio_util..udp..frame..UdpFramed$LT$C$C$T$GT$$u20$as$u20$futures_sink..Sink$LT$$LP$I$C$core..net..socket_addr..SocketAddr$RP$$GT$$GT$10poll_flush17h42f6abcf668d5450E"(ptr noalias noundef nonnull align 8 dereferenceable(168) %32, ptr noalias noundef nonnull align 8 dereferenceable(8) %1) - to label %34 unwind label %11, !range !205 +"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread.thread": ; preds = %13, %"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread" + %28 = phi ptr [ %.pre, %"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread" ], [ %8, %13 ] + %29 = getelementptr inbounds nuw i8, ptr %28, i64 24 + %30 = invoke noundef i8 @"_ZN139_$LT$tokio_util..udp..frame..UdpFramed$LT$C$C$T$GT$$u20$as$u20$futures_sink..Sink$LT$$LP$I$C$core..net..socket_addr..SocketAddr$RP$$GT$$GT$10poll_flush17h42f6abcf668d5450E"(ptr noalias noundef nonnull align 8 dereferenceable(168) %29, ptr noalias noundef nonnull align 8 dereferenceable(8) %1) + to label %31 unwind label %11, !range !205 -34: ; preds = %31 - %35 = load ptr, ptr %4, align 8, !alias.scope !206, !nonnull !115, !align !116, !noundef !115 +31: ; preds = %"_ZN12futures_util6stream6stream5split25SplitSink$LT$S$C$Item$GT$15poll_flush_slot17h80715b36c0b45a6cE.exit.thread.thread" + %32 = load ptr, ptr %4, align 8, !alias.scope !206, !nonnull !115, !align !116, !noundef !115 br label %.sink.split -.sink.split: ; preds = %.noexc15, %.noexc16, %34 - %.sink = phi ptr [ %35, %34 ], [ %5, %.noexc16 ], [ %5, %.noexc15 ] - %.2.ph = phi i8 [ %33, %34 ], [ %25, %.noexc16 ], [ %22, %.noexc15 ] +.sink.split: ; preds = %.noexc15, %.noexc16, %31 + %.sink = phi ptr [ %32, %31 ], [ %5, %.noexc16 ], [ %5, %.noexc15 ] + %.2.ph = phi i8 [ %30, %31 ], [ %25, %.noexc16 ], [ %22, %.noexc15 ] tail call void @"_ZN12futures_util4lock6bilock15BiLock$LT$T$GT$6unlock17h4eb7084bb51adb30E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %.sink), !noalias !115 - br label %36 + br label %33 -36: ; preds = %.sink.split, %2 +33: ; preds = %.sink.split, %2 %.2 = phi i8 [ 17, %2 ], [ %.2.ph, %.sink.split ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) ret i8 %.2 -37: ; preds = %11 - %38 = landingpad { ptr, i32 } +34: ; preds = %11 + %35 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hceade526831b1e89E() #21 unreachable -39: ; preds = %11 +36: ; preds = %11 resume { ptr, i32 } %12 } diff --git a/bench/opencv/optimized/ts_perf.cpp.ll b/bench/opencv/optimized/ts_perf.cpp.ll index 95ba85c6b21..2b41420b9dc 100644 --- a/bench/opencv/optimized/ts_perf.cpp.ll +++ b/bench/opencv/optimized/ts_perf.cpp.ll @@ -11574,6 +11574,7 @@ _ZN7testing7MessageD2Ev.exit: ; preds = %43, %32, %16, %52 %.b66 = load i1, ptr @_ZL23perf_validation_enabled, align 1 %.b66.not = xor i1 %.b66, true %brmerge = select i1 %.b66.not, i1 true, i1 %.049.shrunk + %.049.shrunk.mux = select i1 %.b66, i1 true, i1 %.049.shrunk br i1 %brmerge, label %.thread, label %137 137: ; preds = %136 @@ -11889,7 +11890,7 @@ _ZL24savePerfValidationResultRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIc br label %276 .thread: ; preds = %125, %121, %77, %136, %.thread113 - %.150 = phi i1 [ %.251115, %.thread113 ], [ %.049.shrunk, %136 ], [ true, %77 ], [ true, %121 ], [ true, %125 ] + %.150 = phi i1 [ %.251115, %.thread113 ], [ %.049.shrunk.mux, %136 ], [ true, %77 ], [ true, %121 ], [ true, %125 ] ret i1 %.150 276: ; preds = %205, %206, %275, %103, %76, %51 diff --git a/bench/openjdk/optimized/type.ll b/bench/openjdk/optimized/type.ll index 7a15e8cbce2..6f9ad7aab27 100644 --- a/bench/openjdk/optimized/type.ll +++ b/bench/openjdk/optimized/type.ll @@ -1618,11 +1618,11 @@ _ZNK10ciMetadata9is_loadedEv.exit.thread.i60: ; preds = %_ZNK10ciMetadata9is %26 = getelementptr inbounds nuw i8, ptr %25, i64 184 %27 = load ptr, ptr %26, align 8 %28 = tail call noundef zeroext i1 %27(ptr noundef nonnull align 8 dereferenceable(144) %18) #17 - %not. = xor i1 %28, true + %not..i = xor i1 %28, true br label %29 29: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.thread.i60, %_ZNK10ciMetadata9is_loadedEv.exit.i64 - %.0.i61 = phi i1 [ true, %_ZNK10ciMetadata9is_loadedEv.exit.i64 ], [ %not., %_ZNK10ciMetadata9is_loadedEv.exit.thread.i60 ] + %.0.i61 = phi i1 [ true, %_ZNK10ciMetadata9is_loadedEv.exit.i64 ], [ %not..i, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i60 ] %30 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_ZN6Thread12_thr_currentE) %31 = load ptr, ptr %30, align 8 %32 = getelementptr inbounds nuw i8, ptr %31, i64 1808 @@ -5663,7 +5663,8 @@ _ZNK10ciMetadata9is_loadedEv.exit.thread.i: ; preds = %_ZNK10ciMetadata9is %1694 = getelementptr inbounds nuw i8, ptr %1693, i64 184 %1695 = load ptr, ptr %1694, align 8 %1696 = tail call noundef zeroext i1 %1695(ptr noundef nonnull align 8 dereferenceable(144) %1682) #17 - %spec.select16.i = select i1 %1696, i8 0, i8 %1691 + %not..i = xor i1 %1696, true + %spec.select16.i = zext i1 %not..i to i8 br label %1697 1697: ; preds = %.thread.i, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i, %_ZNK10ciMetadata9is_loadedEv.exit.i @@ -5714,16 +5715,16 @@ _ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0 %1723 = getelementptr inbounds nuw i8, ptr %1722, i64 16 %1724 = load ptr, ptr %1723, align 8 %.not.i.i322 = icmp eq ptr %1724, null - br i1 %.not.i.i322, label %_ZNK10ciMetadata9is_loadedEv.exit.i332, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i323 + br i1 %.not.i.i322, label %_ZNK10ciMetadata9is_loadedEv.exit.i333, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i323 -_ZNK10ciMetadata9is_loadedEv.exit.i332: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit +_ZNK10ciMetadata9is_loadedEv.exit.i333: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit %1725 = load ptr, ptr %1722, align 8 %1726 = getelementptr inbounds nuw i8, ptr %1725, i64 32 %1727 = load ptr, ptr %1726, align 8 %1728 = tail call noundef zeroext i1 %1727(ptr noundef nonnull align 8 dereferenceable(24) %1722) #17 br i1 %1728, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i323, label %1737 -_ZNK10ciMetadata9is_loadedEv.exit.thread.i323: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.i332, %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit +_ZNK10ciMetadata9is_loadedEv.exit.thread.i323: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.i333, %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit %1729 = getelementptr inbounds nuw i8, ptr %1722, i64 80 %.sroa.0.0.copyload.i.i.i324 = load i64, ptr %1729, align 8 %1730 = trunc i64 %.sroa.0.0.copyload.i.i.i324 to i8 @@ -5736,11 +5737,12 @@ _ZNK10ciMetadata9is_loadedEv.exit.thread.i323: ; preds = %_ZNK10ciMetadata9is %1734 = getelementptr inbounds nuw i8, ptr %1733, i64 184 %1735 = load ptr, ptr %1734, align 8 %1736 = tail call noundef zeroext i1 %1735(ptr noundef nonnull align 8 dereferenceable(144) %1722) #17 - %spec.select16.i331 = select i1 %1736, i8 0, i8 %1731 + %not..i331 = xor i1 %1736, true + %spec.select16.i332 = zext i1 %not..i331 to i8 br label %1737 -1737: ; preds = %.thread.i330, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i323, %_ZNK10ciMetadata9is_loadedEv.exit.i332 - %.0.i327 = phi i8 [ %1731, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i323 ], [ 0, %_ZNK10ciMetadata9is_loadedEv.exit.i332 ], [ %spec.select16.i331, %.thread.i330 ] +1737: ; preds = %.thread.i330, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i323, %_ZNK10ciMetadata9is_loadedEv.exit.i333 + %.0.i327 = phi i8 [ %1731, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i323 ], [ 0, %_ZNK10ciMetadata9is_loadedEv.exit.i333 ], [ %spec.select16.i332, %.thread.i330 ] %1738 = load ptr, ptr %15, align 8 %1739 = getelementptr inbounds nuw i8, ptr %1738, i64 1808 %1740 = load ptr, ptr %1739, align 8 @@ -5763,13 +5765,13 @@ _ZNK10ciMetadata9is_loadedEv.exit.thread.i323: ; preds = %_ZNK10ciMetadata9is 1753: ; preds = %1737 %1754 = getelementptr inbounds nuw i8, ptr %1749, i64 80 store ptr %1754, ptr %1748, align 8 - br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit333 + br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit334 1755: ; preds = %1737 %1756 = tail call noundef ptr @_ZN5Arena4growEmN17AllocFailStrategy13AllocFailEnumE(ptr noundef nonnull align 8 dereferenceable(48) %1745, i64 noundef 80, i32 noundef 0) #17 - br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit333 + br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit334 -_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit333: ; preds = %1753, %1755 +_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit334: ; preds = %1753, %1755 %.0.i.i.i.i329 = phi ptr [ %1749, %1753 ], [ %1756, %1755 ] %1757 = icmp ne ptr %.0.i.i.i.i329, null tail call void @llvm.assume(i1 %1757) @@ -5786,34 +5788,35 @@ _ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0 %1762 = load ptr, ptr %6, align 8 %1763 = getelementptr inbounds nuw i8, ptr %1762, i64 16 %1764 = load ptr, ptr %1763, align 8 - %.not.i.i334 = icmp eq ptr %1764, null - br i1 %.not.i.i334, label %_ZNK10ciMetadata9is_loadedEv.exit.i344, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i335 + %.not.i.i335 = icmp eq ptr %1764, null + br i1 %.not.i.i335, label %_ZNK10ciMetadata9is_loadedEv.exit.i346, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i336 -_ZNK10ciMetadata9is_loadedEv.exit.i344: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit333 +_ZNK10ciMetadata9is_loadedEv.exit.i346: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit334 %1765 = load ptr, ptr %1762, align 8 %1766 = getelementptr inbounds nuw i8, ptr %1765, i64 32 %1767 = load ptr, ptr %1766, align 8 %1768 = tail call noundef zeroext i1 %1767(ptr noundef nonnull align 8 dereferenceable(24) %1762) #17 - br i1 %1768, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i335, label %1777 + br i1 %1768, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i336, label %1777 -_ZNK10ciMetadata9is_loadedEv.exit.thread.i335: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.i344, %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit333 +_ZNK10ciMetadata9is_loadedEv.exit.thread.i336: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.i346, %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit334 %1769 = getelementptr inbounds nuw i8, ptr %1762, i64 80 - %.sroa.0.0.copyload.i.i.i336 = load i64, ptr %1769, align 8 - %1770 = trunc i64 %.sroa.0.0.copyload.i.i.i336 to i8 + %.sroa.0.0.copyload.i.i.i337 = load i64, ptr %1769, align 8 + %1770 = trunc i64 %.sroa.0.0.copyload.i.i.i337 to i8 %1771 = lshr i8 %1770, 4 %1772 = trunc i8 %1771 to i1 - br i1 %1772, label %.thread.i342, label %1777 + br i1 %1772, label %.thread.i343, label %1777 -.thread.i342: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.thread.i335 +.thread.i343: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.thread.i336 %1773 = load ptr, ptr %1762, align 8 %1774 = getelementptr inbounds nuw i8, ptr %1773, i64 184 %1775 = load ptr, ptr %1774, align 8 %1776 = tail call noundef zeroext i1 %1775(ptr noundef nonnull align 8 dereferenceable(144) %1762) #17 - %spec.select16.i343 = select i1 %1776, i8 0, i8 %1771 + %not..i344 = xor i1 %1776, true + %spec.select16.i345 = zext i1 %not..i344 to i8 br label %1777 -1777: ; preds = %.thread.i342, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i335, %_ZNK10ciMetadata9is_loadedEv.exit.i344 - %.0.i339 = phi i8 [ %1771, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i335 ], [ 0, %_ZNK10ciMetadata9is_loadedEv.exit.i344 ], [ %spec.select16.i343, %.thread.i342 ] +1777: ; preds = %.thread.i343, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i336, %_ZNK10ciMetadata9is_loadedEv.exit.i346 + %.0.i340 = phi i8 [ %1771, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i336 ], [ 0, %_ZNK10ciMetadata9is_loadedEv.exit.i346 ], [ %spec.select16.i345, %.thread.i343 ] %1778 = load ptr, ptr %15, align 8 %1779 = getelementptr inbounds nuw i8, ptr %1778, i64 1808 %1780 = load ptr, ptr %1779, align 8 @@ -5830,26 +5833,26 @@ _ZNK10ciMetadata9is_loadedEv.exit.thread.i335: ; preds = %_ZNK10ciMetadata9is %1790 = ptrtoint ptr %1787 to i64 %1791 = ptrtoint ptr %1789 to i64 %1792 = sub i64 %1790, %1791 - %.not.i.i.i.i340 = icmp ult i64 %1792, 80 - br i1 %.not.i.i.i.i340, label %1795, label %1793 + %.not.i.i.i.i341 = icmp ult i64 %1792, 80 + br i1 %.not.i.i.i.i341, label %1795, label %1793 1793: ; preds = %1777 %1794 = getelementptr inbounds nuw i8, ptr %1789, i64 80 store ptr %1794, ptr %1788, align 8 - br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit345 + br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit347 1795: ; preds = %1777 %1796 = tail call noundef ptr @_ZN5Arena4growEmN17AllocFailStrategy13AllocFailEnumE(ptr noundef nonnull align 8 dereferenceable(48) %1785, i64 noundef 80, i32 noundef 0) #17 - br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit345 + br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit347 -_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit345: ; preds = %1793, %1795 - %.0.i.i.i.i341 = phi ptr [ %1789, %1793 ], [ %1796, %1795 ] - %1797 = icmp ne ptr %.0.i.i.i.i341, null +_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit347: ; preds = %1793, %1795 + %.0.i.i.i.i342 = phi ptr [ %1789, %1793 ], [ %1796, %1795 ] + %1797 = icmp ne ptr %.0.i.i.i.i342, null tail call void @llvm.assume(i1 %1797) - %1798 = trunc i8 %.0.i339 to i1 - tail call void @_ZN10TypeOopPtrC2EN4Type5TYPESEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS2_i(ptr noundef nonnull align 8 dereferenceable(80) %.0.i.i.i.i341, i32 noundef 21, i32 noundef 4, ptr noundef nonnull %1762, ptr noundef %1761, i1 noundef zeroext %1798, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 2147483647) - store ptr getelementptr inbounds nuw inrange(-16, 352) (i8, ptr @_ZTV11TypeInstPtr, i64 16), ptr %.0.i.i.i.i341, align 8 - %1799 = tail call noundef nonnull ptr @_ZN4Type8hashconsEv(ptr noundef nonnull align 8 dereferenceable(20) %.0.i.i.i.i341) + %1798 = trunc i8 %.0.i340 to i1 + tail call void @_ZN10TypeOopPtrC2EN4Type5TYPESEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS2_i(ptr noundef nonnull align 8 dereferenceable(80) %.0.i.i.i.i342, i32 noundef 21, i32 noundef 4, ptr noundef nonnull %1762, ptr noundef %1761, i1 noundef zeroext %1798, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 2147483647) + store ptr getelementptr inbounds nuw inrange(-16, 352) (i8, ptr @_ZTV11TypeInstPtr, i64 16), ptr %.0.i.i.i.i342, align 8 + %1799 = tail call noundef nonnull ptr @_ZN4Type8hashconsEv(ptr noundef nonnull align 8 dereferenceable(20) %.0.i.i.i.i342) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) store ptr %1799, ptr @_ZN11TypeInstPtr6MIRRORE, align 8 %1800 = load ptr, ptr @_ZN5ciEnv13_Object_klassE, align 8 @@ -5859,34 +5862,35 @@ _ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0 %1802 = load ptr, ptr %5, align 8 %1803 = getelementptr inbounds nuw i8, ptr %1802, i64 16 %1804 = load ptr, ptr %1803, align 8 - %.not.i.i346 = icmp eq ptr %1804, null - br i1 %.not.i.i346, label %_ZNK10ciMetadata9is_loadedEv.exit.i356, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i347 + %.not.i.i348 = icmp eq ptr %1804, null + br i1 %.not.i.i348, label %_ZNK10ciMetadata9is_loadedEv.exit.i359, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i349 -_ZNK10ciMetadata9is_loadedEv.exit.i356: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit345 +_ZNK10ciMetadata9is_loadedEv.exit.i359: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit347 %1805 = load ptr, ptr %1802, align 8 %1806 = getelementptr inbounds nuw i8, ptr %1805, i64 32 %1807 = load ptr, ptr %1806, align 8 %1808 = tail call noundef zeroext i1 %1807(ptr noundef nonnull align 8 dereferenceable(24) %1802) #17 - br i1 %1808, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i347, label %1817 + br i1 %1808, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i349, label %1817 -_ZNK10ciMetadata9is_loadedEv.exit.thread.i347: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.i356, %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit345 +_ZNK10ciMetadata9is_loadedEv.exit.thread.i349: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.i359, %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit347 %1809 = getelementptr inbounds nuw i8, ptr %1802, i64 80 - %.sroa.0.0.copyload.i.i.i348 = load i64, ptr %1809, align 8 - %1810 = trunc i64 %.sroa.0.0.copyload.i.i.i348 to i8 + %.sroa.0.0.copyload.i.i.i350 = load i64, ptr %1809, align 8 + %1810 = trunc i64 %.sroa.0.0.copyload.i.i.i350 to i8 %1811 = lshr i8 %1810, 4 %1812 = trunc i8 %1811 to i1 - br i1 %1812, label %.thread.i354, label %1817 + br i1 %1812, label %.thread.i356, label %1817 -.thread.i354: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.thread.i347 +.thread.i356: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.thread.i349 %1813 = load ptr, ptr %1802, align 8 %1814 = getelementptr inbounds nuw i8, ptr %1813, i64 184 %1815 = load ptr, ptr %1814, align 8 %1816 = tail call noundef zeroext i1 %1815(ptr noundef nonnull align 8 dereferenceable(144) %1802) #17 - %spec.select16.i355 = select i1 %1816, i8 0, i8 %1811 + %not..i357 = xor i1 %1816, true + %spec.select16.i358 = zext i1 %not..i357 to i8 br label %1817 -1817: ; preds = %.thread.i354, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i347, %_ZNK10ciMetadata9is_loadedEv.exit.i356 - %.0.i351 = phi i8 [ %1811, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i347 ], [ 0, %_ZNK10ciMetadata9is_loadedEv.exit.i356 ], [ %spec.select16.i355, %.thread.i354 ] +1817: ; preds = %.thread.i356, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i349, %_ZNK10ciMetadata9is_loadedEv.exit.i359 + %.0.i353 = phi i8 [ %1811, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i349 ], [ 0, %_ZNK10ciMetadata9is_loadedEv.exit.i359 ], [ %spec.select16.i358, %.thread.i356 ] %1818 = load ptr, ptr %15, align 8 %1819 = getelementptr inbounds nuw i8, ptr %1818, i64 1808 %1820 = load ptr, ptr %1819, align 8 @@ -5903,26 +5907,26 @@ _ZNK10ciMetadata9is_loadedEv.exit.thread.i347: ; preds = %_ZNK10ciMetadata9is %1830 = ptrtoint ptr %1827 to i64 %1831 = ptrtoint ptr %1829 to i64 %1832 = sub i64 %1830, %1831 - %.not.i.i.i.i352 = icmp ult i64 %1832, 80 - br i1 %.not.i.i.i.i352, label %1835, label %1833 + %.not.i.i.i.i354 = icmp ult i64 %1832, 80 + br i1 %.not.i.i.i.i354, label %1835, label %1833 1833: ; preds = %1817 %1834 = getelementptr inbounds nuw i8, ptr %1829, i64 80 store ptr %1834, ptr %1828, align 8 - br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit357 + br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit360 1835: ; preds = %1817 %1836 = tail call noundef ptr @_ZN5Arena4growEmN17AllocFailStrategy13AllocFailEnumE(ptr noundef nonnull align 8 dereferenceable(48) %1825, i64 noundef 80, i32 noundef 0) #17 - br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit357 + br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit360 -_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit357: ; preds = %1833, %1835 - %.0.i.i.i.i353 = phi ptr [ %1829, %1833 ], [ %1836, %1835 ] - %1837 = icmp ne ptr %.0.i.i.i.i353, null +_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit360: ; preds = %1833, %1835 + %.0.i.i.i.i355 = phi ptr [ %1829, %1833 ], [ %1836, %1835 ] + %1837 = icmp ne ptr %.0.i.i.i.i355, null tail call void @llvm.assume(i1 %1837) - %1838 = trunc i8 %.0.i351 to i1 - tail call void @_ZN10TypeOopPtrC2EN4Type5TYPESEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS2_i(ptr noundef nonnull align 8 dereferenceable(80) %.0.i.i.i.i353, i32 noundef 21, i32 noundef 5, ptr noundef nonnull %1802, ptr noundef %1801, i1 noundef zeroext %1838, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 2147483647) - store ptr getelementptr inbounds nuw inrange(-16, 352) (i8, ptr @_ZTV11TypeInstPtr, i64 16), ptr %.0.i.i.i.i353, align 8 - %1839 = tail call noundef nonnull ptr @_ZN4Type8hashconsEv(ptr noundef nonnull align 8 dereferenceable(20) %.0.i.i.i.i353) + %1838 = trunc i8 %.0.i353 to i1 + tail call void @_ZN10TypeOopPtrC2EN4Type5TYPESEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS2_i(ptr noundef nonnull align 8 dereferenceable(80) %.0.i.i.i.i355, i32 noundef 21, i32 noundef 5, ptr noundef nonnull %1802, ptr noundef %1801, i1 noundef zeroext %1838, ptr noundef null, i32 noundef 0, i32 noundef 0, ptr noundef null, i32 noundef 2147483647) + store ptr getelementptr inbounds nuw inrange(-16, 352) (i8, ptr @_ZTV11TypeInstPtr, i64 16), ptr %.0.i.i.i.i355, align 8 + %1839 = tail call noundef nonnull ptr @_ZN4Type8hashconsEv(ptr noundef nonnull align 8 dereferenceable(20) %.0.i.i.i.i355) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) store ptr %1839, ptr @_ZN11TypeInstPtr4MARKE, align 8 %1840 = load ptr, ptr @_ZN5ciEnv13_Object_klassE, align 8 @@ -5932,34 +5936,35 @@ _ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0 %1842 = load ptr, ptr %4, align 8 %1843 = getelementptr inbounds nuw i8, ptr %1842, i64 16 %1844 = load ptr, ptr %1843, align 8 - %.not.i.i358 = icmp eq ptr %1844, null - br i1 %.not.i.i358, label %_ZNK10ciMetadata9is_loadedEv.exit.i368, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i359 + %.not.i.i361 = icmp eq ptr %1844, null + br i1 %.not.i.i361, label %_ZNK10ciMetadata9is_loadedEv.exit.i372, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i362 -_ZNK10ciMetadata9is_loadedEv.exit.i368: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit357 +_ZNK10ciMetadata9is_loadedEv.exit.i372: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit360 %1845 = load ptr, ptr %1842, align 8 %1846 = getelementptr inbounds nuw i8, ptr %1845, i64 32 %1847 = load ptr, ptr %1846, align 8 %1848 = tail call noundef zeroext i1 %1847(ptr noundef nonnull align 8 dereferenceable(24) %1842) #17 - br i1 %1848, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i359, label %1857 + br i1 %1848, label %_ZNK10ciMetadata9is_loadedEv.exit.thread.i362, label %1857 -_ZNK10ciMetadata9is_loadedEv.exit.thread.i359: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.i368, %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit357 +_ZNK10ciMetadata9is_loadedEv.exit.thread.i362: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.i372, %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit360 %1849 = getelementptr inbounds nuw i8, ptr %1842, i64 80 - %.sroa.0.0.copyload.i.i.i360 = load i64, ptr %1849, align 8 - %1850 = trunc i64 %.sroa.0.0.copyload.i.i.i360 to i8 + %.sroa.0.0.copyload.i.i.i363 = load i64, ptr %1849, align 8 + %1850 = trunc i64 %.sroa.0.0.copyload.i.i.i363 to i8 %1851 = lshr i8 %1850, 4 %1852 = trunc i8 %1851 to i1 - br i1 %1852, label %.thread.i366, label %1857 + br i1 %1852, label %.thread.i369, label %1857 -.thread.i366: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.thread.i359 +.thread.i369: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.thread.i362 %1853 = load ptr, ptr %1842, align 8 %1854 = getelementptr inbounds nuw i8, ptr %1853, i64 184 %1855 = load ptr, ptr %1854, align 8 %1856 = tail call noundef zeroext i1 %1855(ptr noundef nonnull align 8 dereferenceable(144) %1842) #17 - %spec.select16.i367 = select i1 %1856, i8 0, i8 %1851 + %not..i370 = xor i1 %1856, true + %spec.select16.i371 = zext i1 %not..i370 to i8 br label %1857 -1857: ; preds = %.thread.i366, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i359, %_ZNK10ciMetadata9is_loadedEv.exit.i368 - %.0.i363 = phi i8 [ %1851, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i359 ], [ 0, %_ZNK10ciMetadata9is_loadedEv.exit.i368 ], [ %spec.select16.i367, %.thread.i366 ] +1857: ; preds = %.thread.i369, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i362, %_ZNK10ciMetadata9is_loadedEv.exit.i372 + %.0.i366 = phi i8 [ %1851, %_ZNK10ciMetadata9is_loadedEv.exit.thread.i362 ], [ 0, %_ZNK10ciMetadata9is_loadedEv.exit.i372 ], [ %spec.select16.i371, %.thread.i369 ] %1858 = load ptr, ptr %15, align 8 %1859 = getelementptr inbounds nuw i8, ptr %1858, i64 1808 %1860 = load ptr, ptr %1859, align 8 @@ -5976,26 +5981,26 @@ _ZNK10ciMetadata9is_loadedEv.exit.thread.i359: ; preds = %_ZNK10ciMetadata9is %1870 = ptrtoint ptr %1867 to i64 %1871 = ptrtoint ptr %1869 to i64 %1872 = sub i64 %1870, %1871 - %.not.i.i.i.i364 = icmp ult i64 %1872, 80 - br i1 %.not.i.i.i.i364, label %1875, label %1873 + %.not.i.i.i.i367 = icmp ult i64 %1872, 80 + br i1 %.not.i.i.i.i367, label %1875, label %1873 1873: ; preds = %1857 %1874 = getelementptr inbounds nuw i8, ptr %1869, i64 80 store ptr %1874, ptr %1868, align 8 - br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit369 + br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit373 1875: ; preds = %1857 %1876 = tail call noundef ptr @_ZN5Arena4growEmN17AllocFailStrategy13AllocFailEnumE(ptr noundef nonnull align 8 dereferenceable(48) %1865, i64 noundef 80, i32 noundef 0) #17 - br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit369 + br label %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit373 -_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit369: ; preds = %1873, %1875 - %.0.i.i.i.i365 = phi ptr [ %1869, %1873 ], [ %1876, %1875 ] - %1877 = icmp ne ptr %.0.i.i.i.i365, null +_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit373: ; preds = %1873, %1875 + %.0.i.i.i.i368 = phi ptr [ %1869, %1873 ], [ %1876, %1875 ] + %1877 = icmp ne ptr %.0.i.i.i.i368, null tail call void @llvm.assume(i1 %1877) - %1878 = trunc i8 %.0.i363 to i1 - tail call void @_ZN10TypeOopPtrC2EN4Type5TYPESEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS2_i(ptr noundef nonnull align 8 dereferenceable(80) %.0.i.i.i.i365, i32 noundef 21, i32 noundef 5, ptr noundef nonnull %1842, ptr noundef %1841, i1 noundef zeroext %1878, ptr noundef null, i32 noundef 8, i32 noundef 0, ptr noundef null, i32 noundef 2147483647) - store ptr getelementptr inbounds nuw inrange(-16, 352) (i8, ptr @_ZTV11TypeInstPtr, i64 16), ptr %.0.i.i.i.i365, align 8 - %1879 = tail call noundef nonnull ptr @_ZN4Type8hashconsEv(ptr noundef nonnull align 8 dereferenceable(20) %.0.i.i.i.i365) + %1878 = trunc i8 %.0.i366 to i1 + tail call void @_ZN10TypeOopPtrC2EN4Type5TYPESEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS2_i(ptr noundef nonnull align 8 dereferenceable(80) %.0.i.i.i.i368, i32 noundef 21, i32 noundef 5, ptr noundef nonnull %1842, ptr noundef %1841, i1 noundef zeroext %1878, ptr noundef null, i32 noundef 8, i32 noundef 0, ptr noundef null, i32 noundef 2147483647) + store ptr getelementptr inbounds nuw inrange(-16, 352) (i8, ptr @_ZTV11TypeInstPtr, i64 16), ptr %.0.i.i.i.i368, align 8 + %1879 = tail call noundef nonnull ptr @_ZN4Type8hashconsEv(ptr noundef nonnull align 8 dereferenceable(20) %.0.i.i.i.i368) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) store ptr %1879, ptr @_ZN11TypeInstPtr5KLASSE, align 8 %1880 = tail call noundef ptr @_ZN10TypeOopPtr4makeEN7TypePtr3PTREiiPKS0_i(i32 noundef 5, i32 noundef -2000000001, i32 noundef 0, ptr noundef null, i32 noundef 2147483647) @@ -6019,12 +6024,12 @@ _ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0 %.not.i.i.i.i249 = icmp ult i64 %1895, 56 br i1 %.not.i.i.i.i249, label %1898, label %1896 -1896: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit369 +1896: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit373 %1897 = getelementptr inbounds nuw i8, ptr %1892, i64 56 store ptr %1897, ptr %1891, align 8 br label %_ZN15TypeMetadataPtr4makeEN7TypePtr3PTREP10ciMetadatai.exit -1898: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit369 +1898: ; preds = %_ZN11TypeInstPtr4makeEN7TypePtr3PTREP7ciKlassPK14TypeInterfacesbP8ciObjectiiPKS0_i.exit373 %1899 = tail call noundef ptr @_ZN5Arena4growEmN17AllocFailStrategy13AllocFailEnumE(ptr noundef nonnull align 8 dereferenceable(48) %1888, i64 noundef 56, i32 noundef 0) #17 br label %_ZN15TypeMetadataPtr4makeEN7TypePtr3PTREP10ciMetadatai.exit @@ -16835,12 +16840,12 @@ _ZNK10ciMetadata9is_loadedEv.exit.thread: ; preds = %12, %_ZNK10ciMetada br i1 %22, label %.thread, label %27 .thread: ; preds = %_ZNK10ciMetadata9is_loadedEv.exit.thread, %19 - %.118 = phi i8 [ %spec.select, %19 ], [ 1, %_ZNK10ciMetadata9is_loadedEv.exit.thread ] %23 = load ptr, ptr %1, align 8 %24 = getelementptr inbounds nuw i8, ptr %23, i64 184 %25 = load ptr, ptr %24, align 8 %26 = tail call noundef zeroext i1 %25(ptr noundef nonnull align 8 dereferenceable(144) %1) #17 - %spec.select16 = select i1 %26, i8 0, i8 %.118 + %not. = xor i1 %26, true + %spec.select16 = zext i1 %not. to i8 br label %27 27: ; preds = %.thread, %9, %_ZNK10ciMetadata9is_loadedEv.exit, %19 diff --git a/bench/openusd/optimized/transform.cpp.ll b/bench/openusd/optimized/transform.cpp.ll index 9feef8868bb..8378c6739cb 100644 --- a/bench/openusd/optimized/transform.cpp.ll +++ b/bench/openusd/optimized/transform.cpp.ll @@ -194,8 +194,8 @@ _ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit: ; preds = %2, %18 %26 = getelementptr inbounds nuw i8, ptr %1, i64 64 %27 = load double, ptr %26, align 8 %28 = fcmp oeq double %27, 1.000000e+00 - %or.cond33 = select i1 %25, i1 %28, i1 false - br i1 %or.cond33, label %29, label %_ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit15 + %or.cond36 = select i1 %25, i1 %28, i1 false + br i1 %or.cond36, label %29, label %_ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit15 29: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit %30 = getelementptr inbounds nuw i8, ptr %1, i64 72 @@ -218,8 +218,8 @@ _ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit15: ; preds = %_ZNK32 %44 = getelementptr inbounds nuw i8, ptr %1, i64 8 %45 = load double, ptr %44, align 8 %46 = fcmp oeq double %45, 0.000000e+00 - %or.cond36 = select i1 %43, i1 %46, i1 false - br i1 %or.cond36, label %47, label %_ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit16 + %or.cond39 = select i1 %43, i1 %46, i1 false + br i1 %or.cond39, label %47, label %_ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit16 47: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit15 %48 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -248,7 +248,7 @@ _ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit16: ; preds = %_ZNK32 61: ; preds = %52, %_ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit16 %.0 = phi i8 [ 1, %52 ], [ 0, %_ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit16 ] - br i1 %33, label %62, label %124 + br i1 %33, label %62, label %119 62: ; preds = %61 %63 = trunc nuw i8 %.0 to i1 @@ -275,7 +275,7 @@ _ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit16: ; preds = %_ZNK32 %77 = fadd double %76, -1.000000e+00 %78 = call double @llvm.fabs.f64(double %77) %79 = fcmp olt double %78, 1.000000e-10 - br i1 %79, label %.thread40, label %80 + br i1 %79, label %_ZNK32pxrInternal_v0_24__pxrReserved__10GfRotation10GetInverseEv.exit, label %80 80: ; preds = %65 %sqrt.i.i.i.i.i = call noundef double @llvm.sqrt.f64(double %76) @@ -288,12 +288,12 @@ _ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit16: ; preds = %_ZNK32 store double %85, ptr %70, align 8, !alias.scope !10 %86 = fmul double %75, %83 store double %86, ptr %74, align 8, !alias.scope !10 - br label %.thread40 + br label %_ZNK32pxrInternal_v0_24__pxrReserved__10GfRotation10GetInverseEv.exit -.thread40: ; preds = %80, %65 +_ZNK32pxrInternal_v0_24__pxrReserved__10GfRotation10GetInverseEv.exit: ; preds = %65, %80 %87 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d9SetRotateERKNS_10GfRotationE(ptr noundef nonnull align 8 dereferenceable(128) %4, ptr noundef nonnull align 8 dereferenceable(32) %5) %88 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4dmLERKS0_(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(128) %4) - br label %114 + br label %.thread 89: ; preds = %64 call void @llvm.experimental.noalias.scope.decl(metadata !13) @@ -313,7 +313,7 @@ _ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit16: ; preds = %_ZNK32 %101 = fadd double %100, -1.000000e+00 %102 = call double @llvm.fabs.f64(double %101) %103 = fcmp olt double %102, 1.000000e-10 - br i1 %103, label %.thread, label %104 + br i1 %103, label %_ZNK32pxrInternal_v0_24__pxrReserved__10GfRotation10GetInverseEv.exit18, label %104 104: ; preds = %89 %sqrt.i.i.i.i.i17 = call noundef double @llvm.sqrt.f64(double %100) @@ -326,97 +326,88 @@ _ZNK32pxrInternal_v0_24__pxrReserved__7GfVec3dneERKS0_.exit16: ; preds = %_ZNK32 store double %109, ptr %94, align 8, !alias.scope !13 %110 = fmul double %99, %107 store double %110, ptr %98, align 8, !alias.scope !13 - br label %.thread + br label %_ZNK32pxrInternal_v0_24__pxrReserved__10GfRotation10GetInverseEv.exit18 -.thread: ; preds = %104, %89 +_ZNK32pxrInternal_v0_24__pxrReserved__10GfRotation10GetInverseEv.exit18: ; preds = %89, %104 %111 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d9SetRotateERKNS_10GfRotationE(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(32) %6) - br label %114 + br label %.thread 112: ; preds = %62 - br i1 %63, label %114, label %.thread42 + br i1 %63, label %.thread, label %.thread27 -.thread42: ; preds = %112 +.thread27: ; preds = %112 %113 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d8SetScaleERKNS_7GfVec3dE(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(24) %23) - br label %124 - -114: ; preds = %112, %.thread, %.thread40 - %.226 = phi i8 [ 1, %.thread ], [ %.0, %112 ], [ %.0, %.thread40 ] - %115 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d8SetScaleERKNS_7GfVec3dE(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(24) %23) - %116 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4dmLERKS0_(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(128) %7) - br i1 %37, label %117, label %124 - -117: ; preds = %114 - %118 = trunc nuw i8 %.226 to i1 - br i1 %118, label %119, label %122 - -119: ; preds = %117 - %120 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d9SetRotateERKNS_10GfRotationE(ptr noundef nonnull align 8 dereferenceable(128) %8, ptr noundef nonnull align 8 dereferenceable(32) %34) - %121 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4dmLERKS0_(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(128) %8) - br label %124 - -122: ; preds = %117 - %123 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d9SetRotateERKNS_10GfRotationE(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(32) %34) - br label %124 - -124: ; preds = %.thread42, %114, %122, %119, %61 - %.1 = phi i8 [ %.226, %119 ], [ 1, %122 ], [ %.226, %114 ], [ %.0, %61 ], [ 1, %.thread42 ] - br i1 %41, label %125, label %132 - -125: ; preds = %124 - %126 = trunc nuw i8 %.1 to i1 - br i1 %126, label %127, label %130 - -127: ; preds = %125 - %128 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d9SetRotateERKNS_10GfRotationE(ptr noundef nonnull align 8 dereferenceable(128) %9, ptr noundef nonnull align 8 dereferenceable(32) %38) - %129 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4dmLERKS0_(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(128) %9) - br label %132 - -130: ; preds = %125 - %131 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d9SetRotateERKNS_10GfRotationE(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(32) %38) - br label %132 - -132: ; preds = %127, %130, %124 - %.4 = phi i8 [ %.1, %127 ], [ 1, %130 ], [ %.1, %124 ] - br i1 %22, label %133, label %140 - -133: ; preds = %132 - %134 = trunc nuw i8 %.4 to i1 - br i1 %134, label %135, label %138 - -135: ; preds = %133 - %136 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d12SetTranslateERKNS_7GfVec3dE(ptr noundef nonnull align 8 dereferenceable(128) %10, ptr noundef nonnull align 8 dereferenceable(24) %12) - %137 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4dmLERKS0_(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(128) %10) - br label %140 - -138: ; preds = %133 - %139 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d12SetTranslateERKNS_7GfVec3dE(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(24) %12) - br label %140 - -140: ; preds = %135, %138, %132 - %.5 = phi i8 [ %.4, %135 ], [ 1, %138 ], [ %.4, %132 ] - %141 = trunc nuw i8 %.5 to i1 - br i1 %51, label %142, label %146 - -142: ; preds = %140 - br i1 %141, label %.thread44, label %.thread27 - -.thread44: ; preds = %142 - %143 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d12SetTranslateERKNS_7GfVec3dE(ptr noundef nonnull align 8 dereferenceable(128) %11, ptr noundef nonnull align 8 dereferenceable(24) %1) - %144 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4dmLERKS0_(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(128) %11) - br label %149 - -.thread27: ; preds = %142 - %145 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d12SetTranslateERKNS_7GfVec3dE(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(24) %1) - br label %149 - -146: ; preds = %140 - br i1 %141, label %149, label %147 - -147: ; preds = %146 - %148 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d11SetDiagonalEd(ptr noundef nonnull align 8 dereferenceable(128) %0, double noundef 1.000000e+00) - br label %149 - -149: ; preds = %.thread44, %.thread27, %147, %146 + br label %119 + +.thread: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__10GfRotation10GetInverseEv.exit18, %_ZNK32pxrInternal_v0_24__pxrReserved__10GfRotation10GetInverseEv.exit, %112 + %114 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d8SetScaleERKNS_7GfVec3dE(ptr noundef nonnull align 8 dereferenceable(128) %7, ptr noundef nonnull align 8 dereferenceable(24) %23) + %115 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4dmLERKS0_(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(128) %7) + br i1 %37, label %116, label %119 + +116: ; preds = %.thread + %117 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d9SetRotateERKNS_10GfRotationE(ptr noundef nonnull align 8 dereferenceable(128) %8, ptr noundef nonnull align 8 dereferenceable(32) %34) + %118 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4dmLERKS0_(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(128) %8) + br label %119 + +119: ; preds = %.thread27, %.thread, %116, %61 + %.1 = phi i8 [ 1, %116 ], [ 1, %.thread ], [ %.0, %61 ], [ 1, %.thread27 ] + br i1 %41, label %120, label %127 + +120: ; preds = %119 + %121 = trunc nuw i8 %.1 to i1 + br i1 %121, label %122, label %125 + +122: ; preds = %120 + %123 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d9SetRotateERKNS_10GfRotationE(ptr noundef nonnull align 8 dereferenceable(128) %9, ptr noundef nonnull align 8 dereferenceable(32) %38) + %124 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4dmLERKS0_(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(128) %9) + br label %127 + +125: ; preds = %120 + %126 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d9SetRotateERKNS_10GfRotationE(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(32) %38) + br label %127 + +127: ; preds = %122, %125, %119 + %.4 = phi i8 [ 1, %122 ], [ 1, %125 ], [ %.1, %119 ] + br i1 %22, label %128, label %135 + +128: ; preds = %127 + %129 = trunc nuw i8 %.4 to i1 + br i1 %129, label %130, label %133 + +130: ; preds = %128 + %131 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d12SetTranslateERKNS_7GfVec3dE(ptr noundef nonnull align 8 dereferenceable(128) %10, ptr noundef nonnull align 8 dereferenceable(24) %12) + %132 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4dmLERKS0_(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(128) %10) + br label %135 + +133: ; preds = %128 + %134 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d12SetTranslateERKNS_7GfVec3dE(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(24) %12) + br label %135 + +135: ; preds = %130, %133, %127 + %.5 = phi i8 [ 1, %130 ], [ 1, %133 ], [ %.4, %127 ] + %136 = trunc nuw i8 %.5 to i1 + br i1 %51, label %137, label %143 + +137: ; preds = %135 + br i1 %136, label %138, label %141 + +138: ; preds = %137 + %139 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d12SetTranslateERKNS_7GfVec3dE(ptr noundef nonnull align 8 dereferenceable(128) %11, ptr noundef nonnull align 8 dereferenceable(24) %1) + %140 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4dmLERKS0_(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(128) %11) + br label %.thread30 + +141: ; preds = %137 + %142 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d12SetTranslateERKNS_7GfVec3dE(ptr noundef nonnull align 8 dereferenceable(128) %0, ptr noundef nonnull align 8 dereferenceable(24) %1) + br label %.thread30 + +143: ; preds = %135 + br i1 %136, label %.thread30, label %144 + +144: ; preds = %143 + %145 = call noundef nonnull align 8 dereferenceable(128) ptr @_ZN32pxrInternal_v0_24__pxrReserved__10GfMatrix4d11SetDiagonalEd(ptr noundef nonnull align 8 dereferenceable(128) %0, double noundef 1.000000e+00) + br label %.thread30 + +.thread30: ; preds = %141, %138, %144, %143 ret void } diff --git a/bench/postgres/optimized/execute.ll b/bench/postgres/optimized/execute.ll index 73c865d8e7a..8fc7fb2b5e1 100644 --- a/bench/postgres/optimized/execute.ll +++ b/bench/postgres/optimized/execute.ll @@ -790,7 +790,7 @@ ecpg_is_type_an_array.exit: ; preds = %330, %ecpg_type_inf ecpg_is_type_an_array.exit.thread: ; preds = %310, %302, %294, %286, %278, %270, %262, %254, %246, %238, %230, %222, %214, %206, %198, %190, %182, %174, %166, %158, %150, %142, %134, %126, %118, %110, %102, %94, %86, %78, %70, %62, %54, %46, %38, %30, %22, %15, %12, %350, %337, %333, %ecpg_is_type_an_array.exit %381 = load i32, ptr %2, align 8 tail call void @ecpg_raise(i32 noundef %381, i32 noundef -12, ptr noundef nonnull @.str, ptr noundef null) #14 - br label %575 + br label %.loopexit 382: ; preds = %ecpg_is_type_an_array.exit %383 = getelementptr inbounds nuw i8, ptr %3, i64 32 @@ -819,7 +819,7 @@ ecpg_is_type_an_array.exit.thread: ; preds = %310, %302, %294, %2 %399 = icmp ult i32 %398, 2 %400 = select i1 %399, i32 -284, i32 -203 tail call void @ecpg_raise(i32 noundef %395, i32 noundef %400, ptr noundef nonnull @.str.2, ptr noundef null) #14 - br label %575 + br label %.loopexit 401: ; preds = %ecpg_is_type_an_array.exit %402 = getelementptr inbounds nuw i8, ptr %3, i64 32 @@ -834,7 +834,7 @@ ecpg_is_type_an_array.exit.thread: ; preds = %310, %302, %294, %2 406: ; preds = %401 %407 = load i32, ptr %2, align 8 tail call void @ecpg_raise(i32 noundef %407, i32 noundef -214, ptr noundef nonnull @.str.3, ptr noundef null) #14 - br label %575 + br label %.loopexit 408: ; preds = %388 %409 = getelementptr inbounds nuw i8, ptr %3, i64 32 @@ -980,7 +980,7 @@ ecpg_is_type_an_array.exit.thread: ; preds = %310, %302, %294, %2 %480 = tail call ptr @ecpg_auto_alloc(i64 noundef %478, i32 noundef %479) #14 store ptr %480, ptr %418, align 8 %.not164 = icmp eq ptr %480, null - br i1 %.not164, label %575, label %481 + br i1 %.not164, label %.loopexit, label %481 481: ; preds = %.loopexit175 %482 = getelementptr inbounds nuw i8, ptr %3, i64 16 @@ -1023,7 +1023,7 @@ ecpg_is_type_an_array.exit.thread: ; preds = %310, %302, %294, %2 %507 = tail call ptr @ecpg_auto_alloc(i64 noundef %505, i32 noundef %506) #14 store ptr %507, ptr %494, align 8 %.not166 = icmp eq ptr %507, null - br i1 %.not166, label %575, label %508 + br i1 %.not166, label %.loopexit, label %508 508: ; preds = %500 %509 = load ptr, ptr %498, align 8 @@ -1095,7 +1095,7 @@ ecpg_is_type_an_array.exit.thread: ; preds = %310, %302, %294, %2 br i1 %547, label %529, label %._crit_edge192, !llvm.loop !9 ._crit_edge192: ; preds = %529, %543, %517 - %.0144.lcssa = phi i8 [ 1, %517 ], [ 0, %529 ], [ 1, %543 ] + %.0144.lcssa = phi i1 [ true, %517 ], [ %542, %543 ], [ %542, %529 ] %.0140.lcssa = phi ptr [ %519, %517 ], [ %.0140188, %529 ], [ %545, %543 ] store ptr null, ptr %.0140.lcssa, align 8 br label %.loopexit @@ -1116,7 +1116,6 @@ ecpg_is_type_an_array.exit.thread: ; preds = %310, %302, %294, %2 557: ; preds = %.lr.ph198, %557 %.4196 = phi i32 [ 0, %.lr.ph198 ], [ %570, %557 ] - %.3147195 = phi i8 [ 1, %.lr.ph198 ], [ %spec.select, %557 ] %558 = load i32, ptr %2, align 8 %559 = load i32, ptr %3, align 8 %560 = load i32, ptr %550, align 8 @@ -1129,20 +1128,13 @@ ecpg_is_type_an_array.exit.thread: ; preds = %310, %302, %294, %2 %567 = load i8, ptr %556, align 4 %568 = trunc i8 %567 to i1 %569 = tail call zeroext i1 @ecpg_get_data(ptr noundef %0, i32 noundef %.4196, i32 noundef %1, i32 noundef %558, i32 noundef %559, i32 noundef %560, ptr noundef %561, ptr noundef %562, i64 noundef %563, i64 noundef %564, i64 noundef %565, i32 noundef %.0112.i, i32 noundef %566, i1 noundef zeroext %568) #14 - %spec.select = select i1 %569, i8 %.3147195, i8 0 %570 = add nuw nsw i32 %.4196, 1 %571 = icmp slt i32 %570, %5 - %572 = trunc nuw i8 %spec.select to i1 - %573 = select i1 %571, i1 %572, i1 false - br i1 %573, label %557, label %.loopexit, !llvm.loop !10 - -.loopexit: ; preds = %557, %548, %._crit_edge192 - %.2146 = phi i8 [ %.0144.lcssa, %._crit_edge192 ], [ 1, %548 ], [ %spec.select, %557 ] - %574 = trunc nuw i8 %.2146 to i1 - br label %575 + %572 = select i1 %571, i1 %569, i1 false + br i1 %572, label %557, label %.loopexit, !llvm.loop !10 -575: ; preds = %500, %.loopexit175, %.loopexit, %406, %393, %ecpg_is_type_an_array.exit.thread - %.0 = phi i1 [ false, %ecpg_is_type_an_array.exit.thread ], [ false, %393 ], [ %574, %.loopexit ], [ false, %406 ], [ false, %.loopexit175 ], [ false, %500 ] +.loopexit: ; preds = %557, %._crit_edge192, %548, %500, %.loopexit175, %406, %393, %ecpg_is_type_an_array.exit.thread + %.0 = phi i1 [ false, %ecpg_is_type_an_array.exit.thread ], [ false, %393 ], [ false, %406 ], [ false, %.loopexit175 ], [ false, %500 ], [ %.0144.lcssa, %._crit_edge192 ], [ true, %548 ], [ %569, %557 ] ret i1 %.0 } diff --git a/bench/postgres/optimized/partbounds.ll b/bench/postgres/optimized/partbounds.ll index a681f35a87a..82e6abf6ab5 100644 --- a/bench/postgres/optimized/partbounds.ll +++ b/bench/postgres/optimized/partbounds.ll @@ -229,6 +229,8 @@ define internal fastcc ptr @get_qual_for_list(ptr noundef %0, ptr nocapture noun %.not92 = icmp ne i32 %36, -1 %37 = icmp ne i32 %34, 0 %brmerge = select i1 %37, i1 true, i1 %.not92 + %not. = xor i1 %37, true + %.not92.mux = select i1 %not., i1 true, i1 %.not92 br i1 %brmerge, label %.preheader, label %.thread102 .preheader: ; preds = %32 @@ -316,10 +318,10 @@ define internal fastcc ptr @get_qual_for_list(ptr noundef %0, ptr nocapture noun br i1 %88, label %.lr.ph123, label %.thread105 .thread105.thread: ; preds = %.preheader - br i1 %.not92, label %101, label %.thread105.thread.thread + br i1 %.not92.mux, label %101, label %.thread105.thread.thread .thread105: ; preds = %85, %45 - %.182 = phi i1 [ %.not92, %45 ], [ %.384, %85 ] + %.182 = phi i1 [ %.not92.mux, %45 ], [ %.384, %85 ] %.180 = phi ptr [ %67, %45 ], [ %.3, %85 ] %.not93 = icmp eq ptr %.180, null br i1 %.not93, label %91, label %89 diff --git a/bench/protobuf/optimized/retention.cc.ll b/bench/protobuf/optimized/retention.cc.ll index f329555c392..11c961f5229 100644 --- a/bench/protobuf/optimized/retention.cc.ll +++ b/bench/protobuf/optimized/retention.cc.ll @@ -1171,22 +1171,22 @@ invoke.cont9: ; preds = %invoke.cont7 invoke.cont11: ; preds = %invoke.cont9 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %serialized) #23 %call15 = invoke noundef zeroext i1 @_ZNK6google8protobuf11MessageLite24SerializePartialToStringEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %m, ptr noundef nonnull %serialized) - to label %invoke.cont14 unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp + to label %invoke.cont14 unwind label %lpad13 invoke.cont14: ; preds = %invoke.cont11 - br i1 %call15, label %if.end, label %land.rhs.lr.ph + br i1 %call15, label %if.end, label %land.rhs -land.rhs.lr.ph: ; preds = %invoke.cont14 +land.rhs: ; preds = %invoke.cont14 %call20 = invoke noundef zeroext i1 @_ZN4absl12lts_2023080212log_internal17LogEveryNSecState9ShouldLogEd(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6google8protobuf8compiler12_GLOBAL__N_138ConvertToDynamicMessageAndStripOptionsERNS0_7MessageERKNS0_14DescriptorPoolEPSt6vectorIS8_IiSaIiEESaISA_EEE42absl_log_internal_stateful_condition_state, double noundef 1.000000e+00) - to label %land.end unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.split + to label %land.end unwind label %lpad13 -land.end: ; preds = %land.rhs.lr.ph +land.end: ; preds = %land.rhs br i1 %call20, label %for.body26, label %for.end153.invoke for.body26: ; preds = %land.end %5 = load atomic i32, ptr @_ZZN6google8protobuf8compiler12_GLOBAL__N_138ConvertToDynamicMessageAndStripOptionsERNS0_7MessageERKNS0_14DescriptorPoolEPSt6vectorIS8_IiSaIiEESaISA_EEE42absl_log_internal_stateful_condition_state monotonic, align 8 invoke void @_ZN4absl12lts_2023080212log_internal10LogMessageC1EPKciNS2_8ErrorTagE(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp27, ptr noundef nonnull @.str, i32 noundef 121) #28 - to label %invoke.cont29 unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.split + to label %invoke.cont29 unwind label %lpad13 invoke.cont29: ; preds = %for.body26 invoke void @_ZN4absl12lts_2023080212log_internal10LogMessage19CopyToEncodedBufferILNS2_10StringTypeE0EEEvSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp27, i64 46, ptr nonnull @.str.1) @@ -1197,130 +1197,110 @@ lpad8: ; preds = %invoke.cont9, %invo cleanup br label %ehcleanup159 -lpad13.loopexit.split.split: ; preds = %land.rhs129.lr.ph, %for.body139 - %lpad.loopexit = landingpad { ptr, i32 } - cleanup - br label %ehcleanup - -lpad13.loopexit.split-lp.loopexit.split.split: ; preds = %for.body101, %land.rhs91.lr.ph - %lpad.loopexit53 = landingpad { ptr, i32 } - cleanup - br label %ehcleanup - -lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split.split: ; preds = %land.rhs52.lr.ph, %for.body62 - %lpad.loopexit56 = landingpad { ptr, i32 } - cleanup - br label %ehcleanup - -lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.split: ; preds = %for.body26, %land.rhs.lr.ph - %lpad.loopexit58 = landingpad { ptr, i32 } - cleanup - br label %ehcleanup - -lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %for.end153.invoke, %if.end117, %invoke.cont80, %if.end78, %if.end, %invoke.cont11 - %lpad.loopexit.split-lp59 = landingpad { ptr, i32 } +lpad13: ; preds = %for.end153.invoke, %for.body139, %land.rhs129, %if.end117, %for.body101, %land.rhs91, %invoke.cont80, %if.end78, %for.body62, %land.rhs52, %if.end, %for.body26, %land.rhs, %invoke.cont11 + %7 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad30: ; preds = %invoke.cont29 - %7 = landingpad { ptr, i32 } + %8 = landingpad { ptr, i32 } cleanup call void @_ZN4absl12lts_2023080212log_internal10LogMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp27) #29 br label %ehcleanup if.end: ; preds = %invoke.cont14 %call42 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %serialized) #23 - %8 = extractvalue { i64, ptr } %call42, 0 - %9 = extractvalue { i64, ptr } %call42, 1 - %call44 = invoke noundef zeroext i1 @_ZN6google8protobuf11MessageLite22ParsePartialFromStringESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %call.i28, i64 %8, ptr %9) - to label %invoke.cont43 unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp + %9 = extractvalue { i64, ptr } %call42, 0 + %10 = extractvalue { i64, ptr } %call42, 1 + %call44 = invoke noundef zeroext i1 @_ZN6google8protobuf11MessageLite22ParsePartialFromStringESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %call.i28, i64 %9, ptr %10) + to label %invoke.cont43 unwind label %lpad13 invoke.cont43: ; preds = %if.end - br i1 %call44, label %if.end78, label %land.rhs52.lr.ph + br i1 %call44, label %if.end78, label %land.rhs52 -land.rhs52.lr.ph: ; preds = %invoke.cont43 +land.rhs52: ; preds = %invoke.cont43 %call54 = invoke noundef zeroext i1 @_ZN4absl12lts_2023080212log_internal17LogEveryNSecState9ShouldLogEd(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6google8protobuf8compiler12_GLOBAL__N_138ConvertToDynamicMessageAndStripOptionsERNS0_7MessageERKNS0_14DescriptorPoolEPSt6vectorIS8_IiSaIiEESaISA_EEE42absl_log_internal_stateful_condition_state_0, double noundef 1.000000e+00) - to label %land.end55 unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split.split + to label %land.end55 unwind label %lpad13 -land.end55: ; preds = %land.rhs52.lr.ph +land.end55: ; preds = %land.rhs52 br i1 %call54, label %for.body62, label %for.end153.invoke for.body62: ; preds = %land.end55 - %10 = load atomic i32, ptr @_ZZN6google8protobuf8compiler12_GLOBAL__N_138ConvertToDynamicMessageAndStripOptionsERNS0_7MessageERKNS0_14DescriptorPoolEPSt6vectorIS8_IiSaIiEESaISA_EEE42absl_log_internal_stateful_condition_state_0 monotonic, align 8 + %11 = load atomic i32, ptr @_ZZN6google8protobuf8compiler12_GLOBAL__N_138ConvertToDynamicMessageAndStripOptionsERNS0_7MessageERKNS0_14DescriptorPoolEPSt6vectorIS8_IiSaIiEESaISA_EEE42absl_log_internal_stateful_condition_state_0 monotonic, align 8 invoke void @_ZN4absl12lts_2023080212log_internal10LogMessageC1EPKciNS2_8ErrorTagE(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp63, ptr noundef nonnull @.str, i32 noundef 127) #28 - to label %invoke.cont65 unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split.split + to label %invoke.cont65 unwind label %lpad13 invoke.cont65: ; preds = %for.body62 invoke void @_ZN4absl12lts_2023080212log_internal10LogMessage19CopyToEncodedBufferILNS2_10StringTypeE0EEEvSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp63, i64 46, ptr nonnull @.str.1) to label %for.end153.invoke.sink.split unwind label %lpad66 lpad66: ; preds = %invoke.cont65 - %11 = landingpad { ptr, i32 } + %12 = landingpad { ptr, i32 } cleanup call void @_ZN4absl12lts_2023080212log_internal10LogMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp63) #29 br label %ehcleanup if.end78: ; preds = %invoke.cont43 invoke fastcc void @_ZN6google8protobuf8compiler12_GLOBAL__N_112StripMessageERNS0_7MessageERSt6vectorIiSaIiEEPS5_IS7_SaIS7_EE(ptr noundef nonnull align 8 dereferenceable(16) %call.i28, ptr noundef nonnull align 8 dereferenceable(24) %path, ptr noundef %stripped_paths) - to label %invoke.cont80 unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp + to label %invoke.cont80 unwind label %lpad13 invoke.cont80: ; preds = %if.end78 %call83 = invoke noundef zeroext i1 @_ZNK6google8protobuf11MessageLite24SerializePartialToStringEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(16) %call.i28, ptr noundef nonnull %serialized) - to label %invoke.cont82 unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp + to label %invoke.cont82 unwind label %lpad13 invoke.cont82: ; preds = %invoke.cont80 - br i1 %call83, label %if.end117, label %land.rhs91.lr.ph + br i1 %call83, label %if.end117, label %land.rhs91 -land.rhs91.lr.ph: ; preds = %invoke.cont82 +land.rhs91: ; preds = %invoke.cont82 %call93 = invoke noundef zeroext i1 @_ZN4absl12lts_2023080212log_internal17LogEveryNSecState9ShouldLogEd(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6google8protobuf8compiler12_GLOBAL__N_138ConvertToDynamicMessageAndStripOptionsERNS0_7MessageERKNS0_14DescriptorPoolEPSt6vectorIS8_IiSaIiEESaISA_EEE42absl_log_internal_stateful_condition_state_1, double noundef 1.000000e+00) - to label %land.end94 unwind label %lpad13.loopexit.split-lp.loopexit.split.split + to label %land.end94 unwind label %lpad13 -land.end94: ; preds = %land.rhs91.lr.ph +land.end94: ; preds = %land.rhs91 br i1 %call93, label %for.body101, label %for.end153.invoke for.body101: ; preds = %land.end94 - %12 = load atomic i32, ptr @_ZZN6google8protobuf8compiler12_GLOBAL__N_138ConvertToDynamicMessageAndStripOptionsERNS0_7MessageERKNS0_14DescriptorPoolEPSt6vectorIS8_IiSaIiEESaISA_EEE42absl_log_internal_stateful_condition_state_1 monotonic, align 8 + %13 = load atomic i32, ptr @_ZZN6google8protobuf8compiler12_GLOBAL__N_138ConvertToDynamicMessageAndStripOptionsERNS0_7MessageERKNS0_14DescriptorPoolEPSt6vectorIS8_IiSaIiEESaISA_EEE42absl_log_internal_stateful_condition_state_1 monotonic, align 8 invoke void @_ZN4absl12lts_2023080212log_internal10LogMessageC1EPKciNS2_8ErrorTagE(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp102, ptr noundef nonnull @.str, i32 noundef 134) #28 - to label %invoke.cont104 unwind label %lpad13.loopexit.split-lp.loopexit.split.split + to label %invoke.cont104 unwind label %lpad13 invoke.cont104: ; preds = %for.body101 invoke void @_ZN4absl12lts_2023080212log_internal10LogMessage19CopyToEncodedBufferILNS2_10StringTypeE0EEEvSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp102, i64 46, ptr nonnull @.str.1) to label %for.end153.invoke.sink.split unwind label %lpad105 lpad105: ; preds = %invoke.cont104 - %13 = landingpad { ptr, i32 } + %14 = landingpad { ptr, i32 } cleanup call void @_ZN4absl12lts_2023080212log_internal10LogMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp102) #29 br label %ehcleanup if.end117: ; preds = %invoke.cont82 %call119 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %serialized) #23 - %14 = extractvalue { i64, ptr } %call119, 0 - %15 = extractvalue { i64, ptr } %call119, 1 - %call121 = invoke noundef zeroext i1 @_ZN6google8protobuf11MessageLite22ParsePartialFromStringESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %m, i64 %14, ptr %15) - to label %invoke.cont120 unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp + %15 = extractvalue { i64, ptr } %call119, 0 + %16 = extractvalue { i64, ptr } %call119, 1 + %call121 = invoke noundef zeroext i1 @_ZN6google8protobuf11MessageLite22ParsePartialFromStringESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %m, i64 %15, ptr %16) + to label %invoke.cont120 unwind label %lpad13 invoke.cont120: ; preds = %if.end117 - br i1 %call121, label %_ZNSt10unique_ptrIN6google8protobuf7MessageESt14default_deleteIS2_EED2Ev.exit, label %land.rhs129.lr.ph + br i1 %call121, label %_ZNSt10unique_ptrIN6google8protobuf7MessageESt14default_deleteIS2_EED2Ev.exit, label %land.rhs129 -land.rhs129.lr.ph: ; preds = %invoke.cont120 +land.rhs129: ; preds = %invoke.cont120 %call131 = invoke noundef zeroext i1 @_ZN4absl12lts_2023080212log_internal17LogEveryNSecState9ShouldLogEd(ptr noundef nonnull align 8 dereferenceable(16) @_ZZN6google8protobuf8compiler12_GLOBAL__N_138ConvertToDynamicMessageAndStripOptionsERNS0_7MessageERKNS0_14DescriptorPoolEPSt6vectorIS8_IiSaIiEESaISA_EEE42absl_log_internal_stateful_condition_state_2, double noundef 1.000000e+00) - to label %land.end132 unwind label %lpad13.loopexit.split.split + to label %land.end132 unwind label %lpad13 -land.end132: ; preds = %land.rhs129.lr.ph +land.end132: ; preds = %land.rhs129 br i1 %call131, label %for.body139, label %for.end153.invoke for.body139: ; preds = %land.end132 - %16 = load atomic i32, ptr @_ZZN6google8protobuf8compiler12_GLOBAL__N_138ConvertToDynamicMessageAndStripOptionsERNS0_7MessageERKNS0_14DescriptorPoolEPSt6vectorIS8_IiSaIiEESaISA_EEE42absl_log_internal_stateful_condition_state_2 monotonic, align 8 + %17 = load atomic i32, ptr @_ZZN6google8protobuf8compiler12_GLOBAL__N_138ConvertToDynamicMessageAndStripOptionsERNS0_7MessageERKNS0_14DescriptorPoolEPSt6vectorIS8_IiSaIiEESaISA_EEE42absl_log_internal_stateful_condition_state_2 monotonic, align 8 invoke void @_ZN4absl12lts_2023080212log_internal10LogMessageC1EPKciNS2_8ErrorTagE(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp140, ptr noundef nonnull @.str, i32 noundef 140) #28 - to label %invoke.cont142 unwind label %lpad13.loopexit.split.split + to label %invoke.cont142 unwind label %lpad13 invoke.cont142: ; preds = %for.body139 invoke void @_ZN4absl12lts_2023080212log_internal10LogMessage19CopyToEncodedBufferILNS2_10StringTypeE0EEEvSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp140, i64 46, ptr nonnull @.str.1) to label %for.end153.invoke.sink.split unwind label %lpad143 lpad143: ; preds = %invoke.cont142 - %17 = landingpad { ptr, i32 } + %18 = landingpad { ptr, i32 } cleanup call void @_ZN4absl12lts_2023080212log_internal10LogMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp140) #29 br label %ehcleanup @@ -1332,14 +1312,14 @@ for.end153.invoke.sink.split: ; preds = %invoke.cont142, %in for.end153.invoke: ; preds = %for.end153.invoke.sink.split, %land.end132, %land.end94, %land.end55, %land.end invoke fastcc void @_ZN6google8protobuf8compiler12_GLOBAL__N_112StripMessageERNS0_7MessageERSt6vectorIiSaIiEEPS5_IS7_SaIS7_EE(ptr noundef nonnull align 8 dereferenceable(16) %m, ptr noundef nonnull align 8 dereferenceable(24) %path, ptr noundef %stripped_paths) - to label %cleanup161.critedge unwind label %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp + to label %cleanup161.critedge unwind label %lpad13 _ZNSt10unique_ptrIN6google8protobuf7MessageESt14default_deleteIS2_EED2Ev.exit: ; preds = %invoke.cont120 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %serialized) #23 br label %cleanup161.sink.split.sink.split -ehcleanup: ; preds = %lpad13.loopexit.split.split, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split.split, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.split, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad13.loopexit.split-lp.loopexit.split.split, %lpad143, %lpad105, %lpad66, %lpad30 - %.pn = phi { ptr, i32 } [ %17, %lpad143 ], [ %13, %lpad105 ], [ %11, %lpad66 ], [ %7, %lpad30 ], [ %lpad.loopexit, %lpad13.loopexit.split.split ], [ %lpad.loopexit53, %lpad13.loopexit.split-lp.loopexit.split.split ], [ %lpad.loopexit56, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split.split ], [ %lpad.loopexit.split-lp59, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit58, %lpad13.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.split ] +ehcleanup: ; preds = %lpad143, %lpad105, %lpad66, %lpad30, %lpad13 + %.pn = phi { ptr, i32 } [ %18, %lpad143 ], [ %7, %lpad13 ], [ %14, %lpad105 ], [ %12, %lpad66 ], [ %8, %lpad30 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %serialized) #23 %cmp.not.i35 = icmp eq ptr %call.i28, null br i1 %cmp.not.i35, label %ehcleanup159, label %_ZNKSt14default_deleteIN6google8protobuf7MessageEEclEPS2_.exit.i36 @@ -1347,8 +1327,8 @@ ehcleanup: ; preds = %lpad13.loopexit.spl _ZNKSt14default_deleteIN6google8protobuf7MessageEEclEPS2_.exit.i36: ; preds = %ehcleanup %vtable.i.i37 = load ptr, ptr %call.i28, align 8 %vfn.i.i38 = getelementptr inbounds nuw i8, ptr %vtable.i.i37, i64 8 - %18 = load ptr, ptr %vfn.i.i38, align 8 - call void %18(ptr noundef nonnull align 8 dereferenceable(16) %call.i28) #23 + %19 = load ptr, ptr %vfn.i.i38, align 8 + call void %19(ptr noundef nonnull align 8 dereferenceable(16) %call.i28) #23 br label %ehcleanup159 ehcleanup159: ; preds = %_ZNKSt14default_deleteIN6google8protobuf7MessageEEclEPS2_.exit.i36, %ehcleanup, %lpad8 @@ -1364,8 +1344,8 @@ cleanup161.critedge: ; preds = %for.end153.invoke cleanup161.sink.split.sink.split: ; preds = %cleanup161.critedge, %_ZNSt10unique_ptrIN6google8protobuf7MessageESt14default_deleteIS2_EED2Ev.exit %vtable.i.i42 = load ptr, ptr %call.i28, align 8 %vfn.i.i43 = getelementptr inbounds nuw i8, ptr %vtable.i.i42, i64 8 - %19 = load ptr, ptr %vfn.i.i43, align 8 - call void %19(ptr noundef nonnull align 8 dereferenceable(16) %call.i28) #23 + %20 = load ptr, ptr %vfn.i.i43, align 8 + call void %20(ptr noundef nonnull align 8 dereferenceable(16) %call.i28) #23 br label %cleanup161.sink.split cleanup161.sink.split: ; preds = %cleanup161.sink.split.sink.split, %cleanup161.critedge @@ -1373,12 +1353,12 @@ cleanup161.sink.split: ; preds = %cleanup161.sink.spl br label %cleanup161 cleanup161: ; preds = %cleanup161.sink.split, %if.then - %20 = load ptr, ptr %path, align 8 - %tobool.not.i.i.i = icmp eq ptr %20, null + %21 = load ptr, ptr %path, align 8 + %tobool.not.i.i.i = icmp eq ptr %21, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorIiSaIiEED2Ev.exit, label %if.then.i.i.i if.then.i.i.i: ; preds = %cleanup161 - call void @_ZdlPv(ptr noundef nonnull %20) #27 + call void @_ZdlPv(ptr noundef nonnull %21) #27 br label %_ZNSt6vectorIiSaIiEED2Ev.exit _ZNSt6vectorIiSaIiEED2Ev.exit: ; preds = %cleanup161, %if.then.i.i.i @@ -1386,12 +1366,12 @@ _ZNSt6vectorIiSaIiEED2Ev.exit: ; preds = %cleanup161, %if.the ehcleanup164: ; preds = %ehcleanup159, %lpad2 %.pn25 = phi { ptr, i32 } [ %3, %lpad2 ], [ %.pn.pn, %ehcleanup159 ] - %21 = load ptr, ptr %path, align 8 - %tobool.not.i.i.i45 = icmp eq ptr %21, null + %22 = load ptr, ptr %path, align 8 + %tobool.not.i.i.i45 = icmp eq ptr %22, null br i1 %tobool.not.i.i.i45, label %eh.resume, label %if.then.i.i.i46 if.then.i.i.i46: ; preds = %ehcleanup164 - call void @_ZdlPv(ptr noundef nonnull %21) #27 + call void @_ZdlPv(ptr noundef nonnull %22) #27 br label %eh.resume eh.resume: ; preds = %if.then.i.i.i46, %ehcleanup164, %lpad diff --git a/bench/protobuf/optimized/text_format.cc.ll b/bench/protobuf/optimized/text_format.cc.ll index 42662267468..72add461c6f 100644 --- a/bench/protobuf/optimized/text_format.cc.ll +++ b/bench/protobuf/optimized/text_format.cc.ll @@ -11752,12 +11752,9 @@ entry: if.then: ; preds = %entry %cmp2 = icmp sgt i32 %line, -1 - %root_message_type_ = getelementptr inbounds nuw i8, ptr %this, i64 232 - br i1 %cmp2, label %land.rhs, label %land.rhs46.lr.ph + br i1 %cmp2, label %land.rhs, label %land.rhs46 land.rhs: ; preds = %if.then - %add = add nuw nsw i32 %line, 1 - %add24 = add nsw i32 %col, 1 %call = tail call noundef zeroext i1 @_ZN4absl12lts_2023080212log_internal17LogEveryPow2State9ShouldLogEv(ptr noundef nonnull align 4 dereferenceable(4) @_ZZN6google8protobuf10TextFormat6Parser10ParserImpl13ReportWarningEiiSt17basic_string_viewIcSt11char_traitsIcEEE42absl_log_internal_stateful_condition_state) br i1 %call, label %for.body10, label %if.end85 @@ -11768,6 +11765,7 @@ for.body10: ; preds = %land.rhs to label %invoke.cont12 unwind label %lpad invoke.cont12: ; preds = %for.body10 + %root_message_type_ = getelementptr inbounds nuw i8, ptr %this, i64 232 %2 = load ptr, ptr %root_message_type_, align 8 %all_names_.i = getelementptr inbounds nuw i8, ptr %2, i64 8 %3 = load ptr, ptr %all_names_.i, align 8 @@ -11780,6 +11778,7 @@ invoke.cont16: ; preds = %invoke.cont12 to label %invoke.cont18 unwind label %lpad invoke.cont18: ; preds = %invoke.cont16 + %add = add nuw nsw i32 %line, 1 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %v.addr.i) store i32 %add, ptr %v.addr.i, align 4 %call.i12 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN4absl12lts_2023080212log_internal10LogMessagelsIiTnNSt9enable_ifIXntsr16strings_internal16HasAbslStringifyIT_EE5valueEiE4typeELi0EEERS2_RKS5_(ptr noundef nonnull align 8 dereferenceable(16) %call17, ptr noundef nonnull align 4 dereferenceable(4) %v.addr.i) @@ -11791,6 +11790,7 @@ invoke.cont20: ; preds = %invoke.cont18 to label %invoke.cont22 unwind label %lpad invoke.cont22: ; preds = %invoke.cont20 + %add24 = add nsw i32 %col, 1 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %v.addr.i14) store i32 %add24, ptr %v.addr.i14, align 4 %call.i15 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN4absl12lts_2023080212log_internal10LogMessagelsIiTnNSt9enable_ifIXntsr16strings_internal16HasAbslStringifyIT_EE5valueEiE4typeELi0EEERS2_RKS5_(ptr noundef nonnull align 8 dereferenceable(16) %call.i12, ptr noundef nonnull align 4 dereferenceable(4) %v.addr.i14) @@ -11825,18 +11825,19 @@ for.inc36: ; preds = %invoke.cont31 call void @_ZN4absl12lts_2023080212log_internal10LogMessageD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp) #41 br label %if.end85 -land.rhs46.lr.ph: ; preds = %if.then +land.rhs46: ; preds = %if.then %call47 = tail call noundef zeroext i1 @_ZN4absl12lts_2023080212log_internal17LogEveryPow2State9ShouldLogEv(ptr noundef nonnull align 4 dereferenceable(4) @_ZZN6google8protobuf10TextFormat6Parser10ParserImpl13ReportWarningEiiSt17basic_string_viewIcSt11char_traitsIcEEE42absl_log_internal_stateful_condition_state_0) br i1 %call47, label %for.body54, label %if.end85 -for.body54: ; preds = %land.rhs46.lr.ph +for.body54: ; preds = %land.rhs46 %5 = load atomic i32, ptr @_ZZN6google8protobuf10TextFormat6Parser10ParserImpl13ReportWarningEiiSt17basic_string_viewIcSt11char_traitsIcEEE42absl_log_internal_stateful_condition_state_0 monotonic, align 4 call void @_ZN4absl12lts_2023080212log_internal10LogMessageC1EPKciNS2_10WarningTagE(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp55, ptr noundef nonnull @.str.13, i32 noundef 440) #40 invoke void @_ZN4absl12lts_2023080212log_internal10LogMessage19CopyToEncodedBufferILNS2_10StringTypeE0EEEvSt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp55, i64 28, ptr nonnull @.str.36) to label %invoke.cont60 unwind label %lpad57 invoke.cont60: ; preds = %for.body54 - %6 = load ptr, ptr %root_message_type_, align 8 + %root_message_type_62 = getelementptr inbounds nuw i8, ptr %this, i64 232 + %6 = load ptr, ptr %root_message_type_62, align 8 %all_names_.i23 = getelementptr inbounds nuw i8, ptr %6, i64 8 %7 = load ptr, ptr %all_names_.i23, align 8 %arrayidx.i24 = getelementptr inbounds nuw i8, ptr %7, i64 32 @@ -11862,7 +11863,7 @@ invoke.cont71: ; preds = %invoke.cont69 %call75 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZN4absl12lts_2023080212log_internal10LogMessagelsESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(16) %call.i28, i64 %message.coerce0, ptr %message.coerce1) to label %for.inc78 unwind label %lpad57 -lpad57: ; preds = %invoke.cont60, %invoke.cont71, %for.body54, %invoke.cont65, %invoke.cont67, %invoke.cont69 +lpad57: ; preds = %invoke.cont69, %invoke.cont67, %invoke.cont65, %for.body54, %invoke.cont71, %invoke.cont60 %8 = landingpad { ptr, i32 } cleanup br label %eh.resume @@ -11878,7 +11879,7 @@ if.else82: ; preds = %entry tail call void %9(ptr noundef nonnull align 8 dereferenceable(8) %0, i32 noundef %line, i32 noundef %col, i64 %message.coerce0, ptr %message.coerce1) br label %if.end85 -if.end85: ; preds = %for.inc36, %land.rhs, %land.rhs46.lr.ph, %for.inc78, %if.else82 +if.end85: ; preds = %land.rhs46, %for.inc78, %land.rhs, %for.inc36, %if.else82 ret void eh.resume: ; preds = %lpad57, %lpad diff --git a/bench/pyo3-rs/optimized/4z0qp503bgjcdxcv.ll b/bench/pyo3-rs/optimized/4z0qp503bgjcdxcv.ll index abd80dd0bb5..ae75c699bd2 100644 --- a/bench/pyo3-rs/optimized/4z0qp503bgjcdxcv.ll +++ b/bench/pyo3-rs/optimized/4z0qp503bgjcdxcv.ll @@ -2522,7 +2522,7 @@ define void @_ZN19pyo3_macros_backend7pyclass14build_py_class17h61d04a95beddccc3 %59 = invoke { ptr, ptr } @_ZN3syn8generics8Generics9lifetimes17hf564824de648d700E(ptr nonnull align 8 %58) to label %63 unwind label %61 -60: ; preds = %.loopexit51 +60: ; preds = %.loopexit47 %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup br label %54 @@ -2575,9 +2575,9 @@ define void @_ZN19pyo3_macros_backend7pyclass14build_py_class17h61d04a95beddccc3 to label %79 unwind label %61 .sink.split: ; preds = %187, %128, %121, %116, %104 - %.sink65 = phi ptr [ %107, %104 ], [ %119, %116 ], [ %19, %121 ], [ %18, %128 ], [ %23, %187 ] + %.sink61 = phi ptr [ %107, %104 ], [ %119, %116 ], [ %19, %121 ], [ %18, %128 ], [ %23, %187 ] %78 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %78, ptr noundef nonnull align 8 dereferenceable(24) %.sink65, i64 24, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %78, ptr noundef nonnull align 8 dereferenceable(24) %.sink61, i64 24, i1 false) store i64 -9223372036854775807, ptr %0, align 8 br label %79 @@ -2648,7 +2648,7 @@ define void @_ZN19pyo3_macros_backend7pyclass14build_py_class17h61d04a95beddccc3 %110 = getelementptr inbounds nuw i8, ptr %2, i64 136 %111 = load i32, ptr %110, align 8 %112 = icmp eq i32 %111, 1 - br i1 %112, label %134, label %.loopexit55 + br i1 %112, label %134, label %.loopexit51 113: ; preds = %94 %114 = extractvalue { ptr, ptr } %96, 0 @@ -2698,11 +2698,11 @@ define void @_ZN19pyo3_macros_backend7pyclass14build_py_class17h61d04a95beddccc3 %137 = invoke { ptr, ptr } @"_ZN102_$LT$$RF$mut$u20$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h31d2120fbf7e91caE"(ptr nonnull align 8 %22) to label %141 unwind label %.loopexit.split-lp.loopexit.split-lp -.loopexit55: ; preds = %147, %109 +.loopexit51: ; preds = %147, %109 %138 = getelementptr inbounds nuw i8, ptr %2, i64 184 %139 = load i32, ptr %138, align 8 %140 = icmp eq i32 %139, 1 - br i1 %140, label %160, label %.loopexit51 + br i1 %140, label %160, label %.loopexit47 141: ; preds = %134 %142 = extractvalue { ptr, ptr } %137, 0 @@ -2718,7 +2718,7 @@ define void @_ZN19pyo3_macros_backend7pyclass14build_py_class17h61d04a95beddccc3 147: ; preds = %145 %148 = icmp eq ptr %146, null - br i1 %148, label %.loopexit55, label %149 + br i1 %148, label %.loopexit51, label %149 149: ; preds = %147 %150 = getelementptr inbounds nuw i8, ptr %146, i64 8 @@ -2742,20 +2742,20 @@ define void @_ZN19pyo3_macros_backend7pyclass14build_py_class17h61d04a95beddccc3 to label %158 unwind label %.loopexit.split-lp.loopexit.split-lp 158: ; preds = %157, %181 - %.sink66 = phi ptr [ %12, %181 ], [ %15, %157 ] + %.sink62 = phi ptr [ %12, %181 ], [ %15, %157 ] %159 = getelementptr inbounds nuw i8, ptr %0, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %159, ptr noundef nonnull align 8 dereferenceable(24) %.sink66, i64 24, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %159, ptr noundef nonnull align 8 dereferenceable(24) %.sink62, i64 24, i1 false) store i64 -9223372036854775807, ptr %0, align 8 invoke void @"_ZN4core3ptr121drop_in_place$LT$alloc..vec..Vec$LT$$LP$$RF$syn..data..Field$C$pyo3_macros_backend..pyclass..FieldPyO3Options$RP$$GT$$GT$17h0f9c144e860dd2bbE"(ptr nonnull align 8 %22) to label %79 unwind label %61 -160: ; preds = %.loopexit55 +160: ; preds = %.loopexit51 %161 = getelementptr inbounds nuw i8, ptr %2, i64 188 %162 = load i32, ptr %161, align 4 %163 = invoke { ptr, ptr } @"_ZN102_$LT$$RF$mut$u20$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h31d2120fbf7e91caE"(ptr nonnull align 8 %22) to label %165 unwind label %.loopexit.split-lp.loopexit.split-lp -.loopexit51: ; preds = %171, %.loopexit55 +.loopexit47: ; preds = %171, %.loopexit51 %164 = getelementptr inbounds nuw i8, ptr %1, i64 208 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %11, ptr noundef nonnull align 8 dereferenceable(72) %27, i64 72, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, ptr noundef nonnull align 8 dereferenceable(24) %22, i64 24, i1 false) @@ -2776,7 +2776,7 @@ define void @_ZN19pyo3_macros_backend7pyclass14build_py_class17h61d04a95beddccc3 171: ; preds = %169 %172 = icmp eq ptr %170, null - br i1 %172, label %.loopexit51, label %173 + br i1 %172, label %.loopexit47, label %173 173: ; preds = %171 %174 = getelementptr inbounds nuw i8, ptr %170, i64 16 @@ -2809,17 +2809,17 @@ define void @_ZN19pyo3_macros_backend7pyclass14build_py_class17h61d04a95beddccc3 br label %.loopexit.split-lp .loopexit.split-lp.loopexit: ; preds = %145 - %lpad.loopexit52 = landingpad { ptr, i32 } + %lpad.loopexit48 = landingpad { ptr, i32 } cleanup br label %.loopexit.split-lp .loopexit.split-lp.loopexit.split-lp: ; preds = %181, %178, %160, %157, %154, %134 - %lpad.loopexit.split-lp53 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp49 = landingpad { ptr, i32 } cleanup br label %.loopexit.split-lp .loopexit.split-lp: ; preds = %.loopexit.split-lp.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit52, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp53, %.loopexit.split-lp.loopexit.split-lp ] + %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit48, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp49, %.loopexit.split-lp.loopexit.split-lp ] invoke void @"_ZN4core3ptr121drop_in_place$LT$alloc..vec..Vec$LT$$LP$$RF$syn..data..Field$C$pyo3_macros_backend..pyclass..FieldPyO3Options$RP$$GT$$GT$17h0f9c144e860dd2bbE"(ptr nonnull align 8 %22) #14 to label %.thread unwind label %183 @@ -2837,12 +2837,12 @@ define void @_ZN19pyo3_macros_backend7pyclass14build_py_class17h61d04a95beddccc3 invoke void @_ZN3syn5error5Error3new17h0915185c7da90245E(ptr nonnull sret([24 x i8]) align 8 %23, i32 %186, ptr nonnull align 1 @anon.16a1457f15a8bdd65dd860daa07f2c8d.30, i64 122) to label %.sink.split unwind label %61 -.invoke: ; preds = %79, %.loopexit51 +.invoke: ; preds = %79, %.loopexit47 invoke void @"_ZN4core3ptr52drop_in_place$LT$pyo3_macros_backend..utils..Ctx$GT$17hccc8b41e50c8ff50E"(ptr nonnull align 8 %28) to label %182 unwind label %41 .thread: ; preds = %.loopexit.split-lp, %68, %61 - %.pn41 = phi { ptr, i32 } [ %69, %68 ], [ %62, %61 ], [ %lpad.phi, %.loopexit.split-lp ] + %.pn41 = phi { ptr, i32 } [ %lpad.phi, %.loopexit.split-lp ], [ %69, %68 ], [ %62, %61 ] invoke void @"_ZN4core3ptr58drop_in_place$LT$pyo3_macros_backend..utils..PythonDoc$GT$17h7e63866d37bbf73dE"(ptr nonnull align 8 %27) #14 to label %54 unwind label %183 @@ -6599,12 +6599,11 @@ _ZN19pyo3_macros_backend7pyclass19PyClassImplsBuilder3doc17h25ee8c37c895cbd4E.ex br i1 %718, label %720, label %719 719: ; preds = %720, %717 - %.sroa.041.23.i.i = phi i8 [ %.sroa.041.14.i.i, %720 ], [ %.sroa.041.22.i.i, %717 ] + %.sroa.041.23.i.i = phi i8 [ 1, %720 ], [ %.sroa.041.22.i.i, %717 ] invoke void @"_ZN4core3ptr42drop_in_place$LT$syn..item..ImplItemFn$GT$17ha2b11de006741d53E"(ptr nonnull align 8 %80) to label %725 unwind label %368, !noalias !33 720: ; preds = %717, %605 - %.sroa.041.14.i.i = phi i8 [ %.sroa.041.22.i.i, %717 ], [ 1, %605 ] invoke void @"_ZN4core3ptr68drop_in_place$LT$pyo3_macros_backend..pymethod..MethodAndSlotDef$GT$17ha60d4368f5a57fd3E"(ptr nonnull align 8 %79) to label %719 unwind label %723, !noalias !33 @@ -6613,8 +6612,8 @@ _ZN19pyo3_macros_backend7pyclass19PyClassImplsBuilder3doc17h25ee8c37c895cbd4E.ex to label %714 unwind label %708, !noalias !33 722: ; preds = %.body117.thread.i.i, %723, %.body117.i.i - %.sroa.039.4.i.i = phi i8 [ %.sroa.039.3171.i.i, %.body117.thread.i.i ], [ %.sroa.039.3.i.i, %.body117.i.i ], [ %.sroa.041.14.i.i, %723 ] - %.sroa.041.12.i.i = phi i8 [ %.sroa.041.11172.i.i, %.body117.thread.i.i ], [ %.sroa.041.11.i.i, %.body117.i.i ], [ %.sroa.041.14.i.i, %723 ] + %.sroa.039.4.i.i = phi i8 [ 1, %.body117.thread.i.i ], [ %.sroa.039.3.i.i, %.body117.i.i ], [ 1, %723 ] + %.sroa.041.12.i.i = phi i8 [ %.sroa.041.11172.i.i, %.body117.thread.i.i ], [ %.sroa.041.11.i.i, %.body117.i.i ], [ 1, %723 ] %.pn91.pn.i.i = phi { ptr, i32 } [ %.pn91173.i.i, %.body117.thread.i.i ], [ %.pn91.i.i, %.body117.i.i ], [ %724, %723 ] invoke void @"_ZN4core3ptr42drop_in_place$LT$syn..item..ImplItemFn$GT$17ha2b11de006741d53E"(ptr nonnull align 8 %80) #14 to label %366 unwind label %708, !noalias !33 @@ -6637,7 +6636,7 @@ _ZN19pyo3_macros_backend7pyclass19PyClassImplsBuilder3doc17h25ee8c37c895cbd4E.ex to label %727 unwind label %730, !noalias !33 729: ; preds = %.thread129.i.i, %730, %366 - %.sroa.041.9.i.i = phi i8 [ %.sroa.041.8133.i.i, %.thread129.i.i ], [ %.sroa.041.8.i.i, %366 ], [ %.sroa.041.23.i.i, %730 ] + %.sroa.041.9.i.i = phi i8 [ %.sroa.041.8133.i.i, %.thread129.i.i ], [ %.sroa.041.8.i.i, %366 ], [ 1, %730 ] %.pn94.pn.i.i = phi { ptr, i32 } [ %.pn94134.i.i, %.thread129.i.i ], [ %.pn94.i.i, %366 ], [ %731, %730 ] invoke void @"_ZN4core3ptr42drop_in_place$LT$syn..item..ImplItemFn$GT$17ha2b11de006741d53E"(ptr nonnull align 8 %96) #14 to label %299 unwind label %708, !noalias !33 @@ -6655,7 +6654,6 @@ _ZN19pyo3_macros_backend7pyclass19PyClassImplsBuilder3doc17h25ee8c37c895cbd4E.ex .body117.thread.i.i: ; preds = %.body117.i.i, %433 %.pn91173.i.i = phi { ptr, i32 } [ %.pn91.i.i, %.body117.i.i ], [ %.pn38.i.i.i, %433 ] %.sroa.041.11172.i.i = phi i8 [ %.sroa.041.11.i.i, %.body117.i.i ], [ 1, %433 ] - %.sroa.039.3171.i.i = phi i8 [ %.sroa.039.3.i.i, %.body117.i.i ], [ 1, %433 ] invoke void @"_ZN4core3ptr68drop_in_place$LT$pyo3_macros_backend..pymethod..MethodAndSlotDef$GT$17ha60d4368f5a57fd3E"(ptr nonnull align 8 %79) #14 to label %722 unwind label %708, !noalias !33 @@ -12812,7 +12810,7 @@ _ZN19pyo3_macros_backend7pyclass36impl_complex_enum_struct_variant_cls17h006e09e to label %492 unwind label %612, !noalias !72 .body.i: ; preds = %959, %937, %624, %619 - %.sroa.020.0.i = phi i8 [ %.sroa.020.4.i, %959 ], [ %.sroa.020.4.i, %937 ], [ 1, %619 ], [ 1, %624 ] + %.sroa.020.0.i = phi i8 [ 1, %959 ], [ %.sroa.020.4.i, %937 ], [ 1, %619 ], [ 1, %624 ] %.pn65.pn.i = phi { ptr, i32 } [ %.pn65.i, %959 ], [ %.pn65.i, %937 ], [ %.pn46.pn.pn.pn.i.i, %619 ], [ %625, %624 ] invoke void @"_ZN4core3ptr57drop_in_place$LT$alloc..vec..Vec$LT$syn..ty..Type$GT$$GT$17h27e10c2f9cf3a112E"(ptr nonnull align 8 %107) #14 to label %942 unwind label %950, !noalias !69 diff --git a/bench/qemu/optimized/block_vhdx.c.ll b/bench/qemu/optimized/block_vhdx.c.ll index 5900720ca0b..a654c544030 100644 --- a/bench/qemu/optimized/block_vhdx.c.ll +++ b/bench/qemu/optimized/block_vhdx.c.ll @@ -1966,7 +1966,7 @@ if.then37: ; preds = %if.end29 sw.bb60: ; preds = %if.then12, %if.then37, %if.end29, %if.else %sinfo.sroa.21.0 = phi i64 [ %sinfo.sroa.21.1, %if.else ], [ %sinfo.sroa.21.2, %if.then37 ], [ %sinfo.sroa.21.2, %if.end29 ], [ %add, %if.then12 ] %bat_entry_offset.1 = phi i64 [ %bat_entry_offset.0, %if.else ], [ %add.i49, %if.then37 ], [ %add.i49, %if.end29 ], [ %add.i49, %if.then12 ] - %use_zero_buffers.1 = phi i8 [ 0, %if.else ], [ %use_zero_buffers.2, %if.then37 ], [ %use_zero_buffers.2, %if.end29 ], [ %use_zero_buffers.2, %if.then12 ] + %use_zero_buffers.1 = phi i1 [ false, %if.else ], [ true, %if.then37 ], [ true, %if.end29 ], [ false, %if.then12 ] %sectors_to_write.0 = phi i32 [ %spec.select, %if.else ], [ %conv57, %if.then37 ], [ %sectors_to_write.1, %if.end29 ], [ %spec.select, %if.then12 ] %bat_prior_offset.1 = phi i64 [ %bat_prior_offset.0, %if.else ], [ %sinfo.sroa.21.1, %if.then37 ], [ %sinfo.sroa.21.1, %if.end29 ], [ %sinfo.sroa.21.1, %if.then12 ] %bat_update.0 = phi i1 [ false, %if.else ], [ true, %if.then37 ], [ true, %if.end29 ], [ true, %if.then12 ] @@ -1974,8 +1974,7 @@ sw.bb60: ; preds = %if.then12, %if.then br i1 %cmp62, label %error_bat_restore, label %if.end65 if.end65: ; preds = %sw.bb60 - %tobool66 = trunc i8 %use_zero_buffers.1 to i1 - br i1 %tobool66, label %if.end70, label %if.then67 + br i1 %use_zero_buffers.1, label %if.end70, label %if.then67 if.then67: ; preds = %if.end65 %conv69 = zext i32 %shl16.i to i64 diff --git a/bench/quantlib/optimized/blackcallablebondengine.ll b/bench/quantlib/optimized/blackcallablebondengine.ll index 292757800a0..79e7ae55cac 100644 --- a/bench/quantlib/optimized/blackcallablebondengine.ll +++ b/bench/quantlib/optimized/blackcallablebondengine.ll @@ -7448,7 +7448,7 @@ lor.lhs.false: ; preds = %do.body29 %extrapolate_.i = getelementptr inbounds nuw i8, ptr %this, i64 8 %21 = load i8, ptr %extrapolate_.i, align 8, !tbaa !166, !range !26, !noundef !27 %loadedv.i = trunc nuw i8 %21 to i1 - br i1 %loadedv.i, label %lor.lhs.false87, label %lor.lhs.false32 + br i1 %loadedv.i, label %do.end155, label %lor.lhs.false32 lor.lhs.false32: ; preds = %lor.lhs.false %vtable = load ptr, ptr %this, align 8, !tbaa !35 @@ -7456,11 +7456,7 @@ lor.lhs.false32: ; preds = %lor.lhs.false %22 = load ptr, ptr %vfn, align 8 %call33 = tail call noundef double %22(ptr noundef nonnull align 8 dereferenceable(68) %this) %cmp34 = fcmp ugt double %bondLength, %call33 - br i1 %cmp34, label %if.then35, label %lor.lhs.false32.lor.lhs.false87_crit_edge - -lor.lhs.false32.lor.lhs.false87_crit_edge: ; preds = %lor.lhs.false32 - %.pre = load i8, ptr %extrapolate_.i, align 8, !tbaa !166, !range !26 - br label %lor.lhs.false87 + br i1 %cmp34, label %if.then35, label %lor.lhs.false87 if.then35: ; preds = %lor.lhs.false32 call void @llvm.lifetime.start.p0(i64 376, ptr nonnull %_ql_msg_stream36) #25 @@ -7641,24 +7637,24 @@ ehcleanup81: ; preds = %_ZNKSt7__cxx1112bas call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %_ql_msg_stream36) #25 br label %eh.resume -lor.lhs.false87: ; preds = %lor.lhs.false32.lor.lhs.false87_crit_edge, %lor.lhs.false - %45 = phi i8 [ %.pre, %lor.lhs.false32.lor.lhs.false87_crit_edge ], [ %21, %lor.lhs.false ] - %loadedv.i77 = trunc nuw i8 %45 to i1 +lor.lhs.false87: ; preds = %lor.lhs.false32 + %.pre = load i8, ptr %extrapolate_.i, align 8, !tbaa !166, !range !26 + %loadedv.i77 = trunc nuw i8 %.pre to i1 br i1 %loadedv.i77, label %do.end155, label %lor.lhs.false89 lor.lhs.false89: ; preds = %lor.lhs.false87 %vtable90 = load ptr, ptr %this, align 8, !tbaa !35 %vfn91 = getelementptr inbounds nuw i8, ptr %vtable90, i64 96 - %46 = load ptr, ptr %vfn91, align 8 - %call92 = tail call noundef double %46(ptr noundef nonnull align 8 dereferenceable(68) %this) + %45 = load ptr, ptr %vfn91, align 8 + %call92 = tail call noundef double %45(ptr noundef nonnull align 8 dereferenceable(68) %this) %cmp93 = fcmp ult double %k, %call92 br i1 %cmp93, label %if.then98, label %land.lhs.true land.lhs.true: ; preds = %lor.lhs.false89 %vtable94 = load ptr, ptr %this, align 8, !tbaa !35 %vfn95 = getelementptr inbounds nuw i8, ptr %vtable94, i64 104 - %47 = load ptr, ptr %vfn95, align 8 - %call96 = tail call noundef double %47(ptr noundef nonnull align 8 dereferenceable(68) %this) + %46 = load ptr, ptr %vfn95, align 8 + %call96 = tail call noundef double %46(ptr noundef nonnull align 8 dereferenceable(68) %this) %cmp97 = fcmp ugt double %k, %call96 br i1 %cmp97, label %if.then98, label %do.end155 @@ -7679,8 +7675,8 @@ invoke.cont103: ; preds = %invoke.cont101 invoke.cont105: ; preds = %invoke.cont103 %vtable107 = load ptr, ptr %this, align 8, !tbaa !35 %vfn108 = getelementptr inbounds nuw i8, ptr %vtable107, i64 96 - %48 = load ptr, ptr %vfn108, align 8 - %call110 = invoke noundef double %48(ptr noundef nonnull align 8 dereferenceable(68) %this) + %47 = load ptr, ptr %vfn108, align 8 + %call110 = invoke noundef double %47(ptr noundef nonnull align 8 dereferenceable(68) %this) to label %invoke.cont109 unwind label %lpad100 invoke.cont109: ; preds = %invoke.cont105 @@ -7694,8 +7690,8 @@ invoke.cont111: ; preds = %invoke.cont109 invoke.cont113: ; preds = %invoke.cont111 %vtable115 = load ptr, ptr %this, align 8, !tbaa !35 %vfn116 = getelementptr inbounds nuw i8, ptr %vtable115, i64 104 - %49 = load ptr, ptr %vfn116, align 8 - %call118 = invoke noundef double %49(ptr noundef nonnull align 8 dereferenceable(68) %this) + %48 = load ptr, ptr %vfn116, align 8 + %call118 = invoke noundef double %48(ptr noundef nonnull align 8 dereferenceable(68) %this) to label %invoke.cont117 unwind label %lpad100 invoke.cont117: ; preds = %invoke.cont113 @@ -7733,114 +7729,114 @@ invoke.cont136: ; preds = %invoke.cont134 to label %unreachable unwind label %lpad135 lpad100: ; preds = %invoke.cont119, %invoke.cont117, %invoke.cont111, %invoke.cont109, %invoke.cont103, %invoke.cont101, %if.then98, %invoke.cont113, %invoke.cont105 - %50 = landingpad { ptr, i32 } + %49 = landingpad { ptr, i32 } cleanup br label %ehcleanup152 ehcleanup145.thread: ; preds = %invoke.cont121 - %51 = landingpad { ptr, i32 } + %50 = landingpad { ptr, i32 } cleanup br label %cleanup.action150.sink.split lpad133: ; preds = %invoke.cont131 - %52 = landingpad { ptr, i32 } + %51 = landingpad { ptr, i32 } cleanup br label %ehcleanup139 lpad135: ; preds = %invoke.cont136, %invoke.cont134 %cleanup.isactive137.0 = phi i1 [ false, %invoke.cont136 ], [ true, %invoke.cont134 ] - %53 = landingpad { ptr, i32 } + %52 = landingpad { ptr, i32 } cleanup - %54 = load ptr, ptr %ref.tmp132, align 8, !tbaa !31 - %55 = getelementptr inbounds nuw i8, ptr %ref.tmp132, i64 16 - %cmp.i.i.i96 = icmp eq ptr %54, %55 + %53 = load ptr, ptr %ref.tmp132, align 8, !tbaa !31 + %54 = getelementptr inbounds nuw i8, ptr %ref.tmp132, i64 16 + %cmp.i.i.i96 = icmp eq ptr %53, %54 br i1 %cmp.i.i.i96, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i99, label %if.then.i.i97 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i99: ; preds = %lpad135 %_M_string_length.i.i.i100 = getelementptr inbounds nuw i8, ptr %ref.tmp132, i64 8 - %56 = load i64, ptr %_M_string_length.i.i.i100, align 8, !tbaa !34 - %cmp3.i.i.i101 = icmp ult i64 %56, 16 + %55 = load i64, ptr %_M_string_length.i.i.i100, align 8, !tbaa !34 + %cmp3.i.i.i101 = icmp ult i64 %55, 16 call void @llvm.assume(i1 %cmp3.i.i.i101) br label %ehcleanup139 if.then.i.i97: ; preds = %lpad135 - %57 = load i64, ptr %55, align 8, !tbaa !33 - %add.i.i.i98 = add i64 %57, 1 - call void @_ZdlPvm(ptr noundef %54, i64 noundef %add.i.i.i98) #30 + %56 = load i64, ptr %54, align 8, !tbaa !33 + %add.i.i.i98 = add i64 %56, 1 + call void @_ZdlPvm(ptr noundef %53, i64 noundef %add.i.i.i98) #30 br label %ehcleanup139 ehcleanup139: ; preds = %if.then.i.i97, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i99, %lpad133 - %.pn17 = phi { ptr, i32 } [ %52, %lpad133 ], [ %53, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i99 ], [ %53, %if.then.i.i97 ] + %.pn17 = phi { ptr, i32 } [ %51, %lpad133 ], [ %52, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i99 ], [ %52, %if.then.i.i97 ] %cleanup.isactive137.3 = phi i1 [ true, %lpad133 ], [ %cleanup.isactive137.0, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i99 ], [ %cleanup.isactive137.0, %if.then.i.i97 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp132) #25 - %58 = load ptr, ptr %ref.tmp128, align 8, !tbaa !31 - %59 = getelementptr inbounds nuw i8, ptr %ref.tmp128, i64 16 - %cmp.i.i.i103 = icmp eq ptr %58, %59 + %57 = load ptr, ptr %ref.tmp128, align 8, !tbaa !31 + %58 = getelementptr inbounds nuw i8, ptr %ref.tmp128, i64 16 + %cmp.i.i.i103 = icmp eq ptr %57, %58 br i1 %cmp.i.i.i103, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i106, label %if.then.i.i104 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i106: ; preds = %ehcleanup139 %_M_string_length.i.i.i107 = getelementptr inbounds nuw i8, ptr %ref.tmp128, i64 8 - %60 = load i64, ptr %_M_string_length.i.i.i107, align 8, !tbaa !34 - %cmp3.i.i.i108 = icmp ult i64 %60, 16 + %59 = load i64, ptr %_M_string_length.i.i.i107, align 8, !tbaa !34 + %cmp3.i.i.i108 = icmp ult i64 %59, 16 call void @llvm.assume(i1 %cmp3.i.i.i108) br label %ehcleanup141 if.then.i.i104: ; preds = %ehcleanup139 - %61 = load i64, ptr %59, align 8, !tbaa !33 - %add.i.i.i105 = add i64 %61, 1 - call void @_ZdlPvm(ptr noundef %58, i64 noundef %add.i.i.i105) #30 + %60 = load i64, ptr %58, align 8, !tbaa !33 + %add.i.i.i105 = add i64 %60, 1 + call void @_ZdlPvm(ptr noundef %57, i64 noundef %add.i.i.i105) #30 br label %ehcleanup141 ehcleanup141: ; preds = %if.then.i.i104, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i106 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp129) #25 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp128) #25 - %62 = load ptr, ptr %ref.tmp124, align 8, !tbaa !31 - %63 = getelementptr inbounds nuw i8, ptr %ref.tmp124, i64 16 - %cmp.i.i.i110 = icmp eq ptr %62, %63 + %61 = load ptr, ptr %ref.tmp124, align 8, !tbaa !31 + %62 = getelementptr inbounds nuw i8, ptr %ref.tmp124, i64 16 + %cmp.i.i.i110 = icmp eq ptr %61, %62 br i1 %cmp.i.i.i110, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i113, label %ehcleanup145 ehcleanup141.thread: ; preds = %invoke.cont127 - %64 = landingpad { ptr, i32 } + %63 = landingpad { ptr, i32 } cleanup call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp129) #25 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp128) #25 - %65 = load ptr, ptr %ref.tmp124, align 8, !tbaa !31 - %66 = getelementptr inbounds nuw i8, ptr %ref.tmp124, i64 16 - %cmp.i.i.i110158 = icmp eq ptr %65, %66 + %64 = load ptr, ptr %ref.tmp124, align 8, !tbaa !31 + %65 = getelementptr inbounds nuw i8, ptr %ref.tmp124, i64 16 + %cmp.i.i.i110158 = icmp eq ptr %64, %65 br i1 %cmp.i.i.i110158, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i113.thread, label %ehcleanup145.thread167 ehcleanup145.thread167: ; preds = %ehcleanup141.thread - %67 = load i64, ptr %66, align 8, !tbaa !33 - %add.i.i.i112170 = add i64 %67, 1 - call void @_ZdlPvm(ptr noundef %65, i64 noundef %add.i.i.i112170) #30 + %66 = load i64, ptr %65, align 8, !tbaa !33 + %add.i.i.i112170 = add i64 %66, 1 + call void @_ZdlPvm(ptr noundef %64, i64 noundef %add.i.i.i112170) #30 br label %cleanup.action150.sink.split _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i113.thread: ; preds = %ehcleanup141.thread %_M_string_length.i.i.i114165 = getelementptr inbounds nuw i8, ptr %ref.tmp124, i64 8 - %68 = load i64, ptr %_M_string_length.i.i.i114165, align 8, !tbaa !34 - %cmp3.i.i.i115166 = icmp ult i64 %68, 16 + %67 = load i64, ptr %_M_string_length.i.i.i114165, align 8, !tbaa !34 + %cmp3.i.i.i115166 = icmp ult i64 %67, 16 call void @llvm.assume(i1 %cmp3.i.i.i115166) br label %cleanup.action150.sink.split _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i113: ; preds = %ehcleanup141 %_M_string_length.i.i.i114 = getelementptr inbounds nuw i8, ptr %ref.tmp124, i64 8 - %69 = load i64, ptr %_M_string_length.i.i.i114, align 8, !tbaa !34 - %cmp3.i.i.i115 = icmp ult i64 %69, 16 + %68 = load i64, ptr %_M_string_length.i.i.i114, align 8, !tbaa !34 + %cmp3.i.i.i115 = icmp ult i64 %68, 16 call void @llvm.assume(i1 %cmp3.i.i.i115) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp125) #25 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp124) #25 br i1 %cleanup.isactive137.3, label %cleanup.action150, label %ehcleanup152 ehcleanup145: ; preds = %ehcleanup141 - %70 = load i64, ptr %63, align 8, !tbaa !33 - %add.i.i.i112 = add i64 %70, 1 - call void @_ZdlPvm(ptr noundef %62, i64 noundef %add.i.i.i112) #30 + %69 = load i64, ptr %62, align 8, !tbaa !33 + %add.i.i.i112 = add i64 %69, 1 + call void @_ZdlPvm(ptr noundef %61, i64 noundef %add.i.i.i112) #30 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp125) #25 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp124) #25 br i1 %cleanup.isactive137.3, label %cleanup.action150, label %ehcleanup152 cleanup.action150.sink.split: ; preds = %ehcleanup145.thread, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i113.thread, %ehcleanup145.thread167 - %.pn17.pn.pn125.ph = phi { ptr, i32 } [ %64, %ehcleanup145.thread167 ], [ %64, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i113.thread ], [ %51, %ehcleanup145.thread ] + %.pn17.pn.pn125.ph = phi { ptr, i32 } [ %63, %ehcleanup145.thread167 ], [ %63, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i113.thread ], [ %50, %ehcleanup145.thread ] call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp125) #25 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp124) #25 br label %cleanup.action150 @@ -7851,12 +7847,12 @@ cleanup.action150: ; preds = %cleanup.action150.s br label %ehcleanup152 ehcleanup152: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i113, %ehcleanup145, %cleanup.action150, %lpad100 - %.pn17.pn.pn.pn = phi { ptr, i32 } [ %.pn17.pn.pn125, %cleanup.action150 ], [ %.pn17, %ehcleanup145 ], [ %50, %lpad100 ], [ %.pn17, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i113 ] + %.pn17.pn.pn.pn = phi { ptr, i32 } [ %.pn17.pn.pn125, %cleanup.action150 ], [ %.pn17, %ehcleanup145 ], [ %49, %lpad100 ], [ %.pn17, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i113 ] call void @_ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(112) %_ql_msg_stream99) #25 call void @llvm.lifetime.end.p0(i64 376, ptr nonnull %_ql_msg_stream99) #25 br label %eh.resume -do.end155: ; preds = %do.body29, %lor.lhs.false87, %land.lhs.true +do.end155: ; preds = %lor.lhs.false, %do.body29, %lor.lhs.false87, %land.lhs.true ret void eh.resume: ; preds = %ehcleanup152, %ehcleanup81, %ehcleanup27 diff --git a/bench/redis/optimized/redis-benchmark.ll b/bench/redis/optimized/redis-benchmark.ll index 1b44ee11ff6..d094a243282 100644 --- a/bench/redis/optimized/redis-benchmark.ll +++ b/bench/redis/optimized/redis-benchmark.ll @@ -19684,27 +19684,24 @@ if.end24: ; preds = %lor.lhs.false21 %tobool25.not = icmp eq ptr %5, null %spec.store.select = select i1 %tobool25.not, ptr @.str.16420, ptr %5 %call30 = call ptr @hi_sdsnew(ptr noundef nonnull %spec.store.select) #22 - br i1 %i.051, label %sw.bb29, label %sw.bb + br i1 %i.051, label %for.inc.thread, label %for.inc -sw.bb: ; preds = %if.end24 - store ptr %call30, ptr %call, align 8 - br label %for.inc - -sw.bb29: ; preds = %if.end24 +for.inc.thread: ; preds = %if.end24 store ptr %call30, ptr %appendonly, align 8 - br label %for.inc + br label %for.end -for.inc: ; preds = %sw.bb, %sw.bb29 +for.inc: ; preds = %if.end24 + store ptr %call30, ptr %call, align 8 br i1 %cmp6, label %for.body, label %for.end, !llvm.loop !24 -for.end: ; preds = %for.inc +for.end: ; preds = %for.inc, %for.inc.thread call void @freeReplyObject(ptr noundef nonnull %0) #22 call void @redisFree(ptr noundef nonnull %call1) #22 br label %return fail: ; preds = %if.end10 - %tobool31.not73 = icmp ne ptr %0, null - %tobool31.not.not = select i1 %cmp11, i1 %tobool31.not73, i1 false + %tobool31.not79 = icmp ne ptr %0, null + %tobool31.not.not = select i1 %cmp11, i1 %tobool31.not79, i1 false br i1 %tobool31.not.not, label %fail.land.lhs.truethread-pre-split_crit_edge, label %if.end49.critedge fail.land.lhs.truethread-pre-split_crit_edge: ; preds = %fail diff --git a/bench/ripgrep-rs/optimized/nfnpl33n8tyk5ff.ll b/bench/ripgrep-rs/optimized/nfnpl33n8tyk5ff.ll index 1535d605c33..924489de549 100644 --- a/bench/ripgrep-rs/optimized/nfnpl33n8tyk5ff.ll +++ b/bench/ripgrep-rs/optimized/nfnpl33n8tyk5ff.ll @@ -3434,13 +3434,13 @@ define hidden void @_ZN10grep_regex7literal9Extractor5cross17ha3d8d828850c808fE( %or.cond.i.i = select i1 %11, i1 true, i1 %13 br i1 %or.cond.i.i, label %.thread24, label %16 -"_ZN4core3ptr46drop_in_place$LT$grep_regex..literal..TSeq$GT$17h0e742d726d0d7ff3E.exit": ; preds = %57, %_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit, %8 +"_ZN4core3ptr46drop_in_place$LT$grep_regex..literal..TSeq$GT$17h0e742d726d0d7ff3E.exit": ; preds = %55, %_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit, %8 ret void .thread24: ; preds = %9 %14 = getelementptr inbounds nuw i8, ptr %1, i64 24 %15 = load i64, ptr %14, align 8, !alias.scope !675 - br label %29 + br label %.thread 16: ; preds = %9 %17 = getelementptr inbounds nuw i8, ptr %2, i64 16 @@ -3454,11 +3454,11 @@ define hidden void @_ZN10grep_regex7literal9Extractor5cross17ha3d8d828850c808fE( %24 = getelementptr inbounds nuw i8, ptr %1, i64 24 %25 = load i64, ptr %24, align 8, !alias.scope !678 %26 = icmp ugt i64 %spec.select.i.i.i, %25 - br i1 %26, label %27, label %29 + br i1 %26, label %27, label %.thread 27: ; preds = %16 invoke void @"_ZN4core3ptr79drop_in_place$LT$alloc..vec..Vec$LT$regex_syntax..hir..literal..Literal$GT$$GT$17h70e56acc68a6c55aE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3) - to label %_ZN10grep_regex7literal4TSeq13make_infinite17h9c40391a692e0855E.llvm.16979978850130570624.exit unwind label %.thread29 + to label %29 unwind label %.thread29 .thread29: ; preds = %27 %28 = landingpad { ptr, i32 } @@ -3466,113 +3466,109 @@ define hidden void @_ZN10grep_regex7literal9Extractor5cross17ha3d8d828850c808fE( store i64 -9223372036854775808, ptr %3, align 8, !alias.scope !680 br label %.noexc10 -_ZN10grep_regex7literal4TSeq13make_infinite17h9c40391a692e0855E.llvm.16979978850130570624.exit: ; preds = %27 +29: ; preds = %27 store i64 -9223372036854775808, ptr %3, align 8, !alias.scope !680 %.pre = load i8, ptr %5, align 8, !range !4, !alias.scope !685, !noalias !688 - br label %29 - -29: ; preds = %.thread24, %_ZN10grep_regex7literal4TSeq13make_infinite17h9c40391a692e0855E.llvm.16979978850130570624.exit, %16 - %30 = phi i8 [ %6, %.thread24 ], [ %.pre, %_ZN10grep_regex7literal4TSeq13make_infinite17h9c40391a692e0855E.llvm.16979978850130570624.exit ], [ %6, %16 ] - %31 = phi i64 [ %15, %.thread24 ], [ %25, %_ZN10grep_regex7literal4TSeq13make_infinite17h9c40391a692e0855E.llvm.16979978850130570624.exit ], [ %25, %16 ] - %32 = trunc nuw i8 %30 to i1 - br i1 %32, label %33, label %.invoke + %30 = trunc nuw i8 %.pre to i1 + br i1 %30, label %.thread, label %.invoke -33: ; preds = %29 +.thread: ; preds = %16, %.thread24, %29 + %31 = phi i64 [ %25, %29 ], [ %25, %16 ], [ %15, %.thread24 ] invoke void @_ZN12regex_syntax3hir7literal3Seq13cross_forward17h6ed1810ce3a857c4E.llvm.16979978850130570624(ptr noalias noundef nonnull align 8 dereferenceable(32) %2, ptr noalias noundef nonnull align 8 dereferenceable(32) %3) - to label %34 unwind label %58 - -34: ; preds = %33 - %35 = load i64, ptr %2, align 8, !range !20, !alias.scope !690, !noundef !8 - %.not = icmp eq i64 %35, -9223372036854775808 - %36 = getelementptr inbounds nuw i8, ptr %2, i64 16 - %37 = load i64, ptr %36, align 8, !alias.scope !690 - %38 = icmp ule i64 %37, %31 - %.0.in.i8 = select i1 %.not, i1 true, i1 %38 - br i1 %.0.in.i8, label %42, label %.invoke - -.invoke: ; preds = %34, %29 - %39 = phi ptr [ @anon.9f345ea5ff5620f0511f6a1a136ffe34.60.llvm.16979978850130570624, %29 ], [ @anon.9f345ea5ff5620f0511f6a1a136ffe34.57.llvm.16979978850130570624, %34 ] - %40 = phi i64 [ 30, %29 ], [ 68, %34 ] - %41 = phi ptr [ @anon.9f345ea5ff5620f0511f6a1a136ffe34.61.llvm.16979978850130570624, %29 ], [ @anon.9f345ea5ff5620f0511f6a1a136ffe34.58.llvm.16979978850130570624, %34 ] - invoke void @_ZN4core9panicking5panic17h90e84101c01877efE(ptr noalias noundef nonnull readonly align 1 %39, i64 noundef %40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %41) #30 - to label %.cont unwind label %58 + to label %32 unwind label %56 + +32: ; preds = %.thread + %33 = load i64, ptr %2, align 8, !range !20, !alias.scope !690, !noundef !8 + %.not = icmp eq i64 %33, -9223372036854775808 + %34 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %35 = load i64, ptr %34, align 8, !alias.scope !690 + %36 = icmp ule i64 %35, %31 + %.0.in.i8 = select i1 %.not, i1 true, i1 %36 + br i1 %.0.in.i8, label %40, label %.invoke + +.invoke: ; preds = %32, %29 + %37 = phi ptr [ @anon.9f345ea5ff5620f0511f6a1a136ffe34.60.llvm.16979978850130570624, %29 ], [ @anon.9f345ea5ff5620f0511f6a1a136ffe34.57.llvm.16979978850130570624, %32 ] + %38 = phi i64 [ 30, %29 ], [ 68, %32 ] + %39 = phi ptr [ @anon.9f345ea5ff5620f0511f6a1a136ffe34.61.llvm.16979978850130570624, %29 ], [ @anon.9f345ea5ff5620f0511f6a1a136ffe34.58.llvm.16979978850130570624, %32 ] + invoke void @_ZN4core9panicking5panic17h90e84101c01877efE(ptr noalias noundef nonnull readonly align 1 %37, i64 noundef %38, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %39) #30 + to label %.cont unwind label %56 .cont: ; preds = %.invoke unreachable -42: ; preds = %34 +40: ; preds = %32 tail call void @llvm.experimental.noalias.scope.decl(metadata !693) tail call void @llvm.experimental.noalias.scope.decl(metadata !696) - %43 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %44 = load i64, ptr %43, align 8, !alias.scope !693, !noalias !696, !noundef !8 + %41 = getelementptr inbounds nuw i8, ptr %1, i64 16 + %42 = load i64, ptr %41, align 8, !alias.scope !693, !noalias !696, !noundef !8 tail call void @llvm.experimental.noalias.scope.decl(metadata !698) tail call void @llvm.experimental.noalias.scope.decl(metadata !701) - br i1 %.not, label %_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit, label %45 - -45: ; preds = %42 - %46 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %47 = load ptr, ptr %46, align 8, !alias.scope !704, !noalias !693, !nonnull !8, !noundef !8 - %48 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, i8, [7 x i8] }, ptr %47, i64 %37 - %49 = icmp eq i64 %37, 0 - br i1 %49, label %_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit, label %.lr.ph.i.i.i - -.lr.ph.i.i.i: ; preds = %45, %_ZN12regex_syntax3hir7literal7Literal16keep_first_bytes17h2e8b932942788345E.exit.i.i.i - %.sroa.0.08.i.i.i = phi ptr [ %50, %_ZN12regex_syntax3hir7literal7Literal16keep_first_bytes17h2e8b932942788345E.exit.i.i.i ], [ %47, %45 ] - %50 = getelementptr inbounds nuw i8, ptr %.sroa.0.08.i.i.i, i64 32 - %51 = getelementptr inbounds nuw i8, ptr %.sroa.0.08.i.i.i, i64 16 - %52 = load i64, ptr %51, align 8, !alias.scope !705, !noalias !708, !noundef !8 - %.not.i.i.i.i = icmp ult i64 %44, %52 + br i1 %.not, label %_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit, label %43 + +43: ; preds = %40 + %44 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %45 = load ptr, ptr %44, align 8, !alias.scope !704, !noalias !693, !nonnull !8, !noundef !8 + %46 = getelementptr inbounds { { { i64, ptr, {} }, i64 }, i8, [7 x i8] }, ptr %45, i64 %35 + %47 = icmp eq i64 %35, 0 + br i1 %47, label %_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit, label %.lr.ph.i.i.i + +.lr.ph.i.i.i: ; preds = %43, %_ZN12regex_syntax3hir7literal7Literal16keep_first_bytes17h2e8b932942788345E.exit.i.i.i + %.sroa.0.08.i.i.i = phi ptr [ %48, %_ZN12regex_syntax3hir7literal7Literal16keep_first_bytes17h2e8b932942788345E.exit.i.i.i ], [ %45, %43 ] + %48 = getelementptr inbounds nuw i8, ptr %.sroa.0.08.i.i.i, i64 32 + %49 = getelementptr inbounds nuw i8, ptr %.sroa.0.08.i.i.i, i64 16 + %50 = load i64, ptr %49, align 8, !alias.scope !705, !noalias !708, !noundef !8 + %.not.i.i.i.i = icmp ult i64 %42, %50 br i1 %.not.i.i.i.i, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hf570c047a26e1effE.exit.i.i.i.i", label %_ZN12regex_syntax3hir7literal7Literal16keep_first_bytes17h2e8b932942788345E.exit.i.i.i "_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hf570c047a26e1effE.exit.i.i.i.i": ; preds = %.lr.ph.i.i.i - %53 = getelementptr inbounds nuw i8, ptr %.sroa.0.08.i.i.i, i64 24 - store i8 0, ptr %53, align 8, !alias.scope !705, !noalias !708 - store i64 %44, ptr %51, align 8, !alias.scope !709, !noalias !708 + %51 = getelementptr inbounds nuw i8, ptr %.sroa.0.08.i.i.i, i64 24 + store i8 0, ptr %51, align 8, !alias.scope !705, !noalias !708 + store i64 %42, ptr %49, align 8, !alias.scope !709, !noalias !708 br label %_ZN12regex_syntax3hir7literal7Literal16keep_first_bytes17h2e8b932942788345E.exit.i.i.i _ZN12regex_syntax3hir7literal7Literal16keep_first_bytes17h2e8b932942788345E.exit.i.i.i: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17hf570c047a26e1effE.exit.i.i.i.i", %.lr.ph.i.i.i - %54 = icmp eq ptr %50, %48 - br i1 %54, label %_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit, label %.lr.ph.i.i.i + %52 = icmp eq ptr %48, %46 + br i1 %52, label %_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit, label %.lr.ph.i.i.i -_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit: ; preds = %_ZN12regex_syntax3hir7literal7Literal16keep_first_bytes17h2e8b932942788345E.exit.i.i.i, %45, %42 +_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit: ; preds = %_ZN12regex_syntax3hir7literal7Literal16keep_first_bytes17h2e8b932942788345E.exit.i.i.i, %43, %40 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %2, i64 32, i1 false) - %55 = load i64, ptr %3, align 8, !range !20, !alias.scope !712, !noundef !8 - %56 = icmp eq i64 %55, -9223372036854775808 - br i1 %56, label %"_ZN4core3ptr46drop_in_place$LT$grep_regex..literal..TSeq$GT$17h0e742d726d0d7ff3E.exit", label %57 + %53 = load i64, ptr %3, align 8, !range !20, !alias.scope !712, !noundef !8 + %54 = icmp eq i64 %53, -9223372036854775808 + br i1 %54, label %"_ZN4core3ptr46drop_in_place$LT$grep_regex..literal..TSeq$GT$17h0e742d726d0d7ff3E.exit", label %55 -57: ; preds = %_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit +55: ; preds = %_ZN10grep_regex7literal9Extractor19enforce_literal_len17h1fc9886d159911afE.llvm.16979978850130570624.exit tail call void @"_ZN4core3ptr79drop_in_place$LT$alloc..vec..Vec$LT$regex_syntax..hir..literal..Literal$GT$$GT$17h70e56acc68a6c55aE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3) br label %"_ZN4core3ptr46drop_in_place$LT$grep_regex..literal..TSeq$GT$17h0e742d726d0d7ff3E.exit" -58: ; preds = %.invoke, %33 +56: ; preds = %.invoke, %.thread %lpad.thr_comm = landingpad { ptr, i32 } cleanup %.pr = load i64, ptr %3, align 8, !alias.scope !719 - %59 = icmp eq i64 %.pr, -9223372036854775808 - br i1 %59, label %.noexc10, label %60 + %57 = icmp eq i64 %.pr, -9223372036854775808 + br i1 %57, label %.noexc10, label %58 -60: ; preds = %58 +58: ; preds = %56 invoke void @"_ZN4core3ptr79drop_in_place$LT$alloc..vec..Vec$LT$regex_syntax..hir..literal..Literal$GT$$GT$17h70e56acc68a6c55aE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %3) - to label %.noexc10 unwind label %61 + to label %.noexc10 unwind label %59 -61: ; preds = %65, %60 - %62 = landingpad { ptr, i32 } +59: ; preds = %63, %58 + %60 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17h76c6e1c84248d3ffE() #28 unreachable -"_ZN4core3ptr46drop_in_place$LT$grep_regex..literal..TSeq$GT$17h0e742d726d0d7ff3E.exit13": ; preds = %.noexc10, %65 +"_ZN4core3ptr46drop_in_place$LT$grep_regex..literal..TSeq$GT$17h0e742d726d0d7ff3E.exit13": ; preds = %.noexc10, %63 resume { ptr, i32 } %eh.lpad-body1731 -.noexc10: ; preds = %60, %.thread29, %58 - %eh.lpad-body1731 = phi { ptr, i32 } [ %28, %.thread29 ], [ %lpad.thr_comm, %58 ], [ %lpad.thr_comm, %60 ] - %63 = load i64, ptr %2, align 8, !range !20, !alias.scope !726, !noundef !8 - %64 = icmp eq i64 %63, -9223372036854775808 - br i1 %64, label %"_ZN4core3ptr46drop_in_place$LT$grep_regex..literal..TSeq$GT$17h0e742d726d0d7ff3E.exit13", label %65 +.noexc10: ; preds = %58, %.thread29, %56 + %eh.lpad-body1731 = phi { ptr, i32 } [ %28, %.thread29 ], [ %lpad.thr_comm, %56 ], [ %lpad.thr_comm, %58 ] + %61 = load i64, ptr %2, align 8, !range !20, !alias.scope !726, !noundef !8 + %62 = icmp eq i64 %61, -9223372036854775808 + br i1 %62, label %"_ZN4core3ptr46drop_in_place$LT$grep_regex..literal..TSeq$GT$17h0e742d726d0d7ff3E.exit13", label %63 -65: ; preds = %.noexc10 +63: ; preds = %.noexc10 invoke void @"_ZN4core3ptr79drop_in_place$LT$alloc..vec..Vec$LT$regex_syntax..hir..literal..Literal$GT$$GT$17h70e56acc68a6c55aE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %2) - to label %"_ZN4core3ptr46drop_in_place$LT$grep_regex..literal..TSeq$GT$17h0e742d726d0d7ff3E.exit13" unwind label %61 + to label %"_ZN4core3ptr46drop_in_place$LT$grep_regex..literal..TSeq$GT$17h0e742d726d0d7ff3E.exit13" unwind label %59 } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable diff --git a/bench/rocksdb/optimized/compaction_picker.cc.ll b/bench/rocksdb/optimized/compaction_picker.cc.ll index 57cfb828816..da3991bcdd6 100644 --- a/bench/rocksdb/optimized/compaction_picker.cc.ll +++ b/bench/rocksdb/optimized/compaction_picker.cc.ll @@ -2822,7 +2822,7 @@ if.end84: ; preds = %for.body.i103, %inv call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %new_limit) #30 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %new_start) #30 %tobool85 = trunc nuw i8 %expand_inputs.1 to i1 - br i1 %tobool85, label %if.end108, label %if.then86 + br i1 %tobool85, label %if.then110, label %if.then86 if.then86: ; preds = %for.body.i84, %land.lhs.true53, %invoke.cont43, %land.lhs.true, %if.end84 %expand_inputs.0185 = phi i8 [ %expand_inputs.1, %if.end84 ], [ 0, %land.lhs.true ], [ 0, %invoke.cont43 ], [ 0, %land.lhs.true53 ], [ 0, %for.body.i84 ] @@ -2881,14 +2881,12 @@ for.body.i145: ; preds = %for.cond.i150, %for %tobool.i149 = trunc i8 %35 to i1 br i1 %tobool.i149, label %if.end108, label %for.cond.i150 -if.end108: ; preds = %for.body.i145, %land.lhs.true97, %invoke.cont90, %if.end84 - %expand_inputs.2 = phi i8 [ %expand_inputs.1, %if.end84 ], [ %expand_inputs.0185, %invoke.cont90 ], [ %expand_inputs.0185, %land.lhs.true97 ], [ %expand_inputs.0185, %for.body.i145 ] - %expanded_inputs_size.0 = phi i64 [ %call42, %if.end84 ], [ %call91, %invoke.cont90 ], [ %call91, %land.lhs.true97 ], [ %call91, %for.body.i145 ] - %tobool109 = trunc nuw i8 %expand_inputs.2 to i1 +if.end108: ; preds = %for.body.i145, %land.lhs.true97, %invoke.cont90 + %tobool109 = trunc nuw i8 %expand_inputs.0185 to i1 br i1 %tobool109, label %if.then110, label %if.end127 -if.then110: ; preds = %for.cond.i150, %land.lhs.true103, %if.end108 - %expanded_inputs_size.0190 = phi i64 [ %expanded_inputs_size.0, %if.end108 ], [ %call91, %land.lhs.true103 ], [ %call91, %for.cond.i150 ] +if.then110: ; preds = %for.cond.i150, %land.lhs.true103, %if.end84, %if.end108 + %expanded_inputs_size.0190 = phi i64 [ %call91, %if.end108 ], [ %call42, %if.end84 ], [ %call91, %land.lhs.true103 ], [ %call91, %for.cond.i150 ] %ioptions_ = getelementptr inbounds nuw i8, ptr %this, i64 8 %36 = load ptr, ptr %ioptions_, align 8 %logger = getelementptr inbounds nuw i8, ptr %36, i64 544 diff --git a/bench/rust-analyzer-rs/optimized/1yigtuxmiuvrwpzt.ll b/bench/rust-analyzer-rs/optimized/1yigtuxmiuvrwpzt.ll index 44d6e994902..111e59013da 100644 --- a/bench/rust-analyzer-rs/optimized/1yigtuxmiuvrwpzt.ll +++ b/bench/rust-analyzer-rs/optimized/1yigtuxmiuvrwpzt.ll @@ -26152,7 +26152,7 @@ define internal fastcc void @"_ZN5salsa7derived4slot18Slot$LT$Q$C$MP$GT$7execute br i1 %56, label %62, label %.critedge "_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit.thread": ; preds = %167, %117, %312, %311, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit", %60 - %.0165 = phi i8 [ 1, %60 ], [ %.2.ph, %312 ], [ 0, %117 ], [ %.4329, %311 ], [ %.5336, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.6, %167 ] + %.0165 = phi i8 [ 1, %60 ], [ %.2.ph, %312 ], [ 0, %117 ], [ 1, %311 ], [ 1, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.6, %167 ] %.0163 = phi i1 [ true, %60 ], [ true, %312 ], [ true, %117 ], [ false, %311 ], [ false, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ false, %167 ] %.pn202 = phi { ptr, i32 } [ %61, %60 ], [ %lpad.thr_comm, %312 ], [ %lpad.thr_comm.split-lp, %117 ], [ %.pn199.pn330, %311 ], [ %.pn199337, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.pn, %167 ] %57 = load i64, ptr %9, align 8, !range !92, !alias.scope !2513, !noundef !84 @@ -26966,7 +26966,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit255 307: ; preds = %.thread331, %167 %.pn199337 = phi { ptr, i32 } [ %169, %.thread331 ], [ %.pn, %167 ] - %.5336 = phi i8 [ 1, %.thread331 ], [ %.6, %167 ] %.2175335 = phi i1 [ true, %.thread331 ], [ false, %167 ] %308 = load i64, ptr %34, align 8, !range !107, !alias.scope !2575, !noundef !84 %cond.i.i = icmp eq i64 %308, 0 @@ -26979,7 +26978,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit255 311: ; preds = %.thread325, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" %.pn199.pn330 = phi { ptr, i32 } [ %162, %.thread325 ], [ %.pn199337, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ] - %.4329 = phi i8 [ 1, %.thread325 ], [ %.5336, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ] invoke void @"_ZN4core3ptr139drop_in_place$LT$mbe..ValueResult$LT$alloc..boxed..Box$LT$$u5b$syntax..syntax_error..SyntaxError$u5d$$GT$$C$hir_expand..ExpandError$GT$$GT$17h1891cbac69392252E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %44) #19 to label %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit.thread" unwind label %305 @@ -27057,7 +27055,7 @@ define internal fastcc void @"_ZN5salsa7derived4slot18Slot$LT$Q$C$MP$GT$7execute br i1 %54, label %57, label %.critedge "_ZN4core3ptr96drop_in_place$LT$triomphe..arc..Arc$LT$hir_expand..declarative..DeclarativeMacroExpander$GT$$GT$17h8cbac5ecf6899c5dE.llvm.12183469803826268251.exit": ; preds = %169, %319, %323, %118, %326, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit", %55 - %.0169 = phi i8 [ 1, %55 ], [ %.2.ph, %326 ], [ 0, %118 ], [ %.5345, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.4338, %323 ], [ %.4338, %319 ], [ %.6, %169 ] + %.0169 = phi i8 [ 1, %55 ], [ %.2.ph, %326 ], [ 0, %118 ], [ 1, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ 1, %323 ], [ 1, %319 ], [ %.6, %169 ] %.0167 = phi i1 [ true, %55 ], [ true, %326 ], [ true, %118 ], [ false, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ false, %323 ], [ false, %319 ], [ false, %169 ] %.pn206 = phi { ptr, i32 } [ %56, %55 ], [ %lpad.thr_comm, %326 ], [ %lpad.thr_comm.split-lp, %118 ], [ %.pn203346, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.pn203.pn339, %323 ], [ %.pn203.pn339, %319 ], [ %.pn, %169 ] invoke fastcc void @"_ZN4core3ptr158drop_in_place$LT$core..option..Option$LT$salsa..derived..slot..Memo$LT$triomphe..arc..Arc$LT$hir_expand..declarative..DeclarativeMacroExpander$GT$$GT$$GT$$GT$17h2b8398f390006319E"(ptr noalias noundef align 8 dereferenceable(40) %9) #19 @@ -27885,7 +27883,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit259 315: ; preds = %.thread340, %169 %.pn203346 = phi { ptr, i32 } [ %171, %.thread340 ], [ %.pn, %169 ] - %.5345 = phi i8 [ 1, %.thread340 ], [ %.6, %169 ] %.2179344 = phi i1 [ true, %.thread340 ], [ false, %169 ] %316 = load i64, ptr %34, align 8, !range !107, !alias.scope !2667, !noundef !84 %cond.i.i = icmp eq i64 %316, 0 @@ -27899,7 +27896,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit259 319: ; preds = %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge", %.thread334 %320 = phi ptr [ %117, %.thread334 ], [ %.pre, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge" ] %.pn203.pn339 = phi { ptr, i32 } [ %164, %.thread334 ], [ %.pn203346, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge" ] - %.4338 = phi i8 [ 1, %.thread334 ], [ %.5345, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge" ] call void @llvm.experimental.noalias.scope.decl(metadata !2672) call void @llvm.experimental.noalias.scope.decl(metadata !2673) %321 = atomicrmw sub ptr %320, i64 1 release, align 8, !noalias !2602 @@ -27987,7 +27983,7 @@ define internal fastcc void @"_ZN5salsa7derived4slot18Slot$LT$Q$C$MP$GT$7execute br i1 %54, label %57, label %.critedge "_ZN4core3ptr69drop_in_place$LT$triomphe..arc..Arc$LT$span..map..RealSpanMap$GT$$GT$17h579e6e5329b0d715E.llvm.12183469803826268251.exit": ; preds = %169, %330, %334, %118, %337, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit", %55 - %.0169 = phi i8 [ 1, %55 ], [ %.2.ph, %337 ], [ 0, %118 ], [ %.5345, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.4338, %334 ], [ %.4338, %330 ], [ %.6, %169 ] + %.0169 = phi i8 [ 1, %55 ], [ %.2.ph, %337 ], [ 0, %118 ], [ 1, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ 1, %334 ], [ 1, %330 ], [ %.6, %169 ] %.0167 = phi i1 [ true, %55 ], [ true, %337 ], [ true, %118 ], [ false, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ false, %334 ], [ false, %330 ], [ false, %169 ] %.pn206 = phi { ptr, i32 } [ %56, %55 ], [ %lpad.thr_comm, %337 ], [ %lpad.thr_comm.split-lp, %118 ], [ %.pn203346, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.pn203.pn339, %334 ], [ %.pn203.pn339, %330 ], [ %.pn, %169 ] invoke fastcc void @"_ZN4core3ptr131drop_in_place$LT$core..option..Option$LT$salsa..derived..slot..Memo$LT$triomphe..arc..Arc$LT$span..map..RealSpanMap$GT$$GT$$GT$$GT$17h11ff7f41c2828728E"(ptr noalias noundef align 8 dereferenceable(40) %9) #19 @@ -28831,7 +28827,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit259 326: ; preds = %.thread340, %169 %.pn203346 = phi { ptr, i32 } [ %171, %.thread340 ], [ %.pn, %169 ] - %.5345 = phi i8 [ 1, %.thread340 ], [ %.6, %169 ] %.2179344 = phi i1 [ true, %.thread340 ], [ false, %169 ] %327 = load i64, ptr %34, align 8, !range !107, !alias.scope !2761, !noundef !84 %cond.i.i = icmp eq i64 %327, 0 @@ -28845,7 +28840,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit259 330: ; preds = %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge", %.thread334 %331 = phi ptr [ %117, %.thread334 ], [ %.pre, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge" ] %.pn203.pn339 = phi { ptr, i32 } [ %164, %.thread334 ], [ %.pn203346, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge" ] - %.4338 = phi i8 [ 1, %.thread334 ], [ %.5345, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge" ] call void @llvm.experimental.noalias.scope.decl(metadata !2766) call void @llvm.experimental.noalias.scope.decl(metadata !2767) %332 = atomicrmw sub ptr %331, i64 1 release, align 8, !noalias !2696 @@ -28935,7 +28929,7 @@ define internal fastcc void @"_ZN5salsa7derived4slot18Slot$LT$Q$C$MP$GT$7execute br i1 %55, label %61, label %.critedge "_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit.thread": ; preds = %166, %116, %297, %296, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit", %59 - %.0165 = phi i8 [ 1, %59 ], [ %.2.ph, %297 ], [ 0, %116 ], [ %.4322, %296 ], [ %.5329, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.6, %166 ] + %.0165 = phi i8 [ 1, %59 ], [ %.2.ph, %297 ], [ 0, %116 ], [ 1, %296 ], [ 1, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.6, %166 ] %.0163 = phi i1 [ true, %59 ], [ true, %297 ], [ true, %116 ], [ false, %296 ], [ false, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ false, %166 ] %.pn202 = phi { ptr, i32 } [ %60, %59 ], [ %lpad.thr_comm, %297 ], [ %lpad.thr_comm.split-lp, %116 ], [ %.pn199.pn323, %296 ], [ %.pn199330, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.pn, %166 ] %56 = load i64, ptr %9, align 8, !range !92, !alias.scope !2768, !noundef !84 @@ -29710,7 +29704,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit254 292: ; preds = %.thread324, %166 %.pn199330 = phi { ptr, i32 } [ %168, %.thread324 ], [ %.pn, %166 ] - %.5329 = phi i8 [ 1, %.thread324 ], [ %.6, %166 ] %.2175328 = phi i1 [ true, %.thread324 ], [ false, %166 ] %293 = load i64, ptr %33, align 8, !range !107, !alias.scope !2824, !noundef !84 %cond.i.i = icmp eq i64 %293, 0 @@ -29723,7 +29716,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit254 296: ; preds = %.thread318, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" %.pn199.pn323 = phi { ptr, i32 } [ %161, %.thread318 ], [ %.pn199330, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ] - %.4322 = phi i8 [ 1, %.thread318 ], [ %.5329, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ] invoke void @"_ZN4core3ptr248drop_in_place$LT$mbe..ValueResult$LT$$LP$syntax..Parse$LT$rowan..api..SyntaxNode$LT$syntax..syntax_node..RustLanguage$GT$$GT$$C$triomphe..arc..Arc$LT$span..map..SpanMap$LT$span..hygiene..SyntaxContextId$GT$$GT$$RP$$C$hir_expand..ExpandError$GT$$GT$17h398780a9f95a2f53E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %43) #19 to label %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit.thread" unwind label %290 @@ -29805,7 +29797,7 @@ define internal fastcc void @"_ZN5salsa7derived4slot18Slot$LT$Q$C$MP$GT$7execute br i1 %56, label %62, label %.critedge "_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit.thread": ; preds = %167, %117, %321, %320, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit", %60 - %.0165 = phi i8 [ 1, %60 ], [ %.2.ph, %321 ], [ 0, %117 ], [ %.4328, %320 ], [ %.5335, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.6, %167 ] + %.0165 = phi i8 [ 1, %60 ], [ %.2.ph, %321 ], [ 0, %117 ], [ 1, %320 ], [ 1, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.6, %167 ] %.0163 = phi i1 [ true, %60 ], [ true, %321 ], [ true, %117 ], [ false, %320 ], [ false, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ false, %167 ] %.pn202 = phi { ptr, i32 } [ %61, %60 ], [ %lpad.thr_comm, %321 ], [ %lpad.thr_comm.split-lp, %117 ], [ %.pn199.pn329, %320 ], [ %.pn199336, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.pn, %167 ] %57 = load i64, ptr %9, align 8, !range !92, !alias.scope !2829, !noundef !84 @@ -30647,7 +30639,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit255 316: ; preds = %.thread330, %167 %.pn199336 = phi { ptr, i32 } [ %169, %.thread330 ], [ %.pn, %167 ] - %.5335 = phi i8 [ 1, %.thread330 ], [ %.6, %167 ] %.2175334 = phi i1 [ true, %.thread330 ], [ false, %167 ] %317 = load i64, ptr %34, align 8, !range !107, !alias.scope !2901, !noundef !84 %cond.i.i = icmp eq i64 %317, 0 @@ -30660,7 +30651,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit255 320: ; preds = %.thread324, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" %.pn199.pn329 = phi { ptr, i32 } [ %162, %.thread324 ], [ %.pn199336, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ] - %.4328 = phi i8 [ 1, %.thread324 ], [ %.5335, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ] invoke void @"_ZN4core3ptr168drop_in_place$LT$mbe..ValueResult$LT$triomphe..arc..Arc$LT$tt..Subtree$LT$span..SpanData$LT$span..hygiene..SyntaxContextId$GT$$GT$$GT$$C$hir_expand..ExpandError$GT$$GT$17hd230547b78ab3660E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %44) #19 to label %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit.thread" unwind label %314 @@ -30738,7 +30728,7 @@ define internal fastcc void @"_ZN5salsa7derived4slot18Slot$LT$Q$C$MP$GT$7execute br i1 %54, label %57, label %.critedge "_ZN4core3ptr69drop_in_place$LT$triomphe..arc..Arc$LT$span..ast_id..AstIdMap$GT$$GT$17hc0d90561cdffcacaE.llvm.12183469803826268251.exit": ; preds = %169, %314, %318, %118, %321, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit", %55 - %.0169 = phi i8 [ 1, %55 ], [ %.2.ph, %321 ], [ 0, %118 ], [ %.5345, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.4338, %318 ], [ %.4338, %314 ], [ %.6, %169 ] + %.0169 = phi i8 [ 1, %55 ], [ %.2.ph, %321 ], [ 0, %118 ], [ 1, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ 1, %318 ], [ 1, %314 ], [ %.6, %169 ] %.0167 = phi i1 [ true, %55 ], [ true, %321 ], [ true, %118 ], [ false, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ false, %318 ], [ false, %314 ], [ false, %169 ] %.pn206 = phi { ptr, i32 } [ %56, %55 ], [ %lpad.thr_comm, %321 ], [ %lpad.thr_comm.split-lp, %118 ], [ %.pn203346, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.pn203.pn339, %318 ], [ %.pn203.pn339, %314 ], [ %.pn, %169 ] invoke fastcc void @"_ZN4core3ptr131drop_in_place$LT$core..option..Option$LT$salsa..derived..slot..Memo$LT$triomphe..arc..Arc$LT$span..ast_id..AstIdMap$GT$$GT$$GT$$GT$17hc5ccbc32b39d469cE"(ptr noalias noundef align 8 dereferenceable(40) %9) #19 @@ -31558,7 +31548,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit259 310: ; preds = %.thread340, %169 %.pn203346 = phi { ptr, i32 } [ %171, %.thread340 ], [ %.pn, %169 ] - %.5345 = phi i8 [ 1, %.thread340 ], [ %.6, %169 ] %.2179344 = phi i1 [ true, %.thread340 ], [ false, %169 ] %311 = load i64, ptr %34, align 8, !range !107, !alias.scope !2980, !noundef !84 %cond.i.i = icmp eq i64 %311, 0 @@ -31572,7 +31561,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit259 314: ; preds = %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge", %.thread334 %315 = phi ptr [ %117, %.thread334 ], [ %.pre, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge" ] %.pn203.pn339 = phi { ptr, i32 } [ %164, %.thread334 ], [ %.pn203346, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge" ] - %.4338 = phi i8 [ 1, %.thread334 ], [ %.5345, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit._crit_edge" ] call void @llvm.experimental.noalias.scope.decl(metadata !2985) call void @llvm.experimental.noalias.scope.decl(metadata !2986) %316 = atomicrmw sub ptr %315, i64 1 release, align 8, !noalias !2928 @@ -31662,7 +31650,7 @@ define internal fastcc void @"_ZN5salsa7derived4slot18Slot$LT$Q$C$MP$GT$7execute br i1 %55, label %58, label %.critedge "_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit.thread": ; preds = %163, %113, %327, %326, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit", %56 - %.0165 = phi i8 [ 1, %56 ], [ %.2.ph, %327 ], [ 0, %113 ], [ %.4323, %326 ], [ %.5330, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.6, %163 ] + %.0165 = phi i8 [ 1, %56 ], [ %.2.ph, %327 ], [ 0, %113 ], [ 1, %326 ], [ 1, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.6, %163 ] %.0163 = phi i1 [ true, %56 ], [ true, %327 ], [ true, %113 ], [ false, %326 ], [ false, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ false, %163 ] %.pn202 = phi { ptr, i32 } [ %57, %56 ], [ %lpad.thr_comm, %327 ], [ %lpad.thr_comm.split-lp, %113 ], [ %.pn199.pn324, %326 ], [ %.pn199331, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ], [ %.pn, %163 ] invoke fastcc void @"_ZN4core3ptr284drop_in_place$LT$core..option..Option$LT$salsa..derived..slot..Memo$LT$$LP$triomphe..arc..Arc$LT$tt..Subtree$LT$span..SpanData$LT$span..hygiene..SyntaxContextId$GT$$GT$$GT$$C$hir_expand..fixup..SyntaxFixupUndoInfo$C$span..SpanData$LT$span..hygiene..SyntaxContextId$GT$$RP$$GT$$GT$$GT$17h38a8337bcc1b90e7E"(ptr noalias noundef align 8 dereferenceable(72) %9) #19 @@ -32499,7 +32487,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit252 322: ; preds = %.thread325, %163 %.pn199331 = phi { ptr, i32 } [ %165, %.thread325 ], [ %.pn, %163 ] - %.5330 = phi i8 [ 1, %.thread325 ], [ %.6, %163 ] %.2175329 = phi i1 [ true, %.thread325 ], [ false, %163 ] %323 = load i64, ptr %33, align 8, !range !107, !alias.scope !3047, !noundef !84 %cond.i.i = icmp eq i64 %323, 0 @@ -32512,7 +32499,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit252 326: ; preds = %.thread319, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" %.pn199.pn324 = phi { ptr, i32 } [ %158, %.thread319 ], [ %.pn199331, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ] - %.4323 = phi i8 [ 1, %.thread319 ], [ %.5330, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit" ] invoke void @"_ZN4core3ptr222drop_in_place$LT$$LP$triomphe..arc..Arc$LT$tt..Subtree$LT$span..SpanData$LT$span..hygiene..SyntaxContextId$GT$$GT$$GT$$C$hir_expand..fixup..SyntaxFixupUndoInfo$C$span..SpanData$LT$span..hygiene..SyntaxContextId$GT$$RP$$GT$17h8dc285871470e500E.llvm.12183469803826268251"(ptr noalias noundef nonnull align 8 dereferenceable(40) %43) #19 to label %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h9c3a8dc510a5d3f2E.exit.thread" unwind label %320 diff --git a/bench/rust-analyzer-rs/optimized/4fq8zwy4vx0104pb.ll b/bench/rust-analyzer-rs/optimized/4fq8zwy4vx0104pb.ll index 7f8b233ea1c..6ed7731c800 100644 --- a/bench/rust-analyzer-rs/optimized/4fq8zwy4vx0104pb.ll +++ b/bench/rust-analyzer-rs/optimized/4fq8zwy4vx0104pb.ll @@ -9879,7 +9879,7 @@ define internal fastcc void @"_ZN5salsa7derived4slot18Slot$LT$Q$C$MP$GT$7execute br i1 %55, label %61, label %.critedge "_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit.thread": ; preds = %174, %123, %325, %324, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit", %59 - %.0165 = phi i8 [ 1, %59 ], [ %.2.ph, %325 ], [ 0, %123 ], [ %.4343, %324 ], [ %.5350, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ %.6, %174 ] + %.0165 = phi i8 [ 1, %59 ], [ %.2.ph, %325 ], [ 0, %123 ], [ 1, %324 ], [ 1, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ %.6, %174 ] %.0163 = phi i1 [ true, %59 ], [ true, %325 ], [ true, %123 ], [ false, %324 ], [ false, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ false, %174 ] %.pn202 = phi { ptr, i32 } [ %60, %59 ], [ %lpad.thr_comm, %325 ], [ %lpad.thr_comm.split-lp, %123 ], [ %.pn199.pn344, %324 ], [ %.pn199351, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ %.pn, %174 ] %56 = load i64, ptr %9, align 8, !range !54, !alias.scope !962, !noundef !39 @@ -10740,7 +10740,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit257 320: ; preds = %.thread345, %174 %.pn199351 = phi { ptr, i32 } [ %176, %.thread345 ], [ %.pn, %174 ] - %.5350 = phi i8 [ 1, %.thread345 ], [ %.6, %174 ] %.2175349 = phi i1 [ true, %.thread345 ], [ false, %174 ] %321 = load i64, ptr %35, align 8, !range !69, !alias.scope !1035, !noundef !39 %cond.i.i = icmp eq i64 %321, 0 @@ -10753,7 +10752,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit257 324: ; preds = %.thread339, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" %.pn199.pn344 = phi { ptr, i32 } [ %169, %.thread339 ], [ %.pn199351, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ] - %.4343 = phi i8 [ 1, %.thread339 ], [ %.5350, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ] invoke void @"_ZN4core3ptr83drop_in_place$LT$syntax..Parse$LT$syntax..ast..generated..nodes..SourceFile$GT$$GT$17hcff23ef92b8f34daE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %43) #19 to label %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit.thread" unwind label %318 @@ -10831,7 +10829,7 @@ define internal fastcc void @"_ZN5salsa7derived4slot18Slot$LT$Q$C$MP$GT$7execute br i1 %54, label %57, label %.critedge "_ZN4core3ptr50drop_in_place$LT$triomphe..arc..Arc$LT$str$GT$$GT$17hc42c73e5b299e5e3E.llvm.6599857170839388333.exit": ; preds = %171, %323, %327, %120, %330, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit", %55 - %.0167 = phi i8 [ 1, %55 ], [ %.2.ph, %330 ], [ 0, %120 ], [ %.5342, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ %.4335, %327 ], [ %.4335, %323 ], [ %.6, %171 ] + %.0167 = phi i8 [ 1, %55 ], [ %.2.ph, %330 ], [ 0, %120 ], [ 1, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ 1, %327 ], [ 1, %323 ], [ %.6, %171 ] %.0165 = phi i1 [ true, %55 ], [ true, %330 ], [ true, %120 ], [ false, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ false, %327 ], [ false, %323 ], [ false, %171 ] %.pn204 = phi { ptr, i32 } [ %56, %55 ], [ %lpad.thr_comm, %330 ], [ %lpad.thr_comm.split-lp, %120 ], [ %.pn201343, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ %.pn201.pn336, %327 ], [ %.pn201.pn336, %323 ], [ %.pn, %171 ] invoke fastcc void @"_ZN4core3ptr112drop_in_place$LT$core..option..Option$LT$salsa..derived..slot..Memo$LT$triomphe..arc..Arc$LT$str$GT$$GT$$GT$$GT$17hfee0daf756ac4a25E"(ptr noalias noundef align 8 dereferenceable(48) %9) #19 @@ -11669,7 +11667,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit256 319: ; preds = %.thread337, %171 %.pn201343 = phi { ptr, i32 } [ %173, %.thread337 ], [ %.pn, %171 ] - %.5342 = phi i8 [ 1, %.thread337 ], [ %.6, %171 ] %.2177341 = phi i1 [ true, %.thread337 ], [ false, %171 ] %320 = load i64, ptr %34, align 8, !range !69, !alias.scope !1134, !noundef !39 %cond.i.i = icmp eq i64 %320, 0 @@ -11683,7 +11680,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit256 323: ; preds = %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit._crit_edge", %.thread331 %324 = phi ptr [ %117, %.thread331 ], [ %.pre, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit._crit_edge" ] %.pn201.pn336 = phi { ptr, i32 } [ %166, %.thread331 ], [ %.pn201343, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit._crit_edge" ] - %.4335 = phi i8 [ 1, %.thread331 ], [ %.5342, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit._crit_edge" ] call void @llvm.experimental.noalias.scope.decl(metadata !1139) call void @llvm.experimental.noalias.scope.decl(metadata !1140) %325 = atomicrmw sub ptr %324, i64 1 release, align 8, !noalias !1064 @@ -11771,7 +11767,7 @@ define internal fastcc void @"_ZN5salsa7derived4slot18Slot$LT$Q$C$MP$GT$7execute br i1 %54, label %57, label %.critedge "_ZN4core3ptr103drop_in_place$LT$triomphe..arc..Arc$LT$$u5b$la_arena..Idx$LT$base_db..input..CrateData$GT$$u5d$$GT$$GT$17hf7e6019bb1a0ace3E.llvm.6599857170839388333.exit": ; preds = %171, %322, %326, %120, %329, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit", %55 - %.0167 = phi i8 [ 1, %55 ], [ %.2.ph, %329 ], [ 0, %120 ], [ %.5343, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ %.4336, %326 ], [ %.4336, %322 ], [ %.6, %171 ] + %.0167 = phi i8 [ 1, %55 ], [ %.2.ph, %329 ], [ 0, %120 ], [ 1, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ 1, %326 ], [ 1, %322 ], [ %.6, %171 ] %.0165 = phi i1 [ true, %55 ], [ true, %329 ], [ true, %120 ], [ false, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ false, %326 ], [ false, %322 ], [ false, %171 ] %.pn204 = phi { ptr, i32 } [ %56, %55 ], [ %lpad.thr_comm, %329 ], [ %lpad.thr_comm.split-lp, %120 ], [ %.pn201344, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit" ], [ %.pn201.pn337, %326 ], [ %.pn201.pn337, %322 ], [ %.pn, %171 ] invoke fastcc void @"_ZN4core3ptr165drop_in_place$LT$core..option..Option$LT$salsa..derived..slot..Memo$LT$triomphe..arc..Arc$LT$$u5b$la_arena..Idx$LT$base_db..input..CrateData$GT$$u5d$$GT$$GT$$GT$$GT$17h8e4bbe87431d6ed0E"(ptr noalias noundef align 8 dereferenceable(48) %9) #19 @@ -12604,7 +12600,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit257 318: ; preds = %.thread338, %171 %.pn201344 = phi { ptr, i32 } [ %173, %.thread338 ], [ %.pn, %171 ] - %.5343 = phi i8 [ 1, %.thread338 ], [ %.6, %171 ] %.2177342 = phi i1 [ true, %.thread338 ], [ false, %171 ] %319 = load i64, ptr %34, align 8, !range !69, !alias.scope !1225, !noundef !39 %cond.i.i = icmp eq i64 %319, 0 @@ -12618,7 +12613,6 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17hccd71802e1b704feE.exit257 322: ; preds = %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit._crit_edge", %.thread332 %323 = phi ptr [ %117, %.thread332 ], [ %.pre, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit._crit_edge" ] %.pn201.pn337 = phi { ptr, i32 } [ %166, %.thread332 ], [ %.pn201344, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit._crit_edge" ] - %.4336 = phi i8 [ 1, %.thread332 ], [ %.5343, %"_ZN4core3ptr64drop_in_place$LT$salsa..runtime..local_state..QueryRevisions$GT$17h7b5fb73bf6a6b735E.exit._crit_edge" ] call void @llvm.experimental.noalias.scope.decl(metadata !1230) call void @llvm.experimental.noalias.scope.decl(metadata !1231) %324 = atomicrmw sub ptr %323, i64 1 release, align 8, !noalias !1165 diff --git a/bench/rustfmt-rs/optimized/3sx1t619hmuq0zz7.ll b/bench/rustfmt-rs/optimized/3sx1t619hmuq0zz7.ll index c95bc7f7ba1..1fd0e2a4d51 100644 --- a/bench/rustfmt-rs/optimized/3sx1t619hmuq0zz7.ll +++ b/bench/rustfmt-rs/optimized/3sx1t619hmuq0zz7.ll @@ -40830,7 +40830,7 @@ define void @"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly.. 15: ; preds = %12 %16 = load i64, ptr %.pre5, align 8, !range !4744, !noalias !6318, !noundef !10 %17 = icmp eq i64 %16, 2 - br i1 %17, label %18, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit + br i1 %17, label %18, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread 18: ; preds = %15 %19 = getelementptr inbounds nuw i8, ptr %.pre5, i64 8 @@ -40838,32 +40838,35 @@ define void @"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly.. %21 = load i8, ptr %20, align 8, !range !239, !noalias !6318, !noundef !10 %22 = add nsw i8 %21, -32 %switch.i = icmp ult i8 %22, -3 - br label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit + br label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread -_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit: ; preds = %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge, %18, %15, %12 - %23 = phi i8 [ %.pre6, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge ], [ %13, %12 ], [ %13, %18 ], [ %13, %15 ] - %24 = phi ptr [ %.pre, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge ], [ %.pre5, %12 ], [ %.pre5, %18 ], [ %.pre5, %15 ] - %.0 = phi i1 [ false, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge ], [ false, %12 ], [ %switch.i, %18 ], [ false, %15 ] +_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit: ; preds = %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge, %12 + %23 = phi i8 [ %.pre6, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge ], [ %13, %12 ] + %24 = phi ptr [ %.pre, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge ], [ %.pre5, %12 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !6315) %25 = trunc nuw i8 %23 to i1 - br i1 %25, label %26, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit4 + br i1 %25, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit4 -26: ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit - %27 = load i64, ptr %24, align 8, !range !4744, !noalias !6315, !noundef !10 +_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread: ; preds = %15, %18, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit + %.09 = phi i1 [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit ], [ false, %15 ], [ %switch.i, %18 ] + %26 = phi ptr [ %24, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit ], [ %.pre5, %15 ], [ %.pre5, %18 ] + %27 = load i64, ptr %26, align 8, !range !4744, !noalias !6315, !noundef !10 %28 = icmp eq i64 %27, 2 br i1 %28, label %29, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit4 -29: ; preds = %26 - %30 = getelementptr inbounds nuw i8, ptr %24, i64 8 +29: ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread + %30 = getelementptr inbounds nuw i8, ptr %26, i64 8 %31 = load ptr, ptr %30, align 8, !noalias !6315, !nonnull !10, !align !11, !noundef !10 %32 = load i8, ptr %31, align 8, !range !239, !noalias !6315, !noundef !10 %33 = add nsw i8 %32, -32 %switch.i3 = icmp ult i8 %33, -3 br label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit4 -_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit4: ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit, %26, %29 - %.0.i2 = phi i1 [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit ], [ %switch.i3, %29 ], [ false, %26 ] - tail call void @_ZN15rustfmt_nightly4stmt11format_stmt17hc1e4420385e2f2e2E.llvm.9097680112167513710(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 %2, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %24, i1 noundef zeroext %.0, i1 noundef zeroext %.0.i2) +_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit4: ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread, %29 + %.08 = phi i1 [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit ], [ %.09, %29 ], [ %.09, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread ] + %34 = phi ptr [ %24, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit ], [ %26, %29 ], [ %26, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread ] + %.0.i2 = phi i1 [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit ], [ %switch.i3, %29 ], [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread ] + tail call void @_ZN15rustfmt_nightly4stmt11format_stmt17hc1e4420385e2f2e2E.llvm.9097680112167513710(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 %2, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %3, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %34, i1 noundef zeroext %.08, i1 noundef zeroext %.0.i2) ret void } diff --git a/bench/rustfmt-rs/optimized/4arc02n7xt9gqo2v.ll b/bench/rustfmt-rs/optimized/4arc02n7xt9gqo2v.ll index 5dcade38870..0471c629308 100644 --- a/bench/rustfmt-rs/optimized/4arc02n7xt9gqo2v.ll +++ b/bench/rustfmt-rs/optimized/4arc02n7xt9gqo2v.ll @@ -47505,42 +47505,45 @@ define hidden void @"_ZN15rustfmt_nightly7visitor10FmtVisitor10visit_stmt28_$u7b br i1 %17, label %18, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i 18: ; preds = %15 - %19 = load i64, ptr %.pre5.i, align 8, !range !1215, !noalias !8622, !noundef !10 + %19 = load i64, ptr %.pre5.i, align 8, !range !1215, !noalias !8608, !noundef !10 %20 = icmp eq i64 %19, 2 - br i1 %20, label %21, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i + br i1 %20, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.thread, label %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit" -21: ; preds = %18 - %22 = getelementptr inbounds nuw i8, ptr %.pre5.i, i64 8 - %23 = load ptr, ptr %22, align 8, !noalias !8622, !nonnull !10, !align !11, !noundef !10 - %24 = load i8, ptr %23, align 8, !range !8623, !noalias !8622, !noundef !10 - %25 = add nsw i8 %24, -32 - %switch.i.i = icmp ult i8 %25, -3 - br label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i +_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.thread: ; preds = %18 + %21 = getelementptr inbounds nuw i8, ptr %.pre5.i, i64 8 + %22 = load ptr, ptr %21, align 8, !noalias !8622, !nonnull !10, !align !11, !noundef !10 + %23 = load i8, ptr %22, align 8, !range !8623, !noalias !8622, !noundef !10 + %24 = add nsw i8 %23, -32 + %switch.i.i = icmp ult i8 %24, -3 + br label %29 -_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i: ; preds = %21, %18, %15, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i - %26 = phi i8 [ %.pre6.i, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i ], [ %16, %15 ], [ %16, %21 ], [ %16, %18 ] - %27 = phi ptr [ %.pre.i, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i ], [ %.pre5.i, %15 ], [ %.pre5.i, %21 ], [ %.pre5.i, %18 ] - %.0.i = phi i1 [ false, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i ], [ false, %15 ], [ %switch.i.i, %21 ], [ false, %18 ] +_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i: ; preds = %15, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i + %25 = phi i8 [ %.pre6.i, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i ], [ %16, %15 ] + %26 = phi ptr [ %.pre.i, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i ], [ %.pre5.i, %15 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !8624) - %28 = trunc nuw i8 %26 to i1 + %27 = trunc nuw i8 %25 to i1 + br i1 %27, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i, label %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit" + +_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i: ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i + %.pr.pre = load i64, ptr %26, align 8, !noalias !8625 + %28 = icmp eq i64 %.pr.pre, 2 br i1 %28, label %29, label %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit" -29: ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i - %30 = load i64, ptr %27, align 8, !range !1215, !noalias !8625, !noundef !10 - %31 = icmp eq i64 %30, 2 - br i1 %31, label %32, label %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit" - -32: ; preds = %29 - %33 = getelementptr inbounds nuw i8, ptr %27, i64 8 - %34 = load ptr, ptr %33, align 8, !noalias !8625, !nonnull !10, !align !11, !noundef !10 - %35 = load i8, ptr %34, align 8, !range !8623, !noalias !8625, !noundef !10 - %36 = add nsw i8 %35, -32 - %switch.i3.i = icmp ult i8 %36, -3 +29: ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.thread, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i + %30 = phi ptr [ %.pre5.i, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.thread ], [ %26, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i ] + %.09.i3 = phi i1 [ %switch.i.i, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.thread ], [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i ] + %31 = getelementptr inbounds nuw i8, ptr %30, i64 8 + %32 = load ptr, ptr %31, align 8, !noalias !8625, !nonnull !10, !align !11, !noundef !10 + %33 = load i8, ptr %32, align 8, !range !8623, !noalias !8625, !noundef !10 + %34 = add nsw i8 %33, -32 + %switch.i3.i = icmp ult i8 %34, -3 br label %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit" -"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit": ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i, %29, %32 - %.0.i2.i = phi i1 [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i ], [ %switch.i3.i, %32 ], [ false, %29 ] - call void @_ZN15rustfmt_nightly4stmt11format_stmt17hc1e4420385e2f2e2E.llvm.9097680112167513710(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 %2, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %27, i1 noundef zeroext %.0.i, i1 noundef zeroext %.0.i2.i), !noalias !8605 +"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit": ; preds = %18, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i, %29 + %.08.i = phi i1 [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i ], [ %.09.i3, %29 ], [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i ], [ false, %18 ] + %35 = phi ptr [ %26, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i ], [ %30, %29 ], [ %26, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i ], [ %.pre5.i, %18 ] + %.0.i2.i = phi i1 [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i ], [ %switch.i3.i, %29 ], [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i ], [ false, %18 ] + call void @_ZN15rustfmt_nightly4stmt11format_stmt17hc1e4420385e2f2e2E.llvm.9097680112167513710(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 %2, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %4, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %35, i1 noundef zeroext %.08.i, i1 noundef zeroext %.0.i2.i), !noalias !8605 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) ret void } @@ -47885,67 +47888,74 @@ define hidden void @_ZN15rustfmt_nightly7visitor10FmtVisitor12with_context17hfee br i1 %16, label %17, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i 17: ; preds = %14 - %18 = load i64, ptr %.pre5.i.i, align 8, !range !1215, !noalias !8686, !noundef !10 + %18 = load i64, ptr %.pre5.i.i, align 8, !range !1215, !noalias !8672, !noundef !10 %19 = icmp eq i64 %18, 2 - br i1 %19, label %20, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i - -20: ; preds = %17 - %21 = getelementptr inbounds nuw i8, ptr %.pre5.i.i, i64 8 - %22 = load ptr, ptr %21, align 8, !noalias !8686, !nonnull !10, !align !11, !noundef !10 - %23 = load i8, ptr %22, align 8, !range !8623, !noalias !8686, !noundef !10 - %24 = add nsw i8 %23, -32 - %switch.i.i.i = icmp ult i8 %24, -3 - br label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i + br i1 %19, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.thread.i, label %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i" + +_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.thread.i: ; preds = %17 + %20 = getelementptr inbounds nuw i8, ptr %.pre5.i.i, i64 8 + %21 = load ptr, ptr %20, align 8, !noalias !8686, !nonnull !10, !align !11, !noundef !10 + %22 = load i8, ptr %21, align 8, !range !8623, !noalias !8686, !noundef !10 + %23 = add nsw i8 %22, -32 + %switch.i.i.i = icmp ult i8 %23, -3 + br label %28 -_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i: ; preds = %20, %17, %14, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i.i - %25 = phi i8 [ %.pre6.i.i, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i.i ], [ %15, %14 ], [ %15, %20 ], [ %15, %17 ] - %26 = phi ptr [ %.pre.i.i, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i.i ], [ %.pre5.i.i, %14 ], [ %.pre5.i.i, %20 ], [ %.pre5.i.i, %17 ] - %.0.i.i = phi i1 [ false, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i.i ], [ false, %14 ], [ %switch.i.i.i, %20 ], [ false, %17 ] +_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i: ; preds = %14, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i.i + %24 = phi i8 [ %.pre6.i.i, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i.i ], [ %15, %14 ] + %25 = phi ptr [ %.pre.i.i, %._ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit_crit_edge.i.i ], [ %.pre5.i.i, %14 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !8687) - %27 = trunc nuw i8 %25 to i1 - br i1 %27, label %28, label %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i" - -28: ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i - %29 = load i64, ptr %26, align 8, !range !1215, !noalias !8688, !noundef !10 - %30 = icmp eq i64 %29, 2 - br i1 %30, label %31, label %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i" - -31: ; preds = %28 - %32 = getelementptr inbounds nuw i8, ptr %26, i64 8 - %33 = load ptr, ptr %32, align 8, !noalias !8688, !nonnull !10, !align !11, !noundef !10 - %34 = load i8, ptr %33, align 8, !range !8623, !noalias !8688, !noundef !10 - %35 = add nsw i8 %34, -32 - %switch.i3.i.i = icmp ult i8 %35, -3 + %26 = trunc nuw i8 %24 to i1 + br i1 %26, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i, label %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i" + +_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i: ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i + %.pr.pre.i = load i64, ptr %25, align 8, !noalias !8688 + %27 = icmp eq i64 %.pr.pre.i, 2 + br i1 %27, label %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i._crit_edge, label %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i" + +_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i._crit_edge: ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i + %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %25, i64 8 + %.pre = load ptr, ptr %.phi.trans.insert, align 8, !noalias !8688 + %.pre2 = load i8, ptr %.pre, align 8, !range !8623, !noalias !8688 + %.pre3 = add nsw i8 %.pre2, -32 + br label %28 + +28: ; preds = %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i._crit_edge, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.thread.i + %.pre-phi = phi i8 [ %.pre3, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i._crit_edge ], [ %23, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.thread.i ] + %29 = phi ptr [ %25, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i._crit_edge ], [ %.pre5.i.i, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.thread.i ] + %.09.i3.i = phi i1 [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i._crit_edge ], [ %switch.i.i.i, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.thread.i ] + %switch.i3.i.i = icmp ult i8 %.pre-phi, -3 br label %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i" -"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i": ; preds = %31, %28, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i - %.0.i2.i.i = phi i1 [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i ], [ %switch.i3.i.i, %31 ], [ false, %28 ] - invoke void @_ZN15rustfmt_nightly4stmt11format_stmt17hc1e4420385e2f2e2E.llvm.9097680112167513710(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 %6, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %26, i1 noundef zeroext %.0.i.i, i1 noundef zeroext %.0.i2.i.i) - to label %39 unwind label %37 +"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i": ; preds = %28, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i, %17 + %.08.i.i = phi i1 [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i ], [ %.09.i3.i, %28 ], [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i ], [ false, %17 ] + %30 = phi ptr [ %25, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i ], [ %29, %28 ], [ %25, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i ], [ %.pre5.i.i, %17 ] + %.0.i2.i.i = phi i1 [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.i.i ], [ %switch.i3.i.i, %28 ], [ false, %_ZN15rustfmt_nightly4stmt4Stmt12is_last_expr17hd216f52d6ab5a39cE.llvm.9097680112167513710.exit.thread.i.i ], [ false, %17 ] + invoke void @_ZN15rustfmt_nightly4stmt11format_stmt17hc1e4420385e2f2e2E.llvm.9097680112167513710(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 %6, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %30, i1 noundef zeroext %.08.i.i, i1 noundef zeroext %.0.i2.i.i) + to label %34 unwind label %32 -36: ; preds = %37 - resume { ptr, i32 } %38 +31: ; preds = %32 + resume { ptr, i32 } %33 -37: ; preds = %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i" - %38 = landingpad { ptr, i32 } +32: ; preds = %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i" + %33 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr61drop_in_place$LT$rustfmt_nightly..rewrite..RewriteContext$GT$17h033ebb771f32e928E"(ptr noalias noundef nonnull align 8 dereferenceable(176) %6) #45 - to label %36 unwind label %45 + to label %31 unwind label %40 -39: ; preds = %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i" +34: ; preds = %"_ZN81_$LT$rustfmt_nightly..stmt..Stmt$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17hcc2beb9823139d46E.exit.i" call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5), !noalias !8665 - %40 = getelementptr inbounds nuw i8, ptr %6, i64 172 - %41 = load i8, ptr %40, align 4, !range !80, !noundef !10 - %42 = getelementptr inbounds nuw i8, ptr %1, i64 221 - %43 = load i8, ptr %42, align 1, !range !80, !noundef !10 - %44 = or i8 %43, %41 - store i8 %44, ptr %42, align 1 + %35 = getelementptr inbounds nuw i8, ptr %6, i64 172 + %36 = load i8, ptr %35, align 4, !range !80, !noundef !10 + %37 = getelementptr inbounds nuw i8, ptr %1, i64 221 + %38 = load i8, ptr %37, align 1, !range !80, !noundef !10 + %39 = or i8 %38, %36 + store i8 %39, ptr %37, align 1 call void @"_ZN4core3ptr61drop_in_place$LT$rustfmt_nightly..rewrite..RewriteContext$GT$17h033ebb771f32e928E"(ptr noalias noundef nonnull align 8 dereferenceable(176) %6) call void @llvm.lifetime.end.p0(i64 176, ptr nonnull %6) ret void -45: ; preds = %37 - %46 = landingpad { ptr, i32 } +40: ; preds = %32 + %41 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7bbd4fcd6f160435E() #46 unreachable diff --git a/bench/rustfmt-rs/optimized/4gk399kploc9gcsb.ll b/bench/rustfmt-rs/optimized/4gk399kploc9gcsb.ll index 822a4b3d533..05bd7e60626 100644 --- a/bench/rustfmt-rs/optimized/4gk399kploc9gcsb.ll +++ b/bench/rustfmt-rs/optimized/4gk399kploc9gcsb.ll @@ -4872,35 +4872,31 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 35: ; preds = %29 invoke void @_ZN5alloc7raw_vec17capacity_overflow17he455155709b0987cE() #47 - to label %.noexc.i unwind label %.thread105.i, !noalias !887 + to label %.noexc.i unwind label %.thread.i, !noalias !887 .noexc.i: ; preds = %35 unreachable 36: ; preds = %31 invoke void @_ZN5alloc5alloc18handle_alloc_error17hb78d9ab02c2055b6E(i64 noundef 1, i64 noundef %27) #47 - to label %.noexc31.i unwind label %.thread105.i, !noalias !887 + to label %.noexc31.i unwind label %.thread.i, !noalias !887 .noexc31.i: ; preds = %36 unreachable -37: ; preds = %.thread.i - br i1 %.358.i, label %183, label %.thread98.i +.body.thread67.i: ; preds = %183 + br i1 %.3.ph.i, label %184, label %.body.thread67.thread.i -.thread105.i: ; preds = %36, %35 - %lpad.thr_comm103.i = landingpad { ptr, i32 } - cleanup - br label %183 - -.thread65.i: ; preds = %61, %60, %59, %43, %42, %39 +.thread.i: ; preds = %36, %35 %lpad.thr_comm.i = landingpad { ptr, i32 } cleanup - br label %.thread.i + br label %184 -38: ; preds = %172, %170 - %lpad.thr_comm.split-lp.i = landingpad { ptr, i32 } +37: ; preds = %172, %170, %61, %60, %59, %43, %42, %39 + %.221.i = phi i1 [ true, %61 ], [ true, %43 ], [ true, %42 ], [ true, %39 ], [ true, %59 ], [ true, %60 ], [ false, %170 ], [ false, %172 ] + %38 = landingpad { ptr, i32 } cleanup - br label %.thread.i + br label %183 39: ; preds = %31, %1 %.sroa.3.0.i.i = phi ptr [ inttoptr (i64 1 to ptr), %1 ], [ %33, %31 ] @@ -4912,21 +4908,21 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21), !noalias !885 store ptr %23, ptr %21, align 8, !noalias !885 invoke void @_ZN15rustfmt_nightly6config12ConfigSetter9emit_mode17hcff2943ed538d312E(ptr noalias noundef nonnull align 8 dereferenceable(8) %21, i8 noundef 1) - to label %42 unwind label %.thread65.i, !noalias !887 + to label %42 unwind label %37, !noalias !887 42: ; preds = %39 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21), !noalias !885 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20), !noalias !885 store ptr %23, ptr %20, align 8, !noalias !885 invoke void @_ZN15rustfmt_nightly6config12ConfigSetter7verbose17h05d5c8bdb54c4c25E(ptr noalias noundef nonnull align 8 dereferenceable(8) %20, i8 noundef 2) - to label %43 unwind label %.thread65.i, !noalias !887 + to label %43 unwind label %37, !noalias !887 43: ; preds = %42 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20), !noalias !885 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19), !noalias !885 store ptr %23, ptr %19, align 8, !noalias !885 invoke void @_ZN15rustfmt_nightly6config12ConfigSetter17show_parse_errors17h161215ccdfbe8ca7E(ptr noalias noundef nonnull align 8 dereferenceable(8) %19, i1 noundef zeroext false) - to label %44 unwind label %.thread65.i, !noalias !887 + to label %44 unwind label %37, !noalias !887 44: ; preds = %43 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19), !noalias !885 @@ -4955,14 +4951,14 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 59: ; preds = %53 invoke void @_ZN5alloc7raw_vec17capacity_overflow17he455155709b0987cE() #47 - to label %.noexc32.i unwind label %.thread65.i, !noalias !887 + to label %.noexc32.i unwind label %37, !noalias !887 .noexc32.i: ; preds = %59 unreachable 60: ; preds = %55 invoke void @_ZN5alloc5alloc18handle_alloc_error17hb78d9ab02c2055b6E(i64 noundef 1, i64 noundef %51) #47 - to label %.noexc33.i unwind label %.thread65.i, !noalias !887 + to label %.noexc33.i unwind label %37, !noalias !887 .noexc33.i: ; preds = %60 unreachable @@ -4971,7 +4967,7 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18), !noalias !885 store ptr %23, ptr %18, align 8, !noalias !885 invoke void @_ZN15rustfmt_nightly6config12ConfigSetter20error_on_unformatted17h33ea71072707eb35E(ptr noalias noundef nonnull align 8 dereferenceable(8) %18, i1 noundef zeroext true) - to label %62 unwind label %.thread65.i, !noalias !887 + to label %62 unwind label %37, !noalias !887 62: ; preds = %61 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18), !noalias !885 @@ -4996,7 +4992,7 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 65: ; preds = %103 %66 = landingpad { ptr, i32 } cleanup - br label %.thread.i + br label %183 67: ; preds = %63 call void @llvm.lifetime.end.p0(i64 848, ptr nonnull %14), !noalias !885 @@ -5012,7 +5008,7 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 71: ; preds = %90, %72 %.pn.i = phi { ptr, i32 } [ %91, %90 ], [ %73, %72 ] invoke void @"_ZN4core3ptr78drop_in_place$LT$rustfmt_nightly..Session$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$17h5131fb840e3676b5E"(ptr noalias noundef nonnull align 8 dereferenceable(904) %15) #49 - to label %.thread.i unwind label %93, !noalias !887 + to label %183 unwind label %93, !noalias !887 72: ; preds = %67 %73 = landingpad { ptr, i32 } @@ -5057,7 +5053,7 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 92: ; preds = %82 unreachable -93: ; preds = %183, %.thread.i, %181, %.body.thread.i, %90, %71 +93: ; preds = %184, %183, %181, %.body.thread.i, %90, %71 %94 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h7bbd4fcd6f160435E() #48, !noalias !887 @@ -5112,9 +5108,9 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 112: ; preds = %105 %113 = load i64, ptr %7, align 8, !range !904, !noalias !900, !noundef !5 %trunc.i.i = trunc nuw i64 %113 to i1 - br i1 %trunc.i.i, label %117, label %.thread87.i + br i1 %trunc.i.i, label %117, label %.thread73.i -.thread87.i: ; preds = %112 +.thread73.i: ; preds = %112 %114 = getelementptr inbounds nuw i8, ptr %10, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %114, ptr noundef nonnull align 8 dereferenceable(24) %9, i64 24, i1 false), !alias.scope !905, !noalias !885 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7), !noalias !900 @@ -5128,7 +5124,7 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 unreachable .body.i: ; preds = %157 - %lpad.thr_comm.split-lp83.i = landingpad { ptr, i32 } + %lpad.thr_comm.split-lp.i = landingpad { ptr, i32 } cleanup br label %.body.thread.i @@ -5146,7 +5142,7 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 %120 = icmp eq i64 %.pr.i, -9223372036854775808 br i1 %120, label %121, label %157 -121: ; preds = %117, %.thread87.i +121: ; preds = %117, %.thread73.i %122 = getelementptr inbounds nuw i8, ptr %10, i64 8 %.sroa.011.sroa.0.0.copyload.i = load i64, ptr %122, align 8, !noalias !885 %.sroa.011.sroa.4.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %10, i64 16 @@ -5226,7 +5222,7 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 147: ; preds = %129 invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h65321bb4306ac23aE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) #49 - to label %.thread98.i unwind label %148, !noalias !930 + to label %.body.thread67.thread.i unwind label %148, !noalias !930 148: ; preds = %147 %149 = landingpad { ptr, i32 } @@ -5239,7 +5235,7 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %.sroa.6, ptr noundef nonnull align 8 dereferenceable(16) %.sroa.7.i, i64 16, i1 false) br label %166 -151: ; preds = %.thread91.i, %121 +151: ; preds = %.thread77.i, %121 %152 = load i64, ptr %8, align 8, !range !894, !alias.scope !931, !noalias !910, !noundef !5 %153 = icmp eq i64 %152, -9223372036854775798 br i1 %153, label %154, label %156 @@ -5262,20 +5258,20 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 %158 = getelementptr inbounds nuw i8, ptr %3, i64 8 %159 = load i64, ptr %158, align 8, !range !87, !noalias !936, !noundef !5 %.not.i.i.i.i1.i.i = icmp eq i64 %159, 0 - br i1 %.not.i.i.i.i1.i.i, label %.thread91.i, label %160 + br i1 %.not.i.i.i.i1.i.i, label %.thread77.i, label %160 160: ; preds = %.noexc43.i %161 = getelementptr inbounds nuw i8, ptr %3, i64 16 %162 = load i64, ptr %161, align 8, !noalias !936, !noundef !5 %163 = icmp eq i64 %162, 0 - br i1 %163, label %.thread91.i, label %164 + br i1 %163, label %.thread77.i, label %164 164: ; preds = %160 %165 = load ptr, ptr %3, align 8, !noalias !936, !nonnull !5, !noundef !5 call void @__rust_dealloc(ptr noundef nonnull %165, i64 noundef %162, i64 noundef %159) #46, !noalias !887 - br label %.thread91.i + br label %.thread77.i -.thread91.i: ; preds = %164, %160, %.noexc43.i +.thread77.i: ; preds = %164, %160, %.noexc43.i call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !936 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %10), !noalias !885 call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %8), !noalias !885 @@ -5283,9 +5279,9 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 br label %151 .body.thread.i: ; preds = %.body.i, %110 - %eh.lpad-body78.i = phi { ptr, i32 } [ %lpad.thr_comm.split-lp83.i, %.body.i ], [ %111, %110 ] + %eh.lpad-body66.i = phi { ptr, i32 } [ %lpad.thr_comm.split-lp.i, %.body.i ], [ %111, %110 ] invoke fastcc void @"_ZN4core3ptr107drop_in_place$LT$core..result..Result$LT$rustfmt_nightly..FormatReport$C$rustfmt_nightly..ErrorKind$GT$$GT$17hea115ec940bd4ec1E"(ptr noalias noundef align 8 dereferenceable(72) %17) #49 - to label %.thread98.i unwind label %93, !noalias !887 + to label %.body.thread67.thread.i unwind label %93, !noalias !887 166: ; preds = %156, %154, %150 %.sroa.01.0 = phi i64 [ -9223372036854775808, %154 ], [ -9223372036854775808, %156 ], [ %.sroa.011.sroa.0.0.copyload.i, %150 ] @@ -5301,11 +5297,11 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 170: ; preds = %167 %171 = getelementptr inbounds nuw i8, ptr %17, i64 8 invoke void @"_ZN4core3ptr50drop_in_place$LT$rustfmt_nightly..FormatReport$GT$17h74c2c202b65a991dE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %171) - to label %.noexc46.i unwind label %38, !noalias !887 + to label %.noexc46.i unwind label %37, !noalias !887 172: ; preds = %167 invoke void @"_ZN4core3ptr47drop_in_place$LT$rustfmt_nightly..ErrorKind$GT$17hd40ae6560b5f4ee6E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %17) - to label %.noexc46.i unwind label %38, !noalias !887 + to label %.noexc46.i unwind label %37, !noalias !887 .noexc46.i: ; preds = %172, %170 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %17), !noalias !885 @@ -5335,22 +5331,22 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 %182 = landingpad { ptr, i32 } cleanup invoke fastcc void @"_ZN4core3ptr43drop_in_place$LT$rustfmt_nightly..Input$GT$17hdf46b4e3b14324b0E"(ptr noalias noundef align 8 dereferenceable(32) %16) #49 - to label %.thread.i unwind label %93, !noalias !887 + to label %183 unwind label %93, !noalias !887 -.thread.i: ; preds = %181, %71, %65, %38, %.thread65.i - %.358.i = phi i1 [ false, %38 ], [ true, %.thread65.i ], [ false, %181 ], [ false, %65 ], [ false, %71 ] - %.pn2657.i = phi { ptr, i32 } [ %lpad.thr_comm.split-lp.i, %38 ], [ %lpad.thr_comm.i, %.thread65.i ], [ %182, %181 ], [ %66, %65 ], [ %.pn.i, %71 ] +183: ; preds = %181, %71, %65, %37 + %.pn26.ph.i = phi { ptr, i32 } [ %66, %65 ], [ %182, %181 ], [ %38, %37 ], [ %.pn.i, %71 ] + %.3.ph.i = phi i1 [ false, %65 ], [ false, %181 ], [ %.221.i, %37 ], [ false, %71 ] invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h27f30dfd67318ac1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %22) #49 - to label %37 unwind label %93, !noalias !887 + to label %.body.thread67.i unwind label %93, !noalias !887 -.thread98.i: ; preds = %183, %.body.thread.i, %147, %37 - %.pn28101.i = phi { ptr, i32 } [ %.pn28102.i, %183 ], [ %.pn2657.i, %37 ], [ %eh.lpad-body78.i, %.body.thread.i ], [ %130, %147 ] - resume { ptr, i32 } %.pn28101.i +.body.thread67.thread.i: ; preds = %184, %.body.thread.i, %147, %.body.thread67.i + %.pn2884.i = phi { ptr, i32 } [ %.pn2885.i, %184 ], [ %.pn26.ph.i, %.body.thread67.i ], [ %130, %147 ], [ %eh.lpad-body66.i, %.body.thread.i ] + resume { ptr, i32 } %.pn2884.i -183: ; preds = %.thread105.i, %37 - %.pn28102.i = phi { ptr, i32 } [ %.pn2657.i, %37 ], [ %lpad.thr_comm103.i, %.thread105.i ] +184: ; preds = %.thread.i, %.body.thread67.i + %.pn2885.i = phi { ptr, i32 } [ %.pn26.ph.i, %.body.thread67.i ], [ %lpad.thr_comm.i, %.thread.i ] invoke void @"_ZN4core3ptr52drop_in_place$LT$rustfmt_nightly..config..Config$GT$17hdec1a3ed2649d61aE"(ptr noalias noundef nonnull align 8 dereferenceable(872) %23) #49 - to label %.thread98.i unwind label %93, !noalias !887 + to label %.body.thread67.thread.i unwind label %93, !noalias !887 "_ZN15rustfmt_nightly14format_snippet28_$u7b$$u7b$closure$u7d$$u7d$17ha898b5595f86278fE.exit": ; preds = %166, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h27f30dfd67318ac1E.exit.i" %.sroa.01.1 = phi i64 [ -9223372036854775808, %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h27f30dfd67318ac1E.exit.i" ], [ %.sroa.01.0, %166 ] diff --git a/bench/stb/optimized/stb_tilemap_editor.c.ll b/bench/stb/optimized/stb_tilemap_editor.c.ll index 70a599ae380..5a8e7ef4c23 100644 --- a/bench/stb/optimized/stb_tilemap_editor.c.ll +++ b/bench/stb/optimized/stb_tilemap_editor.c.ll @@ -11017,8 +11017,8 @@ for.body149: ; preds = %for.cond144.prehead if.end157: ; preds = %for.body149, %if.end14, %for.cond144.preheader, %if.end115 %cmp159282 = icmp slt i32 %spec.store.select1, %j1.0 %cmp162280 = icmp slt i32 %spec.store.select, %spec.select - %or.cond323 = select i1 %cmp159282, i1 %cmp162280, i1 false - br i1 %or.cond323, label %for.cond161.preheader.us, label %for.end181 + %or.cond326 = select i1 %cmp159282, i1 %cmp162280, i1 false + br i1 %or.cond326, label %for.cond161.preheader.us, label %for.end181 for.cond161.preheader.us: ; preds = %if.end157, %for.cond161.for.inc179_crit_edge.us %j.3283.us = phi i32 [ %inc180.us, %for.cond161.for.inc179_crit_edge.us ], [ %spec.store.select1, %if.end157 ] @@ -11288,7 +11288,7 @@ for.body293: ; preds = %for.body293.prehead if.then314: ; preds = %for.body293 %trunc = trunc nuw i32 %j.4285 to i1 - br i1 %trunc, label %sw.bb319, label %sw.bb315 + br i1 %trunc, label %for.inc323.thread, label %sw.bb315 sw.bb315: ; preds = %if.then314 %cmp316 = icmp slt i32 %call312, 1 @@ -11296,16 +11296,16 @@ sw.bb315: ; preds = %if.then314 store i32 %cond317, ptr %side318, align 8 br label %for.inc323 -sw.bb319: ; preds = %if.then314 +for.inc323.thread: ; preds = %if.then314 %161 = load i32, ptr %delta_height, align 4 %add320 = add nsw i32 %161, %call312 store i32 %add320, ptr %delta_height, align 4 - br label %for.inc323 + br label %for.inc326 -for.inc323: ; preds = %for.body293, %sw.bb319, %sw.bb315 +for.inc323: ; preds = %for.body293, %sw.bb315 br i1 %cmp292, label %for.body293, label %for.inc326, !llvm.loop !71 -for.inc326: ; preds = %for.inc323, %sw.epilog +for.inc326: ; preds = %for.inc323, %for.inc323.thread, %sw.epilog %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond300.not = icmp eq i64 %indvars.iv.next, 7 br i1 %exitcond300.not, label %for.end328, label %for.body214, !llvm.loop !72 diff --git a/bench/syn/optimized/10g9nn9r9o3auy7y.ll b/bench/syn/optimized/10g9nn9r9o3auy7y.ll index 9649dae404b..ff90c3bb5af 100644 --- a/bench/syn/optimized/10g9nn9r9o3auy7y.ll +++ b/bench/syn/optimized/10g9nn9r9o3auy7y.ll @@ -6023,7 +6023,7 @@ _ZN11proc_macro23imp7Literal7subspan17h83a9d963fb54a8d5E.exit.i116.i: ; preds = .body337: ; preds = %.loopexit972, %.loopexit.split-lp973, %918, %862, %795, %1102, %1100, %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$syn..path..AngleBracketedGenericArguments$GT$$GT$17h90338f259e5b6da4E.exit382" %.2236 = phi i8 [ %.0234, %1102 ], [ %.0234, %1100 ], [ %.0234, %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$syn..path..AngleBracketedGenericArguments$GT$$GT$17h90338f259e5b6da4E.exit382" ], [ 0, %918 ], [ 0, %862 ], [ 0, %795 ], [ %.1235.ph, %.loopexit972 ], [ %.0234, %.loopexit.split-lp973 ] - %.6 = phi i8 [ %.11, %1102 ], [ %.11, %1100 ], [ %.11, %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$syn..path..AngleBracketedGenericArguments$GT$$GT$17h90338f259e5b6da4E.exit382" ], [ 1, %918 ], [ 1, %862 ], [ 1, %795 ], [ 1, %.loopexit972 ], [ %.15, %.loopexit.split-lp973 ] + %.6 = phi i8 [ %.11, %1102 ], [ %.11, %1100 ], [ %.11, %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$syn..path..AngleBracketedGenericArguments$GT$$GT$17h90338f259e5b6da4E.exit382" ], [ 1, %918 ], [ 1, %862 ], [ 1, %795 ], [ 1, %.loopexit972 ], [ 1, %.loopexit.split-lp973 ] %.pn270 = phi { ptr, i32 } [ %.pn264.pn.pn, %1102 ], [ %.pn264.pn.pn, %1100 ], [ %.pn264.pn.pn, %"_ZN4core3ptr90drop_in_place$LT$core..option..Option$LT$syn..path..AngleBracketedGenericArguments$GT$$GT$17h90338f259e5b6da4E.exit382" ], [ %919, %918 ], [ %863, %862 ], [ %.pn79.i, %795 ], [ %lpad.loopexit974, %.loopexit972 ], [ %lpad.loopexit.split-lp975, %.loopexit.split-lp973 ] %923 = load ptr, ptr %125, align 8, !noundef !4 %.not272 = icmp eq ptr %923, null @@ -6072,7 +6072,7 @@ _ZN11proc_macro23imp7Literal7subspan17h83a9d963fb54a8d5E.exit.i116.i: ; preds = br i1 %brmerge.not, label %1046, label %"_ZN4core3ptr39drop_in_place$LT$syn..lit..LitFloat$GT$17h22512bce4bc746bcE.exit" 931: ; preds = %937, %1078, %1097, %1099 - %.10 = phi i8 [ 1, %937 ], [ %.15, %1099 ], [ %.15, %1097 ], [ %.15, %1078 ] + %.10 = phi i8 [ 1, %937 ], [ 1, %1099 ], [ %.15, %1097 ], [ %.15, %1078 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %124) %932 = trunc nuw i8 %.0234 to i1 %933 = load ptr, ptr %125, align 8, !noundef !4 @@ -6715,7 +6715,7 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i341: ; preds = %961, invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.8351105841907204142"(ptr noalias noundef nonnull readonly align 1 %661, ptr noundef nonnull %1086, i64 noundef 8, i64 noundef 56) to label %"_ZN4core3ptr39drop_in_place$LT$syn..lit..LitFloat$GT$17h22512bce4bc746bcE.exit380" unwind label %.body369.thread1394.loopexit.split-lp -.thread836: ; preds = %1081, %976, %.body304 +.thread836: ; preds = %976, %.body304, %1081 %.pn264.pn843 = phi { ptr, i32 } [ %977, %976 ], [ %993, %.body304 ], [ %.pn, %1081 ] %.12842 = phi i8 [ 1, %976 ], [ 0, %.body304 ], [ 0, %1081 ] %.2218841 = phi i8 [ 1, %976 ], [ 1, %.body304 ], [ 0, %1081 ] @@ -8033,7 +8033,7 @@ define hidden void @_ZN3syn4expr7parsing18expr_struct_helper17h6ac1c4fceea22dfdE .thread232: ; preds = %4 %36 = landingpad { ptr, i32 } cleanup - br label %263 + br label %262 37: ; preds = %.noexc call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %20) @@ -8520,7 +8520,7 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i119: ; preds = %102, invoke void @"_ZN4core3ptr97drop_in_place$LT$syn..punctuated..Punctuated$LT$syn..expr..FieldValue$C$syn..token..Comma$GT$$GT$17hbaa0531028875bdbE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %28) to label %178 unwind label %176 -173: ; preds = %263, %228, %175, %264, %.thread, %.thread192, %229, %"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17hf53fc94e58f16349E.exit146", %.body137, %"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17hf53fc94e58f16349E.exit", %.body, %123 +173: ; preds = %262, %228, %175, %.thread242, %.thread, %.thread192, %229, %"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17hf53fc94e58f16349E.exit146", %.body137, %"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17hf53fc94e58f16349E.exit", %.body, %123 %174 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #17 @@ -8713,7 +8713,7 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i119: ; preds = %102, %.2 = phi i8 [ %.1175, %.thread ], [ %.7, %231 ], [ %.6217, %240 ], [ %.6217, %235 ] %.pn108 = phi { ptr, i32 } [ %.pn106176, %.thread ], [ %232, %231 ], [ %236, %240 ], [ %236, %235 ] %230 = trunc nuw i8 %.2 to i1 - br i1 %230, label %263, label %"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17hf53fc94e58f16349E.exit159" + br i1 %230, label %262, label %common.resume 231: ; preds = %245, %120 %.7 = phi i8 [ 0, %120 ], [ %.6217, %245 ] @@ -8777,55 +8777,48 @@ _ZN3syn5parse11ParseBuffer4span17h1ca0c8b0ffc956f0E.exit.i.i119: ; preds = %102, unreachable 248: ; preds = %.thread237, %.noexc148 - %.3231239 = phi i8 [ 1, %.thread237 ], [ %.6217, %.noexc148 ] invoke void @"_ZN4core3ptr100drop_in_place$LT$syn..punctuated..Punctuated$LT$syn..path..PathSegment$C$syn..token..PathSep$GT$$GT$17h13752162596ca7d3E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %3) - to label %.thread240 unwind label %250 - -"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17hf53fc94e58f16349E.exit159": ; preds = %263, %250, %.body131 - %.8 = phi i8 [ %.3231239, %250 ], [ %.2, %.body131 ], [ %.2235, %263 ] - %.pn110 = phi { ptr, i32 } [ %251, %250 ], [ %.pn108, %.body131 ], [ %.pn108236, %263 ] - %249 = trunc nuw i8 %.8 to i1 - br i1 %249, label %264, label %common.resume + to label %.thread240 unwind label %249 -250: ; preds = %248 - %251 = landingpad { ptr, i32 } +249: ; preds = %248 + %250 = landingpad { ptr, i32 } cleanup - br label %"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17hf53fc94e58f16349E.exit159" + br label %.thread242 .thread240: ; preds = %248 call void @llvm.experimental.noalias.scope.decl(metadata !1355) - %252 = load i32, ptr %2, align 8, !range !51, !alias.scope !1355, !noundef !4 - %253 = icmp eq i32 %252, 2 - br i1 %253, label %"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$syn..path..QSelf$GT$$GT$17h15b9cba33f02f510E.exit157", label %254 + %251 = load i32, ptr %2, align 8, !range !51, !alias.scope !1355, !noundef !4 + %252 = icmp eq i32 %251, 2 + br i1 %252, label %"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$syn..path..QSelf$GT$$GT$17h15b9cba33f02f510E.exit157", label %253 -254: ; preds = %.thread240 +253: ; preds = %.thread240 call void @llvm.experimental.noalias.scope.decl(metadata !1358) - %255 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %254 = getelementptr inbounds nuw i8, ptr %2, i64 8 call void @llvm.experimental.noalias.scope.decl(metadata !1361) - %256 = load ptr, ptr %255, align 8, !alias.scope !1364, !noundef !4 - invoke void @"_ZN4core3ptr34drop_in_place$LT$syn..ty..Type$GT$17hf19370f1216ec530E.llvm.8351105841907204142"(ptr noalias noundef align 8 dereferenceable(232) %256) #16 - to label %"_ZN4core3ptr37drop_in_place$LT$syn..path..QSelf$GT$17h4a2b3ceac933e2f8E.exit.i156" unwind label %257, !noalias !1364 + %255 = load ptr, ptr %254, align 8, !alias.scope !1364, !noundef !4 + invoke void @"_ZN4core3ptr34drop_in_place$LT$syn..ty..Type$GT$17hf19370f1216ec530E.llvm.8351105841907204142"(ptr noalias noundef align 8 dereferenceable(232) %255) #16 + to label %"_ZN4core3ptr37drop_in_place$LT$syn..path..QSelf$GT$17h4a2b3ceac933e2f8E.exit.i156" unwind label %256, !noalias !1364 -257: ; preds = %254 - %258 = landingpad { ptr, i32 } +256: ; preds = %253 + %257 = landingpad { ptr, i32 } cleanup - %259 = getelementptr inbounds nuw i8, ptr %2, i64 16 - invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.8351105841907204142"(ptr noalias noundef nonnull readonly align 1 %259, ptr noundef nonnull %256, i64 noundef 8, i64 noundef 232) - to label %common.resume unwind label %260 + %258 = getelementptr inbounds nuw i8, ptr %2, i64 16 + invoke void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.8351105841907204142"(ptr noalias noundef nonnull readonly align 1 %258, ptr noundef nonnull %255, i64 noundef 8, i64 noundef 232) + to label %common.resume unwind label %259 -common.resume: ; preds = %"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17hf53fc94e58f16349E.exit159", %264, %110, %115, %257 - %common.resume.op = phi { ptr, i32 } [ %258, %257 ], [ %.pn110, %264 ], [ %.pn110, %"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17hf53fc94e58f16349E.exit159" ], [ %111, %110 ], [ %111, %115 ] +common.resume: ; preds = %.body131, %.thread242, %110, %115, %256 + %common.resume.op = phi { ptr, i32 } [ %257, %256 ], [ %.pn110246, %.thread242 ], [ %111, %110 ], [ %111, %115 ], [ %.pn108, %.body131 ] resume { ptr, i32 } %common.resume.op -260: ; preds = %257 - %261 = landingpad { ptr, i32 } +259: ; preds = %256 + %260 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #17 unreachable -"_ZN4core3ptr37drop_in_place$LT$syn..path..QSelf$GT$17h4a2b3ceac933e2f8E.exit.i156": ; preds = %254 - %262 = getelementptr inbounds nuw i8, ptr %2, i64 16 - call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.8351105841907204142"(ptr noalias noundef nonnull readonly align 1 %262, ptr noundef nonnull %256, i64 noundef 8, i64 noundef 232) +"_ZN4core3ptr37drop_in_place$LT$syn..path..QSelf$GT$17h4a2b3ceac933e2f8E.exit.i156": ; preds = %253 + %261 = getelementptr inbounds nuw i8, ptr %2, i64 16 + call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.8351105841907204142"(ptr noalias noundef nonnull readonly align 1 %261, ptr noundef nonnull %255, i64 noundef 8, i64 noundef 232) br label %"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$syn..path..QSelf$GT$$GT$17h15b9cba33f02f510E.exit157" .thread: ; preds = %229, %.body137, %.body162, %46, %.thread192, %.thread177 @@ -8834,13 +8827,13 @@ common.resume: ; preds = %"_ZN4core3ptr36drop invoke void @"_ZN4core3ptr44drop_in_place$LT$syn..parse..ParseBuffer$GT$17h7e458d231d4cdfc6E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %33) #19 to label %.body131 unwind label %173 -263: ; preds = %.thread232, %.body131 +262: ; preds = %.thread232, %.body131 %.pn108236 = phi { ptr, i32 } [ %36, %.thread232 ], [ %.pn108, %.body131 ] - %.2235 = phi i8 [ 1, %.thread232 ], [ %.2, %.body131 ] invoke void @"_ZN4core3ptr100drop_in_place$LT$syn..punctuated..Punctuated$LT$syn..path..PathSegment$C$syn..token..PathSep$GT$$GT$17h13752162596ca7d3E"(ptr noalias noundef nonnull align 8 dereferenceable(48) %3) - to label %"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17hf53fc94e58f16349E.exit159" unwind label %173 + to label %.thread242 unwind label %173 -264: ; preds = %"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17hf53fc94e58f16349E.exit159" +.thread242: ; preds = %262, %249 + %.pn110246 = phi { ptr, i32 } [ %250, %249 ], [ %.pn108236, %262 ] invoke fastcc void @"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$syn..path..QSelf$GT$$GT$17h15b9cba33f02f510E"(ptr noalias noundef align 8 dereferenceable(32) %2) #19 to label %common.resume unwind label %173 } diff --git a/bench/tinyrenderer/optimized/tgaimage.cpp.ll b/bench/tinyrenderer/optimized/tgaimage.cpp.ll index ac87c2ae168..7681dd0fa88 100644 --- a/bench/tinyrenderer/optimized/tgaimage.cpp.ll +++ b/bench/tinyrenderer/optimized/tgaimage.cpp.ll @@ -884,7 +884,7 @@ define dso_local noundef zeroext i1 @_ZNK8TGAImage15unload_rle_dataERSt14basic_o 18: ; preds = %..critedge_crit_edge.us %brmerge48.us = or i1 %29, %35 - br i1 %brmerge48.us, label %19, label %.loopexit.loopexit87.split.loop.exit96 + br i1 %brmerge48.us, label %19, label %.loopexit.loopexit87.split.loop.exit97 19: ; preds = %18 %indvars.iv.next80 = add nuw nsw i64 %indvars.iv79, 1 @@ -928,7 +928,7 @@ define dso_local noundef zeroext i1 @_ZNK8TGAImage15unload_rle_dataERSt14basic_o .split.us: ; preds = %..critedge_crit_edge.us, %.preheader %.us-phi.in = phi i64 [ %indvars.iv82, %.preheader ], [ %indvars.iv79, %..critedge_crit_edge.us ] - %.us-phi62 = phi i8 [ %.2, %.preheader ], [ %.2.us, %..critedge_crit_edge.us ] + %.us-phi62 = phi i8 [ %.03856, %.preheader ], [ %.2.us, %..critedge_crit_edge.us ] %.us-phi = trunc i64 %.us-phi.in to i8 %38 = add nsw i8 %.us-phi, -1 br label %.loopexit @@ -942,13 +942,13 @@ define dso_local noundef zeroext i1 @_ZNK8TGAImage15unload_rle_dataERSt14basic_o %44 = and i1 %43, %41 br i1 %44, label %.preheader, label %.loopexit, !llvm.loop !19 -.loopexit.loopexit87.split.loop.exit96: ; preds = %18 +.loopexit.loopexit87.split.loop.exit97: ; preds = %18 %45 = trunc nuw nsw i64 %indvars.iv79 to i8 br label %.loopexit -.loopexit: ; preds = %19, %39, %.loopexit.loopexit87.split.loop.exit96, %11, %.split.us - %.140 = phi i8 [ %38, %.split.us ], [ 1, %11 ], [ %45, %.loopexit.loopexit87.split.loop.exit96 ], [ %42, %39 ], [ %indvars, %19 ] - %.1 = phi i8 [ %.us-phi62, %.split.us ], [ 1, %11 ], [ %.2.us, %.loopexit.loopexit87.split.loop.exit96 ], [ %.2, %39 ], [ %.2.us, %19 ] +.loopexit: ; preds = %19, %39, %.loopexit.loopexit87.split.loop.exit97, %11, %.split.us + %.140 = phi i8 [ %38, %.split.us ], [ 1, %11 ], [ %45, %.loopexit.loopexit87.split.loop.exit97 ], [ %42, %39 ], [ %indvars, %19 ] + %.1 = phi i8 [ %.us-phi62, %.split.us ], [ 1, %11 ], [ %.2.us, %.loopexit.loopexit87.split.loop.exit97 ], [ %.2, %39 ], [ %.2.us, %19 ] %46 = trunc nuw i8 %.1 to i1 %.v = select i1 %46, i8 -1, i8 127 %47 = add i8 %.v, %.140 diff --git a/bench/tls-rs/optimized/1edtspt3qu76t3sp.ll b/bench/tls-rs/optimized/1edtspt3qu76t3sp.ll index df0331f3a48..a8824ed02b2 100644 --- a/bench/tls-rs/optimized/1edtspt3qu76t3sp.ll +++ b/bench/tls-rs/optimized/1edtspt3qu76t3sp.ll @@ -6390,7 +6390,7 @@ define noundef zeroext i1 @"_ZN69_$LT$rustls..key_log_file..KeyLogFile$u20$as$u2 %13 = getelementptr inbounds nuw i8, ptr %3, i64 24 store i64 0, ptr %13, align 8 %14 = invoke noundef zeroext i1 @_ZN4core3fmt9Formatter9write_fmt17heacf5dba8c40948fE(ptr noalias noundef nonnull align 8 dereferenceable(64) %1, ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %3) - to label %51 unwind label %44 + to label %.thread unwind label %44 15: ; preds = %17 %16 = landingpad { ptr, i32 } @@ -6398,7 +6398,7 @@ define noundef zeroext i1 @"_ZN69_$LT$rustls..key_log_file..KeyLogFile$u20$as$u2 %.val6 = load ptr, ptr %6, align 8, !nonnull !4, !align !6, !noundef !4 %.val7 = load i8, ptr %22, align 8, !range !256, !noundef !4 invoke fastcc void @"_ZN4core3ptr94drop_in_place$LT$std..sync..mutex..MutexGuard$LT$rustls..key_log_file..KeyLogFileInner$GT$$GT$17he11d5345cec3d6bdE"(ptr nonnull %.val6, i8 %.val7) #38 - to label %41 unwind label %49 + to label %41 unwind label %48 17: ; preds = %2 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) @@ -6455,17 +6455,17 @@ _ZN3std9panicking11panic_count13count_is_zero17h66cf19443d869469E.exit.i.i.i: ; _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i: ; preds = %37, %.noexc, %32, %29 %38 = atomicrmw xchg ptr %.val, i32 0 release, align 4 %39 = icmp eq i32 %38, 2 - br i1 %39, label %40, label %"_ZN4core3ptr94drop_in_place$LT$std..sync..mutex..MutexGuard$LT$rustls..key_log_file..KeyLogFileInner$GT$$GT$17he11d5345cec3d6bdE.exit" + br i1 %39, label %40, label %46 40: ; preds = %_ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i invoke void @_ZN3std3sys4unix5locks11futex_mutex5Mutex4wake17hb07a3d057da5ea39E(ptr noundef nonnull align 4 %.val) - to label %"_ZN4core3ptr94drop_in_place$LT$std..sync..mutex..MutexGuard$LT$rustls..key_log_file..KeyLogFileInner$GT$$GT$17he11d5345cec3d6bdE.exit" unwind label %44 + to label %46 unwind label %44 41: ; preds = %15, %44 %42 = phi i64 [ %.pre, %44 ], [ %8, %15 ] %.pn = phi { ptr, i32 } [ %45, %44 ], [ %16, %15 ] %43 = icmp eq i64 %42, 0 - br i1 %43, label %54, label %55 + br i1 %43, label %52, label %53 44: ; preds = %40, %_ZN3std9panicking11panic_count13count_is_zero17h66cf19443d869469E.exit.i.i.i, %9 %45 = landingpad { ptr, i32 } @@ -6473,41 +6473,38 @@ _ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i: ; preds = %37, %.noe %.pre = load i64, ptr %7, align 8, !range !56 br label %41 -"_ZN4core3ptr94drop_in_place$LT$std..sync..mutex..MutexGuard$LT$rustls..key_log_file..KeyLogFileInner$GT$$GT$17he11d5345cec3d6bdE.exit": ; preds = %_ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i, %40 +46: ; preds = %40, %_ZN3std4sync6poison4Flag4done17h5bffa24fa61aa5e0E.exit.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) %.pre9 = load i64, ptr %7, align 8, !range !56 - br label %46 + %47 = icmp eq i64 %.pre9, 0 + br i1 %47, label %50, label %51 -46: ; preds = %51, %"_ZN4core3ptr94drop_in_place$LT$std..sync..mutex..MutexGuard$LT$rustls..key_log_file..KeyLogFileInner$GT$$GT$17he11d5345cec3d6bdE.exit" - %47 = phi i64 [ %8, %51 ], [ %.pre9, %"_ZN4core3ptr94drop_in_place$LT$std..sync..mutex..MutexGuard$LT$rustls..key_log_file..KeyLogFileInner$GT$$GT$17he11d5345cec3d6bdE.exit" ] - %.0.in = phi i1 [ %14, %51 ], [ %28, %"_ZN4core3ptr94drop_in_place$LT$std..sync..mutex..MutexGuard$LT$rustls..key_log_file..KeyLogFileInner$GT$$GT$17he11d5345cec3d6bdE.exit" ] - %48 = icmp eq i64 %47, 0 - br i1 %48, label %52, label %53 - -49: ; preds = %15, %55 - %50 = landingpad { ptr, i32 } +48: ; preds = %15, %53 + %49 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #37 unreachable -51: ; preds = %9 +.thread: ; preds = %9 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %3) - br label %46 + br label %51 -52: ; preds = %53, %46 +50: ; preds = %51, %46 + %.0.in12 = phi i1 [ %.0.in11, %51 ], [ %28, %46 ] call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7) - ret i1 %.0.in + ret i1 %.0.in12 -53: ; preds = %46 +51: ; preds = %.thread, %46 + %.0.in11 = phi i1 [ %14, %.thread ], [ %28, %46 ] call fastcc void @"_ZN4core3ptr237drop_in_place$LT$core..result..Result$LT$std..sync..mutex..MutexGuard$LT$rustls..key_log_file..KeyLogFileInner$GT$$C$std..sync..poison..TryLockError$LT$std..sync..mutex..MutexGuard$LT$rustls..key_log_file..KeyLogFileInner$GT$$GT$$GT$$GT$17h22211966169db7acE"(ptr noalias noundef align 8 dereferenceable(24) %7) - br label %52 + br label %50 -54: ; preds = %55, %41 +52: ; preds = %53, %41 resume { ptr, i32 } %.pn -55: ; preds = %41 +53: ; preds = %41 invoke fastcc void @"_ZN4core3ptr237drop_in_place$LT$core..result..Result$LT$std..sync..mutex..MutexGuard$LT$rustls..key_log_file..KeyLogFileInner$GT$$C$std..sync..poison..TryLockError$LT$std..sync..mutex..MutexGuard$LT$rustls..key_log_file..KeyLogFileInner$GT$$GT$$GT$$GT$17h22211966169db7acE"(ptr noalias noundef align 8 dereferenceable(24) %7) #38 - to label %54 unwind label %49 + to label %52 unwind label %48 } ; Function Attrs: cold noreturn nonlazybind uwtable diff --git a/bench/tokio-rs/optimized/26wlg4yx86ilo6a1.ll b/bench/tokio-rs/optimized/26wlg4yx86ilo6a1.ll index 651ce7aae88..8f2cb6085b1 100644 --- a/bench/tokio-rs/optimized/26wlg4yx86ilo6a1.ll +++ b/bench/tokio-rs/optimized/26wlg4yx86ilo6a1.ll @@ -6015,7 +6015,7 @@ define void @_ZN5tokio3net3tcp6stream9TcpStream9poll_peek17h39735745176b91c2E(pt unreachable .lr.ph.split.split: ; preds = %.lr.ph.split, %"_ZN4core3ptr78drop_in_place$LT$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$17hfe11d3f28b9c5098E.exit" - %31 = phi i8 [ %68, %"_ZN4core3ptr78drop_in_place$LT$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$17hfe11d3f28b9c5098E.exit" ], [ %11, %.lr.ph.split ] + %31 = phi i8 [ %66, %"_ZN4core3ptr78drop_in_place$LT$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$17hfe11d3f28b9c5098E.exit" ], [ %11, %.lr.ph.split ] %.sroa.08.0.copyload = load ptr, ptr %9, align 8 %.sroa.3.0.copyload = load i8, ptr %.sroa.3.0..sroa_idx, align 8 %32 = icmp eq i8 %31, 2 @@ -6023,7 +6023,7 @@ define void @_ZN5tokio3net3tcp6stream9TcpStream9poll_peek17h39735745176b91c2E(pt ._crit_edge: ; preds = %"_ZN4core3ptr78drop_in_place$LT$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$17hfe11d3f28b9c5098E.exit", %4 store i64 2, ptr %0, align 8 - br label %75 + br label %73 "_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hec563216202a5899E.exit": ; preds = %.lr.ph.split.split %33 = ptrtoint ptr %.sroa.08.0.copyload to i64 @@ -6041,7 +6041,7 @@ define void @_ZN5tokio3net3tcp6stream9TcpStream9poll_peek17h39735745176b91c2E(pt store i64 1, ptr %0, align 8 %.sroa.426.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.us-phi, ptr %.sroa.426.0..sroa_idx, align 8 - br label %75 + br label %73 36: ; preds = %"_ZN110_$LT$core..ops..range..RangeFrom$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17hec563216202a5899E.exit" %37 = load i64, ptr %22, align 8, !noundef !5 @@ -6070,7 +6070,7 @@ define void @_ZN5tokio3net3tcp6stream9TcpStream9poll_peek17h39735745176b91c2E(pt 50: ; preds = %46 invoke void @_ZN4core6option13expect_failed17hc85eb6037a3050f7E(ptr noalias noundef nonnull readonly align 1 @anon.847b8f12f691ee51e4721496cb17e98d.42, i64 noundef 15, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.847b8f12f691ee51e4721496cb17e98d.79) #26 - to label %.noexc unwind label %.loopexit.split-lp + to label %.noexc unwind label %57 .noexc: ; preds = %50 unreachable @@ -6091,25 +6091,21 @@ define void @_ZN5tokio3net3tcp6stream9TcpStream9poll_peek17h39735745176b91c2E(pt %56 = getelementptr inbounds nuw i8, ptr %7, i64 24 store i64 0, ptr %56, align 8, !noalias !1270 invoke void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.847b8f12f691ee51e4721496cb17e98d.79) #26 - to label %.noexc33 unwind label %.loopexit.split-lp + to label %.noexc33 unwind label %57 .noexc33: ; preds = %52 unreachable -.loopexit: ; preds = %60 +.thread: ; preds = %60 %lpad.loopexit = landingpad { ptr, i32 } cleanup - br label %57 + br label %69 -.loopexit.split-lp: ; preds = %50, %52 +57: ; preds = %52, %50 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup - br label %57 - -57: ; preds = %.loopexit.split-lp, %.loopexit - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] %.not = icmp eq i64 %34, 0 - br i1 %.not, label %72, label %71 + br i1 %.not, label %70, label %69 58: ; preds = %51 store i64 %38, ptr %15, align 8, !alias.scope !1267, !noalias !1272 @@ -6120,14 +6116,14 @@ define void @_ZN5tokio3net3tcp6stream9TcpStream9poll_peek17h39735745176b91c2E(pt 59: ; preds = %62, %58 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) - br label %70 + br label %68 60: ; preds = %42 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6), !noalias !1273 %61 = and i64 %33, -13 store i64 %61, ptr %6, align 8, !noalias !1273 invoke void @_ZN5tokio7runtime2io12scheduled_io11ScheduledIo13set_readiness17h0217fa951bf66eb3E(ptr noundef nonnull align 128 %25, i1 noundef zeroext true, i8 %.sroa.3.0.copyload, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %6) - to label %63 unwind label %.loopexit + to label %63 unwind label %.thread 62: ; preds = %42 store i64 1, ptr %0, align 8 @@ -6137,51 +6133,46 @@ define void @_ZN5tokio3net3tcp6stream9TcpStream9poll_peek17h39735745176b91c2E(pt 63: ; preds = %60 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6), !noalias !1273 - %64 = icmp eq i64 %34, 0 - br i1 %64, label %"_ZN4core3ptr78drop_in_place$LT$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$17hfe11d3f28b9c5098E.exit", label %65 - -65: ; preds = %63 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5), !noalias !1279 call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h235ed700ede80697E.llvm.700930863383756518(ptr noalias nocapture noundef nonnull sret({ i8, [15 x i8] }) align 8 dereferenceable(16) %5, ptr noundef nonnull %.val), !noalias !1279 - %66 = load i8, ptr %5, align 8, !range !972, !alias.scope !1286, !noalias !1279, !noundef !5 - %switch.not.i.i.i.i.i = icmp eq i8 %66, 3 - br i1 %switch.not.i.i.i.i.i, label %67, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hf4c1b22f54d2edfcE.exit.i" + %64 = load i8, ptr %5, align 8, !range !972, !alias.scope !1286, !noalias !1279, !noundef !5 + %switch.not.i.i.i.i.i = icmp eq i8 %64, 3 + br i1 %switch.not.i.i.i.i.i, label %65, label %"_ZN4core3ptr78drop_in_place$LT$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$17hfe11d3f28b9c5098E.exit" -67: ; preds = %65 +65: ; preds = %63 call void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17h07ef12dd56401839E.llvm.700930863383756518"(ptr noalias noundef nonnull align 8 dereferenceable(8) %26), !noalias !1279 - br label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hf4c1b22f54d2edfcE.exit.i" - -"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hf4c1b22f54d2edfcE.exit.i": ; preds = %67, %65 - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5), !noalias !1279 br label %"_ZN4core3ptr78drop_in_place$LT$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$17hfe11d3f28b9c5098E.exit" -"_ZN4core3ptr78drop_in_place$LT$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$17hfe11d3f28b9c5098E.exit": ; preds = %63, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hf4c1b22f54d2edfcE.exit.i" +"_ZN4core3ptr78drop_in_place$LT$core..result..Result$LT$usize$C$std..io..error..Error$GT$$GT$17hfe11d3f28b9c5098E.exit": ; preds = %63, %65 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5), !noalias !1279 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) call void @_ZN5tokio7runtime2io12registration12Registration10poll_ready17h5d9385252a49fdfaE(ptr noalias nocapture noundef nonnull sret({ [9 x i8], i8, [6 x i8] }) align 8 dereferenceable(16) %9, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %1, ptr noalias noundef nonnull align 8 dereferenceable(8) %2, i1 noundef zeroext false) - %68 = load i8, ptr %10, align 1, !range !972, !noundef !5 - %69 = icmp eq i8 %68, 3 - br i1 %69, label %._crit_edge, label %.lr.ph.split.split + %66 = load i8, ptr %10, align 1, !range !972, !noundef !5 + %67 = icmp eq i8 %66, 3 + br i1 %67, label %._crit_edge, label %.lr.ph.split.split -70: ; preds = %75, %59 +68: ; preds = %73, %59 ret void -71: ; preds = %57 +69: ; preds = %.thread, %57 + %lpad.phi78 = phi { ptr, i32 } [ %lpad.loopexit, %.thread ], [ %lpad.loopexit.split-lp, %57 ] invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17hf4c1b22f54d2edfcE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %22) #27 - to label %72 unwind label %73 + to label %70 unwind label %71 -72: ; preds = %71, %57 - resume { ptr, i32 } %lpad.phi +70: ; preds = %69, %57 + %lpad.phi79 = phi { ptr, i32 } [ %lpad.phi78, %69 ], [ %lpad.loopexit.split-lp, %57 ] + resume { ptr, i32 } %lpad.phi79 -73: ; preds = %71 - %74 = landingpad { ptr, i32 } +71: ; preds = %69 + %72 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #25 unreachable -75: ; preds = %.split.us, %._crit_edge +73: ; preds = %.split.us, %._crit_edge call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) - br label %70 + br label %68 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable diff --git a/bench/tokio-rs/optimized/2zetnb9vrfbe3smf.ll b/bench/tokio-rs/optimized/2zetnb9vrfbe3smf.ll index 562572548cd..5ccfd4a19a0 100644 --- a/bench/tokio-rs/optimized/2zetnb9vrfbe3smf.ll +++ b/bench/tokio-rs/optimized/2zetnb9vrfbe3smf.ll @@ -3753,10 +3753,10 @@ define hidden void @_ZN5tokio7runtime9scheduler12multi_thread6worker6create17he2 %47 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17h4f2782f083d791bdE"(i64 noundef %1, i1 noundef zeroext false) to label %50 unwind label %48 -.thread299: ; preds = %.body131, %.thread226, %120, %186, %190, %292, %.thread226.thread304, %48 - %.277 = phi i8 [ %.378210, %292 ], [ %.479223, %.thread226.thread304 ], [ 1, %48 ], [ 0, %190 ], [ 0, %186 ], [ 0, %120 ], [ %.681287, %.thread226 ], [ %.2107, %.body131 ] - %.2 = phi i8 [ 1, %292 ], [ 1, %.thread226.thread304 ], [ 1, %48 ], [ 0, %190 ], [ 0, %186 ], [ 0, %120 ], [ 1, %.thread226 ], [ 1, %.body131 ] - %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn212, %292 ], [ %.pn.pn.pn.pn225, %.thread226.thread304 ], [ %49, %48 ], [ %.pn119, %190 ], [ %.pn119, %186 ], [ %121, %120 ], [ %.pn119.pn289, %.thread226 ], [ %.pn113.pn, %.body131 ] +.thread299: ; preds = %.body131, %120, %186, %190, %292, %.thread226.thread304, %48 + %.277 = phi i8 [ 1, %292 ], [ 1, %.thread226.thread304 ], [ 1, %48 ], [ 0, %190 ], [ 0, %186 ], [ 0, %120 ], [ %.2107, %.body131 ] + %.2 = phi i8 [ 1, %292 ], [ 1, %.thread226.thread304 ], [ 1, %48 ], [ 0, %190 ], [ 0, %186 ], [ 0, %120 ], [ 1, %.body131 ] + %.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn212, %292 ], [ %.pn.pn.pn.pn225, %.thread226.thread304 ], [ %49, %48 ], [ %.pn119, %190 ], [ %.pn119, %186 ], [ %121, %120 ], [ %.pn113.pn, %.body131 ] invoke void @"_ZN4core3ptr122drop_in_place$LT$alloc..vec..Vec$LT$alloc..boxed..Box$LT$tokio..runtime..scheduler..multi_thread..worker..Core$GT$$GT$$GT$17h268da69b0b50b08bE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %34) #27 to label %38 unwind label %184 @@ -3820,10 +3820,6 @@ define hidden void @_ZN5tokio7runtime9scheduler12multi_thread6worker6create17he2 %78 = getelementptr inbounds nuw i8, ptr %8, i64 8 br label %81 -.thread226: ; preds = %192 - %.pre364 = trunc nuw i8 %.681287 to i1 - br i1 %.pre364, label %.thread216, label %.thread299 - .loopexit: ; preds = %81 %lpad.loopexit = landingpad { ptr, i32 } cleanup @@ -3840,8 +3836,8 @@ define hidden void @_ZN5tokio7runtime9scheduler12multi_thread6worker6create17he2 to label %86 unwind label %.loopexit.split-lp 81: ; preds = %.lr.ph, %275 - %.sroa.01.0343 = phi i64 [ 0, %.lr.ph ], [ %82, %275 ] - %82 = add nuw i64 %.sroa.01.0343, 1 + %.sroa.01.0344 = phi i64 [ 0, %.lr.ph ], [ %82, %275 ] + %82 = add nuw i64 %.sroa.01.0344, 1 %83 = invoke { ptr, ptr } @_ZN5tokio7runtime9scheduler12multi_thread5queue5local17heae6b937ba1b9a84E() to label %193 unwind label %.loopexit @@ -4039,7 +4035,7 @@ define hidden void @_ZN5tokio7runtime9scheduler12multi_thread6worker6create17he2 invoke void @"_ZN4core3ptr76drop_in_place$LT$tokio..runtime..scheduler..multi_thread..worker..Launch$GT$17h8883f73de050f3deE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %15) #27 to label %186 unwind label %184 -127: ; preds = %._crit_edge346, %124 +127: ; preds = %._crit_edge347, %124 %128 = landingpad { ptr, i32 } cleanup br label %"_ZN4core3ptr181drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..drain..Drain$LT$alloc..boxed..Box$LT$tokio..runtime..scheduler..multi_thread..worker..Core$GT$$GT$$GT$$GT$17h02c89311de487d3dE.exit" @@ -4065,9 +4061,9 @@ define hidden void @_ZN5tokio7runtime9scheduler12multi_thread6worker6create17he2 %.sroa.217.0..sroa_idx = getelementptr inbounds nuw i8, ptr %14, i64 40 store i64 0, ptr %.sroa.217.0..sroa_idx, align 8 %136 = icmp eq i64 %130, %131 - br i1 %136, label %._crit_edge346, label %.lr.ph345 + br i1 %136, label %._crit_edge347, label %.lr.ph346 -.lr.ph345: ; preds = %129 +.lr.ph346: ; preds = %129 %137 = getelementptr inbounds nuw i8, ptr %11, i64 8 %138 = getelementptr inbounds nuw i8, ptr %11, i64 16 %.sroa.4204.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 24 @@ -4079,12 +4075,12 @@ define hidden void @_ZN5tokio7runtime9scheduler12multi_thread6worker6create17he2 invoke void @"_ZN79_$LT$alloc..vec..drain..Drain$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4408fc8ef55d0870E.llvm.700930863383756518"(ptr noalias noundef nonnull align 8 dereferenceable(48) %14) to label %"_ZN4core3ptr181drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..drain..Drain$LT$alloc..boxed..Box$LT$tokio..runtime..scheduler..multi_thread..worker..Core$GT$$GT$$GT$$GT$17h02c89311de487d3dE.exit" unwind label %184 -._crit_edge346: ; preds = %175, %129 +._crit_edge347: ; preds = %175, %129 invoke void @"_ZN79_$LT$alloc..vec..drain..Drain$LT$T$C$A$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4408fc8ef55d0870E.llvm.700930863383756518"(ptr noalias noundef nonnull align 8 dereferenceable(48) %14) to label %"_ZN4core3ptr181drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..drain..Drain$LT$alloc..boxed..Box$LT$tokio..runtime..scheduler..multi_thread..worker..Core$GT$$GT$$GT$$GT$17h02c89311de487d3dE.exit136" unwind label %127 -139: ; preds = %.lr.ph345, %175 - %140 = phi ptr [ %133, %.lr.ph345 ], [ %182, %175 ] +139: ; preds = %.lr.ph346, %175 + %140 = phi ptr [ %133, %.lr.ph346 ], [ %182, %175 ] call void @llvm.experimental.noalias.scope.decl(metadata !684) call void @llvm.experimental.noalias.scope.decl(metadata !687) %141 = getelementptr inbounds nuw i8, ptr %140, i64 8 @@ -4101,7 +4097,7 @@ define hidden void @_ZN5tokio7runtime9scheduler12multi_thread6worker6create17he2 call void @llvm.trap() unreachable -"_ZN4core3ptr181drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..drain..Drain$LT$alloc..boxed..Box$LT$tokio..runtime..scheduler..multi_thread..worker..Core$GT$$GT$$GT$$GT$17h02c89311de487d3dE.exit136": ; preds = %._crit_edge346 +"_ZN4core3ptr181drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..drain..Drain$LT$alloc..boxed..Box$LT$tokio..runtime..scheduler..multi_thread..worker..Core$GT$$GT$$GT$$GT$17h02c89311de487d3dE.exit136": ; preds = %._crit_edge347 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %14) store ptr %117, ptr %0, align 8 %148 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -4212,9 +4208,9 @@ define hidden void @_ZN5tokio7runtime9scheduler12multi_thread6worker6create17he2 %181 = load ptr, ptr %.sroa.016.sroa.2.0..sroa_idx, align 8, !alias.scope !718, !nonnull !19, !noundef !19 %182 = load ptr, ptr %14, align 8, !alias.scope !718, !nonnull !19, !noundef !19 %183 = icmp eq ptr %182, %181 - br i1 %183, label %._crit_edge346, label %139 + br i1 %183, label %._crit_edge347, label %139 -184: ; preds = %305, %300, %291, %287, %282, %227, %191, %190, %.body139, %103, %"_ZN4core3ptr146drop_in_place$LT$tokio..runtime..task..list..OwnedTasks$LT$alloc..sync..Arc$LT$tokio..runtime..scheduler..multi_thread..handle..Handle$GT$$GT$$GT$17h5aeceb602446b18aE.exit", %.thread275, %295, %292, %.thread216, %.thread238, %278, %"_ZN4core3ptr102drop_in_place$LT$core..option..Option$LT$tokio..runtime..scheduler..multi_thread..park..Parker$GT$$GT$17h61b350146ec8c270E.exit", %192, %"_ZN4core3ptr166drop_in_place$LT$tokio..loom..std..parking_lot..Mutex$LT$alloc..vec..Vec$LT$alloc..boxed..Box$LT$tokio..runtime..scheduler..multi_thread..worker..Core$GT$$GT$$GT$$GT$17hf32fb640747ea93cE.exit", %"_ZN4core3ptr181drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..drain..Drain$LT$alloc..boxed..Box$LT$tokio..runtime..scheduler..multi_thread..worker..Core$GT$$GT$$GT$$GT$17h02c89311de487d3dE.exit", %104, %.thread299 +184: ; preds = %305, %300, %291, %287, %282, %227, %191, %190, %.body139, %103, %"_ZN4core3ptr146drop_in_place$LT$tokio..runtime..task..list..OwnedTasks$LT$alloc..sync..Arc$LT$tokio..runtime..scheduler..multi_thread..handle..Handle$GT$$GT$$GT$17h5aeceb602446b18aE.exit", %.thread275, %295, %292, %.thread216, %.thread239, %278, %"_ZN4core3ptr102drop_in_place$LT$core..option..Option$LT$tokio..runtime..scheduler..multi_thread..park..Parker$GT$$GT$17h61b350146ec8c270E.exit", %192, %"_ZN4core3ptr166drop_in_place$LT$tokio..loom..std..parking_lot..Mutex$LT$alloc..vec..Vec$LT$alloc..boxed..Box$LT$tokio..runtime..scheduler..multi_thread..worker..Core$GT$$GT$$GT$$GT$17hf32fb640747ea93cE.exit", %"_ZN4core3ptr181drop_in_place$LT$core..iter..adapters..enumerate..Enumerate$LT$alloc..vec..drain..Drain$LT$alloc..boxed..Box$LT$tokio..runtime..scheduler..multi_thread..worker..Core$GT$$GT$$GT$$GT$17h02c89311de487d3dE.exit", %104, %.thread299 %185 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #28 @@ -4243,9 +4239,8 @@ define hidden void @_ZN5tokio7runtime9scheduler12multi_thread6worker6create17he2 192: ; preds = %.body131.thread, %.body131 %.pn119.pn289 = phi { ptr, i32 } [ %85, %.body131.thread ], [ %.pn113.pn, %.body131 ] - %.681287 = phi i8 [ 1, %.body131.thread ], [ %.2107, %.body131 ] invoke void @"_ZN4core3ptr74drop_in_place$LT$tokio..runtime..scheduler..multi_thread..idle..Synced$GT$17h3f106ddddc9f60e4E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %23) #27 - to label %.thread226 unwind label %184 + to label %.thread216 unwind label %184 193: ; preds = %81 %194 = extractvalue { ptr, ptr } %83, 0 @@ -4282,12 +4277,12 @@ define hidden void @_ZN5tokio7runtime9scheduler12multi_thread6worker6create17he2 cleanup %205 = atomicrmw sub ptr %198, i64 1 release, align 8, !noalias !741 %206 = icmp eq i64 %205, 1 - br i1 %206, label %207, label %.thread238 + br i1 %206, label %207, label %.thread239 207: ; preds = %203 fence acquire invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hbfeaf56c9b11782fE"(ptr noalias noundef nonnull align 8 dereferenceable(32) %62) - to label %.thread238 unwind label %208, !noalias !735 + to label %.thread239 unwind label %208, !noalias !735 208: ; preds = %207 %209 = landingpad { ptr, i32 } @@ -4309,7 +4304,7 @@ define hidden void @_ZN5tokio7runtime9scheduler12multi_thread6worker6create17he2 unreachable .thread268: ; preds = %.thread260, %282 - br i1 %.399257, label %283, label %"_ZN4core3ptr74drop_in_place$LT$tokio..runtime..scheduler..multi_thread..park..Parker$GT$17hced509b37f454eb5E.exit167.thread" + br i1 %.399257, label %283, label %.thread310 214: ; preds = %274 %215 = landingpad { ptr, i32 } @@ -4536,20 +4531,20 @@ _ZN5tokio7runtime9scheduler12multi_thread5stats5Stats27tuned_global_queue_interv %284 = load ptr, ptr %29, align 8, !alias.scope !800, !nonnull !19, !noundef !19 %285 = atomicrmw sub ptr %284, i64 1 release, align 8, !noalias !800 %286 = icmp eq i64 %285, 1 - br i1 %286, label %287, label %.thread238 + br i1 %286, label %287, label %.thread239 287: ; preds = %283 fence acquire invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h893350e6aa5761a8E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %29) - to label %.thread238 unwind label %184 + to label %.thread239 unwind label %184 -.thread238: ; preds = %287, %283, %203, %207 - %.pn.pn.pn245 = phi { ptr, i32 } [ %204, %207 ], [ %204, %203 ], [ %.pn259, %283 ], [ %.pn259, %287 ] +.thread239: ; preds = %283, %287, %207, %203 + %.pn.pn.pn246 = phi { ptr, i32 } [ %204, %207 ], [ %204, %203 ], [ %.pn259, %287 ], [ %.pn259, %283 ] invoke void @"_ZN4core3ptr161drop_in_place$LT$tokio..runtime..scheduler..multi_thread..queue..Local$LT$alloc..sync..Arc$LT$tokio..runtime..scheduler..multi_thread..handle..Handle$GT$$GT$$GT$17h75025c21a1f4cd5dE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %30) #27 - to label %"_ZN4core3ptr74drop_in_place$LT$tokio..runtime..scheduler..multi_thread..park..Parker$GT$17hced509b37f454eb5E.exit167.thread" unwind label %184 + to label %.thread310 unwind label %184 -"_ZN4core3ptr74drop_in_place$LT$tokio..runtime..scheduler..multi_thread..park..Parker$GT$17hced509b37f454eb5E.exit167.thread": ; preds = %.thread238, %.thread268 - %.pn.pn.pn244 = phi { ptr, i32 } [ %.pn.pn.pn245, %.thread238 ], [ %.pn259, %.thread268 ] +.thread310: ; preds = %.thread239, %.thread268 + %.pn.pn.pn245 = phi { ptr, i32 } [ %.pn.pn.pn246, %.thread239 ], [ %.pn259, %.thread268 ] call void @llvm.experimental.noalias.scope.decl(metadata !801) call void @llvm.experimental.noalias.scope.decl(metadata !804) call void @llvm.experimental.noalias.scope.decl(metadata !807) @@ -4558,21 +4553,19 @@ _ZN5tokio7runtime9scheduler12multi_thread5stats5Stats27tuned_global_queue_interv %290 = icmp eq i64 %289, 1 br i1 %290, label %291, label %.thread216 -291: ; preds = %"_ZN4core3ptr74drop_in_place$LT$tokio..runtime..scheduler..multi_thread..park..Parker$GT$17hced509b37f454eb5E.exit167.thread" +291: ; preds = %.thread310 fence acquire invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h467c839c0287a51eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %31) to label %.thread216 unwind label %184 -.thread216: ; preds = %.loopexit, %.loopexit.split-lp, %214, %261, %"_ZN4core3ptr74drop_in_place$LT$tokio..runtime..scheduler..multi_thread..park..Parker$GT$17hced509b37f454eb5E.exit167.thread", %291, %.thread226 - %.pn.pn.pn.pn225 = phi { ptr, i32 } [ %.pn119.pn289, %.thread226 ], [ %.pn.pn.pn244, %291 ], [ %.pn.pn.pn244, %"_ZN4core3ptr74drop_in_place$LT$tokio..runtime..scheduler..multi_thread..park..Parker$GT$17hced509b37f454eb5E.exit167.thread" ], [ %215, %214 ], [ %262, %261 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] - %.479223 = phi i8 [ %.681287, %.thread226 ], [ 1, %291 ], [ 1, %"_ZN4core3ptr74drop_in_place$LT$tokio..runtime..scheduler..multi_thread..park..Parker$GT$17hced509b37f454eb5E.exit167.thread" ], [ 1, %214 ], [ 1, %261 ], [ 1, %.loopexit ], [ 1, %.loopexit.split-lp ] - %.183222 = phi i1 [ false, %.thread226 ], [ true, %291 ], [ true, %"_ZN4core3ptr74drop_in_place$LT$tokio..runtime..scheduler..multi_thread..park..Parker$GT$17hced509b37f454eb5E.exit167.thread" ], [ true, %214 ], [ true, %261 ], [ true, %.loopexit ], [ true, %.loopexit.split-lp ] +.thread216: ; preds = %192, %.loopexit, %.loopexit.split-lp, %214, %261, %.thread310, %291 + %.pn.pn.pn.pn225 = phi { ptr, i32 } [ %.pn.pn.pn245, %291 ], [ %.pn.pn.pn245, %.thread310 ], [ %215, %214 ], [ %262, %261 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ], [ %.pn119.pn289, %192 ] + %.183222 = phi i1 [ true, %291 ], [ true, %.thread310 ], [ true, %214 ], [ true, %261 ], [ true, %.loopexit ], [ true, %.loopexit.split-lp ], [ false, %192 ] invoke void @"_ZN4core3ptr88drop_in_place$LT$alloc..vec..Vec$LT$tokio..runtime..metrics..mock..WorkerMetrics$GT$$GT$17h9e7dcb2b810eeb30E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %32) #27 to label %.thread226.thread304 unwind label %184 292: ; preds = %.thread, %.thread226.thread304 %.pn.pn.pn.pn.pn212 = phi { ptr, i32 } [ %56, %.thread ], [ %.pn.pn.pn.pn225, %.thread226.thread304 ] - %.378210 = phi i8 [ 1, %.thread ], [ %.479223, %.thread226.thread304 ] invoke void @"_ZN4core3ptr99drop_in_place$LT$alloc..vec..Vec$LT$tokio..runtime..scheduler..multi_thread..worker..Remote$GT$$GT$17hb110bd1a4b7a2e93E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %33) #27 to label %.thread299 unwind label %184 diff --git a/bench/tree-sitter-rs/optimized/3uq0p4iqk1x8h2ls.ll b/bench/tree-sitter-rs/optimized/3uq0p4iqk1x8h2ls.ll index c41432d71de..e4a16d880b1 100644 --- a/bench/tree-sitter-rs/optimized/3uq0p4iqk1x8h2ls.ll +++ b/bench/tree-sitter-rs/optimized/3uq0p4iqk1x8h2ls.ll @@ -1192,7 +1192,7 @@ define hidden { i64, ptr } @"_ZN9once_cell6unsync17OnceCell$LT$T$GT$15get_or_try %8 = load i64, ptr %0, align 8, !range !203, !noundef !4 %trunc = trunc nuw i64 %8 to i1 %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 - br i1 %trunc, label %56, label %10 + br i1 %trunc, label %53, label %10 10: ; preds = %2 %.sroa.0.0.copyload = load ptr, ptr %1, align 8, !nonnull !4, !noundef !4 @@ -1275,21 +1275,22 @@ common.resume: ; preds = %27, %47 40: ; preds = %"_ZN18tree_sitter_loader6Loader15language_for_id28_$u7b$$u7b$closure$u7d$$u7d$17hb8728e6eb644fdc9E.exit" %41 = icmp ne ptr %.fca.1.extract, null - br label %.sink.split + call void @llvm.assume(i1 %41) + br label %53 42: ; preds = %"_ZN18tree_sitter_loader6Loader15language_for_id28_$u7b$$u7b$closure$u7d$$u7d$17hb8728e6eb644fdc9E.exit" call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) %43 = load i64, ptr %0, align 8, !range !203, !noalias !339, !noundef !4 %trunc.i.i = trunc nuw i64 %43 to i1 - br i1 %trunc.i.i, label %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit", label %44 + br i1 %trunc.i.i, label %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit.thread", label %44 44: ; preds = %42 %45 = icmp eq i64 %43, 0 - br i1 %45, label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$tree_sitter..Language$GT$$GT$17h5b67fa6ac2dd2723E.exit.i.i", label %46 + br i1 %45, label %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit", label %46 46: ; preds = %44 invoke void @"_ZN63_$LT$tree_sitter..Language$u20$as$u20$core..ops..drop..Drop$GT$4drop17h16817d4e8c1c3e09E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %9) - to label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$tree_sitter..Language$GT$$GT$17h5b67fa6ac2dd2723E.exit.i.i" unwind label %47, !noalias !339 + to label %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit" unwind label %47, !noalias !339 47: ; preds = %46 %48 = landingpad { ptr, i32 } @@ -1298,53 +1299,42 @@ common.resume: ; preds = %27, %47 store ptr %.fca.1.extract, ptr %9, align 8, !noalias !339 br label %common.resume -"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$tree_sitter..Language$GT$$GT$17h5b67fa6ac2dd2723E.exit.i.i": ; preds = %46, %44 +"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit": ; preds = %46 store i64 1, ptr %0, align 8, !noalias !339 store ptr %.fca.1.extract, ptr %9, align 8, !noalias !339 - br label %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit" + br label %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit.thread" -"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit": ; preds = %42, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$tree_sitter..Language$GT$$GT$17h5b67fa6ac2dd2723E.exit.i.i" - %49 = phi i64 [ %43, %42 ], [ 1, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$tree_sitter..Language$GT$$GT$17h5b67fa6ac2dd2723E.exit.i.i" ] +"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit": ; preds = %44 + store i64 1, ptr %0, align 8, !noalias !339 + store ptr %.fca.1.extract, ptr %9, align 8, !noalias !339 + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) + br label %53 + +"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit.thread": ; preds = %42, %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit" store i64 %43, ptr %7, align 8 %.fca.1.gep = getelementptr inbounds nuw i8, ptr %7, i64 8 store ptr %.fca.1.extract, ptr %.fca.1.gep, align 8 - %50 = icmp eq i64 %43, 0 - br i1 %50, label %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit", label %51 - -"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit": ; preds = %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit" - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) - %trunc16 = trunc nuw i64 %49 to i1 - br label %.sink.split - -51: ; preds = %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit" call fastcc void @"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE"(ptr noalias noundef align 8 dereferenceable(16) %7) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) store ptr @anon.5797861c9b37489455df470e033f6d21.34, ptr %6, align 8 - %52 = getelementptr inbounds nuw i8, ptr %6, i64 8 - store i64 1, ptr %52, align 8 - %53 = getelementptr inbounds nuw i8, ptr %6, i64 32 - store ptr null, ptr %53, align 8 - %54 = getelementptr inbounds nuw i8, ptr %6, i64 16 - store ptr @anon.5797861c9b37489455df470e033f6d21.3, ptr %54, align 8 - %55 = getelementptr inbounds nuw i8, ptr %6, i64 24 - store i64 0, ptr %55, align 8 + %49 = getelementptr inbounds nuw i8, ptr %6, i64 8 + store i64 1, ptr %49, align 8 + %50 = getelementptr inbounds nuw i8, ptr %6, i64 32 + store ptr null, ptr %50, align 8 + %51 = getelementptr inbounds nuw i8, ptr %6, i64 16 + store ptr @anon.5797861c9b37489455df470e033f6d21.3, ptr %51, align 8 + %52 = getelementptr inbounds nuw i8, ptr %6, i64 24 + store i64 0, ptr %52, 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.5797861c9b37489455df470e033f6d21.36) #23 unreachable -.sink.split: ; preds = %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit", %40 - %.sink = phi i1 [ %41, %40 ], [ %trunc16, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" ] - %.sroa.4.0.ph = phi ptr [ %.fca.1.extract, %40 ], [ %9, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" ] - %.sroa.0.0.ph = phi i64 [ 1, %40 ], [ 0, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" ] - call void @llvm.assume(i1 %.sink) - br label %56 - -56: ; preds = %.sink.split, %2 - %.sroa.4.0 = phi ptr [ %9, %2 ], [ %.sroa.4.0.ph, %.sink.split ] - %.sroa.0.0 = phi i64 [ 0, %2 ], [ %.sroa.0.0.ph, %.sink.split ] - %57 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 - %58 = insertvalue { i64, ptr } %57, ptr %.sroa.4.0, 1 - ret { i64, ptr } %58 +53: ; preds = %40, %2, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" + %.sroa.4.0 = phi ptr [ %9, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" ], [ %9, %2 ], [ %.fca.1.extract, %40 ] + %.sroa.0.0 = phi i64 [ 0, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" ], [ 0, %2 ], [ 1, %40 ] + %54 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 + %55 = insertvalue { i64, ptr } %54, ptr %.sroa.4.0, 1 + ret { i64, ptr } %55 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/turborepo-rs/optimized/4npj4wsmg2ap1thdgni5ygdc7.ll b/bench/turborepo-rs/optimized/4npj4wsmg2ap1thdgni5ygdc7.ll index 354a9ee5337..2cb937274dd 100644 --- a/bench/turborepo-rs/optimized/4npj4wsmg2ap1thdgni5ygdc7.ll +++ b/bench/turborepo-rs/optimized/4npj4wsmg2ap1thdgni5ygdc7.ll @@ -291,50 +291,50 @@ define void @_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6stable9quicksort9quicks br i1 %10, label %.outer._crit_edge, label %.lr.ph .lr.ph: ; preds = %7, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit - %.sroa.0.0.ph71 = phi ptr [ %113, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit ], [ %0, %7 ] - %.sroa.12.0.ph70 = phi i64 [ %105, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit ], [ %1, %7 ] - %.sroa.019.0.ph69 = phi i32 [ %19, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit ], [ %4, %7 ] - %.sroa.022.0.ph68 = phi ptr [ null, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit ], [ %5, %7 ] - %11 = ptrtoint ptr %.sroa.0.0.ph71 to i64 - %12 = icmp eq ptr %.sroa.022.0.ph68, null - %13 = getelementptr i8, ptr %.sroa.022.0.ph68, i64 8 - %14 = getelementptr i8, ptr %.sroa.022.0.ph68, i64 16 + %.sroa.0.0.ph75 = phi ptr [ %113, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit ], [ %0, %7 ] + %.sroa.12.0.ph74 = phi i64 [ %105, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit ], [ %1, %7 ] + %.sroa.019.0.ph73 = phi i32 [ %19, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit ], [ %4, %7 ] + %.sroa.022.0.ph72 = phi ptr [ null, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit ], [ %5, %7 ] + %11 = ptrtoint ptr %.sroa.0.0.ph75 to i64 + %12 = icmp eq ptr %.sroa.022.0.ph72, null + %13 = getelementptr i8, ptr %.sroa.022.0.ph72, i64 8 + %14 = getelementptr i8, ptr %.sroa.022.0.ph72, i64 16 br label %15 15: ; preds = %.lr.ph, %120 - %.sroa.12.064 = phi i64 [ %.sroa.12.0.ph70, %.lr.ph ], [ %.sroa.11.1.lcssa.i, %120 ] - %.sroa.019.063 = phi i32 [ %.sroa.019.0.ph69, %.lr.ph ], [ %19, %120 ] - %16 = icmp eq i32 %.sroa.019.063, 0 + %.sroa.12.068 = phi i64 [ %.sroa.12.0.ph74, %.lr.ph ], [ %.sroa.11.1.lcssa.i, %120 ] + %.sroa.019.067 = phi i32 [ %.sroa.019.0.ph73, %.lr.ph ], [ %19, %120 ] + %16 = icmp eq i32 %.sroa.019.067, 0 br i1 %16, label %17, label %18 .outer._crit_edge: ; preds = %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit, %120, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit.thread, %7 - %.sroa.0.0.ph.lcssa62 = phi ptr [ %0, %7 ], [ %106, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit.thread ], [ %.sroa.0.0.ph71, %120 ], [ %113, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit ] + %.sroa.0.0.ph.lcssa66 = phi ptr [ %0, %7 ], [ %106, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit.thread ], [ %.sroa.0.0.ph75, %120 ], [ %113, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit ] %.sroa.12.0.lcssa = phi i64 [ %1, %7 ], [ 0, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit.thread ], [ %.sroa.11.1.lcssa.i, %120 ], [ %105, %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit ] - call void @_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared9smallsort31small_sort_general_with_scratchNtNtCs68wO5nsWeTG_5alloc6string6StringNvYB1s_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env(ptr noalias noundef nonnull align 8 %.sroa.0.0.ph.lcssa62, i64 noundef range(i64 0, 33) %.sroa.12.0.lcssa, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull align 1 %6) + call void @_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared9smallsort31small_sort_general_with_scratchNtNtCs68wO5nsWeTG_5alloc6string6StringNvYB1s_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env(ptr noalias noundef nonnull align 8 %.sroa.0.0.ph.lcssa66, i64 noundef range(i64 0, 33) %.sroa.12.0.lcssa, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, ptr noalias noundef nonnull align 1 %6) br label %40 17: ; preds = %15 - call void @_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6stable5drift4sortNtNtCs68wO5nsWeTG_5alloc6string6StringNvYBW_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env(ptr noalias noundef nonnull align 8 %.sroa.0.0.ph71, i64 noundef %.sroa.12.064, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i1 noundef zeroext true, ptr noalias noundef nonnull align 1 %6) + call void @_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6stable5drift4sortNtNtCs68wO5nsWeTG_5alloc6string6StringNvYBW_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env(ptr noalias noundef nonnull align 8 %.sroa.0.0.ph75, i64 noundef %.sroa.12.068, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i1 noundef zeroext true, ptr noalias noundef nonnull align 1 %6) br label %40 18: ; preds = %15 - %19 = add i32 %.sroa.019.063, -1 - %20 = lshr i64 %.sroa.12.064, 3 + %19 = add i32 %.sroa.019.067, -1 + %20 = lshr i64 %.sroa.12.068, 3 %.idx.i = mul nuw nsw i64 %20, 96 - %21 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.ph71, i64 %.idx.i + %21 = getelementptr inbounds nuw i8, ptr %.sroa.0.0.ph75, i64 %.idx.i %.idx1.i = mul i64 %20, 168 - %22 = getelementptr inbounds i8, ptr %.sroa.0.0.ph71, i64 %.idx1.i - %23 = icmp ult i64 %.sroa.12.064, 64 + %22 = getelementptr inbounds i8, ptr %.sroa.0.0.ph75, i64 %.idx1.i + %23 = icmp ult i64 %.sroa.12.068, 64 br i1 %23, label %26, label %24 24: ; preds = %18 - %25 = call noundef ptr @_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot11median3_recNtNtCs68wO5nsWeTG_5alloc6string6StringNvYB14_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env(ptr noundef nonnull readonly align 8 %.sroa.0.0.ph71, ptr noundef nonnull readonly %21, ptr noundef nonnull readonly %22, i64 noundef %20, ptr noalias noundef nonnull align 1 %6) + %25 = call noundef ptr @_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot11median3_recNtNtCs68wO5nsWeTG_5alloc6string6StringNvYB14_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env(ptr noundef nonnull readonly align 8 %.sroa.0.0.ph75, ptr noundef nonnull readonly %21, ptr noundef nonnull readonly %22, i64 noundef %20, ptr noalias noundef nonnull align 1 %6) br label %_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO5nsWeTG_5alloc6string6StringNvYB15_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env.exit 26: ; preds = %18 - %27 = call noundef i8 @_RNvXsk_NtCs68wO5nsWeTG_5alloc3vecINtB5_3VechENtNtCs1LoaDTb72WA_4core3cmp10PartialOrd11partial_cmpCsff1zCjKRl2o_13turborepo_env.llvm.7496975812530076926(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0.ph71, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %21), !range !8, !noalias !18 + %27 = call noundef i8 @_RNvXsk_NtCs68wO5nsWeTG_5alloc3vecINtB5_3VechENtNtCs1LoaDTb72WA_4core3cmp10PartialOrd11partial_cmpCsff1zCjKRl2o_13turborepo_env.llvm.7496975812530076926(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0.ph75, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %21), !range !8, !noalias !18 %28 = icmp eq i8 %27, -1 - %29 = call noundef i8 @_RNvXsk_NtCs68wO5nsWeTG_5alloc3vecINtB5_3VechENtNtCs1LoaDTb72WA_4core3cmp10PartialOrd11partial_cmpCsff1zCjKRl2o_13turborepo_env.llvm.7496975812530076926(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0.ph71, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %22), !range !8, !noalias !23 + %29 = call noundef i8 @_RNvXsk_NtCs68wO5nsWeTG_5alloc3vecINtB5_3VechENtNtCs1LoaDTb72WA_4core3cmp10PartialOrd11partial_cmpCsff1zCjKRl2o_13turborepo_env.llvm.7496975812530076926(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0.ph75, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %22), !range !8, !noalias !23 %30 = icmp eq i8 %29, -1 %31 = xor i1 %28, %30 br i1 %31, label %_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO5nsWeTG_5alloc6string6StringNvYB15_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env.exit, label %32 @@ -347,14 +347,14 @@ define void @_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6stable9quicksort9quicks br label %_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO5nsWeTG_5alloc6string6StringNvYB15_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env.exit _RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO5nsWeTG_5alloc6string6StringNvYB15_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env.exit: ; preds = %24, %26, %32 - %.sroa.0.0.i.sink.i = phi ptr [ %25, %24 ], [ %.sroa.0.0.ph71, %26 ], [ %..i.i, %32 ] + %.sroa.0.0.i.sink.i = phi ptr [ %25, %24 ], [ %.sroa.0.0.ph75, %26 ], [ %..i.i, %32 ] %36 = ptrtoint ptr %.sroa.0.0.i.sink.i to i64 %37 = sub nuw i64 %36, %11 %.sroa.0.0.i = udiv exact i64 %37, 24 - %38 = icmp ult i64 %.sroa.0.0.i, %.sroa.12.064 + %38 = icmp ult i64 %.sroa.0.0.i, %.sroa.12.068 call void @llvm.assume(i1 %38) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %9) - %39 = getelementptr inbounds nuw [0 x { { { i64, ptr, {} }, i64 } }], ptr %.sroa.0.0.ph71, i64 0, i64 %.sroa.0.0.i + %39 = getelementptr inbounds nuw [0 x { { { i64, ptr, {} }, i64 } }], ptr %.sroa.0.0.ph75, i64 0, i64 %.sroa.0.0.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %39, i64 24, i1 false) br i1 %12, label %.thread, label %41 @@ -369,17 +369,17 @@ _RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO %43 = getelementptr i8, ptr %39, i64 16 %.val30 = load i64, ptr %43, align 8, !noundef !7 %44 = call noundef range(i8 -1, 3) i8 @_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice3cmphNtB5_15SlicePartialOrd15partial_compareCsgrIngBG6lgl_14regex_automata(ptr noalias noundef nonnull readonly align 1 %.sroa.022.0.val, i64 noundef %.sroa.022.0.val29, ptr noalias noundef nonnull readonly align 1 %.val, i64 noundef %.val30), !range !8 - %.not74 = icmp eq i8 %44, -1 - br i1 %.not74, label %.thread, label %.thread110 + %.not43 = icmp eq i8 %44, -1 + br i1 %.not43, label %.thread, label %.thread40 .thread: ; preds = %_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO5nsWeTG_5alloc6string6StringNvYB15_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env.exit, %41 call void @llvm.experimental.noalias.scope.decl(metadata !24) - %45 = icmp ult i64 %3, %.sroa.12.064 + %45 = icmp ult i64 %3, %.sroa.12.068 br i1 %45, label %51, label %46 46: ; preds = %.thread - %47 = getelementptr inbounds i8, ptr %.sroa.0.0.ph71, i64 %37 - %48 = getelementptr { { { i64, ptr, {} }, i64 } }, ptr %2, i64 %.sroa.12.064 + %47 = getelementptr inbounds i8, ptr %.sroa.0.0.ph75, i64 %37 + %48 = getelementptr { { { i64, ptr, {} }, i64 } }, ptr %2, i64 %.sroa.12.068 %49 = getelementptr i8, ptr %47, i64 8 %50 = getelementptr i8, ptr %47, i64 16 br label %.split.i @@ -390,10 +390,10 @@ _RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO .split.i: ; preds = %65, %46 %.sroa.11.0.i = phi i64 [ %.sroa.11.1.lcssa.i, %65 ], [ 0, %46 ] - %.sroa.5.0.i = phi ptr [ %68, %65 ], [ %.sroa.0.0.ph71, %46 ] + %.sroa.5.0.i = phi ptr [ %68, %65 ], [ %.sroa.0.0.ph75, %46 ] %.sroa.19.0.i = phi ptr [ %66, %65 ], [ %48, %46 ] - %.sroa.02.0.i = phi i64 [ %.sroa.12.064, %65 ], [ %.sroa.0.0.i, %46 ] - %52 = getelementptr inbounds { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph71, i64 %.sroa.02.0.i + %.sroa.02.0.i = phi i64 [ %.sroa.12.068, %65 ], [ %.sroa.0.0.i, %46 ] + %52 = getelementptr inbounds { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph75, i64 %.sroa.02.0.i %53 = icmp ult ptr %.sroa.5.0.i, %52 br i1 %53, label %.lr.ph.i, label %._crit_edge.i @@ -401,7 +401,7 @@ _RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO %.sroa.11.1.lcssa.i = phi i64 [ %.sroa.11.0.i, %.split.i ], [ %62, %.lr.ph.i ] %.sroa.5.1.lcssa.i = phi ptr [ %.sroa.5.0.i, %.split.i ], [ %63, %.lr.ph.i ] %.sroa.19.1.lcssa.i = phi ptr [ %.sroa.19.0.i, %.split.i ], [ %59, %.lr.ph.i ] - %54 = icmp eq i64 %.sroa.02.0.i, %.sroa.12.064 + %54 = icmp eq i64 %.sroa.02.0.i, %.sroa.12.068 br i1 %54, label %.split30.us.i, label %65 .lr.ph.i: ; preds = %.split.i, %.lr.ph.i @@ -435,13 +435,13 @@ _RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO .split30.us.i: ; preds = %._crit_edge.i %69 = mul i64 %.sroa.11.1.lcssa.i, 24 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %.sroa.0.0.ph71, ptr nonnull align 8 %2, i64 %69, i1 false), !alias.scope !29 - %70 = sub i64 %.sroa.12.064, %.sroa.11.1.lcssa.i - %.not.i = icmp eq i64 %.sroa.12.064, %.sroa.11.1.lcssa.i + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %.sroa.0.0.ph75, ptr nonnull align 8 %2, i64 %69, i1 false), !alias.scope !29 + %70 = sub i64 %.sroa.12.068, %.sroa.11.1.lcssa.i + %.not.i = icmp eq i64 %.sroa.12.068, %.sroa.11.1.lcssa.i br i1 %.not.i, label %.loopexit, label %.lr.ph33.i .lr.ph33.i: ; preds = %.split30.us.i - %71 = getelementptr { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph71, i64 %.sroa.11.1.lcssa.i + %71 = getelementptr { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph75, i64 %.sroa.11.1.lcssa.i br label %72 72: ; preds = %72, %.lr.ph33.i @@ -456,30 +456,30 @@ _RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO .loopexit: ; preds = %72, %.split30.us.i %77 = icmp eq i64 %.sroa.11.1.lcssa.i, 0 - br i1 %77, label %.thread110, label %78 + br i1 %77, label %.thread40, label %78 78: ; preds = %.loopexit - %.not = icmp ugt i64 %.sroa.11.1.lcssa.i, %.sroa.12.064 + %.not = icmp ugt i64 %.sroa.11.1.lcssa.i, %.sroa.12.068 br i1 %.not, label %115, label %120 -.thread110: ; preds = %41, %.loopexit +.thread40: ; preds = %41, %.loopexit call void @llvm.experimental.noalias.scope.decl(metadata !36) - %79 = icmp ult i64 %3, %.sroa.12.064 + %79 = icmp ult i64 %3, %.sroa.12.068 br i1 %79, label %103, label %80 -80: ; preds = %.thread110 - %81 = getelementptr inbounds i8, ptr %.sroa.0.0.ph71, i64 %37 - %82 = getelementptr { { { i64, ptr, {} }, i64 } }, ptr %2, i64 %.sroa.12.064 +80: ; preds = %.thread40 + %81 = getelementptr inbounds i8, ptr %.sroa.0.0.ph75, i64 %37 + %82 = getelementptr { { { i64, ptr, {} }, i64 } }, ptr %2, i64 %.sroa.12.068 %83 = getelementptr i8, ptr %81, i64 8 %84 = getelementptr i8, ptr %81, i64 16 br label %.split.us.i .split.us.i: ; preds = %88, %80 %.sroa.11.0.us.i = phi i64 [ %91, %88 ], [ 0, %80 ] - %.sroa.5.0.us.i = phi ptr [ %92, %88 ], [ %.sroa.0.0.ph71, %80 ] + %.sroa.5.0.us.i = phi ptr [ %92, %88 ], [ %.sroa.0.0.ph75, %80 ] %.sroa.19.0.us.i = phi ptr [ %89, %88 ], [ %82, %80 ] - %.sroa.02.0.us.i = phi i64 [ %.sroa.12.064, %88 ], [ %.sroa.0.0.i, %80 ] - %85 = getelementptr inbounds { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph71, i64 %.sroa.02.0.us.i + %.sroa.02.0.us.i = phi i64 [ %.sroa.12.068, %88 ], [ %.sroa.0.0.i, %80 ] + %85 = getelementptr inbounds { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph75, i64 %.sroa.02.0.us.i %86 = icmp ult ptr %.sroa.5.0.us.i, %85 br i1 %86, label %.lr.ph.us.i, label %._crit_edge.us.i @@ -487,7 +487,7 @@ _RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO %.sroa.11.1.lcssa.us.i = phi i64 [ %.sroa.11.0.us.i, %.split.us.i ], [ %100, %.lr.ph.us.i ] %.sroa.5.1.lcssa.us.i = phi ptr [ %.sroa.5.0.us.i, %.split.us.i ], [ %101, %.lr.ph.us.i ] %.sroa.19.1.lcssa.us.i = phi ptr [ %.sroa.19.0.us.i, %.split.us.i ], [ %97, %.lr.ph.us.i ] - %87 = icmp eq i64 %.sroa.02.0.us.i, %.sroa.12.064 + %87 = icmp eq i64 %.sroa.02.0.us.i, %.sroa.12.068 br i1 %87, label %.split30.us.i33, label %88 88: ; preds = %._crit_edge.us.i @@ -520,16 +520,16 @@ _RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO %102 = icmp ult ptr %101, %85 br i1 %102, label %.lr.ph.us.i, label %._crit_edge.us.i -103: ; preds = %.thread110 +103: ; preds = %.thread40 call void @llvm.trap() unreachable .split30.us.i33: ; preds = %._crit_edge.us.i %104 = mul i64 %.sroa.11.1.lcssa.us.i, 24 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %.sroa.0.0.ph71, ptr nonnull align 8 %2, i64 %104, i1 false), !alias.scope !39 - %105 = sub i64 %.sroa.12.064, %.sroa.11.1.lcssa.us.i - %.not.i34 = icmp eq i64 %.sroa.12.064, %.sroa.11.1.lcssa.us.i - %106 = getelementptr { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph71, i64 %.sroa.11.1.lcssa.us.i + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %.sroa.0.0.ph75, ptr nonnull align 8 %2, i64 %104, i1 false), !alias.scope !39 + %105 = sub i64 %.sroa.12.068, %.sroa.11.1.lcssa.us.i + %.not.i34 = icmp eq i64 %.sroa.12.068, %.sroa.11.1.lcssa.us.i + %106 = getelementptr { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph75, i64 %.sroa.11.1.lcssa.us.i br i1 %.not.i34, label %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit.thread, label %.lr.ph33.i35 .lr.ph33.i35: ; preds = %.split30.us.i33, %.lr.ph33.i35 @@ -543,7 +543,7 @@ _RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6shared5pivot12choose_pivotNtNtCs68wO br i1 %exitcond.not.i37, label %_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6stable9quicksort16stable_partitionNtNtCs68wO5nsWeTG_5alloc6string6StringNCINvB2_9quicksortB1d_NvYB1d_NtNtBa_3cmp10PartialOrd2ltE0ECsff1zCjKRl2o_13turborepo_env.exit, label %.lr.ph33.i35 _RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6stable9quicksort16stable_partitionNtNtCs68wO5nsWeTG_5alloc6string6StringNCINvB2_9quicksortB1d_NvYB1d_NtNtBa_3cmp10PartialOrd2ltE0ECsff1zCjKRl2o_13turborepo_env.exit: ; preds = %.lr.ph33.i35 - %111 = icmp ugt i64 %.sroa.11.1.lcssa.us.i, %.sroa.12.064 + %111 = icmp ugt i64 %.sroa.11.1.lcssa.us.i, %.sroa.12.068 br i1 %111, label %112, label %_RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit _RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit.thread: ; preds = %.split30.us.i33 @@ -551,11 +551,11 @@ _RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5 br label %.outer._crit_edge 112: ; preds = %_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6stable9quicksort16stable_partitionNtNtCs68wO5nsWeTG_5alloc6string6StringNCINvB2_9quicksortB1d_NvYB1d_NtNtBa_3cmp10PartialOrd2ltE0ECsff1zCjKRl2o_13turborepo_env.exit - call void @_ZN4core5slice5index26slice_start_index_len_fail17hb39beb2525eed8e3E(i64 noundef %.sroa.11.1.lcssa.us.i, i64 noundef range(i64 33, 0) %.sroa.12.064, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.30d6aabc9ae1ed816db2fe10cdc31e5c.7) #9, !noalias !48 + call void @_ZN4core5slice5index26slice_start_index_len_fail17hb39beb2525eed8e3E(i64 noundef %.sroa.11.1.lcssa.us.i, i64 noundef range(i64 33, 0) %.sroa.12.068, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.30d6aabc9ae1ed816db2fe10cdc31e5c.7) #9, !noalias !48 unreachable _RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5_10SliceIndexSNtNtCs68wO5nsWeTG_5alloc6string6StringE9index_mutCsff1zCjKRl2o_13turborepo_env.exit: ; preds = %_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6stable9quicksort16stable_partitionNtNtCs68wO5nsWeTG_5alloc6string6StringNCINvB2_9quicksortB1d_NvYB1d_NtNtBa_3cmp10PartialOrd2ltE0ECsff1zCjKRl2o_13turborepo_env.exit - %113 = getelementptr inbounds { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph71, i64 %.sroa.11.1.lcssa.us.i + %113 = getelementptr inbounds { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph75, i64 %.sroa.11.1.lcssa.us.i call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) %114 = icmp ult i64 %105, 33 br i1 %114, label %.outer._crit_edge, label %.lr.ph @@ -575,12 +575,11 @@ _RNvXs5_NtNtCs1LoaDTb72WA_4core5slice5indexINtNtNtB9_3ops5range9RangeFromjEINtB5 unreachable 120: ; preds = %78 - %121 = getelementptr inbounds { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph71, i64 %.sroa.11.1.lcssa.i - %122 = sub nuw i64 %.sroa.12.064, %.sroa.11.1.lcssa.i - call void @_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6stable9quicksort9quicksortNtNtCs68wO5nsWeTG_5alloc6string6StringNvYB15_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env(ptr noalias noundef nonnull align 8 %121, i64 noundef %122, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i32 noundef %19, ptr noalias noundef nonnull readonly align 8 dereferenceable_or_null(24) %9, ptr noalias noundef nonnull align 1 %6) + %121 = getelementptr inbounds { { { i64, ptr, {} }, i64 } }, ptr %.sroa.0.0.ph75, i64 %.sroa.11.1.lcssa.i + call void @_RINvNtNtNtNtCs1LoaDTb72WA_4core5slice4sort6stable9quicksort9quicksortNtNtCs68wO5nsWeTG_5alloc6string6StringNvYB15_NtNtBa_3cmp10PartialOrd2ltECsff1zCjKRl2o_13turborepo_env(ptr noalias noundef nonnull align 8 %121, i64 noundef %70, ptr noalias noundef nonnull align 8 %2, i64 noundef %3, i32 noundef %19, ptr noalias noundef nonnull readonly align 8 dereferenceable_or_null(24) %9, ptr noalias noundef nonnull align 1 %6) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9) - %123 = icmp ult i64 %.sroa.11.1.lcssa.i, 33 - br i1 %123, label %.outer._crit_edge, label %15 + %122 = icmp ult i64 %.sroa.11.1.lcssa.i, 33 + br i1 %122, label %.outer._crit_edge, label %15 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(readwrite, inaccessiblemem: none) uwtable diff --git a/bench/turborepo-rs/optimized/4xosjxdd4tab2lzmgagh8c3os.ll b/bench/turborepo-rs/optimized/4xosjxdd4tab2lzmgagh8c3os.ll index 6c868510cfd..1cb4ebd8d27 100644 --- a/bench/turborepo-rs/optimized/4xosjxdd4tab2lzmgagh8c3os.ll +++ b/bench/turborepo-rs/optimized/4xosjxdd4tab2lzmgagh8c3os.ll @@ -3384,7 +3384,7 @@ define void @_RINvMs0_NtNtNtNtCsapf13pIxsjn_3std3sys4sync4once5futexNtB6_4Once4c .split.us: ; preds = %4, %.split.us.backedge %.sroa.0.0.us = phi i32 [ %.sroa.0.0.us.be, %.split.us.backedge ], [ %11, %4 ] - switch i32 %.sroa.0.0.us, label %.split24.us [ + switch i32 %.sroa.0.0.us, label %.split23.us [ i32 1, label %17 i32 0, label %17 i32 4, label %.loopexit18 @@ -3407,7 +3407,7 @@ define void @_RINvMs0_NtNtNtNtCsapf13pIxsjn_3std3sys4sync4once5futexNtB6_4Once4c %18 = cmpxchg weak ptr %0, i32 %.sroa.0.0.us, i32 2 acquire acquire, align 4 %.sroa.18.0.in.i.us = extractvalue { i32, i1 } %18, 1 %.sroa.08.0.i.us = extractvalue { i32, i1 } %18, 0 - br i1 %.sroa.18.0.in.i.us, label %.split26.us, label %.split.us.backedge + br i1 %.sroa.18.0.in.i.us, label %.split25.us, label %.split.us.backedge .split.us.backedge: ; preds = %17, %14, %12 %.sroa.0.0.us.be = phi i32 [ %16, %14 ], [ %.sroa.08.0.i.us, %17 ], [ %.sroa.08.0.i17.us, %12 ] @@ -3415,15 +3415,15 @@ define void @_RINvMs0_NtNtNtNtCsapf13pIxsjn_3std3sys4sync4once5futexNtB6_4Once4c .split: ; preds = %4, %.split.backedge %.sroa.0.0 = phi i32 [ %.sroa.0.0.be, %.split.backedge ], [ %11, %4 ] - switch i32 %.sroa.0.0, label %.split24.us [ + switch i32 %.sroa.0.0, label %.split23.us [ i32 1, label %25 i32 0, label %23 i32 4, label %.loopexit18 - i32 2, label %68 - i32 3, label %70 + i32 2, label %61 + i32 3, label %63 ] -.split24.us: ; preds = %.split, %.split.us +.split23.us: ; preds = %.split, %.split.us call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8) store ptr @anon.ccba1b1278c73a89e5fa5ae71ac7334d.5, ptr %8, align 8 %19 = getelementptr inbounds nuw i8, ptr %8, i64 8 @@ -3441,9 +3441,9 @@ define void @_RINvMs0_NtNtNtNtCsapf13pIxsjn_3std3sys4sync4once5futexNtB6_4Once4c %24 = cmpxchg weak ptr %0, i32 0, i32 2 acquire acquire, align 4 %.sroa.18.0.in.i = extractvalue { i32, i1 } %24, 1 %.sroa.08.0.i = extractvalue { i32, i1 } %24, 0 - br i1 %.sroa.18.0.in.i, label %.split26.us, label %.split.backedge + br i1 %.sroa.18.0.in.i, label %.split25.us, label %.split.backedge -.loopexit18: ; preds = %.split, %.split.us, %64 +.loopexit18: ; preds = %.split, %.split.us, %57 ret void 25: ; preds = %.split @@ -3460,7 +3460,7 @@ define void @_RINvMs0_NtNtNtNtCsapf13pIxsjn_3std3sys4sync4once5futexNtB6_4Once4c call void @_ZN4core9panicking9panic_fmt17hb0937d4ccfd82515E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %3) #13 unreachable -.split26.us: ; preds = %23, %17 +.split25.us: ; preds = %23, %17 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %9) store ptr %0, ptr %9, align 8 %30 = getelementptr inbounds nuw i8, ptr %9, i64 8 @@ -3473,14 +3473,14 @@ define void @_RINvMs0_NtNtNtNtCsapf13pIxsjn_3std3sys4sync4once5futexNtB6_4Once4c %34 = icmp eq ptr %31, null br i1 %34, label %35, label %36 -35: ; preds = %.split26.us +35: ; preds = %.split25.us invoke void @_ZN4core6option13unwrap_failed17h977210acadcd397cE(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.ccba1b1278c73a89e5fa5ae71ac7334d.20) #13 to label %.noexc unwind label %.loopexit.split-lp .noexc: ; preds = %35 unreachable -36: ; preds = %.split26.us +36: ; preds = %.split25.us %37 = icmp ne ptr %33, null tail call void @llvm.assume(i1 %37) %38 = getelementptr inbounds nuw i8, ptr %6, i64 8 @@ -3491,7 +3491,7 @@ define void @_RINvMs0_NtNtNtNtCsapf13pIxsjn_3std3sys4sync4once5futexNtB6_4Once4c 39: ; preds = %.noexc12, %36 %.idx.i.i.i.i = phi i64 [ %.add.i.i.i.i, %.noexc12 ], [ 0, %36 ] %.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.not.not = icmp ne i64 %.idx.i.i.i.i, 160 - br i1 %.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.not.not, label %40, label %64 + br i1 %.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.not.not, label %40, label %57 40: ; preds = %39 %.ptr.i.i.i.i = getelementptr inbounds nuw i8, ptr @anon.ccba1b1278c73a89e5fa5ae71ac7334d.202, i64 %.idx.i.i.i.i @@ -3521,64 +3521,44 @@ define void @_RINvMs0_NtNtNtNtCsapf13pIxsjn_3std3sys4sync4once5futexNtB6_4Once4c store i64 0, ptr %7, align 8, !alias.scope !63, !noalias !66 store ptr inttoptr (i64 1 to ptr), ptr %.sroa.4.0..sroa_idx.i.i.i.i.i.i.i.i, align 8, !alias.scope !63, !noalias !66 store i64 0, ptr %.phi.trans.insert.i.i.i.i.i.i, align 8, !alias.scope !63, !noalias !66 - %45 = icmp eq i64 %42, 0 - br i1 %45, label %46, label %51 + %45 = load i64, ptr %38, align 8, !range !67, !alias.scope !68, !noalias !61, !noundef !4 + %46 = icmp eq i64 %45, -9223372036854775808 + br i1 %46, label %_RNvMNtCs1LoaDTb72WA_4core6resultINtB2_6ResultNtNtCs68wO5nsWeTG_5alloc6string6StringNtNtCsapf13pIxsjn_3std3env8VarErrorE17unwrap_or_defaultCsjIaN6dkKMFO_12turborepo_ci.exit.i.i.i.i.i.i, label %47 -46: ; preds = %44 +47: ; preds = %44 invoke void @_RNvXsn_NtCs68wO5nsWeTG_5alloc3vecINtB5_3VechENtNtNtCs1LoaDTb72WA_4core3ops4drop4Drop4dropCs60PZzCmVZCp_14iana_time_zone(ptr noalias noundef nonnull align 8 dereferenceable(24) %38) - to label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCsapf13pIxsjn_3std3env8VarErrorECsjIaN6dkKMFO_12turborepo_ci.exit.sink.split.i.i.i.i.i.i.i unwind label %47, !noalias !61 + to label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCsapf13pIxsjn_3std3env8VarErrorECsjIaN6dkKMFO_12turborepo_ci.exit.sink.split.i.i.i.i.i.i.i unwind label %48, !noalias !61 -47: ; preds = %46 - %48 = landingpad { ptr, i32 } +48: ; preds = %47 + %49 = landingpad { ptr, i32 } cleanup invoke void @_RNvXs2_NtCs68wO5nsWeTG_5alloc7raw_vecINtB5_6RawVechENtNtNtCs1LoaDTb72WA_4core3ops4drop4Drop4dropCs60PZzCmVZCp_14iana_time_zone(ptr noalias noundef nonnull align 8 dereferenceable(24) %38) - to label %.body unwind label %49, !noalias !61 + to label %.body unwind label %50, !noalias !61 -49: ; preds = %47 - %50 = landingpad { ptr, i32 } +50: ; preds = %48 + %51 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h1bb225b6f4388944E() #16, !noalias !61 unreachable -51: ; preds = %44 - %52 = load i64, ptr %38, align 8, !range !67, !alias.scope !68, !noalias !61, !noundef !4 - %53 = icmp eq i64 %52, -9223372036854775808 - br i1 %53, label %_RNvMNtCs1LoaDTb72WA_4core6resultINtB2_6ResultNtNtCs68wO5nsWeTG_5alloc6string6StringNtNtCsapf13pIxsjn_3std3env8VarErrorE17unwrap_or_defaultCsjIaN6dkKMFO_12turborepo_ci.exit.i.i.i.i.i.i, label %54 - -54: ; preds = %51 - invoke void @_RNvXsn_NtCs68wO5nsWeTG_5alloc3vecINtB5_3VechENtNtNtCs1LoaDTb72WA_4core3ops4drop4Drop4dropCs60PZzCmVZCp_14iana_time_zone(ptr noalias noundef nonnull align 8 dereferenceable(24) %38) - to label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCsapf13pIxsjn_3std3env8VarErrorECsjIaN6dkKMFO_12turborepo_ci.exit.sink.split.i.i.i.i.i.i.i unwind label %55, !noalias !61 - -55: ; preds = %54 - %56 = landingpad { ptr, i32 } - cleanup - invoke void @_RNvXs2_NtCs68wO5nsWeTG_5alloc7raw_vecINtB5_6RawVechENtNtNtCs1LoaDTb72WA_4core3ops4drop4Drop4dropCs60PZzCmVZCp_14iana_time_zone(ptr noalias noundef nonnull align 8 dereferenceable(24) %38) - to label %.body unwind label %57, !noalias !61 - -57: ; preds = %55 - %58 = landingpad { ptr, i32 } - filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h1bb225b6f4388944E() #16, !noalias !61 - unreachable - -_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCsapf13pIxsjn_3std3env8VarErrorECsjIaN6dkKMFO_12turborepo_ci.exit.sink.split.i.i.i.i.i.i.i: ; preds = %54, %46 +_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCsapf13pIxsjn_3std3env8VarErrorECsjIaN6dkKMFO_12turborepo_ci.exit.sink.split.i.i.i.i.i.i.i: ; preds = %47 invoke void @_RNvXs2_NtCs68wO5nsWeTG_5alloc7raw_vecINtB5_6RawVechENtNtNtCs1LoaDTb72WA_4core3ops4drop4Drop4dropCs60PZzCmVZCp_14iana_time_zone(ptr noalias noundef nonnull align 8 dereferenceable(24) %38) to label %_RNvMNtCs1LoaDTb72WA_4core6resultINtB2_6ResultNtNtCs68wO5nsWeTG_5alloc6string6StringNtNtCsapf13pIxsjn_3std3env8VarErrorE17unwrap_or_defaultCsjIaN6dkKMFO_12turborepo_ci.exit.i.i.i.i.i.i unwind label %.loopexit -_RNvMNtCs1LoaDTb72WA_4core6resultINtB2_6ResultNtNtCs68wO5nsWeTG_5alloc6string6StringNtNtCsapf13pIxsjn_3std3env8VarErrorE17unwrap_or_defaultCsjIaN6dkKMFO_12turborepo_ci.exit.i.i.i.i.i.i: ; preds = %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCsapf13pIxsjn_3std3env8VarErrorECsjIaN6dkKMFO_12turborepo_ci.exit.sink.split.i.i.i.i.i.i.i, %51, %.thread.i.i.i.i.i.i.i - %59 = phi i1 [ false, %51 ], [ %43, %.thread.i.i.i.i.i.i.i ], [ false, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCsapf13pIxsjn_3std3env8VarErrorECsjIaN6dkKMFO_12turborepo_ci.exit.sink.split.i.i.i.i.i.i.i ] +_RNvMNtCs1LoaDTb72WA_4core6resultINtB2_6ResultNtNtCs68wO5nsWeTG_5alloc6string6StringNtNtCsapf13pIxsjn_3std3env8VarErrorE17unwrap_or_defaultCsjIaN6dkKMFO_12turborepo_ci.exit.i.i.i.i.i.i: ; preds = %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCsapf13pIxsjn_3std3env8VarErrorECsjIaN6dkKMFO_12turborepo_ci.exit.sink.split.i.i.i.i.i.i.i, %44, %.thread.i.i.i.i.i.i.i + %52 = phi i1 [ false, %44 ], [ %43, %.thread.i.i.i.i.i.i.i ], [ false, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCsapf13pIxsjn_3std3env8VarErrorECsjIaN6dkKMFO_12turborepo_ci.exit.sink.split.i.i.i.i.i.i.i ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6), !noalias !55 invoke void @_RNvXsn_NtCs68wO5nsWeTG_5alloc3vecINtB5_3VechENtNtNtCs1LoaDTb72WA_4core3ops4drop4Drop4dropCs60PZzCmVZCp_14iana_time_zone(ptr noalias noundef nonnull align 8 dereferenceable(24) %7) - to label %_RNCNCNvCsjIaN6dkKMFO_12turborepo_ci5is_ci00B5_.exit.i.i.i.i.i unwind label %60, !noalias !55 + to label %_RNCNCNvCsjIaN6dkKMFO_12turborepo_ci5is_ci00B5_.exit.i.i.i.i.i unwind label %53, !noalias !55 -60: ; preds = %_RNvMNtCs1LoaDTb72WA_4core6resultINtB2_6ResultNtNtCs68wO5nsWeTG_5alloc6string6StringNtNtCsapf13pIxsjn_3std3env8VarErrorE17unwrap_or_defaultCsjIaN6dkKMFO_12turborepo_ci.exit.i.i.i.i.i.i - %61 = landingpad { ptr, i32 } +53: ; preds = %_RNvMNtCs1LoaDTb72WA_4core6resultINtB2_6ResultNtNtCs68wO5nsWeTG_5alloc6string6StringNtNtCsapf13pIxsjn_3std3env8VarErrorE17unwrap_or_defaultCsjIaN6dkKMFO_12turborepo_ci.exit.i.i.i.i.i.i + %54 = landingpad { ptr, i32 } cleanup invoke void @_RNvXs2_NtCs68wO5nsWeTG_5alloc7raw_vecINtB5_6RawVechENtNtNtCs1LoaDTb72WA_4core3ops4drop4Drop4dropCs60PZzCmVZCp_14iana_time_zone(ptr noalias noundef nonnull align 8 dereferenceable(24) %7) - to label %.body unwind label %62, !noalias !55 + to label %.body unwind label %55, !noalias !55 -62: ; preds = %60 - %63 = landingpad { ptr, i32 } +55: ; preds = %53 + %56 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h1bb225b6f4388944E() #16, !noalias !55 unreachable @@ -3589,7 +3569,7 @@ _RNCNCNvCsjIaN6dkKMFO_12turborepo_ci5is_ci00B5_.exit.i.i.i.i.i: ; preds = %_RNvM .noexc12: ; preds = %_RNCNCNvCsjIaN6dkKMFO_12turborepo_ci5is_ci00B5_.exit.i.i.i.i.i call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7), !noalias !55 - br i1 %59, label %64, label %39 + br i1 %52, label %57, label %39 .loopexit: ; preds = %40, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCsapf13pIxsjn_3std3env8VarErrorECsjIaN6dkKMFO_12turborepo_ci.exit.sink.split.i.i.i.i.i.i.i, %_RNCNCNvCsjIaN6dkKMFO_12turborepo_ci5is_ci00B5_.exit.i.i.i.i.i %lpad.loopexit = landingpad { ptr, i32 } @@ -3601,21 +3581,21 @@ _RNCNCNvCsjIaN6dkKMFO_12turborepo_ci5is_ci00B5_.exit.i.i.i.i.i: ; preds = %_RNvM cleanup br label %.body -.body: ; preds = %.loopexit, %.loopexit.split-lp, %47, %55, %60 - %eh.lpad-body = phi { ptr, i32 } [ %48, %47 ], [ %56, %55 ], [ %61, %60 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] +.body: ; preds = %.loopexit, %.loopexit.split-lp, %48, %53 + %eh.lpad-body = phi { ptr, i32 } [ %49, %48 ], [ %54, %53 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] invoke void @"_ZN86_$LT$std..sys..sync..once..futex..CompletionGuard$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd8005e3f3d22955cE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %9) - to label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtNtNtCsapf13pIxsjn_3std3sys4sync4once5futex15CompletionGuardECsjIaN6dkKMFO_12turborepo_ci.exit unwind label %66 + to label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtNtNtCsapf13pIxsjn_3std3sys4sync4once5futex15CompletionGuardECsjIaN6dkKMFO_12turborepo_ci.exit unwind label %59 -64: ; preds = %.noexc12, %39 - %65 = zext i1 %.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.not.not to i8 - store i8 %65, ptr %31, align 1 +57: ; preds = %.noexc12, %39 + %58 = zext i1 %.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.i.not.not.not.not.not to i8 + store i8 %58, ptr %31, align 1 store i32 4, ptr %30, align 8 call void @"_ZN86_$LT$std..sys..sync..once..futex..CompletionGuard$u20$as$u20$core..ops..drop..Drop$GT$4drop17hd8005e3f3d22955cE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %9) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %9) br label %.loopexit18 -66: ; preds = %.body - %67 = landingpad { ptr, i32 } +59: ; preds = %.body + %60 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h1bb225b6f4388944E() #16 unreachable @@ -3623,19 +3603,19 @@ _RNCNCNvCsjIaN6dkKMFO_12turborepo_ci5is_ci00B5_.exit.i.i.i.i.i: ; preds = %_RNvM _RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtNtNtCsapf13pIxsjn_3std3sys4sync4once5futex15CompletionGuardECsjIaN6dkKMFO_12turborepo_ci.exit: ; preds = %.body resume { ptr, i32 } %eh.lpad-body -68: ; preds = %.split - %69 = cmpxchg weak ptr %0, i32 2, i32 3 monotonic acquire, align 4 - %.sroa.18.0.in.i14 = extractvalue { i32, i1 } %69, 1 - %.sroa.08.0.i17 = extractvalue { i32, i1 } %69, 0 - br i1 %.sroa.18.0.in.i14, label %70, label %.split.backedge +61: ; preds = %.split + %62 = cmpxchg weak ptr %0, i32 2, i32 3 monotonic acquire, align 4 + %.sroa.18.0.in.i14 = extractvalue { i32, i1 } %62, 1 + %.sroa.08.0.i17 = extractvalue { i32, i1 } %62, 0 + br i1 %.sroa.18.0.in.i14, label %63, label %.split.backedge -70: ; preds = %68, %.split - %71 = tail call noundef zeroext i1 @_ZN3std3sys3pal4unix5futex10futex_wait17hca07680b6706f605E(ptr noundef nonnull align 4 %0, i32 noundef 3, i64 undef, i32 noundef 1000000000) - %72 = load atomic i32, ptr %0 acquire, align 4 +63: ; preds = %61, %.split + %64 = tail call noundef zeroext i1 @_ZN3std3sys3pal4unix5futex10futex_wait17hca07680b6706f605E(ptr noundef nonnull align 4 %0, i32 noundef 3, i64 undef, i32 noundef 1000000000) + %65 = load atomic i32, ptr %0 acquire, align 4 br label %.split.backedge -.split.backedge: ; preds = %70, %23, %68 - %.sroa.0.0.be = phi i32 [ %72, %70 ], [ %.sroa.08.0.i, %23 ], [ %.sroa.08.0.i17, %68 ] +.split.backedge: ; preds = %63, %23, %61 + %.sroa.0.0.be = phi i32 [ %65, %63 ], [ %.sroa.08.0.i, %23 ], [ %.sroa.08.0.i17, %61 ] br label %.split } diff --git a/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll b/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll index 17a22834bdd..f5a1b9525b6 100644 --- a/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll +++ b/bench/typst-rs/optimized/2d3c2n5y91mtl0x0.ll @@ -24642,26 +24642,26 @@ define hidden noundef zeroext i1 @"_ZN55_$LT$T$u20$as$u20$core..option..SpecOpti %9 = icmp eq i64 %3, %5 br i1 %9, label %10, label %"_ZN76_$LT$typst..model..reference..Supplement$u20$as$u20$core..cmp..PartialEq$GT$2eq17ha6c2b0f40776c6d3E.llvm.3683678558897460461.exit" -"_ZN76_$LT$typst..model..reference..Supplement$u20$as$u20$core..cmp..PartialEq$GT$2eq17ha6c2b0f40776c6d3E.llvm.3683678558897460461.exit": ; preds = %16, %13, %8, %6 - %.0.shrunk = phi i1 [ %7, %6 ], [ false, %8 ], [ %18, %16 ], [ %15, %13 ] +"_ZN76_$LT$typst..model..reference..Supplement$u20$as$u20$core..cmp..PartialEq$GT$2eq17ha6c2b0f40776c6d3E.llvm.3683678558897460461.exit": ; preds = %16, %11, %8, %6 + %.0.shrunk = phi i1 [ %7, %6 ], [ false, %8 ], [ %19, %16 ], [ %15, %11 ] ret i1 %.0.shrunk 10: ; preds = %8 %trunc.i = trunc nuw i64 %3 to i1 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %12 = getelementptr inbounds nuw i8, ptr %1, i64 8 - br i1 %trunc.i, label %16, label %13 + br i1 %trunc.i, label %16, label %11 -13: ; preds = %10 - %14 = icmp eq i64 %3, 0 - tail call void @llvm.assume(i1 %14) - %15 = tail call noundef zeroext i1 @"_ZN77_$LT$typst..foundations..content..Content$u20$as$u20$core..cmp..PartialEq$GT$2eq17hb8fbde024badb170E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %11, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %12) +11: ; preds = %10 + %12 = icmp eq i64 %3, 0 + tail call void @llvm.assume(i1 %12) + %13 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %14 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %15 = tail call noundef zeroext i1 @"_ZN77_$LT$typst..foundations..content..Content$u20$as$u20$core..cmp..PartialEq$GT$2eq17hb8fbde024badb170E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %13, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %14) br label %"_ZN76_$LT$typst..model..reference..Supplement$u20$as$u20$core..cmp..PartialEq$GT$2eq17ha6c2b0f40776c6d3E.llvm.3683678558897460461.exit" 16: ; preds = %10 - %17 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %17) - %18 = tail call noundef zeroext i1 @"_ZN71_$LT$typst..foundations..func..Repr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h496b6faee83779ceE.llvm.12850028421071809815"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %11, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %12) + %17 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %18 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %19 = tail call noundef zeroext i1 @"_ZN71_$LT$typst..foundations..func..Repr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h496b6faee83779ceE.llvm.12850028421071809815"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %17, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %18) br label %"_ZN76_$LT$typst..model..reference..Supplement$u20$as$u20$core..cmp..PartialEq$GT$2eq17ha6c2b0f40776c6d3E.llvm.3683678558897460461.exit" } @@ -27421,24 +27421,24 @@ define hidden noundef zeroext i1 @"_ZN70_$LT$core..option..Option$LT$T$GT$$u20$a 10: ; preds = %8 %trunc.i.i = trunc nuw i64 %3 to i1 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %12 = getelementptr inbounds nuw i8, ptr %1, i64 8 - br i1 %trunc.i.i, label %16, label %13 + br i1 %trunc.i.i, label %16, label %11 -13: ; preds = %10 - %14 = icmp eq i64 %3, 0 - tail call void @llvm.assume(i1 %14) - %15 = tail call noundef zeroext i1 @"_ZN77_$LT$typst..foundations..content..Content$u20$as$u20$core..cmp..PartialEq$GT$2eq17hb8fbde024badb170E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %11, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %12) +11: ; preds = %10 + %12 = icmp eq i64 %3, 0 + tail call void @llvm.assume(i1 %12) + %13 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %14 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %15 = tail call noundef zeroext i1 @"_ZN77_$LT$typst..foundations..content..Content$u20$as$u20$core..cmp..PartialEq$GT$2eq17hb8fbde024badb170E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %13, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %14) br label %"_ZN55_$LT$T$u20$as$u20$core..option..SpecOptionPartialEq$GT$2eq17h85f7721f0d330670E.llvm.3683678558897460461.exit" 16: ; preds = %10 - %17 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %17) - %18 = tail call noundef zeroext i1 @"_ZN71_$LT$typst..foundations..func..Repr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h496b6faee83779ceE.llvm.12850028421071809815"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %11, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %12) + %17 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %18 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %19 = tail call noundef zeroext i1 @"_ZN71_$LT$typst..foundations..func..Repr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h496b6faee83779ceE.llvm.12850028421071809815"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %17, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %18) br label %"_ZN55_$LT$T$u20$as$u20$core..option..SpecOptionPartialEq$GT$2eq17h85f7721f0d330670E.llvm.3683678558897460461.exit" -"_ZN55_$LT$T$u20$as$u20$core..option..SpecOptionPartialEq$GT$2eq17h85f7721f0d330670E.llvm.3683678558897460461.exit": ; preds = %6, %8, %13, %16 - %.0.shrunk.i = phi i1 [ %7, %6 ], [ false, %8 ], [ %18, %16 ], [ %15, %13 ] +"_ZN55_$LT$T$u20$as$u20$core..option..SpecOptionPartialEq$GT$2eq17h85f7721f0d330670E.llvm.3683678558897460461.exit": ; preds = %6, %8, %11, %16 + %.0.shrunk.i = phi i1 [ %7, %6 ], [ false, %8 ], [ %19, %16 ], [ %15, %11 ] ret i1 %.0.shrunk.i } @@ -143961,8 +143961,8 @@ define hidden noundef zeroext i1 @"_ZN81_$LT$typst..foundations..auto..Smart$LT$ %brmerge.demorgan = and i1 %4, %6 br i1 %brmerge.demorgan, label %9, label %"_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8071a3c56276dfcfE.llvm.3683678558897460461.exit" -"_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8071a3c56276dfcfE.llvm.3683678558897460461.exit": ; preds = %21, %18, %13, %11, %8, %2 - %.0 = phi i1 [ false, %2 ], [ true, %8 ], [ %12, %11 ], [ false, %13 ], [ %23, %21 ], [ %20, %18 ] +"_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8071a3c56276dfcfE.llvm.3683678558897460461.exit": ; preds = %21, %16, %13, %11, %8, %2 + %.0 = phi i1 [ false, %2 ], [ true, %8 ], [ %12, %11 ], [ false, %13 ], [ %24, %21 ], [ %20, %16 ] ret i1 %.0 9: ; preds = %8 @@ -143979,20 +143979,20 @@ define hidden noundef zeroext i1 @"_ZN81_$LT$typst..foundations..auto..Smart$LT$ 15: ; preds = %13 %trunc.i.i.i = trunc nuw i64 %3 to i1 - %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %17 = getelementptr inbounds nuw i8, ptr %1, i64 8 - br i1 %trunc.i.i.i, label %21, label %18 + br i1 %trunc.i.i.i, label %21, label %16 -18: ; preds = %15 - %19 = icmp eq i64 %3, 0 - tail call void @llvm.assume(i1 %19) - %20 = tail call noundef zeroext i1 @"_ZN77_$LT$typst..foundations..content..Content$u20$as$u20$core..cmp..PartialEq$GT$2eq17hb8fbde024badb170E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %16, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %17) +16: ; preds = %15 + %17 = icmp eq i64 %3, 0 + tail call void @llvm.assume(i1 %17) + %18 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %19 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %20 = tail call noundef zeroext i1 @"_ZN77_$LT$typst..foundations..content..Content$u20$as$u20$core..cmp..PartialEq$GT$2eq17hb8fbde024badb170E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %18, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %19) br label %"_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8071a3c56276dfcfE.llvm.3683678558897460461.exit" 21: ; preds = %15 - %22 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %22) - %23 = tail call noundef zeroext i1 @"_ZN71_$LT$typst..foundations..func..Repr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h496b6faee83779ceE.llvm.12850028421071809815"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %16, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %17) + %22 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %23 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %24 = tail call noundef zeroext i1 @"_ZN71_$LT$typst..foundations..func..Repr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h496b6faee83779ceE.llvm.12850028421071809815"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %22, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %23) br label %"_ZN70_$LT$core..option..Option$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8071a3c56276dfcfE.llvm.3683678558897460461.exit" } @@ -151516,16 +151516,16 @@ define hidden noundef zeroext i1 @"_ZN72_$LT$typst..layout..spacing..Spacing$u20 10: ; preds = %2 %trunc = trunc nuw i64 %7 to i1 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 8 - br i1 %trunc, label %54, label %12 + br i1 %trunc, label %54, label %11 "_ZN73_$LT$typst..layout..rel..Rel$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17he225eaeac69358efE.llvm.3683678558897460461.exit": ; preds = %"_ZN68_$LT$typst..util..scalar..Scalar$u20$as$u20$core..cmp..PartialEq$GT$2eq17h0ccd3eefeec065a8E.exit1.i.i", %"_ZN68_$LT$typst..util..scalar..Scalar$u20$as$u20$core..cmp..PartialEq$GT$2eq17h0ccd3eefeec065a8E.exit.i.i", %"_ZN68_$LT$typst..util..scalar..Scalar$u20$as$u20$core..cmp..PartialEq$GT$2eq17h0ccd3eefeec065a8E.exit.i", %2, %"_ZN68_$LT$typst..util..scalar..Scalar$u20$as$u20$core..cmp..PartialEq$GT$2eq17h0ccd3eefeec065a8E.exit" %.0.shrunk = phi i1 [ %67, %"_ZN68_$LT$typst..util..scalar..Scalar$u20$as$u20$core..cmp..PartialEq$GT$2eq17h0ccd3eefeec065a8E.exit" ], [ false, %2 ], [ false, %"_ZN68_$LT$typst..util..scalar..Scalar$u20$as$u20$core..cmp..PartialEq$GT$2eq17h0ccd3eefeec065a8E.exit.i" ], [ %53, %"_ZN68_$LT$typst..util..scalar..Scalar$u20$as$u20$core..cmp..PartialEq$GT$2eq17h0ccd3eefeec065a8E.exit1.i.i" ], [ false, %"_ZN68_$LT$typst..util..scalar..Scalar$u20$as$u20$core..cmp..PartialEq$GT$2eq17h0ccd3eefeec065a8E.exit.i.i" ] ret i1 %.0.shrunk -12: ; preds = %10 - %13 = icmp eq i64 %7, 0 - tail call void @llvm.assume(i1 %13) +11: ; preds = %10 + %12 = icmp eq i64 %7, 0 + tail call void @llvm.assume(i1 %12) + %13 = getelementptr inbounds nuw i8, ptr %0, i64 8 %14 = getelementptr inbounds nuw i8, ptr %1, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !27028) tail call void @llvm.experimental.noalias.scope.decl(metadata !27031) @@ -151536,13 +151536,13 @@ define hidden noundef zeroext i1 @"_ZN72_$LT$typst..layout..spacing..Spacing$u20 %17 = fcmp uno double %16, 0.000000e+00 br i1 %17, label %22, label %18 -18: ; preds = %12 +18: ; preds = %11 %19 = getelementptr inbounds nuw i8, ptr %1, i64 24 %20 = load double, ptr %19, align 8, !alias.scope !27039, !noalias !27038, !noundef !7 %21 = fcmp uno double %20, 0.000000e+00 br i1 %21, label %22, label %"_ZN68_$LT$typst..util..scalar..Scalar$u20$as$u20$core..cmp..PartialEq$GT$2eq17h0ccd3eefeec065a8E.exit.i" -22: ; preds = %18, %12 +22: ; preds = %18, %11 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6), !noalias !27040 store ptr @anon.a2b023d1a4e2834952d16152dce23780.285.llvm.7889846851399105414, ptr %6, align 8, !noalias !27040 %23 = getelementptr inbounds nuw i8, ptr %6, i64 8 @@ -151565,7 +151565,7 @@ define hidden noundef zeroext i1 @"_ZN72_$LT$typst..layout..spacing..Spacing$u20 tail call void @llvm.experimental.noalias.scope.decl(metadata !27044) tail call void @llvm.experimental.noalias.scope.decl(metadata !27046) tail call void @llvm.experimental.noalias.scope.decl(metadata !27049) - %29 = load double, ptr %11, align 8, !alias.scope !27051, !noalias !27052, !noundef !7 + %29 = load double, ptr %13, align 8, !alias.scope !27051, !noalias !27052, !noundef !7 %30 = fcmp uno double %29, 0.000000e+00 br i1 %30, label %34, label %31 @@ -151625,11 +151625,10 @@ define hidden noundef zeroext i1 @"_ZN72_$LT$typst..layout..spacing..Spacing$u20 br label %"_ZN73_$LT$typst..layout..rel..Rel$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17he225eaeac69358efE.llvm.3683678558897460461.exit" 54: ; preds = %10 - %55 = icmp ne i64 %7, 0 - tail call void @llvm.assume(i1 %55) + %55 = getelementptr inbounds nuw i8, ptr %0, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !27062) tail call void @llvm.experimental.noalias.scope.decl(metadata !27065) - %56 = load double, ptr %11, align 8, !alias.scope !27062, !noalias !27065, !noundef !7 + %56 = load double, ptr %55, align 8, !alias.scope !27062, !noalias !27065, !noundef !7 %57 = fcmp uno double %56, 0.000000e+00 br i1 %57, label %62, label %58 @@ -158178,8 +158177,8 @@ define noundef zeroext i1 @"_ZN5typst5model9reference1_83_$LT$impl$u20$core..cmp %.mux = and i1 %11, %14 br i1 %brmerge, label %"_ZN81_$LT$typst..foundations..auto..Smart$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17hc1082fda4cfd31a7E.llvm.3683678558897460461.exit", label %15 -"_ZN81_$LT$typst..foundations..auto..Smart$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17hc1082fda4cfd31a7E.llvm.3683678558897460461.exit": ; preds = %8, %32, %29, %24, %22, %19, %15, %2 - %.0.shrunk = phi i1 [ false, %2 ], [ false, %15 ], [ true, %19 ], [ %23, %22 ], [ false, %24 ], [ %34, %32 ], [ %31, %29 ], [ %.mux, %8 ] +"_ZN81_$LT$typst..foundations..auto..Smart$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17hc1082fda4cfd31a7E.llvm.3683678558897460461.exit": ; preds = %8, %32, %27, %24, %22, %19, %15, %2 + %.0.shrunk = phi i1 [ false, %2 ], [ false, %15 ], [ true, %19 ], [ %23, %22 ], [ false, %24 ], [ %35, %32 ], [ %31, %27 ], [ %.mux, %8 ] ret i1 %.0.shrunk 15: ; preds = %8 @@ -158206,20 +158205,20 @@ define noundef zeroext i1 @"_ZN5typst5model9reference1_83_$LT$impl$u20$core..cmp 26: ; preds = %24 %trunc.i.i.i.i = trunc nuw i64 %10 to i1 - %27 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %28 = getelementptr inbounds nuw i8, ptr %1, i64 72 - br i1 %trunc.i.i.i.i, label %32, label %29 + br i1 %trunc.i.i.i.i, label %32, label %27 -29: ; preds = %26 - %30 = icmp eq i64 %10, 0 - tail call void @llvm.assume(i1 %30) - %31 = tail call noundef zeroext i1 @"_ZN77_$LT$typst..foundations..content..Content$u20$as$u20$core..cmp..PartialEq$GT$2eq17hb8fbde024badb170E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %27, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %28) +27: ; preds = %26 + %28 = icmp eq i64 %10, 0 + tail call void @llvm.assume(i1 %28) + %29 = getelementptr inbounds nuw i8, ptr %0, i64 72 + %30 = getelementptr inbounds nuw i8, ptr %1, i64 72 + %31 = tail call noundef zeroext i1 @"_ZN77_$LT$typst..foundations..content..Content$u20$as$u20$core..cmp..PartialEq$GT$2eq17hb8fbde024badb170E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %29, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %30) br label %"_ZN81_$LT$typst..foundations..auto..Smart$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17hc1082fda4cfd31a7E.llvm.3683678558897460461.exit" 32: ; preds = %26 - %33 = icmp ne i64 %10, 0 - tail call void @llvm.assume(i1 %33) - %34 = tail call noundef zeroext i1 @"_ZN71_$LT$typst..foundations..func..Repr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h496b6faee83779ceE.llvm.12850028421071809815"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %27, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %28) + %33 = getelementptr inbounds nuw i8, ptr %0, i64 72 + %34 = getelementptr inbounds nuw i8, ptr %1, i64 72 + %35 = tail call noundef zeroext i1 @"_ZN71_$LT$typst..foundations..func..Repr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h496b6faee83779ceE.llvm.12850028421071809815"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %33, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %34) br label %"_ZN81_$LT$typst..foundations..auto..Smart$LT$T$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17hc1082fda4cfd31a7E.llvm.3683678558897460461.exit" } @@ -158401,29 +158400,29 @@ define hidden noundef zeroext i1 @"_ZN76_$LT$typst..model..reference..Supplement %3 = load i64, ptr %0, align 8, !range !1084, !noundef !7 %4 = load i64, ptr %1, align 8, !range !1084, !noundef !7 %5 = icmp eq i64 %3, %4 - br i1 %5, label %6, label %9 + br i1 %5, label %6, label %7 6: ; preds = %2 %trunc = trunc nuw i64 %3 to i1 - %7 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %8 = getelementptr inbounds nuw i8, ptr %1, i64 8 - br i1 %trunc, label %13, label %10 + br i1 %trunc, label %13, label %8 -9: ; preds = %2, %13, %10 - %.0.shrunk = phi i1 [ %15, %13 ], [ %12, %10 ], [ false, %2 ] +7: ; preds = %2, %13, %8 + %.0.shrunk = phi i1 [ %16, %13 ], [ %12, %8 ], [ false, %2 ] ret i1 %.0.shrunk -10: ; preds = %6 - %11 = icmp eq i64 %3, 0 - tail call void @llvm.assume(i1 %11) - %12 = tail call noundef zeroext i1 @"_ZN77_$LT$typst..foundations..content..Content$u20$as$u20$core..cmp..PartialEq$GT$2eq17hb8fbde024badb170E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %8) - br label %9 +8: ; preds = %6 + %9 = icmp eq i64 %3, 0 + tail call void @llvm.assume(i1 %9) + %10 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %11 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %12 = tail call noundef zeroext i1 @"_ZN77_$LT$typst..foundations..content..Content$u20$as$u20$core..cmp..PartialEq$GT$2eq17hb8fbde024badb170E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %10, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %11) + br label %7 13: ; preds = %6 - %14 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %14) - %15 = tail call noundef zeroext i1 @"_ZN71_$LT$typst..foundations..func..Repr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h496b6faee83779ceE.llvm.12850028421071809815"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %8) - br label %9 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %15 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %16 = tail call noundef zeroext i1 @"_ZN71_$LT$typst..foundations..func..Repr$u20$as$u20$core..cmp..PartialEq$GT$2eq17h496b6faee83779ceE.llvm.12850028421071809815"(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %14, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %15) + br label %7 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable diff --git a/bench/verilator/optimized/V3EmitCImp.cpp.ll b/bench/verilator/optimized/V3EmitCImp.cpp.ll index 703b8253d36..87d2c6773c4 100644 --- a/bench/verilator/optimized/V3EmitCImp.cpp.ll +++ b/bench/verilator/optimized/V3EmitCImp.cpp.ll @@ -22818,9 +22818,9 @@ _ZN21EmitCBaseVisitorConst5putnsEPK7AstNodeRKNSt7__cxx1112basic_stringIcSt11char call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %97) #31 br label %common.resume -_ZN14VNVisitorConst23iterateAndNextConstNullEP7AstNode.exit422.thread: ; preds = %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit259, %_ZN7AstNode9privateIsI11AstExprStmtP11AstNodeExprEEbPKS_.exit.thread, %640, %_ZN21EmitCBaseVisitorConst5putnsEPK7AstNodeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit471, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit407, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit375, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit343, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit305 - %.0513 = phi i1 [ true, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit259 ], [ false, %_ZN7AstNode9privateIsI11AstExprStmtP11AstNodeExprEEbPKS_.exit.thread ], [ true, %640 ], [ false, %_ZN21EmitCBaseVisitorConst5putnsEPK7AstNodeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit471 ], [ true, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit407 ], [ true, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit375 ], [ true, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit343 ], [ true, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit305 ] - %.080511 = phi i1 [ false, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit259 ], [ false, %_ZN7AstNode9privateIsI11AstExprStmtP11AstNodeExprEEbPKS_.exit.thread ], [ false, %640 ], [ true, %_ZN21EmitCBaseVisitorConst5putnsEPK7AstNodeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit471 ], [ false, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit407 ], [ false, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit375 ], [ false, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit343 ], [ false, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit305 ] +_ZN14VNVisitorConst23iterateAndNextConstNullEP7AstNode.exit422.thread: ; preds = %_ZN7AstNode9privateIsI11AstExprStmtP11AstNodeExprEEbPKS_.exit.thread, %640, %_ZN21EmitCBaseVisitorConst5putnsEPK7AstNodeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit471, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit407, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit375, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit343, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit305, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit259 + %.0513 = phi i1 [ false, %_ZN7AstNode9privateIsI11AstExprStmtP11AstNodeExprEEbPKS_.exit.thread ], [ true, %640 ], [ false, %_ZN21EmitCBaseVisitorConst5putnsEPK7AstNodeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit471 ], [ true, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit407 ], [ true, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit375 ], [ true, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit343 ], [ true, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit305 ], [ true, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit259 ] + %.080511 = phi i1 [ false, %_ZN7AstNode9privateIsI11AstExprStmtP11AstNodeExprEEbPKS_.exit.thread ], [ false, %640 ], [ true, %_ZN21EmitCBaseVisitorConst5putnsEPK7AstNodeRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit471 ], [ false, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit407 ], [ false, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit375 ], [ false, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit343 ], [ false, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit305 ], [ false, %_ZN21EmitCBaseVisitorConst4putsERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit259 ] %680 = getelementptr inbounds nuw i8, ptr %1, i64 24 %681 = load ptr, ptr %680, align 8 %.not.i472 = icmp eq ptr %681, null diff --git a/bench/wasmtime-rs/optimized/1r2x5absurxbrq18.ll b/bench/wasmtime-rs/optimized/1r2x5absurxbrq18.ll index 38f1945cfe1..3a622b7993a 100644 --- a/bench/wasmtime-rs/optimized/1r2x5absurxbrq18.ll +++ b/bench/wasmtime-rs/optimized/1r2x5absurxbrq18.ll @@ -8985,22 +8985,32 @@ define hidden noundef zeroext i1 @"_ZN52_$LT$Q$u20$as$u20$hashbrown..Equivalent$ %3 = load i32, ptr %0, align 4, !range !1563, !alias.scope !2644, !noalias !2647, !noundef !16 %4 = load i32, ptr %1, align 4, !range !1563, !alias.scope !2647, !noalias !2644, !noundef !16 %5 = icmp eq i32 %3, %4 - br i1 %5, label %.sink.split.i, label %"_ZN91_$LT$wasmtime_environ..component..translate..adapt..Def$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8ecc0adcbe92a6feE.llvm.3269599604001853466.exit" + br i1 %5, label %6, label %"_ZN91_$LT$wasmtime_environ..component..translate..adapt..Def$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8ecc0adcbe92a6feE.llvm.3269599604001853466.exit" -.sink.split.i: ; preds = %2 +6: ; preds = %2 %trunc.i = trunc nuw i32 %3 to i1 - %6 = getelementptr inbounds nuw i8, ptr %0, i64 4 - %7 = getelementptr inbounds nuw i8, ptr %1, i64 4 + br i1 %trunc.i, label %14, label %7 + +7: ; preds = %6 %8 = icmp eq i32 %3, 0 - %.sink.i = xor i1 %8, %trunc.i - tail call void @llvm.assume(i1 %.sink.i) - %9 = load i32, ptr %6, align 4, !alias.scope !2644, !noalias !2647, !noundef !16 - %10 = load i32, ptr %7, align 4, !alias.scope !2647, !noalias !2644, !noundef !16 - %11 = icmp eq i32 %9, %10 + tail call void @llvm.assume(i1 %8) + %9 = getelementptr inbounds nuw i8, ptr %0, i64 4 + %10 = load i32, ptr %9, align 4, !alias.scope !2644, !noalias !2647, !noundef !16 + %11 = getelementptr inbounds nuw i8, ptr %1, i64 4 + %12 = load i32, ptr %11, align 4, !alias.scope !2647, !noalias !2644, !noundef !16 + %13 = icmp eq i32 %10, %12 br label %"_ZN91_$LT$wasmtime_environ..component..translate..adapt..Def$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8ecc0adcbe92a6feE.llvm.3269599604001853466.exit" -"_ZN91_$LT$wasmtime_environ..component..translate..adapt..Def$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8ecc0adcbe92a6feE.llvm.3269599604001853466.exit": ; preds = %2, %.sink.split.i - %.0.shrunk.i = phi i1 [ false, %2 ], [ %11, %.sink.split.i ] +14: ; preds = %6 + %15 = getelementptr inbounds nuw i8, ptr %0, i64 4 + %16 = load i32, ptr %15, align 4, !alias.scope !2644, !noalias !2647, !noundef !16 + %17 = getelementptr inbounds nuw i8, ptr %1, i64 4 + %18 = load i32, ptr %17, align 4, !alias.scope !2647, !noalias !2644, !noundef !16 + %19 = icmp eq i32 %16, %18 + br label %"_ZN91_$LT$wasmtime_environ..component..translate..adapt..Def$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8ecc0adcbe92a6feE.llvm.3269599604001853466.exit" + +"_ZN91_$LT$wasmtime_environ..component..translate..adapt..Def$u20$as$u20$core..cmp..PartialEq$GT$2eq17h8ecc0adcbe92a6feE.llvm.3269599604001853466.exit": ; preds = %2, %7, %14 + %.0.shrunk.i = phi i1 [ %19, %14 ], [ %13, %7 ], [ false, %2 ] ret i1 %.0.shrunk.i } @@ -21612,23 +21622,33 @@ define hidden noundef zeroext i1 @"_ZN91_$LT$wasmtime_environ..component..transl %3 = load i32, ptr %0, align 4, !range !1563, !noundef !16 %4 = load i32, ptr %1, align 4, !range !1563, !noundef !16 %5 = icmp eq i32 %3, %4 - br i1 %5, label %.sink.split, label %12 + br i1 %5, label %6, label %7 -.sink.split: ; preds = %2 +6: ; preds = %2 %trunc = trunc nuw i32 %3 to i1 - %6 = getelementptr inbounds nuw i8, ptr %0, i64 4 - %7 = getelementptr inbounds nuw i8, ptr %1, i64 4 - %8 = icmp eq i32 %3, 0 - %.sink = xor i1 %8, %trunc - tail call void @llvm.assume(i1 %.sink) - %9 = load i32, ptr %6, align 4, !noundef !16 - %10 = load i32, ptr %7, align 4, !noundef !16 - %11 = icmp eq i32 %9, %10 - br label %12 + br i1 %trunc, label %15, label %8 -12: ; preds = %.sink.split, %2 - %.0.shrunk = phi i1 [ false, %2 ], [ %11, %.sink.split ] +7: ; preds = %2, %15, %8 + %.0.shrunk = phi i1 [ %20, %15 ], [ %14, %8 ], [ false, %2 ] ret i1 %.0.shrunk + +8: ; preds = %6 + %9 = icmp eq i32 %3, 0 + tail call void @llvm.assume(i1 %9) + %10 = getelementptr inbounds nuw i8, ptr %0, i64 4 + %11 = load i32, ptr %10, align 4, !noundef !16 + %12 = getelementptr inbounds nuw i8, ptr %1, i64 4 + %13 = load i32, ptr %12, align 4, !noundef !16 + %14 = icmp eq i32 %11, %13 + br label %7 + +15: ; preds = %6 + %16 = getelementptr inbounds nuw i8, ptr %0, i64 4 + %17 = load i32, ptr %16, align 4, !noundef !16 + %18 = getelementptr inbounds nuw i8, ptr %1, i64 4 + %19 = load i32, ptr %18, align 4, !noundef !16 + %20 = icmp eq i32 %17, %19 + br label %7 } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/wasmtime-rs/optimized/o5hc9u3mlvace0j.ll b/bench/wasmtime-rs/optimized/o5hc9u3mlvace0j.ll index 53238f58cd6..02237804f0a 100644 --- a/bench/wasmtime-rs/optimized/o5hc9u3mlvace0j.ll +++ b/bench/wasmtime-rs/optimized/o5hc9u3mlvace0j.ll @@ -612,7 +612,7 @@ _ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock4read17h6e07bcfccebc1fafE.llvm.21 28: ; preds = %24 %29 = invoke noundef zeroext i1 @_ZN3std9panicking11panic_count17is_zero_slow_path17hce355016e1a01eb0E() - to label %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.2108000528430856095.exit unwind label %209 + to label %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.2108000528430856095.exit unwind label %208 30: ; preds = %_ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock4read17h6e07bcfccebc1fafE.llvm.2108000528430856095.exit %31 = getelementptr inbounds nuw i8, ptr %1, i64 16 @@ -753,8 +753,8 @@ _ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock4read17h6e07bcfccebc1fafE.llvm.21 %94 = add i64 %.sroa.01.0.i.i.i.i, %93 br label %75 -.body45: ; preds = %.body, %189, %99, %208, %112 - %.pn8.pn = phi { ptr, i32 } [ %.pn8, %208 ], [ %.pn8, %112 ], [ %100, %99 ], [ %190, %189 ], [ %eh.lpad-body, %.body ] +.body45: ; preds = %.body, %189, %99, %.thread66, %112 + %.pn8.pn = phi { ptr, i32 } [ %.pn869, %.thread66 ], [ %.pn8, %112 ], [ %100, %99 ], [ %190, %189 ], [ %eh.lpad-body, %.body ] %95 = atomicrmw sub ptr %17, i32 1 release, align 4, !noalias !168 %96 = add i32 %95, -1 %97 = and i32 %96, -1073741825 @@ -801,11 +801,11 @@ _ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock4read17h6e07bcfccebc1fafE.llvm.21 invoke void @_ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock15write_contended17hf98ef931bc9462c4E(ptr noundef nonnull align 4 %109) to label %_ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock5write17h77e98b0a677572beE.llvm.2108000528430856095.exit unwind label %114 -112: ; preds = %207, %206, %204, %114 - %.16 = phi i8 [ %.05, %114 ], [ %.0, %207 ], [ %.0, %204 ], [ %.0, %206 ] - %.pn8 = phi { ptr, i32 } [ %115, %114 ], [ %173, %207 ], [ %173, %204 ], [ %173, %206 ] +112: ; preds = %206, %204, %114 + %.16 = phi i8 [ %.05, %114 ], [ %.0, %204 ], [ %.0, %206 ] + %.pn8 = phi { ptr, i32 } [ %115, %114 ], [ %173, %204 ], [ %173, %206 ] %113 = trunc nuw i8 %.16 to i1 - br i1 %113, label %208, label %.body45 + br i1 %113, label %.thread66, label %.body45 114: ; preds = %119, %_ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock5write17h77e98b0a677572beE.llvm.2108000528430856095.exit, %111, %181, %178 %.05 = phi i8 [ 0, %178 ], [ 1, %181 ], [ 1, %111 ], [ 1, %_ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock5write17h77e98b0a677572beE.llvm.2108000528430856095.exit ], [ 1, %119 ] @@ -987,7 +987,7 @@ _ZN3std4sync6poison4Flag4done17h6aecd475d8dd2349E.llvm.3847999990672408200.exit. invoke void @"_ZN4core3ptr532drop_in_place$LT$core..result..Result$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$C$std..sync..poison..PoisonError$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$GT$$GT$$GT$17hfce0769c73914b67E.llvm.2108000528430856095"(ptr noalias noundef nonnull align 8 dereferenceable(24) %13) to label %177 unwind label %114 -179: ; preds = %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i50", %98, %208, %207, %206, %.body +179: ; preds = %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i50", %98, %.thread66, %207, %206, %.body %180 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #28 @@ -1064,7 +1064,7 @@ _ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.210800052 call void @_ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock22wake_writer_or_readers17h575f97e0f5cd276fE(ptr noundef nonnull align 4 %17, i32 noundef %201), !noalias !225 br label %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit26" -"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit26": ; preds = %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i54", %214, %203, %199, %107, %.thread +"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit26": ; preds = %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i54", %213, %203, %199, %107, %.thread ret void 204: ; preds = %172 @@ -1077,45 +1077,46 @@ _ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.210800052 207: ; preds = %204 invoke void @"_ZN4core3ptr242drop_in_place$LT$std..sync..rwlock..RwLockWriteGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..span..Id$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$$GT$$GT$17h5f70d1ee8a6efe55E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %128) #27 - to label %112 unwind label %179 + to label %.thread66 unwind label %179 -208: ; preds = %112 +.thread66: ; preds = %207, %112 + %.pn869 = phi { ptr, i32 } [ %.pn8, %112 ], [ %173, %207 ] invoke void @"_ZN4core3ptr130drop_in_place$LT$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..SpanMatch$GT$$GT$17hb238d033aa3b0cf3E"(ptr noalias noundef nonnull align 8 dereferenceable(32) %16) #27 to label %.body45 unwind label %179 -"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit": ; preds = %209, %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i50", %.body45, %98 - %.pn8.pn.pn = phi { ptr, i32 } [ %.pn8.pn, %98 ], [ %.pn8.pn, %.body45 ], [ %210, %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i50" ], [ %210, %209 ] +"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit": ; preds = %208, %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i50", %.body45, %98 + %.pn8.pn.pn = phi { ptr, i32 } [ %.pn8.pn, %98 ], [ %.pn8.pn, %.body45 ], [ %209, %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i50" ], [ %209, %208 ] resume { ptr, i32 } %.pn8.pn.pn -209: ; preds = %28, %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.2108000528430856095.exit.thread - %210 = landingpad { ptr, i32 } +208: ; preds = %28, %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.2108000528430856095.exit.thread + %209 = landingpad { ptr, i32 } cleanup - %211 = atomicrmw sub ptr %17, i32 1 release, align 4, !noalias !4 - %212 = add i32 %211, -1 - %213 = and i32 %212, -1073741825 - %or.cond.not.i.i.i49 = icmp eq i32 %213, -2147483648 + %210 = atomicrmw sub ptr %17, i32 1 release, align 4, !noalias !4 + %211 = add i32 %210, -1 + %212 = and i32 %211, -1073741825 + %or.cond.not.i.i.i49 = icmp eq i32 %212, -2147483648 br i1 %or.cond.not.i.i.i49, label %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i50", label %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit" -"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i50": ; preds = %209 - invoke void @_ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock22wake_writer_or_readers17h575f97e0f5cd276fE(ptr noundef nonnull align 4 %17, i32 noundef %212) +"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i50": ; preds = %208 + invoke void @_ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock22wake_writer_or_readers17h575f97e0f5cd276fE(ptr noundef nonnull align 4 %17, i32 noundef %211) to label %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit" unwind label %179 _ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.2108000528430856095.exit: ; preds = %28 - br i1 %29, label %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.2108000528430856095.exit.thread, label %214 + br i1 %29, label %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.2108000528430856095.exit.thread, label %213 _ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.2108000528430856095.exit.thread: ; preds = %24, %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.2108000528430856095.exit invoke void @_ZN3std9panicking11begin_panic17hf5809042cb591212E(ptr noalias noundef nonnull readonly align 1 @anon.4546acaf7eac7bd177d8f828934a5776.17.llvm.2108000528430856095, i64 noundef 13, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.4546acaf7eac7bd177d8f828934a5776.20) #26 - to label %182 unwind label %209 + to label %182 unwind label %208 -214: ; preds = %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.2108000528430856095.exit - %215 = atomicrmw sub ptr %17, i32 1 release, align 4, !noalias !4 - %216 = add i32 %215, -1 - %217 = and i32 %216, -1073741825 - %or.cond.not.i.i.i53 = icmp eq i32 %217, -2147483648 +213: ; preds = %_ZN3std9panicking11panic_count13count_is_zero17h6863efef417c46dbE.llvm.2108000528430856095.exit + %214 = atomicrmw sub ptr %17, i32 1 release, align 4, !noalias !4 + %215 = add i32 %214, -1 + %216 = and i32 %215, -1073741825 + %or.cond.not.i.i.i53 = icmp eq i32 %216, -2147483648 br i1 %or.cond.not.i.i.i53, label %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i54", label %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit26" -"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i54": ; preds = %214 - tail call void @_ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock22wake_writer_or_readers17h575f97e0f5cd276fE(ptr noundef nonnull align 4 %17, i32 noundef %216), !noalias !4 +"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit.sink.split.i54": ; preds = %213 + tail call void @_ZN3std3sys3pal4unix5locks12futex_rwlock6RwLock22wake_writer_or_readers17h575f97e0f5cd276fE(ptr noundef nonnull align 4 %17, i32 noundef %215), !noalias !4 br label %"_ZN4core3ptr257drop_in_place$LT$std..sync..rwlock..RwLockReadGuard$LT$std..collections..hash..map..HashMap$LT$tracing_core..callsite..Identifier$C$tracing_subscriber..filter..env..directive..MatchSet$LT$tracing_subscriber..filter..env..field..CallsiteMatch$GT$$GT$$GT$$GT$17h0e095646c001436eE.exit26" } diff --git a/bench/z3/optimized/seq_eq_solver.cpp.ll b/bench/z3/optimized/seq_eq_solver.cpp.ll index 466e7b64e3c..713ec926e04 100644 --- a/bench/z3/optimized/seq_eq_solver.cpp.ll +++ b/bench/z3/optimized/seq_eq_solver.cpp.ll @@ -7888,7 +7888,7 @@ entry: br label %for.cond for.cond: ; preds = %for.inc47, %entry - %indvars.iv77 = phi i64 [ %indvars.iv.next78, %for.inc47 ], [ 0, %entry ] + %indvars.iv86 = phi i64 [ %indvars.iv.next87, %for.inc47 ], [ 0, %entry ] %0 = load ptr, ptr %m_nodes.i, align 8 %cmp.i.i = icmp eq ptr %0, null br i1 %cmp.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, label %if.end.i.i @@ -7901,12 +7901,12 @@ if.end.i.i: ; preds = %for.cond _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit: ; preds = %for.cond, %if.end.i.i %retval.0.i.i = phi i64 [ %2, %if.end.i.i ], [ 0, %for.cond ] - %cmp = icmp samesign ult i64 %indvars.iv77, %retval.0.i.i + %cmp = icmp samesign ult i64 %indvars.iv86, %retval.0.i.i br i1 %cmp, label %for.body, label %return for.body: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit %3 = load ptr, ptr %this, align 8 - %arrayidx.i.i.i = getelementptr inbounds nuw ptr, ptr %0, i64 %indvars.iv77 + %arrayidx.i.i.i = getelementptr inbounds nuw ptr, ptr %0, i64 %indvars.iv86 %4 = load ptr, ptr %arrayidx.i.i.i, align 8 %5 = load ptr, ptr %m_nodes.i25, align 8 %cmp.i.i.i = icmp eq ptr %5, null @@ -7927,7 +7927,7 @@ _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit: br i1 %call4, label %for.inc47, label %if.end if.end: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - %cmp5 = icmp eq i64 %indvars.iv77, 0 + %cmp5 = icmp eq i64 %indvars.iv86, 0 br i1 %cmp5, label %return, label %if.end7 if.end7: ; preds = %if.end @@ -7939,11 +7939,11 @@ _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit3 %arrayidx.i.i30 = getelementptr inbounds i8, ptr %10, i64 -4 %11 = load i32, ptr %arrayidx.i.i30, align 4 %12 = zext i32 %11 to i64 - %cmp9 = icmp samesign ult i64 %indvars.iv77, %12 + %cmp9 = icmp samesign ult i64 %indvars.iv86, %12 br i1 %cmp9, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit38, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit50 _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit38: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit32 - %13 = trunc nuw i64 %indvars.iv77 to i32 + %13 = trunc nuw i64 %indvars.iv86 to i32 %add.neg = xor i32 %13, -1 %sub = add i32 %11, %add.neg br label %for.body14 @@ -7962,63 +7962,54 @@ for.body14: ; preds = %_ZNK15ref_vector_co %19 = load ptr, ptr %arrayidx.i.i.i44, align 8 %call19 = tail call noundef zeroext i1 @_ZNK11ast_manager12are_distinctEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %14, ptr noundef %16, ptr noundef %19) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %cmp13 = icmp samesign uge i64 %indvars.iv.next, %indvars.iv77 + %cmp13 = icmp samesign uge i64 %indvars.iv.next, %indvars.iv86 %.not = select i1 %call19, i1 true, i1 %cmp13 br i1 %.not, label %if.end43, label %for.body14, !llvm.loop !48 _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit50: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit32, %if.end7 %retval.0.i.i49 = phi i32 [ 0, %if.end7 ], [ %11, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit32 ] - %20 = trunc i64 %indvars.iv77 to i32 + %20 = trunc i64 %indvars.iv86 to i32 %21 = add i32 %20, 1 %sub23 = sub i32 %21, %retval.0.i.i49 + br label %land.rhs27 + +land.rhs27: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit50, %for.body32 + %indvars.iv83 = phi i64 [ 0, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit50 ], [ %indvars.iv.next84, %for.body32 ] + %indvars.iv.next84 = add nuw nsw i64 %indvars.iv83, 1 %22 = load ptr, ptr %m_nodes.i25, align 8 - %cmp.i.i5282 = icmp eq ptr %22, null - br i1 %cmp.i.i5282, label %return, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit56 - -land.rhs27: ; preds = %for.body32 - %indvars.iv.next76 = add nuw nsw i64 %indvars.iv.next7685, 1 - %23 = load ptr, ptr %m_nodes.i25, align 8 - %cmp.i.i52 = icmp eq ptr %23, null - br i1 %cmp.i.i52, label %if.end43.loopexit, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit56, !llvm.loop !49 - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit56: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit50, %land.rhs27 - %24 = phi ptr [ %23, %land.rhs27 ], [ %22, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit50 ] - %indvars.iv.next7685 = phi i64 [ %indvars.iv.next76, %land.rhs27 ], [ 1, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit50 ] - %same.27184 = phi i1 [ %lnot38, %land.rhs27 ], [ true, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit50 ] - %indvars.iv7583 = phi i64 [ %indvars.iv.next7685, %land.rhs27 ], [ 0, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit50 ] - %arrayidx.i.i54 = getelementptr inbounds i8, ptr %24, i64 -4 - %25 = load i32, ptr %arrayidx.i.i54, align 4 - %26 = zext i32 %25 to i64 - %cmp30 = icmp samesign ult i64 %indvars.iv.next7685, %26 - br i1 %cmp30, label %for.body32, label %if.end43.loopexit + %cmp.i.i52 = icmp eq ptr %22, null + br i1 %cmp.i.i52, label %return, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit56 + +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit56: ; preds = %land.rhs27 + %arrayidx.i.i54 = getelementptr inbounds i8, ptr %22, i64 -4 + %23 = load i32, ptr %arrayidx.i.i54, align 4 + %24 = zext i32 %23 to i64 + %cmp30 = icmp samesign ult i64 %indvars.iv.next84, %24 + br i1 %cmp30, label %for.body32, label %return for.body32: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit56 - %27 = load ptr, ptr %this, align 8 - %28 = trunc nuw i64 %indvars.iv7583 to i32 - %add34 = add i32 %sub23, %28 - %29 = load ptr, ptr %m_nodes.i, align 8 + %25 = load ptr, ptr %this, align 8 + %26 = trunc nuw i64 %indvars.iv83 to i32 + %add34 = add i32 %sub23, %26 + %27 = load ptr, ptr %m_nodes.i, align 8 %idxprom.i.i.i58 = zext i32 %add34 to i64 - %arrayidx.i.i.i59 = getelementptr inbounds nuw ptr, ptr %29, i64 %idxprom.i.i.i58 - %30 = load ptr, ptr %arrayidx.i.i.i59, align 8 - %arrayidx.i.i.i62 = getelementptr inbounds nuw ptr, ptr %24, i64 %indvars.iv7583 - %31 = load ptr, ptr %arrayidx.i.i.i62, align 8 - %call37 = tail call noundef zeroext i1 @_ZNK11ast_manager12are_distinctEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %27, ptr noundef %30, ptr noundef %31) - %lnot38 = xor i1 %call37, true - br i1 %call37, label %if.end43.loopexit, label %land.rhs27, !llvm.loop !49 - -if.end43.loopexit: ; preds = %land.rhs27, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit56, %for.body32 - %same.1.ph = phi i1 [ %lnot38, %for.body32 ], [ %same.27184, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit56 ], [ %lnot38, %land.rhs27 ] - br i1 %same.1.ph, label %return, label %for.inc47 + %arrayidx.i.i.i59 = getelementptr inbounds nuw ptr, ptr %27, i64 %idxprom.i.i.i58 + %28 = load ptr, ptr %arrayidx.i.i.i59, align 8 + %arrayidx.i.i.i62 = getelementptr inbounds nuw ptr, ptr %22, i64 %indvars.iv83 + %29 = load ptr, ptr %arrayidx.i.i.i62, align 8 + %call37 = tail call noundef zeroext i1 @_ZNK11ast_manager12are_distinctEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %25, ptr noundef %28, ptr noundef %29) + br i1 %call37, label %for.inc47, label %land.rhs27, !llvm.loop !49 if.end43: ; preds = %for.body14 br i1 %call19, label %for.inc47, label %return -for.inc47: ; preds = %if.end43.loopexit, %if.end43, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit - %indvars.iv.next78 = add nuw nsw i64 %indvars.iv77, 1 +for.inc47: ; preds = %for.body32, %if.end43, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4backEv.exit + %indvars.iv.next87 = add nuw nsw i64 %indvars.iv86, 1 br label %for.cond, !llvm.loop !50 -return: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit50, %if.end43.loopexit, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, %if.end43, %if.end - ret i1 %cmp +return: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, %if.end43, %if.end, %land.rhs27, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit56 + %cmp98 = phi i1 [ true, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit56 ], [ true, %land.rhs27 ], [ %cmp, %if.end ], [ %cmp, %if.end43 ], [ %cmp, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit ] + ret i1 %cmp98 } declare noundef zeroext i1 @_ZNK11ast_manager12are_distinctEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976), ptr noundef, ptr noundef) local_unnamed_addr #0 @@ -8028,8 +8019,8 @@ define hidden noundef zeroext i1 @_ZN3seq9eq_solver22can_align_from_rhs_auxERK10 entry: %m_nodes.i = getelementptr inbounds nuw i8, ptr %ls, i64 8 %0 = load ptr, ptr %m_nodes.i, align 8 - %cmp.i.i68 = icmp eq ptr %0, null - br i1 %cmp.i.i68, label %return, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread.lr.ph + %cmp.i.i71 = icmp eq ptr %0, null + br i1 %cmp.i.i71, label %return, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread.lr.ph _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread.lr.ph: ; preds = %entry %m_nodes.i.i30 = getelementptr inbounds nuw i8, ptr %rs, i64 8 @@ -8037,14 +8028,14 @@ _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit. _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread.lr.ph, %for.inc42 %1 = phi ptr [ %0, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread.lr.ph ], [ %23, %for.inc42 ] - %i.069 = phi i32 [ 0, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread.lr.ph ], [ %inc43, %for.inc42 ] + %i.072 = phi i32 [ 0, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread.lr.ph ], [ %inc43, %for.inc42 ] %arrayidx.i.i = getelementptr inbounds i8, ptr %1, i64 -4 %2 = load i32, ptr %arrayidx.i.i, align 4 - %cmp57 = icmp ult i32 %i.069, %2 + %cmp57 = icmp ult i32 %i.072, %2 br i1 %cmp57, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit29, label %return _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit29: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread - %3 = xor i32 %i.069, -1 + %3 = xor i32 %i.072, -1 %sub3 = add i32 %2, %3 %4 = load ptr, ptr %this, align 8 %idxprom.i.i.i = zext i32 %sub3 to i64 @@ -8056,7 +8047,7 @@ _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit2 br i1 %call6, label %for.inc42, label %if.end if.end: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit29 - %cmp7 = icmp eq i32 %i.069, 0 + %cmp7 = icmp eq i32 %i.072, 0 br i1 %cmp7, label %return, label %if.end9 if.end9: ; preds = %if.end @@ -8067,27 +8058,27 @@ if.end9: ; preds = %if.end _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit37: ; preds = %if.end9 %arrayidx.i.i35 = getelementptr inbounds i8, ptr %8, i64 -4 %9 = load i32, ptr %arrayidx.i.i35, align 4 - %cmp11 = icmp ugt i32 %9, %i.069 + %cmp11 = icmp ugt i32 %9, %i.072 br i1 %cmp11, label %for.body15, label %land.rhs23.preheader land.rhs23.preheader: ; preds = %if.end9, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit37 br label %land.rhs23 for.body15: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit37, %for.body15 - %j.067 = phi i32 [ %inc, %for.body15 ], [ 1, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit37 ] + %j.070 = phi i32 [ %inc, %for.body15 ], [ 1, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit37 ] %10 = load ptr, ptr %this, align 8 - %add = add i32 %j.067, %sub3 + %add = add i32 %j.070, %sub3 %11 = load ptr, ptr %m_nodes.i, align 8 %idxprom.i.i.i39 = zext i32 %add to i64 %arrayidx.i.i.i40 = getelementptr inbounds nuw ptr, ptr %11, i64 %idxprom.i.i.i39 %12 = load ptr, ptr %arrayidx.i.i.i40, align 8 %13 = load ptr, ptr %m_nodes.i.i30, align 8 - %idxprom.i.i.i42 = zext i32 %j.067 to i64 + %idxprom.i.i.i42 = zext i32 %j.070 to i64 %arrayidx.i.i.i43 = getelementptr inbounds nuw ptr, ptr %13, i64 %idxprom.i.i.i42 %14 = load ptr, ptr %arrayidx.i.i.i43, align 8 %call19 = tail call noundef zeroext i1 @_ZNK11ast_manager12are_distinctEP4exprS1_(ptr noundef nonnull align 8 dereferenceable(976) %10, ptr noundef %12, ptr noundef %14) - %inc = add i32 %j.067, 1 - %cmp14 = icmp ugt i32 %inc, %i.069 + %inc = add i32 %j.070, 1 + %cmp14 = icmp ugt i32 %inc, %i.072 %.not = or i1 %cmp14, %call19 br i1 %.not, label %if.end38, label %for.body15, !llvm.loop !51 @@ -8126,13 +8117,13 @@ if.end38: ; preds = %for.body15 br i1 %call19, label %for.inc42, label %return for.inc42: ; preds = %for.body27, %if.end38, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit29 - %inc43 = add i32 %i.069, 1 + %inc43 = add i32 %i.072, 1 %23 = load ptr, ptr %m_nodes.i, align 8 %cmp.i.i = icmp eq ptr %23, null br i1 %cmp.i.i, label %return, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread, !llvm.loop !53 return: ; preds = %if.end, %if.end38, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread, %for.inc42, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit49, %entry - %cmp58 = phi i1 [ false, %entry ], [ true, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit49 ], [ false, %for.inc42 ], [ false, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread ], [ true, %if.end38 ], [ true, %if.end ] + %cmp58 = phi i1 [ false, %entry ], [ true, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit49 ], [ true, %if.end ], [ true, %if.end38 ], [ false, %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit.thread ], [ false, %for.inc42 ] ret i1 %cmp58 } diff --git a/bench/zed-rs/optimized/5ixvfce98s1x7yb9webqub3ar.ll b/bench/zed-rs/optimized/5ixvfce98s1x7yb9webqub3ar.ll index ed12ab88f71..c4ba4ac3de7 100644 --- a/bench/zed-rs/optimized/5ixvfce98s1x7yb9webqub3ar.ll +++ b/bench/zed-rs/optimized/5ixvfce98s1x7yb9webqub3ar.ll @@ -3618,59 +3618,39 @@ define hidden void @"_ZN8sum_tree16SumTree$LT$T$GT$4push17h3a6f46fce73de1c9E"(pt ; Function Attrs: nonlazybind uwtable define hidden noundef align 8 dereferenceable_or_null(72) ptr @"_ZN8sum_tree16SumTree$LT$T$GT$5first17h6046c64819a8a6aeE"(ptr noalias nocapture noundef readonly align 8 dereferenceable(8) %0) unnamed_addr #0 { - %2 = alloca [48 x i8], align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !979) - %3 = load ptr, ptr %0, align 8, !alias.scope !979, !nonnull !5, !noundef !5 - %4 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %5 = load i8, ptr %4, align 8, !range !36, !noalias !979, !noundef !5 - %trunc3.i = trunc nuw i8 %5 to i1 + %2 = load ptr, ptr %0, align 8, !alias.scope !979, !nonnull !5, !noundef !5 + %3 = getelementptr inbounds nuw i8, ptr %2, i64 16 + %4 = load i8, ptr %3, align 8, !range !36, !noalias !979, !noundef !5 + %trunc3.i = trunc nuw i8 %4 to i1 br i1 %trunc3.i, label %"_ZN8sum_tree16SumTree$LT$T$GT$13leftmost_leaf17h9b9456a6f13d0f14E.llvm.8892032343851396646.exit", label %.lr.ph.i tailrecurse.i: ; preds = %.lr.ph.i - %6 = getelementptr inbounds nuw i8, ptr %10, i64 352 - %7 = load ptr, ptr %6, align 8, !noalias !979, !nonnull !5, !noundef !5 - %8 = getelementptr inbounds nuw i8, ptr %7, i64 16 - %9 = load i8, ptr %8, align 8, !range !36, !noalias !979, !noundef !5 - %trunc.i = trunc nuw i8 %9 to i1 + %5 = getelementptr inbounds nuw i8, ptr %9, i64 352 + %6 = load ptr, ptr %5, align 8, !noalias !979, !nonnull !5, !noundef !5 + %7 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %8 = load i8, ptr %7, align 8, !range !36, !noalias !979, !noundef !5 + %trunc.i = trunc nuw i8 %8 to i1 br i1 %trunc.i, label %"_ZN8sum_tree16SumTree$LT$T$GT$13leftmost_leaf17h9b9456a6f13d0f14E.llvm.8892032343851396646.exit", label %.lr.ph.i .lr.ph.i: ; preds = %1, %tailrecurse.i - %10 = phi ptr [ %7, %tailrecurse.i ], [ %3, %1 ] - %11 = getelementptr inbounds nuw i8, ptr %10, i64 344 - %12 = load i32, ptr %11, align 8, !noalias !979, !noundef !5 - %.not.i = icmp eq i32 %12, 0 - br i1 %.not.i, label %13, label %tailrecurse.i + %9 = phi ptr [ %6, %tailrecurse.i ], [ %2, %1 ] + %10 = getelementptr inbounds nuw i8, ptr %9, i64 344 + %11 = load i32, ptr %10, align 8, !noalias !979, !noundef !5 + %.not.i = icmp eq i32 %11, 0 + br i1 %.not.i, label %12, label %tailrecurse.i -13: ; preds = %.lr.ph.i +12: ; preds = %.lr.ph.i tail call void @_ZN4core6option13unwrap_failed17hba6b08832f9ce30bE(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.189432bcf7ed89cde280d69cc1f6d297.56.llvm.8892032343851396646) #26, !noalias !979 unreachable "_ZN8sum_tree16SumTree$LT$T$GT$13leftmost_leaf17h9b9456a6f13d0f14E.llvm.8892032343851396646.exit": ; preds = %tailrecurse.i, %1 - %14 = phi i8 [ %5, %1 ], [ %9, %tailrecurse.i ] - %15 = phi ptr [ %3, %1 ], [ %7, %tailrecurse.i ] - %trunc = trunc nuw i8 %14 to i1 - br i1 %trunc, label %21, label %16 - -16: ; preds = %"_ZN8sum_tree16SumTree$LT$T$GT$13leftmost_leaf17h9b9456a6f13d0f14E.llvm.8892032343851396646.exit" - call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %2) - store ptr @anon.189432bcf7ed89cde280d69cc1f6d297.76.llvm.8892032343851396646, ptr %2, align 8 - %17 = getelementptr inbounds nuw i8, ptr %2, i64 8 - store i64 1, ptr %17, align 8 - %18 = getelementptr inbounds nuw i8, ptr %2, i64 32 - store ptr null, ptr %18, align 8 - %19 = getelementptr inbounds nuw i8, ptr %2, i64 16 - store ptr inttoptr (i64 8 to ptr), ptr %19, align 8 - %20 = getelementptr inbounds nuw i8, ptr %2, i64 24 - store i64 0, ptr %20, align 8 - call void @_ZN4core9panicking9panic_fmt17h3d8fc78294164da7E(ptr noalias nocapture noundef nonnull align 8 dereferenceable(48) %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.189432bcf7ed89cde280d69cc1f6d297.77.llvm.8892032343851396646) #26 - unreachable - -21: ; preds = %"_ZN8sum_tree16SumTree$LT$T$GT$13leftmost_leaf17h9b9456a6f13d0f14E.llvm.8892032343851396646.exit" - %22 = getelementptr inbounds nuw i8, ptr %15, i64 48 - %23 = load i32, ptr %22, align 8, !noundef !5 - %.not = icmp eq i32 %23, 0 - %24 = getelementptr inbounds nuw i8, ptr %15, i64 56 - %.sroa.0.0 = select i1 %.not, ptr null, ptr %24 + %13 = phi ptr [ %2, %1 ], [ %6, %tailrecurse.i ] + %14 = getelementptr inbounds nuw i8, ptr %13, i64 48 + %15 = load i32, ptr %14, align 8, !noundef !5 + %.not = icmp eq i32 %15, 0 + %16 = getelementptr inbounds nuw i8, ptr %13, i64 56 + %.sroa.0.0 = select i1 %.not, ptr null, ptr %16 ret ptr %.sroa.0.0 } diff --git a/bench/zed-rs/optimized/5xfke1jw0ac7pab611oym1u20.ll b/bench/zed-rs/optimized/5xfke1jw0ac7pab611oym1u20.ll index d3577f95831..32fb5702879 100644 --- a/bench/zed-rs/optimized/5xfke1jw0ac7pab611oym1u20.ll +++ b/bench/zed-rs/optimized/5xfke1jw0ac7pab611oym1u20.ll @@ -1957,7 +1957,7 @@ define hidden void @"_ZN4text5patch14Patch$LT$T$GT$7compose17hcff8888b5d001183E" %.sroa.12252.0 = phi i64 [ undef, %3 ], [ %.sroa.12252.0.be, %.backedge.backedge ] %.sroa.16.0 = phi i64 [ undef, %3 ], [ %.sroa.16.0.be, %.backedge.backedge ] %.sroa.21257.0 = phi i64 [ undef, %3 ], [ %.sroa.21257.0.be, %.backedge.backedge ] - %.sroa.26.0 = phi ptr [ %.val, %3 ], [ %.sroa.26.1, %.backedge.backedge ] + %.sroa.26.0 = phi ptr [ %.val, %3 ], [ %.sroa.26.0.be, %.backedge.backedge ] %.sroa.6.0 = phi i64 [ undef, %3 ], [ %.sroa.6.0.be, %.backedge.backedge ] %.sroa.12.0 = phi i64 [ undef, %3 ], [ %.sroa.12.0.be, %.backedge.backedge ] %.sroa.17.0 = phi i64 [ undef, %3 ], [ %.sroa.17.0.be, %.backedge.backedge ] @@ -2127,57 +2127,65 @@ define hidden void @"_ZN4text5patch14Patch$LT$T$GT$7compose17hcff8888b5d001183E" .cont184: ; preds = %.cont202.cont.cont.cont call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %5) + %98 = icmp eq i64 %71, 2 + br i1 %98, label %99, label %.backedge.backedge + +99: ; preds = %.cont184 + %100 = icmp eq ptr %.sroa.26.1, %18 + %101 = getelementptr inbounds nuw i8, ptr %.sroa.26.1, i64 32 + %spec.select = select i1 %100, ptr %18, ptr %101 br label %.backedge.backedge +.backedge.backedge: ; preds = %99, %111, %106, %.cont.cont, %.cont184 + %.sroa.6249.0.be = phi i64 [ undef, %106 ], [ undef, %.cont184 ], [ %.sroa.21.1, %.cont.cont ], [ %.sroa.6249.1, %111 ], [ undef, %99 ] + %.sroa.12252.0.be = phi i64 [ undef, %106 ], [ undef, %.cont184 ], [ %.sroa.12252.1, %.cont.cont ], [ %.sroa.12252.1, %111 ], [ undef, %99 ] + %.sroa.16.0.be = phi i64 [ undef, %106 ], [ undef, %.cont184 ], [ %93, %.cont.cont ], [ %.sroa.16.1, %111 ], [ undef, %99 ] + %.sroa.21257.0.be = phi i64 [ undef, %106 ], [ undef, %.cont184 ], [ %.sroa.21257.1, %.cont.cont ], [ %.sroa.21257.1, %111 ], [ undef, %99 ] + %.sroa.26.0.be = phi ptr [ %.sroa.26.1, %106 ], [ %.sroa.26.1, %.cont184 ], [ %.sroa.26.1, %.cont.cont ], [ %.sroa.26.1, %111 ], [ %spec.select, %99 ] + %.sroa.6.0.be = phi i64 [ %.sroa.6.1, %106 ], [ %95, %.cont184 ], [ undef, %.cont.cont ], [ undef, %111 ], [ %95, %99 ] + %.sroa.12.0.be = phi i64 [ %.sroa.12.1, %106 ], [ %.sroa.12.1, %.cont184 ], [ undef, %.cont.cont ], [ undef, %111 ], [ %.sroa.12.1, %99 ] + %.sroa.17.0.be = phi i64 [ %.sroa.17.1, %106 ], [ %.sroa.12252.1, %.cont184 ], [ undef, %.cont.cont ], [ undef, %111 ], [ %.sroa.12252.1, %99 ] + %.sroa.21.0.be = phi i64 [ %.sroa.21.1, %106 ], [ %.sroa.21.1, %.cont184 ], [ undef, %.cont.cont ], [ undef, %111 ], [ %.sroa.21.1, %99 ] + %.be = phi i64 [ 2, %106 ], [ 2, %.cont184 ], [ %71, %.cont.cont ], [ %71, %111 ], [ 2, %99 ] + %.be328 = phi i64 [ %58, %106 ], [ %58, %.cont184 ], [ 2, %.cont.cont ], [ 2, %111 ], [ %58, %99 ] + %.sroa.087.0.be = phi i64 [ %.sroa.21257.1, %106 ], [ %97, %.cont184 ], [ %93, %.cont.cont ], [ %110, %111 ], [ %97, %99 ] + %.sroa.0.0.be = phi i64 [ %105, %106 ], [ %95, %.cont184 ], [ %90, %.cont.cont ], [ %.sroa.12.1, %111 ], [ %95, %99 ] + br label %.backedge + "_ZN4core6option15Option$LT$T$GT$6map_or17h1ef95e177b92fbafE.exit.thread": ; preds = %74, %"_ZN4core6option15Option$LT$T$GT$6map_or17h1ef95e177b92fbafE.exit" - %98 = sub i64 %.sroa.16.1, %.sroa.087.0 - %99 = add i64 %98, %.sroa.0.0 - %100 = sub i64 %.sroa.12252.1, %.sroa.6249.1 - %101 = add i64 %100, %99 + %102 = sub i64 %.sroa.16.1, %.sroa.087.0 + %103 = add i64 %102, %.sroa.0.0 + %104 = sub i64 %.sroa.12252.1, %.sroa.6249.1 + %105 = add i64 %104, %103 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %8) - store i64 %99, ptr %8, align 8 - store i64 %101, ptr %34, align 8 + store i64 %103, ptr %8, align 8 + store i64 %105, ptr %34, align 8 store i64 %.sroa.16.1, ptr %35, align 8 store i64 %.sroa.21257.1, ptr %36, align 8 invoke void @"_ZN4text5patch14Patch$LT$T$GT$4push17hfba5af42c5cf74abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %10, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %8) - to label %102 unwind label %37 + to label %106 unwind label %37 -102: ; preds = %"_ZN4core6option15Option$LT$T$GT$6map_or17h1ef95e177b92fbafE.exit.thread" +106: ; preds = %"_ZN4core6option15Option$LT$T$GT$6map_or17h1ef95e177b92fbafE.exit.thread" call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) br label %.backedge.backedge "_ZN4core6option15Option$LT$T$GT$6map_or17h9eba9ae18b8c3063E.exit.thread": ; preds = %72 - %103 = sub i64 %.sroa.6.1, %.sroa.0.0 - %104 = add i64 %103, %.sroa.087.0 - %105 = sub i64 %.sroa.21.1, %.sroa.17.1 - %106 = add i64 %105, %104 + %107 = sub i64 %.sroa.6.1, %.sroa.0.0 + %108 = add i64 %107, %.sroa.087.0 + %109 = sub i64 %.sroa.21.1, %.sroa.17.1 + %110 = add i64 %109, %108 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %9) store i64 %.sroa.6.1, ptr %9, align 8 store i64 %.sroa.12.1, ptr %19, align 8 - store i64 %104, ptr %20, align 8 - store i64 %106, ptr %21, align 8 + store i64 %108, ptr %20, align 8 + store i64 %110, ptr %21, align 8 invoke void @"_ZN4text5patch14Patch$LT$T$GT$4push17hfba5af42c5cf74abE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %10, ptr noalias nocapture noundef nonnull align 8 dereferenceable(32) %9) - to label %107 unwind label %37 + to label %111 unwind label %37 -107: ; preds = %"_ZN4core6option15Option$LT$T$GT$6map_or17h9eba9ae18b8c3063E.exit.thread" +111: ; preds = %"_ZN4core6option15Option$LT$T$GT$6map_or17h9eba9ae18b8c3063E.exit.thread" call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) br label %.backedge.backedge -.backedge.backedge: ; preds = %107, %102, %.cont184, %.cont.cont - %.sroa.6249.0.be = phi i64 [ undef, %102 ], [ undef, %.cont184 ], [ %.sroa.21.1, %.cont.cont ], [ %.sroa.6249.1, %107 ] - %.sroa.12252.0.be = phi i64 [ undef, %102 ], [ undef, %.cont184 ], [ %.sroa.12252.1, %.cont.cont ], [ %.sroa.12252.1, %107 ] - %.sroa.16.0.be = phi i64 [ undef, %102 ], [ undef, %.cont184 ], [ %93, %.cont.cont ], [ %.sroa.16.1, %107 ] - %.sroa.21257.0.be = phi i64 [ undef, %102 ], [ undef, %.cont184 ], [ %.sroa.21257.1, %.cont.cont ], [ %.sroa.21257.1, %107 ] - %.sroa.6.0.be = phi i64 [ %.sroa.6.1, %102 ], [ %95, %.cont184 ], [ undef, %.cont.cont ], [ undef, %107 ] - %.sroa.12.0.be = phi i64 [ %.sroa.12.1, %102 ], [ %.sroa.12.1, %.cont184 ], [ undef, %.cont.cont ], [ undef, %107 ] - %.sroa.17.0.be = phi i64 [ %.sroa.17.1, %102 ], [ %.sroa.12252.1, %.cont184 ], [ undef, %.cont.cont ], [ undef, %107 ] - %.sroa.21.0.be = phi i64 [ %.sroa.21.1, %102 ], [ %.sroa.21.1, %.cont184 ], [ undef, %.cont.cont ], [ undef, %107 ] - %.be = phi i64 [ 2, %102 ], [ 2, %.cont184 ], [ %71, %.cont.cont ], [ %71, %107 ] - %.be328 = phi i64 [ %58, %102 ], [ %58, %.cont184 ], [ 2, %.cont.cont ], [ 2, %107 ] - %.sroa.087.0.be = phi i64 [ %.sroa.21257.1, %102 ], [ %97, %.cont184 ], [ %93, %.cont.cont ], [ %106, %107 ] - %.sroa.0.0.be = phi i64 [ %101, %102 ], [ %95, %.cont184 ], [ %90, %.cont.cont ], [ %.sroa.12.1, %107 ] - br label %.backedge - "_ZN4core3ptr52drop_in_place$LT$text..patch..Patch$LT$usize$GT$$GT$17h17231d236f2e089dE.exit": ; preds = %41, %37 resume { ptr, i32 } %38 } diff --git a/bench/zed-rs/optimized/epuo8yz105556scsed5wrqb4z.ll b/bench/zed-rs/optimized/epuo8yz105556scsed5wrqb4z.ll index 75870a1ca36..1f0a43c2e74 100644 --- a/bench/zed-rs/optimized/epuo8yz105556scsed5wrqb4z.ll +++ b/bench/zed-rs/optimized/epuo8yz105556scsed5wrqb4z.ll @@ -18245,7 +18245,7 @@ default.unreachable122: ; preds = %115, %65, %2 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10), !noalias !2912 br label %"_ZN4core3ptr138drop_in_place$LT$std..collections..hash..map..Entry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h900460a9fc4038d9E.exit.i.i" -"_ZN4core3ptr138drop_in_place$LT$std..collections..hash..map..Entry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h900460a9fc4038d9E.exit.i.i": ; preds = %"_ZN4core3ptr144drop_in_place$LT$std..collections..hash..map..VacantEntry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h1acfc6a87375a4c7E.exit.i.i", %"_ZN4core3ptr144drop_in_place$LT$std..collections..hash..map..VacantEntry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h1acfc6a87375a4c7E.exit.i.i.i", %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hf61881608624df1fE.exit.i.i.i.i.i.i", %514, %510 +"_ZN4core3ptr138drop_in_place$LT$std..collections..hash..map..Entry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h900460a9fc4038d9E.exit.i.i": ; preds = %"_ZN4core3ptr144drop_in_place$LT$std..collections..hash..map..VacantEntry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h1acfc6a87375a4c7E.exit.i.i.i", %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hf61881608624df1fE.exit.i.i.i.i.i.i", %514, %510 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %43) %537 = trunc nuw i8 %.sroa.05.0.i.i to i1 br i1 %537, label %559, label %"_ZN4core3ptr72drop_in_place$LT$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$17hdcf31121f79a489fE.exit.i.i" @@ -18259,22 +18259,23 @@ default.unreachable122: ; preds = %115, %65, %2 %539 = getelementptr inbounds nuw i8, ptr %9, i64 8 %540 = load i64, ptr %539, align 8, !range !39, !noalias !2925, !noundef !25 %541 = icmp eq i64 %540, 0 - br i1 %541, label %"_ZN4core3ptr144drop_in_place$LT$std..collections..hash..map..VacantEntry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h1acfc6a87375a4c7E.exit.i.i", label %542 + br i1 %541, label %"_ZN4core3ptr138drop_in_place$LT$std..collections..hash..map..Entry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h900460a9fc4038d9E.exit.thread.i.i", label %542 542: ; preds = %.noexc184.i.i %543 = getelementptr inbounds nuw i8, ptr %9, i64 16 %544 = load i64, ptr %543, align 8, !noalias !2925, !noundef !25 %545 = icmp eq i64 %544, 0 - br i1 %545, label %"_ZN4core3ptr144drop_in_place$LT$std..collections..hash..map..VacantEntry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h1acfc6a87375a4c7E.exit.i.i", label %546 + br i1 %545, label %"_ZN4core3ptr138drop_in_place$LT$std..collections..hash..map..Entry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h900460a9fc4038d9E.exit.thread.i.i", label %546 546: ; preds = %542 %547 = load ptr, ptr %9, align 8, !noalias !2925, !nonnull !25, !noundef !25 call void @__rust_dealloc(ptr noundef nonnull %547, i64 noundef %544, i64 noundef %540) #17 - br label %"_ZN4core3ptr144drop_in_place$LT$std..collections..hash..map..VacantEntry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h1acfc6a87375a4c7E.exit.i.i" + br label %"_ZN4core3ptr138drop_in_place$LT$std..collections..hash..map..Entry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h900460a9fc4038d9E.exit.thread.i.i" -"_ZN4core3ptr144drop_in_place$LT$std..collections..hash..map..VacantEntry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h1acfc6a87375a4c7E.exit.i.i": ; preds = %546, %542, %.noexc184.i.i +"_ZN4core3ptr138drop_in_place$LT$std..collections..hash..map..Entry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h900460a9fc4038d9E.exit.thread.i.i": ; preds = %546, %542, %.noexc184.i.i call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %9), !noalias !2925 - br label %"_ZN4core3ptr138drop_in_place$LT$std..collections..hash..map..Entry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h900460a9fc4038d9E.exit.i.i" + call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %43) + br label %559 548: ; preds = %538, %527, %517 %549 = landingpad { ptr, i32 } @@ -18304,7 +18305,7 @@ default.unreachable122: ; preds = %115, %65, %2 call void @__rust_dealloc(ptr noundef nonnull %558, i64 noundef %555, i64 noundef %551) #17 br label %569 -559: ; preds = %"_ZN4core3ptr138drop_in_place$LT$std..collections..hash..map..Entry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h900460a9fc4038d9E.exit.i.i" +559: ; preds = %"_ZN4core3ptr138drop_in_place$LT$std..collections..hash..map..Entry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h900460a9fc4038d9E.exit.thread.i.i", %"_ZN4core3ptr138drop_in_place$LT$std..collections..hash..map..Entry$LT$alloc..string..String$C$alloc..sync..Arc$LT$live_kit_client..test..Room$GT$$GT$$GT$17h900460a9fc4038d9E.exit.i.i" call void @llvm.experimental.noalias.scope.decl(metadata !2947) call void @llvm.experimental.noalias.scope.decl(metadata !2950) %560 = load ptr, ptr %50, align 8, !alias.scope !2953, !nonnull !25, !noundef !25 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..ed6276ce6f5 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/124480 export COMPTIME_MODE=0 # Please rebase manually