diff --git a/bench/abc/optimized/sbdCore.ll b/bench/abc/optimized/sbdCore.ll index 3c7513bf288..d807a7670cc 100644 --- a/bench/abc/optimized/sbdCore.ll +++ b/bench/abc/optimized/sbdCore.ll @@ -5650,8 +5650,6 @@ define range(i32 0, 2) i32 @Sbd_ManExplore(ptr noundef captures(none) %0, i32 no %35 = getelementptr inbounds nuw i8, ptr %34, i64 60 %36 = load i32, ptr %35, align 4, !tbaa !166 %.not = icmp eq i32 %36, 0 - %indvars.iv358.sroa.gep = getelementptr inbounds nuw i8, ptr %13, i64 4 - %indvars.iv358.sroa.gep419 = getelementptr inbounds nuw i8, ptr %11, i64 1024 br i1 %.not, label %39, label %37 37: ; preds = %3 @@ -6044,12 +6042,17 @@ Sbd_TransposeMatrix64.exit246: ; preds = %177, %.loopexit407, %.phi.trans.insert396 = getelementptr inbounds nuw i8, ptr %.pre, i64 60 %.pre397 = load i32, ptr %.phi.trans.insert396, align 4, !tbaa !166 %235 = icmp eq i32 %.pre397, 0 - br i1 %235, label %.loopexit291, label %.preheader290 + br i1 %235, label %.loopexit291, label %.preheader290.preheader + +.preheader290.preheader: ; preds = %230 + %indvars.iv358.sroa.gep = getelementptr inbounds nuw i8, ptr %13, i64 4 + %indvars.iv358.sroa.gep419 = getelementptr inbounds nuw i8, ptr %11, i64 1024 + br label %.preheader290 -.preheader290: ; preds = %230, %._crit_edge - %.not191 = phi i1 [ false, %._crit_edge ], [ true, %230 ] - %indvars.iv358.sroa.phi = phi ptr [ %indvars.iv358.sroa.gep, %._crit_edge ], [ %13, %230 ] - %indvars.iv358.sroa.phi418 = phi ptr [ %indvars.iv358.sroa.gep419, %._crit_edge ], [ %11, %230 ] +.preheader290: ; preds = %.preheader290.preheader, %._crit_edge + %.not191 = phi i1 [ false, %._crit_edge ], [ true, %.preheader290.preheader ] + %indvars.iv358.sroa.phi = phi ptr [ %indvars.iv358.sroa.gep, %._crit_edge ], [ %13, %.preheader290.preheader ] + %indvars.iv358.sroa.phi418 = phi ptr [ %indvars.iv358.sroa.gep419, %._crit_edge ], [ %11, %.preheader290.preheader ] %236 = select i1 %.not191, ptr @.str.18, ptr @.str.17 %237 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.16, ptr noundef nonnull %236) %238 = load i32, ptr %indvars.iv358.sroa.phi, align 4, !tbaa !50 diff --git a/bench/abc/optimized/sswSat.ll b/bench/abc/optimized/sswSat.ll index f2efe572795..0cad400ddb1 100644 --- a/bench/abc/optimized/sswSat.ll +++ b/bench/abc/optimized/sswSat.ll @@ -44,8 +44,6 @@ define range(i32 -1, 2) i32 @Ssw_NodesAreEquiv(ptr noundef captures(none) %0, pt %31 = getelementptr inbounds nuw i8, ptr %.val, i64 4 %32 = load i32, ptr %31, align 4, !tbaa !30 %.not.i.not.i.i = icmp slt i32 %.val90, %32 - %.0.sroa.gep = getelementptr inbounds nuw i8, ptr %14, i64 12 - %.0.sroa.gep161 = getelementptr inbounds nuw i8, ptr %14, i64 8 br i1 %.not.i.not.i.i, label %Ssw_ObjSatNum.exit, label %33 33: ; preds = %3 @@ -257,10 +255,12 @@ Ssw_ObjSatNum.exit112: ; preds = %Ssw_ObjSatNum.exit, %129 = getelementptr inbounds nuw i8, ptr %0, i64 136 %130 = load i32, ptr %129, align 8, !tbaa !35 %131 = icmp slt i32 %130, 0 + %.0.sroa.gep161 = getelementptr inbounds nuw i8, ptr %14, i64 8 br i1 %131, label %133, label %132 132: ; preds = %Ssw_ObjSatNum.exit112 store i32 %130, ptr %.0.sroa.gep161, align 4, !tbaa !34 + %.0.sroa.gep = getelementptr inbounds nuw i8, ptr %14, i64 12 br label %133 133: ; preds = %132, %Ssw_ObjSatNum.exit112 @@ -692,10 +692,11 @@ Ssw_ObjSatNum.exit150: ; preds = %Ssw_ObjSatNum.exit1 351: ; preds = %Ssw_ObjSatNum.exit150 store i32 %349, ptr %.0.sroa.gep161, align 4, !tbaa !34 + %.1.sroa.gep = getelementptr inbounds nuw i8, ptr %14, i64 12 br label %352 352: ; preds = %351, %Ssw_ObjSatNum.exit150 - %.1.sroa.phi = phi ptr [ %.0.sroa.gep, %351 ], [ %.0.sroa.gep161, %Ssw_ObjSatNum.exit150 ] + %.1.sroa.phi = phi ptr [ %.1.sroa.gep, %351 ], [ %.0.sroa.gep161, %Ssw_ObjSatNum.exit150 ] %353 = load ptr, ptr %0, align 8, !tbaa !3 %354 = getelementptr inbounds nuw i8, ptr %353, i64 68 %355 = load i32, ptr %354, align 4, !tbaa !36 diff --git a/bench/abseil-cpp/optimized/cord_test.ll b/bench/abseil-cpp/optimized/cord_test.ll index d2bf782ad56..e43e0ee7ceb 100644 --- a/bench/abseil-cpp/optimized/cord_test.ll +++ b/bench/abseil-cpp/optimized/cord_test.ll @@ -201846,8 +201846,6 @@ define linkonce_odr dso_local void @_ZN4absl13AbslHashValueINS_13hash_internal16 %11 = load ptr, ptr %10, align 8, !noalias !3060 %12 = icmp eq ptr %11, null %13 = select i1 %.not.i.i, i1 true, i1 %12 - %.sink30.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 16 - %.sink30.sroa.gep32 = getelementptr inbounds nuw i8, ptr %7, i64 16 br i1 %13, label %14, label %23 14: ; preds = %3 @@ -201981,6 +201979,7 @@ _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSa _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i, %_ZNSt12__shared_ptrISt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i %64 = phi ptr [ %.pr.i.i, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i ], [ %52, %_ZNSt12__shared_ptrISt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i ] %.not.i.i.i1.i = icmp eq ptr %64, null + %.sink30.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 16 br i1 %.not.i.i.i1.i, label %_ZN4absl13hash_internal16SpyHashStateImplINS_4CordEED2Ev.exit, label %_ZN4absl13hash_internal16SpyHashStateImplINS_4CordEED2Ev.exit.sink.split 65: ; preds = %26 @@ -202086,6 +202085,7 @@ _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSa _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i.i18: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i16, %_ZNSt12__shared_ptrISt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i9 %106 = phi ptr [ %.pr.i.i17, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exitthread-pre-split.i.i16 ], [ %94, %_ZNSt12__shared_ptrISt8optionalINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEELN9__gnu_cxx12_Lock_policyE2EED2Ev.exit.i9 ] %.not.i.i.i1.i19 = icmp eq ptr %106, null + %.sink30.sroa.gep32 = getelementptr inbounds nuw i8, ptr %7, i64 16 br i1 %.not.i.i.i1.i19, label %_ZN4absl13hash_internal16SpyHashStateImplINS_4CordEED2Ev.exit, label %_ZN4absl13hash_internal16SpyHashStateImplINS_4CordEED2Ev.exit.sink.split 107: ; preds = %67 diff --git a/bench/actix-rs/optimized/1rfb1t3n8679w74r.ll b/bench/actix-rs/optimized/1rfb1t3n8679w74r.ll index 1843e97f0b2..581700395ac 100644 --- a/bench/actix-rs/optimized/1rfb1t3n8679w74r.ll +++ b/bench/actix-rs/optimized/1rfb1t3n8679w74r.ll @@ -5273,7 +5273,6 @@ define hidden void @_ZN4time10formatting22format_number_pad_zero17hc8e3981a7ebb6 %4 = alloca { [40 x i8] }, align 1 %5 = tail call noundef i8 @"_ZN57_$LT$u8$u20$as$u20$time..ext..digit_count..DigitCount$GT$10num_digits17hdf121606d42837d0E"(i8 noundef %2) %6 = tail call i8 @llvm.usub.sat.i8(i8 2, i8 %5) - %.01823.i.sroa.gep29 = getelementptr inbounds nuw i8, ptr %4, i64 2 %.not = icmp ugt i8 %5, 1 br i1 %.not, label %._crit_edge, label %.lr.ph @@ -5303,6 +5302,7 @@ define hidden void @_ZN4time10formatting22format_number_pad_zero17hc8e3981a7ebb6 17: ; preds = %._crit_edge %18 = icmp samesign ult i8 %2, 10 + %.01823.i.sroa.gep29 = getelementptr inbounds nuw i8, ptr %4, i64 2 br i1 %18, label %25, label %19 19: ; preds = %17 diff --git a/bench/arrow/optimized/api_aggregate.ll b/bench/arrow/optimized/api_aggregate.ll index a0ce4506595..9b28be33a64 100644 --- a/bench/arrow/optimized/api_aggregate.ll +++ b/bench/arrow/optimized/api_aggregate.ll @@ -12157,10 +12157,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_12CountO %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !115 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !197 - %.sink19.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink19.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 19 - %.sink19.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 21 - %.sink19.i.i.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 24 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -12203,26 +12199,30 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 store i64 5497863040207310670, ptr %26, align 8, !alias.scope !399 + %.sink.sroa.gep24 = getelementptr inbounds nuw i8, ptr %6, i64 24 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.50, i64 5, i1 false) + %.sink.sroa.gep23 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %26, ptr noundef nonnull align 1 dereferenceable(3) @.str.51, i64 3, i1 false) + %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %27 ._crit_edge.i.i12.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.52, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i12.i.i, %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i12.i.i ], [ %.sink.sroa.gep22, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep23, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep24, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i12.i.i ], [ 3, %._crit_edge.i.i8.i.i ], [ 5, %._crit_edge.i.i4.i.i ], [ 8, %._crit_edge.i.i.i.i ] - %.sink19.i.i.sroa.phi = phi ptr [ %.sink19.i.i.sroa.gep, %._crit_edge.i.i12.i.i ], [ %.sink19.i.i.sroa.gep19, %._crit_edge.i.i8.i.i ], [ %.sink19.i.i.sroa.gep20, %._crit_edge.i.i4.i.i ], [ %.sink19.i.i.sroa.gep21, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !100, !alias.scope !399 - store i8 0, ptr %.sink19.i.i.sroa.phi, align 1, !tbaa !101, !alias.scope !399 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !101, !alias.scope !399 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -24996,11 +24996,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_15Quanti %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !115 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !197 - %.sink29.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink29.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %.sink29.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 23 - %.sink29.i.i.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 22 - %.sink29.i.i.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 21 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -25045,34 +25040,40 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %26, ptr noundef nonnull align 1 dereferenceable(6) @.str.56, i64 6, i1 false) + %.sink.sroa.gep28 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.57, i64 5, i1 false) + %.sink.sroa.gep27 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %26, ptr noundef nonnull align 1 dereferenceable(6) @.str.58, i64 6, i1 false) + %.sink.sroa.gep26 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %27 ._crit_edge.i.i12.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %26, ptr noundef nonnull align 1 dereferenceable(7) @.str.59, i64 7, i1 false) + %.sink.sroa.gep25 = getelementptr inbounds nuw i8, ptr %6, i64 23 br label %27 ._crit_edge.i.i16.i.i: ; preds = %20 store i64 6074873552367274317, ptr %26, align 8, !alias.scope !732 + %.sink.sroa.gep24 = getelementptr inbounds nuw i8, ptr %6, i64 24 br label %27 ._crit_edge.i.i20.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.52, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i20.i.i, %._crit_edge.i.i16.i.i, %._crit_edge.i.i12.i.i, %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i20.i.i ], [ %.sink.sroa.gep24, %._crit_edge.i.i16.i.i ], [ %.sink.sroa.gep25, %._crit_edge.i.i12.i.i ], [ %.sink.sroa.gep26, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep27, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep28, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i20.i.i ], [ 8, %._crit_edge.i.i16.i.i ], [ 7, %._crit_edge.i.i12.i.i ], [ 6, %._crit_edge.i.i8.i.i ], [ 5, %._crit_edge.i.i4.i.i ], [ 6, %._crit_edge.i.i.i.i ] - %.sink29.i.i.sroa.phi = phi ptr [ %.sink29.i.i.sroa.gep, %._crit_edge.i.i20.i.i ], [ %.sink29.i.i.sroa.gep19, %._crit_edge.i.i16.i.i ], [ %.sink29.i.i.sroa.gep20, %._crit_edge.i.i12.i.i ], [ %.sink29.i.i.sroa.gep21, %._crit_edge.i.i8.i.i ], [ %.sink29.i.i.sroa.gep22, %._crit_edge.i.i4.i.i ], [ %.sink29.i.i.sroa.gep21, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !100, !alias.scope !732 - store i8 0, ptr %.sink29.i.i.sroa.phi, align 1, !tbaa !101, !alias.scope !732 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !101, !alias.scope !732 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 diff --git a/bench/arrow/optimized/api_scalar.ll b/bench/arrow/optimized/api_scalar.ll index 0d01965194a..6d957666386 100644 --- a/bench/arrow/optimized/api_scalar.ll +++ b/bench/arrow/optimized/api_scalar.ll @@ -48291,9 +48291,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_11JoinOp %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !58 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !299 - %.sink19.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink19.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 23 - %.sink19.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 20 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -48336,26 +48333,30 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.228, i64 9, i1 false) + %.sink.sroa.gep24 = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 store i32 1346980691, ptr %26, align 8, !alias.scope !848 + %.sink.sroa.gep23 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %26, ptr noundef nonnull align 1 dereferenceable(7) @.str.230, i64 7, i1 false) + %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 23 br label %27 ._crit_edge.i.i12.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.220, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i12.i.i, %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i12.i.i ], [ %.sink.sroa.gep22, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep23, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep24, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i12.i.i ], [ 7, %._crit_edge.i.i8.i.i ], [ 4, %._crit_edge.i.i4.i.i ], [ 9, %._crit_edge.i.i.i.i ] - %.sink19.i.i.sroa.phi = phi ptr [ %.sink19.i.i.sroa.gep, %._crit_edge.i.i12.i.i ], [ %.sink19.i.i.sroa.gep19, %._crit_edge.i.i8.i.i ], [ %.sink19.i.i.sroa.gep20, %._crit_edge.i.i4.i.i ], [ %.sink19.i.i.sroa.gep, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !51, !alias.scope !848 - store i8 0, ptr %.sink19.i.i.sroa.phi, align 1, !tbaa !52, !alias.scope !848 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !52, !alias.scope !848 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -66960,10 +66961,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_16MapLoo %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !58 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !299 - %.sink19.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink19.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 19 - %.sink19.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 20 - %.sink19.i.i.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 21 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -67006,26 +67003,30 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.240, i64 5, i1 false) + %.sink.sroa.gep24 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 store i32 1414742348, ptr %26, align 8, !alias.scope !1476 + %.sink.sroa.gep23 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %26, ptr noundef nonnull align 1 dereferenceable(3) @.str.242, i64 3, i1 false) + %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %27 ._crit_edge.i.i12.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.220, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i12.i.i, %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i12.i.i ], [ %.sink.sroa.gep22, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep23, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep24, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i12.i.i ], [ 3, %._crit_edge.i.i8.i.i ], [ 4, %._crit_edge.i.i4.i.i ], [ 5, %._crit_edge.i.i.i.i ] - %.sink19.i.i.sroa.phi = phi ptr [ %.sink19.i.i.sroa.gep, %._crit_edge.i.i12.i.i ], [ %.sink19.i.i.sroa.gep19, %._crit_edge.i.i8.i.i ], [ %.sink19.i.i.sroa.gep20, %._crit_edge.i.i4.i.i ], [ %.sink19.i.i.sroa.gep21, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !51, !alias.scope !1476 - store i8 0, ptr %.sink19.i.i.sroa.phi, align 1, !tbaa !52, !alias.scope !1476 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !52, !alias.scope !1476 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -94080,14 +94081,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_20RoundT %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !58 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !299 - %.sink59.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink59.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 20 - %.sink59.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 23 - %.sink59.i.i.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 21 - %.sink59.i.i.sroa.gep23 = getelementptr inbounds nuw i8, ptr %6, i64 19 - %.sink59.i.i.sroa.gep25 = getelementptr inbounds nuw i8, ptr %6, i64 22 - %.sink59.i.i.sroa.gep27 = getelementptr inbounds nuw i8, ptr %6, i64 27 - %.sink59.i.i.sroa.gep29 = getelementptr inbounds nuw i8, ptr %6, i64 26 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -94138,58 +94131,70 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(10) %26, ptr noundef nonnull align 1 dereferenceable(10) @.str.257, i64 10, i1 false) + %.sink.sroa.gep40 = getelementptr inbounds nuw i8, ptr %6, i64 26 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(11) %26, ptr noundef nonnull align 1 dereferenceable(11) @.str.258, i64 11, i1 false) + %.sink.sroa.gep39 = getelementptr inbounds nuw i8, ptr %6, i64 27 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(11) %26, ptr noundef nonnull align 1 dereferenceable(11) @.str.259, i64 11, i1 false) + %.sink.sroa.gep38 = getelementptr inbounds nuw i8, ptr %6, i64 27 br label %27 ._crit_edge.i.i12.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %26, ptr noundef nonnull align 1 dereferenceable(6) @.str.260, i64 6, i1 false) + %.sink.sroa.gep37 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %27 ._crit_edge.i.i16.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %26, ptr noundef nonnull align 1 dereferenceable(6) @.str.261, i64 6, i1 false) + %.sink.sroa.gep36 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %27 ._crit_edge.i.i20.i.i: ; preds = %20 store i32 1381322568, ptr %26, align 8, !alias.scope !2146 + %.sink.sroa.gep35 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %27 ._crit_edge.i.i24.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %26, ptr noundef nonnull align 1 dereferenceable(3) @.str.263, i64 3, i1 false) + %.sink.sroa.gep34 = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %27 ._crit_edge.i.i28.i.i: ; preds = %20 store i32 1262830935, ptr %26, align 8, !alias.scope !2146 + %.sink.sroa.gep33 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %27 ._crit_edge.i.i32.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.265, i64 5, i1 false) + %.sink.sroa.gep32 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i36.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %26, ptr noundef nonnull align 1 dereferenceable(7) @.str.266, i64 7, i1 false) + %.sink.sroa.gep31 = getelementptr inbounds nuw i8, ptr %6, i64 23 br label %27 ._crit_edge.i.i40.i.i: ; preds = %20 store i32 1380009305, ptr %26, align 8, !alias.scope !2146 + %.sink.sroa.gep30 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %27 ._crit_edge.i.i44.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.220, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i44.i.i, %._crit_edge.i.i40.i.i, %._crit_edge.i.i36.i.i, %._crit_edge.i.i32.i.i, %._crit_edge.i.i28.i.i, %._crit_edge.i.i24.i.i, %._crit_edge.i.i20.i.i, %._crit_edge.i.i16.i.i, %._crit_edge.i.i12.i.i, %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i44.i.i ], [ %.sink.sroa.gep30, %._crit_edge.i.i40.i.i ], [ %.sink.sroa.gep31, %._crit_edge.i.i36.i.i ], [ %.sink.sroa.gep32, %._crit_edge.i.i32.i.i ], [ %.sink.sroa.gep33, %._crit_edge.i.i28.i.i ], [ %.sink.sroa.gep34, %._crit_edge.i.i24.i.i ], [ %.sink.sroa.gep35, %._crit_edge.i.i20.i.i ], [ %.sink.sroa.gep36, %._crit_edge.i.i16.i.i ], [ %.sink.sroa.gep37, %._crit_edge.i.i12.i.i ], [ %.sink.sroa.gep38, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep39, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep40, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i44.i.i ], [ 4, %._crit_edge.i.i40.i.i ], [ 7, %._crit_edge.i.i36.i.i ], [ 5, %._crit_edge.i.i32.i.i ], [ 4, %._crit_edge.i.i28.i.i ], [ 3, %._crit_edge.i.i24.i.i ], [ 4, %._crit_edge.i.i20.i.i ], [ 6, %._crit_edge.i.i16.i.i ], [ 6, %._crit_edge.i.i12.i.i ], [ 11, %._crit_edge.i.i8.i.i ], [ 11, %._crit_edge.i.i4.i.i ], [ 10, %._crit_edge.i.i.i.i ] - %.sink59.i.i.sroa.phi = phi ptr [ %.sink59.i.i.sroa.gep, %._crit_edge.i.i44.i.i ], [ %.sink59.i.i.sroa.gep19, %._crit_edge.i.i40.i.i ], [ %.sink59.i.i.sroa.gep20, %._crit_edge.i.i36.i.i ], [ %.sink59.i.i.sroa.gep21, %._crit_edge.i.i32.i.i ], [ %.sink59.i.i.sroa.gep19, %._crit_edge.i.i28.i.i ], [ %.sink59.i.i.sroa.gep23, %._crit_edge.i.i24.i.i ], [ %.sink59.i.i.sroa.gep19, %._crit_edge.i.i20.i.i ], [ %.sink59.i.i.sroa.gep25, %._crit_edge.i.i16.i.i ], [ %.sink59.i.i.sroa.gep25, %._crit_edge.i.i12.i.i ], [ %.sink59.i.i.sroa.gep27, %._crit_edge.i.i8.i.i ], [ %.sink59.i.i.sroa.gep27, %._crit_edge.i.i4.i.i ], [ %.sink59.i.i.sroa.gep29, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !51, !alias.scope !2146 - store i8 0, ptr %.sink59.i.i.sroa.phi, align 1, !tbaa !52, !alias.scope !2146 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !52, !alias.scope !2146 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -103158,10 +103163,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_16SetLoo %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !58 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !299 - %.sink24.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink24.i.i.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 28 - %.sink24.i.i.sroa.gep23 = getelementptr inbounds nuw i8, ptr %6, i64 20 - %.sink24.i.i.sroa.gep24 = getelementptr inbounds nuw i8, ptr %6, i64 21 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %133 @@ -103227,30 +103228,35 @@ _ZNK5arrow8internal25CoercedDataMemberPropertyINS_7compute16SetLookupOptionsENS3 ._crit_edge.i.i.i.i: ; preds = %_ZNK5arrow8internal25CoercedDataMemberPropertyINS_7compute16SetLookupOptionsENS3_20NullMatchingBehaviorEE3getERKS3_.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %35, ptr noundef nonnull align 1 dereferenceable(5) @.str.272, i64 5, i1 false) + %.sink.sroa.gep28 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %36 ._crit_edge.i.i4.i.i: ; preds = %_ZNK5arrow8internal25CoercedDataMemberPropertyINS_7compute16SetLookupOptionsENS3_20NullMatchingBehaviorEE3getERKS3_.exit store i32 1346980691, ptr %35, align 8, !alias.scope !2378 + %.sink.sroa.gep27 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %36 ._crit_edge.i.i8.i.i: ; preds = %_ZNK5arrow8internal25CoercedDataMemberPropertyINS_7compute16SetLookupOptionsENS3_20NullMatchingBehaviorEE3getERKS3_.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %35, ptr noundef nonnull align 1 dereferenceable(9) @.str.228, i64 9, i1 false) + %.sink.sroa.gep26 = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %36 ._crit_edge.i.i12.i.i: ; preds = %_ZNK5arrow8internal25CoercedDataMemberPropertyINS_7compute16SetLookupOptionsENS3_20NullMatchingBehaviorEE3getERKS3_.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %35, ptr noundef nonnull align 1 dereferenceable(12) @.str.273, i64 12, i1 false) + %.sink.sroa.gep25 = getelementptr inbounds nuw i8, ptr %6, i64 28 br label %36 ._crit_edge.i.i16.i.i: ; preds = %_ZNK5arrow8internal25CoercedDataMemberPropertyINS_7compute16SetLookupOptionsENS3_20NullMatchingBehaviorEE3getERKS3_.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %35, ptr noundef nonnull align 1 dereferenceable(9) @.str.220, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %36 36: ; preds = %._crit_edge.i.i16.i.i, %._crit_edge.i.i12.i.i, %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i16.i.i ], [ %.sink.sroa.gep25, %._crit_edge.i.i12.i.i ], [ %.sink.sroa.gep26, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep27, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep28, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i16.i.i ], [ 12, %._crit_edge.i.i12.i.i ], [ 9, %._crit_edge.i.i8.i.i ], [ 4, %._crit_edge.i.i4.i.i ], [ 5, %._crit_edge.i.i.i.i ] - %.sink24.i.i.sroa.phi = phi ptr [ %.sink24.i.i.sroa.gep, %._crit_edge.i.i16.i.i ], [ %.sink24.i.i.sroa.gep21, %._crit_edge.i.i12.i.i ], [ %.sink24.i.i.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink24.i.i.sroa.gep23, %._crit_edge.i.i4.i.i ], [ %.sink24.i.i.sroa.gep24, %._crit_edge.i.i.i.i ] %37 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %37, align 8, !tbaa !51, !alias.scope !2378 - store i8 0, ptr %.sink24.i.i.sroa.phi, align 1, !tbaa !52, !alias.scope !2378 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !52, !alias.scope !2378 %38 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %35, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %137 @@ -122873,10 +122879,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_15Strpti %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !58 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !299 - %.sink24.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink24.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 20 - %.sink24.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 21 - %.sink24.i.i.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 22 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -122920,30 +122922,35 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %26, ptr noundef nonnull align 1 dereferenceable(6) @.str.260, i64 6, i1 false) + %.sink.sroa.gep26 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.278, i64 5, i1 false) + %.sink.sroa.gep25 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.279, i64 5, i1 false) + %.sink.sroa.gep24 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i12.i.i: ; preds = %20 store i32 1330528590, ptr %26, align 8, !alias.scope !2898 + %.sink.sroa.gep23 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %27 ._crit_edge.i.i16.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.220, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i16.i.i, %._crit_edge.i.i12.i.i, %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i16.i.i ], [ %.sink.sroa.gep23, %._crit_edge.i.i12.i.i ], [ %.sink.sroa.gep24, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep25, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep26, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i16.i.i ], [ 4, %._crit_edge.i.i12.i.i ], [ 5, %._crit_edge.i.i8.i.i ], [ 5, %._crit_edge.i.i4.i.i ], [ 6, %._crit_edge.i.i.i.i ] - %.sink24.i.i.sroa.phi = phi ptr [ %.sink24.i.i.sroa.gep, %._crit_edge.i.i16.i.i ], [ %.sink24.i.i.sroa.gep19, %._crit_edge.i.i12.i.i ], [ %.sink24.i.i.sroa.gep20, %._crit_edge.i.i8.i.i ], [ %.sink24.i.i.sroa.gep20, %._crit_edge.i.i4.i.i ], [ %.sink24.i.i.sroa.gep22, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !51, !alias.scope !2898 - store i8 0, ptr %.sink24.i.i.sroa.phi, align 1, !tbaa !52, !alias.scope !2898 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !52, !alias.scope !2898 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -132257,9 +132264,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_20Utf8No %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !58 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !299 - %.sink24.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink24.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 20 - %.sink24.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 19 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -132303,30 +132307,35 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %26, ptr noundef nonnull align 1 dereferenceable(3) @.str.282, i64 3, i1 false) + %.sink.sroa.gep26 = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 store i32 1129006670, ptr %26, align 8, !alias.scope !3151 + %.sink.sroa.gep25 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %26, ptr noundef nonnull align 1 dereferenceable(3) @.str.284, i64 3, i1 false) + %.sink.sroa.gep24 = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %27 ._crit_edge.i.i12.i.i: ; preds = %20 store i32 1145783886, ptr %26, align 8, !alias.scope !3151 + %.sink.sroa.gep23 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %27 ._crit_edge.i.i16.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.220, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i16.i.i, %._crit_edge.i.i12.i.i, %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i16.i.i ], [ %.sink.sroa.gep23, %._crit_edge.i.i12.i.i ], [ %.sink.sroa.gep24, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep25, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep26, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i16.i.i ], [ 4, %._crit_edge.i.i12.i.i ], [ 3, %._crit_edge.i.i8.i.i ], [ 4, %._crit_edge.i.i4.i.i ], [ 3, %._crit_edge.i.i.i.i ] - %.sink24.i.i.sroa.phi = phi ptr [ %.sink24.i.i.sroa.gep, %._crit_edge.i.i16.i.i ], [ %.sink24.i.i.sroa.gep19, %._crit_edge.i.i12.i.i ], [ %.sink24.i.i.sroa.gep20, %._crit_edge.i.i8.i.i ], [ %.sink24.i.i.sroa.gep19, %._crit_edge.i.i4.i.i ], [ %.sink24.i.i.sroa.gep20, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !51, !alias.scope !3151 - store i8 0, ptr %.sink24.i.i.sroa.phi, align 1, !tbaa !52, !alias.scope !3151 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !52, !alias.scope !3151 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -135921,9 +135930,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_13Random %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !58 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !299 - %.sink14.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink14.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 20 - %.sink14.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 28 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -135965,22 +135971,25 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %26, ptr noundef nonnull align 1 dereferenceable(12) @.str.287, i64 12, i1 false) + %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 28 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 store i32 1684366675, ptr %26, align 8, !alias.scope !3277 + %.sink.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.220, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep21, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep22, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i8.i.i ], [ 4, %._crit_edge.i.i4.i.i ], [ 12, %._crit_edge.i.i.i.i ] - %.sink14.i.i.sroa.phi = phi ptr [ %.sink14.i.i.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink14.i.i.sroa.gep19, %._crit_edge.i.i4.i.i ], [ %.sink14.i.i.sroa.gep20, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !51, !alias.scope !3277 - store i8 0, ptr %.sink14.i.i.sroa.phi, align 1, !tbaa !52, !alias.scope !3277 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !52, !alias.scope !3277 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 diff --git a/bench/arrow/optimized/api_vector.ll b/bench/arrow/optimized/api_vector.ll index e9b2176bb8c..22af786f913 100644 --- a/bench/arrow/optimized/api_vector.ll +++ b/bench/arrow/optimized/api_vector.ll @@ -13477,8 +13477,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_13Filter %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !128 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !335 - %.sink14.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink14.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 20 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -13520,22 +13518,25 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 store i32 1347375684, ptr %26, align 8, !alias.scope !350 + %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.64, i64 9, i1 false) + %.sink.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.65, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep21, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep22, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i8.i.i ], [ 9, %._crit_edge.i.i4.i.i ], [ 4, %._crit_edge.i.i.i.i ] - %.sink14.i.i.sroa.phi = phi ptr [ %.sink14.i.i.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink14.i.i.sroa.gep, %._crit_edge.i.i4.i.i ], [ %.sink14.i.i.sroa.gep20, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !131, !alias.scope !350 - store i8 0, ptr %.sink14.i.i.sroa.phi, align 1, !tbaa !130, !alias.scope !350 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !130, !alias.scope !350 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -20104,9 +20105,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_23Dictio %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !128 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !335 - %.sink14.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink14.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 20 - %.sink14.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 22 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -20148,22 +20146,25 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %26, ptr noundef nonnull align 1 dereferenceable(6) @.str.81, i64 6, i1 false) + %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 store i32 1263747405, ptr %26, align 8, !alias.scope !587 + %.sink.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.65, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep21, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep22, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i8.i.i ], [ 4, %._crit_edge.i.i4.i.i ], [ 6, %._crit_edge.i.i.i.i ] - %.sink14.i.i.sroa.phi = phi ptr [ %.sink14.i.i.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink14.i.i.sroa.gep19, %._crit_edge.i.i4.i.i ], [ %.sink14.i.i.sroa.gep20, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !131, !alias.scope !587 - store i8 0, ptr %.sink14.i.i.sroa.phi, align 1, !tbaa !130, !alias.scope !587 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !130, !alias.scope !587 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -25724,9 +25725,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_16ArrayS %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !128 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !335 - %.sink14.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink14.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 21 - %.sink14.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 23 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -25768,22 +25766,25 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %26, ptr noundef nonnull align 1 dereferenceable(7) @.str.89, i64 7, i1 false) + %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 23 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.90, i64 5, i1 false) + %.sink.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.65, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep21, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep22, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i8.i.i ], [ 5, %._crit_edge.i.i4.i.i ], [ 7, %._crit_edge.i.i.i.i ] - %.sink14.i.i.sroa.phi = phi ptr [ %.sink14.i.i.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink14.i.i.sroa.gep19, %._crit_edge.i.i4.i.i ], [ %.sink14.i.i.sroa.gep20, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !131, !alias.scope !735 - store i8 0, ptr %.sink14.i.i.sroa.phi, align 1, !tbaa !130, !alias.scope !735 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !130, !alias.scope !735 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -30134,9 +30135,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_11SortOp %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !128 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !335 - %.sink14.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink14.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 21 - %.sink14.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 23 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -30178,22 +30176,25 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %26, ptr noundef nonnull align 1 dereferenceable(7) @.str.89, i64 7, i1 false) + %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 23 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.90, i64 5, i1 false) + %.sink.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.65, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep21, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep22, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i8.i.i ], [ 5, %._crit_edge.i.i4.i.i ], [ 7, %._crit_edge.i.i.i.i ] - %.sink14.i.i.sroa.phi = phi ptr [ %.sink14.i.i.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink14.i.i.sroa.gep19, %._crit_edge.i.i4.i.i ], [ %.sink14.i.i.sroa.gep20, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !131, !alias.scope !858 - store i8 0, ptr %.sink14.i.i.sroa.phi, align 1, !tbaa !130, !alias.scope !858 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !130, !alias.scope !858 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -40767,9 +40768,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_19Partit %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !128 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !335 - %.sink14.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink14.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 21 - %.sink14.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 23 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -40811,22 +40809,25 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %26, ptr noundef nonnull align 1 dereferenceable(7) @.str.89, i64 7, i1 false) + %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 23 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.90, i64 5, i1 false) + %.sink.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.65, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep21, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep22, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i8.i.i ], [ 5, %._crit_edge.i.i4.i.i ], [ 7, %._crit_edge.i.i.i.i ] - %.sink14.i.i.sroa.phi = phi ptr [ %.sink14.i.i.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink14.i.i.sroa.gep19, %._crit_edge.i.i4.i.i ], [ %.sink14.i.i.sroa.gep20, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !131, !alias.scope !1199 - store i8 0, ptr %.sink14.i.i.sroa.phi, align 1, !tbaa !130, !alias.scope !1199 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !130, !alias.scope !1199 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -52047,9 +52048,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_11RankOp %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !128 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !335 - %.sink14.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink14.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 21 - %.sink14.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 23 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -52091,22 +52089,25 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %26, ptr noundef nonnull align 1 dereferenceable(7) @.str.89, i64 7, i1 false) + %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 23 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.90, i64 5, i1 false) + %.sink.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.65, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep21, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep22, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i8.i.i ], [ 5, %._crit_edge.i.i4.i.i ], [ 7, %._crit_edge.i.i.i.i ] - %.sink14.i.i.sroa.phi = phi ptr [ %.sink14.i.i.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink14.i.i.sroa.gep19, %._crit_edge.i.i4.i.i ], [ %.sink14.i.i.sroa.gep20, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !131, !alias.scope !1500 - store i8 0, ptr %.sink14.i.i.sroa.phi, align 1, !tbaa !130, !alias.scope !1500 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !130, !alias.scope !1500 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -52386,9 +52387,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_11RankOp %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !128 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !335 - %.sink24.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink24.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 21 - %.sink24.i.i.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 19 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -52432,30 +52430,35 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %26, ptr noundef nonnull align 1 dereferenceable(3) @.str.100, i64 3, i1 false) + %.sink.sroa.gep26 = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %26, ptr noundef nonnull align 1 dereferenceable(3) @.str.101, i64 3, i1 false) + %.sink.sroa.gep25 = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.102, i64 5, i1 false) + %.sink.sroa.gep24 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i12.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.103, i64 5, i1 false) + %.sink.sroa.gep23 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i16.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.65, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i16.i.i, %._crit_edge.i.i12.i.i, %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i16.i.i ], [ %.sink.sroa.gep23, %._crit_edge.i.i12.i.i ], [ %.sink.sroa.gep24, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep25, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep26, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i16.i.i ], [ 5, %._crit_edge.i.i12.i.i ], [ 5, %._crit_edge.i.i8.i.i ], [ 3, %._crit_edge.i.i4.i.i ], [ 3, %._crit_edge.i.i.i.i ] - %.sink24.i.i.sroa.phi = phi ptr [ %.sink24.i.i.sroa.gep, %._crit_edge.i.i16.i.i ], [ %.sink24.i.i.sroa.gep19, %._crit_edge.i.i12.i.i ], [ %.sink24.i.i.sroa.gep19, %._crit_edge.i.i8.i.i ], [ %.sink24.i.i.sroa.gep21, %._crit_edge.i.i4.i.i ], [ %.sink24.i.i.sroa.gep21, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !131, !alias.scope !1512 - store i8 0, ptr %.sink24.i.i.sroa.phi, align 1, !tbaa !130, !alias.scope !1512 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !130, !alias.scope !1512 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 @@ -56559,9 +56562,6 @@ define linkonce_odr void @_ZN5arrow7compute8internal13StringifyImplINS0_19RankQu %.sroa.0.0.copyload.i = load i64, ptr %1, align 8, !tbaa !128 %.sroa.2.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload.i = load ptr, ptr %.sroa.2.0..sroa_idx.i, align 8, !tbaa !335 - %.sink14.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 - %.sink14.i.i.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 21 - %.sink14.i.i.sroa.gep20 = getelementptr inbounds nuw i8, ptr %6, i64 23 %9 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef %.sroa.2.0.copyload.i, i64 noundef %.sroa.0.0.copyload.i) to label %_ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_S4_E.exit unwind label %124 @@ -56603,22 +56603,25 @@ _ZStlsIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_St17basic_string_viewIS3_ ._crit_edge.i.i.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %26, ptr noundef nonnull align 1 dereferenceable(7) @.str.89, i64 7, i1 false) + %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 23 br label %27 ._crit_edge.i.i4.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.90, i64 5, i1 false) + %.sink.sroa.gep21 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %27 ._crit_edge.i.i8.i.i: ; preds = %20 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %26, ptr noundef nonnull align 1 dereferenceable(9) @.str.65, i64 9, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 25 br label %27 27: ; preds = %._crit_edge.i.i8.i.i, %._crit_edge.i.i4.i.i, %._crit_edge.i.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink.sroa.gep21, %._crit_edge.i.i4.i.i ], [ %.sink.sroa.gep22, %._crit_edge.i.i.i.i ] %.sink.i.i = phi i64 [ 9, %._crit_edge.i.i8.i.i ], [ 5, %._crit_edge.i.i4.i.i ], [ 7, %._crit_edge.i.i.i.i ] - %.sink14.i.i.sroa.phi = phi ptr [ %.sink14.i.i.sroa.gep, %._crit_edge.i.i8.i.i ], [ %.sink14.i.i.sroa.gep19, %._crit_edge.i.i4.i.i ], [ %.sink14.i.i.sroa.gep20, %._crit_edge.i.i.i.i ] %28 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i.i, ptr %28, align 8, !tbaa !131, !alias.scope !1619 - store i8 0, ptr %.sink14.i.i.sroa.phi, align 1, !tbaa !130, !alias.scope !1619 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !130, !alias.scope !1619 %29 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %.0.i, ptr noundef nonnull %26, i64 noundef %.sink.i.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit unwind label %126 diff --git a/bench/arrow/optimized/config.ll b/bench/arrow/optimized/config.ll index 1606b709579..fb97dc22e36 100644 --- a/bench/arrow/optimized/config.ll +++ b/bench/arrow/optimized/config.ll @@ -321,12 +321,6 @@ define void @_ZN5arrow14GetRuntimeInfoEv(ptr dead_on_unwind noalias writable sre store i8 0, ptr %8, align 8, !tbaa !12 %10 = getelementptr inbounds nuw i8, ptr %0, i64 104 store i8 0, ptr %10, align 8, !tbaa !13 - %.sink5.i13.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 20 - %.sink5.i13.sroa.gep34 = getelementptr inbounds nuw i8, ptr %3, i64 22 - %.sink5.i13.sroa.gep35 = getelementptr inbounds nuw i8, ptr %3, i64 19 - %.sink5.i.sroa.gep = getelementptr inbounds nuw i8, ptr %2, i64 20 - %.sink5.i.sroa.gep39 = getelementptr inbounds nuw i8, ptr %2, i64 22 - %.sink5.i.sroa.gep40 = getelementptr inbounds nuw i8, ptr %2, i64 19 %11 = invoke noundef ptr @_ZN5arrow8internal7CpuInfo11GetInstanceEv() to label %12 unwind label %89 @@ -344,6 +338,7 @@ define void @_ZN5arrow14GetRuntimeInfoEv(ptr dead_on_unwind noalias writable sre call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr43, ptr noundef nonnull align 1 dereferenceable(6) @.str.13, i64 6, i1 false) %14 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 6, ptr %14, align 8, !tbaa !11, !alias.scope !19 + %.sink.sroa.gep59 = getelementptr inbounds nuw i8, ptr %2, i64 22 br label %24 15: ; preds = %.noexc @@ -359,6 +354,7 @@ define void @_ZN5arrow14GetRuntimeInfoEv(ptr dead_on_unwind noalias writable sre store i32 846755425, ptr %.ptr44, align 8, !alias.scope !19 %17 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 4, ptr %17, align 8, !tbaa !11, !alias.scope !19 + %.sink.sroa.gep58 = getelementptr inbounds nuw i8, ptr %2, i64 20 br label %24 18: ; preds = %.noexc5 @@ -374,6 +370,7 @@ define void @_ZN5arrow14GetRuntimeInfoEv(ptr dead_on_unwind noalias writable sre call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %.ptr45, ptr noundef nonnull align 1 dereferenceable(3) @.str.15, i64 3, i1 false) %20 = getelementptr inbounds nuw i8, ptr %2, i64 8 store i64 3, ptr %20, align 8, !tbaa !11, !alias.scope !19 + %.sink.sroa.gep57 = getelementptr inbounds nuw i8, ptr %2, i64 19 br label %24 21: ; preds = %.noexc6 @@ -389,17 +386,19 @@ define void @_ZN5arrow14GetRuntimeInfoEv(ptr dead_on_unwind noalias writable sre ._crit_edge.i.i18.i: ; preds = %.noexc7 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr46, ptr noundef nonnull align 1 dereferenceable(6) @.str.16, i64 6, i1 false) store i64 6, ptr %23, align 8, !tbaa !11, !alias.scope !19 + %.sink.sroa.gep56 = getelementptr inbounds nuw i8, ptr %2, i64 22 br label %24 ._crit_edge.i.i22.i: ; preds = %.noexc7 store i32 1701736302, ptr %.ptr46, align 8, !alias.scope !19 store i64 4, ptr %23, align 8, !tbaa !11, !alias.scope !19 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %2, i64 20 br label %24 24: ; preds = %._crit_edge.i.i22.i, %._crit_edge.i.i18.i, %._crit_edge.i.i14.i, %._crit_edge.i.i10.i, %._crit_edge.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i22.i ], [ %.sink.sroa.gep56, %._crit_edge.i.i18.i ], [ %.sink.sroa.gep57, %._crit_edge.i.i14.i ], [ %.sink.sroa.gep58, %._crit_edge.i.i10.i ], [ %.sink.sroa.gep59, %._crit_edge.i.i.i ] %25 = phi i64 [ 4, %._crit_edge.i.i22.i ], [ 6, %._crit_edge.i.i18.i ], [ 3, %._crit_edge.i.i14.i ], [ 4, %._crit_edge.i.i10.i ], [ 6, %._crit_edge.i.i.i ] - %.sink5.i.sroa.phi = phi ptr [ %.sink5.i.sroa.gep, %._crit_edge.i.i22.i ], [ %.sink5.i.sroa.gep39, %._crit_edge.i.i18.i ], [ %.sink5.i.sroa.gep40, %._crit_edge.i.i14.i ], [ %.sink5.i.sroa.gep, %._crit_edge.i.i10.i ], [ %.sink5.i.sroa.gep39, %._crit_edge.i.i.i ] - store i8 0, ptr %.sink5.i.sroa.phi, align 1, !tbaa !12, !alias.scope !19 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !12, !alias.scope !19 %26 = load ptr, ptr %0, align 8, !tbaa !3 %27 = icmp eq ptr %26, %5 br i1 %27, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i @@ -463,6 +462,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKS call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr47, ptr noundef nonnull align 1 dereferenceable(6) @.str.13, i64 6, i1 false) %45 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 6, ptr %45, align 8, !tbaa !11, !alias.scope !23 + %.sink51.sroa.gep55 = getelementptr inbounds nuw i8, ptr %3, i64 22 br label %55 46: ; preds = %.noexc18 @@ -478,6 +478,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKS store i32 846755425, ptr %.ptr48, align 8, !alias.scope !23 %48 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 4, ptr %48, align 8, !tbaa !11, !alias.scope !23 + %.sink51.sroa.gep54 = getelementptr inbounds nuw i8, ptr %3, i64 20 br label %55 49: ; preds = %.noexc19 @@ -493,6 +494,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKS call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %.ptr49, ptr noundef nonnull align 1 dereferenceable(3) @.str.15, i64 3, i1 false) %51 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 3, ptr %51, align 8, !tbaa !11, !alias.scope !23 + %.sink51.sroa.gep53 = getelementptr inbounds nuw i8, ptr %3, i64 19 br label %55 52: ; preds = %.noexc20 @@ -508,17 +510,19 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit: ; preds = %_ZNKS ._crit_edge.i.i18.i14: ; preds = %.noexc21 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr50, ptr noundef nonnull align 1 dereferenceable(6) @.str.16, i64 6, i1 false) store i64 6, ptr %54, align 8, !tbaa !11, !alias.scope !23 + %.sink51.sroa.gep52 = getelementptr inbounds nuw i8, ptr %3, i64 22 br label %55 ._crit_edge.i.i22.i12: ; preds = %.noexc21 store i32 1701736302, ptr %.ptr50, align 8, !alias.scope !23 store i64 4, ptr %54, align 8, !tbaa !11, !alias.scope !23 + %.sink51.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 20 br label %55 55: ; preds = %._crit_edge.i.i22.i12, %._crit_edge.i.i18.i14, %._crit_edge.i.i14.i15, %._crit_edge.i.i10.i16, %._crit_edge.i.i.i17 + %.sink51.sroa.phi = phi ptr [ %.sink51.sroa.gep, %._crit_edge.i.i22.i12 ], [ %.sink51.sroa.gep52, %._crit_edge.i.i18.i14 ], [ %.sink51.sroa.gep53, %._crit_edge.i.i14.i15 ], [ %.sink51.sroa.gep54, %._crit_edge.i.i10.i16 ], [ %.sink51.sroa.gep55, %._crit_edge.i.i.i17 ] %56 = phi i64 [ 4, %._crit_edge.i.i22.i12 ], [ 6, %._crit_edge.i.i18.i14 ], [ 3, %._crit_edge.i.i14.i15 ], [ 4, %._crit_edge.i.i10.i16 ], [ 6, %._crit_edge.i.i.i17 ] - %.sink5.i13.sroa.phi = phi ptr [ %.sink5.i13.sroa.gep, %._crit_edge.i.i22.i12 ], [ %.sink5.i13.sroa.gep34, %._crit_edge.i.i18.i14 ], [ %.sink5.i13.sroa.gep35, %._crit_edge.i.i14.i15 ], [ %.sink5.i13.sroa.gep, %._crit_edge.i.i10.i16 ], [ %.sink5.i13.sroa.gep34, %._crit_edge.i.i.i17 ] - store i8 0, ptr %.sink5.i13.sroa.phi, align 1, !tbaa !12, !alias.scope !23 + store i8 0, ptr %.sink51.sroa.phi, align 1, !tbaa !12, !alias.scope !23 %57 = load ptr, ptr %7, align 8, !tbaa !3 %58 = icmp eq ptr %57, %8 br i1 %58, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i28, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread29.i22 diff --git a/bench/arrow/optimized/type.ll b/bench/arrow/optimized/type.ll index fd28cdacb77..10b73c6bf49 100644 --- a/bench/arrow/optimized/type.ll +++ b/bench/arrow/optimized/type.ll @@ -39130,8 +39130,6 @@ define void @_ZNK5arrow6Schema8ToStringB5cxx11Eb(ptr dead_on_unwind noalias writ %10 = load ptr, ptr %9, align 8, !tbaa !825 %11 = getelementptr inbounds nuw i8, ptr %9, i64 8 %12 = load ptr, ptr %11, align 8, !tbaa !825 - %.sink14.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 19 - %.sink14.i.sroa.gep48 = getelementptr inbounds nuw i8, ptr %6, i64 22 %.not5253 = icmp eq ptr %10, %12 br i1 %.not5253, label %._crit_edge, label %.lr.ph @@ -39300,22 +39298,25 @@ _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit: ; preds = %61 ._crit_edge.i.i.i: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %67, ptr noundef nonnull align 1 dereferenceable(6) @.str.156, i64 6, i1 false) + %.sink.sroa.gep57 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %68 ._crit_edge.i.i4.i: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %67, ptr noundef nonnull align 1 dereferenceable(3) @.str.157, i64 3, i1 false) + %.sink.sroa.gep56 = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %68 ._crit_edge.i.i8.i: ; preds = %_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %67, ptr noundef nonnull align 1 dereferenceable(3) @.str.159, i64 3, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %68 68: ; preds = %._crit_edge.i.i8.i, %._crit_edge.i.i4.i, %._crit_edge.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i8.i ], [ %.sink.sroa.gep56, %._crit_edge.i.i4.i ], [ %.sink.sroa.gep57, %._crit_edge.i.i.i ] %.sink.i = phi i64 [ 3, %._crit_edge.i.i8.i ], [ 3, %._crit_edge.i.i4.i ], [ 6, %._crit_edge.i.i.i ] - %.sink14.i.sroa.phi = phi ptr [ %.sink14.i.sroa.gep, %._crit_edge.i.i8.i ], [ %.sink14.i.sroa.gep, %._crit_edge.i.i4.i ], [ %.sink14.i.sroa.gep48, %._crit_edge.i.i.i ] %69 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i, ptr %69, align 8, !tbaa !40, !alias.scope !1631 - store i8 0, ptr %.sink14.i.sroa.phi, align 1, !tbaa !42, !alias.scope !1631 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !42, !alias.scope !1631 %70 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l(ptr noundef nonnull align 8 dereferenceable(8) %62, ptr noundef nonnull %67, i64 noundef %.sink.i) to label %_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE.exit26 unwind label %80 diff --git a/bench/assimp/optimized/PlyParser.ll b/bench/assimp/optimized/PlyParser.ll index 51e39d12d82..d662acbc6d2 100644 --- a/bench/assimp/optimized/PlyParser.ll +++ b/bench/assimp/optimized/PlyParser.ll @@ -4397,12 +4397,6 @@ define hidden noundef zeroext i1 @_ZN6Assimp3PLY3DOM11ParseHeaderERNS_14IOStream store float 1.000000e+00, ptr %17, align 8 %18 = getelementptr inbounds nuw i8, ptr %7, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %18, i8 0, i64 16, i1 false) - %.sink29.i.sroa.gep = getelementptr inbounds nuw i8, ptr %10, i64 23 - %.sink29.i.sroa.gep70 = getelementptr inbounds nuw i8, ptr %10, i64 27 - %.sink29.i.sroa.gep71 = getelementptr inbounds nuw i8, ptr %10, i64 24 - %.sink29.i.sroa.gep72 = getelementptr inbounds nuw i8, ptr %10, i64 20 - %.sink29.i.sroa.gep73 = getelementptr inbounds nuw i8, ptr %10, i64 25 - %.sink29.i.sroa.gep74 = getelementptr inbounds nuw i8, ptr %10, i64 22 %19 = getelementptr inbounds nuw i8, ptr %2, i64 8 %20 = getelementptr inbounds nuw i8, ptr %8, i64 8 %21 = getelementptr inbounds nuw i8, ptr %8, i64 16 @@ -4413,6 +4407,12 @@ define hidden noundef zeroext i1 @_ZN6Assimp3PLY3DOM11ParseHeaderERNS_14IOStream %26 = getelementptr inbounds nuw i8, ptr %9, i64 64 %27 = getelementptr inbounds nuw i8, ptr %10, i64 16 %28 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %.sink29.i.sroa.gep70 = getelementptr inbounds nuw i8, ptr %10, i64 27 + %.sink29.i.sroa.gep71 = getelementptr inbounds nuw i8, ptr %10, i64 24 + %.sink29.i.sroa.gep72 = getelementptr inbounds nuw i8, ptr %10, i64 20 + %.sink29.i.sroa.gep73 = getelementptr inbounds nuw i8, ptr %10, i64 25 + %.sink29.i.sroa.gep74 = getelementptr inbounds nuw i8, ptr %10, i64 22 + %.sink29.i.sroa.gep = getelementptr inbounds nuw i8, ptr %10, i64 23 %29 = getelementptr inbounds nuw i8, ptr %0, i64 8 %30 = getelementptr inbounds nuw i8, ptr %0, i64 16 %31 = getelementptr inbounds nuw i8, ptr %9, i64 8 diff --git a/bench/boost/optimized/algorithm.ll b/bench/boost/optimized/algorithm.ll index 3f3c0dd21d1..1c0a15a1ce6 100644 --- a/bench/boost/optimized/algorithm.ll +++ b/bench/boost/optimized/algorithm.ll @@ -141586,18 +141586,18 @@ __cxx_global_var_init.36.exit: ; preds = %0, %28, %30 br i1 %.not.not.not.i.i, label %._crit_edge.i.i53.i.i, label %._crit_edge.i.i.i.i ._crit_edge.i.i.i.i: ; preds = %__cxx_global_var_init.36.exit - %.sink15.i.sroa.gep.i = getelementptr inbounds nuw i8, ptr %15, i64 25 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(9) %.ptr14.i.i, ptr noundef nonnull align 1 dereferenceable(9) @.str.436, i64 9, i1 false) + %.sink.sroa.gep5 = getelementptr inbounds nuw i8, ptr %15, i64 25 br label %.critedge49.i.i ._crit_edge.i.i53.i.i: ; preds = %__cxx_global_var_init.36.exit - %.sink15.i.sroa.gep1.i = getelementptr inbounds nuw i8, ptr %15, i64 19 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %.ptr14.i.i, ptr noundef nonnull align 1 dereferenceable(3) @.str.437, i64 3, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %15, i64 19 br label %.critedge49.i.i .critedge49.i.i: ; preds = %._crit_edge.i.i53.i.i, %._crit_edge.i.i.i.i - %.sink15.i.sroa.phi.i = phi ptr [ %.sink15.i.sroa.gep.i, %._crit_edge.i.i.i.i ], [ %.sink15.i.sroa.gep1.i, %._crit_edge.i.i53.i.i ] - %32 = phi i64 [ 9, %._crit_edge.i.i.i.i ], [ 3, %._crit_edge.i.i53.i.i ] + %.sink15.i.sroa.phi.i = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i53.i.i ], [ %.sink.sroa.gep5, %._crit_edge.i.i.i.i ] + %32 = phi i64 [ 3, %._crit_edge.i.i53.i.i ], [ 9, %._crit_edge.i.i.i.i ] store i8 0, ptr %.sink15.i.sroa.phi.i, align 1, !tbaa !24 store ptr %.ptr14.i.i, ptr %15, align 8, !tbaa !92 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1) getelementptr inbounds nuw (i8, ptr @_ZN5boost5debug12_GLOBAL__N_16s_infoE, i64 16), ptr noundef nonnull align 8 dereferenceable(1) %.ptr14.i.i, i64 %32, i1 false) diff --git a/bench/brotli/optimized/backward_references.ll b/bench/brotli/optimized/backward_references.ll index 952fda6ec89..18012809bbd 100644 --- a/bench/brotli/optimized/backward_references.ll +++ b/bench/brotli/optimized/backward_references.ll @@ -24003,8 +24003,6 @@ define internal fastcc void @CreateBackwardReferencesNH3(i64 noundef %0, i64 nou %30 = load i64, ptr %29, align 8, !tbaa !30 %31 = add i64 %1, 8 %32 = icmp ult i64 %31, %22 - %.1103.i376.sroa.gep61 = getelementptr inbounds nuw i8, ptr %13, i64 8 - %.1103.i206424.sroa.gep62 = getelementptr inbounds nuw i8, ptr %12, i64 8 br i1 %32, label %.thread.lr.ph, label %._crit_edge .thread.lr.ph: ; preds = %11 @@ -24019,7 +24017,9 @@ define internal fastcc void @CreateBackwardReferencesNH3(i64 noundef %0, i64 nou %41 = getelementptr inbounds nuw i8, ptr %6, i64 12 %42 = getelementptr inbounds nuw i8, ptr %4, i64 60 %43 = getelementptr inbounds nuw i8, ptr %13, i64 8 + %.1103.i376.sroa.gep61 = getelementptr inbounds nuw i8, ptr %13, i64 8 %44 = getelementptr inbounds nuw i8, ptr %12, i64 8 + %.1103.i206424.sroa.gep62 = getelementptr inbounds nuw i8, ptr %12, i64 8 br label %.thread .thread: ; preds = %.thread.lr.ph, %StoreRangeH3.exit @@ -39981,8 +39981,6 @@ define internal fastcc void @CreateBackwardReferencesNH35(i64 noundef %0, i64 no %30 = load i64, ptr %29, align 8, !tbaa !30 %31 = add i64 %1, 8 %32 = icmp ult i64 %31, %22 - %.1103.i.i427.sroa.gep91 = getelementptr inbounds nuw i8, ptr %13, i64 8 - %.1103.i.i204501.sroa.gep92 = getelementptr inbounds nuw i8, ptr %12, i64 8 br i1 %32, label %.thread.lr.ph, label %._crit_edge541 .thread.lr.ph: ; preds = %11 @@ -40002,7 +40000,9 @@ define internal fastcc void @CreateBackwardReferencesNH35(i64 noundef %0, i64 no %46 = getelementptr inbounds nuw i8, ptr %6, i64 12 %47 = getelementptr inbounds nuw i8, ptr %4, i64 60 %48 = getelementptr inbounds nuw i8, ptr %13, i64 8 + %.1103.i.i427.sroa.gep91 = getelementptr inbounds nuw i8, ptr %13, i64 8 %49 = getelementptr inbounds nuw i8, ptr %12, i64 8 + %.1103.i.i204501.sroa.gep92 = getelementptr inbounds nuw i8, ptr %12, i64 8 br label %.thread .thread: ; preds = %.thread.lr.ph, %StoreRangeH35.exit diff --git a/bench/casadi/optimized/code_generator.ll b/bench/casadi/optimized/code_generator.ll index aeda62734c2..02f4a909561 100644 --- a/bench/casadi/optimized/code_generator.ll +++ b/bench/casadi/optimized/code_generator.ll @@ -49984,8 +49984,6 @@ define linkonce_odr hidden void @_ZN6casadi11casadi_mathIdE5printEhRKNSt7__cxx11 %20 = alloca %"class.std::__cxx11::basic_string", align 8 %21 = tail call noundef i64 @_ZN6casadi11casadi_mathIdE5ndepsEh(i8 noundef zeroext %1) %22 = icmp eq i64 %21, 2 - %.sink59.i.sroa.gep = getelementptr inbounds nuw i8, ptr %19, i64 17 - %.sink59.i.sroa.gep116 = getelementptr inbounds nuw i8, ptr %19, i64 18 br i1 %22, label %112, label %23 23: ; preds = %4 @@ -50342,58 +50340,70 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i61 ._crit_edge.i.i.i: ; preds = %132 store i8 43, ptr %136, align 8, !tbaa !12, !alias.scope !743 + %.sink.sroa.gep150 = getelementptr inbounds nuw i8, ptr %19, i64 17 br label %137 ._crit_edge.i.i4.i: ; preds = %132 store i8 45, ptr %136, align 8, !tbaa !12, !alias.scope !743 + %.sink.sroa.gep149 = getelementptr inbounds nuw i8, ptr %19, i64 17 br label %137 ._crit_edge.i.i8.i: ; preds = %132 store i8 42, ptr %136, align 8, !tbaa !12, !alias.scope !743 + %.sink.sroa.gep148 = getelementptr inbounds nuw i8, ptr %19, i64 17 br label %137 ._crit_edge.i.i12.i: ; preds = %132 store i8 47, ptr %136, align 8, !tbaa !12, !alias.scope !743 + %.sink.sroa.gep147 = getelementptr inbounds nuw i8, ptr %19, i64 17 br label %137 ._crit_edge.i.i16.i: ; preds = %132 store i8 60, ptr %136, align 8, !tbaa !12, !alias.scope !743 + %.sink.sroa.gep146 = getelementptr inbounds nuw i8, ptr %19, i64 17 br label %137 ._crit_edge.i.i20.i: ; preds = %132 store i16 15676, ptr %136, align 8, !alias.scope !743 + %.sink.sroa.gep145 = getelementptr inbounds nuw i8, ptr %19, i64 18 br label %137 ._crit_edge.i.i24.i: ; preds = %132 store i16 15677, ptr %136, align 8, !alias.scope !743 + %.sink.sroa.gep144 = getelementptr inbounds nuw i8, ptr %19, i64 18 br label %137 ._crit_edge.i.i28.i: ; preds = %132 store i16 15649, ptr %136, align 8, !alias.scope !743 + %.sink.sroa.gep143 = getelementptr inbounds nuw i8, ptr %19, i64 18 br label %137 ._crit_edge.i.i32.i: ; preds = %132 store i16 9766, ptr %136, align 8, !alias.scope !743 + %.sink.sroa.gep142 = getelementptr inbounds nuw i8, ptr %19, i64 18 br label %137 ._crit_edge.i.i36.i: ; preds = %132 store i16 31868, ptr %136, align 8, !alias.scope !743 + %.sink.sroa.gep141 = getelementptr inbounds nuw i8, ptr %19, i64 18 br label %137 ._crit_edge.i.i40.i: ; preds = %132 store i8 63, ptr %136, align 8, !tbaa !12, !alias.scope !743 + %.sink.sroa.gep140 = getelementptr inbounds nuw i8, ptr %19, i64 17 br label %137 ._crit_edge.i.i44.i: ; preds = %132 store i8 44, ptr %136, align 8, !tbaa !12, !alias.scope !743 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %19, i64 17 br label %137 137: ; preds = %._crit_edge.i.i44.i, %._crit_edge.i.i40.i, %._crit_edge.i.i36.i, %._crit_edge.i.i32.i, %._crit_edge.i.i28.i, %._crit_edge.i.i24.i, %._crit_edge.i.i20.i, %._crit_edge.i.i16.i, %._crit_edge.i.i12.i, %._crit_edge.i.i8.i, %._crit_edge.i.i4.i, %._crit_edge.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i44.i ], [ %.sink.sroa.gep140, %._crit_edge.i.i40.i ], [ %.sink.sroa.gep141, %._crit_edge.i.i36.i ], [ %.sink.sroa.gep142, %._crit_edge.i.i32.i ], [ %.sink.sroa.gep143, %._crit_edge.i.i28.i ], [ %.sink.sroa.gep144, %._crit_edge.i.i24.i ], [ %.sink.sroa.gep145, %._crit_edge.i.i20.i ], [ %.sink.sroa.gep146, %._crit_edge.i.i16.i ], [ %.sink.sroa.gep147, %._crit_edge.i.i12.i ], [ %.sink.sroa.gep148, %._crit_edge.i.i8.i ], [ %.sink.sroa.gep149, %._crit_edge.i.i4.i ], [ %.sink.sroa.gep150, %._crit_edge.i.i.i ] %.sink.i = phi i64 [ 1, %._crit_edge.i.i44.i ], [ 1, %._crit_edge.i.i40.i ], [ 2, %._crit_edge.i.i36.i ], [ 2, %._crit_edge.i.i32.i ], [ 2, %._crit_edge.i.i28.i ], [ 2, %._crit_edge.i.i24.i ], [ 2, %._crit_edge.i.i20.i ], [ 1, %._crit_edge.i.i16.i ], [ 1, %._crit_edge.i.i12.i ], [ 1, %._crit_edge.i.i8.i ], [ 1, %._crit_edge.i.i4.i ], [ 1, %._crit_edge.i.i.i ] - %.sink59.i.sroa.phi = phi ptr [ %.sink59.i.sroa.gep, %._crit_edge.i.i44.i ], [ %.sink59.i.sroa.gep, %._crit_edge.i.i40.i ], [ %.sink59.i.sroa.gep116, %._crit_edge.i.i36.i ], [ %.sink59.i.sroa.gep116, %._crit_edge.i.i32.i ], [ %.sink59.i.sroa.gep116, %._crit_edge.i.i28.i ], [ %.sink59.i.sroa.gep116, %._crit_edge.i.i24.i ], [ %.sink59.i.sroa.gep116, %._crit_edge.i.i20.i ], [ %.sink59.i.sroa.gep, %._crit_edge.i.i16.i ], [ %.sink59.i.sroa.gep, %._crit_edge.i.i12.i ], [ %.sink59.i.sroa.gep, %._crit_edge.i.i8.i ], [ %.sink59.i.sroa.gep, %._crit_edge.i.i4.i ], [ %.sink59.i.sroa.gep, %._crit_edge.i.i.i ] %138 = getelementptr inbounds nuw i8, ptr %19, i64 8 store i64 %.sink.i, ptr %138, align 8, !tbaa !9, !alias.scope !743 - store i8 0, ptr %.sink59.i.sroa.phi, align 1, !tbaa !12, !alias.scope !743 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !12, !alias.scope !743 call void @llvm.experimental.noalias.scope.decl(metadata !746) %139 = load i64, ptr %135, align 8, !tbaa !9, !noalias !746 %140 = add i64 %139, %.sink.i diff --git a/bench/casadi/optimized/convexify.ll b/bench/casadi/optimized/convexify.ll index 71ba78c7989..e7c718f543f 100644 --- a/bench/casadi/optimized/convexify.ll +++ b/bench/casadi/optimized/convexify.ll @@ -4734,7 +4734,6 @@ define void @_ZNK6casadi9Convexify7eval_mxERKSt6vectorINS_2MXESaIS2_EERS4_(ptr n %19 = load i32, ptr %18, align 8, !tbaa !121 %20 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %20, ptr %6, align 8, !tbaa !3, !alias.scope !122 - %.sink19.i.sroa.gep68 = getelementptr inbounds nuw i8, ptr %6, i64 26 switch i32 %19, label %._crit_edge.i.i12.i [ i32 0, label %._crit_edge.i.i.i i32 2, label %._crit_edge.i.i4.i @@ -4743,28 +4742,30 @@ define void @_ZNK6casadi9Convexify7eval_mxERKSt6vectorINS_2MXESaIS2_EERS4_(ptr n ._crit_edge.i.i.i: ; preds = %3 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(10) %20, ptr noundef nonnull align 1 dereferenceable(10) @.str, i64 10, i1 false) + %.sink.sroa.gep73 = getelementptr inbounds nuw i8, ptr %6, i64 26 br label %21 ._crit_edge.i.i4.i: ; preds = %3 - %.sink19.i.sroa.gep69 = getelementptr inbounds nuw i8, ptr %6, i64 29 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(13) %20, ptr noundef nonnull align 1 dereferenceable(13) @.str.1, i64 13, i1 false) + %.sink.sroa.gep72 = getelementptr inbounds nuw i8, ptr %6, i64 29 br label %21 ._crit_edge.i.i8.i: ; preds = %3 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(10) %20, ptr noundef nonnull align 1 dereferenceable(10) @.str.2, i64 10, i1 false) + %.sink.sroa.gep71 = getelementptr inbounds nuw i8, ptr %6, i64 26 br label %21 ._crit_edge.i.i12.i: ; preds = %3 - %.sink19.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 23 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %20, ptr noundef nonnull align 1 dereferenceable(7) @.str.3, i64 7, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 23 br label %21 21: ; preds = %._crit_edge.i.i12.i, %._crit_edge.i.i8.i, %._crit_edge.i.i4.i, %._crit_edge.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i12.i ], [ %.sink.sroa.gep71, %._crit_edge.i.i8.i ], [ %.sink.sroa.gep72, %._crit_edge.i.i4.i ], [ %.sink.sroa.gep73, %._crit_edge.i.i.i ] %.sink.i = phi i64 [ 7, %._crit_edge.i.i12.i ], [ 10, %._crit_edge.i.i8.i ], [ 13, %._crit_edge.i.i4.i ], [ 10, %._crit_edge.i.i.i ] - %.sink19.i.sroa.phi = phi ptr [ %.sink19.i.sroa.gep, %._crit_edge.i.i12.i ], [ %.sink19.i.sroa.gep68, %._crit_edge.i.i8.i ], [ %.sink19.i.sroa.gep69, %._crit_edge.i.i4.i ], [ %.sink19.i.sroa.gep68, %._crit_edge.i.i.i ] %22 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i, ptr %22, align 8, !tbaa !9, !alias.scope !122 - store i8 0, ptr %.sink19.i.sroa.phi, align 1, !tbaa !12, !alias.scope !122 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !12, !alias.scope !122 invoke void @_ZN6casadi11GenericTypeC1ERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(32) %6) to label %._crit_edge.i.i unwind label %85 diff --git a/bench/cmake/optimized/cmGetPropertyCommand.ll b/bench/cmake/optimized/cmGetPropertyCommand.ll index 26b57196b27..99c4ebfbd72 100644 --- a/bench/cmake/optimized/cmGetPropertyCommand.ll +++ b/bench/cmake/optimized/cmGetPropertyCommand.ll @@ -3405,34 +3405,34 @@ define internal noundef zeroext i1 @"_ZNSt17_Function_handlerIFbbEZN12_GLOBAL__N %8 = load ptr, ptr %7, align 8, !tbaa !116 %9 = getelementptr inbounds nuw i8, ptr %.val, i64 8 %10 = load ptr, ptr %9, align 8, !tbaa !117 - %.sroa.071.0.sroa.gep.i.i.i = getelementptr inbounds nuw i8, ptr %3, i64 8 - %.sroa.071.0.sroa.gep72.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 8 br i1 %5, label %._crit_edge.i.i.i.i.i, label %._crit_edge.i.i54.i.i.i ._crit_edge.i.i.i.i.i: ; preds = %2 - %.sink87.i.sroa.gep1.i.i = getelementptr inbounds nuw i8, ptr %3, i64 17 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #20 %11 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store ptr %11, ptr %3, align 8, !tbaa !11 - store i8 49, ptr %11, align 8, !tbaa !18 - store i64 1, ptr %.sroa.071.0.sroa.gep.i.i.i, align 8, !tbaa !19 + %.sink11.sroa.gep15 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %.sink11.sroa.gep18 = getelementptr inbounds nuw i8, ptr %3, i64 17 br label %.invoke.i.i.i ._crit_edge.i.i54.i.i.i: ; preds = %2 - %.sink87.i.sroa.gep.i.i = getelementptr inbounds nuw i8, ptr %4, i64 17 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #20 %12 = getelementptr inbounds nuw i8, ptr %4, i64 16 - store ptr %12, ptr %4, align 8, !tbaa !11 - store i8 48, ptr %12, align 8, !tbaa !18 - store i64 1, ptr %.sroa.071.0.sroa.gep72.i.i.i, align 8, !tbaa !19 + %.sink11.sroa.gep14 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %.sink11.sroa.gep17 = getelementptr inbounds nuw i8, ptr %4, i64 17 br label %.invoke.i.i.i .invoke.i.i.i: ; preds = %._crit_edge.i.i54.i.i.i, %._crit_edge.i.i.i.i.i - %.sink87.i.sroa.phi.i.i = phi ptr [ %.sink87.i.sroa.gep.i.i, %._crit_edge.i.i54.i.i.i ], [ %.sink87.i.sroa.gep1.i.i, %._crit_edge.i.i.i.i.i ] - %13 = phi ptr [ %12, %._crit_edge.i.i54.i.i.i ], [ %11, %._crit_edge.i.i.i.i.i ] - store i8 0, ptr %.sink87.i.sroa.phi.i.i, align 1, !tbaa !18 - %14 = icmp eq i32 %6, 4 - %.str.23..i.i.i = select i1 %14, ptr @.str.23, ptr %13 + %.sink87.i.sroa.phi.i.i = phi ptr [ %.sink11.sroa.gep, %._crit_edge.i.i54.i.i.i ], [ %.sink11.sroa.gep12, %._crit_edge.i.i.i.i.i ] + %13 = phi ptr [ %.sink11.sroa.gep14, %._crit_edge.i.i54.i.i.i ], [ %.sink11.sroa.gep15, %._crit_edge.i.i.i.i.i ] + %.sink11.sroa.phi16 = phi ptr [ %.sink11.sroa.gep17, %._crit_edge.i.i54.i.i.i ], [ %.sink11.sroa.gep18, %._crit_edge.i.i.i.i.i ] + %14 = phi ptr [ %4, %._crit_edge.i.i54.i.i.i ], [ %3, %._crit_edge.i.i.i.i.i ] + %.str.23..i.i.i = phi i8 [ 48, %._crit_edge.i.i54.i.i.i ], [ 49, %._crit_edge.i.i.i.i.i ] + store ptr %.sink11.sroa.phi, ptr %.sink11, align 8, !tbaa !11 + store i8 %.sink.i.i.i, ptr %.sink11.sroa.phi, align 8, !tbaa !18 + store i64 1, ptr %.sink11.sroa.phi13, align 8, !tbaa !19 + store i8 0, ptr %.sink11.sroa.phi16, align 1, !tbaa !18 + %11 = icmp eq i32 %6, 4 + %.str.23..i.i.i = select i1 %11, ptr @.str.23, ptr %.sink11.sroa.phi invoke void @_ZN10cmMakefile13AddDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_E(ptr noundef nonnull align 8 dereferenceable(2880) %8, ptr noundef nonnull align 8 dereferenceable(32) %10, i64 1, ptr nonnull %.str.23..i.i.i) to label %_ZN12_GLOBAL__N_111StoreResultI7cmValueEEbNS_7OutTypeER10cmMakefileRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_.exit.i.i.i unwind label %29 @@ -3446,9 +3446,10 @@ _ZN12_GLOBAL__N_111StoreResultI7cmValueEEbNS_7OutTypeER10cmMakefileRKNSt7__cxx11 br i1 %17, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i: ; preds = %.critedge.i.i.i - %18 = load i64, ptr %.sroa.071.0.sroa.gep72.i.i.i, align 8, !tbaa !19 - %19 = icmp ult i64 %18, 16 - call void @llvm.assume(i1 %19) + %18 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %19 = load i64, ptr %15, align 8, !tbaa !19 + %17 = icmp ult i64 %19, 16 + call void @llvm.assume(i1 %17) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i: ; preds = %.critedge.i.i.i @@ -3468,9 +3469,10 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i.i.i: ; preds = br i1 %24, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i62.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i61.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i62.i.i.i: ; preds = %.critedge46.critedge.i.i.i - %25 = load i64, ptr %.sroa.071.0.sroa.gep.i.i.i, align 8, !tbaa !19 - %26 = icmp ult i64 %25, 16 - call void @llvm.assume(i1 %26) + %25 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %26 = load i64, ptr %25, align 8, !tbaa !19 + %25 = icmp ult i64 %26, 16 + call void @llvm.assume(i1 %25) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit63.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i61.i.i.i: ; preds = %.critedge46.critedge.i.i.i @@ -3495,7 +3497,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit63.i.i.i: ; preds br i1 %34, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i65.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i64.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i65.i.i.i: ; preds = %31 - %35 = load i64, ptr %.sroa.071.0.sroa.gep72.i.i.i, align 8, !tbaa !19 + %35 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %35 = load i64, ptr %34, align 8, !tbaa !19 %36 = icmp ult i64 %35, 16 call void @llvm.assume(i1 %36) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit69.i.i.i @@ -3513,9 +3516,10 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i64 br i1 %42, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i68.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i67.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i68.i.i.i: ; preds = %39 - %43 = load i64, ptr %.sroa.071.0.sroa.gep.i.i.i, align 8, !tbaa !19 - %44 = icmp ult i64 %43, 16 - call void @llvm.assume(i1 %44) + %43 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %44 = load i64, ptr %43, align 8, !tbaa !19 + %45 = icmp ult i64 %44, 16 + call void @llvm.assume(i1 %45) br label %.critedge52.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i67.i.i.i: ; preds = %39 diff --git a/bench/cmake/optimized/cmGetSourceFilePropertyCommand.ll b/bench/cmake/optimized/cmGetSourceFilePropertyCommand.ll index 959653df5a8..f82bc3f09b7 100644 --- a/bench/cmake/optimized/cmGetSourceFilePropertyCommand.ll +++ b/bench/cmake/optimized/cmGetSourceFilePropertyCommand.ll @@ -933,36 +933,36 @@ define internal noundef zeroext i1 @"_ZNSt17_Function_handlerIFbbEZ30cmGetSource %.val2 = load ptr, ptr %5, align 8, !tbaa !59 %.val3 = load i8, ptr %1, align 1, !tbaa !60, !range !61, !noundef !62 %6 = trunc nuw i8 %.val3 to i1 - %.sroa.02.0.sroa.gep3.i.i.i = getelementptr inbounds nuw i8, ptr %3, i64 8 - %.sroa.02.0.sroa.gep4.i.i.i = getelementptr inbounds nuw i8, ptr %4, i64 8 br i1 %6, label %._crit_edge.i.i.i.i.i, label %._crit_edge.i.i53.i.i.i ._crit_edge.i.i.i.i.i: ; preds = %2 - %.sink19.i.sroa.gep3.i.i = getelementptr inbounds nuw i8, ptr %3, i64 17 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %3) #19 %7 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store ptr %7, ptr %3, align 8, !tbaa !11 - store i8 49, ptr %7, align 8, !tbaa !18 - store i64 1, ptr %.sroa.02.0.sroa.gep3.i.i.i, align 8, !tbaa !19 - br label %9 + %.sink12.sroa.gep16 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %.sink12.sroa.gep19 = getelementptr inbounds nuw i8, ptr %3, i64 17 + br label %7 ._crit_edge.i.i53.i.i.i: ; preds = %2 - %.sink19.i.sroa.gep.i.i = getelementptr inbounds nuw i8, ptr %4, i64 17 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #19 %8 = getelementptr inbounds nuw i8, ptr %4, i64 16 - store ptr %8, ptr %4, align 8, !tbaa !11 - store i8 48, ptr %8, align 8, !tbaa !18 - store i64 1, ptr %.sroa.02.0.sroa.gep4.i.i.i, align 8, !tbaa !19 - br label %9 - -9: ; preds = %._crit_edge.i.i53.i.i.i, %._crit_edge.i.i.i.i.i - %.sink19.i.sroa.phi.i.i = phi ptr [ %.sink19.i.sroa.gep.i.i, %._crit_edge.i.i53.i.i.i ], [ %.sink19.i.sroa.gep3.i.i, %._crit_edge.i.i.i.i.i ] - %10 = phi ptr [ %8, %._crit_edge.i.i53.i.i.i ], [ %7, %._crit_edge.i.i.i.i.i ] - store i8 0, ptr %.sink19.i.sroa.phi.i.i, align 1, !tbaa !18 - invoke void @_ZN10cmMakefile13AddDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_E(ptr noundef nonnull align 8 dereferenceable(2880) %.val2, ptr noundef nonnull align 8 dereferenceable(32) %.val, i64 1, ptr nonnull %10) - to label %_ZN10cmMakefile13AddDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE7cmValue.exit.i.i.i unwind label %25 - -_ZN10cmMakefile13AddDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE7cmValue.exit.i.i.i: ; preds = %9 + %.sink12.sroa.gep15 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %.sink12.sroa.gep18 = getelementptr inbounds nuw i8, ptr %4, i64 17 + br label %7 + +7: ; preds = %._crit_edge.i.i53.i.i.i, %._crit_edge.i.i.i.i.i + %.sink12.sroa.phi = phi ptr [ %8, %._crit_edge.i.i53.i.i.i ], [ %7, %._crit_edge.i.i.i.i.i ] + %.sink19.i.sroa.phi.i.i = phi ptr [ %.sink12.sroa.gep15, %._crit_edge.i.i53.i.i.i ], [ %.sink12.sroa.gep16, %._crit_edge.i.i.i.i.i ] + %10 = phi ptr [ %.sink12.sroa.gep18, %._crit_edge.i.i53.i.i.i ], [ %.sink12.sroa.gep19, %._crit_edge.i.i.i.i.i ] + %.sink12 = phi ptr [ %4, %._crit_edge.i.i53.i.i.i ], [ %3, %._crit_edge.i.i.i.i.i ] + %.sink.i.i.i = phi i8 [ 48, %._crit_edge.i.i53.i.i.i ], [ 49, %._crit_edge.i.i.i.i.i ] + store ptr %.sink12.sroa.phi, ptr %.sink12, align 8, !tbaa !11 + store i8 %.sink.i.i.i, ptr %.sink12.sroa.phi, align 8, !tbaa !18 + store i64 1, ptr %.sink19.i.sroa.phi.i.i, align 8, !tbaa !19 + store i8 0, ptr %.sink12.sroa.phi17, align 1, !tbaa !18 + invoke void @_ZN10cmMakefile13AddDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt17basic_string_viewIcS3_E(ptr noundef nonnull align 8 dereferenceable(2880) %.val2, ptr noundef nonnull align 8 dereferenceable(32) %.val, i64 1, ptr nonnull %.sink12.sroa.phi) + to label %_ZN10cmMakefile13AddDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE7cmValue.exit.i.i.i unwind label %24 + +_ZN10cmMakefile13AddDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE7cmValue.exit.i.i.i: ; preds = %7 br i1 %6, label %.critedge45.critedge.i.i.i, label %.critedge.i.i.i .critedge.i.i.i: ; preds = %_ZN10cmMakefile13AddDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE7cmValue.exit.i.i.i @@ -972,9 +972,10 @@ _ZN10cmMakefile13AddDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESa br i1 %13, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i.i.i: ; preds = %.critedge.i.i.i - %14 = load i64, ptr %.sroa.02.0.sroa.gep4.i.i.i, align 8, !tbaa !19 - %15 = icmp ult i64 %14, 16 - call void @llvm.assume(i1 %15) + %14 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %15 = load i64, ptr %14, align 8, !tbaa !19 + %13 = icmp ult i64 %15, 16 + call void @llvm.assume(i1 %13) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i.i.i: ; preds = %.critedge.i.i.i @@ -994,9 +995,10 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i.i.i: ; preds = br i1 %20, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i59.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i58.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i59.i.i.i: ; preds = %.critedge45.critedge.i.i.i - %21 = load i64, ptr %.sroa.02.0.sroa.gep3.i.i.i, align 8, !tbaa !19 - %22 = icmp ult i64 %21, 16 - call void @llvm.assume(i1 %22) + %21 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %22 = load i64, ptr %21, align 8, !tbaa !19 + %21 = icmp ult i64 %22, 16 + call void @llvm.assume(i1 %21) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit60.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i58.i.i.i: ; preds = %.critedge45.critedge.i.i.i @@ -1009,7 +1011,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit60.i.i.i: ; preds call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3) #19 br label %"_ZSt10__invoke_rIbRZ30cmGetSourceFilePropertyCommandRKSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS6_EER17cmExecutionStatusE3$_0JbEENSt9enable_ifIX16is_invocable_r_vIT_T0_DpT1_EESG_E4typeEOSH_DpOSI_.exit" -25: ; preds = %9 +25: ; preds = %7 %26 = landingpad { ptr, i32 } cleanup br i1 %6, label %35, label %27 @@ -1021,7 +1023,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit60.i.i.i: ; preds br i1 %30, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i62.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i61.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i62.i.i.i: ; preds = %27 - %31 = load i64, ptr %.sroa.02.0.sroa.gep4.i.i.i, align 8, !tbaa !19 + %31 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %31 = load i64, ptr %30, align 8, !tbaa !19 %32 = icmp ult i64 %31, 16 call void @llvm.assume(i1 %32) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit66.i.i.i @@ -1039,9 +1042,10 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i61 br i1 %38, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i65.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i64.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i65.i.i.i: ; preds = %35 - %39 = load i64, ptr %.sroa.02.0.sroa.gep3.i.i.i, align 8, !tbaa !19 - %40 = icmp ult i64 %39, 16 - call void @llvm.assume(i1 %40) + %39 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %40 = load i64, ptr %39, align 8, !tbaa !19 + %41 = icmp ult i64 %40, 16 + call void @llvm.assume(i1 %41) br label %.critedge51.i.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i64.i.i.i: ; preds = %35 diff --git a/bench/cmake/optimized/cmQtAutoGen.ll b/bench/cmake/optimized/cmQtAutoGen.ll index 5756260a477..eeb968966ce 100644 --- a/bench/cmake/optimized/cmQtAutoGen.ll +++ b/bench/cmake/optimized/cmQtAutoGen.ll @@ -191,13 +191,13 @@ define dso_local void @_ZN11cmQtAutoGen5ToolsB5cxx11Ebbb(ptr dead_on_unwind noal %8 = alloca %"struct.std::array", align 8 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %8) #23 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %8, i8 0, i64 48, i1 false) - %.0.sroa.gep = getelementptr inbounds nuw i8, ptr %8, i64 16 br i1 %1, label %9, label %10 9: ; preds = %4 store i64 7, ptr %8, align 8, !tbaa !4 %.sroa.423.0..sroa_idx = getelementptr inbounds nuw i8, ptr %8, i64 8 store ptr @.str.5, ptr %.sroa.423.0..sroa_idx, align 8, !tbaa !8 + %.0.sroa.gep = getelementptr inbounds nuw i8, ptr %8, i64 16 br label %10 10: ; preds = %9, %4 @@ -287,6 +287,7 @@ _ZNSt5arrayISt17basic_string_viewIcSt11char_traitsIcEELm3EE2atEm.exit: ; preds = br label %54 34: ; preds = %16 + %35 = getelementptr inbounds nuw i8, ptr %8, i64 16 call void @llvm.lifetime.start.p0(i64 72, ptr nonnull %6) #23, !noalias !17 %.sroa.01.0.copyload.i = load i64, ptr %8, align 8, !tbaa !4, !noalias !17 %.sroa.22.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %8, i64 8 @@ -303,7 +304,7 @@ _ZNSt5arrayISt17basic_string_viewIcSt11char_traitsIcEELm3EE2atEm.exit: ; preds = %37 = getelementptr inbounds nuw i8, ptr %6, i64 40 store ptr null, ptr %37, align 8, !tbaa !23, !alias.scope !27, !noalias !17 %38 = getelementptr inbounds nuw i8, ptr %6, i64 48 - %.sroa.0.0.copyload.i9 = load i64, ptr %.0.sroa.gep, align 8, !tbaa !4, !noalias !17 + %.sroa.0.0.copyload.i9 = load i64, ptr %35, align 8, !tbaa !4, !noalias !17 %.sroa.2.0..sroa_idx.i10 = getelementptr inbounds nuw i8, ptr %8, i64 24 %.sroa.2.0.copyload.i11 = load ptr, ptr %.sroa.2.0..sroa_idx.i10, align 8, !tbaa !8, !noalias !17 store i64 %.sroa.0.0.copyload.i9, ptr %38, align 8, !tbaa !4, !alias.scope !30, !noalias !17 @@ -316,7 +317,8 @@ _ZNSt5arrayISt17basic_string_viewIcSt11char_traitsIcEELm3EE2atEm.exit: ; preds = br label %54 40: ; preds = %16 - %41 = getelementptr inbounds nuw i8, ptr %8, i64 32 + %41 = getelementptr inbounds nuw i8, ptr %8, i64 16 + %43 = getelementptr inbounds nuw i8, ptr %8, i64 32 call void @llvm.lifetime.start.p0(i64 120, ptr nonnull %5) #23, !noalias !33 %.sroa.03.0.copyload.i = load i64, ptr %8, align 8, !tbaa !4, !noalias !33 %.sroa.24.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %8, i64 8 @@ -333,7 +335,7 @@ _ZNSt5arrayISt17basic_string_viewIcSt11char_traitsIcEELm3EE2atEm.exit: ; preds = %44 = getelementptr inbounds nuw i8, ptr %5, i64 40 store ptr null, ptr %44, align 8, !tbaa !23, !alias.scope !39, !noalias !33 %45 = getelementptr inbounds nuw i8, ptr %5, i64 48 - %.sroa.01.0.copyload.i13 = load i64, ptr %.0.sroa.gep, align 8, !tbaa !4, !noalias !33 + %.sroa.01.0.copyload.i13 = load i64, ptr %42, align 8, !tbaa !4, !noalias !33 %.sroa.22.0..sroa_idx.i14 = getelementptr inbounds nuw i8, ptr %8, i64 24 %.sroa.22.0.copyload.i15 = load ptr, ptr %.sroa.22.0..sroa_idx.i14, align 8, !tbaa !8, !noalias !33 store i64 %.sroa.01.0.copyload.i13, ptr %45, align 8, !tbaa !4, !alias.scope !42, !noalias !33 @@ -348,7 +350,7 @@ _ZNSt5arrayISt17basic_string_viewIcSt11char_traitsIcEELm3EE2atEm.exit: ; preds = %48 = getelementptr inbounds nuw i8, ptr %5, i64 88 store ptr null, ptr %48, align 8, !tbaa !23, !alias.scope !45, !noalias !33 %49 = getelementptr inbounds nuw i8, ptr %5, i64 96 - %.sroa.0.0.copyload.i16 = load i64, ptr %41, align 8, !tbaa !4, !noalias !33 + %.sroa.0.0.copyload.i16 = load i64, ptr %43, align 8, !tbaa !4, !noalias !33 %.sroa.2.0..sroa_idx.i17 = getelementptr inbounds nuw i8, ptr %8, i64 40 %.sroa.2.0.copyload.i18 = load ptr, ptr %.sroa.2.0..sroa_idx.i17, align 8, !tbaa !8, !noalias !33 store i64 %.sroa.0.0.copyload.i16, ptr %49, align 8, !tbaa !4, !alias.scope !48, !noalias !33 diff --git a/bench/cmake/optimized/connect.ll b/bench/cmake/optimized/connect.ll index 1c3bef541f2..85622a2b7e9 100644 --- a/bench/cmake/optimized/connect.ll +++ b/bench/cmake/optimized/connect.ll @@ -51,8 +51,8 @@ define dso_local range(i64 -9223372036854775807, -9223372036854775808) i64 @Curl br i1 %brmerge, label %7, label %37 7: ; preds = %3 - %.025.sroa.gep31 = getelementptr inbounds nuw i8, ptr %1, i64 8 %.not = icmp eq ptr %1, null + %.025.sroa.gep31 = getelementptr inbounds nuw i8, ptr %1, i64 8 br i1 %.not, label %8, label %12 8: ; preds = %7 @@ -176,7 +176,6 @@ define dso_local range(i64 -9223372036854775807, -9223372036854775808) i64 @Curl %6 = getelementptr inbounds [2 x %struct.curltime], ptr %4, i64 0, i64 %5 %7 = load i64, ptr %6, align 8, !tbaa !92 %.not = icmp eq i64 %7, 0 - %.010.sroa.gep13 = getelementptr inbounds nuw i8, ptr %2, i64 8 br i1 %.not, label %27, label %8 8: ; preds = %3 @@ -190,6 +189,7 @@ define dso_local range(i64 -9223372036854775807, -9223372036854775808) i64 @Curl br i1 %.not17, label %12, label %._crit_edge ._crit_edge: ; preds = %11 + %.010.sroa.gep13 = getelementptr inbounds nuw i8, ptr %2, i64 8 %.pre19 = load i64, ptr %2, align 8 %.pre20 = load i32, ptr %.010.sroa.gep13, align 8 br label %16 @@ -233,7 +233,6 @@ define dso_local range(i64 -9223372036854775807, -9223372036854775808) i64 @Curl .lr.ph: ; preds = %2 %6 = getelementptr inbounds nuw i8, ptr %0, i64 624 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 8 - %.010.sroa.gep13.i = getelementptr inbounds nuw i8, ptr %3, i64 8 br label %7 7: ; preds = %.lr.ph, %Curl_shutdown_timeleft.exit.thread @@ -252,10 +251,6 @@ define dso_local range(i64 -9223372036854775807, -9223372036854775808) i64 @Curl %.not18 = icmp eq ptr %.030, null br i1 %.not18, label %13, label %.thread -.thread: ; preds = %12 - %.010.sroa.gep13.i41 = getelementptr inbounds nuw i8, ptr %.030, i64 8 - br label %17 - 13: ; preds = %12 %14 = call { i64, i32 } @Curl_now() #10 %15 = extractvalue { i64, i32 } %14, 0 @@ -267,24 +262,24 @@ define dso_local range(i64 -9223372036854775807, -9223372036854775808) i64 @Curl %.not.i = icmp eq i64 %.pre, 0 br i1 %.not.i, label %Curl_shutdown_timeleft.exit.thread, label %17 -17: ; preds = %.thread, %13 - %.010.sroa.gep13.i44 = phi ptr [ %.010.sroa.gep13.i41, %.thread ], [ %.010.sroa.gep13.i, %13 ] - %.243 = phi ptr [ %.030, %.thread ], [ %3, %13 ] - %18 = phi i64 [ %11, %.thread ], [ %.pre, %13 ] - %.pre3442 = phi i32 [ %.pre3435, %.thread ], [ %.pre34.pre, %13 ] - %.not16.i = icmp eq i32 %.pre3442, 0 +17: ; preds = %12, %13 + %.010.sroa.gep13.i44 = phi ptr [ %3, %13 ], [ %.030, %12 ] + %.243 = phi i64 [ %.pre, %13 ], [ %11, %12 ] + %18 = phi i32 [ %.pre34.pre, %13 ], [ %.pre3435, %12 ] + %.pre3442 = icmp eq i32 %.pre3441, 0 br i1 %.not16.i, label %._crit_edge, label %Curl_shutdown_timeleft.exit.thread23 Curl_shutdown_timeleft.exit.thread23: ; preds = %17 - %.pre19.i = load i64, ptr %.243, align 8 - %.pre20.i = load i32, ptr %.010.sroa.gep13.i44, align 8 - %19 = zext i32 %.pre3442 to i64 - %20 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %21 = load i32, ptr %20, align 8 - %22 = call i64 @Curl_timediff(i64 %.pre19.i, i32 %.pre20.i, i64 %18, i32 %21) #10 - %.not18.i = icmp eq i64 %22, %19 - %23 = sub nsw i64 %19, %22 - %spec.select27 = select i1 %.not18.i, i64 -1, i64 %23 + %.pre19.i = getelementptr inbounds nuw i8, ptr %.242, i64 8 + %.pre20.i = load i64, ptr %.010.sroa.gep13.i44, align 8 + %19 = load i32, ptr %.pre20.i, align 8 + %20 = zext i32 %18 to i64 + %21 = getelementptr inbounds nuw i8, ptr %10, i64 8 + %22 = load i32, ptr %19, align 8 + %.not18.i = call i64 @Curl_timediff(i64 %.pre19.i, i32 %19, i64 %.243, i32 %20) #10 + %23 = icmp eq i64 %21, %22 + %spec.select27 = sub nsw i64 %18, %.not18.i + %spec.select27 = select i1 %.not18.i, i64 -1, i64 %22 %.not20 = icmp eq i64 %.01429, 0 %24 = call i64 @llvm.smin.i64(i64 %spec.select27, i64 %.01429) %spec.select = select i1 %.not20, i64 %spec.select27, i64 %24 @@ -295,7 +290,7 @@ Curl_shutdown_timeleft.exit.thread: ; preds = %13, %Curl_shutdown_ %.pre3436 = phi i32 [ %.pre3435, %7 ], [ %.pre33, %Curl_shutdown_timeleft.exit.thread23 ], [ %.pre34.pre, %13 ] %25 = phi i32 [ %8, %7 ], [ %.pre33, %Curl_shutdown_timeleft.exit.thread23 ], [ %.pre34.pre, %13 ] %.115 = phi i64 [ %.01429, %7 ], [ %spec.select, %Curl_shutdown_timeleft.exit.thread23 ], [ %.01429, %13 ] - %.1 = phi ptr [ %.030, %7 ], [ %.243, %Curl_shutdown_timeleft.exit.thread23 ], [ %3, %13 ] + %.1 = phi ptr [ %.030, %7 ], [ %.242, %Curl_shutdown_timeleft.exit.thread23 ], [ %3, %13 ] %26 = icmp ne i32 %25, 0 %27 = and i1 %26, %9 br i1 %27, label %7, label %._crit_edge, !llvm.loop !93 diff --git a/bench/cvc5/optimized/extended_rewrite.ll b/bench/cvc5/optimized/extended_rewrite.ll index 8850c77a3f7..21bb4ff7c00 100644 --- a/bench/cvc5/optimized/extended_rewrite.ll +++ b/bench/cvc5/optimized/extended_rewrite.ll @@ -24846,11 +24846,6 @@ define hidden void @_ZNK4cvc58internal6theory11quantifiers16ExtendedRewriter22ex call void @_ZN4cvc58internal6theory7strings11ArithEntailC1EPNS1_8RewriterEb(ptr noundef nonnull align 8 dereferenceable(128) %42, ptr noundef %226, i1 noundef zeroext true) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %43) #24 %227 = load ptr, ptr %225, align 8, !tbaa !142 - %.05382315.sroa.gep2419 = getelementptr inbounds nuw i8, ptr %63, i64 24 - %.05392316.sroa.gep2421 = getelementptr inbounds nuw i8, ptr %63, i64 24 - %indvars.iv2351.sroa.gep2422 = getelementptr inbounds nuw i8, ptr %63, i64 24 - %indvars.iv.sroa.gep2423 = getelementptr inbounds nuw i8, ptr %58, i64 24 - %.05382315.sroa.gep2426 = getelementptr inbounds nuw i8, ptr %58, i64 24 invoke void @_ZN4cvc58internal6theory7strings13StringsEntailC1EPNS1_8RewriterERNS2_11ArithEntailE(ptr noundef nonnull align 8 dereferenceable(24) %43, ptr noundef %227, ptr noundef nonnull align 8 dereferenceable(128) %42) to label %228 unwind label %336 @@ -25771,6 +25766,7 @@ _ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit914: ; preds = %628, %632, %638 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %58) #24 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %58, i8 0, i64 48, i1 false) %642 = getelementptr inbounds nuw i8, ptr %58, i64 48 + %indvars.iv.sroa.gep2423 = getelementptr inbounds nuw i8, ptr %58, i64 24 br label %.preheader2158 .preheader: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit921 @@ -25779,6 +25775,10 @@ _ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit914: ; preds = %628, %632, %638 %645 = getelementptr inbounds nuw i8, ptr %64, i64 16 %646 = getelementptr inbounds nuw i8, ptr %67, i64 8 %647 = getelementptr inbounds nuw i8, ptr %67, i64 16 + %.05382315.sroa.gep2419 = getelementptr inbounds nuw i8, ptr %63, i64 24 + %.05382315.sroa.gep2426 = getelementptr inbounds nuw i8, ptr %58, i64 24 + %.05392316.sroa.gep2421 = getelementptr inbounds nuw i8, ptr %63, i64 24 + %indvars.iv2351.sroa.gep2422 = getelementptr inbounds nuw i8, ptr %63, i64 24 br label %700 648: ; preds = %626, %600 @@ -46397,9 +46397,6 @@ define hidden noundef zeroext i1 @_ZNK4cvc58internal6theory11quantifiers16Extend %32 = load i64, ptr %31, align 8 %33 = trunc i64 %32 to i32 %34 = and i32 %33, 1023 - %indvars.iv.sroa.gep = getelementptr inbounds nuw i8, ptr %9, i64 8 - %indvars.iv.sroa.gep584 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %indvars.iv438.sroa.gep = getelementptr inbounds nuw i8, ptr %9, i64 8 switch i32 %34, label %1153 [ i32 22, label %35 i32 5, label %108 @@ -46781,7 +46778,12 @@ _ZN4cvc58internal12NodeTemplateILb1EEaSERKS2_.exit: ; preds = %186, %181, %163, store ptr %207, ptr %.ptr, align 8, !tbaa !17 %.add = add nuw nsw i64 %.idx, 8 %208 = icmp eq i64 %.add, 16 - br i1 %208, label %.preheader328, label %195 + br i1 %208, label %.preheader328.preheader, label %195 + +.preheader328.preheader: ; preds = %206 + %indvars.iv.sroa.gep = getelementptr inbounds nuw i8, ptr %9, i64 8 + %indvars.iv.sroa.gep584 = getelementptr inbounds nuw i8, ptr %9, i64 8 + br label %.preheader328 .preheader329: ; preds = %.body151, %.preheader329 %209 = phi ptr [ %210, %.preheader329 ], [ %.ptr, %.body151 ] @@ -46790,11 +46792,11 @@ _ZN4cvc58internal12NodeTemplateILb1EEaSERKS2_.exit: ; preds = %186, %181, %163, %211 = icmp eq ptr %210, %9 br i1 %211, label %.loopexit326, label %.preheader329 -.preheader328: ; preds = %206, %733 - %.not383 = phi i1 [ false, %733 ], [ true, %206 ] - %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %733 ], [ %9, %206 ] - %indvars.iv.sroa.phi583 = phi ptr [ %indvars.iv.sroa.gep584, %733 ], [ %9, %206 ] - %indvars.iv = phi i64 [ 1, %733 ], [ 0, %206 ] +.preheader328: ; preds = %.preheader328.preheader, %733 + %.not383 = phi i1 [ false, %733 ], [ true, %.preheader328.preheader ] + %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %733 ], [ %9, %.preheader328.preheader ] + %indvars.iv.sroa.phi583 = phi ptr [ %indvars.iv.sroa.gep584, %733 ], [ %9, %.preheader328.preheader ] + %indvars.iv = phi i64 [ 1, %733 ], [ 0, %.preheader328.preheader ] call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #24 call void @llvm.experimental.noalias.scope.decl(metadata !863) %212 = load ptr, ptr %1, align 8, !tbaa !17, !noalias !863 @@ -47835,12 +47837,16 @@ _ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit236: ; preds = %_ZN4cvc58internal1 br label %1148 733: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit193, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit236, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit216 - br i1 %.not383, label %.preheader328, label %.preheader, !llvm.loop !893 + br i1 %.not383, label %.preheader328, label %.preheader.preheader, !llvm.loop !893 + +.preheader.preheader: ; preds = %733 + %indvars.iv438.sroa.gep = getelementptr inbounds nuw i8, ptr %9, i64 8 + br label %.preheader -.preheader: ; preds = %733, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit297 - %.not384 = phi i1 [ false, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit297 ], [ true, %733 ] - %indvars.iv438.sroa.phi = phi ptr [ %indvars.iv438.sroa.gep, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit297 ], [ %9, %733 ] - %indvars.iv438 = phi i64 [ 1, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit297 ], [ 0, %733 ] +.preheader: ; preds = %.preheader.preheader, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit297 + %.not384 = phi i1 [ false, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit297 ], [ true, %.preheader.preheader ] + %indvars.iv438.sroa.phi = phi ptr [ %indvars.iv438.sroa.gep, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit297 ], [ %9, %.preheader.preheader ] + %indvars.iv438 = phi i64 [ 1, %_ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit297 ], [ 0, %.preheader.preheader ] %734 = load ptr, ptr %indvars.iv438.sroa.phi, align 8, !tbaa !17 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20) #24 %735 = trunc nuw nsw i64 %indvars.iv438 to i32 diff --git a/bench/cvc5/optimized/theory_sep.ll b/bench/cvc5/optimized/theory_sep.ll index c80a5462955..82440185f9f 100644 --- a/bench/cvc5/optimized/theory_sep.ll +++ b/bench/cvc5/optimized/theory_sep.ll @@ -51247,8 +51247,6 @@ define hidden void @_ZN4cvc58internal6theory3sep9TheorySep13eqNotifyMergeENS0_12 %10 = trunc nuw nsw i64 %9 to i32 %11 = and i32 %10, 1048575 %12 = icmp samesign ult i32 %11, 1048574 - %.03482.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 24 - %.03388.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 24 br i1 %12, label %13, label %18, !prof !172 13: ; preds = %3 @@ -51423,6 +51421,7 @@ _ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit48: ; preds = %81, %85, %91 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5) #26 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(48) %5, i8 0, i64 48, i1 false) %95 = getelementptr inbounds nuw i8, ptr %5, i64 48 + %.03482.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 24 br label %.preheader79 96: ; preds = %_ZN4cvc58internal12NodeTemplateILb1EEC2ERKNS1_ILb0EEE.exit46 @@ -51449,7 +51448,11 @@ _ZN4cvc58internal12NodeTemplateILb1EED2Ev.exit48: ; preds = %81, %85, %91 br label %106 ._crit_edge: ; preds = %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE9push_backERKS3_.exit, %.preheader79 - br i1 %98, label %.preheader79, label %.preheader78, !llvm.loop !1118 + br i1 %98, label %.preheader79, label %.preheader78.preheader, !llvm.loop !1118 + +.preheader78.preheader: ; preds = %._crit_edge + %.03388.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 24 + br label %.preheader78 106: ; preds = %.lr.ph, %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE9push_backERKS3_.exit %.sroa.073.081 = phi ptr [ %101, %.lr.ph ], [ %163, %_ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE9push_backERKS3_.exit ] @@ -51574,9 +51577,9 @@ _ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE9push_backERKS3_.exit: %.not77 = icmp eq ptr %163, %103 br i1 %.not77, label %._crit_edge, label %106 -.preheader78: ; preds = %._crit_edge, %._crit_edge87 - %164 = phi i1 [ false, %._crit_edge87 ], [ true, %._crit_edge ] - %.03388.sroa.phi = phi ptr [ %.03388.sroa.gep, %._crit_edge87 ], [ %5, %._crit_edge ] +.preheader78: ; preds = %.preheader78.preheader, %._crit_edge87 + %164 = phi i1 [ false, %._crit_edge87 ], [ true, %.preheader78.preheader ] + %.03388.sroa.phi = phi ptr [ %.03388.sroa.gep, %._crit_edge87 ], [ %5, %.preheader78.preheader ] %.idx40 = select i1 %164, i64 0, i64 80 %165 = getelementptr inbounds nuw i8, ptr %80, i64 %.idx40 %166 = load ptr, ptr %.03388.sroa.phi, align 8, !tbaa !185 diff --git a/bench/cvc5/optimized/theory_strings_preprocess.ll b/bench/cvc5/optimized/theory_strings_preprocess.ll index c4e8f9b5a04..6d310615835 100644 --- a/bench/cvc5/optimized/theory_strings_preprocess.ll +++ b/bench/cvc5/optimized/theory_strings_preprocess.ll @@ -1710,9 +1710,6 @@ define hidden void @_ZN4cvc58internal6theory7strings17StringsPreprocess6reduceEN %1435 = trunc nuw nsw i64 %1434 to i32 %1436 = and i32 %1435, 1048575 %1437 = icmp samesign ult i32 %1436, 1048574 - %indvars.iv.sroa.gep = getelementptr inbounds nuw i8, ptr %1395, i64 8 - %indvars.iv3653.sroa.gep = getelementptr inbounds nuw i8, ptr %1395, i64 8 - %indvars.iv.sroa.gep3680 = getelementptr inbounds nuw i8, ptr %1394, i64 8 br i1 %1437, label %1438, label %1443, !prof !33 1438: ; preds = %5 @@ -28879,7 +28876,12 @@ _ZN4cvc58internal8RationalD2Ev.exit3274: ; preds = %10418, %10416 10741: ; preds = %10740 %.add850 = add nuw nsw i64 %.idx849, 8 %10742 = icmp eq i64 %.add850, 16 - br i1 %10742, label %.preheader3634, label %10740 + br i1 %10742, label %.preheader3634.preheader, label %10740 + +.preheader3634.preheader: ; preds = %10741 + %indvars.iv.sroa.gep = getelementptr inbounds nuw i8, ptr %1395, i64 8 + %indvars.iv.sroa.gep3680 = getelementptr inbounds nuw i8, ptr %1394, i64 8 + br label %.preheader3634 10743: ; preds = %10798 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1413) #24 @@ -28973,11 +28975,11 @@ _ZN4cvc58internal8RationalD2Ev.exit3274: ; preds = %10418, %10416 %10775 = icmp eq ptr %10774, %1395 br i1 %10775, label %.loopexit3632, label %.preheader3635 -.preheader3634: ; preds = %10741, %10798 - %10776 = phi i1 [ false, %10798 ], [ true, %10741 ] - %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %10798 ], [ %1395, %10741 ] - %indvars.iv.sroa.phi3679 = phi ptr [ %indvars.iv.sroa.gep3680, %10798 ], [ %1394, %10741 ] - %indvars.iv = phi i32 [ 1, %10798 ], [ 0, %10741 ] +.preheader3634: ; preds = %.preheader3634.preheader, %10798 + %10776 = phi i1 [ false, %10798 ], [ true, %.preheader3634.preheader ] + %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %10798 ], [ %1395, %.preheader3634.preheader ] + %indvars.iv.sroa.phi3679 = phi ptr [ %indvars.iv.sroa.gep3680, %10798 ], [ %1394, %.preheader3634.preheader ] + %indvars.iv = phi i32 [ 1, %10798 ], [ 0, %.preheader3634.preheader ] call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1396) #24 invoke void @_ZNK4cvc58internal12NodeTemplateILb1EEixEi(ptr dead_on_unwind nonnull writable sret(%"class.cvc5::internal::NodeTemplate") align 8 %1396, ptr noundef nonnull align 8 dereferenceable(8) %1, i32 noundef %indvars.iv) to label %10777 unwind label %10799 @@ -29173,7 +29175,11 @@ _ZN4cvc58internal8RationalD2Ev.exit3274: ; preds = %10418, %10416 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %1415) #24 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %1415, i8 0, i64 24, i1 false) invoke void @_ZNSt6vectorIN4cvc58internal12NodeTemplateILb1EEESaIS3_EE9push_backERKS3_(ptr noundef nonnull align 8 dereferenceable(24) %1415, ptr noundef nonnull align 8 dereferenceable(8) %1384) - to label %.preheader3633 unwind label %10839 + to label %.preheader3633.preheader unwind label %10839 + +.preheader3633.preheader: ; preds = %10829 + %indvars.iv3653.sroa.gep = getelementptr inbounds nuw i8, ptr %1395, i64 8 + br label %.preheader3633 10830: ; preds = %10846 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1419) #24 @@ -29212,10 +29218,10 @@ _ZN4cvc58internal8RationalD2Ev.exit3274: ; preds = %10418, %10416 cleanup br label %10910 -.preheader3633: ; preds = %10829, %10846 - %10841 = phi i1 [ false, %10846 ], [ true, %10829 ] - %indvars.iv3653.sroa.phi = phi ptr [ %indvars.iv3653.sroa.gep, %10846 ], [ %1395, %10829 ] - %indvars.iv3653 = phi i64 [ 0, %10846 ], [ 1, %10829 ] +.preheader3633: ; preds = %.preheader3633.preheader, %10846 + %10841 = phi i1 [ false, %10846 ], [ true, %.preheader3633.preheader ] + %indvars.iv3653.sroa.phi = phi ptr [ %indvars.iv3653.sroa.gep, %10846 ], [ %1395, %.preheader3633.preheader ] + %indvars.iv3653 = phi i64 [ 0, %10846 ], [ 1, %.preheader3633.preheader ] call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %1416) #24 %10842 = load ptr, ptr %indvars.iv3653.sroa.phi, align 8, !tbaa !30 store ptr %10842, ptr %1417, align 8, !tbaa !52 diff --git a/bench/darktable/optimized/canon_600.ll b/bench/darktable/optimized/canon_600.ll index bd1e0942dbf..444684e8cd0 100644 --- a/bench/darktable/optimized/canon_600.ll +++ b/bench/darktable/optimized/canon_600.ll @@ -230,7 +230,6 @@ define void @_ZN6LibRaw17canon_600_auto_wbEv(ptr noundef nonnull align 8 capture %10 = fadd reassoc nsz arcp contract afn double %9, 5.000000e-01 %11 = fptosi double %10 to i32 %12 = icmp slt i32 %11, 10 - %indvars.iv119.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 8 br i1 %12, label %17, label %13 13: ; preds = %1 @@ -270,10 +269,14 @@ define void @_ZN6LibRaw17canon_600_auto_wbEv(ptr noundef nonnull align 8 capture %37 = getelementptr inbounds nuw i8, ptr %0, i64 544 %38 = load i32, ptr %37, align 8 %39 = shl nuw nsw i32 %.178, 2 - br i1 %29, label %.preheader95.us, label %._crit_edge106 + br i1 %29, label %.preheader95.us.preheader, label %._crit_edge106 + +.preheader95.us.preheader: ; preds = %.preheader95.lr.ph + %indvars.iv119.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 8 + br label %.preheader95.us -.preheader95.us: ; preds = %.preheader95.lr.ph, %._crit_edge.us - %.076105.us = phi i32 [ %160, %._crit_edge.us ], [ 14, %.preheader95.lr.ph ] +.preheader95.us: ; preds = %.preheader95.us.preheader, %._crit_edge.us + %.076105.us = phi i32 [ %160, %._crit_edge.us ], [ 14, %.preheader95.us.preheader ] br label %.preheader94.us 40: ; preds = %.preheader92.us diff --git a/bench/diesel-rs/optimized/24idv9j1r56qvsu.ll b/bench/diesel-rs/optimized/24idv9j1r56qvsu.ll index 7dda7781900..2c78c872872 100644 --- a/bench/diesel-rs/optimized/24idv9j1r56qvsu.ll +++ b/bench/diesel-rs/optimized/24idv9j1r56qvsu.ll @@ -5211,12 +5211,12 @@ define hidden void @"_ZN97_$LT$diesel..mysql..connection..MysqlConnection$u20$as call void @_ZN6diesel5mysql10connection14prepared_query17h29f76e2e1e1c34c8E.llvm.10866059451781706916(ptr noalias noundef nonnull sret({ i64, [4 x i64] }) align 8 captures(none) dereferenceable(40) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %9, ptr noalias noundef nonnull align 8 dereferenceable(48) %10, ptr noalias noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 1 %1, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.19b0594117fdc755ecdf9550998cf895.21.llvm.10866059451781706916) %12 = load i64, ptr %7, align 8, !range !45, !noundef !5 %trunc = trunc nuw i64 %12 to i1 - %.sroa.5.0.i.idx.sroa.gep = getelementptr inbounds nuw i8, ptr %8, i64 8 %13 = getelementptr inbounds nuw i8, ptr %7, i64 8 br i1 %trunc, label %.thread, label %14 .thread: ; preds = %3 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.5.0.i.idx.sroa.gep, ptr noundef nonnull align 8 dereferenceable(32) %13, i64 32, i1 false) + %14 = getelementptr inbounds nuw i8, ptr %8, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull align 8 dereferenceable(32) %13, i64 32, i1 false) store i64 -9223372036854775806, ptr %8, align 8 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) @@ -5235,19 +5235,20 @@ define hidden void @"_ZN97_$LT$diesel..mysql..connection..MysqlConnection$u20$as store ptr %9, ptr %6, align 8 call void @llvm.experimental.noalias.scope.decl(metadata !766) call void @llvm.experimental.noalias.scope.decl(metadata !758) - br i1 %15, label %16, label %22 + br i1 %15, label %16, label %24 16: ; preds = %.thread, %14 - %17 = load i64, ptr %.sroa.5.0.i.idx.sroa.gep, align 8, !range !19, !alias.scope !758, !noalias !761, !noundef !5 - %18 = icmp eq i64 %17, -9223372036854775808 - %19 = getelementptr inbounds nuw i8, ptr %8, i64 32 - %20 = load i8, ptr %19, align 8, !range !501, !alias.scope !758, !noalias !761 - %21 = icmp eq i8 %20, 3 - %or.cond.i = select i1 %18, i1 %21, i1 false - br i1 %or.cond.i, label %28, label %22 - -22: ; preds = %28, %16, %14 - %spec.select.i = phi ptr [ %.sroa.5.0.i.idx.sroa.gep, %28 ], [ %.sroa.5.0.i.idx.sroa.gep, %16 ], [ null, %14 ] + %17 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %18 = load i64, ptr %17, align 8, !range !19, !alias.scope !758, !noalias !761, !noundef !5 + %19 = icmp eq i64 %19, -9223372036854775808 + %20 = getelementptr inbounds nuw i8, ptr %8, i64 32 + %21 = load i8, ptr %20, align 8, !range !501, !alias.scope !758, !noalias !761 + %or.cond.i = icmp eq i8 %21, 3 + %or.cond.i = select i1 %20, i1 %23, i1 false + br i1 %or.cond.i, label %30, label %24 + +24: ; preds = %28, %16, %14 + %spec.select.i = phi ptr [ %18, %30 ], [ %18, %17 ], [ null, %15 ] call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4), !noalias !767 %23 = getelementptr inbounds nuw i8, ptr %4, i64 16 store ptr %6, ptr %23, align 8, !noalias !767 @@ -5260,14 +5261,14 @@ define hidden void @"_ZN97_$LT$diesel..mysql..connection..MysqlConnection$u20$as %.not.i = icmp eq ptr %26, null br i1 %.not.i, label %_ZN6diesel5mysql10connection33update_transaction_manager_status17hec6d296a1485f03aE.llvm.10866059451781706916.exit, label %27 -27: ; preds = %22 +27: ; preds = %24 invoke void @"_ZN158_$LT$alloc..boxed..Box$LT$dyn$u20$diesel..connection..instrumentation..Instrumentation$GT$$u20$as$u20$diesel..connection..instrumentation..Instrumentation$GT$19on_connection_event17hc64949ebb273533aE"(ptr noalias noundef nonnull align 8 dereferenceable(16) %1, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %4) to label %_ZN6diesel5mysql10connection33update_transaction_manager_status17hec6d296a1485f03aE.llvm.10866059451781706916.exit unwind label %30 28: ; preds = %16 %29 = getelementptr inbounds nuw i8, ptr %1, i64 72 invoke void @_ZN6diesel10connection19transaction_manager24TransactionManagerStatus43set_requires_rollback_maybe_up_to_top_level17h679da8766f9e3fabE(ptr noalias noundef nonnull align 4 dereferenceable(8) %29, i1 noundef zeroext true) - to label %22 unwind label %30, !noalias !773 + to label %24 unwind label %30, !noalias !773 30: ; preds = %27, %28 %31 = landingpad { ptr, i32 } @@ -5284,7 +5285,7 @@ define hidden void @"_ZN97_$LT$diesel..mysql..connection..MysqlConnection$u20$as 34: ; preds = %30 resume { ptr, i32 } %31 -_ZN6diesel5mysql10connection33update_transaction_manager_status17hec6d296a1485f03aE.llvm.10866059451781706916.exit: ; preds = %22, %27 +_ZN6diesel5mysql10connection33update_transaction_manager_status17hec6d296a1485f03aE.llvm.10866059451781706916.exit: ; preds = %24, %27 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4), !noalias !767 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(56) %8, i64 56, i1 false), !alias.scope !774, !noalias !775 call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %8) diff --git a/bench/duckdb/optimized/bignum.ll b/bench/duckdb/optimized/bignum.ll index 919b735ea8e..234dce7f7d4 100644 --- a/bench/duckdb/optimized/bignum.ll +++ b/bench/duckdb/optimized/bignum.ll @@ -2984,17 +2984,14 @@ define hidden range(i32 -16, 1) i32 @mbedtls_mpi_mul_mpi(ptr noundef captures(ad %7 = getelementptr inbounds nuw i8, ptr %5, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %7, i8 0, i64 16, i1 false) %8 = icmp eq ptr %0, %1 - %.039.sroa.phi58.sroa.gep = getelementptr inbounds nuw i8, ptr %2, i64 8 - %.039.sroa.phi58.sroa.gep84 = getelementptr inbounds nuw i8, ptr %2, i64 16 - %.039.sroa.phi58.sroa.gep85 = getelementptr inbounds nuw i8, ptr %5, i64 16 %.040.sroa.phi48.sroa.gep = getelementptr inbounds nuw i8, ptr %1, i64 8 %.040.sroa.phi48.sroa.gep88 = getelementptr inbounds nuw i8, ptr %1, i64 16 - %.040.sroa.phi48.sroa.gep89 = getelementptr inbounds nuw i8, ptr %4, i64 16 br i1 %8, label %9, label %11 9: ; preds = %3 %10 = call i32 @mbedtls_mpi_copy(ptr noundef nonnull %4, ptr noundef %1) %.not = icmp eq i32 %10, 0 + %.040.sroa.phi48.sroa.gep89 = getelementptr inbounds nuw i8, ptr %4, i64 16 br i1 %.not, label %11, label %mbedtls_mpi_grow.exit 11: ; preds = %9, %3 @@ -3002,11 +2999,14 @@ define hidden range(i32 -16, 1) i32 @mbedtls_mpi_mul_mpi(ptr noundef captures(ad %.040.sroa.phi48.sroa.phi87 = phi ptr [ %.040.sroa.phi48.sroa.gep88, %3 ], [ %.040.sroa.phi48.sroa.gep89, %9 ] %.040.sroa.phi48 = phi ptr [ %1, %3 ], [ %4, %9 ] %12 = icmp eq ptr %0, %2 + %.039.sroa.phi58.sroa.gep = getelementptr inbounds nuw i8, ptr %2, i64 8 + %.039.sroa.phi58.sroa.gep84 = getelementptr inbounds nuw i8, ptr %2, i64 16 br i1 %12, label %13, label %15 13: ; preds = %11 %14 = call i32 @mbedtls_mpi_copy(ptr noundef nonnull %5, ptr noundef %2) %.not69 = icmp eq i32 %14, 0 + %.039.sroa.phi58.sroa.gep85 = getelementptr inbounds nuw i8, ptr %5, i64 16 br i1 %.not69, label %15, label %mbedtls_mpi_grow.exit 15: ; preds = %13, %11 @@ -3176,34 +3176,36 @@ mbedtls_mpi_grow.exit.sink.split: ; preds = %._crit_edge115, %70 mbedtls_mpi_grow.exit: ; preds = %mbedtls_mpi_grow.exit.sink.split, %48, %35, %._crit_edge104, %13, %9 %.038 = phi i32 [ %10, %9 ], [ %14, %13 ], [ -16, %._crit_edge104 ], [ -16, %35 ], [ -16, %48 ], [ 0, %mbedtls_mpi_grow.exit.sink.split ] - %74 = load ptr, ptr %.039.sroa.phi58.sroa.gep85, align 8, !tbaa !11 - %.not.i79 = icmp eq ptr %74, null - br i1 %.not.i79, label %mbedtls_mpi_free.exit, label %75 - -75: ; preds = %mbedtls_mpi_grow.exit - %76 = load i64, ptr %7, align 8, !tbaa !12 - %77 = shl i64 %76, 3 - call void @mbedtls_platform_zeroize(ptr noundef nonnull %74, i64 noundef %77) - %78 = load ptr, ptr %.039.sroa.phi58.sroa.gep85, align 8, !tbaa !11 - call void @free(ptr noundef %78) #15 + %74 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %.not.i79 = load ptr, ptr %74, align 8, !tbaa !11 + %.not.i79 = icmp eq ptr %75, null + br i1 %.not.i79, label %mbedtls_mpi_free.exit, label %76 + +76:; preds = %mbedtls_mpi_grow.exit + %77 = load i64, ptr %7, align 8, !tbaa !12 + %78 = shl i64 %77, 3 + call void @mbedtls_platform_zeroize(ptr noundef nonnull %.not.i79, i64 noundef %78) + %79 = load ptr, ptr %74, align 8, !tbaa !11 + call void @free(ptr noundef %79) #15 br label %mbedtls_mpi_free.exit -mbedtls_mpi_free.exit: ; preds = %mbedtls_mpi_grow.exit, %75 +mbedtls_mpi_free.exit: ; preds = %mbedtls_mpi_grow.exit, %76 store i32 1, ptr %5, align 8, !tbaa !3 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %7, i8 0, i64 16, i1 false) - %79 = load ptr, ptr %.040.sroa.phi48.sroa.gep89, align 8, !tbaa !11 - %.not.i80 = icmp eq ptr %79, null - br i1 %.not.i80, label %mbedtls_mpi_free.exit81, label %80 - -80: ; preds = %mbedtls_mpi_free.exit - %81 = load i64, ptr %6, align 8, !tbaa !12 - %82 = shl i64 %81, 3 - call void @mbedtls_platform_zeroize(ptr noundef nonnull %79, i64 noundef %82) - %83 = load ptr, ptr %.040.sroa.phi48.sroa.gep89, align 8, !tbaa !11 - call void @free(ptr noundef %83) #15 + %79 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %.not.i80 = load ptr, ptr %79, align 8, !tbaa !11 + %.not.i80 = icmp eq ptr %81, null + br i1 %.not.i80, label %mbedtls_mpi_free.exit81, label %82 + +82:; preds = %mbedtls_mpi_free.exit + %82 = load i64, ptr %6, align 8, !tbaa !12 + %84 = shl i64 %82, 3 + call void @mbedtls_platform_zeroize(ptr noundef nonnull %.not.i80, i64 noundef %84) + %85 = load ptr, ptr %80, align 8, !tbaa !11 + call void @free(ptr noundef %85) #15 br label %mbedtls_mpi_free.exit81 -mbedtls_mpi_free.exit81: ; preds = %mbedtls_mpi_free.exit, %80 +mbedtls_mpi_free.exit81: ; preds = %mbedtls_mpi_free.exit, %82 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5) #15 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) #15 ret i32 %.038 diff --git a/bench/eastl/optimized/BenchmarkBitset.ll b/bench/eastl/optimized/BenchmarkBitset.ll index 863352b9f26..d2077db84a7 100644 --- a/bench/eastl/optimized/BenchmarkBitset.ll +++ b/bench/eastl/optimized/BenchmarkBitset.ll @@ -138,7 +138,6 @@ entry: %eaBitset1500 = alloca %"class.eastl::bitset.8", align 8 tail call void (ptr, ...) @_ZN2EA8UnitTest6ReportEPKcz(ptr noundef nonnull @.str) call void @_ZN2EA4StdC9StopwatchC1Eib(ptr noundef nonnull align 8 dereferenceable(24) %stopwatch1, i32 noundef 1, i1 noundef zeroext false) - %__i.05.i.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %stdBitset75, i64 8 call void @_ZN2EA4StdC9StopwatchC1Eib(ptr noundef nonnull align 8 dereferenceable(24) %stopwatch2, i32 noundef 1, i1 noundef zeroext false) store i64 0, ptr %stdBitset15, align 8 store i64 0, ptr %eaBitset15, align 8 @@ -155,6 +154,7 @@ entry: %tv_nsec.i.i.i.i61 = getelementptr inbounds nuw i8, ptr %ts.i.i.i.i54, i64 8 %tv_nsec.i.i.i.i83 = getelementptr inbounds nuw i8, ptr %ts.i.i.i.i76, i64 8 %tv_nsec.i.i.i.i106 = getelementptr inbounds nuw i8, ptr %ts.i.i.i.i99, i64 8 + %arrayidx.i.i.i.i = getelementptr inbounds nuw i8, ptr %stdBitset75, i64 8 %tv_nsec.i.i.i.i128 = getelementptr inbounds nuw i8, ptr %ts.i.i.i.i121, i64 8 %arrayidx.i.i = getelementptr inbounds nuw i8, ptr %eaBitset75, i64 8 %tv_nsec.i.i.i.i151 = getelementptr inbounds nuw i8, ptr %ts.i.i.i.i144, i64 8 @@ -439,7 +439,7 @@ _ZN2EA4StdC9Stopwatch7RestartEv.exit.i109: ; preds = %_ZN2EA4StdC9Stopwat for.body.i111: ; preds = %for.body.i111, %_ZN2EA4StdC9Stopwatch7RestartEv.exit.i109 %i.04.i112 = phi i32 [ 0, %_ZN2EA4StdC9Stopwatch7RestartEv.exit.i109 ], [ %inc.i113, %for.body.i111 ] store i64 -1, ptr %stdBitset75, align 8 - store i64 2047, ptr %__i.05.i.i.i.sroa.gep, align 8 + store i64 2047, ptr %arrayidx.i.i.i.i, align 8 call void (...) @_ZN9Benchmark9DoNothingEz(ptr noundef nonnull align 8 dereferenceable(16) %stdBitset75) %inc.i113 = add nuw nsw i32 %i.04.i112, 1 %exitcond.not.i114 = icmp eq i32 %inc.i113, 100000 @@ -826,9 +826,9 @@ _ZN2EA4StdC9Stopwatch7RestartEv.exit.i294: ; preds = %_ZN2EA4StdC9Stopwat for.body.i297: ; preds = %for.body.i297, %_ZN2EA4StdC9Stopwatch7RestartEv.exit.i294 %i.04.i298 = phi i32 [ 0, %_ZN2EA4StdC9Stopwatch7RestartEv.exit.i294 ], [ %inc.i300, %for.body.i297 ] - %62 = load i64, ptr %__i.05.i.i.i.sroa.gep, align 8 + %62 = load i64, ptr %arrayidx.i.i.i.i, align 8 %or.i.i.i299 = or i64 %62, 512 - store i64 %or.i.i.i299, ptr %__i.05.i.i.i.sroa.gep, align 8 + store i64 %or.i.i.i299, ptr %arrayidx.i.i.i.i, align 8 call void (...) @_ZN9Benchmark9DoNothingEz(ptr noundef nonnull align 8 dereferenceable(16) %stdBitset75) %inc.i300 = add nuw nsw i32 %i.04.i298, 1 %exitcond.not.i301 = icmp eq i32 %inc.i300, 100000 @@ -1601,10 +1601,10 @@ for.body.i668: ; preds = %for.body.i668, %_ZN %142 = load i64, ptr %stdBitset75, align 8 %not.i.i.i670 = xor i64 %142, -1 store i64 %not.i.i.i670, ptr %stdBitset75, align 8 - %143 = load i64, ptr %__i.05.i.i.i.sroa.gep, align 8 + %143 = load i64, ptr %arrayidx.i.i.i.i, align 8 %not.i.c.i.i = and i64 %143, 2047 %and.i.i.i.i671 = xor i64 %not.i.c.i.i, 2047 - store i64 %and.i.i.i.i671, ptr %__i.05.i.i.i.sroa.gep, align 8 + store i64 %and.i.i.i.i671, ptr %arrayidx.i.i.i.i, align 8 call void (...) @_ZN9Benchmark9DoNothingEz(ptr noundef nonnull align 8 dereferenceable(16) %stdBitset75) %inc.i672 = add nuw nsw i32 %i.04.i669, 1 %exitcond.not.i673 = icmp eq i32 %inc.i672, 100000 @@ -2472,7 +2472,7 @@ for.body.i.i.preheader.i1071: ; preds = %_ZNKSt6bitsetILm75E for.body.i.i.i1073: ; preds = %for.body.i.i.i1073, %for.body.i.i.preheader.i1071 %cmp.i.i3.i = phi i1 [ false, %for.body.i.i.i1073 ], [ true, %for.body.i.i.preheader.i1071 ] - %__i.05.i.i.i.sroa.phi = phi ptr [ %__i.05.i.i.i.sroa.gep, %for.body.i.i.i1073 ], [ %stdBitset75, %for.body.i.i.preheader.i1071 ] + %__i.05.i.i.i.sroa.phi = phi ptr [ %arrayidx.i.i.i.i, %for.body.i.i.i1073 ], [ %stdBitset75, %for.body.i.i.preheader.i1071 ] %__result.04.i.i.i = phi i64 [ %add.i.i.i, %for.body.i.i.i1073 ], [ 0, %for.body.i.i.preheader.i1071 ] %258 = load i64, ptr %__i.05.i.i.i.sroa.phi, align 8 %259 = call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %258) @@ -2938,12 +2938,12 @@ _ZN2EA4StdC9Stopwatch7RestartEv.exit.i1277: ; preds = %_ZN2EA4StdC9Stopwat for.body12.i.i.preheader.i: ; preds = %for.body12.i.i.preheader.i, %_ZN2EA4StdC9Stopwatch7RestartEv.exit.i1277 %i.03.i1279 = phi i32 [ 0, %_ZN2EA4StdC9Stopwatch7RestartEv.exit.i1277 ], [ %inc.i1282, %for.body12.i.i.preheader.i ] %312 = load i64, ptr %stdBitset75, align 8 - %313 = load i64, ptr %__i.05.i.i.i.sroa.gep, align 8 + %313 = load i64, ptr %arrayidx.i.i.i.i, align 8 %or.i.i.i1280 = call i64 @llvm.fshl.i64(i64 %313, i64 %312, i64 63) store i64 %or.i.i.i1280, ptr %stdBitset75, align 8 %shr27.i.i.i = lshr i64 %313, 1 %and.i.i.i.i1281 = and i64 %shr27.i.i.i, 2047 - store i64 %and.i.i.i.i1281, ptr %__i.05.i.i.i.sroa.gep, align 8 + store i64 %and.i.i.i.i1281, ptr %arrayidx.i.i.i.i, align 8 call void (...) @_ZN9Benchmark9DoNothingEz(ptr noundef nonnull %temp.i1267) %inc.i1282 = add nuw nsw i32 %i.03.i1279, 1 %exitcond.not.i1283 = icmp eq i32 %inc.i1282, 100000 diff --git a/bench/egg-rs/optimized/3r699r9ar80tn3x1.ll b/bench/egg-rs/optimized/3r699r9ar80tn3x1.ll index ffd1d1ab042..322376f550b 100644 --- a/bench/egg-rs/optimized/3r699r9ar80tn3x1.ll +++ b/bench/egg-rs/optimized/3r699r9ar80tn3x1.ll @@ -27,9 +27,6 @@ define internal noundef zeroext i1 @"_ZN58_$LT$alloc..string..String$u20$as$u20$ %.sroa.0.i = alloca i32, align 4 tail call void @llvm.experimental.noalias.scope.decl(metadata !4) %3 = icmp ult i32 %1, 128 - %.sroa.0.i.1.i.1.i.1.gep.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 1 - %.sroa.0.i.2.i.2.i.2.gep1.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 2 - %.sroa.0.i.3.i.3.i.3.gep2.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 3 br i1 %3, label %49, label %4 4: ; preds = %2 @@ -47,6 +44,7 @@ define internal noundef zeroext i1 @"_ZN58_$LT$alloc..string..String$u20$as$u20$ %10 = trunc nuw i32 %9 to i8 %11 = or disjoint i8 %10, -64 store i8 %11, ptr %.sroa.0.i, align 4, !alias.scope !7, !noalias !4 + %.sroa.0.i.1.gep6.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 1 br label %_ZN4core4char7methods15encode_utf8_raw17he8dc2a367b21200bE.exit.i 12: ; preds = %6 @@ -60,6 +58,7 @@ define internal noundef zeroext i1 @"_ZN58_$LT$alloc..string..String$u20$as$u20$ %19 = or disjoint i8 %18, -128 %.sroa.0.i.1.i.1.i.1.gep.sroa_idx8 = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 1 store i8 %19, ptr %.sroa.0.i.1.i.1.i.1.gep.sroa_idx8, align 1, !alias.scope !7, !noalias !4 + %.sroa.0.i.2.gep5.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 2 br label %_ZN4core4char7methods15encode_utf8_raw17he8dc2a367b21200bE.exit.i 20: ; preds = %6 @@ -80,11 +79,12 @@ define internal noundef zeroext i1 @"_ZN58_$LT$alloc..string..String$u20$as$u20$ %32 = or disjoint i8 %31, -128 %.sroa.0.i.2.i.2.i.2.gep1.sroa_idx9 = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 2 store i8 %32, ptr %.sroa.0.i.2.i.2.i.2.gep1.sroa_idx9, align 2, !alias.scope !7, !noalias !4 + %.sroa.0.i.3.gep.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 3 br label %_ZN4core4char7methods15encode_utf8_raw17he8dc2a367b21200bE.exit.i _ZN4core4char7methods15encode_utf8_raw17he8dc2a367b21200bE.exit.i: ; preds = %20, %12, %8 - %.sink.i.sroa.phi.i = phi ptr [ %.sroa.0.i.1.i.1.i.1.gep.sroa_idx, %8 ], [ %.sroa.0.i.2.i.2.i.2.gep1.sroa_idx, %12 ], [ %.sroa.0.i.3.i.3.i.3.gep2.sroa_idx, %20 ] - %33 = phi i64 [ 2, %8 ], [ 3, %12 ], [ 4, %20 ] + %.sink.i.sroa.phi.i = phi ptr [ %.sroa.0.i.3.gep.sroa_idx, %20 ], [ %.sroa.0.i.2.gep5.sroa_idx, %12 ], [ %.sroa.0.i.1.gep6.sroa_idx, %8 ] + %33 = phi i64 [ 4, %20 ], [ 3, %12 ], [ 2, %8 ] %34 = trunc i32 %1 to i8 %35 = and i8 %34, 63 %36 = or disjoint i8 %35, -128 diff --git a/bench/faiss/optimized/pq4_fast_scan_search_1.ll b/bench/faiss/optimized/pq4_fast_scan_search_1.ll index 71be585dab1..aa961ea8d5a 100644 --- a/bench/faiss/optimized/pq4_fast_scan_search_1.ll +++ b/bench/faiss/optimized/pq4_fast_scan_search_1.ll @@ -7019,10 +7019,11 @@ define internal fastcc void @_ZN5faiss12_GLOBAL__N_123kernel_accumulate_blockILi call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(128) %58, i8 0, i64 128, i1 false) %59 = add nsw i32 %0, -2 %60 = icmp sgt i32 %0, 2 - %indvars.iv266.sroa.gep274 = getelementptr inbounds nuw i8, ptr %25, i64 128 - %indvars.iv263.sroa.gep275 = getelementptr inbounds nuw i8, ptr %25, i64 128 + br i1 %60, label %.lr.ph.preheader, label %.preheader240 + +.lr.ph.preheader: ; preds = %.preheader243.preheader %indvars.iv260.sroa.gep276 = getelementptr inbounds nuw i8, ptr %25, i64 128 - br i1 %60, label %.lr.ph, label %.preheader240 + br label %.lr.ph .preheader240: ; preds = %.critedge, %.preheader243.preheader %.097.lcssa = phi ptr [ %2, %.preheader243.preheader ], [ %62, %.critedge ] @@ -7030,12 +7031,13 @@ define internal fastcc void @_ZN5faiss12_GLOBAL__N_123kernel_accumulate_blockILi call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %.sroa.0269) %61 = getelementptr inbounds nuw i8, ptr %4, i64 4 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(32) %.sroa.0269, ptr noundef nonnull align 1 dereferenceable(32) %.097.lcssa, i64 32, i1 false) + %indvars.iv263.sroa.gep275 = getelementptr inbounds nuw i8, ptr %25, i64 128 br label %.critedge105 -.lr.ph: ; preds = %.preheader243.preheader, %.critedge - %.093250 = phi i32 [ %63, %.critedge ], [ 0, %.preheader243.preheader ] - %.096249 = phi ptr [ %148, %.critedge ], [ %1, %.preheader243.preheader ] - %.097248 = phi ptr [ %62, %.critedge ], [ %2, %.preheader243.preheader ] +.lr.ph: ; preds = %.lr.ph.preheader, %.critedge + %.093250 = phi i32 [ %63, %.critedge ], [ 0, %.lr.ph.preheader ] + %.096249 = phi ptr [ %148, %.critedge ], [ %1, %.lr.ph.preheader ] + %.097248 = phi ptr [ %62, %.critedge ], [ %2, %.lr.ph.preheader ] br label %.critedge103 .critedge: ; preds = %_ZN5faiss12simd16uint16pLERKS0_.exit142 @@ -7328,6 +7330,7 @@ _ZN5faiss12simd16uint16pLERKS0_.exit142: ; preds = %141 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %.sroa.0269) %149 = getelementptr inbounds nuw i8, ptr %3, i64 12 %150 = getelementptr inbounds nuw i8, ptr %3, i64 140 + %indvars.iv266.sroa.gep274 = getelementptr inbounds nuw i8, ptr %25, i64 128 br label %263 .critedge105: ; preds = %.preheader240, %_ZN5faiss12simd16uint16pLERKS0_.exit199 @@ -10749,25 +10752,25 @@ define internal fastcc void @_ZN5faiss12_GLOBAL__N_123kernel_accumulate_blockILi call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(128) %60, i8 0, i64 128, i1 false) %61 = add nsw i32 %0, -2 %62 = icmp sgt i32 %0, 2 - %indvars.iv274.sroa.gep286 = getelementptr inbounds nuw i8, ptr %42, i64 32 - %indvars.iv277.sroa.gep287 = getelementptr inbounds nuw i8, ptr %42, i64 32 + br i1 %62, label %.lr.ph.preheader, label %.preheader245 + +.lr.ph.preheader: ; preds = %.critedge.preheader %indvars.iv268.sroa.gep288 = getelementptr inbounds nuw i8, ptr %26, i64 32 %indvars.iv271.sroa.gep289 = getelementptr inbounds nuw i8, ptr %26, i64 32 %indvars.iv271.sroa.gep292 = getelementptr inbounds nuw i8, ptr %25, i64 128 - %indvars.iv277.sroa.gep295 = getelementptr inbounds nuw i8, ptr %25, i64 128 - %indvars.iv280.sroa.gep296 = getelementptr inbounds nuw i8, ptr %25, i64 128 - br i1 %62, label %.lr.ph, label %.preheader245 + br label %.lr.ph .preheader245: ; preds = %84, %.critedge.preheader %.097.lcssa = phi ptr [ %2, %.critedge.preheader ], [ %64, %84 ] %.096.lcssa = phi ptr [ %1, %.critedge.preheader ], [ %85, %84 ] call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %42) #19 + %indvars.iv274.sroa.gep286 = getelementptr inbounds nuw i8, ptr %42, i64 32 br label %.preheader244 -.lr.ph: ; preds = %.critedge.preheader, %84 - %.093257 = phi i32 [ %86, %84 ], [ 0, %.critedge.preheader ] - %.096256 = phi ptr [ %85, %84 ], [ %1, %.critedge.preheader ] - %.097255 = phi ptr [ %64, %84 ], [ %2, %.critedge.preheader ] +.lr.ph: ; preds = %.lr.ph.preheader, %84 + %.093257 = phi i32 [ %86, %84 ], [ 0, %.lr.ph.preheader ] + %.096256 = phi ptr [ %85, %84 ], [ %1, %.lr.ph.preheader ] + %.097255 = phi ptr [ %64, %84 ], [ %2, %.lr.ph.preheader ] call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %26) #19 br label %.preheader247 @@ -11148,6 +11151,8 @@ _ZNK5faiss11simd32uint8anERKNS_10simd256bitE.exit154: ; preds = %160 _ZNK5faiss11simd32uint8anERKNS_10simd256bitE.exit158: ; preds = %167 %174 = getelementptr inbounds nuw i8, ptr %4, i64 4 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %17) #19, !noalias !1572 + %indvars.iv277.sroa.gep287 = getelementptr inbounds nuw i8, ptr %42, i64 32 + %indvars.iv277.sroa.gep295 = getelementptr inbounds nuw i8, ptr %25, i64 128 br label %177 .preheader: ; preds = %_ZN5faiss12simd16uint16pLERKS0_.exit203 @@ -11157,6 +11162,7 @@ _ZNK5faiss11simd32uint8anERKNS_10simd256bitE.exit158: ; preds = %167 call void @llvm.lifetime.end.p0(i64 64, ptr nonnull %42) #19 %175 = getelementptr inbounds nuw i8, ptr %3, i64 12 %176 = getelementptr inbounds nuw i8, ptr %3, i64 140 + %indvars.iv280.sroa.gep296 = getelementptr inbounds nuw i8, ptr %25, i64 128 br label %.critedge111 177: ; preds = %_ZNK5faiss11simd32uint8anERKNS_10simd256bitE.exit158, %_ZN5faiss12simd16uint16pLERKS0_.exit203 @@ -11706,22 +11712,24 @@ define internal fastcc void @_ZN5faiss12_GLOBAL__N_123kernel_accumulate_blockILi call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(128) %62, i8 0, i64 128, i1 false) %63 = add nsw i32 %0, -2 %64 = icmp sgt i32 %0, 2 - %indvars.iv283.sroa.gep301 = getelementptr inbounds nuw i8, ptr %42, i64 32 - %indvars.iv286.sroa.gep302 = getelementptr inbounds nuw i8, ptr %42, i64 32 + br i1 %64, label %.lr.ph.preheader, label %.preheader243 + +.lr.ph.preheader: ; preds = %.preheader247.preheader %indvars.iv274.sroa.gep303 = getelementptr inbounds nuw i8, ptr %26, i64 32 %indvars.iv277.sroa.gep304 = getelementptr inbounds nuw i8, ptr %26, i64 32 - br i1 %64, label %.lr.ph, label %.preheader243 + br label %.lr.ph .preheader243: ; preds = %67, %.preheader247.preheader %.097.lcssa = phi ptr [ %2, %.preheader247.preheader ], [ %66, %67 ] %.096.lcssa = phi ptr [ %1, %.preheader247.preheader ], [ %91, %67 ] call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %42) #19 + %indvars.iv283.sroa.gep301 = getelementptr inbounds nuw i8, ptr %42, i64 32 br label %.preheader242 -.lr.ph: ; preds = %.preheader247.preheader, %67 - %.093258 = phi i32 [ %68, %67 ], [ 0, %.preheader247.preheader ] - %.096257 = phi ptr [ %91, %67 ], [ %1, %.preheader247.preheader ] - %.097256 = phi ptr [ %66, %67 ], [ %2, %.preheader247.preheader ] +.lr.ph: ; preds = %.lr.ph.preheader, %67 + %.093258 = phi i32 [ %68, %67 ], [ 0, %.lr.ph.preheader ] + %.096257 = phi ptr [ %91, %67 ], [ %1, %.lr.ph.preheader ] + %.097256 = phi ptr [ %66, %67 ], [ %2, %.lr.ph.preheader ] call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %26) #19 br label %.preheader245 @@ -12039,6 +12047,7 @@ _ZN5faiss12simd16uint16pLERKS0_.exit144: ; preds = %151 .preheader241.preheader: ; preds = %.preheader242 %160 = getelementptr inbounds nuw i8, ptr %4, i64 4 + %indvars.iv286.sroa.gep302 = getelementptr inbounds nuw i8, ptr %42, i64 32 br label %.preheader241 .preheader240: ; preds = %183 @@ -15049,19 +15058,22 @@ define internal fastcc void @_ZN5faiss12_GLOBAL__N_123kernel_accumulate_blockILi %32 = getelementptr inbounds nuw i8, ptr %12, i64 128 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(128) %32, i8 0, i64 128, i1 false) %33 = icmp sgt i32 %0, 0 - %indvars.iv27.sroa.gep31 = getelementptr inbounds nuw i8, ptr %12, i64 128 + br i1 %33, label %.lr.ph.preheader, label %.preheader + +.lr.ph.preheader: ; preds = %.preheader14.preheader %indvars.iv24.sroa.gep32 = getelementptr inbounds nuw i8, ptr %12, i64 128 - br i1 %33, label %.lr.ph, label %.preheader + br label %.lr.ph .preheader: ; preds = %.critedge, %.preheader14.preheader %34 = getelementptr inbounds nuw i8, ptr %3, i64 12 %35 = getelementptr inbounds nuw i8, ptr %3, i64 140 + %indvars.iv27.sroa.gep31 = getelementptr inbounds nuw i8, ptr %12, i64 128 br label %123 -.lr.ph: ; preds = %.preheader14.preheader, %.critedge - %.09321 = phi i32 [ %37, %.critedge ], [ 0, %.preheader14.preheader ] - %.09620 = phi ptr [ %122, %.critedge ], [ %1, %.preheader14.preheader ] - %.09719 = phi ptr [ %36, %.critedge ], [ %2, %.preheader14.preheader ] +.lr.ph: ; preds = %.lr.ph.preheader, %.critedge + %.09321 = phi i32 [ %37, %.critedge ], [ 0, %.lr.ph.preheader ] + %.09620 = phi ptr [ %122, %.critedge ], [ %1, %.lr.ph.preheader ] + %.09719 = phi ptr [ %36, %.critedge ], [ %2, %.lr.ph.preheader ] br label %.critedge103 .critedge: ; preds = %_ZN5faiss12simd16uint16pLERKS0_.exit140 @@ -17032,21 +17044,24 @@ define internal fastcc void @_ZN5faiss12_GLOBAL__N_123kernel_accumulate_blockILi %33 = getelementptr inbounds nuw i8, ptr %12, i64 128 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(128) %33, i8 0, i64 128, i1 false) %34 = icmp sgt i32 %0, 0 + br i1 %34, label %.lr.ph.preheader, label %.preheader + +.lr.ph.preheader: ; preds = %.critedge.preheader %indvars.iv27.sroa.gep36 = getelementptr inbounds nuw i8, ptr %13, i64 32 %indvars.iv30.sroa.gep37 = getelementptr inbounds nuw i8, ptr %13, i64 32 %indvars.iv30.sroa.gep40 = getelementptr inbounds nuw i8, ptr %12, i64 128 - %indvars.iv33.sroa.gep41 = getelementptr inbounds nuw i8, ptr %12, i64 128 - br i1 %34, label %.lr.ph, label %.preheader + br label %.lr.ph .preheader: ; preds = %58, %.critedge.preheader %35 = getelementptr inbounds nuw i8, ptr %3, i64 12 %36 = getelementptr inbounds nuw i8, ptr %3, i64 140 + %indvars.iv33.sroa.gep41 = getelementptr inbounds nuw i8, ptr %12, i64 128 br label %.critedge107 -.lr.ph: ; preds = %.critedge.preheader, %58 - %.09324 = phi i32 [ %60, %58 ], [ 0, %.critedge.preheader ] - %.09623 = phi ptr [ %59, %58 ], [ %1, %.critedge.preheader ] - %.09722 = phi ptr [ %38, %58 ], [ %2, %.critedge.preheader ] +.lr.ph: ; preds = %.lr.ph.preheader, %58 + %.09324 = phi i32 [ %60, %58 ], [ 0, %.lr.ph.preheader ] + %.09623 = phi ptr [ %59, %58 ], [ %1, %.lr.ph.preheader ] + %.09722 = phi ptr [ %38, %58 ], [ %2, %.lr.ph.preheader ] call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #19 br label %.preheader14 @@ -17542,19 +17557,22 @@ define internal fastcc void @_ZN5faiss12_GLOBAL__N_123kernel_accumulate_blockILi %35 = getelementptr inbounds nuw i8, ptr %12, i64 384 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(128) %35, i8 0, i64 128, i1 false) %36 = icmp sgt i32 %0, 0 + br i1 %36, label %.lr.ph.preheader, label %.preheader12 + +.lr.ph.preheader: ; preds = %.preheader16.preheader %indvars.iv35.sroa.gep53 = getelementptr inbounds nuw i8, ptr %13, i64 32 %indvars.iv38.sroa.gep54 = getelementptr inbounds nuw i8, ptr %13, i64 32 - br i1 %36, label %.lr.ph, label %.preheader12 + br label %.lr.ph .preheader12: ; preds = %41, %.preheader16.preheader %37 = getelementptr inbounds nuw i8, ptr %3, i64 12 %38 = getelementptr inbounds nuw i8, ptr %3, i64 268 br label %.preheader -.lr.ph: ; preds = %.preheader16.preheader, %41 - %.09327 = phi i32 [ %42, %41 ], [ 0, %.preheader16.preheader ] - %.09626 = phi ptr [ %65, %41 ], [ %1, %.preheader16.preheader ] - %.09725 = phi ptr [ %40, %41 ], [ %2, %.preheader16.preheader ] +.lr.ph: ; preds = %.lr.ph.preheader, %41 + %.09327 = phi i32 [ %42, %41 ], [ 0, %.lr.ph.preheader ] + %.09626 = phi ptr [ %65, %41 ], [ %1, %.lr.ph.preheader ] + %.09725 = phi ptr [ %40, %41 ], [ %2, %.lr.ph.preheader ] call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %13) #19 br label %.preheader14 diff --git a/bench/flatbuffers/optimized/idl_gen_kotlin.ll b/bench/flatbuffers/optimized/idl_gen_kotlin.ll index 86212939a24..90beb8db621 100644 --- a/bench/flatbuffers/optimized/idl_gen_kotlin.ll +++ b/bench/flatbuffers/optimized/idl_gen_kotlin.ll @@ -28505,11 +28505,6 @@ define linkonce_odr dso_local void @_ZZNK11flatbuffers6kotlin15KotlinGenerator21 %13 = tail call noundef i64 @_ZN11flatbuffers10InlineSizeERKNS_4TypeE(ptr noundef nonnull align 8 dereferenceable(26) %12) call void @_ZN11flatbuffers11NumToStringImEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, i64 noundef %13) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) #26 - %.sink34.i.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 20 - %.sink34.i.sroa.gep84 = getelementptr inbounds nuw i8, ptr %5, i64 19 - %.sink34.i.sroa.gep85 = getelementptr inbounds nuw i8, ptr %5, i64 18 - %.sink34.i.sroa.gep86 = getelementptr inbounds nuw i8, ptr %5, i64 17 - %.sink34.i.sroa.gep87 = getelementptr inbounds nuw i8, ptr %5, i64 21 invoke void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull @.str.141, ptr noundef nonnull align 8 dereferenceable(32) %3) to label %14 unwind label %51 @@ -28564,50 +28559,57 @@ define linkonce_odr dso_local void @_ZZNK11flatbuffers6kotlin15KotlinGenerator21 %28 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %28, ptr %5, align 8, !tbaa !16, !alias.scope !733 store i32 1714433584, ptr %28, align 8, !alias.scope !733 + %.sink.sroa.gep95 = getelementptr inbounds nuw i8, ptr %5, i64 20 br label %35 ._crit_edge.i.i4.i: ; preds = %25 %29 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %29, ptr %5, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %29, ptr noundef nonnull align 1 dereferenceable(3) @.str.184, i64 3, i1 false) + %.sink.sroa.gep94 = getelementptr inbounds nuw i8, ptr %5, i64 19 br label %35 ._crit_edge.i.i8.i: ; preds = %25 %30 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %30, ptr %5, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %30, ptr noundef nonnull align 1 dereferenceable(5) @.str.26, i64 5, i1 false) + %.sink.sroa.gep93 = getelementptr inbounds nuw i8, ptr %5, i64 21 br label %35 ._crit_edge.i.i12.i: ; preds = %25, %25, %25, %25 %31 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %31, ptr %5, align 8, !tbaa !16, !alias.scope !733 store i8 48, ptr %31, align 8, !tbaa !15, !alias.scope !733 + %.sink.sroa.gep92 = getelementptr inbounds nuw i8, ptr %5, i64 17 br label %35 ._crit_edge.i.i16.i: ; preds = %25, %25, %25, %25 %32 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %32, ptr %5, align 8, !tbaa !16, !alias.scope !733 store i16 30000, ptr %32, align 8, !alias.scope !733 + %.sink.sroa.gep91 = getelementptr inbounds nuw i8, ptr %5, i64 18 br label %35 ._crit_edge.i.i20.i: ; preds = %25 %33 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %33, ptr %5, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %33, ptr noundef nonnull align 1 dereferenceable(3) @.str.186, i64 3, i1 false) + %.sink.sroa.gep90 = getelementptr inbounds nuw i8, ptr %5, i64 19 br label %35 ._crit_edge.i.i24.i: ; preds = %25 %34 = getelementptr inbounds nuw i8, ptr %5, i64 16 store ptr %34, ptr %5, align 8, !tbaa !16, !alias.scope !733 store i32 1819047278, ptr %34, align 8, !alias.scope !733 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 20 br label %35 35: ; preds = %._crit_edge.i.i24.i, %._crit_edge.i.i20.i, %._crit_edge.i.i16.i, %._crit_edge.i.i12.i, %._crit_edge.i.i8.i, %._crit_edge.i.i4.i, %._crit_edge.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i24.i ], [ %.sink.sroa.gep90, %._crit_edge.i.i20.i ], [ %.sink.sroa.gep91, %._crit_edge.i.i16.i ], [ %.sink.sroa.gep92, %._crit_edge.i.i12.i ], [ %.sink.sroa.gep93, %._crit_edge.i.i8.i ], [ %.sink.sroa.gep94, %._crit_edge.i.i4.i ], [ %.sink.sroa.gep95, %._crit_edge.i.i.i ] %.sink.i = phi i64 [ 4, %._crit_edge.i.i24.i ], [ 3, %._crit_edge.i.i20.i ], [ 2, %._crit_edge.i.i16.i ], [ 1, %._crit_edge.i.i12.i ], [ 5, %._crit_edge.i.i8.i ], [ 3, %._crit_edge.i.i4.i ], [ 4, %._crit_edge.i.i.i ] - %.sink34.i.sroa.phi = phi ptr [ %.sink34.i.sroa.gep, %._crit_edge.i.i24.i ], [ %.sink34.i.sroa.gep84, %._crit_edge.i.i20.i ], [ %.sink34.i.sroa.gep85, %._crit_edge.i.i16.i ], [ %.sink34.i.sroa.gep86, %._crit_edge.i.i12.i ], [ %.sink34.i.sroa.gep87, %._crit_edge.i.i8.i ], [ %.sink34.i.sroa.gep84, %._crit_edge.i.i4.i ], [ %.sink34.i.sroa.gep, %._crit_edge.i.i.i ] %36 = getelementptr inbounds nuw i8, ptr %5, i64 8 store i64 %.sink.i, ptr %36, align 8, !tbaa !14, !alias.scope !733 - store i8 0, ptr %.sink34.i.sroa.phi, align 1, !tbaa !15, !alias.scope !733 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !15, !alias.scope !733 br label %.critedge .critedge: ; preds = %35, %.noexc diff --git a/bench/flatbuffers/optimized/idl_gen_kotlin_kmp.ll b/bench/flatbuffers/optimized/idl_gen_kotlin_kmp.ll index 716445d0ffc..b25d7e1fd8d 100644 --- a/bench/flatbuffers/optimized/idl_gen_kotlin_kmp.ll +++ b/bench/flatbuffers/optimized/idl_gen_kotlin_kmp.ll @@ -8850,13 +8850,6 @@ define linkonce_odr dso_local void @_ZNK11flatbuffers6kotlin18KotlinKMPGenerator %15 = getelementptr inbounds nuw i8, ptr %1, i64 160 %16 = load i8, ptr %15, align 8, !tbaa !324, !range !168, !noundef !169 %17 = trunc nuw i8 %16 to i1 - %.sink79.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 19 - %.sink79.i.sroa.gep121 = getelementptr inbounds nuw i8, ptr %6, i64 28 - %.sink79.i.sroa.gep122 = getelementptr inbounds nuw i8, ptr %6, i64 27 - %.sink79.i.sroa.gep123 = getelementptr inbounds nuw i8, ptr %6, i64 22 - %.sink79.i.sroa.gep125 = getelementptr inbounds nuw i8, ptr %6, i64 21 - %.sink79.i.sroa.gep127 = getelementptr inbounds nuw i8, ptr %6, i64 20 - %.sink79.i.sroa.gep134 = getelementptr inbounds nuw i8, ptr %6, i64 23 br i1 %17, label %196, label %18 18: ; preds = %3 @@ -8897,104 +8890,120 @@ define linkonce_odr dso_local void @_ZNK11flatbuffers6kotlin18KotlinKMPGenerator %26 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %26, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %26, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink.sroa.gep150 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %.noexc.i ._crit_edge.i.i4.i: ; preds = %18 %27 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %27, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %27, ptr noundef nonnull align 1 dereferenceable(7) @.str.60, i64 7, i1 false) + %.sink.sroa.gep149 = getelementptr inbounds nuw i8, ptr %6, i64 23 br label %.noexc.i ._crit_edge.i.i8.i: ; preds = %18 %28 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %28, ptr %6, align 8, !tbaa !16, !alias.scope !328 store i32 1702132034, ptr %28, align 8, !alias.scope !328 + %.sink.sroa.gep148 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %.noexc.i ._crit_edge.i.i12.i: ; preds = %18 %29 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %29, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %29, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink.sroa.gep147 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %.noexc.i ._crit_edge.i.i16.i: ; preds = %18 %30 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %30, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %30, ptr noundef nonnull align 1 dereferenceable(5) @.str.62, i64 5, i1 false) + %.sink.sroa.gep146 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %.noexc.i ._crit_edge.i.i20.i: ; preds = %18 %31 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %31, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %31, ptr noundef nonnull align 1 dereferenceable(6) @.str.63, i64 6, i1 false) + %.sink.sroa.gep145 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %.noexc.i ._crit_edge.i.i24.i: ; preds = %18 %32 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %32, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %32, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink.sroa.gep144 = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %.noexc.i ._crit_edge.i.i28.i: ; preds = %18 %33 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %33, ptr %6, align 8, !tbaa !16, !alias.scope !328 store i32 1953384789, ptr %33, align 8, !alias.scope !328 + %.sink.sroa.gep143 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %.noexc.i ._crit_edge.i.i32.i: ; preds = %18 %34 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %34, ptr %6, align 8, !tbaa !16, !alias.scope !328 store i32 1735290700, ptr %34, align 8, !alias.scope !328 + %.sink.sroa.gep142 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %.noexc.i ._crit_edge.i.i36.i: ; preds = %18 %35 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %35, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %35, ptr noundef nonnull align 1 dereferenceable(5) @.str.67, i64 5, i1 false) + %.sink.sroa.gep141 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %.noexc.i ._crit_edge.i.i40.i: ; preds = %18 %36 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %36, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %36, ptr noundef nonnull align 1 dereferenceable(5) @.str.68, i64 5, i1 false) + %.sink.sroa.gep140 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %.noexc.i ._crit_edge.i.i44.i: ; preds = %18 %37 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %37, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %37, ptr noundef nonnull align 1 dereferenceable(6) @.str.69, i64 6, i1 false) + %.sink.sroa.gep139 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %.noexc.i ._crit_edge.i.i48.i: ; preds = %18, %18 %38 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %38, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %38, ptr noundef nonnull align 1 dereferenceable(6) @.str.70, i64 6, i1 false) + %.sink.sroa.gep138 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %.noexc.i ._crit_edge.i.i52.i: ; preds = %18 %39 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %39, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(11) %39, ptr noundef nonnull align 1 dereferenceable(11) @.str.71, i64 11, i1 false) + %.sink.sroa.gep137 = getelementptr inbounds nuw i8, ptr %6, i64 27 br label %.noexc.i ._crit_edge.i.i56.i: ; preds = %18, %18 %40 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %40, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %40, ptr noundef nonnull align 1 dereferenceable(12) @.str.72, i64 12, i1 false) + %.sink.sroa.gep136 = getelementptr inbounds nuw i8, ptr %6, i64 28 br label %.noexc.i ._crit_edge.i.i60.i: ; preds = %18 %41 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %41, ptr %6, align 8, !tbaa !16, !alias.scope !328 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %41, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %.noexc.i .noexc.i: ; preds = %._crit_edge.i.i60.i, %._crit_edge.i.i56.i, %._crit_edge.i.i52.i, %._crit_edge.i.i48.i, %._crit_edge.i.i44.i, %._crit_edge.i.i40.i, %._crit_edge.i.i36.i, %._crit_edge.i.i32.i, %._crit_edge.i.i28.i, %._crit_edge.i.i24.i, %._crit_edge.i.i20.i, %._crit_edge.i.i16.i, %._crit_edge.i.i12.i, %._crit_edge.i.i8.i, %._crit_edge.i.i4.i, %._crit_edge.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i60.i ], [ %.sink.sroa.gep136, %._crit_edge.i.i56.i ], [ %.sink.sroa.gep137, %._crit_edge.i.i52.i ], [ %.sink.sroa.gep138, %._crit_edge.i.i48.i ], [ %.sink.sroa.gep139, %._crit_edge.i.i44.i ], [ %.sink.sroa.gep140, %._crit_edge.i.i40.i ], [ %.sink.sroa.gep141, %._crit_edge.i.i36.i ], [ %.sink.sroa.gep142, %._crit_edge.i.i32.i ], [ %.sink.sroa.gep143, %._crit_edge.i.i28.i ], [ %.sink.sroa.gep144, %._crit_edge.i.i24.i ], [ %.sink.sroa.gep145, %._crit_edge.i.i20.i ], [ %.sink.sroa.gep146, %._crit_edge.i.i16.i ], [ %.sink.sroa.gep147, %._crit_edge.i.i12.i ], [ %.sink.sroa.gep148, %._crit_edge.i.i8.i ], [ %.sink.sroa.gep149, %._crit_edge.i.i4.i ], [ %.sink.sroa.gep150, %._crit_edge.i.i.i ] %.sink.i = phi i64 [ 3, %._crit_edge.i.i60.i ], [ 12, %._crit_edge.i.i56.i ], [ 11, %._crit_edge.i.i52.i ], [ 6, %._crit_edge.i.i48.i ], [ 6, %._crit_edge.i.i44.i ], [ 5, %._crit_edge.i.i40.i ], [ 5, %._crit_edge.i.i36.i ], [ 4, %._crit_edge.i.i32.i ], [ 4, %._crit_edge.i.i28.i ], [ 3, %._crit_edge.i.i24.i ], [ 6, %._crit_edge.i.i20.i ], [ 5, %._crit_edge.i.i16.i ], [ 5, %._crit_edge.i.i12.i ], [ 4, %._crit_edge.i.i8.i ], [ 7, %._crit_edge.i.i4.i ], [ 5, %._crit_edge.i.i.i ] - %.sink79.i.sroa.phi = phi ptr [ %.sink79.i.sroa.gep, %._crit_edge.i.i60.i ], [ %.sink79.i.sroa.gep121, %._crit_edge.i.i56.i ], [ %.sink79.i.sroa.gep122, %._crit_edge.i.i52.i ], [ %.sink79.i.sroa.gep123, %._crit_edge.i.i48.i ], [ %.sink79.i.sroa.gep123, %._crit_edge.i.i44.i ], [ %.sink79.i.sroa.gep125, %._crit_edge.i.i40.i ], [ %.sink79.i.sroa.gep125, %._crit_edge.i.i36.i ], [ %.sink79.i.sroa.gep127, %._crit_edge.i.i32.i ], [ %.sink79.i.sroa.gep127, %._crit_edge.i.i28.i ], [ %.sink79.i.sroa.gep, %._crit_edge.i.i24.i ], [ %.sink79.i.sroa.gep123, %._crit_edge.i.i20.i ], [ %.sink79.i.sroa.gep125, %._crit_edge.i.i16.i ], [ %.sink79.i.sroa.gep125, %._crit_edge.i.i12.i ], [ %.sink79.i.sroa.gep127, %._crit_edge.i.i8.i ], [ %.sink79.i.sroa.gep134, %._crit_edge.i.i4.i ], [ %.sink79.i.sroa.gep125, %._crit_edge.i.i.i ] %42 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i, ptr %42, align 8, !tbaa !14, !alias.scope !328 - store i8 0, ptr %.sink79.i.sroa.phi, align 1, !tbaa !15, !alias.scope !328 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !15, !alias.scope !328 %43 = getelementptr inbounds nuw i8, ptr %7, i64 16 store ptr %43, ptr %7, align 8, !tbaa !16 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) #26 @@ -9672,13 +9681,6 @@ define linkonce_odr dso_local void @_ZNK11flatbuffers6kotlin18KotlinKMPGenerator %10 = getelementptr inbounds nuw i8, ptr %1, i64 160 %11 = load i8, ptr %10, align 8, !tbaa !324, !range !168, !noundef !169 %12 = trunc nuw i8 %11 to i1 - %.sink79.i.sroa.gep = getelementptr inbounds nuw i8, ptr %9, i64 19 - %.sink79.i.sroa.gep67 = getelementptr inbounds nuw i8, ptr %9, i64 28 - %.sink79.i.sroa.gep68 = getelementptr inbounds nuw i8, ptr %9, i64 27 - %.sink79.i.sroa.gep69 = getelementptr inbounds nuw i8, ptr %9, i64 22 - %.sink79.i.sroa.gep71 = getelementptr inbounds nuw i8, ptr %9, i64 21 - %.sink79.i.sroa.gep73 = getelementptr inbounds nuw i8, ptr %9, i64 20 - %.sink79.i.sroa.gep80 = getelementptr inbounds nuw i8, ptr %9, i64 23 br i1 %12, label %158, label %13 13: ; preds = %3 @@ -9806,105 +9808,121 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i16 %.ptr82 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr82, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr82, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink.sroa.gep112 = getelementptr inbounds nuw i8, ptr %9, i64 21 br label %54 ._crit_edge.i.i4.i: ; preds = %48 %.ptr83 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr83, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %.ptr83, ptr noundef nonnull align 1 dereferenceable(7) @.str.60, i64 7, i1 false) + %.sink.sroa.gep111 = getelementptr inbounds nuw i8, ptr %9, i64 23 br label %54 ._crit_edge.i.i8.i: ; preds = %48 %.ptr84 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr84, ptr %9, align 8, !tbaa !16, !alias.scope !360 store i32 1702132034, ptr %.ptr84, align 8, !alias.scope !360 + %.sink.sroa.gep110 = getelementptr inbounds nuw i8, ptr %9, i64 20 br label %54 ._crit_edge.i.i12.i: ; preds = %48 %.ptr85 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr85, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr85, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink.sroa.gep109 = getelementptr inbounds nuw i8, ptr %9, i64 21 br label %54 ._crit_edge.i.i16.i: ; preds = %48 %.ptr86 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr86, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr86, ptr noundef nonnull align 1 dereferenceable(5) @.str.62, i64 5, i1 false) + %.sink.sroa.gep108 = getelementptr inbounds nuw i8, ptr %9, i64 21 br label %54 ._crit_edge.i.i20.i: ; preds = %48 %.ptr87 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr87, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr87, ptr noundef nonnull align 1 dereferenceable(6) @.str.63, i64 6, i1 false) + %.sink.sroa.gep107 = getelementptr inbounds nuw i8, ptr %9, i64 22 br label %54 ._crit_edge.i.i24.i: ; preds = %48 %.ptr88 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr88, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %.ptr88, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink.sroa.gep106 = getelementptr inbounds nuw i8, ptr %9, i64 19 br label %54 ._crit_edge.i.i28.i: ; preds = %48 %.ptr89 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr89, ptr %9, align 8, !tbaa !16, !alias.scope !360 store i32 1953384789, ptr %.ptr89, align 8, !alias.scope !360 + %.sink.sroa.gep105 = getelementptr inbounds nuw i8, ptr %9, i64 20 br label %54 ._crit_edge.i.i32.i: ; preds = %48 %.ptr90 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr90, ptr %9, align 8, !tbaa !16, !alias.scope !360 store i32 1735290700, ptr %.ptr90, align 8, !alias.scope !360 + %.sink.sroa.gep104 = getelementptr inbounds nuw i8, ptr %9, i64 20 br label %54 ._crit_edge.i.i36.i: ; preds = %48 %.ptr91 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr91, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr91, ptr noundef nonnull align 1 dereferenceable(5) @.str.67, i64 5, i1 false) + %.sink.sroa.gep103 = getelementptr inbounds nuw i8, ptr %9, i64 21 br label %54 ._crit_edge.i.i40.i: ; preds = %48 %.ptr92 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr92, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr92, ptr noundef nonnull align 1 dereferenceable(5) @.str.68, i64 5, i1 false) + %.sink.sroa.gep102 = getelementptr inbounds nuw i8, ptr %9, i64 21 br label %54 ._crit_edge.i.i44.i: ; preds = %48 %.ptr93 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr93, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr93, ptr noundef nonnull align 1 dereferenceable(6) @.str.69, i64 6, i1 false) + %.sink.sroa.gep101 = getelementptr inbounds nuw i8, ptr %9, i64 22 br label %54 ._crit_edge.i.i48.i: ; preds = %48, %48 %.ptr94 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr94, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr94, ptr noundef nonnull align 1 dereferenceable(6) @.str.70, i64 6, i1 false) + %.sink.sroa.gep100 = getelementptr inbounds nuw i8, ptr %9, i64 22 br label %54 ._crit_edge.i.i52.i: ; preds = %48 %.ptr95 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr95, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(11) %.ptr95, ptr noundef nonnull align 1 dereferenceable(11) @.str.71, i64 11, i1 false) + %.sink.sroa.gep99 = getelementptr inbounds nuw i8, ptr %9, i64 27 br label %54 ._crit_edge.i.i56.i: ; preds = %48, %48 %.ptr96 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr96, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %.ptr96, ptr noundef nonnull align 1 dereferenceable(12) @.str.72, i64 12, i1 false) + %.sink.sroa.gep98 = getelementptr inbounds nuw i8, ptr %9, i64 28 br label %54 ._crit_edge.i.i60.i: ; preds = %48 %.ptr97 = getelementptr inbounds nuw i8, ptr %9, i64 16 store ptr %.ptr97, ptr %9, align 8, !tbaa !16, !alias.scope !360 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %.ptr97, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %9, i64 19 br label %54 54: ; preds = %._crit_edge.i.i60.i, %._crit_edge.i.i56.i, %._crit_edge.i.i52.i, %._crit_edge.i.i48.i, %._crit_edge.i.i44.i, %._crit_edge.i.i40.i, %._crit_edge.i.i36.i, %._crit_edge.i.i32.i, %._crit_edge.i.i28.i, %._crit_edge.i.i24.i, %._crit_edge.i.i20.i, %._crit_edge.i.i16.i, %._crit_edge.i.i12.i, %._crit_edge.i.i8.i, %._crit_edge.i.i4.i, %._crit_edge.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i60.i ], [ %.sink.sroa.gep98, %._crit_edge.i.i56.i ], [ %.sink.sroa.gep99, %._crit_edge.i.i52.i ], [ %.sink.sroa.gep100, %._crit_edge.i.i48.i ], [ %.sink.sroa.gep101, %._crit_edge.i.i44.i ], [ %.sink.sroa.gep102, %._crit_edge.i.i40.i ], [ %.sink.sroa.gep103, %._crit_edge.i.i36.i ], [ %.sink.sroa.gep104, %._crit_edge.i.i32.i ], [ %.sink.sroa.gep105, %._crit_edge.i.i28.i ], [ %.sink.sroa.gep106, %._crit_edge.i.i24.i ], [ %.sink.sroa.gep107, %._crit_edge.i.i20.i ], [ %.sink.sroa.gep108, %._crit_edge.i.i16.i ], [ %.sink.sroa.gep109, %._crit_edge.i.i12.i ], [ %.sink.sroa.gep110, %._crit_edge.i.i8.i ], [ %.sink.sroa.gep111, %._crit_edge.i.i4.i ], [ %.sink.sroa.gep112, %._crit_edge.i.i.i ] %.sink.i = phi i64 [ 3, %._crit_edge.i.i60.i ], [ 12, %._crit_edge.i.i56.i ], [ 11, %._crit_edge.i.i52.i ], [ 6, %._crit_edge.i.i48.i ], [ 6, %._crit_edge.i.i44.i ], [ 5, %._crit_edge.i.i40.i ], [ 5, %._crit_edge.i.i36.i ], [ 4, %._crit_edge.i.i32.i ], [ 4, %._crit_edge.i.i28.i ], [ 3, %._crit_edge.i.i24.i ], [ 6, %._crit_edge.i.i20.i ], [ 5, %._crit_edge.i.i16.i ], [ 5, %._crit_edge.i.i12.i ], [ 4, %._crit_edge.i.i8.i ], [ 7, %._crit_edge.i.i4.i ], [ 5, %._crit_edge.i.i.i ] - %.sink79.i.sroa.phi = phi ptr [ %.sink79.i.sroa.gep, %._crit_edge.i.i60.i ], [ %.sink79.i.sroa.gep67, %._crit_edge.i.i56.i ], [ %.sink79.i.sroa.gep68, %._crit_edge.i.i52.i ], [ %.sink79.i.sroa.gep69, %._crit_edge.i.i48.i ], [ %.sink79.i.sroa.gep69, %._crit_edge.i.i44.i ], [ %.sink79.i.sroa.gep71, %._crit_edge.i.i40.i ], [ %.sink79.i.sroa.gep71, %._crit_edge.i.i36.i ], [ %.sink79.i.sroa.gep73, %._crit_edge.i.i32.i ], [ %.sink79.i.sroa.gep73, %._crit_edge.i.i28.i ], [ %.sink79.i.sroa.gep, %._crit_edge.i.i24.i ], [ %.sink79.i.sroa.gep69, %._crit_edge.i.i20.i ], [ %.sink79.i.sroa.gep71, %._crit_edge.i.i16.i ], [ %.sink79.i.sroa.gep71, %._crit_edge.i.i12.i ], [ %.sink79.i.sroa.gep73, %._crit_edge.i.i8.i ], [ %.sink79.i.sroa.gep80, %._crit_edge.i.i4.i ], [ %.sink79.i.sroa.gep71, %._crit_edge.i.i.i ] %.ptr = getelementptr inbounds nuw i8, ptr %9, i64 16 %55 = getelementptr inbounds nuw i8, ptr %9, i64 8 store i64 %.sink.i, ptr %55, align 8, !tbaa !14, !alias.scope !360 - store i8 0, ptr %.sink79.i.sroa.phi, align 1, !tbaa !15, !alias.scope !360 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !15, !alias.scope !360 call void @llvm.experimental.noalias.scope.decl(metadata !363) %56 = load i64, ptr %51, align 8, !tbaa !14, !noalias !363 %57 = add i64 %56, %.sink.i @@ -26894,24 +26912,6 @@ define linkonce_odr dso_local void @_ZNK11flatbuffers6kotlin18KotlinKMPGenerator call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %6) #26 tail call void @llvm.experimental.noalias.scope.decl(metadata !712) %22 = load i32, ptr %2, align 8, !tbaa !331, !noalias !712 - %.sink79.i207.sroa.gep = getelementptr inbounds nuw i8, ptr %17, i64 19 - %.sink79.i207.sroa.gep356 = getelementptr inbounds nuw i8, ptr %17, i64 28 - %.sink79.i207.sroa.gep357 = getelementptr inbounds nuw i8, ptr %17, i64 27 - %.sink79.i207.sroa.gep358 = getelementptr inbounds nuw i8, ptr %17, i64 22 - %.sink79.i207.sroa.gep360 = getelementptr inbounds nuw i8, ptr %17, i64 21 - %.sink79.i207.sroa.gep362 = getelementptr inbounds nuw i8, ptr %17, i64 20 - %.sink79.i207.sroa.gep369 = getelementptr inbounds nuw i8, ptr %17, i64 23 - %.sink79.i110.sroa.gep = getelementptr inbounds nuw i8, ptr %14, i64 19 - %.sink79.i110.sroa.gep371 = getelementptr inbounds nuw i8, ptr %14, i64 28 - %.sink79.i110.sroa.gep372 = getelementptr inbounds nuw i8, ptr %14, i64 27 - %.sink79.i110.sroa.gep373 = getelementptr inbounds nuw i8, ptr %14, i64 22 - %.sink79.i110.sroa.gep375 = getelementptr inbounds nuw i8, ptr %14, i64 21 - %.sink79.i110.sroa.gep377 = getelementptr inbounds nuw i8, ptr %14, i64 20 - %.sink79.i110.sroa.gep384 = getelementptr inbounds nuw i8, ptr %14, i64 23 - %.sink79.i.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 19 - %.sink79.i.sroa.gep389 = getelementptr inbounds nuw i8, ptr %6, i64 22 - %.sink79.i.sroa.gep391 = getelementptr inbounds nuw i8, ptr %6, i64 21 - %.sink79.i.sroa.gep393 = getelementptr inbounds nuw i8, ptr %6, i64 20 switch i32 %22, label %._crit_edge.i.i60.i [ i32 0, label %._crit_edge.i.i.i i32 1, label %._crit_edge.i.i.i @@ -26937,108 +26937,121 @@ define linkonce_odr dso_local void @_ZNK11flatbuffers6kotlin18KotlinKMPGenerator %.ptr402 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr402, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr402, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink.sroa.gep499 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %23 ._crit_edge.i.i4.i: ; preds = %3 - %.sink79.i.sroa.gep400 = getelementptr inbounds nuw i8, ptr %6, i64 23 %.ptr403 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr403, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %.ptr403, ptr noundef nonnull align 1 dereferenceable(7) @.str.60, i64 7, i1 false) + %.sink.sroa.gep498 = getelementptr inbounds nuw i8, ptr %6, i64 23 br label %23 ._crit_edge.i.i8.i: ; preds = %3 %.ptr404 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr404, ptr %6, align 8, !tbaa !16, !alias.scope !712 store i32 1702132034, ptr %.ptr404, align 8, !alias.scope !712 + %.sink.sroa.gep497 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %23 ._crit_edge.i.i12.i: ; preds = %3 %.ptr405 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr405, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr405, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink.sroa.gep496 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %23 ._crit_edge.i.i16.i: ; preds = %3 %.ptr406 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr406, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr406, ptr noundef nonnull align 1 dereferenceable(5) @.str.62, i64 5, i1 false) + %.sink.sroa.gep495 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %23 ._crit_edge.i.i20.i: ; preds = %3 %.ptr407 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr407, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr407, ptr noundef nonnull align 1 dereferenceable(6) @.str.63, i64 6, i1 false) + %.sink.sroa.gep494 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %23 ._crit_edge.i.i24.i: ; preds = %3 %.ptr408 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr408, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %.ptr408, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink.sroa.gep493 = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %23 ._crit_edge.i.i28.i: ; preds = %3 %.ptr409 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr409, ptr %6, align 8, !tbaa !16, !alias.scope !712 store i32 1953384789, ptr %.ptr409, align 8, !alias.scope !712 + %.sink.sroa.gep492 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %23 ._crit_edge.i.i32.i: ; preds = %3 %.ptr410 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr410, ptr %6, align 8, !tbaa !16, !alias.scope !712 store i32 1735290700, ptr %.ptr410, align 8, !alias.scope !712 + %.sink.sroa.gep491 = getelementptr inbounds nuw i8, ptr %6, i64 20 br label %23 ._crit_edge.i.i36.i: ; preds = %3 %.ptr411 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr411, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr411, ptr noundef nonnull align 1 dereferenceable(5) @.str.67, i64 5, i1 false) + %.sink.sroa.gep490 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %23 ._crit_edge.i.i40.i: ; preds = %3 %.ptr412 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr412, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr412, ptr noundef nonnull align 1 dereferenceable(5) @.str.68, i64 5, i1 false) + %.sink.sroa.gep489 = getelementptr inbounds nuw i8, ptr %6, i64 21 br label %23 ._crit_edge.i.i44.i: ; preds = %3 %.ptr413 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr413, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr413, ptr noundef nonnull align 1 dereferenceable(6) @.str.69, i64 6, i1 false) + %.sink.sroa.gep488 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %23 ._crit_edge.i.i48.i: ; preds = %3, %3 %.ptr414 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr414, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr414, ptr noundef nonnull align 1 dereferenceable(6) @.str.70, i64 6, i1 false) + %.sink.sroa.gep487 = getelementptr inbounds nuw i8, ptr %6, i64 22 br label %23 ._crit_edge.i.i52.i: ; preds = %3 - %.sink79.i.sroa.gep388 = getelementptr inbounds nuw i8, ptr %6, i64 27 %.ptr415 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr415, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(11) %.ptr415, ptr noundef nonnull align 1 dereferenceable(11) @.str.71, i64 11, i1 false) + %.sink.sroa.gep486 = getelementptr inbounds nuw i8, ptr %6, i64 27 br label %23 ._crit_edge.i.i56.i: ; preds = %3, %3 - %.sink79.i.sroa.gep387 = getelementptr inbounds nuw i8, ptr %6, i64 28 %.ptr416 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr416, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %.ptr416, ptr noundef nonnull align 1 dereferenceable(12) @.str.72, i64 12, i1 false) + %.sink.sroa.gep485 = getelementptr inbounds nuw i8, ptr %6, i64 28 br label %23 ._crit_edge.i.i60.i: ; preds = %3 %.ptr417 = getelementptr inbounds nuw i8, ptr %6, i64 16 store ptr %.ptr417, ptr %6, align 8, !tbaa !16, !alias.scope !712 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %.ptr417, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 19 br label %23 23: ; preds = %._crit_edge.i.i60.i, %._crit_edge.i.i56.i, %._crit_edge.i.i52.i, %._crit_edge.i.i48.i, %._crit_edge.i.i44.i, %._crit_edge.i.i40.i, %._crit_edge.i.i36.i, %._crit_edge.i.i32.i, %._crit_edge.i.i28.i, %._crit_edge.i.i24.i, %._crit_edge.i.i20.i, %._crit_edge.i.i16.i, %._crit_edge.i.i12.i, %._crit_edge.i.i8.i, %._crit_edge.i.i4.i, %._crit_edge.i.i.i + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i60.i ], [ %.sink.sroa.gep485, %._crit_edge.i.i56.i ], [ %.sink.sroa.gep486, %._crit_edge.i.i52.i ], [ %.sink.sroa.gep487, %._crit_edge.i.i48.i ], [ %.sink.sroa.gep488, %._crit_edge.i.i44.i ], [ %.sink.sroa.gep489, %._crit_edge.i.i40.i ], [ %.sink.sroa.gep490, %._crit_edge.i.i36.i ], [ %.sink.sroa.gep491, %._crit_edge.i.i32.i ], [ %.sink.sroa.gep492, %._crit_edge.i.i28.i ], [ %.sink.sroa.gep493, %._crit_edge.i.i24.i ], [ %.sink.sroa.gep494, %._crit_edge.i.i20.i ], [ %.sink.sroa.gep495, %._crit_edge.i.i16.i ], [ %.sink.sroa.gep496, %._crit_edge.i.i12.i ], [ %.sink.sroa.gep497, %._crit_edge.i.i8.i ], [ %.sink.sroa.gep498, %._crit_edge.i.i4.i ], [ %.sink.sroa.gep499, %._crit_edge.i.i.i ] %.sink.i = phi i64 [ 3, %._crit_edge.i.i60.i ], [ 12, %._crit_edge.i.i56.i ], [ 11, %._crit_edge.i.i52.i ], [ 6, %._crit_edge.i.i48.i ], [ 6, %._crit_edge.i.i44.i ], [ 5, %._crit_edge.i.i40.i ], [ 5, %._crit_edge.i.i36.i ], [ 4, %._crit_edge.i.i32.i ], [ 4, %._crit_edge.i.i28.i ], [ 3, %._crit_edge.i.i24.i ], [ 6, %._crit_edge.i.i20.i ], [ 5, %._crit_edge.i.i16.i ], [ 5, %._crit_edge.i.i12.i ], [ 4, %._crit_edge.i.i8.i ], [ 7, %._crit_edge.i.i4.i ], [ 5, %._crit_edge.i.i.i ] - %.sink79.i.sroa.phi = phi ptr [ %.sink79.i.sroa.gep, %._crit_edge.i.i60.i ], [ %.sink79.i.sroa.gep387, %._crit_edge.i.i56.i ], [ %.sink79.i.sroa.gep388, %._crit_edge.i.i52.i ], [ %.sink79.i.sroa.gep389, %._crit_edge.i.i48.i ], [ %.sink79.i.sroa.gep389, %._crit_edge.i.i44.i ], [ %.sink79.i.sroa.gep391, %._crit_edge.i.i40.i ], [ %.sink79.i.sroa.gep391, %._crit_edge.i.i36.i ], [ %.sink79.i.sroa.gep393, %._crit_edge.i.i32.i ], [ %.sink79.i.sroa.gep393, %._crit_edge.i.i28.i ], [ %.sink79.i.sroa.gep, %._crit_edge.i.i24.i ], [ %.sink79.i.sroa.gep389, %._crit_edge.i.i20.i ], [ %.sink79.i.sroa.gep391, %._crit_edge.i.i16.i ], [ %.sink79.i.sroa.gep391, %._crit_edge.i.i12.i ], [ %.sink79.i.sroa.gep393, %._crit_edge.i.i8.i ], [ %.sink79.i.sroa.gep400, %._crit_edge.i.i4.i ], [ %.sink79.i.sroa.gep391, %._crit_edge.i.i.i ] %.ptr = getelementptr inbounds nuw i8, ptr %6, i64 16 %24 = getelementptr inbounds nuw i8, ptr %6, i64 8 store i64 %.sink.i, ptr %24, align 8, !tbaa !14, !alias.scope !712 - store i8 0, ptr %.sink79.i.sroa.phi, align 1, !tbaa !15, !alias.scope !712 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !15, !alias.scope !712 %25 = getelementptr inbounds nuw i8, ptr %2, i64 16 %26 = load ptr, ptr %25, align 8, !tbaa !584 %.not.i = icmp ne ptr %26, null @@ -27638,105 +27651,121 @@ _ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.e %.ptr419 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr419, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr419, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink452.sroa.gep484 = getelementptr inbounds nuw i8, ptr %14, i64 21 br label %242 ._crit_edge.i.i4.i123: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr420 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr420, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %.ptr420, ptr noundef nonnull align 1 dereferenceable(7) @.str.60, i64 7, i1 false) + %.sink452.sroa.gep483 = getelementptr inbounds nuw i8, ptr %14, i64 23 br label %242 ._crit_edge.i.i8.i122: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr421 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr421, ptr %14, align 8, !tbaa !16, !alias.scope !733 store i32 1702132034, ptr %.ptr421, align 8, !alias.scope !733 + %.sink452.sroa.gep482 = getelementptr inbounds nuw i8, ptr %14, i64 20 br label %242 ._crit_edge.i.i12.i121: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr422 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr422, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr422, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink452.sroa.gep481 = getelementptr inbounds nuw i8, ptr %14, i64 21 br label %242 ._crit_edge.i.i16.i120: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr423 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr423, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr423, ptr noundef nonnull align 1 dereferenceable(5) @.str.62, i64 5, i1 false) + %.sink452.sroa.gep480 = getelementptr inbounds nuw i8, ptr %14, i64 21 br label %242 ._crit_edge.i.i20.i119: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr424 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr424, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr424, ptr noundef nonnull align 1 dereferenceable(6) @.str.63, i64 6, i1 false) + %.sink452.sroa.gep479 = getelementptr inbounds nuw i8, ptr %14, i64 22 br label %242 ._crit_edge.i.i24.i118: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr425 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr425, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %.ptr425, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink452.sroa.gep478 = getelementptr inbounds nuw i8, ptr %14, i64 19 br label %242 ._crit_edge.i.i28.i117: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr426 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr426, ptr %14, align 8, !tbaa !16, !alias.scope !733 store i32 1953384789, ptr %.ptr426, align 8, !alias.scope !733 + %.sink452.sroa.gep477 = getelementptr inbounds nuw i8, ptr %14, i64 20 br label %242 ._crit_edge.i.i32.i116: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr427 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr427, ptr %14, align 8, !tbaa !16, !alias.scope !733 store i32 1735290700, ptr %.ptr427, align 8, !alias.scope !733 + %.sink452.sroa.gep476 = getelementptr inbounds nuw i8, ptr %14, i64 20 br label %242 ._crit_edge.i.i36.i115: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr428 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr428, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr428, ptr noundef nonnull align 1 dereferenceable(5) @.str.67, i64 5, i1 false) + %.sink452.sroa.gep475 = getelementptr inbounds nuw i8, ptr %14, i64 21 br label %242 ._crit_edge.i.i40.i114: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr429 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr429, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr429, ptr noundef nonnull align 1 dereferenceable(5) @.str.68, i64 5, i1 false) + %.sink452.sroa.gep474 = getelementptr inbounds nuw i8, ptr %14, i64 21 br label %242 ._crit_edge.i.i44.i113: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr430 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr430, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr430, ptr noundef nonnull align 1 dereferenceable(6) @.str.69, i64 6, i1 false) + %.sink452.sroa.gep473 = getelementptr inbounds nuw i8, ptr %14, i64 22 br label %242 ._crit_edge.i.i48.i112: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr431 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr431, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr431, ptr noundef nonnull align 1 dereferenceable(6) @.str.70, i64 6, i1 false) + %.sink452.sroa.gep472 = getelementptr inbounds nuw i8, ptr %14, i64 22 br label %242 ._crit_edge.i.i52.i111: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr432 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr432, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(11) %.ptr432, ptr noundef nonnull align 1 dereferenceable(11) @.str.71, i64 11, i1 false) + %.sink452.sroa.gep471 = getelementptr inbounds nuw i8, ptr %14, i64 27 br label %242 ._crit_edge.i.i56.i108: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr433 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr433, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %.ptr433, ptr noundef nonnull align 1 dereferenceable(12) @.str.72, i64 12, i1 false) + %.sink452.sroa.gep470 = getelementptr inbounds nuw i8, ptr %14, i64 28 br label %242 ._crit_edge.i.i60.i125: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit107 %.ptr434 = getelementptr inbounds nuw i8, ptr %14, i64 16 store ptr %.ptr434, ptr %14, align 8, !tbaa !16, !alias.scope !733 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %.ptr434, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink452.sroa.gep = getelementptr inbounds nuw i8, ptr %14, i64 19 br label %242 242: ; preds = %._crit_edge.i.i60.i125, %._crit_edge.i.i56.i108, %._crit_edge.i.i52.i111, %._crit_edge.i.i48.i112, %._crit_edge.i.i44.i113, %._crit_edge.i.i40.i114, %._crit_edge.i.i36.i115, %._crit_edge.i.i32.i116, %._crit_edge.i.i28.i117, %._crit_edge.i.i24.i118, %._crit_edge.i.i20.i119, %._crit_edge.i.i16.i120, %._crit_edge.i.i12.i121, %._crit_edge.i.i8.i122, %._crit_edge.i.i4.i123, %._crit_edge.i.i.i124 + %.sink452.sroa.phi = phi ptr [ %.sink452.sroa.gep, %._crit_edge.i.i60.i125 ], [ %.sink452.sroa.gep470, %._crit_edge.i.i56.i108 ], [ %.sink452.sroa.gep471, %._crit_edge.i.i52.i111 ], [ %.sink452.sroa.gep472, %._crit_edge.i.i48.i112 ], [ %.sink452.sroa.gep473, %._crit_edge.i.i44.i113 ], [ %.sink452.sroa.gep474, %._crit_edge.i.i40.i114 ], [ %.sink452.sroa.gep475, %._crit_edge.i.i36.i115 ], [ %.sink452.sroa.gep476, %._crit_edge.i.i32.i116 ], [ %.sink452.sroa.gep477, %._crit_edge.i.i28.i117 ], [ %.sink452.sroa.gep478, %._crit_edge.i.i24.i118 ], [ %.sink452.sroa.gep479, %._crit_edge.i.i20.i119 ], [ %.sink452.sroa.gep480, %._crit_edge.i.i16.i120 ], [ %.sink452.sroa.gep481, %._crit_edge.i.i12.i121 ], [ %.sink452.sroa.gep482, %._crit_edge.i.i8.i122 ], [ %.sink452.sroa.gep483, %._crit_edge.i.i4.i123 ], [ %.sink452.sroa.gep484, %._crit_edge.i.i.i124 ] %.sink.i109 = phi i64 [ 3, %._crit_edge.i.i60.i125 ], [ 12, %._crit_edge.i.i56.i108 ], [ 11, %._crit_edge.i.i52.i111 ], [ 6, %._crit_edge.i.i48.i112 ], [ 6, %._crit_edge.i.i44.i113 ], [ 5, %._crit_edge.i.i40.i114 ], [ 5, %._crit_edge.i.i36.i115 ], [ 4, %._crit_edge.i.i32.i116 ], [ 4, %._crit_edge.i.i28.i117 ], [ 3, %._crit_edge.i.i24.i118 ], [ 6, %._crit_edge.i.i20.i119 ], [ 5, %._crit_edge.i.i16.i120 ], [ 5, %._crit_edge.i.i12.i121 ], [ 4, %._crit_edge.i.i8.i122 ], [ 7, %._crit_edge.i.i4.i123 ], [ 5, %._crit_edge.i.i.i124 ] - %.sink79.i110.sroa.phi = phi ptr [ %.sink79.i110.sroa.gep, %._crit_edge.i.i60.i125 ], [ %.sink79.i110.sroa.gep371, %._crit_edge.i.i56.i108 ], [ %.sink79.i110.sroa.gep372, %._crit_edge.i.i52.i111 ], [ %.sink79.i110.sroa.gep373, %._crit_edge.i.i48.i112 ], [ %.sink79.i110.sroa.gep373, %._crit_edge.i.i44.i113 ], [ %.sink79.i110.sroa.gep375, %._crit_edge.i.i40.i114 ], [ %.sink79.i110.sroa.gep375, %._crit_edge.i.i36.i115 ], [ %.sink79.i110.sroa.gep377, %._crit_edge.i.i32.i116 ], [ %.sink79.i110.sroa.gep377, %._crit_edge.i.i28.i117 ], [ %.sink79.i110.sroa.gep, %._crit_edge.i.i24.i118 ], [ %.sink79.i110.sroa.gep373, %._crit_edge.i.i20.i119 ], [ %.sink79.i110.sroa.gep375, %._crit_edge.i.i16.i120 ], [ %.sink79.i110.sroa.gep375, %._crit_edge.i.i12.i121 ], [ %.sink79.i110.sroa.gep377, %._crit_edge.i.i8.i122 ], [ %.sink79.i110.sroa.gep384, %._crit_edge.i.i4.i123 ], [ %.sink79.i110.sroa.gep375, %._crit_edge.i.i.i124 ] %.ptr418 = getelementptr inbounds nuw i8, ptr %14, i64 16 %243 = getelementptr inbounds nuw i8, ptr %14, i64 8 store i64 %.sink.i109, ptr %243, align 8, !tbaa !14, !alias.scope !733 - store i8 0, ptr %.sink79.i110.sroa.phi, align 1, !tbaa !15, !alias.scope !733 + store i8 0, ptr %.sink452.sroa.phi, align 1, !tbaa !15, !alias.scope !733 call void @llvm.experimental.noalias.scope.decl(metadata !736) %244 = load i64, ptr %230, align 8, !tbaa !14, !noalias !736 %245 = add i64 %244, %.sink.i109 @@ -28141,105 +28170,121 @@ _ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.e %.ptr436 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr436, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr436, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink453.sroa.gep469 = getelementptr inbounds nuw i8, ptr %17, i64 21 br label %385 ._crit_edge.i.i4.i220: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr437 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr437, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %.ptr437, ptr noundef nonnull align 1 dereferenceable(7) @.str.60, i64 7, i1 false) + %.sink453.sroa.gep468 = getelementptr inbounds nuw i8, ptr %17, i64 23 br label %385 ._crit_edge.i.i8.i219: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr438 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr438, ptr %17, align 8, !tbaa !16, !alias.scope !751 store i32 1702132034, ptr %.ptr438, align 8, !alias.scope !751 + %.sink453.sroa.gep467 = getelementptr inbounds nuw i8, ptr %17, i64 20 br label %385 ._crit_edge.i.i12.i218: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr439 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr439, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr439, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink453.sroa.gep466 = getelementptr inbounds nuw i8, ptr %17, i64 21 br label %385 ._crit_edge.i.i16.i217: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr440 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr440, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr440, ptr noundef nonnull align 1 dereferenceable(5) @.str.62, i64 5, i1 false) + %.sink453.sroa.gep465 = getelementptr inbounds nuw i8, ptr %17, i64 21 br label %385 ._crit_edge.i.i20.i216: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr441 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr441, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr441, ptr noundef nonnull align 1 dereferenceable(6) @.str.63, i64 6, i1 false) + %.sink453.sroa.gep464 = getelementptr inbounds nuw i8, ptr %17, i64 22 br label %385 ._crit_edge.i.i24.i215: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr442 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr442, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %.ptr442, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink453.sroa.gep463 = getelementptr inbounds nuw i8, ptr %17, i64 19 br label %385 ._crit_edge.i.i28.i214: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr443 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr443, ptr %17, align 8, !tbaa !16, !alias.scope !751 store i32 1953384789, ptr %.ptr443, align 8, !alias.scope !751 + %.sink453.sroa.gep462 = getelementptr inbounds nuw i8, ptr %17, i64 20 br label %385 ._crit_edge.i.i32.i213: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr444 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr444, ptr %17, align 8, !tbaa !16, !alias.scope !751 store i32 1735290700, ptr %.ptr444, align 8, !alias.scope !751 + %.sink453.sroa.gep461 = getelementptr inbounds nuw i8, ptr %17, i64 20 br label %385 ._crit_edge.i.i36.i212: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr445 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr445, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr445, ptr noundef nonnull align 1 dereferenceable(5) @.str.67, i64 5, i1 false) + %.sink453.sroa.gep460 = getelementptr inbounds nuw i8, ptr %17, i64 21 br label %385 ._crit_edge.i.i40.i211: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr446 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr446, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %.ptr446, ptr noundef nonnull align 1 dereferenceable(5) @.str.68, i64 5, i1 false) + %.sink453.sroa.gep459 = getelementptr inbounds nuw i8, ptr %17, i64 21 br label %385 ._crit_edge.i.i44.i210: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr447 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr447, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr447, ptr noundef nonnull align 1 dereferenceable(6) @.str.69, i64 6, i1 false) + %.sink453.sroa.gep458 = getelementptr inbounds nuw i8, ptr %17, i64 22 br label %385 ._crit_edge.i.i48.i209: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr448 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr448, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %.ptr448, ptr noundef nonnull align 1 dereferenceable(6) @.str.70, i64 6, i1 false) + %.sink453.sroa.gep457 = getelementptr inbounds nuw i8, ptr %17, i64 22 br label %385 ._crit_edge.i.i52.i208: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr449 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr449, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(11) %.ptr449, ptr noundef nonnull align 1 dereferenceable(11) @.str.71, i64 11, i1 false) + %.sink453.sroa.gep456 = getelementptr inbounds nuw i8, ptr %17, i64 27 br label %385 ._crit_edge.i.i56.i205: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204, %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr450 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr450, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %.ptr450, ptr noundef nonnull align 1 dereferenceable(12) @.str.72, i64 12, i1 false) + %.sink453.sroa.gep455 = getelementptr inbounds nuw i8, ptr %17, i64 28 br label %385 ._crit_edge.i.i60.i222: ; preds = %_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.exit204 %.ptr451 = getelementptr inbounds nuw i8, ptr %17, i64 16 store ptr %.ptr451, ptr %17, align 8, !tbaa !16, !alias.scope !751 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %.ptr451, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink453.sroa.gep = getelementptr inbounds nuw i8, ptr %17, i64 19 br label %385 385: ; preds = %._crit_edge.i.i60.i222, %._crit_edge.i.i56.i205, %._crit_edge.i.i52.i208, %._crit_edge.i.i48.i209, %._crit_edge.i.i44.i210, %._crit_edge.i.i40.i211, %._crit_edge.i.i36.i212, %._crit_edge.i.i32.i213, %._crit_edge.i.i28.i214, %._crit_edge.i.i24.i215, %._crit_edge.i.i20.i216, %._crit_edge.i.i16.i217, %._crit_edge.i.i12.i218, %._crit_edge.i.i8.i219, %._crit_edge.i.i4.i220, %._crit_edge.i.i.i221 + %.sink453.sroa.phi = phi ptr [ %.sink453.sroa.gep, %._crit_edge.i.i60.i222 ], [ %.sink453.sroa.gep455, %._crit_edge.i.i56.i205 ], [ %.sink453.sroa.gep456, %._crit_edge.i.i52.i208 ], [ %.sink453.sroa.gep457, %._crit_edge.i.i48.i209 ], [ %.sink453.sroa.gep458, %._crit_edge.i.i44.i210 ], [ %.sink453.sroa.gep459, %._crit_edge.i.i40.i211 ], [ %.sink453.sroa.gep460, %._crit_edge.i.i36.i212 ], [ %.sink453.sroa.gep461, %._crit_edge.i.i32.i213 ], [ %.sink453.sroa.gep462, %._crit_edge.i.i28.i214 ], [ %.sink453.sroa.gep463, %._crit_edge.i.i24.i215 ], [ %.sink453.sroa.gep464, %._crit_edge.i.i20.i216 ], [ %.sink453.sroa.gep465, %._crit_edge.i.i16.i217 ], [ %.sink453.sroa.gep466, %._crit_edge.i.i12.i218 ], [ %.sink453.sroa.gep467, %._crit_edge.i.i8.i219 ], [ %.sink453.sroa.gep468, %._crit_edge.i.i4.i220 ], [ %.sink453.sroa.gep469, %._crit_edge.i.i.i221 ] %.sink.i206 = phi i64 [ 3, %._crit_edge.i.i60.i222 ], [ 12, %._crit_edge.i.i56.i205 ], [ 11, %._crit_edge.i.i52.i208 ], [ 6, %._crit_edge.i.i48.i209 ], [ 6, %._crit_edge.i.i44.i210 ], [ 5, %._crit_edge.i.i40.i211 ], [ 5, %._crit_edge.i.i36.i212 ], [ 4, %._crit_edge.i.i32.i213 ], [ 4, %._crit_edge.i.i28.i214 ], [ 3, %._crit_edge.i.i24.i215 ], [ 6, %._crit_edge.i.i20.i216 ], [ 5, %._crit_edge.i.i16.i217 ], [ 5, %._crit_edge.i.i12.i218 ], [ 4, %._crit_edge.i.i8.i219 ], [ 7, %._crit_edge.i.i4.i220 ], [ 5, %._crit_edge.i.i.i221 ] - %.sink79.i207.sroa.phi = phi ptr [ %.sink79.i207.sroa.gep, %._crit_edge.i.i60.i222 ], [ %.sink79.i207.sroa.gep356, %._crit_edge.i.i56.i205 ], [ %.sink79.i207.sroa.gep357, %._crit_edge.i.i52.i208 ], [ %.sink79.i207.sroa.gep358, %._crit_edge.i.i48.i209 ], [ %.sink79.i207.sroa.gep358, %._crit_edge.i.i44.i210 ], [ %.sink79.i207.sroa.gep360, %._crit_edge.i.i40.i211 ], [ %.sink79.i207.sroa.gep360, %._crit_edge.i.i36.i212 ], [ %.sink79.i207.sroa.gep362, %._crit_edge.i.i32.i213 ], [ %.sink79.i207.sroa.gep362, %._crit_edge.i.i28.i214 ], [ %.sink79.i207.sroa.gep, %._crit_edge.i.i24.i215 ], [ %.sink79.i207.sroa.gep358, %._crit_edge.i.i20.i216 ], [ %.sink79.i207.sroa.gep360, %._crit_edge.i.i16.i217 ], [ %.sink79.i207.sroa.gep360, %._crit_edge.i.i12.i218 ], [ %.sink79.i207.sroa.gep362, %._crit_edge.i.i8.i219 ], [ %.sink79.i207.sroa.gep369, %._crit_edge.i.i4.i220 ], [ %.sink79.i207.sroa.gep360, %._crit_edge.i.i.i221 ] %.ptr435 = getelementptr inbounds nuw i8, ptr %17, i64 16 %386 = getelementptr inbounds nuw i8, ptr %17, i64 8 store i64 %.sink.i206, ptr %386, align 8, !tbaa !14, !alias.scope !751 - store i8 0, ptr %.sink79.i207.sroa.phi, align 1, !tbaa !15, !alias.scope !751 + store i8 0, ptr %.sink453.sroa.phi, align 1, !tbaa !15, !alias.scope !751 call void @llvm.experimental.noalias.scope.decl(metadata !754) %387 = load i64, ptr %373, align 8, !tbaa !14, !noalias !754 %388 = add i64 %387, %.sink.i206 @@ -48970,13 +49015,6 @@ define linkonce_odr dso_local void @_ZNK11flatbuffers6kotlin18KotlinKMPGenerator %13 = load i32, ptr %2, align 8, !tbaa !486 %14 = add i32 %13, -1 %15 = icmp ult i32 %14, 12 - %.sink79.i.sroa.gep = getelementptr inbounds nuw i8, ptr %12, i64 19 - %.sink79.i.sroa.gep89 = getelementptr inbounds nuw i8, ptr %12, i64 28 - %.sink79.i.sroa.gep90 = getelementptr inbounds nuw i8, ptr %12, i64 27 - %.sink79.i.sroa.gep91 = getelementptr inbounds nuw i8, ptr %12, i64 22 - %.sink79.i.sroa.gep93 = getelementptr inbounds nuw i8, ptr %12, i64 21 - %.sink79.i.sroa.gep95 = getelementptr inbounds nuw i8, ptr %12, i64 20 - %.sink79.i.sroa.gep102 = getelementptr inbounds nuw i8, ptr %12, i64 23 br i1 %15, label %16, label %.thread 16: ; preds = %3 @@ -49515,104 +49553,120 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit67: ; preds = %_ZN %207 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %207, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %207, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %12, i64 21 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i4.i: ; preds = %204 %208 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %208, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %208, ptr noundef nonnull align 1 dereferenceable(7) @.str.60, i64 7, i1 false) + %.sink.sroa.gep107 = getelementptr inbounds nuw i8, ptr %12, i64 23 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i8.i: ; preds = %204 %209 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %209, ptr %12, align 8, !tbaa !16, !alias.scope !1156 store i32 1702132034, ptr %209, align 8, !alias.scope !1156 + %.sink.sroa.gep108 = getelementptr inbounds nuw i8, ptr %12, i64 20 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i12.i: ; preds = %204 %210 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %210, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %210, ptr noundef nonnull align 1 dereferenceable(5) @.str.59, i64 5, i1 false) + %.sink.sroa.gep109 = getelementptr inbounds nuw i8, ptr %12, i64 21 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i16.i: ; preds = %204 %211 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %211, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %211, ptr noundef nonnull align 1 dereferenceable(5) @.str.62, i64 5, i1 false) + %.sink.sroa.gep110 = getelementptr inbounds nuw i8, ptr %12, i64 21 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i20.i: ; preds = %204 %212 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %212, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %212, ptr noundef nonnull align 1 dereferenceable(6) @.str.63, i64 6, i1 false) + %.sink.sroa.gep111 = getelementptr inbounds nuw i8, ptr %12, i64 22 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i24.i: ; preds = %204 %213 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %213, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %213, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink.sroa.gep112 = getelementptr inbounds nuw i8, ptr %12, i64 19 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i28.i: ; preds = %204 %214 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %214, ptr %12, align 8, !tbaa !16, !alias.scope !1156 store i32 1953384789, ptr %214, align 8, !alias.scope !1156 + %.sink.sroa.gep113 = getelementptr inbounds nuw i8, ptr %12, i64 20 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i32.i: ; preds = %204 %215 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %215, ptr %12, align 8, !tbaa !16, !alias.scope !1156 store i32 1735290700, ptr %215, align 8, !alias.scope !1156 + %.sink.sroa.gep114 = getelementptr inbounds nuw i8, ptr %12, i64 20 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i36.i: ; preds = %204 %216 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %216, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %216, ptr noundef nonnull align 1 dereferenceable(5) @.str.67, i64 5, i1 false) + %.sink.sroa.gep115 = getelementptr inbounds nuw i8, ptr %12, i64 21 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i40.i: ; preds = %204 %217 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %217, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %217, ptr noundef nonnull align 1 dereferenceable(5) @.str.68, i64 5, i1 false) + %.sink.sroa.gep116 = getelementptr inbounds nuw i8, ptr %12, i64 21 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i44.i: ; preds = %204 %218 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %218, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %218, ptr noundef nonnull align 1 dereferenceable(6) @.str.69, i64 6, i1 false) + %.sink.sroa.gep117 = getelementptr inbounds nuw i8, ptr %12, i64 22 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i48.i: ; preds = %204, %204 %219 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %219, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %219, ptr noundef nonnull align 1 dereferenceable(6) @.str.70, i64 6, i1 false) + %.sink.sroa.gep118 = getelementptr inbounds nuw i8, ptr %12, i64 22 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i52.i: ; preds = %204 %220 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %220, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(11) %220, ptr noundef nonnull align 1 dereferenceable(11) @.str.71, i64 11, i1 false) + %.sink.sroa.gep119 = getelementptr inbounds nuw i8, ptr %12, i64 27 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i56.i: ; preds = %204, %204 %221 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %221, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %221, ptr noundef nonnull align 1 dereferenceable(12) @.str.72, i64 12, i1 false) + %.sink.sroa.gep120 = getelementptr inbounds nuw i8, ptr %12, i64 28 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit ._crit_edge.i.i60.i: ; preds = %204 %222 = getelementptr inbounds nuw i8, ptr %12, i64 16 store ptr %222, ptr %12, align 8, !tbaa !16, !alias.scope !1156 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(3) %222, ptr noundef nonnull align 1 dereferenceable(3) @.str.64, i64 3, i1 false) + %.sink.sroa.gep121 = getelementptr inbounds nuw i8, ptr %12, i64 19 br label %_ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit _ZNK11flatbuffers6kotlin18KotlinKMPGenerator12GenTypeBasicB5cxx11ERKNS_8BaseTypeE.exit: ; preds = %._crit_edge.i.i.i, %._crit_edge.i.i4.i, %._crit_edge.i.i8.i, %._crit_edge.i.i12.i, %._crit_edge.i.i16.i, %._crit_edge.i.i20.i, %._crit_edge.i.i24.i, %._crit_edge.i.i28.i, %._crit_edge.i.i32.i, %._crit_edge.i.i36.i, %._crit_edge.i.i40.i, %._crit_edge.i.i44.i, %._crit_edge.i.i48.i, %._crit_edge.i.i52.i, %._crit_edge.i.i56.i, %._crit_edge.i.i60.i - %.sink.i = phi i64 [ 3, %._crit_edge.i.i60.i ], [ 12, %._crit_edge.i.i56.i ], [ 11, %._crit_edge.i.i52.i ], [ 6, %._crit_edge.i.i48.i ], [ 6, %._crit_edge.i.i44.i ], [ 5, %._crit_edge.i.i40.i ], [ 5, %._crit_edge.i.i36.i ], [ 4, %._crit_edge.i.i32.i ], [ 4, %._crit_edge.i.i28.i ], [ 3, %._crit_edge.i.i24.i ], [ 6, %._crit_edge.i.i20.i ], [ 5, %._crit_edge.i.i16.i ], [ 5, %._crit_edge.i.i12.i ], [ 4, %._crit_edge.i.i8.i ], [ 7, %._crit_edge.i.i4.i ], [ 5, %._crit_edge.i.i.i ] - %.sink79.i.sroa.phi = phi ptr [ %.sink79.i.sroa.gep, %._crit_edge.i.i60.i ], [ %.sink79.i.sroa.gep89, %._crit_edge.i.i56.i ], [ %.sink79.i.sroa.gep90, %._crit_edge.i.i52.i ], [ %.sink79.i.sroa.gep91, %._crit_edge.i.i48.i ], [ %.sink79.i.sroa.gep91, %._crit_edge.i.i44.i ], [ %.sink79.i.sroa.gep93, %._crit_edge.i.i40.i ], [ %.sink79.i.sroa.gep93, %._crit_edge.i.i36.i ], [ %.sink79.i.sroa.gep95, %._crit_edge.i.i32.i ], [ %.sink79.i.sroa.gep95, %._crit_edge.i.i28.i ], [ %.sink79.i.sroa.gep, %._crit_edge.i.i24.i ], [ %.sink79.i.sroa.gep91, %._crit_edge.i.i20.i ], [ %.sink79.i.sroa.gep93, %._crit_edge.i.i16.i ], [ %.sink79.i.sroa.gep93, %._crit_edge.i.i12.i ], [ %.sink79.i.sroa.gep95, %._crit_edge.i.i8.i ], [ %.sink79.i.sroa.gep102, %._crit_edge.i.i4.i ], [ %.sink79.i.sroa.gep93, %._crit_edge.i.i.i ] + %.sink.i = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i.i ], [ %.sink.sroa.gep107, %._crit_edge.i.i4.i ], [ %.sink.sroa.gep108, %._crit_edge.i.i8.i ], [ %.sink.sroa.gep109, %._crit_edge.i.i12.i ], [ %.sink.sroa.gep110, %._crit_edge.i.i16.i ], [ %.sink.sroa.gep111, %._crit_edge.i.i20.i ], [ %.sink.sroa.gep112, %._crit_edge.i.i24.i ], [ %.sink.sroa.gep113, %._crit_edge.i.i28.i ], [ %.sink.sroa.gep114, %._crit_edge.i.i32.i ], [ %.sink.sroa.gep115, %._crit_edge.i.i36.i ], [ %.sink.sroa.gep116, %._crit_edge.i.i40.i ], [ %.sink.sroa.gep117, %._crit_edge.i.i44.i ], [ %.sink.sroa.gep118, %._crit_edge.i.i48.i ], [ %.sink.sroa.gep119, %._crit_edge.i.i52.i ], [ %.sink.sroa.gep120, %._crit_edge.i.i56.i ], [ %.sink.sroa.gep121, %._crit_edge.i.i60.i ] + %.sink79.i.sroa.phi = phi i64 [ 5, %._crit_edge.i.i.i ], [ 7, %._crit_edge.i.i4.i ], [ 4, %._crit_edge.i.i8.i ], [ 5, %._crit_edge.i.i12.i ], [ 5, %._crit_edge.i.i16.i ], [ 6, %._crit_edge.i.i20.i ], [ 3, %._crit_edge.i.i24.i ], [ 4, %._crit_edge.i.i28.i ], [ 4, %._crit_edge.i.i32.i ], [ 5, %._crit_edge.i.i36.i ], [ 5, %._crit_edge.i.i40.i ], [ 6, %._crit_edge.i.i44.i ], [ 6, %._crit_edge.i.i48.i ], [ 11, %._crit_edge.i.i52.i ], [ 12, %._crit_edge.i.i56.i ], [ 3, %._crit_edge.i.i60.i ] %223 = getelementptr inbounds nuw i8, ptr %12, i64 8 store i64 %.sink.i, ptr %223, align 8, !tbaa !14, !alias.scope !1156 - store i8 0, ptr %.sink79.i.sroa.phi, align 1, !tbaa !15, !alias.scope !1156 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !15, !alias.scope !1156 %224 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_appendEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull @.str.248, i64 noundef 11) to label %.noexc81 unwind label %246 diff --git a/bench/folly/optimized/LogConfigParser.ll b/bench/folly/optimized/LogConfigParser.ll index 83548783f7c..139bb7ff683 100644 --- a/bench/folly/optimized/LogConfigParser.ll +++ b/bench/folly/optimized/LogConfigParser.ll @@ -8222,11 +8222,6 @@ define void @_ZN5folly21parseLogConfigDynamicERKNS_7dynamicE(ptr dead_on_unwind %49 = alloca %"class.std::unordered_map.2", align 8 %50 = load i32, ptr %1, align 8, !tbaa !214 %.not.i.i.i = icmp eq i32 %50, 5 - %.sink8.i.sroa.gep = getelementptr inbounds nuw i8, ptr %16, i64 28 - %.sink8.i.sroa.gep259 = getelementptr inbounds nuw i8, ptr %16, i64 22 - %.sink8.i.sroa.gep261 = getelementptr inbounds nuw i8, ptr %16, i64 23 - %.sink8.i.sroa.gep264 = getelementptr inbounds nuw i8, ptr %16, i64 21 - %.sink8.i.sroa.gep265 = getelementptr inbounds nuw i8, ptr %16, i64 20 br i1 %.not.i.i.i, label %56, label %51 51: ; preds = %2 @@ -10270,42 +10265,50 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit131.i145: ; preds ._crit_edge.i.i.i: ; preds = %.lr.ph.i147._crit_edge store i32 1819047278, ptr %781, align 8, !alias.scope !232, !noalias !229 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %16, i64 20 br label %_ZN5folly12_GLOBAL__N_115dynamicTypenameB5cxx11ERKNS_7dynamicE.exit ._crit_edge.i.i4.i: ; preds = %.lr.ph.i147._crit_edge call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %781, ptr noundef nonnull align 1 dereferenceable(5) @.str.36, i64 5, i1 false), !noalias !229 + %.sink.sroa.gep1310 = getelementptr inbounds nuw i8, ptr %16, i64 21 br label %_ZN5folly12_GLOBAL__N_115dynamicTypenameB5cxx11ERKNS_7dynamicE.exit ._crit_edge.i.i8.i: ; preds = %.lr.ph.i147._crit_edge call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %781, ptr noundef nonnull align 1 dereferenceable(7) @.str.37, i64 7, i1 false), !noalias !229 + %.sink.sroa.gep1311 = getelementptr inbounds nuw i8, ptr %16, i64 23 br label %_ZN5folly12_GLOBAL__N_115dynamicTypenameB5cxx11ERKNS_7dynamicE.exit ._crit_edge.i.i12.i: ; preds = %.lr.ph.i147._crit_edge call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %781, ptr noundef nonnull align 1 dereferenceable(6) @.str.38, i64 6, i1 false), !noalias !229 + %.sink.sroa.gep1312 = getelementptr inbounds nuw i8, ptr %16, i64 22 br label %_ZN5folly12_GLOBAL__N_115dynamicTypenameB5cxx11ERKNS_7dynamicE.exit ._crit_edge.i.i16.i: ; preds = %.lr.ph.i147._crit_edge call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(7) %781, ptr noundef nonnull align 1 dereferenceable(7) @.str.39, i64 7, i1 false), !noalias !229 + %.sink.sroa.gep1313 = getelementptr inbounds nuw i8, ptr %16, i64 23 br label %_ZN5folly12_GLOBAL__N_115dynamicTypenameB5cxx11ERKNS_7dynamicE.exit ._crit_edge.i.i20.i: ; preds = %.lr.ph.i147._crit_edge call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %781, ptr noundef nonnull align 1 dereferenceable(6) @.str.40, i64 6, i1 false), !noalias !229 + %.sink.sroa.gep1314 = getelementptr inbounds nuw i8, ptr %16, i64 22 br label %_ZN5folly12_GLOBAL__N_115dynamicTypenameB5cxx11ERKNS_7dynamicE.exit ._crit_edge.i.i24.i: ; preds = %.lr.ph.i147._crit_edge call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(6) %781, ptr noundef nonnull align 1 dereferenceable(6) @.str.41, i64 6, i1 false), !noalias !229 + %.sink.sroa.gep1315 = getelementptr inbounds nuw i8, ptr %16, i64 22 br label %_ZN5folly12_GLOBAL__N_115dynamicTypenameB5cxx11ERKNS_7dynamicE.exit ._crit_edge.i.i28.i: ; preds = %.lr.ph.i147._crit_edge call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %781, ptr noundef nonnull align 1 dereferenceable(12) @.str.42, i64 12, i1 false), !noalias !229 + %.sink.sroa.gep1316 = getelementptr inbounds nuw i8, ptr %16, i64 28 br label %_ZN5folly12_GLOBAL__N_115dynamicTypenameB5cxx11ERKNS_7dynamicE.exit _ZN5folly12_GLOBAL__N_115dynamicTypenameB5cxx11ERKNS_7dynamicE.exit: ; preds = %._crit_edge.i.i.i, %._crit_edge.i.i4.i, %._crit_edge.i.i8.i, %._crit_edge.i.i12.i, %._crit_edge.i.i16.i, %._crit_edge.i.i20.i, %._crit_edge.i.i24.i, %._crit_edge.i.i28.i - %.sink.i = phi i64 [ 12, %._crit_edge.i.i28.i ], [ 6, %._crit_edge.i.i24.i ], [ 6, %._crit_edge.i.i20.i ], [ 7, %._crit_edge.i.i16.i ], [ 6, %._crit_edge.i.i12.i ], [ 7, %._crit_edge.i.i8.i ], [ 5, %._crit_edge.i.i4.i ], [ 4, %._crit_edge.i.i.i ] - %.sink8.i.sroa.phi = phi ptr [ %.sink8.i.sroa.gep, %._crit_edge.i.i28.i ], [ %.sink8.i.sroa.gep259, %._crit_edge.i.i24.i ], [ %.sink8.i.sroa.gep259, %._crit_edge.i.i20.i ], [ %.sink8.i.sroa.gep261, %._crit_edge.i.i16.i ], [ %.sink8.i.sroa.gep259, %._crit_edge.i.i12.i ], [ %.sink8.i.sroa.gep261, %._crit_edge.i.i8.i ], [ %.sink8.i.sroa.gep264, %._crit_edge.i.i4.i ], [ %.sink8.i.sroa.gep265, %._crit_edge.i.i.i ] + %.sink.i = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i.i ], [ %.sink.sroa.gep1310, %._crit_edge.i.i4.i ], [ %.sink.sroa.gep1311, %._crit_edge.i.i8.i ], [ %.sink.sroa.gep1312, %._crit_edge.i.i12.i ], [ %.sink.sroa.gep1313, %._crit_edge.i.i16.i ], [ %.sink.sroa.gep1314, %._crit_edge.i.i20.i ], [ %.sink.sroa.gep1315, %._crit_edge.i.i24.i ], [ %.sink.sroa.gep1316, %._crit_edge.i.i28.i ] + %.sink8.i.sroa.phi = phi i64 [ 4, %._crit_edge.i.i.i ], [ 5, %._crit_edge.i.i4.i ], [ 7, %._crit_edge.i.i8.i ], [ 6, %._crit_edge.i.i12.i ], [ 7, %._crit_edge.i.i16.i ], [ 6, %._crit_edge.i.i20.i ], [ 6, %._crit_edge.i.i24.i ], [ 12, %._crit_edge.i.i28.i ] %782 = getelementptr inbounds nuw i8, ptr %16, i64 8 store i64 %.sink.i, ptr %782, align 8, !tbaa !39, !alias.scope !232, !noalias !229 - store i8 0, ptr %.sink8.i.sroa.phi, align 1, !tbaa !7, !alias.scope !232, !noalias !229 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !7, !alias.scope !232, !noalias !229 call void @llvm.experimental.noalias.scope.decl(metadata !235) %783 = getelementptr inbounds nuw i8, ptr %15, i64 16 store ptr %783, ptr %15, align 8, !tbaa !70, !alias.scope !235 diff --git a/bench/grpc/optimized/chttp2_transport.ll b/bench/grpc/optimized/chttp2_transport.ll index 6837a49e19e..b062370f40a 100644 --- a/bench/grpc/optimized/chttp2_transport.ll +++ b/bench/grpc/optimized/chttp2_transport.ll @@ -1171,10 +1171,6 @@ entry: %ref.tmp42 = alloca %"class.std::__cxx11::basic_string", align 8 %ref.tmp48 = alloca %"class.absl::lts_20230802::AlphaNum", align 8 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #37 - %ref.tmp2.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp2, i64 8 - %ref.tmp2.sink.sroa.gep16 = getelementptr inbounds nuw i8, ptr %ref.tmp7, i64 8 - %ref.tmp2.sink.sroa.gep17 = getelementptr inbounds nuw i8, ptr %ref.tmp11, i64 8 - %ref.tmp2.sink.sroa.gep18 = getelementptr inbounds nuw i8, ptr %ref.tmp14, i64 8 %call.i3 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) to label %call.i.noexc unwind label %lpad @@ -1214,6 +1210,7 @@ lpad.body: ; preds = %lpad.i, %lpad invoke.cont4: ; preds = %invoke.cont store i64 5, ptr %ref.tmp2, align 8 + %ref.tmp2.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp2, i64 8 br label %invoke.cont15.invoke lpad3: ; preds = %invoke.cont15.invoke, %invoke.cont40, %invoke.cont26, %invoke.cont18 @@ -1223,14 +1220,17 @@ lpad3: ; preds = %invoke.cont15.invok invoke.cont8: ; preds = %invoke.cont store i64 11, ptr %ref.tmp7, align 8 + %ref.tmp2.sink.sroa.gep16 = getelementptr inbounds nuw i8, ptr %ref.tmp7, i64 8 br label %invoke.cont15.invoke invoke.cont12: ; preds = %invoke.cont store i64 3, ptr %ref.tmp11, align 8 + %ref.tmp2.sink.sroa.gep17 = getelementptr inbounds nuw i8, ptr %ref.tmp11, i64 8 br label %invoke.cont15.invoke invoke.cont15: ; preds = %invoke.cont store i64 7, ptr %ref.tmp14, align 8 + %ref.tmp2.sink.sroa.gep18 = getelementptr inbounds nuw i8, ptr %ref.tmp14, i64 8 br label %invoke.cont15.invoke invoke.cont15.invoke: ; preds = %invoke.cont4, %invoke.cont8, %invoke.cont12, %invoke.cont15 @@ -16486,7 +16486,6 @@ entry: %ref.tmp = alloca %"class.absl::lts_20230802::Status", align 8 %ref.tmp18 = alloca %"class.grpc_core::DebugLocation", align 1 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(24) %refs, i8 0, i64 24, i1 false) - %nrefs.0.sroa.gep125 = getelementptr inbounds nuw i8, ptr %refs, i64 8 %arrayctor.end = getelementptr inbounds nuw i8, ptr %refs, i64 24 %read_closed_error = getelementptr inbounds nuw i8, ptr %s, i64 376 %0 = load i64, ptr %read_closed_error, align 8 @@ -16502,6 +16501,7 @@ invoke.cont3: ; preds = %entry for.end.i: ; preds = %invoke.cont3 %1 = load i64, ptr %refs, align 16 %cmp.not.i.i = icmp eq i64 %0, %1 + %nrefs.0.sroa.gep127 = getelementptr inbounds nuw i8, ptr %refs, i64 8 br i1 %cmp.not.i.i, label %invoke.cont5, label %_ZN4absl12lts_202308026Status3RefEm.exit.i.i for.end.i.thread: ; preds = %entry @@ -16510,6 +16510,7 @@ for.end.i.thread: ; preds = %entry %3 = atomicrmw add ptr %2, i32 1 monotonic, align 4 %4 = load i64, ptr %refs, align 16 %cmp.not.i.i132 = icmp eq i64 %0, %4 + %nrefs.0.sroa.gep127133 = getelementptr inbounds nuw i8, ptr %refs, i64 8 br i1 %cmp.not.i.i132, label %if.then.i.i9, label %if.then.i.i.i if.then.i.i.i: ; preds = %for.end.i.thread @@ -16520,6 +16521,7 @@ if.then.i.i.i: ; preds = %for.end.i.thread _ZN4absl12lts_202308026Status3RefEm.exit.i.i: ; preds = %for.end.i, %if.then.i.i.i %7 = phi i64 [ %4, %if.then.i.i.i ], [ %1, %for.end.i ] + %nrefs.0.sroa.gep127135139 = phi ptr [ %nrefs.0.sroa.gep127133, %if.then.i.i.i ], [ %nrefs.0.sroa.gep127, %for.end.i ] store i64 %0, ptr %refs, align 16 %and.i.i5.i.i = and i64 %7, 1 %cmp.i.i6.i.i = icmp eq i64 %and.i.i5.i.i, 0 @@ -16530,9 +16532,11 @@ if.then.i7.i.i: ; preds = %_ZN4absl12lts_20230 to label %invoke.cont5 unwind label %lpad4 invoke.cont5: ; preds = %if.then.i7.i.i, %_ZN4absl12lts_202308026Status3RefEm.exit.i.i, %for.end.i + %nrefs.0.sroa.phi = phi ptr [ %nrefs.0.sroa.gep127135139, %if.then.i7.i.i ], [ %nrefs.0.sroa.gep127135139, %_ZN4absl12lts_202308026Status3RefEm.exit.i.i ], [ %nrefs.0.sroa.gep127, %for.end.i ] br i1 %cmp.i.i.i, label %_ZN4absl12lts_202308026StatusD2Ev.exit, label %if.then.i.i9 if.then.i.i9: ; preds = %for.end.i.thread, %invoke.cont5 + %nrefs.0.sroa.phi153 = phi ptr [ %nrefs.0.sroa.phi, %invoke.cont5 ], [ %nrefs.0.sroa.gep127133, %for.end.i.thread ] invoke void @_ZN4absl12lts_202308026Status15UnrefNonInlinedEm(i64 noundef %0) to label %_ZN4absl12lts_202308026StatusD2Ev.exit unwind label %terminate.lpad.i @@ -16545,7 +16549,7 @@ terminate.lpad.i: ; preds = %if.then.i.i9 _ZN4absl12lts_202308026StatusD2Ev.exit: ; preds = %invoke.cont3, %invoke.cont5, %if.then.i.i9 %nrefs.0142 = phi i64 [ 1, %invoke.cont5 ], [ 1, %if.then.i.i9 ], [ 0, %invoke.cont3 ] - %nrefs.0.sroa.phi141 = phi ptr [ %nrefs.0.sroa.gep125, %invoke.cont5 ], [ %nrefs.0.sroa.gep125, %if.then.i.i9 ], [ %refs, %invoke.cont3 ] + %nrefs.0.sroa.phi141 = phi ptr [ %nrefs.0.sroa.phi, %invoke.cont5 ], [ %nrefs.0.sroa.phi153, %if.then.i.i9 ], [ %refs, %invoke.cont3 ] %cmp.i.i130140 = phi i1 [ false, %invoke.cont5 ], [ false, %if.then.i.i9 ], [ true, %invoke.cont3 ] %write_closed_error = getelementptr inbounds nuw i8, ptr %s, i64 384 %10 = load i64, ptr %write_closed_error, align 8 @@ -24382,8 +24386,6 @@ entry: %0 = getelementptr inbounds nuw i8, ptr %this, i64 8 %1 = load i8, ptr %0, align 8 %tobool = trunc i8 %1 to i1 - %.sink364.sroa.gep = getelementptr inbounds nuw i8, ptr %status_hdr, i64 24 - %.sink364.sroa.gep367 = getelementptr inbounds nuw i8, ptr %status_hdr, i64 25 br i1 %tobool, label %if.end137, label %if.then if.then: ; preds = %entry @@ -24690,6 +24692,7 @@ if.end137: ; preds = %do.end123, %entry if.then168: ; preds = %if.end137 store i8 1, ptr %cond153.sroa.sel323, align 1 %16 = load i32, ptr %11, align 8 + %.sink364.sroa.gep = getelementptr inbounds nuw i8, ptr %status_hdr, i64 24 br label %do.body181 if.else: ; preds = %if.end137 @@ -24704,6 +24707,7 @@ if.else: ; preds = %if.end137 store i8 %conv175, ptr %cond153.sroa.sel335, align 1 %19 = load i32, ptr %11, align 8 %rem = srem i32 %19, 10 + %.sink364.sroa.gep367 = getelementptr inbounds nuw i8, ptr %status_hdr, i64 25 br label %do.body181 do.body181: ; preds = %if.then168, %if.else diff --git a/bench/grpc/optimized/inproc_transport.ll b/bench/grpc/optimized/inproc_transport.ll index 593a5a4acaf..5dfe303675c 100644 --- a/bench/grpc/optimized/inproc_transport.ll +++ b/bench/grpc/optimized/inproc_transport.ll @@ -1727,7 +1727,6 @@ entry: tail call void @llvm.experimental.noalias.scope.decl(metadata !25) %1 = load ptr, ptr %receiver.i, align 8, !noalias !28 %cmp.not.i.i.i = icmp eq ptr %1, null - %.sink2.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %agg.tmp2, i64 8 br i1 %cmp.not.i.i.i, label %_ZN9grpc_core11CallHandler25PullClientInitialMetadataEv.exit, label %_ZN9grpc_core13RefCountedPtrINS_11pipe_detail6CenterISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEEEC2ERKS9_.exit.i.i _ZN9grpc_core13RefCountedPtrINS_11pipe_detail6CenterISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEEEC2ERKS9_.exit.i.i: ; preds = %entry @@ -1816,6 +1815,7 @@ sw.bb5.i.i.i.i.i.i.i.i.i: ; preds = %invoke.cont6 %tobool.i.i.i.i.i.i.i.i.i.i.i.i = trunc i8 %12 to i1 %frombool.i.i.i.i.i.i.i.i.i.i.i.i = and i8 %12, 1 store i8 %frombool.i.i.i.i.i.i.i.i.i.i.i.i, ptr %agg.tmp2, align 8, !alias.scope !35 + %13 = getelementptr inbounds nuw i8, ptr %agg.tmp2, i64 8 br i1 %tobool.i.i.i.i.i.i.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i.i.i.i.i, label %if.else.i.i.i.i.i.i.i.i.i.i.i.i if.then.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %sw.bb5.i.i.i.i.i.i.i.i.i @@ -1837,7 +1837,7 @@ if.then.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i if.then.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i %15 = load i8, ptr %next_factory.i.i.i.i.i33, align 8, !noalias !35 - store i8 %15, ptr %.sink2.i.i.sroa.gep, align 8, !alias.scope !35 + store i8 %15, ptr %13, align 8, !alias.scope !35 %16 = getelementptr inbounds nuw i8, ptr %agg.tmp2, i64 16 %add.ptr.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %agg.tmp3, i64 16 %17 = load i64, ptr %add.ptr.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !35 @@ -1849,7 +1849,7 @@ if.then.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i. if.else.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i.i.i.i %18 = load ptr, ptr %next_factory.i.i.i.i.i33, align 8, !noalias !35 store ptr null, ptr %next_factory.i.i.i.i.i33, align 8, !noalias !35 - store ptr %18, ptr %.sink2.i.i.sroa.gep, align 8, !alias.scope !35 + store ptr %18, ptr %13, align 8, !alias.scope !35 %space.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %agg.tmp2, i64 16 %space3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %agg.tmp3, i64 16 %19 = load i8, ptr %space3.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, align 8, !noalias !35 @@ -1871,20 +1871,21 @@ _ZN9grpc_core9ConstructINS_14promise_detail11PromiseLikeINS1_3MapINS_15Intercept if.else.i.i.i.i.i.i.i.i.i.i.i.i: ; preds = %sw.bb5.i.i.i.i.i.i.i.i.i %23 = load i8, ptr %next_factory.i.i.i.i.i33, align 8, !noalias !35 - store i8 %23, ptr %.sink2.i.i.sroa.gep, align 8, !alias.scope !35 + store i8 %23, ptr %13, align 8, !alias.scope !35 br label %invoke.cont9 tail0.i.i.i.i.i.i.i.i.i: ; preds = %sw.bb.i.i.i.i.i.i.i.i.i, %invoke.cont6 - %24 = load ptr, ptr %next_factory.i.i.i.i.i33, align 8, !noalias !35 - store ptr %24, ptr %.sink2.i.i.sroa.gep, align 8, !alias.scope !35 + %next_factory.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %agg.tmp2, i64 8 + %25 = load ptr, ptr %next_factory.i.i.i.i.i33, align 8, !noalias !35 + store ptr %25, ptr %next_factory.i.i.i.i.i.i.i.i.i, align 8, !alias.scope !35 store ptr null, ptr %next_factory.i.i.i.i.i33, align 8, !noalias !35 br label %invoke.cont9 invoke.cont9: ; preds = %tail0.i.i.i.i.i.i.i.i.i, %if.else.i.i.i.i.i.i.i.i.i.i.i.i, %_ZN9grpc_core9ConstructINS_14promise_detail11PromiseLikeINS1_3MapINS_15InterceptorListISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEE10RunPromiseEZZZNS_12PipeReceiverIS9_E4NextEvENKUlSt8optionalIS9_EE_clESF_ENUlvE_clEvEUlSF_E_EEvEEJSK_EEEvPT_DpOT0_.exit.i.i.i.i.i.i.i.i.i.i.i.i - %.sink2.i.i.sroa.gep35 = getelementptr inbounds nuw i8, ptr %agg.tmp2, i64 72 %next_factory.i.i.i = getelementptr inbounds nuw i8, ptr %agg.tmp2, i64 64 store ptr %8, ptr %next_factory.i.i.i, align 8, !alias.scope !35 - store ptr null, ptr %.sink2.i.i.sroa.gep35, align 8, !alias.scope !35 + %26 = getelementptr inbounds nuw i8, ptr %agg.tmp2, i64 72 + store ptr null, ptr %26, align 8, !alias.scope !35 call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %agg.tmp2.i) call fastcc void @_ZN9grpc_core14promise_detail6TrySeqINS0_3MapINS0_3SeqINS_11pipe_detail4NextISt10unique_ptrI19grpc_metadata_batchNS_5Arena13PooledDeleterEEEEJZNS_12PipeReceiverISA_E4NextEvEUlSt8optionalISA_EE_EEEZNS_11CallHandler25PullClientInitialMetadataEvEUlNS_10NextResultISA_EEE_EEJZNS_12_GLOBAL__N_121InprocClientTransport9StartCallESI_EUlSA_E_NS_17ImmediateOkStatusEEEC2EOSR_(ptr noundef nonnull align 8 dereferenceable(88) %agg.tmp2.i, ptr noundef nonnull align 8 dereferenceable(88) %agg.tmp2) #23 unreachable diff --git a/bench/grpc/optimized/sockaddr_utils.ll b/bench/grpc/optimized/sockaddr_utils.ll index ad8fbe089b5..2424a173648 100644 --- a/bench/grpc/optimized/sockaddr_utils.ll +++ b/bench/grpc/optimized/sockaddr_utils.ll @@ -185,34 +185,33 @@ return: ; preds = %do.end, %if.then5 define noundef range(i32 0, 2) i32 @_Z25grpc_sockaddr_is_wildcardPK21grpc_resolved_addressPi(ptr noundef readonly captures(none) %resolved_addr, ptr noundef writeonly captures(none) %port_out) local_unnamed_addr #3 { entry: %addr4_normalized.sroa.0 = alloca i16, align 2 + %addr4_normalized.sroa.2 = alloca i32, align 4 %0 = load i16, ptr %resolved_addr, align 2 - %tobool.not.sroa.gep26 = getelementptr inbounds nuw i8, ptr %resolved_addr, i64 8 - %tobool.not.sroa.gep30 = getelementptr inbounds nuw i8, ptr %resolved_addr, i64 2 + %tobool.not.sroa.gep26 = getelementptr inbounds nuw i8, ptr %resolved_addr, i64 4 + %tobool.not.sroa.gep30 = getelementptr inbounds nuw i8, ptr %resolved_addr, i64 8 + %tobool.not.sroa.gep31 = getelementptr inbounds nuw i8, ptr %resolved_addr, i64 2 switch i16 %0, label %return [ i16 10, label %if.then6.i i16 2, label %if.then2thread-pre-split ] if.then6.i: ; preds = %entry - %bcmp.i = tail call i32 @bcmp(ptr noundef nonnull readonly dereferenceable(12) %tobool.not.sroa.gep26, ptr noundef nonnull dereferenceable(12) @_ZL15kV4MappedPrefix, i64 12) + %bcmp.i = tail call i32 @bcmp(ptr noundef nonnull readonly dereferenceable(12) %tobool.not.sroa.gep27, ptr noundef nonnull dereferenceable(12) @_ZL15kV4MappedPrefix, i64 12) %cmp8.i = icmp eq i32 %bcmp.i, 0 br i1 %cmp8.i, label %_Z25grpc_sockaddr_is_v4mappedPK21grpc_resolved_addressPS_.exit.thread, label %for.body _Z25grpc_sockaddr_is_v4mappedPK21grpc_resolved_addressPS_.exit.thread: ; preds = %if.then6.i %arrayidx.i = getelementptr inbounds nuw i8, ptr %resolved_addr, i64 20 %1 = load i32, ptr %arrayidx.i, align 4 - %2 = load i16, ptr %tobool.not.sroa.gep30, align 2 + store i32 %1, ptr %addr4_normalized.sroa.2, align 4 + %2 = load i16, ptr %tobool.not.sroa.gep31, align 2 store i16 %2, ptr %addr4_normalized.sroa.0, align 2 br label %if.then2 -if.then2thread-pre-split: ; preds = %entry - %tobool.not.sroa.gep22 = getelementptr inbounds nuw i8, ptr %resolved_addr, i64 4 - %.pr = load i32, ptr %tobool.not.sroa.gep22, align 4 - br label %if.then2 - -if.then2: ; preds = %if.then2thread-pre-split, %_Z25grpc_sockaddr_is_v4mappedPK21grpc_resolved_addressPS_.exit.thread - %3 = phi i32 [ %.pr, %if.then2thread-pre-split ], [ %1, %_Z25grpc_sockaddr_is_v4mappedPK21grpc_resolved_addressPS_.exit.thread ] - %tobool.not.sroa.phi2840 = phi ptr [ %tobool.not.sroa.gep30, %if.then2thread-pre-split ], [ %addr4_normalized.sroa.0, %_Z25grpc_sockaddr_is_v4mappedPK21grpc_resolved_addressPS_.exit.thread ] +if.then2thread-pre-split: ; preds = %entry, %_Z25grpc_sockaddr_is_v4mappedPK21grpc_resolved_addressPS_.exit.thread + %tobool.not.sroa.gep22 = phi ptr [ %addr4_normalized.sroa.0, %_Z25grpc_sockaddr_is_v4mappedPK21grpc_resolved_addressPS_.exit.thread ], [ %tobool.not.sroa.gep31, %entry ] + %.pr = phi ptr [ %addr4_normalized.sroa.2, %_Z25grpc_sockaddr_is_v4mappedPK21grpc_resolved_addressPS_.exit.thread ], [ %tobool.not.sroa.gep23, %entry ] + %3 = load i32, ptr %.pr, align 4 %cmp3.not = icmp eq i32 %3, 0 br i1 %cmp3.not, label %return.sink.split, label %return @@ -223,13 +222,13 @@ for.cond: ; preds = %for.body for.body: ; preds = %if.then6.i, %for.cond %indvars.iv = phi i64 [ %indvars.iv.next, %for.cond ], [ 0, %if.then6.i ] - %arrayidx = getelementptr inbounds nuw [16 x i8], ptr %tobool.not.sroa.gep26, i64 0, i64 %indvars.iv + %arrayidx = getelementptr inbounds nuw [16 x i8], ptr %tobool.not.sroa.gep27, i64 0, i64 %indvars.iv %4 = load i8, ptr %arrayidx, align 1 %cmp14.not = icmp eq i8 %4, 0 br i1 %cmp14.not, label %for.cond, label %return return.sink.split: ; preds = %for.cond, %if.then2 - %.sink.in = phi ptr [ %tobool.not.sroa.phi2840, %if.then2 ], [ %tobool.not.sroa.gep30, %for.cond ] + %.sink.in = phi ptr [ %tobool.not.sroa.phi2840, %if.then2 ], [ %tobool.not.sroa.gep31, %for.cond ] %.sink = load i16, ptr %.sink.in, align 2 %call17 = tail call noundef zeroext i16 @_Z10grpc_ntohst(i16 noundef zeroext %.sink) %conv18 = zext i16 %call17 to i32 @@ -344,8 +343,6 @@ entry: %ref.tmp113 = alloca %"class.absl::lts_20230802::AlphaNum", align 8 %call = tail call ptr @__errno_location() #19 %0 = load i32, ptr %call, align 4 - %resolved_addr.addr.0.sroa.gep26 = getelementptr inbounds nuw i8, ptr %addr_normalized, i64 128 - %resolved_addr.addr.0.sroa.gep27 = getelementptr inbounds nuw i8, ptr %resolved_addr, i64 128 br i1 %normalize, label %land.lhs.true, label %if.end land.lhs.true: ; preds = %entry @@ -379,12 +376,13 @@ if.then6.i: ; preds = %do.end.i %5 = load i16, ptr %sin6_port.i, align 2 %sin_port.i = getelementptr inbounds nuw i8, ptr %addr_normalized, i64 2 store i16 %5, ptr %sin_port.i, align 2 - store i32 16, ptr %resolved_addr.addr.0.sroa.gep26, align 4 + %len.i = getelementptr inbounds nuw i8, ptr %addr_normalized, i64 128 + store i32 16, ptr %len.i, align 4 br label %if.end -if.end: ; preds = %2, %if.then6.i, %do.end.i, %entry - %resolved_addr.addr.0.sroa.phi = phi ptr [ %resolved_addr, %entry ], [ %addr_normalized, %2 ], [ %resolved_addr, %if.then6.i ], [ %resolved_addr, %do.end.i ] - %resolved_addr.addr.0.sroa.phi25 = phi ptr [ %resolved_addr.addr.0.sroa.gep27, %entry ], [ %resolved_addr.addr.0.sroa.gep26, %2 ], [ %resolved_addr.addr.0.sroa.gep27, %if.then6.i ], [ %resolved_addr.addr.0.sroa.gep27, %do.end.i ] +if.end: ; preds = %2, %do.end.i, %if.then6.i, %entry + %resolved_addr.addr.0.sroa.phi = phi ptr [ %resolved_addr, %entry ], [ %addr_normalized, %2 ], [ %resolved_addr, %do.end.i ], [ %resolved_addr, %if.then6.i ] + %resolved_addr.addr.0.sroa.phi25 = getelementptr inbounds nuw i8, ptr %resolved_addr.addr.0.sroa.phi, i64 128 %resolved_addr.addr.0.sroa.phi.sroa.phi136 = getelementptr inbounds nuw i8, ptr %resolved_addr.addr.0.sroa.phi, i64 2 %resolved_addr.addr.0.sroa.phi.sroa.phi131 = getelementptr inbounds nuw i8, ptr %resolved_addr.addr.0.sroa.phi, i64 4 %resolved_addr.addr.0.sroa.phi.sroa.phi116 = getelementptr inbounds nuw i8, ptr %resolved_addr.addr.0.sroa.phi, i64 4 diff --git a/bench/harfbuzz/optimized/harfbuzz.ll b/bench/harfbuzz/optimized/harfbuzz.ll index 35b758f5d1f..e17f8c7e2d6 100644 --- a/bench/harfbuzz/optimized/harfbuzz.ll +++ b/bench/harfbuzz/optimized/harfbuzz.ll @@ -20731,7 +20731,6 @@ define dso_local void @hb_feature_to_string(ptr noundef readonly captures(none) entry: %s = alloca [128 x i8], align 16 %tobool.not = icmp eq i32 %size, 0 - %len.0.sroa.gep = getelementptr inbounds nuw i8, ptr %s, i64 1 br i1 %tobool.not, label %return, label %if.end if.end: ; preds = %entry @@ -20742,6 +20741,7 @@ if.end: ; preds = %entry if.then1: ; preds = %if.end store i8 45, ptr %s, align 16 + %len.0.sroa.gep = getelementptr inbounds nuw i8, ptr %s, i64 1 br label %if.end2 if.end2: ; preds = %if.then1, %if.end @@ -40653,8 +40653,6 @@ entry: %1 = load i32, ptr %num_glyphs, align 8 %cmp.not = icmp ult i32 %glyph, %1 %or.cond = select i1 %tobool.i, i1 %cmp.not, i1 false - %.sroa.gep = getelementptr inbounds nuw i8, ptr %env, i64 12 - %.sroa.gep46 = getelementptr inbounds nuw i8, ptr %env, i64 4172 br i1 %or.cond, label %if.end, label %return if.end: ; preds = %entry @@ -40806,11 +40804,13 @@ _ZNK3CFF12CFF2FDSelect6get_fdEj.exit: ; preds = %if.end, %if.end.i, store ptr %13, ptr %env, align 8 %str.sroa.3.0.env.sroa_idx = getelementptr inbounds nuw i8, ptr %env, i64 8 store i64 %14, ptr %str.sroa.3.0.env.sroa_idx, align 8 - store i32 0, ptr %.sroa.gep, align 4 + %backwards_length.i.i.i.i33 = getelementptr inbounds nuw i8, ptr %env, i64 12 + store i32 0, ptr %backwards_length.i.i.i.i33, align 4 %context.i = getelementptr inbounds nuw i8, ptr %env, i64 4128 %callStack.i = getelementptr inbounds nuw i8, ptr %env, i64 4168 store i8 0, ptr %callStack.i, align 8 - store i32 0, ptr %.sroa.gep46, align 4 + %count.i.i.i34 = getelementptr inbounds nuw i8, ptr %env, i64 4172 + store i32 0, ptr %count.i.i.i34, align 4 %22 = trunc i64 %14 to i32 br label %arrayctor.loop.i.i.i @@ -40980,7 +40980,7 @@ if.end.i.i.i19: ; preds = %for.cond.i %arrayidx.i.i.i.i = getelementptr inbounds nuw i8, ptr %38, i64 %idxprom.i.i.i.i %39 = load i8, ptr %arrayidx.i.i.i.i, align 1 %conv.i.i.i20 = zext i8 %39 to i32 - store i32 %add.i.i.i18, ptr %.sroa.gep, align 4 + store i32 %add.i.i.i18, ptr %backwards_length.i.i.i.i33, align 4 %cmp.i1.i.i = icmp eq i8 %39, 12 br i1 %cmp.i1.i.i, label %if.then5.i.i.i, label %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.i @@ -40995,11 +40995,11 @@ if.end9.i.i.i: ; preds = %if.then5.i.i.i %40 = load i8, ptr %arrayidx.i11.i.i.i, align 1 %conv12.i.i.i = zext i8 %40 to i32 %add.i2.i.i = or disjoint i32 %conv12.i.i.i, 256 - store i32 %add.i6.i.i.i, ptr %.sroa.gep, align 4 + store i32 %add.i6.i.i.i, ptr %backwards_length.i.i.i.i33, align 4 br label %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.i if.end.i.i: ; preds = %for.cond.i - %41 = load i32, ptr %.sroa.gep46, align 4 + %41 = load i32, ptr %count.i.i.i34, align 4 %tobool.not.i.i.i = icmp eq i32 %41, 0 %..i.i = select i1 %tobool.not.i.i.i, i32 14, i32 11 br label %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.i @@ -41016,7 +41016,7 @@ _ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.if.then_crit_edge.i br label %_ZN3CFF16cs_interpreter_tINS_20cff2_cs_interp_env_tINS_8number_tEEE23cff2_cs_opset_extents_t20cff2_extents_param_tE9interpretERS5_.exit _ZNK3CFF15cs_interp_env_tINS_8number_tENS_5SubrsIN2OT7IntTypeIjLj4EEEEEE8in_errorEv.exit.i: ; preds = %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.i - %43 = load i32, ptr %.sroa.gep, align 4 + %43 = load i32, ptr %backwards_length.i.i.i.i33, align 4 %44 = load i32, ptr %str.sroa.3.0.env.sroa_idx, align 8 %cmp.i.i.i.i = icmp ugt i32 %43, %44 %45 = load i8, ptr %argStack.i.i.i, align 8 @@ -41037,7 +41037,7 @@ if.end.i23: ; preds = %lor.lhs.false.i _ZN3CFF16cs_interpreter_tINS_20cff2_cs_interp_env_tINS_8number_tEEE23cff2_cs_opset_extents_t20cff2_extents_param_tE9interpretERS5_.exit: ; preds = %_ZNK3CFF15cs_interp_env_tINS_8number_tENS_5SubrsIN2OT7IntTypeIjLj4EEEEEE8in_errorEv.exit.i, %lor.lhs.false.i, %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.if.then_crit_edge.i %48 = phi i32 [ %.pre9.i, %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.if.then_crit_edge.i ], [ %44, %lor.lhs.false.i ], [ %44, %_ZNK3CFF15cs_interp_env_tINS_8number_tENS_5SubrsIN2OT7IntTypeIjLj4EEEEEE8in_errorEv.exit.i ] %add.i.i3.i = add i32 %48, 1 - store i32 %add.i.i3.i, ptr %.sroa.gep, align 4 + store i32 %add.i.i3.i, ptr %backwards_length.i.i.i.i33, align 4 br label %cleanup if.end6: ; preds = %if.end.i23 @@ -41439,8 +41439,6 @@ entry: %1 = load i32, ptr %num_glyphs, align 8 %cmp.not = icmp ult i32 %glyph, %1 %or.cond = select i1 %tobool.i, i1 %cmp.not, i1 false - %.sroa.gep = getelementptr inbounds nuw i8, ptr %env, i64 12 - %.sroa.gep32 = getelementptr inbounds nuw i8, ptr %env, i64 4172 br i1 %or.cond, label %if.end, label %return if.end: ; preds = %entry @@ -41592,11 +41590,13 @@ _ZNK3CFF12CFF2FDSelect6get_fdEj.exit: ; preds = %if.end, %if.end.i, store ptr %13, ptr %env, align 8 %str.sroa.3.0.env.sroa_idx = getelementptr inbounds nuw i8, ptr %env, i64 8 store i64 %14, ptr %str.sroa.3.0.env.sroa_idx, align 8 - store i32 0, ptr %.sroa.gep, align 4 + %backwards_length.i.i.i.i19 = getelementptr inbounds nuw i8, ptr %env, i64 12 + store i32 0, ptr %backwards_length.i.i.i.i19, align 4 %context.i = getelementptr inbounds nuw i8, ptr %env, i64 4128 %callStack.i = getelementptr inbounds nuw i8, ptr %env, i64 4168 store i8 0, ptr %callStack.i, align 8 - store i32 0, ptr %.sroa.gep32, align 4 + %count.i.i.i20 = getelementptr inbounds nuw i8, ptr %env, i64 4172 + store i32 0, ptr %count.i.i.i20, align 4 %22 = trunc i64 %14 to i32 br label %arrayctor.loop.i.i.i @@ -41760,7 +41760,7 @@ if.end.i.i.i9: ; preds = %for.cond.i %arrayidx.i.i.i.i = getelementptr inbounds nuw i8, ptr %38, i64 %idxprom.i.i.i.i %39 = load i8, ptr %arrayidx.i.i.i.i, align 1 %conv.i.i.i10 = zext i8 %39 to i32 - store i32 %add.i.i.i8, ptr %.sroa.gep, align 4 + store i32 %add.i.i.i8, ptr %backwards_length.i.i.i.i19, align 4 %cmp.i1.i.i = icmp eq i8 %39, 12 br i1 %cmp.i1.i.i, label %if.then5.i.i.i, label %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.i @@ -41775,11 +41775,11 @@ if.end9.i.i.i: ; preds = %if.then5.i.i.i %40 = load i8, ptr %arrayidx.i11.i.i.i, align 1 %conv12.i.i.i = zext i8 %40 to i32 %add.i2.i.i = or disjoint i32 %conv12.i.i.i, 256 - store i32 %add.i6.i.i.i, ptr %.sroa.gep, align 4 + store i32 %add.i6.i.i.i, ptr %backwards_length.i.i.i.i19, align 4 br label %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.i if.end.i.i: ; preds = %for.cond.i - %41 = load i32, ptr %.sroa.gep32, align 4 + %41 = load i32, ptr %count.i.i.i20, align 4 %tobool.not.i.i.i = icmp eq i32 %41, 0 %..i.i = select i1 %tobool.not.i.i.i, i32 14, i32 11 br label %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.i @@ -41796,7 +41796,7 @@ _ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.if.then_crit_edge.i br label %if.then.i _ZNK3CFF15cs_interp_env_tINS_8number_tENS_5SubrsIN2OT7IntTypeIjLj4EEEEEE8in_errorEv.exit.i: ; preds = %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.i - %43 = load i32, ptr %.sroa.gep, align 4 + %43 = load i32, ptr %backwards_length.i.i.i.i19, align 4 %44 = load i32, ptr %str.sroa.3.0.env.sroa_idx, align 8 %cmp.i.i.i.i = icmp ugt i32 %43, %44 %45 = load i8, ptr %argStack.i.i.i, align 8 @@ -41812,7 +41812,7 @@ lor.lhs.false.i: ; preds = %_ZNK3CFF15cs_interp if.then.i: ; preds = %lor.lhs.false.i, %_ZNK3CFF15cs_interp_env_tINS_8number_tENS_5SubrsIN2OT7IntTypeIjLj4EEEEEE8in_errorEv.exit.i, %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.if.then_crit_edge.i %47 = phi i32 [ %.pre9.i, %_ZN3CFF20cff2_cs_interp_env_tINS_8number_tEE8fetch_opEv.exit.if.then_crit_edge.i ], [ %44, %_ZNK3CFF15cs_interp_env_tINS_8number_tENS_5SubrsIN2OT7IntTypeIjLj4EEEEEE8in_errorEv.exit.i ], [ %44, %lor.lhs.false.i ] %add.i.i3.i = add i32 %47, 1 - store i32 %add.i.i3.i, ptr %.sroa.gep, align 4 + store i32 %add.i.i3.i, ptr %backwards_length.i.i.i.i19, align 4 br label %_ZN3CFF16cs_interpreter_tINS_20cff2_cs_interp_env_tINS_8number_tEEE20cff2_cs_opset_path_t17cff2_path_param_tE9interpretERS5_.exit if.end.i13: ; preds = %lor.lhs.false.i @@ -60190,11 +60190,8 @@ entry: %found_script7 = getelementptr inbounds nuw i8, ptr %m, i64 8 %script_index = getelementptr inbounds nuw i8, ptr %this, i64 56 %language_index = getelementptr inbounds nuw i8, ptr %this, i64 64 - %indvars.iv425.sroa.gep = getelementptr inbounds nuw i8, ptr %feature_index, i64 4 - %indvars.iv435.sroa.gep515 = getelementptr inbounds nuw i8, ptr %required_feature_stage, i64 4 %indvars.iv.sroa.gep516 = getelementptr inbounds nuw i8, ptr %required_feature_tag, i64 4 %indvars.iv.sroa.gep519 = getelementptr inbounds nuw i8, ptr %required_feature_index, i64 4 - %indvars.iv435.sroa.gep522 = getelementptr inbounds nuw i8, ptr %required_feature_index, i64 4 br label %for.body for.body: ; preds = %entry, %for.body @@ -60451,6 +60448,7 @@ for.body149.lr.ph: ; preds = %for.body126 %features = getelementptr inbounds nuw i8, ptr %m, i64 16 %arrayidx237 = getelementptr inbounds nuw i8, ptr %feature_index, i64 4 %wide.trip.count430 = zext i32 %40 to i64 + %indvars.iv425.sroa.gep = getelementptr inbounds nuw i8, ptr %feature_index, i64 4 br label %for.body149 for.body149: ; preds = %for.body149.lr.ph, %for.inc316 @@ -61163,6 +61161,8 @@ if.end323: ; preds = %if.then.i.i236, %if %arrayZ.i244 = getelementptr inbounds nuw i8, ptr %m, i64 24 %length.i246 = getelementptr inbounds nuw i8, ptr %m, i64 20 %stages508 = getelementptr inbounds nuw i8, ptr %m, i64 64 + %indvars.iv435.sroa.gep515 = getelementptr inbounds nuw i8, ptr %required_feature_stage, i64 4 + %indvars.iv435.sroa.gep522 = getelementptr inbounds nuw i8, ptr %required_feature_index, i64 4 br label %for.body327 for.body327: ; preds = %if.end323, %for.inc522 @@ -129905,10 +129905,6 @@ entry: %glyphCount = getelementptr inbounds nuw i8, ptr %this, i64 8 %0 = load i32, ptr %glyphCount, align 8 %cmp.not = icmp ult i32 %glyph, %0 - %private_indices.shared_indices.sroa.gep = getelementptr inbounds nuw i8, ptr %private_indices, i64 8 - %private_indices.shared_indices.sroa.gep575 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 8 - %private_indices.shared_indices.sroa.gep577 = getelementptr inbounds nuw i8, ptr %private_indices, i64 4 - %private_indices.shared_indices.sroa.gep578 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 4 br i1 %cmp.not, label %if.end, label %return if.end: ; preds = %entry @@ -130102,6 +130098,10 @@ if.end15: ; preds = %_ZN2OT18TupleVariat %40 = and i64 %sub, 4294967295 %idx.ext = select i1 %phantom_only, i64 %40, i64 0 %conv.i200 = zext i32 %conv57 to i64 + %private_indices.shared_indices.sroa.gep575 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 8 + %private_indices.shared_indices.sroa.gep578 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 4 + %private_indices.shared_indices.sroa.gep = getelementptr inbounds nuw i8, ptr %private_indices, i64 8 + %private_indices.shared_indices.sroa.gep577 = getelementptr inbounds nuw i8, ptr %private_indices, i64 4 %tobool.not.i.i = icmp eq i32 %points.sroa.5.8.extract.trunc, 0 %conv.i352 = and i64 %points.coerce1, 4294967295 %mul.i353 = mul nuw nsw i64 %conv.i352, 12 @@ -131348,8 +131348,10 @@ cleanup419: ; preds = %land.lhs.true.i.i.i br i1 %tobool.not.i.i532, label %return, label %if.then.i.i533 if.then.i.i533: ; preds = %cleanup419 - store i32 0, ptr %private_indices.shared_indices.sroa.gep578, align 4 - %161 = load ptr, ptr %private_indices.shared_indices.sroa.gep575, align 8 + %length.i.i.i534 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 4 + store i32 0, ptr %length.i.i.i534, align 4 + %arrayZ.i.i535 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 8 + %161 = load ptr, ptr %arrayZ.i.i535, align 8 call void @free(ptr noundef %161) #55 br label %return @@ -135281,9 +135283,6 @@ entry: %privateDicts = getelementptr inbounds nuw i8, ptr %this, i64 176 %num_glyphs = getelementptr inbounds nuw i8, ptr %this, i64 192 %tobool.not = icmp eq ptr %face, null - %.sroa.gep = getelementptr inbounds nuw i8, ptr %env, i64 12 - %.sroa.gep294 = getelementptr inbounds nuw i8, ptr %env93, i64 12 - %.sroa.gep297 = getelementptr inbounds nuw i8, ptr %env2, i64 12 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(44) %globalSubrs, i8 0, i64 44, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(36) %fontDicts, i8 0, i64 36, i1 false) br i1 %tobool.not, label %return, label %if.then.i @@ -135433,7 +135432,8 @@ if.end22: ; preds = %_ZNK10hb_array_tIKh store ptr %add.ptr.i.i.i, ptr %env, align 8 %topDictStr.sroa.3.0.env.sroa_idx = getelementptr inbounds nuw i8, ptr %env, i64 8 store i64 %retval.sroa.2.8.insert.ext.i, ptr %topDictStr.sroa.3.0.env.sroa_idx, align 8 - store i32 0, ptr %.sroa.gep, align 4 + %backwards_length.i.i.i = getelementptr inbounds nuw i8, ptr %env, i64 12 + store i32 0, ptr %backwards_length.i.i.i, align 4 store i32 0, ptr %topDict, align 8 %argStack.i.i = getelementptr inbounds nuw i8, ptr %env, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %values.i.i.i.i, i8 0, i64 32, i1 false) @@ -135452,7 +135452,7 @@ if.end.i.i: ; preds = %while.cond.i %arrayidx.i.i.i = getelementptr inbounds nuw i8, ptr %24, i64 %idxprom.i.i.i %25 = load i8, ptr %arrayidx.i.i.i, align 1 %conv.i.i24 = zext i8 %25 to i32 - store i32 %add.i.i23, ptr %.sroa.gep, align 4 + store i32 %add.i.i23, ptr %backwards_length.i.i.i, align 4 %cmp.i2.i = icmp eq i8 %25, 12 br i1 %cmp.i2.i, label %if.then5.i.i, label %_ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i @@ -135467,13 +135467,13 @@ if.end9.i.i: ; preds = %if.then5.i.i %26 = load i8, ptr %arrayidx.i11.i.i, align 1 %conv12.i.i = zext i8 %26 to i32 %add.i3.i = or disjoint i32 %conv12.i.i, 256 - store i32 %add.i6.i.i, ptr %.sroa.gep, align 4 + store i32 %add.i6.i.i, ptr %backwards_length.i.i.i, align 4 br label %_ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i _ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i: ; preds = %if.end9.i.i, %if.then5.i.i, %if.end.i.i %retval.0.i.i25 = phi i32 [ 65535, %if.then5.i.i ], [ %add.i3.i, %if.end9.i.i ], [ %conv.i.i24, %if.end.i.i ] call void @_ZN3CFF21cff2_top_dict_opset_t10process_opEjRNS_12interp_env_tINS_8number_tEEERNS_22cff2_top_dict_values_tE(i32 noundef %retval.0.i.i25, ptr noundef nonnull align 8 dereferenceable(4128) %env, ptr noundef nonnull align 8 dereferenceable(40) %topDict) - %27 = load i32, ptr %.sroa.gep, align 4 + %27 = load i32, ptr %backwards_length.i.i.i, align 4 %28 = load i32, ptr %topDictStr.sroa.3.0.env.sroa_idx, align 8 %cmp.i.i.i26 = icmp ugt i32 %27, %28 %29 = load i8, ptr %argStack.i.i, align 8 @@ -135800,11 +135800,13 @@ for.cond.preheader: ; preds = %if.end74 for.body.lr.ph: ; preds = %for.cond.preheader %count.i.i.i143 = getelementptr inbounds nuw i8, ptr %env93, i64 20 %fontDictStr.sroa.3.0.env93.sroa_idx = getelementptr inbounds nuw i8, ptr %env93, i64 8 + %backwards_length.i.i.i144 = getelementptr inbounds nuw i8, ptr %env93, i64 12 %length.i145 = getelementptr inbounds nuw i8, ptr %this, i64 164 %arrayZ.i = getelementptr inbounds nuw i8, ptr %this, i64 168 %argStack.i.i169 = getelementptr inbounds nuw i8, ptr %env93, i64 16 %count.i.i.i.i = getelementptr inbounds nuw i8, ptr %env2, i64 20 %privDictStr.sroa.3.0.env2.sroa_idx = getelementptr inbounds nuw i8, ptr %env2, i64 8 + %backwards_length.i.i.i.i = getelementptr inbounds nuw i8, ptr %env2, i64 12 %ivs.i = getelementptr inbounds nuw i8, ptr %env2, i64 4128 %seen_vsindex.i = getelementptr inbounds nuw i8, ptr %env2, i64 4132 %length.i196 = getelementptr inbounds nuw i8, ptr %this, i64 180 @@ -135852,7 +135854,7 @@ if.end91: ; preds = %_ZNK10hb_array_tIKh store i8 0, ptr %79, align 8 store ptr %83, ptr %env93, align 8 store i64 %84, ptr %fontDictStr.sroa.3.0.env93.sroa_idx, align 8 - store i32 0, ptr %.sroa.gep294, align 4 + store i32 0, ptr %backwards_length.i.i.i144, align 4 %89 = load i32, ptr %length.i145, align 4 %add.i = add i32 %89, 1 %call.i = call noundef zeroext i1 @_ZN11hb_vector_tIN3CFF23cff2_font_dict_values_tELb0EE6resizeEibb(ptr noundef nonnull align 8 dereferenceable(16) %fontDicts, i32 noundef %add.i, i1 noundef zeroext true, i1 noundef zeroext false) @@ -135876,7 +135878,7 @@ if.end99: ; preds = %_ZN11hb_vector_tIN3 %values.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i, i64 8 store i32 0, ptr %arrayidx.i, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(28) %values.i.i, i8 0, i64 28, i1 false) - %.pre6.i152 = load i32, ptr %.sroa.gep294, align 4 + %.pre6.i152 = load i32, ptr %backwards_length.i.i.i144, align 4 %.pre7.i154 = load i32, ptr %fontDictStr.sroa.3.0.env93.sroa_idx, align 8 br label %while.cond.i155 @@ -135893,7 +135895,7 @@ if.end.i.i159: ; preds = %while.cond.i155 %arrayidx.i.i.i161 = getelementptr inbounds nuw i8, ptr %94, i64 %idxprom.i.i.i160 %95 = load i8, ptr %arrayidx.i.i.i161, align 1 %conv.i.i162 = zext i8 %95 to i32 - store i32 %add.i.i157, ptr %.sroa.gep294, align 4 + store i32 %add.i.i157, ptr %backwards_length.i.i.i144, align 4 %cmp.i2.i163 = icmp eq i8 %95, 12 br i1 %cmp.i2.i163, label %if.then5.i.i171, label %_ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i164 @@ -135908,13 +135910,13 @@ if.end9.i.i174: ; preds = %if.then5.i.i171 %96 = load i8, ptr %arrayidx.i11.i.i176, align 1 %conv12.i.i177 = zext i8 %96 to i32 %add.i3.i178 = or disjoint i32 %conv12.i.i177, 256 - store i32 %add.i6.i.i172, ptr %.sroa.gep294, align 4 + store i32 %add.i6.i.i172, ptr %backwards_length.i.i.i144, align 4 br label %_ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i164 _ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i164: ; preds = %if.end9.i.i174, %if.then5.i.i171, %if.end.i.i159 %retval.0.i.i165 = phi i32 [ 65535, %if.then5.i.i171 ], [ %add.i3.i178, %if.end9.i.i174 ], [ %conv.i.i162, %if.end.i.i159 ] call void @_ZN3CFF22cff2_font_dict_opset_t10process_opEjRNS_12interp_env_tINS_8number_tEEERNS_23cff2_font_dict_values_tE(i32 noundef %retval.0.i.i165, ptr noundef nonnull align 8 dereferenceable(4128) %env93, ptr noundef nonnull align 8 dereferenceable(36) %arrayidx.i) - %97 = load i32, ptr %.sroa.gep294, align 4 + %97 = load i32, ptr %backwards_length.i.i.i144, align 4 %98 = load i32, ptr %fontDictStr.sroa.3.0.env93.sroa_idx, align 8 %cmp.i.i.i168 = icmp ugt i32 %97, %98 %99 = load i8, ptr %argStack.i.i169, align 8 @@ -135968,7 +135970,7 @@ _ZN3CFFL20StructAtOffsetOrNullINS_14UnsizedByteStrEJRjEEERKT_PKviR21hb_sanitize_ store i8 0, ptr %80, align 8 store ptr %retval.0.i192, ptr %env2, align 8 store i64 %retval.sroa.2.8.insert.ext.i194, ptr %privDictStr.sroa.3.0.env2.sroa_idx, align 8 - store i32 0, ptr %.sroa.gep297, align 4 + store i32 0, ptr %backwards_length.i.i.i.i, align 4 store i32 0, ptr %ivs.i, align 8 store i8 0, ptr %seen_vsindex.i, align 4 %107 = load i32, ptr %length.i196, align 4 @@ -136017,7 +136019,7 @@ _ZN11hb_vector_tIN3CFF31cff2_private_dict_values_base_tINS0_10dict_val_tEEELb0EE store ptr @_hb_NullPool, ptr %localSubrs.i.i, align 8 %ivs.i.i = getelementptr inbounds nuw i8, ptr %retval.0.i208, i64 40 store i32 0, ptr %ivs.i.i, align 8 - %.pre6.i217 = load i32, ptr %.sroa.gep297, align 4 + %.pre6.i217 = load i32, ptr %backwards_length.i.i.i.i, align 4 %.pre7.i219 = load i32, ptr %privDictStr.sroa.3.0.env2.sroa_idx, align 8 br label %while.cond.i220 @@ -136034,7 +136036,7 @@ if.end.i.i224: ; preds = %while.cond.i220 %arrayidx.i.i.i226 = getelementptr inbounds nuw i8, ptr %115, i64 %idxprom.i.i.i225 %116 = load i8, ptr %arrayidx.i.i.i226, align 1 %conv.i.i227 = zext i8 %116 to i32 - store i32 %add.i.i222, ptr %.sroa.gep297, align 4 + store i32 %add.i.i222, ptr %backwards_length.i.i.i.i, align 4 %cmp.i2.i228 = icmp eq i8 %116, 12 br i1 %cmp.i2.i228, label %if.then5.i.i236, label %_ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i229 @@ -136049,13 +136051,13 @@ if.end9.i.i239: ; preds = %if.then5.i.i236 %117 = load i8, ptr %arrayidx.i11.i.i241, align 1 %conv12.i.i242 = zext i8 %117 to i32 %add.i3.i243 = or disjoint i32 %conv12.i.i242, 256 - store i32 %add.i6.i.i237, ptr %.sroa.gep297, align 4 + store i32 %add.i6.i.i237, ptr %backwards_length.i.i.i.i, align 4 br label %_ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i229 _ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i229: ; preds = %if.end9.i.i239, %if.then5.i.i236, %if.end.i.i224 %retval.0.i.i230 = phi i32 [ 65535, %if.then5.i.i236 ], [ %add.i3.i243, %if.end9.i.i239 ], [ %conv.i.i227, %if.end.i.i224 ] call void @_ZN3CFF25cff2_private_dict_opset_t10process_opEjRNS_27cff2_priv_dict_interp_env_tERNS_31cff2_private_dict_values_base_tINS_10dict_val_tEEE(i32 noundef %retval.0.i.i230, ptr noundef nonnull align 8 dereferenceable(4133) %env2, ptr noundef nonnull align 8 dereferenceable(44) %retval.0.i208) - %118 = load i32, ptr %.sroa.gep297, align 4 + %118 = load i32, ptr %backwards_length.i.i.i.i, align 4 %119 = load i32, ptr %privDictStr.sroa.3.0.env2.sroa_idx, align 8 %cmp.i.i.i233 = icmp ugt i32 %118, %119 %120 = load i8, ptr %argStack.i.i234, align 8 @@ -139321,7 +139323,6 @@ entry: %num_glyphs = getelementptr inbounds nuw i8, ptr %this, i64 296 %num_charset_entries = getelementptr inbounds nuw i8, ptr %this, i64 300 %tobool.not = icmp eq ptr %face, null - %.sroa.gep = getelementptr inbounds nuw i8, ptr %env, i64 12 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(84) %blob, i8 0, i64 84, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %fontDicts, i8 0, i64 40, i1 false) br i1 %tobool.not, label %return, label %if.then.i @@ -139620,7 +139621,8 @@ if.end48: ; preds = %_ZNK10hb_array_tIKh store ptr %38, ptr %env, align 8 %topDictStr.sroa.3.0.env.sroa_idx = getelementptr inbounds nuw i8, ptr %env, i64 8 store i64 %39, ptr %topDictStr.sroa.3.0.env.sroa_idx, align 8 - store i32 0, ptr %.sroa.gep, align 4 + %backwards_length.i.i.i.i = getelementptr inbounds nuw i8, ptr %env, i64 12 + store i32 0, ptr %backwards_length.i.i.i.i, align 4 %prev_offset.i = getelementptr inbounds nuw i8, ptr %env, i64 4128 store i32 0, ptr %prev_offset.i, align 8 %last_offset.i = getelementptr inbounds nuw i8, ptr %env, i64 4132 @@ -139647,7 +139649,7 @@ if.end.i.i: ; preds = %while.cond.i %arrayidx.i.i.i = getelementptr inbounds nuw i8, ptr %47, i64 %idxprom.i.i.i %48 = load i8, ptr %arrayidx.i.i.i, align 1 %conv.i.i50 = zext i8 %48 to i32 - store i32 %add.i.i48, ptr %.sroa.gep, align 4 + store i32 %add.i.i48, ptr %backwards_length.i.i.i.i, align 4 %cmp.i2.i = icmp eq i8 %48, 12 br i1 %cmp.i2.i, label %if.then5.i.i, label %_ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i @@ -139662,13 +139664,13 @@ if.end9.i.i: ; preds = %if.then5.i.i %49 = load i8, ptr %arrayidx.i11.i.i, align 1 %conv12.i.i = zext i8 %49 to i32 %add.i3.i = or disjoint i32 %conv12.i.i, 256 - store i32 %add.i6.i.i, ptr %.sroa.gep, align 4 + store i32 %add.i6.i.i, ptr %backwards_length.i.i.i.i, align 4 br label %_ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i _ZN3CFF12interp_env_tINS_8number_tEE8fetch_opEv.exit.i: ; preds = %if.end9.i.i, %if.then5.i.i, %if.end.i.i %retval.0.i.i51 = phi i32 [ 65535, %if.then5.i.i ], [ %add.i3.i, %if.end9.i.i ], [ %conv.i.i50, %if.end.i.i ] call void @_ZN3CFF21cff1_top_dict_opset_t10process_opEjRNS_26cff1_top_dict_interp_env_tERNS_22cff1_top_dict_values_tE(i32 noundef %retval.0.i.i51, ptr noundef nonnull align 8 dereferenceable(4136) %env, ptr noundef nonnull align 8 dereferenceable(112) %topDict) - %50 = load i32, ptr %.sroa.gep, align 4 + %50 = load i32, ptr %backwards_length.i.i.i.i, align 4 %51 = load i32, ptr %topDictStr.sroa.3.0.env.sroa_idx, align 8 %cmp.i.i.i52 = icmp ugt i32 %50, %51 %52 = load i8, ptr %argStack.i.i, align 8 @@ -219003,7 +219005,6 @@ entry: %glyphs.i.i = alloca [3 x i32], align 4 %glyph.i.i = alloca i32, align 4 %call = tail call noundef zeroext i1 (ptr, ptr, ptr, ...) @_ZN11hb_buffer_t7messageEP9hb_font_tPKcz(ptr noundef nonnull align 8 dereferenceable(220) %buffer, ptr noundef %font, ptr noundef nonnull @.str.151) - %indvars.iv258.i.sroa.gep68 = getelementptr inbounds nuw i8, ptr %glyphs695.i, i64 4 br i1 %call, label %if.end, label %return if.end: ; preds = %entry @@ -219345,6 +219346,7 @@ for.body.lr.ph: ; preds = %while.cond.i, %cond %arrayinit.element49.i = getelementptr inbounds nuw i8, ptr %glyphs.i, i64 8 %have_positions.i.i = getelementptr inbounds nuw i8, ptr %buffer, i64 83 %pos.i.i = getelementptr inbounds nuw i8, ptr %buffer, i64 120 + %indvars.iv258.i.sroa.gep68 = getelementptr inbounds nuw i8, ptr %glyphs695.i, i64 4 %.pre = load ptr, ptr %info.i, align 8 %arrayidx1.i.phi.trans.insert = getelementptr inbounds nuw i8, ptr %.pre, i64 15 %.pre112 = load i8, ptr %arrayidx1.i.phi.trans.insert, align 1 diff --git a/bench/harfbuzz/optimized/hb-static.ll b/bench/harfbuzz/optimized/hb-static.ll index 1d40f0a1692..c4676a33d4d 100644 --- a/bench/harfbuzz/optimized/hb-static.ll +++ b/bench/harfbuzz/optimized/hb-static.ll @@ -3613,10 +3613,6 @@ entry: %glyphCount = getelementptr inbounds nuw i8, ptr %this, i64 8 %0 = load i32, ptr %glyphCount, align 8 %cmp.not = icmp ult i32 %glyph, %0 - %private_indices.shared_indices.sroa.gep = getelementptr inbounds nuw i8, ptr %private_indices, i64 8 - %private_indices.shared_indices.sroa.gep575 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 8 - %private_indices.shared_indices.sroa.gep577 = getelementptr inbounds nuw i8, ptr %private_indices, i64 4 - %private_indices.shared_indices.sroa.gep578 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 4 br i1 %cmp.not, label %if.end, label %return if.end: ; preds = %entry @@ -3810,6 +3806,10 @@ if.end15: ; preds = %_ZN2OT18TupleVariat %40 = and i64 %sub, 4294967295 %idx.ext = select i1 %phantom_only, i64 %40, i64 0 %conv.i200 = zext i32 %conv57 to i64 + %private_indices.shared_indices.sroa.gep575 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 8 + %private_indices.shared_indices.sroa.gep578 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 4 + %private_indices.shared_indices.sroa.gep = getelementptr inbounds nuw i8, ptr %private_indices, i64 8 + %private_indices.shared_indices.sroa.gep577 = getelementptr inbounds nuw i8, ptr %private_indices, i64 4 %tobool.not.i.i = icmp eq i32 %points.sroa.5.8.extract.trunc, 0 %conv.i352 = and i64 %points.coerce1, 4294967295 %mul.i353 = mul nuw nsw i64 %conv.i352, 12 @@ -5056,8 +5056,10 @@ cleanup419: ; preds = %land.lhs.true.i.i.i br i1 %tobool.not.i.i532, label %return, label %if.then.i.i533 if.then.i.i533: ; preds = %cleanup419 - store i32 0, ptr %private_indices.shared_indices.sroa.gep578, align 4 - %161 = load ptr, ptr %private_indices.shared_indices.sroa.gep575, align 8 + %length.i.i.i534 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 4 + store i32 0, ptr %length.i.i.i534, align 4 + %arrayZ.i.i535 = getelementptr inbounds nuw i8, ptr %shared_indices, i64 8 + %161 = load ptr, ptr %arrayZ.i.i535, align 8 call void @free(ptr noundef %161) #13 br label %return diff --git a/bench/html5ever-rs/optimized/126f7y4y0nk6dpjh.ll b/bench/html5ever-rs/optimized/126f7y4y0nk6dpjh.ll index 7b1ec3cf7fe..a3145bd6cc9 100644 --- a/bench/html5ever-rs/optimized/126f7y4y0nk6dpjh.ll +++ b/bench/html5ever-rs/optimized/126f7y4y0nk6dpjh.ll @@ -547,14 +547,6 @@ define hidden void @_ZN4core5slice4sort10merge_sort17h79343fe3696549afE(ptr noal %8 = alloca { ptr, i64, i64, {}, {} }, align 8 %9 = alloca { ptr, i64 }, align 8 %10 = icmp ult i64 %1, 21 - %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.sink.sroa.gep347 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sink.sroa.gep349 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %.sink.sroa.gep350 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %.sink.sroa.gep352 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %.sink.sroa.gep353 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %.sink.sroa.gep355 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %.sink.sroa.gep356 = getelementptr inbounds nuw i8, ptr %5, i64 24 br i1 %10, label %25, label %11 11: ; preds = %3 @@ -1015,6 +1007,10 @@ _ZN4core5slice4sort20provide_sorted_batch17hfc511b2652135f95E.exit: ; preds = %_ 160: ; preds = %158 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6), !noalias !148 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 + %.sink.sroa.gep349 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %.sink.sroa.gep352 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %.sink.sroa.gep355 = getelementptr inbounds nuw i8, ptr %6, i64 24 br label %.invoke257 161: ; preds = %158 @@ -1028,6 +1024,10 @@ _ZN4core5slice4sort20provide_sorted_batch17hfc511b2652135f95E.exit: ; preds = %_ 168: ; preds = %161 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5), !noalias !151 + %.sink.sroa.gep347 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %.sink.sroa.gep350 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %.sink.sroa.gep353 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %.sink.sroa.gep356 = getelementptr inbounds nuw i8, ptr %5, i64 24 br label %.invoke257 .invoke257: ; preds = %160, %168 diff --git a/bench/hwloc/optimized/misc.ll b/bench/hwloc/optimized/misc.ll index ac58f72a2be..c304722a140 100644 --- a/bench/hwloc/optimized/misc.ll +++ b/bench/hwloc/optimized/misc.ll @@ -41,46 +41,38 @@ define hidden void @hwloc_add_uname_info(ptr noundef %0, ptr noundef %1) local_u %.not.not.i = icmp eq i32 %12, 0 br i1 %.not.not.i, label %hwloc_get_info_by_name.exit, label %8 -hwloc_get_info_by_name.exit.thread: ; preds = %8, %2 - %.0.sroa.gep2556 = getelementptr inbounds nuw i8, ptr %3, i64 130 - %.0.sroa.gep3158 = getelementptr inbounds nuw i8, ptr %3, i64 195 - %.0.sroa.gep3760 = getelementptr inbounds nuw i8, ptr %3, i64 65 - %.0.sroa.gep4362 = getelementptr inbounds nuw i8, ptr %3, i64 260 - br label %15 - hwloc_get_info_by_name.exit: ; preds = %9 %13 = getelementptr inbounds nuw i8, ptr %10, i64 8 %14 = load ptr, ptr %13, align 8, !tbaa !16 %.not = icmp eq ptr %14, null - %.0.sroa.gep25 = getelementptr inbounds nuw i8, ptr %3, i64 130 - %.0.sroa.gep31 = getelementptr inbounds nuw i8, ptr %3, i64 195 - %.0.sroa.gep37 = getelementptr inbounds nuw i8, ptr %3, i64 65 - %.0.sroa.gep43 = getelementptr inbounds nuw i8, ptr %3, i64 260 - br i1 %.not, label %15, label %39 - -15: ; preds = %hwloc_get_info_by_name.exit.thread, %hwloc_get_info_by_name.exit - %.0.sroa.gep4370 = phi ptr [ %.0.sroa.gep4362, %hwloc_get_info_by_name.exit.thread ], [ %.0.sroa.gep43, %hwloc_get_info_by_name.exit ] - %.0.sroa.gep3768 = phi ptr [ %.0.sroa.gep3760, %hwloc_get_info_by_name.exit.thread ], [ %.0.sroa.gep37, %hwloc_get_info_by_name.exit ] - %.0.sroa.gep3166 = phi ptr [ %.0.sroa.gep3158, %hwloc_get_info_by_name.exit.thread ], [ %.0.sroa.gep31, %hwloc_get_info_by_name.exit ] - %.0.sroa.gep2564 = phi ptr [ %.0.sroa.gep2556, %hwloc_get_info_by_name.exit.thread ], [ %.0.sroa.gep25, %hwloc_get_info_by_name.exit ] - %.0.sroa.gep2463 = getelementptr inbounds nuw i8, ptr %1, i64 130 - %.0.sroa.gep3065 = getelementptr inbounds nuw i8, ptr %1, i64 195 - %.0.sroa.gep3667 = getelementptr inbounds nuw i8, ptr %1, i64 65 - %.0.sroa.gep4269 = getelementptr inbounds nuw i8, ptr %1, i64 260 + br i1 %.not, label %hwloc_get_info_by_name.exit.thread, label %39 + +hwloc_get_info_by_name.exit.thread:; preds = %8, %2, %hwloc_get_info_by_name.exit %.not47 = icmp eq ptr %1, null - br i1 %.not47, label %16, label %19 + br i1 %.not47, label %16, label %15 -16: ; preds = %15 +16: ; preds = %hwloc_get_info_by_name.exit.thread + %.0.sroa.gep24 = getelementptr inbounds nuw i8, ptr %1, i64 130 + %.0.sroa.gep30 = getelementptr inbounds nuw i8, ptr %1, i64 195 + %.0.sroa.gep36 = getelementptr inbounds nuw i8, ptr %1, i64 65 + %.0.sroa.gep42 = getelementptr inbounds nuw i8, ptr %1, i64 260 + br label %19 + +16: ; preds = %hwloc_get_info_by_name.exit.thread %17 = call i32 @uname(ptr noundef nonnull %3) #7 %18 = icmp slt i32 %17, 0 + %.0.sroa.gep25 = getelementptr inbounds nuw i8, ptr %3, i64 130 + %.0.sroa.gep31 = getelementptr inbounds nuw i8, ptr %3, i64 195 + %.0.sroa.gep37 = getelementptr inbounds nuw i8, ptr %3, i64 65 + %.0.sroa.gep43 = getelementptr inbounds nuw i8, ptr %3, i64 260 br i1 %18, label %39, label %19 -19: ; preds = %15, %16 - %.0.sroa.phi20 = phi ptr [ %3, %16 ], [ %1, %15 ] - %.0.sroa.phi26 = phi ptr [ %.0.sroa.gep2564, %16 ], [ %.0.sroa.gep2463, %15 ] - %.0.sroa.phi32 = phi ptr [ %.0.sroa.gep3166, %16 ], [ %.0.sroa.gep3065, %15 ] - %.0.sroa.phi38 = phi ptr [ %.0.sroa.gep3768, %16 ], [ %.0.sroa.gep3667, %15 ] - %.0.sroa.phi44 = phi ptr [ %.0.sroa.gep4370, %16 ], [ %.0.sroa.gep4269, %15 ] +19: ; preds = %16, %16 + %.0.sroa.phi20 = phi ptr [ %1, %16 ], [ %3, %16 ] + %.0.sroa.phi26 = phi ptr [ %.0.sroa.gep24, %16 ], [ %.0.sroa.gep25, %16 ] + %.0.sroa.phi32 = phi ptr [ %.0.sroa.gep30, %16 ], [ %.0.sroa.gep31, %16 ] + %.0.sroa.phi38 = phi ptr [ %.0.sroa.gep36, %16 ], [ %.0.sroa.gep37, %16 ] + %.0.sroa.phi44 = phi ptr [ %.0.sroa.gep42, %16 ], [ %.0.sroa.gep43, %16 ] %20 = load i8, ptr %.0.sroa.phi20, align 1, !tbaa !17 %.not48 = icmp eq i8 %20, 0 br i1 %.not48, label %23, label %21 diff --git a/bench/hyperscan/optimized/fdr.ll b/bench/hyperscan/optimized/fdr.ll index eb4ac803e5e..537e3080de4 100644 --- a/bench/hyperscan/optimized/fdr.ll +++ b/bench/hyperscan/optimized/fdr.ll @@ -268,14 +268,13 @@ entry: %add.ptr.i = getelementptr inbounds i8, ptr %3, i64 %7 %sub.i = sub i64 %4, %7 %cmp.i = icmp ult i64 %sub.i, 17 - %numZone.i.0.sroa.gep = getelementptr inbounds nuw i8, ptr %zones, i64 256 + %numZone.i.0.sroa.gep = getelementptr inbounds nuw i8, ptr %zones, i64 64 + %floodPtr.i = getelementptr inbounds nuw i8, ptr %zones, i64 96 + store ptr %add.ptr.i1745, ptr %floodPtr.i, align 32 br i1 %cmp.i, label %if.then.i, label %if.end.i if.then.i: ; preds = %entry %add.ptr1.i = getelementptr inbounds i8, ptr %3, i64 %4 - %add.ptr.i1745 = getelementptr inbounds nuw i8, ptr %zones, i64 64 - %floodPtr.i = getelementptr inbounds nuw i8, ptr %zones, i64 96 - store ptr %add.ptr.i1745, ptr %floodPtr.i, align 32 %sub.ptr.lhs.cast.i1746 = ptrtoint ptr %add.ptr1.i to i64 %gepdiff.neg = sub i64 %7, %4 %9 = trunc i64 %gepdiff.neg to i8 @@ -392,12 +391,8 @@ createShortZone.exit: ; preds = %sw.default.i1771, % br label %prepareZones.exit if.end.i: ; preds = %entry - %numZone.i.0.sroa.gep1778 = getelementptr inbounds nuw i8, ptr %zones, i64 128 %add.ptr.i1784 = getelementptr inbounds nuw i8, ptr %add.ptr.i, i64 16 - %add.ptr2.i1785 = getelementptr inbounds nuw i8, ptr %zones, i64 64 - %floodPtr.i1786 = getelementptr inbounds nuw i8, ptr %zones, i64 96 - store ptr %add.ptr2.i1785, ptr %floodPtr.i1786, align 32 - store i8 0, ptr %add.ptr2.i1785, align 64 + store i8 0, ptr %numZone.i.0.sroa.gep, align 64 %add.ptr5.i = getelementptr inbounds i8, ptr %add.ptr3, i64 -8 %24 = load i64, ptr %add.ptr5.i, align 1 store i64 %24, ptr %zones, align 64 @@ -429,6 +424,7 @@ if.end.i: ; preds = %entry %sub6.i = add i64 %sub.i, -3 %and.i = and i64 %sub6.i, -16 %cmp8.i = icmp sgt i64 %and.i, 16 + %numZone.i.0.sroa.gep1778 = getelementptr inbounds nuw i8, ptr %zones, i64 128 br i1 %cmp8.i, label %if.then9.i, label %if.end12.i if.then9.i: ; preds = %if.end.i @@ -443,6 +439,7 @@ if.then9.i: ; preds = %if.end.i store ptr %8, ptr %floodPtr.i1814, align 32 %shift.i1815 = getelementptr inbounds nuw i8, ptr %zones, i64 192 store i8 0, ptr %shift.i1815, align 64 + %numZone.i.0.sroa.gep = getelementptr inbounds nuw i8, ptr %zones, i64 256 %.pre2104 = ptrtoint ptr %add.ptr7.i to i64 br label %if.end12.i diff --git a/bench/icu/optimized/escapesrc.ll b/bench/icu/optimized/escapesrc.ll index d1b6a2d5ded..da87a951392 100644 --- a/bench/icu/optimized/escapesrc.ll +++ b/bench/icu/optimized/escapesrc.ll @@ -163,8 +163,6 @@ entry: %tmp = alloca [9 x i8], align 1 %c = alloca i32, align 4 %bytes = alloca [4 x i8], align 1 - %i27.1.sroa.gep = getelementptr inbounds nuw i8, ptr %bytes, i64 1 - %i27.1.sroa.gep38 = getelementptr inbounds nuw i8, ptr %bytes, i64 2 %cmp52.not = icmp eq i64 %chars, 0 br i1 %cmp52.not, label %for.end, label %for.body @@ -229,6 +227,7 @@ if.then40: ; preds = %if.else, %if.else38 %6 = trunc i32 %shr41 to i8 %conv43 = or i8 %6, -32 store i8 %conv43, ptr %bytes, align 1 + %.sink.sroa.gep56 = getelementptr inbounds nuw i8, ptr %bytes, i64 1 br label %if.end58 if.else46: ; preds = %if.else38 @@ -240,12 +239,14 @@ if.else46: ; preds = %if.else38 %8 = trunc i32 %shr52 to i8 %9 = and i8 %8, 63 %conv55 = or disjoint i8 %9, -128 - store i8 %conv55, ptr %i27.1.sroa.gep, align 1 + %arrayidx57 = getelementptr inbounds nuw i8, ptr %bytes, i64 1 + store i8 %conv55, ptr %arrayidx57, align 1 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %bytes, i64 2 br label %if.end58 if.end58: ; preds = %if.else46, %if.then40 - %i27.1.sroa.phi = phi ptr [ %i27.1.sroa.gep, %if.then40 ], [ %i27.1.sroa.gep38, %if.else46 ] - %i27.1 = phi i64 [ 2, %if.then40 ], [ 3, %if.else46 ] + %i27.1.sroa.phi = phi ptr [ %.sink.sroa.gep, %if.else46 ], [ %.sink.sroa.gep56, %if.then40 ] + %i27.1 = phi i64 [ 3, %if.else46 ], [ 2, %if.then40 ] %shr59 = lshr i32 %2, 6 %10 = trunc i32 %shr59 to i8 %11 = and i8 %10, 63 diff --git a/bench/icu/optimized/rbt_pars.ll b/bench/icu/optimized/rbt_pars.ll index 48279abd98f..464b96be43b 100644 --- a/bench/icu/optimized/rbt_pars.ll +++ b/bench/icu/optimized/rbt_pars.ll @@ -4794,20 +4794,6 @@ _ZN6icu_7513UnicodeString8truncateEi.exit: ; preds = %if.then.i, %if.else %segmentObjects = getelementptr inbounds nuw i8, ptr %this, i64 384 tail call void @_ZN6icu_757UVector17removeAllElementsEv(ptr noundef nonnull align 8 dereferenceable(40) %segmentObjects) call void @_ZN6icu_758RuleHalfC1ERNS_20TransliteratorParserE(ptr noundef nonnull align 8 dereferenceable(112) %_left, ptr noundef nonnull align 8 dereferenceable(498) %this) - %right.0.sroa.gep = getelementptr inbounds nuw i8, ptr %_left, i64 76 - %right.0.sroa.gep118 = getelementptr inbounds nuw i8, ptr %_right, i64 76 - %right.0.sroa.gep120 = getelementptr inbounds nuw i8, ptr %_left, i64 80 - %right.0.sroa.gep121 = getelementptr inbounds nuw i8, ptr %_right, i64 80 - %right.0.sroa.gep123 = getelementptr inbounds nuw i8, ptr %_left, i64 84 - %right.0.sroa.gep124 = getelementptr inbounds nuw i8, ptr %_right, i64 84 - %right.0.sroa.gep126 = getelementptr inbounds nuw i8, ptr %_left, i64 72 - %right.0.sroa.gep127 = getelementptr inbounds nuw i8, ptr %_right, i64 72 - %right.0.sroa.gep129 = getelementptr inbounds nuw i8, ptr %_left, i64 92 - %right.0.sroa.gep130 = getelementptr inbounds nuw i8, ptr %_right, i64 92 - %right.0.sroa.gep132 = getelementptr inbounds nuw i8, ptr %_left, i64 93 - %right.0.sroa.gep133 = getelementptr inbounds nuw i8, ptr %_right, i64 93 - %right.0.sroa.gep135 = getelementptr inbounds nuw i8, ptr %_left, i64 8 - %right.0.sroa.gep136 = getelementptr inbounds nuw i8, ptr %_right, i64 8 invoke void @_ZN6icu_758RuleHalfC1ERNS_20TransliteratorParserE(ptr noundef nonnull align 8 dereferenceable(112) %_right, ptr noundef nonnull align 8 dereferenceable(498) %this) to label %invoke.cont3 unwind label %lpad @@ -5014,15 +5000,19 @@ invoke.cont67: ; preds = %invoke.cont62 br i1 %cmp71.not, label %if.end75, label %invoke.cont265.invoke if.end75: ; preds = %invoke.cont67 - %37 = load i8, ptr %right.0.sroa.gep129, align 4 + %37 = getelementptr inbounds nuw i8, ptr %_left, i64 92 + %37 = load i8, ptr %anchorStart, align 4 %tobool76.not = icmp eq i8 %37, 0 - %38 = load i8, ptr %right.0.sroa.gep132, align 1 + %38 = getelementptr inbounds nuw i8, ptr %_left, i64 93 + %38 = load i8, ptr %anchorEnd, align 1 %tobool78.not = icmp eq i8 %38, 0 %or.cond190 = select i1 %tobool76.not, i1 %tobool78.not, i1 false - %39 = load i8, ptr %right.0.sroa.gep130, align 4 + %39 = getelementptr inbounds nuw i8, ptr %_right, i64 92 + %39 = load i8, ptr %anchorStart80, align 4 %tobool81.not = icmp eq i8 %39, 0 %or.cond191 = select i1 %or.cond190, i1 %tobool81.not, i1 false - %40 = load i8, ptr %right.0.sroa.gep133, align 1 + %40 = getelementptr inbounds nuw i8, ptr %_right, i64 93 + %40 = load i8, ptr %anchorEnd83, align 1 %tobool84.not = icmp eq i8 %40, 0 %or.cond192 = select i1 %or.cond191, i1 %tobool84.not, i1 false br i1 %or.cond192, label %if.end88, label %invoke.cont265.invoke @@ -5033,7 +5023,8 @@ if.end88: ; preds = %if.end75 br i1 %new.isnull, label %invoke.cont265.invoke, label %new.notnull new.notnull: ; preds = %if.end88 - invoke void @_ZN6icu_7513UnicodeStringC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(64) %call89, ptr noundef nonnull align 8 dereferenceable(64) %right.0.sroa.gep136) + %text90 = getelementptr inbounds nuw i8, ptr %_right, i64 8 + invoke void @_ZN6icu_7513UnicodeStringC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(64) %call89, ptr noundef nonnull align 8 dereferenceable(64) %text90) to label %if.end97 unwind label %lpad91 lpad91: ; preds = %new.notnull @@ -5166,27 +5157,41 @@ land.lhs.true156: ; preds = %for.end153 if.end164: ; preds = %for.end153, %land.lhs.true156 %cmp166 = icmp eq i32 %.pre314, 1 + %right.0.sroa.gep118 = getelementptr inbounds nuw i8, ptr %_right, i64 76 + %right.0.sroa.gep121 = getelementptr inbounds nuw i8, ptr %_right, i64 80 + %right.0.sroa.gep124 = getelementptr inbounds nuw i8, ptr %_right, i64 84 + %right.0.sroa.gep127 = getelementptr inbounds nuw i8, ptr %_right, i64 72 + %right.0.sroa.gep130 = getelementptr inbounds nuw i8, ptr %_right, i64 92 + %right.0.sroa.gep133 = getelementptr inbounds nuw i8, ptr %_right, i64 93 + %right.0.sroa.gep136 = getelementptr inbounds nuw i8, ptr %_right, i64 8 + %left.0.sroa.gep143 = getelementptr inbounds nuw i8, ptr %_left, i64 72 + %left.0.sroa.gep146 = getelementptr inbounds nuw i8, ptr %_left, i64 84 + %left.0.sroa.gep149 = getelementptr inbounds nuw i8, ptr %_left, i64 76 + %left.0.sroa.gep155 = getelementptr inbounds nuw i8, ptr %_left, i64 80 + %left.0.sroa.gep158 = getelementptr inbounds nuw i8, ptr %_left, i64 8 + %left.0.sroa.gep182 = getelementptr inbounds nuw i8, ptr %_left, i64 92 + %left.0.sroa.gep185 = getelementptr inbounds nuw i8, ptr %_left, i64 93 br i1 %cmp166, label %if.then167, label %if.end168 if.then167: ; preds = %if.end164 br label %if.end168 if.end168: ; preds = %if.then167, %if.end164 - %left.0.sroa.phi144 = phi ptr [ %right.0.sroa.gep124, %if.then167 ], [ %right.0.sroa.gep123, %if.end164 ] - %left.0.sroa.phi162 = phi ptr [ %right.0.sroa.gep127, %if.then167 ], [ %right.0.sroa.gep126, %if.end164 ] - %left.0.sroa.phi171 = phi ptr [ %right.0.sroa.gep136, %if.then167 ], [ %right.0.sroa.gep135, %if.end164 ] - %left.0.sroa.phi174 = phi ptr [ %right.0.sroa.gep118, %if.then167 ], [ %right.0.sroa.gep, %if.end164 ] - %left.0.sroa.phi177 = phi ptr [ %right.0.sroa.gep121, %if.then167 ], [ %right.0.sroa.gep120, %if.end164 ] - %left.0.sroa.phi180 = phi ptr [ %right.0.sroa.gep130, %if.then167 ], [ %right.0.sroa.gep129, %if.end164 ] - %left.0.sroa.phi183 = phi ptr [ %right.0.sroa.gep133, %if.then167 ], [ %right.0.sroa.gep132, %if.end164 ] + %left.0.sroa.phi144 = phi ptr [ %right.0.sroa.gep124, %if.then167 ], [ %left.0.sroa.gep146, %if.end164 ] + %left.0.sroa.phi162 = phi ptr [ %right.0.sroa.gep127, %if.then167 ], [ %left.0.sroa.gep143, %if.end164 ] + %left.0.sroa.phi171 = phi ptr [ %right.0.sroa.gep136, %if.then167 ], [ %left.0.sroa.gep158, %if.end164 ] + %left.0.sroa.phi174 = phi ptr [ %right.0.sroa.gep118, %if.then167 ], [ %left.0.sroa.gep149, %if.end164 ] + %left.0.sroa.phi177 = phi ptr [ %right.0.sroa.gep121, %if.then167 ], [ %left.0.sroa.gep155, %if.end164 ] + %left.0.sroa.phi180 = phi ptr [ %right.0.sroa.gep130, %if.then167 ], [ %left.0.sroa.gep182, %if.end164 ] + %left.0.sroa.phi183 = phi ptr [ %right.0.sroa.gep133, %if.then167 ], [ %left.0.sroa.gep185, %if.end164 ] %left.0 = phi ptr [ %_right, %if.then167 ], [ %_left, %if.end164 ] - %right.0.sroa.phi = phi ptr [ %right.0.sroa.gep, %if.then167 ], [ %right.0.sroa.gep118, %if.end164 ] - %right.0.sroa.phi119 = phi ptr [ %right.0.sroa.gep120, %if.then167 ], [ %right.0.sroa.gep121, %if.end164 ] - %right.0.sroa.phi128 = phi ptr [ %right.0.sroa.gep129, %if.then167 ], [ %right.0.sroa.gep130, %if.end164 ] - %right.0.sroa.phi131 = phi ptr [ %right.0.sroa.gep132, %if.then167 ], [ %right.0.sroa.gep133, %if.end164 ] - %right.0.sroa.phi134 = phi ptr [ %right.0.sroa.gep135, %if.then167 ], [ %right.0.sroa.gep136, %if.end164 ] - %right.0.sroa.phi137 = phi ptr [ %right.0.sroa.gep126, %if.then167 ], [ %right.0.sroa.gep127, %if.end164 ] - %right.0.sroa.phi140 = phi ptr [ %right.0.sroa.gep123, %if.then167 ], [ %right.0.sroa.gep124, %if.end164 ] + %right.0.sroa.phi = phi ptr [ %left.0.sroa.gep149, %if.then167 ], [ %right.0.sroa.gep118, %if.end164 ] + %right.0.sroa.phi119 = phi ptr [ %left.0.sroa.gep155, %if.then167 ], [ %right.0.sroa.gep121, %if.end164 ] + %right.0.sroa.phi128 = phi ptr [ %left.0.sroa.gep182, %if.then167 ], [ %right.0.sroa.gep130, %if.end164 ] + %right.0.sroa.phi131 = phi ptr [ %left.0.sroa.gep185, %if.then167 ], [ %right.0.sroa.gep133, %if.end164 ] + %right.0.sroa.phi134 = phi ptr [ %left.0.sroa.gep158, %if.then167 ], [ %right.0.sroa.gep136, %if.end164 ] + %right.0.sroa.phi137 = phi ptr [ %left.0.sroa.gep143, %if.then167 ], [ %right.0.sroa.gep127, %if.end164 ] + %right.0.sroa.phi140 = phi ptr [ %left.0.sroa.gep146, %if.then167 ], [ %right.0.sroa.gep124, %if.end164 ] %right.0 = phi ptr [ %_left, %if.then167 ], [ %_right, %if.end164 ] br i1 %cmp155.not, label %if.then171, label %if.end173 diff --git a/bench/icu/optimized/ucnv_bld.ll b/bench/icu/optimized/ucnv_bld.ll index 75ef021ebe6..3f02ff5f502 100644 --- a/bench/icu/optimized/ucnv_bld.ll +++ b/bench/icu/optimized/ucnv_bld.ll @@ -524,18 +524,16 @@ entry: store i8 1, ptr %mayContainOption, align 1 %0 = load i32, ptr %err, align 4 %cmp.i = icmp slt i32 %0, 1 - %pPieces.addr.0.sroa.gep = getelementptr inbounds nuw i8, ptr %pPieces, i64 60 - %pPieces.addr.0.sroa.gep142 = getelementptr inbounds nuw i8, ptr %stackPieces, i64 60 - %pPieces.addr.0.sroa.gep144 = getelementptr inbounds nuw i8, ptr %pPieces, i64 220 - %pPieces.addr.0.sroa.gep145 = getelementptr inbounds nuw i8, ptr %stackPieces, i64 220 br i1 %cmp.i, label %if.end, label %return if.end: ; preds = %entry %cmp = icmp eq ptr %pPieces, null - %cmp2.not = icmp eq ptr %pArgs, null br i1 %cmp, label %if.then1, label %if.end5 if.then1: ; preds = %if.end + %cmp2.not = icmp eq ptr %pArgs, null + %pPieces.addr.0.sroa.gep142 = getelementptr inbounds nuw i8, ptr %stackPieces, i64 60 + %pPieces.addr.0.sroa.gep145 = getelementptr inbounds nuw i8, ptr %stackPieces, i64 220 br i1 %cmp2.not, label %if.then7, label %if.then3 if.then3: ; preds = %if.then1 @@ -543,7 +541,10 @@ if.then3: ; preds = %if.then1 br label %return if.end5: ; preds = %if.end - br i1 %cmp2.not, label %if.then7, label %if.end8 + %pPieces.addr.0.sroa.gep144 = getelementptr inbounds nuw i8, ptr %pPieces, i64 220 + %pPieces.addr.0.sroa.gep = getelementptr inbounds nuw i8, ptr %pPieces, i64 60 + %cmp6 = icmp eq ptr %pArgs, null + br i1 %cmp6, label %if.then7, label %if.end8 if.then7: ; preds = %if.then1, %if.end5 %pPieces.addr.0155 = phi ptr [ %pPieces, %if.end5 ], [ %stackPieces, %if.then1 ] @@ -1555,15 +1556,15 @@ ucnv_loadSharedData_75.exit.i: ; preds = %if.end.i3 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %stackArgs.i.i) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(40) %stackArgs.i.i, i8 0, i64 24, i1 false) store i32 40, ptr %stackArgs.i.i, align 8 - %pPieces.addr.0.sroa.gep.i.i = getelementptr inbounds nuw i8, ptr %stackPieces.i.i, i64 60 %pPieces.addr.0.sroa.gep144.i.i = getelementptr inbounds nuw i8, ptr %stackPieces.i.i, i64 220 - %pArgs.addr.0.sroa.phi171.i.i = getelementptr inbounds nuw i8, ptr %stackArgs.i.i, i64 24 - %pArgs.addr.0.sroa.phi161.i.i = getelementptr inbounds nuw i8, ptr %stackArgs.i.i, i64 32 + %pArgs.addr.0.sroa.phi171.i.i = getelementptr inbounds nuw i8, ptr %stackPieces.i.i, i64 60 + %pArgs.addr.0.sroa.phi161.i.i = getelementptr inbounds nuw i8, ptr %stackArgs.i.i, i64 24 + %pArgs.addr.0.sroa.phi167.i.i = getelementptr inbounds nuw i8, ptr %stackArgs.i.i, i64 32 store i8 0, ptr %stackPieces.i.i, align 4 store i8 0, ptr %pPieces.addr.0.sroa.gep.i.i, align 4 store i32 0, ptr %pPieces.addr.0.sroa.gep144.i.i, align 4 - store ptr %pPieces.addr.0.sroa.gep.i.i, ptr %pArgs.addr.0.sroa.phi161.i.i, align 8 - store ptr @.str, ptr %pArgs.addr.0.sroa.phi171.i.i, align 8 + store ptr %pPieces.addr.0.sroa.gep.i.i, ptr %pArgs.addr.0.sroa.phi167.i.i, align 8 + store ptr @.str, ptr %pArgs.addr.0.sroa.phi177.i.i, align 8 %call2.i.i = call ptr @ucnv_createConverterFromSharedData_75(ptr noundef nonnull %tempConverter.i, ptr noundef nonnull @_UTF8Data_75, ptr noundef nonnull %stackArgs.i.i, ptr noundef nonnull %localStatus.i) %3 = load i32, ptr %localStatus.i, align 4 %cmp.i5.i.i = icmp sgt i32 %3, 0 diff --git a/bench/icu/optimized/uts46.ll b/bench/icu/optimized/uts46.ll index a68b70fc6bc..428598a6e7d 100644 --- a/bench/icu/optimized/uts46.ll +++ b/bench/icu/optimized/uts46.ll @@ -1955,33 +1955,43 @@ entry: %punycode = alloca %"class.icu_75::UnicodeString", align 8 %0 = load i32, ptr %errorCode, align 4 %cmp.i = icmp slt i32 %0, 1 - %labelString.0.sroa.gep = getelementptr inbounds nuw i8, ptr %fromPunycode, i64 8 - %labelString.0.sroa.gep223 = getelementptr inbounds nuw i8, ptr %dest, i64 8 - %labelString.0.sroa.gep229 = getelementptr inbounds nuw i8, ptr %fromPunycode, i64 12 - %labelString.0.sroa.gep230 = getelementptr inbounds nuw i8, ptr %dest, i64 12 - %labelString.0.sroa.gep243 = getelementptr inbounds nuw i8, ptr %fromPunycode, i64 10 - %labelString.0.sroa.gep244 = getelementptr inbounds nuw i8, ptr %dest, i64 10 - %labelString.0.sroa.gep250 = getelementptr inbounds nuw i8, ptr %fromPunycode, i64 24 - %labelString.0.sroa.gep251 = getelementptr inbounds nuw i8, ptr %dest, i64 24 br i1 %cmp.i, label %if.end, label %return if.end: ; preds = %entry store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN6icu_7513UnicodeStringE, i64 16), ptr %fromPunycode, align 8 - store i16 2, ptr %labelString.0.sroa.gep, align 8 - %1 = load i16, ptr %labelString.0.sroa.gep223, align 8 + %fUnion2.i = getelementptr inbounds nuw i8, ptr %fromPunycode, i64 8 + store i16 2, ptr %fUnion2.i, align 8 + %fUnion.i = getelementptr inbounds nuw i8, ptr %dest, i64 8 + %1 = load i16, ptr %fUnion.i, align 8 %2 = and i16 %1, 17 %tobool.not.i = icmp eq i16 %2, 0 + br i1 %tobool.not.i, label %if.else.i, label %_ZNK6icu_7513UnicodeString9getBufferEv.exit + +if.else.i: ; preds = %if.end %3 = and i16 %1, 2 %tobool6.not.i = icmp eq i16 %3, 0 - %4 = load ptr, ptr %labelString.0.sroa.gep251, align 8 - %spec.select324 = select i1 %tobool6.not.i, ptr %4, ptr %labelString.0.sroa.gep244 - %retval.0.i = select i1 %tobool.not.i, ptr %spec.select324, ptr null + br i1 %tobool6.not.i, label %if.else9.i, label %if.then7.i + +if.then7.i:; preds = %if.else.i + %fBuffer.i = getelementptr inbounds nuw i8, ptr %dest, i64 10 + br label %_ZNK6icu_7513UnicodeString9getBufferEv.exit + +if.else9.i: ; preds = %if.else.i + %fArray.i = getelementptr inbounds nuw i8, ptr %dest, i64 24 + %4 = load ptr, ptr %fArray.i, align 8 + br label %_ZNK6icu_7513UnicodeString9getBufferEv.exit + +_ZNK6icu_7513UnicodeString9getBufferEv.exit: ; preds = %if.end, %if.then7.i, %if.else9.i + %retval.0.i = phi ptr [ %fBuffer.i, %if.then7.i ], [ %4, %if.else9.i ], [ null, %if.end ] %idx.ext = sext i32 %labelStart to i64 %add.ptr = getelementptr inbounds i16, ptr %retval.0.i, i64 %idx.ext %cmp = icmp slt i32 %labelLength, 4 + %labelString.0.sroa.gep234 = getelementptr inbounds nuw i8, ptr %dest, i64 12 + %labelString.0.sroa.gep248 = getelementptr inbounds nuw i8, ptr %dest, i64 10 + %labelString.0.sroa.gep255 = getelementptr inbounds nuw i8, ptr %dest, i64 24 br i1 %cmp, label %if.end81, label %land.lhs.true -land.lhs.true: ; preds = %if.end +land.lhs.true: ; preds = %_ZNK6icu_7513UnicodeString9getBufferEv.exit %5 = load i16, ptr %add.ptr, align 2 %cmp3 = icmp eq i16 %5, 120 br i1 %cmp3, label %land.lhs.true4, label %land.lhs.true90 @@ -2048,7 +2058,7 @@ if.end31: ; preds = %invoke.cont27 store i32 0, ptr %punycodeErrorCode, align 4 %add.ptr32 = getelementptr inbounds nuw i8, ptr %add.ptr, i64 8 %sub33 = add nsw i32 %labelLength, -4 - %14 = load i16, ptr %labelString.0.sroa.gep, align 8 + %14 = load i16, ptr %fUnion2.i, align 8 %15 = and i16 %14, 2 %tobool.not.i160 = icmp eq i16 %15, 0 %fCapacity.i = getelementptr inbounds nuw i8, ptr %fromPunycode, i64 16 @@ -2080,7 +2090,7 @@ if.then44: ; preds = %invoke.cont41 if.end45: ; preds = %invoke.cont41 store i32 0, ptr %punycodeErrorCode, align 4 - %18 = load i16, ptr %labelString.0.sroa.gep, align 8 + %18 = load i16, ptr %fUnion2.i, align 8 %19 = and i16 %18, 2 %tobool.not.i162 = icmp eq i16 %19, 0 %20 = load i32, ptr %fCapacity.i, align 8 @@ -2131,30 +2141,46 @@ if.then71: ; preds = %if.end69 br label %if.then301.invoke if.end76: ; preds = %if.end69 - %27 = load i16, ptr %labelString.0.sroa.gep, align 8 + %27 = load i16, ptr %fUnion2.i, align 8 %28 = and i16 %27, 17 %tobool.not.i170 = icmp eq i16 %28, 0 + br i1 %tobool.not.i170, label %if.else.i172, label %_ZNK6icu_7513UnicodeString9getBufferEv.exit178 + +if.else.i172: ; preds = %if.end76 %29 = and i16 %27, 2 %tobool6.not.i173 = icmp eq i16 %29, 0 - %30 = load ptr, ptr %labelString.0.sroa.gep250, align 8 - %spec.select325 = select i1 %tobool6.not.i173, ptr %30, ptr %labelString.0.sroa.gep243 - %retval.0.i171 = select i1 %tobool.not.i170, ptr %spec.select325, ptr null + br i1 %tobool6.not.i173, label %if.else9.i176, label %if.then7.i174 + +if.then7.i174:; preds = %if.else.i172 + %fBuffer.i175 = getelementptr inbounds nuw i8, ptr %fromPunycode, i64 10 + br label %_ZNK6icu_7513UnicodeString9getBufferEv.exit178 + +if.else9.i176: ; preds = %if.else.i172 + %fArray.i177 = getelementptr inbounds nuw i8, ptr %fromPunycode, i64 24 + %30 = load ptr, ptr %fArray.i177, align 8 + br label %_ZNK6icu_7513UnicodeString9getBufferEv.exit178 + +_ZNK6icu_7513UnicodeString9getBufferEv.exit178: ; preds = %if.end76, %if.then7.i174, %if.else9.i176 + %retval.0.i171 = phi ptr [ %fBuffer.i175, %if.then7.i174 ], [ %30, %if.else9.i176 ], [ null, %if.end76 ] %cmp.i.i = icmp slt i16 %27, 0 %31 = ashr i16 %27, 5 %shr.i.i = sext i16 %31 to i32 - %32 = load i32, ptr %labelString.0.sroa.gep229, align 4 + %32 = getelementptr inbounds nuw i8, ptr %fromPunycode, i64 12 + %32 = load i32, ptr %fLength.i, align 4 %cond.i179 = select i1 %cmp.i.i, i32 %32, i32 %shr.i.i + %labelString.0.sroa.gep243 = getelementptr inbounds nuw i8, ptr %fromPunycode, i64 10 + %labelString.0.sroa.gep250 = getelementptr inbounds nuw i8, ptr %fromPunycode, i64 24 br label %if.end81 -if.end81: ; preds = %if.end76, %if.end - %label.0 = phi ptr [ %retval.0.i171, %if.end76 ], [ %add.ptr, %if.end ] - %labelString.0.sroa.phi = phi ptr [ %labelString.0.sroa.gep, %if.end76 ], [ %labelString.0.sroa.gep223, %if.end ] - %labelString.0.sroa.phi228 = phi ptr [ %labelString.0.sroa.gep229, %if.end76 ], [ %labelString.0.sroa.gep230, %if.end ] - %labelString.0.sroa.phi242 = phi ptr [ %labelString.0.sroa.gep243, %if.end76 ], [ %labelString.0.sroa.gep244, %if.end ] - %labelString.0.sroa.phi249 = phi ptr [ %labelString.0.sroa.gep250, %if.end76 ], [ %labelString.0.sroa.gep251, %if.end ] - %labelString.0 = phi ptr [ %fromPunycode, %if.end76 ], [ %dest, %if.end ] - %labelLength.addr.0 = phi i32 [ %cond.i179, %if.end76 ], [ %labelLength, %if.end ] - %labelStart.addr.0 = phi i32 [ 0, %if.end76 ], [ %labelStart, %if.end ] +if.end81: ; preds = %_ZNK6icu_7513UnicodeString9getBufferEv.exit178, %_ZNK6icu_7513UnicodeString9getBufferEv.exit + %label.0 = phi ptr [ %retval.0.i171, %_ZNK6icu_7513UnicodeString9getBufferEv.exit178 ], [ %add.ptr, %_ZNK6icu_7513UnicodeString9getBufferEv.exit ] + %labelString.0.sroa.phi = phi ptr [ %fUnion2.i, %_ZNK6icu_7513UnicodeString9getBufferEv.exit178 ], [ %fUnion.i, %_ZNK6icu_7513UnicodeString9getBufferEv.exit ] + %labelString.0.sroa.phi228 = phi ptr [ %32, %_ZNK6icu_7513UnicodeString9getBufferEv.exit178 ], [ %labelString.0.sroa.gep234, %_ZNK6icu_7513UnicodeString9getBufferEv.exit ] + %labelString.0.sroa.phi242 = phi ptr [ %labelString.0.sroa.gep243, %_ZNK6icu_7513UnicodeString9getBufferEv.exit178 ], [ %labelString.0.sroa.gep248, %_ZNK6icu_7513UnicodeString9getBufferEv.exit ] + %labelString.0.sroa.phi249 = phi ptr [ %labelString.0.sroa.gep250, %_ZNK6icu_7513UnicodeString9getBufferEv.exit178 ], [ %labelString.0.sroa.gep255, %_ZNK6icu_7513UnicodeString9getBufferEv.exit ] + %labelString.0 = phi ptr [ %fromPunycode, %_ZNK6icu_7513UnicodeString9getBufferEv.exit178 ], [ %dest, %_ZNK6icu_7513UnicodeString9getBufferEv.exit ] + %labelLength.addr.0 = phi i32 [ %cond.i179, %_ZNK6icu_7513UnicodeString9getBufferEv.exit178 ], [ %labelLength, %_ZNK6icu_7513UnicodeString9getBufferEv.exit ] + %labelStart.addr.0 = phi i32 [ 0, %_ZNK6icu_7513UnicodeString9getBufferEv.exit178 ], [ %labelStart, %_ZNK6icu_7513UnicodeString9getBufferEv.exit ] %cmp82 = icmp eq i32 %labelLength.addr.0, 0 br i1 %cmp82, label %if.then83, label %if.end88 @@ -2180,7 +2206,7 @@ if.then1.i: ; preds = %if.then83 to label %call2.i.i.noexc unwind label %lpad call2.i.i.noexc: ; preds = %if.then1.i - %38 = load i16, ptr %labelString.0.sroa.gep223, align 8 + %38 = load i16, ptr %fUnion.i, align 8 %conv2.i5.i = and i16 %38, 1 %tobool4.not.i = icmp eq i16 %conv2.i5.i, 0 br i1 %tobool4.not.i, label %cleanup310, label %if.then5.i @@ -2196,10 +2222,10 @@ if.end88: ; preds = %if.end81 land.lhs.true90: ; preds = %land.lhs.true12, %land.lhs.true8, %land.lhs.true4, %land.lhs.true, %if.end88 %label.0283323 = phi ptr [ %label.0, %if.end88 ], [ %add.ptr, %land.lhs.true ], [ %add.ptr, %land.lhs.true4 ], [ %add.ptr, %land.lhs.true8 ], [ %add.ptr, %land.lhs.true12 ] %tobool300.not284321 = phi i1 [ %cmp, %if.end88 ], [ true, %land.lhs.true ], [ true, %land.lhs.true4 ], [ true, %land.lhs.true8 ], [ true, %land.lhs.true12 ] - %labelString.0.sroa.phi235285319 = phi ptr [ %labelString.0.sroa.phi, %if.end88 ], [ %labelString.0.sroa.gep223, %land.lhs.true ], [ %labelString.0.sroa.gep223, %land.lhs.true4 ], [ %labelString.0.sroa.gep223, %land.lhs.true8 ], [ %labelString.0.sroa.gep223, %land.lhs.true12 ] - %labelString.0.sroa.phi242286317 = phi ptr [ %labelString.0.sroa.phi242, %if.end88 ], [ %labelString.0.sroa.gep244, %land.lhs.true ], [ %labelString.0.sroa.gep244, %land.lhs.true4 ], [ %labelString.0.sroa.gep244, %land.lhs.true8 ], [ %labelString.0.sroa.gep244, %land.lhs.true12 ] - %labelString.0.sroa.phi249287315 = phi ptr [ %labelString.0.sroa.phi249, %if.end88 ], [ %labelString.0.sroa.gep251, %land.lhs.true ], [ %labelString.0.sroa.gep251, %land.lhs.true4 ], [ %labelString.0.sroa.gep251, %land.lhs.true8 ], [ %labelString.0.sroa.gep251, %land.lhs.true12 ] - %labelString.0.sroa.phi263289311 = phi ptr [ %labelString.0.sroa.phi228, %if.end88 ], [ %labelString.0.sroa.gep230, %land.lhs.true ], [ %labelString.0.sroa.gep230, %land.lhs.true4 ], [ %labelString.0.sroa.gep230, %land.lhs.true8 ], [ %labelString.0.sroa.gep230, %land.lhs.true12 ] + %labelString.0.sroa.phi235285319 = phi ptr [ %labelString.0.sroa.phi, %if.end88 ], [ %fUnion.i, %land.lhs.true ], [ %fUnion.i, %land.lhs.true4 ], [ %fUnion.i, %land.lhs.true8 ], [ %fUnion.i, %land.lhs.true12 ] + %labelString.0.sroa.phi242286317 = phi ptr [ %labelString.0.sroa.phi242, %if.end88 ], [ %labelString.0.sroa.gep248, %land.lhs.true ], [ %labelString.0.sroa.gep248, %land.lhs.true4 ], [ %labelString.0.sroa.gep248, %land.lhs.true8 ], [ %labelString.0.sroa.gep248, %land.lhs.true12 ] + %labelString.0.sroa.phi249287315 = phi ptr [ %labelString.0.sroa.phi249, %if.end88 ], [ %labelString.0.sroa.gep255, %land.lhs.true ], [ %labelString.0.sroa.gep255, %land.lhs.true4 ], [ %labelString.0.sroa.gep255, %land.lhs.true8 ], [ %labelString.0.sroa.gep255, %land.lhs.true12 ] + %labelString.0.sroa.phi263289311 = phi ptr [ %labelString.0.sroa.phi228, %if.end88 ], [ %labelString.0.sroa.gep234, %land.lhs.true ], [ %labelString.0.sroa.gep234, %land.lhs.true4 ], [ %labelString.0.sroa.gep234, %land.lhs.true8 ], [ %labelString.0.sroa.gep234, %land.lhs.true12 ] %labelString.0290309 = phi ptr [ %labelString.0, %if.end88 ], [ %dest, %land.lhs.true ], [ %dest, %land.lhs.true4 ], [ %dest, %land.lhs.true8 ], [ %dest, %land.lhs.true12 ] %labelLength.addr.0291307 = phi i32 [ %labelLength.addr.0, %if.end88 ], [ %labelLength, %land.lhs.true ], [ %labelLength, %land.lhs.true4 ], [ %labelLength, %land.lhs.true8 ], [ %labelLength, %land.lhs.true12 ] %labelStart.addr.0292305 = phi i32 [ %labelStart.addr.0, %if.end88 ], [ %labelStart, %land.lhs.true ], [ %labelStart, %land.lhs.true4 ], [ %labelStart, %land.lhs.true8 ], [ %labelStart, %land.lhs.true12 ] @@ -2647,7 +2673,7 @@ if.then1.i210: ; preds = %if.end.i208 to label %call2.i.i.noexc220 unwind label %lpad call2.i.i.noexc220: ; preds = %if.then1.i210 - %92 = load i16, ptr %labelString.0.sroa.gep223, align 8 + %92 = load i16, ptr %fUnion.i, align 8 %conv2.i5.i217 = and i16 %92, 1 %tobool4.not.i218 = icmp eq i16 %conv2.i5.i217, 0 br i1 %tobool4.not.i218, label %cleanup310, label %if.then5.i219 diff --git a/bench/imgui/optimized/imgui.ll b/bench/imgui/optimized/imgui.ll index 9fa3de0ccf9..c4918f21406 100644 --- a/bench/imgui/optimized/imgui.ll +++ b/bench/imgui/optimized/imgui.ll @@ -44574,20 +44574,19 @@ entry: %ScrollTargetEdgeSnapDist = getelementptr inbounds nuw i8, ptr %window, i64 172 %ScrollMax = getelementptr inbounds nuw i8, ptr %window, i64 148 %SizeFull = getelementptr inbounds nuw i8, ptr %window, i64 56 - %retval.4.gep.sroa_idx = getelementptr inbounds nuw i8, ptr %retval, i64 4 + br i1 %tobool, label %for.body.us.preheader, label %entry.split + +for.body.us.preheader: ; preds = %entry %retval.4.gep.sroa_idx145 = getelementptr inbounds nuw i8, ptr %retval, i64 4 - %retval.4.gep.sroa_idx146 = getelementptr inbounds nuw i8, ptr %retval, i64 4 - %retval.4.gep137.sroa_idx = getelementptr inbounds nuw i8, ptr %retval, i64 4 - %retval.4.gep140.sroa_idx = getelementptr inbounds nuw i8, ptr %retval, i64 4 %retval.4.gep143.sroa_idx = getelementptr inbounds nuw i8, ptr %retval, i64 4 - br i1 %tobool, label %for.body.us, label %entry.split - -for.body.us: ; preds = %entry, %if.end33.us - %cmp.us = phi i1 [ false, %if.end33.us ], [ true, %entry ] - %indvars.iv101.sroa.phi127 = phi ptr [ %decoration_size.sroa.7, %if.end33.us ], [ %decoration_size.sroa.0, %entry ] - %indvars.iv101.sroa.phi132 = phi ptr [ %retval.4.gep.sroa_idx145, %if.end33.us ], [ %retval, %entry ] - %indvars.iv101.sroa.phi142 = phi ptr [ %retval.4.gep143.sroa_idx, %if.end33.us ], [ %retval, %entry ] - %indvars.iv101 = phi i64 [ 1, %if.end33.us ], [ 0, %entry ] + br label %for.body.us + +for.body.us: ; preds = %for.body.us.preheader, %if.end33.us + %cmp.us = phi i1 [ false, %if.end33.us ], [ true, %for.body.us.preheader ] + %indvars.iv101.sroa.phi127 = phi ptr [ %decoration_size.sroa.7, %if.end33.us ], [ %decoration_size.sroa.0, %for.body.us.preheader ] + %indvars.iv101.sroa.phi132 = phi ptr [ %retval.4.gep.sroa_idx145, %if.end33.us ], [ %retval, %for.body.us.preheader ] + %indvars.iv101.sroa.phi142 = phi ptr [ %retval.4.gep143.sroa_idx, %if.end33.us ], [ %retval, %for.body.us.preheader ] + %indvars.iv101 = phi i64 [ 1, %if.end33.us ], [ 0, %for.body.us.preheader ] %arrayidx.i.us = getelementptr inbounds nuw float, ptr %ScrollTarget, i64 %indvars.iv101 %8 = load float, ptr %arrayidx.i.us, align 4 %cmp4.us = fcmp olt float %8, 0x47EFFFFFE0000000 @@ -44659,14 +44658,24 @@ entry.split: ; preds = %entry %SkipItems = getelementptr inbounds nuw i8, ptr %window, i64 195 %20 = load i8, ptr %SkipItems, align 1 %tobool42 = trunc i8 %20 to i1 - br i1 %tobool42, label %for.body.us56, label %for.body - -for.body.us56: ; preds = %entry.split, %if.end33.us85 - %cmp.us94 = phi i1 [ false, %if.end33.us85 ], [ true, %entry.split ] - %indvars.iv98.sroa.phi124 = phi ptr [ %decoration_size.sroa.7, %if.end33.us85 ], [ %decoration_size.sroa.0, %entry.split ] - %indvars.iv98.sroa.phi134 = phi ptr [ %retval.4.gep.sroa_idx146, %if.end33.us85 ], [ %retval, %entry.split ] - %indvars.iv98.sroa.phi139 = phi ptr [ %retval.4.gep140.sroa_idx, %if.end33.us85 ], [ %retval, %entry.split ] - %indvars.iv98 = phi i64 [ 1, %if.end33.us85 ], [ 0, %entry.split ] + br i1 %tobool42, label %for.body.us56.preheader, label %for.body.us56 + +for.body.us56: ; preds = %entry.split + %cmp.us94 = getelementptr inbounds nuw i8, ptr %retval, i64 4 + %indvars.iv98.sroa.phi124 = getelementptr inbounds nuw i8, ptr %retval, i64 4 + br label %for.body + +for.body.us56.preheader: ; preds = %entry.split + %retval.4.gep.sroa_idx146 = getelementptr inbounds nuw i8, ptr %retval, i64 4 + %retval.4.gep140.sroa_idx = getelementptr inbounds nuw i8, ptr %retval, i64 4 + br label %for.body.us56 + +for.body.us56: ; preds = %for.body.us56.preheader, %if.end33.us85 + %cmp.us94 = phi i1 [ false, %if.end33.us85 ], [ true, %for.body.us56.preheader ] + %indvars.iv98.sroa.phi124 = phi ptr [ %decoration_size.sroa.7, %if.end33.us85 ], [ %decoration_size.sroa.0, %for.body.us56.preheader ] + %indvars.iv98.sroa.phi134 = phi ptr [ %retval.4.gep.sroa_idx146, %if.end33.us85 ], [ %retval, %for.body.us56.preheader ] + %indvars.iv98.sroa.phi139 = phi ptr [ %retval.4.gep140.sroa_idx, %if.end33.us85 ], [ %retval, %for.body.us56.preheader ] + %indvars.iv98 = phi i64 [ 1, %if.end33.us85 ], [ 0, %for.body.us56.preheader ] %arrayidx.i.us59 = getelementptr inbounds nuw float, ptr %ScrollTarget, i64 %indvars.iv98 %21 = load float, ptr %arrayidx.i.us59, align 4 %cmp4.us60 = fcmp olt float %21, 0x47EFFFFFE0000000 @@ -44734,12 +44743,12 @@ if.end33.us85: ; preds = %for.body.us56.if.en store float %conv39.us91, ptr %indvars.iv98.sroa.phi134, align 4 br i1 %cmp.us94, label %for.body.us56, label %for.end, !llvm.loop !106 -for.body: ; preds = %entry.split, %if.end33 - %cmp = phi i1 [ false, %if.end33 ], [ true, %entry.split ] - %indvars.iv.sroa.phi121 = phi ptr [ %decoration_size.sroa.7, %if.end33 ], [ %decoration_size.sroa.0, %entry.split ] - %indvars.iv.sroa.phi130 = phi ptr [ %retval.4.gep.sroa_idx, %if.end33 ], [ %retval, %entry.split ] - %indvars.iv.sroa.phi136 = phi ptr [ %retval.4.gep137.sroa_idx, %if.end33 ], [ %retval, %entry.split ] - %indvars.iv = phi i64 [ 1, %if.end33 ], [ 0, %entry.split ] +for.body: ; preds = %for.body.us56, %if.end33 + %cmp = phi i1 [ false, %if.end33 ], [ true, %for.body.us56 ] + %indvars.iv.sroa.phi121 = phi ptr [ %decoration_size.sroa.7, %if.end33 ], [ %decoration_size.sroa.0, %for.body.us56 ] + %indvars.iv.sroa.phi130 = phi ptr [ %retval.4.gep.sroa_idx, %if.end33 ], [ %retval, %for.body.us56 ] + %indvars.iv.sroa.phi136 = phi ptr [ %retval.4.gep137.sroa_idx, %if.end33 ], [ %retval, %for.body.us56 ] + %indvars.iv = phi i64 [ 1, %if.end33 ], [ 0, %for.body.us56 ] %arrayidx.i = getelementptr inbounds nuw float, ptr %ScrollTarget, i64 %indvars.iv %33 = load float, ptr %arrayidx.i, align 4 %cmp4 = fcmp olt float %33, 0x47EFFFFFE0000000 @@ -61985,9 +61994,6 @@ entry: %SkipItems.i = getelementptr inbounds nuw i8, ptr %5, i64 195 %6 = load i8, ptr %SkipItems.i, align 1 %tobool.i = trunc i8 %6 to i1 - %retval.0.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %c_str, i64 1 - %retval.0.i.i.sroa.gep129 = getelementptr inbounds nuw i8, ptr %c_str, i64 2 - %retval.0.i.i.sroa.gep130 = getelementptr inbounds nuw i8, ptr %c_str, i64 3 br i1 %tobool.i, label %_ZN5ImGui8SameLineEff.exit, label %if.end.i if.end.i: ; preds = %entry @@ -62186,6 +62192,7 @@ _ZN5ImGui8SameLineEff.exit91: ; preds = %_ZN5ImGui7PopFontEv if.then.i.i: ; preds = %_ZN5ImGui8SameLineEff.exit91 %conv.i.i = trunc nuw i16 %49 to i8 store i8 %conv.i.i, ptr %c_str, align 1 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %c_str, i64 1 br label %_Z16ImTextCharToUtf8Pcj.exit if.end.i.i: ; preds = %_ZN5ImGui8SameLineEff.exit91 @@ -62200,7 +62207,9 @@ if.then2.i.i: ; preds = %if.end.i.i %51 = trunc i16 %49 to i8 %52 = and i8 %51, 63 %conv9.i.i = or disjoint i8 %52, -128 - store i8 %conv9.i.i, ptr %retval.0.i.i.sroa.gep, align 1 + %arrayidx10.i.i = getelementptr inbounds nuw i8, ptr %c_str, i64 1 + store i8 %conv9.i.i, ptr %arrayidx10.i.i, align 1 + %.sink.sroa.gep144 = getelementptr inbounds nuw i8, ptr %c_str, i64 2 br label %_Z16ImTextCharToUtf8Pcj.exit if.end11.i.i: ; preds = %if.end.i.i @@ -62212,15 +62221,18 @@ if.end11.i.i: ; preds = %if.end.i.i %54 = trunc i16 %shr21.i.i to i8 %55 = and i8 %54, 63 %conv24.i.i = or disjoint i8 %55, -128 - store i8 %conv24.i.i, ptr %retval.0.i.i.sroa.gep, align 1 + %arrayidx25.i.i = getelementptr inbounds nuw i8, ptr %c_str, i64 1 + store i8 %conv24.i.i, ptr %arrayidx25.i.i, align 1 %56 = trunc i16 %49 to i8 %57 = and i8 %56, 63 %conv28.i.i = or disjoint i8 %57, -128 - store i8 %conv28.i.i, ptr %retval.0.i.i.sroa.gep129, align 1 + %arrayidx29.i.i = getelementptr inbounds nuw i8, ptr %c_str, i64 2 + store i8 %conv28.i.i, ptr %arrayidx29.i.i, align 1 + %.sink.sroa.gep145 = getelementptr inbounds nuw i8, ptr %c_str, i64 3 br label %_Z16ImTextCharToUtf8Pcj.exit _Z16ImTextCharToUtf8Pcj.exit: ; preds = %if.then.i.i, %if.then2.i.i, %if.end11.i.i - %retval.0.i.i.sroa.phi = phi ptr [ %retval.0.i.i.sroa.gep, %if.then.i.i ], [ %retval.0.i.i.sroa.gep129, %if.then2.i.i ], [ %retval.0.i.i.sroa.gep130, %if.end11.i.i ] + %retval.0.i.i.sroa.phi = phi ptr [ %.sink.sroa.gep, %if.then.i.i ], [ %.sink.sroa.gep144, %if.then2.i.i ], [ %.sink.sroa.gep145, %if.end11.i.i ] store i8 0, ptr %retval.0.i.i.sroa.phi, align 1 call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.345, ptr noundef nonnull %c_str, i32 noundef %conv16) %EllipsisChar = getelementptr inbounds nuw i8, ptr %font, i64 84 @@ -62232,6 +62244,7 @@ _Z16ImTextCharToUtf8Pcj.exit: ; preds = %if.then.i.i, %if.th if.then.i.i111: ; preds = %_Z16ImTextCharToUtf8Pcj.exit %conv.i.i112 = trunc nuw i16 %58 to i8 store i8 %conv.i.i112, ptr %c_str, align 1 + %.sink143.sroa.gep = getelementptr inbounds nuw i8, ptr %c_str, i64 1 br label %_Z16ImTextCharToUtf8Pcj.exit113 if.end.i.i94: ; preds = %_Z16ImTextCharToUtf8Pcj.exit @@ -62246,7 +62259,9 @@ if.then2.i.i106: ; preds = %if.end.i.i94 %60 = trunc i16 %58 to i8 %61 = and i8 %60, 63 %conv9.i.i109 = or disjoint i8 %61, -128 - store i8 %conv9.i.i109, ptr %retval.0.i.i.sroa.gep, align 1 + %arrayidx10.i.i110 = getelementptr inbounds nuw i8, ptr %c_str, i64 1 + store i8 %conv9.i.i109, ptr %arrayidx10.i.i110, align 1 + %.sink143.sroa.gep146 = getelementptr inbounds nuw i8, ptr %c_str, i64 2 br label %_Z16ImTextCharToUtf8Pcj.exit113 if.end11.i.i96: ; preds = %if.end.i.i94 @@ -62258,15 +62273,18 @@ if.end11.i.i96: ; preds = %if.end.i.i94 %63 = trunc i16 %shr21.i.i101 to i8 %64 = and i8 %63, 63 %conv24.i.i102 = or disjoint i8 %64, -128 - store i8 %conv24.i.i102, ptr %retval.0.i.i.sroa.gep, align 1 + %arrayidx25.i.i103 = getelementptr inbounds nuw i8, ptr %c_str, i64 1 + store i8 %conv24.i.i102, ptr %arrayidx25.i.i103, align 1 %65 = trunc i16 %58 to i8 %66 = and i8 %65, 63 %conv28.i.i104 = or disjoint i8 %66, -128 - store i8 %conv28.i.i104, ptr %retval.0.i.i.sroa.gep129, align 1 + %arrayidx29.i.i105 = getelementptr inbounds nuw i8, ptr %c_str, i64 2 + store i8 %conv28.i.i104, ptr %arrayidx29.i.i105, align 1 + %.sink143.sroa.gep147 = getelementptr inbounds nuw i8, ptr %c_str, i64 3 br label %_Z16ImTextCharToUtf8Pcj.exit113 _Z16ImTextCharToUtf8Pcj.exit113: ; preds = %if.then.i.i111, %if.then2.i.i106, %if.end11.i.i96 - %retval.0.i.i97.sroa.phi = phi ptr [ %retval.0.i.i.sroa.gep, %if.then.i.i111 ], [ %retval.0.i.i.sroa.gep129, %if.then2.i.i106 ], [ %retval.0.i.i.sroa.gep130, %if.end11.i.i96 ] + %retval.0.i.i97.sroa.phi = phi ptr [ %.sink143.sroa.gep, %if.then.i.i111 ], [ %.sink143.sroa.gep146, %if.then2.i.i106 ], [ %.sink143.sroa.gep147, %if.end11.i.i96 ] store i8 0, ptr %retval.0.i.i97.sroa.phi, align 1 call void (ptr, ...) @_ZN5ImGui4TextEPKcz(ptr noundef nonnull @.str.346, ptr noundef nonnull %c_str, i32 noundef %conv21) %MetricsTotalSurface = getelementptr inbounds nuw i8, ptr %font, i64 112 diff --git a/bench/libpng/optimized/pngwutil.ll b/bench/libpng/optimized/pngwutil.ll index d1a66f6b511..28ceb901e89 100644 --- a/bench/libpng/optimized/pngwutil.ll +++ b/bench/libpng/optimized/pngwutil.ll @@ -2269,9 +2269,7 @@ define void @png_write_sBIT(ptr noalias noundef %0, ptr noundef readonly capture call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) #12 %5 = and i32 %2, 2 %.not = icmp eq i32 %5, 0 - %.1.sroa.gep = getelementptr inbounds nuw i8, ptr %4, i64 3 - %.1.sroa.gep43 = getelementptr inbounds nuw i8, ptr %4, i64 1 - br i1 %.not, label %32, label %6 + br i1 %.not, label %33, label %6 6: ; preds = %3 %7 = icmp eq i32 %2, 3 @@ -2316,65 +2314,68 @@ define void @png_write_sBIT(ptr noalias noundef %0, ptr noundef readonly capture 30: ; preds = %24 store i8 %14, ptr %4, align 1, !tbaa !3 - store i8 %20, ptr %.1.sroa.gep43, align 1, !tbaa !3 - %31 = getelementptr inbounds nuw i8, ptr %4, i64 2 - store i8 %26, ptr %31, align 1, !tbaa !3 - br label %42 - -32: ; preds = %3 - %33 = getelementptr inbounds nuw i8, ptr %1, i64 3 - %34 = load i8, ptr %33, align 1, !tbaa !151 - %35 = icmp eq i8 %34, 0 - br i1 %35, label %40, label %36 - -36: ; preds = %32 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 625 - %38 = load i8, ptr %37, align 1, !tbaa !53 - %39 = icmp ugt i8 %34, %38 - br i1 %39, label %40, label %41 - -40: ; preds = %36, %32 + %31 = getelementptr inbounds nuw i8, ptr %4, i64 1 + store i8 %20, ptr %31, align 1, !tbaa !3 + %32 = getelementptr inbounds nuw i8, ptr %4, i64 2 + store i8 %26, ptr %32, align 1, !tbaa !3 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %4, i64 3 + br label %43 + +33:; preds = %3 + %35 = getelementptr inbounds nuw i8, ptr %1, i64 3 + %35 = load i8, ptr %35, align 1, !tbaa !151 + %36 = icmp eq i8 %35, 0 + br i1 %36, label %41, label %37 + +37:; preds = %33 + %39 = getelementptr inbounds nuw i8, ptr %0, i64 625 + %39 = load i8, ptr %39, align 1, !tbaa !53 + %40 = icmp ugt i8 %35, %39 + br i1 %40, label %41, label %42 + +41: ; preds = %37, %33 tail call void @png_warning(ptr noundef %0, ptr noundef nonnull @.str.20) #12 br label %56 -41: ; preds = %36 - store i8 %34, ptr %4, align 1, !tbaa !3 - br label %42 - -42: ; preds = %30, %41 - %.1.sroa.phi = phi ptr [ %.1.sroa.gep, %30 ], [ %.1.sroa.gep43, %41 ] - %.1 = phi i64 [ 3, %30 ], [ 1, %41 ] - %43 = and i32 %2, 4 - %.not37 = icmp eq i32 %43, 0 - br i1 %.not37, label %55, label %44 +42: ; preds = %37 + store i8 %35, ptr %4, align 1, !tbaa !3 + %.1 = getelementptr inbounds nuw i8, ptr %4, i64 1 + br label %44 -44: ; preds = %42 - %45 = getelementptr inbounds nuw i8, ptr %1, i64 4 - %46 = load i8, ptr %45, align 1, !tbaa !152 - %47 = icmp eq i8 %46, 0 - br i1 %47, label %52, label %48 +44: ; preds = %30, %42 + %45 = phi ptr [ %.sink.sroa.gep, %30 ], [ %.1, %42 ] + %46 = phi i64 [ 3, %30 ], [ 1, %42 ] + %47 = and i32 %2, 4 + %.not37 = icmp eq i32 %50, 0 + br i1 %.not37, label %56, label %45 48: ; preds = %44 - %49 = getelementptr inbounds nuw i8, ptr %0, i64 625 - %50 = load i8, ptr %49, align 1, !tbaa !53 - %51 = icmp ugt i8 %46, %50 - br i1 %51, label %52, label %53 + %49 = getelementptr inbounds nuw i8, ptr %1, i64 4 + %50 = load i8, ptr %49, align 1, !tbaa !152 + %51 = icmp eq i8 %47, 0 + br i1 %51, label %52, label %49 + +49: ; preds = %45 + %50 = getelementptr inbounds nuw i8, ptr %0, i64 625 + %51 = load i8, ptr %50, align 1, !tbaa !53 + %52 = icmp ugt i8 %47, %51 + br i1 %52, label %53, label %54 -52: ; preds = %48, %44 +52: ; preds = %49, %45 tail call void @png_warning(ptr noundef %0, ptr noundef nonnull @.str.20) #12 br label %56 -53: ; preds = %48 - %54 = add nuw nsw i64 %.1, 1 - store i8 %46, ptr %.1.sroa.phi, align 1, !tbaa !3 +53: ; preds = %49 + %54 = add nuw nsw i64 %46, 1 + store i8 %47, ptr %.sink.sroa.phi, align 1, !tbaa !3 br label %55 -55: ; preds = %53, %42 - %.2 = phi i64 [ %54, %53 ], [ %.1, %42 ] +55: ; preds = %53, %43 + %.2 = phi i64 [ %54, %53 ], [ %46, %43 ] call fastcc void @png_write_complete_chunk(ptr noundef %0, i32 noundef 1933723988, ptr noundef nonnull %4, i64 noundef %.2) br label %56 -56: ; preds = %.critedge, %55, %52, %40 +56: ; preds = %.critedge, %55, %52, %41 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #12 ret void } diff --git a/bench/linux/optimized/nfs4xdr.ll b/bench/linux/optimized/nfs4xdr.ll index 7b156df7d8a..161228b25e0 100644 --- a/bench/linux/optimized/nfs4xdr.ll +++ b/bench/linux/optimized/nfs4xdr.ll @@ -12699,8 +12699,6 @@ define internal fastcc void @encode_getattr(ptr noundef %0, ptr noundef readonly call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %6) #12 %7 = tail call ptr @xdr_reserve_space(ptr noundef %0, i64 noundef 4) #12 %8 = icmp eq ptr %7, null - %.ph14.sroa.gep = getelementptr i8, ptr %1, i64 -4 - %.ph14.sroa.gep31 = getelementptr i8, ptr %6, i64 -4 br i1 %8, label %10, label %9, !prof !6 9: ; preds = %5 @@ -12724,7 +12722,8 @@ define internal fastcc void @encode_getattr(ptr noundef %0, ptr noundef readonly %17 = add i32 %16, 114 store i32 %17, ptr %15, align 8 %18 = icmp eq ptr %2, null - br i1 %18, label %.loopexit23, label %.preheader24 + %.ph15.sroa.gep = getelementptr i8, ptr %1, i64 -4 + br i1 %18, label %.loopexit24, label %.preheader25 .preheader24: ; preds = %11, %28 %19 = phi i64 [ %20, %28 ], [ %3, %11 ] @@ -12757,31 +12756,35 @@ define internal fastcc void @encode_getattr(ptr noundef %0, ptr noundef readonly %38 = icmp eq i64 %31, 0 br i1 %38, label %.loopexit23, label %.preheader22, !llvm.loop !77 -.loopexit23: ; preds = %.preheader22, %11 - %.ph = phi i64 [ %3, %11 ], [ %19, %.preheader22 ] - %.ph14.sroa.phi = phi ptr [ %.ph14.sroa.gep, %11 ], [ %.ph14.sroa.gep31, %.preheader22 ] - %.ph14 = phi ptr [ %1, %11 ], [ %6, %.preheader22 ] - %39 = getelementptr i32, ptr %.ph14.sroa.phi, i64 %.ph +.loopexit23: ; preds = %.preheader22 + %.ph = getelementptr i8, ptr %6, i64 -4 + br label %.loopexit24 + +.loopexit24:; preds = %.loopexit24.loopexit, %11 + %.ph = phi i64 [ %3, %11 ], [ %19, %.loopexit24.loopexit ] + %.ph15.sroa.phi = phi ptr [ %.ph15.sroa.gep, %11 ], [ %.ph15.sroa.gep32, %.loopexit24.loopexit ] + %.ph15 = phi ptr [ %1, %11 ], [ %6, %.loopexit24.loopexit ] + %39 = getelementptr i32, ptr %.ph15.sroa.phi, i64 %.ph %40 = load i32, ptr %39, align 4 %41 = icmp eq i32 %40, 0 br i1 %41, label %.preheader18, label %.loopexit19 42: ; preds = %.preheader18 - %43 = getelementptr i32, ptr %.ph14.sroa.phi, i64 %47 + %43 = getelementptr i32, ptr %.ph15.sroa.phi, i64 %47 %44 = load i32, ptr %43, align 4 %45 = icmp eq i32 %44, 0 br i1 %45, label %.preheader18, label %.loopexit19, !llvm.loop !78 -.preheader18: ; preds = %.loopexit23, %42 - %46 = phi i64 [ %47, %42 ], [ %.ph, %.loopexit23 ] +.preheader18: ; preds = %.loopexit24, %42 + %46 = phi i64 [ %47, %42 ], [ %.ph, %.loopexit24 ] %47 = add nsw i64 %46, -1 %48 = icmp eq i64 %47, 0 br i1 %48, label %.loopexit19, label %42, !llvm.loop !78 -.loopexit19: ; preds = %28, %.preheader18, %42, %.loopexit23 - %49 = phi ptr [ %.ph14, %.loopexit23 ], [ %.ph14, %42 ], [ %.ph14, %.preheader18 ], [ %6, %28 ] - %50 = phi i64 [ %.ph, %.loopexit23 ], [ 0, %.preheader18 ], [ %47, %42 ], [ 0, %28 ] - %51 = phi i1 [ false, %.loopexit23 ], [ %48, %42 ], [ %48, %.preheader18 ], [ true, %28 ] +.loopexit19: ; preds = %28, %.preheader18, %42, %.loopexit24 + %49 = phi ptr [ %.ph15, %.loopexit24 ], [ %.ph15, %42 ], [ %.ph15, %.preheader18 ], [ %6, %28 ] + %50 = phi i64 [ %.ph, %.loopexit24 ], [ 0, %.preheader18 ], [ %47, %42 ], [ 0, %28 ] + %51 = phi i1 [ false, %.loopexit24 ], [ %48, %42 ], [ %48, %.preheader18 ], [ true, %28 ] %52 = shl i64 %50, 2 %53 = add i64 %52, 4 %54 = tail call ptr @xdr_reserve_space(ptr noundef %0, i64 noundef %53) #12 diff --git a/bench/llvm/optimized/Clang.ll b/bench/llvm/optimized/Clang.ll index d60062e0478..6a15f21bdf0 100644 --- a/bench/llvm/optimized/Clang.ll +++ b/bench/llvm/optimized/Clang.ll @@ -60379,20 +60379,6 @@ define internal fastcc void @_ZL26RenderFloatingPointOptionsRKN5clang6driver9Too %145 = getelementptr inbounds nuw i8, ptr %5, i64 64 %146 = load i32, ptr %145, align 8, !tbaa !177 %147 = icmp eq i32 %146, 2 - %.sink1.i.sroa.gep = getelementptr inbounds nuw i8, ptr %54, i64 24 - %.sink1.i.sroa.gep1676 = getelementptr inbounds nuw i8, ptr %54, i64 20 - %.sink1.i278.sroa.gep = getelementptr inbounds nuw i8, ptr %50, i64 24 - %.sink1.i278.sroa.gep1678 = getelementptr inbounds nuw i8, ptr %50, i64 21 - %.sink1.i278.sroa.gep1679 = getelementptr inbounds nuw i8, ptr %50, i64 20 - %.sink1.i307.sroa.gep = getelementptr inbounds nuw i8, ptr %46, i64 24 - %.sink1.i307.sroa.gep1681 = getelementptr inbounds nuw i8, ptr %46, i64 21 - %.sink1.i307.sroa.gep1682 = getelementptr inbounds nuw i8, ptr %46, i64 20 - %.sink1.i336.sroa.gep = getelementptr inbounds nuw i8, ptr %42, i64 24 - %.sink1.i336.sroa.gep1684 = getelementptr inbounds nuw i8, ptr %42, i64 21 - %.sink1.i336.sroa.gep1685 = getelementptr inbounds nuw i8, ptr %42, i64 20 - %.sink1.i888.sroa.gep = getelementptr inbounds nuw i8, ptr %7, i64 24 - %.sink1.i888.sroa.gep1743 = getelementptr inbounds nuw i8, ptr %7, i64 21 - %.sink1.i888.sroa.gep1744 = getelementptr inbounds nuw i8, ptr %7, i64 20 br i1 %147, label %._crit_edge.i.i, label %148 148: ; preds = %6 @@ -60678,6 +60664,9 @@ _ZNK4llvm3opt7ArgList5beginEv.exit: ; preds = %.lr.ph.i.i.i, %.lr. %361 = getelementptr inbounds nuw i8, ptr %75, i64 16 %362 = getelementptr inbounds nuw i8, ptr %75, i64 8 %363 = getelementptr inbounds nuw i8, ptr %42, i64 16 + %.sink1.i336.sroa.gep = getelementptr inbounds nuw i8, ptr %42, i64 24 + %.sink1.i336.sroa.gep1684 = getelementptr inbounds nuw i8, ptr %42, i64 21 + %.sink1.i336.sroa.gep1685 = getelementptr inbounds nuw i8, ptr %42, i64 20 %364 = getelementptr inbounds nuw i8, ptr %42, i64 8 %365 = getelementptr inbounds nuw i8, ptr %72, i64 16 %366 = getelementptr inbounds nuw i8, ptr %72, i64 8 @@ -60688,6 +60677,9 @@ _ZNK4llvm3opt7ArgList5beginEv.exit: ; preds = %.lr.ph.i.i.i, %.lr. %371 = getelementptr inbounds nuw i8, ptr %71, i64 16 %372 = getelementptr inbounds nuw i8, ptr %71, i64 8 %373 = getelementptr inbounds nuw i8, ptr %46, i64 16 + %.sink1.i307.sroa.gep = getelementptr inbounds nuw i8, ptr %46, i64 24 + %.sink1.i307.sroa.gep1681 = getelementptr inbounds nuw i8, ptr %46, i64 21 + %.sink1.i307.sroa.gep1682 = getelementptr inbounds nuw i8, ptr %46, i64 20 %374 = getelementptr inbounds nuw i8, ptr %46, i64 8 %375 = getelementptr inbounds nuw i8, ptr %68, i64 16 %376 = getelementptr inbounds nuw i8, ptr %68, i64 8 @@ -60698,6 +60690,9 @@ _ZNK4llvm3opt7ArgList5beginEv.exit: ; preds = %.lr.ph.i.i.i, %.lr. %381 = getelementptr inbounds nuw i8, ptr %67, i64 16 %382 = getelementptr inbounds nuw i8, ptr %67, i64 8 %383 = getelementptr inbounds nuw i8, ptr %50, i64 16 + %.sink1.i278.sroa.gep = getelementptr inbounds nuw i8, ptr %50, i64 24 + %.sink1.i278.sroa.gep1678 = getelementptr inbounds nuw i8, ptr %50, i64 21 + %.sink1.i278.sroa.gep1679 = getelementptr inbounds nuw i8, ptr %50, i64 20 %384 = getelementptr inbounds nuw i8, ptr %50, i64 8 %385 = getelementptr inbounds nuw i8, ptr %64, i64 16 %386 = getelementptr inbounds nuw i8, ptr %64, i64 8 @@ -60708,6 +60703,8 @@ _ZNK4llvm3opt7ArgList5beginEv.exit: ; preds = %.lr.ph.i.i.i, %.lr. %391 = getelementptr inbounds nuw i8, ptr %63, i64 16 %392 = getelementptr inbounds nuw i8, ptr %63, i64 8 %393 = getelementptr inbounds nuw i8, ptr %54, i64 16 + %.sink1.i.sroa.gep1674 = getelementptr inbounds nuw i8, ptr %54, i64 24 + %.sink1.i.sroa.gep1676 = getelementptr inbounds nuw i8, ptr %54, i64 20 %394 = getelementptr inbounds nuw i8, ptr %54, i64 8 %395 = getelementptr inbounds nuw i8, ptr %60, i64 16 %396 = getelementptr inbounds nuw i8, ptr %60, i64 8 @@ -60862,7 +60859,7 @@ _ZNK4llvm3opt7ArgList5beginEv.exit: ; preds = %.lr.ph.i.i.i, %.lr. 429: ; preds = %._crit_edge.i.i5.i.i, %._crit_edge.i.i3.i.i, %._crit_edge.i.i.i.i %.sink.i = phi i64 [ 8, %._crit_edge.i.i5.i.i ], [ 8, %._crit_edge.i.i3.i.i ], [ 4, %._crit_edge.i.i.i.i ] - %.sink1.i.sroa.phi = phi ptr [ %.sink1.i.sroa.gep, %._crit_edge.i.i5.i.i ], [ %.sink1.i.sroa.gep, %._crit_edge.i.i3.i.i ], [ %.sink1.i.sroa.gep1676, %._crit_edge.i.i.i.i ] + %.sink1.i.sroa.phi = phi ptr [ %.sink1.i.sroa.gep1674, %._crit_edge.i.i5.i.i ], [ %.sink1.i.sroa.gep1674, %._crit_edge.i.i3.i.i ], [ %.sink1.i.sroa.gep1676, %._crit_edge.i.i.i.i ] store i64 %.sink.i, ptr %394, align 8, !tbaa !98, !alias.scope !1428, !noalias !1425 store i8 0, ptr %.sink1.i.sroa.phi, align 1, !tbaa !119, !alias.scope !1428, !noalias !1425 call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %60, ptr noundef nonnull @.str.732, ptr noundef nonnull align 8 dereferenceable(32) %54) @@ -68328,18 +68325,22 @@ _ZN4llvm23SmallVectorTemplateBaseIPKcLb1EE9push_backES2_.exit885: ; preds = %327 ._crit_edge.i.i.i.i895: ; preds = %3296 store i32 1819047270, ptr %3297, align 8, !alias.scope !1629, !noalias !1626 + %.sink.sroa.gep3530 = getelementptr inbounds nuw i8, ptr %7, i64 20 br label %3300 ._crit_edge.i.i1.i.i894: ; preds = %3296 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(5) %3297, ptr noundef nonnull align 1 dereferenceable(5) @.str.688, i64 5, i1 false), !noalias !1626 + %.sink.sroa.gep3529 = getelementptr inbounds nuw i8, ptr %7, i64 21 br label %3300 ._crit_edge.i.i3.i.i893: ; preds = %3296 store i64 7234318597473987945, ptr %3297, align 8, !alias.scope !1629, !noalias !1626 + %.sink.sroa.gep3528 = getelementptr inbounds nuw i8, ptr %7, i64 24 br label %3300 ._crit_edge.i.i5.i.i886: ; preds = %3296 store i64 7234316398366782064, ptr %3297, align 8, !alias.scope !1629, !noalias !1626 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %7, i64 24 br label %3300 .thread.i896: ; preds = %3296 @@ -68351,11 +68352,11 @@ _ZN4llvm23SmallVectorTemplateBaseIPKcLb1EE9push_backES2_.exit885: ; preds = %327 br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i892 3300: ; preds = %._crit_edge.i.i5.i.i886, %._crit_edge.i.i3.i.i893, %._crit_edge.i.i1.i.i894, %._crit_edge.i.i.i.i895 + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge.i.i5.i.i886 ], [ %.sink.sroa.gep3528, %._crit_edge.i.i3.i.i893 ], [ %.sink.sroa.gep3529, %._crit_edge.i.i1.i.i894 ], [ %.sink.sroa.gep3530, %._crit_edge.i.i.i.i895 ] %.sink.i887 = phi i64 [ 8, %._crit_edge.i.i5.i.i886 ], [ 8, %._crit_edge.i.i3.i.i893 ], [ 5, %._crit_edge.i.i1.i.i894 ], [ 4, %._crit_edge.i.i.i.i895 ] - %.sink1.i888.sroa.phi = phi ptr [ %.sink1.i888.sroa.gep, %._crit_edge.i.i5.i.i886 ], [ %.sink1.i888.sroa.gep, %._crit_edge.i.i3.i.i893 ], [ %.sink1.i888.sroa.gep1743, %._crit_edge.i.i1.i.i894 ], [ %.sink1.i888.sroa.gep1744, %._crit_edge.i.i.i.i895 ] %3301 = getelementptr inbounds nuw i8, ptr %7, i64 8 store i64 %.sink.i887, ptr %3301, align 8, !tbaa !98, !alias.scope !1629, !noalias !1626 - store i8 0, ptr %.sink1.i888.sroa.phi, align 1, !tbaa !119, !alias.scope !1629, !noalias !1626 + store i8 0, ptr %.sink.sroa.phi, align 1, !tbaa !119, !alias.scope !1629, !noalias !1626 call void @_ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EEPKS5_RKS8_(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %126, ptr noundef nonnull @.str.732, ptr noundef nonnull align 8 dereferenceable(32) %7) %.pre.i889 = load ptr, ptr %7, align 8, !tbaa !97, !noalias !1626 %3302 = icmp eq ptr %.pre.i889, %3297 diff --git a/bench/llvm/optimized/ProfileSummaryBuilder.ll b/bench/llvm/optimized/ProfileSummaryBuilder.ll index 725c6c21480..6fe909f71a0 100644 --- a/bench/llvm/optimized/ProfileSummaryBuilder.ll +++ b/bench/llvm/optimized/ProfileSummaryBuilder.ll @@ -1973,19 +1973,20 @@ define dso_local void @_ZN4llvm27SampleProfileSummaryBuilder25computeSummaryForP call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %10, i8 0, i64 16, i1 false) %11 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN4llvm21UseContextLessSummaryE, i64 120), align 8, !tbaa !34, !range !48, !noundef !49 %12 = trunc nuw i8 %11 to i1 - %.0.sroa.gep11 = getelementptr inbounds nuw i8, ptr %2, i64 16 br i1 %12, label %17, label %13 13: ; preds = %3 %14 = load i8, ptr @_ZN4llvm10sampleprof15FunctionSamples11ProfileIsCSE, align 1, !tbaa !181, !range !48, !noundef !49 %15 = trunc nuw i8 %14 to i1 + %.0.sroa.gep12 = getelementptr inbounds nuw i8, ptr %2, i64 16 %16 = load i16, ptr getelementptr inbounds nuw (i8, ptr @_ZN4llvm21UseContextLessSummaryE, i64 8), align 8 %.not = icmp eq i16 %16, 0 %or.cond = select i1 %15, i1 %.not, i1 false br i1 %or.cond, label %17, label %_ZN4llvm10sampleprof16ProfileConverter14flattenProfileERKNS0_16SampleProfileMapERS2_b.exit 17: ; preds = %13, %3 - %.sroa.016.024.i = load ptr, ptr %.0.sroa.gep11, align 8, !tbaa !182 + %.sroa.016.024.i = getelementptr inbounds nuw i8, ptr %2, i64 16 + %.sroa.016.024.i = load ptr, ptr %18, align 8, !tbaa !182 %.not1925.i = icmp eq ptr %.sroa.016.024.i, null br i1 %.not1925.i, label %_ZN4llvm10sampleprof16ProfileConverter14flattenProfileERKNS0_16SampleProfileMapERS2_b.exit, label %.lr.ph27.i @@ -2013,7 +2014,7 @@ define dso_local void @_ZN4llvm27SampleProfileSummaryBuilder25computeSummaryForP br i1 %.not19.i, label %_ZN4llvm10sampleprof16ProfileConverter14flattenProfileERKNS0_16SampleProfileMapERS2_b.exit, label %19 _ZN4llvm10sampleprof16ProfileConverter14flattenProfileERKNS0_16SampleProfileMapERS2_b.exit: ; preds = %19, %17, %13 - %.0.sroa.phi = phi ptr [ %.0.sroa.gep11, %13 ], [ %8, %17 ], [ %8, %19 ] + %.0.sroa.phi = phi ptr [ %.0.sroa.gep12, %13 ], [ %8, %17 ], [ %8, %19 ] %.sroa.08.015 = load ptr, ptr %.0.sroa.phi, align 8, !tbaa !182 %.not1416 = icmp eq ptr %.sroa.08.015, null br i1 %.not1416, label %._crit_edge, label %.lr.ph diff --git a/bench/luajit/optimized/lj_carith.ll b/bench/luajit/optimized/lj_carith.ll index 6bed942e2df..9549ec1b5ee 100644 --- a/bench/luajit/optimized/lj_carith.ll +++ b/bench/luajit/optimized/lj_carith.ll @@ -33,12 +33,11 @@ define hidden i32 @lj_carith_op(ptr noundef %0, i32 noundef %1) local_unnamed_ad %19 = getelementptr inbounds nuw i8, ptr %0, i64 40 %20 = load ptr, ptr %19, align 8, !tbaa !35 %.not.i = icmp ult ptr %18, %20 - %indvars.iv.i.sroa.gep36 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %indvars.iv.i30.sroa.gep49 = getelementptr inbounds nuw i8, ptr %3, i64 8 br i1 %.not.i, label %.preheader116.i, label %22 .preheader116.i: ; preds = %2 %21 = getelementptr inbounds nuw i8, ptr %8, i64 16 + %indvars.iv.i.sroa.gep36 = getelementptr inbounds nuw i8, ptr %8, i64 8 br label %23 22: ; preds = %2 @@ -833,7 +832,11 @@ carith_ptr.exit: ; preds = %293, %306, %319, %3 .thread90.i: ; preds = %429, %414, %.thread.i28 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %3) #7 %433 = icmp eq i32 %1, 4 - br i1 %433, label %434, label %.preheader.i29 + br i1 %433, label %434, label %.preheader.i29.preheader + +.preheader.i29.preheader: ; preds = %.thread90.i + %indvars.iv.i30.sroa.gep49 = getelementptr inbounds nuw i8, ptr %3, i64 8 + br label %.preheader.i29 434: ; preds = %.thread90.i %435 = load ptr, ptr %8, align 8, !tbaa !50 @@ -850,12 +853,12 @@ carith_ptr.exit: ; preds = %293, %306, %319, %3 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) #7 br label %lj_carith_meta.exit -.preheader.i29: ; preds = %.thread90.i, %467 - %444 = phi i1 [ false, %467 ], [ true, %.thread90.i ] - %indvars.iv.i30.sroa.phi = phi ptr [ %indvars.iv.i30.sroa.gep49, %467 ], [ %3, %.thread90.i ] - %indvars.iv.i30 = phi i64 [ 1, %467 ], [ 0, %.thread90.i ] - %.062101.i = phi i32 [ %.2.i32, %467 ], [ -1, %.thread90.i ] - %.063100.i = phi i32 [ %.265.i, %467 ], [ -1, %.thread90.i ] +.preheader.i29: ; preds = %.preheader.i29.preheader, %467 + %444 = phi i1 [ false, %467 ], [ true, %.preheader.i29.preheader ] + %indvars.iv.i30.sroa.phi = phi ptr [ %indvars.iv.i30.sroa.gep49, %467 ], [ %3, %.preheader.i29.preheader ] + %indvars.iv.i30 = phi i64 [ 1, %467 ], [ 0, %.preheader.i29.preheader ] + %.062101.i = phi i32 [ %.2.i32, %467 ], [ -1, %.preheader.i29.preheader ] + %.063100.i = phi i32 [ %.265.i, %467 ], [ -1, %.preheader.i29.preheader ] %445 = getelementptr inbounds nuw [2 x ptr], ptr %21, i64 0, i64 %indvars.iv.i30 %446 = load ptr, ptr %445, align 8, !tbaa !49 %.not79.i = icmp ne ptr %446, null diff --git a/bench/luau/optimized/Parser.ll b/bench/luau/optimized/Parser.ll index e1f25ce200a..5dd6d4797c2 100644 --- a/bench/luau/optimized/Parser.ll +++ b/bench/luau/optimized/Parser.ll @@ -8089,8 +8089,6 @@ define dso_local noundef ptr @_ZN4Luau6Parser16parseDeclarationERKNS_8LocationER %or.cond.not391 = select i1 %63, i1 %.not31, i1 false %66 = getelementptr inbounds nuw i8, ptr %0, i64 40 %67 = load i32, ptr %66, align 8 - %.sink477.sroa.gep = getelementptr inbounds nuw i8, ptr %43, i64 8 - %.sink477.sroa.gep499 = getelementptr inbounds nuw i8, ptr %40, i64 8 br i1 %or.cond.not391, label %68, label %77 68: ; preds = %3 @@ -8355,13 +8353,17 @@ _ZN4Luau6Parser21expectMatchAndConsumeEcRKNS0_11MatchLexemeEb.exit: ; preds = %. %162 = getelementptr %"struct.Luau::Parser::Binding", ptr %161, i64 %.030423, i32 1 %163 = load ptr, ptr %162, align 8 %.not = icmp eq ptr %163, null - br i1 %.not, label %.invoke, label %174 + br i1 %.not, label %.invoke.loopexit, label %174 + +.invoke.loopexit: ; preds = %158 + %.sink477.sroa.gep499.le = getelementptr inbounds nuw i8, ptr %40, i64 8 + br label %.invoke -.invoke: ; preds = %158, %._crit_edge.thread, %._crit_edge - %.sink477.sroa.phi = phi ptr [ %.sink477.sroa.gep, %._crit_edge ], [ %.sink477.sroa.gep, %._crit_edge.thread ], [ %.sink477.sroa.gep499, %158 ] - %.sink477 = phi ptr [ %43, %._crit_edge ], [ %43, %._crit_edge.thread ], [ %40, %158 ] - %.sink473 = phi ptr [ %44, %._crit_edge ], [ %44, %._crit_edge.thread ], [ %41, %158 ] - %.sink471 = phi ptr [ %45, %._crit_edge ], [ %45, %._crit_edge.thread ], [ %42, %158 ] +.invoke: ; preds = %.invoke.loopexit, %._crit_edge.thread, %._crit_edge + %.sink477.sroa.phi = phi ptr [ %.sink477.sroa.gep, %._crit_edge ], [ %.sink477.sroa.gep501, %._crit_edge.thread ], [ %.sink477.sroa.gep499.le, %.invoke.loopexit ] + %.sink477 = phi ptr [ %43, %._crit_edge ], [ %43, %._crit_edge.thread ], [ %40, %.invoke.loopexit ] + %.sink473 = phi ptr [ %44, %._crit_edge ], [ %44, %._crit_edge.thread ], [ %41, %.invoke.loopexit ] + %.sink471 = phi ptr [ %45, %._crit_edge ], [ %45, %._crit_edge.thread ], [ %42, %.invoke.loopexit ] %164 = load i64, ptr %1, align 4 store i64 %164, ptr %.sink477, align 4 store i64 %.sroa.1350.0.copyload, ptr %.sink477.sroa.phi, align 4 @@ -8558,11 +8560,13 @@ _ZNSt6vectorISt4pairIN4Luau7AstNameENS1_8LocationEESaIS4_EE17_M_realloc_insertIJ ._crit_edge: ; preds = %231 %233 = icmp eq ptr %.0387451, null %or.cond.not = select i1 %.0386453, i1 %233, i1 false + %.sink477.sroa.gep = getelementptr inbounds nuw i8, ptr %43, i64 8 br i1 %or.cond.not, label %.invoke, label %.lr.ph.preheader.i.i ._crit_edge.thread: ; preds = %138 %234 = icmp eq ptr %.0387451, null %or.cond.not500 = select i1 %.0386453, i1 %234, i1 false + %.sink477.sroa.gep501 = getelementptr inbounds nuw i8, ptr %43, i64 8 br i1 %or.cond.not500, label %.invoke, label %.loopexit392.thread .loopexit392.thread: ; preds = %._crit_edge.thread diff --git a/bench/nix/optimized/derivations.ll b/bench/nix/optimized/derivations.ll index d32e6913387..ba963bbb3bb 100644 --- a/bench/nix/optimized/derivations.ll +++ b/bench/nix/optimized/derivations.ll @@ -16819,8 +16819,6 @@ define void @_ZNK3nix10Derivation15checkInvariantsERNS_5StoreERKNS_9StorePathE(p %26 = getelementptr inbounds nuw i8, ptr %2, i64 8 %27 = load i64, ptr %26, align 8 %28 = icmp ult i64 %27, 33 - %.sroa.gep = getelementptr inbounds nuw i8, ptr %25, i64 16 - %.sroa.gep56 = getelementptr inbounds nuw i8, ptr %25, i64 8 br i1 %28, label %29, label %_ZNK3nix9StorePath4nameEv.exit 29: ; preds = %3 @@ -17048,6 +17046,8 @@ _ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__c %113 = getelementptr inbounds nuw i8, ptr %5, i64 8 %114 = getelementptr inbounds nuw i8, ptr %4, i64 16 %115 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %.sroa.gep54 = getelementptr inbounds nuw i8, ptr %25, i64 16 + %.sroa.gep57 = getelementptr inbounds nuw i8, ptr %25, i64 8 %116 = getelementptr inbounds nuw i8, ptr %6, i64 16 %117 = getelementptr inbounds nuw i8, ptr %6, i64 8 %118 = getelementptr inbounds nuw i8, ptr %6, i64 24 @@ -17116,7 +17116,7 @@ _ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__c br i1 %142, label %143, label %157 143: ; preds = %.noexc32 - %144 = load ptr, ptr %.sroa.gep, align 8 + %144 = load ptr, ptr %.sroa.gep54, align 8 invoke void @_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E(ptr noundef nonnull align 8 dereferenceable(64) %25, ptr noundef %144) to label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE5clearEv.exit.i.i.i.i.i.i.i.i.i.i.i unwind label %145 @@ -17128,9 +17128,9 @@ _ZSteqIcEN9__gnu_cxx11__enable_ifIXsr9__is_charIT_EE7__valueEbE6__typeERKNSt7__c unreachable _ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE5clearEv.exit.i.i.i.i.i.i.i.i.i.i.i: ; preds = %143 - store ptr null, ptr %.sroa.gep, align 8 - store ptr %.sroa.gep56, ptr %119, align 8 - store ptr %.sroa.gep56, ptr %121, align 8 + store ptr null, ptr %.sroa.gep54, align 8 + store ptr %.sroa.gep57, ptr %119, align 8 + store ptr %.sroa.gep57, ptr %121, align 8 store i64 0, ptr %123, align 8 %148 = load ptr, ptr %116, align 8 %.not.i.i.i.i.i.i.i.i.i.i.i = icmp eq ptr %148, null @@ -17138,14 +17138,14 @@ _ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N 149: ; preds = %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE5clearEv.exit.i.i.i.i.i.i.i.i.i.i.i %150 = load i32, ptr %117, align 8 - store i32 %150, ptr %.sroa.gep56, align 8 - store ptr %148, ptr %.sroa.gep, align 8 + store i32 %150, ptr %.sroa.gep57, align 8 + store ptr %148, ptr %.sroa.gep54, align 8 %151 = load ptr, ptr %118, align 8 store ptr %151, ptr %119, align 8 %152 = load ptr, ptr %120, align 8 store ptr %152, ptr %121, align 8 %153 = getelementptr inbounds nuw i8, ptr %148, i64 8 - store ptr %.sroa.gep56, ptr %153, align 8 + store ptr %.sroa.gep57, ptr %153, align 8 %154 = load i64, ptr %122, align 8 store i64 %154, ptr %123, align 8 store ptr null, ptr %116, align 8 @@ -17167,14 +17167,14 @@ _ZN3nix7DrvHashaSEOS0_.exit.i.i.i.i.i.i.i: ; preds = %149, %_ZNSt8_Rb_tre 159: ; preds = %157 %160 = load i32, ptr %117, align 8 - store i32 %160, ptr %.sroa.gep56, align 8 - store ptr %158, ptr %.sroa.gep, align 8 + store i32 %160, ptr %.sroa.gep57, align 8 + store ptr %158, ptr %.sroa.gep54, align 8 %161 = load ptr, ptr %118, align 8 store ptr %161, ptr %119, align 8 %162 = load ptr, ptr %120, align 8 store ptr %162, ptr %121, align 8 %163 = getelementptr inbounds nuw i8, ptr %158, i64 8 - store ptr %.sroa.gep56, ptr %163, align 8 + store ptr %.sroa.gep57, ptr %163, align 8 %164 = load i64, ptr %122, align 8 store i64 %164, ptr %123, align 8 store ptr null, ptr %116, align 8 @@ -17184,10 +17184,10 @@ _ZN3nix7DrvHashaSEOS0_.exit.i.i.i.i.i.i.i: ; preds = %149, %_ZNSt8_Rb_tre br label %_ZNSt19_Optional_base_implIN3nix7DrvHashESt14_Optional_baseIS1_Lb0ELb0EEE12_M_constructIJS1_EEEvDpOT_.exit.i.i.i.i.i.i.i 165: ; preds = %157 - store i32 0, ptr %.sroa.gep56, align 8 - store ptr null, ptr %.sroa.gep, align 8 - store ptr %.sroa.gep56, ptr %119, align 8 - store ptr %.sroa.gep56, ptr %121, align 8 + store i32 0, ptr %.sroa.gep57, align 8 + store ptr null, ptr %.sroa.gep54, align 8 + store ptr %.sroa.gep57, ptr %119, align 8 + store ptr %.sroa.gep57, ptr %121, align 8 store i64 0, ptr %123, align 8 br label %_ZNSt19_Optional_base_implIN3nix7DrvHashESt14_Optional_baseIS1_Lb0ELb0EEE12_M_constructIJS1_EEEvDpOT_.exit.i.i.i.i.i.i.i @@ -17210,7 +17210,7 @@ _ZNSt8optionalIN3nix7DrvHashEEaSIS1_EENSt9enable_ifIX7__and_vISt6__not_ISt7is_sa unreachable _ZN3nix7DrvHashD2Ev.exit.i.i.i.i.i.i: ; preds = %_ZNSt8optionalIN3nix7DrvHashEEaSIS1_EENSt9enable_ifIX7__and_vISt6__not_ISt7is_sameIS2_NSt9remove_cvINSt16remove_referenceIT_E4typeEE4typeEEES5_ISt6__and_IJSt9is_scalarIS1_ES6_IS1_NSt5decayIS9_E4typeEEEEESt16is_constructibleIS1_JS9_EESt13is_assignableIRS1_S9_EEERS2_E4typeEOS9_.exit.i.i.i.i.i.i, %137 - %171 = load ptr, ptr %.sroa.gep, align 8 + %171 = load ptr, ptr %.sroa.gep54, align 8 %.not10.i.i.i.i.i.i.i.i.i.i = icmp eq ptr %171, null br i1 %.not10.i.i.i.i.i.i.i.i.i.i, label %select.unfold.i.i.i.i.i.i, label %.lr.ph.i.i.i.i.i.i.i.i.i.i @@ -17222,7 +17222,7 @@ _ZN3nix7DrvHashD2Ev.exit.i.i.i.i.i.i: ; preds = %_ZNSt8optionalIN3ni 175: ; preds = %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i.i.i.i.i.i.i.i.i, %.lr.ph.i.i.i.i.i.i.i.i.i.i %.012.i.i.i.i.i.i.i.i.i.i = phi ptr [ %171, %.lr.ph.i.i.i.i.i.i.i.i.i.i ], [ %.1.i.i.i.i.i.i.i.i.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i.i.i.i.i.i.i.i.i ] - %.0811.i.i.i.i.i.i.i.i.i.i = phi ptr [ %.sroa.gep56, %.lr.ph.i.i.i.i.i.i.i.i.i.i ], [ %.19.i.i.i.i.i.i.i.i.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i.i.i.i.i.i.i.i.i ] + %.0811.i.i.i.i.i.i.i.i.i.i = phi ptr [ %.sroa.gep57, %.lr.ph.i.i.i.i.i.i.i.i.i.i ], [ %.19.i.i.i.i.i.i.i.i.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i.i.i.i.i.i.i.i.i ] %176 = getelementptr inbounds nuw i8, ptr %.012.i.i.i.i.i.i.i.i.i.i, i64 40 %177 = load i64, ptr %176, align 8 %.sroa.speculated.i.i.i.i.i.i.i.i.i.i.i.i.i = call i64 @llvm.umin.i64(i64 %173, i64 %177) @@ -17254,7 +17254,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi br i1 %.not.i.i.i.i.i.i.i.i.i.i, label %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE14_M_lower_boundEPSt13_Rb_tree_nodeISA_EPSt18_Rb_tree_node_baseRS7_.exit.i.i.i.i.i.i.i.i.i, label %175, !llvm.loop !116 _ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE14_M_lower_boundEPSt13_Rb_tree_nodeISA_EPSt18_Rb_tree_node_baseRS7_.exit.i.i.i.i.i.i.i.i.i: ; preds = %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i.i.i.i.i.i.i.i.i - %184 = icmp eq ptr %.19.i.i.i.i.i.i.i.i.i.i, %.sroa.gep56 + %184 = icmp eq ptr %.19.i.i.i.i.i.i.i.i.i.i, %.sroa.gep57 br i1 %184, label %select.unfold.i.i.i.i.i.i, label %185 185: ; preds = %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE14_M_lower_boundEPSt13_Rb_tree_nodeISA_EPSt18_Rb_tree_node_baseRS7_.exit.i.i.i.i.i.i.i.i.i @@ -17604,9 +17604,10 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.i.i.i 290: ; preds = %._crit_edge store i8 0, ptr %108, align 8 - %291 = load ptr, ptr %.sroa.gep, align 8 - invoke void @_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E(ptr noundef nonnull align 8 dereferenceable(64) %25, ptr noundef %291) - to label %_ZNSt8optionalIN3nix7DrvHashEED2Ev.exit unwind label %292 + %291 = getelementptr inbounds nuw i8, ptr %25, i64 16 + %292 = load ptr, ptr %291, align 8 + invoke void @_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N3nix4HashEESt10_Select1stISA_ESt4lessIS5_ESaISA_EE8_M_eraseEPSt13_Rb_tree_nodeISA_E(ptr noundef nonnull align 8 dereferenceable(64) %25, ptr noundef %292) + to label %_ZNSt8optionalIN3nix7DrvHashEED2Ev.exit unwind label %293 292: ; preds = %290 %293 = landingpad { ptr, i32 } diff --git a/bench/nlohmann_json/optimized/unit-algorithms.ll b/bench/nlohmann_json/optimized/unit-algorithms.ll index cd7f17a328b..b825eb42307 100644 --- a/bench/nlohmann_json/optimized/unit-algorithms.ll +++ b/bench/nlohmann_json/optimized/unit-algorithms.ll @@ -29268,12 +29268,6 @@ entry: %call2.i = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK8nlohmann16json_abi_v3_11_36detail9iter_implINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEEEdeEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp1) %call3.i = call noundef zeroext i1 @_ZN8nlohmann16json_abi_v3_11_3ltERKNS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES3_IhSaIhEEvEESF_(ptr noundef nonnull align 8 dereferenceable(16) %call.i, ptr noundef nonnull align 8 dereferenceable(16) %call2.i) #23 %m_it3.i6 = getelementptr inbounds nuw i8, ptr %__c, i64 8 - %agg.tmp24.sink89.sroa.gep = getelementptr inbounds nuw i8, ptr %agg.tmp24, i64 8 - %agg.tmp24.sink89.sroa.gep90 = getelementptr inbounds nuw i8, ptr %agg.tmp34, i64 8 - %agg.tmp24.sink89.sroa.gep91 = getelementptr inbounds nuw i8, ptr %agg.tmp31, i64 8 - %agg.tmp24.sink89.sroa.gep92 = getelementptr inbounds nuw i8, ptr %agg.tmp7, i64 8 - %agg.tmp24.sink89.sroa.gep93 = getelementptr inbounds nuw i8, ptr %agg.tmp16, i64 8 - %agg.tmp24.sink89.sroa.gep94 = getelementptr inbounds nuw i8, ptr %agg.tmp13, i64 8 br i1 %call3.i, label %if.then, label %if.else18 if.then: ; preds = %entry @@ -29296,6 +29290,7 @@ if.then5: ; preds = %if.then %m_it.i10 = getelementptr inbounds nuw i8, ptr %agg.tmp6, i64 8 %m_it3.i11 = getelementptr inbounds nuw i8, ptr %__result, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %m_it.i10, ptr noundef nonnull align 8 dereferenceable(24) %m_it3.i11, i64 24, i1 false) + %agg.tmp24.sink89.sroa.gep92 = getelementptr inbounds nuw i8, ptr %agg.tmp7, i64 8 br label %if.end37 if.else: ; preds = %if.then @@ -29318,12 +29313,14 @@ if.then11: ; preds = %if.else store ptr %7, ptr %agg.tmp12, align 8 %m_it.i22 = getelementptr inbounds nuw i8, ptr %agg.tmp12, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %m_it.i22, ptr noundef nonnull align 8 dereferenceable(24) %m_it3.i23, i64 24, i1 false) + %agg.tmp24.sink89.sroa.gep94 = getelementptr inbounds nuw i8, ptr %agg.tmp13, i64 8 br label %if.end37 if.else14: ; preds = %if.else store ptr %7, ptr %agg.tmp15, align 8 %m_it.i31 = getelementptr inbounds nuw i8, ptr %agg.tmp15, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %m_it.i31, ptr noundef nonnull align 8 dereferenceable(24) %m_it3.i23, i64 24, i1 false) + %agg.tmp24.sink89.sroa.gep93 = getelementptr inbounds nuw i8, ptr %agg.tmp16, i64 8 br label %if.end37 if.else18: ; preds = %entry @@ -29346,6 +29343,7 @@ if.then22: ; preds = %if.else18 %m_it.i47 = getelementptr inbounds nuw i8, ptr %agg.tmp23, i64 8 %m_it3.i48 = getelementptr inbounds nuw i8, ptr %__result, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %m_it.i47, ptr noundef nonnull align 8 dereferenceable(24) %m_it3.i48, i64 24, i1 false) + %agg.tmp24.sink89.sroa.gep = getelementptr inbounds nuw i8, ptr %agg.tmp24, i64 8 br label %if.end37 if.else25: ; preds = %if.else18 @@ -29368,12 +29366,14 @@ if.then29: ; preds = %if.else25 store ptr %13, ptr %agg.tmp30, align 8 %m_it.i63 = getelementptr inbounds nuw i8, ptr %agg.tmp30, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %m_it.i63, ptr noundef nonnull align 8 dereferenceable(24) %m_it3.i64, i64 24, i1 false) + %agg.tmp24.sink89.sroa.gep91 = getelementptr inbounds nuw i8, ptr %agg.tmp31, i64 8 br label %if.end37 if.else32: ; preds = %if.else25 store ptr %13, ptr %agg.tmp33, align 8 %m_it.i72 = getelementptr inbounds nuw i8, ptr %agg.tmp33, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %m_it.i72, ptr noundef nonnull align 8 dereferenceable(24) %m_it3.i64, i64 24, i1 false) + %agg.tmp24.sink89.sroa.gep90 = getelementptr inbounds nuw i8, ptr %agg.tmp34, i64 8 br label %if.end37 if.end37: ; preds = %if.then22, %if.else32, %if.then29, %if.then5, %if.else14, %if.then11 @@ -30572,8 +30572,6 @@ entry: %call2.val.i.i = load i8, ptr %call2.i.i, align 8 %6 = getelementptr inbounds nuw i8, ptr %call2.i.i, i64 8 %call2.val2.i.i = load ptr, ptr %6, align 8 - %agg.tmp24.sink193.i.sroa.gep = getelementptr inbounds nuw i8, ptr %agg.tmp24.i, i64 8 - %agg.tmp24.sink193.i.sroa.gep64 = getelementptr inbounds nuw i8, ptr %agg.tmp7.i, i64 8 switch i8 %call.val.i.i, label %sw.default.i.i.i.i [ i8 0, label %_ZNK8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES3_IhSaIhEEvE4sizeEv.exit.i.i.i i8 2, label %sw.bb2.i.i.i.i @@ -30771,10 +30769,8 @@ sw.default.i12.i.i65.i: ; preds = %_ZNK8nlohmann16json %retval.0.i4.i.i57.i = phi i64 [ 1, %sw.default.i12.i.i65.i ], [ %31, %sw.bb4.i1.i.i55.i ], [ %sub.ptr.div.i.i11.i.i64.i, %sw.bb2.i5.i.i59.i ], [ 0, %_ZNK8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES3_IhSaIhEEvE4sizeEv.exit.i.i53.i ] %cmp.i.i58.i = icmp ult i64 %retval.0.i.i.i54.i, %retval.0.i4.i.i57.i %agg.tmp12.i.agg.tmp15.i = select i1 %cmp.i.i58.i, ptr %agg.tmp12.i, ptr %agg.tmp15.i - %agg.tmp3.agg.tmp1 = select i1 %cmp.i.i58.i, ptr %agg.tmp3, ptr %agg.tmp1 - %agg.tmp24.sink193.i.sroa.gep66.agg.tmp24.sink193.i.sroa.gep65.v.sroa.sel.v = select i1 %cmp.i.i58.i, ptr %agg.tmp13.i, ptr %agg.tmp16.i - %agg.tmp24.sink193.i.sroa.gep66.agg.tmp24.sink193.i.sroa.gep65.v.sroa.sel = getelementptr inbounds nuw i8, ptr %agg.tmp24.sink193.i.sroa.gep66.agg.tmp24.sink193.i.sroa.gep65.v.sroa.sel.v, i64 8 %agg.tmp13.i.agg.tmp16.i = select i1 %cmp.i.i58.i, ptr %agg.tmp13.i, ptr %agg.tmp16.i + %agg.tmp3.agg.tmp1 = select i1 %cmp.i.i58.i, ptr %agg.tmp3, ptr %agg.tmp1 %m_it.i.i7.m_it.i.i2 = select i1 %cmp.i.i58.i, ptr %m_it.i.i7, ptr %m_it.i.i2 br label %"_ZSt22__move_median_to_firstIN8nlohmann16json_abi_v3_11_36detail9iter_implINS1_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS1_14adl_serializerES6_IhSaIhEEvEEEEN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EEEvT_SN_SN_SN_T0_.exit" @@ -30920,27 +30916,25 @@ sw.default.i12.i.i158.i: ; preds = %_ZNK8nlohmann16json %retval.0.i4.i.i150.i = phi i64 [ 1, %sw.default.i12.i.i158.i ], [ %50, %sw.bb4.i1.i.i148.i ], [ %sub.ptr.div.i.i11.i.i157.i, %sw.bb2.i5.i.i152.i ], [ 0, %_ZNK8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES3_IhSaIhEEvE4sizeEv.exit.i.i146.i ] %cmp.i.i151.i = icmp ult i64 %retval.0.i.i.i147.i, %retval.0.i4.i.i150.i %agg.tmp30.i.agg.tmp33.i = select i1 %cmp.i.i151.i, ptr %agg.tmp30.i, ptr %agg.tmp33.i - %agg.tmp3.agg.tmp2 = select i1 %cmp.i.i151.i, ptr %agg.tmp3, ptr %agg.tmp2 - %agg.tmp24.sink193.i.sroa.gep63.agg.tmp24.sink193.i.sroa.gep62.v.sroa.sel.v = select i1 %cmp.i.i151.i, ptr %agg.tmp31.i, ptr %agg.tmp34.i - %agg.tmp24.sink193.i.sroa.gep63.agg.tmp24.sink193.i.sroa.gep62.v.sroa.sel = getelementptr inbounds nuw i8, ptr %agg.tmp24.sink193.i.sroa.gep63.agg.tmp24.sink193.i.sroa.gep62.v.sroa.sel.v, i64 8 %agg.tmp31.i.agg.tmp34.i = select i1 %cmp.i.i151.i, ptr %agg.tmp31.i, ptr %agg.tmp34.i + %agg.tmp3.agg.tmp2 = select i1 %cmp.i.i151.i, ptr %agg.tmp3, ptr %agg.tmp2 %m_it.i.i7.m_it.i5 = select i1 %cmp.i.i151.i, ptr %m_it.i.i7, ptr %m_it.i5 br label %"_ZSt22__move_median_to_firstIN8nlohmann16json_abi_v3_11_36detail9iter_implINS1_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS1_14adl_serializerES6_IhSaIhEEvEEEEN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EEEvT_SN_SN_SN_T0_.exit" "_ZSt22__move_median_to_firstIN8nlohmann16json_abi_v3_11_36detail9iter_implINS1_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS1_14adl_serializerES6_IhSaIhEEvEEEEN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EEEvT_SN_SN_SN_T0_.exit": ; preds = %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit166.i", %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit124.i", %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit73.i", %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit35.i" %agg.tmp6.i.sink67 = phi ptr [ %agg.tmp6.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit35.i" ], [ %agg.tmp12.i.agg.tmp15.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit73.i" ], [ %agg.tmp23.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit124.i" ], [ %agg.tmp30.i.agg.tmp33.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit166.i" ] + %agg.tmp7.i.sink = phi ptr [ %agg.tmp7.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit35.i" ], [ %agg.tmp13.i.agg.tmp16.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit73.i" ], [ %agg.tmp24.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit124.i" ], [ %agg.tmp31.i.agg.tmp34.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit166.i" ] %__a.sink.i = phi ptr [ %agg.tmp2, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit35.i" ], [ %agg.tmp3.agg.tmp1, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit73.i" ], [ %agg.tmp1, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit124.i" ], [ %agg.tmp3.agg.tmp2, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit166.i" ] - %agg.tmp24.sink193.i.sroa.phi = phi ptr [ %agg.tmp24.sink193.i.sroa.gep64, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit35.i" ], [ %agg.tmp24.sink193.i.sroa.gep66.agg.tmp24.sink193.i.sroa.gep65.v.sroa.sel, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit73.i" ], [ %agg.tmp24.sink193.i.sroa.gep, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit124.i" ], [ %agg.tmp24.sink193.i.sroa.gep63.agg.tmp24.sink193.i.sroa.gep62.v.sroa.sel, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit166.i" ] - %agg.tmp24.sink193.i = phi ptr [ %agg.tmp7.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit35.i" ], [ %agg.tmp13.i.agg.tmp16.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit73.i" ], [ %agg.tmp24.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit124.i" ], [ %agg.tmp31.i.agg.tmp34.i, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit166.i" ] %m_it3.i.sink.i = phi ptr [ %m_it.i5, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit35.i" ], [ %m_it.i.i7.m_it.i.i2, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit73.i" ], [ %m_it.i.i2, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit124.i" ], [ %m_it.i.i7.m_it.i5, %"_ZN9__gnu_cxx5__ops15_Iter_comp_iterIZL19DOCTEST_ANON_FUNC_2vE4$_15EclIN8nlohmann16json_abi_v3_11_36detail9iter_implINS6_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS6_14adl_serializerESB_IhSaIhEEvEEEESM_EEbT_T0_.exit166.i" ] store ptr %1, ptr %agg.tmp6.i.sink67, align 8 %m_it.i36.i = getelementptr inbounds nuw i8, ptr %agg.tmp6.i.sink67, i64 8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %m_it.i36.i, ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp.sroa.5, i64 24, i1 false) + %agg.tmp24.sink193.i.sroa.gep64 = getelementptr inbounds nuw i8, ptr %agg.tmp7.i.sink, i64 8 %51 = load ptr, ptr %__a.sink.i, align 8 - store ptr %51, ptr %agg.tmp24.sink193.i, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp24.sink193.i.sroa.phi, ptr noundef nonnull align 8 dereferenceable(24) %m_it3.i.sink.i, i64 24, i1 false) + store ptr %51, ptr %agg.tmp7.i.sink, align 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp24.sink193.i.sroa.gep64, ptr noundef nonnull align 8 dereferenceable(24) %m_it3.i.sink.i, i64 24, i1 false) %call.i129.i = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK8nlohmann16json_abi_v3_11_36detail9iter_implINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEEEdeEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp6.i.sink67) - %call1.i130.i = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK8nlohmann16json_abi_v3_11_36detail9iter_implINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEEEdeEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp24.sink193.i) + %call1.i130.i = call noundef nonnull align 8 dereferenceable(16) ptr @_ZNK8nlohmann16json_abi_v3_11_36detail9iter_implINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEEEdeEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp7.i.sink) %52 = load i8, ptr %call.i129.i, align 8 %53 = load i8, ptr %call1.i130.i, align 8 store i8 %53, ptr %call.i129.i, align 8 diff --git a/bench/nori/optimized/tabwidget.ll b/bench/nori/optimized/tabwidget.ll index ab9d60f6c20..9fcb0e0b325 100644 --- a/bench/nori/optimized/tabwidget.ll +++ b/bench/nori/optimized/tabwidget.ll @@ -1629,8 +1629,6 @@ define hidden noundef zeroext i1 @_ZN7nanogui13TabWidgetBase18mouse_button_event %23 = add nsw i32 %22, %18 %24 = icmp sgt i32 %20, %23 %or.cond.i = select i1 %.not.i, i1 true, i1 %24 - %.04.i67.sroa.gep69 = getelementptr inbounds nuw i8, ptr %11, i64 4 - %.04.i.sroa.gep70 = getelementptr inbounds nuw i8, ptr %10, i64 4 br i1 %or.cond.i, label %_ZNK7nanogui13TabWidgetBase15tab_at_positionERKNS_5ArrayIiLm2EEEb.exit, label %25 25: ; preds = %5 @@ -1957,8 +1955,7 @@ _ZN7nanogui5ArrayIiLm2EEC2Ei.exit.critedge: ; preds = %181 %193 = getelementptr inbounds nuw i8, ptr %192, i64 120 %194 = load ptr, ptr %193, align 8 call void %194(ptr noundef nonnull align 8 dereferenceable(416) %0, i32 noundef %191) - store i32 0, ptr %10, align 4 - store i32 0, ptr %.04.i.sroa.gep70, align 4 + %.sink160.sroa.gep163 = getelementptr inbounds nuw i8, ptr %10, i64 4 br label %.thread142.sink.split 195: ; preds = %175 @@ -2033,19 +2030,21 @@ _ZNKSt8functionIFviEEclEi.exit: ; preds = %226, %220 _ZN7nanogui5ArrayIiLm2EEC2Ei.exit68.critedge: ; preds = %235 store i32 -1, ptr %95, align 8 - store i32 0, ptr %11, align 4 - store i32 0, ptr %.04.i67.sroa.gep69, align 4 + %.sink160.sroa.gep = getelementptr inbounds nuw i8, ptr %11, i64 4 br label %.thread142.sink.split 236: ; preds = %173 br i1 %3, label %.thread137, label %.thread142 .thread142.sink.split: ; preds = %_ZN7nanogui5ArrayIiLm2EEC2Ei.exit.critedge, %_ZN7nanogui5ArrayIiLm2EEC2Ei.exit68.critedge - %.sink = phi ptr [ %11, %_ZN7nanogui5ArrayIiLm2EEC2Ei.exit68.critedge ], [ %10, %_ZN7nanogui5ArrayIiLm2EEC2Ei.exit.critedge ] + %.sink = phi ptr [ %.sink160.sroa.gep, %_ZN7nanogui5ArrayIiLm2EEC2Ei.exit68.critedge ], [ %.sink160.sroa.gep163, %_ZN7nanogui5ArrayIiLm2EEC2Ei.exit.critedge ] + %.sink160 = phi ptr [ %11, %_ZN7nanogui5ArrayIiLm2EEC2Ei.exit68.critedge ], [ %10, %_ZN7nanogui5ArrayIiLm2EEC2Ei.exit.critedge ] + store i32 0, ptr %.sink160, align 4 + store i32 0, ptr %.sink160.sroa.phi, align 4 %237 = load ptr, ptr %0, align 8 %238 = getelementptr inbounds nuw i8, ptr %237, i64 40 %239 = load ptr, ptr %238, align 8 - %240 = call noundef zeroext i1 %239(ptr noundef nonnull align 8 dereferenceable(416) %0, ptr noundef nonnull align 4 dereferenceable(8) %1, ptr noundef nonnull align 4 dereferenceable(8) %.sink, i32 noundef 0, i32 noundef 0) + %240 = call noundef zeroext i1 %239(ptr noundef nonnull align 8 dereferenceable(416) %0, ptr noundef nonnull align 4 dereferenceable(8) %1, ptr noundef nonnull align 4 dereferenceable(8) %.sink160, i32 noundef 0, i32 noundef 0) br label %.thread142 .thread142: ; preds = %.thread142.sink.split, %235, %181, %236 diff --git a/bench/ocio/optimized/Lut3DOpCPU.ll b/bench/ocio/optimized/Lut3DOpCPU.ll index 70131ad2949..af5e9bb6868 100644 --- a/bench/ocio/optimized/Lut3DOpCPU.ll +++ b/bench/ocio/optimized/Lut3DOpCPU.ll @@ -2743,7 +2743,6 @@ _ZN19OpenColorIO_v2_4dev12_GLOBAL__N_116InvLut3DRenderer18extrapolate3DArrayERSt store i64 %add, ptr %m_gsz.i, align 8 %arrayidx7.i = getelementptr inbounds nuw i8, ptr %this, i64 64 store i64 0, ptr %arrayidx7.i, align 8 - %.sink85.i.sroa.gep.i = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 16 br label %for.body.i for.body.i: ; preds = %for.body.i, %_ZN19OpenColorIO_v2_4dev12_GLOBAL__N_116InvLut3DRenderer18extrapolate3DArrayERSt10shared_ptrIKNS_11Lut3DOpDataEE.exit @@ -2759,9 +2758,6 @@ for.body.i: ; preds = %for.body.i, %_ZN19O br i1 %exitcond.not.i2, label %for.end.i, label %for.body.i, !llvm.loop !71 for.end.i: ; preds = %for.body.i - %.sink.i.sroa.gep.i = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 24 - %.sink85.i.sroa.gep224.i = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 48 - %.sink.i.sroa.gep225.i = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 56 %sub.i3 = fadd float %.sroa.speculated.i, -2.000000e+00 %49 = call { float, i32 } @llvm.frexp.f32.i32(float %sub.i3) %50 = extractvalue { float, i32 } %49, 1 @@ -3576,9 +3572,11 @@ _ZNSt6vectorIfSaIfEE6resizeEm.exit60.i.i: ; preds = %invoke.cont.i.i57.i if.then.i84.i: ; preds = %_ZNSt6vectorIfSaIfEE6resizeEm.exit60.i.i %arrayidx15.i.i = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 8 store i64 1, ptr %arrayidx15.i.i, align 8 - store i64 %130, ptr %.sink85.i.sroa.gep.i, align 16 + %arrayidx18.i85.i = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 16 + store i64 %130, ptr %arrayidx18.i85.i, align 16 %add.i.i = add i64 %130, 1 - store i64 %add.i.i, ptr %.sink.i.sroa.gep.i, align 8 + %arrayidx21.i.i = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 24 + store i64 %add.i.i, ptr %arrayidx21.i.i, align 8 %arrayidx27.i.i = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 32 store i64 %mul10.i.i, ptr %arrayidx27.i.i, align 16 %add33.i.i = add i64 %mul10.i.i, 1 @@ -3586,11 +3584,15 @@ if.then.i84.i: ; preds = %_ZNSt6vectorIfSaIfE store i64 %add33.i.i, ptr %arrayidx34.i.i, align 8 %133 = add i64 %131, 1 %add42.i.i = mul i64 %133, %130 + %.sink.sroa.gep70 = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 56 + %.sink45.sroa.gep71 = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 48 br label %if.end67.i.i if.then56.i.i: ; preds = %_ZNSt6vectorIfSaIfEE6resizeEm.exit60.i.i %arrayidx58.i.i = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 8 store i64 1, ptr %arrayidx58.i.i, align 8 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 24 + %.sink45.sroa.gep = getelementptr inbounds nuw i8, ptr %cornerOffsets.i.i, i64 16 br label %if.end67.i.i if.else66.i.i: ; preds = %_ZNSt6vectorIfSaIfEE6resizeEm.exit60.i.i @@ -3612,13 +3614,13 @@ lpad.i.i: ; preds = %if.else66.i.i br label %lpad86.body.i if.end67.i.i: ; preds = %if.then56.i.i, %if.then.i84.i - %.sink85.i.sroa.phi.i = phi ptr [ %.sink85.i.sroa.gep.i, %if.then56.i.i ], [ %.sink85.i.sroa.gep224.i, %if.then.i84.i ] + %.sink85.i.sroa.phi.i = phi ptr [ %.sink45.sroa.gep, %if.then56.i.i ], [ %.sink45.sroa.gep71, %if.then.i84.i ] + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %if.then56.i.i ], [ %.sink.sroa.gep70, %if.then.i84.i ] %.sink84.i.i = phi i64 [ %131, %if.then56.i.i ], [ %add42.i.i, %if.then.i84.i ] - %.sink.i.sroa.phi.i = phi ptr [ %.sink.i.sroa.gep.i, %if.then56.i.i ], [ %.sink.i.sroa.gep225.i, %if.then.i84.i ] %corners.0.i.i = phi i64 [ 4, %if.then56.i.i ], [ 8, %if.then.i84.i ] store i64 %.sink84.i.i, ptr %.sink85.i.sroa.phi.i, align 16 %add64.i.i = add i64 %.sink84.i.i, 1 - store i64 %add64.i.i, ptr %.sink.i.sroa.phi.i, align 8 + store i64 %add64.i.i, ptr %.sink.sroa.phi, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %minVal.i.i, i8 0, i64 16, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 16 dereferenceable(16) %maxVal.i.i, i8 0, i64 16, i1 false) %cmp6878.not.i.i = icmp eq i64 %123, 0 diff --git a/bench/ockam-rs/optimized/1webxc5tel1wnzl3.ll b/bench/ockam-rs/optimized/1webxc5tel1wnzl3.ll index e189eae37ed..6d969d34d64 100644 --- a/bench/ockam-rs/optimized/1webxc5tel1wnzl3.ll +++ b/bench/ockam-rs/optimized/1webxc5tel1wnzl3.ll @@ -1623,7 +1623,6 @@ default.unreachable31: ; preds = %474, %114, %100, %8 call void @llvm.lifetime.start.p0(i64 168, ptr nonnull %64) call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %68) %78 = getelementptr inbounds nuw i8, ptr %1, i64 312 - %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx36 = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 8 br label %85 79: ; preds = %.body @@ -1645,7 +1644,6 @@ default.unreachable31: ; preds = %474, %114, %100, %8 call void @llvm.lifetime.start.p0(i64 168, ptr nonnull %64) call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %68) %84 = getelementptr inbounds nuw i8, ptr %1, i64 312 - %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 8 switch i8 %.pre, label %default.unreachable31 [ i8 0, label %85 i8 1, label %.invoke @@ -1654,7 +1652,6 @@ default.unreachable31: ; preds = %474, %114, %100, %8 ] 85: ; preds = %.thread, %82 - %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx34 = phi ptr [ %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx36, %.thread ], [ %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx, %82 ] %86 = phi ptr [ %78, %.thread ], [ %84, %82 ] %87 = phi ptr [ %77, %.thread ], [ %83, %82 ] %88 = load ptr, ptr %87, align 8, !noalias !263, !nonnull !4, !align !20, !noundef !4 @@ -1665,7 +1662,6 @@ default.unreachable31: ; preds = %474, %114, %100, %8 to label %92 unwind label %90, !noalias !267 89: ; preds = %82 - %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx35 = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 8 call void @llvm.lifetime.start.p0(i64 232, ptr nonnull %72), !noalias !263 call void @llvm.lifetime.start.p0(i64 296, ptr nonnull %71) br label %100 @@ -1703,7 +1699,6 @@ default.unreachable31: ; preds = %474, %114, %100, %8 unreachable 100: ; preds = %92, %89 - %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx33 = phi ptr [ %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx34, %92 ], [ %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx35, %89 ] %101 = phi ptr [ %86, %92 ], [ %84, %89 ] %102 = phi ptr [ %87, %92 ], [ %83, %89 ] call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %69) @@ -3350,6 +3345,7 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17h90c4fcd119ea9721E.exit.th %.phi.trans.insert263.i.i = getelementptr inbounds nuw i8, ptr %1, i64 32 %.pre264.i.i = load i8, ptr %.phi.trans.insert263.i.i, align 8, !range !175, !noalias !276 %638 = trunc nuw i8 %.pre264.i.i to i1 + %.sroa.0.i.8.i.8.i.8.i.8.i.8.i.8.gep100.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 8 br i1 %638, label %639, label %643 639: ; preds = %636 @@ -3368,7 +3364,7 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17h90c4fcd119ea9721E.exit.th br label %.body.i 643: ; preds = %639, %636, %"_ZN4core6option15Option$LT$T$GT$3map17hea6a85cdfb664892E.exit.thread.i.i", %.thread266.i.i - %.sroa.0192.1.i.sroa.phi.i = phi ptr [ %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx33, %639 ], [ %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx33, %636 ], [ %.sroa.0.i, %"_ZN4core6option15Option$LT$T$GT$3map17hea6a85cdfb664892E.exit.thread.i.i" ], [ %.sroa.0.i, %.thread266.i.i ] + %.sroa.0192.1.i.sroa.phi.i = phi ptr [ %.sroa.0.i.8.i.8.i.8.i.8.i.8.i.8.gep100.sroa_idx, %639 ], [ %.sroa.0.i.8.i.8.i.8.i.8.i.8.i.8.gep100.sroa_idx, %636 ], [ %.sroa.0.i, %"_ZN4core6option15Option$LT$T$GT$3map17hea6a85cdfb664892E.exit.thread.i.i" ], [ %.sroa.0.i, %.thread266.i.i ] %.sroa.0192.1.i.i = phi i64 [ 1, %639 ], [ 1, %636 ], [ 0, %"_ZN4core6option15Option$LT$T$GT$3map17hea6a85cdfb664892E.exit.thread.i.i" ], [ 0, %.thread266.i.i ] %.sroa.4193.1.i.i = phi ptr [ %.sroa.4.i.sroa.4.0.copyload.i.i, %639 ], [ %.sroa.4.i.sroa.4.0.copyload.i.i, %636 ], [ null, %"_ZN4core6option15Option$LT$T$GT$3map17hea6a85cdfb664892E.exit.thread.i.i" ], [ %.sroa.0197.0.copyload.i.i, %.thread266.i.i ] %644 = getelementptr inbounds nuw i8, ptr %1, i64 32 diff --git a/bench/ockam-rs/optimized/2ngtaq92gcad4v6j.ll b/bench/ockam-rs/optimized/2ngtaq92gcad4v6j.ll index a7e292aafdd..c68b4424f01 100644 --- a/bench/ockam-rs/optimized/2ngtaq92gcad4v6j.ll +++ b/bench/ockam-rs/optimized/2ngtaq92gcad4v6j.ll @@ -12490,7 +12490,6 @@ common.ret: ; preds = %610, %1406, %689, % store i8 0, ptr %.sroa.750.0..sroa_idx.i, align 8, !noalias !1576 call void @llvm.lifetime.start.p0(i64 168, ptr nonnull %62), !noalias !1576 call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %66) - %.sroa.0.i.i.8.i.i.8.i.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx321 = getelementptr inbounds nuw i8, ptr %.sroa.0.i.i, i64 8 br label %762 723: ; preds = %701 @@ -12628,15 +12627,13 @@ common.ret: ; preds = %610, %1406, %689, % ] ._crit_edge: ; preds = %760 - %.sroa.0.i.i.8.i.i.8.i.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i.i, i64 8 - %.pre313 = load ptr, ptr %761, align 8, !noalias !1593 + %.sroa.0.i.i.8.i.i.8.i.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx = load ptr, ptr %761, align 8, !noalias !1593 br label %762 762: ; preds = %._crit_edge, %.thread.i218 %763 = phi ptr [ %705, %.thread.i218 ], [ %703, %._crit_edge ] %764 = phi ptr [ %706, %.thread.i218 ], [ %702, %._crit_edge ] - %765 = phi ptr [ %708, %.thread.i218 ], [ %.pre313, %._crit_edge ] - %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx82.i = phi ptr [ %.sroa.0.i.i.8.i.i.8.i.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx321, %.thread.i218 ], [ %.sroa.0.i.i.8.i.i.8.i.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx, %._crit_edge ] + %765 = phi ptr [ %708, %.thread.i218 ], [ %.pre309, %._crit_edge ] %766 = phi ptr [ %.sroa.750.0..sroa_idx.i, %.thread.i218 ], [ %.phi.trans.insert.i203, %._crit_edge ] %767 = phi ptr [ %722, %.thread.i218 ], [ %761, %._crit_edge ] call void @llvm.lifetime.start.p0(i64 232, ptr nonnull %70), !noalias !1593 @@ -12646,7 +12643,6 @@ common.ret: ; preds = %610, %1406, %689, % to label %771 unwind label %769, !noalias !1597 768: ; preds = %760 - %.sroa.0.i.i.8.i.i.8.i.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx320 = getelementptr inbounds nuw i8, ptr %.sroa.0.i.i, i64 8 call void @llvm.lifetime.start.p0(i64 232, ptr nonnull %70), !noalias !1593 call void @llvm.lifetime.start.p0(i64 296, ptr nonnull %69) br label %781 @@ -12688,7 +12684,6 @@ common.ret: ; preds = %610, %1406, %689, % 781: ; preds = %771, %768 %782 = phi ptr [ %763, %771 ], [ %703, %768 ] %783 = phi ptr [ %764, %771 ], [ %702, %768 ] - %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx81.i = phi ptr [ %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx82.i, %771 ], [ %.sroa.0.i.i.8.i.i.8.i.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx320, %768 ] %784 = phi ptr [ %766, %771 ], [ %.phi.trans.insert.i203, %768 ] %785 = phi ptr [ %767, %771 ], [ %761, %768 ] call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %67) @@ -14352,6 +14347,7 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17h90c4fcd119ea9721E.exit.th %.phi.trans.insert272.i.i.i = getelementptr inbounds nuw i8, ptr %1, i64 504 %.pre273.i.i.i = load i8, ptr %.phi.trans.insert272.i.i.i, align 8, !range !132, !noalias !1605 %1320 = trunc nuw i8 %.pre273.i.i.i to i1 + %.sroa.0.i.i.8.i.i.8.i.i.8.i.i.8.i.i.8.i.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i.i, i64 8 br i1 %1320, label %1321, label %1335 1321: ; preds = %1318 @@ -14403,7 +14399,7 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17h90c4fcd119ea9721E.exit.th br label %.body.i.i205 1335: ; preds = %"_ZN4core3ptr58drop_in_place$LT$ockam_core..routing..address..Address$GT$17h0c670364eaae6913E.exit3.i146.i.i.i", %1318, %"_ZN4core6option15Option$LT$T$GT$3map17h163c3c039f60e7aeE.exit.thread.i.i.i", %.thread275.i.i.i - %.sroa.0201.1.i.sroa.phi.i.i = phi ptr [ %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx81.i, %1318 ], [ %.sroa.0.i.i, %"_ZN4core6option15Option$LT$T$GT$3map17h163c3c039f60e7aeE.exit.thread.i.i.i" ], [ %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx81.i, %"_ZN4core3ptr58drop_in_place$LT$ockam_core..routing..address..Address$GT$17h0c670364eaae6913E.exit3.i146.i.i.i" ], [ %.sroa.0.i.i, %.thread275.i.i.i ] + %.sroa.0201.1.i.sroa.phi.i.i = phi ptr [ %.sroa.0.i.i.8.i.i.8.i.i.8.i.i.8.i.i.8.i.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx, %1318 ], [ %.sroa.0.i.i, %"_ZN4core6option15Option$LT$T$GT$3map17h163c3c039f60e7aeE.exit.thread.i.i.i" ], [ %.sroa.0.i.i.8.i.i.8.i.i.8.i.i.8.i.i.8.i.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx, %"_ZN4core3ptr58drop_in_place$LT$ockam_core..routing..address..Address$GT$17h0c670364eaae6913E.exit3.i146.i.i.i" ], [ %.sroa.0.i.i, %.thread275.i.i.i ] %.sroa.0201.1.i.i.i = phi i64 [ 1, %1318 ], [ 0, %"_ZN4core6option15Option$LT$T$GT$3map17h163c3c039f60e7aeE.exit.thread.i.i.i" ], [ 1, %"_ZN4core3ptr58drop_in_place$LT$ockam_core..routing..address..Address$GT$17h0c670364eaae6913E.exit3.i146.i.i.i" ], [ 0, %.thread275.i.i.i ] %.sroa.4202.1.i.i.i = phi ptr [ %.sroa.4.i.sroa.4.0.copyload.i.i.i, %1318 ], [ null, %"_ZN4core6option15Option$LT$T$GT$3map17h163c3c039f60e7aeE.exit.thread.i.i.i" ], [ %.sroa.4.i.sroa.4.0.copyload.i.i.i, %"_ZN4core3ptr58drop_in_place$LT$ockam_core..routing..address..Address$GT$17h0c670364eaae6913E.exit3.i146.i.i.i" ], [ %.sroa.0206.0.copyload.i.i.i, %.thread275.i.i.i ] %1336 = getelementptr inbounds nuw i8, ptr %1, i64 504 diff --git a/bench/ockam-rs/optimized/2qz3huiqqut486jt.ll b/bench/ockam-rs/optimized/2qz3huiqqut486jt.ll index 30828e42c70..63658bb180e 100644 --- a/bench/ockam-rs/optimized/2qz3huiqqut486jt.ll +++ b/bench/ockam-rs/optimized/2qz3huiqqut486jt.ll @@ -17640,7 +17640,6 @@ default.unreachable79: ; preds = %525, %165, %151, %1 call void @llvm.lifetime.start.p0(i64 168, ptr nonnull %64) call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %68) %98 = getelementptr inbounds nuw i8, ptr %1, i64 336 - %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx85 = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 8 br label %136 99: ; preds = %3 @@ -17781,7 +17780,6 @@ common.ret: ; preds = %756, %128, %119 call void @llvm.lifetime.start.p0(i64 168, ptr nonnull %64) call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %68) %135 = getelementptr inbounds nuw i8, ptr %1, i64 336 - %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 8 switch i8 %.pre, label %default.unreachable79 [ i8 0, label %136 i8 1, label %.invoke @@ -17790,7 +17788,6 @@ common.ret: ; preds = %756, %128, %119 ] 136: ; preds = %.thread, %133 - %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx82 = phi ptr [ %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx85, %.thread ], [ %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx, %133 ] %137 = phi ptr [ %98, %.thread ], [ %135, %133 ] %138 = phi ptr [ %97, %.thread ], [ %134, %133 ] %139 = load ptr, ptr %138, align 8, !noalias !1648, !nonnull !4, !align !5, !noundef !4 @@ -17801,7 +17798,6 @@ common.ret: ; preds = %756, %128, %119 to label %143 unwind label %141, !noalias !1652 140: ; preds = %133 - %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx84 = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 8 call void @llvm.lifetime.start.p0(i64 232, ptr nonnull %72), !noalias !1648 call void @llvm.lifetime.start.p0(i64 296, ptr nonnull %71) br label %151 @@ -17839,7 +17835,6 @@ common.ret: ; preds = %756, %128, %119 unreachable 151: ; preds = %143, %140 - %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx81 = phi ptr [ %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx82, %143 ], [ %.sroa.0.i.8.i.8.i.8.i.8.i.8.gep.sroa_idx84, %140 ] %152 = phi ptr [ %137, %143 ], [ %135, %140 ] %153 = phi ptr [ %138, %143 ], [ %134, %140 ] call void @llvm.lifetime.start.p0(i64 240, ptr nonnull %69) @@ -19486,6 +19481,7 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17h90c4fcd119ea9721E.exit.th %.phi.trans.insert262.i.i = getelementptr inbounds nuw i8, ptr %1, i64 56 %.pre263.i.i = load i8, ptr %.phi.trans.insert262.i.i, align 8, !range !238, !noalias !1660 %689 = trunc nuw i8 %.pre263.i.i to i1 + %.sroa.0.i.8.i.8.i.8.i.8.i.8.i.8.gep100.sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.0.i, i64 8 br i1 %689, label %690, label %694 690: ; preds = %687 @@ -19504,7 +19500,7 @@ _ZN12tracing_core8callsite15DefaultCallsite8interest17h90c4fcd119ea9721E.exit.th br label %.body.i 694: ; preds = %690, %687, %"_ZN4core6option15Option$LT$T$GT$3map17hffdbc7348e4896fbE.exit.thread.i.i", %.thread265.i.i - %.sroa.0191.1.i.sroa.phi.i = phi ptr [ %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx81, %690 ], [ %.sroa.0.i.8.i.8.i.8.i.8.gep.sroa_idx81, %687 ], [ %.sroa.0.i, %"_ZN4core6option15Option$LT$T$GT$3map17hffdbc7348e4896fbE.exit.thread.i.i" ], [ %.sroa.0.i, %.thread265.i.i ] + %.sroa.0191.1.i.sroa.phi.i = phi ptr [ %.sroa.0.i.8.i.8.i.8.i.8.i.8.i.8.gep100.sroa_idx, %690 ], [ %.sroa.0.i.8.i.8.i.8.i.8.i.8.i.8.gep100.sroa_idx, %687 ], [ %.sroa.0.i, %"_ZN4core6option15Option$LT$T$GT$3map17hffdbc7348e4896fbE.exit.thread.i.i" ], [ %.sroa.0.i, %.thread265.i.i ] %.sroa.0191.1.i.i = phi i64 [ 1, %690 ], [ 1, %687 ], [ 0, %"_ZN4core6option15Option$LT$T$GT$3map17hffdbc7348e4896fbE.exit.thread.i.i" ], [ 0, %.thread265.i.i ] %.sroa.4192.1.i.i = phi ptr [ %.sroa.4.i.sroa.4.0.copyload.i.i, %690 ], [ %.sroa.4.i.sroa.4.0.copyload.i.i, %687 ], [ null, %"_ZN4core6option15Option$LT$T$GT$3map17hffdbc7348e4896fbE.exit.thread.i.i" ], [ %.sroa.0196.0.copyload.i.i, %.thread265.i.i ] %695 = getelementptr inbounds nuw i8, ptr %1, i64 56 diff --git a/bench/oiio/optimized/imagebufalgo_compare.ll b/bench/oiio/optimized/imagebufalgo_compare.ll index 7ac0d2c5d38..cd6e8d31b70 100644 --- a/bench/oiio/optimized/imagebufalgo_compare.ll +++ b/bench/oiio/optimized/imagebufalgo_compare.ll @@ -4707,20 +4707,6 @@ entry: store i8 0, ptr %m_printdtr.i.i, align 1 %m_starttime.i.i = getelementptr inbounds nuw i8, ptr %logtimer, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %m_starttime.i.i, i8 0, i64 24, i1 false) - %cond-lvalue.i.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 4 - %cond-lvalue.i.sroa.gep213 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 4 - %cond-lvalue.i.sroa.gep215 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 8 - %cond-lvalue.i.sroa.gep216 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 8 - %cond-lvalue.i.sroa.gep218 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 12 - %cond-lvalue.i.sroa.gep219 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 12 - %cond-lvalue.i.sroa.gep221 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 16 - %cond-lvalue.i.sroa.gep222 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 16 - %cond-lvalue.i.sroa.gep224 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 20 - %cond-lvalue.i.sroa.gep225 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 20 - %cond-lvalue.i.sroa.gep227 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 24 - %cond-lvalue.i.sroa.gep228 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 24 - %cond-lvalue.i.sroa.gep230 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 28 - %cond-lvalue.i.sroa.gep231 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 28 br i1 %tobool.not.i, label %_ZN18OpenImageIO_v2_6_05TimerC2Eb.exit.i, label %_ZN18OpenImageIO_v2_6_05Timer5startEv.exit.i.i _ZN18OpenImageIO_v2_6_05Timer5startEv.exit.i.i: ; preds = %entry @@ -4786,11 +4772,25 @@ invoke.cont5: ; preds = %invoke.cont3 invoke.cont7: ; preds = %invoke.cont5 %6 = load i32, ptr %ref.tmp1, align 4, !noalias !19 %cmp.i.not.i = icmp eq i32 %6, -2147483648 + %cond-lvalue.i.sroa.gep213 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 4 + %cond-lvalue.i.sroa.gep216 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 8 + %cond-lvalue.i.sroa.gep219 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 12 + %cond-lvalue.i.sroa.gep222 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 16 + %cond-lvalue.i.sroa.gep225 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 20 + %cond-lvalue.i.sroa.gep228 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 24 + %cond-lvalue.i.sroa.gep231 = getelementptr inbounds nuw i8, ptr %ref.tmp4, i64 28 br i1 %cmp.i.not.i, label %cond.false.i, label %land.lhs.true.i land.lhs.true.i: ; preds = %invoke.cont7 %7 = load i32, ptr %ref.tmp4, align 4, !noalias !19 %cmp.i20.not.i = icmp eq i32 %7, -2147483648 + %cond-lvalue.i.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 4 + %cond-lvalue.i.sroa.gep215 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 8 + %cond-lvalue.i.sroa.gep218 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 12 + %cond-lvalue.i.sroa.gep221 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 16 + %cond-lvalue.i.sroa.gep224 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 20 + %cond-lvalue.i.sroa.gep227 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 24 + %cond-lvalue.i.sroa.gep230 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 28 br i1 %cmp.i20.not.i, label %cond.false.i, label %cond.true.i cond.true.i: ; preds = %land.lhs.true.i @@ -28762,20 +28762,6 @@ entry: store i8 0, ptr %m_printdtr.i.i, align 1 %m_starttime.i.i = getelementptr inbounds nuw i8, ptr %logtimer, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %m_starttime.i.i, i8 0, i64 24, i1 false) - %cond-lvalue.i.sroa.gep = getelementptr inbounds nuw i8, ptr %roi, i64 4 - %cond-lvalue.i.sroa.gep407 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 4 - %cond-lvalue.i.sroa.gep409 = getelementptr inbounds nuw i8, ptr %roi, i64 8 - %cond-lvalue.i.sroa.gep410 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 8 - %cond-lvalue.i.sroa.gep412 = getelementptr inbounds nuw i8, ptr %roi, i64 12 - %cond-lvalue.i.sroa.gep413 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 12 - %cond-lvalue.i.sroa.gep415 = getelementptr inbounds nuw i8, ptr %roi, i64 16 - %cond-lvalue.i.sroa.gep416 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 16 - %cond-lvalue.i.sroa.gep418 = getelementptr inbounds nuw i8, ptr %roi, i64 20 - %cond-lvalue.i.sroa.gep419 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 20 - %cond-lvalue.i.sroa.gep421 = getelementptr inbounds nuw i8, ptr %roi, i64 24 - %cond-lvalue.i.sroa.gep422 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 24 - %cond-lvalue.i.sroa.gep424 = getelementptr inbounds nuw i8, ptr %roi, i64 28 - %cond-lvalue.i.sroa.gep425 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 28 br i1 %tobool.not.i, label %_ZN18OpenImageIO_v2_6_05TimerC2Eb.exit.i, label %_ZN18OpenImageIO_v2_6_05Timer5startEv.exit.i.i _ZN18OpenImageIO_v2_6_05Timer5startEv.exit.i.i: ; preds = %entry @@ -28822,11 +28808,25 @@ _ZN18OpenImageIO_v2_6_03pvt11LoggedTimerC2ENS_17basic_string_viewIcSt11char_trai invoke.cont: ; preds = %_ZN18OpenImageIO_v2_6_03pvt11LoggedTimerC2ENS_17basic_string_viewIcSt11char_traitsIcEEE.exit %5 = load i32, ptr %roi, align 8, !noalias !155 %cmp.i.not.i = icmp eq i32 %5, -2147483648 + %cond-lvalue.i.sroa.gep407 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 4 + %cond-lvalue.i.sroa.gep410 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 8 + %cond-lvalue.i.sroa.gep413 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 12 + %cond-lvalue.i.sroa.gep416 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 16 + %cond-lvalue.i.sroa.gep419 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 20 + %cond-lvalue.i.sroa.gep422 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 24 + %cond-lvalue.i.sroa.gep425 = getelementptr inbounds nuw i8, ptr %ref.tmp1, i64 28 br i1 %cmp.i.not.i, label %cond.false.i, label %land.lhs.true.i land.lhs.true.i: ; preds = %invoke.cont %6 = load i32, ptr %ref.tmp1, align 4, !noalias !155 %cmp.i20.not.i = icmp eq i32 %6, -2147483648 + %cond-lvalue.i.sroa.gep = getelementptr inbounds nuw i8, ptr %roi, i64 4 + %cond-lvalue.i.sroa.gep409 = getelementptr inbounds nuw i8, ptr %roi, i64 8 + %cond-lvalue.i.sroa.gep412 = getelementptr inbounds nuw i8, ptr %roi, i64 12 + %cond-lvalue.i.sroa.gep415 = getelementptr inbounds nuw i8, ptr %roi, i64 16 + %cond-lvalue.i.sroa.gep418 = getelementptr inbounds nuw i8, ptr %roi, i64 20 + %cond-lvalue.i.sroa.gep421 = getelementptr inbounds nuw i8, ptr %roi, i64 24 + %cond-lvalue.i.sroa.gep424 = getelementptr inbounds nuw i8, ptr %roi, i64 28 br i1 %cmp.i20.not.i, label %cond.false.i, label %cond.true.i cond.true.i: ; preds = %land.lhs.true.i @@ -28883,13 +28883,20 @@ _ZN18OpenImageIO_v2_6_016roi_intersectionERKNS_3ROIES2_.exit: ; preds = %cond.tr %ref.tmp.sroa.8.0 = phi i32 [ %ref.tmp.sroa.8.0.copyload305, %cond.false.i ], [ %25, %cond.true.i ] %ref.tmp.sroa.9.0 = phi i32 [ %ref.tmp.sroa.9.0.copyload306, %cond.false.i ], [ %28, %cond.true.i ] store i32 %agg.tmp3.sroa.0.0.copyload, ptr %roi, align 8 - store i32 %agg.tmp3.sroa.2.0.copyload, ptr %cond-lvalue.i.sroa.gep, align 4 - store i32 %agg.tmp3.sroa.3.0.copyload, ptr %cond-lvalue.i.sroa.gep409, align 8 - store i32 %agg.tmp3.sroa.4.0.copyload, ptr %cond-lvalue.i.sroa.gep412, align 4 - store i32 %agg.tmp3.sroa.5.0.copyload, ptr %cond-lvalue.i.sroa.gep415, align 8 - store i32 %agg.tmp3.sroa.6.0.copyload, ptr %cond-lvalue.i.sroa.gep418, align 4 - store i32 %ref.tmp.sroa.8.0, ptr %cond-lvalue.i.sroa.gep421, align 8 - store i32 %ref.tmp.sroa.9.0, ptr %cond-lvalue.i.sroa.gep424, align 4 + %ref.tmp.sroa.3.0.roi.sroa_idx = getelementptr inbounds nuw i8, ptr %roi, i64 4 + store i32 %agg.tmp3.sroa.2.0.copyload, ptr %ref.tmp.sroa.3.0.roi.sroa_idx, align 4 + %ref.tmp.sroa.4.0.roi.sroa_idx = getelementptr inbounds nuw i8, ptr %roi, i64 8 + store i32 %agg.tmp3.sroa.3.0.copyload, ptr %ref.tmp.sroa.4.0.roi.sroa_idx, align 8 + %ref.tmp.sroa.5.0.roi.sroa_idx = getelementptr inbounds nuw i8, ptr %roi, i64 12 + store i32 %agg.tmp3.sroa.4.0.copyload, ptr %ref.tmp.sroa.5.0.roi.sroa_idx, align 4 + %ref.tmp.sroa.6.0.roi.sroa_idx = getelementptr inbounds nuw i8, ptr %roi, i64 16 + store i32 %agg.tmp3.sroa.5.0.copyload, ptr %ref.tmp.sroa.6.0.roi.sroa_idx, align 8 + %ref.tmp.sroa.7.0.roi.sroa_idx = getelementptr inbounds nuw i8, ptr %roi, i64 20 + store i32 %agg.tmp3.sroa.6.0.copyload, ptr %ref.tmp.sroa.7.0.roi.sroa_idx, align 4 + %ref.tmp.sroa.8.0.roi.sroa_idx = getelementptr inbounds nuw i8, ptr %roi, i64 24 + store i32 %ref.tmp.sroa.8.0, ptr %ref.tmp.sroa.8.0.roi.sroa_idx, align 8 + %ref.tmp.sroa.9.0.roi.sroa_idx = getelementptr inbounds nuw i8, ptr %roi, i64 28 + store i32 %ref.tmp.sroa.9.0, ptr %ref.tmp.sroa.9.0.roi.sroa_idx, align 4 %call = invoke noundef zeroext i1 @_ZNK18OpenImageIO_v2_6_08ImageBuf4deepEv(ptr noundef nonnull align 8 dereferenceable(16) %src) to label %invoke.cont2 unwind label %lpad.loopexit.split-lp @@ -29119,7 +29126,7 @@ for.body.us: ; preds = %for.body.us.prehead call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %agg.tmp2256) store i64 %54, ptr %agg.tmp2256, align 8 store i32 %sub.us, ptr %agg.tmp22.sroa.2.0.agg.tmp2256.sroa_idx, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %agg.tmp22.sroa.3.0.agg.tmp2256.sroa_idx, ptr noundef nonnull align 4 dereferenceable(20) %cond-lvalue.i.sroa.gep412, i64 20, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %agg.tmp22.sroa.3.0.agg.tmp2256.sroa_idx, ptr noundef nonnull align 4 dereferenceable(20) %ref.tmp.sroa.5.0.roi.sroa_idx, i64 20, i1 false) br i1 %cmp.i.not.i57.us, label %cond.false.i61.us, label %cond.true.i58.us cond.true.i58.us: ; preds = %for.body.us @@ -29164,7 +29171,7 @@ for.inc.i.i.i.i.i.i.us: ; preds = %for.body.i.i.i.i.i. br i1 %cmp.not.i.i.i.i.i.i.us, label %for.inc.us, label %for.body.i.i.i.i.i.i.us, !llvm.loop !164 for.inc.us: ; preds = %for.inc.i.i.i.i.i.i.us, %lor.lhs.false.us - store i32 %sub.us, ptr %cond-lvalue.i.sroa.gep412, align 4 + store i32 %sub.us, ptr %ref.tmp.sroa.5.0.roi.sroa_idx, align 4 %cmp.us = icmp slt i32 %agg.tmp3.sroa.3.0.copyload, %sub.us br i1 %cmp.us, label %for.body.us, label %for.end, !llvm.loop !165 @@ -29178,7 +29185,7 @@ for.body: ; preds = %for.body.lr.ph call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %agg.tmp2256) store i64 %54, ptr %agg.tmp2256, align 8 store i32 %sub, ptr %agg.tmp22.sroa.2.0.agg.tmp2256.sroa_idx, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %agg.tmp22.sroa.3.0.agg.tmp2256.sroa_idx, ptr noundef nonnull align 4 dereferenceable(20) %cond-lvalue.i.sroa.gep412, i64 20, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(20) %agg.tmp22.sroa.3.0.agg.tmp2256.sroa_idx, ptr noundef nonnull align 4 dereferenceable(20) %ref.tmp.sroa.5.0.roi.sroa_idx, i64 20, i1 false) %cmp.i.not.i57 = icmp eq i32 %57, -2147483648 br i1 %cmp.i.not.i57, label %cond.false.i61, label %cond.true.i58 @@ -29234,6 +29241,12 @@ lpad23.loopexit.split-lp.loopexit.split: ; preds = %cond.end.i185, %con lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split: ; preds = %cond.true.i143, %cond.false.i150, %cond.end.i146 %lpad.loopexit324 = landingpad { ptr, i32 } cleanup + br label %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit + +lpad23.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split + %.us-phi368 = phi i32 [ %.pr, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split ], [ %add78361365.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split.us ] + %.us-phi369 = phi { ptr, i32 } [ %lpad.loopexit324, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split ], [ %lpad.loopexit324.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split.us ] + store i32 %.us-phi368, ptr %roi, align 8 br label %lpad23 lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split: ; preds = %cond.end.i109, %cond.false.i113, %cond.true.i106 @@ -29251,8 +29264,8 @@ lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.l cleanup br label %lpad23 -lpad23: ; preds = %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split.us, %lpad23.loopexit.split-lp.loopexit.split.us, %lpad23.loopexit.split-lp.loopexit.split, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.split, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.split.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.us, %lpad23.loopexit.split, %lpad23.loopexit.split.us - %lpad.phi318 = phi { ptr, i32 } [ %lpad.loopexit316, %lpad23.loopexit.split ], [ %lpad.loopexit316.us, %lpad23.loopexit.split.us ], [ %lpad.loopexit320, %lpad23.loopexit.split-lp.loopexit.split ], [ %lpad.loopexit320.us, %lpad23.loopexit.split-lp.loopexit.split.us ], [ %lpad.loopexit328, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split ], [ %lpad.loopexit328.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.us ], [ %lpad.loopexit332, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split ], [ %lpad.loopexit332.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.us ], [ %lpad.loopexit.split-lp333, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.split ], [ %lpad.loopexit.split-lp333.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.split.us ], [ %lpad.loopexit324, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split ], [ %lpad.loopexit324.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split.us ] +lpad23: ; preds = %lpad23.loopexit.split-lp.loopexit.split.us, %lpad23.loopexit.split-lp.loopexit.split, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.split, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.split.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad23.loopexit.split, %lpad23.loopexit.split.us + %lpad.phi318 = phi { ptr, i32 } [ %lpad.loopexit316, %lpad23.loopexit.split ], [ %lpad.loopexit316.us, %lpad23.loopexit.split.us ], [ %lpad.loopexit320, %lpad23.loopexit.split-lp.loopexit.split ], [ %lpad.loopexit320.us, %lpad23.loopexit.split-lp.loopexit.split.us ], [ %.us-phi369, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit328, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split ], [ %lpad.loopexit328.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.us ], [ %lpad.loopexit332, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split ], [ %lpad.loopexit332.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split.us ], [ %lpad.loopexit.split-lp333, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.split ], [ %lpad.loopexit.split-lp333.us, %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.split.us ] %tobool.not.i.i.i = icmp eq ptr %color.sroa.0.0, null br i1 %tobool.not.i.i.i, label %ehcleanup, label %if.then.i.i.i @@ -29288,7 +29301,7 @@ for.body35.us: ; preds = %for.body35.lr.ph, % call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %agg.tmp4067) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %agg.tmp4067, ptr noundef nonnull align 8 dereferenceable(12) %roi, i64 12, i1 false) store i32 %add.us, ptr %agg.tmp40.sroa.2.0.agg.tmp4067.sroa_idx, align 4 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp40.sroa.3.0.agg.tmp4067.sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %cond-lvalue.i.sroa.gep415, i64 16, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp40.sroa.3.0.agg.tmp4067.sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp.sroa.6.0.roi.sroa_idx, i64 16, i1 false) %69 = load i32, ptr %agg.tmp4067, align 8 %cmp.i.not.i68.us = icmp eq i32 %69, -2147483648 br i1 %cmp.i.not.i68.us, label %cond.false.i76.us, label %cond.true.i69.us @@ -29335,7 +29348,7 @@ for.inc.i.i.i.i.i.i99.us: ; preds = %for.body.i.i.i.i.i. br i1 %cmp.not.i.i.i.i.i.i102.us, label %for.inc48.us, label %for.body.i.i.i.i.i.i95.us, !llvm.loop !164 for.inc48.us: ; preds = %for.inc.i.i.i.i.i.i99.us, %lor.lhs.false43.us - store i32 %add.us, ptr %cond-lvalue.i.sroa.gep409, align 8 + store i32 %add.us, ptr %ref.tmp.sroa.4.0.roi.sroa_idx, align 8 %exitcond.not = icmp eq i32 %add.us, %68 br i1 %exitcond.not, label %for.end50, label %for.body35.us, !llvm.loop !166 @@ -29349,7 +29362,7 @@ for.body35: ; preds = %for.body35.lr.ph call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %agg.tmp4067) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(12) %agg.tmp4067, ptr noundef nonnull align 8 dereferenceable(12) %roi, i64 12, i1 false) store i32 %add, ptr %agg.tmp40.sroa.2.0.agg.tmp4067.sroa_idx, align 4 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp40.sroa.3.0.agg.tmp4067.sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %cond-lvalue.i.sroa.gep415, i64 16, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp40.sroa.3.0.agg.tmp4067.sroa_idx, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp.sroa.6.0.roi.sroa_idx, i64 16, i1 false) %74 = load i32, ptr %agg.tmp4067, align 8 %cmp.i.not.i68 = icmp eq i32 %74, -2147483648 br i1 %cmp.i.not.i68, label %cond.false.i76, label %cond.true.i69 @@ -29401,7 +29414,7 @@ for.body53.us: ; preds = %for.body53.lr.ph, % %sub56.us = add nsw i32 %sub56352354.us, -1 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %agg.tmp59104) store i32 %sub56.us, ptr %agg.tmp59104, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(28) %agg.tmp59.sroa.2.0.agg.tmp59104.sroa_idx, ptr noundef nonnull align 4 dereferenceable(28) %cond-lvalue.i.sroa.gep, i64 28, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(28) %agg.tmp59.sroa.2.0.agg.tmp59104.sroa_idx, ptr noundef nonnull align 4 dereferenceable(28) %ref.tmp.sroa.3.0.roi.sroa_idx, i64 28, i1 false) %cmp.i.not.i105.us = icmp eq i32 %sub56.us, -2147483648 br i1 %cmp.i.not.i105.us, label %cond.false.i113.us, label %cond.true.i106.us @@ -29447,7 +29460,7 @@ for.inc.i.i.i.i.i.i136.us: ; preds = %for.body.i.i.i.i.i. br i1 %cmp.not.i.i.i.i.i.i139.us, label %for.inc67.us, label %for.body.i.i.i.i.i.i132.us, !llvm.loop !164 for.inc67.us: ; preds = %for.inc.i.i.i.i.i.i136.us, %lor.lhs.false62.us - store i32 %sub56.us, ptr %cond-lvalue.i.sroa.gep, align 4 + store i32 %sub56.us, ptr %ref.tmp.sroa.3.0.roi.sroa_idx, align 4 %cmp52.us = icmp slt i32 %agg.tmp3.sroa.0.0.copyload, %sub56.us br i1 %cmp52.us, label %for.body53.us, label %for.end70, !llvm.loop !167 @@ -29460,7 +29473,7 @@ for.body53: ; preds = %for.body53.lr.ph %sub56 = add nsw i32 %ref.tmp.sroa.3.0.roi.sroa_idx.promoted, -1 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %agg.tmp59104) store i32 %sub56, ptr %agg.tmp59104, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(28) %agg.tmp59.sroa.2.0.agg.tmp59104.sroa_idx, ptr noundef nonnull align 4 dereferenceable(28) %cond-lvalue.i.sroa.gep, i64 28, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(28) %agg.tmp59.sroa.2.0.agg.tmp59104.sroa_idx, ptr noundef nonnull align 4 dereferenceable(28) %ref.tmp.sroa.3.0.roi.sroa_idx, i64 28, i1 false) %cmp.i.not.i105 = icmp eq i32 %sub56, -2147483648 br i1 %cmp.i.not.i105, label %cond.false.i113, label %cond.true.i106 @@ -29514,7 +29527,7 @@ for.body75.us: ; preds = %for.body75.lr.ph, % call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %agg.tmp81141) store i32 %add78361365.us, ptr %agg.tmp81141, align 8 store i32 %add78.us, ptr %agg.tmp81.sroa.2.0.agg.tmp81141.sroa_idx, align 4 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp81.sroa.3.0.agg.tmp81141.sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %cond-lvalue.i.sroa.gep409, i64 24, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp81.sroa.3.0.agg.tmp81141.sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp.sroa.4.0.roi.sroa_idx, i64 24, i1 false) %cmp.i.not.i142.us = icmp eq i32 %add78361365.us, -2147483648 br i1 %cmp.i.not.i142.us, label %cond.false.i150.us, label %cond.true.i143.us @@ -29566,14 +29579,14 @@ for.inc89.us: ; preds = %for.inc.i.i.i.i.i.i lpad23.loopexit.split-lp.loopexit.split-lp.loopexit.split.us: ; preds = %cond.end.i146.us, %cond.false.i150.us, %cond.true.i143.us %lpad.loopexit324.us = landingpad { ptr, i32 } cleanup - br label %lpad23 + br label %lpad23.loopexit.split-lp.loopexit.split-lp.loopexit for.body75: ; preds = %for.body75.lr.ph %add78 = add nsw i32 %.pr, 1 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %agg.tmp81141) store i32 %.pr, ptr %agg.tmp81141, align 8 store i32 %add78, ptr %agg.tmp81.sroa.2.0.agg.tmp81141.sroa_idx, align 4 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp81.sroa.3.0.agg.tmp81141.sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %cond-lvalue.i.sroa.gep409, i64 24, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp81.sroa.3.0.agg.tmp81141.sroa_idx, ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp.sroa.4.0.roi.sroa_idx, i64 24, i1 false) %cmp.i.not.i142 = icmp eq i32 %.pr, -2147483648 br i1 %cmp.i.not.i142, label %cond.false.i150, label %cond.true.i143 @@ -29633,7 +29646,7 @@ for.body98.us: ; preds = %for.body98.lr.ph, % call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %agg.tmp104180) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp104180, ptr noundef nonnull align 8 dereferenceable(16) %roi, i64 16, i1 false) store i32 %sub101.us, ptr %agg.tmp104.sroa.2.0.agg.tmp104180.sroa_idx, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %agg.tmp104.sroa.3.0.agg.tmp104180.sroa_idx, ptr noundef nonnull align 4 dereferenceable(12) %cond-lvalue.i.sroa.gep418, i64 12, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %agg.tmp104.sroa.3.0.agg.tmp104180.sroa_idx, ptr noundef nonnull align 4 dereferenceable(12) %ref.tmp.sroa.7.0.roi.sroa_idx, i64 12, i1 false) %90 = load i32, ptr %agg.tmp104180, align 8 %cmp.i.not.i181.us = icmp eq i32 %90, -2147483648 br i1 %cmp.i.not.i181.us, label %cond.false.i189.us, label %cond.true.i182.us @@ -29680,7 +29693,7 @@ for.inc.i.i.i.i.i.i212.us: ; preds = %for.body.i.i.i.i.i. br i1 %cmp.not.i.i.i.i.i.i215.us, label %for.inc112.us, label %for.body.i.i.i.i.i.i208.us, !llvm.loop !164 for.inc112.us: ; preds = %for.inc.i.i.i.i.i.i212.us, %lor.lhs.false107.us - store i32 %sub101.us, ptr %cond-lvalue.i.sroa.gep418, align 4 + store i32 %sub101.us, ptr %ref.tmp.sroa.7.0.roi.sroa_idx, align 4 %cmp97.us = icmp slt i32 %agg.tmp3.sroa.5.0.copyload, %sub101.us br i1 %cmp97.us, label %for.body98.us, label %for.end115, !llvm.loop !169 @@ -29694,7 +29707,7 @@ for.body98: ; preds = %for.body98.lr.ph call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %agg.tmp104180) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp104180, ptr noundef nonnull align 8 dereferenceable(16) %roi, i64 16, i1 false) store i32 %sub101, ptr %agg.tmp104.sroa.2.0.agg.tmp104180.sroa_idx, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %agg.tmp104.sroa.3.0.agg.tmp104180.sroa_idx, ptr noundef nonnull align 4 dereferenceable(12) %cond-lvalue.i.sroa.gep418, i64 12, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(12) %agg.tmp104.sroa.3.0.agg.tmp104180.sroa_idx, ptr noundef nonnull align 4 dereferenceable(12) %ref.tmp.sroa.7.0.roi.sroa_idx, i64 12, i1 false) %95 = load i32, ptr %agg.tmp104180, align 8 %cmp.i.not.i181 = icmp eq i32 %95, -2147483648 br i1 %cmp.i.not.i181, label %cond.false.i189, label %cond.true.i182 @@ -29729,7 +29742,7 @@ for.end115: ; preds = %for.inc112.us, %inv br i1 %cmp119385, label %for.body120.lr.ph, label %if.end138 for.body120.lr.ph: ; preds = %for.end115 - %99 = load i64, ptr %cond-lvalue.i.sroa.gep421, align 8 + %99 = load i64, ptr %ref.tmp.sroa.8.0.roi.sroa_idx, align 8 %agg.tmp126.sroa.2.0.agg.tmp126217.sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp126217, i64 20 %agg.tmp126.sroa.3.0.agg.tmp126217.sroa_idx = getelementptr inbounds nuw i8, ptr %agg.tmp126217, i64 24 %tobool.not.i224 = icmp eq ptr %color.sroa.0.0, null @@ -29800,7 +29813,7 @@ for.inc.i.i.i.i.i.i249.us: ; preds = %for.body.i.i.i.i.i. br i1 %cmp.not.i.i.i.i.i.i252.us, label %for.inc134.us, label %for.body.i.i.i.i.i.i245.us, !llvm.loop !164 for.inc134.us: ; preds = %for.inc.i.i.i.i.i.i249.us, %lor.lhs.false129.us - store i32 %add123.us, ptr %cond-lvalue.i.sroa.gep415, align 8 + store i32 %add123.us, ptr %ref.tmp.sroa.6.0.roi.sroa_idx, align 8 %exitcond406.not = icmp eq i32 %add123.us, %98 br i1 %exitcond406.not, label %if.end138, label %for.body120.us, !llvm.loop !170 diff --git a/bench/oiio/optimized/imagebufalgo_xform.ll b/bench/oiio/optimized/imagebufalgo_xform.ll index b8fcab68467..080acc5a8db 100644 --- a/bench/oiio/optimized/imagebufalgo_xform.ll +++ b/bench/oiio/optimized/imagebufalgo_xform.ll @@ -11358,13 +11358,6 @@ _ZN18OpenImageIO_v2_6_03pvt11LoggedTimerC2ENS_17basic_string_viewIcSt11char_trai to label %call.i.noexc unwind label %lpad call.i.noexc: ; preds = %_ZN18OpenImageIO_v2_6_03pvt11LoggedTimerC2ENS_17basic_string_viewIcSt11char_traitsIcEEE.exit - %cond-lvalue.i.sroa.gep.i = getelementptr inbounds nuw i8, ptr %roi, i64 4 - %cond-lvalue.i.sroa.gep37.i = getelementptr inbounds nuw i8, ptr %roi, i64 8 - %cond-lvalue.i.sroa.gep40.i = getelementptr inbounds nuw i8, ptr %roi, i64 12 - %cond-lvalue.i.sroa.gep43.i = getelementptr inbounds nuw i8, ptr %roi, i64 16 - %cond-lvalue.i.sroa.gep46.i = getelementptr inbounds nuw i8, ptr %roi, i64 20 - %cond-lvalue.i.sroa.gep49.i = getelementptr inbounds nuw i8, ptr %roi, i64 24 - %cond-lvalue.i.sroa.gep52.i = getelementptr inbounds nuw i8, ptr %roi, i64 28 br i1 %call.i1337, label %if.end.i, label %if.then.i1336 if.then.i1336: ; preds = %call.i.noexc @@ -11399,8 +11392,10 @@ call.i.i.noexc: ; preds = %if.end7.i br i1 %call.i.i1341, label %if.then9.i, label %invoke.cont.thread if.then9.i: ; preds = %call.i.i.noexc - %8 = load i32, ptr %cond-lvalue.i.sroa.gep49.i, align 8 - %9 = load i32, ptr %cond-lvalue.i.sroa.gep52.i, align 4 + %8 = getelementptr inbounds nuw i8, ptr %roi, i64 24 + %9 = load i32, ptr %chbegin10.i, align 8 + %chend11.i = getelementptr inbounds nuw i8, ptr %roi, i64 28 + %9 = load i32, ptr %chend11.i, align 4 %10 = load i32, ptr %call1.i1338, align 8, !noalias !46 %width.i.i = getelementptr inbounds nuw i8, ptr %call1.i1338, i64 12 %11 = load i32, ptr %width.i.i, align 4, !noalias !46 @@ -11422,6 +11417,11 @@ if.then9.i: ; preds = %call.i.i.noexc land.lhs.true.i.i: ; preds = %if.then9.i %cmp.i20.not.i.i = icmp eq i32 %10, -2147483648 + %cond-lvalue.i.sroa.gep.i = getelementptr inbounds nuw i8, ptr %roi, i64 4 + %cond-lvalue.i.sroa.gep37.i = getelementptr inbounds nuw i8, ptr %roi, i64 8 + %cond-lvalue.i.sroa.gep40.i = getelementptr inbounds nuw i8, ptr %roi, i64 12 + %cond-lvalue.i.sroa.gep43.i = getelementptr inbounds nuw i8, ptr %roi, i64 16 + %cond-lvalue.i.sroa.gep46.i = getelementptr inbounds nuw i8, ptr %roi, i64 20 %cond-lvalue.i.sroa.phi45.sroa.speculate.load.land.lhs.true.i.i = load i32, ptr %cond-lvalue.i.sroa.gep46.i, align 4 %cond-lvalue.i.sroa.phi42.sroa.speculate.load.land.lhs.true.i.i = load i32, ptr %cond-lvalue.i.sroa.gep43.i, align 8 %cond-lvalue.i.sroa.phi39.sroa.speculate.load.land.lhs.true.i.i = load i32, ptr %cond-lvalue.i.sroa.gep40.i, align 4 @@ -11450,13 +11450,18 @@ _ZN18OpenImageIO_v2_6_016roi_intersectionERKNS_3ROIES2_.exit.i: ; preds = %cond. %ref.tmp.sroa.3.0.i = phi i32 [ %19, %cond.true.i.i ], [ %cond-lvalue.i.sroa.phi.sroa.speculate.load.land.lhs.true.i.i, %land.lhs.true.i.i ], [ %add.i.i, %if.then9.i ] %ref.tmp.sroa.0.0.i = phi i32 [ %18, %cond.true.i.i ], [ %17, %land.lhs.true.i.i ], [ %10, %if.then9.i ] store i32 %ref.tmp.sroa.0.0.i, ptr %roi, align 8 - store i32 %ref.tmp.sroa.3.0.i, ptr %cond-lvalue.i.sroa.gep.i, align 4 - store i32 %ref.tmp.sroa.4.0.i, ptr %cond-lvalue.i.sroa.gep37.i, align 8 - store i32 %ref.tmp.sroa.5.0.i, ptr %cond-lvalue.i.sroa.gep40.i, align 4 - store i32 %ref.tmp.sroa.6.0.i, ptr %cond-lvalue.i.sroa.gep43.i, align 8 - store i32 %ref.tmp.sroa.7.0.i, ptr %cond-lvalue.i.sroa.gep46.i, align 4 - store i32 %ref.tmp.sroa.8.0.i, ptr %cond-lvalue.i.sroa.gep49.i, align 8 - store i32 %ref.tmp.sroa.9.0.i, ptr %cond-lvalue.i.sroa.gep52.i, align 4 + %ref.tmp.sroa.3.0.roi.sroa_idx.i = getelementptr inbounds nuw i8, ptr %roi, i64 4 + store i32 %ref.tmp.sroa.3.0.i, ptr %ref.tmp.sroa.3.0.roi.sroa_idx.i, align 4 + %ref.tmp.sroa.4.0.roi.sroa_idx.i = getelementptr inbounds nuw i8, ptr %roi, i64 8 + store i32 %ref.tmp.sroa.4.0.i, ptr %ref.tmp.sroa.4.0.roi.sroa_idx.i, align 8 + %ref.tmp.sroa.5.0.roi.sroa_idx.i = getelementptr inbounds nuw i8, ptr %roi, i64 12 + store i32 %ref.tmp.sroa.5.0.i, ptr %ref.tmp.sroa.5.0.roi.sroa_idx.i, align 4 + %ref.tmp.sroa.6.0.roi.sroa_idx.i = getelementptr inbounds nuw i8, ptr %roi, i64 16 + store i32 %ref.tmp.sroa.6.0.i, ptr %ref.tmp.sroa.6.0.roi.sroa_idx.i, align 8 + %ref.tmp.sroa.7.0.roi.sroa_idx.i = getelementptr inbounds nuw i8, ptr %roi, i64 20 + store i32 %ref.tmp.sroa.7.0.i, ptr %ref.tmp.sroa.7.0.roi.sroa_idx.i, align 4 + store i32 %ref.tmp.sroa.8.0.i, ptr %chbegin10.i, align 8 + store i32 %ref.tmp.sroa.9.0.i, ptr %chend11.i, align 4 %cmp.i.not.i23.i = icmp eq i32 %ref.tmp.sroa.0.0.i, -2147483648 br i1 %cmp.i.not.i23.i, label %if.then15.i, label %_ZNK18OpenImageIO_v2_6_03ROI7npixelsEv.exit.i @@ -11487,8 +11492,8 @@ lpad: ; preds = %if.then6.i.invoke, br label %ehcleanup1799 if.end: ; preds = %_ZNK18OpenImageIO_v2_6_03ROI7npixelsEv.exit.i - store i32 %8, ptr %cond-lvalue.i.sroa.gep49.i, align 8 - store i32 %9, ptr %cond-lvalue.i.sroa.gep52.i, align 4 + store i32 %8, ptr %chbegin10.i, align 8 + store i32 %9, ptr %chend11.i, align 4 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %chan_s.addr.i) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %chan_t.addr.i) %_M_refcount.i.i = getelementptr inbounds nuw i8, ptr %filterptr, i64 8 @@ -22838,7 +22843,6 @@ entry: %arrayidx2 = getelementptr inbounds nuw i8, ptr %this, i64 8 %0 = load float, ptr %arrayidx2, align 4 %cmp = fcmp une float %0, 0.000000e+00 - %indvars.iv90.sroa.gep115 = getelementptr inbounds nuw i8, ptr %s196, i64 12 br i1 %cmp, label %entry.if.then_crit_edge, label %lor.lhs.false entry.if.then_crit_edge: ; preds = %entry @@ -23051,6 +23055,7 @@ for.cond233.preheader: ; preds = %if.else195 if.else246: ; preds = %if.else195 %div250 = fmul float %cond.i50, 0x47D0000000000000 + %indvars.iv90.sroa.gep115 = getelementptr inbounds nuw i8, ptr %s196, i64 12 br label %for.cond256.preheader for.cond256.preheader: ; preds = %if.else246, %for.inc278 diff --git a/bench/oiio/optimized/texturesys.ll b/bench/oiio/optimized/texturesys.ll index b24845cff7f..6955cda5c7e 100644 --- a/bench/oiio/optimized/texturesys.ll +++ b/bench/oiio/optimized/texturesys.ll @@ -8298,14 +8298,6 @@ entry: %drdt = alloca %"class.OpenImageIO_v2_6_0::simd::vfloat4", align 16 store <4 x float> zeroinitializer, ptr %result, align 16 %tobool.not = icmp eq ptr %dresultds, null - %indvars.iv.sroa.gep = getelementptr inbounds nuw i8, ptr %levelweight, i64 4 - %indvars.iv135.sroa.gep = getelementptr inbounds nuw i8, ptr %levelweight, i64 4 - %indvars.iv133.sroa.gep = getelementptr inbounds nuw i8, ptr %levelweight, i64 4 - %indvars.iv137.sroa.gep = getelementptr inbounds nuw i8, ptr %levelweight, i64 4 - %indvars.iv.sroa.gep154 = getelementptr inbounds nuw i8, ptr %miplevel, i64 4 - %indvars.iv135.sroa.gep157 = getelementptr inbounds nuw i8, ptr %miplevel, i64 4 - %indvars.iv133.sroa.gep160 = getelementptr inbounds nuw i8, ptr %miplevel, i64 4 - %indvars.iv137.sroa.gep163 = getelementptr inbounds nuw i8, ptr %miplevel, i64 4 br i1 %tobool.not, label %if.end, label %if.then if.then: ; preds = %entry @@ -8421,15 +8413,25 @@ _ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit: ; preds = %if.then br i1 %tobool.not, label %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us, label %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split _ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us: ; preds = %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit - br i1 %memptr.isvirtual.not, label %for.body.us.us, label %for.body.us - -for.body.us.us: ; preds = %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us, %for.inc.us.us - %cmp22.us.us = phi i1 [ false, %for.inc.us.us ], [ true, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] - %indvars.iv137.sroa.phi = phi ptr [ %indvars.iv137.sroa.gep, %for.inc.us.us ], [ %levelweight, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] - %indvars.iv137.sroa.phi162 = phi ptr [ %indvars.iv137.sroa.gep163, %for.inc.us.us ], [ %miplevel, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] - %ok.078.us.us = phi i8 [ %ok.1.us.us, %for.inc.us.us ], [ 1, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] - %npointson.076.us.us = phi i32 [ %npointson.1.us.us, %for.inc.us.us ], [ 0, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] - %r_sum.sroa.0.075.us.us = phi <4 x float> [ %r_sum.sroa.0.1.us.us, %for.inc.us.us ], [ zeroinitializer, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] + br i1 %memptr.isvirtual.not, label %for.body.us.us.preheader, label %for.body.us.us + +for.body.us.us: ; preds = %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us + %cmp22.us.us = getelementptr inbounds nuw i8, ptr %levelweight, i64 4 + %indvars.iv137.sroa.phi = getelementptr inbounds nuw i8, ptr %miplevel, i64 4 + br label %for.body.us + +for.body.us.us.preheader: ; preds = %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us + %r_sum.sroa.0.075.us.us = getelementptr inbounds nuw i8, ptr %levelweight, i64 4 + %indvars.iv137.sroa.gep163 = getelementptr inbounds nuw i8, ptr %miplevel, i64 4 + br label %for.body.us.us + +for.body.us.us: ; preds = %for.body.us.us.preheader, %for.inc.us.us + %cmp22.us.us = phi i1 [ false, %for.inc.us.us ], [ true, %for.body.us.us.preheader ] + %indvars.iv137.sroa.phi = phi ptr [ %indvars.iv137.sroa.gep, %for.inc.us.us ], [ %levelweight, %for.body.us.us.preheader ] + %indvars.iv137.sroa.phi162 = phi ptr [ %indvars.iv137.sroa.gep163, %for.inc.us.us ], [ %miplevel, %for.body.us.us.preheader ] + %ok.078.us.us = phi i8 [ %ok.1.us.us, %for.inc.us.us ], [ 1, %for.body.us.us.preheader ] + %npointson.076.us.us = phi i32 [ %npointson.1.us.us, %for.inc.us.us ], [ 0, %for.body.us.us.preheader ] + %r_sum.sroa.0.075.us.us = phi <4 x float> [ %r_sum.sroa.0.1.us.us, %for.inc.us.us ], [ zeroinitializer, %for.body.us.us.preheader ] %20 = load float, ptr %indvars.iv137.sroa.phi, align 4 %tobool25.us.us = fcmp une float %20, 0.000000e+00 br i1 %tobool25.us.us, label %if.end27.us.us, label %for.inc.us.us @@ -8455,13 +8457,13 @@ for.inc.us.us: ; preds = %if.end27.us.us, %fo %ok.1.us.us = phi i8 [ %frombool48.us.us, %if.end27.us.us ], [ %ok.078.us.us, %for.body.us.us ] br i1 %cmp22.us.us, label %for.body.us.us, label %for.end, !llvm.loop !101 -for.body.us: ; preds = %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us, %for.inc.us - %cmp22.us = phi i1 [ false, %for.inc.us ], [ true, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] - %indvars.iv135.sroa.phi = phi ptr [ %indvars.iv135.sroa.gep, %for.inc.us ], [ %levelweight, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] - %indvars.iv135.sroa.phi156 = phi ptr [ %indvars.iv135.sroa.gep157, %for.inc.us ], [ %miplevel, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] - %ok.078.us = phi i8 [ %ok.1.us, %for.inc.us ], [ 1, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] - %npointson.076.us = phi i32 [ %npointson.1.us, %for.inc.us ], [ 0, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] - %r_sum.sroa.0.075.us = phi <4 x float> [ %r_sum.sroa.0.1.us, %for.inc.us ], [ zeroinitializer, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split.us ] +for.body.us: ; preds = %for.body.us.us, %for.inc.us + %cmp22.us = phi i1 [ false, %for.inc.us ], [ true, %for.body.us.us ] + %indvars.iv135.sroa.phi = phi ptr [ %indvars.iv135.sroa.gep, %for.inc.us ], [ %levelweight, %for.body.us.us ] + %indvars.iv135.sroa.phi156 = phi ptr [ %indvars.iv135.sroa.gep157, %for.inc.us ], [ %miplevel, %for.body.us.us ] + %ok.078.us = phi i8 [ %ok.1.us, %for.inc.us ], [ 1, %for.body.us.us ] + %npointson.076.us = phi i32 [ %npointson.1.us, %for.inc.us ], [ 0, %for.body.us.us ] + %r_sum.sroa.0.075.us = phi <4 x float> [ %r_sum.sroa.0.1.us, %for.inc.us ], [ zeroinitializer, %for.body.us.us ] %24 = load float, ptr %indvars.iv135.sroa.phi, align 4 %tobool25.us = fcmp une float %24, 0.000000e+00 br i1 %tobool25.us, label %if.end27.us, label %for.inc.us @@ -8492,17 +8494,27 @@ for.inc.us: ; preds = %if.end27.us, %for.b br i1 %cmp22.us, label %for.body.us, label %for.end, !llvm.loop !101 _ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split: ; preds = %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit - br i1 %memptr.isvirtual.not, label %for.body.us83, label %for.body - -for.body.us83: ; preds = %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split, %for.inc.us106 - %cmp22.us113 = phi i1 [ false, %for.inc.us106 ], [ true, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %indvars.iv133.sroa.phi = phi ptr [ %indvars.iv133.sroa.gep, %for.inc.us106 ], [ %levelweight, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %indvars.iv133.sroa.phi159 = phi ptr [ %indvars.iv133.sroa.gep160, %for.inc.us106 ], [ %miplevel, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %ok.078.us84 = phi i8 [ %ok.1.us111, %for.inc.us106 ], [ 1, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %npointson.076.us86 = phi i32 [ %npointson.1.us110, %for.inc.us106 ], [ 0, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %r_sum.sroa.0.075.us87 = phi <4 x float> [ %r_sum.sroa.0.1.us109, %for.inc.us106 ], [ zeroinitializer, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %drds_sum.sroa.0.174.us88 = phi <4 x float> [ %drds_sum.sroa.0.2.us108, %for.inc.us106 ], [ zeroinitializer, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %drdt_sum.sroa.0.173.us89 = phi <4 x float> [ %drdt_sum.sroa.0.2.us107, %for.inc.us106 ], [ zeroinitializer, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] + br i1 %memptr.isvirtual.not, label %for.body.us83.preheader, label %for.body.us83 + +for.body.us83: ; preds = %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split + %cmp22.us113 = getelementptr inbounds nuw i8, ptr %levelweight, i64 4 + %indvars.iv133.sroa.phi = getelementptr inbounds nuw i8, ptr %miplevel, i64 4 + br label %for.body + +for.body.us83.preheader: ; preds = %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split + %r_sum.sroa.0.075.us87 = getelementptr inbounds nuw i8, ptr %levelweight, i64 4 + %drds_sum.sroa.0.174.us88 = getelementptr inbounds nuw i8, ptr %miplevel, i64 4 + br label %for.body.us83 + +for.body.us83: ; preds = %for.body.us83.preheader, %for.inc.us106 + %cmp22.us113 = phi i1 [ false, %for.inc.us106 ], [ true, %for.body.us83.preheader ] + %indvars.iv133.sroa.phi = phi ptr [ %indvars.iv133.sroa.gep, %for.inc.us106 ], [ %levelweight, %for.body.us83.preheader ] + %indvars.iv133.sroa.phi159 = phi ptr [ %indvars.iv133.sroa.gep160, %for.inc.us106 ], [ %miplevel, %for.body.us83.preheader ] + %ok.078.us84 = phi i8 [ %ok.1.us111, %for.inc.us106 ], [ 1, %for.body.us83.preheader ] + %npointson.076.us86 = phi i32 [ %npointson.1.us110, %for.inc.us106 ], [ 0, %for.body.us83.preheader ] + %r_sum.sroa.0.075.us87 = phi <4 x float> [ %r_sum.sroa.0.1.us109, %for.inc.us106 ], [ zeroinitializer, %for.body.us83.preheader ] + %drds_sum.sroa.0.174.us88 = phi <4 x float> [ %drds_sum.sroa.0.2.us108, %for.inc.us106 ], [ zeroinitializer, %for.body.us83.preheader ] + %drdt_sum.sroa.0.173.us89 = phi <4 x float> [ %drdt_sum.sroa.0.2.us107, %for.inc.us106 ], [ zeroinitializer, %for.body.us83.preheader ] %30 = load float, ptr %indvars.iv133.sroa.phi, align 4 %tobool25.us92 = fcmp une float %30, 0.000000e+00 br i1 %tobool25.us92, label %if.end27.us93, label %for.inc.us106 @@ -8536,15 +8548,15 @@ for.inc.us106: ; preds = %if.end27.us93, %for %ok.1.us111 = phi i8 [ %frombool48.us100, %if.end27.us93 ], [ %ok.078.us84, %for.body.us83 ] br i1 %cmp22.us113, label %for.body.us83, label %for.end, !llvm.loop !101 -for.body: ; preds = %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split, %for.inc - %cmp22 = phi i1 [ false, %for.inc ], [ true, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %for.inc ], [ %levelweight, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %indvars.iv.sroa.phi153 = phi ptr [ %indvars.iv.sroa.gep154, %for.inc ], [ %miplevel, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %ok.078 = phi i8 [ %ok.1, %for.inc ], [ 1, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %npointson.076 = phi i32 [ %npointson.1, %for.inc ], [ 0, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %r_sum.sroa.0.075 = phi <4 x float> [ %r_sum.sroa.0.1, %for.inc ], [ zeroinitializer, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %drds_sum.sroa.0.174 = phi <4 x float> [ %drds_sum.sroa.0.2, %for.inc ], [ zeroinitializer, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] - %drdt_sum.sroa.0.173 = phi <4 x float> [ %drdt_sum.sroa.0.2, %for.inc ], [ zeroinitializer, %_ZN18OpenImageIO_v2_6_03pvt12adjust_widthERfS1_S1_S1_ff.exit.split ] +for.body: ; preds = %for.body.preheader, %for.inc + %cmp22 = phi i1 [ false, %for.inc ], [ true, %for.body.preheader ] + %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %for.inc ], [ %levelweight, %for.body.preheader ] + %indvars.iv.sroa.phi153 = phi ptr [ %indvars.iv.sroa.gep154, %for.inc ], [ %miplevel, %for.body.preheader ] + %ok.078 = phi i8 [ %ok.1, %for.inc ], [ 1, %for.body.preheader ] + %npointson.076 = phi i32 [ %npointson.1, %for.inc ], [ 0, %for.body.preheader ] + %r_sum.sroa.0.075 = phi <4 x float> [ %r_sum.sroa.0.1, %for.inc ], [ zeroinitializer, %for.body.preheader ] + %drds_sum.sroa.0.174 = phi <4 x float> [ %drds_sum.sroa.0.2, %for.inc ], [ zeroinitializer, %for.body.preheader ] + %drdt_sum.sroa.0.173 = phi <4 x float> [ %drdt_sum.sroa.0.2, %for.inc ], [ zeroinitializer, %for.body.preheader ] %36 = load float, ptr %indvars.iv.sroa.phi, align 4 %tobool25 = fcmp une float %36, 0.000000e+00 br i1 %tobool25, label %if.end27, label %for.inc @@ -9505,10 +9517,6 @@ entry: %arrayidx7 = getelementptr inbounds [7 x ptr], ptr @_ZN18OpenImageIO_v2_6_03pvt17TextureSystemImpl14wrap_functionsE, i64 0, i64 %idxprom6 %7 = load ptr, ptr %arrayidx7, align 8 %cmp = icmp eq ptr %5, %7 - %indvars.iv505.sroa.gep528 = getelementptr inbounds nuw i8, ptr %tile_edge, i64 4 - %indvars.iv505.sroa.gep531 = getelementptr inbounds nuw i8, ptr %tile_st357, i64 4 - %indvars.iv508.sroa.gep532 = getelementptr inbounds nuw i8, ptr %texel_simd, i64 32 - %indvars.iv505.sroa.gep535 = getelementptr inbounds nuw i8, ptr %stvalid, i64 4 br i1 %cmp, label %cond.true, label %cond.end cond.true: ; preds = %entry @@ -9639,6 +9647,10 @@ for.body.lr.ph: ; preds = %_ZN18OpenImageIO_v2 %cmp827.i = icmp sgt i32 %actualchannels, 0 %wide.trip.count.i = zext nneg i32 %actualchannels to i64 %wide.trip.count = zext nneg i32 %nsamples to i64 + %indvars.iv505.sroa.gep528 = getelementptr inbounds nuw i8, ptr %tile_edge, i64 4 + %indvars.iv505.sroa.gep531 = getelementptr inbounds nuw i8, ptr %tile_st357, i64 4 + %indvars.iv505.sroa.gep535 = getelementptr inbounds nuw i8, ptr %stvalid, i64 4 + %indvars.iv508.sroa.gep532 = getelementptr inbounds nuw i8, ptr %texel_simd, i64 32 br label %for.body for.body: ; preds = %for.body.lr.ph, %for.inc628 diff --git a/bench/openjdk/optimized/hb-common.ll b/bench/openjdk/optimized/hb-common.ll index b314c139958..e42f383e0e5 100644 --- a/bench/openjdk/optimized/hb-common.ll +++ b/bench/openjdk/optimized/hb-common.ll @@ -1419,7 +1419,6 @@ declare void @llvm.memcpy.p0.p0.i64(ptr noalias writeonly captures(none), ptr no define hidden void @hb_feature_to_string(ptr noundef readonly captures(none) %0, ptr noundef writeonly captures(none) %1, i32 noundef %2) local_unnamed_addr #10 { %4 = alloca [128 x i8], align 16 %.not = icmp eq i32 %2, 0 - %.0.sroa.gep = getelementptr inbounds nuw i8, ptr %4, i64 1 br i1 %.not, label %84, label %5 5: ; preds = %3 @@ -1430,6 +1429,7 @@ define hidden void @hb_feature_to_string(ptr noundef readonly captures(none) %0, 9: ; preds = %5 store i8 45, ptr %4, align 16 + %.0.sroa.gep = getelementptr inbounds nuw i8, ptr %4, i64 1 br label %10 10: ; preds = %9, %5 @@ -5563,10 +5563,6 @@ define linkonce_odr hidden noundef zeroext i1 @_ZNK2OT4gvar13accelerator_t22appl %12 = getelementptr inbounds nuw i8, ptr %0, i64 8 %13 = load i32, ptr %12, align 8 %.not = icmp ult i32 %1, %13 - %..sroa.gep = getelementptr inbounds nuw i8, ptr %10, i64 8 - %..sroa.gep437 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %..sroa.gep439 = getelementptr inbounds nuw i8, ptr %10, i64 4 - %..sroa.gep440 = getelementptr inbounds nuw i8, ptr %9, i64 4 br i1 %.not, label %14, label %_ZN11hb_vector_tIjLb0EED2Ev.exit380 14: ; preds = %7 @@ -5768,6 +5764,10 @@ _ZN2OT18TupleVariationData18get_tuple_iteratorE10hb_array_tIKcEjPKvR11hb_vector_ %157 = and i64 %156, 4294967295 %158 = select i1 %6, i64 %157, i64 0 %159 = zext i32 %155 to i64 + %..sroa.gep437 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %..sroa.gep440 = getelementptr inbounds nuw i8, ptr %9, i64 4 + %..sroa.gep = getelementptr inbounds nuw i8, ptr %10, i64 8 + %..sroa.gep439 = getelementptr inbounds nuw i8, ptr %10, i64 4 %.not.i.i328 = icmp eq i32 %.sroa.5.8.extract.trunc, 0 %160 = and i64 %5, 4294967295 %161 = mul nuw nsw i64 %160, 12 @@ -7076,9 +7076,11 @@ _ZN22contour_point_vector_tD2Ev.exit372: ; preds = %78, %70, %_ZN2OT18T br i1 %.not.i.i379, label %_ZN11hb_vector_tIjLb0EED2Ev.exit380, label %658 658: ; preds = %_ZN22contour_point_vector_tD2Ev.exit372 - store i32 0, ptr %..sroa.gep440, align 4 - %659 = load ptr, ptr %..sroa.gep437, align 8 - call void @free(ptr noundef %659) #26 + %659 = getelementptr inbounds nuw i8, ptr %9, i64 4 + store i32 0, ptr %659, align 4 + %660 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %661 = load ptr, ptr %660, align 8 + call void @free(ptr noundef %661) #26 br label %_ZN11hb_vector_tIjLb0EED2Ev.exit380 _ZN22contour_point_vector_tD2Ev.exit378: ; preds = %656, %_ZN22contour_point_vector_tD2Ev.exit376, %105 @@ -7088,9 +7090,11 @@ _ZN22contour_point_vector_tD2Ev.exit378: ; preds = %656, %_ZN22contour_ br i1 %.not.i.i381, label %_ZN11hb_vector_tIjLb0EED2Ev.exit382, label %661 661: ; preds = %_ZN22contour_point_vector_tD2Ev.exit378 - store i32 0, ptr %..sroa.gep440, align 4 - %662 = load ptr, ptr %..sroa.gep437, align 8 - call void @free(ptr noundef %662) #26 + %664 = getelementptr inbounds nuw i8, ptr %9, i64 4 + store i32 0, ptr %664, align 4 + %665 = getelementptr inbounds nuw i8, ptr %9, i64 8 + %666 = load ptr, ptr %665, align 8 + call void @free(ptr noundef %666) #26 br label %_ZN11hb_vector_tIjLb0EED2Ev.exit382 _ZN11hb_vector_tIjLb0EED2Ev.exit382: ; preds = %_ZN22contour_point_vector_tD2Ev.exit378, %661 diff --git a/bench/openspiel/optimized/efg_game.ll b/bench/openspiel/optimized/efg_game.ll index 895ade288fc..1e69e79ac4b 100644 --- a/bench/openspiel/optimized/efg_game.ll +++ b/bench/openspiel/optimized/efg_game.ll @@ -1790,12 +1790,6 @@ define internal fastcc void @_ZN10open_spiel8efg_game12_GLOBAL__N_112NodeToStrin %24 = alloca %"class.absl::debian2::AlphaNum", align 8 %25 = alloca %"class.absl::debian2::AlphaNum", align 8 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #29 - %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %17, i64 8 - %.sink.sroa.gep99 = getelementptr inbounds nuw i8, ptr %25, i64 8 - %.sink.sroa.gep100 = getelementptr inbounds nuw i8, ptr %11, i64 8 - %.sink.sroa.gep101 = getelementptr inbounds nuw i8, ptr %11, i64 8 - %.sink.sroa.gep102 = getelementptr inbounds nuw i8, ptr %17, i64 8 - %.sink.sroa.gep103 = getelementptr inbounds nuw i8, ptr %25, i64 8 %26 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %0) to label %.noexc unwind label %62 @@ -1867,6 +1861,7 @@ _ZN4absl7debian28AlphaNumC2ISaIcEEERKNSt7__cxx1112basic_stringIcSt11char_traitsI %49 = getelementptr inbounds nuw i8, ptr %1, i64 232 %50 = load ptr, ptr %49, align 8 %.not83 = icmp eq ptr %48, %50 + %.sink.sroa.gep100 = getelementptr inbounds nuw i8, ptr %11, i64 8 br i1 %.not83, label %._crit_edge87.invoke, label %.lr.ph86 .lr.ph86: ; preds = %46 @@ -1937,9 +1932,21 @@ _ZN4absl7debian28AlphaNumC2ISaIcEEERKNSt7__cxx1112basic_stringIcSt11char_traitsI call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #29 br label %176 -._crit_edge87.invoke: ; preds = %167, %122, %60, %46, %.preheader, %_ZN4absl7debian29StrAppendIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvPS7_RKNS0_8AlphaNumESB_SB_SB_SB_DpRKT_.exit - %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %_ZN4absl7debian29StrAppendIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvPS7_RKNS0_8AlphaNumESB_SB_SB_SB_DpRKT_.exit ], [ %.sink.sroa.gep99, %.preheader ], [ %.sink.sroa.gep100, %46 ], [ %.sink.sroa.gep101, %60 ], [ %.sink.sroa.gep102, %122 ], [ %.sink.sroa.gep103, %167 ] - %.sink = phi ptr [ %17, %_ZN4absl7debian29StrAppendIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvPS7_RKNS0_8AlphaNumESB_SB_SB_SB_DpRKT_.exit ], [ %25, %.preheader ], [ %11, %46 ], [ %11, %60 ], [ %17, %122 ], [ %25, %167 ] +._crit_edge87.invoke: ; preds = %60 + %.sink.sroa.phi = getelementptr inbounds nuw i8, ptr %11, i64 8 + br label %._crit_edge87.invoke + +._crit_edge87.invoke.loopexit97: ; preds = %122 + %.sink.sroa.gep102 = getelementptr inbounds nuw i8, ptr %17, i64 8 + br label %._crit_edge87.invoke + +._crit_edge87.invoke.loopexit98: ; preds = %167 + %.sink.sroa.gep103 = getelementptr inbounds nuw i8, ptr %25, i64 8 + br label %._crit_edge87.invoke + +._crit_edge87.invoke: ; preds = %._crit_edge87.invoke.loopexit98, %._crit_edge87.invoke.loopexit97, %._crit_edge87.invoke.loopexit, %46, %.preheader, %_ZN4absl7debian29StrAppendIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvPS7_RKNS0_8AlphaNumESB_SB_SB_SB_DpRKT_.exit + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %_ZN4absl7debian29StrAppendIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvPS7_RKNS0_8AlphaNumESB_SB_SB_SB_DpRKT_.exit ], [ %.sink.sroa.gep99, %.preheader ], [ %.sink.sroa.gep100, %46 ], [ %.sink.sroa.gep101, %._crit_edge87.invoke.loopexit ], [ %.sink.sroa.gep102, %._crit_edge87.invoke.loopexit97 ], [ %.sink.sroa.gep103, %._crit_edge87.invoke.loopexit98 ] + %.sink = phi ptr [ %17, %_ZN4absl7debian29StrAppendIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvPS7_RKNS0_8AlphaNumESB_SB_SB_SB_DpRKT_.exit ], [ %25, %.preheader ], [ %11, %46 ], [ %11, %._crit_edge87.invoke.loopexit ], [ %17, %._crit_edge87.invoke.loopexit97 ], [ %25, %._crit_edge87.invoke.loopexit98 ] store ptr @.str.55, ptr %.sink, align 8 store i64 1, ptr %.sink.sroa.phi, align 8 invoke void @_ZN4absl7debian29StrAppendEPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_8AlphaNumE(ptr noundef nonnull %0, ptr noundef nonnull align 8 dereferenceable(48) %.sink) @@ -2023,6 +2030,7 @@ _ZN4absl7debian29StrAppendIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE %98 = load ptr, ptr %97, align 8 %99 = load ptr, ptr %96, align 8 %.not89 = icmp eq ptr %98, %99 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %17, i64 8 br i1 %.not89, label %._crit_edge87.invoke, label %.lr.ph81 .lr.ph81: ; preds = %_ZN4absl7debian29StrAppendIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEvPS7_RKNS0_8AlphaNumESB_SB_SB_SB_DpRKT_.exit @@ -2084,7 +2092,7 @@ _ZN4absl7debian29StrAppendIJNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE %127 = sub i64 %125, %126 %128 = ashr exact i64 %127, 3 %129 = icmp ugt i64 %128, %indvars.iv.next92 - br i1 %129, label %107, label %._crit_edge87.invoke, !llvm.loop !6 + br i1 %129, label %107, label %._crit_edge87.invoke.loopexit97, !llvm.loop !6 130: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit store ptr @.str.119, ptr %18, align 8 @@ -2142,6 +2150,7 @@ _ZN4absl7debian28AlphaNumC2ISaIcEEERKNSt7__cxx1112basic_stringIcSt11char_traitsI %155 = load ptr, ptr %154, align 8 %156 = load ptr, ptr %153, align 8 %.not88 = icmp eq ptr %155, %156 + %.sink.sroa.gep99 = getelementptr inbounds nuw i8, ptr %25, i64 8 br i1 %.not88, label %._crit_edge87.invoke, label %.lr.ph .lr.ph: ; preds = %.preheader @@ -2180,7 +2189,7 @@ _ZN4absl7debian28AlphaNumC2ISaIcEEERKNSt7__cxx1112basic_stringIcSt11char_traitsI %172 = sub i64 %170, %171 %173 = ashr exact i64 %172, 3 %174 = icmp ugt i64 %173, %indvars.iv.next - br i1 %174, label %160, label %._crit_edge87.invoke, !llvm.loop !7 + br i1 %174, label %160, label %._crit_edge87.invoke.loopexit98, !llvm.loop !7 175: ; preds = %._crit_edge87.invoke, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit ret void diff --git a/bench/openspiel/optimized/spades.ll b/bench/openspiel/optimized/spades.ll index 98c7d4176ca..ede267c79e6 100644 --- a/bench/openspiel/optimized/spades.ll +++ b/bench/openspiel/optimized/spades.ll @@ -6703,14 +6703,20 @@ define void @_ZN10open_spiel6spades11SpadesState7ScoreUpEv(ptr noundef nonnull a %13 = load i32, ptr %12, align 8 %.fr = freeze i32 %13 %.not20 = icmp eq i32 %.fr, 0 + br i1 %.not20, label %.split.us.preheader, label %.split.preheader + +.split.preheader: ; preds = %1 %indvars.iv.sroa.gep = getelementptr inbounds nuw i8, ptr %2, i64 4 + br label %.split + +.split.us.preheader: ; preds = %1 %indvars.iv27.sroa.gep = getelementptr inbounds nuw i8, ptr %2, i64 4 - br i1 %.not20, label %.split.us, label %.split + br label %.split.us -.split.us: ; preds = %1, %26 - %14 = phi i1 [ false, %26 ], [ true, %1 ] - %indvars.iv27.sroa.phi = phi ptr [ %indvars.iv27.sroa.gep, %26 ], [ %2, %1 ] - %indvars.iv27 = phi i64 [ 1, %26 ], [ 0, %1 ] +.split.us: ; preds = %.split.us.preheader, %26 + %14 = phi i1 [ false, %26 ], [ true, %.split.us.preheader ] + %indvars.iv27.sroa.phi = phi ptr [ %indvars.iv27.sroa.gep, %26 ], [ %2, %.split.us.preheader ] + %indvars.iv27 = phi i64 [ 1, %26 ], [ 0, %.split.us.preheader ] %15 = load i32, ptr %indvars.iv27.sroa.phi, align 4 %16 = getelementptr inbounds nuw [2 x i32], ptr %5, i64 0, i64 %indvars.iv27 %17 = load i32, ptr %16, align 4 @@ -6739,10 +6745,10 @@ define void @_ZN10open_spiel6spades11SpadesState7ScoreUpEv(ptr noundef nonnull a %27 = getelementptr inbounds nuw i8, ptr %0, i64 400 br label %49 -.split: ; preds = %1, %48 - %28 = phi i1 [ false, %48 ], [ true, %1 ] - %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %48 ], [ %2, %1 ] - %indvars.iv = phi i64 [ 1, %48 ], [ 0, %1 ] +.split: ; preds = %.split.preheader, %48 + %28 = phi i1 [ false, %48 ], [ true, %.split.preheader ] + %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %48 ], [ %2, %.split.preheader ] + %indvars.iv = phi i64 [ 1, %48 ], [ 0, %.split.preheader ] %29 = load i32, ptr %indvars.iv.sroa.phi, align 4 %30 = getelementptr inbounds nuw [2 x i32], ptr %5, i64 0, i64 %indvars.iv %31 = load i32, ptr %30, align 4 diff --git a/bench/openssl/optimized/evp_test.ll b/bench/openssl/optimized/evp_test.ll index 51fc91e9ff8..2bdfb923846 100644 --- a/bench/openssl/optimized/evp_test.ll +++ b/bench/openssl/optimized/evp_test.ll @@ -8766,7 +8766,6 @@ define internal noundef i32 @mac_test_run(ptr noundef captures(none) %0) #1 { %25 = getelementptr inbounds nuw i8, ptr %24, i64 8 %26 = load ptr, ptr %25, align 8, !tbaa !244 %.not = icmp eq ptr %26, null - %.sroa.gep = getelementptr inbounds nuw i8, ptr %9, i64 40 br i1 %.not, label %281, label %27 27: ; preds = %1 @@ -8822,6 +8821,7 @@ define internal noundef i32 @mac_test_run(ptr noundef captures(none) %0) #1 { call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %12, ptr noundef nonnull @.str.98, ptr noundef %43, i64 noundef 0) #10 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(40) %9, ptr noundef nonnull align 8 dereferenceable(40) %12, i64 40, i1 false), !tbaa.struct !96 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %12) #10 + %.sroa.gep7 = getelementptr inbounds nuw i8, ptr %9, i64 40 br label %.critedge.thread.i 44: ; preds = %37 @@ -8842,6 +8842,7 @@ define internal noundef i32 @mac_test_run(ptr noundef captures(none) %0) #1 { call void @OSSL_PARAM_construct_utf8_string(ptr dead_on_unwind nonnull writable sret(%struct.ossl_param_st) align 8 %13, ptr noundef nonnull @.str.99, ptr noundef %50, i64 noundef 0) #10 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(40) %9, ptr noundef nonnull align 8 dereferenceable(40) %13, i64 40, i1 false), !tbaa.struct !96 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %13) #10 + %.sroa.gep = getelementptr inbounds nuw i8, ptr %9, i64 40 br label %.critedge.thread.i 51: ; preds = %44 @@ -8859,7 +8860,7 @@ define internal noundef i32 @mac_test_run(ptr noundef captures(none) %0) #1 { br label %.critedge.i .critedge.thread.i: ; preds = %49, %42, %35 - %.sroa.phi = phi ptr [ %.sroa.gep, %49 ], [ %.sroa.gep, %42 ], [ %9, %35 ] + %.sroa.phi = phi ptr [ %.sroa.gep, %49 ], [ %.sroa.gep7, %42 ], [ %9, %35 ] %57 = phi i64 [ 1, %49 ], [ 1, %42 ], [ 0, %35 ] %58 = getelementptr inbounds nuw i8, ptr %24, i64 96 %59 = load ptr, ptr %58, align 8, !tbaa !251 diff --git a/bench/openusd/optimized/assetLocalization.ll b/bench/openusd/optimized/assetLocalization.ll index 46f4cd1af83..40e4306391d 100644 --- a/bench/openusd/optimized/assetLocalization.ll +++ b/bench/openusd/optimized/assetLocalization.ll @@ -4774,14 +4774,6 @@ define void @_ZN32pxrInternal_v0_24__pxrReserved__28UsdUtils_LocalizationContext %27 = getelementptr inbounds nuw i8, ptr %0, i64 120 %28 = load i32, ptr %27, align 8 %29 = icmp eq i32 %28, 0 - %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %11, i64 8 - %.sink.sroa.gep241 = getelementptr inbounds nuw i8, ptr %12, i64 8 - %.sink.sroa.gep243 = getelementptr inbounds nuw i8, ptr %11, i64 16 - %.sink.sroa.gep244 = getelementptr inbounds nuw i8, ptr %12, i64 16 - %.sink.sroa.gep246 = getelementptr inbounds nuw i8, ptr %11, i64 24 - %.sink.sroa.gep247 = getelementptr inbounds nuw i8, ptr %12, i64 24 - %.sink.sroa.gep249 = getelementptr inbounds nuw i8, ptr %11, i64 32 - %.sink.sroa.gep250 = getelementptr inbounds nuw i8, ptr %12, i64 32 br i1 %29, label %_ZN32pxrInternal_v0_24__pxrReserved__7VtValueD2Ev.exit148, label %30 30: ; preds = %3 @@ -5035,12 +5027,26 @@ _ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit: ; preds = %100, %102, %1 %.not.i57 = icmp eq ptr %119, null br i1 %.not.i57, label %.invoke, label %120 -.invoke: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit, %_ZNSt6vectorIN32pxrInternal_v0_24__pxrReserved__7TfTokenESaIS1_EED2Ev.exit - %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %_ZNSt6vectorIN32pxrInternal_v0_24__pxrReserved__7TfTokenESaIS1_EED2Ev.exit ], [ %.sink.sroa.gep241, %_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit ] - %.sink.sroa.phi242 = phi ptr [ %.sink.sroa.gep243, %_ZNSt6vectorIN32pxrInternal_v0_24__pxrReserved__7TfTokenESaIS1_EED2Ev.exit ], [ %.sink.sroa.gep244, %_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit ] - %.sink.sroa.phi245 = phi ptr [ %.sink.sroa.gep246, %_ZNSt6vectorIN32pxrInternal_v0_24__pxrReserved__7TfTokenESaIS1_EED2Ev.exit ], [ %.sink.sroa.gep247, %_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit ] - %.sink.sroa.phi248 = phi ptr [ %.sink.sroa.gep249, %_ZNSt6vectorIN32pxrInternal_v0_24__pxrReserved__7TfTokenESaIS1_EED2Ev.exit ], [ %.sink.sroa.gep250, %_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit ] - %.sink = phi ptr [ %11, %_ZNSt6vectorIN32pxrInternal_v0_24__pxrReserved__7TfTokenESaIS1_EED2Ev.exit ], [ %12, %_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit ] +.invoke: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit + %.sink.sroa.phi = getelementptr inbounds nuw i8, ptr %12, i64 8 + %.sink.sroa.phi242 = getelementptr inbounds nuw i8, ptr %12, i64 16 + %.sink.sroa.phi245 = getelementptr inbounds nuw i8, ptr %12, i64 24 + %.sink.sroa.phi248 = getelementptr inbounds nuw i8, ptr %12, i64 32 + br label %.invoke + +.invoke.split.loop.exit255: ; preds = %_ZNSt6vectorIN32pxrInternal_v0_24__pxrReserved__7TfTokenESaIS1_EED2Ev.exit + %.sink.sroa.gep.le = getelementptr inbounds nuw i8, ptr %11, i64 8 + %.sink.sroa.gep243.le = getelementptr inbounds nuw i8, ptr %11, i64 16 + %.sink.sroa.gep246.le = getelementptr inbounds nuw i8, ptr %11, i64 24 + %.sink.sroa.gep249.le = getelementptr inbounds nuw i8, ptr %11, i64 32 + br label %.invoke + +.invoke: ; preds = %.invoke.split.loop.exit255, %.invoke.split.loop.exit + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep241.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep.le, %.invoke.split.loop.exit255 ] + %.sink.sroa.phi242 = phi ptr [ %.sink.sroa.gep244.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep243.le, %.invoke.split.loop.exit255 ] + %.sink.sroa.phi245 = phi ptr [ %.sink.sroa.gep247.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep246.le, %.invoke.split.loop.exit255 ] + %.sink.sroa.phi248 = phi ptr [ %.sink.sroa.gep250.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep249.le, %.invoke.split.loop.exit255 ] + %.sink = phi ptr [ %12, %.invoke.split.loop.exit ], [ %11, %.invoke.split.loop.exit255 ] store ptr @.str.12, ptr %.sink, align 8 store ptr @__func__._ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_8SdfLayerEEptEv, ptr %.sink.sroa.phi, align 8 store i64 936, ptr %.sink.sroa.phi242, align 8 @@ -5109,7 +5115,7 @@ _ZNSt6vectorIN32pxrInternal_v0_24__pxrReserved__7TfTokenESaIS1_EED2Ev.exit: ; pr call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %11) %138 = load ptr, ptr %1, align 8 %.not.i60 = icmp eq ptr %138, null - br i1 %.not.i60, label %.invoke, label %259 + br i1 %.not.i60, label %.invoke.split.loop.exit255, label %259 139: ; preds = %99 %140 = landingpad { ptr, i32 } diff --git a/bench/openusd/optimized/jsonSerialization.ll b/bench/openusd/optimized/jsonSerialization.ll index 462640ff6c1..845cdb7142d 100644 --- a/bench/openusd/optimized/jsonSerialization.ll +++ b/bench/openusd/optimized/jsonSerialization.ll @@ -2857,14 +2857,6 @@ define noundef zeroext i1 @_ZN32pxrInternal_v0_24__pxrReserved__23Trace_JSONSeri %9 = getelementptr inbounds nuw i8, ptr %1, i64 8 %10 = load ptr, ptr %9, align 8 %.not26 = icmp eq ptr %8, %10 - %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 8 - %.sink.sroa.gep32 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %.sink.sroa.gep34 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %.sink.sroa.gep35 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %.sink.sroa.gep37 = getelementptr inbounds nuw i8, ptr %3, i64 24 - %.sink.sroa.gep38 = getelementptr inbounds nuw i8, ptr %4, i64 24 - %.sink.sroa.gep40 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %.sink.sroa.gep41 = getelementptr inbounds nuw i8, ptr %4, i64 32 br i1 %.not26, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %2, %_ZN32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_14TraceEventTreeEED2Ev.exit @@ -2879,12 +2871,19 @@ define noundef zeroext i1 @_ZN32pxrInternal_v0_24__pxrReserved__23Trace_JSONSeri %.not.i = icmp eq ptr %13, null br i1 %.not.i, label %.invoke, label %14 -.invoke: ; preds = %12, %._crit_edge - %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge ], [ %.sink.sroa.gep32, %12 ] - %.sink.sroa.phi33 = phi ptr [ %.sink.sroa.gep34, %._crit_edge ], [ %.sink.sroa.gep35, %12 ] - %.sink.sroa.phi36 = phi ptr [ %.sink.sroa.gep37, %._crit_edge ], [ %.sink.sroa.gep38, %12 ] - %.sink.sroa.phi39 = phi ptr [ %.sink.sroa.gep40, %._crit_edge ], [ %.sink.sroa.gep41, %12 ] - %.sink = phi ptr [ %3, %._crit_edge ], [ %4, %12 ] +.invoke: ; preds = %12 + %.sink.sroa.phi = getelementptr inbounds nuw i8, ptr %4, i64 8 + %.sink.sroa.phi33 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %.sink.sroa.phi36 = getelementptr inbounds nuw i8, ptr %4, i64 24 + %.sink.sroa.phi39 = getelementptr inbounds nuw i8, ptr %4, i64 32 + br label %.invoke + +.invoke: ; preds = %.invoke.loopexit, %._crit_edge + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge ], [ %.sink.sroa.gep32, %.invoke.loopexit ] + %.sink.sroa.phi33 = phi ptr [ %.sink.sroa.gep34, %._crit_edge ], [ %.sink.sroa.gep35, %.invoke.loopexit ] + %.sink.sroa.phi36 = phi ptr [ %.sink.sroa.gep37, %._crit_edge ], [ %.sink.sroa.gep38, %.invoke.loopexit ] + %.sink.sroa.phi39 = phi ptr [ %.sink.sroa.gep40, %._crit_edge ], [ %.sink.sroa.gep41, %.invoke.loopexit ] + %.sink = phi ptr [ %3, %._crit_edge ], [ %4, %.invoke.loopexit ] store ptr @.str.42, ptr %.sink, align 8 store ptr @__func__._ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_14TraceEventTreeEEptEv, ptr %.sink.sroa.phi, align 8 store i64 936, ptr %.sink.sroa.phi33, align 8 @@ -2973,6 +2972,10 @@ _ZN32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_14TraceEventTreeEED2Ev.exit: ; call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) %41 = load ptr, ptr %5, align 8 %.not.i10 = icmp eq ptr %41, null + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 8 + %.sink.sroa.gep34 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %.sink.sroa.gep37 = getelementptr inbounds nuw i8, ptr %3, i64 24 + %.sink.sroa.gep40 = getelementptr inbounds nuw i8, ptr %3, i64 32 br i1 %.not.i10, label %.invoke, label %42 42: ; preds = %._crit_edge diff --git a/bench/openusd/optimized/namespaceEditor.ll b/bench/openusd/optimized/namespaceEditor.ll index cba44c5ce0f..45db5f29b78 100644 --- a/bench/openusd/optimized/namespaceEditor.ll +++ b/bench/openusd/optimized/namespaceEditor.ll @@ -9162,30 +9162,22 @@ define internal fastcc void @_ZNK32pxrInternal_v0_24__pxrReserved__12_GLOBAL__N_ %8 = load ptr, ptr %7, align 8 %.not.i.i.i.i.i = icmp eq ptr %8, null %.sink.sroa.gep17 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sink.sroa.gep18 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %.sink.sroa.gep19 = getelementptr inbounds nuw i8, ptr %3, i64 8 %.sink.sroa.gep22 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %.sink.sroa.gep23 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %.sink.sroa.gep24 = getelementptr inbounds nuw i8, ptr %3, i64 16 %.sink.sroa.gep27 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %.sink.sroa.gep28 = getelementptr inbounds nuw i8, ptr %3, i64 24 - %.sink.sroa.gep29 = getelementptr inbounds nuw i8, ptr %3, i64 24 %.sink.sroa.gep32 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %.sink.sroa.gep33 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %.sink.sroa.gep34 = getelementptr inbounds nuw i8, ptr %3, i64 32 br i1 %.not.i.i.i.i.i, label %_ZNK32pxrInternal_v0_24__pxrReserved__15TfWeakPtrFacadeINS_9TfWeakPtrENS_8SdfLayerEE13_FetchPointerEv.exit.thread.i9.invoke, label %_ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_10Tf_RemnantEEptEv.exit.i.i.i.i _ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_10Tf_RemnantEEptEv.exit.i.i.i.i: ; preds = %2 - %.sink.sroa.gep31 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %.sink.sroa.gep26 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %.sink.sroa.gep21 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 8 %9 = getelementptr inbounds nuw i8, ptr %8, i64 14 %10 = load i8, ptr %9, align 2 %11 = trunc i8 %10 to i1 %12 = load ptr, ptr %1, align 8 %.not.i = icmp ne ptr %12, null %or.cond.not.i = select i1 %11, i1 %.not.i, i1 false + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 8 + %.sink.sroa.gep21 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %.sink.sroa.gep26 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %.sink.sroa.gep31 = getelementptr inbounds nuw i8, ptr %5, i64 32 br i1 %or.cond.not.i, label %13, label %_ZNK32pxrInternal_v0_24__pxrReserved__15TfWeakPtrFacadeINS_9TfWeakPtrENS_8SdfLayerEE13_FetchPointerEv.exit.thread.i9.invoke 13: ; preds = %_ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_10Tf_RemnantEEptEv.exit.i.i.i.i @@ -9226,6 +9218,10 @@ _ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_10Tf_RemnantEEptEv.exit.i.i.i call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %3) %30 = load ptr, ptr %7, align 8 %.not.i.i.i.i.i5 = icmp eq ptr %30, null + %.sink.sroa.gep19 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %.sink.sroa.gep24 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %.sink.sroa.gep29 = getelementptr inbounds nuw i8, ptr %3, i64 24 + %.sink.sroa.gep34 = getelementptr inbounds nuw i8, ptr %3, i64 32 br i1 %.not.i.i.i.i.i5, label %_ZNK32pxrInternal_v0_24__pxrReserved__15TfWeakPtrFacadeINS_9TfWeakPtrENS_8SdfLayerEE13_FetchPointerEv.exit.thread.i9.invoke, label %_ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_10Tf_RemnantEEptEv.exit.i.i.i.i6 _ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_10Tf_RemnantEEptEv.exit.i.i.i.i6: ; preds = %25 @@ -9235,6 +9231,10 @@ _ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_10Tf_RemnantEEptEv.exit.i.i.i %34 = load ptr, ptr %1, align 8 %.not.i7 = icmp ne ptr %34, null %or.cond.not.i8 = select i1 %33, i1 %.not.i7, i1 false + %.sink.sroa.gep18 = getelementptr inbounds nuw i8, ptr %3, i64 8 + %.sink.sroa.gep23 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %.sink.sroa.gep28 = getelementptr inbounds nuw i8, ptr %3, i64 24 + %.sink.sroa.gep33 = getelementptr inbounds nuw i8, ptr %3, i64 32 br i1 %or.cond.not.i8, label %35, label %_ZNK32pxrInternal_v0_24__pxrReserved__15TfWeakPtrFacadeINS_9TfWeakPtrENS_8SdfLayerEE13_FetchPointerEv.exit.thread.i9.invoke _ZNK32pxrInternal_v0_24__pxrReserved__15TfWeakPtrFacadeINS_9TfWeakPtrENS_8SdfLayerEE13_FetchPointerEv.exit.thread.i9.invoke: ; preds = %25, %_ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_10Tf_RemnantEEptEv.exit.i.i.i.i6, %2, %_ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_10Tf_RemnantEEptEv.exit.i.i.i.i @@ -23803,8 +23803,6 @@ define internal void @"_ZNSt17_Function_handlerIFSt8optionalIN32pxrInternal_v0_2 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %4), !noalias !213 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5), !noalias !213 %6 = tail call noundef zeroext i1 @_ZNK32pxrInternal_v0_24__pxrReserved__7SdfPath14IsAbsolutePathEv(ptr noundef nonnull align 4 dereferenceable(8) %2), !noalias !214 - %.sink5.i.sroa.gep.i.i = getelementptr inbounds nuw i8, ptr %5, i64 4 - %.sink5.i.sroa.gep1.i.i = getelementptr inbounds nuw i8, ptr %2, i64 4 br i1 %6, label %.critedge.i.i.i, label %7 7: ; preds = %3 @@ -23824,6 +23822,7 @@ define internal void @"_ZNSt17_Function_handlerIFSt8optionalIN32pxrInternal_v0_2 %14 = load i32, ptr %2, align 4, !noalias !214 store i32 %14, ptr %0, align 4, !alias.scope !214 %.not.i.i.i.i.i.i.i.i.i.i.i = icmp eq i32 %14, 0 + %.sink5.i.sroa.gep1.i.i = getelementptr inbounds nuw i8, ptr %2, i64 4 br i1 %.not.i.i.i.i.i.i.i.i.i.i.i, label %.sink.split.i.i.i, label %15 15: ; preds = %13 @@ -23849,6 +23848,7 @@ define internal void @"_ZNSt17_Function_handlerIFSt8optionalIN32pxrInternal_v0_2 %30 = load i32, ptr %2, align 4, !noalias !214 store i32 %30, ptr %0, align 4, !alias.scope !214 %.not.i.i.i.i.i.i.i.i6.i.i.i = icmp eq i32 %30, 0 + %.sink5.i.sroa.gep3.i.i = getelementptr inbounds nuw i8, ptr %2, i64 4 br i1 %.not.i.i.i.i.i.i.i.i6.i.i.i, label %.sink.split.i.i.i, label %31 31: ; preds = %29 @@ -23875,10 +23875,11 @@ _ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit.i.i.i: ; preds = %42 call void @_ZNK32pxrInternal_v0_24__pxrReserved__7SdfPath13ReplacePrefixERKS0_S2_b(ptr dead_on_unwind nonnull writable sret(%"class.pxrInternal_v0_24__pxrReserved__::SdfPath") align 4 %5, ptr noundef nonnull align 4 dereferenceable(8) %2, ptr noundef nonnull align 4 dereferenceable(8) %43, ptr noundef nonnull align 4 dereferenceable(8) %44, i1 noundef zeroext true), !noalias !214 %46 = load i32, ptr %5, align 4, !noalias !214 store i32 %46, ptr %0, align 4, !alias.scope !214 + %.sink5.i.sroa.gep.i.i = getelementptr inbounds nuw i8, ptr %5, i64 4 br label %.sink.split.i.i.i .sink.split.i.i.i: ; preds = %_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit.i.i.i, %31, %29, %15, %13 - %.sink5.i.sroa.phi.i.i = phi ptr [ %.sink5.i.sroa.gep.i.i, %_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit.i.i.i ], [ %.sink5.i.sroa.gep1.i.i, %13 ], [ %.sink5.i.sroa.gep1.i.i, %15 ], [ %.sink5.i.sroa.gep1.i.i, %29 ], [ %.sink5.i.sroa.gep1.i.i, %31 ] + %.sink5.i.sroa.phi.i.i = phi ptr [ %.sink5.i.sroa.gep.i.i, %_ZN32pxrInternal_v0_24__pxrReserved__7SdfPathD2Ev.exit.i.i.i ], [ %.sink5.i.sroa.gep1.i.i, %13 ], [ %.sink5.i.sroa.gep1.i.i, %15 ], [ %.sink5.i.sroa.gep3.i.i, %29 ], [ %.sink5.i.sroa.gep3.i.i, %31 ] %47 = getelementptr inbounds nuw i8, ptr %0, i64 4 %48 = load i32, ptr %.sink5.i.sroa.phi.i.i, align 4, !noalias !214 store i32 %48, ptr %47, align 4, !alias.scope !214 diff --git a/bench/openusd/optimized/statistics.ll b/bench/openusd/optimized/statistics.ll index ca1147b30fa..d88bfde5583 100644 --- a/bench/openusd/optimized/statistics.ll +++ b/bench/openusd/optimized/statistics.ll @@ -767,14 +767,6 @@ define linkonce_odr void @_ZN32pxrInternal_v0_24__pxrReserved__14Pcp_Statistics2 %27 = getelementptr inbounds nuw i8, ptr %0, i64 280 %28 = load i64, ptr %27, align 8 %.not.i.i.i.i.i.i = icmp eq i64 %28, 0 - %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.sink.sroa.gep301 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %.sink.sroa.gep303 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %.sink.sroa.gep304 = getelementptr inbounds nuw i8, ptr %7, i64 16 - %.sink.sroa.gep306 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %.sink.sroa.gep307 = getelementptr inbounds nuw i8, ptr %7, i64 24 - %.sink.sroa.gep309 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %.sink.sroa.gep310 = getelementptr inbounds nuw i8, ptr %7, i64 32 br i1 %.not.i.i.i.i.i.i, label %._crit_edge, label %29 29: ; preds = %2 @@ -1582,16 +1574,27 @@ _ZN32pxrInternal_v0_24__pxrReserved__10TfIteratorINS_9TfHashSetINS_14PcpMapFunct call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6) %366 = load ptr, ptr %365, align 8 %.not.i93 = icmp eq ptr %366, null + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 + %.sink.sroa.gep303 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %.sink.sroa.gep306 = getelementptr inbounds nuw i8, ptr %6, i64 24 + %.sink.sroa.gep309 = getelementptr inbounds nuw i8, ptr %6, i64 32 br i1 %.not.i93, label %.invoke, label %368 -.invoke: ; preds = %71, %._crit_edge239 - %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge239 ], [ %.sink.sroa.gep301, %71 ] - %.sink.sroa.phi302 = phi ptr [ %.sink.sroa.gep303, %._crit_edge239 ], [ %.sink.sroa.gep304, %71 ] - %.sink.sroa.phi305 = phi ptr [ %.sink.sroa.gep306, %._crit_edge239 ], [ %.sink.sroa.gep307, %71 ] - %.sink.sroa.phi308 = phi ptr [ %.sink.sroa.gep309, %._crit_edge239 ], [ %.sink.sroa.gep310, %71 ] - %.sink = phi ptr [ %6, %._crit_edge239 ], [ %7, %71 ] - %__PRETTY_FUNCTION__._ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_18PcpPrimIndex_GraphEEptEv.sink = phi ptr [ @__PRETTY_FUNCTION__._ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_22Pcp_LayerStackRegistryEEptEv, %._crit_edge239 ], [ @__PRETTY_FUNCTION__._ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_18PcpPrimIndex_GraphEEptEv, %71 ] - %367 = phi ptr [ @_ZTSN32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_22Pcp_LayerStackRegistryEEE, %._crit_edge239 ], [ @_ZTSN32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_18PcpPrimIndex_GraphEEE, %71 ] +.invoke: ; preds = %71 + %.sink.sroa.phi = getelementptr inbounds nuw i8, ptr %7, i64 8 + %.sink.sroa.phi302 = getelementptr inbounds nuw i8, ptr %7, i64 16 + %.sink.sroa.phi305 = getelementptr inbounds nuw i8, ptr %7, i64 24 + %.sink.sroa.phi308 = getelementptr inbounds nuw i8, ptr %7, i64 32 + br label %.invoke + +.invoke:; preds = %.invoke.loopexit, %._crit_edge239 + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %._crit_edge239 ], [ %.sink.sroa.gep301, %.invoke.loopexit ] + %.sink.sroa.phi302 = phi ptr [ %.sink.sroa.gep303, %._crit_edge239 ], [ %.sink.sroa.gep304, %.invoke.loopexit ] + %.sink.sroa.phi305 = phi ptr [ %.sink.sroa.gep306, %._crit_edge239 ], [ %.sink.sroa.gep307, %.invoke.loopexit ] + %.sink.sroa.phi308 = phi ptr [ %.sink.sroa.gep309, %._crit_edge239 ], [ %.sink.sroa.gep310, %.invoke.loopexit ] + %.sink = phi ptr [ %6, %._crit_edge239 ], [ %7, %.invoke.loopexit ] + %__PRETTY_FUNCTION__._ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_18PcpPrimIndex_GraphEEptEv.sink = phi ptr [ @__PRETTY_FUNCTION__._ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_22Pcp_LayerStackRegistryEEptEv, %._crit_edge239 ], [ @__PRETTY_FUNCTION__._ZNK32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_18PcpPrimIndex_GraphEEptEv, %.invoke.loopexit ] + %367 = phi ptr [ @_ZTSN32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_22Pcp_LayerStackRegistryEEE, %._crit_edge239 ], [ @_ZTSN32pxrInternal_v0_24__pxrReserved__8TfRefPtrINS_18PcpPrimIndex_GraphEEE, %.invoke.loopexit ] store ptr @.str.21, ptr %.sink, align 8 store ptr @__func__._ZN32pxrInternal_v0_24__pxrReserved__10TfIteratorIKNS_12SdfPathTableINS_12PcpPrimIndexEEELb0EEptEv, ptr %.sink.sroa.phi, align 8 store i64 936, ptr %.sink.sroa.phi302, align 8 diff --git a/bench/openusd/optimized/testUsdImagingNestedInstancingCategories.ll b/bench/openusd/optimized/testUsdImagingNestedInstancingCategories.ll index e9f6ddcc49e..81d43327ee2 100644 --- a/bench/openusd/optimized/testUsdImagingNestedInstancingCategories.ll +++ b/bench/openusd/optimized/testUsdImagingNestedInstancingCategories.ll @@ -310,14 +310,6 @@ define dso_local noundef i32 @main() local_unnamed_addr #3 personality ptr @__gx call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %55) call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %56) call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #18 - %.sink118.sroa.gep = getelementptr inbounds nuw i8, ptr %52, i64 8 - %.sink118.sroa.gep130 = getelementptr inbounds nuw i8, ptr %53, i64 8 - %.sink118.sroa.gep132 = getelementptr inbounds nuw i8, ptr %52, i64 16 - %.sink118.sroa.gep133 = getelementptr inbounds nuw i8, ptr %53, i64 16 - %.sink118.sroa.gep135 = getelementptr inbounds nuw i8, ptr %52, i64 24 - %.sink118.sroa.gep136 = getelementptr inbounds nuw i8, ptr %53, i64 24 - %.sink118.sroa.gep138 = getelementptr inbounds nuw i8, ptr %52, i64 32 - %.sink118.sroa.gep139 = getelementptr inbounds nuw i8, ptr %53, i64 32 %59 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %4) to label %.noexc.i unwind label %266 @@ -874,7 +866,7 @@ _ZNSt6vectorIiSaIiEED2Ev.exit.i: ; preds = %244, %242 %264 = sdiv exact i64 %263, 40 %265 = trunc i64 %264 to i32 %.not171.i = icmp slt i32 %258, %265 - br i1 %.not171.i, label %389, label %.invoke111 + br i1 %.not171.i, label %389, label %.invoke111.split.loop.exit152 266: ; preds = %.noexc.i, %0 %267 = landingpad { ptr, i32 } @@ -1303,15 +1295,29 @@ _ZNSt6vectorIiSaIiEED2Ev.exit.i: ; preds = %244, %242 %.not172.i = icmp slt i32 %258, %396 br i1 %.not172.i, label %400, label %.invoke111 -.invoke111: ; preds = %389, %257 - %.sink118.sroa.phi = phi ptr [ %.sink118.sroa.gep, %257 ], [ %.sink118.sroa.gep130, %389 ] - %.sink118.sroa.phi131 = phi ptr [ %.sink118.sroa.gep132, %257 ], [ %.sink118.sroa.gep133, %389 ] - %.sink118.sroa.phi134 = phi ptr [ %.sink118.sroa.gep135, %257 ], [ %.sink118.sroa.gep136, %389 ] - %.sink118.sroa.phi137 = phi ptr [ %.sink118.sroa.gep138, %257 ], [ %.sink118.sroa.gep139, %389 ] - %.sink118 = phi ptr [ %52, %257 ], [ %53, %389 ] - %.sink = phi i64 [ 107, %257 ], [ 113, %389 ] - %397 = phi ptr [ @.str.16, %257 ], [ @.str.17, %389 ] - %398 = phi i64 [ %264, %257 ], [ %395, %389 ] +.invoke111: ; preds = %389 + %.sink118.sroa.phi = getelementptr inbounds nuw i8, ptr %53, i64 8 + %.sink118.sroa.phi131 = getelementptr inbounds nuw i8, ptr %53, i64 16 + %.sink118.sroa.phi134 = getelementptr inbounds nuw i8, ptr %53, i64 24 + %.sink118.sroa.phi137 = getelementptr inbounds nuw i8, ptr %53, i64 32 + br label %.invoke111 + +.invoke111.split.loop.exit152:; preds = %257 + %398 = getelementptr inbounds nuw i8, ptr %52, i64 8 + %.sink118.sroa.gep132.le = getelementptr inbounds nuw i8, ptr %52, i64 16 + %.sink118.sroa.gep135.le = getelementptr inbounds nuw i8, ptr %52, i64 24 + %.sink118.sroa.gep138.le = getelementptr inbounds nuw i8, ptr %52, i64 32 + br label %.invoke111 + +.invoke111: ; preds = %.invoke111.split.loop.exit152, %.invoke111.split.loop.exit + %.sink118.sroa.phi = phi ptr [ %.sink118.sroa.gep130.le, %.invoke111.split.loop.exit ], [ %.sink118.sroa.gep.le, %.invoke111.split.loop.exit152 ] + %.sink118.sroa.phi131 = phi ptr [ %.sink118.sroa.gep133.le, %.invoke111.split.loop.exit ], [ %.sink118.sroa.gep132.le, %.invoke111.split.loop.exit152 ] + %.sink118.sroa.phi134 = phi ptr [ %.sink118.sroa.gep136.le, %.invoke111.split.loop.exit ], [ %.sink118.sroa.gep135.le, %.invoke111.split.loop.exit152 ] + %.sink118.sroa.phi137 = phi ptr [ %.sink118.sroa.gep139.le, %.invoke111.split.loop.exit ], [ %.sink118.sroa.gep138.le, %.invoke111.split.loop.exit152 ] + %.sink118 = phi ptr [ %53, %.invoke111.split.loop.exit ], [ %52, %.invoke111.split.loop.exit152 ] + %.sink = phi i64 [ 113, %.invoke111.split.loop.exit ], [ 107, %.invoke111.split.loop.exit152 ] + %397 = phi ptr [ @.str.17, %.invoke111.split.loop.exit ], [ @.str.16, %.invoke111.split.loop.exit152 ] + %398 = phi i64 [ %395, %.invoke111.split.loop.exit ], [ %264, %.invoke111.split.loop.exit152 ] store ptr @.str, ptr %.sink118, align 8 store ptr @__func__._ZL30TestNestedInstancingCategoriesv, ptr %.sink118.sroa.phi, align 8 store i64 %.sink, ptr %.sink118.sroa.phi131, align 8 diff --git a/bench/php/optimized/engine_pcgoneseq128xslrr64.ll b/bench/php/optimized/engine_pcgoneseq128xslrr64.ll index deb402681f1..42dbe3d30d6 100644 --- a/bench/php/optimized/engine_pcgoneseq128xslrr64.ll +++ b/bench/php/optimized/engine_pcgoneseq128xslrr64.ll @@ -130,16 +130,19 @@ define internal noundef zeroext i1 @unserialize(ptr noundef writeonly captures(n %4 = getelementptr inbounds nuw i8, ptr %1, i64 28 %5 = load i32, ptr %4, align 4, !tbaa !12 %.not = icmp eq i32 %5, 2 + br i1 %.not, label %.preheader.preheader, label %.loopexit + +.preheader.preheader: ; preds = %2 %indvars.iv.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 8 - br i1 %.not, label %.preheader, label %.loopexit + br label %.preheader 6: ; preds = %15 br i1 %.not20, label %.preheader, label %.critedge -.preheader: ; preds = %2, %6 - %.not20 = phi i1 [ false, %6 ], [ true, %2 ] - %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %6 ], [ %3, %2 ] - %indvars.iv = phi i64 [ 1, %6 ], [ 0, %2 ] +.preheader: ; preds = %.preheader.preheader, %6 + %.not20 = phi i1 [ false, %6 ], [ true, %.preheader.preheader ] + %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %6 ], [ %3, %.preheader.preheader ] + %indvars.iv = phi i64 [ 1, %6 ], [ 0, %.preheader.preheader ] %7 = call ptr @zend_hash_index_find(ptr noundef %1, i64 noundef %indvars.iv) #8 %.not16 = icmp eq ptr %7, null br i1 %.not16, label %.loopexit, label %8 diff --git a/bench/postgres/optimized/jsonb_gin.ll b/bench/postgres/optimized/jsonb_gin.ll index 2fe527924d6..54d963e9c01 100644 --- a/bench/postgres/optimized/jsonb_gin.ll +++ b/bench/postgres/optimized/jsonb_gin.ll @@ -1764,9 +1764,7 @@ define internal fastcc ptr @extract_jsp_bool_expr(ptr noundef nonnull %0, ptr %1 %10 = alloca %struct.JsonbValue, align 8 tail call void @check_stack_depth() #8 %11 = load i32, ptr %2, align 8 - %.0.sroa.gep53 = getelementptr inbounds nuw i8, ptr %8, i64 16 - %.0.sroa.gep54 = getelementptr inbounds nuw i8, ptr %9, i64 16 - switch i32 %11, label %65 [ + switch i32 %11, label %64 [ i32 4, label %12 i32 5, label %12 i32 6, label %30 @@ -1844,17 +1842,22 @@ define internal fastcc ptr @extract_jsp_bool_expr(ptr noundef nonnull %0, ptr %1 call void @jspGetRightArg(ptr noundef nonnull %2, ptr noundef nonnull %9) #8 %39 = load i32, ptr %8, align 8 %40 = icmp ult i32 %39, 4 + %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %8, i64 16 + %.sink.sroa.gep67 = getelementptr inbounds nuw i8, ptr %8, i64 24 br i1 %40, label %44, label %41 41: ; preds = %38 %42 = load i32, ptr %9, align 8 %43 = icmp ult i32 %42, 4 - br i1 %43, label %44, label %64 + %.sink.sroa.gep65 = getelementptr inbounds nuw i8, ptr %9, i64 16 + %.sink.sroa.gep68 = getelementptr inbounds nuw i8, ptr %9, i64 24 + br i1 %43, label %44, label %63 44: ; preds = %41, %38 - %45 = phi i32 [ %42, %41 ], [ %39, %38 ] - %.046 = phi ptr [ %8, %41 ], [ %9, %38 ] - %.0.sroa.phi61 = phi ptr [ %.0.sroa.gep54, %41 ], [ %.0.sroa.gep53, %38 ] + %45 = phi ptr [ %.sink.sroa.gep, %38 ], [ %.sink.sroa.gep65, %41 ] + %.046 = phi ptr [ %.sink.sroa.gep67, %38 ], [ %.sink.sroa.gep68, %41 ] + %.0.sroa.phi61 = phi i32 [ %39, %38 ], [ %42, %41 ] + %.046 = phi ptr [ %9, %38 ], [ %8, %41 ] switch i32 %45, label %default.unreachable [ i32 0, label %46 i32 3, label %47 @@ -1868,7 +1871,7 @@ define internal fastcc ptr @extract_jsp_bool_expr(ptr noundef nonnull %0, ptr %1 47: ; preds = %44 store i32 3, ptr %10, align 8 - %48 = load ptr, ptr %.0.sroa.phi61, align 8 + %48 = load ptr, ptr %.sink.sroa.phi, align 8 %49 = load i8, ptr %48, align 1 %50 = icmp ne i8 %49, 0 %51 = getelementptr inbounds nuw i8, ptr %10, i64 8 @@ -1878,21 +1881,20 @@ define internal fastcc ptr @extract_jsp_bool_expr(ptr noundef nonnull %0, ptr %1 53: ; preds = %44 store i32 2, ptr %10, align 8 - %54 = load ptr, ptr %.0.sroa.phi61, align 8 + %54 = load ptr, ptr %.sink.sroa.phi, align 8 %55 = getelementptr inbounds nuw i8, ptr %10, i64 8 store ptr %54, ptr %55, align 8 br label %62 56: ; preds = %44 store i32 1, ptr %10, align 8 - %57 = load ptr, ptr %.0.sroa.phi61, align 8 + %57 = load ptr, ptr %.sink.sroa.phi, align 8 %58 = getelementptr inbounds nuw i8, ptr %10, i64 8 %59 = getelementptr inbounds nuw i8, ptr %10, i64 16 store ptr %57, ptr %59, align 8 - %60 = getelementptr inbounds nuw i8, ptr %.0.sroa.phi61, i64 8 - %61 = load i32, ptr %60, align 8 - store i32 %61, ptr %58, align 8 - br label %62 + %60 = load i32, ptr %.sink.sroa.phi66, align 8 + store i32 %60, ptr %58, align 8 + br label %61 default.unreachable: ; preds = %44 unreachable diff --git a/bench/postgres/optimized/pgstatfuncs.ll b/bench/postgres/optimized/pgstatfuncs.ll index d1f24e251b2..859d249e499 100644 --- a/bench/postgres/optimized/pgstatfuncs.ll +++ b/bench/postgres/optimized/pgstatfuncs.ll @@ -3383,40 +3383,48 @@ define internal fastcc void @pg_stat_io_build_tuples(ptr noundef readonly captur %17 = ptrtoint ptr %7 to i64 %18 = getelementptr inbounds nuw i8, ptr %0, i64 40 %19 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %.0.i6580.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 6 - %.0.i6580.sroa.gep103 = getelementptr inbounds nuw i8, ptr %6, i64 11 %.0.i6580.sroa.gep104 = getelementptr inbounds nuw i8, ptr %6, i64 3 - %.0.i6580.sroa.gep105 = getelementptr inbounds nuw i8, ptr %6, i64 15 - %.0.i6580.sroa.gep106 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %.0.i6580.sroa.gep107 = getelementptr inbounds nuw i8, ptr %6, i64 14 - %.0.i6580.sroa.gep108 = getelementptr inbounds nuw i8, ptr %6, i64 9 - %.0.i6580.sroa.gep109 = getelementptr inbounds nuw i8, ptr %6, i64 17 - %.0.i6182.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.0.i6182.sroa.gep119 = getelementptr inbounds nuw i8, ptr %6, i64 13 %.0.i6182.sroa.gep120 = getelementptr inbounds nuw i8, ptr %6, i64 5 - %.0.i6182.sroa.gep121 = getelementptr inbounds nuw i8, ptr %6, i64 4294967295 + %.0.i6182.sroa.gep121 = getelementptr inbounds nuw i8, ptr %6, i64 4 + %.0.i6580.sroa.gep136 = getelementptr inbounds nuw i8, ptr %5, i64 24 + %.0.i6182.sroa.gep145 = getelementptr inbounds nuw i8, ptr %5, i64 40 + %.0.i62.sroa.gep154 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %.0.i6580.sroa.gep108 = getelementptr inbounds nuw i8, ptr %6, i64 9 %.0.i6182.sroa.gep124 = getelementptr inbounds nuw i8, ptr %6, i64 10 - %.0.i6182.sroa.gep125 = getelementptr inbounds nuw i8, ptr %6, i64 18 + %.0.i6182.sroa.gep125 = getelementptr inbounds nuw i8, ptr %6, i64 4294967295 + %.0.i6580.sroa.gep140 = getelementptr inbounds nuw i8, ptr %5, i64 72 + %.0.i6182.sroa.gep149 = getelementptr inbounds nuw i8, ptr %5, i64 80 + %.0.i62.sroa.gep158 = getelementptr inbounds nuw i8, ptr %5, i64 34359738360 + %.0.i6580.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 6 + %.0.i6182.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 8 %.0.i62.sroa.gep = getelementptr inbounds nuw i8, ptr %6, i64 7 - %.0.i62.sroa.gep126 = getelementptr inbounds nuw i8, ptr %6, i64 12 - %.0.i62.sroa.gep127 = getelementptr inbounds nuw i8, ptr %6, i64 4 %.0.i6580.sroa.gep134 = getelementptr inbounds nuw i8, ptr %5, i64 48 - %.0.i6580.sroa.gep135 = getelementptr inbounds nuw i8, ptr %5, i64 88 - %.0.i6580.sroa.gep136 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %.0.i6580.sroa.gep137 = getelementptr inbounds nuw i8, ptr %5, i64 120 + %.0.i6580.sroa.gep135 = getelementptr inbounds nuw i8, ptr %5, i64 64 + %.0.i6580.sroa.gep136 = getelementptr inbounds nuw i8, ptr %5, i64 56 + %.0.i6580.sroa.gep137 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %.0.i6182.sroa.gep122 = getelementptr inbounds nuw i8, ptr %6, i64 4294967295 %.0.i6580.sroa.gep138 = getelementptr inbounds nuw i8, ptr %5, i64 128 + %.0.i6182.sroa.gep147 = getelementptr inbounds nuw i8, ptr %5, i64 34359738360 + %.0.i6580.sroa.gep107 = getelementptr inbounds nuw i8, ptr %6, i64 14 + %.0.i6182.sroa.gep123 = getelementptr inbounds nuw i8, ptr %6, i64 4294967295 %.0.i6580.sroa.gep139 = getelementptr inbounds nuw i8, ptr %5, i64 112 - %.0.i6580.sroa.gep140 = getelementptr inbounds nuw i8, ptr %5, i64 72 + %.0.i6580.sroa.gep140 = getelementptr inbounds nuw i8, ptr %5, i64 34359738360 + %.0.i6580.sroa.gep109 = getelementptr inbounds nuw i8, ptr %6, i64 17 + %.0.i6182.sroa.gep125 = getelementptr inbounds nuw i8, ptr %6, i64 18 + %.0.i62.sroa.gep132 = getelementptr inbounds nuw i8, ptr %6, i64 4294967295 %.0.i6580.sroa.gep141 = getelementptr inbounds nuw i8, ptr %5, i64 136 - %.0.i6182.sroa.gep143 = getelementptr inbounds nuw i8, ptr %5, i64 64 - %.0.i6182.sroa.gep144 = getelementptr inbounds nuw i8, ptr %5, i64 104 - %.0.i6182.sroa.gep145 = getelementptr inbounds nuw i8, ptr %5, i64 40 - %.0.i6182.sroa.gep146 = getelementptr inbounds nuw i8, ptr %5, i64 34359738360 - %.0.i6182.sroa.gep149 = getelementptr inbounds nuw i8, ptr %5, i64 80 %.0.i6182.sroa.gep150 = getelementptr inbounds nuw i8, ptr %5, i64 144 - %.0.i62.sroa.gep152 = getelementptr inbounds nuw i8, ptr %5, i64 56 + %.0.i62.sroa.gep152 = getelementptr inbounds nuw i8, ptr %5, i64 34359738360 + %.0.i6580.sroa.gep103 = getelementptr inbounds nuw i8, ptr %6, i64 11 + %.0.i6182.sroa.gep119 = getelementptr inbounds nuw i8, ptr %6, i64 13 + %.0.i62.sroa.gep126 = getelementptr inbounds nuw i8, ptr %6, i64 12 + %.0.i6580.sroa.gep135 = getelementptr inbounds nuw i8, ptr %5, i64 88 + %.0.i6182.sroa.gep144 = getelementptr inbounds nuw i8, ptr %5, i64 104 %.0.i62.sroa.gep153 = getelementptr inbounds nuw i8, ptr %5, i64 96 - %.0.i62.sroa.gep154 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %.0.i62.sroa.gep154 = getelementptr inbounds nuw i8, ptr %6, i64 15 + %.0.i6182.sroa.gep121 = getelementptr inbounds nuw i8, ptr %6, i64 4294967295 + %.0.i6580.sroa.gep137 = getelementptr inbounds nuw i8, ptr %5, i64 120 + %.0.i6182.sroa.gep146 = getelementptr inbounds nuw i8, ptr %5, i64 34359738360 br label %21 20: ; preds = %24 @@ -3511,13 +3519,13 @@ pgstat_get_io_time_index.exit: ; preds = %39 pgstat_get_io_byte_index.exit: ; preds = %44, %pgstat_get_io_op_index.exit, %43, %41, %42, %39, %pgstat_get_io_time_index.exit.thread83, %pgstat_get_io_time_index.exit %.not57 = phi i1 [ false, %pgstat_get_io_time_index.exit ], [ false, %pgstat_get_io_time_index.exit.thread83 ], [ false, %39 ], [ true, %44 ], [ true, %42 ], [ true, %41 ], [ false, %43 ], [ false, %pgstat_get_io_op_index.exit ] - %.0.i6182.sroa.phi = phi ptr [ %.0.i6182.sroa.gep, %pgstat_get_io_time_index.exit ], [ %.0.i6182.sroa.gep119, %pgstat_get_io_time_index.exit.thread83 ], [ %.0.i6182.sroa.gep120, %39 ], [ %.0.i6182.sroa.gep121, %44 ], [ %.0.i6182.sroa.gep121, %42 ], [ %.0.i6182.sroa.gep121, %41 ], [ %.0.i6182.sroa.gep124, %43 ], [ %.0.i6182.sroa.gep125, %pgstat_get_io_op_index.exit ] - %.0.i6182.sroa.phi142 = phi ptr [ %.0.i6182.sroa.gep143, %pgstat_get_io_time_index.exit ], [ %.0.i6182.sroa.gep144, %pgstat_get_io_time_index.exit.thread83 ], [ %.0.i6182.sroa.gep145, %39 ], [ %.0.i6182.sroa.gep146, %44 ], [ %.0.i6182.sroa.gep146, %42 ], [ %.0.i6182.sroa.gep146, %41 ], [ %.0.i6182.sroa.gep149, %43 ], [ %.0.i6182.sroa.gep150, %pgstat_get_io_op_index.exit ] + %.0.i6182.sroa.phi = phi ptr [ %.0.i6182.sroa.gep, %pgstat_get_io_time_index.exit ], [ %.0.i6182.sroa.gep119, %pgstat_get_io_time_index.exit.thread83 ], [ %.0.i6182.sroa.gep120, %39 ], [ %.0.i6182.sroa.gep121, %44 ], [ %.0.i6182.sroa.gep122, %42 ], [ %.0.i6182.sroa.gep123, %41 ], [ %.0.i6182.sroa.gep124, %43 ], [ %.0.i6182.sroa.gep125, %pgstat_get_io_op_index.exit ] + %.0.i6182.sroa.phi142 = phi ptr [ %.0.i6182.sroa.gep143, %pgstat_get_io_time_index.exit ], [ %.0.i6182.sroa.gep144, %pgstat_get_io_time_index.exit.thread83 ], [ %.0.i6182.sroa.gep145, %39 ], [ %.0.i6182.sroa.gep146, %44 ], [ %.0.i6182.sroa.gep147, %42 ], [ %.0.i6182.sroa.gep148, %41 ], [ %.0.i6182.sroa.gep149, %43 ], [ %.0.i6182.sroa.gep150, %pgstat_get_io_op_index.exit ] %.0.i6580.sroa.phi = phi ptr [ %.0.i6580.sroa.gep, %pgstat_get_io_time_index.exit ], [ %.0.i6580.sroa.gep103, %pgstat_get_io_time_index.exit.thread83 ], [ %.0.i6580.sroa.gep104, %39 ], [ %.0.i6580.sroa.gep105, %44 ], [ %.0.i6580.sroa.gep106, %42 ], [ %.0.i6580.sroa.gep107, %41 ], [ %.0.i6580.sroa.gep108, %43 ], [ %.0.i6580.sroa.gep109, %pgstat_get_io_op_index.exit ] %.0.i6580.sroa.phi133 = phi ptr [ %.0.i6580.sroa.gep134, %pgstat_get_io_time_index.exit ], [ %.0.i6580.sroa.gep135, %pgstat_get_io_time_index.exit.thread83 ], [ %.0.i6580.sroa.gep136, %39 ], [ %.0.i6580.sroa.gep137, %44 ], [ %.0.i6580.sroa.gep138, %42 ], [ %.0.i6580.sroa.gep139, %41 ], [ %.0.i6580.sroa.gep140, %43 ], [ %.0.i6580.sroa.gep141, %pgstat_get_io_op_index.exit ] %.not58 = phi i1 [ false, %pgstat_get_io_time_index.exit ], [ false, %pgstat_get_io_time_index.exit.thread83 ], [ false, %39 ], [ true, %44 ], [ true, %42 ], [ true, %41 ], [ true, %43 ], [ true, %pgstat_get_io_op_index.exit ] - %.0.i62.sroa.phi = phi ptr [ %.0.i62.sroa.gep, %pgstat_get_io_time_index.exit ], [ %.0.i62.sroa.gep126, %pgstat_get_io_time_index.exit.thread83 ], [ %.0.i62.sroa.gep127, %39 ], [ %.0.i6182.sroa.gep121, %44 ], [ %.0.i6182.sroa.gep121, %42 ], [ %.0.i6182.sroa.gep121, %41 ], [ %.0.i6182.sroa.gep121, %43 ], [ %.0.i6182.sroa.gep121, %pgstat_get_io_op_index.exit ] - %.0.i62.sroa.phi151 = phi ptr [ %.0.i62.sroa.gep152, %pgstat_get_io_time_index.exit ], [ %.0.i62.sroa.gep153, %pgstat_get_io_time_index.exit.thread83 ], [ %.0.i62.sroa.gep154, %39 ], [ %.0.i6182.sroa.gep146, %44 ], [ %.0.i6182.sroa.gep146, %42 ], [ %.0.i6182.sroa.gep146, %41 ], [ %.0.i6182.sroa.gep146, %43 ], [ %.0.i6182.sroa.gep146, %pgstat_get_io_op_index.exit ] + %.0.i62.sroa.phi = phi ptr [ %.0.i62.sroa.gep, %pgstat_get_io_time_index.exit ], [ %.0.i62.sroa.gep126, %pgstat_get_io_time_index.exit.thread83 ], [ %.0.i62.sroa.gep127, %39 ], [ %.0.i6182.sroa.gep121, %44 ], [ %.0.i6182.sroa.gep122, %42 ], [ %.0.i6182.sroa.gep123, %41 ], [ %.0.i62.sroa.gep131, %43 ], [ %.0.i62.sroa.gep132, %pgstat_get_io_op_index.exit ] + %.0.i62.sroa.phi151 = phi ptr [ %.0.i62.sroa.gep152, %pgstat_get_io_time_index.exit ], [ %.0.i62.sroa.gep153, %pgstat_get_io_time_index.exit.thread83 ], [ %.0.i62.sroa.gep154, %39 ], [ %.0.i6182.sroa.gep146, %44 ], [ %.0.i6182.sroa.gep147, %42 ], [ %.0.i6182.sroa.gep148, %41 ], [ %.0.i62.sroa.gep158, %43 ], [ %.0.i62.sroa.gep159, %pgstat_get_io_op_index.exit ] %45 = call zeroext i1 @pgstat_tracks_io_op(i32 noundef %2, i32 noundef %22, i32 noundef %26, i32 noundef %40) #9 br i1 %45, label %46, label %.thread diff --git a/bench/proj/optimized/imw_p.ll b/bench/proj/optimized/imw_p.ll index e68e240dcc5..ccb942a0423 100644 --- a/bench/proj/optimized/imw_p.ll +++ b/bench/proj/optimized/imw_p.ll @@ -402,8 +402,6 @@ define internal { double, double } @_ZL15imw_p_e_inverse5PJ_XYP8PJconsts(double %11 = tail call double @cos(double noundef %10) #7 %12 = fdiv double %0, %11 %13 = getelementptr inbounds nuw i8, ptr %8, i64 72 - %.sink47.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sink47.sroa.gep48 = getelementptr inbounds nuw i8, ptr %6, i64 8 br label %.critedge2 .critedge2: ; preds = %.critedge2.backedge, %3 @@ -426,7 +424,7 @@ define internal { double, double } @_ZL15imw_p_e_inverse5PJ_XYP8PJconsts(double 24: ; preds = %20, %.critedge2 %25 = fcmp oeq double %18, 0.000000e+00 - br i1 %25, label %.critedge.thread.sink.split, label %26 + br i1 %25, label %.critedge.thread.sink.split.split.loop.exit49, label %26 26: ; preds = %24 %27 = load double, ptr %13, align 8 @@ -474,9 +472,17 @@ define internal { double, double } @_ZL15imw_p_e_inverse5PJ_XYP8PJconsts(double .critedge2.backedge: ; preds = %48, %44 br label %.critedge2, !llvm.loop !4 -.critedge.thread.sink.split: ; preds = %42, %24 - %.sink47.sroa.phi = phi ptr [ %.sink47.sroa.gep, %24 ], [ %.sink47.sroa.gep48, %42 ] - %.sink47 = phi ptr [ %5, %24 ], [ %6, %42 ] +.critedge.thread.sink.split: ; preds = %42 + %.sink47.sroa.phi = getelementptr inbounds nuw i8, ptr %6, i64 8 + br label %.critedge.thread.sink.split + +.critedge.thread.sink.split.split.loop.exit49: ; preds = %24 + %.sink47.sroa.gep.le = getelementptr inbounds nuw i8, ptr %5, i64 8 + br label %.critedge.thread.sink.split + +.critedge.thread.sink.split: ; preds = %.critedge.thread.sink.split.split.loop.exit49, %.critedge.thread.sink.split.split.loop.exit + %.sink47.sroa.phi = phi ptr [ %.sink47.sroa.gep48.le, %.critedge.thread.sink.split.split.loop.exit ], [ %.sink47.sroa.gep.le, %.critedge.thread.sink.split.split.loop.exit49 ] + %.sink47 = phi ptr [ %6, %.critedge.thread.sink.split.split.loop.exit ], [ %5, %.critedge.thread.sink.split.split.loop.exit49 ] %52 = tail call i32 @proj_errno_set(ptr noundef %2, i32 noundef 2050) call void @_Z16proj_coord_errorv(ptr dead_on_unwind nonnull writable sret(%union.PJ_COORD) align 8 %.sink47) %.sroa.031.0.copyload32 = load double, ptr %.sink47, align 8 diff --git a/bench/protobuf/optimized/parser.ll b/bench/protobuf/optimized/parser.ll index 9797e69b071..b4792626bc8 100644 --- a/bench/protobuf/optimized/parser.ll +++ b/bench/protobuf/optimized/parser.ll @@ -823,10 +823,6 @@ entry: %1 = extractvalue { i64, ptr } %call1.i, 0 %2 = extractvalue { i64, ptr } %call1.i, 1 %call1 = tail call noundef i32 @_ZN6google8protobuf13json_internal15ClassifyMessageESt17basic_string_viewIcSt11char_traitsIcEE(i64 %1, ptr %2) - %pop154.i.sink791.sroa.gep = getelementptr inbounds nuw i8, ptr %pop.i, i64 8 - %pop154.i.sink791.sroa.gep812 = getelementptr inbounds nuw i8, ptr %pop52.i, i64 8 - %pop154.i.sink791.sroa.gep813 = getelementptr inbounds nuw i8, ptr %pop101.i, i64 8 - %pop154.i.sink791.sroa.gep814 = getelementptr inbounds nuw i8, ptr %pop154.i, i64 8 br i1 %any_reparse, label %cleanup.i50, label %if.then if.then: ; preds = %entry @@ -1903,10 +1899,12 @@ nrvo.unused36.i: ; preds = %cleanup34.i cleanup43.i: ; preds = %nrvo.unused36.i %124 = load i8, ptr %pop.i, align 8 %tobool.i.i300 = trunc i8 %124 to i1 + %pop154.i.sink791.sroa.gep = getelementptr inbounds nuw i8, ptr %pop.i, i64 8 br i1 %tobool.i.i300, label %sw.epilog.i.sink.split, label %sw.epilog.i invoke.cont3.i295: ; preds = %lpad24.i - %125 = load ptr, ptr %pop154.i.sink791.sroa.gep, align 8 + %125 = getelementptr inbounds nuw i8, ptr %pop.i, i64 8 + %125 = load ptr, ptr %callback_buffer_.i.i.i.i296, align 8 %_M_finish.i.i.i.i297 = getelementptr inbounds nuw i8, ptr %125, i64 8 %126 = load ptr, ptr %_M_finish.i.i.i.i297, align 8 %incdec.ptr.i.i.i.i298 = getelementptr inbounds i8, ptr %126, i64 -48 @@ -1999,6 +1997,7 @@ cleanup89.i40: ; preds = %invoke.cont86.i call void @_ZN4absl12lts_202308028StatusOrIN6google8protobuf13json_internal12LocationWithIdEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %number.i) #24 %143 = load i8, ptr %pop52.i, align 8 %tobool.i.i276 = trunc i8 %143 to i1 + %pop154.i.sink791.sroa.gep812 = getelementptr inbounds nuw i8, ptr %pop52.i, i64 8 br i1 %tobool.i.i276, label %sw.epilog.i.sink.split, label %sw.epilog.i ehcleanup93.i: ; preds = %lpad67.i, %lpad63.i @@ -2008,7 +2007,8 @@ ehcleanup93.i: ; preds = %lpad67.i, %lpad63.i br i1 %tobool.i.i270, label %invoke.cont3.i271, label %ehcleanup268.i invoke.cont3.i271: ; preds = %ehcleanup93.i - %145 = load ptr, ptr %pop154.i.sink791.sroa.gep812, align 8 + %145 = getelementptr inbounds nuw i8, ptr %pop52.i, i64 8 + %145 = load ptr, ptr %callback_buffer_.i.i.i.i272, align 8 %_M_finish.i.i.i.i273 = getelementptr inbounds nuw i8, ptr %145, i64 8 %146 = load ptr, ptr %_M_finish.i.i.i.i273, align 8 %incdec.ptr.i.i.i.i274 = getelementptr inbounds i8, ptr %146, i64 -48 @@ -2107,6 +2107,7 @@ cleanup142.i: ; preds = %invoke.cont138.i call void @_ZN4absl12lts_202308028StatusOrIN6google8protobuf13json_internal12LocationWithINS4_16MaybeOwnedStringEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(88) %str.i) #24 %164 = load i8, ptr %pop101.i, align 8 %tobool.i.i254 = trunc i8 %164 to i1 + %pop154.i.sink791.sroa.gep813 = getelementptr inbounds nuw i8, ptr %pop101.i, i64 8 br i1 %tobool.i.i254, label %sw.epilog.i.sink.split, label %sw.epilog.i ehcleanup146.i: ; preds = %lpad117.i, %lpad112.i @@ -2116,7 +2117,8 @@ ehcleanup146.i: ; preds = %lpad117.i, %lpad112 br i1 %tobool.i.i248, label %invoke.cont3.i249, label %ehcleanup268.i invoke.cont3.i249: ; preds = %ehcleanup146.i - %166 = load ptr, ptr %pop154.i.sink791.sroa.gep813, align 8 + %166 = getelementptr inbounds nuw i8, ptr %pop101.i, i64 8 + %166 = load ptr, ptr %callback_buffer_.i.i.i.i250, align 8 %_M_finish.i.i.i.i251 = getelementptr inbounds nuw i8, ptr %166, i64 8 %167 = load ptr, ptr %_M_finish.i.i.i.i251, align 8 %incdec.ptr.i.i.i.i252 = getelementptr inbounds i8, ptr %167, i64 -48 @@ -2202,10 +2204,12 @@ nrvo.unused207.i.invoke: ; preds = %cleanup205.i, %clea cleanup216.i: ; preds = %nrvo.unused207.i.invoke %181 = load i8, ptr %pop154.i, align 8 %tobool.i.i230 = trunc i8 %181 to i1 + %pop154.i.sink791.sroa.gep814 = getelementptr inbounds nuw i8, ptr %pop154.i, i64 8 br i1 %tobool.i.i230, label %sw.epilog.i.sink.split, label %sw.epilog.i invoke.cont3.i225: ; preds = %lpad165.i - %182 = load ptr, ptr %pop154.i.sink791.sroa.gep814, align 8 + %182 = getelementptr inbounds nuw i8, ptr %pop154.i, i64 8 + %182 = load ptr, ptr %callback_buffer_.i.i.i.i226, align 8 %_M_finish.i.i.i.i227 = getelementptr inbounds nuw i8, ptr %182, i64 8 %183 = load ptr, ptr %_M_finish.i.i.i.i227, align 8 %incdec.ptr.i.i.i.i228 = getelementptr inbounds i8, ptr %183, i64 -48 @@ -2362,7 +2366,8 @@ cleanup267.critedge73.i: ; preds = %cleanup34.i br i1 %tobool.i.i188, label %invoke.cont3.i189, label %_ZN6google8protobuf13json_internal12_GLOBAL__N_110ParseValueINS1_21ParseProto2DescriptorEEEN4absl12lts_202308026StatusERNS1_9JsonLexerERKNT_4DescERNSA_3MsgE.exit invoke.cont3.i189: ; preds = %cleanup267.critedge73.i - %215 = load ptr, ptr %pop154.i.sink791.sroa.gep, align 8 + %215 = getelementptr inbounds nuw i8, ptr %pop.i, i64 8 + %215 = load ptr, ptr %callback_buffer_.i.i.i.i190, align 8 %_M_finish.i.i.i.i191 = getelementptr inbounds nuw i8, ptr %215, i64 8 %216 = load ptr, ptr %_M_finish.i.i.i.i191, align 8 %incdec.ptr.i.i.i.i192 = getelementptr inbounds i8, ptr %216, i64 -48 @@ -2377,7 +2382,8 @@ cleanup267.critedge74.i: ; preds = %cleanup77.i38 br i1 %tobool.i.i182, label %invoke.cont3.i183, label %_ZN6google8protobuf13json_internal12_GLOBAL__N_110ParseValueINS1_21ParseProto2DescriptorEEEN4absl12lts_202308026StatusERNS1_9JsonLexerERKNT_4DescERNSA_3MsgE.exit invoke.cont3.i183: ; preds = %cleanup267.critedge74.i - %218 = load ptr, ptr %pop154.i.sink791.sroa.gep812, align 8 + %218 = getelementptr inbounds nuw i8, ptr %pop52.i, i64 8 + %218 = load ptr, ptr %callback_buffer_.i.i.i.i184, align 8 %_M_finish.i.i.i.i185 = getelementptr inbounds nuw i8, ptr %218, i64 8 %219 = load ptr, ptr %_M_finish.i.i.i.i185, align 8 %incdec.ptr.i.i.i.i186 = getelementptr inbounds i8, ptr %219, i64 -48 @@ -2392,7 +2398,8 @@ cleanup267.critedge75.i: ; preds = %cleanup125.i br i1 %tobool.i.i176, label %invoke.cont3.i177, label %_ZN6google8protobuf13json_internal12_GLOBAL__N_110ParseValueINS1_21ParseProto2DescriptorEEEN4absl12lts_202308026StatusERNS1_9JsonLexerERKNT_4DescERNSA_3MsgE.exit invoke.cont3.i177: ; preds = %cleanup267.critedge75.i - %221 = load ptr, ptr %pop154.i.sink791.sroa.gep813, align 8 + %221 = getelementptr inbounds nuw i8, ptr %pop101.i, i64 8 + %221 = load ptr, ptr %callback_buffer_.i.i.i.i178, align 8 %_M_finish.i.i.i.i179 = getelementptr inbounds nuw i8, ptr %221, i64 8 %222 = load ptr, ptr %_M_finish.i.i.i.i179, align 8 %incdec.ptr.i.i.i.i180 = getelementptr inbounds i8, ptr %222, i64 -48 @@ -2406,7 +2413,8 @@ cleanup267.critedge77.i: ; preds = %cleanup205.i, %clea br i1 %tobool.i.i175, label %invoke.cont3.i, label %_ZN6google8protobuf13json_internal12_GLOBAL__N_110ParseValueINS1_21ParseProto2DescriptorEEEN4absl12lts_202308026StatusERNS1_9JsonLexerERKNT_4DescERNSA_3MsgE.exit invoke.cont3.i: ; preds = %cleanup267.critedge77.i - %224 = load ptr, ptr %pop154.i.sink791.sroa.gep814, align 8 + %224 = getelementptr inbounds nuw i8, ptr %pop154.i, i64 8 + %224 = load ptr, ptr %callback_buffer_.i.i.i.i, align 8 %_M_finish.i.i.i.i = getelementptr inbounds nuw i8, ptr %224, i64 8 %225 = load ptr, ptr %_M_finish.i.i.i.i, align 8 %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %225, i64 -48 @@ -4135,10 +4143,6 @@ entry: %3 = extractvalue { i64, ptr } %call2.i, 0 %4 = extractvalue { i64, ptr } %call2.i, 1 %call1 = tail call noundef i32 @_ZN6google8protobuf13json_internal15ClassifyMessageESt17basic_string_viewIcSt11char_traitsIcEE(i64 %3, ptr %4) - %pop147.i.sink825.sroa.gep = getelementptr inbounds nuw i8, ptr %pop.i, i64 8 - %pop147.i.sink825.sroa.gep844 = getelementptr inbounds nuw i8, ptr %pop48.i, i64 8 - %pop147.i.sink825.sroa.gep845 = getelementptr inbounds nuw i8, ptr %pop95.i, i64 8 - %pop147.i.sink825.sroa.gep846 = getelementptr inbounds nuw i8, ptr %pop147.i, i64 8 br i1 %any_reparse, label %cleanup.i49, label %if.then if.then: ; preds = %entry @@ -5219,10 +5223,12 @@ nrvo.unused33.i: ; preds = %cleanup31.i cleanup40.i: ; preds = %nrvo.unused33.i %131 = load i8, ptr %pop.i, align 8 %tobool.i.i330 = trunc i8 %131 to i1 + %pop147.i.sink825.sroa.gep = getelementptr inbounds nuw i8, ptr %pop.i, i64 8 br i1 %tobool.i.i330, label %sw.epilog.i.sink.split, label %sw.epilog.i invoke.cont3.i325: ; preds = %lpad23.i - %132 = load ptr, ptr %pop147.i.sink825.sroa.gep, align 8 + %132 = getelementptr inbounds nuw i8, ptr %pop.i, i64 8 + %132 = load ptr, ptr %callback_buffer_.i.i.i.i326, align 8 %_M_finish.i.i.i.i327 = getelementptr inbounds nuw i8, ptr %132, i64 8 %133 = load ptr, ptr %_M_finish.i.i.i.i327, align 8 %incdec.ptr.i.i.i.i328 = getelementptr inbounds i8, ptr %133, i64 -48 @@ -5319,6 +5325,7 @@ cleanup84.i: ; preds = %invoke.cont81.i call void @_ZN4absl12lts_202308028StatusOrIN6google8protobuf13json_internal12LocationWithIdEEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %number.i) #24 %155 = load i8, ptr %pop48.i, align 8 %tobool.i.i302 = trunc i8 %155 to i1 + %pop147.i.sink825.sroa.gep844 = getelementptr inbounds nuw i8, ptr %pop48.i, i64 8 br i1 %tobool.i.i302, label %sw.epilog.i.sink.split, label %sw.epilog.i ehcleanup88.i: ; preds = %lpad64.i36, %lpad59.i @@ -5328,7 +5335,8 @@ ehcleanup88.i: ; preds = %lpad64.i36, %lpad59 br i1 %tobool.i.i296, label %invoke.cont3.i297, label %ehcleanup257.i invoke.cont3.i297: ; preds = %ehcleanup88.i - %157 = load ptr, ptr %pop147.i.sink825.sroa.gep844, align 8 + %157 = getelementptr inbounds nuw i8, ptr %pop48.i, i64 8 + %157 = load ptr, ptr %callback_buffer_.i.i.i.i298, align 8 %_M_finish.i.i.i.i299 = getelementptr inbounds nuw i8, ptr %157, i64 8 %158 = load ptr, ptr %_M_finish.i.i.i.i299, align 8 %incdec.ptr.i.i.i.i300 = getelementptr inbounds i8, ptr %158, i64 -48 @@ -5431,6 +5439,7 @@ cleanup136.i: ; preds = %invoke.cont132.i call void @_ZN4absl12lts_202308028StatusOrIN6google8protobuf13json_internal12LocationWithINS4_16MaybeOwnedStringEEEED2Ev(ptr noundef nonnull align 8 dereferenceable(88) %str.i) #24 %181 = load i8, ptr %pop95.i, align 8 %tobool.i.i276 = trunc i8 %181 to i1 + %pop147.i.sink825.sroa.gep845 = getelementptr inbounds nuw i8, ptr %pop95.i, i64 8 br i1 %tobool.i.i276, label %sw.epilog.i.sink.split, label %sw.epilog.i ehcleanup140.i: ; preds = %lpad111.i, %lpad106.i @@ -5440,7 +5449,8 @@ ehcleanup140.i: ; preds = %lpad111.i, %lpad106 br i1 %tobool.i.i270, label %invoke.cont3.i271, label %ehcleanup257.i invoke.cont3.i271: ; preds = %ehcleanup140.i - %183 = load ptr, ptr %pop147.i.sink825.sroa.gep845, align 8 + %183 = getelementptr inbounds nuw i8, ptr %pop95.i, i64 8 + %183 = load ptr, ptr %callback_buffer_.i.i.i.i272, align 8 %_M_finish.i.i.i.i273 = getelementptr inbounds nuw i8, ptr %183, i64 8 %184 = load ptr, ptr %_M_finish.i.i.i.i273, align 8 %incdec.ptr.i.i.i.i274 = getelementptr inbounds i8, ptr %184, i64 -48 @@ -5530,10 +5540,12 @@ nrvo.unused198.i.invoke: ; preds = %cleanup196.i, %clea cleanup207.i: ; preds = %nrvo.unused198.i.invoke %203 = load i8, ptr %pop147.i, align 8 %tobool.i.i248 = trunc i8 %203 to i1 + %pop147.i.sink825.sroa.gep846 = getelementptr inbounds nuw i8, ptr %pop147.i, i64 8 br i1 %tobool.i.i248, label %sw.epilog.i.sink.split, label %sw.epilog.i invoke.cont3.i243: ; preds = %lpad158.i - %204 = load ptr, ptr %pop147.i.sink825.sroa.gep846, align 8 + %204 = getelementptr inbounds nuw i8, ptr %pop147.i, i64 8 + %204 = load ptr, ptr %callback_buffer_.i.i.i.i244, align 8 %_M_finish.i.i.i.i245 = getelementptr inbounds nuw i8, ptr %204, i64 8 %205 = load ptr, ptr %_M_finish.i.i.i.i245, align 8 %incdec.ptr.i.i.i.i246 = getelementptr inbounds i8, ptr %205, i64 -48 @@ -5698,7 +5710,8 @@ cleanup256.critedge73.i: ; preds = %cleanup31.i br i1 %tobool.i.i200, label %invoke.cont3.i201, label %_ZN6google8protobuf13json_internal12_GLOBAL__N_110ParseValueINS1_15ParseProto3TypeEEEN4absl12lts_202308026StatusERNS1_9JsonLexerERKNT_4DescERNSA_3MsgE.exit invoke.cont3.i201: ; preds = %cleanup256.critedge73.i - %247 = load ptr, ptr %pop147.i.sink825.sroa.gep, align 8 + %247 = getelementptr inbounds nuw i8, ptr %pop.i, i64 8 + %247 = load ptr, ptr %callback_buffer_.i.i.i.i202, align 8 %_M_finish.i.i.i.i203 = getelementptr inbounds nuw i8, ptr %247, i64 8 %248 = load ptr, ptr %_M_finish.i.i.i.i203, align 8 %incdec.ptr.i.i.i.i204 = getelementptr inbounds i8, ptr %248, i64 -48 @@ -5713,7 +5726,8 @@ cleanup256.critedge74.i: ; preds = %cleanup72.i br i1 %tobool.i.i194, label %invoke.cont3.i195, label %_ZN6google8protobuf13json_internal12_GLOBAL__N_110ParseValueINS1_15ParseProto3TypeEEEN4absl12lts_202308026StatusERNS1_9JsonLexerERKNT_4DescERNSA_3MsgE.exit invoke.cont3.i195: ; preds = %cleanup256.critedge74.i - %250 = load ptr, ptr %pop147.i.sink825.sroa.gep844, align 8 + %250 = getelementptr inbounds nuw i8, ptr %pop48.i, i64 8 + %250 = load ptr, ptr %callback_buffer_.i.i.i.i196, align 8 %_M_finish.i.i.i.i197 = getelementptr inbounds nuw i8, ptr %250, i64 8 %251 = load ptr, ptr %_M_finish.i.i.i.i197, align 8 %incdec.ptr.i.i.i.i198 = getelementptr inbounds i8, ptr %251, i64 -48 @@ -5728,7 +5742,8 @@ cleanup256.critedge75.i: ; preds = %cleanup119.i br i1 %tobool.i.i188, label %invoke.cont3.i189, label %_ZN6google8protobuf13json_internal12_GLOBAL__N_110ParseValueINS1_15ParseProto3TypeEEEN4absl12lts_202308026StatusERNS1_9JsonLexerERKNT_4DescERNSA_3MsgE.exit invoke.cont3.i189: ; preds = %cleanup256.critedge75.i - %253 = load ptr, ptr %pop147.i.sink825.sroa.gep845, align 8 + %253 = getelementptr inbounds nuw i8, ptr %pop95.i, i64 8 + %253 = load ptr, ptr %callback_buffer_.i.i.i.i190, align 8 %_M_finish.i.i.i.i191 = getelementptr inbounds nuw i8, ptr %253, i64 8 %254 = load ptr, ptr %_M_finish.i.i.i.i191, align 8 %incdec.ptr.i.i.i.i192 = getelementptr inbounds i8, ptr %254, i64 -48 @@ -5742,7 +5757,8 @@ cleanup256.critedge77.i: ; preds = %cleanup196.i, %clea br i1 %tobool.i.i187, label %invoke.cont3.i, label %_ZN6google8protobuf13json_internal12_GLOBAL__N_110ParseValueINS1_15ParseProto3TypeEEEN4absl12lts_202308026StatusERNS1_9JsonLexerERKNT_4DescERNSA_3MsgE.exit invoke.cont3.i: ; preds = %cleanup256.critedge77.i - %256 = load ptr, ptr %pop147.i.sink825.sroa.gep846, align 8 + %256 = getelementptr inbounds nuw i8, ptr %pop147.i, i64 8 + %256 = load ptr, ptr %callback_buffer_.i.i.i.i, align 8 %_M_finish.i.i.i.i = getelementptr inbounds nuw i8, ptr %256, i64 8 %257 = load ptr, ptr %_M_finish.i.i.i.i, align 8 %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %257, i64 -48 diff --git a/bench/proxygen/optimized/Logging.ll b/bench/proxygen/optimized/Logging.ll index 1294689c0b5..7f6eea7d52c 100644 --- a/bench/proxygen/optimized/Logging.ll +++ b/bench/proxygen/optimized/Logging.ll @@ -1585,9 +1585,6 @@ entry: %sign3 = getelementptr inbounds nuw i8, ptr %arg, i64 18 %2 = load i8, ptr %sign3, align 2 %cmp4 = icmp eq i8 %2, 0 - %bufLen.addr.2.i.sroa.gep = getelementptr inbounds nuw i8, ptr %valBuf, i64 64 - %bufLen.addr.2.i.sroa.gep93 = getelementptr inbounds nuw i8, ptr %valBuf, i64 65 - %bufLen.addr.2.i.sroa.gep94 = getelementptr inbounds nuw i8, ptr %valBuf, i64 66 br i1 %cmp4, label %_ZNK5folly9FormatArg7enforceIbJRA52_KcEEEvRKT_DpOT0_.exit, label %if.then.i if.then.i: ; preds = %entry @@ -1766,24 +1763,27 @@ _ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit66: ; preds = %arrayidx.i.i28.i = getelementptr inbounds nuw [512 x %"struct.std::array.11"], ptr @_ZN5folly6detail11formatOctalE, i64 0, i64 %conv18.i %arrayidx.i.i29.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i28.i, i64 2 %20 = load i8, ptr %arrayidx.i.i29.i, align 1 - store i8 %20, ptr %bufLen.addr.2.i.sroa.gep94, align 2 + %arrayidx21.i = getelementptr inbounds nuw i8, ptr %valBuf, i64 66 + store i8 %20, ptr %arrayidx21.i, align 2 %cmp.i = icmp ugt i8 %1, 7 br i1 %cmp.i, label %if.end.i, label %_ZN5folly6detail11uintToOctalIhEEmPcmT_.exit if.end.i: ; preds = %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit66 %arrayidx.i.i31.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i28.i, i64 1 %21 = load i8, ptr %arrayidx.i.i31.i, align 1 - store i8 %21, ptr %bufLen.addr.2.i.sroa.gep93, align 1 + %arrayidx27.i = getelementptr inbounds nuw i8, ptr %valBuf, i64 65 + store i8 %21, ptr %arrayidx27.i, align 1 %cmp29.i = icmp ugt i8 %1, 63 br i1 %cmp29.i, label %if.then30.i, label %_ZN5folly6detail11uintToOctalIhEEmPcmT_.exit if.then30.i: ; preds = %if.end.i %22 = load i8, ptr %arrayidx.i.i28.i, align 1 - store i8 %22, ptr %bufLen.addr.2.i.sroa.gep, align 16 + %arrayidx35.i = getelementptr inbounds nuw i8, ptr %valBuf, i64 64 + store i8 %22, ptr %arrayidx35.i, align 16 br label %_ZN5folly6detail11uintToOctalIhEEmPcmT_.exit _ZN5folly6detail11uintToOctalIhEEmPcmT_.exit: ; preds = %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit66, %if.end.i, %if.then30.i - %bufLen.addr.2.i.sroa.phi = phi ptr [ %bufLen.addr.2.i.sroa.gep, %if.then30.i ], [ %bufLen.addr.2.i.sroa.gep93, %if.end.i ], [ %bufLen.addr.2.i.sroa.gep94, %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit66 ] + %bufLen.addr.2.i.sroa.phi = phi ptr [ %arrayidx35.i, %if.then30.i ], [ %arrayidx27.i, %if.end.i ], [ %arrayidx21.i, %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit66 ] %basePrefix57 = getelementptr inbounds nuw i8, ptr %arg, i64 19 %23 = load i8, ptr %basePrefix57, align 1 %tobool58 = trunc i8 %23 to i1 @@ -1811,17 +1811,19 @@ _ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit70: ; preds = %arrayidx.i.i22.i.i = getelementptr inbounds nuw [256 x %"struct.std::array.13"], ptr @_ZN5folly6detail14formatHexLowerE, i64 0, i64 %conv13.i.i %arrayidx.i.i23.i.i = getelementptr inbounds nuw i8, ptr %arrayidx.i.i22.i.i, i64 1 %26 = load i8, ptr %arrayidx.i.i23.i.i, align 1 - store i8 %26, ptr %bufLen.addr.2.i.sroa.gep94, align 2 + %arrayidx16.i.i = getelementptr inbounds nuw i8, ptr %valBuf, i64 66 + store i8 %26, ptr %arrayidx16.i.i, align 2 %cmp.i.i = icmp ugt i8 %1, 15 br i1 %cmp.i.i, label %if.then.i.i, label %_ZN5folly6detail14uintToHexLowerIhEEmPcmT_.exit if.then.i.i: ; preds = %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit70 %27 = load i8, ptr %arrayidx.i.i22.i.i, align 1 - store i8 %27, ptr %bufLen.addr.2.i.sroa.gep93, align 1 + %arrayidx22.i.i = getelementptr inbounds nuw i8, ptr %valBuf, i64 65 + store i8 %27, ptr %arrayidx22.i.i, align 1 br label %_ZN5folly6detail14uintToHexLowerIhEEmPcmT_.exit _ZN5folly6detail14uintToHexLowerIhEEmPcmT_.exit: ; preds = %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit70, %if.then.i.i - %bufLen.addr.1.i.i.sroa.phi = phi ptr [ %bufLen.addr.2.i.sroa.gep93, %if.then.i.i ], [ %bufLen.addr.2.i.sroa.gep94, %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit70 ] + %bufLen.addr.1.i.i.sroa.phi = phi ptr [ %arrayidx22.i.i, %if.then.i.i ], [ %arrayidx16.i.i, %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit70 ] %basePrefix72 = getelementptr inbounds nuw i8, ptr %arg, i64 19 %28 = load i8, ptr %basePrefix72, align 1 %tobool73 = trunc i8 %28 to i1 @@ -1851,17 +1853,19 @@ _ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit74: ; preds = %arrayidx.i.i22.i.i76 = getelementptr inbounds nuw [256 x %"struct.std::array.13"], ptr @_ZN5folly6detail14formatHexUpperE, i64 0, i64 %conv13.i.i75 %arrayidx.i.i23.i.i77 = getelementptr inbounds nuw i8, ptr %arrayidx.i.i22.i.i76, i64 1 %31 = load i8, ptr %arrayidx.i.i23.i.i77, align 1 - store i8 %31, ptr %bufLen.addr.2.i.sroa.gep94, align 2 + %arrayidx16.i.i78 = getelementptr inbounds nuw i8, ptr %valBuf, i64 66 + store i8 %31, ptr %arrayidx16.i.i78, align 2 %cmp.i.i79 = icmp ugt i8 %1, 15 br i1 %cmp.i.i79, label %if.then.i.i81, label %_ZN5folly6detail14uintToHexUpperIhEEmPcmT_.exit if.then.i.i81: ; preds = %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit74 %32 = load i8, ptr %arrayidx.i.i22.i.i76, align 1 - store i8 %32, ptr %bufLen.addr.2.i.sroa.gep93, align 1 + %arrayidx22.i.i82 = getelementptr inbounds nuw i8, ptr %valBuf, i64 65 + store i8 %32, ptr %arrayidx22.i.i82, align 1 br label %_ZN5folly6detail14uintToHexUpperIhEEmPcmT_.exit _ZN5folly6detail14uintToHexUpperIhEEmPcmT_.exit: ; preds = %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit74, %if.then.i.i81 - %bufLen.addr.1.i.i80.sroa.phi = phi ptr [ %bufLen.addr.2.i.sroa.gep93, %if.then.i.i81 ], [ %bufLen.addr.2.i.sroa.gep94, %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit74 ] + %bufLen.addr.1.i.i80.sroa.phi = phi ptr [ %arrayidx22.i.i82, %if.then.i.i81 ], [ %arrayidx16.i.i78, %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit74 ] %basePrefix89 = getelementptr inbounds nuw i8, ptr %arg, i64 19 %33 = load i8, ptr %basePrefix89, align 1 %tobool90 = trunc i8 %33 to i1 @@ -1899,7 +1903,8 @@ for.body.us.i: ; preds = %_ZNK5folly9FormatAr br label %while.cond.i if.then.i88: ; preds = %_ZNK5folly9FormatArg7enforceIbJRA45_KcRcRA12_S2_EEEvRKT_DpOT0_.exit86 - store i8 48, ptr %bufLen.addr.2.i.sroa.gep94, align 2 + %arrayidx.i = getelementptr inbounds nuw i8, ptr %valBuf, i64 66 + store i8 48, ptr %arrayidx.i, align 2 br label %_ZN5folly6detail12uintToBinaryIhEEmPcmT_.exit while.cond.i: ; preds = %while.cond.i, %for.body.us.i diff --git a/bench/pyo3-rs/optimized/249pdmmr5286g8h9.ll b/bench/pyo3-rs/optimized/249pdmmr5286g8h9.ll index ac36bdfac37..a076d8c33c5 100644 --- a/bench/pyo3-rs/optimized/249pdmmr5286g8h9.ll +++ b/bench/pyo3-rs/optimized/249pdmmr5286g8h9.ll @@ -1296,27 +1296,27 @@ define zeroext i1 @"_ZN85_$LT$pyo3_build_config..impl_..PythonImplementation$u20 unreachable 8: ; preds = %2 - %.sink8.sroa.gep22 = getelementptr inbounds nuw i8, ptr %5, i64 24 - %.sink8.sroa.gep18 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %.sink8.sroa.gep14 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %.sink8.sroa.gep10 = getelementptr inbounds nuw i8, ptr %5, i64 8 store ptr @anon.ca6e988e113f9f3b293ee61d3a823dd5.68, ptr %5, align 8 + %.sink8.sroa.gep10 = getelementptr inbounds nuw i8, ptr %5, i64 8 + %.sink8.sroa.gep14 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %.sink8.sroa.gep18 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %.sink8.sroa.gep22 = getelementptr inbounds nuw i8, ptr %5, i64 24 br label %11 9: ; preds = %2 - %.sink8.sroa.gep21 = getelementptr inbounds nuw i8, ptr %4, i64 24 - %.sink8.sroa.gep17 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %.sink8.sroa.gep13 = getelementptr inbounds nuw i8, ptr %4, i64 32 - %.sink8.sroa.gep9 = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr @anon.ca6e988e113f9f3b293ee61d3a823dd5.70, ptr %4, align 8 + %.sink8.sroa.gep9 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %.sink8.sroa.gep13 = getelementptr inbounds nuw i8, ptr %4, i64 32 + %.sink8.sroa.gep17 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %.sink8.sroa.gep21 = getelementptr inbounds nuw i8, ptr %4, i64 24 br label %11 10: ; preds = %2 - %.sink8.sroa.gep20 = getelementptr inbounds nuw i8, ptr %3, i64 24 - %.sink8.sroa.gep16 = getelementptr inbounds nuw i8, ptr %3, i64 16 - %.sink8.sroa.gep12 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %.sink8.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 8 store ptr @anon.ca6e988e113f9f3b293ee61d3a823dd5.72, ptr %3, align 8 + %.sink8.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 8 + %.sink8.sroa.gep12 = getelementptr inbounds nuw i8, ptr %3, i64 32 + %.sink8.sroa.gep16 = getelementptr inbounds nuw i8, ptr %3, i64 16 + %.sink8.sroa.gep20 = getelementptr inbounds nuw i8, ptr %3, i64 24 br label %11 11: ; preds = %10, %9, %8 @@ -2136,22 +2136,22 @@ define zeroext i1 @"_ZN74_$LT$pyo3_build_config..impl_..BuildFlag$u20$as$u20$cor br i1 %10, label %11, label %12 11: ; preds = %2 - %.sink18.sroa.gep29 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sink17.sroa.gep28 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %.sink17.sroa.gep25 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %.sink17.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %.sink17.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 8 store ptr %0, ptr %7, align 8 store ptr %7, ptr %5, align 8 + %.sink17.sroa.gep19 = getelementptr inbounds nuw i8, ptr %6, i64 8 + %.sink17.sroa.gep22 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %.sink17.sroa.gep25 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %.sink17.sroa.gep28 = getelementptr inbounds nuw i8, ptr %6, i64 24 + %.sink18.sroa.gep29 = getelementptr inbounds nuw i8, ptr %5, i64 8 br label %13 12: ; preds = %2 - %.sink18.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 8 - %.sink17.sroa.gep27 = getelementptr inbounds nuw i8, ptr %4, i64 24 - %.sink17.sroa.gep24 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %.sink17.sroa.gep21 = getelementptr inbounds nuw i8, ptr %4, i64 32 - %.sink17.sroa.gep = getelementptr inbounds nuw i8, ptr %4, i64 8 store ptr %8, ptr %3, align 8 + %.sink17.sroa.gep = getelementptr inbounds nuw i8, ptr %4, i64 8 + %.sink17.sroa.gep21 = getelementptr inbounds nuw i8, ptr %4, i64 32 + %.sink17.sroa.gep24 = getelementptr inbounds nuw i8, ptr %4, i64 16 + %.sink17.sroa.gep27 = getelementptr inbounds nuw i8, ptr %4, i64 24 + %.sink18.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 8 br label %13 13: ; preds = %12, %11 @@ -5026,14 +5026,6 @@ define hidden void @_ZN17pyo3_build_config5impl_8unescape17he2c6557a5c517beaE(pt %10 = alloca [48 x i8], align 8 %11 = and i64 %2, 1 %12 = icmp eq i64 %11, 0 - %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %4, i64 8 - %.sink.sroa.gep15 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %.sink.sroa.gep17 = getelementptr inbounds nuw i8, ptr %4, i64 32 - %.sink.sroa.gep18 = getelementptr inbounds nuw i8, ptr %5, i64 32 - %.sink.sroa.gep20 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %.sink.sroa.gep21 = getelementptr inbounds nuw i8, ptr %5, i64 16 - %.sink.sroa.gep23 = getelementptr inbounds nuw i8, ptr %4, i64 24 - %.sink.sroa.gep24 = getelementptr inbounds nuw i8, ptr %5, i64 24 br i1 %12, label %13, label %20 13: ; preds = %3 @@ -5127,12 +5119,26 @@ define hidden void @_ZN17pyo3_build_config5impl_8unescape17he2c6557a5c517beaE(pt %47 = add nsw i8 %42, -87 br label %50 -.invoke9: ; preds = %44, %56 - %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %56 ], [ %.sink.sroa.gep15, %44 ] - %.sink.sroa.phi16 = phi ptr [ %.sink.sroa.gep17, %56 ], [ %.sink.sroa.gep18, %44 ] - %.sink.sroa.phi19 = phi ptr [ %.sink.sroa.gep20, %56 ], [ %.sink.sroa.gep21, %44 ] - %.sink.sroa.phi22 = phi ptr [ %.sink.sroa.gep23, %56 ], [ %.sink.sroa.gep24, %44 ] - %.sink = phi ptr [ %4, %56 ], [ %5, %44 ] +.invoke9: ; preds = %44 + %.sink.sroa.phi = getelementptr inbounds nuw i8, ptr %5, i64 8 + %.sink.sroa.phi16 = getelementptr inbounds nuw i8, ptr %5, i64 32 + %.sink.sroa.phi19 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %.sink.sroa.phi22 = getelementptr inbounds nuw i8, ptr %5, i64 24 + br label %.invoke9 + +.invoke9.split.loop.exit25: ; preds = %56 + %.sink.sroa.gep.le = getelementptr inbounds nuw i8, ptr %4, i64 8 + %.sink.sroa.gep17.le = getelementptr inbounds nuw i8, ptr %4, i64 32 + %.sink.sroa.gep20.le = getelementptr inbounds nuw i8, ptr %4, i64 16 + %.sink.sroa.gep23.le = getelementptr inbounds nuw i8, ptr %4, i64 24 + br label %.invoke9 + +.invoke9: ; preds = %.invoke9.split.loop.exit25, %.invoke9.split.loop.exit + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep15.le, %.invoke9.split.loop.exit ], [ %.sink.sroa.gep.le, %.invoke9.split.loop.exit25 ] + %.sink.sroa.phi16 = phi ptr [ %.sink.sroa.gep18.le, %.invoke9.split.loop.exit ], [ %.sink.sroa.gep17.le, %.invoke9.split.loop.exit25 ] + %.sink.sroa.phi19 = phi ptr [ %.sink.sroa.gep21.le, %.invoke9.split.loop.exit ], [ %.sink.sroa.gep20.le, %.invoke9.split.loop.exit25 ] + %.sink.sroa.phi22 = phi ptr [ %.sink.sroa.gep24.le, %.invoke9.split.loop.exit ], [ %.sink.sroa.gep23.le, %.invoke9.split.loop.exit25 ] + %.sink = phi ptr [ %5, %.invoke9.split.loop.exit ], [ %4, %.invoke9.split.loop.exit25 ] store ptr @anon.ca6e988e113f9f3b293ee61d3a823dd5.160, ptr %.sink, align 8 store i64 1, ptr %.sink.sroa.phi, align 8 store ptr null, ptr %.sink.sroa.phi16, align 8 @@ -5171,7 +5177,7 @@ define hidden void @_ZN17pyo3_build_config5impl_8unescape17he2c6557a5c517beaE(pt 56: ; preds = %52 %57 = add i8 %54, -48 %or.cond1.i5 = icmp ult i8 %57, 10 - br i1 %or.cond1.i5, label %60, label %.invoke9 + br i1 %or.cond1.i5, label %60, label %.invoke9.split.loop.exit25 58: ; preds = %52 %59 = add nsw i8 %54, -87 diff --git a/bench/pyo3-rs/optimized/2c6t2zmseyyrmc3o.ll b/bench/pyo3-rs/optimized/2c6t2zmseyyrmc3o.ll index a19aeec4935..2aaf46f1560 100644 --- a/bench/pyo3-rs/optimized/2c6t2zmseyyrmc3o.ll +++ b/bench/pyo3-rs/optimized/2c6t2zmseyyrmc3o.ll @@ -6375,9 +6375,6 @@ define internal fastcc void @_ZN17pyo3_build_config5impl_14search_lib_dir17h3022 store ptr inttoptr (i64 8 to ptr), ptr %28, align 8 %29 = getelementptr inbounds nuw i8, ptr %27, i64 16 store i64 0, ptr %29, align 8 - %.sink140.sroa.gep = getelementptr inbounds nuw i8, ptr %13, i64 32 - %.sink140.sroa.gep141 = getelementptr inbounds nuw i8, ptr %17, i64 32 - %.sink140.sroa.gep142 = getelementptr inbounds nuw i8, ptr %11, i64 32 %30 = invoke { ptr, i64 } @"_ZN82_$LT$std..path..PathBuf$u20$as$u20$core..convert..AsRef$LT$std..path..Path$GT$$GT$6as_ref17h61482c5eeae77637E"(ptr nonnull align 8 %1) to label %34 unwind label %32 @@ -6709,10 +6706,22 @@ define internal fastcc void @_ZN17pyo3_build_config5impl_14search_lib_dir17h3022 invoke void @"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hab6cb1eb31f61c0eE"(ptr nonnull align 8 %18) to label %194 unwind label %.loopexit127 -154: ; preds = %150, %191, %187 - %.sink140.sroa.phi = phi ptr [ %.sink140.sroa.gep, %187 ], [ %.sink140.sroa.gep141, %191 ], [ %.sink140.sroa.gep142, %150 ] - %.lcssa137.sink = phi i64 [ %188, %187 ], [ %192, %191 ], [ %151, %150 ] - %.sink139 = phi ptr [ %49, %187 ], [ %50, %191 ], [ %46, %150 ] +154: ; preds = %150 + %.sink140.sroa.phi = getelementptr inbounds nuw i8, ptr %11, i64 32 + br label %154 + +.split.loop.exit143: ; preds = %191 + %.sink140.sroa.gep141.le = getelementptr inbounds nuw i8, ptr %17, i64 32 + br label %154 + +.split.loop.exit147: ; preds = %187 + %.sink140.sroa.gep.le = getelementptr inbounds nuw i8, ptr %13, i64 32 + br label %154 + +154: ; preds = %.split.loop.exit147, %.split.loop.exit143, %.split.loop.exit + %.sink140.sroa.phi = phi ptr [ %.sink140.sroa.gep142.le, %.split.loop.exit ], [ %.sink140.sroa.gep141.le, %.split.loop.exit143 ], [ %.sink140.sroa.gep.le, %.split.loop.exit147 ] + %.lcssa137.sink = phi i64 [ %151, %.split.loop.exit ], [ %192, %.split.loop.exit143 ], [ %188, %.split.loop.exit147 ] + %.sink139 = phi ptr [ %46, %.split.loop.exit ], [ %50, %.split.loop.exit143 ], [ %49, %.split.loop.exit147 ] %.sroa.384.0.copyload = load i64, ptr %.sink140.sroa.phi, align 8 store i64 %.lcssa137.sink, ptr %0, align 8 %.sroa.286.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -6804,7 +6813,7 @@ define internal fastcc void @_ZN17pyo3_build_config5impl_14search_lib_dir17h3022 187: ; preds = %186 %188 = load i64, ptr %13, align 8 %189 = icmp eq i64 %188, -9223372036854775808 - br i1 %189, label %153, label %154 + br i1 %189, label %153, label %.split.loop.exit147 190: ; preds = %111 invoke fastcc void @_ZN17pyo3_build_config5impl_14search_lib_dir17h302295dbb6df46ecE(ptr noalias align 8 %17, ptr align 8 %16, ptr align 8 %2) @@ -6813,7 +6822,7 @@ define internal fastcc void @_ZN17pyo3_build_config5impl_14search_lib_dir17h3022 191: ; preds = %190 %192 = load i64, ptr %17, align 8 %193 = icmp eq i64 %192, -9223372036854775808 - br i1 %193, label %153, label %154 + br i1 %193, label %153, label %.split.loop.exit143 194: ; preds = %153 invoke void @"_ZN4core3ptr47drop_in_place$LT$std..ffi..os_str..OsString$GT$17h213b2d4b9e57589cE"(ptr nonnull align 8 %19) @@ -6922,9 +6931,6 @@ define hidden void @_ZN17pyo3_build_config5impl_14search_lib_dir17h9f792e7d73183 store ptr inttoptr (i64 8 to ptr), ptr %29, align 8 %30 = getelementptr inbounds nuw i8, ptr %27, i64 16 store i64 0, ptr %30, align 8 - %.sink140.sroa.gep = getelementptr inbounds nuw i8, ptr %13, i64 32 - %.sink140.sroa.gep141 = getelementptr inbounds nuw i8, ptr %17, i64 32 - %.sink140.sroa.gep142 = getelementptr inbounds nuw i8, ptr %11, i64 32 %31 = invoke { ptr, i64 } @"_ZN55_$LT$$RF$T$u20$as$u20$core..convert..AsRef$LT$U$GT$$GT$6as_ref17had12cacb55ee95fbE"(ptr nonnull align 8 %28) to label %35 unwind label %33 @@ -7255,10 +7261,22 @@ define hidden void @_ZN17pyo3_build_config5impl_14search_lib_dir17h9f792e7d73183 invoke void @"_ZN4core3ptr50drop_in_place$LT$alloc..borrow..Cow$LT$str$GT$$GT$17hab6cb1eb31f61c0eE"(ptr nonnull align 8 %18) to label %195 unwind label %.loopexit127 -155: ; preds = %151, %192, %188 - %.sink140.sroa.phi = phi ptr [ %.sink140.sroa.gep, %188 ], [ %.sink140.sroa.gep141, %192 ], [ %.sink140.sroa.gep142, %151 ] - %.lcssa137.sink = phi i64 [ %189, %188 ], [ %193, %192 ], [ %152, %151 ] - %.sink139 = phi ptr [ %50, %188 ], [ %51, %192 ], [ %47, %151 ] +155: ; preds = %151 + %.sink140.sroa.phi = getelementptr inbounds nuw i8, ptr %11, i64 32 + br label %155 + +.split.loop.exit143: ; preds = %192 + %.sink140.sroa.gep141.le = getelementptr inbounds nuw i8, ptr %17, i64 32 + br label %155 + +.split.loop.exit147: ; preds = %188 + %.sink140.sroa.gep.le = getelementptr inbounds nuw i8, ptr %13, i64 32 + br label %155 + +155: ; preds = %.split.loop.exit147, %.split.loop.exit143, %.split.loop.exit + %.sink140.sroa.phi = phi ptr [ %.sink140.sroa.gep142.le, %.split.loop.exit ], [ %.sink140.sroa.gep141.le, %.split.loop.exit143 ], [ %.sink140.sroa.gep.le, %.split.loop.exit147 ] + %.lcssa137.sink = phi i64 [ %152, %.split.loop.exit ], [ %193, %.split.loop.exit143 ], [ %189, %.split.loop.exit147 ] + %.sink139 = phi ptr [ %47, %.split.loop.exit ], [ %51, %.split.loop.exit143 ], [ %50, %.split.loop.exit147 ] %.sroa.384.0.copyload = load i64, ptr %.sink140.sroa.phi, align 8 store i64 %.lcssa137.sink, ptr %0, align 8 %.sroa.286.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -7350,7 +7368,7 @@ define hidden void @_ZN17pyo3_build_config5impl_14search_lib_dir17h9f792e7d73183 188: ; preds = %187 %189 = load i64, ptr %13, align 8 %190 = icmp eq i64 %189, -9223372036854775808 - br i1 %190, label %154, label %155 + br i1 %190, label %154, label %.split.loop.exit147 191: ; preds = %112 invoke fastcc void @_ZN17pyo3_build_config5impl_14search_lib_dir17h302295dbb6df46ecE(ptr noalias align 8 %17, ptr align 8 %16, ptr align 8 %2) @@ -7359,7 +7377,7 @@ define hidden void @_ZN17pyo3_build_config5impl_14search_lib_dir17h9f792e7d73183 192: ; preds = %191 %193 = load i64, ptr %17, align 8 %194 = icmp eq i64 %193, -9223372036854775808 - br i1 %194, label %154, label %155 + br i1 %194, label %154, label %.split.loop.exit143 195: ; preds = %154 invoke void @"_ZN4core3ptr47drop_in_place$LT$std..ffi..os_str..OsString$GT$17h213b2d4b9e57589cE"(ptr nonnull align 8 %19) diff --git a/bench/rocksdb/optimized/trace_analyzer_tool.ll b/bench/rocksdb/optimized/trace_analyzer_tool.ll index 628608dfbda..163a170003f 100644 --- a/bench/rocksdb/optimized/trace_analyzer_tool.ll +++ b/bench/rocksdb/optimized/trace_analyzer_tool.ll @@ -4608,10 +4608,6 @@ entry: %vtable = load ptr, ptr %0, align 8 %vfn = getelementptr inbounds nuw i8, ptr %vtable, i64 16 %1 = load ptr, ptr %vfn, align 8 - %ref.tmp10.sink42.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp10, i64 8 - %ref.tmp10.sink42.sroa.gep43 = getelementptr inbounds nuw i8, ptr %ref.tmp21, i64 8 - %ref.tmp8.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp8, i64 8 - %ref.tmp8.sink.sroa.gep44 = getelementptr inbounds nuw i8, ptr %ref.tmp19, i64 8 invoke void %1(ptr nonnull sret(%"class.rocksdb::Status") align 8 %s, ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %encoded_trace) to label %invoke.cont3 unwind label %lpad @@ -4747,6 +4743,8 @@ _ZN7rocksdb6StatusD2Ev.exit9: ; preds = %invoke.cont5, %_ZN7 if.then7: ; preds = %_ZN7rocksdb6StatusD2Ev.exit9 store ptr @.str.123, ptr %ref.tmp8, align 8 + %ref.tmp10.sink42.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp10, i64 8 + %ref.tmp8.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp8, i64 8 br label %if.then18.invoke if.end13: ; preds = %_ZN7rocksdb6StatusD2Ev.exit9 @@ -4784,6 +4782,8 @@ _ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_.exit: if.then18: ; preds = %_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_.exit.thread, %_ZStneIcSt11char_traitsIcESaIcEEbRKNSt7__cxx1112basic_stringIT_T0_T1_EESA_.exit store ptr @.str.124, ptr %ref.tmp19, align 8 + %ref.tmp10.sink42.sroa.gep43 = getelementptr inbounds nuw i8, ptr %ref.tmp21, i64 8 + %ref.tmp8.sink.sroa.gep44 = getelementptr inbounds nuw i8, ptr %ref.tmp19, i64 8 br label %if.then18.invoke if.then18.invoke: ; preds = %if.then7, %if.then18 @@ -5769,12 +5769,6 @@ entry: %data_loss_.i254 = getelementptr inbounds nuw i8, ptr %ref.tmp295, i64 4 %scope_.i257 = getelementptr inbounds nuw i8, ptr %ref.tmp295, i64 5 %state_.i259 = getelementptr inbounds nuw i8, ptr %ref.tmp295, i64 8 - %ref.tmp141.sink356.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp141, i64 8 - %ref.tmp141.sink356.sroa.gep359 = getelementptr inbounds nuw i8, ptr %ref.tmp207, i64 8 - %ref.tmp141.sink356.sroa.gep360 = getelementptr inbounds nuw i8, ptr %ref.tmp285, i64 8 - %ref.tmp139.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp139, i64 8 - %ref.tmp139.sink.sroa.gep361 = getelementptr inbounds nuw i8, ptr %ref.tmp205, i64 8 - %ref.tmp139.sink.sroa.gep362 = getelementptr inbounds nuw i8, ptr %ref.tmp283, i64 8 br label %for.body for.body: ; preds = %entry, %for.inc322 @@ -6159,6 +6153,8 @@ for.body131: ; preds = %if.then122, %for.in if.then138: ; preds = %for.body131 store ptr @.str.129, ptr %ref.tmp139, align 8 + %ref.tmp141.sink356.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp141, i64 8 + %ref.tmp139.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp139, i64 8 br label %if.then282.invoke if.end144: ; preds = %for.body131 @@ -6320,6 +6316,8 @@ if.then197: ; preds = %land.lhs.true194 if.then204: ; preds = %if.then197 store ptr @.str.132, ptr %ref.tmp205, align 8 + %ref.tmp141.sink356.sroa.gep359 = getelementptr inbounds nuw i8, ptr %ref.tmp207, i64 8 + %ref.tmp139.sink.sroa.gep361 = getelementptr inbounds nuw i8, ptr %ref.tmp205, i64 8 br label %if.then282.invoke if.end210: ; preds = %if.then197 @@ -6494,6 +6492,8 @@ if.then276: ; preds = %land.lhs.true269 if.then282: ; preds = %if.then276 store ptr @.str.132, ptr %ref.tmp283, align 8 + %ref.tmp141.sink356.sroa.gep360 = getelementptr inbounds nuw i8, ptr %ref.tmp285, i64 8 + %ref.tmp139.sink.sroa.gep362 = getelementptr inbounds nuw i8, ptr %ref.tmp283, i64 8 br label %if.then282.invoke if.then282.invoke: ; preds = %if.then138, %if.then204, %if.then282 @@ -7028,10 +7028,6 @@ entry: %ref.tmp158 = alloca %"struct.std::pair.183", align 8 %ref.tmp164 = alloca %"class.std::__cxx11::basic_string", align 8 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp) #26 - %ref.tmp10.sink507.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp10, i64 8 - %ref.tmp10.sink507.sroa.gep606 = getelementptr inbounds nuw i8, ptr %ref.tmp32, i64 8 - %ref.tmp7.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp7, i64 8 - %ref.tmp7.sink.sroa.gep607 = getelementptr inbounds nuw i8, ptr %ref.tmp30, i64 8 %call.i45 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %prefix) to label %call.i.noexc unwind label %lpad @@ -7108,6 +7104,8 @@ for.body: ; preds = %for.body.lr.ph, %fo if.then: ; preds = %for.body store ptr @.str.136, ptr %ref.tmp7, align 8 + %ref.tmp10.sink507.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp10, i64 8 + %ref.tmp7.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp7, i64 8 br label %if.then29.invoke lpad: ; preds = %call.i.noexc, %entry @@ -7151,6 +7149,8 @@ if.end: ; preds = %for.body if.then29: ; preds = %if.end store ptr @.str.132, ptr %ref.tmp30, align 8 + %ref.tmp10.sink507.sroa.gep606 = getelementptr inbounds nuw i8, ptr %ref.tmp32, i64 8 + %ref.tmp7.sink.sroa.gep607 = getelementptr inbounds nuw i8, ptr %ref.tmp30, i64 8 br label %if.then29.invoke if.then29.invoke: ; preds = %if.then, %if.then29 @@ -7843,18 +7843,6 @@ entry: %begin_time_ = getelementptr inbounds nuw i8, ptr %this, i64 1304 %0 = load i64, ptr %begin_time_, align 8 %cmp = icmp eq i64 %0, 0 - %ref.tmp80.sink806.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp569, i64 8 - %ref.tmp80.sink806.sroa.gep822 = getelementptr inbounds nuw i8, ptr %ref.tmp457, i64 8 - %ref.tmp80.sink806.sroa.gep823 = getelementptr inbounds nuw i8, ptr %ref.tmp80, i64 8 - %ref.tmp80.sink806.sroa.gep824 = getelementptr inbounds nuw i8, ptr %ref.tmp304, i64 8 - %ref.tmp80.sink806.sroa.gep825 = getelementptr inbounds nuw i8, ptr %ref.tmp240, i64 8 - %ref.tmp80.sink806.sroa.gep826 = getelementptr inbounds nuw i8, ptr %ref.tmp114, i64 8 - %ref.tmp78.sink807.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp567, i64 8 - %ref.tmp78.sink807.sroa.gep827 = getelementptr inbounds nuw i8, ptr %ref.tmp455, i64 8 - %ref.tmp78.sink807.sroa.gep828 = getelementptr inbounds nuw i8, ptr %ref.tmp78, i64 8 - %ref.tmp78.sink807.sroa.gep829 = getelementptr inbounds nuw i8, ptr %ref.tmp302, i64 8 - %ref.tmp78.sink807.sroa.gep830 = getelementptr inbounds nuw i8, ptr %ref.tmp238, i64 8 - %ref.tmp78.sink807.sroa.gep831 = getelementptr inbounds nuw i8, ptr %ref.tmp112, i64 8 br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %entry @@ -8136,7 +8124,7 @@ while.body: ; preds = %while.cond.preheade %time_line.3743 = phi i32 [ %inc, %cleanup ], [ %time_line.0747, %while.cond.preheader ] %call75 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %buffer_, i64 noundef 1024, ptr noundef nonnull @.str.142, i32 noundef 0) #26 %cmp76 = icmp slt i32 %call75, 0 - br i1 %cmp76, label %if.then566.invoke, label %if.end83 + br i1 %cmp76, label %if.then566.invoke.loopexit818, label %if.end83 if.end83: ; preds = %while.body call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp86) #26 @@ -8288,7 +8276,7 @@ while.end: ; preds = %cleanup, %while.con %54 = load i32, ptr %second47, align 4 %call109 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %buffer_, i64 noundef 1024, ptr noundef nonnull @.str.142, i32 noundef %54) #26 %cmp110 = icmp slt i32 %call109, 0 - br i1 %cmp110, label %if.then566.invoke, label %if.end117 + br i1 %cmp110, label %if.then566.invoke.loopexit821, label %if.end117 if.end117: ; preds = %while.end call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp121) #26 @@ -8577,7 +8565,7 @@ if.end232: ; preds = %for.body213, %_ZNSt %cur_num.1 = phi i64 [ %96, %if.then224 ], [ %cur_num.0752, %invoke.cont215 ], [ %cur_num.0752, %_ZNSt8_Rb_treeIjSt4pairIKjmESt10_Select1stIS2_ESt4lessIjESaIS2_EE14_M_lower_boundEPSt13_Rb_tree_nodeIS2_EPSt18_Rb_tree_node_baseRS1_.exit.i.i ], [ %cur_num.0752, %for.body213 ] %call235 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %buffer_, i64 noundef 1024, ptr noundef nonnull @.str.144, i64 noundef %cur_num.1, double noundef %cur_ratio.1) #26 %cmp236 = icmp slt i32 %call235, 0 - br i1 %cmp236, label %if.then566.invoke, label %if.end243 + br i1 %cmp236, label %if.then566.invoke.loopexit820, label %if.end243 if.end243: ; preds = %if.end232 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp247) #26 @@ -8718,7 +8706,7 @@ while.body286: ; preds = %while.body286.lr.ph %119 = load i32, ptr %117, align 4 %call299 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %buffer_, i64 noundef 1024, ptr noundef nonnull @.str.146, i32 noundef %118, i32 noundef %119) #26 %cmp300 = icmp slt i32 %call299, 0 - br i1 %cmp300, label %if.then566.invoke, label %if.end307 + br i1 %cmp300, label %if.then566.invoke.loopexit819, label %if.end307 if.end307: ; preds = %while.body286 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp311) #26 @@ -9140,7 +9128,7 @@ if.else444: ; preds = %for.body434 if.end452: ; preds = %if.else444, %if.then436 %ret.0 = phi i32 [ %call443, %if.then436 ], [ %call451, %if.else444 ] %cmp453 = icmp slt i32 %ret.0, 0 - br i1 %cmp453, label %if.then566.invoke, label %if.end460 + br i1 %cmp453, label %if.then566.invoke.loopexit816, label %if.end460 if.end460: ; preds = %if.end452 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp464) #26 @@ -9633,11 +9621,41 @@ for.cond524.preheader.lr.ph.split: ; preds = %for.cond524.prehead store i32 %conv, ptr %i520, align 4 br label %if.end604 -if.then566.invoke: ; preds = %while.end, %if.end232, %while.body286, %while.body, %if.end452, %if.end553.us - %ref.tmp78.sink807.sroa.phi = phi ptr [ %ref.tmp78.sink807.sroa.gep, %if.end553.us ], [ %ref.tmp78.sink807.sroa.gep827, %if.end452 ], [ %ref.tmp78.sink807.sroa.gep828, %while.body ], [ %ref.tmp78.sink807.sroa.gep829, %while.body286 ], [ %ref.tmp78.sink807.sroa.gep830, %if.end232 ], [ %ref.tmp78.sink807.sroa.gep831, %while.end ] - %ref.tmp78.sink807 = phi ptr [ %ref.tmp567, %if.end553.us ], [ %ref.tmp455, %if.end452 ], [ %ref.tmp78, %while.body ], [ %ref.tmp302, %while.body286 ], [ %ref.tmp238, %if.end232 ], [ %ref.tmp112, %while.end ] - %ref.tmp80.sink806.sroa.phi = phi ptr [ %ref.tmp80.sink806.sroa.gep, %if.end553.us ], [ %ref.tmp80.sink806.sroa.gep822, %if.end452 ], [ %ref.tmp80.sink806.sroa.gep823, %while.body ], [ %ref.tmp80.sink806.sroa.gep824, %while.body286 ], [ %ref.tmp80.sink806.sroa.gep825, %if.end232 ], [ %ref.tmp80.sink806.sroa.gep826, %while.end ] - %ref.tmp80.sink806 = phi ptr [ %ref.tmp569, %if.end553.us ], [ %ref.tmp457, %if.end452 ], [ %ref.tmp80, %while.body ], [ %ref.tmp304, %while.body286 ], [ %ref.tmp240, %if.end232 ], [ %ref.tmp114, %while.end ] +if.then566.invoke: ; preds = %if.end553.us + %ref.tmp78.sink807.sroa.phi = getelementptr inbounds nuw i8, ptr %ref.tmp569, i64 8 + %ref.tmp78.sink807 = getelementptr inbounds nuw i8, ptr %ref.tmp567, i64 8 + br label %if.then566.invoke + +if.then566.invoke.loopexit816: ; preds = %if.end452 + %ref.tmp80.sink806.sroa.gep822 = getelementptr inbounds nuw i8, ptr %ref.tmp457, i64 8 + %ref.tmp78.sink807.sroa.gep827 = getelementptr inbounds nuw i8, ptr %ref.tmp455, i64 8 + br label %if.then566.invoke + +if.then566.invoke.loopexit818: ; preds = %while.body + %ref.tmp80.sink806.sroa.gep823 = getelementptr inbounds nuw i8, ptr %ref.tmp80, i64 8 + %ref.tmp78.sink807.sroa.gep828 = getelementptr inbounds nuw i8, ptr %ref.tmp78, i64 8 + br label %if.then566.invoke + +if.then566.invoke.loopexit819: ; preds = %while.body286 + %ref.tmp80.sink806.sroa.gep824 = getelementptr inbounds nuw i8, ptr %ref.tmp304, i64 8 + %ref.tmp78.sink807.sroa.gep829 = getelementptr inbounds nuw i8, ptr %ref.tmp302, i64 8 + br label %if.then566.invoke + +if.then566.invoke.loopexit820: ; preds = %if.end232 + %ref.tmp80.sink806.sroa.gep825 = getelementptr inbounds nuw i8, ptr %ref.tmp240, i64 8 + %ref.tmp78.sink807.sroa.gep830 = getelementptr inbounds nuw i8, ptr %ref.tmp238, i64 8 + br label %if.then566.invoke + +if.then566.invoke.loopexit821: ; preds = %while.end + %ref.tmp80.sink806.sroa.gep826 = getelementptr inbounds nuw i8, ptr %ref.tmp114, i64 8 + %ref.tmp78.sink807.sroa.gep831 = getelementptr inbounds nuw i8, ptr %ref.tmp112, i64 8 + br label %if.then566.invoke + +if.then566.invoke: ; preds = %if.then566.invoke.loopexit821, %if.then566.invoke.loopexit820, %if.then566.invoke.loopexit819, %if.then566.invoke.loopexit818, %if.then566.invoke.loopexit816, %if.then566.invoke.loopexit + %ref.tmp78.sink807.sroa.phi = phi ptr [ %ref.tmp78.sink807.sroa.gep, %if.then566.invoke.loopexit ], [ %ref.tmp78.sink807.sroa.gep827, %if.then566.invoke.loopexit816 ], [ %ref.tmp78.sink807.sroa.gep828, %if.then566.invoke.loopexit818 ], [ %ref.tmp78.sink807.sroa.gep829, %if.then566.invoke.loopexit819 ], [ %ref.tmp78.sink807.sroa.gep830, %if.then566.invoke.loopexit820 ], [ %ref.tmp78.sink807.sroa.gep831, %if.then566.invoke.loopexit821 ] + %ref.tmp78.sink807 = phi ptr [ %ref.tmp567, %if.then566.invoke.loopexit ], [ %ref.tmp455, %if.then566.invoke.loopexit816 ], [ %ref.tmp78, %if.then566.invoke.loopexit818 ], [ %ref.tmp302, %if.then566.invoke.loopexit819 ], [ %ref.tmp238, %if.then566.invoke.loopexit820 ], [ %ref.tmp112, %if.then566.invoke.loopexit821 ] + %ref.tmp80.sink806.sroa.phi = phi ptr [ %ref.tmp80.sink806.sroa.gep, %if.then566.invoke.loopexit ], [ %ref.tmp80.sink806.sroa.gep822, %if.then566.invoke.loopexit816 ], [ %ref.tmp80.sink806.sroa.gep823, %if.then566.invoke.loopexit818 ], [ %ref.tmp80.sink806.sroa.gep824, %if.then566.invoke.loopexit819 ], [ %ref.tmp80.sink806.sroa.gep825, %if.then566.invoke.loopexit820 ], [ %ref.tmp80.sink806.sroa.gep826, %if.then566.invoke.loopexit821 ] + %ref.tmp80.sink806 = phi ptr [ %ref.tmp569, %if.then566.invoke.loopexit ], [ %ref.tmp457, %if.then566.invoke.loopexit816 ], [ %ref.tmp80, %if.then566.invoke.loopexit818 ], [ %ref.tmp304, %if.then566.invoke.loopexit819 ], [ %ref.tmp240, %if.then566.invoke.loopexit820 ], [ %ref.tmp114, %if.then566.invoke.loopexit821 ] store ptr @.str.129, ptr %ref.tmp78.sink807, align 8 store i64 24, ptr %ref.tmp78.sink807.sroa.phi, align 8 store ptr @.str, ptr %ref.tmp80.sink806, align 8 diff --git a/bench/ruby/optimized/process.ll b/bench/ruby/optimized/process.ll index e5c5ea789a6..3df3d9582f7 100644 --- a/bench/ruby/optimized/process.ll +++ b/bench/ruby/optimized/process.ll @@ -5046,7 +5046,6 @@ define internal fastcc range(i32 -1, -2147483648) i32 @fork_check_err(ptr nounde %10 = alloca i32, align 4 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %9) #27 %.not = icmp eq ptr %6, null - %indvars.iv.i.i.sroa.gep40 = getelementptr inbounds nuw i8, ptr %9, i64 4 br i1 %.not, label %15, label %11 11: ; preds = %7 @@ -5078,6 +5077,7 @@ define internal fastcc range(i32 -1, -2147483648) i32 @fork_check_err(ptr nounde 23: ; preds = %21 %24 = call ptr @rb_errno_ptr() #27 %25 = load i32, ptr %24, align 4, !tbaa !60 + %indvars.iv.i.i.sroa.gep40 = getelementptr inbounds nuw i8, ptr %9, i64 4 br label %.preheader.i.i .preheader.i.i: ; preds = %.thread.i.i, %23 @@ -5172,11 +5172,12 @@ pipe_nocrash.exit: ; preds = %21, %58 br label %pipe_nocrash.exit.thread 69: ; preds = %.thread, %62 - %70 = load i32, ptr %indvars.iv.i.i.sroa.gep40, align 4, !tbaa !60 - %71 = call i32 @close(i32 noundef %70) #27 - %72 = load i32, ptr %9, align 4, !tbaa !60 + %70 = getelementptr inbounds nuw i8, ptr %9, i64 4 + %71 = load i32, ptr %70, align 4, !tbaa !60 + %72 = call i32 @close(i32 noundef %71) #27 + %73 = load i32, ptr %9, align 4, !tbaa !60 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) #27 - %73 = call fastcc i64 @read_retry(i32 noundef %72, ptr noundef %8, i64 noundef 4) + %73 = call fastcc i64 @read_retry(i32 noundef %73, ptr noundef %8, i64 noundef 4) %74 = icmp slt i64 %73, 0 br i1 %74, label %.thread.i39, label %77 @@ -5196,7 +5197,7 @@ pipe_nocrash.exit: ; preds = %21, %58 81: ; preds = %77 %82 = add i64 %5, -1 - %83 = call fastcc i64 @read_retry(i32 noundef %72, ptr noundef %4, i64 noundef %82) + %83 = call fastcc i64 @read_retry(i32 noundef %73, ptr noundef %4, i64 noundef %82) %84 = icmp sgt i64 %83, -1 br i1 %84, label %85, label %recv_child_error.exit.thread @@ -5207,12 +5208,12 @@ pipe_nocrash.exit: ; preds = %21, %58 recv_child_error.exit.thread: ; preds = %.thread.i39, %81, %85 %.042.ph = phi i32 [ %.pre.i, %81 ], [ %.pre.i, %85 ], [ %76, %.thread.i39 ] - %87 = call i32 @close(i32 noundef %72) #27 + %87 = call i32 @close(i32 noundef %73) #27 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #27 br label %89 recv_child_error.exit: ; preds = %77 - %88 = call i32 @close(i32 noundef %72) #27 + %88 = call i32 @close(i32 noundef %73) #27 %.not46 = icmp eq i64 %73, 0 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %8) #27 br i1 %.not46, label %pipe_nocrash.exit.thread, label %89 diff --git a/bench/rust-analyzer-rs/optimized/1yf6pyfk8ihkfv63.ll b/bench/rust-analyzer-rs/optimized/1yf6pyfk8ihkfv63.ll index 2d74ce041b5..3bba8f5ca48 100644 --- a/bench/rust-analyzer-rs/optimized/1yf6pyfk8ihkfv63.ll +++ b/bench/rust-analyzer-rs/optimized/1yf6pyfk8ihkfv63.ll @@ -21040,7 +21040,6 @@ define hidden noundef zeroext i1 @"_ZN113_$LT$tracing_subscriber..layer..layered %5 = alloca { [16 x i8], i8, [7 x i8] }, align 8 %6 = getelementptr inbounds nuw i8, ptr %0, i64 80 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5) - %.0.sroa.gep = getelementptr inbounds nuw i8, ptr %5, i64 16 call void @_ZN18tracing_subscriber8registry7sharded8Registry11start_close17h0f299dc9118b9b3aE(ptr noalias noundef nonnull sret({ i64, ptr, i8, [7 x i8] }) align 8 captures(none) dereferenceable(24) %5, ptr noundef nonnull align 8 %6, i64 noundef %1) %7 = invoke noundef zeroext i1 @"_ZN104_$LT$tracing_subscriber..registry..sharded..Registry$u20$as$u20$tracing_core..subscriber..Subscriber$GT$9try_close17hc8659f30aa2519a6E"(ptr noundef nonnull align 8 %6, i64 noundef %1) to label %13 unwind label %8 @@ -21048,9 +21047,10 @@ define hidden noundef zeroext i1 @"_ZN113_$LT$tracing_subscriber..layer..layered 8: ; preds = %29, %21, %2 %9 = landingpad { ptr, i32 } cleanup - %10 = load i8, ptr %.0.sroa.gep, align 8, !range !451, !alias.scope !3859, !noundef !9 - %11 = icmp eq i8 %10, 2 - br i1 %11, label %"_ZN4core3ptr98drop_in_place$LT$core..option..Option$LT$tracing_subscriber..registry..sharded..CloseGuard$GT$$GT$17h7f8d00a0156e2703E.exit", label %12 + %10 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %11 = load i8, ptr %10, align 8, !range !451, !alias.scope !3859, !noundef !9 + %12 = icmp eq i8 %11, 2 + br i1 %12, label %"_ZN4core3ptr98drop_in_place$LT$core..option..Option$LT$tracing_subscriber..registry..sharded..CloseGuard$GT$$GT$17h7f8d00a0156e2703E.exit", label %13 12: ; preds = %8 invoke void @"_ZN91_$LT$tracing_subscriber..registry..sharded..CloseGuard$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4420a0278c2b9f5eE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) @@ -21060,14 +21060,16 @@ define hidden noundef zeroext i1 @"_ZN113_$LT$tracing_subscriber..layer..layered br i1 %7, label %14, label %16 14: ; preds = %13 - %15 = load i8, ptr %.0.sroa.gep, align 8, !range !451, !noundef !9 - %.not = icmp eq i8 %15, 2 - br i1 %.not, label %21, label %20 + %15 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %.not = load i8, ptr %15, align 8, !range !451, !noundef !9 + %.not = icmp eq i8 %17, 2 + br i1 %.not, label %24, label %23 16: ; preds = %"_ZN130_$LT$tracing_subscriber..filter..layer_filters..Filtered$LT$L$C$F$C$S$GT$$u20$as$u20$tracing_subscriber..layer..Layer$LT$S$GT$$GT$8on_close17hb1f365866db6ff19E.exit", %13 - %17 = load i8, ptr %.0.sroa.gep, align 8, !range !451, !alias.scope !3862, !noundef !9 - %18 = icmp eq i8 %17, 2 - br i1 %18, label %"_ZN4core3ptr98drop_in_place$LT$core..option..Option$LT$tracing_subscriber..registry..sharded..CloseGuard$GT$$GT$17h7f8d00a0156e2703E.exit15", label %19 + %17 = getelementptr inbounds nuw i8, ptr %5, i64 16 + %18 = load i8, ptr %17, align 8, !range !451, !alias.scope !3862, !noundef !9 + %21 = icmp eq i8 %20, 2 + br i1 %21, label %"_ZN4core3ptr98drop_in_place$LT$core..option..Option$LT$tracing_subscriber..registry..sharded..CloseGuard$GT$$GT$17h7f8d00a0156e2703E.exit15", label %22 19: ; preds = %16 call void @"_ZN91_$LT$tracing_subscriber..registry..sharded..CloseGuard$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4420a0278c2b9f5eE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %5) @@ -21078,7 +21080,7 @@ define hidden noundef zeroext i1 @"_ZN113_$LT$tracing_subscriber..layer..layered ret i1 %7 20: ; preds = %14 - store i8 1, ptr %.0.sroa.gep, align 8 + store i8 1, ptr %16, align 8 br label %21 21: ; preds = %20, %14 diff --git a/bench/slurm/optimized/reservation.ll b/bench/slurm/optimized/reservation.ll index b0efddfc5bb..4b1c1df9996 100644 --- a/bench/slurm/optimized/reservation.ll +++ b/bench/slurm/optimized/reservation.ll @@ -14899,12 +14899,12 @@ define internal fastcc noundef zeroext i1 @_resv_time_overlap(ptr noundef readon %29 = load i64, ptr %28, align 8 store i64 %29, ptr %27, align 8 %indvars.iv.sroa.phi.sroa.speculated.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 8 - %indvars.iv.sroa.phi.sroa.speculated.sroa.gep71 = getelementptr inbounds nuw i8, ptr %4, i64 8 %indvars.iv.sroa.phi.sroa.speculated.sroa.gep73 = getelementptr inbounds nuw i8, ptr %3, i64 20 - %indvars.iv.sroa.phi.sroa.speculated.sroa.gep74 = getelementptr inbounds nuw i8, ptr %4, i64 20 %indvars.iv.sroa.phi.sroa.speculated.sroa.gep76 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %indvars.iv.sroa.phi.sroa.speculated.sroa.gep77 = getelementptr inbounds nuw i8, ptr %4, i64 8 %indvars.iv.sroa.phi.sroa.speculated.sroa.gep79 = getelementptr inbounds nuw i8, ptr %3, i64 24 + %indvars.iv.sroa.phi.sroa.speculated.sroa.gep71 = getelementptr inbounds nuw i8, ptr %4, i64 8 + %indvars.iv.sroa.phi.sroa.speculated.sroa.gep74 = getelementptr inbounds nuw i8, ptr %4, i64 20 + %indvars.iv.sroa.phi.sroa.speculated.sroa.gep77 = getelementptr inbounds nuw i8, ptr %4, i64 8 %indvars.iv.sroa.phi.sroa.speculated.sroa.gep80 = getelementptr inbounds nuw i8, ptr %4, i64 24 br label %31 diff --git a/bench/tls-rs/optimized/4vvnrvl2eceao62c.ll b/bench/tls-rs/optimized/4vvnrvl2eceao62c.ll index 11e8c58cecb..e6649c5f988 100644 --- a/bench/tls-rs/optimized/4vvnrvl2eceao62c.ll +++ b/bench/tls-rs/optimized/4vvnrvl2eceao62c.ll @@ -10257,7 +10257,6 @@ define hidden void @_ZN6rustls5tls1217ConnectionSecrets17from_key_exchange17h466 store ptr %7, ptr %13, align 8 %16 = load i64, ptr %5, align 8, !range !258, !noundef !7 %trunc = trunc nuw i64 %16 to i1 - %.sink.i.sroa.gep24 = getelementptr inbounds nuw i8, ptr %12, i64 1 br i1 %trunc, label %20, label %.thread 17: ; preds = %26, %46 @@ -10273,22 +10272,24 @@ define hidden void @_ZN6rustls5tls1217ConnectionSecrets17from_key_exchange17h466 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(64) %.sroa.312, ptr noundef nonnull align 1 dereferenceable(64) %10, i64 64, i1 false) call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %12) store i8 1, ptr %12, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(79) %.sink.i.sroa.gep24, ptr noundef nonnull align 1 dereferenceable(79) %.sroa.312, i64 79, i1 false) + %.sroa.312.0..sroa_idx29 = getelementptr inbounds nuw i8, ptr %12, i64 1 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(79) %.sroa.312.0..sroa_idx29, ptr noundef nonnull align 1 dereferenceable(79) %.sroa.312, i64 79, i1 false) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) br label %28 20: ; preds = %8 - %.sink.i.sroa.gep = getelementptr inbounds nuw i8, ptr %12, i64 8 %21 = getelementptr inbounds nuw i8, ptr %5, i64 8 %.sroa.312.8..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.312, i64 7 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(72) %.sroa.312.8..sroa_idx, ptr noundef nonnull align 8 dereferenceable(72) %21, i64 72, i1 false) call void @llvm.lifetime.start.p0(i64 80, ptr nonnull %12) store i8 0, ptr %12, align 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(79) %.sink.i.sroa.gep24, ptr noundef nonnull align 1 dereferenceable(79) %.sroa.312, i64 79, i1 false) + %.sroa.312.0..sroa_idx = getelementptr inbounds nuw i8, ptr %12, i64 1 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(79) %.sroa.312.0..sroa_idx, ptr noundef nonnull align 1 dereferenceable(79) %.sroa.312, i64 79, i1 false) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %11) %22 = getelementptr inbounds nuw i8, ptr %12, i64 72 %23 = load i64, ptr %22, align 8, !alias.scope !1283, !noundef !7 %24 = icmp ugt i64 %23, 64 + %.sink.i.sroa.gep = getelementptr inbounds nuw i8, ptr %12, i64 8 br i1 %24, label %25, label %28 25: ; preds = %20 @@ -10306,7 +10307,7 @@ define hidden void @_ZN6rustls5tls1217ConnectionSecrets17from_key_exchange17h466 28: ; preds = %20, %.thread %.sroa.3.031 = phi i64 [ 22, %20 ], [ 13, %.thread ] %.sroa.010.030 = phi ptr [ @anon.ad5063a02d8bdc6ace820a31447ddce3.49, %20 ], [ @anon.ad5063a02d8bdc6ace820a31447ddce3.48, %.thread ] - %.sink.i.sroa.phi = phi ptr [ %.sink.i.sroa.gep, %20 ], [ %.sink.i.sroa.gep24, %.thread ] + %.sink.i.sroa.phi = phi ptr [ %.sink.i.sroa.gep, %20 ], [ %.sroa.312.0..sroa_idx29, %.thread ] %.pn1.i = phi i64 [ %23, %20 ], [ 64, %.thread ] %29 = load ptr, ptr %7, align 8, !nonnull !7, !align !72, !noundef !7 %.in = getelementptr inbounds nuw i8, ptr %7, i64 8 diff --git a/bench/turborepo-rs/optimized/1vul900b5dplxpbbkrjott84o.ll b/bench/turborepo-rs/optimized/1vul900b5dplxpbbkrjott84o.ll index 22be411f9d8..e76c991c5c6 100644 --- a/bench/turborepo-rs/optimized/1vul900b5dplxpbbkrjott84o.ll +++ b/bench/turborepo-rs/optimized/1vul900b5dplxpbbkrjott84o.ll @@ -568,8 +568,6 @@ define void @_RNvXs_CslOtZNRIhnDi_7pidlockNtB4_7PidlockNtNtNtCs1LoaDTb72WA_4core %3 = getelementptr inbounds nuw i8, ptr %0, i64 28 %4 = load i8, ptr %3, align 4, !range !167, !alias.scope !168, !noundef !15 %5 = icmp eq i8 %4, 1 - %.sink.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %2, i64 56 - %.sink.i.i.sroa.gep1 = getelementptr inbounds nuw i8, ptr %2, i64 8 br i1 %5, label %6, label %10 6: ; preds = %1 @@ -583,7 +581,7 @@ define void @_RNvXs_CslOtZNRIhnDi_7pidlockNtB4_7PidlockNtNtNtCs1LoaDTb72WA_4core 10: ; preds = %1, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit ret void -_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit: ; preds = %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i, %45, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit.i.i.i, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit12.i.i.i, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit4.i.i.i, %11, %11, %6 +_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit: ; preds = %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i, %47, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit.i.i.i, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit12.i.i.i, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit4.i.i.i, %11, %11, %6 call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %2) br label %10 @@ -593,7 +591,7 @@ _RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIh %12 = add i64 %8, 9223372036854775805 %13 = tail call i64 @llvm.umin.i64(i64 %12, i64 3) switch i64 %13, label %default.unreachable [ - i64 0, label %45 + i64 0, label %47 i64 1, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit i64 2, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit i64 3, label %14 @@ -632,8 +630,9 @@ default.unreachable: ; preds = %11 br i1 %24, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit.i.i.i, label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h7539cf4a200804dcE.llvm.10760115039776594612.exit.i.i1.i.i.i.i.i" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h7539cf4a200804dcE.llvm.10760115039776594612.exit.i.i1.i.i.i.i.i": ; preds = %22 - %25 = load ptr, ptr %.sink.i.i.sroa.gep1, align 8, !alias.scope !193, !noalias !196, !nonnull !15, !noundef !15 - tail call void @__rust_dealloc(ptr noundef nonnull %25, i64 noundef %23, i64 noundef 1) #12, !noalias !198 + %25 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %26 = load ptr, ptr %25, align 8, !alias.scope !193, !noalias !196, !nonnull !15, !noundef !15 + tail call void @__rust_dealloc(ptr noundef nonnull %26, i64 noundef %23, i64 noundef 1) #12, !noalias !198 br label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit.i.i.i 26: ; preds = %20 @@ -646,13 +645,15 @@ default.unreachable: ; preds = %11 _RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit4.i.i.i: ; preds = %20 %30 = load i64, ptr %2, align 8, !alias.scope !212, !noalias !223, !noundef !15 %31 = icmp eq i64 %30, 0 - br i1 %31, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i - -_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit6.sink.split.i.i.i: ; preds = %39, %26 - %.sink24.i.i.i = phi i64 [ %41, %39 ], [ %28, %26 ] - %.pn2.ph.i.i.i = phi { ptr, i32 } [ %40, %39 ], [ %27, %26 ] - %32 = load ptr, ptr %.sink.i.i.sroa.gep1, align 8, !alias.scope !225, !noalias !15, !nonnull !15, !noundef !15 - tail call void @__rust_dealloc(ptr noundef nonnull %32, i64 noundef %.sink24.i.i.i, i64 noundef 1) #12, !noalias !225 + %.sink.i.i.sroa.gep2 = getelementptr inbounds nuw i8, ptr %2, i64 8 + br i1 %32, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i + +_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit6.sink.split.i.i.i: ; preds = %41, %26 + %.pn2.ph.i.i.i = phi i64 [ %43, %39 ], [ %29, %26 ] + %32 = phi { ptr, i32 } [ %42, %41 ], [ %27, %27 ] + %33 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %34 = load ptr, ptr %33, align 8, !alias.scope !225, !noalias !15, !nonnull !15, !noundef !15 + tail call void @__rust_dealloc(ptr noundef nonnull %34, i64 noundef %.sink24.i.i.i, i64 noundef 1) #12, !noalias !225 br label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit6.i.i.i _RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit6.i.i.i: ; preds = %39, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit6.sink.split.i.i.i, %26 @@ -677,7 +678,8 @@ _RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6Str _RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit12.i.i.i: ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h7539cf4a200804dcE.llvm.10760115039776594612.exit.i.i1.i.i11.i.i.i", %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit.i.i.i %38 = icmp eq i64 %8, 0 - br i1 %38, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i + %.sink.i.i.sroa.gep = getelementptr inbounds nuw i8, ptr %2, i64 56 + br i1 %40, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i 39: ; preds = %18 %40 = landingpad { ptr, i32 } @@ -689,18 +691,20 @@ _RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6Str _RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit.i.i.i: ; preds = %18 %43 = load i64, ptr %2, align 8, !alias.scope !257, !noalias !268, !noundef !15 %44 = icmp eq i64 %43, 0 - br i1 %44, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i - -45: ; preds = %11 - %46 = load i64, ptr %2, align 8, !alias.scope !270, !noalias !285, !noundef !15 - %47 = icmp eq i64 %46, 0 - br i1 %47, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i - -_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i: ; preds = %45, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit.i.i.i, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit12.i.i.i, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit4.i.i.i - %.sink.i.i.sroa.phi = phi ptr [ %.sink.i.i.sroa.gep, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit12.i.i.i ], [ %.sink.i.i.sroa.gep1, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit.i.i.i ], [ %.sink.i.i.sroa.gep1, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit4.i.i.i ], [ %.sink.i.i.sroa.gep1, %45 ] - %.sink1.i.i = phi i64 [ %8, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit12.i.i.i ], [ %43, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit.i.i.i ], [ %30, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit4.i.i.i ], [ %46, %45 ] - %48 = load ptr, ptr %.sink.i.i.sroa.phi, align 8, !alias.scope !287, !noalias !15, !nonnull !15, !noundef !15 - tail call void @__rust_dealloc(ptr noundef nonnull %48, i64 noundef %.sink1.i.i, i64 noundef 1) #12, !noalias !287 + %.sink.i.i.sroa.gep1 = getelementptr inbounds nuw i8, ptr %2, i64 8 + br i1 %46, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i + +47:; preds = %11 + %47 = load i64, ptr %2, align 8, !alias.scope !270, !noalias !285, !noundef !15 + %49 = icmp eq i64 %48, 0 + %.sink.i.i.sroa.gep3 = getelementptr inbounds nuw i8, ptr %2, i64 8 + br i1 %49, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit, label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i + +_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtCslOtZNRIhnDi_7pidlock12PidFileErrorEBI_.exit.sink.split.i.i:; preds = %47, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit.i.i.i, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit12.i.i.i, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit4.i.i.i + %48 = phi ptr [ %.sink.i.i.sroa.gep, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit12.i.i.i ], [ %.sink.i.i.sroa.gep1, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit.i.i.i ], [ %.sink.i.i.sroa.gep2, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit4.i.i.i ], [ %.sink.i.i.sroa.gep3, %47 ] + %.sink1.i.i = phi i64 [ %8, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtCs68wO5nsWeTG_5alloc6string6StringECslOtZNRIhnDi_7pidlock.exit12.i.i.i ], [ %45, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit.i.i.i ], [ %31, %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeNtNtNtCsapf13pIxsjn_3std2io5error5ErrorECslOtZNRIhnDi_7pidlock.exit4.i.i.i ], [ %48, %47 ] + %50 = load ptr, ptr %.sink.i.i.sroa.phi, align 8, !alias.scope !287, !noalias !15, !nonnull !15, !noundef !15 + tail call void @__rust_dealloc(ptr noundef nonnull %50, i64 noundef %.sink1.i.i, i64 noundef 1) #12, !noalias !287 br label %_RINvNtCs1LoaDTb72WA_4core3ptr13drop_in_placeINtNtB4_6result6ResultuNtCslOtZNRIhnDi_7pidlock12PidlockErrorEEB15_.exit } diff --git a/bench/turborepo-rs/optimized/8oe5vwmwwrst9p60jy1zusiyz.ll b/bench/turborepo-rs/optimized/8oe5vwmwwrst9p60jy1zusiyz.ll index 6bafafec0e8..de7435eb476 100644 --- a/bench/turborepo-rs/optimized/8oe5vwmwwrst9p60jy1zusiyz.ll +++ b/bench/turborepo-rs/optimized/8oe5vwmwwrst9p60jy1zusiyz.ll @@ -3707,8 +3707,6 @@ define void @_RNvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied6CopiedINtNtN %10 = icmp ne ptr %2, null tail call void @llvm.assume(i1 %10) %11 = icmp eq ptr %1, %2 - %.sink.i.sroa.gep = getelementptr inbounds nuw i8, ptr %8, i64 8 - %.sink.i.sroa.gep6 = getelementptr inbounds nuw i8, ptr %7, i64 8 br i1 %11, label %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1D_INtNtB1H_8variance12UnitVarianceNtB2r_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2r_8VarianceB2U_ENtNtNtBc_3ops5arith3Add3addEB1J_.llvm.15969390215716056838.exit.thread, label %_RNvXs0_NtNtNtCs1LoaDTb72WA_4core4iter8adapters3mapINtB5_3MapINtNtB7_6copied6CopiedINtNtNtBb_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1I_INtNtB1M_8variance12UnitVarianceNtB2w_13InvariantTextE13unit_varianceENtNtNtB9_6traits8iterator8Iterator4nextB1O_.llvm.15969390215716056838.exit.i _RNvXs0_NtNtNtCs1LoaDTb72WA_4core4iter8adapters3mapINtB5_3MapINtNtB7_6copied6CopiedINtNtNtBb_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1I_INtNtB1M_8variance12UnitVarianceNtB2w_13InvariantTextE13unit_varianceENtNtNtB9_6traits8iterator8Iterator4nextB1O_.llvm.15969390215716056838.exit.i: ; preds = %3 @@ -3729,6 +3727,7 @@ _RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedIN call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9), !noalias !788 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7), !noalias !798 %16 = icmp eq ptr %12, %2 + %.sink.i.sroa.gep = getelementptr inbounds nuw i8, ptr %8, i64 8 br i1 %16, label %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1D_INtNtB1H_8variance12UnitVarianceNtB2r_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2r_8VarianceB2U_ENtNtNtBc_3ops5arith3Add3addEB1J_.llvm.15969390215716056838.exit, label %17 17: ; preds = %15 @@ -3775,11 +3774,15 @@ _RNCINvNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied9copy_foldRINtNtCseG2FYMysg call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6), !noalias !810 %30 = add nuw i64 %.sroa.06.0.i.i.i.i, 1 %31 = icmp eq i64 %30, %21 - br i1 %31, label %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1D_INtNtB1H_8variance12UnitVarianceNtB2r_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2r_8VarianceB2U_ENtNtNtBc_3ops5arith3Add3addEB1J_.llvm.15969390215716056838.exit, label %23 + br i1 %31, label %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1D_INtNtB1H_8variance12UnitVarianceNtB2r_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2r_8VarianceB2U_ENtNtNtBc_3ops5arith3Add3addEB1J_.llvm.15969390215716056838.exit.loopexit, label %23 + +_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1D_INtNtB1H_8variance12UnitVarianceNtB2r_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2r_8VarianceB2U_ENtNtNtBc_3ops5arith3Add3addEB1J_.llvm.15969390215716056838.exit.loopexit: ; preds = %_RNCINvNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied9copy_foldRINtNtCseG2FYMysgNb_3wax5token5TokenuEINtNtB12_8variance8VarianceNtB1D_13InvariantTextENCINvNtB6_3map8map_foldBY_B1A_B1A_NvYBY_INtB1D_12UnitVarianceB21_E13unit_varianceNvYB1A_NtNtNtBa_3ops5arith3Add3addE0E0B14_.exit.i.i.i.i + %.sink.i.sroa.gep6.le = getelementptr inbounds nuw i8, ptr %7, i64 8 + br label %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1D_INtNtB1H_8variance12UnitVarianceNtB2r_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2r_8VarianceB2U_ENtNtNtBc_3ops5arith3Add3addEB1J_.llvm.15969390215716056838.exit -_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1D_INtNtB1H_8variance12UnitVarianceNtB2r_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2r_8VarianceB2U_ENtNtNtBc_3ops5arith3Add3addEB1J_.llvm.15969390215716056838.exit: ; preds = %_RNCINvNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied9copy_foldRINtNtCseG2FYMysgNb_3wax5token5TokenuEINtNtB12_8variance8VarianceNtB1D_13InvariantTextENCINvNtB6_3map8map_foldBY_B1A_B1A_NvYBY_INtB1D_12UnitVarianceB21_E13unit_varianceNvYB1A_NtNtNtBa_3ops5arith3Add3addE0E0B14_.exit.i.i.i.i, %15 - %.sink.i.sroa.phi = phi ptr [ %.sink.i.sroa.gep, %15 ], [ %.sink.i.sroa.gep6, %_RNCINvNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied9copy_foldRINtNtCseG2FYMysgNb_3wax5token5TokenuEINtNtB12_8variance8VarianceNtB1D_13InvariantTextENCINvNtB6_3map8map_foldBY_B1A_B1A_NvYBY_INtB1D_12UnitVarianceB21_E13unit_varianceNvYB1A_NtNtNtBa_3ops5arith3Add3addE0E0B14_.exit.i.i.i.i ] - %.sink.i = phi ptr [ %8, %15 ], [ %7, %_RNCINvNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied9copy_foldRINtNtCseG2FYMysgNb_3wax5token5TokenuEINtNtB12_8variance8VarianceNtB1D_13InvariantTextENCINvNtB6_3map8map_foldBY_B1A_B1A_NvYBY_INtB1D_12UnitVarianceB21_E13unit_varianceNvYB1A_NtNtNtBa_3ops5arith3Add3addE0E0B14_.exit.i.i.i.i ] +_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1D_INtNtB1H_8variance12UnitVarianceNtB2r_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2r_8VarianceB2U_ENtNtNtBc_3ops5arith3Add3addEB1J_.llvm.15969390215716056838.exit: ; preds = %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1D_INtNtB1H_8variance12UnitVarianceNtB2r_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2r_8VarianceB2U_ENtNtNtBc_3ops5arith3Add3addEB1J_.llvm.15969390215716056838.exit.loopexit, %15 + %.sink.i.sroa.phi = phi ptr [ %.sink.i.sroa.gep, %15 ], [ %.sink.i.sroa.gep6.le, %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1D_INtNtB1H_8variance12UnitVarianceNtB2r_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2r_8VarianceB2U_ENtNtNtBc_3ops5arith3Add3addEB1J_.llvm.15969390215716056838.exit.loopexit ] + %.sink.i = phi ptr [ %8, %15 ], [ %7, %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRINtNtCseG2FYMysgNb_3wax5token5TokenuEEENvYB1D_INtNtB1H_8variance12UnitVarianceNtB2r_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2r_8VarianceB2U_ENtNtNtBc_3ops5arith3Add3addEB1J_.llvm.15969390215716056838.exit.loopexit ] %.sroa.04.0.copyload = load i64, ptr %.sink.i, align 8, !noalias !788 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6, ptr noundef nonnull align 8 dereferenceable(24) %.sink.i.sroa.phi, i64 24, i1 false) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7), !noalias !798 @@ -3821,8 +3824,6 @@ define void @_RNvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied6CopiedINtNtN %10 = icmp ne ptr %2, null tail call void @llvm.assume(i1 %10) %11 = icmp eq ptr %1, %2 - %.sink.i.sroa.gep = getelementptr inbounds nuw i8, ptr %8, i64 8 - %.sink.i.sroa.gep6 = getelementptr inbounds nuw i8, ptr %7, i64 8 br i1 %11, label %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1D_INtNtB1G_8variance12UnitVarianceNtB2o_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2o_8VarianceB2R_ENtNtNtBc_3ops5arith3Add3addEB1I_.llvm.15969390215716056838.exit.thread, label %_RNvXs0_NtNtNtCs1LoaDTb72WA_4core4iter8adapters3mapINtB5_3MapINtNtB7_6copied6CopiedINtNtNtBb_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1I_INtNtB1L_8variance12UnitVarianceNtB2t_13InvariantTextE13unit_varianceENtNtNtB9_6traits8iterator8Iterator4nextB1N_.llvm.15969390215716056838.exit.i _RNvXs0_NtNtNtCs1LoaDTb72WA_4core4iter8adapters3mapINtB5_3MapINtNtB7_6copied6CopiedINtNtNtBb_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1I_INtNtB1L_8variance12UnitVarianceNtB2t_13InvariantTextE13unit_varianceENtNtNtB9_6traits8iterator8Iterator4nextB1N_.llvm.15969390215716056838.exit.i: ; preds = %3 @@ -3843,6 +3844,7 @@ _RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedIN call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9), !noalias !819 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7), !noalias !829 %16 = icmp eq ptr %12, %2 + %.sink.i.sroa.gep = getelementptr inbounds nuw i8, ptr %8, i64 8 br i1 %16, label %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1D_INtNtB1G_8variance12UnitVarianceNtB2o_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2o_8VarianceB2R_ENtNtNtBc_3ops5arith3Add3addEB1I_.llvm.15969390215716056838.exit, label %17 17: ; preds = %15 @@ -3889,11 +3891,15 @@ _RNCINvNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied9copy_foldRNtNtCseG2FYMysgN call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %6), !noalias !841 %30 = add nuw i64 %.sroa.06.0.i.i.i.i, 1 %31 = icmp eq i64 %30, %21 - br i1 %31, label %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1D_INtNtB1G_8variance12UnitVarianceNtB2o_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2o_8VarianceB2R_ENtNtNtBc_3ops5arith3Add3addEB1I_.llvm.15969390215716056838.exit, label %23 + br i1 %31, label %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1D_INtNtB1G_8variance12UnitVarianceNtB2o_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2o_8VarianceB2R_ENtNtNtBc_3ops5arith3Add3addEB1I_.llvm.15969390215716056838.exit.loopexit, label %23 + +_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1D_INtNtB1G_8variance12UnitVarianceNtB2o_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2o_8VarianceB2R_ENtNtNtBc_3ops5arith3Add3addEB1I_.llvm.15969390215716056838.exit.loopexit: ; preds = %_RNCINvNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied9copy_foldRNtNtCseG2FYMysgNb_3wax5token5TokenINtNtB11_8variance8VarianceNtB1A_13InvariantTextENCINvNtB6_3map8map_foldBY_B1x_B1x_NvYBY_INtB1A_12UnitVarianceB1Y_E13unit_varianceNvYB1x_NtNtNtBa_3ops5arith3Add3addE0E0B13_.exit.i.i.i.i + %.sink.i.sroa.gep6.le = getelementptr inbounds nuw i8, ptr %7, i64 8 + br label %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1D_INtNtB1G_8variance12UnitVarianceNtB2o_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2o_8VarianceB2R_ENtNtNtBc_3ops5arith3Add3addEB1I_.llvm.15969390215716056838.exit -_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1D_INtNtB1G_8variance12UnitVarianceNtB2o_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2o_8VarianceB2R_ENtNtNtBc_3ops5arith3Add3addEB1I_.llvm.15969390215716056838.exit: ; preds = %_RNCINvNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied9copy_foldRNtNtCseG2FYMysgNb_3wax5token5TokenINtNtB11_8variance8VarianceNtB1A_13InvariantTextENCINvNtB6_3map8map_foldBY_B1x_B1x_NvYBY_INtB1A_12UnitVarianceB1Y_E13unit_varianceNvYB1x_NtNtNtBa_3ops5arith3Add3addE0E0B13_.exit.i.i.i.i, %15 - %.sink.i.sroa.phi = phi ptr [ %.sink.i.sroa.gep, %15 ], [ %.sink.i.sroa.gep6, %_RNCINvNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied9copy_foldRNtNtCseG2FYMysgNb_3wax5token5TokenINtNtB11_8variance8VarianceNtB1A_13InvariantTextENCINvNtB6_3map8map_foldBY_B1x_B1x_NvYBY_INtB1A_12UnitVarianceB1Y_E13unit_varianceNvYB1x_NtNtNtBa_3ops5arith3Add3addE0E0B13_.exit.i.i.i.i ] - %.sink.i = phi ptr [ %8, %15 ], [ %7, %_RNCINvNtNtNtCs1LoaDTb72WA_4core4iter8adapters6copied9copy_foldRNtNtCseG2FYMysgNb_3wax5token5TokenINtNtB11_8variance8VarianceNtB1A_13InvariantTextENCINvNtB6_3map8map_foldBY_B1x_B1x_NvYBY_INtB1A_12UnitVarianceB1Y_E13unit_varianceNvYB1x_NtNtNtBa_3ops5arith3Add3addE0E0B13_.exit.i.i.i.i ] +_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1D_INtNtB1G_8variance12UnitVarianceNtB2o_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2o_8VarianceB2R_ENtNtNtBc_3ops5arith3Add3addEB1I_.llvm.15969390215716056838.exit: ; preds = %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1D_INtNtB1G_8variance12UnitVarianceNtB2o_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2o_8VarianceB2R_ENtNtNtBc_3ops5arith3Add3addEB1I_.llvm.15969390215716056838.exit.loopexit, %15 + %.sink.i.sroa.phi = phi ptr [ %.sink.i.sroa.gep, %15 ], [ %.sink.i.sroa.gep6.le, %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1D_INtNtB1G_8variance12UnitVarianceNtB2o_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2o_8VarianceB2R_ENtNtNtBc_3ops5arith3Add3addEB1I_.llvm.15969390215716056838.exit.loopexit ] + %.sink.i = phi ptr [ %8, %15 ], [ %7, %_RINvYINtNtNtNtCs1LoaDTb72WA_4core4iter8adapters3map3MapINtNtB8_6copied6CopiedINtNtNtBc_5slice4iter4IterRNtNtCseG2FYMysgNb_3wax5token5TokenEENvYB1D_INtNtB1G_8variance12UnitVarianceNtB2o_13InvariantTextE13unit_varianceENtNtNtBa_6traits8iterator8Iterator6reduceNvYINtB2o_8VarianceB2R_ENtNtNtBc_3ops5arith3Add3addEB1I_.llvm.15969390215716056838.exit.loopexit ] %.sroa.04.0.copyload = load i64, ptr %.sink.i, align 8, !noalias !819 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6, ptr noundef nonnull align 8 dereferenceable(24) %.sink.i.sroa.phi, i64 24, i1 false) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7), !noalias !829 diff --git a/bench/wasmtime-rs/optimized/2rxishkjui70pb7b.ll b/bench/wasmtime-rs/optimized/2rxishkjui70pb7b.ll index 0c4fc8197ed..40231ce9392 100644 --- a/bench/wasmtime-rs/optimized/2rxishkjui70pb7b.ll +++ b/bench/wasmtime-rs/optimized/2rxishkjui70pb7b.ll @@ -144,22 +144,6 @@ define void @_ZN4core5slice4sort10merge_sort17h51051a8ed1a40f2aE(ptr align 8 %0, %12 = alloca { ptr, i64, {} }, align 8 %13 = freeze i64 %1 %14 = icmp ult i64 %13, 21 - %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %10, i64 8 - %.sink.sroa.gep80 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %.sink.sroa.gep81 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %.sink.sroa.gep82 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.sink.sroa.gep84 = getelementptr inbounds nuw i8, ptr %10, i64 32 - %.sink.sroa.gep85 = getelementptr inbounds nuw i8, ptr %9, i64 32 - %.sink.sroa.gep86 = getelementptr inbounds nuw i8, ptr %7, i64 32 - %.sink.sroa.gep87 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %.sink.sroa.gep89 = getelementptr inbounds nuw i8, ptr %10, i64 16 - %.sink.sroa.gep90 = getelementptr inbounds nuw i8, ptr %9, i64 16 - %.sink.sroa.gep91 = getelementptr inbounds nuw i8, ptr %7, i64 16 - %.sink.sroa.gep92 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %.sink.sroa.gep94 = getelementptr inbounds nuw i8, ptr %10, i64 24 - %.sink.sroa.gep95 = getelementptr inbounds nuw i8, ptr %9, i64 24 - %.sink.sroa.gep96 = getelementptr inbounds nuw i8, ptr %7, i64 24 - %.sink.sroa.gep97 = getelementptr inbounds nuw i8, ptr %6, i64 24 br i1 %14, label %28, label %15 15: ; preds = %3 @@ -412,7 +396,7 @@ define void @_ZN4core5slice4sort10merge_sort17h51051a8ed1a40f2aE(ptr align 8 %0, call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %10) %89 = load i64, ptr %25, align 8, !noundef !3 %90 = icmp ult i64 %86, %89 - br i1 %90, label %91, label %.invoke + br i1 %90, label %91, label %.invoke.split.loop.exit112 91: ; preds = %88 %92 = load ptr, ptr %11, align 8, !nonnull !3, !noundef !3 @@ -424,7 +408,7 @@ define void @_ZN4core5slice4sort10merge_sort17h51051a8ed1a40f2aE(ptr align 8 %0, %97 = add nuw i64 %86, 1 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) %98 = icmp ult i64 %97, %89 - br i1 %98, label %99, label %.invoke + br i1 %98, label %99, label %.invoke.split.loop.exit105 99: ; preds = %91 %100 = getelementptr inbounds { i64, i64 }, ptr %92, i64 %97 @@ -553,7 +537,7 @@ define void @_ZN4core5slice4sort10merge_sort17h51051a8ed1a40f2aE(ptr align 8 %0, call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7) %154 = load i64, ptr %25, align 8, !noundef !3 %155 = icmp ult i64 %97, %154 - br i1 %155, label %156, label %.invoke + br i1 %155, label %156, label %.invoke.split.loop.exit98 156: ; preds = %153 %157 = load ptr, ptr %11, align 8, !nonnull !3, !noundef !3 @@ -568,13 +552,41 @@ define void @_ZN4core5slice4sort10merge_sort17h51051a8ed1a40f2aE(ptr align 8 %0, %.not.i47 = icmp ult i64 %86, %161 br i1 %.not.i47, label %"_ZN4core5slice4sort10merge_sort37RunVec$LT$RunAllocF$C$RunDeallocF$GT$6remove17h9a0d72cb9830bfeeE.exit", label %.invoke -.invoke: ; preds = %156, %153, %91, %88 - %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %88 ], [ %.sink.sroa.gep80, %91 ], [ %.sink.sroa.gep81, %153 ], [ %.sink.sroa.gep82, %156 ] - %.sink.sroa.phi83 = phi ptr [ %.sink.sroa.gep84, %88 ], [ %.sink.sroa.gep85, %91 ], [ %.sink.sroa.gep86, %153 ], [ %.sink.sroa.gep87, %156 ] - %.sink.sroa.phi88 = phi ptr [ %.sink.sroa.gep89, %88 ], [ %.sink.sroa.gep90, %91 ], [ %.sink.sroa.gep91, %153 ], [ %.sink.sroa.gep92, %156 ] - %.sink.sroa.phi93 = phi ptr [ %.sink.sroa.gep94, %88 ], [ %.sink.sroa.gep95, %91 ], [ %.sink.sroa.gep96, %153 ], [ %.sink.sroa.gep97, %156 ] - %.sink = phi ptr [ %10, %88 ], [ %9, %91 ], [ %7, %153 ], [ %6, %156 ] - %162 = phi ptr [ @anon.c1c48a1fef5800bfd07888450020b215.10, %88 ], [ @anon.c1c48a1fef5800bfd07888450020b215.11, %91 ], [ @anon.c1c48a1fef5800bfd07888450020b215.13, %153 ], [ @anon.c1c48a1fef5800bfd07888450020b215.18, %156 ] +.invoke: ; preds = %156 + %.sink.sroa.phi = getelementptr inbounds nuw i8, ptr %6, i64 8 + %.sink.sroa.phi83 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %.sink.sroa.phi88 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %.sink.sroa.phi93 = getelementptr inbounds nuw i8, ptr %6, i64 24 + br label %.invoke + +.invoke.split.loop.exit98: ; preds = %153 + %.sink.sroa.gep81.le = getelementptr inbounds nuw i8, ptr %7, i64 8 + %.sink.sroa.gep86.le = getelementptr inbounds nuw i8, ptr %7, i64 32 + %.sink.sroa.gep91.le = getelementptr inbounds nuw i8, ptr %7, i64 16 + %.sink.sroa.gep96.le = getelementptr inbounds nuw i8, ptr %7, i64 24 + br label %.invoke + +.invoke.split.loop.exit105: ; preds = %91 + %.sink.sroa.gep80.le = getelementptr inbounds nuw i8, ptr %9, i64 8 + %.sink.sroa.gep85.le = getelementptr inbounds nuw i8, ptr %9, i64 32 + %.sink.sroa.gep90.le = getelementptr inbounds nuw i8, ptr %9, i64 16 + %.sink.sroa.gep95.le = getelementptr inbounds nuw i8, ptr %9, i64 24 + br label %.invoke + +.invoke.split.loop.exit112: ; preds = %88 + %.sink.sroa.gep.le = getelementptr inbounds nuw i8, ptr %10, i64 8 + %.sink.sroa.gep84.le = getelementptr inbounds nuw i8, ptr %10, i64 32 + %.sink.sroa.gep89.le = getelementptr inbounds nuw i8, ptr %10, i64 16 + %.sink.sroa.gep94.le = getelementptr inbounds nuw i8, ptr %10, i64 24 + br label %.invoke + +.invoke: ; preds = %.invoke.split.loop.exit112, %.invoke.split.loop.exit105, %.invoke.split.loop.exit98, %.invoke.split.loop.exit + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep82.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep81.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep80.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep.le, %.invoke.split.loop.exit112 ] + %.sink.sroa.phi83 = phi ptr [ %.sink.sroa.gep87.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep86.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep85.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep84.le, %.invoke.split.loop.exit112 ] + %.sink.sroa.phi88 = phi ptr [ %.sink.sroa.gep92.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep91.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep90.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep89.le, %.invoke.split.loop.exit112 ] + %.sink.sroa.phi93 = phi ptr [ %.sink.sroa.gep97.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep96.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep95.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep94.le, %.invoke.split.loop.exit112 ] + %.sink = phi ptr [ %6, %.invoke.split.loop.exit ], [ %7, %.invoke.split.loop.exit98 ], [ %9, %.invoke.split.loop.exit105 ], [ %10, %.invoke.split.loop.exit112 ] + %162 = phi ptr [ @anon.c1c48a1fef5800bfd07888450020b215.18, %.invoke.split.loop.exit ], [ @anon.c1c48a1fef5800bfd07888450020b215.13, %.invoke.split.loop.exit98 ], [ @anon.c1c48a1fef5800bfd07888450020b215.11, %.invoke.split.loop.exit105 ], [ @anon.c1c48a1fef5800bfd07888450020b215.10, %.invoke.split.loop.exit112 ] store ptr @anon.c1c48a1fef5800bfd07888450020b215.1, ptr %.sink, align 8 store i64 1, ptr %.sink.sroa.phi, align 8 store ptr null, ptr %.sink.sroa.phi83, align 8 @@ -646,22 +658,6 @@ define void @_ZN4core5slice4sort10merge_sort17hb580c1ca536573f3E(ptr align 8 %0, %12 = alloca { ptr, i64, {} }, align 8 %13 = freeze i64 %1 %14 = icmp ult i64 %13, 21 - %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %10, i64 8 - %.sink.sroa.gep80 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %.sink.sroa.gep81 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %.sink.sroa.gep82 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.sink.sroa.gep84 = getelementptr inbounds nuw i8, ptr %10, i64 32 - %.sink.sroa.gep85 = getelementptr inbounds nuw i8, ptr %9, i64 32 - %.sink.sroa.gep86 = getelementptr inbounds nuw i8, ptr %7, i64 32 - %.sink.sroa.gep87 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %.sink.sroa.gep89 = getelementptr inbounds nuw i8, ptr %10, i64 16 - %.sink.sroa.gep90 = getelementptr inbounds nuw i8, ptr %9, i64 16 - %.sink.sroa.gep91 = getelementptr inbounds nuw i8, ptr %7, i64 16 - %.sink.sroa.gep92 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %.sink.sroa.gep94 = getelementptr inbounds nuw i8, ptr %10, i64 24 - %.sink.sroa.gep95 = getelementptr inbounds nuw i8, ptr %9, i64 24 - %.sink.sroa.gep96 = getelementptr inbounds nuw i8, ptr %7, i64 24 - %.sink.sroa.gep97 = getelementptr inbounds nuw i8, ptr %6, i64 24 br i1 %14, label %28, label %15 15: ; preds = %3 @@ -914,7 +910,7 @@ define void @_ZN4core5slice4sort10merge_sort17hb580c1ca536573f3E(ptr align 8 %0, call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %10) %89 = load i64, ptr %25, align 8, !noundef !3 %90 = icmp ult i64 %86, %89 - br i1 %90, label %91, label %.invoke + br i1 %90, label %91, label %.invoke.split.loop.exit112 91: ; preds = %88 %92 = load ptr, ptr %11, align 8, !nonnull !3, !noundef !3 @@ -926,7 +922,7 @@ define void @_ZN4core5slice4sort10merge_sort17hb580c1ca536573f3E(ptr align 8 %0, %97 = add nuw i64 %86, 1 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) %98 = icmp ult i64 %97, %89 - br i1 %98, label %99, label %.invoke + br i1 %98, label %99, label %.invoke.split.loop.exit105 99: ; preds = %91 %100 = getelementptr inbounds { i64, i64 }, ptr %92, i64 %97 @@ -1055,7 +1051,7 @@ define void @_ZN4core5slice4sort10merge_sort17hb580c1ca536573f3E(ptr align 8 %0, call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7) %154 = load i64, ptr %25, align 8, !noundef !3 %155 = icmp ult i64 %97, %154 - br i1 %155, label %156, label %.invoke + br i1 %155, label %156, label %.invoke.split.loop.exit98 156: ; preds = %153 %157 = load ptr, ptr %11, align 8, !nonnull !3, !noundef !3 @@ -1070,13 +1066,41 @@ define void @_ZN4core5slice4sort10merge_sort17hb580c1ca536573f3E(ptr align 8 %0, %.not.i47 = icmp ult i64 %86, %161 br i1 %.not.i47, label %"_ZN4core5slice4sort10merge_sort37RunVec$LT$RunAllocF$C$RunDeallocF$GT$6remove17hcd090d4ee9ba524aE.exit", label %.invoke -.invoke: ; preds = %156, %153, %91, %88 - %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %88 ], [ %.sink.sroa.gep80, %91 ], [ %.sink.sroa.gep81, %153 ], [ %.sink.sroa.gep82, %156 ] - %.sink.sroa.phi83 = phi ptr [ %.sink.sroa.gep84, %88 ], [ %.sink.sroa.gep85, %91 ], [ %.sink.sroa.gep86, %153 ], [ %.sink.sroa.gep87, %156 ] - %.sink.sroa.phi88 = phi ptr [ %.sink.sroa.gep89, %88 ], [ %.sink.sroa.gep90, %91 ], [ %.sink.sroa.gep91, %153 ], [ %.sink.sroa.gep92, %156 ] - %.sink.sroa.phi93 = phi ptr [ %.sink.sroa.gep94, %88 ], [ %.sink.sroa.gep95, %91 ], [ %.sink.sroa.gep96, %153 ], [ %.sink.sroa.gep97, %156 ] - %.sink = phi ptr [ %10, %88 ], [ %9, %91 ], [ %7, %153 ], [ %6, %156 ] - %162 = phi ptr [ @anon.c1c48a1fef5800bfd07888450020b215.10, %88 ], [ @anon.c1c48a1fef5800bfd07888450020b215.11, %91 ], [ @anon.c1c48a1fef5800bfd07888450020b215.13, %153 ], [ @anon.c1c48a1fef5800bfd07888450020b215.18, %156 ] +.invoke: ; preds = %156 + %.sink.sroa.phi = getelementptr inbounds nuw i8, ptr %6, i64 8 + %.sink.sroa.phi83 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %.sink.sroa.phi88 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %.sink.sroa.phi93 = getelementptr inbounds nuw i8, ptr %6, i64 24 + br label %.invoke + +.invoke.split.loop.exit98: ; preds = %153 + %.sink.sroa.gep81.le = getelementptr inbounds nuw i8, ptr %7, i64 8 + %.sink.sroa.gep86.le = getelementptr inbounds nuw i8, ptr %7, i64 32 + %.sink.sroa.gep91.le = getelementptr inbounds nuw i8, ptr %7, i64 16 + %.sink.sroa.gep96.le = getelementptr inbounds nuw i8, ptr %7, i64 24 + br label %.invoke + +.invoke.split.loop.exit105: ; preds = %91 + %.sink.sroa.gep80.le = getelementptr inbounds nuw i8, ptr %9, i64 8 + %.sink.sroa.gep85.le = getelementptr inbounds nuw i8, ptr %9, i64 32 + %.sink.sroa.gep90.le = getelementptr inbounds nuw i8, ptr %9, i64 16 + %.sink.sroa.gep95.le = getelementptr inbounds nuw i8, ptr %9, i64 24 + br label %.invoke + +.invoke.split.loop.exit112: ; preds = %88 + %.sink.sroa.gep.le = getelementptr inbounds nuw i8, ptr %10, i64 8 + %.sink.sroa.gep84.le = getelementptr inbounds nuw i8, ptr %10, i64 32 + %.sink.sroa.gep89.le = getelementptr inbounds nuw i8, ptr %10, i64 16 + %.sink.sroa.gep94.le = getelementptr inbounds nuw i8, ptr %10, i64 24 + br label %.invoke + +.invoke: ; preds = %.invoke.split.loop.exit112, %.invoke.split.loop.exit105, %.invoke.split.loop.exit98, %.invoke.split.loop.exit + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep82.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep81.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep80.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep.le, %.invoke.split.loop.exit112 ] + %.sink.sroa.phi83 = phi ptr [ %.sink.sroa.gep87.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep86.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep85.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep84.le, %.invoke.split.loop.exit112 ] + %.sink.sroa.phi88 = phi ptr [ %.sink.sroa.gep92.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep91.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep90.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep89.le, %.invoke.split.loop.exit112 ] + %.sink.sroa.phi93 = phi ptr [ %.sink.sroa.gep97.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep96.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep95.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep94.le, %.invoke.split.loop.exit112 ] + %.sink = phi ptr [ %6, %.invoke.split.loop.exit ], [ %7, %.invoke.split.loop.exit98 ], [ %9, %.invoke.split.loop.exit105 ], [ %10, %.invoke.split.loop.exit112 ] + %162 = phi ptr [ @anon.c1c48a1fef5800bfd07888450020b215.18, %.invoke.split.loop.exit ], [ @anon.c1c48a1fef5800bfd07888450020b215.13, %.invoke.split.loop.exit98 ], [ @anon.c1c48a1fef5800bfd07888450020b215.11, %.invoke.split.loop.exit105 ], [ @anon.c1c48a1fef5800bfd07888450020b215.10, %.invoke.split.loop.exit112 ] store ptr @anon.c1c48a1fef5800bfd07888450020b215.1, ptr %.sink, align 8 store i64 1, ptr %.sink.sroa.phi, align 8 store ptr null, ptr %.sink.sroa.phi83, align 8 diff --git a/bench/wasmtime-rs/optimized/5g1sfst7nzqq22by.ll b/bench/wasmtime-rs/optimized/5g1sfst7nzqq22by.ll index b90570fe75f..3550edb99c7 100644 --- a/bench/wasmtime-rs/optimized/5g1sfst7nzqq22by.ll +++ b/bench/wasmtime-rs/optimized/5g1sfst7nzqq22by.ll @@ -1958,13 +1958,11 @@ define void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT %11 = alloca { ptr, i64, {} }, align 8 %12 = alloca { { ptr, [1 x i64] }, i64, { {} }, {} }, align 8 %13 = icmp eq i64 %2, 0 - %.0114.sroa.gep = getelementptr inbounds nuw i8, ptr %10, i64 8 - br i1 %13, label %14, label %22 + %.0114.sroa.gep = icmp ne ptr %1, null + tail call void @llvm.assume(i1 %.0114.sroa.gep) + br i1 %13, label %15, label %23 14: ; preds = %3 - %.0.sroa.gep = getelementptr inbounds nuw i8, ptr %12, i64 8 - %15 = icmp ne ptr %1, null - tail call void @llvm.assume(i1 %15) call void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17h4dd38584f056157bE"(ptr nonnull align 1 %4) %16 = call { ptr, i64 } @"_ZN5alloc11collections5btree4node117NodeRef$LT$alloc..collections..btree..node..marker..Owned$C$K$C$V$C$alloc..collections..btree..node..marker..Leaf$GT$8new_leaf17ha101c571cfe8d1fdE"() %17 = extractvalue { ptr, i64 } %16, 0 @@ -1972,15 +1970,14 @@ define void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT %19 = icmp ne ptr %17, null call void @llvm.assume(i1 %19) store ptr %17, ptr %12, align 8 - store i64 %18, ptr %.0.sroa.gep, align 8 - %20 = getelementptr inbounds nuw i8, ptr %12, i64 16 - store i64 0, ptr %20, align 8 - %21 = icmp eq i64 %18, 0 - br i1 %21, label %31, label %35 - -22: ; preds = %3 - %23 = icmp ne ptr %1, null - tail call void @llvm.assume(i1 %23) + %20 = getelementptr inbounds nuw i8, ptr %12, i64 8 + store i64 %18, ptr %20, align 8 + %21 = getelementptr inbounds nuw i8, ptr %12, i64 16 + store i64 0, ptr %21, align 8 + %22 = icmp eq i64 %18, 0 + br i1 %22, label %31, label %35 + +23:; preds = %3 %24 = getelementptr inbounds nuw i8, ptr %1, i64 40 %25 = load ptr, ptr %24, align 8, !nonnull !3, !noundef !3 %26 = add i64 %2, -1 @@ -1988,6 +1985,7 @@ define void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT call void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone13clone_subtree17h970103324e364fdaE"(ptr nonnull sret({ { ptr, [1 x i64] }, i64, { {} }, {} }) align 8 %10, ptr nonnull %25, i64 %26) %27 = load ptr, ptr %10, align 8, !noundef !3 %28 = icmp eq ptr %27, null + %.0114.sroa.gep = getelementptr inbounds nuw i8, ptr %10, i64 8 br i1 %28, label %56, label %57 29: ; preds = %.loopexit, %.loopexit.split-lp, %43 @@ -2056,9 +2054,9 @@ define void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT to label %48 unwind label %43 48: ; preds = %46 - %49 = load i64, ptr %20, align 8, !noundef !3 + %49 = load i64, ptr %21, align 8, !noundef !3 %50 = add i64 %49, 1 - store i64 %50, ptr %20, align 8 + store i64 %50, ptr %21, align 8 %51 = load i16, ptr %33, align 2, !noundef !3 %52 = zext i16 %51 to i64 %53 = icmp samesign ult i64 %40, %52 @@ -2070,11 +2068,11 @@ define void @"_ZN96_$LT$alloc..collections..btree..map..BTreeMap$LT$K$C$V$C$A$GT call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #11 unreachable -56: ; preds = %22 +56: ; preds = %23 invoke void @_ZN4core6option13unwrap_failed17hcb3a256a9f1ca882E(ptr nonnull align 8 @anon.cc93a16c7526641d1978c81d652b70db.8) #9 to label %30 unwind label %.loopexit.split-lp120 -57: ; preds = %22 +57: ; preds = %23 invoke void @"_ZN59_$LT$alloc..alloc..Global$u20$as$u20$core..clone..Clone$GT$5clone17h4dd38584f056157bE"(ptr nonnull align 1 %4) to label %59 unwind label %.loopexit.split-lp120 diff --git a/bench/wasmtime-rs/optimized/pc3lkwoxfkbj2dl.ll b/bench/wasmtime-rs/optimized/pc3lkwoxfkbj2dl.ll index 2207b6dadcc..ceb2a334f8e 100644 --- a/bench/wasmtime-rs/optimized/pc3lkwoxfkbj2dl.ll +++ b/bench/wasmtime-rs/optimized/pc3lkwoxfkbj2dl.ll @@ -115,22 +115,6 @@ define void @_ZN4core5slice4sort10merge_sort17hcc30410b81815c73E(ptr align 8 %0, %12 = alloca { ptr, i64, {} }, align 8 %13 = freeze i64 %1 %14 = icmp ult i64 %13, 21 - %.sink.sroa.gep = getelementptr inbounds nuw i8, ptr %10, i64 8 - %.sink.sroa.gep80 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %.sink.sroa.gep81 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %.sink.sroa.gep82 = getelementptr inbounds nuw i8, ptr %6, i64 8 - %.sink.sroa.gep84 = getelementptr inbounds nuw i8, ptr %10, i64 32 - %.sink.sroa.gep85 = getelementptr inbounds nuw i8, ptr %9, i64 32 - %.sink.sroa.gep86 = getelementptr inbounds nuw i8, ptr %7, i64 32 - %.sink.sroa.gep87 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %.sink.sroa.gep89 = getelementptr inbounds nuw i8, ptr %10, i64 16 - %.sink.sroa.gep90 = getelementptr inbounds nuw i8, ptr %9, i64 16 - %.sink.sroa.gep91 = getelementptr inbounds nuw i8, ptr %7, i64 16 - %.sink.sroa.gep92 = getelementptr inbounds nuw i8, ptr %6, i64 16 - %.sink.sroa.gep94 = getelementptr inbounds nuw i8, ptr %10, i64 24 - %.sink.sroa.gep95 = getelementptr inbounds nuw i8, ptr %9, i64 24 - %.sink.sroa.gep96 = getelementptr inbounds nuw i8, ptr %7, i64 24 - %.sink.sroa.gep97 = getelementptr inbounds nuw i8, ptr %6, i64 24 br i1 %14, label %28, label %15 15: ; preds = %3 @@ -383,7 +367,7 @@ define void @_ZN4core5slice4sort10merge_sort17hcc30410b81815c73E(ptr align 8 %0, call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %10) %89 = load i64, ptr %25, align 8, !noundef !3 %90 = icmp ult i64 %86, %89 - br i1 %90, label %91, label %.invoke + br i1 %90, label %91, label %.invoke.split.loop.exit112 91: ; preds = %88 %92 = load ptr, ptr %11, align 8, !nonnull !3, !noundef !3 @@ -395,7 +379,7 @@ define void @_ZN4core5slice4sort10merge_sort17hcc30410b81815c73E(ptr align 8 %0, %97 = add nuw i64 %86, 1 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %9) %98 = icmp ult i64 %97, %89 - br i1 %98, label %99, label %.invoke + br i1 %98, label %99, label %.invoke.split.loop.exit105 99: ; preds = %91 %100 = getelementptr inbounds { i64, i64 }, ptr %92, i64 %97 @@ -524,7 +508,7 @@ define void @_ZN4core5slice4sort10merge_sort17hcc30410b81815c73E(ptr align 8 %0, call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %7) %154 = load i64, ptr %25, align 8, !noundef !3 %155 = icmp ult i64 %97, %154 - br i1 %155, label %156, label %.invoke + br i1 %155, label %156, label %.invoke.split.loop.exit98 156: ; preds = %153 %157 = load ptr, ptr %11, align 8, !nonnull !3, !noundef !3 @@ -539,13 +523,41 @@ define void @_ZN4core5slice4sort10merge_sort17hcc30410b81815c73E(ptr align 8 %0, %.not.i47 = icmp ult i64 %86, %161 br i1 %.not.i47, label %"_ZN4core5slice4sort10merge_sort37RunVec$LT$RunAllocF$C$RunDeallocF$GT$6remove17haf08635e70901d8bE.exit", label %.invoke -.invoke: ; preds = %156, %153, %91, %88 - %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep, %88 ], [ %.sink.sroa.gep80, %91 ], [ %.sink.sroa.gep81, %153 ], [ %.sink.sroa.gep82, %156 ] - %.sink.sroa.phi83 = phi ptr [ %.sink.sroa.gep84, %88 ], [ %.sink.sroa.gep85, %91 ], [ %.sink.sroa.gep86, %153 ], [ %.sink.sroa.gep87, %156 ] - %.sink.sroa.phi88 = phi ptr [ %.sink.sroa.gep89, %88 ], [ %.sink.sroa.gep90, %91 ], [ %.sink.sroa.gep91, %153 ], [ %.sink.sroa.gep92, %156 ] - %.sink.sroa.phi93 = phi ptr [ %.sink.sroa.gep94, %88 ], [ %.sink.sroa.gep95, %91 ], [ %.sink.sroa.gep96, %153 ], [ %.sink.sroa.gep97, %156 ] - %.sink = phi ptr [ %10, %88 ], [ %9, %91 ], [ %7, %153 ], [ %6, %156 ] - %162 = phi ptr [ @anon.799167e198c8f28f48796f1a9c152206.10, %88 ], [ @anon.799167e198c8f28f48796f1a9c152206.11, %91 ], [ @anon.799167e198c8f28f48796f1a9c152206.13, %153 ], [ @anon.799167e198c8f28f48796f1a9c152206.18, %156 ] +.invoke: ; preds = %156 + %.sink.sroa.phi = getelementptr inbounds nuw i8, ptr %6, i64 8 + %.sink.sroa.phi83 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %.sink.sroa.phi88 = getelementptr inbounds nuw i8, ptr %6, i64 16 + %.sink.sroa.phi93 = getelementptr inbounds nuw i8, ptr %6, i64 24 + br label %.invoke + +.invoke.split.loop.exit98: ; preds = %153 + %.sink.sroa.gep81.le = getelementptr inbounds nuw i8, ptr %7, i64 8 + %.sink.sroa.gep86.le = getelementptr inbounds nuw i8, ptr %7, i64 32 + %.sink.sroa.gep91.le = getelementptr inbounds nuw i8, ptr %7, i64 16 + %.sink.sroa.gep96.le = getelementptr inbounds nuw i8, ptr %7, i64 24 + br label %.invoke + +.invoke.split.loop.exit105: ; preds = %91 + %.sink.sroa.gep80.le = getelementptr inbounds nuw i8, ptr %9, i64 8 + %.sink.sroa.gep85.le = getelementptr inbounds nuw i8, ptr %9, i64 32 + %.sink.sroa.gep90.le = getelementptr inbounds nuw i8, ptr %9, i64 16 + %.sink.sroa.gep95.le = getelementptr inbounds nuw i8, ptr %9, i64 24 + br label %.invoke + +.invoke.split.loop.exit112: ; preds = %88 + %.sink.sroa.gep.le = getelementptr inbounds nuw i8, ptr %10, i64 8 + %.sink.sroa.gep84.le = getelementptr inbounds nuw i8, ptr %10, i64 32 + %.sink.sroa.gep89.le = getelementptr inbounds nuw i8, ptr %10, i64 16 + %.sink.sroa.gep94.le = getelementptr inbounds nuw i8, ptr %10, i64 24 + br label %.invoke + +.invoke: ; preds = %.invoke.split.loop.exit112, %.invoke.split.loop.exit105, %.invoke.split.loop.exit98, %.invoke.split.loop.exit + %.sink.sroa.phi = phi ptr [ %.sink.sroa.gep82.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep81.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep80.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep.le, %.invoke.split.loop.exit112 ] + %.sink.sroa.phi83 = phi ptr [ %.sink.sroa.gep87.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep86.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep85.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep84.le, %.invoke.split.loop.exit112 ] + %.sink.sroa.phi88 = phi ptr [ %.sink.sroa.gep92.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep91.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep90.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep89.le, %.invoke.split.loop.exit112 ] + %.sink.sroa.phi93 = phi ptr [ %.sink.sroa.gep97.le, %.invoke.split.loop.exit ], [ %.sink.sroa.gep96.le, %.invoke.split.loop.exit98 ], [ %.sink.sroa.gep95.le, %.invoke.split.loop.exit105 ], [ %.sink.sroa.gep94.le, %.invoke.split.loop.exit112 ] + %.sink = phi ptr [ %6, %.invoke.split.loop.exit ], [ %7, %.invoke.split.loop.exit98 ], [ %9, %.invoke.split.loop.exit105 ], [ %10, %.invoke.split.loop.exit112 ] + %162 = phi ptr [ @anon.799167e198c8f28f48796f1a9c152206.18, %.invoke.split.loop.exit ], [ @anon.799167e198c8f28f48796f1a9c152206.13, %.invoke.split.loop.exit98 ], [ @anon.799167e198c8f28f48796f1a9c152206.11, %.invoke.split.loop.exit105 ], [ @anon.799167e198c8f28f48796f1a9c152206.10, %.invoke.split.loop.exit112 ] store ptr @anon.799167e198c8f28f48796f1a9c152206.1, ptr %.sink, align 8 store i64 1, ptr %.sink.sroa.phi, align 8 store ptr null, ptr %.sink.sroa.phi83, align 8 diff --git a/bench/wireshark/optimized/packet-ieee80211.ll b/bench/wireshark/optimized/packet-ieee80211.ll index f44d60774c4..56ecded1b4f 100644 --- a/bench/wireshark/optimized/packet-ieee80211.ll +++ b/bench/wireshark/optimized/packet-ieee80211.ll @@ -43783,8 +43783,6 @@ weak_iv.exit: ; preds = %1102, %1136 1217: ; preds = %1216 %1218 = load i8, ptr @treat_as_s1g, align 1, !range !6, !noundef !7 %1219 = trunc nuw i8 %1218 to i1 - %.sink.i.sroa.gep.i = getelementptr inbounds nuw i8, ptr %10, i64 24 - %.sink.i.sroa.gep403.i = getelementptr inbounds nuw i8, ptr %10, i64 16 br i1 %1219, label %sta_is_s1g.exit.i, label %1220 1220: ; preds = %1217 @@ -43869,12 +43867,14 @@ sta_is_s1g.exit.i: ; preds = %1220, %1217 %1260 = getelementptr inbounds nuw i8, ptr %10, i64 2 %1261 = load i8, ptr %1260, align 2, !range !6, !noundef !7 %1262 = trunc nuw i8 %1261 to i1 + %.sink.i.sroa.gep.i = getelementptr inbounds nuw i8, ptr %10, i64 24 br i1 %1262, label %.sink.split.i.i, label %ieee_80211_do_association_sanity_check.exit.i 1263: ; preds = %1245 %1264 = getelementptr inbounds nuw i8, ptr %10, i64 1 %1265 = load i8, ptr %1264, align 1, !range !6, !noundef !7 %1266 = trunc nuw i8 %1265 to i1 + %.sink.i.sroa.gep403.i = getelementptr inbounds nuw i8, ptr %10, i64 16 br i1 %1266, label %.sink.split.i.i, label %ieee_80211_do_association_sanity_check.exit.i .sink.split.i.i: ; preds = %1263, %1259 @@ -43997,16 +43997,18 @@ get_or_create_conversation_data.exit.i: ; preds = %1293, %1282 %1338 = getelementptr inbounds nuw i8, ptr %10, i64 2 %1339 = load i8, ptr %1338, align 2, !range !6, !noundef !7 %1340 = trunc nuw i8 %1339 to i1 + %.sink.i348.sroa.gep.i = getelementptr inbounds nuw i8, ptr %10, i64 24 br i1 %1340, label %.sink.split.i347.i, label %ieee_80211_do_association_sanity_check.exit350.i 1341: ; preds = %1321 %1342 = getelementptr inbounds nuw i8, ptr %10, i64 1 %1343 = load i8, ptr %1342, align 1, !range !6, !noundef !7 %1344 = trunc nuw i8 %1343 to i1 + %.sink.i348.sroa.gep404.i = getelementptr inbounds nuw i8, ptr %10, i64 16 br i1 %1344, label %.sink.split.i347.i, label %ieee_80211_do_association_sanity_check.exit350.i .sink.split.i347.i: ; preds = %1341, %1337 - %.sink.i348.sroa.phi.i = phi ptr [ %.sink.i.sroa.gep.i, %1337 ], [ %.sink.i.sroa.gep403.i, %1341 ] + %.sink.i348.sroa.phi.i = phi ptr [ %.sink.i348.sroa.gep.i, %1337 ], [ %.sink.i348.sroa.gep404.i, %1341 ] %.str.9869.sink.i349.i = phi ptr [ @.str.9868, %1337 ], [ @.str.9869, %1341 ] %1345 = load ptr, ptr %.sink.i348.sroa.phi.i, align 8 %1346 = call ptr (ptr, ptr, ptr, ptr, ...) @expert_add_info_format(ptr noundef %1, ptr noundef %1345, ptr noundef nonnull @ei_ieee80211_mismatched_akm_suite, ptr noundef nonnull %.str.9869.sink.i349.i) diff --git a/bench/wolfssl/optimized/hash.ll b/bench/wolfssl/optimized/hash.ll index a4f182ff4a6..b970c939834 100644 --- a/bench/wolfssl/optimized/hash.ll +++ b/bench/wolfssl/optimized/hash.ll @@ -348,13 +348,16 @@ define dso_local i32 @sha224_test() local_unnamed_addr #0 { store i64 56, ptr %.sroa.6.0..sroa_idx, align 16, !tbaa !9 %5 = call i32 @wc_InitSha224(ptr noundef nonnull %1) #6 %.not = icmp eq i32 %5, 0 + br i1 %.not, label %.preheader.preheader, label %.loopexit + +.preheader.preheader: ; preds = %0 %indvars.iv.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 32 - br i1 %.not, label %.preheader, label %.loopexit + br label %.preheader -.preheader: ; preds = %0, %17 - %6 = phi i1 [ false, %17 ], [ true, %0 ] - %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %17 ], [ %3, %0 ] - %indvars.iv = phi i32 [ -11, %17 ], [ -10, %0 ] +.preheader: ; preds = %.preheader.preheader, %17 + %6 = phi i1 [ false, %17 ], [ true, %.preheader.preheader ] + %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %17 ], [ %3, %.preheader.preheader ] + %indvars.iv = phi i32 [ -11, %17 ], [ -10, %.preheader.preheader ] %7 = load ptr, ptr %indvars.iv.sroa.phi, align 16, !tbaa !11 %8 = getelementptr inbounds nuw i8, ptr %indvars.iv.sroa.phi, i64 16 %9 = load i64, ptr %8, align 16, !tbaa !13 @@ -411,13 +414,16 @@ define dso_local i32 @sha256_test() local_unnamed_addr #0 { store i64 56, ptr %.sroa.7.0..sroa_idx, align 16, !tbaa !9 %5 = call i32 @wc_InitSha256(ptr noundef nonnull %1) #6 %.not = icmp eq i32 %5, 0 + br i1 %.not, label %.preheader.preheader, label %.loopexit + +.preheader.preheader: ; preds = %0 %indvars.iv.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 32 - br i1 %.not, label %.preheader, label %.loopexit + br label %.preheader -.preheader: ; preds = %0, %17 - %6 = phi i1 [ false, %17 ], [ true, %0 ] - %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %17 ], [ %3, %0 ] - %indvars.iv = phi i32 [ -11, %17 ], [ -10, %0 ] +.preheader: ; preds = %.preheader.preheader, %17 + %6 = phi i1 [ false, %17 ], [ true, %.preheader.preheader ] + %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %17 ], [ %3, %.preheader.preheader ] + %indvars.iv = phi i32 [ -11, %17 ], [ -10, %.preheader.preheader ] %7 = load ptr, ptr %indvars.iv.sroa.phi, align 16, !tbaa !11 %8 = getelementptr inbounds nuw i8, ptr %indvars.iv.sroa.phi, i64 16 %9 = load i64, ptr %8, align 16, !tbaa !13 @@ -474,13 +480,16 @@ define dso_local i32 @sha512_test() local_unnamed_addr #0 { store i64 112, ptr %.sroa.7.0..sroa_idx, align 16, !tbaa !9 %5 = call i32 @wc_InitSha512(ptr noundef nonnull %1) #6 %.not = icmp eq i32 %5, 0 + br i1 %.not, label %.preheader.preheader, label %.loopexit + +.preheader.preheader: ; preds = %0 %indvars.iv.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 32 - br i1 %.not, label %.preheader, label %.loopexit + br label %.preheader -.preheader: ; preds = %0, %17 - %6 = phi i1 [ false, %17 ], [ true, %0 ] - %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %17 ], [ %3, %0 ] - %indvars.iv = phi i32 [ -11, %17 ], [ -10, %0 ] +.preheader: ; preds = %.preheader.preheader, %17 + %6 = phi i1 [ false, %17 ], [ true, %.preheader.preheader ] + %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %17 ], [ %3, %.preheader.preheader ] + %indvars.iv = phi i32 [ -11, %17 ], [ -10, %.preheader.preheader ] %7 = load ptr, ptr %indvars.iv.sroa.phi, align 16, !tbaa !11 %8 = getelementptr inbounds nuw i8, ptr %indvars.iv.sroa.phi, i64 16 %9 = load i64, ptr %8, align 16, !tbaa !13 @@ -537,13 +546,16 @@ define dso_local i32 @sha384_test() local_unnamed_addr #0 { store i64 112, ptr %.sroa.7.0..sroa_idx, align 16, !tbaa !9 %5 = call i32 @wc_InitSha384(ptr noundef nonnull %1) #6 %.not = icmp eq i32 %5, 0 + br i1 %.not, label %.preheader.preheader, label %.loopexit + +.preheader.preheader: ; preds = %0 %indvars.iv.sroa.gep = getelementptr inbounds nuw i8, ptr %3, i64 32 - br i1 %.not, label %.preheader, label %.loopexit + br label %.preheader -.preheader: ; preds = %0, %17 - %6 = phi i1 [ false, %17 ], [ true, %0 ] - %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %17 ], [ %3, %0 ] - %indvars.iv = phi i32 [ -11, %17 ], [ -10, %0 ] +.preheader: ; preds = %.preheader.preheader, %17 + %6 = phi i1 [ false, %17 ], [ true, %.preheader.preheader ] + %indvars.iv.sroa.phi = phi ptr [ %indvars.iv.sroa.gep, %17 ], [ %3, %.preheader.preheader ] + %indvars.iv = phi i32 [ -11, %17 ], [ -10, %.preheader.preheader ] %7 = load ptr, ptr %indvars.iv.sroa.phi, align 16, !tbaa !11 %8 = getelementptr inbounds nuw i8, ptr %indvars.iv.sroa.phi, i64 16 %9 = load i64, ptr %8, align 16, !tbaa !13 diff --git a/bench/xgboost/optimized/tracker.ll b/bench/xgboost/optimized/tracker.ll index 47f983970a6..eed3f10662a 100644 --- a/bench/xgboost/optimized/tracker.ll +++ b/bench/xgboost/optimized/tracker.ll @@ -1698,10 +1698,6 @@ _ZN7xgboost4JsonC2ERKS0_.exit15.i.i: ; preds = %96 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14), !noalias !33 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15), !noalias !33 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16), !noalias !33 - %.sink16.i.sroa.gep.i95 = getelementptr inbounds nuw i8, ptr %9, i64 32 - %.sink16.i.sroa.gep3.i96 = getelementptr inbounds nuw i8, ptr %6, i64 32 - %.sink16.i.sroa.gep5.i97 = getelementptr inbounds nuw i8, ptr %9, i64 36 - %.sink16.i.sroa.gep6.i98 = getelementptr inbounds nuw i8, ptr %6, i64 36 br label %151 _ZN7xgboost4JsonD2Ev.exit7.sink.split.i.i: ; preds = %139, %124, %109 @@ -1732,10 +1728,6 @@ _ZN7xgboost4JsonD2Ev.exit7.sink.split.i.i: ; preds = %139, %124, %109 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %15), !noalias !33 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16), !noalias !33 %.not.i.i24 = icmp eq ptr %.pr70.pr, null - %.sink16.i.sroa.gep.i = getelementptr inbounds nuw i8, ptr %9, i64 32 - %.sink16.i.sroa.gep3.i = getelementptr inbounds nuw i8, ptr %6, i64 32 - %.sink16.i.sroa.gep5.i = getelementptr inbounds nuw i8, ptr %9, i64 36 - %.sink16.i.sroa.gep6.i = getelementptr inbounds nuw i8, ptr %6, i64 36 br i1 %.not.i.i24, label %151, label %149 149: ; preds = %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit.thread", %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit" @@ -1745,10 +1737,6 @@ _ZN7xgboost4JsonD2Ev.exit7.sink.split.i.i: ; preds = %139, %124, %109 br label %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_4EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit" 151: ; preds = %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit.thread92", %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit" - %.sink16.i.sroa.gep6.i103 = phi ptr [ %.sink16.i.sroa.gep6.i98, %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit.thread92" ], [ %.sink16.i.sroa.gep6.i, %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit" ] - %.sink16.i.sroa.gep5.i102 = phi ptr [ %.sink16.i.sroa.gep5.i97, %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit.thread92" ], [ %.sink16.i.sroa.gep5.i, %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit" ] - %.sink16.i.sroa.gep3.i101 = phi ptr [ %.sink16.i.sroa.gep3.i96, %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit.thread92" ], [ %.sink16.i.sroa.gep3.i, %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit" ] - %.sink16.i.sroa.gep.i100 = phi ptr [ %.sink16.i.sroa.gep.i95, %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit.thread92" ], [ %.sink16.i.sroa.gep.i, %"_ZN7xgboost10collectivelsIZNS0_12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEE3$_3EENSt9enable_ifIXsr3stdE14is_invocable_vIT_EENS0_6ResultEE4typeEOS9_OS8_.exit" ] call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %5), !noalias !43 call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %6), !noalias !43 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7), !noalias !43 @@ -1773,6 +1761,8 @@ _ZN7xgboost4JsonD2Ev.exit7.sink.split.i.i: ; preds = %139, %124, %109 %158 = load i32, ptr %25, align 4, !noalias !46 %159 = load i32, ptr %24, align 4, !noalias !46 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(40) %6, ptr noundef nonnull align 8 dereferenceable(32) %7) #10, !noalias !46 + %.sink101.sroa.gep102 = getelementptr inbounds nuw i8, ptr %6, i64 32 + %.sink101.sroa.gep105 = getelementptr inbounds nuw i8, ptr %6, i64 36 br label %"_ZZN7xgboost10collective12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEENK3$_4clEv.exit.i" 160: ; preds = %.noexc26 @@ -1792,6 +1782,8 @@ _ZN7xgboost4JsonD2Ev.exit7.sink.split.i.i: ; preds = %139, %124, %109 %164 = load i32, ptr %25, align 4, !noalias !46 %165 = load i32, ptr %24, align 4, !noalias !46 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EOS4_(ptr noundef nonnull align 8 dereferenceable(40) %9, ptr noundef nonnull align 8 dereferenceable(32) %10) #10, !noalias !46 + %.sink101.sroa.gep = getelementptr inbounds nuw i8, ptr %9, i64 32 + %.sink101.sroa.gep104 = getelementptr inbounds nuw i8, ptr %9, i64 36 br label %"_ZZN7xgboost10collective12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEENK3$_4clEv.exit.i" 166: ; preds = %.noexc27 @@ -1806,8 +1798,8 @@ _ZN7xgboost4JsonD2Ev.exit7.sink.split.i.i: ; preds = %139, %124, %109 br label %.body28 "_ZZN7xgboost10collective12RabitTracker11WorkerProxyC1EiNS0_9TCPSocketENS0_11SockAddressEENK3$_4clEv.exit.i": ; preds = %163, %157 - %.sink16.i.sroa.phi.i = phi ptr [ %.sink16.i.sroa.gep.i100, %163 ], [ %.sink16.i.sroa.gep3.i101, %157 ] - %.sink16.i.sroa.phi4.i = phi ptr [ %.sink16.i.sroa.gep5.i102, %163 ], [ %.sink16.i.sroa.gep6.i103, %157 ] + %.sink16.i.sroa.phi.i = phi ptr [ %.sink101.sroa.gep, %163 ], [ %.sink101.sroa.gep102, %157 ] + %.sink16.i.sroa.phi4.i = phi ptr [ %.sink101.sroa.gep104, %163 ], [ %.sink101.sroa.gep105, %157 ] %.sink16.i.i = phi ptr [ %9, %163 ], [ %6, %157 ] %.sink14.i.i = phi i32 [ %164, %163 ], [ %158, %157 ] %.sink11.i.i = phi i32 [ %165, %163 ], [ %159, %157 ] @@ -16174,8 +16166,6 @@ define linkonce_odr void @_ZN7xgboost10collective9TCPSocket6AcceptEPS1_PNS0_11So %20 = load i32, ptr %1, align 4 %21 = call i32 @getsockopt(i32 noundef %20, i32 noundef 1, i32 noundef 39, ptr noundef nonnull %8, ptr noundef nonnull %9) #10 %.not.i = icmp eq i32 %21, 0 - %.sink45.sroa.gep = getelementptr inbounds nuw i8, ptr %19, i64 4 - %.sink45.sroa.gep48 = getelementptr inbounds nuw i8, ptr %14, i64 4 br i1 %.not.i, label %_ZNK7xgboost10collective9TCPSocket6DomainEv.exit, label %22 22: ; preds = %4 @@ -16261,6 +16251,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr store i64 %.sroa.0.0.copyload, ptr %.sroa.239.0..sroa_idx, align 4 %.sroa.340.0..sroa_idx = getelementptr inbounds nuw i8, ptr %3, i64 36 store i64 %.sroa.2.0.copyload, ptr %.sroa.340.0..sroa_idx, align 4 + %.sink45.sroa.gep48 = getelementptr inbounds nuw i8, ptr %14, i64 4 br label %64 46: ; preds = %_ZNK7xgboost10collective9TCPSocket6DomainEv.exit @@ -16327,6 +16318,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit29: ; %.sroa.033.28..sroa_idx49 = getelementptr inbounds nuw i8, ptr %.sroa.033, i64 28 call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(16) %.sroa.033.28..sroa_idx49, i8 0, i64 16, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(44) %3, ptr noundef nonnull align 8 dereferenceable(44) %.sroa.033, i64 44, i1 false) + %.sink45.sroa.gep = getelementptr inbounds nuw i8, ptr %19, i64 4 br label %64 64: ; preds = %63, %45 diff --git a/bench/z3/optimized/pb_sls.ll b/bench/z3/optimized/pb_sls.ll index 6a0bbd68031..60fe80f12a0 100644 --- a/bench/z3/optimized/pb_sls.ll +++ b/bench/z3/optimized/pb_sls.ll @@ -3374,12 +3374,6 @@ entry: %m_manager.i = getelementptr inbounds nuw i8, ptr %tmp, i64 8 store ptr %0, ptr %m_manager.i, align 8 %m_rewrite = getelementptr inbounds nuw i8, ptr %this, i64 672 - %ref.tmp200.sink432.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp200, i64 4 - %ref.tmp200.sink432.sroa.gep439 = getelementptr inbounds nuw i8, ptr %ref.tmp227, i64 4 - %ref.tmp200.sink432.sroa.gep440 = getelementptr inbounds nuw i8, ptr %ref.tmp200, i64 4 - %ref.tmp200.sink432.sroa.gep442 = getelementptr inbounds nuw i8, ptr %ref.tmp200, i64 8 - %ref.tmp200.sink432.sroa.gep443 = getelementptr inbounds nuw i8, ptr %ref.tmp227, i64 8 - %ref.tmp200.sink432.sroa.gep444 = getelementptr inbounds nuw i8, ptr %ref.tmp200, i64 8 invoke void @_ZN11th_rewriterclEP4exprR7obj_refIS0_11ast_managerE(ptr noundef nonnull align 8 dereferenceable(16) %m_rewrite, ptr noundef %_f, ptr noundef nonnull align 8 dereferenceable(16) %tmp) to label %invoke.cont3 unwind label %lpad @@ -4352,6 +4346,8 @@ invoke.cont153: ; preds = %land.rhs.i.i for.cond157.preheader: ; preds = %invoke.cont153 %cmp158410.not = icmp eq i32 %3, 0 + %ref.tmp200.sink432.sroa.gep = getelementptr inbounds nuw i8, ptr %ref.tmp200, i64 4 + %ref.tmp200.sink432.sroa.gep442 = getelementptr inbounds nuw i8, ptr %ref.tmp200, i64 8 br i1 %cmp158410.not, label %invoke.cont225.invoke, label %for.body159.lr.ph for.body159.lr.ph: ; preds = %for.cond157.preheader @@ -4558,14 +4554,21 @@ invoke.cont220: ; preds = %if.end218 store i8 0, ptr %m_kind.i366, align 4 %m_ptr.i369 = getelementptr inbounds nuw i8, ptr %ref.tmp223, i64 8 store ptr null, ptr %m_ptr.i369, align 8 + %ref.tmp200.sink432.sroa.gep439 = getelementptr inbounds nuw i8, ptr %ref.tmp227, i64 4 + %ref.tmp200.sink432.sroa.gep443 = getelementptr inbounds nuw i8, ptr %ref.tmp227, i64 8 invoke void @_ZN22_scoped_numeral_vectorI11mpz_managerILb0EEE9push_backERK3mpz(ptr noundef nonnull align 8 dereferenceable(16) %m_weights222, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp223) to label %invoke.cont225.invoke unwind label %lpad18.loopexit.split-lp.loopexit.split-lp -invoke.cont225.invoke: ; preds = %for.inc196, %invoke.cont220, %for.cond157.preheader - %.sink = phi i8 [ 0, %for.cond157.preheader ], [ 1, %invoke.cont220 ], [ 0, %for.inc196 ] - %ref.tmp200.sink432.sroa.phi = phi ptr [ %ref.tmp200.sink432.sroa.gep, %for.cond157.preheader ], [ %ref.tmp200.sink432.sroa.gep439, %invoke.cont220 ], [ %ref.tmp200.sink432.sroa.gep440, %for.inc196 ] - %ref.tmp200.sink432.sroa.phi441 = phi ptr [ %ref.tmp200.sink432.sroa.gep442, %for.cond157.preheader ], [ %ref.tmp200.sink432.sroa.gep443, %invoke.cont220 ], [ %ref.tmp200.sink432.sroa.gep444, %for.inc196 ] - %ref.tmp200.sink432 = phi ptr [ %ref.tmp200, %for.cond157.preheader ], [ %ref.tmp227, %invoke.cont220 ], [ %ref.tmp200, %for.inc196 ] +invoke.cont225.invoke: ; preds = %for.inc196 + %.sink = getelementptr inbounds nuw i8, ptr %ref.tmp200, i64 4 + %ref.tmp200.sink432.sroa.phi = getelementptr inbounds nuw i8, ptr %ref.tmp200, i64 8 + br label %invoke.cont225.invoke + +invoke.cont225.invoke: ; preds = %invoke.cont225.invoke.loopexit, %invoke.cont220, %for.cond157.preheader + %.sink = phi i8 [ 0, %for.cond157.preheader ], [ 1, %invoke.cont220 ], [ 0, %invoke.cont225.invoke.loopexit ] + %ref.tmp200.sink432.sroa.phi = phi ptr [ %ref.tmp200.sink432.sroa.gep, %for.cond157.preheader ], [ %ref.tmp200.sink432.sroa.gep439, %invoke.cont220 ], [ %ref.tmp200.sink432.sroa.gep440, %invoke.cont225.invoke.loopexit ] + %ref.tmp200.sink432.sroa.phi441 = phi ptr [ %ref.tmp200.sink432.sroa.gep442, %for.cond157.preheader ], [ %ref.tmp200.sink432.sroa.gep443, %invoke.cont220 ], [ %ref.tmp200.sink432.sroa.gep444, %invoke.cont225.invoke.loopexit ] + %ref.tmp200.sink432 = phi ptr [ %ref.tmp200, %for.cond157.preheader ], [ %ref.tmp227, %invoke.cont220 ], [ %ref.tmp200, %invoke.cont225.invoke.loopexit ] %m_eq199 = getelementptr inbounds nuw i8, ptr %cls, i64 72 store i8 %.sink, ptr %m_eq199, align 8 store i32 1, ptr %ref.tmp200.sink432, align 8 diff --git a/bench/zed-rs/optimized/8eitysufhvsi37fsnmjuossia.ll b/bench/zed-rs/optimized/8eitysufhvsi37fsnmjuossia.ll index 6d46eb878f5..5e279357673 100644 --- a/bench/zed-rs/optimized/8eitysufhvsi37fsnmjuossia.ll +++ b/bench/zed-rs/optimized/8eitysufhvsi37fsnmjuossia.ll @@ -13950,11 +13950,14 @@ define internal fastcc void @"_ZN78_$LT$alacritty_terminal..term..Term$LT$T$GT$$ 26: ; preds = %22 %27 = load i64, ptr %6, align 8, !range !209, !noalias !1617, !noundef !4 %trunc.i = trunc nuw i64 %27 to i1 - br i1 %trunc.i, label %_ZN5alloc6string6String9from_utf817ha64de2cd248cdab0E.exit, label %_ZN5alloc6string6String9from_utf817ha64de2cd248cdab0E.exit.thread + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !1617 + br i1 %trunc.i, label %34, label %.noexc + +common.resume: ; preds = %23, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.7238318159812895458.exit.i.i1.i.i" + resume { ptr, i32 } %24 _ZN5alloc6string6String9from_utf817ha64de2cd248cdab0E.exit.thread: ; preds = %26 %28 = ptrtoint ptr %.sroa.4.0.copyload to i64 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !1617 %29 = getelementptr inbounds nuw i8, ptr %0, i64 640 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %7) %30 = getelementptr inbounds nuw i8, ptr %7, i64 24 @@ -13970,15 +13973,7 @@ _ZN5alloc6string6String9from_utf817ha64de2cd248cdab0E.exit.thread: ; preds = %26 %32 = icmp eq i64 %31, -9223372036854775795 br i1 %32, label %34, label %"_ZN4core3ptr135drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$futures_channel..mpsc..TrySendError$LT$alacritty_terminal..event..Event$GT$$GT$$GT$17h26c89d34f1fc06eeE.llvm.11764167460322964251.exit.i" -common.resume: ; preds = %23, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.7238318159812895458.exit.i.i1.i.i" - resume { ptr, i32 } %24 - -_ZN5alloc6string6String9from_utf817ha64de2cd248cdab0E.exit: ; preds = %26 - call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !1617 - %33 = icmp eq i64 %20, 0 - br i1 %33, label %"_ZN4core3ptr101drop_in_place$LT$core..result..Result$LT$alloc..string..String$C$alloc..string..FromUtf8Error$GT$$GT$17hd326e2171310553dE.exit", label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h9309e2be6c4b1ca3E.exit.sink.split.i" - -"_ZN4core3ptr135drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$futures_channel..mpsc..TrySendError$LT$alacritty_terminal..event..Event$GT$$GT$$GT$17h26c89d34f1fc06eeE.llvm.11764167460322964251.exit.i": ; preds = %_ZN5alloc6string6String9from_utf817ha64de2cd248cdab0E.exit.thread +_ZN5alloc6string6String9from_utf817ha64de2cd248cdab0E.exit: ; preds = %_ZN5alloc6string6String9from_utf817ha64de2cd248cdab0E.exit.thread call void @"_ZN4core3ptr53drop_in_place$LT$alacritty_terminal..event..Event$GT$17h0c891a8ef001c34aE.llvm.7238318159812895458"(ptr noalias noundef nonnull align 8 dereferenceable(40) %5) br label %34 @@ -13987,11 +13982,15 @@ _ZN5alloc6string6String9from_utf817ha64de2cd248cdab0E.exit: ; preds = %26 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) br label %"_ZN4core3ptr101drop_in_place$LT$core..result..Result$LT$alloc..string..String$C$alloc..string..FromUtf8Error$GT$$GT$17hd326e2171310553dE.exit" -"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h9309e2be6c4b1ca3E.exit.sink.split.i": ; preds = %_ZN5alloc6string6String9from_utf817ha64de2cd248cdab0E.exit +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h9309e2be6c4b1ca3E.exit.sink.split.i": ; preds = %26 + %35 = icmp eq i64 %20, 0 + br i1 %35, label %"_ZN4core3ptr101drop_in_place$LT$core..result..Result$LT$alloc..string..String$C$alloc..string..FromUtf8Error$GT$$GT$17hd326e2171310553dE.exit", label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h9309e2be6c4b1ca3E.exit.sink.split.i" + +"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h9309e2be6c4b1ca3E.exit.sink.split.i": ; preds = %34 tail call void @__rust_dealloc(ptr noundef nonnull %.sroa.4.0.copyload, i64 noundef %20, i64 noundef 1) #27, !noalias !1632 br label %"_ZN4core3ptr101drop_in_place$LT$core..result..Result$LT$alloc..string..String$C$alloc..string..FromUtf8Error$GT$$GT$17hd326e2171310553dE.exit" -"_ZN4core3ptr101drop_in_place$LT$core..result..Result$LT$alloc..string..String$C$alloc..string..FromUtf8Error$GT$$GT$17hd326e2171310553dE.exit": ; preds = %34, %_ZN5alloc6string6String9from_utf817ha64de2cd248cdab0E.exit, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h9309e2be6c4b1ca3E.exit.sink.split.i", %19 +"_ZN4core3ptr101drop_in_place$LT$core..result..Result$LT$alloc..string..String$C$alloc..string..FromUtf8Error$GT$$GT$17hd326e2171310553dE.exit": ; preds = %34, %34, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h9309e2be6c4b1ca3E.exit.sink.split.i", %19 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %8) br label %17 diff --git a/bench/zed-rs/optimized/c4c7jl64zv8zhv2ne6xdvhty4.ll b/bench/zed-rs/optimized/c4c7jl64zv8zhv2ne6xdvhty4.ll index 70e207741ab..7b11052baf2 100644 --- a/bench/zed-rs/optimized/c4c7jl64zv8zhv2ne6xdvhty4.ll +++ b/bench/zed-rs/optimized/c4c7jl64zv8zhv2ne6xdvhty4.ll @@ -10798,7 +10798,6 @@ define hidden void @_ZN5which9which_all17h3e8b4bfc64327420E.llvm.180078629988420 call void @_ZN3std3env11current_dir17h5c35560bd39f3dc1E(ptr noalias noundef nonnull sret([24 x i8]) align 8 captures(none) dereferenceable(24) %15) %16 = load i64, ptr %15, align 8, !range !53, !noundef !4 %17 = icmp eq i64 %16, -9223372036854775808 - %.sink.i.sroa.gep17 = getelementptr inbounds nuw i8, ptr %13, i64 8 %18 = getelementptr inbounds nuw i8, ptr %15, i64 8 %.val9 = load ptr, ptr %18, align 8 br i1 %17, label %21, label %19 @@ -11014,6 +11013,7 @@ _ZN3std4path7PathBuf4push17h6312f45eb4e33c1fE.exit.i.i: ; preds = %"_ZN63_$LT$al store ptr %60, ptr %.sroa.652.sroa.4.0..sroa.652.0..sroa_idx.sroa_idx.i, align 8, !alias.scope !3328, !noalias !3441 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %10), !noalias !3337 %.val88.i = load i64, ptr %13, align 8, !range !53, !alias.scope !3331, !noalias !3341, !noundef !4 + %.sink.i.sroa.gep17 = getelementptr inbounds nuw i8, ptr %13, i64 8 %".sink.i.sroa.phi.sroa.speculate.load._ZN61_$LT$std..path..PathBuf$u20$as$u20$which..finder..PathExt$GT$11to_absolute17hea2e3622eabd0bfcE.exit.i" = load ptr, ptr %.sink.i.sroa.gep17, align 8, !alias.scope !3442, !noalias !3443 switch i64 %.val88.i, label %.critedge.sink.split.i [ i64 -9223372036854775808, label %114 @@ -11059,7 +11059,8 @@ _ZN3std4path7PathBuf4push17h6312f45eb4e33c1fE.exit.i.i: ; preds = %"_ZN63_$LT$al %.sroa.614.sroa.5.sroa.5.0.copyload.i = load i64, ptr %.sroa.614.sroa.5.sroa.5.0..sroa.614.sroa.5.0..sroa.614.0..sroa_idx.sroa_idx.sroa_idx.i, align 8, !alias.scope !3331, !noalias !3341 %.sroa.614.sroa.5.0..sroa.614.0..sroa_idx.sroa_idx.i = getelementptr inbounds nuw i8, ptr %13, i64 9 %.sroa.614.sroa.5.sroa.0.0.copyload.i = load i56, ptr %.sroa.614.sroa.5.0..sroa.614.0..sroa_idx.sroa_idx.i, align 1, !alias.scope !3331, !noalias !3341 - %.sroa.614.sroa.0.0.copyload.i = load i8, ptr %.sink.i.sroa.gep17, align 8, !alias.scope !3331, !noalias !3341 + %.sroa.614.sroa.0.0.copyload.i = getelementptr inbounds nuw i8, ptr %13, i64 8 + %.sroa.614.sroa.0.0.copyload.i = load i8, ptr %.sroa.614.0..sroa_idx.i, align 8, !alias.scope !3331, !noalias !3341 %.sroa.619.0.insert.ext.i = zext i8 %.sroa.614.sroa.0.0.copyload.i to i64 %.sroa.619.1.insert.ext.i = zext i56 %.sroa.614.sroa.5.sroa.0.0.copyload.i to i64 %.sroa.619.1.insert.shift.i = shl nuw i64 %.sroa.619.1.insert.ext.i, 8 @@ -11255,7 +11256,8 @@ _ZN3std4path7PathBuf4push17h6312f45eb4e33c1fE.exit.i.i: ; preds = %"_ZN63_$LT$al ] "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.148755494358810581.exit.i.i1.i.i.i.i106.i": ; preds = %113 - %.val91.i = load ptr, ptr %.sink.i.sroa.gep17, align 8, !alias.scope !3331, !noalias !3341, !nonnull !4, !noundef !4 + %.val91.i = getelementptr inbounds nuw i8, ptr %13, i64 8 + %.val91.i = load ptr, ptr %114, align 8, !alias.scope !3331, !noalias !3341, !nonnull !4, !noundef !4 call void @__rust_dealloc(ptr noundef nonnull %.val91.i, i64 noundef %.val90.i, i64 noundef 1) #46, !noalias !3561 br label %.body diff --git a/bench/zed-rs/optimized/e39hl8e3ablf1r15aeuqbekxt.ll b/bench/zed-rs/optimized/e39hl8e3ablf1r15aeuqbekxt.ll index 8b1674bd957..f593b0e2f93 100644 --- a/bench/zed-rs/optimized/e39hl8e3ablf1r15aeuqbekxt.ll +++ b/bench/zed-rs/optimized/e39hl8e3ablf1r15aeuqbekxt.ll @@ -110624,8 +110624,6 @@ define void @_ZN7project9lsp_store8LspStore18resolve_inlay_hint17h06e99000d5faf7 %26 = getelementptr inbounds nuw i8, ptr %1, i64 256 %27 = load i64, ptr %26, align 16, !range !1207, !alias.scope !28936, !noalias !28933, !noundef !4 %28 = icmp eq i64 %27, -9223372036854775807 - %.sink.i50.sroa.gep = getelementptr inbounds nuw i8, ptr %18, i64 1081 - %.sink.i50.sroa.gep69 = getelementptr inbounds nuw i8, ptr %18, i64 1041 br i1 %28, label %29, label %60 29: ; preds = %6 @@ -111221,6 +111219,7 @@ _ZN4gpui3app10entity_map9EntityMap4read17h13601779d64c4bf9E.exit38: ; preds = %. 218: ; preds = %"_ZN4core3ptr71drop_in_place$LT$alloc..sync..Arc$LT$language..CachedLspAdapter$GT$$GT$17hf8e35b91c73b79c4E.exit" %219 = getelementptr inbounds nuw i8, ptr %18, i64 1032 %220 = load i64, ptr %219, align 8, !range !94, !alias.scope !29032, !noundef !4 + %.sink.i50.sroa.gep69 = getelementptr inbounds nuw i8, ptr %18, i64 1041 switch i64 %220, label %221 [ i64 -9223372036854775805, label %_ZN7project11lsp_command10InlayHints18can_resolve_inlays17hb0d0db4b8b58d636E.exit.thread i64 -9223372036854775806, label %_ZN7project11lsp_command10InlayHints18can_resolve_inlays17hb0d0db4b8b58d636E.exit.thread @@ -111228,6 +111227,7 @@ _ZN4gpui3app10entity_map9EntityMap4read17h13601779d64c4bf9E.exit38: ; preds = %. ] 221: ; preds = %218 + %.sink.i50.sroa.gep = getelementptr inbounds nuw i8, ptr %18, i64 1081 br label %_ZN7project11lsp_command10InlayHints18can_resolve_inlays17hb0d0db4b8b58d636E.exit _ZN7project11lsp_command10InlayHints18can_resolve_inlays17hb0d0db4b8b58d636E.exit: ; preds = %218, %221 @@ -128294,8 +128294,6 @@ define hidden void @_ZN7project9lsp_store8LspStore15on_lsp_progress17hb480e77a53 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %26) %28 = load i64, ptr %1, align 8, !range !1116, !noundef !4 %29 = icmp eq i64 %28, -9223372036854775808 - %.sink.i.sroa.gep = getelementptr inbounds nuw i8, ptr %21, i64 16 - %.sink.i.sroa.gep122 = getelementptr inbounds nuw i8, ptr %21, i64 32 br i1 %29, label %49, label %31 30: ; preds = %"_ZN4core6option15Option$LT$T$GT$6map_or17h525bbd80119e034eE.exit" @@ -129125,6 +129123,7 @@ define hidden void @_ZN7project9lsp_store8LspStore15on_lsp_progress17hb480e77a53 ] "_ZN4core3ptr61drop_in_place$LT$lsp_types..progress..WorkDoneProgressEnd$GT$17hea438cdd30942362E.exit.sink.split.i": ; preds = %300 + %.sink.i.sroa.gep = getelementptr inbounds nuw i8, ptr %21, i64 16 %303 = load ptr, ptr %.sink.i.sroa.gep, align 8, !alias.scope !33878, !noalias !4, !nonnull !4, !noundef !4 call void @__rust_dealloc(ptr noundef nonnull %303, i64 noundef %302, i64 noundef 1) #58, !noalias !33878 br label %"_ZN4core3ptr58drop_in_place$LT$lsp_types..progress..WorkDoneProgress$GT$17h6ce915bd07a8a752E.exit" @@ -129185,6 +129184,7 @@ define hidden void @_ZN7project9lsp_store8LspStore15on_lsp_progress17hb480e77a53 316: ; preds = %"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$7get_mut17h97c971a806a019bdE.exit.thread" %317 = getelementptr inbounds nuw i8, ptr %21, i64 8 %318 = load i64, ptr %317, align 8, !range !1116, !alias.scope !33928, !noundef !4 + %.sink.i106.sroa.gep = getelementptr inbounds nuw i8, ptr %21, i64 16 switch i64 %318, label %"_ZN4core3ptr61drop_in_place$LT$lsp_types..progress..WorkDoneProgressEnd$GT$17hea438cdd30942362E.exit.sink.split.i105" [ i64 -9223372036854775808, label %"_ZN4core3ptr58drop_in_place$LT$lsp_types..progress..WorkDoneProgress$GT$17h6ce915bd07a8a752E.exit110" i64 0, label %"_ZN4core3ptr58drop_in_place$LT$lsp_types..progress..WorkDoneProgress$GT$17h6ce915bd07a8a752E.exit110" @@ -129208,6 +129208,7 @@ define hidden void @_ZN7project9lsp_store8LspStore15on_lsp_progress17hb480e77a53 "_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h0708543c178029fcE.exit.i.i109": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8318809290061399519.exit.i.i1.i.i.i.i108", %319 %323 = getelementptr inbounds nuw i8, ptr %21, i64 24 %324 = load i64, ptr %323, align 8, !range !1116, !alias.scope !33954, !noundef !4 + %.sink.i106.sroa.gep124 = getelementptr inbounds nuw i8, ptr %21, i64 32 switch i64 %324, label %"_ZN4core3ptr61drop_in_place$LT$lsp_types..progress..WorkDoneProgressEnd$GT$17hea438cdd30942362E.exit.sink.split.i105" [ i64 -9223372036854775808, label %"_ZN4core3ptr58drop_in_place$LT$lsp_types..progress..WorkDoneProgress$GT$17h6ce915bd07a8a752E.exit110" i64 0, label %"_ZN4core3ptr58drop_in_place$LT$lsp_types..progress..WorkDoneProgress$GT$17h6ce915bd07a8a752E.exit110" @@ -129216,13 +129217,14 @@ define hidden void @_ZN7project9lsp_store8LspStore15on_lsp_progress17hb480e77a53 325: ; preds = %"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V$C$A$GT$7get_mut17h97c971a806a019bdE.exit.thread" %326 = getelementptr inbounds nuw i8, ptr %21, i64 8 %327 = load i64, ptr %326, align 8, !range !1116, !alias.scope !33957, !noundef !4 + %.sink.i106.sroa.gep125 = getelementptr inbounds nuw i8, ptr %21, i64 16 switch i64 %327, label %"_ZN4core3ptr61drop_in_place$LT$lsp_types..progress..WorkDoneProgressEnd$GT$17hea438cdd30942362E.exit.sink.split.i105" [ i64 -9223372036854775808, label %"_ZN4core3ptr58drop_in_place$LT$lsp_types..progress..WorkDoneProgress$GT$17h6ce915bd07a8a752E.exit110" i64 0, label %"_ZN4core3ptr58drop_in_place$LT$lsp_types..progress..WorkDoneProgress$GT$17h6ce915bd07a8a752E.exit110" ] "_ZN4core3ptr61drop_in_place$LT$lsp_types..progress..WorkDoneProgressEnd$GT$17hea438cdd30942362E.exit.sink.split.i105": ; preds = %325, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h0708543c178029fcE.exit.i.i109", %316 - %.sink.i106.sroa.phi = phi ptr [ %.sink.i.sroa.gep, %316 ], [ %.sink.i.sroa.gep122, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h0708543c178029fcE.exit.i.i109" ], [ %.sink.i.sroa.gep, %325 ] + %.sink.i106.sroa.phi = phi ptr [ %.sink.i106.sroa.gep, %316 ], [ %.sink.i106.sroa.gep124, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h0708543c178029fcE.exit.i.i109" ], [ %.sink.i106.sroa.gep125, %325 ] %.sink2.i107 = phi i64 [ %318, %316 ], [ %324, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h0708543c178029fcE.exit.i.i109" ], [ %327, %325 ] %328 = load ptr, ptr %.sink.i106.sroa.phi, align 8, !alias.scope !33925, !noalias !4, !nonnull !4, !noundef !4 call void @__rust_dealloc(ptr noundef nonnull %328, i64 noundef %.sink2.i107, i64 noundef 1) #58, !noalias !33925 @@ -129337,8 +129339,9 @@ define hidden void @_ZN7project9lsp_store8LspStore15on_lsp_progress17hb480e77a53 br i1 %362, label %"_ZN4core3ptr64drop_in_place$LT$lsp_types..progress..WorkDoneProgressReport$GT$17hfc6b5b737e262bd8E.exit", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8318809290061399519.exit.i.i1.i.i.i.i119" "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.8318809290061399519.exit.i.i1.i.i.i.i119": ; preds = %361 - %363 = load ptr, ptr %.sink.i.sroa.gep, align 8, !alias.scope !34036, !noalias !34039, !nonnull !4, !noundef !4 - call void @__rust_dealloc(ptr noundef nonnull %363, i64 noundef %359, i64 noundef 1) #58, !noalias !34041 + %363 = getelementptr inbounds nuw i8, ptr %21, i64 16 + %364 = load ptr, ptr %363, align 8, !alias.scope !34036, !noalias !34039, !nonnull !4, !noundef !4 + call void @__rust_dealloc(ptr noundef nonnull %364, i64 noundef %359, i64 noundef 1) #58, !noalias !34041 br label %"_ZN4core3ptr64drop_in_place$LT$lsp_types..progress..WorkDoneProgressReport$GT$17hfc6b5b737e262bd8E.exit" 364: ; preds = %"_ZN4core3ptr64drop_in_place$LT$lsp_types..progress..WorkDoneProgressReport$GT$17hfc6b5b737e262bd8E.exit" diff --git a/bench/zed-rs/optimized/e8p2cuwt1sxb20ryu42v8urkr.ll b/bench/zed-rs/optimized/e8p2cuwt1sxb20ryu42v8urkr.ll index f342db55ee7..5b84f58503e 100644 --- a/bench/zed-rs/optimized/e8p2cuwt1sxb20ryu42v8urkr.ll +++ b/bench/zed-rs/optimized/e8p2cuwt1sxb20ryu42v8urkr.ll @@ -37260,16 +37260,15 @@ define hidden void @"_ZN52_$LT$T$u20$as$u20$alloc..slice..hack..ConvertVec$GT$6t to label %84 unwind label %82, !noalias !10487 "_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hc8b4444378140e4fE.exit5.i.i.i.i.i": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.13361645166614471590.exit.i.i1.i.i4.i.i.i.i.i", %102, %82 - %.sink.i.sroa.gep14.i.i.i77 = phi ptr [ %.sink.i.sroa.gep14.i.i.i.le92, %82 ], [ %.sink.i.sroa.gep14.i.i.i.le, %102 ], [ %.sink.i.sroa.gep14.i.i.i.le, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.13361645166614471590.exit.i.i1.i.i4.i.i.i.i.i" ] %.pn.i.i.i.i.i = phi { ptr, i32 } [ %83, %82 ], [ %103, %102 ], [ %103, %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hb66d9ce94201aa99E.llvm.13361645166614471590.exit.i.i1.i.i4.i.i.i.i.i" ] %80 = load i64, ptr %8, align 8, !alias.scope !10488, !noalias !10499, !noundef !11 %81 = icmp eq i64 %80, 0 + %.sink.i.sroa.gep14.i.i.i = getelementptr inbounds nuw i8, ptr %8, i64 8 br i1 %81, label %122, label %common.resume.sink.split.i.i.i.i 82: ; preds = %.noexc11.i.i.i %83 = landingpad { ptr, i32 } cleanup - %.sink.i.sroa.gep14.i.i.i.le92 = getelementptr inbounds nuw i8, ptr %8, i64 8 br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hc8b4444378140e4fE.exit5.i.i.i.i.i" 84: ; preds = %.noexc11.i.i.i @@ -37323,7 +37322,6 @@ default.unreachable: ; preds = %84 102: ; preds = %101, %96, %94 %103 = landingpad { ptr, i32 } cleanup - %.sink.i.sroa.gep14.i.i.i.le = getelementptr inbounds nuw i8, ptr %8, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !10515) tail call void @llvm.experimental.noalias.scope.decl(metadata !10518) tail call void @llvm.experimental.noalias.scope.decl(metadata !10521) @@ -37344,7 +37342,7 @@ default.unreachable: ; preds = %84 br label %"_ZN75_$LT$language_model..LanguageModelToolUse$u20$as$u20$core..clone..Clone$GT$5clone17h968aeec36c6dcde5E.exit.i.i.i.i" common.resume.sink.split.i.i.i.i: ; preds = %114, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hc8b4444378140e4fE.exit5.i.i.i.i.i" - %.sink.i.sroa.phi.i.i.i = phi ptr [ %.sink.i.sroa.gep.i.i.i.le, %114 ], [ %.sink.i.sroa.gep14.i.i.i77, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hc8b4444378140e4fE.exit5.i.i.i.i.i" ] + %.sink.i.sroa.phi.i.i.i = phi ptr [ %.sink.i.sroa.gep.i.i.i, %114 ], [ %.sink.i.sroa.gep14.i.i.i, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hc8b4444378140e4fE.exit5.i.i.i.i.i" ] %.sink6.i.i.i.i = phi i64 [ %116, %114 ], [ %80, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hc8b4444378140e4fE.exit5.i.i.i.i.i" ] %common.resume.op.ph.i.i.i.i = phi { ptr, i32 } [ %115, %114 ], [ %.pn.i.i.i.i.i, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hc8b4444378140e4fE.exit5.i.i.i.i.i" ] %108 = load ptr, ptr %.sink.i.sroa.phi.i.i.i, align 8, !noalias !10533, !nonnull !11, !noundef !11 @@ -37381,9 +37379,9 @@ common.resume.sink.split.i.i.i.i: ; preds = %114, %"_ZN4core3ptr 114: ; preds = %.noexc12.i.i.i %115 = landingpad { ptr, i32 } cleanup - %.sink.i.sroa.gep.i.i.i.le = getelementptr inbounds nuw i8, ptr %5, i64 8 %116 = load i64, ptr %5, align 8, !alias.scope !10542, !noalias !10553, !noundef !11 %117 = icmp eq i64 %116, 0 + %.sink.i.sroa.gep.i.i.i = getelementptr inbounds nuw i8, ptr %5, i64 8 br i1 %117, label %122, label %common.resume.sink.split.i.i.i.i "_ZN87_$LT$language_model..request..LanguageModelToolResult$u20$as$u20$core..clone..Clone$GT$5clone17hde9b320bdf20ec19E.exit.i.i.i.i": ; preds = %.noexc12.i.i.i diff --git a/bench/zed-rs/optimized/f10ffiihtazjqkmwr0jihceey.ll b/bench/zed-rs/optimized/f10ffiihtazjqkmwr0jihceey.ll index 82cd19c0aa9..3a702652d07 100644 --- a/bench/zed-rs/optimized/f10ffiihtazjqkmwr0jihceey.ll +++ b/bench/zed-rs/optimized/f10ffiihtazjqkmwr0jihceey.ll @@ -877,8 +877,6 @@ define hidden void @"_ZN3rpc5proto22MessageStream$LT$S$GT$4read28_$u7b$$u7b$clos %.sroa.10 = alloca [32 x i8], align 8 %14 = getelementptr inbounds nuw i8, ptr %1, i64 24 %15 = load i8, ptr %14, align 8, !range !72, !noundef !5 - %.sink7.i.sroa.gep = getelementptr inbounds nuw i8, ptr %11, i64 8 - %.sink7.i.sroa.gep68 = getelementptr inbounds nuw i8, ptr %11, i64 16 switch i8 %15, label %default.unreachable152 [ i8 0, label %16 i8 1, label %20 @@ -976,10 +974,12 @@ common.ret: ; preds = %138, %35 br i1 %42, label %47, label %43 43: ; preds = %39 + %.sroa.5.0..sroa_idx91 = getelementptr inbounds nuw i8, ptr %11, i64 16 %.sroa.10.16..sroa_idx = getelementptr inbounds nuw i8, ptr %.sroa.10, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sink7.i.sroa.gep68, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.10.16..sroa_idx, i64 24, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5.0..sroa_idx91, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.10.16..sroa_idx, i64 24, i1 false) store i64 %.sroa.088.0.copyload, ptr %11, align 8 - store ptr %.sroa.6.0.copyload, ptr %.sink7.i.sroa.gep, align 8 + %.sroa.4.0..sroa_idx90 = getelementptr inbounds nuw i8, ptr %11, i64 8 + store ptr %.sroa.6.0.copyload, ptr %.sroa.4.0..sroa_idx90, align 8 %44 = xor i64 %.sroa.088.0.copyload, -9223372036854775808 %45 = tail call i64 @llvm.umin.i64(i64 %44, i64 5) %46 = ptrtoint ptr %.sroa.6.0.copyload to i64 @@ -1007,7 +1007,7 @@ common.ret: ; preds = %138, %35 br i1 %51, label %"_ZN4core3ptr60drop_in_place$LT$tungstenite..protocol..message..Message$GT$17hdbbc54893bb3dd51E.exit", label %"._ZN4core3ptr63drop_in_place$LT$tungstenite..protocol..frame..frame..Frame$GT$17he3520a956e357550E.exit.sink.split.i_crit_edge" "._ZN4core3ptr63drop_in_place$LT$tungstenite..protocol..frame..frame..Frame$GT$17he3520a956e357550E.exit.sink.split.i_crit_edge": ; preds = %50 - %.val1.i.pre = load ptr, ptr %.sink7.i.sroa.gep68, align 8, !alias.scope !229 + %.val1.i.pre = load ptr, ptr %.sroa.5.0..sroa_idx91, align 8, !alias.scope !229 br label %"_ZN4core3ptr63drop_in_place$LT$tungstenite..protocol..frame..frame..Frame$GT$17he3520a956e357550E.exit.sink.split.i" "_ZN4core3ptr63drop_in_place$LT$tungstenite..protocol..frame..frame..Frame$GT$17he3520a956e357550E.exit.sink.split.i": ; preds = %"._ZN4core3ptr63drop_in_place$LT$tungstenite..protocol..frame..frame..Frame$GT$17he3520a956e357550E.exit.sink.split.i_crit_edge", %49 @@ -1020,7 +1020,7 @@ common.ret: ; preds = %138, %35 br label %"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h1d3bc22ceaf4490aE.exit" 53: ; preds = %43 - %.sroa.694.0.copyload = load ptr, ptr %.sink7.i.sroa.gep68, align 8, !nonnull !5, !noundef !5 + %.sroa.694.0.copyload = load ptr, ptr %.sroa.5.0..sroa_idx91, align 8, !nonnull !5, !noundef !5 %.sroa.996.0..sroa_idx = getelementptr inbounds nuw i8, ptr %11, i64 24 %.sroa.996.0.copyload = load i64, ptr %.sroa.996.0..sroa_idx, align 8 %54 = getelementptr inbounds nuw i8, ptr %1, i64 8 @@ -1296,7 +1296,7 @@ common.ret: ; preds = %138, %35 br i1 %131, label %"_ZN4core3ptr60drop_in_place$LT$tungstenite..protocol..message..Message$GT$17hdbbc54893bb3dd51E.exit55", label %"_ZN4core3ptr63drop_in_place$LT$tungstenite..protocol..frame..frame..Frame$GT$17he3520a956e357550E.exit.sink.split.i51" "_ZN4core3ptr63drop_in_place$LT$tungstenite..protocol..frame..frame..Frame$GT$17he3520a956e357550E.exit.sink.split.i51": ; preds = %130 - %.val1.i54 = load ptr, ptr %.sink7.i.sroa.gep68, align 8, !alias.scope !274, !nonnull !5, !noundef !5 + %.val1.i54 = load ptr, ptr %.sroa.5.0..sroa_idx91, align 8, !alias.scope !274, !nonnull !5, !noundef !5 call void @__rust_dealloc(ptr noundef nonnull %.val1.i54, i64 noundef %46, i64 noundef 1) #31, !noalias !274 br label %"_ZN4core3ptr60drop_in_place$LT$tungstenite..protocol..message..Message$GT$17hdbbc54893bb3dd51E.exit55" @@ -1314,7 +1314,7 @@ common.ret: ; preds = %138, %35 ] "_ZN4core3ptr63drop_in_place$LT$tungstenite..protocol..frame..frame..Frame$GT$17he3520a956e357550E.exit.sink.split.i57": ; preds = %132 - %.val1.i60 = load ptr, ptr %.sink7.i.sroa.gep68, align 8, !alias.scope !277, !nonnull !5, !noundef !5 + %.val1.i60 = load ptr, ptr %.sroa.5.0..sroa_idx91, align 8, !alias.scope !277, !nonnull !5, !noundef !5 tail call void @__rust_dealloc(ptr noundef nonnull %.val1.i60, i64 noundef %46, i64 noundef 1) #31, !noalias !277 br label %.thread @@ -4481,8 +4481,6 @@ define hidden void @"_ZN4core3ptr112drop_in_place$LT$gpui..executor..Task$LT$cor tail call void @llvm.experimental.noalias.scope.decl(metadata !802) %18 = load i64, ptr %2, align 8, !range !143, !alias.scope !802, !noalias !797, !noundef !5 %19 = icmp eq i64 %18, -9223372036854775805 - %.sink.i.i.i.i.sroa.gep.i.i = getelementptr inbounds nuw i8, ptr %2, i64 16 - %.sink.i.i.i.i.sroa.gep1.i.i = getelementptr inbounds nuw i8, ptr %2, i64 8 br i1 %19, label %"_ZN4core3ptr114drop_in_place$LT$async_task..task..Task$LT$core..result..Result$LT$client..Credentials$C$anyhow..Error$GT$$GT$$GT$17hb228cad78ec873b2E.exit", label %20 20: ; preds = %16 @@ -4497,6 +4495,7 @@ define hidden void @"_ZN4core3ptr112drop_in_place$LT$gpui..executor..Task$LT$cor 22: ; preds = %21 tail call void @llvm.experimental.noalias.scope.decl(metadata !811) + %.sink.i.i.i.i.sroa.gep1.i.i = getelementptr inbounds nuw i8, ptr %2, i64 8 switch i64 %18, label %"_ZN4core3ptr43drop_in_place$LT$client..DevServerToken$GT$17hfea20e5524067f3aE.exit.sink.split.i.i.i.i.i.i" [ i64 -9223372036854775808, label %23 i64 0, label %"_ZN4core3ptr114drop_in_place$LT$async_task..task..Task$LT$core..result..Result$LT$client..Credentials$C$anyhow..Error$GT$$GT$$GT$17hb228cad78ec873b2E.exit" @@ -4505,6 +4504,7 @@ define hidden void @"_ZN4core3ptr112drop_in_place$LT$gpui..executor..Task$LT$cor 23: ; preds = %22 %24 = load i64, ptr %.sink.i.i.i.i.sroa.gep1.i.i, align 8, !alias.scope !814, !noalias !827, !noundef !5 %25 = icmp eq i64 %24, 0 + %.sink.i.i.i.i.sroa.gep.i.i = getelementptr inbounds nuw i8, ptr %2, i64 16 br i1 %25, label %"_ZN4core3ptr114drop_in_place$LT$async_task..task..Task$LT$core..result..Result$LT$client..Credentials$C$anyhow..Error$GT$$GT$$GT$17hb228cad78ec873b2E.exit", label %"_ZN4core3ptr43drop_in_place$LT$client..DevServerToken$GT$17hfea20e5524067f3aE.exit.sink.split.i.i.i.i.i.i" "_ZN4core3ptr43drop_in_place$LT$client..DevServerToken$GT$17hfea20e5524067f3aE.exit.sink.split.i.i.i.i.i.i": ; preds = %23, %22 @@ -4515,11 +4515,13 @@ define hidden void @"_ZN4core3ptr112drop_in_place$LT$gpui..executor..Task$LT$cor br label %"_ZN4core3ptr114drop_in_place$LT$async_task..task..Task$LT$core..result..Result$LT$client..Credentials$C$anyhow..Error$GT$$GT$$GT$17hb228cad78ec873b2E.exit" 27: ; preds = %21 - call void @"_ZN6anyhow5error65_$LT$impl$u20$core..ops..drop..Drop$u20$for$u20$anyhow..Error$GT$4drop17ha085256a7583661aE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %.sink.i.i.i.i.sroa.gep1.i.i) + %28 = getelementptr inbounds nuw i8, ptr %2, i64 8 + call void @"_ZN6anyhow5error65_$LT$impl$u20$core..ops..drop..Drop$u20$for$u20$anyhow..Error$GT$4drop17ha085256a7583661aE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %28) br label %"_ZN4core3ptr114drop_in_place$LT$async_task..task..Task$LT$core..result..Result$LT$client..Credentials$C$anyhow..Error$GT$$GT$$GT$17hb228cad78ec873b2E.exit" 28: ; preds = %20 - call void @"_ZN4core3ptr91drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$GT$$GT$17h326580d051edbc1bE.llvm.3246130142079152848"(ptr noalias noundef nonnull align 8 dereferenceable(16) %.sink.i.i.i.i.sroa.gep1.i.i) + %30 = getelementptr inbounds nuw i8, ptr %2, i64 8 + call void @"_ZN4core3ptr91drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$core..any..Any$u2b$core..marker..Send$GT$$GT$17h326580d051edbc1bE.llvm.3246130142079152848"(ptr noalias noundef nonnull align 8 dereferenceable(16) %30) br label %"_ZN4core3ptr114drop_in_place$LT$async_task..task..Task$LT$core..result..Result$LT$client..Credentials$C$anyhow..Error$GT$$GT$$GT$17hb228cad78ec873b2E.exit" "_ZN4core3ptr114drop_in_place$LT$async_task..task..Task$LT$core..result..Result$LT$client..Credentials$C$anyhow..Error$GT$$GT$$GT$17hb228cad78ec873b2E.exit": ; preds = %16, %22, %23, %"_ZN4core3ptr43drop_in_place$LT$client..DevServerToken$GT$17hfea20e5524067f3aE.exit.sink.split.i.i.i.i.i.i", %27, %28 diff --git a/bench/zxing/optimized/ODITFReader.ll b/bench/zxing/optimized/ODITFReader.ll index 5cfd27940e7..b01f223f76e 100644 --- a/bench/zxing/optimized/ODITFReader.ll +++ b/bench/zxing/optimized/ODITFReader.ll @@ -104,9 +104,6 @@ define void @_ZNK5ZXing4OneD9ITFReader13decodePatternEiRNS_11PatternViewERSt10un %20 = load ptr, ptr %19, align 8 %.not1.i.i = icmp ult ptr %18, %20 %or.cond.i.i = select i1 %.not.i.i, i1 true, i1 %.not1.i.i - %indvars.iv27.i.sroa.gep91 = getelementptr inbounds nuw i8, ptr %9, i64 2 - %indvars.iv27.i.sroa.gep94 = getelementptr inbounds nuw i8, ptr %8, i64 2 - %indvars.iv120.sroa.gep = getelementptr inbounds nuw i8, ptr %13, i64 4 br i1 %or.cond.i.i, label %_ZNK5ZXing11PatternView7isValidEv.exit.thread, label %_ZNK5ZXing11PatternView7isValidEv.exit _ZNK5ZXing11PatternView7isValidEv.exit: ; preds = %5 @@ -188,40 +185,39 @@ _ZN5ZXing6ReduceIPKttSt4plusItEEET0_T_S6_S5_T1_.exit.loopexit.i: ; preds = %.lr. br i1 %.not1.i.i51112, label %_ZNK5ZXing11PatternView7isValidEv.exit53.thread, label %_ZNK5ZXing11PatternView7isValidEv.exit53.lr.ph _ZNK5ZXing11PatternView7isValidEv.exit53.lr.ph: ; preds = %52 - %54 = getelementptr inbounds nuw i8, ptr %13, i64 4 - %55 = getelementptr inbounds nuw i8, ptr %14, i64 4 - %56 = getelementptr inbounds nuw i8, ptr %47, i64 28 - %57 = load ptr, ptr %25, align 8 - %.not102139 = icmp ugt ptr %56, %57 - br i1 %.not102139, label %_ZNK5ZXing11PatternView7isValidEv.exit53.thread, label %.lr.ph - -_ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split: ; preds = %_ZN5ZXing11PatternView10skipSymbolEv.exit - %.pr = load i32, ptr %21, align 8 - %58 = sext i32 %.pr to i64 - %59 = getelementptr inbounds i16, ptr %156, i64 %58 - %60 = load ptr, ptr %25, align 8 - %.not102 = icmp ugt ptr %59, %60 - br i1 %.not102, label %_ZNK5ZXing11PatternView7isValidEv.exit53.thread, label %.lr.ph - -.lr.ph: ; preds = %_ZNK5ZXing11PatternView7isValidEv.exit53.lr.ph, %_ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split - %61 = phi ptr [ %156, %_ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split ], [ %53, %_ZNK5ZXing11PatternView7isValidEv.exit53.lr.ph ] - %62 = phi i32 [ %.pr, %_ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split ], [ 10, %_ZNK5ZXing11PatternView7isValidEv.exit53.lr.ph ] + %54 = getelementptr inbounds nuw i8, ptr %8, i64 2 + %55 = getelementptr inbounds nuw i8, ptr %9, i64 2 + %56 = getelementptr inbounds nuw i8, ptr %13, i64 4 + %57 = getelementptr inbounds nuw i8, ptr %14, i64 4 + %.not102139 = getelementptr inbounds nuw i8, ptr %13, i64 4 + br label %_ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split + +_ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split: ; preds = %_ZNK5ZXing11PatternView7isValidEv.exit53.lr.ph, %_ZN5ZXing11PatternView10skipSymbolEv.exit + %.pr = phi ptr [ %53, %_ZNK5ZXing11PatternView7isValidEv.exit53.lr.ph ], [ %156, %_ZN5ZXing11PatternView10skipSymbolEv.exit ] + %58 = load i32, ptr %21, align 8 + %59 = sext i32 %58 to i64 + %60 = getelementptr inbounds i16, ptr %57, i64 %59 + %.not102 = load ptr, ptr %25, align 8 + %.not102 = icmp ugt ptr %60, %.not102 + br i1 %.not102, label %_ZNK5ZXing11PatternView7isValidEv.exit53.thread, label %62 + +62: ; preds = %_ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %8) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %9) call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %.sroa.089) call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %.sroa.5) - %63 = load i16, ptr %61, align 2 + %63 = load i16, ptr %57, align 2 store i16 %63, ptr %8, align 4 - %64 = getelementptr inbounds nuw i8, ptr %61, i64 2 + %64 = getelementptr inbounds nuw i8, ptr %57, i64 2 %65 = load i16, ptr %64, align 2 - store i16 %65, ptr %indvars.iv27.i.sroa.gep94, align 2 + store i16 %65, ptr %54, align 2 %66 = load i32, ptr %8, align 4 store i32 %66, ptr %9, align 4 - %67 = icmp sgt i32 %62, 2 + %67 = icmp sgt i32 %58, 2 br i1 %67, label %.lr.ph.preheader.i, label %._crit_edge.i -.lr.ph.preheader.i: ; preds = %.lr.ph - %wide.trip.count.i = zext nneg i32 %62 to i64 +.lr.ph.preheader.i: ; preds = %62 + %wide.trip.count.i = zext nneg i32 %58 to i64 br label %.lr.ph.i .lr.ph.i: ; preds = %.lr.ph.i, %.lr.ph.preheader.i @@ -229,7 +225,7 @@ _ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split: ; preds = %_ZN5ZXing11 %68 = and i64 %indvars.iv.i, 1 %69 = getelementptr inbounds nuw i16, ptr %8, i64 %68 %70 = getelementptr inbounds nuw i16, ptr %9, i64 %68 - %71 = getelementptr inbounds nuw i16, ptr %61, i64 %indvars.iv.i + %71 = getelementptr inbounds nuw i16, ptr %57, i64 %indvars.iv.i %72 = load i16, ptr %71, align 2 %73 = load i16, ptr %69, align 2 %.sroa.speculated8.i.i = call i16 @llvm.umin.i16(i16 %72, i16 %73) @@ -241,7 +237,7 @@ _ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split: ; preds = %_ZN5ZXing11 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i br i1 %exitcond.not.i, label %._crit_edge.i, label %.lr.ph.i, !llvm.loop !6 -._crit_edge.i: ; preds = %.lr.ph.i, %.lr.ph +._crit_edge.i: ; preds = %.lr.ph.i, %62 store i16 0, ptr %.sroa.089, align 2 store i16 0, ptr %.sroa.5, align 2 br label %75 @@ -250,9 +246,9 @@ _ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split: ; preds = %_ZN5ZXing11 %76 = phi i1 [ true, %._crit_edge.i ], [ false, %95 ] %indvars.iv27.i.sroa.phi = phi ptr [ %.sroa.089, %._crit_edge.i ], [ %.sroa.5, %95 ] %indvars.iv27.i.sroa.phi90 = phi ptr [ %9, %._crit_edge.i ], [ %indvars.iv27.i.sroa.gep91, %95 ] - %indvars.iv27.i.sroa.phi92 = phi ptr [ %8, %._crit_edge.i ], [ %indvars.iv27.i.sroa.gep94, %95 ] + %indvars.iv27.i.sroa.phi92 = phi ptr [ %8, %._crit_edge.i ], [ %54, %95 ] %indvars.iv27.i.sroa.phi123 = phi ptr [ %indvars.iv27.i.sroa.gep91, %._crit_edge.i ], [ %9, %95 ] - %indvars.iv27.i.sroa.phi125 = phi ptr [ %indvars.iv27.i.sroa.gep94, %._crit_edge.i ], [ %8, %95 ] + %indvars.iv27.i.sroa.phi125 = phi ptr [ %54, %._crit_edge.i ], [ %8, %95 ] %77 = load i16, ptr %indvars.iv27.i.sroa.phi90, align 2 %78 = zext i16 %77 to i32 %79 = load i16, ptr %indvars.iv27.i.sroa.phi92, align 2 @@ -323,14 +319,14 @@ _ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split: ; preds = %_ZN5ZXing11 103: ; preds = %.loopexit105 store i32 0, ptr %13, align 4 - store i32 0, ptr %54, align 4 - store i32 0, ptr %14, align 4 store i32 0, ptr %55, align 4 + store i32 0, ptr %14, align 4 + store i32 0, ptr %56, align 4 br label %104 104: ; preds = %103, %114 %indvars.iv = phi i64 [ 0, %103 ], [ %indvars.iv.next, %114 ] - %105 = getelementptr inbounds nuw i16, ptr %61, i64 %indvars.iv + %105 = getelementptr inbounds nuw i16, ptr %57, i64 %indvars.iv %106 = load i16, ptr %105, align 2 %107 = zext i16 %106 to i32 %108 = and i64 %indvars.iv, 1 @@ -364,7 +360,7 @@ _ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split: ; preds = %_ZN5ZXing11 128: ; preds = %104, %114 %129 = load i32, ptr %14, align 4 %130 = icmp ne i32 %129, 2 - %131 = load i32, ptr %55, align 4 + %131 = load i32, ptr %56, align 4 %132 = icmp ne i32 %131, 2 %or.cond = select i1 %130, i1 true, i1 %132 br i1 %or.cond, label %_ZNK5ZXing11PatternView7isValidEv.exit53.thread, label %.preheader @@ -442,7 +438,7 @@ _ZN5ZXing11PatternView10skipSymbolEv.exit: ; preds = %152 %.not1.i.i51 = icmp ult ptr %156, %157 br i1 %.not1.i.i51, label %_ZNK5ZXing11PatternView7isValidEv.exit53.thread, label %_ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split -_ZNK5ZXing11PatternView7isValidEv.exit53.thread: ; preds = %_ZN5ZXing11PatternView10skipSymbolEv.exit, %_ZNK5ZXing11PatternView7isValidEv.exit53thread-pre-split, %.loopexit105, %128, %152, %_ZNK5ZXing11PatternView7isValidEv.exit53.lr.ph, %.loopexit105.thread, %52 +_ZNK5ZXing11PatternView7isValidEv.exit53.thread: ; preds = %152, %128, %.loopexit105, %_ZNK5ZXing11PatternView7isValidEv.exit53, %_ZN5ZXing11PatternView10skipSymbolEv.exit, %.loopexit105.thread, %52 store i32 3, ptr %21, align 8 %158 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %11) #15 %159 = trunc i64 %158 to i32 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..19dd81980e6 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/127652 export COMPTIME_MODE=0 # Please rebase manually