diff --git a/bench/abc/optimized/giaTtopt.ll b/bench/abc/optimized/giaTtopt.ll index 7bc6ada2843..9d8b26a6013 100644 --- a/bench/abc/optimized/giaTtopt.ll +++ b/bench/abc/optimized/giaTtopt.ll @@ -541,23 +541,17 @@ _ZNSt6vectorImSaImEEaSERKS1_.exit: ; preds = %_ZNSt12_Vector_base %151 = sub i64 %149, %150 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false) %.not.i.i.i.i = icmp eq ptr %147, %148 - br i1 %.not.i.i.i.i, label %_ZNSt12_Vector_baseIiSaIiEEC2EmRKS0_.exit.i.thread, label %153 + br i1 %.not.i.i.i.i, label %_ZNSt6vectorIiSaIiEEC2ERKS1_.exit, label %152 _ZNSt12_Vector_baseIiSaIiEEC2EmRKS0_.exit.i.thread: ; preds = %_ZNSt6vectorImSaImEEaSERKS1_.exit - %152 = getelementptr inbounds i8, ptr null, i64 %151 - store i64 0, ptr %7, align 8 - store ptr %152, ptr %52, align 8, !tbaa !78 - br label %_ZNSt6vectorIiSaIiEEC2ERKS1_.exit - -153: ; preds = %_ZNSt6vectorImSaImEEaSERKS1_.exit - %154 = icmp ugt i64 %151, 9223372036854775804 - br i1 %154, label %155, label %156, !prof !75 + %153 = icmp ugt i64 %151, 9223372036854775804 + br i1 %153, label %154, label %155, !prof !75 -155: ; preds = %153 +155: ; preds = %152 call void @_ZSt28__throw_bad_array_new_lengthv() #27 unreachable -156: ; preds = %153 +156: ; preds = %152 %157 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %151) #28 store ptr %157, ptr %7, align 8, !tbaa !77 store ptr %157, ptr %51, align 8, !tbaa !76 @@ -566,8 +560,8 @@ _ZNSt12_Vector_baseIiSaIiEEC2EmRKS0_.exit.i.thread: ; preds = %_ZNSt6vectorImSaI call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %157, ptr align 4 %148, i64 %151, i1 false) br label %_ZNSt6vectorIiSaIiEEC2ERKS1_.exit -_ZNSt6vectorIiSaIiEEC2ERKS1_.exit: ; preds = %_ZNSt12_Vector_baseIiSaIiEEC2EmRKS0_.exit.i.thread, %156 - %159 = phi ptr [ %152, %_ZNSt12_Vector_baseIiSaIiEEC2EmRKS0_.exit.i.thread ], [ %158, %156 ] +_ZNSt6vectorIiSaIiEEC2ERKS1_.exit: ; preds = %_ZNSt6vectorImSaImEEaSERKS1_.exit, %156 + %159 = phi ptr [ %157, %155 ], [ null, %_ZNSt6vectorImSaImEEaSERKS1_.exit ] store ptr %159, ptr %51, align 8, !tbaa !76 call void @_ZN5Ttopt10TruthTable3ReoESt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(216) %6, ptr noundef nonnull %7) %160 = load ptr, ptr %7, align 8, !tbaa !77 @@ -828,8 +822,7 @@ _ZNSt12_Vector_baseIiSaIiEEC2EmRKS0_.exit.i.thread: ; preds = %_ZNSt6vectorIiSaI %41 = phi i64 [ %39, %._crit_edge ], [ 0, %_ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit.i ] %.sroa.024.1525968 = phi ptr [ %21, %._crit_edge ], [ null, %_ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit.i ] %.sroa.14.1506066 = phi ptr [ %22, %._crit_edge ], [ null, %_ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit.i ] - store i64 0, ptr %3, align 8 - store ptr null, ptr %10, align 8, !tbaa !78 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIiSaIiEEC2ERKS1_.exit 42: ; preds = %._crit_edge diff --git a/bench/abseil-cpp/optimized/parse.ll b/bench/abseil-cpp/optimized/parse.ll index 768e1464ab5..0352805301a 100644 --- a/bench/abseil-cpp/optimized/parse.ll +++ b/bench/abseil-cpp/optimized/parse.ll @@ -11089,6 +11089,7 @@ _ZNSt6vectorIPKN4absl15CommandLineFlagESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i to label %.noexc5.i unwind label %_ZNSt12_Vector_baseIPKN4absl15CommandLineFlagESaIS3_EED2Ev.exit.i .noexc5.i: ; preds = %10 + %12 = getelementptr inbounds nuw i8, ptr %11, i64 %7 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %11, ptr align 8 %2, i64 %7, i1 false) br label %_ZNSt6vectorIPKN4absl15CommandLineFlagESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit @@ -11100,9 +11101,9 @@ _ZNSt12_Vector_baseIPKN4absl15CommandLineFlagESaIS3_EED2Ev.exit.i: ; preds = %9, invoke void @__cxa_end_catch() to label %_ZNSt6vectorIPKN4absl15CommandLineFlagESaIS3_EED2Ev.exit unwind label %19 -_ZNSt6vectorIPKN4absl15CommandLineFlagESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit: ; preds = %_ZNSt6vectorIPKN4absl15CommandLineFlagESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i, %.noexc5.i - %.sroa.012.0 = phi ptr [ %11, %.noexc5.i ], [ null, %_ZNSt6vectorIPKN4absl15CommandLineFlagESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i ] - %.sroa.12.0 = getelementptr inbounds nuw i8, ptr %.sroa.012.0, i64 %7 +_ZNSt6vectorIPKN4absl15CommandLineFlagESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit: ; preds = %.noexc5.i, %_ZNSt6vectorIPKN4absl15CommandLineFlagESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i + %.sroa.012.0 = phi ptr [ null, %_ZNSt6vectorIPKN4absl15CommandLineFlagESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i ], [ %12, %.noexc5.i ] + %.sroa.012.0 = phi ptr [ null, %_ZNSt6vectorIPKN4absl15CommandLineFlagESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i ], [ %11, %.noexc5.i ] %14 = getelementptr inbounds nuw i8, ptr %0, i64 16 %15 = load ptr, ptr %14, align 8, !tbaa !134 store ptr %.sroa.012.0, ptr %0, align 8, !tbaa !68 diff --git a/bench/abseil-cpp/optimized/time_zone_info.ll b/bench/abseil-cpp/optimized/time_zone_info.ll index 41e8a868f99..573667e42bc 100644 --- a/bench/abseil-cpp/optimized/time_zone_info.ll +++ b/bench/abseil-cpp/optimized/time_zone_info.ll @@ -6576,12 +6576,13 @@ _ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EE17_S_check_init_lenE to label %.noexc5.i unwind label %_ZNSt12_Vector_baseIN4absl13time_internal4cctz10TransitionESaIS3_EED2Ev.exit.i .noexc5.i: ; preds = %.lr.ph.i.i.i.i.preheader.i.i - %12 = add i64 %reass.sub.fr.i, -48 - %13 = urem i64 %12, 48 - %14 = sub nuw i64 %12, %13 - %15 = add i64 %14, 48 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %11, ptr align 8 %2, i64 %15, i1 false) - %scevgep.i.i = getelementptr i8, ptr %11, i64 %15 + %12 = getelementptr inbounds nuw i8, ptr %11, i64 %reass.sub.fr.i + %13 = add i64 %reass.sub.fr.i, -48 + %14 = urem i64 %13, 48 + %15 = sub nuw i64 %13, %14 + %16 = add i64 %15, 48 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %11, ptr align 8 %2, i64 %16, i1 false) + %scevgep.i.i = getelementptr i8, ptr %11, i64 %16 br label %_ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit _ZNSt12_Vector_baseIN4absl13time_internal4cctz10TransitionESaIS3_EED2Ev.exit.i: ; preds = %10, %.lr.ph.i.i.i.i.preheader.i.i @@ -6592,10 +6593,10 @@ _ZNSt12_Vector_baseIN4absl13time_internal4cctz10TransitionESaIS3_EED2Ev.exit.i: invoke void @__cxa_end_catch() to label %_ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EED2Ev.exit unwind label %23 -_ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit: ; preds = %_ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i, %.noexc5.i - %.sroa.012.0 = phi ptr [ %11, %.noexc5.i ], [ null, %_ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i ] - %.0.lcssa.i.i.i.i.i.i = phi ptr [ %scevgep.i.i, %.noexc5.i ], [ null, %_ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i ] - %.sroa.12.0 = getelementptr inbounds nuw i8, ptr %.sroa.012.0, i64 %reass.sub.fr.i +_ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit: ; preds = %.noexc5.i, %_ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i + %.sroa.012.0 = phi ptr [ null, %_ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i ], [ %12, %.noexc5.i ] + %.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i ], [ %11, %.noexc5.i ] + %.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorIN4absl13time_internal4cctz10TransitionESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i ], [ %scevgep.i.i, %.noexc5.i ] %18 = getelementptr inbounds nuw i8, ptr %0, i64 16 %19 = load ptr, ptr %18, align 8, !tbaa !72 store ptr %.sroa.012.0, ptr %0, align 8, !tbaa !61 diff --git a/bench/arrow/optimized/codegen_internal.ll b/bench/arrow/optimized/codegen_internal.ll index b457a45294f..f7381e581d4 100644 --- a/bench/arrow/optimized/codegen_internal.ll +++ b/bench/arrow/optimized/codegen_internal.ll @@ -979,26 +979,20 @@ define linkonce_odr void @_ZNSt6vectorISt10shared_ptrIN5arrow8DataTypeEESaIS3_EE _ZNSt6vectorISt10shared_ptrIN5arrow8DataTypeEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i: tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) %4 = getelementptr inbounds nuw %"class.std::shared_ptr", ptr %1, i64 %2 - %.idx = shl nuw nsw i64 %2, 4 %.not.i.i = icmp eq i64 %2, 0 - br i1 %.not.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow8DataTypeEESaIS3_EE11_M_allocateEm.exit.thread.i, label %.lr.ph.i.i.i.i.preheader.i - -_ZNSt12_Vector_baseISt10shared_ptrIN5arrow8DataTypeEESaIS3_EE11_M_allocateEm.exit.thread.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow8DataTypeEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - %5 = getelementptr inbounds nuw i8, ptr null, i64 %.idx - %6 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %5, ptr %6, align 8, !tbaa !52 - br label %.loopexit + br i1 %.not.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.preheader.i .lr.ph.i.i.i.i.preheader.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow8DataTypeEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - %7 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #26 - store ptr %7, ptr %0, align 8, !tbaa !55 - %8 = getelementptr inbounds nuw i8, ptr %7, i64 %.idx - %9 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %8, ptr %9, align 8, !tbaa !52 + %.idx = shl nuw nsw i64 %2, 4 + %5 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #26 + store ptr %5, ptr %0, align 8, !tbaa !52 + %9 = getelementptr inbounds nuw i8, ptr %5, i64 %.idx + %7 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr %6, ptr %7, align 8, !tbaa !55 br label %.lr.ph.i.i.i.i.i .lr.ph.i.i.i.i.i: ; preds = %_ZSt10_ConstructISt10shared_ptrIN5arrow8DataTypeEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i, %.lr.ph.i.i.i.i.preheader.i - %.011.i.i.i.i.i = phi ptr [ %23, %_ZSt10_ConstructISt10shared_ptrIN5arrow8DataTypeEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i ], [ %7, %.lr.ph.i.i.i.i.preheader.i ] + %.011.i.i.i.i.i = phi ptr [ %23, %_ZSt10_ConstructISt10shared_ptrIN5arrow8DataTypeEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i ], [ %5, %.lr.ph.i.i.i.i.preheader.i ] %.0810.i.i.i.i.i = phi ptr [ %22, %_ZSt10_ConstructISt10shared_ptrIN5arrow8DataTypeEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i ], [ %1, %.lr.ph.i.i.i.i.preheader.i ] %10 = load ptr, ptr %.0810.i.i.i.i.i, align 8, !tbaa !33 store ptr %10, ptr %.011.i.i.i.i.i, align 8, !tbaa !33 @@ -1031,8 +1025,8 @@ _ZSt10_ConstructISt10shared_ptrIN5arrow8DataTypeEEJRKS3_EEvPT_DpOT0_.exit.i.i.i. %.not.i.i.i.i.i = icmp eq ptr %22, %4 br i1 %.not.i.i.i.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.i, !llvm.loop !56 -.loopexit: ; preds = %_ZSt10_ConstructISt10shared_ptrIN5arrow8DataTypeEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow8DataTypeEESaIS3_EE11_M_allocateEm.exit.thread.i - %.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow8DataTypeEESaIS3_EE11_M_allocateEm.exit.thread.i ], [ %23, %_ZSt10_ConstructISt10shared_ptrIN5arrow8DataTypeEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i ] +.loopexit: ; preds = %_ZSt10_ConstructISt10shared_ptrIN5arrow8DataTypeEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i, %_ZNSt6vectorISt10shared_ptrIN5arrow8DataTypeEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i + %.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow8DataTypeEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ], [ %23, %_ZSt10_ConstructISt10shared_ptrIN5arrow8DataTypeEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i ] %24 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.0.lcssa.i.i.i.i.i, ptr %24, align 8, !tbaa !58 ret void @@ -1239,7 +1233,7 @@ _ZNSt14__shared_countILN9__gnu_cxx12_Lock_policyE2EED2Ev.exit: ; preds = %1, %9, ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr void @_ZNSt6vectorISt10shared_ptrIN5arrow8DataTypeEESaIS3_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { - %2 = load ptr, ptr %0, align 8, !tbaa !55 + %2 = load ptr, ptr %0, align 8, !tbaa !52 %3 = getelementptr inbounds nuw i8, ptr %0, i64 8 %4 = load ptr, ptr %3, align 8, !tbaa !58 %.not4.i.i.i = icmp eq ptr %2, %4 @@ -1302,7 +1296,7 @@ _ZSt8_DestroyISt10shared_ptrIN5arrow8DataTypeEEEvPT_.exit.i.i.i: ; preds = %27, br i1 %.not.i.i.i, label %_ZSt8_DestroyIPSt10shared_ptrIN5arrow8DataTypeEES3_EvT_S5_RSaIT0_E.exitthread-pre-split, label %.lr.ph.i.i.i, !llvm.loop !71 _ZSt8_DestroyIPSt10shared_ptrIN5arrow8DataTypeEES3_EvT_S5_RSaIT0_E.exitthread-pre-split: ; preds = %_ZSt8_DestroyISt10shared_ptrIN5arrow8DataTypeEEEvPT_.exit.i.i.i - %.pr = load ptr, ptr %0, align 8, !tbaa !55 + %.pr = load ptr, ptr %0, align 8, !tbaa !52 br label %_ZSt8_DestroyIPSt10shared_ptrIN5arrow8DataTypeEES3_EvT_S5_RSaIT0_E.exit _ZSt8_DestroyIPSt10shared_ptrIN5arrow8DataTypeEES3_EvT_S5_RSaIT0_E.exit: ; preds = %_ZSt8_DestroyIPSt10shared_ptrIN5arrow8DataTypeEES3_EvT_S5_RSaIT0_E.exitthread-pre-split, %1 @@ -1312,7 +1306,7 @@ _ZSt8_DestroyIPSt10shared_ptrIN5arrow8DataTypeEES3_EvT_S5_RSaIT0_E.exit: ; preds 30: ; preds = %_ZSt8_DestroyIPSt10shared_ptrIN5arrow8DataTypeEES3_EvT_S5_RSaIT0_E.exit %31 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %32 = load ptr, ptr %31, align 8, !tbaa !52 + %32 = load ptr, ptr %31, align 8, !tbaa !55 %33 = ptrtoint ptr %32 to i64 %34 = ptrtoint ptr %29 to i64 %35 = sub i64 %33, %34 @@ -6468,10 +6462,10 @@ attributes #27 = { noreturn nounwind } !49 = !{!47, !27, i64 8} !50 = !{!48, !44, i64 0} !51 = !{!27, !27, i64 0} -!52 = !{!53, !54, i64 16} +!52 = !{!53, !54, i64 0} !53 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN5arrow8DataTypeEESaIS3_EE17_Vector_impl_dataE", !54, i64 0, !54, i64 8, !54, i64 16} !54 = !{!"p1 _ZTSSt10shared_ptrIN5arrow8DataTypeEE", !36, i64 0} -!55 = !{!53, !54, i64 0} +!55 = !{!53, !54, i64 16} !56 = distinct !{!56, !57} !57 = !{!"llvm.loop.mustprogress"} !58 = !{!53, !54, i64 8} diff --git a/bench/arrow/optimized/datetime.ll b/bench/arrow/optimized/datetime.ll index 8c8dc19354a..72230207f7e 100644 --- a/bench/arrow/optimized/datetime.ll +++ b/bench/arrow/optimized/datetime.ll @@ -13028,6 +13028,7 @@ _ZNSt12_Vector_baseIN14arrow_vendored4date9time_zoneESaIS2_EED2Ev.exit.i: ; pred to label %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EED2Ev.exit unwind label %61 _ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit.loopexit: ; preds = %_ZSt10_ConstructIN14arrow_vendored4date9time_zoneEJS2_EEvPT_DpOT0_.exit.i.i.i.i.i + %50 = getelementptr inbounds nuw i8, ptr %11, i64 %7 %.pre = load ptr, ptr %0, align 8, !tbaa !25 %.pre20 = load ptr, ptr %3, align 8, !tbaa !26 br label %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit @@ -13035,14 +13036,14 @@ _ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EEC2ISt13move_iteratorIN9__g _ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit: ; preds = %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit.loopexit, %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i %50 = phi ptr [ %4, %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i ], [ %.pre20, %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit.loopexit ] %51 = phi ptr [ %2, %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i ], [ %.pre, %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit.loopexit ] + %.sroa.15.0 = phi ptr [ null, %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i ], [ %50, %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit.loopexit ] %.sroa.013.0 = phi ptr [ null, %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i ], [ %11, %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit.loopexit ] %.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i ], [ %47, %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit.loopexit ] - %.sroa.15.0 = getelementptr inbounds nuw i8, ptr %.sroa.013.0, i64 %7 - %52 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %53 = load ptr, ptr %52, align 8, !tbaa !27 + %.sroa.15.0 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %54 = load ptr, ptr %53, align 8, !tbaa !27 store ptr %.sroa.013.0, ptr %0, align 8, !tbaa !25 store ptr %.0.lcssa.i.i.i.i.i, ptr %3, align 8, !tbaa !26 - store ptr %.sroa.15.0, ptr %52, align 8, !tbaa !27 + store ptr %.sroa.15.0, ptr %53, align 8, !tbaa !27 invoke void @_ZNSt12_Destroy_auxILb0EE9__destroyIPN14arrow_vendored4date9time_zoneEEEvT_S6_(ptr noundef %51, ptr noundef %50) to label %_ZSt8_DestroyIPN14arrow_vendored4date9time_zoneES2_EvT_S4_RSaIT0_E.exit.i unwind label %58 @@ -13051,7 +13052,7 @@ _ZSt8_DestroyIPN14arrow_vendored4date9time_zoneES2_EvT_S4_RSaIT0_E.exit.i: ; pre br i1 %.not.i.i.i10, label %_ZNSt6vectorIN14arrow_vendored4date9time_zoneESaIS2_EED2Ev.exit, label %54 54: ; preds = %_ZSt8_DestroyIPN14arrow_vendored4date9time_zoneES2_EvT_S4_RSaIT0_E.exit.i - %55 = ptrtoint ptr %53 to i64 + %55 = ptrtoint ptr %54 to i64 %56 = ptrtoint ptr %51 to i64 %57 = sub i64 %55, %56 tail call void @_ZdlPvm(ptr noundef nonnull %51, i64 noundef %57) #30 diff --git a/bench/arrow/optimized/diff.ll b/bench/arrow/optimized/diff.ll index f2b2baeb07a..2657c2c57f0 100644 --- a/bench/arrow/optimized/diff.ll +++ b/bench/arrow/optimized/diff.ll @@ -3654,26 +3654,20 @@ define linkonce_odr void @_ZNSt6vectorISt10shared_ptrIN5arrow5FieldEESaIS3_EEC2E _ZNSt6vectorISt10shared_ptrIN5arrow5FieldEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i: tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) %4 = getelementptr inbounds nuw %"class.std::shared_ptr.31", ptr %1, i64 %2 - %.idx = shl nuw nsw i64 %2, 4 %.not.i.i = icmp eq i64 %2, 0 - br i1 %.not.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5FieldEESaIS3_EE11_M_allocateEm.exit.thread.i, label %.lr.ph.i.i.i.i.preheader.i - -_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5FieldEESaIS3_EE11_M_allocateEm.exit.thread.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow5FieldEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - %5 = getelementptr inbounds nuw i8, ptr null, i64 %.idx - %6 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %5, ptr %6, align 8, !tbaa !141 - br label %.loopexit + br i1 %.not.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.preheader.i .lr.ph.i.i.i.i.preheader.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN5arrow5FieldEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i - %7 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #25 - store ptr %7, ptr %0, align 8, !tbaa !138 - %8 = getelementptr inbounds nuw i8, ptr %7, i64 %.idx - %9 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %8, ptr %9, align 8, !tbaa !141 + %.idx = shl nuw nsw i64 %2, 4 + %5 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #25 + store ptr %5, ptr %0, align 8, !tbaa !138 + %9 = getelementptr inbounds nuw i8, ptr %5, i64 %.idx + %7 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr %6, ptr %7, align 8, !tbaa !141 br label %.lr.ph.i.i.i.i.i .lr.ph.i.i.i.i.i: ; preds = %_ZSt10_ConstructISt10shared_ptrIN5arrow5FieldEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i, %.lr.ph.i.i.i.i.preheader.i - %.011.i.i.i.i.i = phi ptr [ %23, %_ZSt10_ConstructISt10shared_ptrIN5arrow5FieldEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i ], [ %7, %.lr.ph.i.i.i.i.preheader.i ] + %.011.i.i.i.i.i = phi ptr [ %23, %_ZSt10_ConstructISt10shared_ptrIN5arrow5FieldEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i ], [ %5, %.lr.ph.i.i.i.i.preheader.i ] %.0810.i.i.i.i.i = phi ptr [ %22, %_ZSt10_ConstructISt10shared_ptrIN5arrow5FieldEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i ], [ %1, %.lr.ph.i.i.i.i.preheader.i ] %10 = load ptr, ptr %.0810.i.i.i.i.i, align 8, !tbaa !142 store ptr %10, ptr %.011.i.i.i.i.i, align 8, !tbaa !142 @@ -3706,8 +3700,8 @@ _ZSt10_ConstructISt10shared_ptrIN5arrow5FieldEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i %.not.i.i.i.i.i = icmp eq ptr %22, %4 br i1 %.not.i.i.i.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.i, !llvm.loop !145 -.loopexit: ; preds = %_ZSt10_ConstructISt10shared_ptrIN5arrow5FieldEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5FieldEESaIS3_EE11_M_allocateEm.exit.thread.i - %.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN5arrow5FieldEESaIS3_EE11_M_allocateEm.exit.thread.i ], [ %23, %_ZSt10_ConstructISt10shared_ptrIN5arrow5FieldEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i ] +.loopexit: ; preds = %_ZSt10_ConstructISt10shared_ptrIN5arrow5FieldEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i, %_ZNSt6vectorISt10shared_ptrIN5arrow5FieldEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i + %.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorISt10shared_ptrIN5arrow5FieldEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i ], [ %23, %_ZSt10_ConstructISt10shared_ptrIN5arrow5FieldEEJRKS3_EEvPT_DpOT0_.exit.i.i.i.i.i ] %24 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.0.lcssa.i.i.i.i.i, ptr %24, align 8, !tbaa !146 ret void diff --git a/bench/arrow/optimized/vector_selection.ll b/bench/arrow/optimized/vector_selection.ll index 2e62643f243..56d45c0d6fd 100644 --- a/bench/arrow/optimized/vector_selection.ll +++ b/bench/arrow/optimized/vector_selection.ll @@ -18325,9 +18325,8 @@ _ZNSt6vectorIN5arrow9ArraySpanESaIS1_EE17_S_check_init_lenEmRKS2_.exit: ; preds _ZNSt12_Vector_baseIN5arrow9ArraySpanESaIS1_EE11_M_allocateEm.exit.thread: ; preds = %_ZNSt6vectorIN5arrow9ArraySpanESaIS1_EE17_S_check_init_lenEmRKS2_.exit store ptr null, ptr %0, align 8, !tbaa !184 - %9 = getelementptr inbounds nuw i8, ptr null, i64 %6 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %9, ptr %10, align 8, !tbaa !187 + %9 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr null, ptr %9, align 8, !tbaa !187 br label %_ZSt22__uninitialized_copy_aIPKN5arrow9ArraySpanEPS1_S1_ET0_T_S6_S5_RSaIT1_E.exit .lr.ph.i.i.i.i.preheader: ; preds = %_ZNSt6vectorIN5arrow9ArraySpanESaIS1_EE17_S_check_init_lenEmRKS2_.exit diff --git a/bench/assimp/optimized/LWSLoader.ll b/bench/assimp/optimized/LWSLoader.ll index 7f28ec2b891..d276b213943 100644 --- a/bench/assimp/optimized/LWSLoader.ll +++ b/bench/assimp/optimized/LWSLoader.ll @@ -11301,10 +11301,6 @@ define linkonce_odr hidden void @_ZNSt7__cxx114listIN6Assimp3LWO8EnvelopeESaIS3_ .noexc8.thread.i: ; preds = %3 %14 = getelementptr inbounds nuw i8, ptr %4, i64 40 - %15 = getelementptr inbounds nuw i8, ptr null, i64 %13 - %16 = getelementptr inbounds nuw i8, ptr %4, i64 48 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %6, i8 0, i64 16, i1 false) - store ptr %15, ptr %16, align 8 br label %_ZNSt7__cxx114listIN6Assimp3LWO8EnvelopeESaIS3_EE14_M_create_nodeIJRKS3_EEEPSt10_List_nodeIS3_EDpOT_.exit 17: ; preds = %3 @@ -11326,10 +11322,10 @@ _ZNSt16allocator_traitsISaIN6Assimp3LWO3KeyEEE8allocateERS3_m.exit.i.i.i.i.i.i.i .noexc8.i: ; preds = %_ZNSt16allocator_traitsISaIN6Assimp3LWO3KeyEEE8allocateERS3_m.exit.i.i.i.i.i.i.i.i store ptr %20, ptr %6, align 8 %21 = getelementptr inbounds nuw i8, ptr %4, i64 40 + store ptr %18, ptr %19, align 8 + %20 = getelementptr inbounds nuw i8, ptr %18, i64 %13 + %21 = getelementptr inbounds nuw i8, ptr %4, i64 48 store ptr %20, ptr %21, align 8 - %22 = getelementptr inbounds nuw i8, ptr %20, i64 %13 - %23 = getelementptr inbounds nuw i8, ptr %4, i64 48 - store ptr %22, ptr %23, align 8 br label %.lr.ph.i.i.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i.i.i.i, %.noexc8.i diff --git a/bench/assimp/optimized/clipper.ll b/bench/assimp/optimized/clipper.ll index 8a5a28e0132..53f1d93e39c 100644 --- a/bench/assimp/optimized/clipper.ll +++ b/bench/assimp/optimized/clipper.ll @@ -27379,10 +27379,7 @@ _ZNKSt6vectorIS_IN10ClipperLib8IntPointESaIS1_EESaIS3_EE12_M_check_lenEmPKc.exit .noexc26.thread: ; preds = %_ZNKSt6vectorIS_IN10ClipperLib8IntPointESaIS1_EESaIS3_EE12_M_check_lenEmPKc.exit %28 = getelementptr inbounds nuw i8, ptr %21, i64 8 - %29 = getelementptr inbounds nuw i8, ptr null, i64 %27 - %30 = getelementptr inbounds nuw i8, ptr %21, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %21, i8 0, i64 16, i1 false) - store ptr %29, ptr %30, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false) br label %.loopexit 31: ; preds = %_ZNKSt6vectorIS_IN10ClipperLib8IntPointESaIS1_EESaIS3_EE12_M_check_lenEmPKc.exit @@ -27403,10 +27400,10 @@ _ZNSt16allocator_traitsISaIN10ClipperLib8IntPointEEE8allocateERS2_m.exit.i.i.i.i .noexc26: ; preds = %_ZNSt16allocator_traitsISaIN10ClipperLib8IntPointEEE8allocateERS2_m.exit.i.i.i.i.i.i store ptr %33, ptr %21, align 8 %34 = getelementptr inbounds nuw i8, ptr %21, i64 8 + store ptr %31, ptr %32, align 8 + %33 = getelementptr inbounds nuw i8, ptr %31, i64 %27 + %34 = getelementptr inbounds nuw i8, ptr %21, i64 16 store ptr %33, ptr %34, align 8 - %35 = getelementptr inbounds nuw i8, ptr %33, i64 %27 - %36 = getelementptr inbounds nuw i8, ptr %21, i64 16 - store ptr %35, ptr %36, align 8 br label %.lr.ph.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i: ; preds = %.noexc26, %.lr.ph.i.i.i.i.i.i.i diff --git a/bench/boost/optimized/shared_work.ll b/bench/boost/optimized/shared_work.ll index fc0437ce781..c2a491c2dfd 100644 --- a/bench/boost/optimized/shared_work.ll +++ b/bench/boost/optimized/shared_work.ll @@ -208,20 +208,17 @@ _ZNSt11unique_lockISt5mutexEC2ERS0_.exit: ; preds = %1 br i1 %27, label %_ZNSt11unique_lockISt5mutexED2Ev.exit, label %28 28: ; preds = %22 - %29 = ptrtoint ptr %25 to i64 - %30 = add i64 %29, -160 - %31 = inttoptr i64 %30 to ptr - %32 = load ptr, ptr %25, align 8, !tbaa !50 - %33 = getelementptr inbounds nuw i8, ptr %25, i64 8 - %34 = load ptr, ptr %33, align 8, !tbaa !49 - store ptr %32, ptr %34, align 8, !tbaa !50 - %35 = getelementptr inbounds nuw i8, ptr %32, i64 8 - store ptr %34, ptr %35, align 8, !tbaa !49 + %29 = load ptr, ptr %25, align 8, !tbaa !50 + %30 = getelementptr inbounds nuw i8, ptr %25, i64 8 + %31 = load ptr, ptr %30, align 8, !tbaa !49 + store ptr %29, ptr %31, align 8, !tbaa !50 + %33 = getelementptr inbounds nuw i8, ptr %29, i64 8 + store ptr %31, ptr %33, align 8, !tbaa !49 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %25, i8 0, i64 16, i1 false) br label %_ZNSt11unique_lockISt5mutexED2Ev.exit _ZNSt11unique_lockISt5mutexED2Ev.exit: ; preds = %19, %28, %22 - %.0 = phi ptr [ null, %22 ], [ %31, %28 ], [ %8, %19 ] + %.0 = phi ptr [ null, %22 ], [ %25, %28 ], [ %8, %19 ] ret ptr %.0 36: ; preds = %3 diff --git a/bench/casadi/optimized/c_api_usage.ll b/bench/casadi/optimized/c_api_usage.ll index 488b2729785..281e8d0b5a9 100644 --- a/bench/casadi/optimized/c_api_usage.ll +++ b/bench/casadi/optimized/c_api_usage.ll @@ -3045,9 +3045,8 @@ _ZNSt6vectorIN6casadi8FunctionESaIS1_EE17_S_check_init_lenEmRKS2_.exit: ; preds _ZNSt12_Vector_baseIN6casadi8FunctionESaIS1_EE11_M_allocateEm.exit.thread: ; preds = %_ZNSt6vectorIN6casadi8FunctionESaIS1_EE17_S_check_init_lenEmRKS2_.exit store ptr null, ptr %0, align 8, !tbaa !58 - %9 = getelementptr inbounds nuw i8, ptr null, i64 %6 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %9, ptr %10, align 8, !tbaa !61 + %9 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr null, ptr %9, align 8, !tbaa !61 br label %_ZSt22__uninitialized_copy_aIPKN6casadi8FunctionEPS1_S1_ET0_T_S6_S5_RSaIT1_E.exit .lr.ph.i.i.i.i.preheader: ; preds = %_ZNSt6vectorIN6casadi8FunctionESaIS1_EE17_S_check_init_lenEmRKS2_.exit diff --git a/bench/casadi/optimized/dae_builder.ll b/bench/casadi/optimized/dae_builder.ll index 6fd718d6363..8458cd65113 100644 --- a/bench/casadi/optimized/dae_builder.ll +++ b/bench/casadi/optimized/dae_builder.ll @@ -33828,10 +33828,9 @@ _ZNK6casadi18DaeBuilderInternal8variableERKNSt7__cxx1112basic_stringIcSt11char_t br i1 %.not.i.i.i.i2, label %.thread, label %26 .thread: ; preds = %_ZNK6casadi18DaeBuilderInternal8variableERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit - %24 = getelementptr inbounds i8, ptr null, i64 %23 - %25 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %24 = getelementptr inbounds nuw i8, ptr %0, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %24, ptr %25, align 8, !tbaa !101 + store ptr null, ptr %24, align 8, !tbaa !101 br label %_ZNSt6vectorIxSaIxEEC2ERKS1_.exit 26: ; preds = %_ZNK6casadi18DaeBuilderInternal8variableERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE.exit @@ -33852,7 +33851,7 @@ _ZNK6casadi18DaeBuilderInternal8variableERKNSt7__cxx1112basic_stringIcSt11char_t br label %_ZNSt6vectorIxSaIxEEC2ERKS1_.exit _ZNSt6vectorIxSaIxEEC2ERKS1_.exit: ; preds = %.thread, %28 - %32 = phi ptr [ %24, %.thread ], [ %30, %28 ] + %32 = phi ptr [ null, %.thread ], [ %30, %28 ] %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %32, ptr %33, align 8, !tbaa !102 ret void diff --git a/bench/ceres/optimized/c_api.ll b/bench/ceres/optimized/c_api.ll index cd555b9a9c8..f6ff432f944 100644 --- a/bench/ceres/optimized/c_api.ll +++ b/bench/ceres/optimized/c_api.ll @@ -307,42 +307,36 @@ _ZNSt10unique_ptrI20CallbackLossFunctionSt14default_deleteIS0_EED2Ev.exit: ; pre _ZNSt6vectorIPdSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i: ; preds = %20 %.not.i.i.i9 = icmp eq i32 %6, 0 - br i1 %.not.i.i.i9, label %_ZNSt12_Vector_baseIPdSaIS0_EE11_M_allocateEm.exit.thread.i.i, label %26 + br i1 %.not.i.i.i9, label %28, label %_ZNSt12_Vector_baseIPdSaIS0_EE11_M_allocateEm.exit.thread.i.i _ZNSt12_Vector_baseIPdSaIS0_EE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorIPdSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i - %24 = getelementptr inbounds nuw i8, ptr null, i64 %.idx - %25 = getelementptr inbounds nuw i8, ptr %11, i64 16 - store ptr %24, ptr %25, align 8, !tbaa !33 - br label %30 - -26: ; preds = %_ZNSt6vectorIPdSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i - %27 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #18 + %25 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #18 to label %.noexc4.i unwind label %51 -.noexc4.i: ; preds = %26 - store ptr %27, ptr %11, align 8, !tbaa !36 - %28 = getelementptr inbounds nuw i8, ptr %27, i64 %.idx - %29 = getelementptr inbounds nuw i8, ptr %11, i64 16 - store ptr %28, ptr %29, align 8, !tbaa !33 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %27, ptr align 8 %8, i64 %.idx, i1 false) - br label %30 - -30: ; preds = %.noexc4.i, %_ZNSt12_Vector_baseIPdSaIS0_EE11_M_allocateEm.exit.thread.i.i - %31 = phi ptr [ %24, %_ZNSt12_Vector_baseIPdSaIS0_EE11_M_allocateEm.exit.thread.i.i ], [ %28, %.noexc4.i ] - %32 = getelementptr inbounds nuw i8, ptr %11, i64 8 - store ptr %31, ptr %32, align 8, !tbaa !37 +.noexc4.i:; preds = %24 + store ptr %25, ptr %11, align 8, !tbaa !33 + %26 = getelementptr inbounds nuw i8, ptr %25, i64 %.idx + %27 = getelementptr inbounds nuw i8, ptr %11, i64 16 + store ptr %26, ptr %27, align 8, !tbaa !36 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %25, ptr align 8 %8, i64 %.idx, i1 false) + br label %28 + +28: ; preds = %.noexc4.i, %_ZNSt6vectorIPdSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i + %29 = phi ptr [ %26, %.noexc4.i ], [ null, %_ZNSt6vectorIPdSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i ] + %30 = getelementptr inbounds nuw i8, ptr %11, i64 8 + store ptr %29, ptr %30, align 8, !tbaa !37 store ptr null, ptr %10, align 8, !tbaa !24 %33 = invoke noundef ptr @_ZN5ceres7Problem16AddResidualBlockEPNS_12CostFunctionEPNS_12LossFunctionERKSt6vectorIPdSaIS6_EE(ptr noundef nonnull align 8 dereferenceable(8) %0, ptr noundef nonnull %12, ptr noundef %.sroa.022.0, ptr noundef nonnull align 8 dereferenceable(24) %11) to label %34 unwind label %42 -34: ; preds = %30 - %35 = load ptr, ptr %11, align 8, !tbaa !36 +34: ; preds = %28 + %35 = load ptr, ptr %11, align 8, !tbaa !33 %.not.i.i.i10 = icmp eq ptr %35, null br i1 %.not.i.i.i10, label %_ZNSt10unique_ptrI20CallbackCostFunctionSt14default_deleteIS0_EED2Ev.exit, label %36 36: ; preds = %34 %37 = getelementptr inbounds nuw i8, ptr %11, i64 16 - %38 = load ptr, ptr %37, align 8, !tbaa !33 + %38 = load ptr, ptr %37, align 8, !tbaa !36 %39 = ptrtoint ptr %38 to i64 %40 = ptrtoint ptr %35 to i64 %41 = sub i64 %39, %40 @@ -354,16 +348,16 @@ _ZNSt10unique_ptrI20CallbackCostFunctionSt14default_deleteIS0_EED2Ev.exit: ; pre call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #20 ret ptr %33 -42: ; preds = %30 +42: ; preds = %28 %43 = landingpad { ptr, i32 } cleanup - %44 = load ptr, ptr %11, align 8, !tbaa !36 + %44 = load ptr, ptr %11, align 8, !tbaa !33 %.not.i.i.i14 = icmp eq ptr %44, null br i1 %.not.i.i.i14, label %.thread37, label %45 45: ; preds = %42 %46 = getelementptr inbounds nuw i8, ptr %11, i64 16 - %47 = load ptr, ptr %46, align 8, !tbaa !33 + %47 = load ptr, ptr %46, align 8, !tbaa !36 %48 = ptrtoint ptr %47 to i64 %49 = ptrtoint ptr %44 to i64 %50 = sub i64 %48, %49 @@ -374,7 +368,7 @@ _ZNSt10unique_ptrI20CallbackCostFunctionSt14default_deleteIS0_EED2Ev.exit: ; pre call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #20 br label %_ZNSt10unique_ptrIN5ceres12LossFunctionESt14default_deleteIS1_EED2Ev.exit19 -51: ; preds = %23, %26 +51: ; preds = %23, %24 %52 = landingpad { ptr, i32 } cleanup call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %11) #20 @@ -385,7 +379,7 @@ _ZNKSt14default_deleteIN5ceres12LossFunctionEEclEPS1_.exit.i18: ; preds = %51 %53 = load ptr, ptr %.sroa.022.0, align 8, !tbaa !3 %54 = getelementptr inbounds nuw i8, ptr %53, i64 8 %55 = load ptr, ptr %54, align 8 - tail call void %55(ptr noundef nonnull align 8 dereferenceable(8) %.sroa.022.0) #20 + tail call void %53(ptr noundef nonnull align 8 dereferenceable(8) %.sroa.022.0) #20 br label %_ZNSt10unique_ptrIN5ceres12LossFunctionESt14default_deleteIS1_EED2Ev.exit19 _ZNSt10unique_ptrIN5ceres12LossFunctionESt14default_deleteIS1_EED2Ev.exit19: ; preds = %.thread37, %.thread, %51, %_ZNKSt14default_deleteIN5ceres12LossFunctionEEclEPS1_.exit.i18 @@ -1383,10 +1377,10 @@ attributes #21 = { noreturn } !30 = !{!31, !26, i64 8} !31 = !{!"_ZTS20CallbackLossFunction", !8, i64 0, !26, i64 8, !26, i64 16} !32 = !{!31, !26, i64 16} -!33 = !{!34, !35, i64 16} +!33 = !{!34, !35, i64 0} !34 = !{!"_ZTSNSt12_Vector_baseIPdSaIS0_EE17_Vector_impl_dataE", !35, i64 0, !35, i64 8, !35, i64 16} !35 = !{!"p2 double", !26, i64 0} -!36 = !{!34, !35, i64 0} +!36 = !{!34, !35, i64 16} !37 = !{!34, !35, i64 8} !38 = !{!39, !40, i64 0} !39 = !{!"_ZTSN5ceres6Solver7OptionsE", !40, i64 0, !41, i64 4, !42, i64 8, !43, i64 12, !44, i64 16, !45, i64 20, !46, i64 24, !9, i64 32, !9, i64 40, !9, i64 48, !9, i64 56, !44, i64 64, !44, i64 68, !9, i64 72, !9, i64 80, !47, i64 88, !48, i64 92, !45, i64 96, !44, i64 100, !44, i64 104, !9, i64 112, !44, i64 120, !9, i64 128, !9, i64 136, !9, i64 144, !9, i64 152, !9, i64 160, !9, i64 168, !44, i64 176, !9, i64 184, !9, i64 192, !9, i64 200, !49, i64 208, !50, i64 212, !51, i64 216, !52, i64 224, !60, i64 280, !61, i64 284, !62, i64 288, !63, i64 296, !45, i64 312, !45, i64 313, !45, i64 314, !44, i64 316, !44, i64 320, !44, i64 324, !44, i64 328, !45, i64 332, !9, i64 336, !9, i64 344, !45, i64 352, !45, i64 353, !63, i64 360, !9, i64 376, !68, i64 384, !45, i64 388, !69, i64 392, !74, i64 416, !77, i64 448, !45, i64 452, !9, i64 456, !9, i64 464, !45, i64 472, !78, i64 480} diff --git a/bench/ceres/optimized/schur_complement_solver.ll b/bench/ceres/optimized/schur_complement_solver.ll index 4fdd9e3386e..fd26e000f34 100644 --- a/bench/ceres/optimized/schur_complement_solver.ll +++ b/bench/ceres/optimized/schur_complement_solver.ll @@ -1459,10 +1459,7 @@ define linkonce_odr hidden void @_ZSt11make_uniqueIN5ceres8internal28BlockRandom .noexc7.thread: ; preds = %4 %13 = getelementptr inbounds nuw i8, ptr %5, i64 8 - %14 = getelementptr inbounds nuw i8, ptr null, i64 %12 - %15 = getelementptr inbounds nuw i8, ptr %5, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %5, i8 0, i64 16, i1 false) - store ptr %14, ptr %15, align 8, !tbaa !117 + %14 = getelementptr inbounds nuw i8, ptr %5, i64 16 br label %.loopexit 16: ; preds = %4 @@ -1500,7 +1497,7 @@ _ZNSt16allocator_traitsISaIN5ceres8internal5BlockEEE8allocateERS3_m.exit.i.i.i.i br i1 %.not.i.i.i.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.i, !llvm.loop !118 .loopexit: ; preds = %.lr.ph.i.i.i.i.i, %.noexc7.thread - %25 = phi ptr [ %15, %.noexc7.thread ], [ %21, %.lr.ph.i.i.i.i.i ] + %25 = phi ptr [ %14, %.noexc7.thread ], [ %21, %.lr.ph.i.i.i.i.i ] %26 = phi ptr [ %13, %.noexc7.thread ], [ %19, %.lr.ph.i.i.i.i.i ] %.0.lcssa.i.i.i.i.i = phi ptr [ null, %.noexc7.thread ], [ %24, %.lr.ph.i.i.i.i.i ] store ptr %.0.lcssa.i.i.i.i.i, ptr %26, align 8, !tbaa !54 diff --git a/bench/cmake/optimized/cmCTestMemCheckHandler.ll b/bench/cmake/optimized/cmCTestMemCheckHandler.ll index 230b21590d6..a0cfbc06ab9 100644 --- a/bench/cmake/optimized/cmCTestMemCheckHandler.ll +++ b/bench/cmake/optimized/cmCTestMemCheckHandler.ll @@ -36995,9 +36995,8 @@ _ZNSt6vectorIN5cmsys17RegularExpressionESaIS1_EE17_S_check_init_lenEmRKS2_.exit: _ZNSt12_Vector_baseIN5cmsys17RegularExpressionESaIS1_EE11_M_allocateEm.exit.thread: ; preds = %_ZNSt6vectorIN5cmsys17RegularExpressionESaIS1_EE17_S_check_init_lenEmRKS2_.exit store ptr null, ptr %0, align 8, !tbaa !415 - %10 = getelementptr inbounds nuw i8, ptr null, i64 %6 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %10, ptr %11, align 8, !tbaa !416 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr null, ptr %10, align 8, !tbaa !416 br label %_ZSt22__uninitialized_copy_aIPKN5cmsys17RegularExpressionEPS1_S1_ET0_T_S6_S5_RSaIT1_E.exit .lr.ph.i.i.i.i.preheader: ; preds = %_ZNSt6vectorIN5cmsys17RegularExpressionESaIS1_EE17_S_check_init_lenEmRKS2_.exit diff --git a/bench/cmake/optimized/cmStateSnapshot.ll b/bench/cmake/optimized/cmStateSnapshot.ll index 29eed9f0d04..652f4494194 100644 --- a/bench/cmake/optimized/cmStateSnapshot.ll +++ b/bench/cmake/optimized/cmStateSnapshot.ll @@ -161,10 +161,9 @@ define dso_local void @_ZN15cmStateSnapshot11GetChildrenEv(ptr dead_on_unwind no br i1 %.not.i.i.i.i, label %.thread, label %24 .thread: ; preds = %2 - %22 = getelementptr inbounds nuw i8, ptr null, i64 %21 - %23 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %22 = getelementptr inbounds nuw i8, ptr %0, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %22, ptr %23, align 8, !tbaa !29 + store ptr null, ptr %22, align 8, !tbaa !29 br label %_ZNSt6vectorI15cmStateSnapshotSaIS0_EEC2ERKS2_.exit 24: ; preds = %2 diff --git a/bench/cvc5/optimized/conjecture_generator.ll b/bench/cvc5/optimized/conjecture_generator.ll index 4193821dc63..aa9d2788052 100644 --- a/bench/cvc5/optimized/conjecture_generator.ll +++ b/bench/cvc5/optimized/conjecture_generator.ll @@ -60495,10 +60495,7 @@ _ZNKSt6vectorIS_IN4cvc58internal12NodeTemplateILb0EEESaIS3_EESaIS5_EE12_M_check_ .noexc26.thread: ; preds = %_ZNKSt6vectorIS_IN4cvc58internal12NodeTemplateILb0EEESaIS3_EESaIS5_EE12_M_check_lenEmPKc.exit %28 = getelementptr inbounds nuw i8, ptr %21, i64 8 - %29 = getelementptr inbounds nuw i8, ptr null, i64 %27 - %30 = getelementptr inbounds nuw i8, ptr %21, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %21, i8 0, i64 16, i1 false) - store ptr %29, ptr %30, align 8, !tbaa !18 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false) br label %.loopexit 31: ; preds = %_ZNKSt6vectorIS_IN4cvc58internal12NodeTemplateILb0EEESaIS3_EESaIS5_EE12_M_check_lenEmPKc.exit diff --git a/bench/cvc5/optimized/node_manager.ll b/bench/cvc5/optimized/node_manager.ll index f730e973531..ed5da465a60 100644 --- a/bench/cvc5/optimized/node_manager.ll +++ b/bench/cvc5/optimized/node_manager.ll @@ -6698,24 +6698,17 @@ _ZNK4cvc58internal11NodeManager10poolLookupEPNS0_4expr9NodeValueE.exit: ; preds %53 = sub i64 %51, %52 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %47, i8 0, i64 24, i1 false) %.not.i.i.i.i.i = icmp eq ptr %49, %50 - br i1 %.not.i.i.i.i.i, label %.thread, label %56 + br i1 %.not.i.i.i.i.i, label %.thread, label %54 .thread: ; preds = %40 - %54 = getelementptr inbounds i8, ptr null, i64 %53 - %55 = getelementptr inbounds nuw i8, ptr %36, i64 40 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %47, i8 0, i64 16, i1 false) - store ptr %54, ptr %55, align 8, !tbaa !115 - br label %62 - -56: ; preds = %40 - %57 = icmp ugt i64 %53, 9223372036854775804 - br i1 %57, label %.noexc.i.i.i, label %58, !prof !16 + %55 = icmp ugt i64 %53, 9223372036854775804 + br i1 %55, label %.noexc.i.i.i, label %58, !prof !16 -.noexc.i.i.i: ; preds = %56 +.noexc.i.i.i: ; preds = %54 call void @_ZSt28__throw_bad_array_new_lengthv() #33 unreachable -58: ; preds = %56 +58: ; preds = %54 %59 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %53) #35 store ptr %59, ptr %47, align 8, !tbaa !114 %60 = getelementptr inbounds nuw i8, ptr %59, i64 %53 @@ -6724,8 +6717,8 @@ _ZNK4cvc58internal11NodeManager10poolLookupEPNS0_4expr9NodeValueE.exit: ; preds call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %59, ptr align 4 %50, i64 %53, i1 false) br label %62 -62: ; preds = %58, %.thread - %63 = phi ptr [ %54, %.thread ], [ %60, %58 ] +62: ; preds = %40, %56 + %63 = phi ptr [ %58, %56 ], [ null, %40 ] %64 = getelementptr inbounds nuw i8, ptr %36, i64 32 store ptr %63, ptr %64, align 8, !tbaa !111 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) @@ -7273,24 +7266,17 @@ _ZNK4cvc58internal11NodeManager10poolLookupEPNS0_4expr9NodeValueE.exit: ; preds %53 = sub i64 %51, %52 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %47, i8 0, i64 24, i1 false) %.not.i.i.i.i.i = icmp eq ptr %49, %50 - br i1 %.not.i.i.i.i.i, label %.thread, label %56 + br i1 %.not.i.i.i.i.i, label %.thread, label %54 .thread: ; preds = %40 - %54 = getelementptr inbounds i8, ptr null, i64 %53 - %55 = getelementptr inbounds nuw i8, ptr %36, i64 40 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %47, i8 0, i64 16, i1 false) - store ptr %54, ptr %55, align 8, !tbaa !115 - br label %62 - -56: ; preds = %40 - %57 = icmp ugt i64 %53, 9223372036854775804 - br i1 %57, label %.noexc.i.i.i, label %58, !prof !16 + %55 = icmp ugt i64 %53, 9223372036854775804 + br i1 %55, label %.noexc.i.i.i, label %58, !prof !16 -.noexc.i.i.i: ; preds = %56 +.noexc.i.i.i: ; preds = %54 call void @_ZSt28__throw_bad_array_new_lengthv() #33 unreachable -58: ; preds = %56 +58: ; preds = %54 %59 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %53) #35 store ptr %59, ptr %47, align 8, !tbaa !114 %60 = getelementptr inbounds nuw i8, ptr %59, i64 %53 @@ -7299,8 +7285,8 @@ _ZNK4cvc58internal11NodeManager10poolLookupEPNS0_4expr9NodeValueE.exit: ; preds call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %59, ptr align 4 %50, i64 %53, i1 false) br label %62 -62: ; preds = %58, %.thread - %63 = phi ptr [ %54, %.thread ], [ %60, %58 ] +62: ; preds = %40, %56 + %63 = phi ptr [ %58, %56 ], [ null, %40 ] %64 = getelementptr inbounds nuw i8, ptr %36, i64 32 store ptr %63, ptr %64, align 8, !tbaa !111 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) diff --git a/bench/darktable/optimized/Camera.ll b/bench/darktable/optimized/Camera.ll index 9f9914f3ff9..5ad8e2d000e 100644 --- a/bench/darktable/optimized/Camera.ll +++ b/bench/darktable/optimized/Camera.ll @@ -9457,16 +9457,13 @@ define linkonce_odr hidden noundef ptr @_ZSt12construct_atIN8rawspeed16CameraSen %15 = ptrtoint ptr %13 to i64 %16 = ptrtoint ptr %14 to i64 %17 = sub i64 %15, %16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false) %.not.i.i.i.i = icmp eq ptr %13, %14 br i1 %.not.i.i.i.i, label %.thread, label %21 .thread: ; preds = %6 %18 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %19 = getelementptr inbounds i8, ptr null, i64 %17 - %20 = getelementptr inbounds nuw i8, ptr %7, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %7, i8 0, i64 16, i1 false) - store ptr %19, ptr %20, align 8, !tbaa !80 + %19 = getelementptr inbounds nuw i8, ptr %7, i64 16 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %7, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIiSaIiEEC2ERKS1_.exit 21: ; preds = %6 @@ -9489,8 +9486,8 @@ define linkonce_odr hidden noundef ptr @_ZSt12construct_atIN8rawspeed16CameraSen br label %_ZNSt6vectorIiSaIiEEC2ERKS1_.exit _ZNSt6vectorIiSaIiEEC2ERKS1_.exit: ; preds = %.thread, %23 - %28 = phi ptr [ %20, %.thread ], [ %27, %23 ] - %29 = phi ptr [ %19, %.thread ], [ %26, %23 ] + %28 = phi ptr [ %19, %.thread ], [ %27, %23 ] + %29 = phi ptr [ null, %.thread ], [ %26, %23 ] %30 = phi ptr [ %18, %.thread ], [ %25, %23 ] store ptr %29, ptr %30, align 8, !tbaa !125 invoke void @_ZN8rawspeed16CameraSensorInfoC1EiiiiSt6vectorIiSaIiEE(ptr noundef nonnull align 8 dereferenceable(40) %0, i32 noundef %8, i32 noundef %9, i32 noundef %10, i32 noundef %11, ptr noundef nonnull %7) diff --git a/bench/darktable/optimized/TiffEntry.ll b/bench/darktable/optimized/TiffEntry.ll index d117a2677e4..827e6223fe1 100644 --- a/bench/darktable/optimized/TiffEntry.ll +++ b/bench/darktable/optimized/TiffEntry.ll @@ -471,40 +471,34 @@ _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: %14 = load i32, ptr %13, align 8, !tbaa !23 %15 = icmp sgt i32 %14, -1 tail call void @llvm.assume(i1 %15) - %16 = zext nneg i32 %14 to i64 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, i8 0, i64 24, i1 false) %.not.i.i.i = icmp eq i32 %14, 0 - br i1 %.not.i.i.i, label %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i, label %.noexc4.i - -_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i - %17 = getelementptr inbounds nuw i8, ptr null, i64 %16 - %18 = getelementptr inbounds nuw i8, ptr %0, i64 64 - store ptr %17, ptr %18, align 8, !tbaa !37 - br label %22 + br i1 %.not.i.i.i, label %20, label %.noexc4.i .noexc4.i: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i - %19 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %16) #24 - store ptr %19, ptr %11, align 8, !tbaa !39 - %20 = getelementptr inbounds nuw i8, ptr %19, i64 %16 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 64 - store ptr %20, ptr %21, align 8, !tbaa !37 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %19, ptr nonnull align 1 %12, i64 %16, i1 false) - br label %22 - -22: ; preds = %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i, %.noexc4.i - %23 = phi ptr [ null, %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i ], [ %19, %.noexc4.i ] - %24 = phi ptr [ %17, %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i ], [ %20, %.noexc4.i ] - %25 = getelementptr inbounds nuw i8, ptr %0, i64 56 - store ptr %24, ptr %25, align 8, !tbaa !40 - %26 = ptrtoint ptr %24 to i64 - %27 = ptrtoint ptr %23 to i64 - %28 = sub i64 %26, %27 - %29 = and i64 %28, 2147483648 - %30 = icmp eq i64 %29, 0 - tail call void @llvm.assume(i1 %30) - %.sroa.212.8.insert.ext = and i64 %28, 2147483647 + %16 = zext nneg i32 %14 to i64 + %17 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %16) #24 + store ptr %17, ptr %11, align 8, !tbaa !37 + %21 = getelementptr inbounds nuw i8, ptr %17, i64 %16 + %19 = getelementptr inbounds nuw i8, ptr %0, i64 64 + store ptr %18, ptr %19, align 8, !tbaa !39 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %17, ptr nonnull align 1 %12, i64 %16, i1 false) + br label %20 + +20: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i, %.noexc4.i + %24 = phi ptr [ %17, %.noexc4.i ], [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ] + %22 = phi ptr [ %18, %.noexc4.i ], [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ] + %23 = getelementptr inbounds nuw i8, ptr %0, i64 56 + store ptr %22, ptr %23, align 8, !tbaa !40 + %27 = ptrtoint ptr %22 to i64 + %25 = ptrtoint ptr %21 to i64 + %26 = sub i64 %24, %25 + %27 = and i64 %26, 2147483648 + %28 = icmp eq i64 %27, 0 + tail call void @llvm.assume(i1 %28) + %.sroa.212.8.insert.ext = and i64 %26, 2147483647 %.sroa.212.8.insert.insert = or disjoint i64 %.sroa.212.8.insert.ext, 244834610708480 - store ptr %23, ptr %7, align 8 + store ptr %21, ptr %7, align 8 store i64 %.sroa.212.8.insert.insert, ptr %.sroa.423.0..sroa_idx, align 8 store i32 0, ptr %.sroa.7.0..sroa_idx, align 8 store i32 %4, ptr %10, align 4, !tbaa !29 @@ -1364,13 +1358,13 @@ define hidden { ptr, i64 } @_ZNK8rawspeed9TiffEntry14getRootIfdDataEv(ptr nounde ; Function Attrs: inlinehint mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN8rawspeed17TiffEntryWithDataD2Ev(ptr noundef nonnull align 8 dereferenceable(72) %0) unnamed_addr #8 comdat align 2 personality ptr @__gxx_personality_v0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %3 = load ptr, ptr %2, align 8, !tbaa !39 + %3 = load ptr, ptr %2, align 8, !tbaa !37 %.not.i.i.i = icmp eq ptr %3, null br i1 %.not.i.i.i, label %_ZNSt6vectorIhSaIhEED2Ev.exit, label %4 4: ; preds = %1 %5 = getelementptr inbounds nuw i8, ptr %0, i64 64 - %6 = load ptr, ptr %5, align 8, !tbaa !37 + %6 = load ptr, ptr %5, align 8, !tbaa !39 %7 = ptrtoint ptr %6 to i64 %8 = ptrtoint ptr %3 to i64 %9 = sub i64 %7, %8 @@ -1384,13 +1378,13 @@ _ZNSt6vectorIhSaIhEED2Ev.exit: ; preds = %1, %4 ; Function Attrs: inlinehint mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN8rawspeed17TiffEntryWithDataD0Ev(ptr noundef nonnull align 8 dereferenceable(72) %0) unnamed_addr #8 comdat align 2 personality ptr @__gxx_personality_v0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 48 - %3 = load ptr, ptr %2, align 8, !tbaa !39 + %3 = load ptr, ptr %2, align 8, !tbaa !37 %.not.i.i.i.i = icmp eq ptr %3, null br i1 %.not.i.i.i.i, label %_ZN8rawspeed17TiffEntryWithDataD2Ev.exit, label %4 4: ; preds = %1 %5 = getelementptr inbounds nuw i8, ptr %0, i64 64 - %6 = load ptr, ptr %5, align 8, !tbaa !37 + %6 = load ptr, ptr %5, align 8, !tbaa !39 %7 = ptrtoint ptr %6 to i64 %8 = ptrtoint ptr %3 to i64 %9 = sub i64 %7, %8 @@ -1593,9 +1587,9 @@ attributes #26 = { cold } !34 = !{!35} !35 = distinct !{!35, !36, !"_ZNK8rawspeed10ByteStream12getSubStreamEjj: argument 0"} !36 = distinct !{!36, !"_ZNK8rawspeed10ByteStream12getSubStreamEjj"} -!37 = !{!38, !17, i64 16} +!37 = !{!38, !17, i64 0} !38 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !17, i64 0, !17, i64 8, !17, i64 16} -!39 = !{!38, !17, i64 0} +!39 = !{!38, !17, i64 16} !40 = !{!38, !17, i64 8} !41 = !{!13, !13, i64 0} !42 = distinct !{!42, !43} diff --git a/bench/draco/optimized/point_attribute.ll b/bench/draco/optimized/point_attribute.ll index 4bd43addc72..e642a3bec57 100644 --- a/bench/draco/optimized/point_attribute.ll +++ b/bench/draco/optimized/point_attribute.ll @@ -494,10 +494,9 @@ _ZNSt10unique_ptrIN5draco10DataBufferESt14default_deleteIS1_EED2Ev.exit: ; preds .noexc11.thread: ; preds = %35 %46 = getelementptr inbounds nuw i8, ptr %36, i64 16 - %47 = getelementptr inbounds i8, ptr null, i64 %45 - %48 = getelementptr inbounds nuw i8, ptr %36, i64 24 + %47 = getelementptr inbounds nuw i8, ptr %36, i64 24 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %38, i8 0, i64 16, i1 false) - store ptr %47, ptr %48, align 8, !tbaa !26 + store ptr null, ptr %47, align 8, !tbaa !26 br label %56 49: ; preds = %35 @@ -526,7 +525,7 @@ _ZNSt16allocator_traitsISaIhEE8allocateERS0_m.exit.i.i.i.i.i.i: ; preds = %49 br label %56 56: ; preds = %.noexc11.thread, %52 - %57 = phi ptr [ %47, %.noexc11.thread ], [ %54, %52 ] + %57 = phi ptr [ null, %.noexc11.thread ], [ %54, %52 ] %58 = phi ptr [ %46, %.noexc11.thread ], [ %53, %52 ] store ptr %57, ptr %58, align 8, !tbaa !63 %59 = getelementptr inbounds nuw i8, ptr %36, i64 32 diff --git a/bench/duckdb/optimized/filtered_re2.ll b/bench/duckdb/optimized/filtered_re2.ll index e6074ecf982..afcbc29a1bf 100644 --- a/bench/duckdb/optimized/filtered_re2.ll +++ b/bench/duckdb/optimized/filtered_re2.ll @@ -1231,6 +1231,7 @@ _ZNSt6vectorIPN10duckdb_re23RE2ESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i: ; to label %.noexc5.i.i unwind label %_ZNSt12_Vector_baseIPN10duckdb_re23RE2ESaIS2_EED2Ev.exit.i.i .noexc5.i.i: ; preds = %14 + %16 = getelementptr inbounds nuw i8, ptr %15, i64 %9 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %15, ptr align 8 %4, i64 %9, i1 false) br label %_ZNSt6vectorIPN10duckdb_re23RE2ESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit.i @@ -1243,8 +1244,8 @@ _ZNSt12_Vector_baseIPN10duckdb_re23RE2ESaIS2_EED2Ev.exit.i.i: ; preds = %14, %13 to label %_ZNSt19__shrink_to_fit_auxISt6vectorIPN10duckdb_re23RE2ESaIS3_EELb1EE8_S_do_itERS5_.exit unwind label %19 _ZNSt6vectorIPN10duckdb_re23RE2ESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit.i: ; preds = %.noexc5.i.i, %_ZNSt6vectorIPN10duckdb_re23RE2ESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i - %.sroa.012.0.i = phi ptr [ %15, %.noexc5.i.i ], [ null, %_ZNSt6vectorIPN10duckdb_re23RE2ESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i ] - %.sroa.12.0.i = getelementptr inbounds nuw i8, ptr %.sroa.012.0.i, i64 %9 + %.sroa.012.0.i = phi ptr [ null, %_ZNSt6vectorIPN10duckdb_re23RE2ESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i ], [ %16, %.noexc5.i.i ] + %.sroa.012.0.i = phi ptr [ null, %_ZNSt6vectorIPN10duckdb_re23RE2ESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i.i ], [ %15, %.noexc5.i.i ] store ptr %.sroa.012.0.i, ptr %0, align 8, !tbaa !8 store ptr %.sroa.12.0.i, ptr %6, align 8, !tbaa !11 store ptr %.sroa.12.0.i, ptr %2, align 8, !tbaa !16 diff --git a/bench/eastl/optimized/TestAlgorithm.ll b/bench/eastl/optimized/TestAlgorithm.ll index c8f2f74967d..948b80fdbee 100644 --- a/bench/eastl/optimized/TestAlgorithm.ll +++ b/bench/eastl/optimized/TestAlgorithm.ll @@ -3892,8 +3892,7 @@ for.end: ; preds = %_ZN5eastl12basic_st invoke.cont591.thread: ; preds = %for.end call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %dest, i8 0, i64 24, i1 false) %mpEnd.i7.i14373 = getelementptr inbounds nuw i8, ptr %dest, i64 8 - %add.ptr.i14374 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i - store ptr %add.ptr.i14374, ptr %mpEnd.i7.i14373, align 8 + store ptr null, ptr %mpEnd.i7.i14373, align 8 br label %invoke.cont596 _ZN5eastl10VectorBaseINS_12basic_stringIcNS_9allocatorEEES2_EC2EmRKS2_.exit.i: ; preds = %for.end @@ -3950,7 +3949,7 @@ for.body.i.i.i.i: ; preds = %for.body.i.i.i.i, % br i1 %cmp.i.i.i.i1162, label %for.body.i.i.i.i, label %invoke.cont596, !llvm.loop !26 invoke.cont596: ; preds = %for.body.i.i.i.i, %invoke.cont591.thread, %invoke.cont591 - %add.ptr.i14377 = phi ptr [ %add.ptr.i14374, %invoke.cont591.thread ], [ %add.ptr.i, %invoke.cont591 ], [ %add.ptr.i, %for.body.i.i.i.i ] + %add.ptr.i14377 = phi ptr [ null, %invoke.cont591.thread ], [ %add.ptr.i, %invoke.cont591 ], [ %add.ptr.i, %for.body.i.i.i.i ] %.pr.i122214376 = phi ptr [ null, %invoke.cont591.thread ], [ %call.i.i.i.i.i1159, %invoke.cont591 ], [ %call.i.i.i.i.i1159, %for.body.i.i.i.i ] %mRemainingSizeField.i.i.i.i1171 = getelementptr inbounds nuw i8, ptr %.pr.i122214376, i64 23 %272 = load i8, ptr %mRemainingSizeField.i.i.i.i1171, align 1 diff --git a/bench/entt/optimized/meta_context.ll b/bench/entt/optimized/meta_context.ll index b1fb44b9ce3..69609d2c5eb 100644 --- a/bench/entt/optimized/meta_context.ll +++ b/bench/entt/optimized/meta_context.ll @@ -92800,11 +92800,8 @@ _ZN4entt7type_idISt6vectorIiSaIiEEEERKNS_9type_infoEv.exit: ; preds = %2, %5, %7 .noexc3.thread: ; preds = %_ZN4entt7type_idISt6vectorIiSaIiEEEERKNS_9type_infoEv.exit %19 = getelementptr inbounds nuw i8, ptr %12, i64 8 - %20 = getelementptr inbounds i8, ptr null, i64 %18 - %21 = getelementptr inbounds nuw i8, ptr %12, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %12, i8 0, i64 16, i1 false) - store ptr %20, ptr %21, align 8, !tbaa !849 - br label %29 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %12, i8 0, i64 24, i1 false) + br label %27 22: ; preds = %_ZN4entt7type_idISt6vectorIiSaIiEEEERKNS_9type_infoEv.exit %23 = icmp ugt i64 %18, 9223372036854775804 @@ -92832,7 +92829,7 @@ _ZNSt16allocator_traitsISaIiEE8allocateERS0_m.exit.i.i.i.i: ; preds = %22 br label %29 29: ; preds = %25, %.noexc3.thread - %30 = phi ptr [ %20, %.noexc3.thread ], [ %27, %25 ] + %30 = phi ptr [ null, %.noexc3.thread ], [ %27, %25 ] %31 = phi ptr [ %19, %.noexc3.thread ], [ %26, %25 ] store ptr %30, ptr %31, align 8, !tbaa !850 store ptr %12, ptr %0, align 8, !tbaa !46 diff --git a/bench/entt/optimized/storage_entity.ll b/bench/entt/optimized/storage_entity.ll index 8efdfd5f9ce..c18e40250a6 100644 --- a/bench/entt/optimized/storage_entity.ll +++ b/bench/entt/optimized/storage_entity.ll @@ -50992,6 +50992,7 @@ _ZNSt6vectorIPN4entt6entityESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i: ; preds to label %.noexc5.i unwind label %_ZNSt12_Vector_baseIPN4entt6entityESaIS2_EED2Ev.exit.i .noexc5.i: ; preds = %10 + %12 = getelementptr inbounds nuw i8, ptr %11, i64 %7 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %11, ptr align 8 %2, i64 %7, i1 false) br label %_ZNSt6vectorIPN4entt6entityESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit @@ -51003,9 +51004,9 @@ _ZNSt12_Vector_baseIPN4entt6entityESaIS2_EED2Ev.exit.i: ; preds = %9, %10 invoke void @__cxa_end_catch() to label %_ZNSt6vectorIPN4entt6entityESaIS2_EED2Ev.exit unwind label %19 -_ZNSt6vectorIPN4entt6entityESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit: ; preds = %_ZNSt6vectorIPN4entt6entityESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i, %.noexc5.i - %.sroa.012.0 = phi ptr [ %11, %.noexc5.i ], [ null, %_ZNSt6vectorIPN4entt6entityESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i ] - %.sroa.12.0 = getelementptr inbounds nuw i8, ptr %.sroa.012.0, i64 %7 +_ZNSt6vectorIPN4entt6entityESaIS2_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS2_S4_EEEvEET_SC_RKS3_.exit: ; preds = %.noexc5.i, %_ZNSt6vectorIPN4entt6entityESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i + %.sroa.012.0 = phi ptr [ null, %_ZNSt6vectorIPN4entt6entityESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i ], [ %12, %.noexc5.i ] + %.sroa.012.0 = phi ptr [ null, %_ZNSt6vectorIPN4entt6entityESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i.i ], [ %11, %.noexc5.i ] %14 = getelementptr inbounds nuw i8, ptr %0, i64 16 %15 = load ptr, ptr %14, align 8, !tbaa !61 store ptr %.sroa.012.0, ptr %0, align 8, !tbaa !59 @@ -51059,6 +51060,7 @@ _ZNSt6vectorIN4entt6entityESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i: ; preds to label %.noexc5.i unwind label %_ZNSt12_Vector_baseIN4entt6entityESaIS1_EED2Ev.exit.i .noexc5.i: ; preds = %10 + %12 = getelementptr inbounds nuw i8, ptr %11, i64 %7 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %11, ptr align 4 %2, i64 %7, i1 false) br label %_ZNSt6vectorIN4entt6entityESaIS1_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEEvEET_SB_RKS2_.exit @@ -51070,9 +51072,9 @@ _ZNSt12_Vector_baseIN4entt6entityESaIS1_EED2Ev.exit.i: ; preds = %9, %10 invoke void @__cxa_end_catch() to label %_ZNSt6vectorIN4entt6entityESaIS1_EED2Ev.exit unwind label %19 -_ZNSt6vectorIN4entt6entityESaIS1_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEEvEET_SB_RKS2_.exit: ; preds = %_ZNSt6vectorIN4entt6entityESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i, %.noexc5.i - %.sroa.012.0 = phi ptr [ %11, %.noexc5.i ], [ null, %_ZNSt6vectorIN4entt6entityESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i ] - %.sroa.12.0 = getelementptr inbounds nuw i8, ptr %.sroa.012.0, i64 %7 +_ZNSt6vectorIN4entt6entityESaIS1_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEEvEET_SB_RKS2_.exit: ; preds = %.noexc5.i, %_ZNSt6vectorIN4entt6entityESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i + %.sroa.012.0 = phi ptr [ null, %_ZNSt6vectorIN4entt6entityESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i ], [ %12, %.noexc5.i ] + %.sroa.012.0 = phi ptr [ null, %_ZNSt6vectorIN4entt6entityESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i ], [ %11, %.noexc5.i ] %14 = getelementptr inbounds nuw i8, ptr %0, i64 16 %15 = load ptr, ptr %14, align 8, !tbaa !63 store ptr %.sroa.012.0, ptr %0, align 8, !tbaa !62 diff --git a/bench/faiss/optimized/IndexBinaryHash.ll b/bench/faiss/optimized/IndexBinaryHash.ll index 5ec5e958afc..703a6631a62 100644 --- a/bench/faiss/optimized/IndexBinaryHash.ll +++ b/bench/faiss/optimized/IndexBinaryHash.ll @@ -8753,11 +8753,8 @@ define linkonce_odr noundef ptr @_ZNSt8__detail16_Hashtable_allocISaINS_10_Hash_ .noexc9.thread: ; preds = %2 %14 = getelementptr inbounds nuw i8, ptr %3, i64 24 - %15 = getelementptr inbounds i8, ptr null, i64 %13 - %16 = getelementptr inbounds nuw i8, ptr %3, i64 32 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %6, i8 0, i64 16, i1 false) - store ptr %15, ptr %16, align 8, !tbaa !73 - br label %24 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false) + br label %22 17: ; preds = %2 %18 = icmp ugt i64 %13, 9223372036854775800 @@ -8785,7 +8782,7 @@ _ZNSt16allocator_traitsISaIlEE8allocateERS0_m.exit.i.i.i.i.i.i.i: ; preds = %17 br label %24 24: ; preds = %20, %.noexc9.thread - %25 = phi ptr [ %15, %.noexc9.thread ], [ %22, %20 ] + %25 = phi ptr [ null, %.noexc9.thread ], [ %22, %20 ] %26 = phi ptr [ %14, %.noexc9.thread ], [ %21, %20 ] store ptr %25, ptr %26, align 8, !tbaa !105 ret ptr %3 diff --git a/bench/folly/optimized/AsyncSocket.ll b/bench/folly/optimized/AsyncSocket.ll index 5fa193dc9f1..55a490f2ef4 100644 --- a/bench/folly/optimized/AsyncSocket.ll +++ b/bench/folly/optimized/AsyncSocket.ll @@ -8656,29 +8656,23 @@ _ZNSt6vectorIPN5folly11AsyncSocket23LegacyLifecycleObserverESaIS3_EE17_S_check_i %5 = load ptr, ptr %4, align 8 %6 = and i64 %3, 4611686018427387903 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) - %.idx = shl nuw nsw i64 %6, 3 %.not.i.i.i = icmp eq i64 %6, 0 - br i1 %.not.i.i.i, label %_ZNSt12_Vector_baseIPN5folly11AsyncSocket23LegacyLifecycleObserverESaIS3_EE11_M_allocateEm.exit.thread.i.i, label %.noexc4.i - -_ZNSt12_Vector_baseIPN5folly11AsyncSocket23LegacyLifecycleObserverESaIS3_EE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorIPN5folly11AsyncSocket23LegacyLifecycleObserverESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i - %7 = getelementptr inbounds nuw i8, ptr null, i64 %.idx - %8 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %7, ptr %8, align 8, !tbaa !329 - br label %13 + br i1 %.not.i.i.i, label %11, label %.noexc4.i .noexc4.i: ; preds = %_ZNSt6vectorIPN5folly11AsyncSocket23LegacyLifecycleObserverESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i + %.idx = shl nuw nsw i64 %6, 3 %.not1.i.i = icmp slt i64 %3, 0 %9 = select i1 %.not1.i.i, ptr %5, ptr %4 %10 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #49 - store ptr %10, ptr %0, align 8, !tbaa !331 + store ptr %10, ptr %0, align 8, !tbaa !329 %11 = getelementptr inbounds nuw i8, ptr %10, i64 %.idx %12 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %11, ptr %12, align 8, !tbaa !329 + store ptr %11, ptr %12, align 8, !tbaa !331 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %10, ptr align 8 %9, i64 %.idx, i1 false) br label %13 -13: ; preds = %.noexc4.i, %_ZNSt12_Vector_baseIPN5folly11AsyncSocket23LegacyLifecycleObserverESaIS3_EE11_M_allocateEm.exit.thread.i.i - %14 = phi ptr [ %7, %_ZNSt12_Vector_baseIPN5folly11AsyncSocket23LegacyLifecycleObserverESaIS3_EE11_M_allocateEm.exit.thread.i.i ], [ %11, %.noexc4.i ] +13: ; preds = %.noexc4.i, %_ZNSt6vectorIPN5folly11AsyncSocket23LegacyLifecycleObserverESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i + %14 = phi ptr [ %9, %.noexc4.i ], [ null, %_ZNSt6vectorIPN5folly11AsyncSocket23LegacyLifecycleObserverESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i ] %15 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %14, ptr %15, align 8, !tbaa !332 ret void @@ -49015,9 +49009,9 @@ attributes #55 = { nounwind willreturn memory(read) } !326 = !{!"_ZTSN5folly11AsyncSocket15ByteEventHelperE", !23, i64 0, !16, i64 8, !323, i64 16, !327, i64 48} !327 = !{!"_ZTSN5folly8OptionalINS_11AsyncSocket15ByteEventHelper14TimestampStateEEE", !328, i64 0} !328 = !{!"_ZTSN5folly8OptionalINS_11AsyncSocket15ByteEventHelper14TimestampStateEE28StorageTriviallyDestructibleE", !14, i64 0, !23, i64 48} -!329 = !{!330, !318, i64 16} +!329 = !{!330, !318, i64 0} !330 = !{!"_ZTSNSt12_Vector_baseIPN5folly11AsyncSocket23LegacyLifecycleObserverESaIS3_EE17_Vector_impl_dataE", !318, i64 0, !318, i64 8, !318, i64 16} -!331 = !{!330, !318, i64 0} +!331 = !{!330, !318, i64 16} !332 = !{!330, !318, i64 8} !333 = !{!334, !335, i64 0} !334 = !{!"_ZTSSt12__shared_ptrIN5folly21ObserverContainerBaseINS0_28AsyncSocketObserverInterfaceENS0_11AsyncSocketENS0_34ObserverContainerBasePolicyDefaultINS2_6EventsELm32EEEE8ObserverELN9__gnu_cxx12_Lock_policyE2EE", !335, i64 0, !81, i64 8} diff --git a/bench/folly/optimized/TimeoutManager.ll b/bench/folly/optimized/TimeoutManager.ll index 9f936a9263f..e1e3b11a0d8 100644 --- a/bench/folly/optimized/TimeoutManager.ll +++ b/bench/folly/optimized/TimeoutManager.ll @@ -1063,18 +1063,17 @@ define void @_ZN5folly14TimeoutManager16clearCobTimeoutsEv(ptr noundef nonnull r br i1 %6, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %.preheader, %.lr.ph - %7 = phi ptr [ %13, %.lr.ph ], [ %4, %.preheader ] - %8 = getelementptr inbounds i8, ptr %7, i64 -272 - %9 = load ptr, ptr %8, align 16, !tbaa !7 - %10 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %11 = load ptr, ptr %10, align 8 - tail call void %11(ptr noundef nonnull align 16 dereferenceable(288) %8) #27 - %12 = load ptr, ptr %2, align 8, !tbaa !19 - %13 = load ptr, ptr %12, align 8, !tbaa !13 - %.not.i.i = icmp eq ptr %13, null - %14 = icmp eq ptr %13, %12 - %15 = or i1 %.not.i.i, %14 - br i1 %15, label %.loopexit, label %.lr.ph, !llvm.loop !64 + %7 = phi ptr [ %12, %.lr.ph ], [ %4, %.preheader ] + %8 = load ptr, ptr %7, align 16, !tbaa !7 + %9 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %10 = load ptr, ptr %9, align 8 + tail call void %10(ptr noundef nonnull align 16 dereferenceable(288) %7) #27 + %11 = load ptr, ptr %2, align 8, !tbaa !19 + %12 = load ptr, ptr %11, align 8, !tbaa !13 + %.not.i.i = icmp eq ptr %12, null + %.not.i.i = icmp eq ptr %12, %11 + %14 = or i1 %.not.i.i, %13 + br i1 %14, label %.loopexit, label %.lr.ph, !llvm.loop !64 .loopexit: ; preds = %.lr.ph, %.preheader, %1 ret void @@ -1096,22 +1095,21 @@ define void @_ZN5folly14TimeoutManagerD2Ev(ptr noundef nonnull align 8 captures( br i1 %6, label %_ZN5folly14TimeoutManager16clearCobTimeoutsEv.exit.thread3, label %.lr.ph.i .lr.ph.i: ; preds = %.preheader.i, %.lr.ph.i - %7 = phi ptr [ %13, %.lr.ph.i ], [ %4, %.preheader.i ] - %8 = getelementptr inbounds i8, ptr %7, i64 -272 - %9 = load ptr, ptr %8, align 16, !tbaa !7 - %10 = getelementptr inbounds nuw i8, ptr %9, i64 8 - %11 = load ptr, ptr %10, align 8 - tail call void %11(ptr noundef nonnull align 16 dereferenceable(288) %8) #27 - %12 = load ptr, ptr %2, align 8, !tbaa !19 - %13 = load ptr, ptr %12, align 8, !tbaa !13 - %.not.i.i.i = icmp eq ptr %13, null - %14 = icmp eq ptr %13, %12 - %15 = or i1 %.not.i.i.i, %14 - br i1 %15, label %_ZN5folly14TimeoutManager16clearCobTimeoutsEv.exit.thread3, label %.lr.ph.i, !llvm.loop !64 + %7 = phi ptr [ %12, %.lr.ph.i ], [ %4, %.preheader.i ] + %8 = load ptr, ptr %7, align 16, !tbaa !7 + %9 = getelementptr inbounds nuw i8, ptr %8, i64 8 + %10 = load ptr, ptr %9, align 8 + tail call void %10(ptr noundef nonnull align 16 dereferenceable(288) %7) #27 + %11 = load ptr, ptr %2, align 8, !tbaa !19 + %12 = load ptr, ptr %11, align 8, !tbaa !13 + %.not.i.i.i = icmp eq ptr %12, null + %.not.i.i.i = icmp eq ptr %12, %11 + %14 = or i1 %.not.i.i.i, %13 + br i1 %14, label %_ZN5folly14TimeoutManager16clearCobTimeoutsEv.exit.thread3, label %.lr.ph.i, !llvm.loop !64 _ZN5folly14TimeoutManager16clearCobTimeoutsEv.exit.thread3: ; preds = %.lr.ph.i, %.preheader.i - %16 = phi ptr [ %4, %.preheader.i ], [ %13, %.lr.ph.i ] - %17 = phi ptr [ %3, %.preheader.i ], [ %12, %.lr.ph.i ] + %16 = phi ptr [ %4, %.preheader.i ], [ %12, %.lr.ph.i ] + %17 = phi ptr [ %3, %.preheader.i ], [ %11, %.lr.ph.i ] %.not7.i.i.i.i.i.i = icmp eq ptr %16, %17 br i1 %.not7.i.i.i.i.i.i, label %_ZNKSt14default_deleteIN5folly14TimeoutManager11CobTimeoutsEEclEPS2_.exit.i, label %.lr.ph.i.i.i.i.i.i diff --git a/bench/gromacs/optimized/colvar.ll b/bench/gromacs/optimized/colvar.ll index a8f5553f966..1110c1a07df 100644 --- a/bench/gromacs/optimized/colvar.ll +++ b/bench/gromacs/optimized/colvar.ll @@ -71886,16 +71886,12 @@ _ZNK12colvarmodule10quaternion9as_vectorEv.exit: ; preds = %2, %2 %52 = ptrtoint ptr %50 to i64 %53 = ptrtoint ptr %51 to i64 %54 = sub i64 %52, %53 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) %.not.i.i.i.i.i5 = icmp eq ptr %50, %51 br i1 %.not.i.i.i.i.i5, label %.thread, label %58 .thread: ; preds = %47 %55 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %56 = getelementptr inbounds i8, ptr null, i64 %54 - %57 = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %56, ptr %57, align 8, !tbaa !223 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZN12colvarmodule8vector1dIdEC2ERKS1_.exit 58: ; preds = %47 @@ -71918,7 +71914,7 @@ _ZNK12colvarmodule10quaternion9as_vectorEv.exit: ; preds = %2, %2 br label %_ZN12colvarmodule8vector1dIdEC2ERKS1_.exit _ZN12colvarmodule8vector1dIdEC2ERKS1_.exit: ; preds = %.thread, %60 - %65 = phi ptr [ %56, %.thread ], [ %63, %60 ] + %65 = phi ptr [ null, %.thread ], [ %63, %60 ] %66 = phi ptr [ %55, %.thread ], [ %62, %60 ] store ptr %65, ptr %66, align 8, !tbaa !236 br label %_ZN12colvarmodule8vector1dIdEC2Em.exit8 diff --git a/bench/gromacs/optimized/colvarvalue.ll b/bench/gromacs/optimized/colvarvalue.ll index c58b3dbfda5..8d104cd0439 100644 --- a/bench/gromacs/optimized/colvarvalue.ll +++ b/bench/gromacs/optimized/colvarvalue.ll @@ -3777,16 +3777,12 @@ _ZNK12colvarmodule10quaternion9as_vectorEv.exit: ; preds = %2, %2 %52 = ptrtoint ptr %50 to i64 %53 = ptrtoint ptr %51 to i64 %54 = sub i64 %52, %53 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) %.not.i.i.i.i.i5 = icmp eq ptr %50, %51 br i1 %.not.i.i.i.i.i5, label %.thread, label %58 .thread: ; preds = %47 %55 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %56 = getelementptr inbounds i8, ptr null, i64 %54 - %57 = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %56, ptr %57, align 8, !tbaa !30 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZN12colvarmodule8vector1dIdEC2ERKS1_.exit 58: ; preds = %47 @@ -3809,7 +3805,7 @@ _ZNK12colvarmodule10quaternion9as_vectorEv.exit: ; preds = %2, %2 br label %_ZN12colvarmodule8vector1dIdEC2ERKS1_.exit _ZN12colvarmodule8vector1dIdEC2ERKS1_.exit: ; preds = %.thread, %60 - %65 = phi ptr [ %56, %.thread ], [ %63, %60 ] + %65 = phi ptr [ null, %.thread ], [ %63, %60 ] %66 = phi ptr [ %55, %.thread ], [ %62, %60 ] store ptr %65, ptr %66, align 8, !tbaa !28 br label %_ZN12colvarmodule8vector1dIdEC2Em.exit8 diff --git a/bench/gromacs/optimized/densityfittingforce.ll b/bench/gromacs/optimized/densityfittingforce.ll index 9a9e964e110..ab30115a95a 100644 --- a/bench/gromacs/optimized/densityfittingforce.ll +++ b/bench/gromacs/optimized/densityfittingforce.ll @@ -558,10 +558,9 @@ _ZNSt5arrayIN3gmx19GaussianOn1DLatticeELm3EEC2ERKS2_.exit.i: ; preds = %9 .noexc5.i.thread: ; preds = %_ZNSt5arrayIN3gmx19GaussianOn1DLatticeELm3EEC2ERKS2_.exit.i %24 = getelementptr inbounds nuw i8, ptr %3, i64 72 - %25 = getelementptr inbounds i8, ptr null, i64 %23 - %26 = getelementptr inbounds nuw i8, ptr %3, i64 80 + %25 = getelementptr inbounds nuw i8, ptr %3, i64 80 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %16, i8 0, i64 16, i1 false) - store ptr %25, ptr %26, align 8, !tbaa !56 + store ptr null, ptr %25, align 8, !tbaa !56 br label %38 27: ; preds = %_ZNSt5arrayIN3gmx19GaussianOn1DLatticeELm3EEC2ERKS2_.exit.i @@ -603,7 +602,7 @@ _ZNSt16allocator_traitsISaIfEE8allocateERS0_m.exit.i.i.i.i.i.i.i: ; preds = %27 br i1 %37, label %.body, label %36 38: ; preds = %.noexc5.i.thread, %30 - %39 = phi ptr [ %25, %.noexc5.i.thread ], [ %32, %30 ] + %39 = phi ptr [ null, %.noexc5.i.thread ], [ %32, %30 ] %40 = phi ptr [ %24, %.noexc5.i.thread ], [ %31, %30 ] %41 = phi ptr [ null, %.noexc5.i.thread ], [ %29, %30 ] store ptr %39, ptr %40, align 8, !tbaa !57 diff --git a/bench/gromacs/optimized/integrator.ll b/bench/gromacs/optimized/integrator.ll index 077c0c0170c..6809ac48e58 100644 --- a/bench/gromacs/optimized/integrator.ll +++ b/bench/gromacs/optimized/integrator.ll @@ -427,13 +427,7 @@ define void @_ZN5nblib8LeapFrogC2EN3gmx8ArrayRefIKfEERKNS_3BoxE(ptr noundef nonn _ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %4 %.not.i.i.i = icmp eq ptr %2, %1 - br i1 %.not.i.i.i, label %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.thread.i.i, label %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i.i - -_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i - %10 = getelementptr inbounds nuw i8, ptr null, i64 %7 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %10, ptr %11, align 8, !tbaa !35 - br label %24 + br i1 %.not.i.i.i, label %22, label %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i.i _ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i.i: ; preds = %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i %12 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %7) #16 @@ -463,8 +457,8 @@ _ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.i.i: ; preds = %_ZNSt6vectorIfSa tail call void @_ZdlPvm(ptr noundef nonnull %17, i64 noundef %23) #14 br label %.body -24: ; preds = %.noexc5.i, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.thread.i.i - %.0.lcssa.i.i.i.i.i.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseIfSaIfEE11_M_allocateEm.exit.thread.i.i ], [ %13, %.noexc5.i ] +24: ; preds = %.noexc5.i, %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i + %.0.lcssa.i.i.i.i.i.i.i.i.i.i = phi ptr [ %13, %.noexc5.i ], [ null, %_ZNSt6vectorIfSaIfEE17_S_check_init_lenEmRKS0_.exit.i.i ] %25 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.0.lcssa.i.i.i.i.i.i.i.i.i.i, ptr %25, align 8, !tbaa !8 %26 = getelementptr inbounds nuw i8, ptr %0, i64 24 diff --git a/bench/gromacs/optimized/manager.ll b/bench/gromacs/optimized/manager.ll index a1b7f412bf3..9d9d3200ca2 100644 --- a/bench/gromacs/optimized/manager.ll +++ b/bench/gromacs/optimized/manager.ll @@ -759,10 +759,9 @@ define void @_ZNK3gmx16RestraintManager13getRestraintsEv(ptr dead_on_unwind noal .thread: ; preds = %2 %10 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %11 = getelementptr inbounds nuw i8, ptr null, i64 %9 - %12 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %11, ptr %12, align 8, !tbaa !10 + store ptr null, ptr %11, align 8, !tbaa !10 br label %_ZNSt6vectorISt10shared_ptrIN3gmx19IRestraintPotentialEESaIS3_EEC2ERKS5_.exit 13: ; preds = %2 diff --git a/bench/grpc/optimized/evaluate_args.ll b/bench/grpc/optimized/evaluate_args.ll index fafbf7c164b..ec247be4dce 100644 --- a/bench/grpc/optimized/evaluate_args.ll +++ b/bench/grpc/optimized/evaluate_args.ll @@ -1767,10 +1767,9 @@ define void @_ZNK9grpc_core12EvaluateArgs10GetUriSansEv(ptr dead_on_unwind noali br i1 %.not.i.i.i.i, label %.thread, label %17 .thread: ; preds = %7 - %15 = getelementptr inbounds nuw i8, ptr null, i64 %14 - %16 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %15 = getelementptr inbounds nuw i8, ptr %0, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %15, ptr %16, align 8, !tbaa !22 + store ptr null, ptr %15, align 8, !tbaa !22 br label %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EEC2ERKS5_.exit 17: ; preds = %7 @@ -1832,10 +1831,9 @@ define void @_ZNK9grpc_core12EvaluateArgs10GetDnsSansEv(ptr dead_on_unwind noali br i1 %.not.i.i.i.i, label %.thread, label %17 .thread: ; preds = %7 - %15 = getelementptr inbounds nuw i8, ptr null, i64 %14 - %16 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %15 = getelementptr inbounds nuw i8, ptr %0, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %15, ptr %16, align 8, !tbaa !22 + store ptr null, ptr %15, align 8, !tbaa !22 br label %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EEC2ERKS5_.exit 17: ; preds = %7 diff --git a/bench/grpc/optimized/hpack_parser.ll b/bench/grpc/optimized/hpack_parser.ll index 4959f1f92a4..1da16c431cf 100644 --- a/bench/grpc/optimized/hpack_parser.ll +++ b/bench/grpc/optimized/hpack_parser.ll @@ -3891,12 +3891,13 @@ _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %_ZNK9grpc_co .noexc4.i: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i %170 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %168) #36 + %171 = getelementptr inbounds nuw i8, ptr %170, i64 %168 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %170, ptr align 1 %163, i64 %168, i1 false) br label %_ZNSt6vectorIhSaIhEEC2IPKhvEET_S5_RKS0_.exit -_ZNSt6vectorIhSaIhEEC2IPKhvEET_S5_RKS0_.exit: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i, %.noexc4.i - %.sroa.035.0 = phi ptr [ %170, %.noexc4.i ], [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ] - %.sroa.11.0 = getelementptr inbounds nuw i8, ptr %.sroa.035.0, i64 %168 +_ZNSt6vectorIhSaIhEEC2IPKhvEET_S5_RKS0_.exit: ; preds = %.noexc4.i, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i + %.sroa.035.0 = phi ptr [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ], [ %170, %.noexc4.i ] + %.sroa.11.0 = phi ptr [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ], [ %171, %.noexc4.i ] %171 = getelementptr inbounds nuw i8, ptr %1, i64 8 %172 = load ptr, ptr %171, align 8, !tbaa !16 %173 = getelementptr inbounds nuw i8, ptr %1, i64 16 diff --git a/bench/hermes/optimized/FileCheck.ll b/bench/hermes/optimized/FileCheck.ll index 11a7b8b74c4..0c6cc85775b 100644 --- a/bench/hermes/optimized/FileCheck.ll +++ b/bench/hermes/optimized/FileCheck.ll @@ -2552,8 +2552,7 @@ _ZNSt12_Vector_baseIN4llvh16FileCheckPatternESaIS1_EEC2EmRKS2_.exit.i.thread: ; %_M_finish.i.i81608 = phi ptr [ %_M_finish.i.i81602, %for.end.thread ], [ %_M_finish.i.i81, %for.end ] %_M_finish.i.i.i86564 = getelementptr inbounds nuw i8, ptr %DagNotMatches, i64 8 %_M_end_of_storage.i.i.i87566 = getelementptr inbounds nuw i8, ptr %DagNotMatches, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %DagNotMatches, i8 0, i64 16, i1 false) - store ptr null, ptr %_M_end_of_storage.i.i.i87566, align 8 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %DagNotMatches, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIN4llvh16FileCheckPatternESaIS1_EEC2ERKS3_.exit cond.true.i.i.i.i: ; preds = %for.end diff --git a/bench/hermes/optimized/ISel.ll b/bench/hermes/optimized/ISel.ll index d7a69b00ab7..edbda5e0cc0 100644 --- a/bench/hermes/optimized/ISel.ll +++ b/bench/hermes/optimized/ISel.ll @@ -47916,12 +47916,13 @@ if.then3.i.i.i.i.i.i: ; preds = %cond.true.i.i.i.i if.then.i.i.i.i.i.i.i.i.i: ; preds = %cond.true.i.i.i.i %call5.i.i.i.i.i.i = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %sub.ptr.sub.i.i34) #22 + %add.ptr.i.i.i35 = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i.i.i, i64 %sub.ptr.sub.i.i34 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %call5.i.i.i.i.i.i, ptr align 8 %jmpTable.sroa.0.0, i64 %sub.ptr.sub.i.i34, i1 false) br label %_ZNSt6vectorIPN6hermes10BasicBlockESaIS2_EEC2ERKS4_.exit _ZNSt6vectorIPN6hermes10BasicBlockESaIS2_EEC2ERKS4_.exit: ; preds = %_ZN6hermes3hbc7HBCISel17registerSwitchImmEjPNS_13SwitchImmInstE.exit, %if.then.i.i.i.i.i.i.i.i.i + %add.ptr.i.i.i3574 = phi ptr [ %add.ptr.i.i.i35, %if.then.i.i.i.i.i.i.i.i.i ], [ null, %_ZN6hermes3hbc7HBCISel17registerSwitchImmEjPNS_13SwitchImmInstE.exit ] %cond.i.i.i.i73 = phi ptr [ %call5.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i ], [ null, %_ZN6hermes3hbc7HBCISel17registerSwitchImmEjPNS_13SwitchImmInstE.exit ] - %add.ptr.i.i.i3574 = getelementptr inbounds i8, ptr %cond.i.i.i.i73, i64 %sub.ptr.sub.i.i34 %switchImmInfo_ = getelementptr inbounds nuw i8, ptr %this, i64 288 %25 = load ptr, ptr %switchImmInfo_, align 8 %NumBuckets.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 304 diff --git a/bench/hermes/optimized/escape.ll b/bench/hermes/optimized/escape.ll index bbac37f16fb..09c481ee3a1 100644 --- a/bench/hermes/optimized/escape.ll +++ b/bench/hermes/optimized/escape.ll @@ -973,13 +973,9 @@ if.else13.i.i20.i: ; preds = %if.else.i.i10.i if.then.i176: ; preds = %_ZNK6hermes2vm10StringViewixEj.exit94.thread911 %conv30924 = zext i32 %k.0891 to i64 %add.ptr.i926 = getelementptr inbounds nuw i8, ptr %add.ptr10.i.i120, i64 %conv30924 - %retval.sroa.3.0.idx.i927 = select i1 %tobool.not.i925, i64 %conv30924, i64 0 - %retval.sroa.3.0.i132928 = getelementptr inbounds nuw i16, ptr null, i64 %retval.sroa.3.0.idx.i927 %retval.sroa.0.0.i133929 = select i1 %tobool.not.i925, ptr null, ptr %add.ptr.i926 %tobool.not.i136930 = icmp eq ptr %retval.sroa.0.0.i133929, null %add.ptr.i138931 = getelementptr inbounds nuw i8, ptr %retval.sroa.0.0.i133929, i64 2 - %retval.sroa.3.0.idx.i139932 = select i1 %tobool.not.i136930, i64 2, i64 0 - %retval.sroa.3.0.i140933 = getelementptr inbounds nuw i16, ptr %retval.sroa.3.0.i132928, i64 %retval.sroa.3.0.idx.i139932 %retval.sroa.0.0.i141934 = select i1 %tobool.not.i136930, ptr null, ptr %add.ptr.i138931 br label %_ZNK6hermes2vm10StringView13castToCharPtrEv.exit.i190 @@ -1027,7 +1023,6 @@ if.else13.i.i.i198: ; preds = %if.else.i.i.i183 _ZNK6hermes2vm10StringView13castToCharPtrEv.exit.i190: ; preds = %if.then.i176, %if.then.i.i.i204, %if.then5.i.i.i196, %if.then10.i.i.i185, %if.else13.i.i.i198 %retval.sroa.0.0.i141934959 = phi ptr [ %retval.sroa.0.0.i141934, %if.then.i176 ], [ %add.ptr.i138931950, %if.then.i.i.i204 ], [ %add.ptr.i138931950, %if.then5.i.i.i196 ], [ %add.ptr.i138931950, %if.then10.i.i.i185 ], [ %add.ptr.i138931950, %if.else13.i.i.i198 ] - %retval.sroa.3.0.i140933957 = phi ptr [ %retval.sroa.3.0.i140933, %if.then.i176 ], [ null, %if.then.i.i.i204 ], [ null, %if.then5.i.i.i196 ], [ null, %if.then10.i.i.i185 ], [ null, %if.else13.i.i.i198 ] %conv30924955 = phi i64 [ %conv30924, %if.then.i176 ], [ %conv30924943, %if.then.i.i.i204 ], [ %conv30924943, %if.then5.i.i.i196 ], [ %conv30924943, %if.then10.i.i.i185 ], [ %conv30924943, %if.else13.i.i.i198 ] %retval.0.i.sink.i.i192 = phi ptr [ %9, %if.then.i176 ], [ %call.i.i.i.i206, %if.then.i.i.i204 ], [ %add.ptr.i.i.i.i.i.i197, %if.then5.i.i.i196 ], [ %add.ptr.i.i.i4.i.i.i186, %if.then10.i.i.i185 ], [ %call.i.i.i.i.i203, %if.else13.i.i.i198 ] %add.ptr10.i.i195 = getelementptr inbounds nuw i8, ptr %retval.0.i.sink.i.i192, i64 %bf.clear8.i16.i @@ -1089,7 +1084,7 @@ _ZNK6hermes2vm10StringView15castToChar16PtrEv.exit.i158: ; preds = %if.end.i147, _ZNK6hermes2vm10StringView5beginEv.exit207: ; preds = %_ZNK6hermes2vm10StringView13castToCharPtrEv.exit.i190, %_ZNK6hermes2vm10StringView15castToChar16PtrEv.exit.i158 %retval.sroa.0.0.i141939 = phi ptr [ %retval.sroa.0.0.i141934959, %_ZNK6hermes2vm10StringView13castToCharPtrEv.exit.i190 ], [ null, %_ZNK6hermes2vm10StringView15castToChar16PtrEv.exit.i158 ] - %retval.sroa.3.0.i140937 = phi ptr [ %retval.sroa.3.0.i140933957, %_ZNK6hermes2vm10StringView13castToCharPtrEv.exit.i190 ], [ %retval.sroa.3.0.i140976, %_ZNK6hermes2vm10StringView15castToChar16PtrEv.exit.i158 ] + %retval.sroa.3.0.i140937 = phi ptr [ null, %_ZNK6hermes2vm10StringView13castToCharPtrEv.exit.i190 ], [ %retval.sroa.3.0.i140976, %_ZNK6hermes2vm10StringView15castToChar16PtrEv.exit.i158 ] %conv30935 = phi i64 [ %conv30924955, %_ZNK6hermes2vm10StringView13castToCharPtrEv.exit.i190 ], [ %conv30974, %_ZNK6hermes2vm10StringView15castToChar16PtrEv.exit.i158 ] %retval.sroa.3.0.i163 = phi ptr [ null, %_ZNK6hermes2vm10StringView13castToCharPtrEv.exit.i190 ], [ %add.ptr10.i17.i162, %_ZNK6hermes2vm10StringView15castToChar16PtrEv.exit.i158 ] %retval.sroa.0.0.i164 = phi ptr [ %add.ptr10.i.i195, %_ZNK6hermes2vm10StringView13castToCharPtrEv.exit.i190 ], [ null, %_ZNK6hermes2vm10StringView15castToChar16PtrEv.exit.i158 ] diff --git a/bench/hyperscan/optimized/ComponentRepeat.ll b/bench/hyperscan/optimized/ComponentRepeat.ll index 869cc4a5ce7..c97e3f04aac 100644 --- a/bench/hyperscan/optimized/ComponentRepeat.ll +++ b/bench/hyperscan/optimized/ComponentRepeat.ll @@ -1483,10 +1483,9 @@ define hidden void @_ZNK3ue215ComponentRepeat5firstEv(ptr dead_on_unwind noalias br i1 %.not.i.i.i.i, label %.thread, label %17 .thread: ; preds = %6 - %15 = getelementptr inbounds nuw i8, ptr null, i64 %14 - %16 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %15 = getelementptr inbounds nuw i8, ptr %0, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %15, ptr %16, align 8 + store ptr null, ptr %15, align 8 br label %_ZNSt6vectorIN3ue212PositionInfoESaIS1_EEC2ERKS3_.exit 17: ; preds = %6 diff --git a/bench/hyperscan/optimized/limex_64.ll b/bench/hyperscan/optimized/limex_64.ll index 1a14d6fef15..a54ac826765 100644 --- a/bench/hyperscan/optimized/limex_64.ll +++ b/bench/hyperscan/optimized/limex_64.ll @@ -6390,15 +6390,10 @@ define hidden noundef signext i8 @nfaExecLimEx64_B_Reverse(ptr noundef %0, i64 n br i1 %.not19.i, label %repeatHasMatch.exit.thread46, label %50 50: ; preds = %38 - %51 = getelementptr inbounds nuw %union.RepeatControl, ptr null, i64 %indvars.iv - %52 = getelementptr inbounds nuw i8, ptr %45, i64 12 - %53 = load i32, ptr %52, align 4 - %54 = zext i32 %53 to i64 - %55 = getelementptr inbounds nuw i8, ptr null, i64 %54 - %56 = getelementptr inbounds nuw i8, ptr %45, i64 24 - %57 = load i8, ptr %56, align 4 - switch i8 %57, label %repeatHasMatch.exit.thread [ - i8 0, label %58 + %51 = getelementptr inbounds nuw i8, ptr %45, i64 24 + %52 = load i8, ptr %51, align 4 + switch i8 %52, label %repeatHasMatch.exit.thread [ + i8 0, label %53 i8 7, label %repeatHasMatch.exit.thread46 i8 6, label %66 i8 3, label %60 @@ -6407,23 +6402,23 @@ define hidden noundef signext i8 @nfaExecLimEx64_B_Reverse(ptr noundef %0, i64 n ] 58: ; preds = %50 - %59 = tail call i32 @repeatHasMatchRing(ptr noundef nonnull %56, ptr noundef %51, ptr noundef %55, i64 noundef 1) #8 + %59 = tail call i32 @repeatHasMatchRing(ptr noundef nonnull %51, ptr noundef null, ptr noundef null, i64 noundef 1) #8 br label %repeatHasMatch.exit 60: ; preds = %50 - %61 = tail call i32 @repeatHasMatchRange(ptr noundef nonnull %56, ptr noundef %51, ptr noundef %55, i64 noundef 1) #8 + %61 = tail call i32 @repeatHasMatchRange(ptr noundef nonnull %51, ptr noundef null, ptr noundef null, i64 noundef 1) #8 br label %repeatHasMatch.exit 62: ; preds = %50 - %63 = tail call i32 @repeatHasMatchBitmap(ptr noundef nonnull %56, ptr noundef %51, i64 noundef 1) #8 + %63 = tail call i32 @repeatHasMatchBitmap(ptr noundef nonnull %51, ptr noundef null, i64 noundef 1) #8 br label %repeatHasMatch.exit 64: ; preds = %50 - %65 = tail call i32 @repeatHasMatchSparseOptimalP(ptr noundef nonnull %56, ptr noundef %51, ptr noundef %55, i64 noundef 1) #8 + %65 = tail call i32 @repeatHasMatchSparseOptimalP(ptr noundef nonnull %51, ptr noundef null, ptr noundef null, i64 noundef 1) #8 br label %repeatHasMatch.exit 66: ; preds = %50 - %67 = tail call i32 @repeatHasMatchTrailer(ptr noundef nonnull %56, ptr noundef %51, i64 noundef 1) #8 + %67 = tail call i32 @repeatHasMatchTrailer(ptr noundef nonnull %51, ptr noundef null, i64 noundef 1) #8 br label %repeatHasMatch.exit repeatHasMatch.exit: ; preds = %58, %60, %62, %64, %66 diff --git a/bench/hyperscan/optimized/rose_build_anchored.ll b/bench/hyperscan/optimized/rose_build_anchored.ll index c1ba0b272c2..2f46fb2d837 100644 --- a/bench/hyperscan/optimized/rose_build_anchored.ll +++ b/bench/hyperscan/optimized/rose_build_anchored.ll @@ -12159,10 +12159,7 @@ _ZNSt6vectorIN3ue26dstateESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i: ; preds = br i1 %.not.i.i.i, label %_ZNSt6vectorIN3ue26dstateESaIS1_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEEvEET_SB_RKS2_.exit.thread, label %.lr.ph.i.i.i.i.preheader.i.i _ZNSt6vectorIN3ue26dstateESaIS1_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEEvEET_SB_RKS2_.exit.thread: ; preds = %_ZNSt6vectorIN3ue26dstateESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i - %.sroa.14.019 = getelementptr inbounds nuw i8, ptr null, i64 %7 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %.sroa.14.019, ptr %11, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZSt8_DestroyIPN3ue26dstateES1_EvT_S3_RSaIT0_E.exit.i .lr.ph.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorIN3ue26dstateESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i @@ -12187,13 +12184,13 @@ _ZNSt12_Vector_baseIN3ue26dstateESaIS1_EED2Ev.exit.i: ; preds = %10, %.lr.ph.i.i to label %_ZNSt6vectorIN3ue26dstateESaIS1_EED2Ev.exit unwind label %39 _ZNSt6vectorIN3ue26dstateESaIS1_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS1_S3_EEEvEET_SB_RKS2_.exit: ; preds = %.lr.ph.i.i.i.i.i.i + %16 = getelementptr inbounds nuw i8, ptr %11, i64 %7 %.pre = load ptr, ptr %0, align 8 %.pre16 = load ptr, ptr %3, align 8 - %.sroa.14.0 = getelementptr inbounds nuw i8, ptr %12, i64 %7 %17 = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr %12, ptr %0, align 8 store ptr %14, ptr %3, align 8 - store ptr %.sroa.14.0, ptr %17, align 8 + store ptr %16, ptr %17, align 8 %.not4.i.i.i.i = icmp eq ptr %.pre, %.pre16 br i1 %.not4.i.i.i.i, label %_ZSt8_DestroyIPN3ue26dstateES1_EvT_S3_RSaIT0_E.exit.i, label %.lr.ph.i.i.i.i diff --git a/bench/icu/optimized/icuexportdata.ll b/bench/icu/optimized/icuexportdata.ll index ebd8b148dae..55a13f90c0d 100644 --- a/bench/icu/optimized/icuexportdata.ll +++ b/bench/icu/optimized/icuexportdata.ll @@ -8276,11 +8276,8 @@ _ZNKSt6vectorIS_ItSaItEESaIS1_EE12_M_check_lenEmPKc.exit: ; preds = %3 .noexc26.thread: ; preds = %_ZNKSt6vectorIS_ItSaItEESaIS1_EE12_M_check_lenEmPKc.exit %28 = getelementptr inbounds nuw i8, ptr %21, i64 8 - %29 = getelementptr inbounds i8, ptr null, i64 %27 - %30 = getelementptr inbounds nuw i8, ptr %21, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %21, i8 0, i64 16, i1 false) - store ptr %29, ptr %30, align 8, !tbaa !50 - br label %38 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false) + br label %36 31: ; preds = %_ZNKSt6vectorIS_ItSaItEESaIS1_EE12_M_check_lenEmPKc.exit %32 = icmp ugt i64 %27, 9223372036854775806 @@ -8295,28 +8292,28 @@ _ZNKSt6vectorIS_ItSaItEESaIS1_EE12_M_check_lenEmPKc.exit: ; preds = %3 _ZNSt16allocator_traitsISaItEE8allocateERS0_m.exit.i.i.i.i.i.i: ; preds = %31 %33 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %27) #33 - to label %34 unwind label %68 + to label %32 unwind label %68 + +32: ; preds = %_ZNSt16allocator_traitsISaItEE8allocateERS0_m.exit.i.i.i.i.i.i + store ptr %31, ptr %21, align 8, !tbaa !49 + %33 = getelementptr inbounds nuw i8, ptr %21, i64 8 + store ptr %31, ptr %33, align 8, !tbaa !47 + %34 = getelementptr inbounds nuw i8, ptr %31, i64 %27 + %35 = getelementptr inbounds nuw i8, ptr %21, i64 16 + store ptr %34, ptr %35, align 8, !tbaa !50 + tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %31, ptr align 2 %24, i64 %27, i1 false) + br label %36 -34: ; preds = %_ZNSt16allocator_traitsISaItEE8allocateERS0_m.exit.i.i.i.i.i.i - store ptr %33, ptr %21, align 8, !tbaa !49 - %35 = getelementptr inbounds nuw i8, ptr %21, i64 8 - store ptr %33, ptr %35, align 8, !tbaa !47 - %36 = getelementptr inbounds nuw i8, ptr %33, i64 %27 - %37 = getelementptr inbounds nuw i8, ptr %21, i64 16 - store ptr %36, ptr %37, align 8, !tbaa !50 - tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 2 %33, ptr align 2 %24, i64 %27, i1 false) - br label %38 - -38: ; preds = %34, %.noexc26.thread - %39 = phi ptr [ %29, %.noexc26.thread ], [ %36, %34 ] - %40 = phi ptr [ %28, %.noexc26.thread ], [ %35, %34 ] - store ptr %39, ptr %40, align 8, !tbaa !47 +34: ; preds = %32, %.noexc26.thread + %37 = phi ptr [ null, %.noexc26.thread ], [ %34, %32 ] + %38 = phi ptr [ %28, %.noexc26.thread ], [ %33, %32 ] + store ptr %37, ptr %38, align 8, !tbaa !47 %.not10.i.i.i = icmp eq ptr %6, %1 br i1 %.not10.i.i.i, label %_ZNSt6vectorIS_ItSaItEESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit, label %.lr.ph.i.i.i -.lr.ph.i.i.i: ; preds = %38, %.lr.ph.i.i.i - %.012.i.i.i = phi ptr [ %49, %.lr.ph.i.i.i ], [ %20, %38 ] - %.0911.i.i.i = phi ptr [ %48, %.lr.ph.i.i.i ], [ %6, %38 ] +.lr.ph.i.i.i: ; preds = %36, %.lr.ph.i.i.i + %.012.i.i.i = phi ptr [ %49, %.lr.ph.i.i.i ], [ %20, %36 ] + %.0911.i.i.i = phi ptr [ %48, %.lr.ph.i.i.i ], [ %6, %36 ] tail call void @llvm.experimental.noalias.scope.decl(metadata !179) tail call void @llvm.experimental.noalias.scope.decl(metadata !182) %41 = load ptr, ptr %.0911.i.i.i, align 8, !tbaa !49, !alias.scope !182, !noalias !179 @@ -8335,8 +8332,8 @@ _ZNSt16allocator_traitsISaItEE8allocateERS0_m.exit.i.i.i.i.i.i: ; preds = %31 %.not.i.i.i = icmp eq ptr %48, %1 br i1 %.not.i.i.i, label %_ZNSt6vectorIS_ItSaItEESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit, label %.lr.ph.i.i.i, !llvm.loop !184 -_ZNSt6vectorIS_ItSaItEESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit: ; preds = %.lr.ph.i.i.i, %38 - %.0.lcssa.i.i.i = phi ptr [ %20, %38 ], [ %49, %.lr.ph.i.i.i ] +_ZNSt6vectorIS_ItSaItEESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit: ; preds = %.lr.ph.i.i.i, %36 + %.0.lcssa.i.i.i = phi ptr [ %20, %36 ], [ %49, %.lr.ph.i.i.i ] %50 = getelementptr inbounds nuw i8, ptr %.0.lcssa.i.i.i, i64 24 %.not10.i.i.i27 = icmp eq ptr %1, %5 br i1 %.not10.i.i.i27, label %_ZNSt6vectorIS_ItSaItEESaIS1_EE11_S_relocateEPS1_S4_S4_RS2_.exit33, label %.lr.ph.i.i.i28 diff --git a/bench/jsonnet/optimized/desugarer.ll b/bench/jsonnet/optimized/desugarer.ll index 7a593ad96fa..8ac135f5958 100644 --- a/bench/jsonnet/optimized/desugarer.ll +++ b/bench/jsonnet/optimized/desugarer.ll @@ -26840,9 +26840,8 @@ _ZNSt6vectorIN7jsonnet8internal5Local4BindESaIS3_EE17_S_check_init_lenEmRKS4_.ex _ZNSt12_Vector_baseIN7jsonnet8internal5Local4BindESaIS3_EE11_M_allocateEm.exit.thread: ; preds = %_ZNSt6vectorIN7jsonnet8internal5Local4BindESaIS3_EE17_S_check_init_lenEmRKS4_.exit store ptr null, ptr %0, align 8, !tbaa !149 - %10 = getelementptr inbounds nuw i8, ptr null, i64 %6 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %10, ptr %11, align 8, !tbaa !154 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr null, ptr %10, align 8, !tbaa !154 br label %_ZSt22__uninitialized_copy_aIPKN7jsonnet8internal5Local4BindEPS3_S3_ET0_T_S8_S7_RSaIT1_E.exit .lr.ph.i.i.i.i.preheader: ; preds = %_ZNSt6vectorIN7jsonnet8internal5Local4BindESaIS3_EE17_S_check_init_lenEmRKS4_.exit @@ -27479,9 +27478,8 @@ _ZNSt6vectorIN7jsonnet8internal8ArgParamESaIS2_EE17_S_check_init_lenEmRKS3_.exit _ZNSt12_Vector_baseIN7jsonnet8internal8ArgParamESaIS2_EE11_M_allocateEm.exit.thread: ; preds = %_ZNSt6vectorIN7jsonnet8internal8ArgParamESaIS2_EE17_S_check_init_lenEmRKS3_.exit store ptr null, ptr %0, align 8, !tbaa !155 - %10 = getelementptr inbounds nuw i8, ptr null, i64 %6 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %10, ptr %11, align 8, !tbaa !132 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr null, ptr %10, align 8, !tbaa !132 br label %_ZSt22__uninitialized_copy_aIPKN7jsonnet8internal8ArgParamEPS2_S2_ET0_T_S7_S6_RSaIT1_E.exit .lr.ph.i.i.i.i.preheader: ; preds = %_ZNSt6vectorIN7jsonnet8internal8ArgParamESaIS2_EE17_S_check_init_lenEmRKS3_.exit diff --git a/bench/libquic/optimized/ip_address.ll b/bench/libquic/optimized/ip_address.ll index fe24a968c99..25e8157f32a 100644 --- a/bench/libquic/optimized/ip_address.ll +++ b/bench/libquic/optimized/ip_address.ll @@ -192,7 +192,7 @@ _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %3 tail call void @_ZdlPv(ptr noundef nonnull %12) #20 br label %.body -_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i, %.noexc4.i +_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i: ; preds = %.noexc4.i, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i %14 = phi ptr [ %8, %.noexc4.i ], [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ] %15 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %14, ptr %15, align 8, !tbaa !3 @@ -1392,13 +1392,7 @@ define void @_ZN3net27ConvertIPv4MappedIPv6ToIPv4ERKNS_9IPAddressE(ptr dead_on_u _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %2 %.not.i.i.i = icmp eq ptr %7, %5 - br i1 %.not.i.i.i, label %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i, label %.noexc5.i - -_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i - %12 = getelementptr inbounds nuw i8, ptr null, i64 %10 - %13 = getelementptr inbounds nuw i8, ptr %3, i64 16 - store ptr %12, ptr %13, align 8, !tbaa !11 - br label %17 + br i1 %.not.i.i.i, label %15, label %.noexc5.i .noexc5.i: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i %14 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %10) #19 @@ -1409,8 +1403,8 @@ _ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vec tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %14, ptr nonnull align 1 %5, i64 %10, i1 false) br label %17 -17: ; preds = %.noexc5.i, %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i - %18 = phi ptr [ %12, %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i.i ], [ %15, %.noexc5.i ] +17: ; preds = %.noexc5.i, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i + %18 = phi ptr [ %15, %.noexc5.i ], [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ] %19 = getelementptr inbounds nuw i8, ptr %3, i64 8 store ptr %18, ptr %19, align 8, !tbaa !3 invoke void @_ZN3net9IPAddressC1ERKSt6vectorIhSaIhEE(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %3) diff --git a/bench/libquic/optimized/quic_protocol.ll b/bench/libquic/optimized/quic_protocol.ll index 6a729ac5ec1..b5fbcbb6cab 100644 --- a/bench/libquic/optimized/quic_protocol.ll +++ b/bench/libquic/optimized/quic_protocol.ll @@ -4330,16 +4330,12 @@ define noundef nonnull align 8 dereferenceable(24) ptr @_ZN3net18QuicVersionMana %29 = ptrtoint ptr %27 to i64 %30 = ptrtoint ptr %28 to i64 %31 = sub i64 %29, %30 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false) %.not.i.i.i.i = icmp eq ptr %27, %28 br i1 %.not.i.i.i.i, label %.thread, label %35 .thread: ; preds = %18 %32 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %33 = getelementptr inbounds i8, ptr null, i64 %31 - %34 = getelementptr inbounds nuw i8, ptr %3, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %3, i8 0, i64 16, i1 false) - store ptr %33, ptr %34, align 8, !tbaa !33 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIN3net11QuicVersionESaIS1_EEC2ERKS3_.exit 35: ; preds = %18 @@ -4362,7 +4358,7 @@ define noundef nonnull align 8 dereferenceable(24) ptr @_ZN3net18QuicVersionMana br label %_ZNSt6vectorIN3net11QuicVersionESaIS1_EEC2ERKS3_.exit _ZNSt6vectorIN3net11QuicVersionESaIS1_EEC2ERKS3_.exit: ; preds = %.thread, %37 - %42 = phi ptr [ %33, %.thread ], [ %40, %37 ] + %42 = phi ptr [ null, %.thread ], [ %40, %37 ] %43 = phi ptr [ %32, %.thread ], [ %39, %37 ] %44 = phi ptr [ null, %.thread ], [ %38, %37 ] store ptr %42, ptr %43, align 8, !tbaa !30 diff --git a/bench/libzmq/optimized/options.ll b/bench/libzmq/optimized/options.ll index 014da1b470d..efd384878b4 100644 --- a/bench/libzmq/optimized/options.ll +++ b/bench/libzmq/optimized/options.ll @@ -2405,33 +2405,27 @@ define linkonce_odr void @_ZNSt6vectorIhSaIhEEC2IPhvEET_S4_RKS0_(ptr noundef non _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i: ; preds = %4 %.not.i.i = icmp eq ptr %2, %1 - br i1 %.not.i.i, label %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i, label %12 + br i1 %.not.i.i, label %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i, label %10 _ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i - %10 = getelementptr inbounds nuw i8, ptr null, i64 %7 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %10, ptr %11, align 8, !tbaa !120 - br label %16 - -12: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i - %13 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %7) #26 - to label %.noexc4 unwind label %19 - -.noexc4: ; preds = %12 - store ptr %13, ptr %0, align 8, !tbaa !118 - %14 = getelementptr inbounds nuw i8, ptr %13, i64 %7 - %15 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %14, ptr %15, align 8, !tbaa !120 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %13, ptr align 1 %1, i64 %7, i1 false) - br label %16 - -16: ; preds = %.noexc4, %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i - %17 = phi ptr [ %10, %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i ], [ %14, %.noexc4 ] - %18 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %17, ptr %18, align 8, !tbaa !119 + %11 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %7) #26 + to label %.noexc4 unwind label %16 + +.noexc4:; preds = %10 + store ptr %11, ptr %0, align 8, !tbaa !118 + %12 = getelementptr inbounds nuw i8, ptr %11, i64 %7 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr %12, ptr %13, align 8, !tbaa !120 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %11, ptr align 1 %1, i64 %7, i1 false) + br label %_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i + +_ZNSt12_Vector_baseIhSaIhEE11_M_allocateEm.exit.thread.i:; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i, %.noexc4 + %14 = phi ptr [ %12, %.noexc4 ], [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i ] + %15 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %14, ptr %15, align 8, !tbaa !119 ret void -19: ; preds = %12, %9 +19: ; preds = %10, %9 %20 = landingpad { ptr, i32 } cleanup %21 = load ptr, ptr %0, align 8, !tbaa !118 diff --git a/bench/lief/optimized/DynamicEntryArray.ll b/bench/lief/optimized/DynamicEntryArray.ll index 5bd8db5c658..c97effffcf8 100644 --- a/bench/lief/optimized/DynamicEntryArray.ll +++ b/bench/lief/optimized/DynamicEntryArray.ll @@ -1284,10 +1284,7 @@ define linkonce_odr hidden void @_ZNK4LIEF3ELF17DynamicEntryArray5cloneEv(ptr de _ZNSt12_Vector_baseImSaImEEC2EmRKS0_.exit.i.i.thread: ; preds = %2 %14 = getelementptr inbounds nuw i8, ptr %3, i64 32 - %15 = getelementptr inbounds i8, ptr null, i64 %13 - %16 = getelementptr inbounds nuw i8, ptr %3, i64 40 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %6, i8 0, i64 16, i1 false) - store ptr %15, ptr %16, align 8, !tbaa !16 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, i8 0, i64 24, i1 false) br label %_ZNSt10unique_ptrIN4LIEF3ELF17DynamicEntryArrayESt14default_deleteIS2_EED2Ev.exit 17: ; preds = %2 @@ -1310,7 +1307,7 @@ _ZNSt12_Vector_baseImSaImEEC2EmRKS0_.exit.i.i.thread: ; preds = %2 br label %_ZNSt10unique_ptrIN4LIEF3ELF17DynamicEntryArrayESt14default_deleteIS2_EED2Ev.exit _ZNSt10unique_ptrIN4LIEF3ELF17DynamicEntryArrayESt14default_deleteIS2_EED2Ev.exit: ; preds = %20, %_ZNSt12_Vector_baseImSaImEEC2EmRKS0_.exit.i.i.thread - %25 = phi ptr [ %15, %_ZNSt12_Vector_baseImSaImEEC2EmRKS0_.exit.i.i.thread ], [ %23, %20 ] + %25 = phi ptr [ null, %_ZNSt12_Vector_baseImSaImEEC2EmRKS0_.exit.i.i.thread ], [ %23, %20 ] %26 = phi ptr [ %14, %_ZNSt12_Vector_baseImSaImEEC2EmRKS0_.exit.i.i.thread ], [ %22, %20 ] store ptr %25, ptr %26, align 8, !tbaa !13 store ptr %3, ptr %0, align 8, !tbaa !63 diff --git a/bench/lief/optimized/internal_utils.ll b/bench/lief/optimized/internal_utils.ll index 500c6e40399..cebdc42c499 100644 --- a/bench/lief/optimized/internal_utils.ll +++ b/bench/lief/optimized/internal_utils.ll @@ -637,21 +637,20 @@ define hidden void @_ZN4LIEF8hex_dumpERKSt6vectorIhSaIhEERKNSt7__cxx1112basic_st %8 = ptrtoint ptr %6 to i64 %9 = ptrtoint ptr %7 to i64 %10 = sub i64 %8, %9 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false) + %11 = getelementptr inbounds nuw i8, ptr %4, i64 8 + store i64 0, ptr %11, align 8 %.not.i.i.i.i = icmp eq ptr %6, %7 br i1 %.not.i.i.i.i, label %_ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.thread, label %14 _ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.thread: ; preds = %3 %11 = getelementptr inbounds nuw i8, ptr %4, i64 8 - %12 = getelementptr inbounds i8, ptr null, i64 %10 %13 = getelementptr inbounds nuw i8, ptr %4, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %4, i8 0, i64 16, i1 false) - store ptr %12, ptr %13, align 8, !tbaa !17 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIhSaIhEEC2ERKS1_.exit 14: ; preds = %3 %15 = icmp slt i64 %10, 0 - br i1 %15, label %16, label %17, !prof !18 + br i1 %15, label %16, label %17, !prof !17 16: ; preds = %14 tail call void @_ZSt17__throw_bad_allocv() #22 @@ -663,13 +662,13 @@ _ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.thread: ; preds = %3 %19 = getelementptr inbounds nuw i8, ptr %4, i64 8 %20 = getelementptr inbounds nuw i8, ptr %18, i64 %10 %21 = getelementptr inbounds nuw i8, ptr %4, i64 16 - store ptr %20, ptr %21, align 8, !tbaa !17 + store ptr %20, ptr %21, align 8, !tbaa !18 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 1 %18, ptr align 1 %7, i64 %10, i1 false) br label %_ZNSt6vectorIhSaIhEEC2ERKS1_.exit _ZNSt6vectorIhSaIhEEC2ERKS1_.exit: ; preds = %_ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.thread, %17 %22 = phi ptr [ %13, %_ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.thread ], [ %21, %17 ] - %23 = phi ptr [ %12, %_ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.thread ], [ %20, %17 ] + %23 = phi ptr [ null, %_ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.thread ], [ %20, %17 ] %24 = phi ptr [ %11, %_ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.thread ], [ %19, %17 ] store ptr %23, ptr %24, align 8, !tbaa !14 call void @_ZN4LIEF13hex_dump_implISt6vectorIhSaIhEEEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RKS9_(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull %4, ptr noundef nonnull align 8 dereferenceable(32) %2) @@ -678,7 +677,7 @@ _ZNSt6vectorIhSaIhEEC2ERKS1_.exit: ; preds = %_ZNSt12_Vector_base br i1 %.not.i.i.i, label %_ZNSt6vectorIhSaIhEED2Ev.exit, label %26 26: ; preds = %_ZNSt6vectorIhSaIhEEC2ERKS1_.exit - %27 = load ptr, ptr %22, align 8, !tbaa !17 + %27 = load ptr, ptr %22, align 8, !tbaa !18 %28 = ptrtoint ptr %27 to i64 %29 = ptrtoint ptr %25 to i64 %30 = sub i64 %28, %29 @@ -4770,7 +4769,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.threa %33 = icmp ult i64 %32, 16 call void @llvm.assume(i1 %33) %.not22.i = icmp eq ptr %3, %9 - br i1 %.not22.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.exit, label %34, !prof !18 + br i1 %.not22.i, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.exit, label %34, !prof !17 34: ; preds = %29 switch i64 %32, label %37 [ @@ -4887,7 +4886,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.threa %80 = icmp ult i64 %79, 16 call void @llvm.assume(i1 %80) %.not22.i7 = icmp eq ptr %4, %6 - br i1 %.not22.i7, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.exit12, label %81, !prof !18 + br i1 %.not22.i7, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_.exit12, label %81, !prof !17 81: ; preds = %76 switch i64 %79, label %84 [ @@ -31006,8 +31005,8 @@ attributes #26 = { nounwind willreturn memory(read) } !14 = !{!15, !5, i64 8} !15 = !{!"_ZTSNSt12_Vector_baseIhSaIhEE17_Vector_impl_dataE", !5, i64 0, !5, i64 8, !5, i64 16} !16 = !{!15, !5, i64 0} -!17 = !{!15, !5, i64 16} -!18 = !{!"branch_weights", !"expected", i32 1, i32 2000} +!17 = !{!"branch_weights", !"expected", i32 1, i32 2000} +!18 = !{!15, !5, i64 16} !19 = !{!20, !21, i64 0} !20 = !{!"_ZTSNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_Vector_impl_dataE", !21, i64 0, !21, i64 8, !21, i64 16} !21 = !{!"p1 _ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !6, i64 0} diff --git a/bench/lightgbm/optimized/boosting.ll b/bench/lightgbm/optimized/boosting.ll index 64099e1454a..03841ec38cc 100644 --- a/bench/lightgbm/optimized/boosting.ll +++ b/bench/lightgbm/optimized/boosting.ll @@ -1401,10 +1401,7 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_S_ch br i1 %.not.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit.thread, label %.lr.ph.i.i.i.i.preheader.i.i _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit.thread: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i.i - %.sroa.14.019 = getelementptr inbounds nuw i8, ptr null, i64 %7 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %.sroa.14.019, ptr %10, align 8, !tbaa !62 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i .lr.ph.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i.i @@ -1460,13 +1457,13 @@ _ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE to label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit unwind label %39 _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit: ; preds = %_ZSt10_ConstructINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJS5_EEvPT_DpOT0_.exit.i.i.i.i.i.i + %28 = getelementptr inbounds nuw i8, ptr %10, i64 %7 %.pre = load ptr, ptr %0, align 8, !tbaa !59 %.pre16 = load ptr, ptr %3, align 8, !tbaa !60 - %.sroa.14.0 = getelementptr inbounds nuw i8, ptr %11, i64 %7 %29 = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr %11, ptr %0, align 8, !tbaa !59 store ptr %26, ptr %3, align 8, !tbaa !60 - store ptr %.sroa.14.0, ptr %29, align 8, !tbaa !62 + store ptr %28, ptr %29, align 8, !tbaa !62 %.not4.i.i.i.i = icmp eq ptr %.pre, %.pre16 br i1 %.not4.i.i.i.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i, label %.lr.ph.i.i.i.i diff --git a/bench/llama.cpp/optimized/sampling.ll b/bench/llama.cpp/optimized/sampling.ll index 82800be7c63..d3b9549e2ea 100644 --- a/bench/llama.cpp/optimized/sampling.ll +++ b/bench/llama.cpp/optimized/sampling.ll @@ -1755,10 +1755,8 @@ define noundef nonnull ptr @_Z20common_sampler_cloneP14common_sampler(ptr nounde .noexc11.thread: ; preds = %12 %24 = getelementptr inbounds nuw i8, ptr %2, i64 368 - %25 = getelementptr inbounds i8, ptr null, i64 %23 - %26 = getelementptr inbounds nuw i8, ptr %2, i64 376 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %16, i8 0, i64 16, i1 false) - store ptr %25, ptr %26, align 8, !tbaa !93 + %25 = getelementptr inbounds nuw i8, ptr %2, i64 376 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %16, i8 0, i64 24, i1 false) br label %34 27: ; preds = %12 @@ -1787,8 +1785,8 @@ _ZNSt16allocator_traitsISaIiEE8allocateERS0_m.exit.i.i.i.i.i: ; preds = %27 br label %34 34: ; preds = %30, %.noexc11.thread - %35 = phi ptr [ %26, %.noexc11.thread ], [ %33, %30 ] - %36 = phi ptr [ %25, %.noexc11.thread ], [ %32, %30 ] + %35 = phi ptr [ %25, %.noexc11.thread ], [ %33, %30 ] + %36 = phi ptr [ null, %.noexc11.thread ], [ %32, %30 ] %37 = phi ptr [ %24, %.noexc11.thread ], [ %31, %30 ] store ptr %36, ptr %37, align 8, !tbaa !79 %38 = getelementptr inbounds nuw i8, ptr %2, i64 384 @@ -1796,50 +1794,47 @@ _ZNSt16allocator_traitsISaIiEE8allocateERS0_m.exit.i.i.i.i.i: ; preds = %27 %40 = getelementptr inbounds nuw i8, ptr %0, i64 392 %41 = load ptr, ptr %40, align 8, !tbaa !136 %42 = load ptr, ptr %39, align 8, !tbaa !131 + %42 = ptrtoint ptr %40 to i64 %43 = ptrtoint ptr %41 to i64 - %44 = ptrtoint ptr %42 to i64 - %45 = sub i64 %43, %44 + %44 = sub i64 %42, %43 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %37, i8 0, i64 24, i1 false) + %.not.i.i.i.i = icmp eq ptr %40, %41 + br i1 %.not.i.i.i.i, label %.noexc13.thread, label %46 + +.noexc13.thread: ; preds = %33 + %45 = getelementptr inbounds nuw i8, ptr %2, i64 392 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %38, i8 0, i64 24, i1 false) - %.not.i.i.i.i = icmp eq ptr %41, %42 - br i1 %.not.i.i.i.i, label %.noexc13.thread, label %49 - -.noexc13.thread: ; preds = %34 - %46 = getelementptr inbounds nuw i8, ptr %2, i64 392 - %47 = getelementptr inbounds i8, ptr null, i64 %45 - %48 = getelementptr inbounds nuw i8, ptr %2, i64 400 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %38, i8 0, i64 16, i1 false) - store ptr %47, ptr %48, align 8, !tbaa !132 - br label %57 + br label %54 -49: ; preds = %34 - %50 = sdiv exact i64 %45, 12 - %51 = icmp ugt i64 %50, 768614336404564650 - br i1 %51, label %.noexc.i.i, label %_ZNSt16allocator_traitsISaI16llama_token_dataEE8allocateERS1_m.exit.i.i.i.i, !prof !105 +46: ; preds = %34 + %47 = sdiv exact i64 %44, 12 + %48 = icmp ugt i64 %47, 768614336404564650 + br i1 %48, label %.noexc.i.i, label %_ZNSt16allocator_traitsISaI16llama_token_dataEE8allocateERS1_m.exit.i.i.i.i, !prof !105 -.noexc.i.i: ; preds = %49 +.noexc.i.i:; preds = %46 invoke void @_ZSt28__throw_bad_array_new_lengthv() #24 to label %.noexc12 unwind label %66 .noexc12: ; preds = %.noexc.i.i unreachable -_ZNSt16allocator_traitsISaI16llama_token_dataEE8allocateERS1_m.exit.i.i.i.i: ; preds = %49 - %52 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %45) #25 +_ZNSt16allocator_traitsISaI16llama_token_dataEE8allocateERS1_m.exit.i.i.i.i: ; preds = %46 + %52 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %44) #25 to label %53 unwind label %66 53: ; preds = %_ZNSt16allocator_traitsISaI16llama_token_dataEE8allocateERS1_m.exit.i.i.i.i store ptr %52, ptr %38, align 8, !tbaa !131 %54 = getelementptr inbounds nuw i8, ptr %2, i64 392 store ptr %52, ptr %54, align 8, !tbaa !136 - %55 = getelementptr inbounds i8, ptr %52, i64 %45 + %55 = getelementptr inbounds i8, ptr %52, i64 %44 %56 = getelementptr inbounds nuw i8, ptr %2, i64 400 store ptr %55, ptr %56, align 8, !tbaa !132 - tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %52, ptr align 4 %42, i64 %45, i1 false) + tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %52, ptr align 4 %42, i64 %44, i1 false) br label %57 57: ; preds = %53, %.noexc13.thread - %58 = phi ptr [ %47, %.noexc13.thread ], [ %55, %53 ] - %59 = phi ptr [ %46, %.noexc13.thread ], [ %54, %53 ] + %58 = phi ptr [ null, %.noexc13.thread ], [ %55, %53 ] + %59 = phi ptr [ %45, %.noexc13.thread ], [ %54, %53 ] store ptr %58, ptr %59, align 8, !tbaa !136 %60 = getelementptr inbounds nuw i8, ptr %2, i64 408 %61 = getelementptr inbounds nuw i8, ptr %0, i64 408 diff --git a/bench/llvm/optimized/Compilation.ll b/bench/llvm/optimized/Compilation.ll index f880d7fecfd..c4279fb8f47 100644 --- a/bench/llvm/optimized/Compilation.ll +++ b/bench/llvm/optimized/Compilation.ll @@ -2455,37 +2455,38 @@ _ZNSt6vectorISt8optionalIN4llvm9StringRefEESaIS3_EE17_S_check_init_lenEmRKS4_.ex .lr.ph.i.i.i.i.preheader.i.i.i: ; preds = %_ZNSt6vectorISt8optionalIN4llvm9StringRefEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i.i %6 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx.i) #19, !noalias !276 - %7 = add nsw i64 %.idx.i, -24 - %8 = urem i64 %7, 24 - %9 = sub nuw nsw i64 %7, %8 - %10 = add nsw i64 %9, 24 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %6, ptr align 8 %1, i64 %10, i1 false), !noalias !276 - %scevgep.i.i.i = getelementptr i8, ptr %6, i64 %10 + %7 = getelementptr inbounds nuw i8, ptr %6, i64 %.idx.i + %8 = add nsw i64 %.idx.i, -24 + %9 = urem i64 %8, 24 + %10 = sub nuw nsw i64 %8, %9 + %11 = add nsw i64 %10, 24 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %6, ptr align 8 %1, i64 %11, i1 false), !noalias !276 + %scevgep.i.i.i = getelementptr i8, ptr %6, i64 %11 br label %_ZNK4llvm8ArrayRefISt8optionalINS_9StringRefEEEcvSt6vectorIS3_SaIS3_EEEv.exit _ZNK4llvm8ArrayRefISt8optionalINS_9StringRefEEEcvSt6vectorIS3_SaIS3_EEEv.exit: ; preds = %_ZNSt6vectorISt8optionalIN4llvm9StringRefEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i.i, %.lr.ph.i.i.i.i.preheader.i.i.i %.sroa.0.0 = phi ptr [ null, %_ZNSt6vectorISt8optionalIN4llvm9StringRefEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i.i ], [ %6, %.lr.ph.i.i.i.i.preheader.i.i.i ] + %.sroa.9.0 = phi ptr [ null, %_ZNSt6vectorISt8optionalIN4llvm9StringRefEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i.i ], [ %7, %.lr.ph.i.i.i.i.preheader.i.i.i ] %.0.lcssa.i.i.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorISt8optionalIN4llvm9StringRefEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i.i ], [ %scevgep.i.i.i, %.lr.ph.i.i.i.i.preheader.i.i.i ] - %.sink.i = getelementptr inbounds nuw i8, ptr %.sroa.0.0, i64 %.idx.i - %11 = getelementptr inbounds nuw i8, ptr %0, i64 464 - %12 = load ptr, ptr %11, align 8, !tbaa !152 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 472 - %14 = getelementptr inbounds nuw i8, ptr %0, i64 480 - %15 = load ptr, ptr %14, align 8, !tbaa !153 - store ptr %.sroa.0.0, ptr %11, align 8, !tbaa !152 - store ptr %.0.lcssa.i.i.i.i.i.i.i, ptr %13, align 8, !tbaa !237 - store ptr %.sink.i, ptr %14, align 8, !tbaa !153 - %.not.i.i.i.i.i = icmp eq ptr %12, null - br i1 %.not.i.i.i.i.i, label %_ZNSt6vectorISt8optionalIN4llvm9StringRefEESaIS3_EED2Ev.exit, label %16 - -16: ; preds = %_ZNK4llvm8ArrayRefISt8optionalINS_9StringRefEEEcvSt6vectorIS3_SaIS3_EEEv.exit - %17 = ptrtoint ptr %15 to i64 - %18 = ptrtoint ptr %12 to i64 - %19 = sub i64 %17, %18 - tail call void @_ZdlPvm(ptr noundef nonnull %12, i64 noundef %19) #21 + %.sink.i = getelementptr inbounds nuw i8, ptr %0, i64 464 + %13 = load ptr, ptr %12, align 8, !tbaa !152 + %14 = getelementptr inbounds nuw i8, ptr %0, i64 472 + %13 = getelementptr inbounds nuw i8, ptr %0, i64 480 + %16 = load ptr, ptr %15, align 8, !tbaa !153 + store ptr %.sroa.0.0, ptr %12, align 8, !tbaa !152 + store ptr %.0.lcssa.i.i.i.i.i.i.i, ptr %14, align 8, !tbaa !237 + store ptr %.sroa.9.0, ptr %13, align 8, !tbaa !153 + %.not.i.i.i.i.i = icmp eq ptr %13, null + br i1 %.not.i.i.i.i.i, label %_ZNSt6vectorISt8optionalIN4llvm9StringRefEESaIS3_EED2Ev.exit, label %17 + +17: ; preds = %_ZNK4llvm8ArrayRefISt8optionalINS_9StringRefEEEcvSt6vectorIS3_SaIS3_EEEv.exit + %18 = ptrtoint ptr %16 to i64 + %17 = ptrtoint ptr %13 to i64 + %20 = sub i64 %18, %19 + tail call void @_ZdlPvm(ptr noundef nonnull %13, i64 noundef %20) #21 br label %_ZNSt6vectorISt8optionalIN4llvm9StringRefEESaIS3_EED2Ev.exit -_ZNSt6vectorISt8optionalIN4llvm9StringRefEESaIS3_EED2Ev.exit: ; preds = %16, %_ZNK4llvm8ArrayRefISt8optionalINS_9StringRefEEEcvSt6vectorIS3_SaIS3_EEEv.exit +_ZNSt6vectorISt8optionalIN4llvm9StringRefEESaIS3_EED2Ev.exit: ; preds = %17, %_ZNK4llvm8ArrayRefISt8optionalINS_9StringRefEEEcvSt6vectorIS3_SaIS3_EEEv.exit ret void } diff --git a/bench/llvm/optimized/MachineLICM.ll b/bench/llvm/optimized/MachineLICM.ll index 024c1d5ab57..d4c3c5075eb 100644 --- a/bench/llvm/optimized/MachineLICM.ll +++ b/bench/llvm/optimized/MachineLICM.ll @@ -16298,48 +16298,33 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIPNS_17MachineBasicBlockENS1_IjSt6vectorIPNS_ %56 = icmp eq i32 %52, 0 br i1 %56, label %_ZN4llvm8DenseMapIjSt6vectorIPNS_12MachineInstrESaIS3_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS5_EEED2Ev.exit, label %.lr.ph.preheader.i.i -.lr.ph.preheader.i.i: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIPNS_17MachineBasicBlockENS1_IjSt6vectorIPNS_12MachineInstrESaIS6_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS8_EEEENS9_IS3_vEENSC_IS3_SE_EEEES3_SE_SF_SG_E15LookupBucketForIS3_EEbRKT_RPSG_.exit - %57 = zext i32 %52 to i64 - %58 = getelementptr inbounds nuw %"struct.llvm::detail::DenseMapPair.600", ptr null, i64 %57 - br label %.lr.ph.i.i - -.lr.ph.i.i: ; preds = %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i, %.lr.ph.preheader.i.i - %.010.i.i = phi ptr [ %69, %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i ], [ null, %.lr.ph.preheader.i.i ] - %59 = load i32, ptr %.010.i.i, align 4, !tbaa !66 - %switch.i.i = icmp ugt i32 %59, -3 - br i1 %switch.i.i, label %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i, label %60 - -60: ; preds = %.lr.ph.i.i - %61 = getelementptr inbounds nuw i8, ptr %.010.i.i, i64 8 - %62 = load ptr, ptr %61, align 8, !tbaa !650 - %.not.i.i.i.i.i = icmp eq ptr %62, null - br i1 %.not.i.i.i.i.i, label %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i, label %63 - -63: ; preds = %60 - %64 = getelementptr inbounds nuw i8, ptr %.010.i.i, i64 24 - %65 = load ptr, ptr %64, align 8, !tbaa !653 - %66 = ptrtoint ptr %65 to i64 - %67 = ptrtoint ptr %62 to i64 - %68 = sub i64 %66, %67 - tail call void @_ZdlPvm(ptr noundef nonnull %62, i64 noundef %68) #22 +.lr.ph.preheader.i.i: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIPNS_17MachineBasicBlockENS1_IjSt6vectorIPNS_12MachineInstrESaIS6_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS8_EEEENS9_IS3_vEENSC_IS3_SE_EEEES3_SE_SF_SG_E15LookupBucketForIS3_EEbRKT_RPSG_.exit, %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i + %.010.i.i = phi ptr [ %67, %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i ], [ null, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPNS_17MachineBasicBlockENS1_IjSt6vectorIPNS_12MachineInstrESaIS6_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS8_EEEENS9_IS3_vEENSC_IS3_SE_EEEES3_SE_SF_SG_E15LookupBucketForIS3_EEbRKT_RPSG_.exit ] + %57 = load i32, ptr %.010.i.i, align 4, !tbaa !66 + %switch.i.i = icmp ugt i32 %57, -3 + br i1 %switch.i.i, label %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i, label %58 + +58: ; preds = %.lr.ph.preheader.i.i + %59 = getelementptr inbounds nuw i8, ptr %.010.i.i, i64 8 + %60 = load ptr, ptr %59, align 8, !tbaa !650 + %.not.i.i.i.i.i = icmp eq ptr %60, null + br i1 %.not.i.i.i.i.i, label %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i, label %61 + +61: ; preds = %58 + %62 = getelementptr inbounds nuw i8, ptr %.010.i.i, i64 24 + %63 = load ptr, ptr %62, align 8, !tbaa !653 + %64 = ptrtoint ptr %63 to i64 + %65 = ptrtoint ptr %60 to i64 + %66 = sub i64 %64, %65 + tail call void @_ZdlPvm(ptr noundef nonnull %60, i64 noundef %66) #22 br label %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i -_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i: ; preds = %63, %60, %.lr.ph.i.i +_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i: ; preds = %61, %58, %.lr.ph.i.i %69 = getelementptr inbounds nuw i8, ptr %.010.i.i, i64 32 - %.not.i.i = icmp eq ptr %69, %58 - br i1 %.not.i.i, label %_ZN4llvm12DenseMapBaseINS_8DenseMapIjSt6vectorIPNS_12MachineInstrESaIS4_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS6_EEEEjS6_S8_SB_E10destroyAllEv.exit.loopexit.i, label %.lr.ph.i.i, !llvm.loop !654 - -_ZN4llvm12DenseMapBaseINS_8DenseMapIjSt6vectorIPNS_12MachineInstrESaIS4_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS6_EEEEjS6_S8_SB_E10destroyAllEv.exit.loopexit.i: ; preds = %_ZNSt6vectorIPN4llvm12MachineInstrESaIS2_EED2Ev.exit.i.i - %.pre.i = load ptr, ptr %41, align 8, !tbaa !649 - %.pre2.i = load i32, ptr %51, align 8, !tbaa !646 - %70 = zext i32 %.pre2.i to i64 - %71 = shl nuw nsw i64 %70, 5 - br label %_ZN4llvm8DenseMapIjSt6vectorIPNS_12MachineInstrESaIS3_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS5_EEED2Ev.exit + br label %.lr.ph.i.i, !llvm.loop !654 -_ZN4llvm8DenseMapIjSt6vectorIPNS_12MachineInstrESaIS3_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS5_EEED2Ev.exit: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIPNS_17MachineBasicBlockENS1_IjSt6vectorIPNS_12MachineInstrESaIS6_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS8_EEEENS9_IS3_vEENSC_IS3_SE_EEEES3_SE_SF_SG_E15LookupBucketForIS3_EEbRKT_RPSG_.exit, %_ZN4llvm12DenseMapBaseINS_8DenseMapIjSt6vectorIPNS_12MachineInstrESaIS4_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS6_EEEEjS6_S8_SB_E10destroyAllEv.exit.loopexit.i - %72 = phi i64 [ %71, %_ZN4llvm12DenseMapBaseINS_8DenseMapIjSt6vectorIPNS_12MachineInstrESaIS4_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS6_EEEEjS6_S8_SB_E10destroyAllEv.exit.loopexit.i ], [ 0, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPNS_17MachineBasicBlockENS1_IjSt6vectorIPNS_12MachineInstrESaIS6_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS8_EEEENS9_IS3_vEENSC_IS3_SE_EEEES3_SE_SF_SG_E15LookupBucketForIS3_EEbRKT_RPSG_.exit ] - %73 = phi ptr [ %.pre.i, %_ZN4llvm12DenseMapBaseINS_8DenseMapIjSt6vectorIPNS_12MachineInstrESaIS4_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS6_EEEEjS6_S8_SB_E10destroyAllEv.exit.loopexit.i ], [ null, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPNS_17MachineBasicBlockENS1_IjSt6vectorIPNS_12MachineInstrESaIS6_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS8_EEEENS9_IS3_vEENSC_IS3_SE_EEEES3_SE_SF_SG_E15LookupBucketForIS3_EEbRKT_RPSG_.exit ] - tail call void @_ZN4llvm17deallocate_bufferEPvmm(ptr noundef %73, i64 noundef %72, i64 noundef 8) #19 +_ZN4llvm8DenseMapIjSt6vectorIPNS_12MachineInstrESaIS3_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS5_EEED2Ev.exit: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIPNS_17MachineBasicBlockENS1_IjSt6vectorIPNS_12MachineInstrESaIS6_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS8_EEEENS9_IS3_vEENSC_IS3_SE_EEEES3_SE_SF_SG_E15LookupBucketForIS3_EEbRKT_RPSG_.exit + tail call void @_ZN4llvm17deallocate_bufferEPvmm(ptr noundef null, i64 noundef 0, i64 noundef 8) #19 br label %74 74: ; preds = %.lr.ph, %.lr.ph, %_ZN4llvm8DenseMapIjSt6vectorIPNS_12MachineInstrESaIS3_EENS_12DenseMapInfoIjvEENS_6detail12DenseMapPairIjS5_EEED2Ev.exit diff --git a/bench/llvm/optimized/ReachingDefAnalysis.ll b/bench/llvm/optimized/ReachingDefAnalysis.ll index 5a745493d8a..c3b537f949e 100644 --- a/bench/llvm/optimized/ReachingDefAnalysis.ll +++ b/bench/llvm/optimized/ReachingDefAnalysis.ll @@ -10504,15 +10504,10 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIjNS1_IiNS_11SmallVectorIiLj12EEENS_12DenseMa %53 = icmp eq i32 %49, 0 br i1 %53, label %_ZN4llvm8DenseMapIiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS2_EEED2Ev.exit, label %.lr.ph.preheader.i.i -.lr.ph.preheader.i.i: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIjNS1_IiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEENS4_IjvEENS7_IjS9_EEEEjS9_SA_SB_E15LookupBucketForIjEEbRKT_RPSB_.exit - %54 = zext i32 %49 to i64 - %55 = getelementptr inbounds nuw %"struct.llvm::detail::DenseMapPair", ptr null, i64 %54 - br label %.lr.ph.i.i - -.lr.ph.i.i: ; preds = %_ZN4llvm11SmallVectorIiLj12EED2Ev.exit.i.i, %.lr.ph.preheader.i.i - %.010.i.i = phi ptr [ %63, %_ZN4llvm11SmallVectorIiLj12EED2Ev.exit.i.i ], [ null, %.lr.ph.preheader.i.i ] - %56 = load i32, ptr %.010.i.i, align 4, !tbaa !175 - %.off.i.i = add i32 %56, -2147483647 +.lr.ph.preheader.i.i: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIjNS1_IiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEENS4_IjvEENS7_IjS9_EEEEjS9_SA_SB_E15LookupBucketForIjEEbRKT_RPSB_.exit, %_ZN4llvm11SmallVectorIiLj12EED2Ev.exit.i.i + %.010.i.i = phi ptr [ %61, %_ZN4llvm11SmallVectorIiLj12EED2Ev.exit.i.i ], [ null, %_ZN4llvm12DenseMapBaseINS_8DenseMapIjNS1_IiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEENS4_IjvEENS7_IjS9_EEEEjS9_SA_SB_E15LookupBucketForIjEEbRKT_RPSB_.exit ] + %54 = load i32, ptr %.010.i.i, align 4, !tbaa !175 + %.off.i.i = add i32 %54, -2147483647 %switch.i.i = icmp ult i32 %.off.i.i, 2 br i1 %switch.i.i, label %_ZN4llvm11SmallVectorIiLj12EED2Ev.exit.i.i, label %57 @@ -10529,20 +10524,10 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIjNS1_IiNS_11SmallVectorIiLj12EEENS_12DenseMa _ZN4llvm11SmallVectorIiLj12EED2Ev.exit.i.i: ; preds = %62, %57, %.lr.ph.i.i %63 = getelementptr inbounds nuw i8, ptr %.010.i.i, i64 72 - %.not.i.i = icmp eq ptr %63, %55 - br i1 %.not.i.i, label %_ZN4llvm12DenseMapBaseINS_8DenseMapIiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEEiS3_S5_S8_E10destroyAllEv.exit.loopexit.i, label %.lr.ph.i.i, !llvm.loop !218 - -_ZN4llvm12DenseMapBaseINS_8DenseMapIiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEEiS3_S5_S8_E10destroyAllEv.exit.loopexit.i: ; preds = %_ZN4llvm11SmallVectorIiLj12EED2Ev.exit.i.i - %.pre.i = load ptr, ptr %38, align 8, !tbaa !212 - %.pre2.i = load i32, ptr %48, align 8, !tbaa !209 - %64 = zext i32 %.pre2.i to i64 - %65 = mul nuw nsw i64 %64, 72 - br label %_ZN4llvm8DenseMapIiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS2_EEED2Ev.exit + br label %.lr.ph.i.i, !llvm.loop !218 -_ZN4llvm8DenseMapIiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS2_EEED2Ev.exit: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIjNS1_IiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEENS4_IjvEENS7_IjS9_EEEEjS9_SA_SB_E15LookupBucketForIjEEbRKT_RPSB_.exit, %_ZN4llvm12DenseMapBaseINS_8DenseMapIiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEEiS3_S5_S8_E10destroyAllEv.exit.loopexit.i - %66 = phi i64 [ %65, %_ZN4llvm12DenseMapBaseINS_8DenseMapIiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEEiS3_S5_S8_E10destroyAllEv.exit.loopexit.i ], [ 0, %_ZN4llvm12DenseMapBaseINS_8DenseMapIjNS1_IiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEENS4_IjvEENS7_IjS9_EEEEjS9_SA_SB_E15LookupBucketForIjEEbRKT_RPSB_.exit ] - %67 = phi ptr [ %.pre.i, %_ZN4llvm12DenseMapBaseINS_8DenseMapIiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEEiS3_S5_S8_E10destroyAllEv.exit.loopexit.i ], [ null, %_ZN4llvm12DenseMapBaseINS_8DenseMapIjNS1_IiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEENS4_IjvEENS7_IjS9_EEEEjS9_SA_SB_E15LookupBucketForIjEEbRKT_RPSB_.exit ] - tail call void @_ZN4llvm17deallocate_bufferEPvmm(ptr noundef %67, i64 noundef %66, i64 noundef 8) #21 +_ZN4llvm8DenseMapIiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS2_EEED2Ev.exit: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIjNS1_IiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS3_EEEENS4_IjvEENS7_IjS9_EEEEjS9_SA_SB_E15LookupBucketForIjEEbRKT_RPSB_.exit + tail call void @_ZN4llvm17deallocate_bufferEPvmm(ptr noundef null, i64 noundef 0, i64 noundef 8) #21 br label %68 68: ; preds = %.lr.ph, %_ZN4llvm8DenseMapIiNS_11SmallVectorIiLj12EEENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS2_EEED2Ev.exit diff --git a/bench/llvm/optimized/RegisterUsageInfo.ll b/bench/llvm/optimized/RegisterUsageInfo.ll index 6540e441f1e..f264428d984 100644 --- a/bench/llvm/optimized/RegisterUsageInfo.ll +++ b/bench/llvm/optimized/RegisterUsageInfo.ll @@ -1036,18 +1036,19 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_8FunctionESt6vectorIjSaIjEENS_12DenseMa ; Function Attrs: mustprogress nounwind uwtable define dso_local void @_ZN4llvm25PhysicalRegisterUsageInfo23storeUpdateRegUsageInfoERKNS_8FunctionENS_8ArrayRefIjEE(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(136) %1, ptr readonly captures(none) %2, i64 %3) local_unnamed_addr #1 align 2 { %5 = alloca ptr, align 8 - %.idx.i = shl nuw nsw i64 %3, 2 %.not.i.i.i.i = icmp eq i64 %3, 0 br i1 %.not.i.i.i.i, label %_ZNK4llvm8ArrayRefIjEcvSt6vectorIjSaIjEEEv.exit, label %6 6: ; preds = %4 + %.idx.i = shl nuw nsw i64 %3, 2 %7 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx.i) #21, !noalias !125 + %8 = getelementptr inbounds nuw i8, ptr %7, i64 %.idx.i tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %7, ptr align 4 %2, i64 %.idx.i, i1 false), !noalias !125 br label %_ZNK4llvm8ArrayRefIjEcvSt6vectorIjSaIjEEEv.exit _ZNK4llvm8ArrayRefIjEcvSt6vectorIjSaIjEEEv.exit: ; preds = %4, %6 %.sroa.0.0 = phi ptr [ null, %4 ], [ %7, %6 ] - %.sink.i = getelementptr inbounds nuw i8, ptr %.sroa.0.0, i64 %.idx.i + %.sroa.9.0 = phi ptr [ null, %4 ], [ %8, %6 ] call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %5) #19 store ptr %1, ptr %5, align 8, !tbaa !78 %8 = call noundef nonnull align 8 dereferenceable(24) ptr @_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_8FunctionESt6vectorIjSaIjEENS_12DenseMapInfoIS4_vEENS_6detail12DenseMapPairIS4_S7_EEEES4_S7_S9_SC_EixEOS4_(ptr noundef nonnull align 1 dereferenceable(1) %0, ptr noundef nonnull align 8 dereferenceable(8) %5) @@ -1056,8 +1057,8 @@ _ZNK4llvm8ArrayRefIjEcvSt6vectorIjSaIjEEEv.exit: ; preds = %4, %6 %11 = getelementptr inbounds nuw i8, ptr %8, i64 16 %12 = load ptr, ptr %11, align 8, !tbaa !88 store ptr %.sroa.0.0, ptr %8, align 8, !tbaa !84 - store ptr %.sink.i, ptr %10, align 8, !tbaa !87 - store ptr %.sink.i, ptr %11, align 8, !tbaa !88 + store ptr %.sroa.9.0, ptr %10, align 8, !tbaa !87 + store ptr %.sroa.9.0, ptr %11, align 8, !tbaa !88 %.not.i.i.i.i.i = icmp eq ptr %9, null br i1 %.not.i.i.i.i.i, label %_ZNSt6vectorIjSaIjEED2Ev.exit, label %13 diff --git a/bench/llvm/optimized/VarLenCodeEmitterGen.ll b/bench/llvm/optimized/VarLenCodeEmitterGen.ll index b62fcecd676..245ec302bb4 100644 --- a/bench/llvm/optimized/VarLenCodeEmitterGen.ll +++ b/bench/llvm/optimized/VarLenCodeEmitterGen.ll @@ -6049,16 +6049,16 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12Dens %.not21 = icmp eq ptr %1, %2 br i1 %.not21, label %._crit_edge, label %.lr.ph -._crit_edge: ; preds = %71, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E9initEmptyEv.exit +._crit_edge: ; preds = %65, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E9initEmptyEv.exit ret void -.lr.ph: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E9initEmptyEv.exit, %71 - %.022 = phi ptr [ %72, %71 ], [ %1, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E9initEmptyEv.exit ] +.lr.ph: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E9initEmptyEv.exit, %65 + %.022 = phi ptr [ %66, %65 ], [ %1, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E9initEmptyEv.exit ] %12 = load ptr, ptr %.022, align 8, !tbaa !127 %magicptr = ptrtoint ptr %12 to i64 switch i64 %magicptr, label %13 [ - i64 -4096, label %71 - i64 -8192, label %71 + i64 -4096, label %65 + i64 -8192, label %65 ] 13: ; preds = %.lr.ph @@ -6138,15 +6138,10 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12Dens %56 = icmp eq i32 %52, 0 br i1 %56, label %_ZN4llvm8DenseMapIiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS1_EEED2Ev.exit, label %.lr.ph.preheader.i.i -.lr.ph.preheader.i.i: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E15LookupBucketForIS4_EEbRKT_RPSD_.exit - %57 = zext i32 %52 to i64 - %58 = getelementptr inbounds nuw %"struct.llvm::detail::DenseMapPair.174", ptr null, i64 %57 - br label %.lr.ph.i.i - -.lr.ph.i.i: ; preds = %_ZN4llvm10VarLenInstD2Ev.exit.i.i, %.lr.ph.preheader.i.i - %.010.i.i = phi ptr [ %66, %_ZN4llvm10VarLenInstD2Ev.exit.i.i ], [ null, %.lr.ph.preheader.i.i ] - %59 = load i32, ptr %.010.i.i, align 4, !tbaa !132 - %.off.i.i = add i32 %59, -2147483647 +.lr.ph.preheader.i.i: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E15LookupBucketForIS4_EEbRKT_RPSD_.exit, %_ZN4llvm10VarLenInstD2Ev.exit.i.i + %.010.i.i = phi ptr [ %64, %_ZN4llvm10VarLenInstD2Ev.exit.i.i ], [ null, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E15LookupBucketForIS4_EEbRKT_RPSD_.exit ] + %57 = load i32, ptr %.010.i.i, align 4, !tbaa !132 + %.off.i.i = add i32 %57, -2147483647 %switch.i.i = icmp ult i32 %.off.i.i, 2 br i1 %switch.i.i, label %_ZN4llvm10VarLenInstD2Ev.exit.i.i, label %60 @@ -6163,25 +6158,15 @@ _ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12Dens _ZN4llvm10VarLenInstD2Ev.exit.i.i: ; preds = %65, %60, %.lr.ph.i.i %66 = getelementptr inbounds nuw i8, ptr %.010.i.i, i64 240 - %.not.i.i = icmp eq ptr %66, %58 - br i1 %.not.i.i, label %_ZN4llvm12DenseMapBaseINS_8DenseMapIiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS2_EEEEiS2_S4_S7_E10destroyAllEv.exit.loopexit.i, label %.lr.ph.i.i, !llvm.loop !133 - -_ZN4llvm12DenseMapBaseINS_8DenseMapIiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS2_EEEEiS2_S4_S7_E10destroyAllEv.exit.loopexit.i: ; preds = %_ZN4llvm10VarLenInstD2Ev.exit.i.i - %.pre.i = load ptr, ptr %41, align 8, !tbaa !131 - %.pre2.i = load i32, ptr %51, align 8, !tbaa !128 - %67 = zext i32 %.pre2.i to i64 - %68 = mul nuw nsw i64 %67, 240 - br label %_ZN4llvm8DenseMapIiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS1_EEED2Ev.exit - -_ZN4llvm8DenseMapIiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS1_EEED2Ev.exit: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E15LookupBucketForIS4_EEbRKT_RPSD_.exit, %_ZN4llvm12DenseMapBaseINS_8DenseMapIiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS2_EEEEiS2_S4_S7_E10destroyAllEv.exit.loopexit.i - %69 = phi i64 [ %68, %_ZN4llvm12DenseMapBaseINS_8DenseMapIiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS2_EEEEiS2_S4_S7_E10destroyAllEv.exit.loopexit.i ], [ 0, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E15LookupBucketForIS4_EEbRKT_RPSD_.exit ] - %70 = phi ptr [ %.pre.i, %_ZN4llvm12DenseMapBaseINS_8DenseMapIiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS2_EEEEiS2_S4_S7_E10destroyAllEv.exit.loopexit.i ], [ null, %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E15LookupBucketForIS4_EEbRKT_RPSD_.exit ] - tail call void @_ZN4llvm17deallocate_bufferEPvmm(ptr noundef %70, i64 noundef %69, i64 noundef 8) #17 - br label %71 - -71: ; preds = %.lr.ph, %.lr.ph, %_ZN4llvm8DenseMapIiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS1_EEED2Ev.exit - %72 = getelementptr inbounds nuw i8, ptr %.022, i64 32 - %.not = icmp eq ptr %72, %2 + br label %.lr.ph.i.i, !llvm.loop !133 + +_ZN4llvm8DenseMapIiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS1_EEED2Ev.exit: ; preds = %_ZN4llvm12DenseMapBaseINS_8DenseMapIPKNS_6RecordENS1_IiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS5_EEEENS6_IS4_vEENS9_IS4_SB_EEEES4_SB_SC_SD_E15LookupBucketForIS4_EEbRKT_RPSD_.exit + tail call void @_ZN4llvm17deallocate_bufferEPvmm(ptr noundef null, i64 noundef 0, i64 noundef 8) #17 + br label %65 + +65: ; preds = %.lr.ph, %.lr.ph, %_ZN4llvm8DenseMapIiNS_10VarLenInstENS_12DenseMapInfoIivEENS_6detail12DenseMapPairIiS1_EEED2Ev.exit + %66 = getelementptr inbounds nuw i8, ptr %.022, i64 32 + %.not = icmp eq ptr %66, %2 br i1 %.not, label %._crit_edge, label %.lr.ph, !llvm.loop !269 } diff --git a/bench/meshlab/optimized/baseio.ll b/bench/meshlab/optimized/baseio.ll index 0748abe7482..c3f2882a05a 100644 --- a/bench/meshlab/optimized/baseio.ll +++ b/bench/meshlab/optimized/baseio.ll @@ -51149,10 +51149,7 @@ _ZNKSt6vectorIS_IN3vcg6Point3IfEESaIS2_EESaIS4_EE12_M_check_lenEmPKc.exit: ; pre .noexc26.thread: ; preds = %_ZNKSt6vectorIS_IN3vcg6Point3IfEESaIS2_EESaIS4_EE12_M_check_lenEmPKc.exit %28 = getelementptr inbounds nuw i8, ptr %21, i64 8 - %29 = getelementptr inbounds i8, ptr null, i64 %27 - %30 = getelementptr inbounds nuw i8, ptr %21, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %21, i8 0, i64 16, i1 false) - store ptr %29, ptr %30, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false) br label %.loopexit 31: ; preds = %_ZNKSt6vectorIS_IN3vcg6Point3IfEESaIS2_EESaIS4_EE12_M_check_lenEmPKc.exit @@ -51174,10 +51171,10 @@ _ZNSt16allocator_traitsISaIN3vcg6Point3IfEEEE8allocateERS3_m.exit.i.i.i.i.i.i: ; .noexc26: ; preds = %_ZNSt16allocator_traitsISaIN3vcg6Point3IfEEEE8allocateERS3_m.exit.i.i.i.i.i.i store ptr %34, ptr %21, align 8 %35 = getelementptr inbounds nuw i8, ptr %21, i64 8 + store ptr %32, ptr %33, align 8 + %34 = getelementptr inbounds i8, ptr %32, i64 %27 + %35 = getelementptr inbounds nuw i8, ptr %21, i64 16 store ptr %34, ptr %35, align 8 - %36 = getelementptr inbounds i8, ptr %34, i64 %27 - %37 = getelementptr inbounds nuw i8, ptr %21, i64 16 - store ptr %36, ptr %37, align 8 br label %.lr.ph.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i: ; preds = %.noexc26, %.lr.ph.i.i.i.i.i.i.i diff --git a/bench/minetest/optimized/CGUIFont.ll b/bench/minetest/optimized/CGUIFont.ll index 89c1bcca993..6511d60b5a9 100644 --- a/bench/minetest/optimized/CGUIFont.ll +++ b/bench/minetest/optimized/CGUIFont.ll @@ -2872,16 +2872,12 @@ _ZNKSt6vectorIN3irr3gui10SGUISpriteESaIS2_EE12_M_check_lenEmPKc.exit: ; preds = %sub.ptr.lhs.cast.i.i.i.i.i.i = ptrtoint ptr %3 to i64 %sub.ptr.rhs.cast.i.i.i.i.i.i = ptrtoint ptr %4 to i64 %sub.ptr.sub.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %add.ptr, i8 0, i64 24, i1 false) %cmp.not.i.i.i.i.i.i.i.i = icmp eq ptr %3, %4 br i1 %cmp.not.i.i.i.i.i.i.i.i, label %_ZNSt12_Vector_baseIN3irr3gui15SGUISpriteFrameESaIS2_EEC2EmRKS3_.exit.i.i.i.i.i.thread, label %cond.true.i.i.i.i.i.i.i.i _ZNSt12_Vector_baseIN3irr3gui15SGUISpriteFrameESaIS2_EEC2EmRKS3_.exit.i.i.i.i.i.thread: ; preds = %_ZNKSt6vectorIN3irr3gui10SGUISpriteESaIS2_EE12_M_check_lenEmPKc.exit %_M_finish.i.i.i.i.i.i.i77 = getelementptr inbounds nuw i8, ptr %add.ptr, i64 8 - %add.ptr.i.i.i.i.i.i.i78 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i.i - %_M_end_of_storage.i.i.i.i.i.i.i79 = getelementptr inbounds nuw i8, ptr %add.ptr, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %add.ptr, i8 0, i64 16, i1 false) - store ptr %add.ptr.i.i.i.i.i.i.i78, ptr %_M_end_of_storage.i.i.i.i.i.i.i79, align 8, !tbaa !79 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %add.ptr, i8 0, i64 24, i1 false) br label %_ZNSt16allocator_traitsISaIN3irr3gui10SGUISpriteEEE9constructIS2_JRKS2_EEEvRS3_PT_DpOT0_.exit cond.true.i.i.i.i.i.i.i.i: ; preds = %_ZNKSt6vectorIN3irr3gui10SGUISpriteESaIS2_EE12_M_check_lenEmPKc.exit diff --git a/bench/minetest/optimized/mapblock_mesh.ll b/bench/minetest/optimized/mapblock_mesh.ll index ba3e0f6a2c3..5a40eebe563 100644 --- a/bench/minetest/optimized/mapblock_mesh.ll +++ b/bench/minetest/optimized/mapblock_mesh.ll @@ -10249,10 +10249,7 @@ _ZNKSt6vectorIN15MapBlockBspTree8TreeNodeESaIS1_EE12_M_check_lenEmPKc.exit: ; pr invoke.cont.i.i.i.i.thread: ; preds = %_ZNKSt6vectorIN15MapBlockBspTree8TreeNodeESaIS1_EE12_M_check_lenEmPKc.exit %_M_finish.i.i.i.i.i.i81 = getelementptr inbounds nuw i8, ptr %add.ptr, i64 32 - %add.ptr.i.i.i.i.i.i82 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i - %_M_end_of_storage.i.i.i.i.i.i83 = getelementptr inbounds nuw i8, ptr %add.ptr, i64 40 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %triangle_refs5.i.i.i, i8 0, i64 16, i1 false) - store ptr %add.ptr.i.i.i.i.i.i82, ptr %_M_end_of_storage.i.i.i.i.i.i83, align 8, !tbaa !81 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %triangle_refs5.i.i.i, i8 0, i64 24, i1 false) br label %invoke.cont cond.true.i.i.i.i.i.i.i: ; preds = %_ZNKSt6vectorIN15MapBlockBspTree8TreeNodeESaIS1_EE12_M_check_lenEmPKc.exit @@ -10454,10 +10451,7 @@ _ZNKSt6vectorIN15MapBlockBspTree8TreeNodeESaIS1_EE12_M_check_lenEmPKc.exit: ; pr invoke.cont.i.i.i.i.thread: ; preds = %_ZNKSt6vectorIN15MapBlockBspTree8TreeNodeESaIS1_EE12_M_check_lenEmPKc.exit %_M_finish.i.i.i.i.i.i81 = getelementptr inbounds nuw i8, ptr %add.ptr, i64 32 - %add.ptr.i.i.i.i.i.i82 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i - %_M_end_of_storage.i.i.i.i.i.i83 = getelementptr inbounds nuw i8, ptr %add.ptr, i64 40 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %triangle_refs5.i.i.i, i8 0, i64 16, i1 false) - store ptr %add.ptr.i.i.i.i.i.i82, ptr %_M_end_of_storage.i.i.i.i.i.i83, align 8, !tbaa !81 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %triangle_refs5.i.i.i, i8 0, i64 24, i1 false) br label %invoke.cont cond.true.i.i.i.i.i.i.i: ; preds = %_ZNKSt6vectorIN15MapBlockBspTree8TreeNodeESaIS1_EE12_M_check_lenEmPKc.exit diff --git a/bench/minetest/optimized/server.ll b/bench/minetest/optimized/server.ll index 33d6b434536..2639e40fe52 100644 --- a/bench/minetest/optimized/server.ll +++ b/bench/minetest/optimized/server.ll @@ -29031,10 +29031,6 @@ if.end: ; preds = %_ZNK9VoxelArea8cont invoke.cont.i.i.thread: ; preds = %if.end %_M_finish.i.i.i.i10 = getelementptr inbounds nuw i8, ptr %call3, i64 24 - %add.ptr.i.i.i.i11 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i - %_M_end_of_storage.i.i.i.i12 = getelementptr inbounds nuw i8, ptr %call3, i64 32 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %modified_blocks.i, i8 0, i64 16, i1 false) - store ptr %add.ptr.i.i.i.i11, ptr %_M_end_of_storage.i.i.i.i12, align 8, !tbaa !740 br label %invoke.cont cond.true.i.i.i.i.i: ; preds = %if.end @@ -52903,10 +52899,6 @@ invoke.cont178: ; preds = %invoke.cont174 invoke.cont.i.i.thread: ; preds = %invoke.cont178 %_M_finish.i.i.i.i1023 = getelementptr inbounds nuw i8, ptr %legacy_pkt, i64 8 - %add.ptr.i.i.i.i1024 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i - %_M_end_of_storage.i.i.i.i1025 = getelementptr inbounds nuw i8, ptr %legacy_pkt, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %legacy_pkt, i8 0, i64 16, i1 false) - store ptr %add.ptr.i.i.i.i1024, ptr %_M_end_of_storage.i.i.i.i1025, align 8, !tbaa !396 br label %invoke.cont181 cond.true.i.i.i.i.i: ; preds = %invoke.cont178 @@ -52935,7 +52927,7 @@ if.then.i.i.i.i.i.i.i.i.i.i: ; preds = %_ZNSt16allocator_tr br label %invoke.cont181 invoke.cont181: ; preds = %if.then.i.i.i.i.i.i.i.i.i.i, %invoke.cont.i.i.thread - %add.ptr.i.i.i.i1027 = phi ptr [ %add.ptr.i.i.i.i1024, %invoke.cont.i.i.thread ], [ %add.ptr.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ] + %add.ptr.i.i.i.i1027 = phi ptr [ null, %invoke.cont.i.i.thread ], [ %add.ptr.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ] %_M_finish.i.i.i.i1026 = phi ptr [ %_M_finish.i.i.i.i1023, %invoke.cont.i.i.thread ], [ %_M_finish.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ] store ptr %add.ptr.i.i.i.i1027, ptr %_M_finish.i.i.i.i1026, align 8, !tbaa !395 %m_datasize.i = getelementptr inbounds nuw i8, ptr %legacy_pkt, i64 24 diff --git a/bench/minetest/optimized/serverenvironment.ll b/bench/minetest/optimized/serverenvironment.ll index d946b16f24e..93db20cbf54 100644 --- a/bench/minetest/optimized/serverenvironment.ll +++ b/bench/minetest/optimized/serverenvironment.ll @@ -31376,10 +31376,7 @@ _ZNKSt6vectorI9ActiveABMSaIS0_EE12_M_check_lenEmPKc.exit: ; preds = %entry invoke.cont.i.i.i.i.thread: ; preds = %_ZNKSt6vectorI9ActiveABMSaIS0_EE12_M_check_lenEmPKc.exit %_M_finish.i.i.i.i.i.i74 = getelementptr inbounds nuw i8, ptr %add.ptr, i64 24 - %add.ptr.i.i.i.i.i.i75 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i - %_M_end_of_storage.i.i.i.i.i.i76 = getelementptr inbounds nuw i8, ptr %add.ptr, i64 32 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %required_neighbors.i.i.i, i8 0, i64 16, i1 false) - store ptr %add.ptr.i.i.i.i.i.i75, ptr %_M_end_of_storage.i.i.i.i.i.i76, align 8, !tbaa !52 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %required_neighbors.i.i.i, i8 0, i64 24, i1 false) br label %invoke.cont cond.true.i.i.i.i.i.i.i: ; preds = %_ZNKSt6vectorI9ActiveABMSaIS0_EE12_M_check_lenEmPKc.exit diff --git a/bench/mold/optimized/lto-unix.cc.X86_64.ll b/bench/mold/optimized/lto-unix.cc.X86_64.ll index 7fe40b361a0..a26227decb7 100644 --- a/bench/mold/optimized/lto-unix.cc.X86_64.ll +++ b/bench/mold/optimized/lto-unix.cc.X86_64.ll @@ -2889,15 +2889,13 @@ _ZNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEED1Ev.exit: ; preds = %473 = ptrtoint ptr %471 to i64 %474 = ptrtoint ptr %472 to i64 %475 = sub i64 %473, %474 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) + %476 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 0, ptr %476, align 8 %.not.i.i.i.i = icmp eq ptr %471, %472 br i1 %.not.i.i.i.i, label %_ZNSt12_Vector_baseIPN4mold10ObjectFileINS0_6X86_64EEESaIS4_EEC2EmRKS5_.exit.i.thread, label %478 _ZNSt12_Vector_baseIPN4mold10ObjectFileINS0_6X86_64EEESaIS4_EEC2EmRKS5_.exit.i.thread: ; preds = %470 - %476 = getelementptr inbounds i8, ptr null, i64 %475 - %477 = getelementptr inbounds nuw i8, ptr %0, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %476, ptr %477, align 8, !tbaa !490 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIPN4mold10ObjectFileINS0_6X86_64EEESaIS4_EEC2ERKS6_.exit 478: ; preds = %470 @@ -2918,7 +2916,7 @@ _ZNSt12_Vector_baseIPN4mold10ObjectFileINS0_6X86_64EEESaIS4_EEC2EmRKS5_.exit.i.t br label %_ZNSt6vectorIPN4mold10ObjectFileINS0_6X86_64EEESaIS4_EEC2ERKS6_.exit _ZNSt6vectorIPN4mold10ObjectFileINS0_6X86_64EEESaIS4_EEC2ERKS6_.exit: ; preds = %_ZNSt12_Vector_baseIPN4mold10ObjectFileINS0_6X86_64EEESaIS4_EEC2EmRKS5_.exit.i.thread, %481 - %485 = phi ptr [ %476, %_ZNSt12_Vector_baseIPN4mold10ObjectFileINS0_6X86_64EEESaIS4_EEC2EmRKS5_.exit.i.thread ], [ %483, %481 ] + %485 = phi ptr [ null, %_ZNSt12_Vector_baseIPN4mold10ObjectFileINS0_6X86_64EEESaIS4_EEC2EmRKS5_.exit.i.thread ], [ %483, %481 ] %486 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %485, ptr %486, align 8, !tbaa !488 %487 = load ptr, ptr %12, align 8, !tbaa !491 @@ -7102,12 +7100,13 @@ _ZNSt6vectorIN4mold12PluginSymbolESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i: ; 47: ; preds = %_ZNSt6vectorIN4mold12PluginSymbolESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i %48 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #28 + %49 = getelementptr inbounds nuw i8, ptr %48, i64 %.idx call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %48, ptr align 8 %2, i64 %.idx, i1 false) br label %_ZNSt6vectorIN4mold12PluginSymbolESaIS1_EEC2IPKS1_vEET_S7_RKS2_.exit _ZNSt6vectorIN4mold12PluginSymbolESaIS1_EEC2IPKS1_vEET_S7_RKS2_.exit: ; preds = %_ZNSt6vectorIN4mold12PluginSymbolESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i, %47 - %.sroa.03.0 = phi ptr [ %48, %47 ], [ null, %_ZNSt6vectorIN4mold12PluginSymbolESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i ] - %.sroa.9.0 = getelementptr inbounds nuw i8, ptr %.sroa.03.0, i64 %.idx + %.sroa.03.0 = phi ptr [ null, %_ZNSt6vectorIN4mold12PluginSymbolESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i ], [ %49, %47 ] + %.sroa.03.0 = phi ptr [ null, %_ZNSt6vectorIN4mold12PluginSymbolESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i ], [ %48, %47 ] %49 = load ptr, ptr @_ZN4moldL14plugin_symbolsE, align 8, !tbaa !181 %50 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN4moldL14plugin_symbolsE, i64 16), align 8, !tbaa !500 store ptr %.sroa.03.0, ptr @_ZN4moldL14plugin_symbolsE, align 8, !tbaa !181 diff --git a/bench/ncnn/optimized/benchncnn.ll b/bench/ncnn/optimized/benchncnn.ll index 53675f62dde..0f817b8e51a 100644 --- a/bench/ncnn/optimized/benchncnn.ll +++ b/bench/ncnn/optimized/benchncnn.ll @@ -6984,11 +6984,8 @@ _ZNKSt6vectorIS_IiSaIiEESaIS1_EE12_M_check_lenEmPKc.exit: ; preds = %3 .noexc26.thread: ; preds = %_ZNKSt6vectorIS_IiSaIiEESaIS1_EE12_M_check_lenEmPKc.exit %28 = getelementptr inbounds nuw i8, ptr %21, i64 8 - %29 = getelementptr inbounds i8, ptr null, i64 %27 - %30 = getelementptr inbounds nuw i8, ptr %21, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %21, i8 0, i64 16, i1 false) - store ptr %29, ptr %30, align 8, !tbaa !72 - br label %38 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %21, i8 0, i64 24, i1 false) + br label %36 31: ; preds = %_ZNKSt6vectorIS_IiSaIiEESaIS1_EE12_M_check_lenEmPKc.exit %32 = icmp ugt i64 %27, 9223372036854775804 @@ -7016,7 +7013,7 @@ _ZNSt16allocator_traitsISaIiEE8allocateERS0_m.exit.i.i.i.i.i.i: ; preds = %31 br label %38 38: ; preds = %34, %.noexc26.thread - %39 = phi ptr [ %29, %.noexc26.thread ], [ %36, %34 ] + %39 = phi ptr [ null, %.noexc26.thread ], [ %36, %34 ] %40 = phi ptr [ %28, %.noexc26.thread ], [ %35, %34 ] store ptr %39, ptr %40, align 8, !tbaa !71 %.not10.i.i.i = icmp eq ptr %6, %1 diff --git a/bench/ninja/optimized/build_test.ll b/bench/ninja/optimized/build_test.ll index 73e2faedaac..6a92da8bfd3 100644 --- a/bench/ninja/optimized/build_test.ll +++ b/bench/ninja/optimized/build_test.ll @@ -35609,7 +35609,7 @@ _ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exi } ; Function Attrs: mustprogress uwtable -define dso_local void @_ZN17FakeCommandRunner14GetActiveEdgesEv(ptr dead_on_unwind noalias writable writeonly sret(%"class.std::vector") align 8 captures(none) initializes((0, 24)) %0, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(72) %1) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 { +define dso_local void @_ZN17FakeCommandRunner14GetActiveEdgesEv(ptr dead_on_unwind noalias writable writeonly sret(%"class.std::vector") align 8 captures(none) initializes((8, 16)) %0, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(72) %1) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 { %3 = getelementptr inbounds nuw i8, ptr %1, i64 32 %4 = getelementptr inbounds nuw i8, ptr %1, i64 40 %5 = load ptr, ptr %4, align 8, !tbaa !483 @@ -35617,15 +35617,13 @@ define dso_local void @_ZN17FakeCommandRunner14GetActiveEdgesEv(ptr dead_on_unwi %7 = ptrtoint ptr %5 to i64 %8 = ptrtoint ptr %6 to i64 %9 = sub i64 %7, %8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) + %10 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 0, ptr %10, align 8 %.not.i.i.i.i = icmp eq ptr %5, %6 br i1 %.not.i.i.i.i, label %.thread, label %12 .thread: ; preds = %2 - %10 = getelementptr inbounds i8, ptr null, i64 %9 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %10, ptr %11, align 8, !tbaa !475 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIP4EdgeSaIS1_EEC2ERKS3_.exit 12: ; preds = %2 @@ -35646,7 +35644,7 @@ define dso_local void @_ZN17FakeCommandRunner14GetActiveEdgesEv(ptr dead_on_unwi br label %_ZNSt6vectorIP4EdgeSaIS1_EEC2ERKS3_.exit _ZNSt6vectorIP4EdgeSaIS1_EEC2ERKS3_.exit: ; preds = %.thread, %14 - %18 = phi ptr [ %10, %.thread ], [ %16, %14 ] + %18 = phi ptr [ null, %.thread ], [ %16, %14 ] %19 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %18, ptr %19, align 8, !tbaa !483 ret void diff --git a/bench/nix/optimized/lock.ll b/bench/nix/optimized/lock.ll index 4f51df87934..56a5e72f3cd 100644 --- a/bench/nix/optimized/lock.ll +++ b/bench/nix/optimized/lock.ll @@ -14041,15 +14041,13 @@ define linkonce_odr void @_ZN3nix14SimpleUserLock20getSupplementaryGIDsEv(ptr de %7 = ptrtoint ptr %5 to i64 %8 = ptrtoint ptr %6 to i64 %9 = sub i64 %7, %8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) + %10 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 0, ptr %10, align 8 %.not.i.i.i.i = icmp eq ptr %5, %6 br i1 %.not.i.i.i.i, label %.thread, label %12 .thread: ; preds = %2 - %10 = getelementptr inbounds i8, ptr null, i64 %9 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %10, ptr %11, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIjSaIjEEC2ERKS1_.exit 12: ; preds = %2 @@ -14070,7 +14068,7 @@ define linkonce_odr void @_ZN3nix14SimpleUserLock20getSupplementaryGIDsEv(ptr de br label %_ZNSt6vectorIjSaIjEEC2ERKS1_.exit _ZNSt6vectorIjSaIjEEC2ERKS1_.exit: ; preds = %.thread, %14 - %18 = phi ptr [ %10, %.thread ], [ %16, %14 ] + %18 = phi ptr [ null, %.thread ], [ %16, %14 ] %19 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %18, ptr %19, align 8 ret void diff --git a/bench/nlohmann_json/optimized/unit-testsuites.ll b/bench/nlohmann_json/optimized/unit-testsuites.ll index 6e69677e487..6052849cbdc 100644 --- a/bench/nlohmann_json/optimized/unit-testsuites.ll +++ b/bench/nlohmann_json/optimized/unit-testsuites.ll @@ -31673,11 +31673,7 @@ _ZNSt10unique_ptrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEZN8nlohman .noexc4.thread.i.i: ; preds = %.noexc15 %85 = getelementptr inbounds nuw i8, ptr %78, i64 8 - %86 = getelementptr inbounds i8, ptr null, i64 %84 - %87 = getelementptr inbounds nuw i8, ptr %78, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %78, i8 0, i64 16, i1 false) - store ptr %86, ptr %87, align 8, !tbaa !415 - br label %96 + br label %94 88: ; preds = %.noexc15 %89 = icmp slt i64 %84, 0 @@ -31711,7 +31707,7 @@ _ZNSt10unique_ptrIN8nlohmann16json_abi_v3_11_327byte_container_with_subtypeISt6v br label %.body18 96: ; preds = %91, %.noexc4.thread.i.i - %97 = phi ptr [ %86, %.noexc4.thread.i.i ], [ %93, %91 ] + %97 = phi ptr [ null, %.noexc4.thread.i.i ], [ %93, %91 ] %98 = phi ptr [ %85, %.noexc4.thread.i.i ], [ %92, %91 ] store ptr %97, ptr %98, align 8, !tbaa !412 %99 = getelementptr inbounds nuw i8, ptr %78, i64 24 diff --git a/bench/nlohmann_json/optimized/use_v3_10_5.ll b/bench/nlohmann_json/optimized/use_v3_10_5.ll index 9ddb757bbfb..5b11230dc9a 100644 --- a/bench/nlohmann_json/optimized/use_v3_10_5.ll +++ b/bench/nlohmann_json/optimized/use_v3_10_5.ll @@ -3698,10 +3698,6 @@ _ZN8nlohmann10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_trai .noexc4.thread.i.i: ; preds = %66 %76 = getelementptr inbounds nuw i8, ptr %69, i64 8 - %77 = getelementptr inbounds i8, ptr null, i64 %75 - %78 = getelementptr inbounds nuw i8, ptr %69, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %69, i8 0, i64 16, i1 false) - store ptr %77, ptr %78, align 8, !tbaa !147 br label %_ZN8nlohmann10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS_14adl_serializerES2_IhSaIhEEE10json_valueC2ERKNS_27byte_container_with_subtypeISB_EE.exit 79: ; preds = %66 @@ -3736,7 +3732,7 @@ _ZNSt10unique_ptrIN8nlohmann27byte_container_with_subtypeISt6vectorIhSaIhEEEEZNS br label %common.resume _ZN8nlohmann10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS_14adl_serializerES2_IhSaIhEEE10json_valueC2ERKNS_27byte_container_with_subtypeISB_EE.exit: ; preds = %.noexc4.thread.i.i, %82 - %87 = phi ptr [ %77, %.noexc4.thread.i.i ], [ %84, %82 ] + %87 = phi ptr [ null, %.noexc4.thread.i.i ], [ %84, %82 ] %88 = phi ptr [ %76, %.noexc4.thread.i.i ], [ %83, %82 ] store ptr %87, ptr %88, align 8, !tbaa !144 %89 = getelementptr inbounds nuw i8, ptr %69, i64 24 diff --git a/bench/node/optimized/libnode.Protocol.ll b/bench/node/optimized/libnode.Protocol.ll index ac9bc1efcce..e948a79b27f 100644 --- a/bench/node/optimized/libnode.Protocol.ll +++ b/bench/node/optimized/libnode.Protocol.ll @@ -1698,10 +1698,7 @@ entry: _ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.i.thread: ; preds = %entry %_M_finish.i.i.i.i3 = getelementptr inbounds nuw i8, ptr %call, i64 56 - %add.ptr.i.i.i.i4 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i - %_M_end_of_storage.i.i.i.i5 = getelementptr inbounds nuw i8, ptr %call, i64 64 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %m_serializedBinary.i, i8 0, i64 16, i1 false) - store ptr %add.ptr.i.i.i.i4, ptr %_M_end_of_storage.i.i.i.i5, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %m_serializedBinary.i, i8 0, i64 24, i1 false) br label %_ZNSt10unique_ptrIN4node9inspector8protocol15SerializedValueESt14default_deleteIS3_EED2Ev.exit cond.true.i.i.i.i.i: ; preds = %entry @@ -1724,7 +1721,7 @@ if.then.i.i.i.i.i.i.i.i.i.i: ; preds = %cond.true.i.i.i.i.i br label %_ZNSt10unique_ptrIN4node9inspector8protocol15SerializedValueESt14default_deleteIS3_EED2Ev.exit _ZNSt10unique_ptrIN4node9inspector8protocol15SerializedValueESt14default_deleteIS3_EED2Ev.exit: ; preds = %if.then.i.i.i.i.i.i.i.i.i.i, %_ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.i.thread - %add.ptr.i.i.i.i7 = phi ptr [ %add.ptr.i.i.i.i4, %_ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.i.thread ], [ %add.ptr.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ] + %add.ptr.i.i.i.i7 = phi ptr [ null, %_ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.i.thread ], [ %add.ptr.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ] %_M_finish.i.i.i.i6 = phi ptr [ %_M_finish.i.i.i.i3, %_ZNSt12_Vector_baseIhSaIhEEC2EmRKS0_.exit.i.i.thread ], [ %_M_finish.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ] store ptr %add.ptr.i.i.i.i7, ptr %_M_finish.i.i.i.i6, align 8 store ptr %call, ptr %agg.result, align 8 @@ -7385,12 +7382,13 @@ _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %if.end if.then.i.i.i.i.i.i.i.i.i.i: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i %call5.i.i.i.i.i = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %ii.0101) #30 + %add.ptr.i.i = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i.i, i64 %ii.0101 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i, ptr nonnull align 1 %latin1.coerce0, i64 %ii.0101, i1 false) br label %_ZNSt6vectorIhSaIhEEC2IPKhvEET_S5_RKS0_.exit _ZNSt6vectorIhSaIhEEC2IPKhvEET_S5_RKS0_.exit: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i, %if.then.i.i.i.i.i.i.i.i.i.i - %utf8.sroa.0.2 = phi ptr [ %call5.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ], [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ] - %utf8.sroa.24.2 = getelementptr inbounds nuw i8, ptr %utf8.sroa.0.2, i64 %ii.0101 + %utf8.sroa.0.2 = phi ptr [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ], [ %add.ptr.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ] + %utf8.sroa.0.2 = phi ptr [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ], [ %call5.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ] %cmp7102 = icmp ult i64 %ii.0101, %latin1.coerce1 br i1 %cmp7102, label %for.body8, label %for.end @@ -7669,12 +7667,13 @@ _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %if.end if.then.i.i.i.i.i.i.i.i.i.i: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i %call5.i.i.i.i.i = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %ii.095) #30 + %add.ptr.i.i = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i.i, i64 %ii.095 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i, ptr nonnull align 1 %latin1.coerce0, i64 %ii.095, i1 false) br label %_ZNSt6vectorIhSaIhEEC2IPKhvEET_S5_RKS0_.exit _ZNSt6vectorIhSaIhEEC2IPKhvEET_S5_RKS0_.exit: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i, %if.then.i.i.i.i.i.i.i.i.i.i - %utf8.sroa.0.2 = phi ptr [ %call5.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ], [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ] - %utf8.sroa.24.2 = getelementptr inbounds nuw i8, ptr %utf8.sroa.0.2, i64 %ii.095 + %utf8.sroa.0.2 = phi ptr [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ], [ %add.ptr.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ] + %utf8.sroa.0.2 = phi ptr [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ], [ %call5.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ] %cmp796 = icmp ult i64 %ii.095, %latin1.coerce1 br i1 %cmp796, label %for.body8, label %for.end diff --git a/bench/node/optimized/libnode.crypto_tls.ll b/bench/node/optimized/libnode.crypto_tls.ll index ff629a606f7..66dab207d61 100644 --- a/bench/node/optimized/libnode.crypto_tls.ll +++ b/bench/node/optimized/libnode.crypto_tls.ll @@ -8968,12 +8968,13 @@ _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %if.else if.then.i.i.i.i.i.i.i.i.i.i: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i %call5.i.i.i.i.i = call noalias noundef nonnull ptr @_Znwm(i64 noundef %25) #29 + %add.ptr.i.i25 = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i.i, i64 %25 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %call5.i.i.i.i.i, ptr align 1 %this.sink.i.i, i64 %25, i1 false) br label %_ZNSt6vectorIhSaIhEEC2IPKhvEET_S5_RKS0_.exit _ZNSt6vectorIhSaIhEEC2IPKhvEET_S5_RKS0_.exit: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i, %if.then.i.i.i.i.i.i.i.i.i.i - %ref.tmp53.sroa.0.0 = phi ptr [ %call5.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ], [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ] - %ref.tmp53.sroa.7.0 = getelementptr inbounds nuw i8, ptr %ref.tmp53.sroa.0.0, i64 %25 + %ref.tmp53.sroa.0.0 = phi ptr [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ], [ %call5.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i.i ] + %ref.tmp53.sroa.7.0 = phi ptr [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ], [ %add.ptr.i.i25, %if.then.i.i.i.i.i.i.i.i.i.i ] %alpn_protos_ = getelementptr inbounds nuw i8, ptr %retval.i11.0.i, i64 432 %26 = load ptr, ptr %alpn_protos_, align 8 %_M_finish.i.i.i.i = getelementptr inbounds nuw i8, ptr %retval.i11.0.i, i64 440 diff --git a/bench/node/optimized/libnode.histogram.ll b/bench/node/optimized/libnode.histogram.ll index b9c3898c42f..7e524680a3c 100644 --- a/bench/node/optimized/libnode.histogram.ll +++ b/bench/node/optimized/libnode.histogram.ll @@ -7764,12 +7764,9 @@ _ZNSt8functionIFvRN4node9HistogramEEED2Ev.exit: ; preds = %_ZN4node17BaseObjec ; Function Attrs: mustprogress nounwind uwtable define dso_local void @_ZN4node17IntervalHistogram7TimerCBEP10uv_timer_s(ptr noundef %handle) #3 align 2 { entry: - %0 = ptrtoint ptr %handle to i64 - %sub.i.i = add i64 %0, -144 - %1 = inttoptr i64 %sub.i.i to ptr - %_M_manager.i.i = getelementptr inbounds nuw i8, ptr %1, i64 128 - %2 = load ptr, ptr %_M_manager.i.i, align 8 - %tobool.not.i.i = icmp eq ptr %2, null + %_M_manager.i.i = getelementptr inbounds nuw i8, ptr %handle, i64 128 + %0 = load ptr, ptr %_M_manager.i.i, align 8 + %tobool.not.i.i = icmp eq ptr %0, null br i1 %tobool.not.i.i, label %if.then.i, label %_ZNKSt8functionIFvRN4node9HistogramEEEclES2_.exit if.then.i: ; preds = %entry @@ -7777,12 +7774,12 @@ if.then.i: ; preds = %entry unreachable _ZNKSt8functionIFvRN4node9HistogramEEEclES2_.exit: ; preds = %entry - %on_interval_ = getelementptr inbounds nuw i8, ptr %1, i64 112 - %add.ptr = getelementptr inbounds nuw i8, ptr %1, i64 88 + %on_interval_ = getelementptr inbounds nuw i8, ptr %handle, i64 112 + %add.ptr = getelementptr inbounds nuw i8, ptr %handle, i64 88 %3 = load ptr, ptr %add.ptr, align 8 - %_M_invoker.i = getelementptr inbounds nuw i8, ptr %1, i64 136 + %_M_invoker.i = getelementptr inbounds nuw i8, ptr %handle, i64 136 %4 = load ptr, ptr %_M_invoker.i, align 8 - tail call void %4(ptr noundef nonnull align 8 dereferenceable(32) %on_interval_, ptr noundef nonnull align 8 dereferenceable(80) %3) #16 + tail call void %2(ptr noundef nonnull align 8 dereferenceable(32) %on_interval_, ptr noundef nonnull align 8 dereferenceable(80) %3) #16 ret void } diff --git a/bench/node/optimized/libnode.node_contextify.ll b/bench/node/optimized/libnode.node_contextify.ll index 80165f4eae3..76e8f85f08f 100644 --- a/bench/node/optimized/libnode.node_contextify.ll +++ b/bench/node/optimized/libnode.node_contextify.ll @@ -4336,16 +4336,12 @@ if.end437: ; preds = %_ZNSt6vectorIN2v85L %sub.ptr.lhs.cast.i.i = ptrtoint ptr %params.sroa.6.0 to i64 %sub.ptr.rhs.cast.i.i = ptrtoint ptr %params.sroa.0.0 to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp439, i8 0, i64 24, i1 false) %cmp.not.i.i.i.i171 = icmp eq ptr %params.sroa.6.0, %params.sroa.0.0 br i1 %cmp.not.i.i.i.i171, label %_ZNSt12_Vector_baseIN2v85LocalINS0_6StringEEESaIS3_EEC2EmRKS4_.exit.i.thread, label %cond.true.i.i.i.i _ZNSt12_Vector_baseIN2v85LocalINS0_6StringEEESaIS3_EEC2EmRKS4_.exit.i.thread: ; preds = %if.end437 %_M_finish.i.i.i232 = getelementptr inbounds nuw i8, ptr %agg.tmp439, i64 8 - %add.ptr.i.i.i174233 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i - %_M_end_of_storage.i.i.i234 = getelementptr inbounds nuw i8, ptr %agg.tmp439, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp439, i8 0, i64 16, i1 false) - store ptr %add.ptr.i.i.i174233, ptr %_M_end_of_storage.i.i.i234, align 8 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp439, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIN2v85LocalINS0_6StringEEESaIS3_EEC2ERKS5_.exit cond.true.i.i.i.i: ; preds = %if.end437 @@ -4384,18 +4380,12 @@ _ZNSt6vectorIN2v85LocalINS0_6StringEEESaIS3_EEC2ERKS5_.exit: ; preds = %for.body %sub.ptr.lhs.cast.i.i177 = ptrtoint ptr %context_extensions.sroa.6.0 to i64 %sub.ptr.rhs.cast.i.i178 = ptrtoint ptr %context_extensions.sroa.0.0 to i64 %sub.ptr.sub.i.i179 = sub i64 %sub.ptr.lhs.cast.i.i177, %sub.ptr.rhs.cast.i.i178 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp440, i8 0, i64 24, i1 false) %cmp.not.i.i.i.i180 = icmp eq ptr %context_extensions.sroa.6.0, %context_extensions.sroa.0.0 br i1 %cmp.not.i.i.i.i180, label %_ZNSt6vectorIN2v85LocalINS0_6ObjectEEESaIS3_EEC2ERKS5_.exit.thread, label %cond.true.i.i.i.i181 _ZNSt6vectorIN2v85LocalINS0_6ObjectEEESaIS3_EEC2ERKS5_.exit.thread: ; preds = %_ZNSt6vectorIN2v85LocalINS0_6StringEEESaIS3_EEC2ERKS5_.exit - %_M_finish.i.i.i185237 = getelementptr inbounds nuw i8, ptr %agg.tmp440, i64 8 - %add.ptr.i.i.i186238 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i179 - %_M_end_of_storage.i.i.i187239 = getelementptr inbounds nuw i8, ptr %agg.tmp440, i64 16 - store i64 0, ptr %agg.tmp440, align 8 - store ptr %add.ptr.i.i.i186238, ptr %_M_end_of_storage.i.i.i187239, align 8 - store ptr null, ptr %_M_finish.i.i.i185237, align 8 %coerce.val.pi448295 = ptrtoint ptr %retval.i.sroa.0.0 to i64 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp440, i8 0, i64 24, i1 false) %call449296 = call ptr @_ZN4node10contextify17ContextifyContext29CompileFunctionAndCacheResultEPNS_11EnvironmentEN2v85LocalINS4_7ContextEEEPNS4_14ScriptCompiler6SourceESt6vectorINS5_INS4_6StringEEESaISD_EESB_INS5_INS4_6ObjectEEESaISH_EENS8_14CompileOptionsEbNS5_INS4_6SymbolEEERKNS_6errors13TryCatchScopeE(ptr noundef nonnull %retval.0.i.i, ptr nonnull %parsing_context.sroa.0.0, ptr noundef nonnull %source, ptr noundef nonnull %agg.tmp439, ptr noundef nonnull %agg.tmp440, i32 noundef %..i, i1 noundef zeroext %call163, i64 %coerce.val.pi448295, ptr noundef nonnull align 8 dereferenceable(60) %try_catch) br label %_ZNSt6vectorIN2v85LocalINS0_6ObjectEEESaIS3_EED2Ev.exit diff --git a/bench/node/optimized/libnode.node_messaging.ll b/bench/node/optimized/libnode.node_messaging.ll index 26af7855b12..466f0014831 100644 --- a/bench/node/optimized/libnode.node_messaging.ll +++ b/bench/node/optimized/libnode.node_messaging.ll @@ -13966,12 +13966,9 @@ _ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKN4node17BaseObject declare void @_ZN4node9AsyncWrapD2Ev(ptr noundef nonnull align 8 dereferenceable(56)) unnamed_addr #1 ; Function Attrs: mustprogress nounwind uwtable -define internal void @"_ZZN4node6worker11MessagePortC1EPNS_11EnvironmentEN2v85LocalINS4_7ContextEEENS5_INS4_6ObjectEEEEN3$_08__invokeEP10uv_async_s"(ptr noundef %handle) #6 align 2 { +define internal void @"_ZZN4node6worker11MessagePortC1EPNS_11EnvironmentEN2v85LocalINS4_7ContextEEENS5_INS4_6ObjectEEEEN3$_08__invokeEP10uv_async_s"(ptr noundef nonnull %handle) #6 align 2 { entry: - %0 = ptrtoint ptr %handle to i64 - %sub.i.i.i = add i64 %0, -104 - %1 = inttoptr i64 %sub.i.i.i to ptr - tail call void @_ZN4node6worker11MessagePort9OnMessageENS1_21MessageProcessingModeE(ptr noundef nonnull align 8 dereferenceable(240) %1, i32 noundef 0) + tail call void @_ZN4node6worker11MessagePort9OnMessageENS1_21MessageProcessingModeE(ptr noundef nonnull align 8 dereferenceable(240) %handle, i32 noundef 0) ret void } diff --git a/bench/node/optimized/libnode.node_trace_buffer.ll b/bench/node/optimized/libnode.node_trace_buffer.ll index e0332d3b605..99de463877c 100644 --- a/bench/node/optimized/libnode.node_trace_buffer.ll +++ b/bench/node/optimized/libnode.node_trace_buffer.ll @@ -772,10 +772,7 @@ declare void @abort() local_unnamed_addr #4 ; Function Attrs: mustprogress nounwind uwtable define dso_local void @_ZN4node7tracing15NodeTraceBuffer12ExitSignalCbEP10uv_async_s(ptr noundef %signal) #0 align 2 { entry: - %0 = ptrtoint ptr %signal to i64 - %sub.i.i = add i64 %0, -144 - %1 = inttoptr i64 %sub.i.i to ptr - %flush_signal_ = getelementptr inbounds nuw i8, ptr %1, i64 16 + %flush_signal_ = getelementptr inbounds nuw i8, ptr %signal, i64 16 tail call void @uv_close(ptr noundef nonnull %flush_signal_, ptr noundef nonnull @"_ZZN4node7tracing15NodeTraceBuffer12ExitSignalCbEP10uv_async_sEN3$_08__invokeEP11uv_handle_s") #13 ret void } @@ -1246,10 +1243,7 @@ declare void @_ZN2v88platform7tracing11TraceObjectD1Ev(ptr noundef nonnull align ; Function Attrs: mustprogress nounwind uwtable define internal void @"_ZZN4node7tracing15NodeTraceBuffer12ExitSignalCbEP10uv_async_sEN3$_08__invokeEP11uv_handle_s"(ptr noundef %signal) #0 align 2 { entry: - %0 = ptrtoint ptr %signal to i64 - %sub.i.i.i = add i64 %0, -16 - %1 = inttoptr i64 %sub.i.i.i to ptr - %exit_signal_.i = getelementptr inbounds nuw i8, ptr %1, i64 144 + %exit_signal_.i = getelementptr inbounds nuw i8, ptr %signal, i64 144 tail call void @uv_close(ptr noundef nonnull %exit_signal_.i, ptr noundef nonnull @"_ZZZN4node7tracing15NodeTraceBuffer12ExitSignalCbEP10uv_async_sENK3$_0clEP11uv_handle_sENUlS6_E_8__invokeES6_") #13 ret void } @@ -1257,14 +1251,11 @@ entry: ; Function Attrs: mustprogress nounwind uwtable define internal void @"_ZZZN4node7tracing15NodeTraceBuffer12ExitSignalCbEP10uv_async_sENK3$_0clEP11uv_handle_sENUlS6_E_8__invokeES6_"(ptr noundef %signal) #0 align 2 { entry: - %0 = ptrtoint ptr %signal to i64 - %sub.i.i.i = add i64 %0, -144 - %1 = inttoptr i64 %sub.i.i.i to ptr - %exit_mutex_.i = getelementptr inbounds nuw i8, ptr %1, i64 280 + %exit_mutex_.i = getelementptr inbounds nuw i8, ptr %signal, i64 280 tail call void @uv_mutex_lock(ptr noundef nonnull align 8 dereferenceable(40) %exit_mutex_.i) #13 - %exited_.i = getelementptr inbounds nuw i8, ptr %1, i64 272 + %exited_.i = getelementptr inbounds nuw i8, ptr %signal, i64 272 store i8 1, ptr %exited_.i, align 8 - %exit_cond_.i = getelementptr inbounds nuw i8, ptr %1, i64 320 + %exit_cond_.i = getelementptr inbounds nuw i8, ptr %signal, i64 320 tail call void @uv_cond_signal(ptr noundef nonnull align 8 dereferenceable(48) %exit_cond_.i) #13 tail call void @uv_mutex_unlock(ptr noundef nonnull %exit_mutex_.i) #13 ret void diff --git a/bench/ocio/optimized/NoOps.ll b/bench/ocio/optimized/NoOps.ll index bf8e21a68db..28cbf1abadb 100644 --- a/bench/ocio/optimized/NoOps.ll +++ b/bench/ocio/optimized/NoOps.ll @@ -420,11 +420,8 @@ define internal fastcc void @_ZSt11make_sharedIN19OpenColorIO_v2_5dev12_GLOBAL__ .noexc7.i.i.i.i.thread.i.i.i: ; preds = %2 %18 = getelementptr inbounds nuw i8, ptr %3, i64 56 - %19 = getelementptr inbounds i8, ptr null, i64 %17 - %20 = getelementptr inbounds nuw i8, ptr %3, i64 64 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %10, i8 0, i64 16, i1 false) - store ptr %19, ptr %20, align 8, !tbaa !34 - br label %28 + %19 = getelementptr inbounds nuw i8, ptr %3, i64 64 + br label %27 21: ; preds = %2 %22 = icmp ugt i64 %17, 9223372036854775804 @@ -452,8 +449,8 @@ _ZNSt16allocator_traitsISaIfEE8allocateERS0_m.exit.i.i.i.i.i.i.i.i.i.i.i.i: ; pr br label %28 28: ; preds = %24, %.noexc7.i.i.i.i.thread.i.i.i - %29 = phi ptr [ %20, %.noexc7.i.i.i.i.thread.i.i.i ], [ %27, %24 ] - %30 = phi ptr [ %19, %.noexc7.i.i.i.i.thread.i.i.i ], [ %26, %24 ] + %29 = phi ptr [ %19, %.noexc7.i.i.i.i.thread.i.i.i ], [ %27, %24 ] + %30 = phi ptr [ null, %.noexc7.i.i.i.i.thread.i.i.i ], [ %26, %24 ] %31 = phi ptr [ %18, %.noexc7.i.i.i.i.thread.i.i.i ], [ %25, %24 ] store ptr %30, ptr %31, align 8, !tbaa !32 %32 = invoke noalias noundef nonnull dereferenceable(168) ptr @_Znwm(i64 noundef 168) #27 @@ -476,30 +473,30 @@ _ZNSt16allocator_traitsISaIfEE8allocateERS0_m.exit.i.i.i.i.i.i.i.i.i.i.i.i: ; pr 37: ; preds = %34, %28 %38 = landingpad { ptr, i32 } cleanup - br label %41 + br label %40 39: ; preds = %33 %40 = landingpad { ptr, i32 } cleanup tail call void @_ZdlPvm(ptr noundef nonnull %32, i64 noundef 168) #29 - br label %41 - -41: ; preds = %39, %37 - %.pn.i.i.i.i.i.i.i = phi { ptr, i32 } [ %38, %37 ], [ %40, %39 ] - %42 = load ptr, ptr %10, align 8, !tbaa !33 - %.not.i.i.i.i.i.i.i.i.i.i.i = icmp eq ptr %42, null - br i1 %.not.i.i.i.i.i.i.i.i.i.i.i, label %_ZN19OpenColorIO_v2_5dev14AllocationDataD2Ev.exit.i.i.i.i.i.i.i, label %43 + br label %40 -43: ; preds = %41 - %44 = load ptr, ptr %29, align 8, !tbaa !34 - %45 = ptrtoint ptr %44 to i64 - %46 = ptrtoint ptr %42 to i64 - %47 = sub i64 %45, %46 - tail call void @_ZdlPvm(ptr noundef nonnull %42, i64 noundef %47) #29 +43: ; preds = %38, %36 + %.pn.i.i.i.i.i.i.i = phi { ptr, i32 } [ %37, %36 ], [ %40, %38 ] + %41 = load ptr, ptr %10, align 8, !tbaa !34 + %.not.i.i.i.i.i.i.i.i.i.i.i = icmp eq ptr %41, null + br i1 %.not.i.i.i.i.i.i.i.i.i.i.i, label %_ZN19OpenColorIO_v2_5dev14AllocationDataD2Ev.exit.i.i.i.i.i.i.i, label %42 + +42: ; preds = %40 + %43 = load ptr, ptr %28, align 8, !tbaa !34 + %44 = ptrtoint ptr %43 to i64 + %45 = ptrtoint ptr %41 to i64 + %46 = sub i64 %44, %45 + tail call void @_ZdlPvm(ptr noundef nonnull %41, i64 noundef %46) #29 br label %_ZN19OpenColorIO_v2_5dev14AllocationDataD2Ev.exit.i.i.i.i.i.i.i -_ZN19OpenColorIO_v2_5dev14AllocationDataD2Ev.exit.i.i.i.i.i.i.i: ; preds = %43, %41, %35 - %.pn.pn.i.i.i.i.i.i.i = phi { ptr, i32 } [ %36, %35 ], [ %.pn.i.i.i.i.i.i.i, %41 ], [ %.pn.i.i.i.i.i.i.i, %43 ] +_ZN19OpenColorIO_v2_5dev14AllocationDataD2Ev.exit.i.i.i.i.i.i.i: ; preds = %42, %40, %35 + %.pn.pn.i.i.i.i.i.i.i = phi { ptr, i32 } [ %36, %35 ], [ %.pn.i.i.i.i.i.i.i, %40 ], [ %.pn.i.i.i.i.i.i.i, %42 ] tail call void @_ZN19OpenColorIO_v2_5dev2OpD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %6) #26 tail call void @_ZdlPvm(ptr noundef nonnull %3, i64 noundef 72) #29 resume { ptr, i32 } %.pn.pn.i.i.i.i.i.i.i diff --git a/bench/opencv/optimized/block_mean_hash.ll b/bench/opencv/optimized/block_mean_hash.ll index 07f5d050d4c..ca0a4fbf226 100644 --- a/bench/opencv/optimized/block_mean_hash.ll +++ b/bench/opencv/optimized/block_mean_hash.ll @@ -561,10 +561,9 @@ _ZN12_GLOBAL__N_112getLocalImplEPN2cv8img_hash11ImgHashBase11ImgHashImplE.exit: .thread: ; preds = %_ZN12_GLOBAL__N_112getLocalImplEPN2cv8img_hash11ImgHashBase11ImgHashImplE.exit %24 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %25 = getelementptr inbounds i8, ptr null, i64 %23 - %26 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %25 = getelementptr inbounds nuw i8, ptr %0, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %25, ptr %26, align 8, !tbaa !54 + store ptr null, ptr %25, align 8, !tbaa !54 br label %_ZNSt6vectorIdSaIdEEC2ERKS1_.exit 27: ; preds = %_ZN12_GLOBAL__N_112getLocalImplEPN2cv8img_hash11ImgHashBase11ImgHashImplE.exit @@ -587,7 +586,7 @@ _ZN12_GLOBAL__N_112getLocalImplEPN2cv8img_hash11ImgHashBase11ImgHashImplE.exit: br label %_ZNSt6vectorIdSaIdEEC2ERKS1_.exit _ZNSt6vectorIdSaIdEEC2ERKS1_.exit: ; preds = %.thread, %29 - %34 = phi ptr [ %25, %.thread ], [ %32, %29 ] + %34 = phi ptr [ null, %.thread ], [ %32, %29 ] %35 = phi ptr [ %24, %.thread ], [ %31, %29 ] store ptr %34, ptr %35, align 8, !tbaa !52 ret void diff --git a/bench/opencv/optimized/objectnessBING.ll b/bench/opencv/optimized/objectnessBING.ll index aa88471d096..51602f63c5e 100644 --- a/bench/opencv/optimized/objectnessBING.ll +++ b/bench/opencv/optimized/objectnessBING.ll @@ -7880,7 +7880,7 @@ declare void @_ZNK2cv3Mat6copyToERKNS_12_OutputArrayE(ptr noundef nonnull align declare void @_ZN2cv11FileStorageD1Ev(ptr noundef nonnull align 8 dereferenceable(64)) unnamed_addr #1 ; Function Attrs: mustprogress uwtable -define void @_ZN2cv8saliency14ObjectnessBING19getobjectnessValuesEv(ptr dead_on_unwind noalias writable writeonly sret(%"class.std::vector.3") align 8 captures(none) initializes((0, 24)) %0, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(464) %1) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { +define void @_ZN2cv8saliency14ObjectnessBING19getobjectnessValuesEv(ptr dead_on_unwind noalias writable writeonly sret(%"class.std::vector.3") align 8 captures(none) initializes((8, 16)) %0, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(464) %1) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { %3 = getelementptr inbounds nuw i8, ptr %1, i64 440 %4 = getelementptr inbounds nuw i8, ptr %1, i64 448 %5 = load ptr, ptr %4, align 8, !tbaa !291 @@ -7888,15 +7888,13 @@ define void @_ZN2cv8saliency14ObjectnessBING19getobjectnessValuesEv(ptr dead_on_ %7 = ptrtoint ptr %5 to i64 %8 = ptrtoint ptr %6 to i64 %9 = sub i64 %7, %8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) + %10 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 0, ptr %10, align 8 %.not.i.i.i.i = icmp eq ptr %5, %6 br i1 %.not.i.i.i.i, label %.thread, label %12 .thread: ; preds = %2 - %10 = getelementptr inbounds i8, ptr null, i64 %9 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %10, ptr %11, align 8, !tbaa !292 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIfSaIfEEC2ERKS1_.exit 12: ; preds = %2 @@ -7917,7 +7915,7 @@ define void @_ZN2cv8saliency14ObjectnessBING19getobjectnessValuesEv(ptr dead_on_ br label %_ZNSt6vectorIfSaIfEEC2ERKS1_.exit _ZNSt6vectorIfSaIfEEC2ERKS1_.exit: ; preds = %.thread, %14 - %18 = phi ptr [ %10, %.thread ], [ %16, %14 ] + %18 = phi ptr [ null, %.thread ], [ %16, %14 ] %19 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %18, ptr %19, align 8, !tbaa !291 ret void diff --git a/bench/opencv/optimized/pct_sampler.ll b/bench/opencv/optimized/pct_sampler.ll index 608624ff5d9..dc18ad4692c 100644 --- a/bench/opencv/optimized/pct_sampler.ll +++ b/bench/opencv/optimized/pct_sampler.ll @@ -1158,15 +1158,13 @@ define linkonce_odr hidden void @_ZNK2cv11xfeatures2d14pct_signatures15PCTSample %7 = ptrtoint ptr %5 to i64 %8 = ptrtoint ptr %6 to i64 %9 = sub i64 %7, %8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) + %10 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 0, ptr %10, align 8 %.not.i.i.i.i = icmp eq ptr %5, %6 br i1 %.not.i.i.i.i, label %.thread, label %12 .thread: ; preds = %2 - %10 = getelementptr inbounds nuw i8, ptr null, i64 %9 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %10, ptr %11, align 8, !tbaa !35 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIN2cv6Point_IfEESaIS2_EEC2ERKS4_.exit 12: ; preds = %2 diff --git a/bench/openjdk/optimized/os_linux.ll b/bench/openjdk/optimized/os_linux.ll index d96bed93268..ea85589062a 100644 --- a/bench/openjdk/optimized/os_linux.ll +++ b/bench/openjdk/optimized/os_linux.ll @@ -7046,7 +7046,7 @@ define hidden noundef ptr @_ZN2os17pd_reserve_memoryEmb(i64 noundef %0, i1 nound 9: ; preds = %5 %10 = tail call noundef ptr @_ZN2os8strerrorEi(i32 noundef %7) #26 - tail call void (ptr, ...) @_ZN7LogImplILN6LogTag4typeE105ELS1_78ELS1_0ELS1_0ELS1_0ELS1_0EE5writeILN8LogLevel4typeE1EEEvPKcz(ptr noundef nonnull @.str.185, i64 noundef 0, i64 noundef %0, i64 noundef %0, ptr noundef %10) + tail call void (ptr, ...) @_ZN7LogImplILN6LogTag4typeE105ELS1_78ELS1_0ELS1_0ELS1_0ELS1_0EE5writeILN8LogLevel4typeE1EEEvPKcz(ptr noundef nonnull @.str.185, i64 noundef 0, i64 noundef 0, i64 noundef %0, ptr noundef %10) br label %11 11: ; preds = %9, %5 diff --git a/bench/openspiel/optimized/cfr_br_test.ll b/bench/openspiel/optimized/cfr_br_test.ll index 8db22ecac44..e71da0d9bdc 100644 --- a/bench/openspiel/optimized/cfr_br_test.ll +++ b/bench/openspiel/optimized/cfr_br_test.ll @@ -4733,10 +4733,9 @@ define linkonce_odr dso_local void @_ZNK10open_spiel13TabularPolicy14GetStatePol br i1 %.not.i.i.i.i, label %.thread, label %18 .thread: ; preds = %8 - %16 = getelementptr inbounds i8, ptr null, i64 %15 - %17 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %16 = getelementptr inbounds nuw i8, ptr %0, i64 16 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %16, ptr %17, align 8 + store ptr null, ptr %16, align 8 br label %_ZNSt6vectorISt4pairIldESaIS1_EEC2ERKS3_.exit 18: ; preds = %8 diff --git a/bench/openusd/optimized/patchMap.ll b/bench/openusd/optimized/patchMap.ll index d1311bc3361..6ab14d4e4eb 100644 --- a/bench/openusd/optimized/patchMap.ll +++ b/bench/openusd/optimized/patchMap.ll @@ -770,19 +770,23 @@ _ZN10OpenSubdiv6v3_6_03Far8PatchMap14assignRootNodeEPNS2_8QuadNodeEi.exit: ; pre %.not.i.i.i.i.i67 = icmp eq ptr %259, %250 br i1 %.not.i.i.i.i.i67, label %_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EEC2ERKS6_.exit, label %.lr.ph.i.i.i.i.i66, !llvm.loop !25 -_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EEC2ERKS6_.exit: ; preds = %.lr.ph.i.i.i.i.i66, %._crit_edge - %261 = phi ptr [ null, %._crit_edge ], [ %258, %.lr.ph.i.i.i.i.i66 ] - %.0.lcssa.i.i.i.i.i = phi ptr [ null, %._crit_edge ], [ %260, %.lr.ph.i.i.i.i.i66 ] - %262 = getelementptr inbounds i8, ptr %261, i64 %254 - %263 = load ptr, ptr %24, align 8 - store ptr %261, ptr %18, align 8 +_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EEC2ERKS6_.exit: ; preds = %.lr.ph.i.i.i.i.i66 + %261 = getelementptr inbounds nuw i8, ptr %258, i64 %254 + br label %_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EEC2ERKS6_.exit + +_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EEC2ERKS6_.exit:; preds = %_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EEC2ERKS6_.exit, %._crit_edge + %262 = phi ptr [ null, %._crit_edge ], [ %261, %_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EEC2ERKS6_.exit ] + %263 = phi ptr [ null, %._crit_edge ], [ %258, %_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EEC2ERKS6_.exit.loopexit ] + %.0.lcssa.i.i.i.i.i = phi ptr [ null, %._crit_edge ], [ %260, %_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EEC2ERKS6_.exit.loopexit ] + %264 = load ptr, ptr %24, align 8 + store ptr %263, ptr %18, align 8 store ptr %.0.lcssa.i.i.i.i.i, ptr %46, align 8 store ptr %262, ptr %24, align 8 %.not.i.i.i68 = icmp eq ptr %251, null br i1 %.not.i.i.i68, label %_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EED2Ev.exit, label %264 264: ; preds = %_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EEC2ERKS6_.exit - %265 = ptrtoint ptr %263 to i64 + %265 = ptrtoint ptr %264 to i64 %266 = sub i64 %265, %253 tail call void @_ZdlPvm(ptr noundef nonnull %251, i64 noundef %266) #12 br label %_ZNSt6vectorIN10OpenSubdiv6v3_6_03Far8PatchMap8QuadNodeESaIS4_EED2Ev.exit diff --git a/bench/openusd/optimized/textureUtils.ll b/bench/openusd/optimized/textureUtils.ll index 4170f7fc38c..53dfe61f75e 100644 --- a/bench/openusd/optimized/textureUtils.ll +++ b/bench/openusd/optimized/textureUtils.ll @@ -512,11 +512,9 @@ _ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EE17 br i1 %.not.i.i.i, label %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit.thread, label %.lr.ph.i.i.i.i.preheader.i.i _ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit.thread: ; preds = %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i - %.sroa.11.020 = getelementptr inbounds nuw i8, ptr null, i64 %7 %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 %11 = load ptr, ptr %10, align 8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %.sroa.11.020, ptr %10, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZSt8_DestroyIPSt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEES3_EvT_S5_RSaIT0_E.exit.i .lr.ph.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EE17_S_check_init_lenEmRKS4_.exit.i.i @@ -547,14 +545,14 @@ _ZNSt12_Vector_baseISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaI to label %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EED2Ev.exit unwind label %37 _ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit: ; preds = %.lr.ph.i.i.i.i.i.i + %21 = getelementptr inbounds nuw i8, ptr %12, i64 %7 %.pre = load ptr, ptr %0, align 8 %.pre17 = load ptr, ptr %3, align 8 - %.sroa.11.0 = getelementptr inbounds nuw i8, ptr %12, i64 %7 - %21 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %22 = load ptr, ptr %21, align 8 + %.sroa.11.0 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %23 = load ptr, ptr %22, align 8 store ptr %12, ptr %0, align 8 store ptr %18, ptr %3, align 8 - store ptr %.sroa.11.0, ptr %21, align 8 + store ptr %21, ptr %22, align 8 %.not4.i.i.i.i = icmp eq ptr %.pre, %.pre17 br i1 %.not4.i.i.i.i, label %_ZSt8_DestroyIPSt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEES3_EvT_S5_RSaIT0_E.exit.i, label %.lr.ph.i.i.i.i @@ -578,16 +576,16 @@ _ZSt8_DestroyISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEEEvPT_.exi br i1 %.not.i.i.i.i, label %_ZSt8_DestroyIPSt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEES3_EvT_S5_RSaIT0_E.exit.i, label %.lr.ph.i.i.i.i, !llvm.loop !6 _ZSt8_DestroyIPSt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEES3_EvT_S5_RSaIT0_E.exit.i: ; preds = %_ZSt8_DestroyISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEEEvPT_.exit.i.i.i.i, %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit.thread, %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit - %31 = phi ptr [ %11, %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit.thread ], [ %22, %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit ], [ %22, %_ZSt8_DestroyISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEEEvPT_.exit.i.i.i.i ] + %31 = phi ptr [ %11, %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit.thread ], [ %23, %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit ], [ %23, %_ZSt8_DestroyISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEEEvPT_.exit.i.i.i.i ] %32 = phi ptr [ %2, %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit.thread ], [ %.pre, %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS3_S5_EEEvEET_SD_RKS4_.exit ], [ %.pre, %_ZSt8_DestroyISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEEEvPT_.exit.i.i.i.i ] %.not.i.i.i10 = icmp eq ptr %32, null br i1 %.not.i.i.i10, label %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EED2Ev.exit, label %33 33: ; preds = %_ZSt8_DestroyIPSt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEES3_EvT_S5_RSaIT0_E.exit.i - %34 = ptrtoint ptr %31 to i64 %35 = ptrtoint ptr %32 to i64 - %36 = sub i64 %34, %35 - tail call void @_ZdlPvm(ptr noundef nonnull %32, i64 noundef %36) #16 + %36 = ptrtoint ptr %33 to i64 + %37 = sub i64 %35, %36 + tail call void @_ZdlPvm(ptr noundef nonnull %33, i64 noundef %37) #16 br label %_ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EED2Ev.exit _ZNSt6vectorISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EED2Ev.exit: ; preds = %33, %_ZSt8_DestroyIPSt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEES3_EvT_S5_RSaIT0_E.exit.i, %_ZNSt12_Vector_baseISt5tupleIJiN32pxrInternal_v0_24__pxrReserved__7TfTokenEEESaIS3_EED2Ev.exit.i diff --git a/bench/openusd/optimized/valueTypeRegistry.ll b/bench/openusd/optimized/valueTypeRegistry.ll index ebb21ed255a..e0bf378997c 100644 --- a/bench/openusd/optimized/valueTypeRegistry.ll +++ b/bench/openusd/optimized/valueTypeRegistry.ll @@ -553,10 +553,6 @@ _ZN3tbb6detail2d114rw_scoped_lockINS1_13spin_rw_mutexEEC2ERS3_b.exit.i: ; preds .noexc2.thread.i: ; preds = %_ZN3tbb6detail2d114rw_scoped_lockINS1_13spin_rw_mutexEEC2ERS3_b.exit.i %27 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %28 = getelementptr inbounds i8, ptr null, i64 %26 - %29 = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false), !alias.scope !7 - store ptr %28, ptr %29, align 8, !alias.scope !7 br label %_ZNK32pxrInternal_v0_24__pxrReserved__12_GLOBAL__N_18Registry11GetAllTypesEv.exit 30: ; preds = %_ZN3tbb6detail2d114rw_scoped_lockINS1_13spin_rw_mutexEEC2ERS3_b.exit.i @@ -577,10 +573,10 @@ _ZNSt16allocator_traitsISaIN32pxrInternal_v0_24__pxrReserved__16SdfValueTypeName .noexc2.i: ; preds = %_ZNSt16allocator_traitsISaIN32pxrInternal_v0_24__pxrReserved__16SdfValueTypeNameEEE8allocateERS2_m.exit.i.i.i.i.i store ptr %32, ptr %0, align 8, !alias.scope !7 %33 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %30, ptr %31, align 8, !alias.scope !7 + %32 = getelementptr inbounds nuw i8, ptr %30, i64 %26 + %33 = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr %32, ptr %33, align 8, !alias.scope !7 - %34 = getelementptr inbounds nuw i8, ptr %32, i64 %26 - %35 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %34, ptr %35, align 8, !alias.scope !7 br label %.lr.ph.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %.noexc2.i diff --git a/bench/openvdb/optimized/Archive.ll b/bench/openvdb/optimized/Archive.ll index fda2ce92a49..327399b8730 100644 --- a/bench/openvdb/optimized/Archive.ll +++ b/bench/openvdb/optimized/Archive.ll @@ -13085,13 +13085,7 @@ if.then.i.i.i: ; preds = %entry _ZNSt6vectorISt10shared_ptrIKN7openvdb5v11_08GridBaseEESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i.i: ; preds = %entry %cmp.not.i.i.i = icmp eq ptr %1, %0 - br i1 %cmp.not.i.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIKN7openvdb5v11_08GridBaseEESaIS5_EE11_M_allocateEm.exit.thread.i.i, label %for.body.i.i.i.i.preheader.i.i - -_ZNSt12_Vector_baseISt10shared_ptrIKN7openvdb5v11_08GridBaseEESaIS5_EE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIKN7openvdb5v11_08GridBaseEESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i.i - %add.ptr3.i.i = getelementptr inbounds nuw i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i - %_M_end_of_storage4.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 16 - store ptr %add.ptr3.i.i, ptr %_M_end_of_storage4.i.i, align 8 - br label %invoke.cont + br i1 %cmp.not.i.i.i, label %invoke.cont, label %for.body.i.i.i.i.preheader.i.i for.body.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIKN7openvdb5v11_08GridBaseEESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i.i %call5.i.i.i.i1.i = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %sub.ptr.sub.i.i.i.i.i) #38 @@ -13135,8 +13129,8 @@ _ZSt10_ConstructISt10shared_ptrIKN7openvdb5v11_08GridBaseEEJRKS0_IS3_EEEvPT_DpOT %cmp.i.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i.i, %1 br i1 %cmp.i.not.i.i.i.i.i.i, label %invoke.cont, label %for.body.i.i.i.i.i.i, !llvm.loop !57 -invoke.cont: ; preds = %_ZSt10_ConstructISt10shared_ptrIKN7openvdb5v11_08GridBaseEEJRKS0_IS3_EEEvPT_DpOT0_.exit.i.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIKN7openvdb5v11_08GridBaseEESaIS5_EE11_M_allocateEm.exit.thread.i.i - %7 = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIKN7openvdb5v11_08GridBaseEESaIS5_EE11_M_allocateEm.exit.thread.i.i ], [ %incdec.ptr.i.i.i.i.i.i, %_ZSt10_ConstructISt10shared_ptrIKN7openvdb5v11_08GridBaseEEJRKS0_IS3_EEEvPT_DpOT0_.exit.i.i.i.i.i.i ] +invoke.cont: ; preds = %_ZSt10_ConstructISt10shared_ptrIKN7openvdb5v11_08GridBaseEEJRKS0_IS3_EEEvPT_DpOT0_.exit.i.i.i.i.i.i, %_ZNSt6vectorISt10shared_ptrIKN7openvdb5v11_08GridBaseEESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i.i + %7 = phi ptr [ null, %_ZNSt6vectorISt10shared_ptrIKN7openvdb5v11_08GridBaseEESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i.i ], [ %incdec.ptr.i.i.i.i.i.i, %_ZSt10_ConstructISt10shared_ptrIKN7openvdb5v11_08GridBaseEEJRKS0_IS3_EEEvPT_DpOT0_.exit.i.i.i.i.i.i ] %_M_finish.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 8 store ptr %7, ptr %_M_finish.i.i, align 8 invoke void @_ZNK7openvdb5v11_02io7Archive5writeERSoRKSt6vectorISt10shared_ptrIKNS0_8GridBaseEESaIS8_EEbRKNS0_7MetaMapE(ptr noundef nonnull align 8 dereferenceable(65) %this, ptr noundef nonnull align 8 dereferenceable(8) %os, ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp, i1 noundef zeroext %seekable, ptr noundef nonnull align 8 dereferenceable(56) %metadata) diff --git a/bench/openvdb/optimized/Queue.ll b/bench/openvdb/optimized/Queue.ll index d92fb253a50..599f5b5f5b1 100644 --- a/bench/openvdb/optimized/Queue.ll +++ b/bench/openvdb/optimized/Queue.ll @@ -981,10 +981,6 @@ entry: invoke.cont.i.i.thread: ; preds = %entry %_M_finish.i.i.i.i11 = getelementptr inbounds nuw i8, ptr %task, i64 56 - %add.ptr.i.i.i.i12 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i - %_M_end_of_storage.i.i.i.i13 = getelementptr inbounds nuw i8, ptr %task, i64 64 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %mGrids.i, i8 0, i64 16, i1 false) - store ptr %add.ptr.i.i.i.i12, ptr %_M_end_of_storage.i.i.i.i13, align 8 br label %invoke.cont.i cond.true.i.i.i.i.i: ; preds = %entry diff --git a/bench/ozz-animation/optimized/gltf2ozz.ll b/bench/ozz-animation/optimized/gltf2ozz.ll index 31f70340cd5..fb38285d0e3 100644 --- a/bench/ozz-animation/optimized/gltf2ozz.ll +++ b/bench/ozz-animation/optimized/gltf2ozz.ll @@ -63030,11 +63030,7 @@ _ZNSt10unique_ptrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEZN8nlohman .noexc4.thread.i.i: ; preds = %.noexc15 %85 = getelementptr inbounds nuw i8, ptr %78, i64 8 - %86 = getelementptr inbounds i8, ptr null, i64 %84 - %87 = getelementptr inbounds nuw i8, ptr %78, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %78, i8 0, i64 16, i1 false) - store ptr %86, ptr %87, align 8, !tbaa !342 - br label %96 + br label %94 88: ; preds = %.noexc15 %89 = icmp slt i64 %84, 0 @@ -63068,7 +63064,7 @@ _ZNSt10unique_ptrIN8nlohmann16json_abi_v3_11_327byte_container_with_subtypeISt6v br label %.body18 96: ; preds = %91, %.noexc4.thread.i.i - %97 = phi ptr [ %86, %.noexc4.thread.i.i ], [ %93, %91 ] + %97 = phi ptr [ null, %.noexc4.thread.i.i ], [ %93, %91 ] %98 = phi ptr [ %85, %.noexc4.thread.i.i ], [ %92, %91 ] store ptr %97, ptr %98, align 8, !tbaa !76 %99 = getelementptr inbounds nuw i8, ptr %78, i64 24 @@ -86514,9 +86510,8 @@ _ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic _ZNSt12_Vector_baseIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS1_14adl_serializerES4_IhSaIhEEvEESaISE_EE11_M_allocateEm.exit.thread: ; preds = %_ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS1_14adl_serializerES_IhSaIhEEvEESaISD_EE17_S_check_init_lenEmRKSE_.exit store ptr null, ptr %0, align 8, !tbaa !448 - %11 = getelementptr inbounds nuw %"class.nlohmann::json_abi_v3_11_3::basic_json", ptr null, i64 %8 - %12 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %11, ptr %12, align 8, !tbaa !1618 + %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr null, ptr %11, align 8, !tbaa !1618 br label %_ZSt22__uninitialized_copy_aIPKN8nlohmann16json_abi_v3_11_36detail8json_refINS1_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS1_14adl_serializerES6_IhSaIhEEvEEEEPSG_SG_ET0_T_SM_SL_RSaIT1_E.exit .lr.ph.i.i.i.i.preheader: ; preds = %_ZNSt6vectorIN8nlohmann16json_abi_v3_11_310basic_jsonISt3mapS_NSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS1_14adl_serializerES_IhSaIhEEvEESaISD_EE17_S_check_init_lenEmRKSE_.exit diff --git a/bench/pbrt-v4/optimized/lights.ll b/bench/pbrt-v4/optimized/lights.ll index 24c88815861..9213460a278 100644 --- a/bench/pbrt-v4/optimized/lights.ll +++ b/bench/pbrt-v4/optimized/lights.ll @@ -113932,16 +113932,12 @@ define linkonce_odr dso_local void @_ZN4pstd3pmr21polymorphic_allocatorISt4byteE %68 = ptrtoint ptr %66 to i64 %69 = ptrtoint ptr %67 to i64 %70 = sub i64 %68, %69 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, i8 0, i64 24, i1 false) %.not.i.i.i.i = icmp eq ptr %66, %67 br i1 %.not.i.i.i.i, label %.noexc11.thread, label %74 .noexc11.thread: ; preds = %9 %71 = getelementptr inbounds nuw i8, ptr %11, i64 8 - %72 = getelementptr inbounds nuw i8, ptr null, i64 %70 - %73 = getelementptr inbounds nuw i8, ptr %11, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %11, i8 0, i64 16, i1 false) - store ptr %72, ptr %73, align 8, !tbaa !647 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %11, i8 0, i64 24, i1 false) br label %.loopexit 74: ; preds = %9 @@ -113976,31 +113972,34 @@ _ZNSt16allocator_traitsISaIN4pbrt6Point3IfEEEE8allocateERS3_m.exit.i.i.i.i: ; pr %81 = getelementptr inbounds nuw i8, ptr %.sroa.04.08.i.i.i.i.i, i64 12 %82 = getelementptr inbounds nuw i8, ptr %.09.i.i.i.i.i, i64 12 %.not.i.i.i.i.i = icmp eq ptr %81, %66 - br i1 %.not.i.i.i.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.i, !llvm.loop !2493 - -.loopexit: ; preds = %.lr.ph.i.i.i.i.i, %.noexc11.thread - %83 = phi ptr [ %72, %.noexc11.thread ], [ %79, %.lr.ph.i.i.i.i.i ] - %84 = phi ptr [ %71, %.noexc11.thread ], [ %78, %.lr.ph.i.i.i.i.i ] - %85 = phi ptr [ null, %.noexc11.thread ], [ %77, %.lr.ph.i.i.i.i.i ] - %.0.lcssa.i.i.i.i.i = phi ptr [ null, %.noexc11.thread ], [ %82, %.lr.ph.i.i.i.i.i ] - store ptr %.0.lcssa.i.i.i.i.i, ptr %84, align 8, !tbaa !509 - %.sroa.0.0.copyload = load ptr, ptr %8, align 8, !tbaa !55 - %86 = ptrtoint ptr %.sroa.0.0.copyload to i64 - invoke void @_ZN4pbrt24PortalImageInfiniteLightC2ERKNS_9TransformENS_5ImageEPKNS_13RGBColorSpaceEfRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorINS_6Point3IfEESaISI_EEN4pstd3pmr21polymorphic_allocatorISt4byteEE(ptr noundef nonnull align 8 dereferenceable(516) %1, ptr noundef nonnull align 4 dereferenceable(128) %2, ptr noundef nonnull %10, ptr noundef %63, float noundef %64, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull %11, i64 %86) - to label %87 unwind label %94 + br i1 %.not.i.i.i.i.i, label %.loopexit88, label %.lr.ph.i.i.i.i.i, !llvm.loop !2493 -87: ; preds = %.loopexit - %.not.i.i.i = icmp eq ptr %85, null - br i1 %.not.i.i.i, label %_ZNSt6vectorIN4pbrt6Point3IfEESaIS2_EED2Ev.exit, label %88 +87: ; preds = %.lr.ph.i.i.i.i.i + %81 = ptrtoint ptr %77 to i64 + br label %.loopexit -88: ; preds = %87 - %89 = ptrtoint ptr %83 to i64 - %90 = ptrtoint ptr %85 to i64 - %91 = sub i64 %89, %90 - call void @_ZdlPvm(ptr noundef nonnull %85, i64 noundef %91) #36 +88: ; preds = %87, %.noexc11.thread + %82 = phi i64 [ 0, %.noexc11.thread ], [ %81, %87 ] + %83 = phi ptr [ %71, %.noexc11.thread ], [ %76, %87 ] + %84 = phi ptr [ null, %.noexc11.thread ], [ %75, %87 ] + %.0.lcssa.i.i.i.i.i = phi ptr [ null, %.noexc11.thread ], [ %80, %87 ] + store ptr %.0.lcssa.i.i.i.i.i, ptr %83, align 8, !tbaa !509 + %.sroa.0.0.copyload = load ptr, ptr %8, align 8, !tbaa !55 + %85 = ptrtoint ptr %.sroa.0.0.copyload to i64 + invoke void @_ZN4pbrt24PortalImageInfiniteLightC2ERKNS_9TransformENS_5ImageEPKNS_13RGBColorSpaceEfRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt6vectorINS_6Point3IfEESaISI_EEN4pstd3pmr21polymorphic_allocatorISt4byteEE(ptr noundef nonnull align 8 dereferenceable(516) %1, ptr noundef nonnull align 4 dereferenceable(128) %2, ptr noundef nonnull %10, ptr noundef %63, float noundef %64, ptr noundef nonnull align 8 dereferenceable(32) %6, ptr noundef nonnull %11, i64 %85) + to label %86 unwind label %92 + +86: ; preds = %.loopexit + %.not.i.i.i = icmp eq ptr %84, null + br i1 %.not.i.i.i, label %_ZNSt6vectorIN4pbrt6Point3IfEESaIS2_EED2Ev.exit, label %87 + +87: ; preds = %86 + %88 = ptrtoint ptr %84 to i64 + %89 = sub i64 %82, %88 + call void @_ZdlPvm(ptr noundef nonnull %84, i64 noundef %89) #36 br label %_ZNSt6vectorIN4pbrt6Point3IfEESaIS2_EED2Ev.exit -_ZNSt6vectorIN4pbrt6Point3IfEESaIS2_EED2Ev.exit: ; preds = %87, %88 +_ZNSt6vectorIN4pbrt6Point3IfEESaIS2_EED2Ev.exit: ; preds = %86, %87 call void @_ZN4pbrt5ImageD2Ev(ptr noundef nonnull align 8 dereferenceable(152) %10) #38 ret void @@ -114012,14 +114011,13 @@ _ZNSt6vectorIN4pbrt6Point3IfEESaIS2_EED2Ev.exit: ; preds = %87, %88 94: ; preds = %.loopexit %95 = landingpad { ptr, i32 } cleanup - %.not.i.i.i12 = icmp eq ptr %85, null + %.not.i.i.i12 = icmp eq ptr %84, null br i1 %.not.i.i.i12, label %_ZNSt6vectorIN4pbrt6Point3IfEESaIS2_EED2Ev.exit13, label %96 96: ; preds = %94 - %97 = ptrtoint ptr %83 to i64 - %98 = ptrtoint ptr %85 to i64 - %99 = sub i64 %97, %98 - call void @_ZdlPvm(ptr noundef nonnull %85, i64 noundef %99) #36 + %97 = ptrtoint ptr %84 to i64 + %96 = sub i64 %82, %95 + call void @_ZdlPvm(ptr noundef nonnull %84, i64 noundef %96) #36 br label %_ZNSt6vectorIN4pbrt6Point3IfEESaIS2_EED2Ev.exit13 _ZNSt6vectorIN4pbrt6Point3IfEESaIS2_EED2Ev.exit13: ; preds = %96, %94, %92 diff --git a/bench/pocketpy/optimized/vm.ll b/bench/pocketpy/optimized/vm.ll index eb65e9ad4f2..8447028c036 100644 --- a/bench/pocketpy/optimized/vm.ll +++ b/bench/pocketpy/optimized/vm.ll @@ -29489,10 +29489,7 @@ _ZNKSt6vectorIN4pkpy10PyTypeInfoESaIS1_EE12_M_check_lenEmPKc.exit: ; preds = %3 .noexc26.thread: ; preds = %_ZNKSt6vectorIN4pkpy10PyTypeInfoESaIS1_EE12_M_check_lenEmPKc.exit %30 = getelementptr inbounds nuw i8, ptr %21, i64 40 - %31 = getelementptr inbounds i8, ptr null, i64 %29 - %32 = getelementptr inbounds nuw i8, ptr %21, i64 48 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %22, i8 0, i64 16, i1 false) - store ptr %31, ptr %32, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %22, i8 0, i64 24, i1 false) br label %.loopexit 33: ; preds = %_ZNKSt6vectorIN4pkpy10PyTypeInfoESaIS1_EE12_M_check_lenEmPKc.exit @@ -29513,10 +29510,10 @@ _ZNSt16allocator_traitsISaIN4pkpy7StrNameEEE8allocateERS2_m.exit.i.i.i.i.i.i.i: .noexc26: ; preds = %_ZNSt16allocator_traitsISaIN4pkpy7StrNameEEE8allocateERS2_m.exit.i.i.i.i.i.i.i store ptr %35, ptr %22, align 8 %36 = getelementptr inbounds nuw i8, ptr %21, i64 40 + store ptr %33, ptr %34, align 8 + %35 = getelementptr inbounds nuw i8, ptr %33, i64 %29 + %36 = getelementptr inbounds nuw i8, ptr %21, i64 48 store ptr %35, ptr %36, align 8 - %37 = getelementptr inbounds nuw i8, ptr %35, i64 %29 - %38 = getelementptr inbounds nuw i8, ptr %21, i64 48 - store ptr %37, ptr %38, align 8 br label %.lr.ph.i.i.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i.i.i: ; preds = %.noexc26, %.lr.ph.i.i.i.i.i.i.i.i diff --git a/bench/quantlib/optimized/barrieroption.ll b/bench/quantlib/optimized/barrieroption.ll index d50b9785457..81fdbc005a2 100644 --- a/bench/quantlib/optimized/barrieroption.ll +++ b/bench/quantlib/optimized/barrieroption.ll @@ -2676,10 +2676,7 @@ _ZN5boost10shared_ptrIN8QuantLib30GeneralizedBlackScholesProcessEEC2ERKS3_.exit: invoke.cont.i.thread: ; preds = %_ZN5boost10shared_ptrIN8QuantLib30GeneralizedBlackScholesProcessEEC2ERKS3_.exit %_M_finish.i.i.i17 = getelementptr inbounds nuw i8, ptr %agg.tmp3, i64 8 - %add.ptr.i.i.i18 = getelementptr inbounds nuw i8, ptr null, i64 %sub.ptr.sub.i.i %_M_end_of_storage.i.i.i19 = getelementptr inbounds nuw i8, ptr %agg.tmp3, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp3, i8 0, i64 16, i1 false) - store ptr %add.ptr.i.i.i18, ptr %_M_end_of_storage.i.i.i19, align 8, !tbaa !79 br label %invoke.cont cond.true.i.i.i.i: ; preds = %_ZN5boost10shared_ptrIN8QuantLib30GeneralizedBlackScholesProcessEEC2ERKS3_.exit diff --git a/bench/re2/optimized/set.ll b/bench/re2/optimized/set.ll index abdd8e2179e..07108b60fc8 100644 --- a/bench/re2/optimized/set.ll +++ b/bench/re2/optimized/set.ll @@ -1416,10 +1416,7 @@ _ZNSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPN3re26 br i1 %cmp.not.i.i.i, label %invoke.cont21.thread, label %for.body.i.i.i.i.preheader.i.i invoke.cont21.thread: ; preds = %_ZNSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPN3re26RegexpEESaISA_EE17_S_check_init_lenEmRKSB_.exit.i.i - %ref.tmp.sroa.11.014 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i.i - %_M_end_of_storage.i4.i.i15 = getelementptr inbounds nuw i8, ptr %__c, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %__c, i8 0, i64 16, i1 false) - store ptr %ref.tmp.sroa.11.014, ptr %_M_end_of_storage.i4.i.i15, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %__c, i8 0, i64 24, i1 false) br label %invoke.cont.i for.body.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPN3re26RegexpEESaISA_EE17_S_check_init_lenEmRKSB_.exit.i.i @@ -1448,13 +1445,13 @@ _ZNSt12_Vector_baseISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE to label %return unwind label %terminate.lpad invoke.cont21: ; preds = %for.body.i.i.i.i.i.i + %add.ptr.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %.pre = load ptr, ptr %__c, align 8 %.pre11 = load ptr, ptr %_M_finish.i, align 8 - %ref.tmp.sroa.11.0 = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %_M_end_of_storage.i4.i.i = getelementptr inbounds nuw i8, ptr %__c, i64 16 store ptr %call5.i.i.i.i1.i, ptr %__c, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %_M_finish.i, align 8 - store ptr %ref.tmp.sroa.11.0, ptr %_M_end_of_storage.i4.i.i, align 8 + store ptr %add.ptr.i.i, ptr %_M_end_of_storage.i4.i.i, align 8 %cmp.not3.i.i.i.i = icmp eq ptr %.pre, %.pre11 br i1 %cmp.not3.i.i.i.i, label %invoke.cont.i, label %for.body.i.i.i.i diff --git a/bench/rocksdb/optimized/backup_engine.ll b/bench/rocksdb/optimized/backup_engine.ll index fbb820bb157..e3f78ca081e 100644 --- a/bench/rocksdb/optimized/backup_engine.ll +++ b/bench/rocksdb/optimized/backup_engine.ll @@ -27574,9 +27574,8 @@ _ZNSt6vectorIN7rocksdb8ReadLockESaIS1_EE17_S_check_init_lenEmRKS2_.exit: ; preds _ZNSt12_Vector_baseIN7rocksdb8ReadLockESaIS1_EE11_M_allocateEm.exit.thread: ; preds = %_ZNSt6vectorIN7rocksdb8ReadLockESaIS1_EE17_S_check_init_lenEmRKS2_.exit store ptr null, ptr %0, align 8, !tbaa !255 - %9 = getelementptr inbounds nuw i8, ptr null, i64 %6 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %9, ptr %10, align 8, !tbaa !258 + %9 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr null, ptr %9, align 8, !tbaa !258 br label %_ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPPN7rocksdb4port7RWMutexESt6vectorIS5_SaIS5_EEEEPNS2_8ReadLockESB_ET0_T_SE_SD_RSaIT1_E.exit .lr.ph.i.i.i.i.preheader: ; preds = %_ZNSt6vectorIN7rocksdb8ReadLockESaIS1_EE17_S_check_init_lenEmRKS2_.exit diff --git a/bench/rocksdb/optimized/tiered_secondary_cache.ll b/bench/rocksdb/optimized/tiered_secondary_cache.ll index 118f590c097..2644839fd04 100644 --- a/bench/rocksdb/optimized/tiered_secondary_cache.ll +++ b/bench/rocksdb/optimized/tiered_secondary_cache.ll @@ -604,8 +604,7 @@ _ZNSt12_Vector_baseIPN7rocksdb26SecondaryCacheResultHandleESaIS2_EE11_M_allocate %.sroa.9.0.lcssa161 = phi ptr [ null, %._crit_edge.thread ], [ %.sroa.9.1, %._crit_edge ] %24 = getelementptr inbounds nuw i8, ptr %3, i64 8 %25 = getelementptr inbounds nuw i8, ptr %3, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %3, i8 0, i64 16, i1 false) - store ptr null, ptr %25, align 8, !tbaa !59 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false) br label %87 26: ; preds = %._crit_edge @@ -1921,16 +1920,13 @@ define linkonce_odr void @_ZN7rocksdb21SecondaryCacheWrapper7WaitAllESt6vectorIP %9 = ptrtoint ptr %7 to i64 %10 = ptrtoint ptr %8 to i64 %11 = sub i64 %9, %10 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false) %.not.i.i.i.i = icmp eq ptr %7, %8 br i1 %.not.i.i.i.i, label %.thread, label %15 .thread: ; preds = %2 %12 = getelementptr inbounds nuw i8, ptr %3, i64 8 - %13 = getelementptr inbounds i8, ptr null, i64 %11 - %14 = getelementptr inbounds nuw i8, ptr %3, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %3, i8 0, i64 16, i1 false) - store ptr %13, ptr %14, align 8, !tbaa !59 + %13 = getelementptr inbounds nuw i8, ptr %3, i64 16 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIPN7rocksdb26SecondaryCacheResultHandleESaIS2_EEC2ERKS4_.exit 15: ; preds = %2 @@ -1953,14 +1949,14 @@ define linkonce_odr void @_ZN7rocksdb21SecondaryCacheWrapper7WaitAllESt6vectorIP br label %_ZNSt6vectorIPN7rocksdb26SecondaryCacheResultHandleESaIS2_EEC2ERKS4_.exit _ZNSt6vectorIPN7rocksdb26SecondaryCacheResultHandleESaIS2_EEC2ERKS4_.exit: ; preds = %.thread, %17 - %22 = phi ptr [ %14, %.thread ], [ %21, %17 ] - %23 = phi ptr [ %13, %.thread ], [ %20, %17 ] + %22 = phi ptr [ %13, %.thread ], [ %21, %17 ] + %23 = phi ptr [ null, %.thread ], [ %20, %17 ] %24 = phi ptr [ %12, %.thread ], [ %19, %17 ] store ptr %23, ptr %24, align 8, !tbaa !54 %25 = load ptr, ptr %5, align 8, !tbaa !24 %26 = getelementptr inbounds nuw i8, ptr %25, i64 192 %27 = load ptr, ptr %26, align 8 - invoke void %27(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull %3) + invoke void %26(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull %3) to label %28 unwind label %35 28: ; preds = %_ZNSt6vectorIPN7rocksdb26SecondaryCacheResultHandleESaIS2_EEC2ERKS4_.exit diff --git a/bench/rocksdb/optimized/trace_record.ll b/bench/rocksdb/optimized/trace_record.ll index 3e5ce974e69..febd659efa6 100644 --- a/bench/rocksdb/optimized/trace_record.ll +++ b/bench/rocksdb/optimized/trace_record.ll @@ -1616,7 +1616,7 @@ define void @_ZN7rocksdb24MultiGetQueryTraceRecordD0Ev(ptr noundef nonnull align } ; Function Attrs: mustprogress uwtable -define void @_ZNK7rocksdb24MultiGetQueryTraceRecord18GetColumnFamilyIDsEv(ptr dead_on_unwind noalias writable writeonly sret(%"class.std::vector.10") align 8 captures(none) initializes((0, 24)) %0, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(64) %1) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 { +define void @_ZNK7rocksdb24MultiGetQueryTraceRecord18GetColumnFamilyIDsEv(ptr dead_on_unwind noalias writable writeonly sret(%"class.std::vector.10") align 8 captures(none) initializes((8, 16)) %0, ptr noundef nonnull readonly align 8 captures(none) dereferenceable(64) %1) unnamed_addr #2 align 2 personality ptr @__gxx_personality_v0 { %3 = getelementptr inbounds nuw i8, ptr %1, i64 16 %4 = getelementptr inbounds nuw i8, ptr %1, i64 24 %5 = load ptr, ptr %4, align 8, !tbaa !41 @@ -1624,15 +1624,13 @@ define void @_ZNK7rocksdb24MultiGetQueryTraceRecord18GetColumnFamilyIDsEv(ptr de %7 = ptrtoint ptr %5 to i64 %8 = ptrtoint ptr %6 to i64 %9 = sub i64 %7, %8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) + %10 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store i64 0, ptr %10, align 8 %.not.i.i.i.i = icmp eq ptr %5, %6 br i1 %.not.i.i.i.i, label %.thread, label %12 .thread: ; preds = %2 - %10 = getelementptr inbounds i8, ptr null, i64 %9 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %10, ptr %11, align 8, !tbaa !46 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZNSt6vectorIjSaIjEEC2ERKS1_.exit 12: ; preds = %2 @@ -1653,7 +1651,7 @@ define void @_ZNK7rocksdb24MultiGetQueryTraceRecord18GetColumnFamilyIDsEv(ptr de br label %_ZNSt6vectorIjSaIjEEC2ERKS1_.exit _ZNSt6vectorIjSaIjEEC2ERKS1_.exit: ; preds = %.thread, %14 - %18 = phi ptr [ %10, %.thread ], [ %16, %14 ] + %18 = phi ptr [ null, %.thread ], [ %16, %14 ] %19 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %18, ptr %19, align 8, !tbaa !41 ret void @@ -1679,21 +1677,15 @@ define void @_ZNK7rocksdb24MultiGetQueryTraceRecord7GetKeysEv(ptr dead_on_unwind _ZNSt6vectorIN7rocksdb5SliceESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i: ; preds = %2 %.not.i.i.i = icmp eq ptr %6, %4 - br i1 %.not.i.i.i, label %_ZNSt12_Vector_baseIN7rocksdb5SliceESaIS1_EE11_M_allocateEm.exit.thread.i.i, label %.lr.ph.i.i.i.i.preheader.i.i - -_ZNSt12_Vector_baseIN7rocksdb5SliceESaIS1_EE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorIN7rocksdb5SliceESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i - %12 = getelementptr inbounds nuw %"class.rocksdb::Slice", ptr null, i64 %10 - %13 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %12, ptr %13, align 8, !tbaa !60 - br label %.loopexit + br i1 %.not.i.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.preheader.i.i .lr.ph.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorIN7rocksdb5SliceESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i %14 = shl nuw nsw i64 %10, 4 %15 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %14) #20 - store ptr %15, ptr %0, align 8, !tbaa !63 + store ptr %15, ptr %0, align 8, !tbaa !60 %16 = getelementptr inbounds nuw %"class.rocksdb::Slice", ptr %15, i64 %10 %17 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %16, ptr %17, align 8, !tbaa !60 + store ptr %16, ptr %17, align 8, !tbaa !63 br label %.lr.ph.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i: ; preds = %.lr.ph.i.i.i.i.i.i, %.lr.ph.i.i.i.i.preheader.i.i @@ -1705,8 +1697,8 @@ _ZNSt12_Vector_baseIN7rocksdb5SliceESaIS1_EE11_M_allocateEm.exit.thread.i.i: ; p %.not.i.i.i.i.i.i = icmp eq ptr %18, %6 br i1 %.not.i.i.i.i.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.i.i, !llvm.loop !65 -.loopexit: ; preds = %.lr.ph.i.i.i.i.i.i, %_ZNSt12_Vector_baseIN7rocksdb5SliceESaIS1_EE11_M_allocateEm.exit.thread.i.i - %.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseIN7rocksdb5SliceESaIS1_EE11_M_allocateEm.exit.thread.i.i ], [ %19, %.lr.ph.i.i.i.i.i.i ] +.loopexit: ; preds = %.lr.ph.i.i.i.i.i.i, %_ZNSt6vectorIN7rocksdb5SliceESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i + %.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorIN7rocksdb5SliceESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i ], [ %19, %.lr.ph.i.i.i.i.i.i ] %20 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.0.lcssa.i.i.i.i.i.i, ptr %20, align 8, !tbaa !66 ret void @@ -2320,10 +2312,10 @@ attributes #24 = { noreturn } !57 = distinct !{!57, !58} !58 = !{!"llvm.loop.mustprogress"} !59 = !{!50, !50, i64 0} -!60 = !{!61, !62, i64 16} +!60 = !{!61, !62, i64 0} !61 = !{!"_ZTSNSt12_Vector_baseIN7rocksdb5SliceESaIS1_EE17_Vector_impl_dataE", !62, i64 0, !62, i64 8, !62, i64 16} !62 = !{!"p1 _ZTSN7rocksdb5SliceE", !14, i64 0} -!63 = !{!61, !62, i64 0} +!63 = !{!61, !62, i64 16} !64 = !{i64 0, i64 8, !30, i64 8, i64 8, !31} !65 = distinct !{!65, !58} !66 = !{!61, !62, i64 8} diff --git a/bench/sentencepiece/optimized/bpe_model_trainer.ll b/bench/sentencepiece/optimized/bpe_model_trainer.ll index 0d4a10fb152..625ca4a50db 100644 --- a/bench/sentencepiece/optimized/bpe_model_trainer.ll +++ b/bench/sentencepiece/optimized/bpe_model_trainer.ll @@ -7603,17 +7603,11 @@ define linkonce_odr void @_ZN13sentencepiece6SortedIjlEESt6vectorISt4pairIT_T0_E %6 = ptrtoint ptr %4 to i64 %7 = ptrtoint ptr %5 to i64 %8 = sub i64 %6, %7 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) %.not.i.i.i.i = icmp eq ptr %4, %5 br i1 %.not.i.i.i.i, label %_ZNSt6vectorISt4pairIjlESaIS1_EEC2ERKS3_.exit.thread, label %12 _ZNSt6vectorISt4pairIjlESaIS1_EEC2ERKS3_.exit.thread: ; preds = %2 - %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %10 = getelementptr inbounds nuw i8, ptr null, i64 %8 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 0, ptr %0, align 8 - store ptr %10, ptr %11, align 8, !tbaa !198 - store ptr null, ptr %9, align 8, !tbaa !223 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZSt4sortIN9__gnu_cxx17__normal_iteratorIPSt4pairIjlESt6vectorIS3_SaIS3_EEEEZN13sentencepiece6SortedIjlEES5_IS2_IT_T0_ESaISD_EERKSF_EUlRKS3_SJ_E_EvSB_SB_SC_.exit 12: ; preds = %2 @@ -7644,9 +7638,9 @@ _ZNSt6vectorISt4pairIjlESaIS1_EEC2ERKS3_.exit.thread: ; preds = %2 21: ; preds = %.lr.ph.i.i.i.i.i store ptr %20, ptr %16, align 8, !tbaa !223 - %22 = ptrtoint ptr %20 to i64 + %112 = ptrtoint ptr %20 to i64 %23 = ptrtoint ptr %15 to i64 - %24 = sub i64 %22, %23 + %24 = sub i64 %112, %23 %25 = ashr exact i64 %24, 4 %26 = tail call range(i64 0, 65) i64 @llvm.ctlz.i64(i64 %25, i1 true) %27 = shl nuw nsw i64 %26, 1 diff --git a/bench/spdlog/optimized/async.ll b/bench/spdlog/optimized/async.ll index e1b8d6a1e7f..e155a7691c3 100644 --- a/bench/spdlog/optimized/async.ll +++ b/bench/spdlog/optimized/async.ll @@ -4893,13 +4893,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_.exit: ; preds = %10 _ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_.exit %.not.i.i.i = icmp eq ptr %3, %2 - br i1 %.not.i.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i, label %.lr.ph.i.i.i.i.preheader.i.i - -_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i - %25 = getelementptr inbounds nuw i8, ptr null, i64 %22 - %26 = getelementptr inbounds nuw i8, ptr %0, i64 56 - store ptr %25, ptr %26, align 8, !tbaa !191 - br label %.loopexit + br i1 %.not.i.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.preheader.i.i .lr.ph.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i %27 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %22) #29 @@ -4957,8 +4951,8 @@ _ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i tail call void @_ZdlPv(ptr noundef nonnull %46) #25 br label %.body -.loopexit: ; preds = %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i - %.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i ], [ %43, %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i ] +.loopexit: ; preds = %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i, %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i + %.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i ], [ %43, %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i ] %48 = getelementptr inbounds nuw i8, ptr %0, i64 48 store ptr %.0.lcssa.i.i.i.i.i.i, ptr %48, align 8, !tbaa !189 %49 = getelementptr inbounds nuw i8, ptr %0, i64 64 diff --git a/bench/spdlog/optimized/color_sinks.ll b/bench/spdlog/optimized/color_sinks.ll index 12d9e873983..fe2260f9ad8 100644 --- a/bench/spdlog/optimized/color_sinks.ll +++ b/bench/spdlog/optimized/color_sinks.ll @@ -9622,23 +9622,17 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_.exit: ; preds = %10 _ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_.exit %.not.i.i.i = icmp eq ptr %3, %2 - br i1 %.not.i.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i, label %.lr.ph.i.i.i.i.preheader.i.i - -_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i - %25 = getelementptr inbounds nuw i8, ptr null, i64 %22 - %26 = getelementptr inbounds nuw i8, ptr %0, i64 56 - store ptr %25, ptr %26, align 8, !tbaa !233 - br label %.loopexit + br i1 %.not.i.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.preheader.i.i .lr.ph.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i %27 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %22) #23 to label %.noexc4.i unwind label %44 .noexc4.i: ; preds = %.lr.ph.i.i.i.i.preheader.i.i - store ptr %27, ptr %19, align 8, !tbaa !236 + store ptr %27, ptr %19, align 8, !tbaa !233 %28 = getelementptr inbounds nuw i8, ptr %27, i64 %22 %29 = getelementptr inbounds nuw i8, ptr %0, i64 56 - store ptr %28, ptr %29, align 8, !tbaa !233 + store ptr %28, ptr %29, align 8, !tbaa !236 br label %.lr.ph.i.i.i.i.i.i .lr.ph.i.i.i.i.i.i: ; preds = %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i, %.noexc4.i @@ -9678,7 +9672,7 @@ _ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i 44: ; preds = %.lr.ph.i.i.i.i.preheader.i.i, %24 %45 = landingpad { ptr, i32 } cleanup - %46 = load ptr, ptr %19, align 8, !tbaa !236 + %46 = load ptr, ptr %19, align 8, !tbaa !233 %.not.i.i5.i = icmp eq ptr %46, null br i1 %.not.i.i5.i, label %.body, label %47 @@ -9686,8 +9680,8 @@ _ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i tail call void @_ZdlPv(ptr noundef nonnull %46) #24 br label %.body -.loopexit: ; preds = %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i - %.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i ], [ %43, %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i ] +.loopexit: ; preds = %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i, %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i + %.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i ], [ %43, %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i ] %48 = getelementptr inbounds nuw i8, ptr %0, i64 48 store ptr %.0.lcssa.i.i.i.i.i.i, ptr %48, align 8, !tbaa !238 %49 = getelementptr inbounds nuw i8, ptr %0, i64 64 @@ -11080,7 +11074,7 @@ _ZN6spdlog7details10backtracerD2Ev.exit: ; preds = %_ZSt8_DestroyIPN6sp _ZNSt14_Function_baseD2Ev.exit: ; preds = %_ZN6spdlog7details10backtracerD2Ev.exit, %15 %21 = getelementptr inbounds nuw i8, ptr %0, i64 40 - %22 = load ptr, ptr %21, align 8, !tbaa !236 + %22 = load ptr, ptr %21, align 8, !tbaa !233 %23 = getelementptr inbounds nuw i8, ptr %0, i64 48 %24 = load ptr, ptr %23, align 8, !tbaa !238 %.not4.i.i.i.i = icmp eq ptr %22, %24 @@ -11143,7 +11137,7 @@ _ZSt8_DestroyISt10shared_ptrIN6spdlog5sinks4sinkEEEvPT_.exit.i.i.i.i: ; preds = br i1 %.not.i.i.i.i, label %_ZSt8_DestroyIPSt10shared_ptrIN6spdlog5sinks4sinkEES4_EvT_S6_RSaIT0_E.exitthread-pre-split.i, label %.lr.ph.i.i.i.i, !llvm.loop !259 _ZSt8_DestroyIPSt10shared_ptrIN6spdlog5sinks4sinkEES4_EvT_S6_RSaIT0_E.exitthread-pre-split.i: ; preds = %_ZSt8_DestroyISt10shared_ptrIN6spdlog5sinks4sinkEEEvPT_.exit.i.i.i.i - %.pr.i = load ptr, ptr %21, align 8, !tbaa !236 + %.pr.i = load ptr, ptr %21, align 8, !tbaa !233 br label %_ZSt8_DestroyIPSt10shared_ptrIN6spdlog5sinks4sinkEES4_EvT_S6_RSaIT0_E.exit.i _ZSt8_DestroyIPSt10shared_ptrIN6spdlog5sinks4sinkEES4_EvT_S6_RSaIT0_E.exit.i: ; preds = %_ZSt8_DestroyIPSt10shared_ptrIN6spdlog5sinks4sinkEES4_EvT_S6_RSaIT0_E.exitthread-pre-split.i, %_ZNSt14_Function_baseD2Ev.exit @@ -12417,10 +12411,10 @@ attributes #28 = { nounwind allocsize(0) } !230 = !{!231, !232, i64 0} !231 = !{!"_ZTSSt12__shared_ptrIN6spdlog5sinks4sinkELN9__gnu_cxx12_Lock_policyE2EE", !232, i64 0, !145, i64 8} !232 = !{!"p1 _ZTSN6spdlog5sinks4sinkE", !14, i64 0} -!233 = !{!234, !235, i64 16} +!233 = !{!234, !235, i64 0} !234 = !{!"_ZTSNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_Vector_impl_dataE", !235, i64 0, !235, i64 8, !235, i64 16} !235 = !{!"p1 _ZTSSt10shared_ptrIN6spdlog5sinks4sinkEE", !14, i64 0} -!236 = !{!234, !235, i64 0} +!236 = !{!234, !235, i64 16} !237 = distinct !{!237, !102} !238 = !{!234, !235, i64 8} !239 = !{!240, !161, i64 0} diff --git a/bench/spdlog/optimized/spdlog.ll b/bench/spdlog/optimized/spdlog.ll index 393c4476177..219f454df45 100644 --- a/bench/spdlog/optimized/spdlog.ll +++ b/bench/spdlog/optimized/spdlog.ll @@ -19072,13 +19072,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_.exit: ; preds = %10 _ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2EOS4_.exit %.not.i.i.i = icmp eq ptr %3, %2 - br i1 %.not.i.i.i, label %_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i, label %.lr.ph.i.i.i.i.preheader.i.i - -_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i - %25 = getelementptr inbounds nuw i8, ptr null, i64 %22 - %26 = getelementptr inbounds nuw i8, ptr %0, i64 56 - store ptr %25, ptr %26, align 8, !tbaa !181 - br label %.loopexit + br i1 %.not.i.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.preheader.i.i .lr.ph.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i %27 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %22) #45 @@ -19136,8 +19130,8 @@ _ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i tail call void @_ZdlPv(ptr noundef nonnull %46) #44 br label %.body -.loopexit: ; preds = %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i, %_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i - %.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE11_M_allocateEm.exit.thread.i.i ], [ %43, %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i ] +.loopexit: ; preds = %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i, %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i + %.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorISt10shared_ptrIN6spdlog5sinks4sinkEESaIS4_EE17_S_check_init_lenEmRKS5_.exit.i.i ], [ %43, %_ZSt10_ConstructISt10shared_ptrIN6spdlog5sinks4sinkEEJRKS4_EEvPT_DpOT0_.exit.i.i.i.i.i.i ] %48 = getelementptr inbounds nuw i8, ptr %0, i64 48 store ptr %.0.lcssa.i.i.i.i.i.i, ptr %48, align 8, !tbaa !178 %49 = getelementptr inbounds nuw i8, ptr %0, i64 64 diff --git a/bench/stb/optimized/stb_sprintf.ll b/bench/stb/optimized/stb_sprintf.ll index b8c0ee4a814..cf98458abdf 100644 --- a/bench/stb/optimized/stb_sprintf.ll +++ b/bench/stb/optimized/stb_sprintf.ll @@ -3474,10 +3474,8 @@ define i32 @stbsp_vsnprintf(ptr noundef %0, i32 noundef %1, ptr noundef %2, ptr .thread: ; preds = %12 %.not34.i = icmp eq ptr %0, null - %.pre36.i = sext i32 %1 to i64 tail call void @llvm.assume(i1 %.not34.i) - %15 = getelementptr inbounds i8, ptr null, i64 %.pre36.i - store ptr %15, ptr %5, align 8, !tbaa !54 + store ptr null, ptr %5, align 8, !tbaa !54 store i32 0, ptr %13, align 8, !tbaa !53 br label %18 @@ -3548,10 +3546,8 @@ define i32 @stbsp_snprintf(ptr noundef %0, i32 noundef %1, ptr noundef %2, ...) .thread.i: ; preds = %12 %.not34.i.i = icmp eq ptr %0, null - %.pre36.i.i = sext i32 %1 to i64 call void @llvm.assume(i1 %.not34.i.i) - %15 = getelementptr inbounds i8, ptr null, i64 %.pre36.i.i - store ptr %15, ptr %4, align 8, !tbaa !54 + store ptr null, ptr %4, align 8, !tbaa !54 store i32 0, ptr %13, align 8, !tbaa !53 br label %18 diff --git a/bench/stockfish/optimized/uci.ll b/bench/stockfish/optimized/uci.ll index 2ca407cc38a..f2337a03d26 100644 --- a/bench/stockfish/optimized/uci.ll +++ b/bench/stockfish/optimized/uci.ll @@ -1986,16 +1986,14 @@ _ZNSt6vectorIN9Stockfish4MoveESaIS1_EE9push_backEOS1_.exit: ; preds = %45, %_ZNS %151 = ptrtoint ptr %149 to i64 %152 = ptrtoint ptr %150 to i64 %153 = sub i64 %151, %152 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(112) %10, i8 0, i64 24, i1 false) + %154 = getelementptr inbounds nuw i8, ptr %10, i64 8 + store i64 0, ptr %154, align 8 %.not.i.i.i.i.i = icmp eq ptr %149, %150 br i1 %.not.i.i.i.i.i, label %_ZNSt12_Vector_baseIN9Stockfish4MoveESaIS1_EEC2EmRKS2_.exit.i.i.thread, label %157 _ZNSt12_Vector_baseIN9Stockfish4MoveESaIS1_EEC2EmRKS2_.exit.i.i.thread: ; preds = %146 %154 = getelementptr inbounds nuw i8, ptr %10, i64 8 - %155 = getelementptr inbounds i8, ptr null, i64 %153 - %156 = getelementptr inbounds nuw i8, ptr %10, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %10, i8 0, i64 16, i1 false) - store ptr %155, ptr %156, align 8 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %10, i8 0, i64 24, i1 false) br label %_ZN9Stockfish6Search10LimitsTypeC2ERKS1_.exit 157: ; preds = %146 @@ -2017,7 +2015,7 @@ _ZNSt12_Vector_baseIN9Stockfish4MoveESaIS1_EEC2EmRKS2_.exit.i.i.thread: ; preds br label %_ZN9Stockfish6Search10LimitsTypeC2ERKS1_.exit _ZN9Stockfish6Search10LimitsTypeC2ERKS1_.exit: ; preds = %_ZNSt12_Vector_baseIN9Stockfish4MoveESaIS1_EEC2EmRKS2_.exit.i.i.thread, %160 - %165 = phi ptr [ %155, %_ZNSt12_Vector_baseIN9Stockfish4MoveESaIS1_EEC2EmRKS2_.exit.i.i.thread ], [ %163, %160 ] + %165 = phi ptr [ null, %_ZNSt12_Vector_baseIN9Stockfish4MoveESaIS1_EEC2EmRKS2_.exit.i.i.thread ], [ %163, %160 ] %166 = phi ptr [ %154, %_ZNSt12_Vector_baseIN9Stockfish4MoveESaIS1_EEC2EmRKS2_.exit.i.i.thread ], [ %162, %160 ] store ptr %165, ptr %166, align 8 %167 = getelementptr inbounds nuw i8, ptr %10, i64 24 diff --git a/bench/taskflow/optimized/subflow.ll b/bench/taskflow/optimized/subflow.ll index a9ffbdaa3c2..6bba8488842 100644 --- a/bench/taskflow/optimized/subflow.ll +++ b/bench/taskflow/optimized/subflow.ll @@ -22362,10 +22362,6 @@ define internal noundef zeroext i1 @"_ZNSt17_Function_handlerIFvRN2tf7SubflowEEZ .noexc3.thread.i.i.i: ; preds = %7 %15 = getelementptr inbounds nuw i8, ptr %8, i64 8 - %16 = getelementptr inbounds i8, ptr null, i64 %14 - %17 = getelementptr inbounds nuw i8, ptr %8, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %8, i8 0, i64 16, i1 false) - store ptr %16, ptr %17, align 8, !tbaa !107 br label %"_ZNSt14_Function_base13_Base_managerIZ4mainE3$_1E15_M_init_functorIRKS1_EEvRSt9_Any_dataOT_.exit.i" 18: ; preds = %7 @@ -22400,7 +22396,7 @@ _ZNSt16allocator_traitsISaIiEE8allocateERS0_m.exit.i.i.i.i.i.i.i.i: ; preds = %1 resume { ptr, i32 } %26 "_ZNSt14_Function_base13_Base_managerIZ4mainE3$_1E15_M_init_functorIRKS1_EEvRSt9_Any_dataOT_.exit.i": ; preds = %21, %.noexc3.thread.i.i.i - %27 = phi ptr [ %16, %.noexc3.thread.i.i.i ], [ %23, %21 ] + %27 = phi ptr [ null, %.noexc3.thread.i.i.i ], [ %23, %21 ] %28 = phi ptr [ %15, %.noexc3.thread.i.i.i ], [ %22, %21 ] store ptr %27, ptr %28, align 8, !tbaa !106 %29 = getelementptr inbounds nuw i8, ptr %8, i64 24 diff --git a/bench/tomlplusplus/optimized/toml.ll b/bench/tomlplusplus/optimized/toml.ll index 9886084073b..9a573444c2c 100644 --- a/bench/tomlplusplus/optimized/toml.ll +++ b/bench/tomlplusplus/optimized/toml.ll @@ -45961,11 +45961,9 @@ _ZNSt6vectorISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EESaIS6_EE17_S_ br i1 %.not.i.i.i, label %_ZNSt6vectorISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EESaIS6_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS6_S8_EEEvEET_SG_RKS7_.exit.thread, label %.lr.ph.i.i.i.i.preheader.i.i _ZNSt6vectorISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EESaIS6_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS6_S8_EEEvEET_SG_RKS7_.exit.thread: ; preds = %_ZNSt6vectorISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EESaIS6_EE17_S_check_init_lenEmRKS7_.exit.i.i - %10 = getelementptr inbounds nuw i8, ptr null, i64 %7 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %12 = load ptr, ptr %11, align 8, !tbaa !220 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %10, ptr %11, align 8, !tbaa !220 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %11 = load ptr, ptr %10, align 8, !tbaa !220 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZSt8_DestroyIPSt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EES6_EvT_S8_RSaIT0_E.exit.i .lr.ph.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EESaIS6_EE17_S_check_init_lenEmRKS7_.exit.i.i @@ -46010,7 +46008,7 @@ _ZNKSt14default_deleteIN4toml2v34nodeEEclEPS2_.exit.i.i.i.i.i.i: ; preds = %.lr. %23 = load ptr, ptr %22, align 8, !tbaa !44 %24 = getelementptr inbounds nuw i8, ptr %23, i64 8 %25 = load ptr, ptr %24, align 8 - tail call void %25(ptr noundef nonnull align 8 dereferenceable(40) %22) #50 + tail call void %24(ptr noundef nonnull align 8 dereferenceable(40) %22) #50 br label %_ZSt8_DestroyISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EEEvPT_.exit.i.i.i.i _ZSt8_DestroyISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EEEvPT_.exit.i.i.i.i: ; preds = %_ZNKSt14default_deleteIN4toml2v34nodeEEclEPS2_.exit.i.i.i.i.i.i, %.lr.ph.i.i.i.i @@ -46020,7 +46018,7 @@ _ZSt8_DestroyISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EEEvPT_.exit.i br i1 %.not.i.i.i.i, label %_ZSt8_DestroyIPSt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EES6_EvT_S8_RSaIT0_E.exit.i, label %.lr.ph.i.i.i.i, !llvm.loop !219 _ZSt8_DestroyIPSt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EES6_EvT_S8_RSaIT0_E.exit.i: ; preds = %_ZSt8_DestroyISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EEEvPT_.exit.i.i.i.i, %_ZNSt6vectorISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EESaIS6_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS6_S8_EEEvEET_SG_RKS7_.exit.thread - %27 = phi ptr [ %12, %_ZNSt6vectorISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EESaIS6_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS6_S8_EEEvEET_SG_RKS7_.exit.thread ], [ %21, %_ZSt8_DestroyISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EEEvPT_.exit.i.i.i.i ] + %27 = phi ptr [ %11, %_ZNSt6vectorISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EESaIS6_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS6_S8_EEEvEET_SG_RKS7_.exit.thread ], [ %21, %_ZSt8_DestroyISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EEEvPT_.exit.i.i.i.i ] %.not.i.i.i11 = icmp eq ptr %2, null br i1 %.not.i.i.i11, label %_ZNSt6vectorISt10unique_ptrIN4toml2v34nodeESt14default_deleteIS3_EESaIS6_EED2Ev.exit, label %28 diff --git a/bench/vcpkg/optimized/commands.build.ll b/bench/vcpkg/optimized/commands.build.ll index ea70d82e513..7be3727f679 100644 --- a/bench/vcpkg/optimized/commands.build.ll +++ b/bench/vcpkg/optimized/commands.build.ll @@ -25080,9 +25080,8 @@ _ZNSt6vectorIN5vcpkg8AbiEntryESaIS1_EE17_S_check_init_lenEmRKS2_.exit: ; preds = _ZNSt12_Vector_baseIN5vcpkg8AbiEntryESaIS1_EE11_M_allocateEm.exit.thread: ; preds = %_ZNSt6vectorIN5vcpkg8AbiEntryESaIS1_EE17_S_check_init_lenEmRKS2_.exit store ptr null, ptr %0, align 8, !tbaa !180 - %9 = getelementptr inbounds nuw i8, ptr null, i64 %6 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %9, ptr %10, align 8, !tbaa !174 + %9 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr null, ptr %9, align 8, !tbaa !174 br label %_ZSt22__uninitialized_copy_aIPKN5vcpkg8AbiEntryEPS1_S1_ET0_T_S6_S5_RSaIT1_E.exit .lr.ph.i.i.i.i.preheader: ; preds = %_ZNSt6vectorIN5vcpkg8AbiEntryESaIS1_EE17_S_check_init_lenEmRKS2_.exit diff --git a/bench/vcpkg/optimized/commands.list.ll b/bench/vcpkg/optimized/commands.list.ll index 81db63401c9..e875f3657a2 100644 --- a/bench/vcpkg/optimized/commands.list.ll +++ b/bench/vcpkg/optimized/commands.list.ll @@ -1819,9 +1819,9 @@ _ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE7reserveEm.exit: ; preds = %_ZNS ret void 18: ; preds = %.lr.ph30, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit - %19 = phi ptr [ %.promoted41, %.lr.ph30 ], [ %29, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit ] - %.promoted27 = phi ptr [ %.promoted2746, %.lr.ph30 ], [ %.promoted2744, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit ] - %.promoted = phi ptr [ %.promoted41, %.lr.ph30 ], [ %.promoted40, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit ] + %19 = phi ptr [ %.promoted41, %.lr.ph30 ], [ %30, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit ] + %.promoted27 = phi ptr [ %.promoted2746, %.lr.ph30 ], [ %.promoted244057, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit ] + %.promoted = phi ptr [ %.promoted41, %.lr.ph30 ], [ %.promoted3659, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit ] %.sroa.011.029 = phi ptr [ %5, %.lr.ph30 ], [ %31, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit ] %20 = getelementptr i8, ptr %.sroa.011.029, i64 8 %.val = load ptr, ptr %20, align 8, !tbaa !37 @@ -1831,7 +1831,7 @@ _ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE7reserveEm.exit: ; preds = %_ZNS %23 = ptrtoint ptr %.val to i64 %24 = sub i64 %22, %23 %.not.i.i.i.i.i = icmp eq ptr %.val15, %.val - br i1 %.not.i.i.i.i.i, label %"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit", label %25 + br i1 %.not.i.i.i.i.i, label %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit, label %25 25: ; preds = %18 %26 = icmp ugt i64 %24, 9223372036854775800 @@ -1849,28 +1849,19 @@ _ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE7reserveEm.exit: ; preds = %_ZNS to label %.noexc18 unwind label %.loopexit15 .noexc18: ; preds = %27 + %29 = getelementptr inbounds nuw i8, ptr %28, i64 %24 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %28, ptr align 8 %.val, i64 %24, i1 false), !noalias !82 - br label %"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit" - -"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit": ; preds = %18, %.noexc18 - %.sroa.04.1 = phi ptr [ %28, %.noexc18 ], [ null, %18 ] - %.sroa.11.1 = getelementptr inbounds i8, ptr %.sroa.04.1, i64 %24 - %.not1425 = icmp eq ptr %.val15, %.val - br i1 %.not1425, label %._crit_edge, label %.lr.ph - -._crit_edge: ; preds = %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit, %"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit" - %29 = phi ptr [ %19, %"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit" ], [ %58, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit ] - %.promoted2744 = phi ptr [ %.promoted27, %"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit" ], [ %.promoted2745, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit ] - %.promoted40 = phi ptr [ %.promoted, %"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit" ], [ %60, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit ] - %.not.i.i.i = icmp eq ptr %.sroa.04.1, null - br i1 %.not.i.i.i, label %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit, label %30 - -30: ; preds = %._crit_edge - tail call void @_ZdlPvm(ptr noundef nonnull %.sroa.04.1, i64 noundef %24) #23 + br label %.lr.ph + +"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit": ; preds = %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit + tail call void @_ZdlPvm(ptr noundef nonnull %28, i64 noundef %24) #23 br label %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit -_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit: ; preds = %._crit_edge, %30 - %31 = getelementptr inbounds nuw i8, ptr %.sroa.011.029, i64 32 +_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit: ; preds = %18, %.loopexit63 + %.promoted3659 = phi ptr [ %60, %.loopexit63 ], [ %.promoted, %18 ] + %.promoted244057 = phi ptr [ %.promoted2441, %.loopexit63 ], [ %.promoted24, %18 ] + %30 = phi ptr [ %58, %.loopexit63 ], [ %19, %18 ] + %31 = getelementptr inbounds nuw i8, ptr %.sroa.09.026, i64 32 %.not = icmp eq ptr %31, %4 br i1 %.not, label %._crit_edge31, label %18 @@ -1889,7 +1880,7 @@ _ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit: ; preds = %._crit_edg %.promoted2742 = phi ptr [ %.promoted2745, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit ], [ %.promoted27, %"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit" ] %33 = phi ptr [ %59, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit ], [ %.promoted27, %"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit" ] %34 = phi ptr [ %60, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit ], [ %.promoted, %"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit" ] - %.sroa.01.026 = phi ptr [ %61, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit ], [ %.sroa.04.1, %"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit" ] + %.sroa.01.026 = phi ptr [ %61, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit ], [ %28, %"_ZZN5vcpkg21command_list_and_exitERKNS_17VcpkgCmdArgumentsERKNS_10VcpkgPathsEENK3$_1clERKNS_20InstalledPackageViewE.exit" ] %.not.i.i = icmp eq ptr %34, %33 br i1 %.not.i.i, label %38, label %35 @@ -1960,8 +1951,8 @@ _ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit: ; preds = %59 = phi ptr [ %57, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %33, %35 ] %60 = phi ptr [ %55, %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE17_M_realloc_insertIJS3_EEEvN9__gnu_cxx17__normal_iteratorIPS3_S5_EEDpOT_.exit.i.i ], [ %37, %35 ] %61 = getelementptr inbounds nuw i8, ptr %.sroa.01.026, i64 8 - %.not14 = icmp eq ptr %61, %.sroa.11.1 - br i1 %.not14, label %._crit_edge, label %.lr.ph + %.not14 = icmp eq ptr %61, %29 + br i1 %.not14, label %.loopexit63, label %.lr.ph .loopexit: ; preds = %_ZNKSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE12_M_check_lenEmPKc.exit.i.i.i %lpad.loopexit = landingpad { ptr, i32 } @@ -1973,27 +1964,23 @@ _ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EE9push_backEOS3_.exit: ; preds = cleanup br label %62 -62: ; preds = %.loopexit.split-lp, %.loopexit +62: ; preds = %.loopexit, %.loopexit.split-lp %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] - %.not.i.i.i21 = icmp eq ptr %.sroa.04.1, null - br i1 %.not.i.i.i21, label %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit22, label %63 - -63: ; preds = %62 - tail call void @_ZdlPvm(ptr noundef nonnull %.sroa.04.1, i64 noundef %24) #23 + tail call void @_ZdlPvm(ptr noundef nonnull %28, i64 noundef %24) #23 br label %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit22 -_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit22: ; preds = %.loopexit15, %.loopexit.split-lp16, %62, %63 - %64 = phi ptr [ %.promoted2742, %62 ], [ %.promoted2742, %63 ], [ %.promoted27, %.loopexit15 ], [ %.promoted27, %.loopexit.split-lp16 ] - %65 = phi ptr [ %32, %62 ], [ %32, %63 ], [ %19, %.loopexit15 ], [ %19, %.loopexit.split-lp16 ] - %.pn.pn = phi { ptr, i32 } [ %lpad.phi, %62 ], [ %lpad.phi, %63 ], [ %lpad.loopexit17, %.loopexit15 ], [ %lpad.loopexit.split-lp18, %.loopexit.split-lp16 ] +_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit22: ; preds = %.loopexit15, %.loopexit.split-lp16, %62 + %64 = phi ptr [ %.promoted2742, %62 ], [ %.promoted24, %.loopexit15 ], [ %.promoted27, %.loopexit.split-lp16 ] + %65 = phi ptr [ %32, %62 ], [ %19, %.loopexit15 ], [ %19, %.loopexit.split-lp16 ] + %.pn.pn = phi { ptr, i32 } [ %lpad.phi, %62 ], [ %lpad.loopexit17, %.loopexit15 ], [ %lpad.loopexit.split-lp18, %.loopexit.split-lp16 ] %.not.i.i.i23 = icmp eq ptr %65, null br i1 %.not.i.i.i23, label %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit24, label %66 66: ; preds = %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit22 + %66 = ptrtoint ptr %63 to i64 %67 = ptrtoint ptr %64 to i64 - %68 = ptrtoint ptr %65 to i64 - %69 = sub i64 %67, %68 - tail call void @_ZdlPvm(ptr noundef nonnull %65, i64 noundef %69) #23 + %68 = sub i64 %66, %67 + tail call void @_ZdlPvm(ptr noundef nonnull %64, i64 noundef %68) #23 br label %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit24 _ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit24: ; preds = %_ZNSt6vectorIPKN5vcpkg15StatusParagraphESaIS3_EED2Ev.exit22, %66 diff --git a/bench/vcpkg/optimized/vcpkgpaths.ll b/bench/vcpkg/optimized/vcpkgpaths.ll index b38b2194468..1b872dd9055 100644 --- a/bench/vcpkg/optimized/vcpkgpaths.ll +++ b/bench/vcpkg/optimized/vcpkgpaths.ll @@ -21283,21 +21283,15 @@ _ZNSt6vectorIN5vcpkg17ToolsetArchOptionESaIS1_EE17_S_check_init_lenEmRKS2_.exit. %.not.i.i = icmp eq i64 %2, 0 br i1 %.not.i.i, label %_ZNSt12_Vector_baseIN5vcpkg17ToolsetArchOptionESaIS1_EE11_M_allocateEm.exit.thread.i, label %.lr.ph.i.i.i.i.preheader.i -_ZNSt12_Vector_baseIN5vcpkg17ToolsetArchOptionESaIS1_EE11_M_allocateEm.exit.thread.i: ; preds = %_ZNSt6vectorIN5vcpkg17ToolsetArchOptionESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i - %7 = getelementptr inbounds nuw i8, ptr null, i64 %.idx - %8 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %7, ptr %8, align 8, !tbaa !510 - br label %16 - .lr.ph.i.i.i.i.preheader.i: ; preds = %_ZNSt6vectorIN5vcpkg17ToolsetArchOptionESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i %9 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #33 to label %.noexc3 unwind label %18 .noexc3: ; preds = %.lr.ph.i.i.i.i.preheader.i - store ptr %9, ptr %0, align 8, !tbaa !513 + store ptr %9, ptr %0, align 8, !tbaa !510 %10 = getelementptr inbounds nuw i8, ptr %9, i64 %.idx %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %10, ptr %11, align 8, !tbaa !510 + store ptr %10, ptr %11, align 8, !tbaa !513 %12 = add nsw i64 %.idx, -24 %13 = urem i64 %12, 24 %14 = sub nuw nsw i64 %12, %13 @@ -21306,8 +21300,8 @@ _ZNSt12_Vector_baseIN5vcpkg17ToolsetArchOptionESaIS1_EE11_M_allocateEm.exit.thre %scevgep.i = getelementptr i8, ptr %9, i64 %15 br label %16 -16: ; preds = %.noexc3, %_ZNSt12_Vector_baseIN5vcpkg17ToolsetArchOptionESaIS1_EE11_M_allocateEm.exit.thread.i - %.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i, %.noexc3 ], [ null, %_ZNSt12_Vector_baseIN5vcpkg17ToolsetArchOptionESaIS1_EE11_M_allocateEm.exit.thread.i ] +16: ; preds = %_ZNSt6vectorIN5vcpkg17ToolsetArchOptionESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i, %.noexc3 + %.0.lcssa.i.i.i.i.i = phi ptr [ %scevgep.i, %.noexc3 ], [ null, %_ZNSt6vectorIN5vcpkg17ToolsetArchOptionESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i ] %17 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %.0.lcssa.i.i.i.i.i, ptr %17, align 8, !tbaa !514 ret void @@ -21315,13 +21309,13 @@ _ZNSt12_Vector_baseIN5vcpkg17ToolsetArchOptionESaIS1_EE11_M_allocateEm.exit.thre 18: ; preds = %.lr.ph.i.i.i.i.preheader.i, %6 %19 = landingpad { ptr, i32 } cleanup - %20 = load ptr, ptr %0, align 8, !tbaa !513 + %20 = load ptr, ptr %0, align 8, !tbaa !510 %.not.i.i4 = icmp eq ptr %20, null br i1 %.not.i.i4, label %_ZNSt12_Vector_baseIN5vcpkg17ToolsetArchOptionESaIS1_EED2Ev.exit, label %21 21: ; preds = %18 %22 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %23 = load ptr, ptr %22, align 8, !tbaa !510 + %23 = load ptr, ptr %22, align 8, !tbaa !513 %24 = ptrtoint ptr %23 to i64 %25 = ptrtoint ptr %20 to i64 %26 = sub i64 %24, %25 @@ -21335,13 +21329,13 @@ _ZNSt12_Vector_baseIN5vcpkg17ToolsetArchOptionESaIS1_EED2Ev.exit: ; preds = %18, ; Function Attrs: inlinehint mustprogress nounwind uwtable define linkonce_odr dso_local void @_ZN5vcpkg7ToolsetD2Ev(ptr noundef nonnull align 8 dereferenceable(160) %0) unnamed_addr #6 comdat align 2 personality ptr @__gxx_personality_v0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 136 - %3 = load ptr, ptr %2, align 8, !tbaa !513 + %3 = load ptr, ptr %2, align 8, !tbaa !510 %.not.i.i.i = icmp eq ptr %3, null br i1 %.not.i.i.i, label %_ZNSt6vectorIN5vcpkg17ToolsetArchOptionESaIS1_EED2Ev.exit, label %4 4: ; preds = %1 %5 = getelementptr inbounds nuw i8, ptr %0, i64 152 - %6 = load ptr, ptr %5, align 8, !tbaa !510 + %6 = load ptr, ptr %5, align 8, !tbaa !513 %7 = ptrtoint ptr %6 to i64 %8 = ptrtoint ptr %3 to i64 %9 = sub i64 %7, %8 @@ -40859,10 +40853,10 @@ attributes #34 = { nounwind willreturn memory(read) } !507 = !{!"_ZTSN5vcpkg11ZStringViewE", !32, i64 0} !508 = !{!"_ZTSN5vcpkg15CPUArchitectureE", !12, i64 0} !509 = !{!506, !508, i64 20} -!510 = !{!511, !512, i64 16} +!510 = !{!511, !512, i64 0} !511 = !{!"_ZTSNSt12_Vector_baseIN5vcpkg17ToolsetArchOptionESaIS1_EE17_Vector_impl_dataE", !512, i64 0, !512, i64 8, !512, i64 16} !512 = !{!"p1 _ZTSN5vcpkg17ToolsetArchOptionE", !11, i64 0} -!513 = !{!511, !512, i64 0} +!513 = !{!511, !512, i64 16} !514 = !{!511, !512, i64 8} !515 = !{!516} !516 = distinct !{!516, !517, !"_ZN3fmt3v1116make_format_argsINS0_7contextEJNS0_6detail9named_argIcN5vcpkg10StringViewEEEELm1ELy4611686018427387919ETnNSt9enable_ifIXneT1_Li0EEiE4typeELi0EEENS3_16format_arg_storeIT_XsZT0_EXT1_EXT2_EEEDpRT0_: argument 0"} diff --git a/bench/wasmedge/optimized/canon.ll b/bench/wasmedge/optimized/canon.ll index c0737df617e..6b3e59e25bc 100644 --- a/bench/wasmedge/optimized/canon.ll +++ b/bench/wasmedge/optimized/canon.ll @@ -4944,35 +4944,29 @@ define linkonce_odr hidden void @_ZN8WasmEdge3AST12FunctionTypeC2EN5cxx204spanIK _ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i: ; preds = %5 %.not.i.i.i = icmp eq i64 %2, 0 - br i1 %.not.i.i.i, label %_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i, label %10 + br i1 %.not.i.i.i, label %15, label %_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i _ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i - %8 = getelementptr inbounds nuw i8, ptr null, i64 %.idx - %9 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %8, ptr %9, align 8 - br label %17 + %9 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #21 + to label %.noexc4.i unwind label %12 -10: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i - %11 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #21 - to label %.noexc4.i unwind label %14 - -.noexc4.i: ; preds = %10 - store ptr %11, ptr %0, align 8 - %12 = getelementptr inbounds nuw i8, ptr %11, i64 %.idx +.noexc4.i: ; preds = %8 + store ptr %9, ptr %0, align 8 + %12 = getelementptr inbounds nuw i8, ptr %9, i64 %.idx %13 = getelementptr inbounds nuw i8, ptr %0, i64 16 store ptr %12, ptr %13, align 8 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %11, ptr align 4 %1, i64 %.idx, i1 false) + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %9, ptr align 4 %1, i64 %.idx, i1 false) br label %17 -14: ; preds = %10, %7 +14: ; preds = %8, %7 %15 = landingpad { ptr, i32 } catch ptr null %16 = load ptr, ptr %0, align 8 %.not.i.i5.i = icmp eq ptr %16, null br i1 %.not.i.i5.i, label %.body, label %.body.sink.split -17: ; preds = %.noexc4.i, %_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i - %18 = phi ptr [ %8, %_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i ], [ %12, %.noexc4.i ] +17: ; preds = %.noexc4.i, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i + %1_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i = phi ptr [ %12, %.noexc4.i ], [ null, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i ] %19 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %18, ptr %19, align 8 %20 = getelementptr inbounds nuw i8, ptr %0, i64 24 @@ -4983,52 +4977,46 @@ _ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i: 22: ; preds = %17 invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.90) #24 - to label %.noexc.i7 unwind label %29 + to label %.noexc.i7 unwind label %25 .noexc.i7: ; preds = %22 unreachable _ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i1: ; preds = %17 %.not.i.i.i2 = icmp eq i64 %4, 0 - br i1 %.not.i.i.i2, label %_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i6, label %25 + br i1 %.not.i.i.i2, label %2_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i, label %21 + +21: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i1 + %22 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx15) #21 + to label %.noexc4.i5 unwind label %25 -_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i6: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i1 - %23 = getelementptr inbounds nuw i8, ptr null, i64 %.idx16 +_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i6: ; preds = %21 + store ptr %22, ptr %18, align 8 + %23 = getelementptr inbounds nuw i8, ptr %22, i64 %.idx15 %24 = getelementptr inbounds nuw i8, ptr %0, i64 40 store ptr %23, ptr %24, align 8 - br label %32 - -25: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i1 - %26 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx16) #21 - to label %.noexc4.i5 unwind label %29 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %22, ptr align 4 %3, i64 %.idx15, i1 false) + br label %28 -.noexc4.i5: ; preds = %25 - store ptr %26, ptr %20, align 8 - %27 = getelementptr inbounds nuw i8, ptr %26, i64 %.idx16 - %28 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store ptr %27, ptr %28, align 8 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %26, ptr align 4 %3, i64 %.idx16, i1 false) - br label %32 - -29: ; preds = %25, %22 - %30 = landingpad { ptr, i32 } +.noexc4.i5: ; preds = %21, %20 + %26 = landingpad { ptr, i32 } catch ptr null %31 = load ptr, ptr %20, align 8 %.not.i.i5.i3 = icmp eq ptr %31, null br i1 %.not.i.i5.i3, label %.body, label %.body.sink.split -32: ; preds = %.noexc4.i5, %_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i6 - %33 = phi ptr [ %23, %_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i6 ], [ %27, %.noexc4.i5 ] +32: ; preds = %.noexc4.i5, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i1 + %33 = phi ptr [ %23, %_ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i6 ], [ null, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i1 ] %34 = getelementptr inbounds nuw i8, ptr %0, i64 32 store ptr %33, ptr %34, align 8 %35 = getelementptr inbounds nuw i8, ptr %0, i64 48 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %35, i8 0, i64 24, i1 false) ret void -.body.sink.split: ; preds = %29, %14 - %.sink24 = phi i64 [ 16, %14 ], [ 40, %29 ] - %.sink21 = phi ptr [ %16, %14 ], [ %31, %29 ] - %eh.lpad-body.ph = phi { ptr, i32 } [ %15, %14 ], [ %30, %29 ] +.body.sink.split: ; preds = %25, %14 + %.sink24 = phi i64 [ 16, %14 ], [ 40, %25 ] + %.sink21 = phi ptr [ %16, %14 ], [ %31, %25 ] + %eh.lpad-body.ph = phi { ptr, i32 } [ %15, %14 ], [ %26, %25 ] %36 = getelementptr inbounds nuw i8, ptr %0, i64 %.sink24 %37 = load ptr, ptr %36, align 8 %38 = ptrtoint ptr %37 to i64 @@ -5037,8 +5025,8 @@ _ZNSt12_Vector_baseIN8WasmEdge7ValTypeESaIS1_EE11_M_allocateEm.exit.thread.i.i6: tail call void @_ZdlPvm(ptr noundef nonnull %.sink21, i64 noundef %40) #22 br label %.body -.body: ; preds = %.body.sink.split, %29, %14 - %eh.lpad-body = phi { ptr, i32 } [ %15, %14 ], [ %30, %29 ], [ %eh.lpad-body.ph, %.body.sink.split ] +.body: ; preds = %.body.sink.split, %25, %14 + %eh.lpad-body = phi { ptr, i32 } [ %15, %14 ], [ %26, %25 ], [ %eh.lpad-body.ph, %.body.sink.split ] %41 = extractvalue { ptr, i32 } %eh.lpad-body, 0 tail call void @__clang_call_terminate(ptr %41) #25 unreachable diff --git a/bench/wasmedge/optimized/compiler.ll b/bench/wasmedge/optimized/compiler.ll index bfbe6f40686..69d89850bbc 100644 --- a/bench/wasmedge/optimized/compiler.ll +++ b/bench/wasmedge/optimized/compiler.ll @@ -5339,12 +5339,13 @@ _ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i: ; p 27: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i %28 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %24) #19 + %29 = getelementptr inbounds nuw i8, ptr %28, i64 %24 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %28, ptr align 4 %19, i64 %24, i1 false) br label %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EEC2IN9__gnu_cxx17__normal_iteratorIPKS1_S3_EEvEET_SA_RKS2_.exit _ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EEC2IN9__gnu_cxx17__normal_iteratorIPKS1_S3_EEvEET_SA_RKS2_.exit: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i, %27 - %.sroa.029.0 = phi ptr [ %28, %27 ], [ null, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i ] - %.sroa.732.0 = getelementptr inbounds nuw i8, ptr %.sroa.029.0, i64 %24 + %.sroa.029.0 = phi ptr [ null, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i ], [ %28, %27 ] + %.sroa.731.0 = phi ptr [ null, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i ], [ %29, %27 ] %29 = getelementptr inbounds nuw i8, ptr %18, i64 24 %30 = load ptr, ptr %29, align 8 %31 = getelementptr inbounds nuw i8, ptr %18, i64 32 @@ -5361,30 +5362,31 @@ _ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EEC2IN9__gnu_cxx17__normal_iteratorIPKS1_S _ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i16: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EEC2IN9__gnu_cxx17__normal_iteratorIPKS1_S3_EEvEET_SA_RKS2_.exit %.not.i.i.i17 = icmp eq ptr %32, %30 - br i1 %.not.i.i.i17, label %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit23, label %38 + br i1 %.not.i.i.i17, label %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit22, label %38 38: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i16 %39 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %35) #19 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %39, ptr align 4 %30, i64 %35, i1 false) - br label %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit23 - -_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit23: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i16, %38 - %.sroa.0.0 = phi ptr [ %39, %38 ], [ null, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i16 ] - %.sroa.7.0 = getelementptr inbounds nuw i8, ptr %.sroa.0.0, i64 %35 - store ptr %.sroa.029.0, ptr %0, align 8 - %40 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %.sroa.732.0, ptr %40, align 8 - %41 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %.sroa.732.0, ptr %41, align 8 - %42 = getelementptr inbounds nuw i8, ptr %0, i64 24 - store ptr %.sroa.0.0, ptr %42, align 8 - %43 = getelementptr inbounds nuw i8, ptr %0, i64 32 - store ptr %.sroa.7.0, ptr %43, align 8 - %44 = getelementptr inbounds nuw i8, ptr %0, i64 40 - store ptr %.sroa.7.0, ptr %44, align 8 - br label %45 + %41 = getelementptr inbounds nuw i8, ptr %40, i64 %35 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %40, ptr align 4 %31, i64 %36, i1 false) + br label %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit22 + +_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit22: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i16, %39 + %.sroa.0.0 = phi ptr [ null, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i16 ], [ %40, %39 ] + %.sroa.7.0 = phi ptr [ null, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i16 ], [ %41, %38 ] + store ptr %.sroa.028.0, ptr %0, align 8 + %42 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %.sroa.731.0, ptr %42, align 8 + %43 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr %.sroa.731.0, ptr %43, align 8 + %44 = getelementptr inbounds nuw i8, ptr %0, i64 24 + store ptr %.sroa.0.0, ptr %44, align 8 + %45 = getelementptr inbounds nuw i8, ptr %0, i64 32 + store ptr %.sroa.7.0, ptr %45, align 8 + %46 = getelementptr inbounds nuw i8, ptr %0, i64 40 + store ptr %.sroa.7.0, ptr %46, align 8 + br label %47 -45: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit23, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit14, %5 +45: ; preds = %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit22, %_ZNSt6vectorIN8WasmEdge7ValTypeESaIS1_EED2Ev.exit14, %5 ret void } diff --git a/bench/wasmedge/optimized/environ.ll b/bench/wasmedge/optimized/environ.ll index 51f56b8ffdb..0aacebcad87 100644 --- a/bench/wasmedge/optimized/environ.ll +++ b/bench/wasmedge/optimized/environ.ll @@ -33511,11 +33511,9 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_S_ch br i1 %.not.i.i.i, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit.thread, label %.lr.ph.i.i.i.i.preheader.i.i _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit.thread: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i.i - %.sroa.11.020 = getelementptr inbounds nuw i8, ptr null, i64 %7 %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 %11 = load ptr, ptr %10, align 8 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %0, i8 0, i64 16, i1 false) - store ptr %.sroa.11.020, ptr %10, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) br label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i .lr.ph.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i.i @@ -33540,14 +33538,14 @@ _ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE to label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit unwind label %26 _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit: ; preds = %.lr.ph.i.i.i.i.i.i + %17 = getelementptr inbounds nuw i8, ptr %12, i64 %7 %.pre = load ptr, ptr %0, align 8 %.pre17 = load ptr, ptr %3, align 8 - %.sroa.11.0 = getelementptr inbounds nuw i8, ptr %12, i64 %7 - %17 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %18 = load ptr, ptr %17, align 8 + %.sroa.11.0 = getelementptr inbounds nuw i8, ptr %0, i64 16 + %19 = load ptr, ptr %18, align 8 store ptr %12, ptr %0, align 8 store ptr %14, ptr %3, align 8 - store ptr %.sroa.11.0, ptr %17, align 8 + store ptr %17, ptr %18, align 8 %.not4.i.i.i.i = icmp eq ptr %.pre, %.pre17 br i1 %.not4.i.i.i.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i, label %.lr.ph.i.i.i.i @@ -33559,16 +33557,16 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13 br i1 %.not.i.i.i.i, label %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i, label %.lr.ph.i.i.i.i, !llvm.loop !7 _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i: ; preds = %.lr.ph.i.i.i.i, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit.thread, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit - %20 = phi ptr [ %11, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit.thread ], [ %18, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit ], [ %18, %.lr.ph.i.i.i.i ] + %20 = phi ptr [ %11, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit.thread ], [ %19, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit ], [ %19, %.lr.ph.i.i.i.i ] %21 = phi ptr [ %2, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit.thread ], [ %.pre, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2ISt13move_iteratorIN9__gnu_cxx17__normal_iteratorIPS5_S7_EEEvEET_SF_RKS6_.exit ], [ %.pre, %.lr.ph.i.i.i.i ] %.not.i.i.i10 = icmp eq ptr %21, null br i1 %.not.i.i.i10, label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit, label %22 22: ; preds = %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i - %23 = ptrtoint ptr %20 to i64 %24 = ptrtoint ptr %21 to i64 - %25 = sub i64 %23, %24 - tail call void @_ZdlPvm(ptr noundef nonnull %21, i64 noundef %25) #21 + %25 = ptrtoint ptr %22 to i64 + %26 = sub i64 %24, %25 + tail call void @_ZdlPvm(ptr noundef nonnull %22, i64 noundef %26) #21 br label %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit: ; preds = %22, %_ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSaIT0_E.exit.i, %_ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i diff --git a/bench/xgboost/optimized/gradient_index_format.ll b/bench/xgboost/optimized/gradient_index_format.ll index 293e098343f..abe8473c70c 100644 --- a/bench/xgboost/optimized/gradient_index_format.ll +++ b/bench/xgboost/optimized/gradient_index_format.ll @@ -1231,23 +1231,29 @@ _ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i: ; preds = %_ZN7xgboost6 .noexc4.i: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i %29 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %27) #32 + %30 = getelementptr inbounds nuw i8, ptr %29, i64 %27 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %29, ptr align 1 %26, i64 %27, i1 false) br label %_ZNSt6vectorIhSaIhEEC2IPhvEET_S4_RKS0_.exit -_ZNSt6vectorIhSaIhEEC2IPhvEET_S4_RKS0_.exit: ; preds = %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i, %.noexc4.i - %.sroa.046.0 = phi ptr [ %29, %.noexc4.i ], [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ] +_ZNSt6vectorIhSaIhEEC2IPhvEET_S4_RKS0_.exit: ; preds = %.noexc4.i, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i + %.sroa.046.0 = phi ptr [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ], [ %30, %.noexc4.i ] + %.sroa.046.0 = phi ptr [ null, %_ZNSt6vectorIhSaIhEE17_S_check_init_lenEmRKS0_.exit.i.i ], [ %29, %.noexc4.i ] call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) #10 - store i64 %27, ptr %7, align 8, !tbaa !35 - %30 = invoke noundef i64 @_ZN7xgboost6common18AlignedWriteStream5WriteEPKvm(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %7, i64 noundef 8) - to label %_ZN7xgboost6common18AlignedWriteStream5WriteImEENSt9enable_ifIXsr3stdE8is_pod_vIT_EEmE4typeERKS4_.exit unwind label %36 + %31 = ptrtoint ptr %.sroa.16.0 to i64 + %32 = ptrtoint ptr %.sroa.046.0 to i64 + %33 = sub i64 %31, %32 + store i64 %33, ptr %7, align 8, !tbaa !35 + %34 = invoke noundef i64 @_ZN7xgboost6common18AlignedWriteStream5WriteEPKvm(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 8 dereferenceable(8) %7, i64 noundef 8) + to label %_ZN7xgboost6common18AlignedWriteStream5WriteImEENSt9enable_ifIXsr3stdE8is_pod_vIT_EEmE4typeERKS4_.exit unwind label %41 _ZN7xgboost6common18AlignedWriteStream5WriteImEENSt9enable_ifIXsr3stdE8is_pod_vIT_EEmE4typeERKS4_.exit: ; preds = %_ZNSt6vectorIhSaIhEEC2IPhvEET_S4_RKS0_.exit - %31 = add i64 %24, %30 + %31 = add i64 %24, %34 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) #10 - br i1 %.not.i.i.i, label %40, label %32 + %36 = icmp eq ptr %.sroa.046.0, %.sroa.16.0 + br i1 %36, label %45, label %37 32: ; preds = %_ZN7xgboost6common18AlignedWriteStream5WriteImEENSt9enable_ifIXsr3stdE8is_pod_vIT_EEmE4typeERKS4_.exit - %33 = invoke noundef i64 @_ZN7xgboost6common18AlignedWriteStream5WriteEPKvm(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef %.sroa.046.0, i64 noundef %27) + %33 = invoke noundef i64 @_ZN7xgboost6common18AlignedWriteStream5WriteEPKvm(ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef %.sroa.046.0, i64 noundef %33) to label %34 unwind label %38 34: ; preds = %32 @@ -1321,7 +1327,7 @@ _ZN7xgboost6common18AlignedWriteStream5WriteIbEENSt9enable_ifIXsr3stdE8is_pod_vI br i1 %.not.i.i.i41, label %_ZNSt6vectorIhSaIhEED2Ev.exit, label %63 63: ; preds = %62 - call void @_ZdlPvm(ptr noundef nonnull %.sroa.046.0, i64 noundef %27) #30 + call void @_ZdlPvm(ptr noundef nonnull %.sroa.046.0, i64 noundef %33) #30 br label %_ZNSt6vectorIhSaIhEED2Ev.exit _ZNSt6vectorIhSaIhEED2Ev.exit: ; preds = %62, %63 @@ -1345,7 +1351,7 @@ _ZNSt6vectorIhSaIhEED2Ev.exit: ; preds = %62, %63 br i1 %.not.i.i.i43, label %.body, label %72 72: ; preds = %71 - call void @_ZdlPvm(ptr noundef nonnull %.sroa.046.0, i64 noundef %27) #30 + call void @_ZdlPvm(ptr noundef nonnull %.sroa.046.0, i64 noundef %33) #30 br label %.body .body: ; preds = %72, %71 diff --git a/bench/xgboost/optimized/quantile_dmatrix.ll b/bench/xgboost/optimized/quantile_dmatrix.ll index a24a9b67f6f..82adad9ec4e 100644 --- a/bench/xgboost/optimized/quantile_dmatrix.ll +++ b/bench/xgboost/optimized/quantile_dmatrix.ll @@ -7080,11 +7080,8 @@ define linkonce_odr void @_ZSt11make_uniqueIN7xgboost6common19HostSketchContaine .noexc9.thread: ; preds = %6 %23 = getelementptr inbounds nuw i8, ptr %7, i64 8 - %24 = getelementptr inbounds i8, ptr null, i64 %22 - %25 = getelementptr inbounds nuw i8, ptr %7, i64 16 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %7, i8 0, i64 16, i1 false) - store ptr %24, ptr %25, align 8, !tbaa !271 - br label %33 + %24 = getelementptr inbounds nuw i8, ptr %7, i64 16 + br label %32 26: ; preds = %6 %27 = icmp ugt i64 %22, 9223372036854775800 @@ -7099,43 +7096,43 @@ define linkonce_odr void @_ZSt11make_uniqueIN7xgboost6common19HostSketchContaine _ZNSt16allocator_traitsISaImEE8allocateERS0_m.exit.i.i.i.i: ; preds = %26 %28 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %22) #33 - to label %29 unwind label %46 - -29: ; preds = %_ZNSt16allocator_traitsISaImEE8allocateERS0_m.exit.i.i.i.i - store ptr %28, ptr %7, align 8, !tbaa !135 - %30 = getelementptr inbounds nuw i8, ptr %7, i64 8 - store ptr %28, ptr %30, align 8, !tbaa !136 - %31 = getelementptr inbounds nuw i8, ptr %28, i64 %22 - %32 = getelementptr inbounds nuw i8, ptr %7, i64 16 - store ptr %31, ptr %32, align 8, !tbaa !271 - tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %28, ptr align 8 %19, i64 %22, i1 false) - br label %33 - -33: ; preds = %29, %.noexc9.thread - %34 = phi ptr [ %25, %.noexc9.thread ], [ %32, %29 ] - %35 = phi ptr [ %24, %.noexc9.thread ], [ %31, %29 ] - %36 = phi ptr [ %23, %.noexc9.thread ], [ %30, %29 ] - store ptr %35, ptr %36, align 8, !tbaa !136 - %37 = load i8, ptr %5, align 1, !tbaa !128, !range !92, !noundef !93 - %38 = trunc nuw i8 %37 to i1 - invoke void @_ZN7xgboost6common19HostSketchContainerC1EPKNS_7ContextEiNS0_4SpanIKNS_11FeatureTypeELm18446744073709551615EEESt6vectorImSaImEEb(ptr noundef nonnull align 8 dereferenceable(208) %8, ptr noundef %9, i32 noundef %10, i64 %16, ptr %13, ptr noundef nonnull %7, i1 noundef zeroext %38) - to label %39 unwind label %48 - -39: ; preds = %33 - store ptr %8, ptr %0, align 8, !tbaa !301 - %40 = load ptr, ptr %7, align 8, !tbaa !135 - %.not.i.i.i = icmp eq ptr %40, null - br i1 %.not.i.i.i, label %_ZNSt6vectorImSaImEED2Ev.exit, label %41 + to label %28 unwind label %46 + +41: ; preds = %_ZNSt16allocator_traitsISaImEE8allocateERS0_m.exit.i.i.i.i + store ptr %27, ptr %7, align 8, !tbaa !135 + %29 = getelementptr inbounds nuw i8, ptr %7, i64 8 + store ptr %27, ptr %29, align 8, !tbaa !136 + %30 = getelementptr inbounds nuw i8, ptr %27, i64 %22 + %31 = getelementptr inbounds nuw i8, ptr %7, i64 16 + store ptr %30, ptr %31, align 8, !tbaa !271 + tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 8 %27, ptr align 8 %19, i64 %22, i1 false) + br label %32 -41: ; preds = %39 - %42 = load ptr, ptr %34, align 8, !tbaa !271 - %43 = ptrtoint ptr %42 to i64 - %44 = ptrtoint ptr %40 to i64 - %45 = sub i64 %43, %44 - call void @_ZdlPvm(ptr noundef nonnull %40, i64 noundef %45) #30 +32: ; preds = %28, %.noexc9.thread + %33 = phi ptr [ %24, %.noexc9.thread ], [ %31, %28 ] + %34 = phi ptr [ null, %.noexc9.thread ], [ %30, %28 ] + %35 = phi ptr [ %23, %.noexc9.thread ], [ %29, %28 ] + store ptr %34, ptr %35, align 8, !tbaa !136 + %36 = load i8, ptr %5, align 1, !tbaa !128, !range !92, !noundef !93 + %37 = trunc nuw i8 %36 to i1 + invoke void @_ZN7xgboost6common19HostSketchContainerC1EPKNS_7ContextEiNS0_4SpanIKNS_11FeatureTypeELm18446744073709551615EEESt6vectorImSaImEEb(ptr noundef nonnull align 8 dereferenceable(208) %8, ptr noundef %9, i32 noundef %10, i64 %16, ptr %13, ptr noundef nonnull %7, i1 noundef zeroext %37) + to label %38 unwind label %47 + +38: ; preds = %32 + store ptr %8, ptr %0, align 8, !tbaa !301 + %39 = load ptr, ptr %7, align 8, !tbaa !135 + %.not.i.i.i = icmp eq ptr %39, null + br i1 %.not.i.i.i, label %_ZNSt6vectorImSaImEED2Ev.exit, label %40 + +40: ; preds = %38 + %41 = load ptr, ptr %33, align 8, !tbaa !271 + %42 = ptrtoint ptr %41 to i64 + %43 = ptrtoint ptr %39 to i64 + %44 = sub i64 %42, %43 + call void @_ZdlPvm(ptr noundef nonnull %39, i64 noundef %44) #30 br label %_ZNSt6vectorImSaImEED2Ev.exit -_ZNSt6vectorImSaImEED2Ev.exit: ; preds = %39, %41 +_ZNSt6vectorImSaImEED2Ev.exit: ; preds = %38, %40 ret void 46: ; preds = %_ZNSt16allocator_traitsISaImEE8allocateERS0_m.exit.i.i.i.i, %.noexc.i.i @@ -7143,7 +7140,7 @@ _ZNSt6vectorImSaImEED2Ev.exit: ; preds = %39, %41 cleanup br label %_ZNSt6vectorImSaImEED2Ev.exit11 -48: ; preds = %33 +48: ; preds = %32 %49 = landingpad { ptr, i32 } cleanup %50 = load ptr, ptr %7, align 8, !tbaa !135 @@ -7151,7 +7148,7 @@ _ZNSt6vectorImSaImEED2Ev.exit: ; preds = %39, %41 br i1 %.not.i.i.i10, label %_ZNSt6vectorImSaImEED2Ev.exit11, label %51 51: ; preds = %48 - %52 = load ptr, ptr %34, align 8, !tbaa !271 + %52 = load ptr, ptr %33, align 8, !tbaa !271 %53 = ptrtoint ptr %52 to i64 %54 = ptrtoint ptr %50 to i64 %55 = sub i64 %53, %54 diff --git a/bench/yalantinglibs/optimized/benchmark.ll b/bench/yalantinglibs/optimized/benchmark.ll index 257ad2b0d62..b38af0b53c2 100644 --- a/bench/yalantinglibs/optimized/benchmark.ll +++ b/bench/yalantinglibs/optimized/benchmark.ll @@ -20663,6 +20663,7 @@ if.then.i.i.i.i.i.i.i.i.i.i.i: ; preds = %_ZNSt6vectorI5rect2 to label %call5.i.i.i.i.noexc.i.i unwind label %_ZNSt12_Vector_baseI5rect2IiESaIS1_EED2Ev.exit.i.i call5.i.i.i.i.noexc.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i.i.i + %add.ptr.i.i.i = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i1.i.i, i64 %sub.ptr.sub.i3 tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 4 %call5.i.i.i.i1.i.i, ptr align 4 %1, i64 %sub.ptr.sub.i3, i1 false) br label %invoke.cont21.i @@ -20675,8 +20676,8 @@ _ZNSt12_Vector_baseI5rect2IiESaIS1_EED2Ev.exit.i.i: ; preds = %if.then.i.i.i.i.i to label %return unwind label %terminate.lpad.i invoke.cont21.i: ; preds = %call5.i.i.i.i.noexc.i.i, %_ZNSt6vectorI5rect2IiESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i - %ref.tmp.sroa.0.0.i = phi ptr [ %call5.i.i.i.i1.i.i, %call5.i.i.i.i.noexc.i.i ], [ null, %_ZNSt6vectorI5rect2IiESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i ] - %ref.tmp.sroa.9.0.i = getelementptr inbounds nuw i8, ptr %ref.tmp.sroa.0.0.i, i64 %sub.ptr.sub.i3 + %ref.tmp.sroa.0.0.i = phi ptr [ null, %_ZNSt6vectorI5rect2IiESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i ], [ %call5.i.i.i.i1.i.i, %call5.i.i.i.i.noexc.i.i ] + %ref.tmp.sroa.9.0.i = phi ptr [ null, %_ZNSt6vectorI5rect2IiESaIS1_EE17_S_check_init_lenEmRKS2_.exit.i.i.i ], [ %add.ptr.i.i.i, %call5.i.i.i.i.noexc.i.i ] store ptr %ref.tmp.sroa.0.0.i, ptr %this, align 8 store ptr %ref.tmp.sroa.9.0.i, ptr %_M_finish.i, align 8 store ptr %ref.tmp.sroa.9.0.i, ptr %_M_end_of_storage.i, align 8 @@ -22657,13 +22658,7 @@ if.then.i.i: ; preds = %entry _ZNSt6vectorI6personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i: ; preds = %entry %cmp.not.i.i = icmp eq ptr %__last.coerce, %__first.coerce - br i1 %cmp.not.i.i, label %_ZNSt12_Vector_baseI6personSaIS0_EE11_M_allocateEm.exit.thread.i, label %for.body.i.i.i.i.preheader.i - -_ZNSt12_Vector_baseI6personSaIS0_EE11_M_allocateEm.exit.thread.i: ; preds = %_ZNSt6vectorI6personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i - %add.ptr3.i = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i - %_M_end_of_storage4.i = getelementptr inbounds nuw i8, ptr %this, i64 16 - store ptr %add.ptr3.i, ptr %_M_end_of_storage4.i, align 8 - br label %invoke.cont11 + br i1 %cmp.not.i.i, label %invoke.cont11, label %for.body.i.i.i.i.preheader.i for.body.i.i.i.i.preheader.i: ; preds = %_ZNSt6vectorI6personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i %call5.i.i.i.i1 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %sub.ptr.sub.i.i.i.i.i) #27 @@ -22724,8 +22719,8 @@ _ZSt10_ConstructI6personJS0_EEvPT_DpOT0_.exit.i.i.i.i.i: ; preds = %if.else.i.i. %cmp.i.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i.i, %__last.coerce br i1 %cmp.i.i.i.i.i.i.i, label %invoke.cont11, label %for.body.i.i.i.i.i, !llvm.loop !413 -invoke.cont11: ; preds = %_ZSt10_ConstructI6personJS0_EEvPT_DpOT0_.exit.i.i.i.i.i, %_ZNSt12_Vector_baseI6personSaIS0_EE11_M_allocateEm.exit.thread.i - %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseI6personSaIS0_EE11_M_allocateEm.exit.thread.i ], [ %incdec.ptr.i.i.i.i.i, %_ZSt10_ConstructI6personJS0_EEvPT_DpOT0_.exit.i.i.i.i.i ] +invoke.cont11: ; preds = %_ZSt10_ConstructI6personJS0_EEvPT_DpOT0_.exit.i.i.i.i.i, %_ZNSt6vectorI6personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i + %__cur.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorI6personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i ], [ %incdec.ptr.i.i.i.i.i, %_ZSt10_ConstructI6personJS0_EEvPT_DpOT0_.exit.i.i.i.i.i ] %_M_finish.i = getelementptr inbounds nuw i8, ptr %this, i64 8 store ptr %__cur.0.lcssa.i.i.i.i.i, ptr %_M_finish.i, align 8 ret void @@ -23475,6 +23470,7 @@ for.body.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorI9zc_pe to label %call5.i.i.i.i.noexc.i unwind label %_ZNSt12_Vector_baseI9zc_personSaIS0_EED2Ev.exit.i call5.i.i.i.i.noexc.i: ; preds = %for.body.i.i.i.i.preheader.i.i + %add.ptr.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %reass.sub.fr.i %2 = add i64 %reass.sub.fr.i, -40 %3 = urem i64 %2, 40 %4 = sub nuw i64 %2, %3 @@ -23491,10 +23487,10 @@ _ZNSt12_Vector_baseI9zc_personSaIS0_EED2Ev.exit.i: ; preds = %if.then.i.i.i, %fo invoke void @__cxa_end_catch() to label %return unwind label %terminate.lpad -invoke.cont21: ; preds = %_ZNSt6vectorI9zc_personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i, %call5.i.i.i.i.noexc.i - %ref.tmp.sroa.0.0 = phi ptr [ %call5.i.i.i.i1.i, %call5.i.i.i.i.noexc.i ], [ null, %_ZNSt6vectorI9zc_personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i ] - %__cur.0.lcssa.i.i.i.i.i.i = phi ptr [ %scevgep.i.i, %call5.i.i.i.i.noexc.i ], [ null, %_ZNSt6vectorI9zc_personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i ] - %ref.tmp.sroa.9.0 = getelementptr inbounds i8, ptr %ref.tmp.sroa.0.0, i64 %reass.sub.fr.i +invoke.cont21: ; preds = %call5.i.i.i.i.noexc.i, %_ZNSt6vectorI9zc_personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i + %ref.tmp.sroa.0.0 = phi ptr [ null, %_ZNSt6vectorI9zc_personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i ], [ %call5.i.i.i.i1.i, %call5.i.i.i.i.noexc.i ] + %__cur.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorI9zc_personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i ], [ %add.ptr.i.i, %call5.i.i.i.i.noexc.i ] + %__cur.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorI9zc_personSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i ], [ %scevgep.i.i, %call5.i.i.i.i.noexc.i ] %_M_end_of_storage.i4.i.i = getelementptr inbounds nuw i8, ptr %__c, i64 16 store ptr %ref.tmp.sroa.0.0, ptr %__c, align 8 store ptr %__cur.0.lcssa.i.i.i.i.i.i, ptr %_M_finish.i, align 8 @@ -25653,10 +25649,7 @@ _ZNSt6vectorI6WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i: ; preds = %invo br i1 %cmp.not.i.i.i, label %invoke.cont21.thread, label %for.body.i.i.i.i.preheader.i.i invoke.cont21.thread: ; preds = %_ZNSt6vectorI6WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i - %ref.tmp.sroa.11.018 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i.i - %_M_end_of_storage.i4.i.i19 = getelementptr inbounds nuw i8, ptr %__c, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %__c, i8 0, i64 16, i1 false) - store ptr %ref.tmp.sroa.11.018, ptr %_M_end_of_storage.i4.i.i19, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %__c, i8 0, i64 24, i1 false) br label %invoke.cont.i for.body.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorI6WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i @@ -25717,13 +25710,13 @@ _ZNSt12_Vector_baseI6WeaponSaIS0_EED2Ev.exit.i: ; preds = %if.then.i.i.i, %for to label %return unwind label %terminate.lpad invoke.cont21: ; preds = %_ZSt10_ConstructI6WeaponJS0_EEvPT_DpOT0_.exit.i.i.i.i.i.i + %add.ptr.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %.pre = load ptr, ptr %__c, align 8 %.pre15 = load ptr, ptr %_M_finish.i, align 8 - %ref.tmp.sroa.11.0 = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %_M_end_of_storage.i4.i.i = getelementptr inbounds nuw i8, ptr %__c, i64 16 store ptr %call5.i.i.i.i1.i, ptr %__c, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %_M_finish.i, align 8 - store ptr %ref.tmp.sroa.11.0, ptr %_M_end_of_storage.i4.i.i, align 8 + store ptr %add.ptr.i.i, ptr %_M_end_of_storage.i4.i.i, align 8 %cmp.not3.i.i.i.i = icmp eq ptr %.pre, %.pre15 br i1 %cmp.not3.i.i.i.i, label %invoke.cont.i, label %for.body.i.i.i.i @@ -27850,10 +27843,7 @@ _ZNSt6vectorI7MonsterSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i: ; preds = %inv br i1 %cmp.not.i.i.i, label %invoke.cont21.thread, label %for.body.i.i.i.i.preheader.i.i invoke.cont21.thread: ; preds = %_ZNSt6vectorI7MonsterSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i - %ref.tmp.sroa.11.014 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i.i - %_M_end_of_storage.i4.i.i15 = getelementptr inbounds nuw i8, ptr %__c, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %__c, i8 0, i64 16, i1 false) - store ptr %ref.tmp.sroa.11.014, ptr %_M_end_of_storage.i4.i.i15, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %__c, i8 0, i64 24, i1 false) br label %invoke.cont.i for.body.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorI7MonsterSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i @@ -27878,13 +27868,13 @@ _ZNSt12_Vector_baseI7MonsterSaIS0_EED2Ev.exit.i: ; preds = %if.then.i.i.i, %for to label %return unwind label %terminate.lpad invoke.cont21: ; preds = %for.body.i.i.i.i.i.i + %add.ptr.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %.pre = load ptr, ptr %__c, align 8 %.pre11 = load ptr, ptr %_M_finish.i, align 8 - %ref.tmp.sroa.11.0 = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %_M_end_of_storage.i4.i.i = getelementptr inbounds nuw i8, ptr %__c, i64 16 store ptr %call5.i.i.i.i1.i, ptr %__c, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %_M_finish.i, align 8 - store ptr %ref.tmp.sroa.11.0, ptr %_M_end_of_storage.i4.i.i, align 8 + store ptr %add.ptr.i.i, ptr %_M_end_of_storage.i4.i.i, align 8 %cmp.not3.i.i.i.i = icmp eq ptr %.pre, %.pre11 br i1 %cmp.not3.i.i.i.i, label %invoke.cont.i, label %for.body.i.i.i.i @@ -28982,6 +28972,7 @@ for.body.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorI9zc_We to label %call5.i.i.i.i.noexc.i unwind label %_ZNSt12_Vector_baseI9zc_WeaponSaIS0_EED2Ev.exit.i call5.i.i.i.i.noexc.i: ; preds = %for.body.i.i.i.i.preheader.i.i + %add.ptr.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %reass.sub.fr.i %2 = add i64 %reass.sub.fr.i, -24 %3 = urem i64 %2, 24 %4 = sub nuw i64 %2, %3 @@ -28998,10 +28989,10 @@ _ZNSt12_Vector_baseI9zc_WeaponSaIS0_EED2Ev.exit.i: ; preds = %if.then.i.i.i, %fo invoke void @__cxa_end_catch() to label %return unwind label %terminate.lpad -invoke.cont21: ; preds = %_ZNSt6vectorI9zc_WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i, %call5.i.i.i.i.noexc.i - %ref.tmp.sroa.0.0 = phi ptr [ %call5.i.i.i.i1.i, %call5.i.i.i.i.noexc.i ], [ null, %_ZNSt6vectorI9zc_WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i ] - %__cur.0.lcssa.i.i.i.i.i.i = phi ptr [ %scevgep.i.i, %call5.i.i.i.i.noexc.i ], [ null, %_ZNSt6vectorI9zc_WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i ] - %ref.tmp.sroa.9.0 = getelementptr inbounds i8, ptr %ref.tmp.sroa.0.0, i64 %reass.sub.fr.i +invoke.cont21: ; preds = %call5.i.i.i.i.noexc.i, %_ZNSt6vectorI9zc_WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i + %ref.tmp.sroa.0.0 = phi ptr [ null, %_ZNSt6vectorI9zc_WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i ], [ %call5.i.i.i.i1.i, %call5.i.i.i.i.noexc.i ] + %__cur.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorI9zc_WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i ], [ %add.ptr.i.i, %call5.i.i.i.i.noexc.i ] + %__cur.0.lcssa.i.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorI9zc_WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i ], [ %scevgep.i.i, %call5.i.i.i.i.noexc.i ] %_M_end_of_storage.i4.i.i = getelementptr inbounds nuw i8, ptr %__c, i64 16 store ptr %ref.tmp.sroa.0.0, ptr %__c, align 8 store ptr %__cur.0.lcssa.i.i.i.i.i.i, ptr %_M_finish.i, align 8 @@ -29098,10 +29089,7 @@ _ZNSt6vectorI10zc_MonsterSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i: ; preds = br i1 %cmp.not.i.i.i, label %invoke.cont21.thread, label %for.body.i.i.i.i.preheader.i.i invoke.cont21.thread: ; preds = %_ZNSt6vectorI10zc_MonsterSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i - %ref.tmp.sroa.11.014 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i.i - %_M_end_of_storage.i4.i.i15 = getelementptr inbounds nuw i8, ptr %__c, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %__c, i8 0, i64 16, i1 false) - store ptr %ref.tmp.sroa.11.014, ptr %_M_end_of_storage.i4.i.i15, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %__c, i8 0, i64 24, i1 false) br label %invoke.cont.i for.body.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorI10zc_MonsterSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i @@ -29142,13 +29130,13 @@ _ZNSt12_Vector_baseI10zc_MonsterSaIS0_EED2Ev.exit.i: ; preds = %if.then.i.i.i, % to label %return unwind label %terminate.lpad invoke.cont21: ; preds = %for.body.i.i.i.i.i.i + %add.ptr.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %.pre = load ptr, ptr %__c, align 8 %.pre11 = load ptr, ptr %_M_finish.i, align 8 - %ref.tmp.sroa.11.0 = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %_M_end_of_storage.i4.i.i = getelementptr inbounds nuw i8, ptr %__c, i64 16 store ptr %call5.i.i.i.i1.i, ptr %__c, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %_M_finish.i, align 8 - store ptr %ref.tmp.sroa.11.0, ptr %_M_end_of_storage.i4.i.i, align 8 + store ptr %add.ptr.i.i, ptr %_M_end_of_storage.i4.i.i, align 8 %cmp.not3.i.i.i.i = icmp eq ptr %.pre, %.pre11 br i1 %cmp.not3.i.i.i.i, label %invoke.cont.i, label %for.body.i.i.i.i diff --git a/bench/yalantinglibs/optimized/channel.ll b/bench/yalantinglibs/optimized/channel.ll index 0f32c917ee5..72bcd4b0673 100644 --- a/bench/yalantinglibs/optimized/channel.ll +++ b/bench/yalantinglibs/optimized/channel.ll @@ -61458,19 +61458,13 @@ entry: %sub.ptr.lhs.cast.i.i.i.i = ptrtoint ptr %1 to i64 %sub.ptr.rhs.cast.i.i.i.i = ptrtoint ptr %2 to i64 %sub.ptr.sub.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %buffers_.i, i8 0, i64 24, i1 false) %cmp.not.i.i.i.i.i.i = icmp eq ptr %1, %2 br i1 %cmp.not.i.i.i.i.i.i, label %_ZNSt6vectorIN4asio12const_bufferESaIS1_EEC2ERKS3_.exit.i.i.thread, label %cond.true.i.i.i.i.i.i _ZNSt6vectorIN4asio12const_bufferESaIS1_EEC2ERKS3_.exit.i.i.thread: ; preds = %entry - %_M_finish.i.i.i.i.i10 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 16 - %add.ptr.i.i.i.i.i11 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i - %_M_end_of_storage.i.i.i.i.i12 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 24 - store i64 0, ptr %buffers_.i, align 8 - store ptr %add.ptr.i.i.i.i.i11, ptr %_M_end_of_storage.i.i.i.i.i12, align 8 - store ptr null, ptr %_M_finish.i.i.i.i.i10, align 8 %total_consumed_.i.i18 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 40 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %total_consumed_.i.i18, i8 0, i64 24, i1 false) + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %buffers_.i, i8 0, i64 24, i1 false) br label %_ZSt7advanceIN9__gnu_cxx17__normal_iteratorIPKN4asio12const_bufferESt6vectorIS3_SaIS3_EEEEmEvRT_T0_.exit.i.i cond.true.i.i.i.i.i.i: ; preds = %entry diff --git a/bench/yalantinglibs/optimized/data_gen.ll b/bench/yalantinglibs/optimized/data_gen.ll index 51a9e44d130..1c2443bfd09 100644 --- a/bench/yalantinglibs/optimized/data_gen.ll +++ b/bench/yalantinglibs/optimized/data_gen.ll @@ -50480,10 +50480,7 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_S_ch br i1 %cmp.not.i.i.i, label %invoke.cont21.thread, label %for.body.i.i.i.i.preheader.i.i invoke.cont21.thread: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i.i - %ref.tmp.sroa.11.018 = getelementptr inbounds nuw i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i.i - %_M_end_of_storage.i4.i.i19 = getelementptr inbounds nuw i8, ptr %__c, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %__c, i8 0, i64 16, i1 false) - store ptr %ref.tmp.sroa.11.018, ptr %_M_end_of_storage.i4.i.i19, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %__c, i8 0, i64 24, i1 false) br label %invoke.cont.i for.body.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE17_S_check_init_lenEmRKS6_.exit.i.i @@ -50540,13 +50537,13 @@ _ZNSt12_Vector_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE to label %return unwind label %terminate.lpad invoke.cont21: ; preds = %_ZSt10_ConstructINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJS5_EEvPT_DpOT0_.exit.i.i.i.i.i.i + %add.ptr.i.i = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %.pre = load ptr, ptr %__c, align 8 %.pre15 = load ptr, ptr %_M_finish.i, align 8 - %ref.tmp.sroa.11.0 = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %_M_end_of_storage.i4.i.i = getelementptr inbounds nuw i8, ptr %__c, i64 16 store ptr %call5.i.i.i.i1.i, ptr %__c, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %_M_finish.i, align 8 - store ptr %ref.tmp.sroa.11.0, ptr %_M_end_of_storage.i4.i.i, align 8 + store ptr %add.ptr.i.i, ptr %_M_end_of_storage.i4.i.i, align 8 %cmp.not3.i.i.i.i = icmp eq ptr %.pre, %.pre15 br i1 %cmp.not3.i.i.i.i, label %invoke.cont.i, label %for.body.i.i.i.i @@ -53144,10 +53141,7 @@ _ZNSt6vectorI6WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i: ; preds = %invo br i1 %cmp.not.i.i.i, label %invoke.cont21.thread, label %for.body.i.i.i.i.preheader.i.i invoke.cont21.thread: ; preds = %_ZNSt6vectorI6WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i - %ref.tmp.sroa.11.018 = getelementptr inbounds i8, ptr null, i64 %sub.ptr.sub.i.i.i.i.i.i - %_M_end_of_storage.i4.i.i19 = getelementptr inbounds nuw i8, ptr %__c, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %__c, i8 0, i64 16, i1 false) - store ptr %ref.tmp.sroa.11.018, ptr %_M_end_of_storage.i4.i.i19, align 8 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %__c, i8 0, i64 24, i1 false) br label %invoke.cont.i for.body.i.i.i.i.preheader.i.i: ; preds = %_ZNSt6vectorI6WeaponSaIS0_EE17_S_check_init_lenEmRKS1_.exit.i.i @@ -53208,13 +53202,13 @@ _ZNSt12_Vector_baseI6WeaponSaIS0_EED2Ev.exit.i: ; preds = %if.then.i.i.i, %for to label %return unwind label %terminate.lpad invoke.cont21: ; preds = %_ZSt10_ConstructI6WeaponJS0_EEvPT_DpOT0_.exit.i.i.i.i.i.i + %add.ptr.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %.pre = load ptr, ptr %__c, align 8 %.pre15 = load ptr, ptr %_M_finish.i, align 8 - %ref.tmp.sroa.11.0 = getelementptr inbounds i8, ptr %call5.i.i.i.i1.i, i64 %sub.ptr.sub.i.i.i.i.i.i %_M_end_of_storage.i4.i.i = getelementptr inbounds nuw i8, ptr %__c, i64 16 store ptr %call5.i.i.i.i1.i, ptr %__c, align 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %_M_finish.i, align 8 - store ptr %ref.tmp.sroa.11.0, ptr %_M_end_of_storage.i4.i.i, align 8 + store ptr %add.ptr.i.i, ptr %_M_end_of_storage.i4.i.i, align 8 %cmp.not3.i.i.i.i = icmp eq ptr %.pre, %.pre15 br i1 %cmp.not3.i.i.i.i, label %invoke.cont.i, label %for.body.i.i.i.i diff --git a/bench/yaml-cpp/optimized/regex_yaml.ll b/bench/yaml-cpp/optimized/regex_yaml.ll index 95735cd8ddb..4741950e504 100644 --- a/bench/yaml-cpp/optimized/regex_yaml.ll +++ b/bench/yaml-cpp/optimized/regex_yaml.ll @@ -414,9 +414,8 @@ _ZNSt6vectorIN4YAML5RegExESaIS1_EE17_S_check_init_lenEmRKS2_.exit: ; preds = %3 _ZNSt12_Vector_baseIN4YAML5RegExESaIS1_EE11_M_allocateEm.exit.thread: ; preds = %_ZNSt6vectorIN4YAML5RegExESaIS1_EE17_S_check_init_lenEmRKS2_.exit store ptr null, ptr %0, align 8, !tbaa !22 - %9 = getelementptr inbounds nuw %"class.YAML::RegEx", ptr null, i64 %6 - %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %9, ptr %10, align 8, !tbaa !24 + %9 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr null, ptr %9, align 8, !tbaa !24 br label %_ZSt22__uninitialized_copy_aIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEPN4YAML5RegExESC_ET0_T_SF_SE_RSaIT1_E.exit .lr.ph.i.i.i.i.preheader: ; preds = %_ZNSt6vectorIN4YAML5RegExESaIS1_EE17_S_check_init_lenEmRKS2_.exit diff --git a/bench/yoga/optimized/YGNodeStyle.ll b/bench/yoga/optimized/YGNodeStyle.ll index 943511fd0dd..c95f6f494e5 100644 --- a/bench/yoga/optimized/YGNodeStyle.ll +++ b/bench/yoga/optimized/YGNodeStyle.ll @@ -4653,15 +4653,12 @@ define linkonce_odr hidden noundef nonnull align 8 dereferenceable(40) ptr @_ZN8 .noexc2.thread.i: ; preds = %11 %19 = getelementptr inbounds nuw i8, ptr %12, i64 8 - %20 = getelementptr inbounds i8, ptr null, i64 %18 - %21 = getelementptr inbounds nuw i8, ptr %12, i64 16 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %12, i8 0, i64 16, i1 false), !noalias !72 - store ptr %20, ptr %21, align 8, !tbaa !75, !noalias !72 + %20 = getelementptr inbounds nuw i8, ptr %12, i64 16 br label %_ZNSt6vectorIjSaIjEEC2ERKS1_.exit.i.i 22: ; preds = %11 %23 = icmp ugt i64 %18, 9223372036854775804 - br i1 %23, label %.noexc.i.i.i.i, label %_ZNSt16allocator_traitsISaIjEE8allocateERS0_m.exit.i.i.i.i.i.i, !prof !76 + br i1 %23, label %.noexc.i.i.i.i, label %_ZNSt16allocator_traitsISaIjEE8allocateERS0_m.exit.i.i.i.i.i.i, !prof !75 .noexc.i.i.i.i: ; preds = %22 invoke void @_ZSt28__throw_bad_array_new_lengthv() #13 @@ -4680,13 +4677,13 @@ _ZNSt16allocator_traitsISaIjEE8allocateERS0_m.exit.i.i.i.i.i.i: ; preds = %22 store ptr %24, ptr %26, align 8, !tbaa !11, !noalias !72 %27 = getelementptr inbounds nuw i8, ptr %24, i64 %18 %28 = getelementptr inbounds nuw i8, ptr %12, i64 16 - store ptr %27, ptr %28, align 8, !tbaa !75, !noalias !72 + store ptr %27, ptr %28, align 8, !tbaa !76, !noalias !72 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %24, ptr align 4 %15, i64 %18, i1 false), !noalias !72 br label %_ZNSt6vectorIjSaIjEEC2ERKS1_.exit.i.i _ZNSt6vectorIjSaIjEEC2ERKS1_.exit.i.i: ; preds = %25, %.noexc2.thread.i - %29 = phi ptr [ %21, %.noexc2.thread.i ], [ %28, %25 ] - %30 = phi ptr [ %20, %.noexc2.thread.i ], [ %27, %25 ] + %29 = phi ptr [ %20, %.noexc2.thread.i ], [ %28, %25 ] + %30 = phi ptr [ null, %.noexc2.thread.i ], [ %27, %25 ] %31 = phi ptr [ %19, %.noexc2.thread.i ], [ %26, %25 ] store ptr %30, ptr %31, align 8, !tbaa !11, !noalias !72 %32 = getelementptr inbounds nuw i8, ptr %12, i64 24 @@ -4702,7 +4699,7 @@ _ZNSt6vectorIjSaIjEEC2ERKS1_.exit.i.i: ; preds = %25, %.noexc2.thread br i1 %.not.i.i.i.i.i, label %.body.i, label %37 37: ; preds = %34 - %38 = load ptr, ptr %29, align 8, !tbaa !75, !noalias !72 + %38 = load ptr, ptr %29, align 8, !tbaa !76, !noalias !72 %39 = ptrtoint ptr %38 to i64 %40 = ptrtoint ptr %36 to i64 %41 = sub i64 %39, %40 @@ -4760,7 +4757,7 @@ _ZNSt13_Bvector_baseISaIbEED2Ev.exit.i.i.i.i.i.i: ; preds = %49, %46 59: ; preds = %_ZNSt13_Bvector_baseISaIbEED2Ev.exit.i.i.i.i.i.i %60 = getelementptr inbounds nuw i8, ptr %45, i64 16 - %61 = load ptr, ptr %60, align 8, !tbaa !75 + %61 = load ptr, ptr %60, align 8, !tbaa !76 %62 = ptrtoint ptr %61 to i64 %63 = ptrtoint ptr %58 to i64 %64 = sub i64 %62, %63 @@ -5066,7 +5063,7 @@ _ZNSt10unique_ptrIN8facebook4yoga16SmallValueBufferILm4EE8OverflowESt14default_d %16 = getelementptr inbounds nuw i8, ptr %15, i64 8 %17 = load ptr, ptr %16, align 8, !tbaa !11 %18 = getelementptr inbounds nuw i8, ptr %15, i64 16 - %19 = load ptr, ptr %18, align 8, !tbaa !75 + %19 = load ptr, ptr %18, align 8, !tbaa !76 %.not.i6 = icmp eq ptr %17, %19 br i1 %.not.i6, label %22, label %20 @@ -5123,7 +5120,7 @@ _ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIP store ptr %35, ptr %15, align 8, !tbaa !14 store ptr %39, ptr %16, align 8, !tbaa !11 %41 = getelementptr inbounds nuw i32, ptr %35, i64 %33 - store ptr %41, ptr %18, align 8, !tbaa !75 + store ptr %41, ptr %18, align 8, !tbaa !76 br label %_ZNSt6vectorIjSaIjEE9push_backERKj.exit _ZNSt6vectorIjSaIjEE9push_backERKj.exit: ; preds = %20, %_ZNSt6vectorIjSaIjEE17_M_realloc_insertIJRKjEEEvN9__gnu_cxx17__normal_iteratorIPjS1_EEDpOT_.exit.i @@ -5934,8 +5931,8 @@ attributes #16 = { nounwind } !72 = !{!73} !73 = distinct !{!73, !74, !"_ZSt11make_uniqueIN8facebook4yoga16SmallValueBufferILm4EE8OverflowEJRS4_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_: argument 0"} !74 = distinct !{!74, !"_ZSt11make_uniqueIN8facebook4yoga16SmallValueBufferILm4EE8OverflowEJRS4_EENSt8__detail9_MakeUniqIT_E15__single_objectEDpOT0_"} -!75 = !{!12, !13, i64 16} -!76 = !{!"branch_weights", !"expected", i32 1, i32 2000} +!75 = !{!"branch_weights", !"expected", i32 1, i32 2000} +!76 = !{!12, !13, i64 16} !77 = !{!78, !79, i64 0} !78 = !{!"_ZTSSt18_Bit_iterator_base", !79, i64 0, !16, i64 8} !79 = !{!"p1 long", !10, i64 0} diff --git a/bench/yosys/optimized/json11.ll b/bench/yosys/optimized/json11.ll index 0298fc9ae36..a1c6de2ce05 100644 --- a/bench/yosys/optimized/json11.ll +++ b/bench/yosys/optimized/json11.ll @@ -11845,10 +11845,7 @@ _ZSt18__allocate_guardedISaISt23_Sp_counted_ptr_inplaceIN6json119JsonArrayESaIvE .noexc3.i.i.i.i.i.thread: ; preds = %_ZSt18__allocate_guardedISaISt23_Sp_counted_ptr_inplaceIN6json119JsonArrayESaIvELN9__gnu_cxx12_Lock_policyE2EEEESt15__allocated_ptrIT_ERS9_.exit %15 = getelementptr inbounds nuw i8, ptr %4, i64 32 - %16 = getelementptr inbounds nuw i8, ptr null, i64 %14 - %17 = getelementptr inbounds nuw i8, ptr %4, i64 40 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %8, i8 0, i64 16, i1 false) - store ptr %16, ptr %17, align 8, !tbaa !67 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %8, i8 0, i64 24, i1 false) br label %_ZNSt15__allocated_ptrISaISt23_Sp_counted_ptr_inplaceIN6json119JsonArrayESaIvELN9__gnu_cxx12_Lock_policyE2EEEED2Ev.exit 18: ; preds = %_ZSt18__allocate_guardedISaISt23_Sp_counted_ptr_inplaceIN6json119JsonArrayESaIvELN9__gnu_cxx12_Lock_policyE2EEEESt15__allocated_ptrIT_ERS9_.exit @@ -11885,25 +11882,25 @@ _ZNSt16allocator_traitsISaIN6json114JsonEEE8allocateERS2_m.exit.i.i.i.i.i.i.i.i. %27 = load ptr, ptr %26, align 8, !tbaa !17 store ptr %27, ptr %25, align 8, !tbaa !17 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq ptr %27, null - br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZSt10_ConstructIN6json114JsonEJRKS1_EEvPT_DpOT0_.exit.i.i.i.i.i.i.i.i.i.i, label %28 + br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %_ZSt10_ConstructIN6json114JsonEJRKS1_EEvPT_DpOT0_.exit.i.i.i.i.i.i.i.i.i.i, label %26 -28: ; preds = %.lr.ph.i.i.i.i.i.i.i.i.i.i - %29 = getelementptr inbounds nuw i8, ptr %27, i64 8 - %30 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !18 - %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i8 %30, 0 - br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %34, label %31 +31: ; preds = %.lr.ph.i.i.i.i.i.i.i.i.i.i + %27 = getelementptr inbounds nuw i8, ptr %25, i64 8 + %28 = load i8, ptr @__libc_single_threaded, align 1, !tbaa !18 + %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i = icmp eq i8 %28, 0 + br i1 %.not.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i.i, label %32, label %29 -31: ; preds = %28 - %32 = load i32, ptr %29, align 4, !tbaa !19 - %33 = add nsw i32 %32, 1 - store i32 %33, ptr %29, align 4, !tbaa !19 +29: ; preds = %26 + %30 = load i32, ptr %27, align 4, !tbaa !19 + %31 = add nsw i32 %30, 1 + store i32 %31, ptr %27, align 4, !tbaa !19 br label %_ZSt10_ConstructIN6json114JsonEJRKS1_EEvPT_DpOT0_.exit.i.i.i.i.i.i.i.i.i.i -34: ; preds = %28 - %35 = atomicrmw volatile add ptr %29, i32 1 acq_rel, align 4 +34: ; preds = %26 + %35 = atomicrmw volatile add ptr %27, i32 1 acq_rel, align 4 br label %_ZSt10_ConstructIN6json114JsonEJRKS1_EEvPT_DpOT0_.exit.i.i.i.i.i.i.i.i.i.i -_ZSt10_ConstructIN6json114JsonEJRKS1_EEvPT_DpOT0_.exit.i.i.i.i.i.i.i.i.i.i: ; preds = %34, %31, %.lr.ph.i.i.i.i.i.i.i.i.i.i +_ZSt10_ConstructIN6json114JsonEJRKS1_EEvPT_DpOT0_.exit.i.i.i.i.i.i.i.i.i.i: ; preds = %34, %29, %.lr.ph.i.i.i.i.i.i.i.i.i.i %36 = getelementptr inbounds nuw i8, ptr %.sroa.04.08.i.i.i.i.i.i.i.i.i.i, i64 16 %37 = getelementptr inbounds nuw i8, ptr %.09.i.i.i.i.i.i.i.i.i.i, i64 16 %.not.i.i.i.i.i.i.i.i.i.i = icmp eq ptr %36, %10 diff --git a/bench/yosys/optimized/ql_dsp_io_regs.ll b/bench/yosys/optimized/ql_dsp_io_regs.ll index 54a648870e7..7a830a4922b 100644 --- a/bench/yosys/optimized/ql_dsp_io_regs.ll +++ b/bench/yosys/optimized/ql_dsp_io_regs.ll @@ -5649,51 +5649,45 @@ define linkonce_odr void @_ZNSt6vectorIN5Yosys5RTLIL8IdStringESaIS2_EEC2ESt16ini _ZNSt6vectorIN5Yosys5RTLIL8IdStringESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i: tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, i8 0, i64 24, i1 false) %4 = getelementptr inbounds nuw %"struct.Yosys::RTLIL::IdString", ptr %1, i64 %2 - %.idx = shl nuw nsw i64 %2, 2 %.not.i.i = icmp eq i64 %2, 0 - br i1 %.not.i.i, label %_ZNSt12_Vector_baseIN5Yosys5RTLIL8IdStringESaIS2_EE11_M_allocateEm.exit.thread.i, label %.lr.ph.i.i.i.i.i - -_ZNSt12_Vector_baseIN5Yosys5RTLIL8IdStringESaIS2_EE11_M_allocateEm.exit.thread.i: ; preds = %_ZNSt6vectorIN5Yosys5RTLIL8IdStringESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i - %5 = getelementptr inbounds nuw i8, ptr null, i64 %.idx - %6 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %5, ptr %6, align 8, !tbaa !184 - br label %.loopexit + br i1 %.not.i.i, label %.loopexit, label %.lr.ph.i.i.i.i.i .lr.ph.i.i.i.i.i: ; preds = %_ZNSt6vectorIN5Yosys5RTLIL8IdStringESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i - %7 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #26 - store ptr %7, ptr %0, align 8, !tbaa !186 - %8 = getelementptr inbounds nuw i8, ptr %7, i64 %.idx - %9 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %8, ptr %9, align 8, !tbaa !184 - %10 = load ptr, ptr @_ZN5Yosys5RTLIL8IdString24global_refcount_storage_E, align 8 - br label %11 - -11: ; preds = %18, %.lr.ph.i.i.i.i.i - %.015.i.i.i.i.i = phi ptr [ %7, %.lr.ph.i.i.i.i.i ], [ %20, %18 ] - %.01214.i.i.i.i.i = phi ptr [ %1, %.lr.ph.i.i.i.i.i ], [ %19, %18 ] - %12 = load i32, ptr %.01214.i.i.i.i.i, align 4, !tbaa !59 - %.not.i.i.i.i.i.i.i.i = icmp eq i32 %12, 0 - br i1 %.not.i.i.i.i.i.i.i.i, label %18, label %13 + %.idx = shl nuw nsw i64 %2, 2 + %5 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %.idx) #26 + store ptr %5, ptr %0, align 8, !tbaa !184 + %9 = getelementptr inbounds nuw i8, ptr %5, i64 %.idx + %7 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr %6, ptr %7, align 8, !tbaa !186 + %8 = load ptr, ptr @_ZN5Yosys5RTLIL8IdString24global_refcount_storage_E, align 8 + br label %9 + +9:; preds = %16, %.lr.ph.i.i.i.i.i + %.01214.i.i.i.i.i = phi ptr [ %5, %.lr.ph.i.i.i.i.i ], [ %18, %16 ] + %.01214.i.i.i.i.i = phi ptr [ %1, %.lr.ph.i.i.i.i.i ], [ %15, %16 ] + %10 = load i32, ptr %.01214.i.i.i.i.i, align 4, !tbaa !59 + %.not.i.i.i.i.i.i.i.i = icmp eq i32 %10, 0 + br i1 %.not.i.i.i.i.i.i.i.i, label %16, label %11 + +11: ; preds = %9 + %12 = sext i32 %10 to i64 + %13 = getelementptr inbounds nuw i32, ptr %8, i64 %12 + %14 = load i32, ptr %13, align 4, !tbaa !48 + %15 = add nsw i32 %14, 1 + store i32 %15, ptr %13, align 4, !tbaa !48 + br label %16 -13: ; preds = %11 - %14 = sext i32 %12 to i64 - %15 = getelementptr inbounds nuw i32, ptr %10, i64 %14 - %16 = load i32, ptr %15, align 4, !tbaa !48 - %17 = add nsw i32 %16, 1 - store i32 %17, ptr %15, align 4, !tbaa !48 - br label %18 - -18: ; preds = %13, %11 - store i32 %12, ptr %.015.i.i.i.i.i, align 4, !tbaa !59 - %19 = getelementptr inbounds nuw i8, ptr %.01214.i.i.i.i.i, i64 4 - %20 = getelementptr inbounds nuw i8, ptr %.015.i.i.i.i.i, i64 4 - %.not.i.i.i.i.i = icmp eq ptr %19, %4 - br i1 %.not.i.i.i.i.i, label %.loopexit, label %11, !llvm.loop !187 - -.loopexit: ; preds = %18, %_ZNSt12_Vector_baseIN5Yosys5RTLIL8IdStringESaIS2_EE11_M_allocateEm.exit.thread.i - %.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt12_Vector_baseIN5Yosys5RTLIL8IdStringESaIS2_EE11_M_allocateEm.exit.thread.i ], [ %20, %18 ] - %21 = getelementptr inbounds nuw i8, ptr %0, i64 8 - store ptr %.0.lcssa.i.i.i.i.i, ptr %21, align 8, !tbaa !188 +13: ; preds = %11, %9 + store i32 %10, ptr %.015.i.i.i.i.i, align 4, !tbaa !59 + %15 = getelementptr inbounds nuw i8, ptr %.01214.i.i.i.i.i, i64 4 + %18 = getelementptr inbounds nuw i8, ptr %.015.i.i.i.i.i, i64 4 + %.not.i.i.i.i.i = icmp eq ptr %17, %4 + br i1 %.not.i.i.i.i.i, label %.loopexit, label %9, !llvm.loop !187 + +.loopexit: ; preds = %16, %_ZNSt6vectorIN5Yosys5RTLIL8IdStringESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i + %.0.lcssa.i.i.i.i.i = phi ptr [ null, %_ZNSt6vectorIN5Yosys5RTLIL8IdStringESaIS2_EE17_S_check_init_lenEmRKS3_.exit.i ], [ %18, %16 ] + %19 = getelementptr inbounds nuw i8, ptr %0, i64 8 + store ptr %.0.lcssa.i.i.i.i.i, ptr %19, align 8, !tbaa !188 ret void } @@ -5733,7 +5727,7 @@ _ZN5Yosys5RTLIL8IdString13put_referenceEi.exit: ; preds = %6, %1, %13 ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr void @_ZNSt6vectorIN5Yosys5RTLIL8IdStringESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %0) unnamed_addr #6 comdat align 2 personality ptr @__gxx_personality_v0 { - %2 = load ptr, ptr %0, align 8, !tbaa !186 + %2 = load ptr, ptr %0, align 8, !tbaa !184 %3 = getelementptr inbounds nuw i8, ptr %0, i64 8 %4 = load ptr, ptr %3, align 8, !tbaa !188 %.not4.i.i.i = icmp eq ptr %2, %4 @@ -5775,7 +5769,7 @@ _ZSt8_DestroyIN5Yosys5RTLIL8IdStringEEvPT_.exit.i.i.i: ; preds = %16, %9, %.lr.p br i1 %.not.i.i.i, label %_ZSt8_DestroyIPN5Yosys5RTLIL8IdStringES2_EvT_S4_RSaIT0_E.exitthread-pre-split, label %.lr.ph.i.i.i, !llvm.loop !189 _ZSt8_DestroyIPN5Yosys5RTLIL8IdStringES2_EvT_S4_RSaIT0_E.exitthread-pre-split: ; preds = %_ZSt8_DestroyIN5Yosys5RTLIL8IdStringEEvPT_.exit.i.i.i - %.pr = load ptr, ptr %0, align 8, !tbaa !186 + %.pr = load ptr, ptr %0, align 8, !tbaa !184 br label %_ZSt8_DestroyIPN5Yosys5RTLIL8IdStringES2_EvT_S4_RSaIT0_E.exit _ZSt8_DestroyIPN5Yosys5RTLIL8IdStringES2_EvT_S4_RSaIT0_E.exit: ; preds = %_ZSt8_DestroyIPN5Yosys5RTLIL8IdStringES2_EvT_S4_RSaIT0_E.exitthread-pre-split, %1 @@ -5785,7 +5779,7 @@ _ZSt8_DestroyIPN5Yosys5RTLIL8IdStringES2_EvT_S4_RSaIT0_E.exit: ; preds = %_ZSt8_ 22: ; preds = %_ZSt8_DestroyIPN5Yosys5RTLIL8IdStringES2_EvT_S4_RSaIT0_E.exit %23 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %24 = load ptr, ptr %23, align 8, !tbaa !184 + %24 = load ptr, ptr %23, align 8, !tbaa !186 %25 = ptrtoint ptr %24 to i64 %26 = ptrtoint ptr %21 to i64 %27 = sub i64 %25, %26 @@ -8393,9 +8387,9 @@ attributes #28 = { nounwind willreturn memory(read) } !181 = distinct !{!181, !33} !182 = !{!29, !29, i64 0} !183 = distinct !{!183, !33} -!184 = !{!185, !158, i64 16} +!184 = !{!185, !158, i64 0} !185 = !{!"_ZTSNSt12_Vector_baseIN5Yosys5RTLIL8IdStringESaIS2_EE17_Vector_impl_dataE", !158, i64 0, !158, i64 8, !158, i64 16} -!186 = !{!185, !158, i64 0} +!186 = !{!185, !158, i64 16} !187 = distinct !{!187, !33} !188 = !{!185, !158, i64 8} !189 = distinct !{!189, !33} diff --git a/bench/z3/optimized/nla_core.ll b/bench/z3/optimized/nla_core.ll index 39ab0b886b5..33c9326f6ae 100644 --- a/bench/z3/optimized/nla_core.ll +++ b/bench/z3/optimized/nla_core.ll @@ -12482,33 +12482,35 @@ _ZNK6vectorIjLb0EjE3endEv.exit.i.i.i: ; preds = %.noexc26 br label %_ZN7svectorIjjEC2ERKS0_.exit.thread35 _ZN7svectorIjjEC2ERKS0_.exit.thread35: ; preds = %_ZNK6vectorIjLb0EjE3endEv.exit.i.i.i, %142, %.noexc26 - %145 = ptrtoint ptr %137 to i64 - %146 = zext i32 %129 to i64 - %147 = add i64 %145, -8 + %145 = getelementptr inbounds nuw i32, ptr %137, i64 %indvars.iv + %146 = ptrtoint ptr %145 to i64 + %147 = ptrtoint ptr %137 to i64 + %148 = zext i32 %129 to i64 + %149 = add i64 %147, -8 br label %_ZN6vectorIjLb0EjE3endEv.exit.i _ZN6vectorIjLb0EjE3endEv.exit.i: ; preds = %126, %_ZN7svectorIjjEC2ERKS0_.exit.thread35 - %148 = phi i64 [ %147, %_ZN7svectorIjjEC2ERKS0_.exit.thread35 ], [ -8, %126 ] - %149 = phi ptr [ %137, %_ZN7svectorIjjEC2ERKS0_.exit.thread35 ], [ null, %126 ] - %.0.i.i.i = phi i64 [ %146, %_ZN7svectorIjjEC2ERKS0_.exit.thread35 ], [ 0, %126 ] - %150 = getelementptr inbounds nuw i32, ptr %149, i64 %indvars.iv - %151 = getelementptr inbounds nuw i32, ptr %149, i64 %.0.i.i.i - %.010.i = getelementptr inbounds nuw i8, ptr %150, i64 4 - %.not11.i = icmp eq ptr %.010.i, %151 + %148 = phi i64 [ %149, %_ZN7svectorIjjEC2ERKS0_.exit.thread35 ], [ -8, %126 ] + %149 = phi i64 [ %146, %_ZN7svectorIjjEC2ERKS0_.exit.thread35 ], [ 0, %126 ] + %.0.i.i.i = phi ptr [ %145, %_ZN7svectorIjjEC2ERKS0_.exit.thread35 ], [ null, %126 ] + %153 = phi ptr [ %137, %_ZN7svectorIjjEC2ERKS0_.exit.thread35 ], [ null, %126 ] + %.0.i.i.i = phi i64 [ %148, %_ZN7svectorIjjEC2ERKS0_.exit.thread35 ], [ 0, %126 ] + %.010.i = getelementptr inbounds nuw i32, ptr %153, i64 %.0.i.i.i + %.010.i = getelementptr inbounds nuw i8, ptr %152, i64 4 + %.not11.i = icmp eq ptr %.010.i, %154 br i1 %.not11.i, label %_ZN6vectorIjLb0EjE5eraseEPj.exit, label %.lr.ph.preheader.i .lr.ph.preheader.i: ; preds = %_ZN6vectorIjLb0EjE3endEv.exit.i - %152 = ptrtoint ptr %150 to i64 - %153 = shl nuw nsw i64 %.0.i.i.i, 2 - %154 = sub i64 %148, %152 - %155 = add i64 %154, %153 - %156 = and i64 %155, -4 - %157 = add i64 %156, 4 - call void @llvm.memmove.p0.p0.i64(ptr align 4 %150, ptr nonnull align 4 %.010.i, i64 %157, i1 false), !tbaa !249 + %155 = shl nuw nsw i64 %.0.i.i.i, 2 + %156 = sub i64 %150, %151 + %157 = add i64 %156, %155 + %158 = and i64 %157, -4 + %159 = add i64 %158, 4 + call void @llvm.memmove.p0.p0.i64(ptr align 4 %152, ptr nonnull align 4 %.010.i, i64 %159, i1 false), !tbaa !249 br label %_ZN6vectorIjLb0EjE5eraseEPj.exit _ZN6vectorIjLb0EjE5eraseEPj.exit: ; preds = %_ZN6vectorIjLb0EjE3endEv.exit.i, %.lr.ph.preheader.i - %158 = getelementptr inbounds i8, ptr %149, i64 -4 + %158 = getelementptr inbounds i8, ptr %153, i64 -4 %159 = load i32, ptr %158, align 4, !tbaa !249 %160 = add i32 %159, -1 store i32 %160, ptr %158, align 4, !tbaa !249 diff --git a/bench/zxing/optimized/PDFModulusGF.ll b/bench/zxing/optimized/PDFModulusGF.ll index cfab945a385..d314bcc4446 100644 --- a/bench/zxing/optimized/PDFModulusGF.ll +++ b/bench/zxing/optimized/PDFModulusGF.ll @@ -397,16 +397,12 @@ define void @_ZNK5ZXing6Pdf4179ModulusGF13buildMonomialEii(ptr dead_on_unwind no %22 = ptrtoint ptr %20 to i64 %23 = ptrtoint ptr %21 to i64 %24 = sub i64 %22, %23 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %17, i8 0, i64 24, i1 false) %.not.i.i.i.i.i = icmp eq ptr %20, %21 br i1 %.not.i.i.i.i.i, label %.thread, label %28 .thread: ; preds = %14 %25 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %26 = getelementptr inbounds i8, ptr null, i64 %24 - %27 = getelementptr inbounds nuw i8, ptr %0, i64 24 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %17, i8 0, i64 16, i1 false) - store ptr %26, ptr %27, align 8, !tbaa !22 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %17, i8 0, i64 24, i1 false) br label %_ZN5ZXing6Pdf41711ModulusPolyC2ERKS1_.exit 28: ; preds = %14 @@ -429,7 +425,7 @@ define void @_ZNK5ZXing6Pdf4179ModulusGF13buildMonomialEii(ptr dead_on_unwind no br label %_ZN5ZXing6Pdf41711ModulusPolyC2ERKS1_.exit _ZN5ZXing6Pdf41711ModulusPolyC2ERKS1_.exit: ; preds = %.thread, %30 - %35 = phi ptr [ %26, %.thread ], [ %33, %30 ] + %35 = phi ptr [ null, %.thread ], [ %33, %30 ] %36 = phi ptr [ %25, %.thread ], [ %32, %30 ] store ptr %35, ptr %36, align 8, !tbaa !23 br label %62 diff --git a/bench/zxing/optimized/QRVersion.ll b/bench/zxing/optimized/QRVersion.ll index 702ee5d5406..a459221b360 100644 --- a/bench/zxing/optimized/QRVersion.ll +++ b/bench/zxing/optimized/QRVersion.ll @@ -4954,9 +4954,8 @@ _ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit: ; preds = %3 _ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.thread: ; preds = %_ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit store ptr null, ptr %0, align 8, !tbaa !13 - %10 = getelementptr inbounds i8, ptr null, i64 %6 - %11 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store ptr %10, ptr %11, align 8, !tbaa !17 + %10 = getelementptr inbounds nuw i8, ptr %0, i64 16 + store ptr null, ptr %10, align 8, !tbaa !17 br label %_ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E.exit 12: ; preds = %_ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit @@ -4969,7 +4968,7 @@ _ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.thread: ; preds = %_ZNSt6vectorI br label %_ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E.exit _ZSt22__uninitialized_copy_aIPKiPiiET0_T_S4_S3_RSaIT1_E.exit: ; preds = %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.thread, %12 - %16 = phi ptr [ %10, %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.thread ], [ %14, %12 ] + %16 = phi ptr [ null, %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.thread ], [ %14, %12 ] %17 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %16, ptr %17, align 8, !tbaa !33 ret void diff --git a/bench/zxing/optimized/ReedSolomonDecoder.ll b/bench/zxing/optimized/ReedSolomonDecoder.ll index 4fb0066b079..6c533ea7820 100644 --- a/bench/zxing/optimized/ReedSolomonDecoder.ll +++ b/bench/zxing/optimized/ReedSolomonDecoder.ll @@ -1462,19 +1462,20 @@ define linkonce_odr void @_ZN5ZXing13GenericGFPolyC2ERKNS_9GenericGFERKSt6vector 12: ; preds = %10 %13 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %9) #16 + %14 = getelementptr inbounds nuw i8, ptr %13, i64 %9 tail call void @llvm.memmove.p0.p0.i64(ptr nonnull align 4 %13, ptr align 4 %6, i64 %9, i1 false) br label %_ZNSt6vectorIiSaIiEEC2ERKS1_.exit _ZNSt6vectorIiSaIiEEC2ERKS1_.exit: ; preds = %3, %12 - %14 = phi ptr [ %13, %12 ], [ null, %3 ] - %15 = getelementptr inbounds i8, ptr %14, i64 %9 + %14 = phi ptr [ %14, %12 ], [ null, %3 ] + %16 = phi ptr [ %13, %12 ], [ null, %3 ] store ptr %1, ptr %0, align 8, !tbaa !23 %16 = getelementptr inbounds nuw i8, ptr %0, i64 8 %17 = getelementptr inbounds nuw i8, ptr %0, i64 16 %18 = getelementptr inbounds nuw i8, ptr %0, i64 24 %19 = getelementptr inbounds nuw i8, ptr %0, i64 32 tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %19, i8 0, i64 24, i1 false) - store ptr %14, ptr %16, align 8, !tbaa !32 + store ptr %16, ptr %16, align 8, !tbaa !32 store ptr %15, ptr %17, align 8, !tbaa !33 store ptr %15, ptr %18, align 8, !tbaa !34 invoke void @_ZN5ZXing13GenericGFPoly9normalizeEv(ptr noundef nonnull align 8 dereferenceable(56) %0) diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..1f8abcf0c2f 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/130742 export COMPTIME_MODE=0 # Please rebase manually