diff --git a/bench/abseil-cpp/optimized/node_hash_map_test.cc.ll b/bench/abseil-cpp/optimized/node_hash_map_test.cc.ll index e3694df685d..2a6181174dd 100644 --- a/bench/abseil-cpp/optimized/node_hash_map_test.cc.ll +++ b/bench/abseil-cpp/optimized/node_hash_map_test.cc.ll @@ -148594,7 +148594,7 @@ _ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyIiiEENS0_19Sta while.cond.preheader: ; preds = %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyIiiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKiiEEEE5beginEv.exit %cmp.i.i.i5.not10 = icmp eq ptr %first.coerce0, %last.coerce0 - br i1 %cmp.i.i.i5.not10, label %return, label %while.body + br i1 %cmp.i.i.i5.not10, label %while.end, label %while.body if.then9: ; preds = %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyIiiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKiiEEEE5beginEv.exit %capacity_.i.i.i = getelementptr inbounds i8, ptr %this, i64 16 @@ -148659,13 +148659,16 @@ while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, tail call void @_ZdlPv(ptr noundef %19) #34 tail call void @_ZN4absl18container_internal13EraseMetaOnlyERNS0_12CommonFieldsEPNS0_6ctrl_tEm(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef %first.sroa.0.011, i64 noundef 8) %cmp.i.i.i5.not = icmp eq ptr %spec.select, %last.coerce0 - br i1 %cmp.i.i.i5.not, label %return, label %while.body, !llvm.loop !3420 + br i1 %cmp.i.i.i5.not, label %while.end, label %while.body, !llvm.loop !3420 -return: ; preds = %while.end.i.i.i.i, %while.cond.preheader, %entry, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyIiiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKiiEEEE13destroy_slotsEv.exit - %retval.sroa.0.0 = phi ptr [ null, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyIiiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKiiEEEE13destroy_slotsEv.exit ], [ null, %entry ], [ %last.coerce0, %while.cond.preheader ], [ %last.coerce0, %while.end.i.i.i.i ] - %.fca.0.insert = insertvalue { ptr, ptr } poison, ptr %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { ptr, ptr } %.fca.0.insert, ptr %last.coerce1, 1 - ret { ptr, ptr } %.fca.1.insert +while.end: ; preds = %while.end.i.i.i.i, %while.cond.preheader + %20 = insertvalue { ptr, ptr } poison, ptr %last.coerce0, 0 + %21 = insertvalue { ptr, ptr } %20, ptr %last.coerce1, 1 + br label %return + +return: ; preds = %entry, %while.end, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyIiiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKiiEEEE13destroy_slotsEv.exit + %.fca.1.insert.merged = phi { ptr, ptr } [ { ptr null, ptr undef }, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyIiiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKiiEEEE13destroy_slotsEv.exit ], [ %21, %while.end ], [ { ptr null, ptr undef }, %entry ] + ret { ptr, ptr } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable @@ -149523,7 +149526,7 @@ _ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyINSt7__cxx1112 while.cond.preheader: ; preds = %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKS8_S8_EEEE5beginEv.exit %cmp.i.i.i5.not10 = icmp eq ptr %first.coerce0, %last.coerce0 - br i1 %cmp.i.i.i5.not10, label %return, label %while.body + br i1 %cmp.i.i.i5.not10, label %while.end, label %while.body if.then9: ; preds = %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKS8_S8_EEEE5beginEv.exit %capacity_.i.i.i = getelementptr inbounds i8, ptr %this, i64 16 @@ -149594,13 +149597,16 @@ while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, tail call void @_ZdlPv(ptr noundef %19) #34 tail call void @_ZN4absl18container_internal13EraseMetaOnlyERNS0_12CommonFieldsEPNS0_6ctrl_tEm(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef %first.sroa.0.011, i64 noundef 8) %cmp.i.i.i5.not = icmp eq ptr %spec.select, %last.coerce0 - br i1 %cmp.i.i.i5.not, label %return, label %while.body, !llvm.loop !3431 + br i1 %cmp.i.i.i5.not, label %while.end, label %while.body, !llvm.loop !3431 -return: ; preds = %while.end.i.i.i.i, %while.cond.preheader, %entry, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKS8_S8_EEEE13destroy_slotsEv.exit - %retval.sroa.0.0 = phi ptr [ null, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKS8_S8_EEEE13destroy_slotsEv.exit ], [ null, %entry ], [ %last.coerce0, %while.cond.preheader ], [ %last.coerce0, %while.end.i.i.i.i ] - %.fca.0.insert = insertvalue { ptr, ptr } poison, ptr %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { ptr, ptr } %.fca.0.insert, ptr %last.coerce1, 1 - ret { ptr, ptr } %.fca.1.insert +while.end: ; preds = %while.end.i.i.i.i, %while.cond.preheader + %20 = insertvalue { ptr, ptr } poison, ptr %last.coerce0, 0 + %21 = insertvalue { ptr, ptr } %20, ptr %last.coerce1, 1 + br label %return + +return: ; preds = %entry, %while.end, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKS8_S8_EEEE13destroy_slotsEv.exit + %.fca.1.insert.merged = phi { ptr, ptr } [ { ptr null, ptr undef }, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashMapPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES8_EENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocISt4pairIKS8_S8_EEEE13destroy_slotsEv.exit ], [ %21, %while.end ], [ { ptr null, ptr undef }, %entry ] + ret { ptr, ptr } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable diff --git a/bench/abseil-cpp/optimized/program_name.cc.ll b/bench/abseil-cpp/optimized/program_name.cc.ll index 46a0a8513a1..a21a743ec4f 100644 --- a/bench/abseil-cpp/optimized/program_name.cc.ll +++ b/bench/abseil-cpp/optimized/program_name.cc.ll @@ -164,11 +164,11 @@ _ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i: ; preds = %cond br label %invoke.cont invoke.cont: ; preds = %do.cond.i.i.i, %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i, %cond.true - %retval.sroa.0.0.i = phi i64 [ %sub.i.i, %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i ], [ 0, %cond.true ], [ %1, %do.cond.i.i.i ] - %retval.sroa.3.0.i = phi ptr [ %add.ptr.i.i, %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i ], [ %2, %cond.true ], [ %2, %do.cond.i.i.i ] + %filename.coerce0.pn.i = phi i64 [ %sub.i.i, %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i ], [ 0, %cond.true ], [ %1, %do.cond.i.i.i ] + %filename.coerce1.pn.i = phi ptr [ %add.ptr.i.i, %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i ], [ %2, %cond.true ], [ %2, %do.cond.i.i.i ] call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) #10 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %agg.tmp.i) - %call.i = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %retval.sroa.0.0.i, ptr %retval.sroa.3.0.i) #10 + %call.i = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %filename.coerce0.pn.i, ptr %filename.coerce1.pn.i) #10 %4 = extractvalue { i64, ptr } %call.i, 0 %5 = extractvalue { i64, ptr } %call.i, 1 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp.i, i64 %4, ptr %5) #10 diff --git a/bench/abseil-cpp/optimized/status.cc.ll b/bench/abseil-cpp/optimized/status.cc.ll index 9d2e4ecab67..06299bff15d 100644 --- a/bench/abseil-cpp/optimized/status.cc.ll +++ b/bench/abseil-cpp/optimized/status.cc.ll @@ -1569,26 +1569,30 @@ entry: %0 = load i64, ptr %status, align 8 %and.i.i = and i64 %0, 1 %cmp.i.not.i = icmp eq i64 %and.i.i, 0 - br i1 %cmp.i.not.i, label %_ZNK4absl6Status7messageEv.exit, label %cond.false.i + br i1 %cmp.i.not.i, label %cond.true.i, label %cond.false.i -cond.false.i: ; preds = %entry - %and.i1.i = and i64 %0, 2 - br label %cond.end - -_ZNK4absl6Status7messageEv.exit: ; preds = %entry +cond.true.i: ; preds = %entry %1 = inttoptr i64 %0 to ptr %message_.i.i = getelementptr inbounds i8, ptr %1, i64 8 %call5.i = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %message_.i.i) #13 - %2 = extractvalue { i64, ptr } %call5.i, 0 - %3 = extractvalue { i64, ptr } %call5.i, 1 - br label %cond.end - -cond.end: ; preds = %_ZNK4absl6Status7messageEv.exit, %cond.false.i - %.sink14 = phi i64 [ %2, %_ZNK4absl6Status7messageEv.exit ], [ %and.i1.i, %cond.false.i ] - %.sink = phi ptr [ %3, %_ZNK4absl6Status7messageEv.exit ], [ @_ZN4absl6Status16kMovedFromStringE, %cond.false.i ] - %cmp.i = icmp eq i64 %.sink14, 0 - %spec.select13 = select i1 %cmp.i, ptr @.str.17, ptr %.sink - ret ptr %spec.select13 + br label %_ZNK4absl6Status7messageEv.exit + +cond.false.i: ; preds = %entry + %and.i1.i = and i64 %0, 2 + %cmp.i2.not.i = icmp eq i64 %and.i1.i, 0 + %spec.select.i = select i1 %cmp.i2.not.i, i64 0, i64 27 + %spec.select3.i = select i1 %cmp.i2.not.i, ptr null, ptr @_ZN4absl6Status16kMovedFromStringE + %2 = insertvalue { i64, ptr } poison, i64 %spec.select.i, 0 + %3 = insertvalue { i64, ptr } %2, ptr %spec.select3.i, 1 + br label %_ZNK4absl6Status7messageEv.exit + +_ZNK4absl6Status7messageEv.exit: ; preds = %cond.true.i, %cond.false.i + %.fca.1.insert.merged.i = phi { i64, ptr } [ %call5.i, %cond.true.i ], [ %3, %cond.false.i ] + %4 = extractvalue { i64, ptr } %.fca.1.insert.merged.i, 0 + %5 = extractvalue { i64, ptr } %.fca.1.insert.merged.i, 1 + %cmp.i = icmp eq i64 %4, 0 + %spec.select = select i1 %cmp.i, ptr @.str.17, ptr %5 + ret ptr %spec.select } ; Function Attrs: nounwind diff --git a/bench/abseil-cpp/optimized/usage_config_test.cc.ll b/bench/abseil-cpp/optimized/usage_config_test.cc.ll index e924ed02432..c52f46515de 100644 --- a/bench/abseil-cpp/optimized/usage_config_test.cc.ll +++ b/bench/abseil-cpp/optimized/usage_config_test.cc.ll @@ -2156,13 +2156,13 @@ _ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i: ; preds = %cond br label %lor.rhs.i lor.rhs.i: ; preds = %do.cond.i.i.i, %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i - %retval.sroa.0.0.i = phi i64 [ %sub.i.i, %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i ], [ %f.coerce0, %do.cond.i.i.i ] - %retval.sroa.3.0.i = phi ptr [ %add.ptr.i.i, %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i ], [ %f.coerce1, %do.cond.i.i.i ] - %cmp.not.i = icmp ult i64 %retval.sroa.0.0.i, 9 + %filename.coerce0.pn.i = phi i64 [ %sub.i.i, %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i ], [ %f.coerce0, %do.cond.i.i.i ] + %filename.coerce1.pn.i = phi ptr [ %add.ptr.i.i, %_ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit.i ], [ %f.coerce1, %do.cond.i.i.i ] + %cmp.not.i = icmp ult i64 %filename.coerce0.pn.i, 9 br i1 %cmp.not.i, label %_ZN4absl10StartsWithESt17basic_string_viewIcSt11char_traitsIcEES3_.exit, label %land.rhs.i land.rhs.i: ; preds = %lor.rhs.i - %bcmp.i = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(9) %retval.sroa.3.0.i, ptr noundef nonnull dereferenceable(9) @.str.21, i64 9) + %bcmp.i = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(9) %filename.coerce1.pn.i, ptr noundef nonnull dereferenceable(9) @.str.21, i64 9) %cmp7.i = icmp eq i32 %bcmp.i, 0 br label %_ZN4absl10StartsWithESt17basic_string_viewIcSt11char_traitsIcEES3_.exit diff --git a/bench/actix-rs/optimized/13h928g7964mzia7.ll b/bench/actix-rs/optimized/13h928g7964mzia7.ll index 48bcd74109f..a823abfbb6f 100644 --- a/bench/actix-rs/optimized/13h928g7964mzia7.ll +++ b/bench/actix-rs/optimized/13h928g7964mzia7.ll @@ -14,9 +14,11 @@ target triple = "x86_64-unknown-linux-gnu" ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define hidden { i64, i64 } @"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h84015741f1851455E.llvm.9397651224479784633"(i64 noundef %0, i64 %1) unnamed_addr #0 { - %3 = insertvalue { i64, i64 } poison, i64 %0, 0 - %4 = insertvalue { i64, i64 } %3, i64 %1, 1 - ret { i64, i64 } %4 + %3 = icmp eq i64 %0, -9223372036854775807 + %4 = insertvalue { i64, i64 } poison, i64 %0, 0 + %5 = insertvalue { i64, i64 } %4, i64 %1, 1 + %.merged = select i1 %3, { i64, i64 } { i64 -9223372036854775807, i64 undef }, { i64, i64 } %5 + ret { i64, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable @@ -34,7 +36,9 @@ define hidden void @_ZN5alloc7raw_vec14handle_reserve17hf0112dc2ee693d5aE.llvm.9 unreachable 5: ; preds = %2 - tail call void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %0, i64 noundef %1) #16 + %6 = icmp eq i64 %0, -9223372036854775807 + %7 = select i1 %6, i64 undef, i64 %1 + tail call void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %0, i64 noundef %7) #16 unreachable } diff --git a/bench/actix-rs/optimized/1heyflno2zbhb99l.ll b/bench/actix-rs/optimized/1heyflno2zbhb99l.ll index 77b6dfe727e..989e2b6fd54 100644 --- a/bench/actix-rs/optimized/1heyflno2zbhb99l.ll +++ b/bench/actix-rs/optimized/1heyflno2zbhb99l.ll @@ -8648,7 +8648,7 @@ define { i64, i32 } @_ZN10actix_http6config13ServiceConfig19keep_alive_deadline1 %4 = load i32, ptr %3, align 8, !range !1124, !noundef !4 %5 = and i32 %4, 1073741822 %.not = icmp eq i32 %5, 1000000000 - br i1 %.not, label %18, label %6 + br i1 %.not, label %16, label %6 6: ; preds = %1 %7 = getelementptr inbounds i8, ptr %2, i64 48 @@ -8661,16 +8661,11 @@ define { i64, i32 } @_ZN10actix_http6config13ServiceConfig19keep_alive_deadline1 %13 = getelementptr inbounds i8, ptr %10, i64 64 %14 = load i32, ptr %13, align 8, !range !1132, !noalias !1131, !noundef !4 %15 = tail call { i64, i32 } @"_ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hc3e1f3ca43de614cE"(i64 noundef %12, i32 noundef %14, i64 noundef %8, i32 noundef %4) - %16 = extractvalue { i64, i32 } %15, 0 - %17 = extractvalue { i64, i32 } %15, 1 - br label %18 - -18: ; preds = %1, %6 - %.sroa.4.0 = phi i32 [ %17, %6 ], [ 1000000000, %1 ] - %.sroa.0.0 = phi i64 [ %16, %6 ], [ undef, %1 ] - %19 = insertvalue { i64, i32 } poison, i64 %.sroa.0.0, 0 - %20 = insertvalue { i64, i32 } %19, i32 %.sroa.4.0, 1 - ret { i64, i32 } %20 + br label %16 + +16: ; preds = %1, %6 + %.merged = phi { i64, i32 } [ %15, %6 ], [ { i64 undef, i32 1000000000 }, %1 ] + ret { i64, i32 } %.merged } ; Function Attrs: nonlazybind uwtable @@ -8683,7 +8678,7 @@ define { i64, i32 } @_ZN10actix_http6config13ServiceConfig23client_request_deadl %7 = icmp ne i64 %4, 0 %8 = icmp ne i32 %6, 0 %.0 = or i1 %7, %8 - br i1 %.0, label %9, label %19 + br i1 %.0, label %9, label %17 9: ; preds = %1 %10 = getelementptr inbounds i8, ptr %2, i64 96 @@ -8694,16 +8689,11 @@ define { i64, i32 } @_ZN10actix_http6config13ServiceConfig23client_request_deadl %14 = getelementptr inbounds i8, ptr %11, i64 64 %15 = load i32, ptr %14, align 8, !range !1132, !noalias !1139, !noundef !4 %16 = tail call { i64, i32 } @"_ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hc3e1f3ca43de614cE"(i64 noundef %13, i32 noundef %15, i64 noundef %4, i32 noundef %6) - %17 = extractvalue { i64, i32 } %16, 0 - %18 = extractvalue { i64, i32 } %16, 1 - br label %19 - -19: ; preds = %1, %9 - %.sroa.3.0 = phi i32 [ %18, %9 ], [ 1000000000, %1 ] - %.sroa.0.0 = phi i64 [ %17, %9 ], [ undef, %1 ] - %20 = insertvalue { i64, i32 } poison, i64 %.sroa.0.0, 0 - %21 = insertvalue { i64, i32 } %20, i32 %.sroa.3.0, 1 - ret { i64, i32 } %21 + br label %17 + +17: ; preds = %1, %9 + %.merged = phi { i64, i32 } [ %16, %9 ], [ { i64 undef, i32 1000000000 }, %1 ] + ret { i64, i32 } %.merged } ; Function Attrs: nonlazybind uwtable @@ -8716,7 +8706,7 @@ define { i64, i32 } @_ZN10actix_http6config13ServiceConfig26client_disconnect_de %7 = icmp ne i64 %4, 0 %8 = icmp ne i32 %6, 0 %.0 = or i1 %7, %8 - br i1 %.0, label %9, label %19 + br i1 %.0, label %9, label %17 9: ; preds = %1 %10 = getelementptr inbounds i8, ptr %2, i64 96 @@ -8727,16 +8717,11 @@ define { i64, i32 } @_ZN10actix_http6config13ServiceConfig26client_disconnect_de %14 = getelementptr inbounds i8, ptr %11, i64 64 %15 = load i32, ptr %14, align 8, !range !1132, !noalias !1146, !noundef !4 %16 = tail call { i64, i32 } @"_ZN88_$LT$std..time..Instant$u20$as$u20$core..ops..arith..Add$LT$core..time..Duration$GT$$GT$3add17hc3e1f3ca43de614cE"(i64 noundef %13, i32 noundef %15, i64 noundef %4, i32 noundef %6) - %17 = extractvalue { i64, i32 } %16, 0 - %18 = extractvalue { i64, i32 } %16, 1 - br label %19 - -19: ; preds = %1, %9 - %.sroa.3.0 = phi i32 [ %18, %9 ], [ 1000000000, %1 ] - %.sroa.0.0 = phi i64 [ %17, %9 ], [ undef, %1 ] - %20 = insertvalue { i64, i32 } poison, i64 %.sroa.0.0, 0 - %21 = insertvalue { i64, i32 } %20, i32 %.sroa.3.0, 1 - ret { i64, i32 } %21 + br label %17 + +17: ; preds = %1, %9 + %.merged = phi { i64, i32 } [ %16, %9 ], [ { i64 undef, i32 1000000000 }, %1 ] + ret { i64, i32 } %.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(read, inaccessiblemem: readwrite) uwtable diff --git a/bench/actix-rs/optimized/1kn9hd8wvfoy3smx.ll b/bench/actix-rs/optimized/1kn9hd8wvfoy3smx.ll index 295fb634c18..6058faab98c 100644 --- a/bench/actix-rs/optimized/1kn9hd8wvfoy3smx.ll +++ b/bench/actix-rs/optimized/1kn9hd8wvfoy3smx.ll @@ -76,15 +76,14 @@ define { ptr, i64 } @"_ZN4core3ops8function5impls79_$LT$impl$u20$core..ops..func %19 = load ptr, ptr %18, align 8, !nonnull !3, !noundef !3 %20 = getelementptr inbounds i8, ptr %11, i64 16 %21 = load i64, ptr %20, align 8, !noundef !3 + %22 = insertvalue { ptr, i64 } poison, ptr %19, 0 + %23 = insertvalue { ptr, i64 } %22, i64 %21, 1 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) br label %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$17h24c64bb3b239b72bE.exit" "_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$17h24c64bb3b239b72bE.exit": ; preds = %3, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h322b657f218b940bE.exit.i" - %.sroa.02.0.i = phi ptr [ %19, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h322b657f218b940bE.exit.i" ], [ null, %3 ] - %.sroa.33.0.i = phi i64 [ %21, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h322b657f218b940bE.exit.i" ], [ undef, %3 ] - %22 = insertvalue { ptr, i64 } poison, ptr %.sroa.02.0.i, 0 - %23 = insertvalue { ptr, i64 } %22, i64 %.sroa.33.0.i, 1 - ret { ptr, i64 } %23 + %.merged.i = phi { ptr, i64 } [ %23, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h322b657f218b940bE.exit.i" ], [ { ptr null, i64 undef }, %3 ] + ret { ptr, i64 } %.merged.i } ; Function Attrs: nonlazybind uwtable diff --git a/bench/actix-rs/optimized/1pogmc0mwdv7yim4.ll b/bench/actix-rs/optimized/1pogmc0mwdv7yim4.ll index 5fe8e01ac0c..016b5103798 100644 --- a/bench/actix-rs/optimized/1pogmc0mwdv7yim4.ll +++ b/bench/actix-rs/optimized/1pogmc0mwdv7yim4.ll @@ -66,14 +66,13 @@ define hidden { ptr, i64 } @"_ZN4core3ops8function5impls79_$LT$impl$u20$core..op %21 = load ptr, ptr %20, align 8, !noalias !9, !nonnull !14, !noundef !14 %22 = getelementptr inbounds i8, ptr %12, i64 16 %23 = load i64, ptr %22, align 8, !noalias !9, !noundef !14 + %24 = insertvalue { ptr, i64 } poison, ptr %21, 0 + %25 = insertvalue { ptr, i64 } %24, i64 %23, 1 br label %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$17h0f1cfa1ee7f7311dE.llvm.4818362376595165454.exit" "_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$17h0f1cfa1ee7f7311dE.llvm.4818362376595165454.exit": ; preds = %3, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hd6cbb50fe8f310c7E.llvm.4818362376595165454.exit.i" - %.sroa.02.0.i = phi ptr [ %21, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hd6cbb50fe8f310c7E.llvm.4818362376595165454.exit.i" ], [ null, %3 ] - %.sroa.33.0.i = phi i64 [ %23, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hd6cbb50fe8f310c7E.llvm.4818362376595165454.exit.i" ], [ undef, %3 ] - %24 = insertvalue { ptr, i64 } poison, ptr %.sroa.02.0.i, 0 - %25 = insertvalue { ptr, i64 } %24, i64 %.sroa.33.0.i, 1 - ret { ptr, i64 } %25 + %.merged.i = phi { ptr, i64 } [ %25, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hd6cbb50fe8f310c7E.llvm.4818362376595165454.exit.i" ], [ { ptr null, i64 undef }, %3 ] + ret { ptr, i64 } %.merged.i } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: readwrite, inaccessiblemem: readwrite) uwtable @@ -1349,7 +1348,7 @@ define hidden void @_ZN12actix_router8resource11ResourceDef9construct17hbeedcd55 define hidden { ptr, i64 } @"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$17h0f1cfa1ee7f7311dE.llvm.4818362376595165454"(ptr noalias nocapture noundef nonnull readnone align 1 %0, ptr noalias noundef readonly align 1 %1, i64 %2) unnamed_addr #3 personality ptr @rust_eh_personality { %4 = alloca { { { i64, ptr, {} }, i64 } }, align 8 %5 = icmp eq ptr %1, null - br i1 %5, label %24, label %6 + br i1 %5, label %26, label %6 6: ; preds = %3 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !211 @@ -1398,14 +1397,13 @@ define hidden { ptr, i64 } @"_ZN12actix_router8resource11ResourceDef5parse28_$u7 %21 = load ptr, ptr %20, align 8, !noalias !211, !nonnull !14, !noundef !14 %22 = getelementptr inbounds i8, ptr %12, i64 16 %23 = load i64, ptr %22, align 8, !noalias !211, !noundef !14 - br label %24 - -24: ; preds = %3, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hd6cbb50fe8f310c7E.llvm.4818362376595165454.exit" - %.sroa.02.0 = phi ptr [ %21, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hd6cbb50fe8f310c7E.llvm.4818362376595165454.exit" ], [ null, %3 ] - %.sroa.33.0 = phi i64 [ %23, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hd6cbb50fe8f310c7E.llvm.4818362376595165454.exit" ], [ undef, %3 ] - %25 = insertvalue { ptr, i64 } poison, ptr %.sroa.02.0, 0 - %26 = insertvalue { ptr, i64 } %25, i64 %.sroa.33.0, 1 - ret { ptr, i64 } %26 + %24 = insertvalue { ptr, i64 } poison, ptr %21, 0 + %25 = insertvalue { ptr, i64 } %24, i64 %23, 1 + br label %26 + +26: ; preds = %3, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hd6cbb50fe8f310c7E.llvm.4818362376595165454.exit" + %.merged = phi { ptr, i64 } [ %25, %"_ZN12actix_router8resource11ResourceDef5parse28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17hd6cbb50fe8f310c7E.llvm.4818362376595165454.exit" ], [ { ptr null, i64 undef }, %3 ] + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/actix-rs/optimized/27zn2x05lna4a2z7.ll b/bench/actix-rs/optimized/27zn2x05lna4a2z7.ll index 366bb3c5091..0a6108c40e9 100644 --- a/bench/actix-rs/optimized/27zn2x05lna4a2z7.ll +++ b/bench/actix-rs/optimized/27zn2x05lna4a2z7.ll @@ -71,16 +71,11 @@ define hidden { ptr, i64 } @_ZN10mime_guess9MimeGuess9from_path17h60df90d66dc612 17: ; preds = %10 %18 = tail call { ptr, i64 } @_ZN10mime_guess9MimeGuess8from_ext17h65071f908c366eecE(ptr noalias noundef nonnull readonly align 1 %14, i64 noundef %16), !noalias !18 - %19 = extractvalue { ptr, i64 } %18, 0 - %20 = extractvalue { ptr, i64 } %18, 1 br label %"_ZN4core6option15Option$LT$T$GT$6map_or17hf7584f8fad15bf72E.llvm.13892041527173094624.exit" "_ZN4core6option15Option$LT$T$GT$6map_or17hf7584f8fad15bf72E.llvm.13892041527173094624.exit": ; preds = %1, %10, %17 - %.sroa.33.0.i = phi i64 [ %20, %17 ], [ 0, %10 ], [ 0, %1 ] - %.sroa.02.0.i = phi ptr [ %19, %17 ], [ @anon.4b712bb4a53a14efd4fd687e51c22595.4.llvm.13892041527173094624, %10 ], [ @anon.4b712bb4a53a14efd4fd687e51c22595.4.llvm.13892041527173094624, %1 ] - %21 = insertvalue { ptr, i64 } poison, ptr %.sroa.02.0.i, 0 - %22 = insertvalue { ptr, i64 } %21, i64 %.sroa.33.0.i, 1 - ret { ptr, i64 } %22 + %.merged.i = phi { ptr, i64 } [ %18, %17 ], [ { ptr @anon.4b712bb4a53a14efd4fd687e51c22595.4.llvm.13892041527173094624, i64 0 }, %10 ], [ { ptr @anon.4b712bb4a53a14efd4fd687e51c22595.4.llvm.13892041527173094624, i64 0 }, %1 ] + ret { ptr, i64 } %.merged.i } ; Function Attrs: nonlazybind uwtable @@ -599,20 +594,20 @@ define hidden { ptr, i64 } @"_ZN4core5slice4iter13Iter$LT$T$GT$10make_slice17hbe ; Function Attrs: inlinehint nonlazybind uwtable define hidden { ptr, i64 } @"_ZN4core6option15Option$LT$T$GT$6map_or17hf7584f8fad15bf72E.llvm.13892041527173094624"(ptr noalias noundef readonly align 1 %0, i64 %1, ptr noalias noundef nonnull readonly align 8 %2, i64 noundef %3) unnamed_addr #2 personality ptr @rust_eh_personality { %5 = icmp eq ptr %0, null - br i1 %5, label %10, label %6 + br i1 %5, label %6, label %9 6: ; preds = %4 - %7 = tail call { ptr, i64 } @_ZN10mime_guess9MimeGuess8from_ext17h65071f908c366eecE(ptr noalias noundef nonnull readonly align 1 %0, i64 noundef %1) - %8 = extractvalue { ptr, i64 } %7, 0 - %9 = extractvalue { ptr, i64 } %7, 1 - br label %10 - -10: ; preds = %4, %6 - %.sroa.33.0 = phi i64 [ %9, %6 ], [ %3, %4 ] - %.sroa.02.0 = phi ptr [ %8, %6 ], [ %2, %4 ] - %11 = insertvalue { ptr, i64 } poison, ptr %.sroa.02.0, 0 - %12 = insertvalue { ptr, i64 } %11, i64 %.sroa.33.0, 1 - ret { ptr, i64 } %12 + %7 = insertvalue { ptr, i64 } poison, ptr %2, 0 + %8 = insertvalue { ptr, i64 } %7, i64 %3, 1 + br label %11 + +9: ; preds = %4 + %10 = tail call { ptr, i64 } @_ZN10mime_guess9MimeGuess8from_ext17h65071f908c366eecE(ptr noalias noundef nonnull readonly align 1 %0, i64 noundef %1) + br label %11 + +11: ; preds = %9, %6 + %.merged = phi { ptr, i64 } [ %8, %6 ], [ %10, %9 ] + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/actix-rs/optimized/38w83wyqv1thu0n9.ll b/bench/actix-rs/optimized/38w83wyqv1thu0n9.ll index 49bb93a42aa..876fb4ece0f 100644 --- a/bench/actix-rs/optimized/38w83wyqv1thu0n9.ll +++ b/bench/actix-rs/optimized/38w83wyqv1thu0n9.ll @@ -1771,10 +1771,10 @@ define hidden { ptr, ptr } @"_ZN106_$LT$core..iter..adapters..GenericShunt$LT$I$ br label %18 18: ; preds = %4, %._crit_edge.i, %17 - %.sroa.8.011 = phi ptr [ %.sroa.8.026.i, %17 ], [ %2, %4 ], [ %15, %._crit_edge.i ] - %19 = insertvalue { ptr, ptr } poison, ptr %1, 0 - %20 = insertvalue { ptr, ptr } %19, ptr %.sroa.8.011, 1 - ret { ptr, ptr } %20 + %.sroa.8.026.i.pn = phi ptr [ %.sroa.8.026.i, %17 ], [ %2, %4 ], [ %15, %._crit_edge.i ] + %.pn = insertvalue { ptr, ptr } poison, ptr %1, 0 + %.merged = insertvalue { ptr, ptr } %.pn, ptr %.sroa.8.026.i.pn, 1 + ret { ptr, ptr } %.merged } ; Function Attrs: nofree norecurse nosync nounwind nonlazybind uwtable @@ -1828,10 +1828,10 @@ define hidden { ptr, ptr } @"_ZN106_$LT$core..iter..adapters..GenericShunt$LT$I$ br label %19 19: ; preds = %4, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd2cbf4ebe4e45824E.exit.thread.sink.split.i", %18 - %.sroa.8.011 = phi ptr [ %.sroa.8.025.i, %18 ], [ %.sroa.8.024.ph.i, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd2cbf4ebe4e45824E.exit.thread.sink.split.i" ], [ %2, %4 ] - %20 = insertvalue { ptr, ptr } poison, ptr %1, 0 - %21 = insertvalue { ptr, ptr } %20, ptr %.sroa.8.011, 1 - ret { ptr, ptr } %21 + %.sroa.8.025.i.pn = phi ptr [ %.sroa.8.025.i, %18 ], [ %.sroa.8.024.ph.i, %"_ZN103_$LT$alloc..vec..into_iter..IntoIter$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd2cbf4ebe4e45824E.exit.thread.sink.split.i" ], [ %2, %4 ] + %.pn = insertvalue { ptr, ptr } poison, ptr %1, 0 + %.merged = insertvalue { ptr, ptr } %.pn, ptr %.sroa.8.025.i.pn, 1 + ret { ptr, ptr } %.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable @@ -8375,20 +8375,15 @@ define { ptr, i64 } @_ZN9actix_web4rmap11ResourceMap10match_name17h1c1b6d2901ffd %6 = extractvalue { i64, ptr } %4, 1 %7 = icmp eq ptr %6, null %8 = select i1 %switch.i, i1 true, i1 %7 - br i1 %8, label %13, label %9 + br i1 %8, label %11, label %9 9: ; preds = %3 %10 = tail call { ptr, i64 } @_ZN12actix_router8resource11ResourceDef4name17h3674edb55412bc24E(ptr noalias noundef nonnull readonly align 8 dereferenceable(152) %6) - %11 = extractvalue { ptr, i64 } %10, 0 - %12 = extractvalue { ptr, i64 } %10, 1 - br label %13 + br label %11 -13: ; preds = %3, %9 - %.sroa.3.0 = phi i64 [ %12, %9 ], [ undef, %3 ] - %.sroa.0.0 = phi ptr [ %11, %9 ], [ null, %3 ] - %14 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %15 = insertvalue { ptr, i64 } %14, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %15 +11: ; preds = %3, %9 + %.merged = phi { ptr, i64 } [ %10, %9 ], [ { ptr null, i64 undef }, %3 ] + ret { ptr, i64 } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/actix-rs/optimized/3r4ha69xj2bs6l86.ll b/bench/actix-rs/optimized/3r4ha69xj2bs6l86.ll index 5d6ac5f36de..d614ec9a47f 100644 --- a/bench/actix-rs/optimized/3r4ha69xj2bs6l86.ll +++ b/bench/actix-rs/optimized/3r4ha69xj2bs6l86.ll @@ -7783,16 +7783,11 @@ define hidden { i64, ptr } @"_ZN74_$LT$core..pin..Pin$LT$P$GT$$u20$as$u20$future 7: ; preds = %2 %8 = tail call { i64, ptr } @"_ZN11actix_codec6framed19Framed$LT$T$C$U$GT$5flush17h832d13e494d1452bE"(ptr noalias noundef nonnull align 8 dereferenceable(224) %3, ptr noalias noundef nonnull align 8 dereferenceable(8) %1) - %9 = extractvalue { i64, ptr } %8, 0 - %10 = extractvalue { i64, ptr } %8, 1 br label %"_ZN88_$LT$actix_codec..framed..Framed$LT$T$C$U$GT$$u20$as$u20$futures_sink..Sink$LT$I$GT$$GT$10poll_ready17h290e68b022900244E.exit" "_ZN88_$LT$actix_codec..framed..Framed$LT$T$C$U$GT$$u20$as$u20$futures_sink..Sink$LT$I$GT$$GT$10poll_ready17h290e68b022900244E.exit": ; preds = %2, %7 - %.sroa.0.0.i = phi i64 [ %9, %7 ], [ 0, %2 ] - %.sroa.3.0.i = phi ptr [ %10, %7 ], [ null, %2 ] - %11 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0.i, 0 - %12 = insertvalue { i64, ptr } %11, ptr %.sroa.3.0.i, 1 - ret { i64, ptr } %12 + %.merged.i = phi { i64, ptr } [ %8, %7 ], [ zeroinitializer, %2 ] + ret { i64, ptr } %.merged.i } ; Function Attrs: nonlazybind uwtable @@ -7805,16 +7800,11 @@ define hidden { i64, ptr } @"_ZN74_$LT$core..pin..Pin$LT$P$GT$$u20$as$u20$future 7: ; preds = %2 %8 = tail call { i64, ptr } @"_ZN11actix_codec6framed19Framed$LT$T$C$U$GT$5flush17h193d77e6e26dec29E"(ptr noalias noundef nonnull align 8 dereferenceable(232) %3, ptr noalias noundef nonnull align 8 dereferenceable(8) %1) - %9 = extractvalue { i64, ptr } %8, 0 - %10 = extractvalue { i64, ptr } %8, 1 br label %"_ZN88_$LT$actix_codec..framed..Framed$LT$T$C$U$GT$$u20$as$u20$futures_sink..Sink$LT$I$GT$$GT$10poll_ready17ha83964095e2d4a9bE.exit" "_ZN88_$LT$actix_codec..framed..Framed$LT$T$C$U$GT$$u20$as$u20$futures_sink..Sink$LT$I$GT$$GT$10poll_ready17ha83964095e2d4a9bE.exit": ; preds = %2, %7 - %.sroa.0.0.i = phi i64 [ %9, %7 ], [ 0, %2 ] - %.sroa.3.0.i = phi ptr [ %10, %7 ], [ null, %2 ] - %11 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0.i, 0 - %12 = insertvalue { i64, ptr } %11, ptr %.sroa.3.0.i, 1 - ret { i64, ptr } %12 + %.merged.i = phi { i64, ptr } [ %8, %7 ], [ zeroinitializer, %2 ] + ret { i64, ptr } %.merged.i } ; Function Attrs: nonlazybind uwtable @@ -7937,11 +7927,10 @@ define hidden { ptr, ptr } @"_ZN8indexmap3map25IndexMap$LT$K$C$V$C$S$GT$9get_ind %7 = getelementptr inbounds { i64, i32, i32 }, ptr %6, i64 %1 %8 = getelementptr inbounds i8, ptr %7, i64 8 %9 = getelementptr inbounds i8, ptr %7, i64 12 - %.sroa.3.0 = select i1 %.not, ptr %9, ptr undef - %.sroa.0.0 = select i1 %.not, ptr %8, ptr null - %10 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %11 = insertvalue { ptr, ptr } %10, ptr %.sroa.3.0, 1 - ret { ptr, ptr } %11 + %10 = insertvalue { ptr, ptr } poison, ptr %8, 0 + %11 = insertvalue { ptr, ptr } %10, ptr %9, 1 + %.merged = select i1 %.not, { ptr, ptr } %11, { ptr, ptr } { ptr null, ptr undef } + ret { ptr, ptr } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/actix-rs/optimized/3vo3nye5ryafj928.ll b/bench/actix-rs/optimized/3vo3nye5ryafj928.ll index 952248bf60b..788dbef4195 100644 --- a/bench/actix-rs/optimized/3vo3nye5ryafj928.ll +++ b/bench/actix-rs/optimized/3vo3nye5ryafj928.ll @@ -77,20 +77,15 @@ define void @"_ZN4core6option15Option$LT$T$GT$6map_or17hde28a60fc0bda33cE"(ptr s define { ptr, i64 } @"_ZN4core6option15Option$LT$T$GT$8as_deref17hfef80d8a3870225cE"(ptr align 8 %0) unnamed_addr #0 { %2 = load i64, ptr %0, align 8, !range !3, !noundef !4 %3 = icmp eq i64 %2, -9223372036854775808 - br i1 %3, label %8, label %4 + br i1 %3, label %6, label %4 4: ; preds = %1 %5 = tail call { ptr, i64 } @"_ZN65_$LT$alloc..string..String$u20$as$u20$core..ops..deref..Deref$GT$5deref17hea228d89a956d486E"(ptr nonnull align 8 %0) - %6 = extractvalue { ptr, i64 } %5, 0 - %7 = extractvalue { ptr, i64 } %5, 1 - br label %8 + br label %6 -8: ; preds = %1, %4 - %.sroa.3.0 = phi i64 [ %7, %4 ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %6, %4 ], [ null, %1 ] - %9 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %10 = insertvalue { ptr, i64 } %9, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %10 +6: ; preds = %1, %4 + %.merged = phi { ptr, i64 } [ %5, %4 ], [ { ptr null, i64 undef }, %1 ] + ret { ptr, i64 } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/actix-rs/optimized/48duj8tg7v09rmpe.ll b/bench/actix-rs/optimized/48duj8tg7v09rmpe.ll index 2bdea4c3028..3c3d26d6ebf 100644 --- a/bench/actix-rs/optimized/48duj8tg7v09rmpe.ll +++ b/bench/actix-rs/optimized/48duj8tg7v09rmpe.ll @@ -790,7 +790,7 @@ define { ptr, ptr } @_ZN15actix_multipart4form4json10JsonConfig9map_error17hdb7b %4 = alloca ptr, align 8 %5 = load ptr, ptr %0, align 8, !noundef !4 %6 = icmp eq ptr %5, null - br i1 %6, label %21, label %7 + br i1 %6, label %23, label %7 7: ; preds = %3 %8 = getelementptr inbounds i8, ptr %0, i64 8 @@ -806,53 +806,54 @@ define { ptr, ptr } @_ZN15actix_multipart4form4json10JsonConfig9map_error17hdb7b %18 = tail call { ptr, ptr } %17(ptr noundef align 1 %15, ptr noalias noundef align 8 %2, ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %1) %19 = extractvalue { ptr, ptr } %18, 0 %20 = extractvalue { ptr, ptr } %18, 1 - br label %31 + %21 = icmp ne ptr %19, null + %22 = icmp ne ptr %20, null + br label %35 -21: ; preds = %3 +23: ; preds = %3 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %4) store ptr %2, ptr %4, align 8, !noalias !159 - %22 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 - %23 = tail call noundef align 8 dereferenceable_or_null(8) ptr @__rust_alloc(i64 noundef 8, i64 noundef 8) #20 - %24 = icmp eq ptr %23, null - br i1 %24, label %25, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h49d2beb8876ef37cE.exit" + %24 = load volatile i8, ptr @__rust_no_alloc_shim_is_unstable, align 1 + %25 = tail call noundef align 8 dereferenceable_or_null(8) ptr @__rust_alloc(i64 noundef 8, i64 noundef 8) #20 + %26 = icmp eq ptr %25, null + br i1 %26, label %27, label %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h49d2beb8876ef37cE.exit" -25: ; preds = %21 +27: ; preds = %23 invoke void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef 8, i64 noundef 8) #21 - to label %.noexc unwind label %26 + to label %.noexc unwind label %28 -.noexc: ; preds = %25 +.noexc: ; preds = %27 unreachable -26: ; preds = %25 - %27 = landingpad { ptr, i32 } +28: ; preds = %27 + %29 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr64drop_in_place$LT$actix_multipart..form..json..JsonFieldError$GT$17hff1694e12e140d5fE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %4) #22 - to label %30 unwind label %28 + to label %32 unwind label %30 -28: ; preds = %26 - %29 = landingpad { ptr, i32 } +30: ; preds = %28 + %31 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #23 unreachable -30: ; preds = %26 - resume { ptr, i32 } %27 +32: ; preds = %28 + resume { ptr, i32 } %29 -"_ZN5alloc5boxed12Box$LT$T$GT$3new17h49d2beb8876ef37cE.exit": ; preds = %21 - store ptr %2, ptr %23, align 8 +"_ZN5alloc5boxed12Box$LT$T$GT$3new17h49d2beb8876ef37cE.exit": ; preds = %23 + store ptr %2, ptr %25, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4) - br label %31 - -31: ; preds = %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h49d2beb8876ef37cE.exit", %7 - %.sroa.3.0 = phi ptr [ %20, %7 ], [ @anon.9536fa9df9a5f210434f3342f71a6d78.40, %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h49d2beb8876ef37cE.exit" ] - %.sroa.0.0 = phi ptr [ %19, %7 ], [ %23, %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h49d2beb8876ef37cE.exit" ] - %32 = icmp ne ptr %.sroa.0.0, null - tail call void @llvm.assume(i1 %32) - %33 = icmp ne ptr %.sroa.3.0, null - tail call void @llvm.assume(i1 %33) - %34 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %35 = insertvalue { ptr, ptr } %34, ptr %.sroa.3.0, 1 - ret { ptr, ptr } %35 + %33 = insertvalue { ptr, ptr } poison, ptr %25, 0 + %34 = insertvalue { ptr, ptr } %33, ptr @anon.9536fa9df9a5f210434f3342f71a6d78.40, 1 + br label %35 + +35: ; preds = %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h49d2beb8876ef37cE.exit", %7 + %.sroa.3.0 = phi i1 [ %22, %7 ], [ true, %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h49d2beb8876ef37cE.exit" ] + %.sroa.0.0 = phi i1 [ %21, %7 ], [ true, %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h49d2beb8876ef37cE.exit" ] + %.merged = phi { ptr, ptr } [ %18, %7 ], [ %34, %"_ZN5alloc5boxed12Box$LT$T$GT$3new17h49d2beb8876ef37cE.exit" ] + tail call void @llvm.assume(i1 %.sroa.0.0) + tail call void @llvm.assume(i1 %.sroa.3.0) + ret { ptr, ptr } %.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: readwrite) uwtable diff --git a/bench/actix-rs/optimized/4vksfexudgt1qids.ll b/bench/actix-rs/optimized/4vksfexudgt1qids.ll index 75b5ae3ae6f..d0c73ce98c1 100644 --- a/bench/actix-rs/optimized/4vksfexudgt1qids.ll +++ b/bench/actix-rs/optimized/4vksfexudgt1qids.ll @@ -4008,22 +4008,26 @@ define hidden noundef nonnull align 8 ptr @"_ZN3std3sys3pal6common12thread_local %.sroa.6.0.copyload.i.i = load i64, ptr %.sroa.6.0..0.1.sroa_idx.i.i, align 8, !alias.scope !498 store i64 0, ptr %1, align 8, !alias.scope !498 %4 = icmp eq i64 %.sroa.02.0.copyload.i.i, 1 - br i1 %4, label %"_ZN3std3sys3pal6common12thread_local4lazy21LazyKeyInner$LT$T$GT$10initialize17h5392bc9cea9ab65aE.exit", label %5 + br i1 %4, label %7, label %5 5: ; preds = %3, %2 %6 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE(), !noalias !498 - %7 = extractvalue { i64, i64 } %6, 0 - %8 = extractvalue { i64, i64 } %6, 1 br label %"_ZN3std3sys3pal6common12thread_local4lazy21LazyKeyInner$LT$T$GT$10initialize17h5392bc9cea9ab65aE.exit" -"_ZN3std3sys3pal6common12thread_local4lazy21LazyKeyInner$LT$T$GT$10initialize17h5392bc9cea9ab65aE.exit": ; preds = %3, %5 - %.sroa.0.0.i.i = phi i64 [ %7, %5 ], [ %.sroa.5.0.copyload.i.i, %3 ] - %.sroa.3.0.i.i = phi i64 [ %8, %5 ], [ %.sroa.6.0.copyload.i.i, %3 ] +7: ; preds = %3 + %8 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload.i.i, 0 + %9 = insertvalue { i64, i64 } %8, i64 %.sroa.6.0.copyload.i.i, 1 + br label %"_ZN3std3sys3pal6common12thread_local4lazy21LazyKeyInner$LT$T$GT$10initialize17h5392bc9cea9ab65aE.exit" + +"_ZN3std3sys3pal6common12thread_local4lazy21LazyKeyInner$LT$T$GT$10initialize17h5392bc9cea9ab65aE.exit": ; preds = %5, %7 + %.merged.i.i = phi { i64, i64 } [ %9, %7 ], [ %6, %5 ] + %10 = extractvalue { i64, i64 } %.merged.i.i, 0 + %11 = extractvalue { i64, i64 } %.merged.i.i, 1 store i64 1, ptr %0, align 8, !noalias !492 %.sroa.2.0..sroa_idx.i = getelementptr inbounds i8, ptr %0, i64 8 - store i64 %.sroa.0.0.i.i, ptr %.sroa.2.0..sroa_idx.i, align 8, !noalias !492 + store i64 %10, ptr %.sroa.2.0..sroa_idx.i, align 8, !noalias !492 %.sroa.3.0..sroa_idx.i = getelementptr inbounds i8, ptr %0, i64 16 - store i64 %.sroa.3.0.i.i, ptr %.sroa.3.0..sroa_idx.i, align 8, !noalias !492 + store i64 %11, ptr %.sroa.3.0..sroa_idx.i, align 8, !noalias !492 ret ptr %.sroa.2.0..sroa_idx.i } @@ -4032,7 +4036,7 @@ define hidden noundef nonnull align 8 ptr @"_ZN3std3sys3pal6common12thread_local %3 = load i64, ptr %0, align 8, !range !76, !noundef !20 %trunc = trunc nuw i64 %3 to i1 %4 = getelementptr inbounds i8, ptr %0, i64 8 - br i1 %trunc, label %12, label %5 + br i1 %trunc, label %15, label %5 5: ; preds = %2 tail call void @llvm.experimental.noalias.scope.decl(metadata !499) @@ -4049,24 +4053,28 @@ define hidden noundef nonnull align 8 ptr @"_ZN3std3sys3pal6common12thread_local %.sroa.6.0.copyload.i.i.i = load i64, ptr %.sroa.6.0..0.1.sroa_idx.i.i.i, align 8, !alias.scope !508 store i64 0, ptr %1, align 8, !alias.scope !508 %7 = icmp eq i64 %.sroa.02.0.copyload.i.i.i, 1 - br i1 %7, label %"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h408042f3972061e5E.llvm.11658830040512789610.exit", label %8 + br i1 %7, label %10, label %8 8: ; preds = %6, %5 %9 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE(), !noalias !508 - %10 = extractvalue { i64, i64 } %9, 0 - %11 = extractvalue { i64, i64 } %9, 1 br label %"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h408042f3972061e5E.llvm.11658830040512789610.exit" -"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h408042f3972061e5E.llvm.11658830040512789610.exit": ; preds = %6, %8 - %.sroa.0.0.i.i.i = phi i64 [ %10, %8 ], [ %.sroa.5.0.copyload.i.i.i, %6 ] - %.sroa.3.0.i.i.i = phi i64 [ %11, %8 ], [ %.sroa.6.0.copyload.i.i.i, %6 ] +10: ; preds = %6 + %11 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload.i.i.i, 0 + %12 = insertvalue { i64, i64 } %11, i64 %.sroa.6.0.copyload.i.i.i, 1 + br label %"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h408042f3972061e5E.llvm.11658830040512789610.exit" + +"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h408042f3972061e5E.llvm.11658830040512789610.exit": ; preds = %8, %10 + %.merged.i.i.i = phi { i64, i64 } [ %12, %10 ], [ %9, %8 ] + %13 = extractvalue { i64, i64 } %.merged.i.i.i, 0 + %14 = extractvalue { i64, i64 } %.merged.i.i.i, 1 store i64 1, ptr %0, align 8, !noalias !509 - store i64 %.sroa.0.0.i.i.i, ptr %4, align 8, !noalias !509 + store i64 %13, ptr %4, align 8, !noalias !509 %.sroa.3.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %0, i64 16 - store i64 %.sroa.3.0.i.i.i, ptr %.sroa.3.0..sroa_idx.i.i, align 8, !noalias !509 - br label %12 + store i64 %14, ptr %.sroa.3.0..sroa_idx.i.i, align 8, !noalias !509 + br label %15 -12: ; preds = %2, %"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h408042f3972061e5E.llvm.11658830040512789610.exit" +15: ; preds = %2, %"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h408042f3972061e5E.llvm.11658830040512789610.exit" ret ptr %4 } @@ -5530,9 +5538,11 @@ define hidden noundef i128 @_ZN4core5error5Error7type_id17hec7258941f25b3c4E.llv ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define hidden { i64, i64 } @"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17heb2fc552b5f71b35E.llvm.11658830040512789610"(i64 noundef %0, i64 %1) unnamed_addr #5 { - %3 = insertvalue { i64, i64 } poison, i64 %0, 0 - %4 = insertvalue { i64, i64 } %3, i64 %1, 1 - ret { i64, i64 } %4 + %3 = icmp eq i64 %0, -9223372036854775807 + %4 = insertvalue { i64, i64 } poison, i64 %0, 0 + %5 = insertvalue { i64, i64 } %4, i64 %1, 1 + %.merged = select i1 %3, { i64, i64 } { i64 -9223372036854775807, i64 undef }, { i64, i64 } %5 + ret { i64, i64 } %.merged } ; Function Attrs: inlinehint nofree norecurse nosync nounwind nonlazybind memory(argmem: write) uwtable @@ -6110,7 +6120,9 @@ define hidden void @_ZN5alloc7raw_vec14handle_reserve17hf0112dc2ee693d5aE.llvm.1 unreachable 5: ; preds = %2 - tail call void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %0, i64 noundef %1) #34 + %6 = icmp eq i64 %0, -9223372036854775807 + %7 = select i1 %6, i64 undef, i64 %1 + tail call void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %0, i64 noundef %7) #34 unreachable } diff --git a/bench/actix-rs/optimized/fm81nl3rle8c979.ll b/bench/actix-rs/optimized/fm81nl3rle8c979.ll index 67af081d9ec..2de7f8c57c8 100644 --- a/bench/actix-rs/optimized/fm81nl3rle8c979.ll +++ b/bench/actix-rs/optimized/fm81nl3rle8c979.ll @@ -21,17 +21,14 @@ _ZN4http3uri3Uri8has_path17ha89e96891e61f9c0E.exit.thread: ; preds = %1, %_ZN4ht %6 = getelementptr inbounds i8, ptr %0, i64 48 %7 = tail call { ptr, i64 } @_ZN4http3uri4path12PathAndQuery4path17he834c750211129dfE(ptr nonnull align 8 %6) %8 = extractvalue { ptr, i64 } %7, 0 - %9 = extractvalue { ptr, i64 } %7, 1 + %9 = icmp ne ptr %8, null br label %10 10: ; preds = %_ZN4http3uri3Uri8has_path17ha89e96891e61f9c0E.exit, %_ZN4http3uri3Uri8has_path17ha89e96891e61f9c0E.exit.thread - %.sroa.3.0 = phi i64 [ %9, %_ZN4http3uri3Uri8has_path17ha89e96891e61f9c0E.exit.thread ], [ 0, %_ZN4http3uri3Uri8has_path17ha89e96891e61f9c0E.exit ] - %.sroa.0.0 = phi ptr [ %8, %_ZN4http3uri3Uri8has_path17ha89e96891e61f9c0E.exit.thread ], [ @anon.68eea636c23eacabf677f63fba402653.0, %_ZN4http3uri3Uri8has_path17ha89e96891e61f9c0E.exit ] - %11 = icmp ne ptr %.sroa.0.0, null - tail call void @llvm.assume(i1 %11) - %12 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %13 = insertvalue { ptr, i64 } %12, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %13 + %.sroa.0.0 = phi i1 [ %9, %_ZN4http3uri3Uri8has_path17ha89e96891e61f9c0E.exit.thread ], [ true, %_ZN4http3uri3Uri8has_path17ha89e96891e61f9c0E.exit ] + %.merged = phi { ptr, i64 } [ %7, %_ZN4http3uri3Uri8has_path17ha89e96891e61f9c0E.exit.thread ], [ { ptr @anon.68eea636c23eacabf677f63fba402653.0, i64 0 }, %_ZN4http3uri3Uri8has_path17ha89e96891e61f9c0E.exit ] + tail call void @llvm.assume(i1 %.sroa.0.0) + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/actix-rs/optimized/kyfmdxbalxu1s84.ll b/bench/actix-rs/optimized/kyfmdxbalxu1s84.ll index 102f09d6352..3d87b89545c 100644 --- a/bench/actix-rs/optimized/kyfmdxbalxu1s84.ll +++ b/bench/actix-rs/optimized/kyfmdxbalxu1s84.ll @@ -199,7 +199,7 @@ define { ptr, i64 } @"_ZN76_$LT$http..uri..Uri$u20$as$u20$actix_router..resource _ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit: ; preds = %1 %5 = load i8, ptr %0, align 8, !range !34, !noundef !13 %.not = icmp eq i8 %5, 0 - br i1 %.not, label %_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit.thread, label %_ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit.thread + br i1 %.not, label %26, label %_ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit.thread _ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit.thread: ; preds = %1, %_ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit %6 = getelementptr inbounds i8, ptr %0, i64 80 @@ -245,14 +245,19 @@ _ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit: ; preds = %_ZN4ht %spec.select = select i1 %21, ptr @anon.c366ccdbebbb42cdbcc7f5de976c8b4e.8, ptr %10 br label %_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit.thread -_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit.thread: ; preds = %"_ZN4core3str6traits110_$LT$impl$u20$core..slice..index..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeTo$LT$usize$GT$$GT$3get17he5a2ef1652ac882fE.exit.i", %_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit, %_ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit - %.sroa.3.0 = phi i64 [ 0, %_ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit ], [ 1, %"_ZN4core3str6traits110_$LT$impl$u20$core..slice..index..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeTo$LT$usize$GT$$GT$3get17he5a2ef1652ac882fE.exit.i" ], [ %spec.select.i, %_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit ] - %.sroa.0.0 = phi ptr [ @anon.c366ccdbebbb42cdbcc7f5de976c8b4e.9, %_ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit ], [ @anon.c366ccdbebbb42cdbcc7f5de976c8b4e.8, %"_ZN4core3str6traits110_$LT$impl$u20$core..slice..index..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeTo$LT$usize$GT$$GT$3get17he5a2ef1652ac882fE.exit.i" ], [ %spec.select, %_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit ] - %22 = icmp ne ptr %.sroa.0.0, null - tail call void @llvm.assume(i1 %22) - %23 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %24 = insertvalue { ptr, i64 } %23, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %24 +_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit.thread: ; preds = %_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit, %"_ZN4core3str6traits110_$LT$impl$u20$core..slice..index..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeTo$LT$usize$GT$$GT$3get17he5a2ef1652ac882fE.exit.i" + %spec.select.i4 = phi i64 [ 1, %"_ZN4core3str6traits110_$LT$impl$u20$core..slice..index..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeTo$LT$usize$GT$$GT$3get17he5a2ef1652ac882fE.exit.i" ], [ %spec.select.i, %_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit ] + %22 = phi ptr [ @anon.c366ccdbebbb42cdbcc7f5de976c8b4e.8, %"_ZN4core3str6traits110_$LT$impl$u20$core..slice..index..SliceIndex$LT$str$GT$$u20$for$u20$core..ops..range..RangeTo$LT$usize$GT$$GT$3get17he5a2ef1652ac882fE.exit.i" ], [ %spec.select, %_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit ] + %23 = insertvalue { ptr, i64 } poison, ptr %22, 0 + %24 = insertvalue { ptr, i64 } %23, i64 %spec.select.i4, 1 + %25 = icmp ne ptr %22, null + br label %26 + +26: ; preds = %_ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit, %_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit.thread + %.sroa.0.0 = phi i1 [ %25, %_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit.thread ], [ true, %_ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit ] + %.merged = phi { ptr, i64 } [ %24, %_ZN4http3uri4path12PathAndQuery4path17h196169f74ad29859E.exit.thread ], [ { ptr @anon.c366ccdbebbb42cdbcc7f5de976c8b4e.9, i64 0 }, %_ZN4http3uri3Uri8has_path17hc131679067bcc539E.exit ] + tail call void @llvm.assume(i1 %.sroa.0.0) + ret { ptr, i64 } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/arrow/optimized/compare.cc.ll b/bench/arrow/optimized/compare.cc.ll index d39a2516fa0..30bec7d539b 100644 --- a/bench/arrow/optimized/compare.cc.ll +++ b/bench/arrow/optimized/compare.cc.ll @@ -20309,6 +20309,8 @@ _ZN5arrow8internal19BaseSetBitRunReaderILb0EE14FindCurrentRunEv.exit: ; preds = store i32 %sub20.i, ptr %current_num_bits_, align 8 %sub23.i = sub nsw i64 %sub12.i, %5 store i64 %sub23.i, ptr %remaining_11.i, align 8 + %.fca.0.insert.i = insertvalue { i64, i64 } poison, i64 %sub.i.i, 0 + %.fca.1.insert.i = insertvalue { i64, i64 } %.fca.0.insert.i, i64 %5, 1 %tobool2.not = icmp eq i64 %5, 0 %tobool4.not = icmp eq i32 %0, %6 %or.cond = select i1 %tobool2.not, i1 true, i1 %tobool4.not @@ -20403,6 +20405,7 @@ if.end14: ; preds = %_ZN5arrow8internal1 %length_.i = getelementptr inbounds i8, ptr %this, i64 8 %12 = load i64, ptr %length_.i, align 8 %sub.i23 = sub nsw i64 %12, %11 + %.pre = insertvalue { i64, i64 } poison, i64 %sub.i23, 0 br label %if.end50 if.else: ; preds = %if.end8 @@ -20455,18 +20458,16 @@ if.end40: ; preds = %if.then28, %if.then br i1 %tobool42.not, label %return, label %if.end50 if.end50: ; preds = %if.else, %if.end40, %if.end14 + %.fca.0.insert.i32.pre-phi = phi { i64, i64 } [ %.fca.0.insert.i, %if.else ], [ %.fca.0.insert.i, %if.end40 ], [ %.pre, %if.end14 ] %len.044 = phi i64 [ %5, %if.else ], [ %5, %if.end40 ], [ 0, %if.end14 ] - %pos.1 = phi i64 [ %sub.i.i, %if.else ], [ %sub.i.i, %if.end40 ], [ %sub.i23, %if.end14 ] %call51 = tail call noundef i64 @_ZN5arrow8internal19BaseSetBitRunReaderILb0EE13CountNextOnesEv(ptr noundef nonnull align 8 dereferenceable(36) %this) %add = add nsw i64 %call51, %len.044 + %.fca.1.insert.i33 = insertvalue { i64, i64 } %.fca.0.insert.i32.pre-phi, i64 %add, 1 br label %return return: ; preds = %if.end40, %if.else25, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE14FindCurrentRunEv.exit, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE13SkipNextZerosEv.exit, %if.end50 - %retval.sroa.0.0 = phi i64 [ %pos.1, %if.end50 ], [ 0, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE13SkipNextZerosEv.exit ], [ %sub.i.i, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE14FindCurrentRunEv.exit ], [ %sub.i.i, %if.else25 ], [ %sub.i.i, %if.end40 ] - %retval.sroa.6.0 = phi i64 [ %add, %if.end50 ], [ 0, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE13SkipNextZerosEv.exit ], [ %5, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE14FindCurrentRunEv.exit ], [ %5, %if.else25 ], [ %5, %if.end40 ] - %.fca.0.insert = insertvalue { i64, i64 } poison, i64 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i64, i64 } %.fca.0.insert, i64 %retval.sroa.6.0, 1 - ret { i64, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { i64, i64 } [ %.fca.1.insert.i33, %if.end50 ], [ zeroinitializer, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE13SkipNextZerosEv.exit ], [ %.fca.1.insert.i, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE14FindCurrentRunEv.exit ], [ %.fca.1.insert.i, %if.else25 ], [ %.fca.1.insert.i, %if.end40 ] + ret { i64, i64 } %.fca.1.insert.merged } declare noundef zeroext i1 @_ZN5arrow8internal12BitmapEqualsEPKhlS2_ll(ptr noundef, i64 noundef, ptr noundef, i64 noundef, i64 noundef) local_unnamed_addr #1 diff --git a/bench/arrow/optimized/expression.cc.ll b/bench/arrow/optimized/expression.cc.ll index 2ee5f7bcde7..a1f7e139c2c 100644 --- a/bench/arrow/optimized/expression.cc.ll +++ b/bench/arrow/optimized/expression.cc.ll @@ -46971,9 +46971,9 @@ while.end.loopexit86: ; preds = %if.then.i.i.i45, %i br label %while.end while.end: ; preds = %_ZSt12__to_chars_iImENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSN_S4_i.exit, %while.end.loopexit86, %while.end.loopexit - %retval.sroa.0.0.i.pn.lcssa = phi ptr [ %add.ptr.i102.i, %_ZSt12__to_chars_iImENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSN_S4_i.exit ], [ %add.ptr.i102.i40.us, %while.end.loopexit ], [ %add.ptr.i102.i40, %while.end.loopexit86 ] + %__last.pn.i.pn.lcssa = phi ptr [ %add.ptr.i102.i, %_ZSt12__to_chars_iImENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSN_S4_i.exit ], [ %add.ptr.i102.i40.us, %while.end.loopexit ], [ %add.ptr.i102.i40, %while.end.loopexit86 ] %call12 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #27 - %sub.ptr.lhs.cast = ptrtoint ptr %retval.sroa.0.0.i.pn.lcssa to i64 + %sub.ptr.lhs.cast = ptrtoint ptr %__last.pn.i.pn.lcssa to i64 %sub.ptr.rhs.cast = ptrtoint ptr %call12 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %sub.ptr.sub) diff --git a/bench/arrow/optimized/list_util.cc.ll b/bench/arrow/optimized/list_util.cc.ll index 7869ac9e0bc..734dc0839d8 100644 --- a/bench/arrow/optimized/list_util.cc.ll +++ b/bench/arrow/optimized/list_util.cc.ll @@ -1864,6 +1864,8 @@ _ZN5arrow8internal19BaseSetBitRunReaderILb0EE14FindCurrentRunEv.exit: ; preds = store i32 %sub20.i, ptr %current_num_bits_, align 8 %sub23.i = sub nsw i64 %sub12.i, %5 store i64 %sub23.i, ptr %remaining_11.i, align 8 + %.fca.0.insert.i = insertvalue { i64, i64 } poison, i64 %sub.i.i, 0 + %.fca.1.insert.i = insertvalue { i64, i64 } %.fca.0.insert.i, i64 %5, 1 %tobool2.not = icmp eq i64 %5, 0 %tobool4.not = icmp eq i32 %0, %6 %or.cond = select i1 %tobool2.not, i1 true, i1 %tobool4.not @@ -1958,6 +1960,7 @@ if.end14: ; preds = %_ZN5arrow8internal1 %length_.i = getelementptr inbounds i8, ptr %this, i64 8 %12 = load i64, ptr %length_.i, align 8 %sub.i23 = sub nsw i64 %12, %11 + %.pre = insertvalue { i64, i64 } poison, i64 %sub.i23, 0 br label %if.end50 if.else: ; preds = %if.end8 @@ -2010,18 +2013,16 @@ if.end40: ; preds = %if.then28, %if.then br i1 %tobool42.not, label %return, label %if.end50 if.end50: ; preds = %if.else, %if.end40, %if.end14 + %.fca.0.insert.i32.pre-phi = phi { i64, i64 } [ %.fca.0.insert.i, %if.else ], [ %.fca.0.insert.i, %if.end40 ], [ %.pre, %if.end14 ] %len.044 = phi i64 [ %5, %if.else ], [ %5, %if.end40 ], [ 0, %if.end14 ] - %pos.1 = phi i64 [ %sub.i.i, %if.else ], [ %sub.i.i, %if.end40 ], [ %sub.i23, %if.end14 ] %call51 = tail call noundef i64 @_ZN5arrow8internal19BaseSetBitRunReaderILb0EE13CountNextOnesEv(ptr noundef nonnull align 8 dereferenceable(36) %this) %add = add nsw i64 %call51, %len.044 + %.fca.1.insert.i33 = insertvalue { i64, i64 } %.fca.0.insert.i32.pre-phi, i64 %add, 1 br label %return return: ; preds = %if.end40, %if.else25, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE14FindCurrentRunEv.exit, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE13SkipNextZerosEv.exit, %if.end50 - %retval.sroa.0.0 = phi i64 [ %pos.1, %if.end50 ], [ 0, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE13SkipNextZerosEv.exit ], [ %sub.i.i, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE14FindCurrentRunEv.exit ], [ %sub.i.i, %if.else25 ], [ %sub.i.i, %if.end40 ] - %retval.sroa.6.0 = phi i64 [ %add, %if.end50 ], [ 0, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE13SkipNextZerosEv.exit ], [ %5, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE14FindCurrentRunEv.exit ], [ %5, %if.else25 ], [ %5, %if.end40 ] - %.fca.0.insert = insertvalue { i64, i64 } poison, i64 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i64, i64 } %.fca.0.insert, i64 %retval.sroa.6.0, 1 - ret { i64, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { i64, i64 } [ %.fca.1.insert.i33, %if.end50 ], [ zeroinitializer, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE13SkipNextZerosEv.exit ], [ %.fca.1.insert.i, %_ZN5arrow8internal19BaseSetBitRunReaderILb0EE14FindCurrentRunEv.exit ], [ %.fca.1.insert.i, %if.else25 ], [ %.fca.1.insert.i, %if.end40 ] + ret { i64, i64 } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable @@ -2186,7 +2187,12 @@ _ZN5arrow8internal19BaseSetBitRunReaderILb1EE14FindCurrentRunEv.exit: ; preds = %tobool2.not = icmp eq i64 %4, 0 %tobool4.not = icmp eq i32 %0, %5 %or.cond = select i1 %tobool2.not, i1 true, i1 %tobool4.not - br i1 %or.cond, label %if.end8, label %return + br i1 %or.cond, label %if.end8, label %if.then5 + +if.then5: ; preds = %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE14FindCurrentRunEv.exit + %.fca.0.insert.i12 = insertvalue { i64, i64 } poison, i64 %sub23.i, 0 + %.fca.1.insert.i13 = insertvalue { i64, i64 } %.fca.0.insert.i12, i64 %4, 1 + br label %return if.end8: ; preds = %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE14FindCurrentRunEv.exit br i1 %tobool2.not, label %if.then10, label %if.else @@ -2294,7 +2300,7 @@ if.then22: ; preds = %if.then18 if.else25: ; preds = %if.then18 %cmp27 = icmp sgt i64 %sub23.i, 0 - br i1 %cmp27, label %if.then28, label %return + br i1 %cmp27, label %if.then28, label %if.else34 if.then28: ; preds = %if.else25 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %word.i) @@ -2320,12 +2326,22 @@ if.then28: ; preds = %if.else25 %conv = trunc i64 %sub23.i to i32 br label %if.end40 +if.else34: ; preds = %if.else25 + %.fca.0.insert.i28 = insertvalue { i64, i64 } poison, i64 %sub23.i, 0 + %.fca.1.insert.i29 = insertvalue { i64, i64 } %.fca.0.insert.i28, i64 %4, 1 + br label %return + if.end40: ; preds = %if.then28, %if.then22 %15 = phi i64 [ %and.i, %if.then28 ], [ %word.0.copyload.i, %if.then22 ] %storemerge = phi i32 [ %conv, %if.then28 ], [ 64, %if.then22 ] store i32 %storemerge, ptr %current_num_bits_, align 8 %tobool42.not = icmp sgt i64 %15, -1 - br i1 %tobool42.not, label %return, label %if.end50 + br i1 %tobool42.not, label %if.then43, label %if.end50 + +if.then43: ; preds = %if.end40 + %.fca.0.insert.i31 = insertvalue { i64, i64 } poison, i64 %sub23.i, 0 + %.fca.1.insert.i32 = insertvalue { i64, i64 } %.fca.0.insert.i31, i64 %4, 1 + br label %return if.end50: ; preds = %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE13SkipNextZerosEv.exit, %if.else, %if.end40 %len.046 = phi i64 [ %4, %if.else ], [ %4, %if.end40 ], [ 0, %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE13SkipNextZerosEv.exit ] @@ -2333,14 +2349,13 @@ if.end50: ; preds = %_ZN5arrow8internal1 %call51 = tail call noundef i64 @_ZN5arrow8internal19BaseSetBitRunReaderILb1EE13CountNextOnesEv(ptr noundef nonnull align 8 dereferenceable(36) %this) %add = add nsw i64 %call51, %len.046 %sub.i33 = sub nsw i64 %pos.1, %add + %.fca.0.insert.i34 = insertvalue { i64, i64 } poison, i64 %sub.i33, 0 + %.fca.1.insert.i35 = insertvalue { i64, i64 } %.fca.0.insert.i34, i64 %add, 1 br label %return -return: ; preds = %if.end40, %if.else25, %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE14FindCurrentRunEv.exit, %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE13SkipNextZerosEv.exit, %if.end50 - %retval.sroa.0.0 = phi i64 [ %sub.i33, %if.end50 ], [ 0, %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE13SkipNextZerosEv.exit ], [ %sub23.i, %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE14FindCurrentRunEv.exit ], [ %sub23.i, %if.else25 ], [ %sub23.i, %if.end40 ] - %retval.sroa.6.0 = phi i64 [ %add, %if.end50 ], [ 0, %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE13SkipNextZerosEv.exit ], [ %4, %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE14FindCurrentRunEv.exit ], [ %4, %if.else25 ], [ %4, %if.end40 ] - %.fca.0.insert = insertvalue { i64, i64 } poison, i64 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i64, i64 } %.fca.0.insert, i64 %retval.sroa.6.0, 1 - ret { i64, i64 } %.fca.1.insert +return: ; preds = %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE13SkipNextZerosEv.exit, %if.end50, %if.then43, %if.else34, %if.then5 + %.fca.1.insert.merged = phi { i64, i64 } [ %.fca.1.insert.i13, %if.then5 ], [ %.fca.1.insert.i35, %if.end50 ], [ %.fca.1.insert.i32, %if.then43 ], [ %.fca.1.insert.i29, %if.else34 ], [ zeroinitializer, %_ZN5arrow8internal19BaseSetBitRunReaderILb1EE13SkipNextZerosEv.exit ] + ret { i64, i64 } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable diff --git a/bench/arrow/optimized/pretty_print.cc.ll b/bench/arrow/optimized/pretty_print.cc.ll index afd2767e5d5..b82c9c7f714 100644 --- a/bench/arrow/optimized/pretty_print.cc.ll +++ b/bench/arrow/optimized/pretty_print.cc.ll @@ -25276,9 +25276,9 @@ while.end.loopexit97: ; preds = %if.then.i.i.i47, %i br label %while.end while.end: ; preds = %_ZNSt8__detail18__to_chars_10_implIjEEvPcjT_.exit.i.i, %if.then2.i, %while.end.loopexit97, %while.end.loopexit - %retval.sroa.0.0.i.pn.lcssa = phi ptr [ %add.ptr.i85.us, %while.end.loopexit ], [ %add.ptr.i29.i42, %while.end.loopexit97 ], [ %add.ptr.i29.i, %_ZNSt8__detail18__to_chars_10_implIjEEvPcjT_.exit.i.i ], [ %add.ptr.i, %if.then2.i ] + %__last.pn.i.pn.lcssa = phi ptr [ %add.ptr.i85.us, %while.end.loopexit ], [ %add.ptr.i29.i42, %while.end.loopexit97 ], [ %add.ptr.i29.i, %_ZNSt8__detail18__to_chars_10_implIjEEvPcjT_.exit.i.i ], [ %add.ptr.i, %if.then2.i ] %call12 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #18 - %sub.ptr.lhs.cast = ptrtoint ptr %retval.sroa.0.0.i.pn.lcssa to i64 + %sub.ptr.lhs.cast = ptrtoint ptr %__last.pn.i.pn.lcssa to i64 %sub.ptr.rhs.cast = ptrtoint ptr %call12 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %sub.ptr.sub) @@ -25654,9 +25654,9 @@ while.end.loopexit94: ; preds = %if.then.i.i.i48, %i br label %while.end while.end: ; preds = %_ZNSt8__detail18__to_chars_10_implImEEvPcjT_.exit.i.i, %if.then2.i, %while.end.loopexit94, %while.end.loopexit - %retval.sroa.0.0.i.pn.lcssa = phi ptr [ %add.ptr.i82.us, %while.end.loopexit ], [ %add.ptr.i29.i43, %while.end.loopexit94 ], [ %add.ptr.i29.i, %_ZNSt8__detail18__to_chars_10_implImEEvPcjT_.exit.i.i ], [ %add.ptr.i, %if.then2.i ] + %__last.pn.i.pn.lcssa = phi ptr [ %add.ptr.i82.us, %while.end.loopexit ], [ %add.ptr.i29.i43, %while.end.loopexit94 ], [ %add.ptr.i29.i, %_ZNSt8__detail18__to_chars_10_implImEEvPcjT_.exit.i.i ], [ %add.ptr.i, %if.then2.i ] %call12 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #18 - %sub.ptr.lhs.cast = ptrtoint ptr %retval.sroa.0.0.i.pn.lcssa to i64 + %sub.ptr.lhs.cast = ptrtoint ptr %__last.pn.i.pn.lcssa to i64 %sub.ptr.rhs.cast = ptrtoint ptr %call12 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %sub.ptr.sub) @@ -30915,9 +30915,9 @@ while.end.loopexit86: ; preds = %if.then.i.i.i45, %i br label %while.end while.end: ; preds = %_ZSt12__to_chars_iImENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSN_S4_i.exit, %while.end.loopexit86, %while.end.loopexit - %retval.sroa.0.0.i.pn.lcssa = phi ptr [ %add.ptr.i102.i, %_ZSt12__to_chars_iImENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSN_S4_i.exit ], [ %add.ptr.i102.i40.us, %while.end.loopexit ], [ %add.ptr.i102.i40, %while.end.loopexit86 ] + %__last.pn.i.pn.lcssa = phi ptr [ %add.ptr.i102.i, %_ZSt12__to_chars_iImENSt9enable_ifIXsr5__or_ISt5__or_IJSt7is_sameINSt9remove_cvIT_E4typeEaES2_IS6_sES2_IS6_iES2_IS6_lES2_IS6_xEEES1_IJS2_IS6_hES2_IS6_tES2_IS6_jES2_IS6_mES2_IS6_yEEES2_IcS6_EEE5valueESt15to_chars_resultE4typeEPcSN_S4_i.exit ], [ %add.ptr.i102.i40.us, %while.end.loopexit ], [ %add.ptr.i102.i40, %while.end.loopexit86 ] %call12 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %agg.result) #18 - %sub.ptr.lhs.cast = ptrtoint ptr %retval.sroa.0.0.i.pn.lcssa to i64 + %sub.ptr.lhs.cast = ptrtoint ptr %__last.pn.i.pn.lcssa to i64 %sub.ptr.rhs.cast = ptrtoint ptr %call12 to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6resizeEm(ptr noundef nonnull align 8 dereferenceable(32) %agg.result, i64 noundef %sub.ptr.sub) diff --git a/bench/assimp/optimized/Assimp.cpp.ll b/bench/assimp/optimized/Assimp.cpp.ll index 905df0150c9..85afa6e0b24 100644 --- a/bench/assimp/optimized/Assimp.cpp.ll +++ b/bench/assimp/optimized/Assimp.cpp.ll @@ -761,33 +761,32 @@ entry: invoke.cont: ; preds = %entry %call5.i.i.i.i.i.i1 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #43 - to label %_ZNSt7__cxx114listIPN6Assimp9LogStreamESaIS3_EE9push_backERKS3_.exit unwind label %lpad + to label %try.cont unwind label %lpad -_ZNSt7__cxx114listIPN6Assimp9LogStreamESaIS3_EE9push_backERKS3_.exit: ; preds = %invoke.cont +lpad: ; preds = %invoke.cont, %entry + %0 = landingpad { ptr, i32 } + catch ptr null + %1 = extractvalue { ptr, i32 } %0, 0 + %2 = tail call ptr @__cxa_begin_catch(ptr %1) #44 + tail call void @__cxa_end_catch() + br label %return + +try.cont: ; preds = %invoke.cont %tobool.not = icmp eq ptr %call, null %._Z23CallbackToLogRedirectorPKcPc = select i1 %tobool.not, ptr null, ptr @_Z23CallbackToLogRedirectorPKcPc %_M_storage.i.i.i.i = getelementptr inbounds i8, ptr %call5.i.i.i.i.i.i1, i64 16 store ptr %call, ptr %_M_storage.i.i.i.i, align 8 tail call void @_ZNSt8__detail15_List_node_base7_M_hookEPS0_(ptr noundef nonnull align 8 dereferenceable(16) %call5.i.i.i.i.i.i1, ptr noundef nonnull @_ZN6AssimpL18gPredefinedStreamsB5cxx11E) #44 - %0 = load i64, ptr getelementptr inbounds (i8, ptr @_ZN6AssimpL18gPredefinedStreamsB5cxx11E, i64 16), align 8 - %add.i.i.i = add i64 %0, 1 + %3 = load i64, ptr getelementptr inbounds (i8, ptr @_ZN6AssimpL18gPredefinedStreamsB5cxx11E, i64 16), align 8 + %add.i.i.i = add i64 %3, 1 store i64 %add.i.i.i, ptr getelementptr inbounds (i8, ptr @_ZN6AssimpL18gPredefinedStreamsB5cxx11E, i64 16), align 8 + %4 = insertvalue { ptr, ptr } poison, ptr %._Z23CallbackToLogRedirectorPKcPc, 0 + %5 = insertvalue { ptr, ptr } %4, ptr %call, 1 br label %return -lpad: ; preds = %invoke.cont, %entry - %1 = landingpad { ptr, i32 } - catch ptr null - %2 = extractvalue { ptr, i32 } %1, 0 - %3 = tail call ptr @__cxa_begin_catch(ptr %2) #44 - tail call void @__cxa_end_catch() - br label %return - -return: ; preds = %_ZNSt7__cxx114listIPN6Assimp9LogStreamESaIS3_EE9push_backERKS3_.exit, %lpad - %retval.sroa.0.0 = phi ptr [ null, %lpad ], [ %._Z23CallbackToLogRedirectorPKcPc, %_ZNSt7__cxx114listIPN6Assimp9LogStreamESaIS3_EE9push_backERKS3_.exit ] - %retval.sroa.3.0 = phi ptr [ null, %lpad ], [ %call, %_ZNSt7__cxx114listIPN6Assimp9LogStreamESaIS3_EE9push_backERKS3_.exit ] - %.fca.0.insert = insertvalue { ptr, ptr } poison, ptr %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { ptr, ptr } %.fca.0.insert, ptr %retval.sroa.3.0, 1 - ret { ptr, ptr } %.fca.1.insert +return: ; preds = %try.cont, %lpad + %.fca.1.insert.merged = phi { ptr, ptr } [ %5, %try.cont ], [ zeroinitializer, %lpad ] + ret { ptr, ptr } %.fca.1.insert.merged } declare noundef ptr @_ZN6Assimp9LogStream19createDefaultStreamE18aiDefaultLogStreamPKcPNS_8IOSystemE(i32 noundef, ptr noundef, ptr noundef) local_unnamed_addr #4 diff --git a/bench/assimp/optimized/STEPFileReader.cpp.ll b/bench/assimp/optimized/STEPFileReader.cpp.ll index 9077581782f..d2985aaae25 100644 --- a/bench/assimp/optimized/STEPFileReader.cpp.ll +++ b/bench/assimp/optimized/STEPFileReader.cpp.ll @@ -6539,16 +6539,12 @@ lpad: ; preds = %call.i.noexc, %entr ehcleanup: ; preds = %lpad, %lpad.i %.pn = phi { ptr, i32 } [ %12, %lpad ], [ %3, %lpad.i ] - %exn.slot.0 = extractvalue { ptr, i32 } %.pn, 0 - %ehselector.slot.0 = extractvalue { ptr, i32 } %.pn, 1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp2) #20 br label %eh.resume ehcleanup18.thread: ; preds = %if.then %13 = landingpad { ptr, i32 } cleanup - %exn.slot.218 = extractvalue { ptr, i32 } %13, 0 - %ehselector.slot.219 = extractvalue { ptr, i32 } %13, 1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) #20 br label %cleanup.action @@ -6568,14 +6564,11 @@ ehcleanup18: ; preds = %lpad12, %lpad14 %.pn5 = phi { ptr, i32 } [ %15, %lpad14 ], [ %14, %lpad12 ] %cleanup.isactive.2 = phi i1 [ %cleanup.isactive.0, %lpad14 ], [ true, %lpad12 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp7) #20 - %exn.slot.2 = extractvalue { ptr, i32 } %.pn5, 0 - %ehselector.slot.2 = extractvalue { ptr, i32 } %.pn5, 1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) #20 br i1 %cleanup.isactive.2, label %cleanup.action, label %eh.resume cleanup.action: ; preds = %ehcleanup18.thread, %ehcleanup18 - %ehselector.slot.221 = phi i32 [ %ehselector.slot.219, %ehcleanup18.thread ], [ %ehselector.slot.2, %ehcleanup18 ] - %exn.slot.220 = phi ptr [ %exn.slot.218, %ehcleanup18.thread ], [ %exn.slot.2, %ehcleanup18 ] + %.pn5.pn18 = phi { ptr, i32 } [ %13, %ehcleanup18.thread ], [ %.pn5, %ehcleanup18 ] call void @__cxa_free_exception(ptr %exception) #20 br label %eh.resume @@ -6694,14 +6687,14 @@ lpad26: ; preds = %delete.end %37 = landingpad { ptr, i32 } cleanup catch ptr @_ZTIN6Assimp4STEP9TypeErrorE - %38 = extractvalue { ptr, i32 } %37, 0 - %39 = extractvalue { ptr, i32 } %37, 1 - %40 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN6Assimp4STEP9TypeErrorE) #20 - %matches = icmp eq i32 %39, %40 + %38 = extractvalue { ptr, i32 } %37, 1 + %39 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN6Assimp4STEP9TypeErrorE) #20 + %matches = icmp eq i32 %38, %39 br i1 %matches, label %catch, label %ehcleanup52 catch: ; preds = %lpad26 - %41 = call ptr @__cxa_begin_catch(ptr %38) #20 + %40 = extractvalue { ptr, i32 } %37, 0 + %41 = call ptr @__cxa_begin_catch(ptr %40) #20 %exception29 = call ptr @__cxa_allocate_exception(i64 16) #20 %vtable = load ptr, ptr %41, align 8 %vfn = getelementptr inbounds i8, ptr %vtable, i64 16 @@ -6723,8 +6716,6 @@ invoke.cont37: ; preds = %invoke.cont34 ehcleanup40.thread: ; preds = %catch %44 = landingpad { ptr, i32 } cleanup - %exn.slot.524 = extractvalue { ptr, i32 } %44, 0 - %ehselector.slot.525 = extractvalue { ptr, i32 } %44, 1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp32) #20 br label %cleanup.action43 @@ -6733,35 +6724,27 @@ ehcleanup40: ; preds = %invoke.cont34, %inv %45 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp30) #20 - %exn.slot.5 = extractvalue { ptr, i32 } %45, 0 - %ehselector.slot.5 = extractvalue { ptr, i32 } %45, 1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp32) #20 br i1 %cleanup.isactive38.0, label %cleanup.action43, label %cleanup.done44 cleanup.action43: ; preds = %ehcleanup40.thread, %ehcleanup40 - %ehselector.slot.529 = phi i32 [ %ehselector.slot.525, %ehcleanup40.thread ], [ %ehselector.slot.5, %ehcleanup40 ] - %exn.slot.527 = phi ptr [ %exn.slot.524, %ehcleanup40.thread ], [ %exn.slot.5, %ehcleanup40 ] + %.pn822 = phi { ptr, i32 } [ %44, %ehcleanup40.thread ], [ %45, %ehcleanup40 ] call void @__cxa_free_exception(ptr %exception29) #20 br label %cleanup.done44 cleanup.done44: ; preds = %cleanup.action43, %ehcleanup40 - %ehselector.slot.528 = phi i32 [ %ehselector.slot.529, %cleanup.action43 ], [ %ehselector.slot.5, %ehcleanup40 ] - %exn.slot.526 = phi ptr [ %exn.slot.527, %cleanup.action43 ], [ %exn.slot.5, %ehcleanup40 ] + %.pn821 = phi { ptr, i32 } [ %.pn822, %cleanup.action43 ], [ %45, %ehcleanup40 ] invoke void @__cxa_end_catch() to label %ehcleanup52 unwind label %terminate.lpad ehcleanup52: ; preds = %cleanup.done44, %lpad26 - %ehselector.slot.4 = phi i32 [ %ehselector.slot.528, %cleanup.done44 ], [ %39, %lpad26 ] - %exn.slot.4 = phi ptr [ %exn.slot.526, %cleanup.done44 ], [ %38, %lpad26 ] + %.merged = phi { ptr, i32 } [ %.pn821, %cleanup.done44 ], [ %37, %lpad26 ] call void @_ZNSt10shared_ptrIKN6Assimp4STEP7EXPRESS4LISTEED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %conv_args) #20 br label %eh.resume eh.resume: ; preds = %ehcleanup18, %cleanup.action, %ehcleanup52, %ehcleanup - %ehselector.slot.1 = phi i32 [ %ehselector.slot.4, %ehcleanup52 ], [ %ehselector.slot.221, %cleanup.action ], [ %ehselector.slot.2, %ehcleanup18 ], [ %ehselector.slot.0, %ehcleanup ] - %exn.slot.1 = phi ptr [ %exn.slot.4, %ehcleanup52 ], [ %exn.slot.220, %cleanup.action ], [ %exn.slot.2, %ehcleanup18 ], [ %exn.slot.0, %ehcleanup ] - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn.slot.1, 0 - %lpad.val55 = insertvalue { ptr, i32 } %lpad.val, i32 %ehselector.slot.1, 1 - resume { ptr, i32 } %lpad.val55 + %lpad.val55.merged = phi { ptr, i32 } [ %.merged, %ehcleanup52 ], [ %.pn5.pn18, %cleanup.action ], [ %.pn5, %ehcleanup18 ], [ %.pn, %ehcleanup ] + resume { ptr, i32 } %lpad.val55.merged terminate.lpad: ; preds = %cleanup.done44 %46 = landingpad { ptr, i32 } diff --git a/bench/bullet3/optimized/b3ConvexHullContact.ll b/bench/bullet3/optimized/b3ConvexHullContact.ll index 7e921ade81d..f343a43c2f3 100644 --- a/bench/bullet3/optimized/b3ConvexHullContact.ll +++ b/bench/bullet3/optimized/b3ConvexHullContact.ll @@ -27793,16 +27793,19 @@ _Z8b3MaxDotRK9b3Vector3PS0_iPf.exit.i: ; preds = %for.body.i.i %retval.sroa.0.0.copyload.i = load <2 x float>, ptr %arrayidx6.i, align 16 %retval.sroa.3.0.arrayidx6.sroa_idx.i = getelementptr inbounds i8, ptr %arrayidx6.i, i64 8 %retval.sroa.3.0.copyload.i = load <2 x float>, ptr %retval.sroa.3.0.arrayidx6.sroa_idx.i, align 8 + %31 = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %retval.sroa.0.0.copyload.i, 0 + %32 = insertvalue { <2 x float>, <2 x float> } %31, <2 x float> %retval.sroa.3.0.copyload.i, 1 br label %_Z23b3LocalGetSupportVertexRK9b3Vector3PK22b3ConvexPolyhedronDataPS0_.exit _Z23b3LocalGetSupportVertexRK9b3Vector3PK22b3ConvexPolyhedronDataPS0_.exit: ; preds = %entry, %_Z8b3MaxDotRK9b3Vector3PS0_iPf.exit.i - %retval.sroa.0.0.i = phi <2 x float> [ %retval.sroa.0.0.copyload.i, %_Z8b3MaxDotRK9b3Vector3PS0_iPf.exit.i ], [ zeroinitializer, %entry ] - %retval.sroa.3.0.i = phi <2 x float> [ %retval.sroa.3.0.copyload.i, %_Z8b3MaxDotRK9b3Vector3PS0_iPf.exit.i ], [ zeroinitializer, %entry ] + %.fca.1.insert.merged.i = phi { <2 x float>, <2 x float> } [ %32, %_Z8b3MaxDotRK9b3Vector3PS0_iPf.exit.i ], [ zeroinitializer, %entry ] + %33 = extractvalue { <2 x float>, <2 x float> } %.fca.1.insert.merged.i, 0 + %34 = extractvalue { <2 x float>, <2 x float> } %.fca.1.insert.merged.i, 1 %mul4.i.i.i.i.i = fmul float %orn.sroa.3.0.copyload, %orn.sroa.3.0.copyload - %31 = tail call float @llvm.fmuladd.f32(float %orn.sroa.0.0.copyload, float %orn.sroa.0.0.copyload, float %mul4.i.i.i.i.i) - %32 = tail call float @llvm.fmuladd.f32(float %orn.sroa.5.0.copyload, float %orn.sroa.5.0.copyload, float %31) - %33 = tail call noundef float @llvm.fmuladd.f32(float %orn.sroa.7.0.copyload, float %orn.sroa.7.0.copyload, float %32) - %div.i.i.i = fdiv float 2.000000e+00, %33 + %35 = tail call float @llvm.fmuladd.f32(float %orn.sroa.0.0.copyload, float %orn.sroa.0.0.copyload, float %mul4.i.i.i.i.i) + %36 = tail call float @llvm.fmuladd.f32(float %orn.sroa.5.0.copyload, float %orn.sroa.5.0.copyload, float %35) + %37 = tail call noundef float @llvm.fmuladd.f32(float %orn.sroa.7.0.copyload, float %orn.sroa.7.0.copyload, float %36) + %div.i.i.i = fdiv float 2.000000e+00, %37 %mul.i.i.i = fmul float %orn.sroa.0.0.copyload, %div.i.i.i %mul4.i.i.i = fmul float %orn.sroa.3.0.copyload, %div.i.i.i %mul6.i.i.i = fmul float %orn.sroa.5.0.copyload, %div.i.i.i @@ -27827,21 +27830,21 @@ _Z23b3LocalGetSupportVertexRK9b3Vector3PK22b3ConvexPolyhedronDataPS0_.exit: ; pr %add39.i.i.i = fadd float %mul22.i.i.i, %mul8.i.i.i %add41.i.i.i = fadd float %mul14.i.i.i, %mul20.i.i.i %sub42.i.i.i = fsub float 1.000000e+00, %add41.i.i.i - %pInA.sroa.0.0.vec.extract = extractelement <2 x float> %retval.sroa.0.0.i, i64 0 - %pInA.sroa.0.4.vec.extract = extractelement <2 x float> %retval.sroa.0.0.i, i64 1 - %mul5.i.i.i.i15 = fmul float %sub26.i.i.i, %pInA.sroa.0.4.vec.extract - %34 = tail call float @llvm.fmuladd.f32(float %pInA.sroa.0.0.vec.extract, float %sub.i.i.i, float %mul5.i.i.i.i15) - %pInA.sroa.3.8.vec.extract = extractelement <2 x float> %retval.sroa.3.0.i, i64 0 - %35 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %add28.i.i.i, float %34) + %pInA.sroa.0.0.vec.extract = extractelement <2 x float> %33, i64 0 + %pInA.sroa.0.4.vec.extract = extractelement <2 x float> %33, i64 1 + %mul5.i.i.i.i13 = fmul float %sub26.i.i.i, %pInA.sroa.0.4.vec.extract + %38 = tail call float @llvm.fmuladd.f32(float %pInA.sroa.0.0.vec.extract, float %sub.i.i.i, float %mul5.i.i.i.i13) + %pInA.sroa.3.8.vec.extract = extractelement <2 x float> %34, i64 0 + %39 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %add28.i.i.i, float %38) %mul5.i3.i.i.i = fmul float %sub33.i.i.i, %pInA.sroa.0.4.vec.extract - %36 = tail call float @llvm.fmuladd.f32(float %pInA.sroa.0.0.vec.extract, float %add30.i.i.i, float %mul5.i3.i.i.i) - %37 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %sub35.i.i.i, float %36) + %40 = tail call float @llvm.fmuladd.f32(float %pInA.sroa.0.0.vec.extract, float %add30.i.i.i, float %mul5.i3.i.i.i) + %41 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %sub35.i.i.i, float %40) %mul5.i8.i.i.i = fmul float %add39.i.i.i, %pInA.sroa.0.4.vec.extract - %38 = tail call float @llvm.fmuladd.f32(float %pInA.sroa.0.0.vec.extract, float %sub37.i.i.i, float %mul5.i8.i.i.i) - %39 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %sub42.i.i.i, float %38) - %add.i.i3.i = fadd float %pos.sroa.0.0.copyload, %35 - %add4.i.i.i = fadd float %pos.sroa.2.0.copyload, %37 - %add7.i.i.i = fadd float %pos.sroa.3.0.copyload, %39 + %42 = tail call float @llvm.fmuladd.f32(float %pInA.sroa.0.0.vec.extract, float %sub37.i.i.i, float %mul5.i8.i.i.i) + %43 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %sub42.i.i.i, float %42) + %add.i.i3.i = fadd float %pos.sroa.0.0.copyload, %39 + %add4.i.i.i = fadd float %pos.sroa.2.0.copyload, %41 + %add7.i.i.i = fadd float %pos.sroa.3.0.copyload, %43 %retval.sroa.0.0.vec.insert.i.i2.i.i = insertelement <2 x float> poison, float %add.i.i3.i, i64 0 %retval.sroa.0.4.vec.insert.i.i3.i.i = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i.i2.i.i, float %add4.i.i.i, i64 1 %retval.sroa.3.12.vec.insert.i.i4.i.i = insertelement <2 x float> , float %add7.i.i.i, i64 0 diff --git a/bench/bullet3/optimized/b3FixedConstraint.ll b/bench/bullet3/optimized/b3FixedConstraint.ll index d9e31741158..cb45c920f0c 100644 --- a/bench/bullet3/optimized/b3FixedConstraint.ll +++ b/bench/bullet3/optimized/b3FixedConstraint.ll @@ -524,18 +524,18 @@ if.end.i.i: ; preds = %if.end115 br label %_ZNK12b3Quaternion7nearestERKS_.exit.i _ZNK12b3Quaternion7nearestERKS_.exit.i: ; preds = %if.end115, %if.end.i.i - %retval.sroa.0.0.i.i = phi <2 x float> [ %retval.sroa.0.4.vec.insert.i28.i.i, %if.end.i.i ], [ %retval.sroa.0.4.vec.insert.i127, %if.end115 ] - %retval.sroa.3.0.i.i = phi <2 x float> [ %retval.sroa.3.12.vec.insert.i30.i.i, %if.end.i.i ], [ %retval.sroa.3.12.vec.insert.i129, %if.end115 ] + %retval.sroa.0.0.copyload.pn.i.i = phi <2 x float> [ %retval.sroa.0.4.vec.insert.i28.i.i, %if.end.i.i ], [ %retval.sroa.0.4.vec.insert.i127, %if.end115 ] + %retval.sroa.3.0.copyload.pn.i.i = phi <2 x float> [ %retval.sroa.3.12.vec.insert.i30.i.i, %if.end.i.i ], [ %retval.sroa.3.12.vec.insert.i129, %if.end115 ] %fneg.i.i = fneg float %114 %fneg4.i.i = fneg float %115 %fneg7.i.i = fneg float %116 - %orn1.sroa.3.12.vec.extract.i = extractelement <2 x float> %retval.sroa.3.0.i.i, i64 1 - %orn1.sroa.0.0.vec.extract.i = extractelement <2 x float> %retval.sroa.0.0.i.i, i64 0 + %orn1.sroa.3.12.vec.extract.i = extractelement <2 x float> %retval.sroa.3.0.copyload.pn.i.i, i64 1 + %orn1.sroa.0.0.vec.extract.i = extractelement <2 x float> %retval.sroa.0.0.copyload.pn.i.i, i64 0 %mul4.i.i133 = fmul float %117, %orn1.sroa.0.0.vec.extract.i %124 = tail call float @llvm.fmuladd.f32(float %orn1.sroa.3.12.vec.extract.i, float %fneg.i.i, float %mul4.i.i133) - %orn1.sroa.0.4.vec.extract.i = extractelement <2 x float> %retval.sroa.0.0.i.i, i64 1 + %orn1.sroa.0.4.vec.extract.i = extractelement <2 x float> %retval.sroa.0.0.copyload.pn.i.i, i64 1 %125 = tail call float @llvm.fmuladd.f32(float %orn1.sroa.0.4.vec.extract.i, float %fneg7.i.i, float %124) - %orn1.sroa.3.8.vec.extract.i = extractelement <2 x float> %retval.sroa.3.0.i.i, i64 0 + %orn1.sroa.3.8.vec.extract.i = extractelement <2 x float> %retval.sroa.3.0.copyload.pn.i.i, i64 0 %126 = tail call float @llvm.fmuladd.f32(float %orn1.sroa.3.8.vec.extract.i, float %115, float %125) %mul14.i.i134 = fmul float %117, %orn1.sroa.0.4.vec.extract.i %127 = tail call float @llvm.fmuladd.f32(float %orn1.sroa.3.12.vec.extract.i, float %fneg4.i.i, float %mul14.i.i134) @@ -572,11 +572,11 @@ if.else.i: ; preds = %_ZNK12b3Quaternion7 %div.i.i = fdiv float 1.000000e+00, %sqrt.i %mul.i.i.i = fmul float %126, %div.i.i %mul3.i.i.i = fmul float %129, %div.i.i - %mul5.i.i23.i = fmul float %132, %div.i.i + %mul5.i.i21.i = fmul float %132, %div.i.i br label %_ZN15b3TransformUtil32calculateDiffAxisAngleQuaternionERK12b3QuaternionS2_R9b3Vector3Rf.exit _ZN15b3TransformUtil32calculateDiffAxisAngleQuaternionERK12b3QuaternionS2_R9b3Vector3Rf.exit: ; preds = %if.then.i, %if.else.i - %138 = phi float [ 0.000000e+00, %if.then.i ], [ %mul5.i.i23.i, %if.else.i ] + %138 = phi float [ 0.000000e+00, %if.then.i ], [ %mul5.i.i21.i, %if.else.i ] %139 = phi float [ 0.000000e+00, %if.then.i ], [ %mul3.i.i.i, %if.else.i ] %140 = phi float [ 1.000000e+00, %if.then.i ], [ %mul.i.i.i, %if.else.i ] %fneg = fmul float %call.i.i.i, -2.000000e+00 diff --git a/bench/bullet3/optimized/b3QuantizedBvh.ll b/bench/bullet3/optimized/b3QuantizedBvh.ll index 2948492142a..fbab9efe39e 100644 --- a/bench/bullet3/optimized/b3QuantizedBvh.ll +++ b/bench/bullet3/optimized/b3QuantizedBvh.ll @@ -506,10 +506,10 @@ if.end.i58: ; preds = %for.body br label %_ZNK14b3QuantizedBvh10getAabbMaxEi.exit _ZNK14b3QuantizedBvh10getAabbMaxEi.exit: ; preds = %if.then.i68, %if.end.i58 - %retval.sroa.0.0.i64 = phi <2 x float> [ %retval.sroa.0.4.vec.insert12.i.i86, %if.then.i68 ], [ %retval.sroa.0.0.copyload.i62, %if.end.i58 ] - %retval.sroa.3.0.i65 = phi <2 x float> [ %retval.sroa.7.8.vec.insert16.i.i89, %if.then.i68 ], [ %retval.sroa.3.0.copyload.i63, %if.end.i58 ] - store <2 x float> %retval.sroa.0.0.i64, ptr %ref.tmp12, align 16 - store <2 x float> %retval.sroa.3.0.i65, ptr %41, align 8 + %retval.sroa.0.4.vec.insert12.i.pn.i64 = phi <2 x float> [ %retval.sroa.0.4.vec.insert12.i.i86, %if.then.i68 ], [ %retval.sroa.0.0.copyload.i62, %if.end.i58 ] + %retval.sroa.7.8.vec.insert16.i.pn.i65 = phi <2 x float> [ %retval.sroa.7.8.vec.insert16.i.i89, %if.then.i68 ], [ %retval.sroa.3.0.copyload.i63, %if.end.i58 ] + store <2 x float> %retval.sroa.0.4.vec.insert12.i.pn.i64, ptr %ref.tmp12, align 16 + store <2 x float> %retval.sroa.7.8.vec.insert16.i.pn.i65, ptr %41, align 8 call void @_ZN14b3QuantizedBvh21mergeInternalNodeAabbEiRK9b3Vector3S2_(ptr noundef nonnull align 16 dereferenceable(252) %this, i32 noundef %43, ptr noundef nonnull align 16 dereferenceable(16) %ref.tmp, ptr noundef nonnull align 16 dereferenceable(16) %ref.tmp12) %indvars.iv.next = add nsw i64 %indvars.iv, 1 %lftr.wideiv = trunc i64 %indvars.iv.next to i32 @@ -1315,15 +1315,15 @@ if.end.i108: ; preds = %for.body24 br label %_ZNK14b3QuantizedBvh10getAabbMinEi.exit140 _ZNK14b3QuantizedBvh10getAabbMinEi.exit140: ; preds = %if.then.i118, %if.end.i108 - %retval.sroa.3.0.i79186 = phi <2 x float> [ %retval.sroa.7.8.vec.insert16.i.i103, %if.then.i118 ], [ %retval.sroa.3.0.copyload.i77, %if.end.i108 ] - %retval.sroa.0.0.i78184 = phi <2 x float> [ %retval.sroa.0.4.vec.insert12.i.i100, %if.then.i118 ], [ %retval.sroa.0.0.copyload.i75, %if.end.i108 ] - %retval.sroa.0.0.i114 = phi <2 x float> [ %retval.sroa.0.4.vec.insert12.i.i136, %if.then.i118 ], [ %retval.sroa.0.0.copyload.i111, %if.end.i108 ] - %retval.sroa.3.0.i115 = phi <2 x float> [ %retval.sroa.7.8.vec.insert16.i.i139, %if.then.i118 ], [ %retval.sroa.3.0.copyload.i113, %if.end.i108 ] - %44 = fadd <2 x float> %retval.sroa.0.0.i78184, %retval.sroa.0.0.i114 + %retval.sroa.7.8.vec.insert16.i.pn.i79186 = phi <2 x float> [ %retval.sroa.7.8.vec.insert16.i.i103, %if.then.i118 ], [ %retval.sroa.3.0.copyload.i77, %if.end.i108 ] + %retval.sroa.0.4.vec.insert12.i.pn.i78184 = phi <2 x float> [ %retval.sroa.0.4.vec.insert12.i.i100, %if.then.i118 ], [ %retval.sroa.0.0.copyload.i75, %if.end.i108 ] + %retval.sroa.0.4.vec.insert12.i.pn.i114 = phi <2 x float> [ %retval.sroa.0.4.vec.insert12.i.i136, %if.then.i118 ], [ %retval.sroa.0.0.copyload.i111, %if.end.i108 ] + %retval.sroa.7.8.vec.insert16.i.pn.i115 = phi <2 x float> [ %retval.sroa.7.8.vec.insert16.i.i139, %if.then.i118 ], [ %retval.sroa.3.0.copyload.i113, %if.end.i108 ] + %44 = fadd <2 x float> %retval.sroa.0.4.vec.insert12.i.pn.i78184, %retval.sroa.0.4.vec.insert12.i.pn.i114 %add.i141 = extractelement <2 x float> %44, i64 0 - %45 = fadd <2 x float> %retval.sroa.0.0.i78184, %retval.sroa.0.0.i114 + %45 = fadd <2 x float> %retval.sroa.0.4.vec.insert12.i.pn.i78184, %retval.sroa.0.4.vec.insert12.i.pn.i114 %add4.i144 = extractelement <2 x float> %45, i64 1 - %46 = fadd <2 x float> %retval.sroa.3.0.i79186, %retval.sroa.3.0.i115 + %46 = fadd <2 x float> %retval.sroa.7.8.vec.insert16.i.pn.i79186, %retval.sroa.7.8.vec.insert16.i.pn.i115 %add7.i147 = extractelement <2 x float> %46, i64 0 %mul.i.i153 = fmul float %add.i141, 5.000000e-01 %mul2.i.i155 = fmul float %add4.i144, 5.000000e-01 diff --git a/bench/bullet3/optimized/btConvexHullShape.ll b/bench/bullet3/optimized/btConvexHullShape.ll index b4faaa7ddae..40b88947ed6 100644 --- a/bench/bullet3/optimized/btConvexHullShape.ll +++ b/bench/bullet3/optimized/btConvexHullShape.ll @@ -368,14 +368,13 @@ _ZNK9btVector36maxDotEPKS_lRf.exit: ; preds = %for.body.i %retval.sroa.0.0.vec.insert.i13 = insertelement <2 x float> poison, float %mul.i6, i64 0 %retval.sroa.0.4.vec.insert.i14 = insertelement <2 x float> %retval.sroa.0.0.vec.insert.i13, float %mul8.i9, i64 1 %retval.sroa.3.12.vec.insert.i15 = insertelement <2 x float> , float %mul14.i12, i64 0 + %.fca.0.insert.i16 = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %retval.sroa.0.4.vec.insert.i14, 0 + %.fca.1.insert.i17 = insertvalue { <2 x float>, <2 x float> } %.fca.0.insert.i16, <2 x float> %retval.sroa.3.12.vec.insert.i15, 1 br label %return return: ; preds = %entry, %_ZNK9btVector36maxDotEPKS_lRf.exit - %retval.sroa.0.0 = phi <2 x float> [ %retval.sroa.0.4.vec.insert.i14, %_ZNK9btVector36maxDotEPKS_lRf.exit ], [ zeroinitializer, %entry ] - %retval.sroa.3.0 = phi <2 x float> [ %retval.sroa.3.12.vec.insert.i15, %_ZNK9btVector36maxDotEPKS_lRf.exit ], [ zeroinitializer, %entry ] - %.fca.0.insert = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { <2 x float>, <2 x float> } %.fca.0.insert, <2 x float> %retval.sroa.3.0, 1 - ret { <2 x float>, <2 x float> } %.fca.1.insert + %.fca.1.insert.merged = phi { <2 x float>, <2 x float> } [ %.fca.1.insert.i17, %_ZNK9btVector36maxDotEPKS_lRf.exit ], [ zeroinitializer, %entry ] + ret { <2 x float>, <2 x float> } %.fca.1.insert.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable @@ -492,16 +491,16 @@ entry: %vfn = getelementptr inbounds i8, ptr %vtable, i64 136 %0 = load ptr, ptr %vfn, align 8 %call = tail call { <2 x float>, <2 x float> } %0(ptr noundef nonnull align 8 dereferenceable(152) %this, ptr noundef nonnull align 4 dereferenceable(16) %vec) - %1 = extractvalue { <2 x float>, <2 x float> } %call, 0 - %2 = extractvalue { <2 x float>, <2 x float> } %call, 1 %vtable2 = load ptr, ptr %this, align 8 %vfn3 = getelementptr inbounds i8, ptr %vtable2, i64 96 - %3 = load ptr, ptr %vfn3, align 8 - %call4 = tail call noundef float %3(ptr noundef nonnull align 8 dereferenceable(72) %this) + %1 = load ptr, ptr %vfn3, align 8 + %call4 = tail call noundef float %1(ptr noundef nonnull align 8 dereferenceable(72) %this) %cmp = fcmp une float %call4, 0.000000e+00 br i1 %cmp, label %if.then, label %if.end19 if.then: ; preds = %entry + %2 = extractvalue { <2 x float>, <2 x float> } %call, 1 + %3 = extractvalue { <2 x float>, <2 x float> } %call, 0 %vecnorm.sroa.0.0.copyload = load float, ptr %vec, align 4 %vecnorm.sroa.6.0.vec.sroa_idx = getelementptr inbounds i8, ptr %vec, i64 4 %vecnorm.sroa.6.0.copyload = load float, ptr %vecnorm.sroa.6.0.vec.sroa_idx, align 4 @@ -529,23 +528,22 @@ if.then: ; preds = %entry %mul.i.i = fmul float %call15, %mul.i.i.i %mul4.i.i = fmul float %call15, %mul4.i.i.i %mul8.i.i2 = fmul float %call15, %mul7.i.i.i - %retval.sroa.0.0.vec.extract = extractelement <2 x float> %1, i64 0 + %retval.sroa.0.0.vec.extract = extractelement <2 x float> %3, i64 0 %add.i = fadd float %retval.sroa.0.0.vec.extract, %mul.i.i %retval.sroa.0.0.vec.insert = insertelement <2 x float> poison, float %add.i, i64 0 - %retval.sroa.0.4.vec.extract = extractelement <2 x float> %1, i64 1 + %retval.sroa.0.4.vec.extract = extractelement <2 x float> %3, i64 1 %add8.i = fadd float %retval.sroa.0.4.vec.extract, %mul4.i.i %retval.sroa.0.4.vec.insert = insertelement <2 x float> %retval.sroa.0.0.vec.insert, float %add8.i, i64 1 %retval.sroa.6.8.vec.extract = extractelement <2 x float> %2, i64 0 %add13.i = fadd float %retval.sroa.6.8.vec.extract, %mul8.i.i2 %retval.sroa.6.8.vec.insert = insertelement <2 x float> %2, float %add13.i, i64 0 + %9 = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %retval.sroa.0.4.vec.insert, 0 + %10 = insertvalue { <2 x float>, <2 x float> } %9, <2 x float> %retval.sroa.6.8.vec.insert, 1 br label %if.end19 if.end19: ; preds = %if.then, %entry - %retval.sroa.0.0 = phi <2 x float> [ %retval.sroa.0.4.vec.insert, %if.then ], [ %1, %entry ] - %retval.sroa.6.0 = phi <2 x float> [ %retval.sroa.6.8.vec.insert, %if.then ], [ %2, %entry ] - %.fca.0.insert = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { <2 x float>, <2 x float> } %.fca.0.insert, <2 x float> %retval.sroa.6.0, 1 - ret { <2 x float>, <2 x float> } %.fca.1.insert + %.fca.1.insert.merged = phi { <2 x float>, <2 x float> } [ %10, %if.then ], [ %call, %entry ] + ret { <2 x float>, <2 x float> } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable diff --git a/bench/bullet3/optimized/btConvexInternalShape.ll b/bench/bullet3/optimized/btConvexInternalShape.ll index 177e7226b66..784dc506736 100644 --- a/bench/bullet3/optimized/btConvexInternalShape.ll +++ b/bench/bullet3/optimized/btConvexInternalShape.ll @@ -277,16 +277,16 @@ entry: %vfn = getelementptr inbounds i8, ptr %vtable, i64 136 %0 = load ptr, ptr %vfn, align 8 %call = tail call { <2 x float>, <2 x float> } %0(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef nonnull align 4 dereferenceable(16) %vec) - %1 = extractvalue { <2 x float>, <2 x float> } %call, 0 - %2 = extractvalue { <2 x float>, <2 x float> } %call, 1 %vtable2 = load ptr, ptr %this, align 8 %vfn3 = getelementptr inbounds i8, ptr %vtable2, i64 96 - %3 = load ptr, ptr %vfn3, align 8 - %call4 = tail call noundef float %3(ptr noundef nonnull align 8 dereferenceable(72) %this) + %1 = load ptr, ptr %vfn3, align 8 + %call4 = tail call noundef float %1(ptr noundef nonnull align 8 dereferenceable(72) %this) %cmp = fcmp une float %call4, 0.000000e+00 br i1 %cmp, label %if.then, label %if.end19 if.then: ; preds = %entry + %2 = extractvalue { <2 x float>, <2 x float> } %call, 1 + %3 = extractvalue { <2 x float>, <2 x float> } %call, 0 %vecnorm.sroa.0.0.copyload = load float, ptr %vec, align 4 %vecnorm.sroa.6.0.vec.sroa_idx = getelementptr inbounds i8, ptr %vec, i64 4 %vecnorm.sroa.6.0.copyload = load float, ptr %vecnorm.sroa.6.0.vec.sroa_idx, align 4 @@ -314,23 +314,22 @@ if.then: ; preds = %entry %mul.i.i = fmul float %call15, %mul.i.i.i %mul4.i.i = fmul float %call15, %mul4.i.i.i %mul8.i.i2 = fmul float %call15, %mul7.i.i.i - %retval.sroa.0.0.vec.extract = extractelement <2 x float> %1, i64 0 + %retval.sroa.0.0.vec.extract = extractelement <2 x float> %3, i64 0 %add.i = fadd float %retval.sroa.0.0.vec.extract, %mul.i.i %retval.sroa.0.0.vec.insert = insertelement <2 x float> poison, float %add.i, i64 0 - %retval.sroa.0.4.vec.extract = extractelement <2 x float> %1, i64 1 + %retval.sroa.0.4.vec.extract = extractelement <2 x float> %3, i64 1 %add8.i = fadd float %retval.sroa.0.4.vec.extract, %mul4.i.i %retval.sroa.0.4.vec.insert = insertelement <2 x float> %retval.sroa.0.0.vec.insert, float %add8.i, i64 1 %retval.sroa.6.8.vec.extract = extractelement <2 x float> %2, i64 0 %add13.i = fadd float %retval.sroa.6.8.vec.extract, %mul8.i.i2 %retval.sroa.6.8.vec.insert = insertelement <2 x float> %2, float %add13.i, i64 0 + %9 = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %retval.sroa.0.4.vec.insert, 0 + %10 = insertvalue { <2 x float>, <2 x float> } %9, <2 x float> %retval.sroa.6.8.vec.insert, 1 br label %if.end19 if.end19: ; preds = %if.then, %entry - %retval.sroa.0.0 = phi <2 x float> [ %retval.sroa.0.4.vec.insert, %if.then ], [ %1, %entry ] - %retval.sroa.6.0 = phi <2 x float> [ %retval.sroa.6.8.vec.insert, %if.then ], [ %2, %entry ] - %.fca.0.insert = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { <2 x float>, <2 x float> } %.fca.0.insert, <2 x float> %retval.sroa.6.0, 1 - ret { <2 x float>, <2 x float> } %.fca.1.insert + %.fca.1.insert.merged = phi { <2 x float>, <2 x float> } [ %10, %if.then ], [ %call, %entry ] + ret { <2 x float>, <2 x float> } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable diff --git a/bench/bullet3/optimized/btDeformableContactConstraint.ll b/bench/bullet3/optimized/btDeformableContactConstraint.ll index 9cd15f26f0a..e15e3368e96 100644 --- a/bench/bullet3/optimized/btDeformableContactConstraint.ll +++ b/bench/bullet3/optimized/btDeformableContactConstraint.ll @@ -3008,11 +3008,11 @@ return.sink.split: ; preds = %if.end9, %if.end br label %return return: ; preds = %return.sink.split, %entry - %retval.sroa.0.0 = phi <2 x float> [ %retval.sroa.0.4.vec.insert.i, %entry ], [ %retval.sroa.0.4.vec.insert.i27, %return.sink.split ] - %retval.sroa.5.0 = phi <2 x float> [ %retval.sroa.3.12.vec.insert.i, %entry ], [ %retval.sroa.3.12.vec.insert.i28, %return.sink.split ] - %.fca.0.insert = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { <2 x float>, <2 x float> } %.fca.0.insert, <2 x float> %retval.sroa.5.0, 1 - ret { <2 x float>, <2 x float> } %.fca.1.insert + %retval.sroa.0.4.vec.insert.i7.pn = phi <2 x float> [ %retval.sroa.0.4.vec.insert.i, %entry ], [ %retval.sroa.0.4.vec.insert.i27, %return.sink.split ] + %retval.sroa.3.12.vec.insert.i8.pn = phi <2 x float> [ %retval.sroa.3.12.vec.insert.i, %entry ], [ %retval.sroa.3.12.vec.insert.i28, %return.sink.split ] + %.fca.0.insert.i9.pn = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %retval.sroa.0.4.vec.insert.i7.pn, 0 + %.fca.1.insert.merged = insertvalue { <2 x float>, <2 x float> } %.fca.0.insert.i9.pn, <2 x float> %retval.sroa.3.12.vec.insert.i8.pn, 1 + ret { <2 x float>, <2 x float> } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable diff --git a/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll b/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll index ce1d05f149a..8f3760d0345 100644 --- a/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll +++ b/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll @@ -2750,13 +2750,13 @@ define internal noundef zeroext i1 @"_ZN70_$LT$core..num..error..TryFromIntError ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define hidden { ptr, i64 } @"_ZN71_$LT$alloc..borrow..Cow$LT$B$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17he95dd82b43ad0c4fE"(ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %0) unnamed_addr #1 { - %.sroa.0.0.in = getelementptr inbounds i8, ptr %0, i64 8 - %.sroa.0.0 = load ptr, ptr %.sroa.0.0.in, align 8, !nonnull !5, !noundef !5 - %.sroa.5.0.in = getelementptr inbounds i8, ptr %0, i64 16 - %.sroa.5.0 = load i64, ptr %.sroa.5.0.in, align 8, !noundef !5 - %2 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %3 = insertvalue { ptr, i64 } %2, i64 %.sroa.5.0, 1 - ret { ptr, i64 } %3 + %.pn1.in = getelementptr inbounds i8, ptr %0, i64 16 + %.pn1 = load i64, ptr %.pn1.in, align 8, !noundef !5 + %.pn3.in = getelementptr inbounds i8, ptr %0, i64 8 + %.pn3 = load ptr, ptr %.pn3.in, align 8, !nonnull !5, !noundef !5 + %.pn = insertvalue { ptr, i64 } poison, ptr %.pn3, 0 + %.merged = insertvalue { ptr, i64 } %.pn, i64 %.pn1, 1 + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint nounwind nonlazybind uwtable @@ -2822,13 +2822,13 @@ define internal noundef zeroext i1 @"_ZN75_$LT$std..io..stdio..StdoutLock$u20$as ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define hidden { ptr, i64 } @"_ZN77_$LT$alloc..borrow..Cow$LT$B$GT$$u20$as$u20$core..borrow..Borrow$LT$B$GT$$GT$6borrow17h21d204d371a4e377E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %0) unnamed_addr #1 { - %.sroa.0.0.in.i = getelementptr inbounds i8, ptr %0, i64 8 - %.sroa.0.0.i = load ptr, ptr %.sroa.0.0.in.i, align 8, !alias.scope !693, !nonnull !5, !noundef !5 - %.sroa.5.0.in.i = getelementptr inbounds i8, ptr %0, i64 16 - %.sroa.5.0.i = load i64, ptr %.sroa.5.0.in.i, align 8, !alias.scope !693, !noundef !5 - %2 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0.i, 0 - %3 = insertvalue { ptr, i64 } %2, i64 %.sroa.5.0.i, 1 - ret { ptr, i64 } %3 + %.pn1.in.i = getelementptr inbounds i8, ptr %0, i64 16 + %.pn1.i = load i64, ptr %.pn1.in.i, align 8, !alias.scope !693, !noundef !5 + %.pn3.in.i = getelementptr inbounds i8, ptr %0, i64 8 + %.pn3.i = load ptr, ptr %.pn3.in.i, align 8, !alias.scope !693, !nonnull !5, !noundef !5 + %.pn.i = insertvalue { ptr, i64 } poison, ptr %.pn3.i, 0 + %.merged.i = insertvalue { ptr, i64 } %.pn.i, i64 %.pn1.i, 1 + ret { ptr, i64 } %.merged.i } ; Function Attrs: nonlazybind uwtable diff --git a/bench/cmake/optimized/cmAddExecutableCommand.cxx.ll b/bench/cmake/optimized/cmAddExecutableCommand.cxx.ll index 802a960f1f4..3bc3f2dc89a 100644 --- a/bench/cmake/optimized/cmAddExecutableCommand.cxx.ll +++ b/bench/cmake/optimized/cmAddExecutableCommand.cxx.ll @@ -635,14 +635,14 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %197 = extractvalue { i64, ptr } %196, 0 %198 = extractvalue { i64, ptr } %196, 1 store i64 %197, ptr %195, align 8, !alias.scope !13, !noalias !10 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %3, i64 32 - store ptr %198, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !13, !noalias !10 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %3, i64 32 + store ptr %198, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !13, !noalias !10 %199 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %199, align 8, !alias.scope !13, !noalias !10 %200 = getelementptr inbounds i8, ptr %3, i64 48 store i64 59, ptr %200, align 8, !alias.scope !16, !noalias !10 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %3, i64 56 - store ptr @.str.20, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !16, !noalias !10 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %3, i64 56 + store ptr @.str.20, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !16, !noalias !10 %201 = getelementptr inbounds i8, ptr %3, i64 64 store ptr null, ptr %201, align 8, !alias.scope !16, !noalias !10 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr nonnull %3, i64 3) @@ -948,7 +948,7 @@ declare noundef zeroext i1 @_ZNK10cmMakefile7IsAliasERKNSt7__cxx1112basic_string ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_S0_SA_RA22_S0_EES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(29) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(19) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 1 dereferenceable(22) %5) local_unnamed_addr #3 comdat { -_ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_S0_SA_RA22_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESO_.exit40: +_ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_S0_SA_RA22_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESO_.exit36: %6 = alloca [5 x %"struct.std::pair"], align 8 %7 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #14 store i64 %7, ptr %6, align 8, !alias.scope !20 @@ -961,15 +961,15 @@ _ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_ %11 = extractvalue { i64, ptr } %10, 0 %12 = extractvalue { i64, ptr } %10, 1 store i64 %11, ptr %9, align 8, !alias.scope !23 - %.sroa.2.0..sroa_idx.i9 = getelementptr inbounds i8, ptr %6, i64 32 - store ptr %12, ptr %.sroa.2.0..sroa_idx.i9, align 8, !alias.scope !23 + %.sroa.2.0..sroa_idx.i8 = getelementptr inbounds i8, ptr %6, i64 32 + store ptr %12, ptr %.sroa.2.0..sroa_idx.i8, align 8, !alias.scope !23 %13 = getelementptr inbounds i8, ptr %6, i64 40 store ptr null, ptr %13, align 8, !alias.scope !23 %14 = getelementptr inbounds i8, ptr %6, i64 48 %15 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #14 store i64 %15, ptr %14, align 8, !alias.scope !26 - %.sroa.2.0..sroa_idx.i18 = getelementptr inbounds i8, ptr %6, i64 56 - store ptr %3, ptr %.sroa.2.0..sroa_idx.i18, align 8, !alias.scope !26 + %.sroa.2.0..sroa_idx.i16 = getelementptr inbounds i8, ptr %6, i64 56 + store ptr %3, ptr %.sroa.2.0..sroa_idx.i16, align 8, !alias.scope !26 %16 = getelementptr inbounds i8, ptr %6, i64 64 store ptr null, ptr %16, align 8, !alias.scope !26 %17 = getelementptr inbounds i8, ptr %6, i64 72 @@ -977,15 +977,15 @@ _ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_ %19 = extractvalue { i64, ptr } %18, 0 %20 = extractvalue { i64, ptr } %18, 1 store i64 %19, ptr %17, align 8, !alias.scope !29 - %.sroa.2.0..sroa_idx.i27 = getelementptr inbounds i8, ptr %6, i64 80 - store ptr %20, ptr %.sroa.2.0..sroa_idx.i27, align 8, !alias.scope !29 + %.sroa.2.0..sroa_idx.i24 = getelementptr inbounds i8, ptr %6, i64 80 + store ptr %20, ptr %.sroa.2.0..sroa_idx.i24, align 8, !alias.scope !29 %21 = getelementptr inbounds i8, ptr %6, i64 88 store ptr null, ptr %21, align 8, !alias.scope !29 %22 = getelementptr inbounds i8, ptr %6, i64 96 %23 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #14 store i64 %23, ptr %22, align 8, !alias.scope !32 - %.sroa.2.0..sroa_idx.i36 = getelementptr inbounds i8, ptr %6, i64 104 - store ptr %5, ptr %.sroa.2.0..sroa_idx.i36, align 8, !alias.scope !32 + %.sroa.2.0..sroa_idx.i32 = getelementptr inbounds i8, ptr %6, i64 104 + store ptr %5, ptr %.sroa.2.0..sroa_idx.i32, align 8, !alias.scope !32 %24 = getelementptr inbounds i8, ptr %6, i64 112 store ptr null, ptr %24, align 8, !alias.scope !32 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %6, i64 5) @@ -996,7 +996,7 @@ declare noundef ptr @_ZNK10cmMakefile15FindTargetToUseERKNSt7__cxx1112basic_stri ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_S0_SA_RA26_S0_EES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(29) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(19) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 1 dereferenceable(26) %5) local_unnamed_addr #3 comdat { -_ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_S0_SA_RA26_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESO_.exit40: +_ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_S0_SA_RA26_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESO_.exit36: %6 = alloca [5 x %"struct.std::pair"], align 8 %7 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #14 store i64 %7, ptr %6, align 8, !alias.scope !35 @@ -1009,15 +1009,15 @@ _ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_ %11 = extractvalue { i64, ptr } %10, 0 %12 = extractvalue { i64, ptr } %10, 1 store i64 %11, ptr %9, align 8, !alias.scope !38 - %.sroa.2.0..sroa_idx.i9 = getelementptr inbounds i8, ptr %6, i64 32 - store ptr %12, ptr %.sroa.2.0..sroa_idx.i9, align 8, !alias.scope !38 + %.sroa.2.0..sroa_idx.i8 = getelementptr inbounds i8, ptr %6, i64 32 + store ptr %12, ptr %.sroa.2.0..sroa_idx.i8, align 8, !alias.scope !38 %13 = getelementptr inbounds i8, ptr %6, i64 40 store ptr null, ptr %13, align 8, !alias.scope !38 %14 = getelementptr inbounds i8, ptr %6, i64 48 %15 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #14 store i64 %15, ptr %14, align 8, !alias.scope !41 - %.sroa.2.0..sroa_idx.i18 = getelementptr inbounds i8, ptr %6, i64 56 - store ptr %3, ptr %.sroa.2.0..sroa_idx.i18, align 8, !alias.scope !41 + %.sroa.2.0..sroa_idx.i16 = getelementptr inbounds i8, ptr %6, i64 56 + store ptr %3, ptr %.sroa.2.0..sroa_idx.i16, align 8, !alias.scope !41 %16 = getelementptr inbounds i8, ptr %6, i64 64 store ptr null, ptr %16, align 8, !alias.scope !41 %17 = getelementptr inbounds i8, ptr %6, i64 72 @@ -1025,15 +1025,15 @@ _ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_ %19 = extractvalue { i64, ptr } %18, 0 %20 = extractvalue { i64, ptr } %18, 1 store i64 %19, ptr %17, align 8, !alias.scope !44 - %.sroa.2.0..sroa_idx.i27 = getelementptr inbounds i8, ptr %6, i64 80 - store ptr %20, ptr %.sroa.2.0..sroa_idx.i27, align 8, !alias.scope !44 + %.sroa.2.0..sroa_idx.i24 = getelementptr inbounds i8, ptr %6, i64 80 + store ptr %20, ptr %.sroa.2.0..sroa_idx.i24, align 8, !alias.scope !44 %21 = getelementptr inbounds i8, ptr %6, i64 88 store ptr null, ptr %21, align 8, !alias.scope !44 %22 = getelementptr inbounds i8, ptr %6, i64 96 %23 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #14 store i64 %23, ptr %22, align 8, !alias.scope !47 - %.sroa.2.0..sroa_idx.i36 = getelementptr inbounds i8, ptr %6, i64 104 - store ptr %5, ptr %.sroa.2.0..sroa_idx.i36, align 8, !alias.scope !47 + %.sroa.2.0..sroa_idx.i32 = getelementptr inbounds i8, ptr %6, i64 104 + store ptr %5, ptr %.sroa.2.0..sroa_idx.i32, align 8, !alias.scope !47 %24 = getelementptr inbounds i8, ptr %6, i64 112 store ptr null, ptr %24, align 8, !alias.scope !47 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %6, i64 5) @@ -1044,7 +1044,7 @@ declare noundef i32 @_ZNK8cmTarget7GetTypeEv(ptr noundef nonnull align 8 derefer ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_S0_SA_RA24_S0_EES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(29) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(19) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 1 dereferenceable(24) %5) local_unnamed_addr #3 comdat { -_ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_S0_SA_RA24_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESO_.exit40: +_ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_S0_SA_RA24_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESO_.exit36: %6 = alloca [5 x %"struct.std::pair"], align 8 %7 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #14 store i64 %7, ptr %6, align 8, !alias.scope !50 @@ -1057,15 +1057,15 @@ _ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_ %11 = extractvalue { i64, ptr } %10, 0 %12 = extractvalue { i64, ptr } %10, 1 store i64 %11, ptr %9, align 8, !alias.scope !53 - %.sroa.2.0..sroa_idx.i9 = getelementptr inbounds i8, ptr %6, i64 32 - store ptr %12, ptr %.sroa.2.0..sroa_idx.i9, align 8, !alias.scope !53 + %.sroa.2.0..sroa_idx.i8 = getelementptr inbounds i8, ptr %6, i64 32 + store ptr %12, ptr %.sroa.2.0..sroa_idx.i8, align 8, !alias.scope !53 %13 = getelementptr inbounds i8, ptr %6, i64 40 store ptr null, ptr %13, align 8, !alias.scope !53 %14 = getelementptr inbounds i8, ptr %6, i64 48 %15 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #14 store i64 %15, ptr %14, align 8, !alias.scope !56 - %.sroa.2.0..sroa_idx.i18 = getelementptr inbounds i8, ptr %6, i64 56 - store ptr %3, ptr %.sroa.2.0..sroa_idx.i18, align 8, !alias.scope !56 + %.sroa.2.0..sroa_idx.i16 = getelementptr inbounds i8, ptr %6, i64 56 + store ptr %3, ptr %.sroa.2.0..sroa_idx.i16, align 8, !alias.scope !56 %16 = getelementptr inbounds i8, ptr %6, i64 64 store ptr null, ptr %16, align 8, !alias.scope !56 %17 = getelementptr inbounds i8, ptr %6, i64 72 @@ -1073,15 +1073,15 @@ _ZZ8cmStrCatIRA29_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA19_ %19 = extractvalue { i64, ptr } %18, 0 %20 = extractvalue { i64, ptr } %18, 1 store i64 %19, ptr %17, align 8, !alias.scope !59 - %.sroa.2.0..sroa_idx.i27 = getelementptr inbounds i8, ptr %6, i64 80 - store ptr %20, ptr %.sroa.2.0..sroa_idx.i27, align 8, !alias.scope !59 + %.sroa.2.0..sroa_idx.i24 = getelementptr inbounds i8, ptr %6, i64 80 + store ptr %20, ptr %.sroa.2.0..sroa_idx.i24, align 8, !alias.scope !59 %21 = getelementptr inbounds i8, ptr %6, i64 88 store ptr null, ptr %21, align 8, !alias.scope !59 %22 = getelementptr inbounds i8, ptr %6, i64 96 %23 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #14 store i64 %23, ptr %22, align 8, !alias.scope !62 - %.sroa.2.0..sroa_idx.i36 = getelementptr inbounds i8, ptr %6, i64 104 - store ptr %5, ptr %.sroa.2.0..sroa_idx.i36, align 8, !alias.scope !62 + %.sroa.2.0..sroa_idx.i32 = getelementptr inbounds i8, ptr %6, i64 104 + store ptr %5, ptr %.sroa.2.0..sroa_idx.i32, align 8, !alias.scope !62 %24 = getelementptr inbounds i8, ptr %6, i64 112 store ptr null, ptr %24, align 8, !alias.scope !62 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %6, i64 5) diff --git a/bench/cmake/optimized/cmAddTestCommand.cxx.ll b/bench/cmake/optimized/cmAddTestCommand.cxx.ll index 3da8b4cb7d2..67f4fbaad34 100644 --- a/bench/cmake/optimized/cmAddTestCommand.cxx.ll +++ b/bench/cmake/optimized/cmAddTestCommand.cxx.ll @@ -616,14 +616,14 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %197 = extractvalue { i64, ptr } %196, 0 %198 = extractvalue { i64, ptr } %196, 1 store i64 %197, ptr %195, align 8, !alias.scope !13, !noalias !10 - %.sroa.2.0..sroa_idx.i7.i.i = getelementptr inbounds i8, ptr %5, i64 32 - store ptr %198, ptr %.sroa.2.0..sroa_idx.i7.i.i, align 8, !alias.scope !13, !noalias !10 + %.sroa.2.0..sroa_idx.i6.i.i = getelementptr inbounds i8, ptr %5, i64 32 + store ptr %198, ptr %.sroa.2.0..sroa_idx.i6.i.i, align 8, !alias.scope !13, !noalias !10 %199 = getelementptr inbounds i8, ptr %5, i64 40 store ptr null, ptr %199, align 8, !alias.scope !13, !noalias !10 %200 = getelementptr inbounds i8, ptr %5, i64 48 store i64 41, ptr %200, align 8, !alias.scope !16, !noalias !10 - %.sroa.2.0..sroa_idx.i16.i.i = getelementptr inbounds i8, ptr %5, i64 56 - store ptr @.str.3, ptr %.sroa.2.0..sroa_idx.i16.i.i, align 8, !alias.scope !16, !noalias !10 + %.sroa.2.0..sroa_idx.i14.i.i = getelementptr inbounds i8, ptr %5, i64 56 + store ptr @.str.3, ptr %.sroa.2.0..sroa_idx.i14.i.i, align 8, !alias.scope !16, !noalias !10 %201 = getelementptr inbounds i8, ptr %5, i64 64 store ptr null, ptr %201, align 8, !alias.scope !16, !noalias !10 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr nonnull %5, i64 3) @@ -954,14 +954,14 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EEC2IN9__ %287 = extractvalue { i64, ptr } %286, 0 %288 = extractvalue { i64, ptr } %286, 1 store i64 %287, ptr %285, align 8, !alias.scope !29, !noalias !26 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %288, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !29, !noalias !26 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %288, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !29, !noalias !26 %289 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %289, align 8, !alias.scope !29, !noalias !26 %290 = getelementptr inbounds i8, ptr %4, i64 48 store i64 41, ptr %290, align 8, !alias.scope !32, !noalias !26 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %4, i64 56 - store ptr @.str.3, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !32, !noalias !26 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %4, i64 56 + store ptr @.str.3, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !32, !noalias !26 %291 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %291, align 8, !alias.scope !32, !noalias !26 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr nonnull %4, i64 3) @@ -1184,7 +1184,7 @@ declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIc ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRA28_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA2_S0_EES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(28) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(2) %3) local_unnamed_addr #3 comdat personality ptr @__gxx_personality_v0 { -_ZZ8cmStrCatIRA28_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA2_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit20: +_ZZ8cmStrCatIRA28_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA2_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit18: %4 = alloca [3 x %"struct.std::pair"], align 8 %5 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #16 store i64 %5, ptr %4, align 8, !alias.scope !38 @@ -1197,15 +1197,15 @@ _ZZ8cmStrCatIRA28_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA2_S %9 = extractvalue { i64, ptr } %8, 0 %10 = extractvalue { i64, ptr } %8, 1 store i64 %9, ptr %7, align 8, !alias.scope !41 - %.sroa.2.0..sroa_idx.i7 = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %10, ptr %.sroa.2.0..sroa_idx.i7, align 8, !alias.scope !41 + %.sroa.2.0..sroa_idx.i6 = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %10, ptr %.sroa.2.0..sroa_idx.i6, align 8, !alias.scope !41 %11 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %11, align 8, !alias.scope !41 %12 = getelementptr inbounds i8, ptr %4, i64 48 %13 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #16 store i64 %13, ptr %12, align 8, !alias.scope !44 - %.sroa.2.0..sroa_idx.i16 = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %3, ptr %.sroa.2.0..sroa_idx.i16, align 8, !alias.scope !44 + %.sroa.2.0..sroa_idx.i14 = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %3, ptr %.sroa.2.0..sroa_idx.i14, align 8, !alias.scope !44 %14 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %14, align 8, !alias.scope !44 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %4, i64 3) diff --git a/bench/cmake/optimized/cmBinUtilsLinuxELFLinker.cxx.ll b/bench/cmake/optimized/cmBinUtilsLinuxELFLinker.cxx.ll index f933f4941a0..44c55ba1d23 100644 --- a/bench/cmake/optimized/cmBinUtilsLinuxELFLinker.cxx.ll +++ b/bench/cmake/optimized/cmBinUtilsLinuxELFLinker.cxx.ll @@ -1190,14 +1190,14 @@ _ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit: ; preds = %25 %47 = extractvalue { i64, ptr } %46, 0 %48 = extractvalue { i64, ptr } %46, 1 store i64 %47, ptr %45, align 8, !alias.scope !20, !noalias !17 - %.sroa.2.0..sroa_idx.i12.i = getelementptr inbounds i8, ptr %5, i64 32 - store ptr %48, ptr %.sroa.2.0..sroa_idx.i12.i, align 8, !alias.scope !20, !noalias !17 + %.sroa.2.0..sroa_idx.i11.i = getelementptr inbounds i8, ptr %5, i64 32 + store ptr %48, ptr %.sroa.2.0..sroa_idx.i11.i, align 8, !alias.scope !20, !noalias !17 %49 = getelementptr inbounds i8, ptr %5, i64 40 store ptr null, ptr %49, align 8, !alias.scope !20, !noalias !17 %50 = getelementptr inbounds i8, ptr %5, i64 48 store i64 %42, ptr %50, align 8, !alias.scope !23, !noalias !17 - %.sroa.2.0..sroa_idx.i22.i = getelementptr inbounds i8, ptr %5, i64 56 - store ptr %43, ptr %.sroa.2.0..sroa_idx.i22.i, align 8, !alias.scope !23, !noalias !17 + %.sroa.2.0..sroa_idx.i20.i = getelementptr inbounds i8, ptr %5, i64 56 + store ptr %43, ptr %.sroa.2.0..sroa_idx.i20.i, align 8, !alias.scope !23, !noalias !17 %51 = getelementptr inbounds i8, ptr %5, i64 64 store ptr null, ptr %51, align 8, !alias.scope !23, !noalias !17 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %5, i64 3) @@ -1255,14 +1255,14 @@ _ZNKSt17basic_string_viewIcSt11char_traitsIcEE6substrEmm.exit21: ; preds = %59 %80 = extractvalue { i64, ptr } %79, 0 %81 = extractvalue { i64, ptr } %79, 1 store i64 %80, ptr %78, align 8, !alias.scope !32, !noalias !29 - %.sroa.2.0..sroa_idx.i12.i26 = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %81, ptr %.sroa.2.0..sroa_idx.i12.i26, align 8, !alias.scope !32, !noalias !29 + %.sroa.2.0..sroa_idx.i11.i26 = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %81, ptr %.sroa.2.0..sroa_idx.i11.i26, align 8, !alias.scope !32, !noalias !29 %82 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %82, align 8, !alias.scope !32, !noalias !29 %83 = getelementptr inbounds i8, ptr %4, i64 48 store i64 %75, ptr %83, align 8, !alias.scope !35, !noalias !29 - %.sroa.2.0..sroa_idx.i22.i30 = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %76, ptr %.sroa.2.0..sroa_idx.i22.i30, align 8, !alias.scope !35, !noalias !29 + %.sroa.2.0..sroa_idx.i20.i30 = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %76, ptr %.sroa.2.0..sroa_idx.i20.i30, align 8, !alias.scope !35, !noalias !29 %84 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %84, align 8, !alias.scope !35, !noalias !29 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %4, i64 3) @@ -1518,10 +1518,10 @@ define dso_local noundef zeroext i1 @_ZN24cmBinUtilsLinuxELFLinker17ResolveDepen %21 = getelementptr inbounds i8, ptr %11, i64 8 %22 = getelementptr inbounds i8, ptr %11, i64 24 %23 = getelementptr inbounds i8, ptr %11, i64 16 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %10, i64 32 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %10, i64 32 %24 = getelementptr inbounds i8, ptr %10, i64 40 %25 = getelementptr inbounds i8, ptr %10, i64 48 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %10, i64 56 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %10, i64 56 %26 = getelementptr inbounds i8, ptr %10, i64 64 %27 = getelementptr inbounds i8, ptr %0, i64 64 br label %28 @@ -1541,13 +1541,13 @@ define dso_local noundef zeroext i1 @_ZN24cmBinUtilsLinuxELFLinker17ResolveDepen store ptr %22, ptr %23, align 8, !noalias !42 store i8 47, ptr %22, align 8, !noalias !42 store i64 1, ptr %20, align 8, !alias.scope !48, !noalias !42 - store ptr %22, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !48, !noalias !42 + store ptr %22, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !48, !noalias !42 store ptr null, ptr %24, align 8, !alias.scope !48, !noalias !42 %32 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #14, !noalias !42 %33 = extractvalue { i64, ptr } %32, 0 %34 = extractvalue { i64, ptr } %32, 1 store i64 %33, ptr %25, align 8, !alias.scope !51, !noalias !42 - store ptr %34, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !51, !noalias !42 + store ptr %34, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !51, !noalias !42 store ptr null, ptr %26, align 8, !alias.scope !51, !noalias !42 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr nonnull %10, i64 3) call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %10) @@ -1628,10 +1628,10 @@ _ZN12_GLOBAL__N_119FileHasArchitectureEPKct.exit: ; preds = %45 %58 = getelementptr inbounds i8, ptr %8, i64 8 %59 = getelementptr inbounds i8, ptr %8, i64 24 %60 = getelementptr inbounds i8, ptr %8, i64 16 - %.sroa.2.0..sroa_idx.i7.i27 = getelementptr inbounds i8, ptr %7, i64 32 + %.sroa.2.0..sroa_idx.i6.i27 = getelementptr inbounds i8, ptr %7, i64 32 %61 = getelementptr inbounds i8, ptr %7, i64 40 %62 = getelementptr inbounds i8, ptr %7, i64 48 - %.sroa.2.0..sroa_idx.i16.i28 = getelementptr inbounds i8, ptr %7, i64 56 + %.sroa.2.0..sroa_idx.i14.i28 = getelementptr inbounds i8, ptr %7, i64 56 %63 = getelementptr inbounds i8, ptr %7, i64 64 %64 = getelementptr inbounds i8, ptr %0, i64 64 br label %65 @@ -1651,13 +1651,13 @@ _ZN12_GLOBAL__N_119FileHasArchitectureEPKct.exit: ; preds = %45 store ptr %59, ptr %60, align 8, !noalias !54 store i8 47, ptr %59, align 8, !noalias !54 store i64 1, ptr %57, align 8, !alias.scope !60, !noalias !54 - store ptr %59, ptr %.sroa.2.0..sroa_idx.i7.i27, align 8, !alias.scope !60, !noalias !54 + store ptr %59, ptr %.sroa.2.0..sroa_idx.i6.i27, align 8, !alias.scope !60, !noalias !54 store ptr null, ptr %61, align 8, !alias.scope !60, !noalias !54 %69 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #14, !noalias !54 %70 = extractvalue { i64, ptr } %69, 0 %71 = extractvalue { i64, ptr } %69, 1 store i64 %70, ptr %62, align 8, !alias.scope !63, !noalias !54 - store ptr %71, ptr %.sroa.2.0..sroa_idx.i16.i28, align 8, !alias.scope !63, !noalias !54 + store ptr %71, ptr %.sroa.2.0..sroa_idx.i14.i28, align 8, !alias.scope !63, !noalias !54 store ptr null, ptr %63, align 8, !alias.scope !63, !noalias !54 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr nonnull %7, i64 3) call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %7) diff --git a/bench/cmake/optimized/cmCMakeHostSystemInformationCommand.cxx.ll b/bench/cmake/optimized/cmCMakeHostSystemInformationCommand.cxx.ll index f6585114e79..5d2487e1a88 100644 --- a/bench/cmake/optimized/cmCMakeHostSystemInformationCommand.cxx.ll +++ b/bench/cmake/optimized/cmCMakeHostSystemInformationCommand.cxx.ll @@ -965,14 +965,14 @@ _ZN14ArgumentParser8Instance5ParseI7cmRangeIN9__gnu_cxx17__normal_iteratorIPKNSt %302 = extractvalue { i64, ptr } %301, 0 %303 = extractvalue { i64, ptr } %301, 1 store i64 %302, ptr %300, align 8, !alias.scope !14, !noalias !11 - %.sroa.2.0..sroa_idx.i7.i.i = getelementptr inbounds i8, ptr %40, i64 32 - store ptr %303, ptr %.sroa.2.0..sroa_idx.i7.i.i, align 8, !alias.scope !14, !noalias !11 + %.sroa.2.0..sroa_idx.i6.i.i = getelementptr inbounds i8, ptr %40, i64 32 + store ptr %303, ptr %.sroa.2.0..sroa_idx.i6.i.i, align 8, !alias.scope !14, !noalias !11 %304 = getelementptr inbounds i8, ptr %40, i64 40 store ptr %54, ptr %304, align 8, !alias.scope !14, !noalias !11 %305 = getelementptr inbounds i8, ptr %40, i64 48 store i64 2, ptr %305, align 8, !alias.scope !18, !noalias !11 - %.sroa.2.0..sroa_idx.i16.i.i = getelementptr inbounds i8, ptr %40, i64 56 - store ptr @.str.19, ptr %.sroa.2.0..sroa_idx.i16.i.i, align 8, !alias.scope !18, !noalias !11 + %.sroa.2.0..sroa_idx.i14.i.i = getelementptr inbounds i8, ptr %40, i64 56 + store ptr @.str.19, ptr %.sroa.2.0..sroa_idx.i14.i.i, align 8, !alias.scope !18, !noalias !11 %306 = getelementptr inbounds i8, ptr %40, i64 64 store ptr null, ptr %306, align 8, !alias.scope !18, !noalias !11 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %53, ptr nonnull %40, i64 3) @@ -1507,10 +1507,10 @@ _ZN12_GLOBAL__N_120QueryWindowsRegistryI7cmRangeIN9__gnu_cxx17__normal_iteratorI %496 = getelementptr inbounds i8, ptr %4, i64 8 %497 = getelementptr inbounds i8, ptr %4, i64 24 %498 = getelementptr inbounds i8, ptr %4, i64 16 - %.sroa.2.0..sroa_idx.i7.i.i.i.i.i = getelementptr inbounds i8, ptr %3, i64 32 + %.sroa.2.0..sroa_idx.i6.i.i.i.i.i = getelementptr inbounds i8, ptr %3, i64 32 %499 = getelementptr inbounds i8, ptr %3, i64 40 %500 = getelementptr inbounds i8, ptr %3, i64 48 - %.sroa.2.0..sroa_idx.i16.i.i.i.i.i = getelementptr inbounds i8, ptr %3, i64 56 + %.sroa.2.0..sroa_idx.i14.i.i.i.i.i = getelementptr inbounds i8, ptr %3, i64 56 %501 = getelementptr inbounds i8, ptr %3, i64 64 %502 = getelementptr inbounds i8, ptr %71, i64 32 %503 = getelementptr inbounds i8, ptr %1, i64 8 @@ -2430,13 +2430,13 @@ _ZSteqIcSt11char_traitsIcEEbNSt15__type_identityISt17basic_string_viewIT_T0_EE4t store ptr %497, ptr %498, align 8, !noalias !48 store i8 95, ptr %497, align 8, !noalias !48 store i64 1, ptr %495, align 8, !alias.scope !54, !noalias !48 - store ptr %497, ptr %.sroa.2.0..sroa_idx.i7.i.i.i.i.i, align 8, !alias.scope !54, !noalias !48 + store ptr %497, ptr %.sroa.2.0..sroa_idx.i6.i.i.i.i.i, align 8, !alias.scope !54, !noalias !48 store ptr null, ptr %499, align 8, !alias.scope !54, !noalias !48 %755 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %751) #22, !noalias !48 %756 = extractvalue { i64, ptr } %755, 0 %757 = extractvalue { i64, ptr } %755, 1 store i64 %756, ptr %500, align 8, !alias.scope !57, !noalias !48 - store ptr %757, ptr %.sroa.2.0..sroa_idx.i16.i.i.i.i.i, align 8, !alias.scope !57, !noalias !48 + store ptr %757, ptr %.sroa.2.0..sroa_idx.i14.i.i.i.i.i, align 8, !alias.scope !57, !noalias !48 store ptr null, ptr %501, align 8, !alias.scope !57, !noalias !48 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr nonnull %3, i64 3) to label %758 unwind label %778, !noalias !47 @@ -2935,7 +2935,7 @@ declare i64 @_ZN17cmWindowsRegistry6ToViewESt17basic_string_viewIcSt11char_trait ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRA33_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJcEES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(33) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(1) %3) local_unnamed_addr #4 comdat { -_ZZ8cmStrCatIRA33_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJcEES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit20: +_ZZ8cmStrCatIRA33_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJcEES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit18: %4 = alloca [3 x %"struct.std::pair.210"], align 8 %5 = alloca %class.cmAlphaNum, align 8 %6 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #22 @@ -2949,8 +2949,8 @@ _ZZ8cmStrCatIRA33_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJcEES8 %10 = extractvalue { i64, ptr } %9, 0 %11 = extractvalue { i64, ptr } %9, 1 store i64 %10, ptr %8, align 8, !alias.scope !69 - %.sroa.2.0..sroa_idx.i7 = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %11, ptr %.sroa.2.0..sroa_idx.i7, align 8, !alias.scope !69 + %.sroa.2.0..sroa_idx.i6 = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %11, ptr %.sroa.2.0..sroa_idx.i6, align 8, !alias.scope !69 %12 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %12, align 8, !alias.scope !69 %13 = getelementptr inbounds i8, ptr %4, i64 48 @@ -2963,8 +2963,8 @@ _ZZ8cmStrCatIRA33_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJcEES8 store ptr %16, ptr %17, align 8 store i8 %14, ptr %16, align 8 store i64 1, ptr %13, align 8, !alias.scope !72 - %.sroa.2.0..sroa_idx.i16 = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %16, ptr %.sroa.2.0..sroa_idx.i16, align 8, !alias.scope !72 + %.sroa.2.0..sroa_idx.i14 = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %16, ptr %.sroa.2.0..sroa_idx.i14, align 8, !alias.scope !72 %18 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %18, align 8, !alias.scope !72 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %4, i64 3) @@ -3849,7 +3849,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %9, i64 8 %37 = getelementptr inbounds i8, ptr %9, i64 16 %38 = getelementptr inbounds i8, ptr %9, i64 24 - %.sroa.2.0..sroa_idx.i9.i = getelementptr inbounds i8, ptr %9, i64 32 + %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %9, i64 32 %39 = getelementptr inbounds i8, ptr %9, i64 40 br label %40 @@ -3867,7 +3867,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr store ptr %43, ptr %.sroa.2.0..sroa_idx.i.i, align 8, !alias.scope !87, !noalias !84 store ptr null, ptr %37, align 8, !alias.scope !87, !noalias !84 store i64 %.sroa.013.0.copyload, ptr %38, align 8, !alias.scope !90, !noalias !84 - store ptr %.sroa.2.0.copyload, ptr %.sroa.2.0..sroa_idx.i9.i, align 8, !alias.scope !90, !noalias !84 + store ptr %.sroa.2.0.copyload, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !90, !noalias !84 store ptr null, ptr %39, align 8, !alias.scope !90, !noalias !84 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr nonnull %9, i64 2) to label %44 unwind label %.loopexit37 @@ -4219,8 +4219,8 @@ _ZNSt8optionalISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_EE store ptr null, ptr %144, align 8, !alias.scope !100, !noalias !97 %145 = getelementptr inbounds i8, ptr %5, i64 24 store i64 35, ptr %145, align 8, !alias.scope !103, !noalias !97 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %5, i64 32 - store ptr @.str.57, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !103, !noalias !97 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %5, i64 32 + store ptr @.str.57, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !103, !noalias !97 %146 = getelementptr inbounds i8, ptr %5, i64 40 store ptr null, ptr %146, align 8, !alias.scope !103, !noalias !97 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr nonnull %5, i64 2) @@ -4564,7 +4564,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit119: ; %242 = getelementptr inbounds i8, ptr %2, i64 8 %243 = getelementptr inbounds i8, ptr %2, i64 24 %244 = getelementptr inbounds i8, ptr %2, i64 16 - %.sroa.2.0..sroa_idx.i6.i124 = getelementptr inbounds i8, ptr %1, i64 32 + %.sroa.2.0..sroa_idx.i5.i124 = getelementptr inbounds i8, ptr %1, i64 32 %245 = getelementptr inbounds i8, ptr %1, i64 40 br label %.backedge @@ -4699,7 +4699,7 @@ _ZN6cmListC2ESt16initializer_listINSt7__cxx1112basic_stringIcSt11char_traitsIcES store ptr %243, ptr %244, align 8, !noalias !110 store i8 95, ptr %243, align 8, !noalias !110 store i64 1, ptr %241, align 8, !alias.scope !116, !noalias !110 - store ptr %243, ptr %.sroa.2.0..sroa_idx.i6.i124, align 8, !alias.scope !116, !noalias !110 + store ptr %243, ptr %.sroa.2.0..sroa_idx.i5.i124, align 8, !alias.scope !116, !noalias !110 store ptr null, ptr %245, align 8, !alias.scope !116, !noalias !110 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %27, ptr nonnull %1, i64 2) to label %282 unwind label %290 diff --git a/bench/cmake/optimized/cmCPackDebGenerator.cxx.ll b/bench/cmake/optimized/cmCPackDebGenerator.cxx.ll index fabc51f3948..727e4aff2d2 100644 --- a/bench/cmake/optimized/cmCPackDebGenerator.cxx.ll +++ b/bench/cmake/optimized/cmCPackDebGenerator.cxx.ll @@ -819,8 +819,8 @@ _ZN16cmCPackGenerator9SetOptionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %72 = extractvalue { i64, ptr } %71, 0 %73 = extractvalue { i64, ptr } %71, 1 store i64 %72, ptr %70, align 8, !alias.scope !13, !noalias !7 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %73, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !13, !noalias !7 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %73, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !13, !noalias !7 %74 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %74, align 8, !alias.scope !13, !noalias !7 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr nonnull %4, i64 2) @@ -1930,8 +1930,8 @@ _ZN16cmCPackGenerator9SetOptionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %114 = extractvalue { i64, ptr } %113, 0 %115 = extractvalue { i64, ptr } %113, 1 store i64 %114, ptr %112, align 8, !alias.scope !22, !noalias !16 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %3, i64 32 - store ptr %115, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !22, !noalias !16 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %3, i64 32 + store ptr %115, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !22, !noalias !16 %116 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %116, align 8, !alias.scope !22, !noalias !16 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr nonnull %3, i64 2) @@ -2611,19 +2611,19 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit40: ; store ptr %136, ptr %137, align 8, !noalias !29 store i8 47, ptr %136, align 8, !noalias !29 store i64 1, ptr %134, align 8, !alias.scope !35, !noalias !29 - %.sroa.2.0..sroa_idx.i9.i = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %136, ptr %.sroa.2.0..sroa_idx.i9.i, align 8, !alias.scope !35, !noalias !29 + %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %136, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !35, !noalias !29 %138 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %138, align 8, !alias.scope !35, !noalias !29 %139 = getelementptr inbounds i8, ptr %4, i64 48 %140 = icmp eq ptr %127, null - %spec.select.i.i14.i = select i1 %140, ptr @_ZN7cmValue5EmptyB5cxx11E, ptr %127 - %141 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i14.i) #21, !noalias !29 + %spec.select.i.i13.i = select i1 %140, ptr @_ZN7cmValue5EmptyB5cxx11E, ptr %127 + %141 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i13.i) #21, !noalias !29 %142 = extractvalue { i64, ptr } %141, 0 %143 = extractvalue { i64, ptr } %141, 1 store i64 %142, ptr %139, align 8, !alias.scope !38, !noalias !29 - %.sroa.2.0..sroa_idx.i19.i = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %143, ptr %.sroa.2.0..sroa_idx.i19.i, align 8, !alias.scope !38, !noalias !29 + %.sroa.2.0..sroa_idx.i17.i = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %143, ptr %.sroa.2.0..sroa_idx.i17.i, align 8, !alias.scope !38, !noalias !29 %144 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %144, align 8, !alias.scope !38, !noalias !29 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %11, ptr nonnull %4, i64 3) @@ -9185,8 +9185,8 @@ _ZStplIcSt11char_traitsIcESaIcEENSt7__cxx1112basic_stringIT_T0_T1_EERKS8_PKS5_.e store ptr %450, ptr %451, align 8, !noalias !59 store i8 47, ptr %450, align 8, !noalias !59 store i64 1, ptr %448, align 8, !alias.scope !60, !noalias !59 - %.sroa.2.0..sroa_idx.i6.i.i = getelementptr inbounds i8, ptr %68, i64 32 - store ptr %450, ptr %.sroa.2.0..sroa_idx.i6.i.i, align 8, !alias.scope !60, !noalias !59 + %.sroa.2.0..sroa_idx.i5.i.i = getelementptr inbounds i8, ptr %68, i64 32 + store ptr %450, ptr %.sroa.2.0..sroa_idx.i5.i.i, align 8, !alias.scope !60, !noalias !59 %452 = getelementptr inbounds i8, ptr %68, i64 40 store ptr null, ptr %452, align 8, !alias.scope !60, !noalias !59 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %71, ptr nonnull %68, i64 2) diff --git a/bench/cmake/optimized/cmCTestBuildHandler.cxx.ll b/bench/cmake/optimized/cmCTestBuildHandler.cxx.ll index ef437ee51c2..845e3a09481 100644 --- a/bench/cmake/optimized/cmCTestBuildHandler.cxx.ll +++ b/bench/cmake/optimized/cmCTestBuildHandler.cxx.ll @@ -5184,8 +5184,8 @@ _ZNSt6vectorIN19cmCTestBuildHandler24cmCTestBuildErrorWarningESaIS1_EE9push_back %372 = extractvalue { i64, ptr } %371, 0 %373 = extractvalue { i64, ptr } %371, 1 store i64 %372, ptr %370, align 8, !alias.scope !37, !noalias !34 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %8, i64 32 - store ptr %373, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !37, !noalias !34 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %8, i64 32 + store ptr %373, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !37, !noalias !34 %374 = getelementptr inbounds i8, ptr %8, i64 40 store ptr null, ptr %374, align 8, !alias.scope !37, !noalias !34 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %46, ptr nonnull %8, i64 2) @@ -6308,8 +6308,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr store ptr %66, ptr %67, align 8, !noalias !48 store i8 47, ptr %66, align 8, !noalias !48 store i64 1, ptr %64, align 8, !alias.scope !49, !noalias !48 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %19, i64 32 - store ptr %66, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !49, !noalias !48 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %19, i64 32 + store ptr %66, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !49, !noalias !48 %68 = getelementptr inbounds i8, ptr %19, i64 40 store ptr null, ptr %68, align 8, !alias.scope !49, !noalias !48 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %24, ptr nonnull %19, i64 2) @@ -7650,8 +7650,8 @@ define dso_local void @_ZN19cmCTestBuildHandler12LaunchHelperC2EPS_(ptr nocaptur store ptr %7, ptr %23, align 8, !alias.scope !65, !noalias !71 %24 = getelementptr inbounds i8, ptr %4, i64 24 store i64 9, ptr %24, align 8, !alias.scope !72, !noalias !71 - %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %4, i64 32 - store ptr @.str.69, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !72, !noalias !71 + %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %4, i64 32 + store ptr @.str.69, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !72, !noalias !71 %25 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %25, align 8, !alias.scope !72, !noalias !71 %26 = getelementptr inbounds i8, ptr %4, i64 48 @@ -7659,14 +7659,14 @@ define dso_local void @_ZN19cmCTestBuildHandler12LaunchHelperC2EPS_(ptr nocaptur %28 = extractvalue { i64, ptr } %27, 0 %29 = extractvalue { i64, ptr } %27, 1 store i64 %28, ptr %26, align 8, !alias.scope !75, !noalias !71 - %.sroa.2.0..sroa_idx.i17.i = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %29, ptr %.sroa.2.0..sroa_idx.i17.i, align 8, !alias.scope !75, !noalias !71 + %.sroa.2.0..sroa_idx.i15.i = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %29, ptr %.sroa.2.0..sroa_idx.i15.i, align 8, !alias.scope !75, !noalias !71 %30 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %30, align 8, !alias.scope !75, !noalias !71 %31 = getelementptr inbounds i8, ptr %4, i64 72 store i64 6, ptr %31, align 8, !alias.scope !78, !noalias !71 - %.sroa.2.0..sroa_idx.i26.i = getelementptr inbounds i8, ptr %4, i64 80 - store ptr @.str.70, ptr %.sroa.2.0..sroa_idx.i26.i, align 8, !alias.scope !78, !noalias !71 + %.sroa.2.0..sroa_idx.i23.i = getelementptr inbounds i8, ptr %4, i64 80 + store ptr @.str.70, ptr %.sroa.2.0..sroa_idx.i23.i, align 8, !alias.scope !78, !noalias !71 %32 = getelementptr inbounds i8, ptr %4, i64 88 store ptr null, ptr %32, align 8, !alias.scope !78, !noalias !71 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr nonnull %4, i64 4) @@ -7707,8 +7707,8 @@ define dso_local void @_ZN19cmCTestBuildHandler12LaunchHelperC2EPS_(ptr nocaptur %48 = extractvalue { i64, ptr } %47, 0 %49 = extractvalue { i64, ptr } %47, 1 store i64 %48, ptr %46, align 8, !alias.scope !87, !noalias !84 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %3, i64 32 - store ptr %49, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !87, !noalias !84 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %3, i64 32 + store ptr %49, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !87, !noalias !84 %50 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %50, align 8, !alias.scope !87, !noalias !84 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr nonnull %3, i64 2) @@ -7796,8 +7796,8 @@ define dso_local void @_ZN19cmCTestBuildHandler12LaunchHelper19WriteLauncherConf store ptr null, ptr %17, align 8, !alias.scope !93, !noalias !90 %18 = getelementptr inbounds i8, ptr %2, i64 24 store i64 24, ptr %18, align 8, !alias.scope !96, !noalias !90 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %2, i64 32 - store ptr @.str.74, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !96, !noalias !90 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %2, i64 32 + store ptr @.str.74, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !96, !noalias !90 %19 = getelementptr inbounds i8, ptr %2, i64 40 store ptr null, ptr %19, align 8, !alias.scope !96, !noalias !90 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr nonnull %2, i64 2) @@ -7952,21 +7952,21 @@ define dso_local void @_ZN19cmCTestBuildHandler12LaunchHelper19WriteScrapeMatche store ptr null, ptr %17, align 8, !alias.scope !102, !noalias !99 %18 = getelementptr inbounds i8, ptr %4, i64 24 store i64 7, ptr %18, align 8, !alias.scope !105, !noalias !99 - %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %4, i64 32 - store ptr @.str.77, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !105, !noalias !99 + %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %4, i64 32 + store ptr @.str.77, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !105, !noalias !99 %19 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %19, align 8, !alias.scope !105, !noalias !99 %20 = getelementptr inbounds i8, ptr %4, i64 48 %21 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #22, !noalias !99 store i64 %21, ptr %20, align 8, !alias.scope !108, !noalias !99 - %.sroa.2.0..sroa_idx.i17.i = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %1, ptr %.sroa.2.0..sroa_idx.i17.i, align 8, !alias.scope !108, !noalias !99 + %.sroa.2.0..sroa_idx.i15.i = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %1, ptr %.sroa.2.0..sroa_idx.i15.i, align 8, !alias.scope !108, !noalias !99 %22 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %22, align 8, !alias.scope !108, !noalias !99 %23 = getelementptr inbounds i8, ptr %4, i64 72 store i64 4, ptr %23, align 8, !alias.scope !111, !noalias !99 - %.sroa.2.0..sroa_idx.i26.i = getelementptr inbounds i8, ptr %4, i64 80 - store ptr @.str.78, ptr %.sroa.2.0..sroa_idx.i26.i, align 8, !alias.scope !111, !noalias !99 + %.sroa.2.0..sroa_idx.i23.i = getelementptr inbounds i8, ptr %4, i64 80 + store ptr @.str.78, ptr %.sroa.2.0..sroa_idx.i23.i, align 8, !alias.scope !111, !noalias !99 %24 = getelementptr inbounds i8, ptr %4, i64 88 store ptr null, ptr %24, align 8, !alias.scope !111, !noalias !99 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr nonnull %4, i64 4) @@ -9267,7 +9267,7 @@ define linkonce_odr dso_local void @_ZN19cmCTestBuildHandler24cmCTestBuildErrorW ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRA50_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJEES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(50) %1, ptr noundef nonnull align 8 dereferenceable(32) %2) local_unnamed_addr #3 comdat personality ptr @__gxx_personality_v0 { -_ZZ8cmStrCatIRA50_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJEES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESJ_.exit10: +_ZZ8cmStrCatIRA50_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJEES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESJ_.exit9: %3 = alloca [2 x %"struct.std::pair.284"], align 8 %4 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #22 store i64 %4, ptr %3, align 8, !alias.scope !183 @@ -9280,8 +9280,8 @@ _ZZ8cmStrCatIRA50_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJEES8_O %8 = extractvalue { i64, ptr } %7, 0 %9 = extractvalue { i64, ptr } %7, 1 store i64 %8, ptr %6, align 8, !alias.scope !186 - %.sroa.2.0..sroa_idx.i6 = getelementptr inbounds i8, ptr %3, i64 32 - store ptr %9, ptr %.sroa.2.0..sroa_idx.i6, align 8, !alias.scope !186 + %.sroa.2.0..sroa_idx.i5 = getelementptr inbounds i8, ptr %3, i64 32 + store ptr %9, ptr %.sroa.2.0..sroa_idx.i5, align 8, !alias.scope !186 %10 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %10, align 8, !alias.scope !186 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %3, i64 2) diff --git a/bench/cmake/optimized/cmCTestCoverageHandler.cxx.ll b/bench/cmake/optimized/cmCTestCoverageHandler.cxx.ll index 54248a80dd5..3458eba10eb 100644 --- a/bench/cmake/optimized/cmCTestCoverageHandler.cxx.ll +++ b/bench/cmake/optimized/cmCTestCoverageHandler.cxx.ll @@ -767,8 +767,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr store ptr %5, ptr %21, align 8, !alias.scope !7, !noalias !13 %22 = getelementptr inbounds i8, ptr %3, i64 24 store i64 9, ptr %22, align 8, !alias.scope !14, !noalias !13 - %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %3, i64 32 - store ptr @.str.1, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !14, !noalias !13 + %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %3, i64 32 + store ptr @.str.1, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !14, !noalias !13 %23 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %23, align 8, !alias.scope !14, !noalias !13 %24 = getelementptr inbounds i8, ptr %3, i64 48 @@ -777,14 +777,14 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr %26 = extractvalue { i64, ptr } %25, 0 %27 = extractvalue { i64, ptr } %25, 1 store i64 %26, ptr %24, align 8, !alias.scope !17, !noalias !13 - %.sroa.2.0..sroa_idx.i17.i = getelementptr inbounds i8, ptr %3, i64 56 - store ptr %27, ptr %.sroa.2.0..sroa_idx.i17.i, align 8, !alias.scope !17, !noalias !13 + %.sroa.2.0..sroa_idx.i15.i = getelementptr inbounds i8, ptr %3, i64 56 + store ptr %27, ptr %.sroa.2.0..sroa_idx.i15.i, align 8, !alias.scope !17, !noalias !13 %28 = getelementptr inbounds i8, ptr %3, i64 64 store ptr %8, ptr %28, align 8, !alias.scope !17, !noalias !13 %29 = getelementptr inbounds i8, ptr %3, i64 72 store i64 13, ptr %29, align 8, !alias.scope !21, !noalias !13 - %.sroa.2.0..sroa_idx.i26.i = getelementptr inbounds i8, ptr %3, i64 80 - store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i26.i, align 8, !alias.scope !21, !noalias !13 + %.sroa.2.0..sroa_idx.i23.i = getelementptr inbounds i8, ptr %3, i64 80 + store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i23.i, align 8, !alias.scope !21, !noalias !13 %30 = getelementptr inbounds i8, ptr %3, i64 88 store ptr null, ptr %30, align 8, !alias.scope !21, !noalias !13 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr nonnull %3, i64 4) @@ -5570,8 +5570,8 @@ define dso_local void @_ZN22cmCTestCoverageHandler10LoadLabelsEv(ptr noundef non store ptr %4, ptr %14, align 8, !alias.scope !31, !noalias !37 %15 = getelementptr inbounds i8, ptr %2, i64 24 store i64 33, ptr %15, align 8, !alias.scope !38, !noalias !37 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %2, i64 32 - store ptr @.str.230, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !38, !noalias !37 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %2, i64 32 + store ptr @.str.230, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !38, !noalias !37 %16 = getelementptr inbounds i8, ptr %2, i64 40 store ptr null, ptr %16, align 8, !alias.scope !38, !noalias !37 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr nonnull %2, i64 2) @@ -10354,7 +10354,7 @@ _ZN5cmsys17RegularExpressionC2EPKc.exit: ; preds = %_ZNSt7__cxx1112basi %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %5, i64 8 %270 = getelementptr inbounds i8, ptr %5, i64 16 %271 = getelementptr inbounds i8, ptr %5, i64 24 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %5, i64 32 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %5, i64 32 %272 = getelementptr inbounds i8, ptr %5, i64 40 %273 = getelementptr inbounds i8, ptr %64, i64 8 %274 = getelementptr inbounds i8, ptr %1, i64 72 @@ -11001,7 +11001,7 @@ _ZN5cmsys17RegularExpressionC2EPKc.exit: ; preds = %_ZNSt7__cxx1112basi store ptr %524, ptr %.sroa.2.0..sroa_idx.i.i, align 8, !alias.scope !83, !noalias !80 store ptr null, ptr %270, align 8, !alias.scope !83, !noalias !80 store i64 7, ptr %271, align 8, !alias.scope !86, !noalias !80 - store ptr @.str.162, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !86, !noalias !80 + store ptr @.str.162, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !86, !noalias !80 store ptr null, ptr %272, align 8, !alias.scope !86, !noalias !80 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %67, ptr nonnull %5, i64 2) to label %525 unwind label %.loopexit.split-lp334 @@ -16092,13 +16092,13 @@ define dso_local void @_ZN22cmCTestCoverageHandler13FindGCovFilesERSt6vectorINSt %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %4, i64 8 %22 = getelementptr inbounds i8, ptr %4, i64 16 %23 = getelementptr inbounds i8, ptr %4, i64 24 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %4, i64 32 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %4, i64 32 %24 = getelementptr inbounds i8, ptr %4, i64 40 %25 = getelementptr inbounds i8, ptr %1, i64 8 %.sroa.2.0..sroa_idx.i.i15 = getelementptr inbounds i8, ptr %3, i64 8 %26 = getelementptr inbounds i8, ptr %3, i64 16 %27 = getelementptr inbounds i8, ptr %3, i64 24 - %.sroa.2.0..sroa_idx.i6.i16 = getelementptr inbounds i8, ptr %3, i64 32 + %.sroa.2.0..sroa_idx.i5.i16 = getelementptr inbounds i8, ptr %3, i64 32 %28 = getelementptr inbounds i8, ptr %3, i64 40 br label %29 @@ -16194,7 +16194,7 @@ _ZSt16set_intersectionISt23_Rb_tree_const_iteratorIiES1_St20back_insert_iterator store ptr %65, ptr %.sroa.2.0..sroa_idx.i.i, align 8, !alias.scope !103, !noalias !100 store ptr null, ptr %22, align 8, !alias.scope !103, !noalias !100 store i64 5, ptr %23, align 8, !alias.scope !106, !noalias !100 - store ptr @.str.173, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !106, !noalias !100 + store ptr @.str.173, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !106, !noalias !100 store ptr null, ptr %24, align 8, !alias.scope !106, !noalias !100 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr nonnull %4, i64 2) to label %66 unwind label %47 @@ -16230,7 +16230,7 @@ _ZN2cm6appendISt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS store ptr %82, ptr %.sroa.2.0..sroa_idx.i.i15, align 8, !alias.scope !112, !noalias !109 store ptr null, ptr %26, align 8, !alias.scope !112, !noalias !109 store i64 7, ptr %27, align 8, !alias.scope !115, !noalias !109 - store ptr @.str.174, ptr %.sroa.2.0..sroa_idx.i6.i16, align 8, !alias.scope !115, !noalias !109 + store ptr @.str.174, ptr %.sroa.2.0..sroa_idx.i5.i16, align 8, !alias.scope !115, !noalias !109 store ptr null, ptr %28, align 8, !alias.scope !115, !noalias !109 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr nonnull %3, i64 2) to label %83 unwind label %105 @@ -17132,8 +17132,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit39: ; store ptr null, ptr %86, align 8, !alias.scope !127, !noalias !124 %87 = getelementptr inbounds i8, ptr %3, i64 24 store i64 6, ptr %87, align 8, !alias.scope !130, !noalias !124 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %3, i64 32 - store ptr @.str.177, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !130, !noalias !124 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %3, i64 32 + store ptr @.str.177, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !130, !noalias !124 %88 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %88, align 8, !alias.scope !130, !noalias !124 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr nonnull %3, i64 2) @@ -19123,8 +19123,8 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12empla store ptr null, ptr %146, align 8, !alias.scope !140, !noalias !137 %147 = getelementptr inbounds i8, ptr %6, i64 24 store i64 19, ptr %147, align 8, !alias.scope !143, !noalias !137 - %.sroa.2.0..sroa_idx.i9.i = getelementptr inbounds i8, ptr %6, i64 32 - store ptr @.str.199, ptr %.sroa.2.0..sroa_idx.i9.i, align 8, !alias.scope !143, !noalias !137 + %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %6, i64 32 + store ptr @.str.199, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !143, !noalias !137 %148 = getelementptr inbounds i8, ptr %6, i64 40 store ptr null, ptr %148, align 8, !alias.scope !143, !noalias !137 %149 = getelementptr inbounds i8, ptr %6, i64 48 @@ -19133,8 +19133,8 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12empla %151 = extractvalue { i64, ptr } %150, 0 %152 = extractvalue { i64, ptr } %150, 1 store i64 %151, ptr %149, align 8, !alias.scope !146, !noalias !137 - %.sroa.2.0..sroa_idx.i18.i = getelementptr inbounds i8, ptr %6, i64 56 - store ptr %152, ptr %.sroa.2.0..sroa_idx.i18.i, align 8, !alias.scope !146, !noalias !137 + %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %6, i64 56 + store ptr %152, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !146, !noalias !137 %153 = getelementptr inbounds i8, ptr %6, i64 64 store ptr %22, ptr %153, align 8, !alias.scope !146, !noalias !137 %154 = getelementptr inbounds i8, ptr %6, i64 72 @@ -19146,15 +19146,15 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12empla store ptr %156, ptr %157, align 8, !noalias !137 store i8 45, ptr %156, align 8, !noalias !137 store i64 1, ptr %154, align 8, !alias.scope !150, !noalias !137 - %.sroa.2.0..sroa_idx.i27.i = getelementptr inbounds i8, ptr %6, i64 80 - store ptr %156, ptr %.sroa.2.0..sroa_idx.i27.i, align 8, !alias.scope !150, !noalias !137 + %.sroa.2.0..sroa_idx.i24.i = getelementptr inbounds i8, ptr %6, i64 80 + store ptr %156, ptr %.sroa.2.0..sroa_idx.i24.i, align 8, !alias.scope !150, !noalias !137 %158 = getelementptr inbounds i8, ptr %6, i64 88 store ptr null, ptr %158, align 8, !alias.scope !150, !noalias !137 %159 = getelementptr inbounds i8, ptr %6, i64 96 %160 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #20, !noalias !137 store i64 %160, ptr %159, align 8, !alias.scope !153, !noalias !137 - %.sroa.2.0..sroa_idx.i36.i = getelementptr inbounds i8, ptr %6, i64 104 - store ptr %2, ptr %.sroa.2.0..sroa_idx.i36.i, align 8, !alias.scope !153, !noalias !137 + %.sroa.2.0..sroa_idx.i32.i = getelementptr inbounds i8, ptr %6, i64 104 + store ptr %2, ptr %.sroa.2.0..sroa_idx.i32.i, align 8, !alias.scope !153, !noalias !137 %161 = getelementptr inbounds i8, ptr %6, i64 112 store ptr null, ptr %161, align 8, !alias.scope !153, !noalias !137 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr nonnull %6, i64 5) @@ -20052,10 +20052,10 @@ _ZN11cmXMLWriter7ElementINSt6chrono10time_pointINS1_3_V212system_clockENS1_8dura %205 = getelementptr inbounds i8, ptr %9, i64 8 %206 = getelementptr inbounds i8, ptr %9, i64 24 %207 = getelementptr inbounds i8, ptr %9, i64 16 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %8, i64 32 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %8, i64 32 %208 = getelementptr inbounds i8, ptr %8, i64 40 %209 = getelementptr inbounds i8, ptr %8, i64 48 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %8, i64 56 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %8, i64 56 %210 = getelementptr inbounds i8, ptr %8, i64 64 %211 = getelementptr inbounds i8, ptr %1, i64 8 %212 = getelementptr inbounds i8, ptr %0, i64 9 @@ -20143,13 +20143,13 @@ _ZN11cmXMLWriter7ElementINSt6chrono10time_pointINS1_3_V212system_clockENS1_8dura store ptr %206, ptr %207, align 8, !noalias !158 store i8 47, ptr %206, align 8, !noalias !158 store i64 1, ptr %204, align 8, !alias.scope !164, !noalias !158 - store ptr %206, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !164, !noalias !158 + store ptr %206, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !164, !noalias !158 store ptr null, ptr %208, align 8, !alias.scope !164, !noalias !158 %239 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %28) #20, !noalias !158 %240 = extractvalue { i64, ptr } %239, 0 %241 = extractvalue { i64, ptr } %239, 1 store i64 %240, ptr %209, align 8, !alias.scope !167, !noalias !158 - store ptr %241, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !167, !noalias !158 + store ptr %241, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !167, !noalias !158 store ptr null, ptr %210, align 8, !alias.scope !167, !noalias !158 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %42, ptr nonnull %8, i64 3) to label %242 unwind label %.loopexit390 @@ -22050,8 +22050,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr store ptr null, ptr %27, align 8, !alias.scope !174, !noalias !171 %28 = getelementptr inbounds i8, ptr %3, i64 24 store i64 11, ptr %28, align 8, !alias.scope !177, !noalias !171 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %3, i64 32 - store ptr @.str.233, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !177, !noalias !171 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %3, i64 32 + store ptr @.str.233, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !177, !noalias !171 %29 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %29, align 8, !alias.scope !177, !noalias !171 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %6, ptr nonnull %3, i64 2) diff --git a/bench/cmake/optimized/cmCTestLaunchReporter.cxx.ll b/bench/cmake/optimized/cmCTestLaunchReporter.cxx.ll index 92182ba811e..34b3b42fbbe 100644 --- a/bench/cmake/optimized/cmCTestLaunchReporter.cxx.ll +++ b/bench/cmake/optimized/cmCTestLaunchReporter.cxx.ll @@ -437,8 +437,8 @@ define dso_local void @_ZN21cmCTestLaunchReporter16ComputeFileNamesEv(ptr nounde store ptr null, ptr %46, align 8, !alias.scope !8, !noalias !5 %47 = getelementptr inbounds i8, ptr %3, i64 24 store i64 7, ptr %47, align 8, !alias.scope !11, !noalias !5 - %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %3, i64 32 - store ptr @.str.5, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !11, !noalias !5 + %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %3, i64 32 + store ptr @.str.5, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !11, !noalias !5 %48 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %48, align 8, !alias.scope !11, !noalias !5 %49 = getelementptr inbounds i8, ptr %3, i64 48 @@ -446,14 +446,14 @@ define dso_local void @_ZN21cmCTestLaunchReporter16ComputeFileNamesEv(ptr nounde %51 = extractvalue { i64, ptr } %50, 0 %52 = extractvalue { i64, ptr } %50, 1 store i64 %51, ptr %49, align 8, !alias.scope !14, !noalias !5 - %.sroa.2.0..sroa_idx.i17.i = getelementptr inbounds i8, ptr %3, i64 56 - store ptr %52, ptr %.sroa.2.0..sroa_idx.i17.i, align 8, !alias.scope !14, !noalias !5 + %.sroa.2.0..sroa_idx.i15.i = getelementptr inbounds i8, ptr %3, i64 56 + store ptr %52, ptr %.sroa.2.0..sroa_idx.i15.i, align 8, !alias.scope !14, !noalias !5 %53 = getelementptr inbounds i8, ptr %3, i64 64 store ptr null, ptr %53, align 8, !alias.scope !14, !noalias !5 %54 = getelementptr inbounds i8, ptr %3, i64 72 store i64 8, ptr %54, align 8, !alias.scope !17, !noalias !5 - %.sroa.2.0..sroa_idx.i26.i = getelementptr inbounds i8, ptr %3, i64 80 - store ptr @.str.6, ptr %.sroa.2.0..sroa_idx.i26.i, align 8, !alias.scope !17, !noalias !5 + %.sroa.2.0..sroa_idx.i23.i = getelementptr inbounds i8, ptr %3, i64 80 + store ptr @.str.6, ptr %.sroa.2.0..sroa_idx.i23.i, align 8, !alias.scope !17, !noalias !5 %55 = getelementptr inbounds i8, ptr %3, i64 88 store ptr null, ptr %55, align 8, !alias.scope !17, !noalias !5 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr nonnull %3, i64 4) @@ -475,8 +475,8 @@ define dso_local void @_ZN21cmCTestLaunchReporter16ComputeFileNamesEv(ptr nounde store ptr null, ptr %62, align 8, !alias.scope !23, !noalias !20 %63 = getelementptr inbounds i8, ptr %2, i64 24 store i64 7, ptr %63, align 8, !alias.scope !26, !noalias !20 - %.sroa.2.0..sroa_idx.i8.i10 = getelementptr inbounds i8, ptr %2, i64 32 - store ptr @.str.5, ptr %.sroa.2.0..sroa_idx.i8.i10, align 8, !alias.scope !26, !noalias !20 + %.sroa.2.0..sroa_idx.i7.i10 = getelementptr inbounds i8, ptr %2, i64 32 + store ptr @.str.5, ptr %.sroa.2.0..sroa_idx.i7.i10, align 8, !alias.scope !26, !noalias !20 %64 = getelementptr inbounds i8, ptr %2, i64 40 store ptr null, ptr %64, align 8, !alias.scope !26, !noalias !20 %65 = getelementptr inbounds i8, ptr %2, i64 48 @@ -484,14 +484,14 @@ define dso_local void @_ZN21cmCTestLaunchReporter16ComputeFileNamesEv(ptr nounde %67 = extractvalue { i64, ptr } %66, 0 %68 = extractvalue { i64, ptr } %66, 1 store i64 %67, ptr %65, align 8, !alias.scope !29, !noalias !20 - %.sroa.2.0..sroa_idx.i17.i11 = getelementptr inbounds i8, ptr %2, i64 56 - store ptr %68, ptr %.sroa.2.0..sroa_idx.i17.i11, align 8, !alias.scope !29, !noalias !20 + %.sroa.2.0..sroa_idx.i15.i11 = getelementptr inbounds i8, ptr %2, i64 56 + store ptr %68, ptr %.sroa.2.0..sroa_idx.i15.i11, align 8, !alias.scope !29, !noalias !20 %69 = getelementptr inbounds i8, ptr %2, i64 64 store ptr null, ptr %69, align 8, !alias.scope !29, !noalias !20 %70 = getelementptr inbounds i8, ptr %2, i64 72 store i64 8, ptr %70, align 8, !alias.scope !32, !noalias !20 - %.sroa.2.0..sroa_idx.i26.i12 = getelementptr inbounds i8, ptr %2, i64 80 - store ptr @.str.7, ptr %.sroa.2.0..sroa_idx.i26.i12, align 8, !alias.scope !32, !noalias !20 + %.sroa.2.0..sroa_idx.i23.i12 = getelementptr inbounds i8, ptr %2, i64 80 + store ptr @.str.7, ptr %.sroa.2.0..sroa_idx.i23.i12, align 8, !alias.scope !32, !noalias !20 %71 = getelementptr inbounds i8, ptr %2, i64 88 store ptr null, ptr %71, align 8, !alias.scope !32, !noalias !20 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr nonnull %2, i64 4) @@ -843,8 +843,8 @@ define dso_local void @_ZN21cmCTestLaunchReporter10LoadLabelsEv(ptr noundef nonn store ptr null, ptr %17, align 8, !alias.scope !41, !noalias !38 %18 = getelementptr inbounds i8, ptr %2, i64 24 store i64 12, ptr %18, align 8, !alias.scope !44, !noalias !38 - %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %2, i64 32 - store ptr @.str.8, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !44, !noalias !38 + %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %2, i64 32 + store ptr @.str.8, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !44, !noalias !38 %19 = getelementptr inbounds i8, ptr %2, i64 40 store ptr null, ptr %19, align 8, !alias.scope !44, !noalias !38 %20 = getelementptr inbounds i8, ptr %2, i64 48 @@ -852,14 +852,14 @@ define dso_local void @_ZN21cmCTestLaunchReporter10LoadLabelsEv(ptr noundef nonn %22 = extractvalue { i64, ptr } %21, 0 %23 = extractvalue { i64, ptr } %21, 1 store i64 %22, ptr %20, align 8, !alias.scope !47, !noalias !38 - %.sroa.2.0..sroa_idx.i17.i = getelementptr inbounds i8, ptr %2, i64 56 - store ptr %23, ptr %.sroa.2.0..sroa_idx.i17.i, align 8, !alias.scope !47, !noalias !38 + %.sroa.2.0..sroa_idx.i15.i = getelementptr inbounds i8, ptr %2, i64 56 + store ptr %23, ptr %.sroa.2.0..sroa_idx.i15.i, align 8, !alias.scope !47, !noalias !38 %24 = getelementptr inbounds i8, ptr %2, i64 64 store ptr null, ptr %24, align 8, !alias.scope !47, !noalias !38 %25 = getelementptr inbounds i8, ptr %2, i64 72 store i64 15, ptr %25, align 8, !alias.scope !50, !noalias !38 - %.sroa.2.0..sroa_idx.i26.i = getelementptr inbounds i8, ptr %2, i64 80 - store ptr @.str.9, ptr %.sroa.2.0..sroa_idx.i26.i, align 8, !alias.scope !50, !noalias !38 + %.sroa.2.0..sroa_idx.i23.i = getelementptr inbounds i8, ptr %2, i64 80 + store ptr @.str.9, ptr %.sroa.2.0..sroa_idx.i23.i, align 8, !alias.scope !50, !noalias !38 %26 = getelementptr inbounds i8, ptr %2, i64 88 store ptr null, ptr %26, align 8, !alias.scope !50, !noalias !38 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %3, ptr nonnull %2, i64 4) @@ -1126,8 +1126,8 @@ define dso_local void @_ZN21cmCTestLaunchReporter8WriteXMLEv(ptr noundef nonnull %17 = getelementptr inbounds i8, ptr %3, i64 24 %18 = select i1 %.not, i64 8, i64 6 store i64 %18, ptr %17, align 8, !alias.scope !60, !noalias !54 - %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %3, i64 32 - store ptr %11, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !60, !noalias !54 + %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %3, i64 32 + store ptr %11, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !60, !noalias !54 %19 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %19, align 8, !alias.scope !60, !noalias !54 %20 = getelementptr inbounds i8, ptr %3, i64 48 @@ -1135,14 +1135,14 @@ define dso_local void @_ZN21cmCTestLaunchReporter8WriteXMLEv(ptr noundef nonnull %22 = extractvalue { i64, ptr } %21, 0 %23 = extractvalue { i64, ptr } %21, 1 store i64 %22, ptr %20, align 8, !alias.scope !63, !noalias !54 - %.sroa.2.0..sroa_idx.i17.i = getelementptr inbounds i8, ptr %3, i64 56 - store ptr %23, ptr %.sroa.2.0..sroa_idx.i17.i, align 8, !alias.scope !63, !noalias !54 + %.sroa.2.0..sroa_idx.i15.i = getelementptr inbounds i8, ptr %3, i64 56 + store ptr %23, ptr %.sroa.2.0..sroa_idx.i15.i, align 8, !alias.scope !63, !noalias !54 %24 = getelementptr inbounds i8, ptr %3, i64 64 store ptr null, ptr %24, align 8, !alias.scope !63, !noalias !54 %25 = getelementptr inbounds i8, ptr %3, i64 72 store i64 4, ptr %25, align 8, !alias.scope !66, !noalias !54 - %.sroa.2.0..sroa_idx.i26.i = getelementptr inbounds i8, ptr %3, i64 80 - store ptr @.str.12, ptr %.sroa.2.0..sroa_idx.i26.i, align 8, !alias.scope !66, !noalias !54 + %.sroa.2.0..sroa_idx.i23.i = getelementptr inbounds i8, ptr %3, i64 80 + store ptr @.str.12, ptr %.sroa.2.0..sroa_idx.i23.i, align 8, !alias.scope !66, !noalias !54 %26 = getelementptr inbounds i8, ptr %3, i64 88 store ptr null, ptr %26, align 8, !alias.scope !66, !noalias !54 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr nonnull %3, i64 4) @@ -2544,14 +2544,14 @@ define dso_local void @_ZN21cmCTestLaunchReporter13DumpFileToXMLER12cmXMLElement %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %10, i64 8 %20 = getelementptr inbounds i8, ptr %10, i64 16 %21 = getelementptr inbounds i8, ptr %10, i64 24 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %10, i64 32 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %10, i64 32 %22 = getelementptr inbounds i8, ptr %10, i64 40 %23 = getelementptr inbounds i8, ptr %0, i64 496 %24 = getelementptr inbounds i8, ptr %0, i64 504 %.sroa.2.0..sroa_idx.i.i15 = getelementptr inbounds i8, ptr %9, i64 8 %25 = getelementptr inbounds i8, ptr %9, i64 16 %26 = getelementptr inbounds i8, ptr %9, i64 24 - %.sroa.2.0..sroa_idx.i6.i16 = getelementptr inbounds i8, ptr %9, i64 32 + %.sroa.2.0..sroa_idx.i5.i16 = getelementptr inbounds i8, ptr %9, i64 32 %27 = getelementptr inbounds i8, ptr %9, i64 40 br label %.outer @@ -2662,7 +2662,7 @@ _ZN21cmCTestLaunchReporter5MatchERKNSt7__cxx1112basic_stringIcSt11char_traitsIcE %55 = extractvalue { i64, ptr } %54, 0 %56 = extractvalue { i64, ptr } %54, 1 store i64 %55, ptr %21, align 8, !alias.scope !76, !noalias !73 - store ptr %56, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !76, !noalias !73 + store ptr %56, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !76, !noalias !73 store ptr null, ptr %22, align 8, !alias.scope !76, !noalias !73 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr nonnull %10, i64 2) to label %57 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -2700,7 +2700,7 @@ _ZN21cmCTestLaunchReporter5MatchERKNSt7__cxx1112basic_stringIcSt11char_traitsIcE %65 = extractvalue { i64, ptr } %64, 0 %66 = extractvalue { i64, ptr } %64, 1 store i64 %65, ptr %26, align 8, !alias.scope !85, !noalias !82 - store ptr %66, ptr %.sroa.2.0..sroa_idx.i6.i16, align 8, !alias.scope !85, !noalias !82 + store ptr %66, ptr %.sroa.2.0..sroa_idx.i5.i16, align 8, !alias.scope !85, !noalias !82 store ptr null, ptr %27, align 8, !alias.scope !85, !noalias !82 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %15, ptr nonnull %9, i64 2) to label %67 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp diff --git a/bench/cmake/optimized/cmCTestRunTest.cxx.ll b/bench/cmake/optimized/cmCTestRunTest.cxx.ll index 3e90f4a0248..642647783e2 100644 --- a/bench/cmake/optimized/cmCTestRunTest.cxx.ll +++ b/bench/cmake/optimized/cmCTestRunTest.cxx.ll @@ -1008,8 +1008,8 @@ _ZN5cmsys17RegularExpression4findERKNSt7__cxx1112basic_stringIcSt11char_traitsIc %77 = extractvalue { i64, ptr } %76, 0 %78 = extractvalue { i64, ptr } %76, 1 store i64 %77, ptr %75, align 8, !alias.scope !26, !noalias !23 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %9, i64 32 - store ptr %78, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !26, !noalias !23 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %9, i64 32 + store ptr %78, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !26, !noalias !23 %79 = getelementptr inbounds i8, ptr %9, i64 40 store ptr null, ptr %79, align 8, !alias.scope !26, !noalias !23 %80 = getelementptr inbounds i8, ptr %9, i64 48 @@ -1021,8 +1021,8 @@ _ZN5cmsys17RegularExpression4findERKNSt7__cxx1112basic_stringIcSt11char_traitsIc store ptr %82, ptr %83, align 8, !noalias !23 store i8 93, ptr %82, align 8, !noalias !23 store i64 1, ptr %80, align 8, !alias.scope !29, !noalias !23 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %9, i64 56 - store ptr %82, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !29, !noalias !23 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %9, i64 56 + store ptr %82, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !29, !noalias !23 %84 = getelementptr inbounds i8, ptr %9, i64 64 store ptr null, ptr %84, align 8, !alias.scope !29, !noalias !23 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr nonnull %9, i64 3) @@ -1137,8 +1137,8 @@ _ZN5cmsys17RegularExpression4findERKNSt7__cxx1112basic_stringIcSt11char_traitsIc %121 = extractvalue { i64, ptr } %120, 0 %122 = extractvalue { i64, ptr } %120, 1 store i64 %121, ptr %119, align 8, !alias.scope !38, !noalias !35 - %.sroa.2.0..sroa_idx.i7.i121 = getelementptr inbounds i8, ptr %7, i64 32 - store ptr %122, ptr %.sroa.2.0..sroa_idx.i7.i121, align 8, !alias.scope !38, !noalias !35 + %.sroa.2.0..sroa_idx.i6.i121 = getelementptr inbounds i8, ptr %7, i64 32 + store ptr %122, ptr %.sroa.2.0..sroa_idx.i6.i121, align 8, !alias.scope !38, !noalias !35 %123 = getelementptr inbounds i8, ptr %7, i64 40 store ptr null, ptr %123, align 8, !alias.scope !38, !noalias !35 %124 = getelementptr inbounds i8, ptr %7, i64 48 @@ -1150,8 +1150,8 @@ _ZN5cmsys17RegularExpression4findERKNSt7__cxx1112basic_stringIcSt11char_traitsIc store ptr %126, ptr %127, align 8, !noalias !35 store i8 93, ptr %126, align 8, !noalias !35 store i64 1, ptr %124, align 8, !alias.scope !41, !noalias !35 - %.sroa.2.0..sroa_idx.i16.i122 = getelementptr inbounds i8, ptr %7, i64 56 - store ptr %126, ptr %.sroa.2.0..sroa_idx.i16.i122, align 8, !alias.scope !41, !noalias !35 + %.sroa.2.0..sroa_idx.i14.i122 = getelementptr inbounds i8, ptr %7, i64 56 + store ptr %126, ptr %.sroa.2.0..sroa_idx.i14.i122, align 8, !alias.scope !41, !noalias !35 %128 = getelementptr inbounds i8, ptr %7, i64 64 store ptr null, ptr %128, align 8, !alias.scope !41, !noalias !35 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr nonnull %7, i64 3) @@ -1209,8 +1209,8 @@ _ZN5cmsys17RegularExpression4findERKNSt7__cxx1112basic_stringIcSt11char_traitsIc %150 = extractvalue { i64, ptr } %149, 0 %151 = extractvalue { i64, ptr } %149, 1 store i64 %150, ptr %148, align 8, !alias.scope !50, !noalias !47 - %.sroa.2.0..sroa_idx.i7.i125 = getelementptr inbounds i8, ptr %5, i64 32 - store ptr %151, ptr %.sroa.2.0..sroa_idx.i7.i125, align 8, !alias.scope !50, !noalias !47 + %.sroa.2.0..sroa_idx.i6.i125 = getelementptr inbounds i8, ptr %5, i64 32 + store ptr %151, ptr %.sroa.2.0..sroa_idx.i6.i125, align 8, !alias.scope !50, !noalias !47 %152 = getelementptr inbounds i8, ptr %5, i64 40 store ptr null, ptr %152, align 8, !alias.scope !50, !noalias !47 %153 = getelementptr inbounds i8, ptr %5, i64 48 @@ -1222,8 +1222,8 @@ _ZN5cmsys17RegularExpression4findERKNSt7__cxx1112basic_stringIcSt11char_traitsIc store ptr %155, ptr %156, align 8, !noalias !47 store i8 93, ptr %155, align 8, !noalias !47 store i64 1, ptr %153, align 8, !alias.scope !53, !noalias !47 - %.sroa.2.0..sroa_idx.i16.i126 = getelementptr inbounds i8, ptr %5, i64 56 - store ptr %155, ptr %.sroa.2.0..sroa_idx.i16.i126, align 8, !alias.scope !53, !noalias !47 + %.sroa.2.0..sroa_idx.i14.i126 = getelementptr inbounds i8, ptr %5, i64 56 + store ptr %155, ptr %.sroa.2.0..sroa_idx.i14.i126, align 8, !alias.scope !53, !noalias !47 %157 = getelementptr inbounds i8, ptr %5, i64 64 store ptr null, ptr %157, align 8, !alias.scope !53, !noalias !47 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr nonnull %5, i64 3) @@ -5546,7 +5546,7 @@ declare noundef nonnull align 8 dereferenceable(32) ptr @_ZN7cmCTest13GetConfigT ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA3_S0_EES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(38) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(3) %3) local_unnamed_addr #3 comdat { -_ZZ8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA3_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit20: +_ZZ8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA3_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit18: %4 = alloca [3 x %"struct.std::pair.252"], align 8 %5 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #23 store i64 %5, ptr %4, align 8, !alias.scope !90 @@ -5559,15 +5559,15 @@ _ZZ8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA3_S %9 = extractvalue { i64, ptr } %8, 0 %10 = extractvalue { i64, ptr } %8, 1 store i64 %9, ptr %7, align 8, !alias.scope !93 - %.sroa.2.0..sroa_idx.i7 = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %10, ptr %.sroa.2.0..sroa_idx.i7, align 8, !alias.scope !93 + %.sroa.2.0..sroa_idx.i6 = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %10, ptr %.sroa.2.0..sroa_idx.i6, align 8, !alias.scope !93 %11 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %11, align 8, !alias.scope !93 %12 = getelementptr inbounds i8, ptr %4, i64 48 %13 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #23 store i64 %13, ptr %12, align 8, !alias.scope !96 - %.sroa.2.0..sroa_idx.i16 = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %3, ptr %.sroa.2.0..sroa_idx.i16, align 8, !alias.scope !96 + %.sroa.2.0..sroa_idx.i14 = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %3, ptr %.sroa.2.0..sroa_idx.i14, align 8, !alias.scope !96 %14 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %14, align 8, !alias.scope !96 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %4, i64 3) diff --git a/bench/cmake/optimized/cmCTestSubmitHandler.cxx.ll b/bench/cmake/optimized/cmCTestSubmitHandler.cxx.ll index b4dfa295ee9..f938afb58f7 100644 --- a/bench/cmake/optimized/cmCTestSubmitHandler.cxx.ll +++ b/bench/cmake/optimized/cmCTestSubmitHandler.cxx.ll @@ -849,10 +849,10 @@ _ZN6cmListC2ESt16initializer_listINSt7__cxx1112basic_stringIcSt11char_traitsIcES %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %9, i64 8 %150 = getelementptr inbounds i8, ptr %9, i64 16 %151 = getelementptr inbounds i8, ptr %9, i64 24 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %9, i64 32 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %9, i64 32 %152 = getelementptr inbounds i8, ptr %9, i64 40 %153 = getelementptr inbounds i8, ptr %9, i64 48 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %9, i64 56 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %9, i64 56 %154 = getelementptr inbounds i8, ptr %9, i64 64 %155 = getelementptr inbounds i8, ptr %0, i64 360 %.sroa.2.0..sroa_idx.i.i245 = getelementptr inbounds i8, ptr %7, i64 8 @@ -861,13 +861,13 @@ _ZN6cmListC2ESt16initializer_listINSt7__cxx1112basic_stringIcSt11char_traitsIcES %158 = getelementptr inbounds i8, ptr %8, i64 8 %159 = getelementptr inbounds i8, ptr %8, i64 24 %160 = getelementptr inbounds i8, ptr %8, i64 16 - %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %7, i64 32 + %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %7, i64 32 %161 = getelementptr inbounds i8, ptr %7, i64 40 %162 = getelementptr inbounds i8, ptr %7, i64 48 - %.sroa.2.0..sroa_idx.i17.i = getelementptr inbounds i8, ptr %7, i64 56 + %.sroa.2.0..sroa_idx.i15.i = getelementptr inbounds i8, ptr %7, i64 56 %163 = getelementptr inbounds i8, ptr %7, i64 64 %164 = getelementptr inbounds i8, ptr %7, i64 72 - %.sroa.2.0..sroa_idx.i26.i = getelementptr inbounds i8, ptr %7, i64 80 + %.sroa.2.0..sroa_idx.i23.i = getelementptr inbounds i8, ptr %7, i64 80 %165 = getelementptr inbounds i8, ptr %7, i64 88 %166 = getelementptr inbounds i8, ptr %54, i64 8 %167 = getelementptr inbounds i8, ptr %55, i64 8 @@ -1086,13 +1086,13 @@ _ZN6cmListC2ESt16initializer_listINSt7__cxx1112basic_stringIcSt11char_traitsIcES store ptr %255, ptr %.sroa.2.0..sroa_idx.i.i, align 8, !alias.scope !10, !noalias !7 store ptr null, ptr %150, align 8, !alias.scope !10, !noalias !7 store i64 1, ptr %151, align 8, !alias.scope !13, !noalias !7 - store ptr @.str.11, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !13, !noalias !7 + store ptr @.str.11, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !13, !noalias !7 store ptr null, ptr %152, align 8, !alias.scope !13, !noalias !7 %256 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0339.0568) #21, !noalias !7 %257 = extractvalue { i64, ptr } %256, 0 %258 = extractvalue { i64, ptr } %256, 1 store i64 %257, ptr %153, align 8, !alias.scope !16, !noalias !7 - store ptr %258, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !16, !noalias !7 + store ptr %258, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !16, !noalias !7 store ptr null, ptr %154, align 8, !alias.scope !16, !noalias !7 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %25, ptr nonnull %9, i64 3) to label %259 unwind label %261 @@ -1160,16 +1160,16 @@ _ZN6cmListC2ESt16initializer_listINSt7__cxx1112basic_stringIcSt11char_traitsIcES store ptr %159, ptr %160, align 8, !noalias !19 store i8 %281, ptr %159, align 8, !noalias !19 store i64 1, ptr %157, align 8, !alias.scope !25, !noalias !19 - store ptr %159, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !25, !noalias !19 + store ptr %159, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !25, !noalias !19 store ptr null, ptr %161, align 8, !alias.scope !25, !noalias !19 store i64 9, ptr %162, align 8, !alias.scope !28, !noalias !19 - store ptr @.str.14, ptr %.sroa.2.0..sroa_idx.i17.i, align 8, !alias.scope !28, !noalias !19 + store ptr @.str.14, ptr %.sroa.2.0..sroa_idx.i15.i, align 8, !alias.scope !28, !noalias !19 store ptr null, ptr %163, align 8, !alias.scope !28, !noalias !19 %285 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %28) #21, !noalias !19 %286 = extractvalue { i64, ptr } %285, 0 %287 = extractvalue { i64, ptr } %285, 1 store i64 %286, ptr %164, align 8, !alias.scope !31, !noalias !19 - store ptr %287, ptr %.sroa.2.0..sroa_idx.i26.i, align 8, !alias.scope !31, !noalias !19 + store ptr %287, ptr %.sroa.2.0..sroa_idx.i23.i, align 8, !alias.scope !31, !noalias !19 store ptr null, ptr %165, align 8, !alias.scope !31, !noalias !19 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %29, ptr nonnull %7, i64 4) to label %288 unwind label %349 diff --git a/bench/cmake/optimized/cmCacheManager.cxx.ll b/bench/cmake/optimized/cmCacheManager.cxx.ll index f3c46068c03..5c1244d8ee0 100644 --- a/bench/cmake/optimized/cmCacheManager.cxx.ll +++ b/bench/cmake/optimized/cmCacheManager.cxx.ll @@ -213,8 +213,8 @@ define dso_local void @_ZN14cmCacheManager15CleanCMakeFilesERKNSt7__cxx1112basic store ptr null, ptr %10, align 8, !alias.scope !8, !noalias !5 %11 = getelementptr inbounds i8, ptr %3, i64 24 store i64 19, ptr %11, align 8, !alias.scope !11, !noalias !5 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %3, i64 32 - store ptr @.str, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !11, !noalias !5 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %3, i64 32 + store ptr @.str, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !11, !noalias !5 %12 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %12, align 8, !alias.scope !11, !noalias !5 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr nonnull %3, i64 2) @@ -514,8 +514,8 @@ define dso_local noundef zeroext i1 @_ZN14cmCacheManager9LoadCacheERKNSt7__cxx11 store ptr null, ptr %53, align 8, !alias.scope !21, !noalias !18 %54 = getelementptr inbounds i8, ptr %7, i64 24 store i64 15, ptr %54, align 8, !alias.scope !24, !noalias !18 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %7, i64 32 - store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !24, !noalias !18 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %7, i64 32 + store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !24, !noalias !18 %55 = getelementptr inbounds i8, ptr %7, i64 40 store ptr null, ptr %55, align 8, !alias.scope !24, !noalias !18 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr nonnull %7, i64 2) @@ -600,16 +600,16 @@ _ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN14cmCacheManager1 %.sroa.2.0..sroa_idx.i.i139 = getelementptr inbounds i8, ptr %6, i64 8 %95 = getelementptr inbounds i8, ptr %6, i64 16 %96 = getelementptr inbounds i8, ptr %6, i64 24 - %.sroa.2.0..sroa_idx.i9.i = getelementptr inbounds i8, ptr %6, i64 32 + %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %6, i64 32 %97 = getelementptr inbounds i8, ptr %6, i64 40 %98 = getelementptr inbounds i8, ptr %6, i64 48 - %.sroa.2.0..sroa_idx.i18.i = getelementptr inbounds i8, ptr %6, i64 56 + %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %6, i64 56 %99 = getelementptr inbounds i8, ptr %6, i64 64 %100 = getelementptr inbounds i8, ptr %6, i64 72 - %.sroa.2.0..sroa_idx.i27.i = getelementptr inbounds i8, ptr %6, i64 80 + %.sroa.2.0..sroa_idx.i24.i = getelementptr inbounds i8, ptr %6, i64 80 %101 = getelementptr inbounds i8, ptr %6, i64 88 %102 = getelementptr inbounds i8, ptr %6, i64 96 - %.sroa.2.0..sroa_idx.i36.i = getelementptr inbounds i8, ptr %6, i64 104 + %.sroa.2.0..sroa_idx.i32.i = getelementptr inbounds i8, ptr %6, i64 104 %103 = getelementptr inbounds i8, ptr %6, i64 112 %104 = getelementptr inbounds i8, ptr %13, i64 96 br label %105 @@ -930,19 +930,19 @@ _ZNSt3setINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIS5_ESaIS5_ %206 = extractvalue { i64, ptr } %205, 0 %207 = extractvalue { i64, ptr } %205, 1 store i64 %206, ptr %96, align 8, !alias.scope !36, !noalias !33 - store ptr %207, ptr %.sroa.2.0..sroa_idx.i9.i, align 8, !alias.scope !36, !noalias !33 + store ptr %207, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !36, !noalias !33 store ptr null, ptr %97, align 8, !alias.scope !36, !noalias !33 store i64 66, ptr %98, align 8, !alias.scope !39, !noalias !33 - store ptr @.str.5, ptr %.sroa.2.0..sroa_idx.i18.i, align 8, !alias.scope !39, !noalias !33 + store ptr @.str.5, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !39, !noalias !33 store ptr null, ptr %99, align 8, !alias.scope !39, !noalias !33 %208 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #19, !noalias !33 %209 = extractvalue { i64, ptr } %208, 0 %210 = extractvalue { i64, ptr } %208, 1 store i64 %209, ptr %100, align 8, !alias.scope !42, !noalias !33 - store ptr %210, ptr %.sroa.2.0..sroa_idx.i27.i, align 8, !alias.scope !42, !noalias !33 + store ptr %210, ptr %.sroa.2.0..sroa_idx.i24.i, align 8, !alias.scope !42, !noalias !33 store ptr null, ptr %101, align 8, !alias.scope !42, !noalias !33 store i64 15, ptr %102, align 8, !alias.scope !45, !noalias !33 - store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i36.i, align 8, !alias.scope !45, !noalias !33 + store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i32.i, align 8, !alias.scope !45, !noalias !33 store ptr null, ptr %103, align 8, !alias.scope !45, !noalias !33 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr nonnull %6, i64 5) to label %211 unwind label %.loopexit.split-lp @@ -2622,10 +2622,10 @@ define dso_local void @_ZNK14cmCacheManager20WritePropertyEntriesERSoRKNSt7__cxx %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %9, i64 8 %16 = getelementptr inbounds i8, ptr %9, i64 16 %17 = getelementptr inbounds i8, ptr %9, i64 24 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %9, i64 32 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %9, i64 32 %18 = getelementptr inbounds i8, ptr %9, i64 40 %19 = getelementptr inbounds i8, ptr %9, i64 48 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %9, i64 56 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %9, i64 56 %20 = getelementptr inbounds i8, ptr %9, i64 64 %.sroa.2.0..sroa_idx.i.i26 = getelementptr inbounds i8, ptr %7, i64 8 %21 = getelementptr inbounds i8, ptr %7, i64 16 @@ -2633,10 +2633,10 @@ define dso_local void @_ZNK14cmCacheManager20WritePropertyEntriesERSoRKNSt7__cxx %23 = getelementptr inbounds i8, ptr %8, i64 8 %24 = getelementptr inbounds i8, ptr %8, i64 24 %25 = getelementptr inbounds i8, ptr %8, i64 16 - %.sroa.2.0..sroa_idx.i7.i27 = getelementptr inbounds i8, ptr %7, i64 32 + %.sroa.2.0..sroa_idx.i6.i27 = getelementptr inbounds i8, ptr %7, i64 32 %26 = getelementptr inbounds i8, ptr %7, i64 40 %27 = getelementptr inbounds i8, ptr %7, i64 48 - %.sroa.2.0..sroa_idx.i16.i28 = getelementptr inbounds i8, ptr %7, i64 56 + %.sroa.2.0..sroa_idx.i14.i28 = getelementptr inbounds i8, ptr %7, i64 56 %28 = getelementptr inbounds i8, ptr %7, i64 64 br label %29 @@ -2717,13 +2717,13 @@ _ZNK14cmCacheManager10CacheEntry11GetPropertyERKNSt7__cxx1112basic_stringIcSt11c store ptr %30, ptr %.sroa.2.0..sroa_idx.i.i, align 8, !alias.scope !54, !noalias !51 store ptr null, ptr %16, align 8, !alias.scope !54, !noalias !51 store i64 24, ptr %17, align 8, !alias.scope !57, !noalias !51 - store ptr @.str.23, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !57, !noalias !51 + store ptr @.str.23, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !57, !noalias !51 store ptr null, ptr %18, align 8, !alias.scope !57, !noalias !51 %51 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #19, !noalias !51 %52 = extractvalue { i64, ptr } %51, 0 %53 = extractvalue { i64, ptr } %51, 1 store i64 %52, ptr %19, align 8, !alias.scope !60, !noalias !51 - store ptr %53, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !60, !noalias !51 + store ptr %53, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !60, !noalias !51 store ptr null, ptr %20, align 8, !alias.scope !60, !noalias !51 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr nonnull %9, i64 3) call void @llvm.lifetime.end.p0(i64 72, ptr nonnull %9) @@ -2744,11 +2744,11 @@ _ZNK14cmCacheManager10CacheEntry11GetPropertyERKNSt7__cxx1112basic_stringIcSt11c store ptr %24, ptr %25, align 8, !noalias !63 store i8 45, ptr %24, align 8, !noalias !63 store i64 1, ptr %22, align 8, !alias.scope !69, !noalias !63 - store ptr %24, ptr %.sroa.2.0..sroa_idx.i7.i27, align 8, !alias.scope !69, !noalias !63 + store ptr %24, ptr %.sroa.2.0..sroa_idx.i6.i27, align 8, !alias.scope !69, !noalias !63 store ptr null, ptr %26, align 8, !alias.scope !69, !noalias !63 %58 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %30) #19, !noalias !63 store i64 %58, ptr %27, align 8, !alias.scope !72, !noalias !63 - store ptr %30, ptr %.sroa.2.0..sroa_idx.i16.i28, align 8, !alias.scope !72, !noalias !63 + store ptr %30, ptr %.sroa.2.0..sroa_idx.i14.i28, align 8, !alias.scope !72, !noalias !63 store ptr null, ptr %28, align 8, !alias.scope !72, !noalias !63 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %13, ptr nonnull %7, i64 3) to label %59 unwind label %77 @@ -3059,14 +3059,14 @@ define dso_local void @_ZN14cmCacheManager30OutputNewlineTruncationWarningERSoRK %16 = extractvalue { i64, ptr } %15, 0 %17 = extractvalue { i64, ptr } %15, 1 store i64 %16, ptr %14, align 8, !alias.scope !82, !noalias !79 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %6, i64 32 - store ptr %17, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !82, !noalias !79 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %6, i64 32 + store ptr %17, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !82, !noalias !79 %18 = getelementptr inbounds i8, ptr %6, i64 40 store ptr null, ptr %18, align 8, !alias.scope !82, !noalias !79 %19 = getelementptr inbounds i8, ptr %6, i64 48 store i64 32, ptr %19, align 8, !alias.scope !85, !noalias !79 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %6, i64 56 - store ptr @.str.43, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !85, !noalias !79 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %6, i64 56 + store ptr @.str.43, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !85, !noalias !79 %20 = getelementptr inbounds i8, ptr %6, i64 64 store ptr null, ptr %20, align 8, !alias.scope !85, !noalias !79 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr nonnull %6, i64 3) @@ -3180,14 +3180,14 @@ _ZN19cmListFileBacktraceD2Ev.exit: ; preds = %21, %40, %53, %_ZNS %66 = extractvalue { i64, ptr } %65, 0 %67 = extractvalue { i64, ptr } %65, 1 store i64 %66, ptr %64, align 8, !alias.scope !94, !noalias !91 - %.sroa.2.0..sroa_idx.i7.i17 = getelementptr inbounds i8, ptr %5, i64 32 - store ptr %67, ptr %.sroa.2.0..sroa_idx.i7.i17, align 8, !alias.scope !94, !noalias !91 + %.sroa.2.0..sroa_idx.i6.i17 = getelementptr inbounds i8, ptr %5, i64 32 + store ptr %67, ptr %.sroa.2.0..sroa_idx.i6.i17, align 8, !alias.scope !94, !noalias !91 %68 = getelementptr inbounds i8, ptr %5, i64 40 store ptr null, ptr %68, align 8, !alias.scope !94, !noalias !91 %69 = getelementptr inbounds i8, ptr %5, i64 48 store i64 55, ptr %69, align 8, !alias.scope !97, !noalias !91 - %.sroa.2.0..sroa_idx.i16.i18 = getelementptr inbounds i8, ptr %5, i64 56 - store ptr @.str.45, ptr %.sroa.2.0..sroa_idx.i16.i18, align 8, !alias.scope !97, !noalias !91 + %.sroa.2.0..sroa_idx.i14.i18 = getelementptr inbounds i8, ptr %5, i64 56 + store ptr @.str.45, ptr %.sroa.2.0..sroa_idx.i14.i18, align 8, !alias.scope !97, !noalias !91 %70 = getelementptr inbounds i8, ptr %5, i64 64 store ptr null, ptr %70, align 8, !alias.scope !97, !noalias !91 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %9, ptr nonnull %5, i64 3) @@ -3267,8 +3267,8 @@ define dso_local noundef zeroext i1 @_ZN14cmCacheManager9SaveCacheERKNSt7__cxx11 store ptr null, ptr %43, align 8, !alias.scope !103, !noalias !100 %44 = getelementptr inbounds i8, ptr %7, i64 24 store i64 15, ptr %44, align 8, !alias.scope !106, !noalias !100 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %7, i64 32 - store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !106, !noalias !100 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %7, i64 32 + store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !106, !noalias !100 %45 = getelementptr inbounds i8, ptr %7, i64 40 store ptr null, ptr %45, align 8, !alias.scope !106, !noalias !100 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr nonnull %7, i64 2) @@ -4120,8 +4120,8 @@ _ZNK14cmCacheManager10CacheEntry11GetPropertyERKNSt7__cxx1112basic_stringIcSt11c store ptr null, ptr %287, align 8, !alias.scope !112, !noalias !109 %288 = getelementptr inbounds i8, ptr %4, i64 24 store i64 11, ptr %288, align 8, !alias.scope !115, !noalias !109 - %.sroa.2.0..sroa_idx.i6.i162 = getelementptr inbounds i8, ptr %4, i64 32 - store ptr @.str.34, ptr %.sroa.2.0..sroa_idx.i6.i162, align 8, !alias.scope !115, !noalias !109 + %.sroa.2.0..sroa_idx.i5.i162 = getelementptr inbounds i8, ptr %4, i64 32 + store ptr @.str.34, ptr %.sroa.2.0..sroa_idx.i5.i162, align 8, !alias.scope !115, !noalias !109 %289 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %289, align 8, !alias.scope !115, !noalias !109 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr nonnull %4, i64 2) diff --git a/bench/cmake/optimized/cmConfigureFileCommand.cxx.ll b/bench/cmake/optimized/cmConfigureFileCommand.cxx.ll index e72e16dd75a..63d5421bae6 100644 --- a/bench/cmake/optimized/cmConfigureFileCommand.cxx.ll +++ b/bench/cmake/optimized/cmConfigureFileCommand.cxx.ll @@ -232,14 +232,14 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %67 = extractvalue { i64, ptr } %66, 0 %68 = extractvalue { i64, ptr } %66, 1 store i64 %67, ptr %65, align 8, !alias.scope !11, !noalias !8 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %3, i64 32 - store ptr %68, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !11, !noalias !8 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %3, i64 32 + store ptr %68, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !11, !noalias !8 %69 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %69, align 8, !alias.scope !11, !noalias !8 %70 = getelementptr inbounds i8, ptr %3, i64 48 store i64 40, ptr %70, align 8, !alias.scope !14, !noalias !8 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %3, i64 56 - store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !14, !noalias !8 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %3, i64 56 + store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !14, !noalias !8 %71 = getelementptr inbounds i8, ptr %3, i64 64 store ptr null, ptr %71, align 8, !alias.scope !14, !noalias !8 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %7, ptr nonnull %3, i64 3) @@ -1407,7 +1407,7 @@ declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIc ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRA49_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJEES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(49) %1, ptr noundef nonnull align 8 dereferenceable(32) %2) local_unnamed_addr #3 comdat { -_ZZ8cmStrCatIRA49_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJEES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESJ_.exit10: +_ZZ8cmStrCatIRA49_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJEES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESJ_.exit9: %3 = alloca [2 x %"struct.std::pair"], align 8 %4 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #17 store i64 %4, ptr %3, align 8, !alias.scope !23 @@ -1420,8 +1420,8 @@ _ZZ8cmStrCatIRA49_KcRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJEES8_O %8 = extractvalue { i64, ptr } %7, 0 %9 = extractvalue { i64, ptr } %7, 1 store i64 %8, ptr %6, align 8, !alias.scope !26 - %.sroa.2.0..sroa_idx.i6 = getelementptr inbounds i8, ptr %3, i64 32 - store ptr %9, ptr %.sroa.2.0..sroa_idx.i6, align 8, !alias.scope !26 + %.sroa.2.0..sroa_idx.i5 = getelementptr inbounds i8, ptr %3, i64 32 + store ptr %9, ptr %.sroa.2.0..sroa_idx.i5, align 8, !alias.scope !26 %10 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %10, align 8, !alias.scope !26 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %3, i64 2) diff --git a/bench/cmake/optimized/cmCreateTestSourceList.cxx.ll b/bench/cmake/optimized/cmCreateTestSourceList.cxx.ll index 02eb8c34ec3..70f4032bfd7 100644 --- a/bench/cmake/optimized/cmCreateTestSourceList.cxx.ll +++ b/bench/cmake/optimized/cmCreateTestSourceList.cxx.ll @@ -197,15 +197,15 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %.sroa.2.0..sroa_idx.i.i125 = getelementptr inbounds i8, ptr %10, i64 8 %86 = getelementptr inbounds i8, ptr %10, i64 16 %87 = getelementptr inbounds i8, ptr %10, i64 24 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %10, i64 32 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %10, i64 32 %88 = getelementptr inbounds i8, ptr %10, i64 40 %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %11, i64 8 %89 = getelementptr inbounds i8, ptr %11, i64 16 %90 = getelementptr inbounds i8, ptr %11, i64 24 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %11, i64 32 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %11, i64 32 %91 = getelementptr inbounds i8, ptr %11, i64 40 %92 = getelementptr inbounds i8, ptr %11, i64 48 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %11, i64 56 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %11, i64 56 %93 = getelementptr inbounds i8, ptr %11, i64 64 br label %94 @@ -285,10 +285,10 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %113 = extractvalue { i64, ptr } %112, 0 %114 = extractvalue { i64, ptr } %112, 1 store i64 %113, ptr %90, align 8, !alias.scope !11, !noalias !8 - store ptr %114, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !11, !noalias !8 + store ptr %114, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !11, !noalias !8 store ptr null, ptr %91, align 8, !alias.scope !11, !noalias !8 store i64 2, ptr %92, align 8, !alias.scope !14, !noalias !8 - store ptr @.str.4, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !14, !noalias !8 + store ptr @.str.4, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !14, !noalias !8 store ptr null, ptr %93, align 8, !alias.scope !14, !noalias !8 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr nonnull %11, i64 3) to label %115 unwind label %.loopexit266 @@ -364,7 +364,7 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES store ptr %137, ptr %.sroa.2.0..sroa_idx.i.i125, align 8, !alias.scope !20, !noalias !17 store ptr null, ptr %86, align 8, !alias.scope !20, !noalias !17 store i64 12, ptr %87, align 8, !alias.scope !23, !noalias !17 - store ptr @.str.7, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !23, !noalias !17 + store ptr @.str.7, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !23, !noalias !17 store ptr null, ptr %88, align 8, !alias.scope !23, !noalias !17 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %22, ptr nonnull %10, i64 2) to label %138 unwind label %.loopexit266 @@ -489,8 +489,8 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES store ptr %175, ptr %176, align 8, !noalias !28 store i8 47, ptr %175, align 8, !noalias !28 store i64 1, ptr %173, align 8, !alias.scope !34, !noalias !28 - %.sroa.2.0..sroa_idx.i7.i137 = getelementptr inbounds i8, ptr %8, i64 32 - store ptr %175, ptr %.sroa.2.0..sroa_idx.i7.i137, align 8, !alias.scope !34, !noalias !28 + %.sroa.2.0..sroa_idx.i6.i137 = getelementptr inbounds i8, ptr %8, i64 32 + store ptr %175, ptr %.sroa.2.0..sroa_idx.i6.i137, align 8, !alias.scope !34, !noalias !28 %177 = getelementptr inbounds i8, ptr %8, i64 40 store ptr null, ptr %177, align 8, !alias.scope !34, !noalias !28 %178 = getelementptr inbounds i8, ptr %8, i64 48 @@ -498,8 +498,8 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %180 = extractvalue { i64, ptr } %179, 0 %181 = extractvalue { i64, ptr } %179, 1 store i64 %180, ptr %178, align 8, !alias.scope !37, !noalias !28 - %.sroa.2.0..sroa_idx.i16.i138 = getelementptr inbounds i8, ptr %8, i64 56 - store ptr %181, ptr %.sroa.2.0..sroa_idx.i16.i138, align 8, !alias.scope !37, !noalias !28 + %.sroa.2.0..sroa_idx.i14.i138 = getelementptr inbounds i8, ptr %8, i64 56 + store ptr %181, ptr %.sroa.2.0..sroa_idx.i14.i138, align 8, !alias.scope !37, !noalias !28 %182 = getelementptr inbounds i8, ptr %8, i64 64 store ptr null, ptr %182, align 8, !alias.scope !37, !noalias !28 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr nonnull %8, i64 3) @@ -535,20 +535,20 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %194 = getelementptr inbounds i8, ptr %7, i64 8 %195 = getelementptr inbounds i8, ptr %7, i64 24 %196 = getelementptr inbounds i8, ptr %7, i64 16 - %.sroa.2.0..sroa_idx.i7.i141 = getelementptr inbounds i8, ptr %6, i64 32 + %.sroa.2.0..sroa_idx.i6.i141 = getelementptr inbounds i8, ptr %6, i64 32 %197 = getelementptr inbounds i8, ptr %6, i64 40 %198 = getelementptr inbounds i8, ptr %6, i64 48 - %.sroa.2.0..sroa_idx.i16.i142 = getelementptr inbounds i8, ptr %6, i64 56 + %.sroa.2.0..sroa_idx.i14.i142 = getelementptr inbounds i8, ptr %6, i64 56 %199 = getelementptr inbounds i8, ptr %6, i64 64 %200 = getelementptr inbounds i8, ptr %28, i64 8 %201 = getelementptr inbounds i8, ptr %28, i64 16 %.sroa.2.0..sroa_idx.i.i149 = getelementptr inbounds i8, ptr %5, i64 8 %202 = getelementptr inbounds i8, ptr %5, i64 16 %203 = getelementptr inbounds i8, ptr %5, i64 24 - %.sroa.2.0..sroa_idx.i7.i150 = getelementptr inbounds i8, ptr %5, i64 32 + %.sroa.2.0..sroa_idx.i6.i150 = getelementptr inbounds i8, ptr %5, i64 32 %204 = getelementptr inbounds i8, ptr %5, i64 40 %205 = getelementptr inbounds i8, ptr %5, i64 48 - %.sroa.2.0..sroa_idx.i16.i151 = getelementptr inbounds i8, ptr %5, i64 56 + %.sroa.2.0..sroa_idx.i14.i151 = getelementptr inbounds i8, ptr %5, i64 56 %206 = getelementptr inbounds i8, ptr %5, i64 64 br label %207 @@ -601,14 +601,14 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES store ptr %195, ptr %196, align 8, !noalias !46 store i8 47, ptr %195, align 8, !noalias !46 store i64 1, ptr %193, align 8, !alias.scope !47, !noalias !46 - store ptr %195, ptr %.sroa.2.0..sroa_idx.i7.i141, align 8, !alias.scope !47, !noalias !46 + store ptr %195, ptr %.sroa.2.0..sroa_idx.i6.i141, align 8, !alias.scope !47, !noalias !46 store ptr null, ptr %197, align 8, !alias.scope !47, !noalias !46 call void @llvm.experimental.noalias.scope.decl(metadata !50) %223 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %34) #17, !noalias !53 %224 = extractvalue { i64, ptr } %223, 0 %225 = extractvalue { i64, ptr } %223, 1 store i64 %224, ptr %198, align 8, !alias.scope !50, !noalias !46 - store ptr %225, ptr %.sroa.2.0..sroa_idx.i16.i142, align 8, !alias.scope !50, !noalias !46 + store ptr %225, ptr %.sroa.2.0..sroa_idx.i14.i142, align 8, !alias.scope !50, !noalias !46 store ptr %34, ptr %199, align 8, !alias.scope !50, !noalias !46 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %32, ptr nonnull %6, i64 3) to label %226 unwind label %232 @@ -701,10 +701,10 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_b %253 = extractvalue { i64, ptr } %252, 0 %254 = extractvalue { i64, ptr } %252, 1 store i64 %253, ptr %203, align 8, !alias.scope !60, !noalias !57 - store ptr %254, ptr %.sroa.2.0..sroa_idx.i7.i150, align 8, !alias.scope !60, !noalias !57 + store ptr %254, ptr %.sroa.2.0..sroa_idx.i6.i150, align 8, !alias.scope !60, !noalias !57 store ptr null, ptr %204, align 8, !alias.scope !60, !noalias !57 store i64 16, ptr %205, align 8, !alias.scope !63, !noalias !57 - store ptr @.str.11, ptr %.sroa.2.0..sroa_idx.i16.i151, align 8, !alias.scope !63, !noalias !57 + store ptr @.str.11, ptr %.sroa.2.0..sroa_idx.i14.i151, align 8, !alias.scope !63, !noalias !57 store ptr null, ptr %206, align 8, !alias.scope !63, !noalias !57 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %37, ptr nonnull %5, i64 3) to label %255 unwind label %228 @@ -745,10 +745,10 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_b %267 = getelementptr inbounds i8, ptr %4, i64 8 %268 = getelementptr inbounds i8, ptr %4, i64 24 %269 = getelementptr inbounds i8, ptr %4, i64 16 - %.sroa.2.0..sroa_idx.i7.i154 = getelementptr inbounds i8, ptr %3, i64 32 + %.sroa.2.0..sroa_idx.i6.i154 = getelementptr inbounds i8, ptr %3, i64 32 %270 = getelementptr inbounds i8, ptr %3, i64 40 %271 = getelementptr inbounds i8, ptr %3, i64 48 - %.sroa.2.0..sroa_idx.i16.i155 = getelementptr inbounds i8, ptr %3, i64 56 + %.sroa.2.0..sroa_idx.i14.i155 = getelementptr inbounds i8, ptr %3, i64 56 %272 = getelementptr inbounds i8, ptr %3, i64 64 br label %273 @@ -787,14 +787,14 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_b store ptr %268, ptr %269, align 8, !noalias !73 store i8 47, ptr %268, align 8, !noalias !73 store i64 1, ptr %266, align 8, !alias.scope !74, !noalias !73 - store ptr %268, ptr %.sroa.2.0..sroa_idx.i7.i154, align 8, !alias.scope !74, !noalias !73 + store ptr %268, ptr %.sroa.2.0..sroa_idx.i6.i154, align 8, !alias.scope !74, !noalias !73 store ptr null, ptr %270, align 8, !alias.scope !74, !noalias !73 call void @llvm.experimental.noalias.scope.decl(metadata !77) %282 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %43) #17, !noalias !80 %283 = extractvalue { i64, ptr } %282, 0 %284 = extractvalue { i64, ptr } %282, 1 store i64 %283, ptr %271, align 8, !alias.scope !77, !noalias !73 - store ptr %284, ptr %.sroa.2.0..sroa_idx.i16.i155, align 8, !alias.scope !77, !noalias !73 + store ptr %284, ptr %.sroa.2.0..sroa_idx.i14.i155, align 8, !alias.scope !77, !noalias !73 store ptr %43, ptr %272, align 8, !alias.scope !77, !noalias !73 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %41, ptr nonnull %3, i64 3) to label %285 unwind label %291 diff --git a/bench/cmake/optimized/cmCxxModuleMapper.cxx.ll b/bench/cmake/optimized/cmCxxModuleMapper.cxx.ll index 78192def1ba..b9da4867bbe 100644 --- a/bench/cmake/optimized/cmCxxModuleMapper.cxx.ll +++ b/bench/cmake/optimized/cmCxxModuleMapper.cxx.ll @@ -556,7 +556,7 @@ declare void @_ZN13cmSystemTools5ErrorERKNSt7__cxx1112basic_stringIcSt11char_tra ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA24_S0_RS8_RA7_S0_N2cm18static_string_viewERA16_S0_SA_SF_SH_RA2_S0_EES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(38) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 1 dereferenceable(7) %5, ptr noundef nonnull align 8 dereferenceable(16) %6, ptr noundef nonnull align 1 dereferenceable(16) %7, ptr noundef nonnull align 8 dereferenceable(32) %8, ptr noundef nonnull align 1 dereferenceable(7) %9, ptr noundef nonnull align 8 dereferenceable(16) %10, ptr noundef nonnull align 1 dereferenceable(2) %11) local_unnamed_addr #6 comdat personality ptr @__gxx_personality_v0 { -_ZZ8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA24_S0_RS8_RA7_S0_N2cm18static_string_viewERA16_S0_SA_SF_SH_RA2_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESV_.exit106: +_ZZ8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA24_S0_RS8_RA7_S0_N2cm18static_string_viewERA16_S0_SA_SF_SH_RA2_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESV_.exit96: %12 = alloca [11 x %"struct.std::pair.69"], align 8 %13 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #21 store i64 %13, ptr %12, align 8, !alias.scope !17 @@ -569,15 +569,15 @@ _ZZ8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA24_ %17 = extractvalue { i64, ptr } %16, 0 %18 = extractvalue { i64, ptr } %16, 1 store i64 %17, ptr %15, align 8, !alias.scope !20 - %.sroa.2.0..sroa_idx.i19 = getelementptr inbounds i8, ptr %12, i64 32 - store ptr %18, ptr %.sroa.2.0..sroa_idx.i19, align 8, !alias.scope !20 + %.sroa.2.0..sroa_idx.i18 = getelementptr inbounds i8, ptr %12, i64 32 + store ptr %18, ptr %.sroa.2.0..sroa_idx.i18, align 8, !alias.scope !20 %19 = getelementptr inbounds i8, ptr %12, i64 40 store ptr null, ptr %19, align 8, !alias.scope !20 %20 = getelementptr inbounds i8, ptr %12, i64 48 %21 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #21 store i64 %21, ptr %20, align 8, !alias.scope !23 - %.sroa.2.0..sroa_idx.i28 = getelementptr inbounds i8, ptr %12, i64 56 - store ptr %3, ptr %.sroa.2.0..sroa_idx.i28, align 8, !alias.scope !23 + %.sroa.2.0..sroa_idx.i26 = getelementptr inbounds i8, ptr %12, i64 56 + store ptr %3, ptr %.sroa.2.0..sroa_idx.i26, align 8, !alias.scope !23 %22 = getelementptr inbounds i8, ptr %12, i64 64 store ptr null, ptr %22, align 8, !alias.scope !23 %23 = getelementptr inbounds i8, ptr %12, i64 72 @@ -585,15 +585,15 @@ _ZZ8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA24_ %25 = extractvalue { i64, ptr } %24, 0 %26 = extractvalue { i64, ptr } %24, 1 store i64 %25, ptr %23, align 8, !alias.scope !26 - %.sroa.2.0..sroa_idx.i37 = getelementptr inbounds i8, ptr %12, i64 80 - store ptr %26, ptr %.sroa.2.0..sroa_idx.i37, align 8, !alias.scope !26 + %.sroa.2.0..sroa_idx.i34 = getelementptr inbounds i8, ptr %12, i64 80 + store ptr %26, ptr %.sroa.2.0..sroa_idx.i34, align 8, !alias.scope !26 %27 = getelementptr inbounds i8, ptr %12, i64 88 store ptr null, ptr %27, align 8, !alias.scope !26 %28 = getelementptr inbounds i8, ptr %12, i64 96 %29 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #21 store i64 %29, ptr %28, align 8, !alias.scope !29 - %.sroa.2.0..sroa_idx.i46 = getelementptr inbounds i8, ptr %12, i64 104 - store ptr %5, ptr %.sroa.2.0..sroa_idx.i46, align 8, !alias.scope !29 + %.sroa.2.0..sroa_idx.i42 = getelementptr inbounds i8, ptr %12, i64 104 + store ptr %5, ptr %.sroa.2.0..sroa_idx.i42, align 8, !alias.scope !29 %30 = getelementptr inbounds i8, ptr %12, i64 112 store ptr null, ptr %30, align 8, !alias.scope !29 %31 = getelementptr inbounds i8, ptr %12, i64 120 @@ -601,15 +601,15 @@ _ZZ8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA24_ %.sroa.22.0..sroa_idx = getelementptr inbounds i8, ptr %6, i64 8 %.sroa.22.0.copyload = load ptr, ptr %.sroa.22.0..sroa_idx, align 8 store i64 %.sroa.01.0.copyload, ptr %31, align 8, !alias.scope !32 - %.sroa.2.0..sroa_idx.i56 = getelementptr inbounds i8, ptr %12, i64 128 - store ptr %.sroa.22.0.copyload, ptr %.sroa.2.0..sroa_idx.i56, align 8, !alias.scope !32 + %.sroa.2.0..sroa_idx.i51 = getelementptr inbounds i8, ptr %12, i64 128 + store ptr %.sroa.22.0.copyload, ptr %.sroa.2.0..sroa_idx.i51, align 8, !alias.scope !32 %32 = getelementptr inbounds i8, ptr %12, i64 136 store ptr null, ptr %32, align 8, !alias.scope !32 %33 = getelementptr inbounds i8, ptr %12, i64 144 %34 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #21 store i64 %34, ptr %33, align 8, !alias.scope !35 - %.sroa.2.0..sroa_idx.i65 = getelementptr inbounds i8, ptr %12, i64 152 - store ptr %7, ptr %.sroa.2.0..sroa_idx.i65, align 8, !alias.scope !35 + %.sroa.2.0..sroa_idx.i59 = getelementptr inbounds i8, ptr %12, i64 152 + store ptr %7, ptr %.sroa.2.0..sroa_idx.i59, align 8, !alias.scope !35 %35 = getelementptr inbounds i8, ptr %12, i64 160 store ptr null, ptr %35, align 8, !alias.scope !35 %36 = getelementptr inbounds i8, ptr %12, i64 168 @@ -617,15 +617,15 @@ _ZZ8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA24_ %38 = extractvalue { i64, ptr } %37, 0 %39 = extractvalue { i64, ptr } %37, 1 store i64 %38, ptr %36, align 8, !alias.scope !38 - %.sroa.2.0..sroa_idx.i74 = getelementptr inbounds i8, ptr %12, i64 176 - store ptr %39, ptr %.sroa.2.0..sroa_idx.i74, align 8, !alias.scope !38 + %.sroa.2.0..sroa_idx.i67 = getelementptr inbounds i8, ptr %12, i64 176 + store ptr %39, ptr %.sroa.2.0..sroa_idx.i67, align 8, !alias.scope !38 %40 = getelementptr inbounds i8, ptr %12, i64 184 store ptr null, ptr %40, align 8, !alias.scope !38 %41 = getelementptr inbounds i8, ptr %12, i64 192 %42 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #21 store i64 %42, ptr %41, align 8, !alias.scope !41 - %.sroa.2.0..sroa_idx.i83 = getelementptr inbounds i8, ptr %12, i64 200 - store ptr %9, ptr %.sroa.2.0..sroa_idx.i83, align 8, !alias.scope !41 + %.sroa.2.0..sroa_idx.i75 = getelementptr inbounds i8, ptr %12, i64 200 + store ptr %9, ptr %.sroa.2.0..sroa_idx.i75, align 8, !alias.scope !41 %43 = getelementptr inbounds i8, ptr %12, i64 208 store ptr null, ptr %43, align 8, !alias.scope !41 %44 = getelementptr inbounds i8, ptr %12, i64 216 @@ -633,15 +633,15 @@ _ZZ8cmStrCatIRA38_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA24_ %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %10, i64 8 %.sroa.2.0.copyload = load ptr, ptr %.sroa.2.0..sroa_idx, align 8 store i64 %.sroa.0.0.copyload, ptr %44, align 8, !alias.scope !44 - %.sroa.2.0..sroa_idx.i93 = getelementptr inbounds i8, ptr %12, i64 224 - store ptr %.sroa.2.0.copyload, ptr %.sroa.2.0..sroa_idx.i93, align 8, !alias.scope !44 + %.sroa.2.0..sroa_idx.i84 = getelementptr inbounds i8, ptr %12, i64 224 + store ptr %.sroa.2.0.copyload, ptr %.sroa.2.0..sroa_idx.i84, align 8, !alias.scope !44 %45 = getelementptr inbounds i8, ptr %12, i64 232 store ptr null, ptr %45, align 8, !alias.scope !44 %46 = getelementptr inbounds i8, ptr %12, i64 240 %47 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %11) #21 store i64 %47, ptr %46, align 8, !alias.scope !47 - %.sroa.2.0..sroa_idx.i102 = getelementptr inbounds i8, ptr %12, i64 248 - store ptr %11, ptr %.sroa.2.0..sroa_idx.i102, align 8, !alias.scope !47 + %.sroa.2.0..sroa_idx.i92 = getelementptr inbounds i8, ptr %12, i64 248 + store ptr %11, ptr %.sroa.2.0..sroa_idx.i92, align 8, !alias.scope !47 %48 = getelementptr inbounds i8, ptr %12, i64 256 store ptr null, ptr %48, align 8, !alias.scope !47 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %12, i64 11) @@ -790,10 +790,10 @@ define dso_local void @_Z18CxxModuleUsageSeedB5cxx11RK18CxxModuleLocationsRKSt6v %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %12, i64 8 %34 = getelementptr inbounds i8, ptr %12, i64 16 %35 = getelementptr inbounds i8, ptr %12, i64 24 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %12, i64 32 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %12, i64 32 %36 = getelementptr inbounds i8, ptr %12, i64 40 %37 = getelementptr inbounds i8, ptr %12, i64 48 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %12, i64 56 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %12, i64 56 %38 = getelementptr inbounds i8, ptr %12, i64 64 br label %39 @@ -907,10 +907,10 @@ _ZNK14CxxBmiLocation9IsPrivateEv.exit: ; preds = %62 %68 = extractvalue { i64, ptr } %67, 0 %69 = extractvalue { i64, ptr } %67, 1 store i64 %68, ptr %35, align 8, !alias.scope !56, !noalias !53 - store ptr %69, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !56, !noalias !53 + store ptr %69, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !56, !noalias !53 store ptr null, ptr %36, align 8, !alias.scope !56, !noalias !53 store i64 79, ptr %37, align 8, !alias.scope !59, !noalias !53 - store ptr @.str.10, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !59, !noalias !53 + store ptr @.str.10, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !59, !noalias !53 store ptr null, ptr %38, align 8, !alias.scope !59, !noalias !53 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr nonnull %12, i64 3) to label %70 unwind label %.loopexit.split-lp358.loopexit.split-lp diff --git a/bench/cmake/optimized/cmDependsC.cxx.ll b/bench/cmake/optimized/cmDependsC.cxx.ll index a7f8ec6cf1f..2513e224a75 100644 --- a/bench/cmake/optimized/cmDependsC.cxx.ll +++ b/bench/cmake/optimized/cmDependsC.cxx.ll @@ -587,14 +587,14 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit38: ; %82 = extractvalue { i64, ptr } %81, 0 %83 = extractvalue { i64, ptr } %81, 1 store i64 %82, ptr %80, align 8, !alias.scope !11, !noalias !8 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %11, i64 32 - store ptr %83, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !11, !noalias !8 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %11, i64 32 + store ptr %83, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !11, !noalias !8 %84 = getelementptr inbounds i8, ptr %11, i64 40 store ptr null, ptr %84, align 8, !alias.scope !11, !noalias !8 %85 = getelementptr inbounds i8, ptr %11, i64 48 store i64 19, ptr %85, align 8, !alias.scope !14, !noalias !8 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %11, i64 56 - store ptr @.str.4, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !14, !noalias !8 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %11, i64 56 + store ptr @.str.4, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !14, !noalias !8 %86 = getelementptr inbounds i8, ptr %11, i64 64 store ptr null, ptr %86, align 8, !alias.scope !14, !noalias !8 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %17, ptr nonnull %11, i64 3) @@ -671,14 +671,14 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit38: ; %110 = extractvalue { i64, ptr } %109, 0 %111 = extractvalue { i64, ptr } %109, 1 store i64 %110, ptr %108, align 8, !alias.scope !23, !noalias !20 - %.sroa.2.0..sroa_idx.i7.i41 = getelementptr inbounds i8, ptr %10, i64 32 - store ptr %111, ptr %.sroa.2.0..sroa_idx.i7.i41, align 8, !alias.scope !23, !noalias !20 + %.sroa.2.0..sroa_idx.i6.i41 = getelementptr inbounds i8, ptr %10, i64 32 + store ptr %111, ptr %.sroa.2.0..sroa_idx.i6.i41, align 8, !alias.scope !23, !noalias !20 %112 = getelementptr inbounds i8, ptr %10, i64 40 store ptr null, ptr %112, align 8, !alias.scope !23, !noalias !20 %113 = getelementptr inbounds i8, ptr %10, i64 48 store i64 23, ptr %113, align 8, !alias.scope !26, !noalias !20 - %.sroa.2.0..sroa_idx.i16.i42 = getelementptr inbounds i8, ptr %10, i64 56 - store ptr @.str.5, ptr %.sroa.2.0..sroa_idx.i16.i42, align 8, !alias.scope !26, !noalias !20 + %.sroa.2.0..sroa_idx.i14.i42 = getelementptr inbounds i8, ptr %10, i64 56 + store ptr @.str.5, ptr %.sroa.2.0..sroa_idx.i14.i42, align 8, !alias.scope !26, !noalias !20 %114 = getelementptr inbounds i8, ptr %10, i64 64 store ptr null, ptr %114, align 8, !alias.scope !26, !noalias !20 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr nonnull %10, i64 3) @@ -735,8 +735,8 @@ _ZN5cmsys17RegularExpression7compileERKNSt7__cxx1112basic_stringIcSt11char_trait %134 = extractvalue { i64, ptr } %133, 0 %135 = extractvalue { i64, ptr } %133, 1 store i64 %134, ptr %132, align 8, !alias.scope !35, !noalias !32 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %9, i64 32 - store ptr %135, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !35, !noalias !32 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %9, i64 32 + store ptr %135, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !35, !noalias !32 %136 = getelementptr inbounds i8, ptr %9, i64 40 store ptr null, ptr %136, align 8, !alias.scope !35, !noalias !32 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr nonnull %9, i64 2) @@ -757,8 +757,8 @@ _ZN5cmsys17RegularExpression7compileERKNSt7__cxx1112basic_stringIcSt11char_trait %142 = extractvalue { i64, ptr } %141, 0 %143 = extractvalue { i64, ptr } %141, 1 store i64 %142, ptr %140, align 8, !alias.scope !44, !noalias !41 - %.sroa.2.0..sroa_idx.i6.i51 = getelementptr inbounds i8, ptr %8, i64 32 - store ptr %143, ptr %.sroa.2.0..sroa_idx.i6.i51, align 8, !alias.scope !44, !noalias !41 + %.sroa.2.0..sroa_idx.i5.i51 = getelementptr inbounds i8, ptr %8, i64 32 + store ptr %143, ptr %.sroa.2.0..sroa_idx.i5.i51, align 8, !alias.scope !44, !noalias !41 %144 = getelementptr inbounds i8, ptr %8, i64 40 store ptr null, ptr %144, align 8, !alias.scope !44, !noalias !41 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr nonnull %8, i64 2) @@ -792,8 +792,8 @@ _ZN5cmsys17RegularExpression7compileERKNSt7__cxx1112basic_stringIcSt11char_trait store ptr %155, ptr %156, align 8, !noalias !47 store i8 47, ptr %155, align 8, !noalias !47 store i64 1, ptr %153, align 8, !alias.scope !53, !noalias !47 - %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %6, i64 32 - store ptr %155, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !53, !noalias !47 + %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %6, i64 32 + store ptr %155, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !53, !noalias !47 %157 = getelementptr inbounds i8, ptr %6, i64 40 store ptr null, ptr %157, align 8, !alias.scope !53, !noalias !47 %158 = getelementptr inbounds i8, ptr %6, i64 48 @@ -801,14 +801,14 @@ _ZN5cmsys17RegularExpression7compileERKNSt7__cxx1112basic_stringIcSt11char_trait %160 = extractvalue { i64, ptr } %159, 0 %161 = extractvalue { i64, ptr } %159, 1 store i64 %160, ptr %158, align 8, !alias.scope !56, !noalias !47 - %.sroa.2.0..sroa_idx.i17.i = getelementptr inbounds i8, ptr %6, i64 56 - store ptr %161, ptr %.sroa.2.0..sroa_idx.i17.i, align 8, !alias.scope !56, !noalias !47 + %.sroa.2.0..sroa_idx.i15.i = getelementptr inbounds i8, ptr %6, i64 56 + store ptr %161, ptr %.sroa.2.0..sroa_idx.i15.i, align 8, !alias.scope !56, !noalias !47 %162 = getelementptr inbounds i8, ptr %6, i64 64 store ptr null, ptr %162, align 8, !alias.scope !56, !noalias !47 %163 = getelementptr inbounds i8, ptr %6, i64 72 store i64 13, ptr %163, align 8, !alias.scope !59, !noalias !47 - %.sroa.2.0..sroa_idx.i26.i = getelementptr inbounds i8, ptr %6, i64 80 - store ptr @.str.10, ptr %.sroa.2.0..sroa_idx.i26.i, align 8, !alias.scope !59, !noalias !47 + %.sroa.2.0..sroa_idx.i23.i = getelementptr inbounds i8, ptr %6, i64 80 + store ptr @.str.10, ptr %.sroa.2.0..sroa_idx.i23.i, align 8, !alias.scope !59, !noalias !47 %164 = getelementptr inbounds i8, ptr %6, i64 88 store ptr null, ptr %164, align 8, !alias.scope !59, !noalias !47 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr nonnull %6, i64 4) diff --git a/bench/cmake/optimized/cmExportCommand.cxx.ll b/bench/cmake/optimized/cmExportCommand.cxx.ll index bcd980559e5..86870987d18 100644 --- a/bench/cmake/optimized/cmExportCommand.cxx.ll +++ b/bench/cmake/optimized/cmExportCommand.cxx.ll @@ -834,8 +834,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit66.i: %261 = extractvalue { i64, ptr } %260, 0 %262 = extractvalue { i64, ptr } %260, 1 store i64 %261, ptr %259, align 8, !alias.scope !13, !noalias !10 - %.sroa.2.0..sroa_idx.i9.i.i.i = getelementptr inbounds i8, ptr %21, i64 32 - store ptr %262, ptr %.sroa.2.0..sroa_idx.i9.i.i.i, align 8, !alias.scope !13, !noalias !10 + %.sroa.2.0..sroa_idx.i8.i.i.i = getelementptr inbounds i8, ptr %21, i64 32 + store ptr %262, ptr %.sroa.2.0..sroa_idx.i8.i.i.i, align 8, !alias.scope !13, !noalias !10 %263 = getelementptr inbounds i8, ptr %21, i64 40 store ptr null, ptr %263, align 8, !alias.scope !13, !noalias !10 %264 = getelementptr inbounds i8, ptr %21, i64 48 @@ -847,8 +847,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit66.i: store ptr %266, ptr %267, align 8, !noalias !10 store i8 10, ptr %266, align 8, !noalias !10 store i64 1, ptr %264, align 8, !alias.scope !16, !noalias !10 - %.sroa.2.0..sroa_idx.i18.i.i.i = getelementptr inbounds i8, ptr %21, i64 56 - store ptr %266, ptr %.sroa.2.0..sroa_idx.i18.i.i.i, align 8, !alias.scope !16, !noalias !10 + %.sroa.2.0..sroa_idx.i16.i.i.i = getelementptr inbounds i8, ptr %21, i64 56 + store ptr %266, ptr %.sroa.2.0..sroa_idx.i16.i.i.i, align 8, !alias.scope !16, !noalias !10 %268 = getelementptr inbounds i8, ptr %21, i64 64 store ptr null, ptr %268, align 8, !alias.scope !16, !noalias !10 %269 = getelementptr inbounds i8, ptr %21, i64 72 @@ -857,8 +857,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit66.i: %271 = extractvalue { i64, ptr } %270, 0 %272 = extractvalue { i64, ptr } %270, 1 store i64 %271, ptr %269, align 8, !alias.scope !19, !noalias !10 - %.sroa.2.0..sroa_idx.i27.i.i.i = getelementptr inbounds i8, ptr %21, i64 80 - store ptr %272, ptr %.sroa.2.0..sroa_idx.i27.i.i.i, align 8, !alias.scope !19, !noalias !10 + %.sroa.2.0..sroa_idx.i24.i.i.i = getelementptr inbounds i8, ptr %21, i64 80 + store ptr %272, ptr %.sroa.2.0..sroa_idx.i24.i.i.i, align 8, !alias.scope !19, !noalias !10 %273 = getelementptr inbounds i8, ptr %21, i64 88 store ptr %27, ptr %273, align 8, !alias.scope !19, !noalias !10 %274 = getelementptr inbounds i8, ptr %21, i64 96 @@ -870,8 +870,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit66.i: store ptr %276, ptr %277, align 8, !noalias !10 store i8 10, ptr %276, align 8, !noalias !10 store i64 1, ptr %274, align 8, !alias.scope !23, !noalias !10 - %.sroa.2.0..sroa_idx.i36.i.i.i = getelementptr inbounds i8, ptr %21, i64 104 - store ptr %276, ptr %.sroa.2.0..sroa_idx.i36.i.i.i, align 8, !alias.scope !23, !noalias !10 + %.sroa.2.0..sroa_idx.i32.i.i.i = getelementptr inbounds i8, ptr %21, i64 104 + store ptr %276, ptr %.sroa.2.0..sroa_idx.i32.i.i.i, align 8, !alias.scope !23, !noalias !10 %278 = getelementptr inbounds i8, ptr %21, i64 112 store ptr null, ptr %278, align 8, !alias.scope !23, !noalias !10 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %26, ptr nonnull %21, i64 5) @@ -3367,7 +3367,7 @@ declare { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRA49_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA2_S0_EES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(49) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(2) %3) local_unnamed_addr #3 comdat personality ptr @__gxx_personality_v0 { -_ZZ8cmStrCatIRA49_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA2_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit20: +_ZZ8cmStrCatIRA49_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA2_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit18: %4 = alloca [3 x %"struct.std::pair.421"], align 8 %5 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #18 store i64 %5, ptr %4, align 8, !alias.scope !37 @@ -3380,15 +3380,15 @@ _ZZ8cmStrCatIRA49_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA2_S %9 = extractvalue { i64, ptr } %8, 0 %10 = extractvalue { i64, ptr } %8, 1 store i64 %9, ptr %7, align 8, !alias.scope !40 - %.sroa.2.0..sroa_idx.i7 = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %10, ptr %.sroa.2.0..sroa_idx.i7, align 8, !alias.scope !40 + %.sroa.2.0..sroa_idx.i6 = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %10, ptr %.sroa.2.0..sroa_idx.i6, align 8, !alias.scope !40 %11 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %11, align 8, !alias.scope !40 %12 = getelementptr inbounds i8, ptr %4, i64 48 %13 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #18 store i64 %13, ptr %12, align 8, !alias.scope !43 - %.sroa.2.0..sroa_idx.i16 = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %3, ptr %.sroa.2.0..sroa_idx.i16, align 8, !alias.scope !43 + %.sroa.2.0..sroa_idx.i14 = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %3, ptr %.sroa.2.0..sroa_idx.i14, align 8, !alias.scope !43 %14 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %14, align 8, !alias.scope !43 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %4, i64 3) @@ -3584,7 +3584,7 @@ declare void @_ZNK10cmMakefile12IssueMessageE11MessageTypeRKNSt7__cxx1112basic_s ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcJRA51_KcRKS5_RA32_S6_EES5_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull align 1 dereferenceable(1) %2, ptr noundef nonnull align 1 dereferenceable(51) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 1 dereferenceable(32) %5) local_unnamed_addr #3 comdat personality ptr @__gxx_personality_v0 { -_ZZ8cmStrCatINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcJRA51_KcRKS5_RA32_S6_EES5_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit40: +_ZZ8cmStrCatINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcJRA51_KcRKS5_RA32_S6_EES5_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit36: %6 = alloca [5 x %"struct.std::pair.421"], align 8 %7 = alloca %class.cmAlphaNum, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !47) @@ -3606,15 +3606,15 @@ _ZZ8cmStrCatINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcJRA51_KcRKS5_R store ptr %15, ptr %16, align 8 store i8 %13, ptr %15, align 8 store i64 1, ptr %12, align 8, !alias.scope !50 - %.sroa.2.0..sroa_idx.i9 = getelementptr inbounds i8, ptr %6, i64 32 - store ptr %15, ptr %.sroa.2.0..sroa_idx.i9, align 8, !alias.scope !50 + %.sroa.2.0..sroa_idx.i8 = getelementptr inbounds i8, ptr %6, i64 32 + store ptr %15, ptr %.sroa.2.0..sroa_idx.i8, align 8, !alias.scope !50 %17 = getelementptr inbounds i8, ptr %6, i64 40 store ptr null, ptr %17, align 8, !alias.scope !50 %18 = getelementptr inbounds i8, ptr %6, i64 48 %19 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #18 store i64 %19, ptr %18, align 8, !alias.scope !53 - %.sroa.2.0..sroa_idx.i18 = getelementptr inbounds i8, ptr %6, i64 56 - store ptr %3, ptr %.sroa.2.0..sroa_idx.i18, align 8, !alias.scope !53 + %.sroa.2.0..sroa_idx.i16 = getelementptr inbounds i8, ptr %6, i64 56 + store ptr %3, ptr %.sroa.2.0..sroa_idx.i16, align 8, !alias.scope !53 %20 = getelementptr inbounds i8, ptr %6, i64 64 store ptr null, ptr %20, align 8, !alias.scope !53 %21 = getelementptr inbounds i8, ptr %6, i64 72 @@ -3622,15 +3622,15 @@ _ZZ8cmStrCatINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcJRA51_KcRKS5_R %23 = extractvalue { i64, ptr } %22, 0 %24 = extractvalue { i64, ptr } %22, 1 store i64 %23, ptr %21, align 8, !alias.scope !56 - %.sroa.2.0..sroa_idx.i27 = getelementptr inbounds i8, ptr %6, i64 80 - store ptr %24, ptr %.sroa.2.0..sroa_idx.i27, align 8, !alias.scope !56 + %.sroa.2.0..sroa_idx.i24 = getelementptr inbounds i8, ptr %6, i64 80 + store ptr %24, ptr %.sroa.2.0..sroa_idx.i24, align 8, !alias.scope !56 %25 = getelementptr inbounds i8, ptr %6, i64 88 store ptr null, ptr %25, align 8, !alias.scope !56 %26 = getelementptr inbounds i8, ptr %6, i64 96 %27 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #18 store i64 %27, ptr %26, align 8, !alias.scope !59 - %.sroa.2.0..sroa_idx.i36 = getelementptr inbounds i8, ptr %6, i64 104 - store ptr %5, ptr %.sroa.2.0..sroa_idx.i36, align 8, !alias.scope !59 + %.sroa.2.0..sroa_idx.i32 = getelementptr inbounds i8, ptr %6, i64 104 + store ptr %5, ptr %.sroa.2.0..sroa_idx.i32, align 8, !alias.scope !59 %28 = getelementptr inbounds i8, ptr %6, i64 112 store ptr null, ptr %28, align 8, !alias.scope !59 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %6, i64 5) @@ -3641,7 +3641,7 @@ declare void @_ZN10cmPolicies16GetPolicyWarningB5cxx11ENS_8PolicyIDE(ptr dead_on ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRA42_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA32_S0_EES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(42) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(32) %3) local_unnamed_addr #3 comdat personality ptr @__gxx_personality_v0 { -_ZZ8cmStrCatIRA42_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA32_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit20: +_ZZ8cmStrCatIRA42_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA32_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit18: %4 = alloca [3 x %"struct.std::pair.421"], align 8 %5 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #18 store i64 %5, ptr %4, align 8, !alias.scope !62 @@ -3654,15 +3654,15 @@ _ZZ8cmStrCatIRA42_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA32_ %9 = extractvalue { i64, ptr } %8, 0 %10 = extractvalue { i64, ptr } %8, 1 store i64 %9, ptr %7, align 8, !alias.scope !65 - %.sroa.2.0..sroa_idx.i7 = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %10, ptr %.sroa.2.0..sroa_idx.i7, align 8, !alias.scope !65 + %.sroa.2.0..sroa_idx.i6 = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %10, ptr %.sroa.2.0..sroa_idx.i6, align 8, !alias.scope !65 %11 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %11, align 8, !alias.scope !65 %12 = getelementptr inbounds i8, ptr %4, i64 48 %13 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #18 store i64 %13, ptr %12, align 8, !alias.scope !68 - %.sroa.2.0..sroa_idx.i16 = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %3, ptr %.sroa.2.0..sroa_idx.i16, align 8, !alias.scope !68 + %.sroa.2.0..sroa_idx.i14 = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %3, ptr %.sroa.2.0..sroa_idx.i14, align 8, !alias.scope !68 %14 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %14, align 8, !alias.scope !68 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %4, i64 3) diff --git a/bench/cmake/optimized/cmFLTKWrapUICommand.cxx.ll b/bench/cmake/optimized/cmFLTKWrapUICommand.cxx.ll index 42c4b031295..d431415302a 100644 --- a/bench/cmake/optimized/cmFLTKWrapUICommand.cxx.ll +++ b/bench/cmake/optimized/cmFLTKWrapUICommand.cxx.ll @@ -291,30 +291,30 @@ _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSa %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %8, i64 8 %78 = getelementptr inbounds i8, ptr %8, i64 16 %79 = getelementptr inbounds i8, ptr %8, i64 24 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %8, i64 32 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %8, i64 32 %80 = getelementptr inbounds i8, ptr %8, i64 40 %81 = getelementptr inbounds i8, ptr %8, i64 48 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %8, i64 56 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %8, i64 56 %82 = getelementptr inbounds i8, ptr %8, i64 64 %.sroa.2.0..sroa_idx.i.i101 = getelementptr inbounds i8, ptr %7, i64 8 %83 = getelementptr inbounds i8, ptr %7, i64 16 %84 = getelementptr inbounds i8, ptr %7, i64 24 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %7, i64 32 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %7, i64 32 %85 = getelementptr inbounds i8, ptr %7, i64 40 %.sroa.2.0..sroa_idx.i.i103 = getelementptr inbounds i8, ptr %6, i64 8 %86 = getelementptr inbounds i8, ptr %6, i64 16 %87 = getelementptr inbounds i8, ptr %6, i64 24 - %.sroa.2.0..sroa_idx.i7.i104 = getelementptr inbounds i8, ptr %6, i64 32 + %.sroa.2.0..sroa_idx.i6.i104 = getelementptr inbounds i8, ptr %6, i64 32 %88 = getelementptr inbounds i8, ptr %6, i64 40 %89 = getelementptr inbounds i8, ptr %6, i64 48 - %.sroa.2.0..sroa_idx.i16.i105 = getelementptr inbounds i8, ptr %6, i64 56 + %.sroa.2.0..sroa_idx.i14.i105 = getelementptr inbounds i8, ptr %6, i64 56 %90 = getelementptr inbounds i8, ptr %6, i64 64 %91 = getelementptr inbounds i8, ptr %22, i64 8 %92 = getelementptr inbounds i8, ptr %22, i64 16 %.sroa.2.0..sroa_idx.i.i115 = getelementptr inbounds i8, ptr %5, i64 8 %93 = getelementptr inbounds i8, ptr %5, i64 16 %94 = getelementptr inbounds i8, ptr %5, i64 24 - %.sroa.2.0..sroa_idx.i6.i116 = getelementptr inbounds i8, ptr %5, i64 32 + %.sroa.2.0..sroa_idx.i5.i116 = getelementptr inbounds i8, ptr %5, i64 32 %95 = getelementptr inbounds i8, ptr %5, i64 40 %96 = getelementptr inbounds i8, ptr %25, i64 8 %97 = getelementptr inbounds i8, ptr %25, i64 16 @@ -389,14 +389,14 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit99: ; store ptr %125, ptr %.sroa.2.0..sroa_idx.i.i, align 8, !alias.scope !10, !noalias !7 store ptr null, ptr %78, align 8, !alias.scope !10, !noalias !7 store i64 1, ptr %79, align 8, !alias.scope !13, !noalias !7 - store ptr @.str.4, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !13, !noalias !7 + store ptr @.str.4, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !13, !noalias !7 store ptr null, ptr %80, align 8, !alias.scope !13, !noalias !7 call void @llvm.experimental.noalias.scope.decl(metadata !16) %126 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %19) #16, !noalias !19 %127 = extractvalue { i64, ptr } %126, 0 %128 = extractvalue { i64, ptr } %126, 1 store i64 %127, ptr %81, align 8, !alias.scope !16, !noalias !7 - store ptr %128, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !16, !noalias !7 + store ptr %128, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !16, !noalias !7 store ptr %19, ptr %82, align 8, !alias.scope !16, !noalias !7 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr nonnull %8, i64 3) to label %129 unwind label %283 @@ -412,7 +412,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit99: ; store ptr %132, ptr %.sroa.2.0..sroa_idx.i.i101, align 8, !alias.scope !23, !noalias !20 store ptr null, ptr %83, align 8, !alias.scope !23, !noalias !20 store i64 2, ptr %84, align 8, !alias.scope !26, !noalias !20 - store ptr @.str.5, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !26, !noalias !20 + store ptr @.str.5, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !26, !noalias !20 store ptr null, ptr %85, align 8, !alias.scope !26, !noalias !20 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr nonnull %7, i64 2) to label %133 unwind label %285 @@ -427,13 +427,13 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit99: ; store ptr %136, ptr %.sroa.2.0..sroa_idx.i.i103, align 8, !alias.scope !32, !noalias !29 store ptr null, ptr %86, align 8, !alias.scope !32, !noalias !29 store i64 1, ptr %87, align 8, !alias.scope !35, !noalias !29 - store ptr @.str.4, ptr %.sroa.2.0..sroa_idx.i7.i104, align 8, !alias.scope !35, !noalias !29 + store ptr @.str.4, ptr %.sroa.2.0..sroa_idx.i6.i104, align 8, !alias.scope !35, !noalias !29 store ptr null, ptr %88, align 8, !alias.scope !35, !noalias !29 %137 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.0201.0307) #16, !noalias !29 %138 = extractvalue { i64, ptr } %137, 0 %139 = extractvalue { i64, ptr } %137, 1 store i64 %138, ptr %89, align 8, !alias.scope !38, !noalias !29 - store ptr %139, ptr %.sroa.2.0..sroa_idx.i16.i105, align 8, !alias.scope !38, !noalias !29 + store ptr %139, ptr %.sroa.2.0..sroa_idx.i14.i105, align 8, !alias.scope !38, !noalias !29 store ptr null, ptr %90, align 8, !alias.scope !38, !noalias !29 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %21, ptr nonnull %6, i64 3) to label %140 unwind label %287 @@ -473,7 +473,7 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE9push_b store ptr %147, ptr %.sroa.2.0..sroa_idx.i.i115, align 8, !alias.scope !44, !noalias !41 store ptr null, ptr %93, align 8, !alias.scope !44, !noalias !41 store i64 4, ptr %94, align 8, !alias.scope !47, !noalias !41 - store ptr @.str.6, ptr %.sroa.2.0..sroa_idx.i6.i116, align 8, !alias.scope !47, !noalias !41 + store ptr @.str.6, ptr %.sroa.2.0..sroa_idx.i5.i116, align 8, !alias.scope !47, !noalias !41 store ptr null, ptr %95, align 8, !alias.scope !47, !noalias !41 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %23, ptr nonnull %5, i64 2) to label %148 unwind label %289 @@ -2885,14 +2885,14 @@ define internal void @"_ZNSt17_Function_handlerIFvR16cmLocalGeneratorRK19cmListF %13 = extractvalue { i64, ptr } %12, 0 %14 = extractvalue { i64, ptr } %12, 1 store i64 %13, ptr %11, align 8, !alias.scope !69, !noalias !66 - %.sroa.2.0..sroa_idx.i9.i.i.i.i.i = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %14, ptr %.sroa.2.0..sroa_idx.i9.i.i.i.i.i, align 8, !alias.scope !69, !noalias !66 + %.sroa.2.0..sroa_idx.i8.i.i.i.i.i = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %14, ptr %.sroa.2.0..sroa_idx.i8.i.i.i.i.i, align 8, !alias.scope !69, !noalias !66 %15 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %15, align 8, !alias.scope !69, !noalias !66 %16 = getelementptr inbounds i8, ptr %4, i64 48 store i64 64, ptr %16, align 8, !alias.scope !72, !noalias !66 - %.sroa.2.0..sroa_idx.i18.i.i.i.i.i = getelementptr inbounds i8, ptr %4, i64 56 - store ptr @.str.15, ptr %.sroa.2.0..sroa_idx.i18.i.i.i.i.i, align 8, !alias.scope !72, !noalias !66 + %.sroa.2.0..sroa_idx.i16.i.i.i.i.i = getelementptr inbounds i8, ptr %4, i64 56 + store ptr @.str.15, ptr %.sroa.2.0..sroa_idx.i16.i.i.i.i.i, align 8, !alias.scope !72, !noalias !66 %17 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %17, align 8, !alias.scope !72, !noalias !66 %18 = getelementptr inbounds i8, ptr %4, i64 72 @@ -2900,14 +2900,14 @@ define internal void @"_ZNSt17_Function_handlerIFvR16cmLocalGeneratorRK19cmListF %20 = extractvalue { i64, ptr } %19, 0 %21 = extractvalue { i64, ptr } %19, 1 store i64 %20, ptr %18, align 8, !alias.scope !75, !noalias !66 - %.sroa.2.0..sroa_idx.i27.i.i.i.i.i = getelementptr inbounds i8, ptr %4, i64 80 - store ptr %21, ptr %.sroa.2.0..sroa_idx.i27.i.i.i.i.i, align 8, !alias.scope !75, !noalias !66 + %.sroa.2.0..sroa_idx.i24.i.i.i.i.i = getelementptr inbounds i8, ptr %4, i64 80 + store ptr %21, ptr %.sroa.2.0..sroa_idx.i24.i.i.i.i.i, align 8, !alias.scope !75, !noalias !66 %22 = getelementptr inbounds i8, ptr %4, i64 88 store ptr null, ptr %22, align 8, !alias.scope !75, !noalias !66 %23 = getelementptr inbounds i8, ptr %4, i64 96 store i64 42, ptr %23, align 8, !alias.scope !78, !noalias !66 - %.sroa.2.0..sroa_idx.i36.i.i.i.i.i = getelementptr inbounds i8, ptr %4, i64 104 - store ptr @.str.16, ptr %.sroa.2.0..sroa_idx.i36.i.i.i.i.i, align 8, !alias.scope !78, !noalias !66 + %.sroa.2.0..sroa_idx.i32.i.i.i.i.i = getelementptr inbounds i8, ptr %4, i64 104 + store ptr @.str.16, ptr %.sroa.2.0..sroa_idx.i32.i.i.i.i.i, align 8, !alias.scope !78, !noalias !66 %24 = getelementptr inbounds i8, ptr %4, i64 112 store ptr null, ptr %24, align 8, !alias.scope !78, !noalias !66 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr nonnull %4, i64 5) diff --git a/bench/cmake/optimized/cmFileAPICodemodel.cxx.ll b/bench/cmake/optimized/cmFileAPICodemodel.cxx.ll index fad50ee7c13..20f62ff0fa1 100644 --- a/bench/cmake/optimized/cmFileAPICodemodel.cxx.ll +++ b/bench/cmake/optimized/cmFileAPICodemodel.cxx.ll @@ -2678,10 +2678,10 @@ _ZNSt6vectorIP17cmGeneratorTargetSaIS1_EED2Ev.exit28.i: ; preds = %658, %.body.i %667 = getelementptr inbounds i8, ptr %27, i64 8 %668 = getelementptr inbounds i8, ptr %27, i64 24 %669 = getelementptr inbounds i8, ptr %27, i64 16 - %.sroa.2.0..sroa_idx.i7.i.i.i.i = getelementptr inbounds i8, ptr %26, i64 32 + %.sroa.2.0..sroa_idx.i6.i.i.i.i = getelementptr inbounds i8, ptr %26, i64 32 %670 = getelementptr inbounds i8, ptr %26, i64 40 %671 = getelementptr inbounds i8, ptr %26, i64 48 - %.sroa.2.0..sroa_idx.i16.i.i.i.i = getelementptr inbounds i8, ptr %26, i64 56 + %.sroa.2.0..sroa_idx.i14.i.i.i.i = getelementptr inbounds i8, ptr %26, i64 56 %672 = getelementptr inbounds i8, ptr %26, i64 64 %.sroa.2.0..sroa_idx.i.i26.i.i.i = getelementptr inbounds i8, ptr %24, i64 8 %673 = getelementptr inbounds i8, ptr %24, i64 16 @@ -2689,10 +2689,10 @@ _ZNSt6vectorIP17cmGeneratorTargetSaIS1_EED2Ev.exit28.i: ; preds = %658, %.body.i %675 = getelementptr inbounds i8, ptr %25, i64 8 %676 = getelementptr inbounds i8, ptr %25, i64 24 %677 = getelementptr inbounds i8, ptr %25, i64 16 - %.sroa.2.0..sroa_idx.i7.i27.i.i.i = getelementptr inbounds i8, ptr %24, i64 32 + %.sroa.2.0..sroa_idx.i6.i27.i.i.i = getelementptr inbounds i8, ptr %24, i64 32 %678 = getelementptr inbounds i8, ptr %24, i64 40 %679 = getelementptr inbounds i8, ptr %24, i64 48 - %.sroa.2.0..sroa_idx.i16.i28.i.i.i = getelementptr inbounds i8, ptr %24, i64 56 + %.sroa.2.0..sroa_idx.i14.i28.i.i.i = getelementptr inbounds i8, ptr %24, i64 56 %680 = getelementptr inbounds i8, ptr %24, i64 64 %681 = getelementptr inbounds i8, ptr %1, i64 232 %682 = getelementptr inbounds i8, ptr %37, i64 8 @@ -2821,13 +2821,13 @@ _ZN12_GLOBAL__N_115RelativeIfUnderERKNSt7__cxx1112basic_stringIcSt11char_traitsI store ptr %668, ptr %669, align 8, !noalias !61 store i8 45, ptr %668, align 8, !noalias !61 store i64 1, ptr %666, align 8, !alias.scope !62, !noalias !61 - store ptr %668, ptr %.sroa.2.0..sroa_idx.i7.i.i.i.i, align 8, !alias.scope !62, !noalias !61 + store ptr %668, ptr %.sroa.2.0..sroa_idx.i6.i.i.i.i, align 8, !alias.scope !62, !noalias !61 store ptr null, ptr %670, align 8, !alias.scope !62, !noalias !61 %713 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %32) #23, !noalias !55 %714 = extractvalue { i64, ptr } %713, 0 %715 = extractvalue { i64, ptr } %713, 1 store i64 %714, ptr %671, align 8, !alias.scope !65, !noalias !61 - store ptr %715, ptr %.sroa.2.0..sroa_idx.i16.i.i.i.i, align 8, !alias.scope !65, !noalias !61 + store ptr %715, ptr %.sroa.2.0..sroa_idx.i14.i.i.i.i, align 8, !alias.scope !65, !noalias !61 store ptr null, ptr %672, align 8, !alias.scope !65, !noalias !61 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %34, ptr nonnull %26, i64 3) to label %716 unwind label %723, !noalias !53 @@ -2883,13 +2883,13 @@ _ZN12_GLOBAL__N_115RelativeIfUnderERKNSt7__cxx1112basic_stringIcSt11char_traitsI store ptr %676, ptr %677, align 8, !noalias !74 store i8 45, ptr %676, align 8, !noalias !74 store i64 1, ptr %674, align 8, !alias.scope !75, !noalias !74 - store ptr %676, ptr %.sroa.2.0..sroa_idx.i7.i27.i.i.i, align 8, !alias.scope !75, !noalias !74 + store ptr %676, ptr %.sroa.2.0..sroa_idx.i6.i27.i.i.i, align 8, !alias.scope !75, !noalias !74 store ptr null, ptr %678, align 8, !alias.scope !75, !noalias !74 %732 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #23, !noalias !68 %733 = extractvalue { i64, ptr } %732, 0 %734 = extractvalue { i64, ptr } %732, 1 store i64 %733, ptr %679, align 8, !alias.scope !78, !noalias !74 - store ptr %734, ptr %.sroa.2.0..sroa_idx.i16.i28.i.i.i, align 8, !alias.scope !78, !noalias !74 + store ptr %734, ptr %.sroa.2.0..sroa_idx.i14.i28.i.i.i, align 8, !alias.scope !78, !noalias !74 store ptr null, ptr %680, align 8, !alias.scope !78, !noalias !74 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %35, ptr nonnull %24, i64 3) to label %735 unwind label %723, !noalias !53 @@ -8932,25 +8932,25 @@ _ZN12_GLOBAL__N_14JBTsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev %1367 = getelementptr inbounds i8, ptr %54, i64 8 %1368 = getelementptr inbounds i8, ptr %54, i64 24 %1369 = getelementptr inbounds i8, ptr %54, i64 16 - %.sroa.2.0..sroa_idx.i7.i.i = getelementptr inbounds i8, ptr %53, i64 32 + %.sroa.2.0..sroa_idx.i6.i.i = getelementptr inbounds i8, ptr %53, i64 32 %1370 = getelementptr inbounds i8, ptr %53, i64 40 %1371 = getelementptr inbounds i8, ptr %53, i64 48 - %.sroa.2.0..sroa_idx.i16.i.i = getelementptr inbounds i8, ptr %53, i64 56 + %.sroa.2.0..sroa_idx.i14.i.i = getelementptr inbounds i8, ptr %53, i64 56 %1372 = getelementptr inbounds i8, ptr %53, i64 64 %1373 = getelementptr inbounds i8, ptr %71, i64 8 %.sroa.2.0..sroa_idx.i.i.i = getelementptr inbounds i8, ptr %64, i64 8 %1374 = getelementptr inbounds i8, ptr %64, i64 16 %1375 = getelementptr inbounds i8, ptr %64, i64 24 - %.sroa.2.0..sroa_idx.i9.i.i = getelementptr inbounds i8, ptr %64, i64 32 + %.sroa.2.0..sroa_idx.i8.i.i = getelementptr inbounds i8, ptr %64, i64 32 %1376 = getelementptr inbounds i8, ptr %64, i64 40 %1377 = getelementptr inbounds i8, ptr %64, i64 48 - %.sroa.2.0..sroa_idx.i18.i.i = getelementptr inbounds i8, ptr %64, i64 56 + %.sroa.2.0..sroa_idx.i16.i.i = getelementptr inbounds i8, ptr %64, i64 56 %1378 = getelementptr inbounds i8, ptr %64, i64 64 %1379 = getelementptr inbounds i8, ptr %64, i64 72 - %.sroa.2.0..sroa_idx.i27.i.i = getelementptr inbounds i8, ptr %64, i64 80 + %.sroa.2.0..sroa_idx.i24.i.i = getelementptr inbounds i8, ptr %64, i64 80 %1380 = getelementptr inbounds i8, ptr %64, i64 88 %1381 = getelementptr inbounds i8, ptr %64, i64 96 - %.sroa.2.0..sroa_idx.i36.i.i = getelementptr inbounds i8, ptr %64, i64 104 + %.sroa.2.0..sroa_idx.i32.i.i = getelementptr inbounds i8, ptr %64, i64 104 %1382 = getelementptr inbounds i8, ptr %64, i64 112 br label %1383 @@ -8980,19 +8980,19 @@ _ZN12_GLOBAL__N_14JBTsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev %1393 = extractvalue { i64, ptr } %1392, 0 %1394 = extractvalue { i64, ptr } %1392, 1 store i64 %1393, ptr %1375, align 8, !alias.scope !197, !noalias !194 - store ptr %1394, ptr %.sroa.2.0..sroa_idx.i9.i.i, align 8, !alias.scope !197, !noalias !194 + store ptr %1394, ptr %.sroa.2.0..sroa_idx.i8.i.i, align 8, !alias.scope !197, !noalias !194 store ptr null, ptr %1376, align 8, !alias.scope !197, !noalias !194 store i64 31, ptr %1377, align 8, !alias.scope !200, !noalias !194 - store ptr @.str.61, ptr %.sroa.2.0..sroa_idx.i18.i.i, align 8, !alias.scope !200, !noalias !194 + store ptr @.str.61, ptr %.sroa.2.0..sroa_idx.i16.i.i, align 8, !alias.scope !200, !noalias !194 store ptr null, ptr %1378, align 8, !alias.scope !200, !noalias !194 %1395 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.096.0120.i) #23, !noalias !194 %1396 = extractvalue { i64, ptr } %1395, 0 %1397 = extractvalue { i64, ptr } %1395, 1 store i64 %1396, ptr %1379, align 8, !alias.scope !203, !noalias !194 - store ptr %1397, ptr %.sroa.2.0..sroa_idx.i27.i.i, align 8, !alias.scope !203, !noalias !194 + store ptr %1397, ptr %.sroa.2.0..sroa_idx.i24.i.i, align 8, !alias.scope !203, !noalias !194 store ptr null, ptr %1380, align 8, !alias.scope !203, !noalias !194 store i64 24, ptr %1381, align 8, !alias.scope !206, !noalias !194 - store ptr @.str.62, ptr %.sroa.2.0..sroa_idx.i36.i.i, align 8, !alias.scope !206, !noalias !194 + store ptr @.str.62, ptr %.sroa.2.0..sroa_idx.i32.i.i, align 8, !alias.scope !206, !noalias !194 store ptr null, ptr %1382, align 8, !alias.scope !206, !noalias !194 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %69, ptr nonnull %64, i64 5) to label %1398 unwind label %.loopexit103.i, !noalias !188 @@ -9337,13 +9337,13 @@ _ZN12_GLOBAL__N_115RelativeIfUnderERKNSt7__cxx1112basic_stringIcSt11char_traitsI store ptr %1368, ptr %1369, align 8, !noalias !212 store i8 47, ptr %1368, align 8, !noalias !212 store i64 1, ptr %1366, align 8, !alias.scope !218, !noalias !212 - store ptr %1368, ptr %.sroa.2.0..sroa_idx.i7.i.i, align 8, !alias.scope !218, !noalias !212 + store ptr %1368, ptr %.sroa.2.0..sroa_idx.i6.i.i, align 8, !alias.scope !218, !noalias !212 store ptr null, ptr %1370, align 8, !alias.scope !218, !noalias !212 %1504 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.084.0110.i) #23, !noalias !212 %1505 = extractvalue { i64, ptr } %1504, 0 %1506 = extractvalue { i64, ptr } %1504, 1 store i64 %1505, ptr %1371, align 8, !alias.scope !221, !noalias !212 - store ptr %1506, ptr %.sroa.2.0..sroa_idx.i16.i.i, align 8, !alias.scope !221, !noalias !212 + store ptr %1506, ptr %.sroa.2.0..sroa_idx.i14.i.i, align 8, !alias.scope !221, !noalias !212 store ptr null, ptr %1372, align 8, !alias.scope !221, !noalias !212 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %76, ptr nonnull %53, i64 3) to label %1507 unwind label %1498, !noalias !188 @@ -26293,13 +26293,13 @@ _ZNSt10_HashtableIPK17cmGeneratorTargetSt4pairIKS2_jESaIS5_ENSt8__detail10_Selec %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %7, i64 8 %213 = getelementptr inbounds i8, ptr %7, i64 16 %214 = getelementptr inbounds i8, ptr %7, i64 24 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %7, i64 32 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %7, i64 32 %215 = getelementptr inbounds i8, ptr %7, i64 40 %216 = getelementptr inbounds i8, ptr %8, i64 24 %.sroa.2.0..sroa_idx.i.i255 = getelementptr inbounds i8, ptr %6, i64 8 %217 = getelementptr inbounds i8, ptr %6, i64 16 %218 = getelementptr inbounds i8, ptr %6, i64 24 - %.sroa.2.0..sroa_idx.i6.i256 = getelementptr inbounds i8, ptr %6, i64 32 + %.sroa.2.0..sroa_idx.i5.i256 = getelementptr inbounds i8, ptr %6, i64 32 %219 = getelementptr inbounds i8, ptr %6, i64 40 br label %220 @@ -26318,7 +26318,7 @@ _ZNSt10_HashtableIPK17cmGeneratorTargetSt4pairIKS2_jESaIS5_ENSt8__detail10_Selec %227 = extractvalue { i64, ptr } %226, 0 %228 = extractvalue { i64, ptr } %226, 1 store i64 %227, ptr %214, align 8, !alias.scope !449, !noalias !443 - store ptr %228, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !449, !noalias !443 + store ptr %228, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !449, !noalias !443 store ptr null, ptr %215, align 8, !alias.scope !449, !noalias !443 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %18, ptr nonnull %7, i64 2) to label %229 unwind label %.loopexit342 @@ -26338,7 +26338,7 @@ _ZNSt10_HashtableIPK17cmGeneratorTargetSt4pairIKS2_jESaIS5_ENSt8__detail10_Selec %236 = extractvalue { i64, ptr } %235, 0 %237 = extractvalue { i64, ptr } %235, 1 store i64 %236, ptr %218, align 8, !alias.scope !458, !noalias !452 - store ptr %237, ptr %.sroa.2.0..sroa_idx.i6.i256, align 8, !alias.scope !458, !noalias !452 + store ptr %237, ptr %.sroa.2.0..sroa_idx.i5.i256, align 8, !alias.scope !458, !noalias !452 store ptr null, ptr %219, align 8, !alias.scope !458, !noalias !452 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %19, ptr nonnull %6, i64 2) to label %238 unwind label %250 @@ -27681,7 +27681,7 @@ _ZN12_GLOBAL__N_115RelativeIfUnderERKNSt7__cxx1112basic_stringIcSt11char_traitsI %.sroa.2.0..sroa_idx.i.i279 = getelementptr inbounds i8, ptr %5, i64 8 %708 = getelementptr inbounds i8, ptr %5, i64 16 %709 = getelementptr inbounds i8, ptr %5, i64 24 - %.sroa.2.0..sroa_idx.i6.i280 = getelementptr inbounds i8, ptr %5, i64 32 + %.sroa.2.0..sroa_idx.i5.i280 = getelementptr inbounds i8, ptr %5, i64 32 %710 = getelementptr inbounds i8, ptr %5, i64 40 br label %711 @@ -27750,7 +27750,7 @@ _ZN12_GLOBAL__N_115RelativeIfUnderERKNSt7__cxx1112basic_stringIcSt11char_traitsI %727 = extractvalue { i64, ptr } %726, 0 %728 = extractvalue { i64, ptr } %726, 1 store i64 %727, ptr %709, align 8, !alias.scope !468, !noalias !462 - store ptr %728, ptr %.sroa.2.0..sroa_idx.i6.i280, align 8, !alias.scope !468, !noalias !462 + store ptr %728, ptr %.sroa.2.0..sroa_idx.i5.i280, align 8, !alias.scope !468, !noalias !462 store ptr %85, ptr %710, align 8, !alias.scope !468, !noalias !462 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %84, ptr nonnull %5, i64 2) to label %729 unwind label %734 diff --git a/bench/cmake/optimized/cmLocalNinjaGenerator.cxx.ll b/bench/cmake/optimized/cmLocalNinjaGenerator.cxx.ll index 047eb875ac8..40210fac569 100644 --- a/bench/cmake/optimized/cmLocalNinjaGenerator.cxx.ll +++ b/bench/cmake/optimized/cmLocalNinjaGenerator.cxx.ll @@ -2322,8 +2322,8 @@ define dso_local void @_ZNK21cmLocalNinjaGenerator18GetTargetDirectoryB5cxx11EPK %9 = extractvalue { i64, ptr } %8, 0 %10 = extractvalue { i64, ptr } %8, 1 store i64 %9, ptr %7, align 8, !alias.scope !14, !noalias !11 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %10, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !14, !noalias !11 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %10, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !14, !noalias !11 %11 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %11, align 8, !alias.scope !14, !noalias !11 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %4, i64 2) @@ -2416,14 +2416,14 @@ define dso_local void @_ZNK21cmLocalNinjaGenerator21GetLinkDependencyFileEP17cmG %20 = extractvalue { i64, ptr } %19, 0 %21 = extractvalue { i64, ptr } %19, 1 store i64 %20, ptr %18, align 8, !alias.scope !24, !noalias !23 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %5, i64 32 - store ptr %21, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !24, !noalias !23 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %5, i64 32 + store ptr %21, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !24, !noalias !23 %22 = getelementptr inbounds i8, ptr %5, i64 40 store ptr %7, ptr %22, align 8, !alias.scope !24, !noalias !23 %23 = getelementptr inbounds i8, ptr %5, i64 48 store i64 7, ptr %23, align 8, !alias.scope !28, !noalias !23 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %5, i64 56 - store ptr @.str.12, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !28, !noalias !23 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %5, i64 56 + store ptr @.str.12, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !28, !noalias !23 %24 = getelementptr inbounds i8, ptr %5, i64 64 store ptr null, ptr %24, align 8, !alias.scope !28, !noalias !23 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %5, i64 3) @@ -3532,8 +3532,8 @@ define dso_local void @_ZNK21cmLocalNinjaGenerator18WriteCommandScriptERKSt6vect store ptr null, ptr %26, align 8, !alias.scope !34, !noalias !31 %27 = getelementptr inbounds i8, ptr %10, i64 24 store i64 11, ptr %27, align 8, !alias.scope !37, !noalias !31 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %10, i64 32 - store ptr @.str.38, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !37, !noalias !31 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %10, i64 32 + store ptr @.str.38, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !37, !noalias !31 %28 = getelementptr inbounds i8, ptr %10, i64 40 store ptr null, ptr %28, align 8, !alias.scope !37, !noalias !31 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr nonnull %10, i64 2) @@ -3603,8 +3603,8 @@ define dso_local void @_ZNK21cmLocalNinjaGenerator18WriteCommandScriptERKSt6vect %59 = extractvalue { i64, ptr } %58, 0 %60 = extractvalue { i64, ptr } %58, 1 store i64 %59, ptr %57, align 8, !alias.scope !46, !noalias !40 - %.sroa.2.0..sroa_idx.i6.i18 = getelementptr inbounds i8, ptr %8, i64 32 - store ptr %60, ptr %.sroa.2.0..sroa_idx.i6.i18, align 8, !alias.scope !46, !noalias !40 + %.sroa.2.0..sroa_idx.i5.i18 = getelementptr inbounds i8, ptr %8, i64 32 + store ptr %60, ptr %.sroa.2.0..sroa_idx.i5.i18, align 8, !alias.scope !46, !noalias !40 %61 = getelementptr inbounds i8, ptr %8, i64 40 store ptr null, ptr %61, align 8, !alias.scope !46, !noalias !40 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %14, ptr nonnull %8, i64 2) @@ -4566,7 +4566,7 @@ select.unfold.i.i.i: ; preds = %50, %._crit_edge.th %.sroa.2.0..sroa_idx.i.i139 = getelementptr inbounds i8, ptr %5, i64 8 %89 = getelementptr inbounds i8, ptr %5, i64 16 %90 = getelementptr inbounds i8, ptr %5, i64 24 - %.sroa.2.0..sroa_idx.i6.i140 = getelementptr inbounds i8, ptr %5, i64 32 + %.sroa.2.0..sroa_idx.i5.i140 = getelementptr inbounds i8, ptr %5, i64 32 %91 = getelementptr inbounds i8, ptr %5, i64 40 %92 = getelementptr inbounds i8, ptr %33, i64 8 %93 = getelementptr inbounds i8, ptr %33, i64 16 @@ -4597,7 +4597,7 @@ select.unfold.i.i.i: ; preds = %50, %._crit_edge.th %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %6, i64 8 %118 = getelementptr inbounds i8, ptr %6, i64 16 %119 = getelementptr inbounds i8, ptr %6, i64 24 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %6, i64 32 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %6, i64 32 %120 = getelementptr inbounds i8, ptr %6, i64 40 %121 = getelementptr inbounds i8, ptr %17, i64 72 %122 = getelementptr inbounds i8, ptr %17, i64 80 @@ -5128,7 +5128,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit109: ; %326 = extractvalue { i64, ptr } %325, 0 %327 = extractvalue { i64, ptr } %325, 1 store i64 %326, ptr %119, align 8, !alias.scope !64, !noalias !61 - store ptr %327, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !64, !noalias !61 + store ptr %327, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !64, !noalias !61 store ptr null, ptr %120, align 8, !alias.scope !64, !noalias !61 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %20, ptr nonnull %6, i64 2) to label %328 unwind label %374 @@ -5522,7 +5522,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit138: ; %455 = extractvalue { i64, ptr } %454, 0 %456 = extractvalue { i64, ptr } %454, 1 store i64 %455, ptr %90, align 8, !alias.scope !73, !noalias !70 - store ptr %456, ptr %.sroa.2.0..sroa_idx.i6.i140, align 8, !alias.scope !73, !noalias !70 + store ptr %456, ptr %.sroa.2.0..sroa_idx.i5.i140, align 8, !alias.scope !73, !noalias !70 store ptr null, ptr %91, align 8, !alias.scope !73, !noalias !70 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %30, ptr nonnull %5, i64 2) to label %457 unwind label %418 @@ -6843,8 +6843,8 @@ define dso_local void @_ZN21cmLocalNinjaGenerator19CreateUtilityOutputERKNSt7__c store ptr null, ptr %32, align 8, !alias.scope !81, !noalias !78 %33 = getelementptr inbounds i8, ptr %8, i64 24 store i64 12, ptr %33, align 8, !alias.scope !84, !noalias !78 - %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %8, i64 32 - store ptr @.str.51, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !84, !noalias !78 + %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %8, i64 32 + store ptr @.str.51, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !84, !noalias !78 %34 = getelementptr inbounds i8, ptr %8, i64 40 store ptr null, ptr %34, align 8, !alias.scope !84, !noalias !78 %35 = getelementptr inbounds i8, ptr %8, i64 48 @@ -6852,8 +6852,8 @@ define dso_local void @_ZN21cmLocalNinjaGenerator19CreateUtilityOutputERKNSt7__c %37 = extractvalue { i64, ptr } %36, 0 %38 = extractvalue { i64, ptr } %36, 1 store i64 %37, ptr %35, align 8, !alias.scope !87, !noalias !78 - %.sroa.2.0..sroa_idx.i17.i = getelementptr inbounds i8, ptr %8, i64 56 - store ptr %38, ptr %.sroa.2.0..sroa_idx.i17.i, align 8, !alias.scope !87, !noalias !78 + %.sroa.2.0..sroa_idx.i15.i = getelementptr inbounds i8, ptr %8, i64 56 + store ptr %38, ptr %.sroa.2.0..sroa_idx.i15.i, align 8, !alias.scope !87, !noalias !78 %39 = getelementptr inbounds i8, ptr %8, i64 64 store ptr null, ptr %39, align 8, !alias.scope !87, !noalias !78 %40 = getelementptr inbounds i8, ptr %8, i64 72 @@ -6865,8 +6865,8 @@ define dso_local void @_ZN21cmLocalNinjaGenerator19CreateUtilityOutputERKNSt7__c store ptr %42, ptr %43, align 8, !noalias !78 store i8 45, ptr %42, align 8, !noalias !78 store i64 1, ptr %40, align 8, !alias.scope !90, !noalias !78 - %.sroa.2.0..sroa_idx.i26.i = getelementptr inbounds i8, ptr %8, i64 80 - store ptr %42, ptr %.sroa.2.0..sroa_idx.i26.i, align 8, !alias.scope !90, !noalias !78 + %.sroa.2.0..sroa_idx.i23.i = getelementptr inbounds i8, ptr %8, i64 80 + store ptr %42, ptr %.sroa.2.0..sroa_idx.i23.i, align 8, !alias.scope !90, !noalias !78 %44 = getelementptr inbounds i8, ptr %8, i64 88 store ptr null, ptr %44, align 8, !alias.scope !90, !noalias !78 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %10, ptr nonnull %8, i64 4) @@ -6888,7 +6888,7 @@ define dso_local void @_ZN21cmLocalNinjaGenerator19CreateUtilityOutputERKNSt7__c %.sroa.2.0..sroa_idx.i.i25 = getelementptr inbounds i8, ptr %7, i64 8 %51 = getelementptr inbounds i8, ptr %7, i64 16 %52 = getelementptr inbounds i8, ptr %7, i64 24 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %7, i64 32 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %7, i64 32 %53 = getelementptr inbounds i8, ptr %7, i64 40 br label %59 @@ -6936,7 +6936,7 @@ _ZSt8_DestroyIPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES5_EvT_S7_RSa %64 = extractvalue { i64, ptr } %63, 0 %65 = extractvalue { i64, ptr } %63, 1 store i64 %64, ptr %52, align 8, !alias.scope !99, !noalias !93 - store ptr %65, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !99, !noalias !93 + store ptr %65, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !99, !noalias !93 store ptr null, ptr %53, align 8, !alias.scope !99, !noalias !93 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %12, ptr nonnull %7, i64 2) to label %66 unwind label %77 @@ -7089,8 +7089,8 @@ _ZN22cmGlobalNinjaGenerator25AddPerConfigUtilityTargetERKNSt7__cxx1112basic_stri store ptr null, ptr %103, align 8, !alias.scope !105, !noalias !102 %104 = getelementptr inbounds i8, ptr %6, i64 24 store i64 9, ptr %104, align 8, !alias.scope !108, !noalias !102 - %.sroa.2.0..sroa_idx.i9.i = getelementptr inbounds i8, ptr %6, i64 32 - store ptr @.str.54, ptr %.sroa.2.0..sroa_idx.i9.i, align 8, !alias.scope !108, !noalias !102 + %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %6, i64 32 + store ptr @.str.54, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !108, !noalias !102 %105 = getelementptr inbounds i8, ptr %6, i64 40 store ptr null, ptr %105, align 8, !alias.scope !108, !noalias !102 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %6, i64 2) diff --git a/bench/cmake/optimized/cmProcess.cxx.ll b/bench/cmake/optimized/cmProcess.cxx.ll index 66d17ddcab4..0002d235018 100644 --- a/bench/cmake/optimized/cmProcess.cxx.ll +++ b/bench/cmake/optimized/cmProcess.cxx.ll @@ -2384,7 +2384,7 @@ define dso_local void @_ZNK9cmProcess22GetExitExceptionStringB5cxx11Ev(ptr dead_ %8 = icmp ult i32 %switch.tableidx, 31 br i1 %8, label %switch.lookup, label %13 -9: ; preds = %switch.lookup, %_ZZ8cmStrCatIRA8_KcRKiJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit10.i, %13 +9: ; preds = %switch.lookup, %_ZZ8cmStrCatIRA8_KcRKiJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit9.i, %13 %10 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %0) #18 @@ -2395,7 +2395,7 @@ switch.lookup: ; preds = %2 %switch.gep = getelementptr inbounds [31 x ptr], ptr @switch.table._ZNK9cmProcess22GetExitExceptionStringB5cxx11Ev, i64 0, i64 %11 %switch.load = load ptr, ptr %switch.gep, align 8 %12 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEPKc(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull %switch.load) - to label %27 unwind label %9 + to label %29 unwind label %9 13: ; preds = %2 call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %3) @@ -2412,43 +2412,44 @@ switch.lookup: ; preds = %2 call void @llvm.experimental.noalias.scope.decl(metadata !20) %15 = load ptr, ptr %4, align 8, !noalias !23 %.not.i.i2.i = icmp eq ptr %15, null - br i1 %.not.i.i2.i, label %20, label %16 + br i1 %.not.i.i2.i, label %18, label %16 16: ; preds = %.noexc %17 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %15) #18, !noalias !23 - %18 = extractvalue { i64, ptr } %17, 0 - %19 = extractvalue { i64, ptr } %17, 1 %.pre.i3.i = load ptr, ptr %4, align 8, !noalias !23 - br label %_ZZ8cmStrCatIRA8_KcRKiJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit10.i - -20: ; preds = %.noexc - %21 = getelementptr inbounds i8, ptr %4, i64 8 - %.sroa.0.0.copyload.i.i7.i = load i64, ptr %21, align 8, !noalias !23 - %.sroa.3.0..sroa_idx.i.i8.i = getelementptr inbounds i8, ptr %4, i64 16 - %.sroa.3.0.copyload.i.i9.i = load ptr, ptr %.sroa.3.0..sroa_idx.i.i8.i, align 8, !noalias !23 - br label %_ZZ8cmStrCatIRA8_KcRKiJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit10.i - -_ZZ8cmStrCatIRA8_KcRKiJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit10.i: ; preds = %20, %16 - %22 = phi ptr [ %.pre.i3.i, %16 ], [ null, %20 ] - %.sroa.0.0.i.i4.i = phi i64 [ %18, %16 ], [ %.sroa.0.0.copyload.i.i7.i, %20 ] - %.sroa.3.0.i.i5.i = phi ptr [ %19, %16 ], [ %.sroa.3.0.copyload.i.i9.i, %20 ] + br label %_ZZ8cmStrCatIRA8_KcRKiJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit9.i + +18: ; preds = %.noexc + %19 = getelementptr inbounds i8, ptr %4, i64 8 + %.sroa.0.0.copyload.i.i6.i = load i64, ptr %19, align 8, !noalias !23 + %.sroa.3.0..sroa_idx.i.i7.i = getelementptr inbounds i8, ptr %4, i64 16 + %.sroa.3.0.copyload.i.i8.i = load ptr, ptr %.sroa.3.0..sroa_idx.i.i7.i, align 8, !noalias !23 + %20 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0.copyload.i.i6.i, 0 + %21 = insertvalue { i64, ptr } %20, ptr %.sroa.3.0.copyload.i.i8.i, 1 + br label %_ZZ8cmStrCatIRA8_KcRKiJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit9.i + +_ZZ8cmStrCatIRA8_KcRKiJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit9.i: ; preds = %18, %16 + %22 = phi ptr [ %.pre.i3.i, %16 ], [ null, %18 ] + %.fca.1.insert.merged.i.i4.i = phi { i64, ptr } [ %17, %16 ], [ %21, %18 ] %23 = getelementptr inbounds i8, ptr %3, i64 24 - store i64 %.sroa.0.0.i.i4.i, ptr %23, align 8, !alias.scope !20, !noalias !17 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %3, i64 32 - store ptr %.sroa.3.0.i.i5.i, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !20, !noalias !17 - %24 = getelementptr inbounds i8, ptr %3, i64 40 - store ptr %22, ptr %24, align 8, !alias.scope !20, !noalias !17 + %24 = extractvalue { i64, ptr } %.fca.1.insert.merged.i.i4.i, 0 + %25 = extractvalue { i64, ptr } %.fca.1.insert.merged.i.i4.i, 1 + store i64 %24, ptr %23, align 8, !alias.scope !20, !noalias !17 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %3, i64 32 + store ptr %25, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !20, !noalias !17 + %26 = getelementptr inbounds i8, ptr %3, i64 40 + store ptr %22, ptr %26, align 8, !alias.scope !20, !noalias !17 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %5, ptr nonnull %3, i64 2) - to label %25 unwind label %9 + to label %27 unwind label %9 -25: ; preds = %_ZZ8cmStrCatIRA8_KcRKiJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit10.i +27: ; preds = %_ZZ8cmStrCatIRA8_KcRKiJEENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESK_.exit9.i call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %3) call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %4) - %26 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %5) #18 + %28 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %0, ptr noundef nonnull align 8 dereferenceable(32) %5) #18 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #18 - br label %27 + br label %29 -27: ; preds = %switch.lookup, %25 +29: ; preds = %switch.lookup, %27 ret void } diff --git a/bench/cmake/optimized/cmRulePlaceholderExpander.cxx.ll b/bench/cmake/optimized/cmRulePlaceholderExpander.cxx.ll index 536b1e2317c..4bb3768db25 100644 --- a/bench/cmake/optimized/cmRulePlaceholderExpander.cxx.ll +++ b/bench/cmake/optimized/cmRulePlaceholderExpander.cxx.ll @@ -448,8 +448,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit165: ; store ptr null, ptr %121, align 8, !alias.scope !8, !noalias !5 %122 = getelementptr inbounds i8, ptr %4, i64 24 store i64 1, ptr %122, align 8, !alias.scope !11, !noalias !5 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %4, i64 32 - store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !11, !noalias !5 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %4, i64 32 + store ptr @.str.2, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !11, !noalias !5 %123 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %123, align 8, !alias.scope !11, !noalias !5 %124 = getelementptr inbounds i8, ptr %4, i64 48 @@ -457,8 +457,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit165: ; %126 = extractvalue { i64, ptr } %125, 0 %127 = extractvalue { i64, ptr } %125, 1 store i64 %126, ptr %124, align 8, !alias.scope !14, !noalias !5 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %127, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !14, !noalias !5 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %127, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !14, !noalias !5 %128 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %128, align 8, !alias.scope !14, !noalias !5 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %8, ptr nonnull %4, i64 3) @@ -2527,7 +2527,7 @@ declare void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noun ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRKPKcRA2_S0_JRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESB_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 1 dereferenceable(2) %2, ptr noundef nonnull align 8 dereferenceable(32) %3) local_unnamed_addr #4 comdat { -_ZZ8cmStrCatIRKPKcRA2_S0_JRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESB_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit20: +_ZZ8cmStrCatIRKPKcRA2_S0_JRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESB_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit18: %4 = alloca [3 x %"struct.std::pair.3"], align 8 %5 = load ptr, ptr %1, align 8 %6 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #15 @@ -2539,8 +2539,8 @@ _ZZ8cmStrCatIRKPKcRA2_S0_JRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE %8 = getelementptr inbounds i8, ptr %4, i64 24 %9 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #15 store i64 %9, ptr %8, align 8, !alias.scope !20 - %.sroa.2.0..sroa_idx.i7 = getelementptr inbounds i8, ptr %4, i64 32 - store ptr %2, ptr %.sroa.2.0..sroa_idx.i7, align 8, !alias.scope !20 + %.sroa.2.0..sroa_idx.i6 = getelementptr inbounds i8, ptr %4, i64 32 + store ptr %2, ptr %.sroa.2.0..sroa_idx.i6, align 8, !alias.scope !20 %10 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %10, align 8, !alias.scope !20 %11 = getelementptr inbounds i8, ptr %4, i64 48 @@ -2548,8 +2548,8 @@ _ZZ8cmStrCatIRKPKcRA2_S0_JRNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE %13 = extractvalue { i64, ptr } %12, 0 %14 = extractvalue { i64, ptr } %12, 1 store i64 %13, ptr %11, align 8, !alias.scope !23 - %.sroa.2.0..sroa_idx.i16 = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %14, ptr %.sroa.2.0..sroa_idx.i16, align 8, !alias.scope !23 + %.sroa.2.0..sroa_idx.i14 = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %14, ptr %.sroa.2.0..sroa_idx.i14, align 8, !alias.scope !23 %15 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %15, align 8, !alias.scope !23 call void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr nonnull %4, i64 3) diff --git a/bench/cmake/optimized/cmWindowsRegistry.cxx.ll b/bench/cmake/optimized/cmWindowsRegistry.cxx.ll index d070bd9de34..6ba40bf4b7b 100644 --- a/bench/cmake/optimized/cmWindowsRegistry.cxx.ll +++ b/bench/cmake/optimized/cmWindowsRegistry.cxx.ll @@ -351,7 +351,7 @@ define dso_local { i64, ptr } @_ZN17cmWindowsRegistry8FromViewENS_4ViewE(i32 nou store ptr @.str.8, ptr %.sroa.2.0..sroa_idx, align 8 %24 = getelementptr inbounds i8, ptr %2, i64 168 invoke void @_ZNSt10_HashtableIN17cmWindowsRegistry4ViewESt4pairIKS1_St17basic_string_viewIcSt11char_traitsIcEEESaIS8_ENSt8__detail10_Select1stESt8equal_toIS1_ESt4hashIS1_ENSA_18_Mod_range_hashingENSA_20_Default_ranged_hashENSA_20_Prime_rehash_policyENSA_17_Hashtable_traitsILb0ELb0ELb1EEEEC2IPKS8_EET_SP_mRKSF_RKSD_RKS9_St17integral_constantIbLb1EE(ptr noundef nonnull align 8 dereferenceable(56) @_ZZN17cmWindowsRegistry8FromViewENS_4ViewEE15ViewDefinitions, ptr noundef nonnull %2, ptr noundef nonnull %24, i64 noundef 0, ptr noundef nonnull align 1 dereferenceable(1) %3, ptr noundef nonnull align 1 dereferenceable(1) %4, ptr noundef nonnull align 1 dereferenceable(1) %5) - to label %_ZNSt13unordered_mapIN17cmWindowsRegistry4ViewESt17basic_string_viewIcSt11char_traitsIcEESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S5_EEEC2ESt16initializer_listISC_EmRKS7_RKS9_RKSD_.exit unwind label %53 + to label %_ZNSt13unordered_mapIN17cmWindowsRegistry4ViewESt17basic_string_viewIcSt11char_traitsIcEESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S5_EEEC2ESt16initializer_listISC_EmRKS7_RKS9_RKSD_.exit unwind label %55 _ZNSt13unordered_mapIN17cmWindowsRegistry4ViewESt17basic_string_viewIcSt11char_traitsIcEESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S5_EEEC2ESt16initializer_listISC_EmRKS7_RKS9_RKSD_.exit: ; preds = %10 %25 = call i32 @__cxa_atexit(ptr nonnull @_ZNSt13unordered_mapIN17cmWindowsRegistry4ViewESt17basic_string_viewIcSt11char_traitsIcEESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S5_EEED2Ev, ptr nonnull @_ZZN17cmWindowsRegistry8FromViewENS_4ViewEE15ViewDefinitions, ptr nonnull @__dso_handle) #19 @@ -416,20 +416,19 @@ _ZNSt13unordered_mapIN17cmWindowsRegistry4ViewESt17basic_string_viewIcSt11char_t %.sroa.03.0.copyload = load i64, ptr %52, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %.sroa.06.1.i.i, i64 24 %.sroa.3.0.copyload = load ptr, ptr %.sroa.3.0..sroa_idx, align 8 + %53 = insertvalue { i64, ptr } poison, i64 %.sroa.03.0.copyload, 0 + %54 = insertvalue { i64, ptr } %53, ptr %.sroa.3.0.copyload, 1 br label %.loopexit .loopexit: ; preds = %.lr.ph.i.i.i.i, %47, %.preheader, %32, %_ZNSt13unordered_mapIN17cmWindowsRegistry4ViewESt17basic_string_viewIcSt11char_traitsIcEESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S5_EEE4findERSB_.exit - %.sroa.03.0 = phi i64 [ %.sroa.03.0.copyload, %_ZNSt13unordered_mapIN17cmWindowsRegistry4ViewESt17basic_string_viewIcSt11char_traitsIcEESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S5_EEE4findERSB_.exit ], [ 0, %32 ], [ 0, %.preheader ], [ 0, %47 ], [ 0, %.lr.ph.i.i.i.i ] - %.sroa.3.0 = phi ptr [ %.sroa.3.0.copyload, %_ZNSt13unordered_mapIN17cmWindowsRegistry4ViewESt17basic_string_viewIcSt11char_traitsIcEESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S5_EEE4findERSB_.exit ], [ @.str.9, %32 ], [ @.str.9, %.preheader ], [ @.str.9, %47 ], [ @.str.9, %.lr.ph.i.i.i.i ] - %.fca.0.insert = insertvalue { i64, ptr } poison, i64 %.sroa.03.0, 0 - %.fca.1.insert = insertvalue { i64, ptr } %.fca.0.insert, ptr %.sroa.3.0, 1 - ret { i64, ptr } %.fca.1.insert - -53: ; preds = %10 - %54 = landingpad { ptr, i32 } + %.fca.1.insert.merged = phi { i64, ptr } [ %54, %_ZNSt13unordered_mapIN17cmWindowsRegistry4ViewESt17basic_string_viewIcSt11char_traitsIcEESt4hashIS1_ESt8equal_toIS1_ESaISt4pairIKS1_S5_EEE4findERSB_.exit ], [ { i64 0, ptr @.str.9 }, %32 ], [ { i64 0, ptr @.str.9 }, %.preheader ], [ { i64 0, ptr @.str.9 }, %47 ], [ { i64 0, ptr @.str.9 }, %.lr.ph.i.i.i.i ] + ret { i64, ptr } %.fca.1.insert.merged + +55: ; preds = %10 + %56 = landingpad { ptr, i32 } cleanup call void @__cxa_guard_abort(ptr nonnull @_ZGVZN17cmWindowsRegistry8FromViewENS_4ViewEE15ViewDefinitions) #19 - resume { ptr, i32 } %54 + resume { ptr, i32 } %56 } ; Function Attrs: mustprogress nounwind uwtable diff --git a/bench/coreutils-rs/optimized/11lwsmxswp4jsl8v.ll b/bench/coreutils-rs/optimized/11lwsmxswp4jsl8v.ll index ad10de25ceb..78c561c6d18 100644 --- a/bench/coreutils-rs/optimized/11lwsmxswp4jsl8v.ll +++ b/bench/coreutils-rs/optimized/11lwsmxswp4jsl8v.ll @@ -1007,22 +1007,26 @@ define hidden noundef nonnull align 8 ptr @"_ZN3std3sys3pal6common12thread_local %.sroa.6.0.copyload.i = load i64, ptr %.sroa.6.0..0.1.sroa_idx.i, align 8, !alias.scope !186 store i64 0, ptr %1, align 8, !alias.scope !186 %4 = icmp eq i64 %.sroa.02.0.copyload.i, 1 - br i1 %4, label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h150a2adbd59a060cE.llvm.7035662188962510802.exit", label %5 + br i1 %4, label %7, label %5 5: ; preds = %3, %2 %6 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE(), !noalias !186 - %7 = extractvalue { i64, i64 } %6, 0 - %8 = extractvalue { i64, i64 } %6, 1 br label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h150a2adbd59a060cE.llvm.7035662188962510802.exit" -"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h150a2adbd59a060cE.llvm.7035662188962510802.exit": ; preds = %3, %5 - %.sroa.0.0.i = phi i64 [ %7, %5 ], [ %.sroa.5.0.copyload.i, %3 ] - %.sroa.3.0.i = phi i64 [ %8, %5 ], [ %.sroa.6.0.copyload.i, %3 ] +7: ; preds = %3 + %8 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload.i, 0 + %9 = insertvalue { i64, i64 } %8, i64 %.sroa.6.0.copyload.i, 1 + br label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h150a2adbd59a060cE.llvm.7035662188962510802.exit" + +"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h150a2adbd59a060cE.llvm.7035662188962510802.exit": ; preds = %5, %7 + %.merged.i = phi { i64, i64 } [ %9, %7 ], [ %6, %5 ] + %10 = extractvalue { i64, i64 } %.merged.i, 0 + %11 = extractvalue { i64, i64 } %.merged.i, 1 store i64 1, ptr %0, align 8 %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 - store i64 %.sroa.0.0.i, ptr %.sroa.2.0..sroa_idx, align 8 + store i64 %10, ptr %.sroa.2.0..sroa_idx, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 16 - store i64 %.sroa.3.0.i, ptr %.sroa.3.0..sroa_idx, align 8 + store i64 %11, ptr %.sroa.3.0..sroa_idx, align 8 ret ptr %.sroa.2.0..sroa_idx } @@ -1039,20 +1043,20 @@ define hidden { i64, i64 } @"_ZN3std4hash6random11RandomState3new4KEYS7__getit28 %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..0.1.sroa_idx, align 8 store i64 0, ptr %0, align 8 %3 = icmp eq i64 %.sroa.02.0.copyload, 1 - br i1 %3, label %8, label %4 + br i1 %3, label %6, label %4 4: ; preds = %2, %1 %5 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE() - %6 = extractvalue { i64, i64 } %5, 0 - %7 = extractvalue { i64, i64 } %5, 1 - br label %8 - -8: ; preds = %2, %4 - %.sroa.0.0 = phi i64 [ %6, %4 ], [ %.sroa.5.0.copyload, %2 ] - %.sroa.3.0 = phi i64 [ %7, %4 ], [ %.sroa.6.0.copyload, %2 ] - %9 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %10 = insertvalue { i64, i64 } %9, i64 %.sroa.3.0, 1 - ret { i64, i64 } %10 + br label %9 + +6: ; preds = %2 + %7 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload, 0 + %8 = insertvalue { i64, i64 } %7, i64 %.sroa.6.0.copyload, 1 + br label %9 + +9: ; preds = %6, %4 + %.merged = phi { i64, i64 } [ %8, %6 ], [ %5, %4 ] + ret { i64, i64 } %.merged } ; Function Attrs: alwaysinline mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable diff --git a/bench/coreutils-rs/optimized/12z6icc2yyeo0v0b.ll b/bench/coreutils-rs/optimized/12z6icc2yyeo0v0b.ll index d43ebfac47b..138ac505ca7 100644 --- a/bench/coreutils-rs/optimized/12z6icc2yyeo0v0b.ll +++ b/bench/coreutils-rs/optimized/12z6icc2yyeo0v0b.ll @@ -90,11 +90,8 @@ __rust_try.llvm.12432872059018301874.exit: ; preds = %.body.i.i.i.i br label %37 37: ; preds = %__rust_try.llvm.12432872059018301874.exit, %36 - %.sroa.6.06 = phi ptr [ undef, %36 ], [ %33, %__rust_try.llvm.12432872059018301874.exit ] - %38 = phi ptr [ null, %36 ], [ %32, %__rust_try.llvm.12432872059018301874.exit ] - %39 = insertvalue { ptr, ptr } poison, ptr %38, 0 - %40 = insertvalue { ptr, ptr } %39, ptr %.sroa.6.06, 1 - ret { ptr, ptr } %40 + %.merged = phi { ptr, ptr } [ { ptr null, ptr undef }, %36 ], [ %29, %__rust_try.llvm.12432872059018301874.exit ] + ret { ptr, ptr } %.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable diff --git a/bench/coreutils-rs/optimized/1anrplw3vv9wx8x7.ll b/bench/coreutils-rs/optimized/1anrplw3vv9wx8x7.ll index 3305d02f731..0b4e3700270 100644 --- a/bench/coreutils-rs/optimized/1anrplw3vv9wx8x7.ll +++ b/bench/coreutils-rs/optimized/1anrplw3vv9wx8x7.ll @@ -24,13 +24,13 @@ define hidden { ptr, ptr } @"_ZN108_$LT$alloc..collections..btree..map..Iter$LT$ tail call void @llvm.experimental.noalias.scope.decl(metadata !5) %7 = load i64, ptr %0, align 8, !range !8, !alias.scope !5, !noundef !4 %.not.not.i = icmp eq i64 %7, 0 - br i1 %.not.not.i, label %20, label %8 + br i1 %.not.not.i, label %18, label %8 8: ; preds = %5 %9 = getelementptr inbounds i8, ptr %0, i64 8 %10 = load ptr, ptr %9, align 8, !alias.scope !5, !noundef !4 %11 = icmp eq ptr %10, null - br i1 %11, label %12, label %21 + br i1 %11, label %12, label %19 12: ; preds = %8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.4.i), !noalias !5 @@ -42,23 +42,18 @@ define hidden { ptr, ptr } @"_ZN108_$LT$alloc..collections..btree..map..Iter$LT$ store i64 1, ptr %0, align 8, !alias.scope !5 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4.i, i64 24, i1 false) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.4.i), !noalias !5 - br label %21 + br label %19 -17: ; preds = %1, %21 - %.sroa.3.0 = phi ptr [ %24, %21 ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %23, %21 ], [ null, %1 ] - %18 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %19 = insertvalue { ptr, ptr } %18, ptr %.sroa.3.0, 1 - ret { ptr, ptr } %19 +17: ; preds = %1, %19 + %.merged = phi { ptr, ptr } [ %20, %19 ], [ { ptr null, ptr undef }, %1 ] + ret { ptr, ptr } %.merged -20: ; preds = %5 +18: ; preds = %5 tail call void @_ZN4core6option13unwrap_failed17hcb3a256a9f1ca882E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.3d83f042c0192c9388333a759feb3eae.2.llvm.16174777062172242219) #11 unreachable -21: ; preds = %8, %12 - %22 = tail call { ptr, ptr } @_ZN5alloc11collections5btree3mem7replace17h8794900ae6d9142fE.llvm.16174777062172242219(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) - %23 = extractvalue { ptr, ptr } %22, 0 - %24 = extractvalue { ptr, ptr } %22, 1 +19: ; preds = %8, %12 + %20 = tail call { ptr, ptr } @_ZN5alloc11collections5btree3mem7replace17h8794900ae6d9142fE.llvm.16174777062172242219(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) br label %17 } @@ -76,13 +71,13 @@ define hidden { ptr, ptr } @"_ZN108_$LT$alloc..collections..btree..map..Iter$LT$ tail call void @llvm.experimental.noalias.scope.decl(metadata !9) %7 = load i64, ptr %0, align 8, !range !8, !alias.scope !9, !noundef !4 %.not.not.i = icmp eq i64 %7, 0 - br i1 %.not.not.i, label %20, label %8 + br i1 %.not.not.i, label %18, label %8 8: ; preds = %5 %9 = getelementptr inbounds i8, ptr %0, i64 8 %10 = load ptr, ptr %9, align 8, !alias.scope !9, !noundef !4 %11 = icmp eq ptr %10, null - br i1 %11, label %12, label %21 + br i1 %11, label %12, label %19 12: ; preds = %8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.4.i), !noalias !9 @@ -94,23 +89,18 @@ define hidden { ptr, ptr } @"_ZN108_$LT$alloc..collections..btree..map..Iter$LT$ store i64 1, ptr %0, align 8, !alias.scope !9 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4.i, i64 24, i1 false) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.4.i), !noalias !9 - br label %21 + br label %19 -17: ; preds = %1, %21 - %.sroa.3.0 = phi ptr [ %24, %21 ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %23, %21 ], [ null, %1 ] - %18 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %19 = insertvalue { ptr, ptr } %18, ptr %.sroa.3.0, 1 - ret { ptr, ptr } %19 +17: ; preds = %1, %19 + %.merged = phi { ptr, ptr } [ %20, %19 ], [ { ptr null, ptr undef }, %1 ] + ret { ptr, ptr } %.merged -20: ; preds = %5 +18: ; preds = %5 tail call void @_ZN4core6option13unwrap_failed17hcb3a256a9f1ca882E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.3d83f042c0192c9388333a759feb3eae.2.llvm.16174777062172242219) #11 unreachable -21: ; preds = %8, %12 - %22 = tail call { ptr, ptr } @_ZN5alloc11collections5btree3mem7replace17h5c58493124dfd64cE.llvm.16174777062172242219(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) - %23 = extractvalue { ptr, ptr } %22, 0 - %24 = extractvalue { ptr, ptr } %22, 1 +19: ; preds = %8, %12 + %20 = tail call { ptr, ptr } @_ZN5alloc11collections5btree3mem7replace17h5c58493124dfd64cE.llvm.16174777062172242219(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) br label %17 } @@ -155,15 +145,15 @@ define hidden noundef align 8 dereferenceable_or_null(24) ptr @"_ZN110_$LT$alloc 18: ; preds = %12, %8 %19 = tail call { ptr, ptr } @_ZN5alloc11collections5btree3mem7replace17h5c58493124dfd64cE.llvm.16174777062172242219(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) - %20 = extractvalue { ptr, ptr } %19, 0 - %21 = extractvalue { ptr, ptr } %19, 1 - %22 = icmp eq ptr %20, null - %23 = select i1 %22, ptr null, ptr %21 br label %"_ZN108_$LT$alloc..collections..btree..map..Iter$LT$K$C$V$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb9fedc66e7b7e928E.llvm.16174777062172242219.exit" "_ZN108_$LT$alloc..collections..btree..map..Iter$LT$K$C$V$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb9fedc66e7b7e928E.llvm.16174777062172242219.exit": ; preds = %1, %18 - %.sroa.0.0.i = phi ptr [ %23, %18 ], [ null, %1 ] - ret ptr %.sroa.0.0.i + %.merged.i = phi { ptr, ptr } [ %19, %18 ], [ { ptr null, ptr undef }, %1 ] + %20 = extractvalue { ptr, ptr } %.merged.i, 0 + %21 = icmp eq ptr %20, null + %22 = extractvalue { ptr, ptr } %.merged.i, 1 + %spec.select = select i1 %21, ptr null, ptr %22 + ret ptr %spec.select } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable diff --git a/bench/coreutils-rs/optimized/1djsrwanm88d6ovo.ll b/bench/coreutils-rs/optimized/1djsrwanm88d6ovo.ll index ccf35dde378..f148e03860a 100644 --- a/bench/coreutils-rs/optimized/1djsrwanm88d6ovo.ll +++ b/bench/coreutils-rs/optimized/1djsrwanm88d6ovo.ll @@ -73,22 +73,26 @@ define hidden noundef nonnull align 8 ptr @"_ZN3std3sys3pal6common12thread_local %.sroa.6.0.copyload.i.i = load i64, ptr %.sroa.6.0..0.1.sroa_idx.i.i, align 8, !alias.scope !10 store i64 0, ptr %1, align 8, !alias.scope !10 %4 = icmp eq i64 %.sroa.02.0.copyload.i.i, 1 - br i1 %4, label %"_ZN3std3sys3pal6common12thread_local4lazy21LazyKeyInner$LT$T$GT$10initialize17h6cd147bd809a3104E.exit", label %5 + br i1 %4, label %7, label %5 5: ; preds = %3, %2 %6 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE(), !noalias !10 - %7 = extractvalue { i64, i64 } %6, 0 - %8 = extractvalue { i64, i64 } %6, 1 br label %"_ZN3std3sys3pal6common12thread_local4lazy21LazyKeyInner$LT$T$GT$10initialize17h6cd147bd809a3104E.exit" -"_ZN3std3sys3pal6common12thread_local4lazy21LazyKeyInner$LT$T$GT$10initialize17h6cd147bd809a3104E.exit": ; preds = %3, %5 - %.sroa.0.0.i.i = phi i64 [ %7, %5 ], [ %.sroa.5.0.copyload.i.i, %3 ] - %.sroa.3.0.i.i = phi i64 [ %8, %5 ], [ %.sroa.6.0.copyload.i.i, %3 ] +7: ; preds = %3 + %8 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload.i.i, 0 + %9 = insertvalue { i64, i64 } %8, i64 %.sroa.6.0.copyload.i.i, 1 + br label %"_ZN3std3sys3pal6common12thread_local4lazy21LazyKeyInner$LT$T$GT$10initialize17h6cd147bd809a3104E.exit" + +"_ZN3std3sys3pal6common12thread_local4lazy21LazyKeyInner$LT$T$GT$10initialize17h6cd147bd809a3104E.exit": ; preds = %5, %7 + %.merged.i.i = phi { i64, i64 } [ %9, %7 ], [ %6, %5 ] + %10 = extractvalue { i64, i64 } %.merged.i.i, 0 + %11 = extractvalue { i64, i64 } %.merged.i.i, 1 store i64 1, ptr %0, align 8, !noalias !4 %.sroa.2.0..sroa_idx.i = getelementptr inbounds i8, ptr %0, i64 8 - store i64 %.sroa.0.0.i.i, ptr %.sroa.2.0..sroa_idx.i, align 8, !noalias !4 + store i64 %10, ptr %.sroa.2.0..sroa_idx.i, align 8, !noalias !4 %.sroa.3.0..sroa_idx.i = getelementptr inbounds i8, ptr %0, i64 16 - store i64 %.sroa.3.0.i.i, ptr %.sroa.3.0..sroa_idx.i, align 8, !noalias !4 + store i64 %11, ptr %.sroa.3.0..sroa_idx.i, align 8, !noalias !4 ret ptr %.sroa.2.0..sroa_idx.i } @@ -97,7 +101,7 @@ define hidden noundef nonnull align 8 ptr @"_ZN3std3sys3pal6common12thread_local %3 = load i64, ptr %0, align 8, !range !11, !noundef !12 %trunc = trunc nuw i64 %3 to i1 %4 = getelementptr inbounds i8, ptr %0, i64 8 - br i1 %trunc, label %12, label %5 + br i1 %trunc, label %15, label %5 5: ; preds = %2 tail call void @llvm.experimental.noalias.scope.decl(metadata !13) @@ -114,24 +118,28 @@ define hidden noundef nonnull align 8 ptr @"_ZN3std3sys3pal6common12thread_local %.sroa.6.0.copyload.i.i.i = load i64, ptr %.sroa.6.0..0.1.sroa_idx.i.i.i, align 8, !alias.scope !22 store i64 0, ptr %1, align 8, !alias.scope !22 %7 = icmp eq i64 %.sroa.02.0.copyload.i.i.i, 1 - br i1 %7, label %"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h8259f67a8ff31fafE.llvm.8124630272768993320.exit", label %8 + br i1 %7, label %10, label %8 8: ; preds = %6, %5 %9 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE(), !noalias !22 - %10 = extractvalue { i64, i64 } %9, 0 - %11 = extractvalue { i64, i64 } %9, 1 br label %"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h8259f67a8ff31fafE.llvm.8124630272768993320.exit" -"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h8259f67a8ff31fafE.llvm.8124630272768993320.exit": ; preds = %6, %8 - %.sroa.0.0.i.i.i = phi i64 [ %10, %8 ], [ %.sroa.5.0.copyload.i.i.i, %6 ] - %.sroa.3.0.i.i.i = phi i64 [ %11, %8 ], [ %.sroa.6.0.copyload.i.i.i, %6 ] +10: ; preds = %6 + %11 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload.i.i.i, 0 + %12 = insertvalue { i64, i64 } %11, i64 %.sroa.6.0.copyload.i.i.i, 1 + br label %"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h8259f67a8ff31fafE.llvm.8124630272768993320.exit" + +"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h8259f67a8ff31fafE.llvm.8124630272768993320.exit": ; preds = %8, %10 + %.merged.i.i.i = phi { i64, i64 } [ %12, %10 ], [ %9, %8 ] + %13 = extractvalue { i64, i64 } %.merged.i.i.i, 0 + %14 = extractvalue { i64, i64 } %.merged.i.i.i, 1 store i64 1, ptr %0, align 8, !noalias !23 - store i64 %.sroa.0.0.i.i.i, ptr %4, align 8, !noalias !23 + store i64 %13, ptr %4, align 8, !noalias !23 %.sroa.3.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %0, i64 16 - store i64 %.sroa.3.0.i.i.i, ptr %.sroa.3.0..sroa_idx.i.i, align 8, !noalias !23 - br label %12 + store i64 %14, ptr %.sroa.3.0..sroa_idx.i.i, align 8, !noalias !23 + br label %15 -12: ; preds = %2, %"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h8259f67a8ff31fafE.llvm.8124630272768993320.exit" +15: ; preds = %2, %"_ZN3std3sys3pal6common12thread_local10fast_local12Key$LT$T$GT$14try_initialize17h8259f67a8ff31fafE.llvm.8124630272768993320.exit" ret ptr %4 } diff --git a/bench/coreutils-rs/optimized/1dx6vdk7m2fhs89j.ll b/bench/coreutils-rs/optimized/1dx6vdk7m2fhs89j.ll index 50e2f003187..b6ee3711d89 100644 --- a/bench/coreutils-rs/optimized/1dx6vdk7m2fhs89j.ll +++ b/bench/coreutils-rs/optimized/1dx6vdk7m2fhs89j.ll @@ -3662,21 +3662,17 @@ define { ptr, ptr } @"_ZN58_$LT$uu_shuf..WrappedRng$u20$as$u20$rand_core..RngCor "_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes28_$u7b$$u7b$closure$u7d$$u7d$17hfee6f42f9b9fa00fE.llvm.16077577169749974150.exit.i.i": ; preds = %12 store ptr %10, ptr %13, align 8 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4), !noalias !969 - br label %"_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes17hfcc3aa8847c2c35fE.exit" - -"_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes17hfcc3aa8847c2c35fE.exit": ; preds = %6, %8, %"_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes28_$u7b$$u7b$closure$u7d$$u7d$17hfee6f42f9b9fa00fE.llvm.16077577169749974150.exit.i.i" - %.sroa.0.0.i = phi ptr [ null, %6 ], [ %13, %"_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes28_$u7b$$u7b$closure$u7d$$u7d$17hfee6f42f9b9fa00fE.llvm.16077577169749974150.exit.i.i" ], [ null, %8 ] - %19 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0.i, 0 + %19 = insertvalue { ptr, ptr } poison, ptr %13, 0 %20 = insertvalue { ptr, ptr } %19, ptr @anon.db8cd90c5aaf017621f1a0a381070a48.19.llvm.16077577169749974150, 1 - br label %24 + br label %"_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes17hfcc3aa8847c2c35fE.exit" 21: ; preds = %3 %22 = getelementptr inbounds i8, ptr %0, i64 8 %23 = tail call { ptr, ptr } @"_ZN68_$LT$rand..rngs..thread..ThreadRng$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes17ha3f625d27e76703eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %22, ptr noalias noundef nonnull align 1 %1, i64 noundef %2) - br label %24 + br label %"_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes17hfcc3aa8847c2c35fE.exit" -24: ; preds = %21, %"_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes17hfcc3aa8847c2c35fE.exit" - %.pn = phi { ptr, ptr } [ %23, %21 ], [ %20, %"_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes17hfcc3aa8847c2c35fE.exit" ] +"_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes17hfcc3aa8847c2c35fE.exit": ; preds = %"_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes28_$u7b$$u7b$closure$u7d$$u7d$17hfee6f42f9b9fa00fE.llvm.16077577169749974150.exit.i.i", %8, %6, %21 + %.pn = phi { ptr, ptr } [ %23, %21 ], [ { ptr null, ptr undef }, %6 ], [ %20, %"_ZN83_$LT$uu_shuf..rand_read_adapter..ReadRng$LT$R$GT$$u20$as$u20$rand_core..RngCore$GT$14try_fill_bytes28_$u7b$$u7b$closure$u7d$$u7d$17hfee6f42f9b9fa00fE.llvm.16077577169749974150.exit.i.i" ], [ { ptr null, ptr undef }, %8 ] ret { ptr, ptr } %.pn } diff --git a/bench/coreutils-rs/optimized/2ncbniy8tamzyihi.ll b/bench/coreutils-rs/optimized/2ncbniy8tamzyihi.ll index c0ef61101ba..1447c9e01af 100644 --- a/bench/coreutils-rs/optimized/2ncbniy8tamzyihi.ll +++ b/bench/coreutils-rs/optimized/2ncbniy8tamzyihi.ll @@ -127,33 +127,30 @@ define hidden { i32, i32 } @"_ZN48_$LT$std..path..Path$u20$as$u20$nix..NixPath$G call void @_ZN4core3ffi5c_str4CStr19from_bytes_with_nul17hf3534ae7c662e3b1E(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 1 %5, i64 noundef %9), !noalias !21 %10 = load i64, ptr %4, align 8, !range !26, !noalias !21, !noundef !4 %trunc.i = trunc nuw i64 %10 to i1 - br i1 %trunc.i, label %19, label %15 + br i1 %trunc.i, label %17, label %13 11: ; preds = %3 %12 = tail call { i32, i32 } @_ZN3nix24with_nix_path_allocating17h9d6849a3cbe11dfcE.llvm.10517063790234146748(ptr noalias noundef nonnull readonly align 1 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 dereferenceable(144) %2) - %13 = extractvalue { i32, i32 } %12, 0 - %14 = extractvalue { i32, i32 } %12, 1 br label %"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17haf53a1dbdba29f37E.exit" -15: ; preds = %7 - %16 = getelementptr inbounds i8, ptr %4, i64 8 - %17 = load ptr, ptr %16, align 8, !noalias !21, !nonnull !4, !align !27, !noundef !4 - %18 = call noundef i32 @stat(ptr noundef nonnull readonly %17, ptr noundef nonnull %2), !noalias !28 - br label %19 +13: ; preds = %7 + %14 = getelementptr inbounds i8, ptr %4, i64 8 + %15 = load ptr, ptr %14, align 8, !noalias !21, !nonnull !4, !align !27, !noundef !4 + %16 = call noundef i32 @stat(ptr noundef nonnull readonly %15, ptr noundef nonnull %2), !noalias !28 + br label %17 -19: ; preds = %15, %7 - %.sroa.4.0.i = phi i32 [ %18, %15 ], [ 22, %7 ] - %.sroa.0.0.i = phi i32 [ 0, %15 ], [ 1, %7 ] +17: ; preds = %13, %7 + %.sroa.4.0.i = phi i32 [ %16, %13 ], [ 22, %7 ] + %.sroa.0.0.i = phi i32 [ 0, %13 ], [ 1, %7 ] call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5), !noalias !21 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !21 + %18 = insertvalue { i32, i32 } poison, i32 %.sroa.0.0.i, 0 + %19 = insertvalue { i32, i32 } %18, i32 %.sroa.4.0.i, 1 br label %"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17haf53a1dbdba29f37E.exit" -"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17haf53a1dbdba29f37E.exit": ; preds = %11, %19 - %.sroa.4.1.i = phi i32 [ %14, %11 ], [ %.sroa.4.0.i, %19 ] - %.sroa.0.1.i = phi i32 [ %13, %11 ], [ %.sroa.0.0.i, %19 ] - %20 = insertvalue { i32, i32 } poison, i32 %.sroa.0.1.i, 0 - %21 = insertvalue { i32, i32 } %20, i32 %.sroa.4.1.i, 1 - ret { i32, i32 } %21 +"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17haf53a1dbdba29f37E.exit": ; preds = %11, %17 + %.merged.i = phi { i32, i32 } [ %12, %11 ], [ %19, %17 ] + ret { i32, i32 } %.merged.i } ; Function Attrs: nonlazybind uwtable @@ -173,33 +170,30 @@ define hidden { i32, i32 } @"_ZN48_$LT$std..path..Path$u20$as$u20$nix..NixPath$G call void @_ZN4core3ffi5c_str4CStr19from_bytes_with_nul17hf3534ae7c662e3b1E(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 1 %5, i64 noundef %9), !noalias !29 %10 = load i64, ptr %4, align 8, !range !26, !noalias !29, !noundef !4 %trunc.i = trunc nuw i64 %10 to i1 - br i1 %trunc.i, label %19, label %15 + br i1 %trunc.i, label %17, label %13 11: ; preds = %3 %12 = tail call { i32, i32 } @_ZN3nix24with_nix_path_allocating17h51a84ea0fac0ae77E.llvm.10517063790234146748(ptr noalias noundef nonnull readonly align 1 %0, i64 noundef %1, ptr noalias noundef nonnull align 8 dereferenceable(144) %2) - %13 = extractvalue { i32, i32 } %12, 0 - %14 = extractvalue { i32, i32 } %12, 1 br label %"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17h47f14a4c64b3b83aE.exit" -15: ; preds = %7 - %16 = getelementptr inbounds i8, ptr %4, i64 8 - %17 = load ptr, ptr %16, align 8, !noalias !29, !nonnull !4, !align !27, !noundef !4 - %18 = call noundef i32 @lstat(ptr noundef nonnull readonly %17, ptr noundef nonnull %2), !noalias !34 - br label %19 +13: ; preds = %7 + %14 = getelementptr inbounds i8, ptr %4, i64 8 + %15 = load ptr, ptr %14, align 8, !noalias !29, !nonnull !4, !align !27, !noundef !4 + %16 = call noundef i32 @lstat(ptr noundef nonnull readonly %15, ptr noundef nonnull %2), !noalias !34 + br label %17 -19: ; preds = %15, %7 - %.sroa.4.0.i = phi i32 [ %18, %15 ], [ 22, %7 ] - %.sroa.0.0.i = phi i32 [ 0, %15 ], [ 1, %7 ] +17: ; preds = %13, %7 + %.sroa.4.0.i = phi i32 [ %16, %13 ], [ 22, %7 ] + %.sroa.0.0.i = phi i32 [ 0, %13 ], [ 1, %7 ] call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5), !noalias !29 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !29 + %18 = insertvalue { i32, i32 } poison, i32 %.sroa.0.0.i, 0 + %19 = insertvalue { i32, i32 } %18, i32 %.sroa.4.0.i, 1 br label %"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17h47f14a4c64b3b83aE.exit" -"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17h47f14a4c64b3b83aE.exit": ; preds = %11, %19 - %.sroa.4.1.i = phi i32 [ %14, %11 ], [ %.sroa.4.0.i, %19 ] - %.sroa.0.1.i = phi i32 [ %13, %11 ], [ %.sroa.0.0.i, %19 ] - %20 = insertvalue { i32, i32 } poison, i32 %.sroa.0.1.i, 0 - %21 = insertvalue { i32, i32 } %20, i32 %.sroa.4.1.i, 1 - ret { i32, i32 } %21 +"_ZN45_$LT$$u5b$u8$u5d$$u20$as$u20$nix..NixPath$GT$13with_nix_path17h47f14a4c64b3b83aE.exit": ; preds = %11, %17 + %.merged.i = phi { i32, i32 } [ %12, %11 ], [ %19, %17 ] + ret { i32, i32 } %.merged.i } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable diff --git a/bench/coreutils-rs/optimized/2ph6t6nh0hmjeejh.ll b/bench/coreutils-rs/optimized/2ph6t6nh0hmjeejh.ll index 8120e4be906..ddb2620e8bb 100644 --- a/bench/coreutils-rs/optimized/2ph6t6nh0hmjeejh.ll +++ b/bench/coreutils-rs/optimized/2ph6t6nh0hmjeejh.ll @@ -529,22 +529,26 @@ define hidden noundef nonnull align 8 ptr @"_ZN3std3sys3pal6common12thread_local %.sroa.6.0.copyload.i = load i64, ptr %.sroa.6.0..0.1.sroa_idx.i, align 8, !alias.scope !107 store i64 0, ptr %1, align 8, !alias.scope !107 %4 = icmp eq i64 %.sroa.02.0.copyload.i, 1 - br i1 %4, label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h6e82523d64b953baE.llvm.15142108658608658745.exit", label %5 + br i1 %4, label %7, label %5 5: ; preds = %3, %2 %6 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE(), !noalias !107 - %7 = extractvalue { i64, i64 } %6, 0 - %8 = extractvalue { i64, i64 } %6, 1 br label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h6e82523d64b953baE.llvm.15142108658608658745.exit" -"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h6e82523d64b953baE.llvm.15142108658608658745.exit": ; preds = %3, %5 - %.sroa.0.0.i = phi i64 [ %7, %5 ], [ %.sroa.5.0.copyload.i, %3 ] - %.sroa.3.0.i = phi i64 [ %8, %5 ], [ %.sroa.6.0.copyload.i, %3 ] +7: ; preds = %3 + %8 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload.i, 0 + %9 = insertvalue { i64, i64 } %8, i64 %.sroa.6.0.copyload.i, 1 + br label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h6e82523d64b953baE.llvm.15142108658608658745.exit" + +"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h6e82523d64b953baE.llvm.15142108658608658745.exit": ; preds = %5, %7 + %.merged.i = phi { i64, i64 } [ %9, %7 ], [ %6, %5 ] + %10 = extractvalue { i64, i64 } %.merged.i, 0 + %11 = extractvalue { i64, i64 } %.merged.i, 1 store i64 1, ptr %0, align 8 %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 - store i64 %.sroa.0.0.i, ptr %.sroa.2.0..sroa_idx, align 8 + store i64 %10, ptr %.sroa.2.0..sroa_idx, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 16 - store i64 %.sroa.3.0.i, ptr %.sroa.3.0..sroa_idx, align 8 + store i64 %11, ptr %.sroa.3.0..sroa_idx, align 8 ret ptr %.sroa.2.0..sroa_idx } @@ -561,20 +565,20 @@ define hidden { i64, i64 } @"_ZN3std4hash6random11RandomState3new4KEYS7__getit28 %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..0.1.sroa_idx, align 8 store i64 0, ptr %0, align 8 %3 = icmp eq i64 %.sroa.02.0.copyload, 1 - br i1 %3, label %8, label %4 + br i1 %3, label %6, label %4 4: ; preds = %2, %1 %5 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE() - %6 = extractvalue { i64, i64 } %5, 0 - %7 = extractvalue { i64, i64 } %5, 1 - br label %8 + br label %9 + +6: ; preds = %2 + %7 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload, 0 + %8 = insertvalue { i64, i64 } %7, i64 %.sroa.6.0.copyload, 1 + br label %9 -8: ; preds = %2, %4 - %.sroa.0.0 = phi i64 [ %6, %4 ], [ %.sroa.5.0.copyload, %2 ] - %.sroa.3.0 = phi i64 [ %7, %4 ], [ %.sroa.6.0.copyload, %2 ] - %9 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %10 = insertvalue { i64, i64 } %9, i64 %.sroa.3.0, 1 - ret { i64, i64 } %10 +9: ; preds = %6, %4 + %.merged = phi { i64, i64 } [ %8, %6 ], [ %5, %4 ] + ret { i64, i64 } %.merged } ; Function Attrs: nonlazybind uwtable @@ -1553,13 +1557,13 @@ define hidden void @_ZN6chrono6offset8TimeZone17from_utc_datetime17h345ff19013f7 ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define hidden { ptr, i64 } @"_ZN71_$LT$alloc..borrow..Cow$LT$B$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hae5bb432c98bdf84E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %0) unnamed_addr #9 { - %.sroa.0.0.in = getelementptr inbounds i8, ptr %0, i64 8 - %.sroa.0.0 = load ptr, ptr %.sroa.0.0.in, align 8, !nonnull !11, !noundef !11 - %.sroa.5.0.in = getelementptr inbounds i8, ptr %0, i64 16 - %.sroa.5.0 = load i64, ptr %.sroa.5.0.in, align 8, !noundef !11 - %2 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %3 = insertvalue { ptr, i64 } %2, i64 %.sroa.5.0, 1 - ret { ptr, i64 } %3 + %.pn1.in = getelementptr inbounds i8, ptr %0, i64 16 + %.pn1 = load i64, ptr %.pn1.in, align 8, !noundef !11 + %.pn3.in = getelementptr inbounds i8, ptr %0, i64 8 + %.pn3 = load ptr, ptr %.pn3.in, align 8, !nonnull !11, !noundef !11 + %.pn = insertvalue { ptr, i64 } poison, ptr %.pn3, 0 + %.merged = insertvalue { ptr, i64 } %.pn, i64 %.pn1, 1 + ret { ptr, i64 } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/coreutils-rs/optimized/37bflzxgdl1s2bim.ll b/bench/coreutils-rs/optimized/37bflzxgdl1s2bim.ll index 896bc0d42b9..5fddc8af166 100644 --- a/bench/coreutils-rs/optimized/37bflzxgdl1s2bim.ll +++ b/bench/coreutils-rs/optimized/37bflzxgdl1s2bim.ll @@ -1763,8 +1763,8 @@ _ZN3std4path4Path4join17hfe4f79f45298948eE.exit: ; preds = %427 br label %_ZN5uu_cp7copydir24get_local_to_root_parent17hc784ea7756a04284E.exit.i 480: ; preds = %474 - %..val2.i.i = load i64, ptr %344, align 8, !alias.scope !280, !noalias !269 %..val.i.i = load ptr, ptr %.sroa.7275.0..sroa_idx, align 8, !alias.scope !280, !noalias !269, !nonnull !5 + %..val2.i.i = load i64, ptr %344, align 8, !alias.scope !280, !noalias !269 %481 = invoke { ptr, i64 } @_ZN3std4path4Path13_strip_prefix17h9bd2bfa29ca3ec2eE(ptr noalias noundef nonnull readonly align 1 %475, i64 noundef %476, ptr noalias noundef nonnull readonly align 1 %..val.i.i, i64 noundef %..val2.i.i) to label %.noexc48.i unwind label %.loopexit380, !noalias !267 diff --git a/bench/coreutils-rs/optimized/389ib4lq03w39x6a.ll b/bench/coreutils-rs/optimized/389ib4lq03w39x6a.ll index 28bd3f89620..59504d604d6 100644 --- a/bench/coreutils-rs/optimized/389ib4lq03w39x6a.ll +++ b/bench/coreutils-rs/optimized/389ib4lq03w39x6a.ll @@ -513,22 +513,26 @@ define hidden noundef nonnull align 8 ptr @"_ZN3std3sys3pal6common12thread_local %.sroa.6.0.copyload.i = load i64, ptr %.sroa.6.0..0.1.sroa_idx.i, align 8, !alias.scope !69 store i64 0, ptr %1, align 8, !alias.scope !69 %4 = icmp eq i64 %.sroa.02.0.copyload.i, 1 - br i1 %4, label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h05ff11e3088d7941E.llvm.13192257076079257957.exit", label %5 + br i1 %4, label %7, label %5 5: ; preds = %3, %2 %6 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE(), !noalias !69 - %7 = extractvalue { i64, i64 } %6, 0 - %8 = extractvalue { i64, i64 } %6, 1 br label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h05ff11e3088d7941E.llvm.13192257076079257957.exit" -"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h05ff11e3088d7941E.llvm.13192257076079257957.exit": ; preds = %3, %5 - %.sroa.0.0.i = phi i64 [ %7, %5 ], [ %.sroa.5.0.copyload.i, %3 ] - %.sroa.3.0.i = phi i64 [ %8, %5 ], [ %.sroa.6.0.copyload.i, %3 ] +7: ; preds = %3 + %8 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload.i, 0 + %9 = insertvalue { i64, i64 } %8, i64 %.sroa.6.0.copyload.i, 1 + br label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h05ff11e3088d7941E.llvm.13192257076079257957.exit" + +"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h05ff11e3088d7941E.llvm.13192257076079257957.exit": ; preds = %5, %7 + %.merged.i = phi { i64, i64 } [ %9, %7 ], [ %6, %5 ] + %10 = extractvalue { i64, i64 } %.merged.i, 0 + %11 = extractvalue { i64, i64 } %.merged.i, 1 store i64 1, ptr %0, align 8 %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 - store i64 %.sroa.0.0.i, ptr %.sroa.2.0..sroa_idx, align 8 + store i64 %10, ptr %.sroa.2.0..sroa_idx, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 16 - store i64 %.sroa.3.0.i, ptr %.sroa.3.0..sroa_idx, align 8 + store i64 %11, ptr %.sroa.3.0..sroa_idx, align 8 ret ptr %.sroa.2.0..sroa_idx } @@ -545,20 +549,20 @@ define hidden { i64, i64 } @"_ZN3std4hash6random11RandomState3new4KEYS7__getit28 %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..0.1.sroa_idx, align 8 store i64 0, ptr %0, align 8 %3 = icmp eq i64 %.sroa.02.0.copyload, 1 - br i1 %3, label %8, label %4 + br i1 %3, label %6, label %4 4: ; preds = %2, %1 %5 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE() - %6 = extractvalue { i64, i64 } %5, 0 - %7 = extractvalue { i64, i64 } %5, 1 - br label %8 + br label %9 + +6: ; preds = %2 + %7 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload, 0 + %8 = insertvalue { i64, i64 } %7, i64 %.sroa.6.0.copyload, 1 + br label %9 -8: ; preds = %2, %4 - %.sroa.0.0 = phi i64 [ %6, %4 ], [ %.sroa.5.0.copyload, %2 ] - %.sroa.3.0 = phi i64 [ %7, %4 ], [ %.sroa.6.0.copyload, %2 ] - %9 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %10 = insertvalue { i64, i64 } %9, i64 %.sroa.3.0, 1 - ret { i64, i64 } %10 +9: ; preds = %6, %4 + %.merged = phi { i64, i64 } [ %8, %6 ], [ %5, %4 ] + ret { i64, i64 } %.merged } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable diff --git a/bench/coreutils-rs/optimized/3a9rbx42d86fwku2.ll b/bench/coreutils-rs/optimized/3a9rbx42d86fwku2.ll index 2e2a964ff60..28c5f0630f2 100644 --- a/bench/coreutils-rs/optimized/3a9rbx42d86fwku2.ll +++ b/bench/coreutils-rs/optimized/3a9rbx42d86fwku2.ll @@ -1357,7 +1357,7 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit: ; %.sroa.618.0 = phi i64 [ %.val1.i, %119 ], [ 1, %84 ], [ 1, %"_ZN78_$LT$std..ffi..os_str..OsString$u20$as$u20$core..cmp..PartialEq$LT$str$GT$$GT$2eq17h9e3fbbf39e857366E.exit" ], [ 1, %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit.thread ], [ 1, %102 ] %49 = tail call noundef align 16 dereferenceable_or_null(112) ptr @"_ZN12clap_builder4util8flat_map20FlatMap$LT$K$C$V$GT$3get17hd114727ed3896974E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) %1, ptr noalias noundef nonnull readonly align 1 @anon.305833e901efdab365351de932979111.46, i64 noundef 16), !noalias !128 %50 = icmp eq ptr %49, null - br i1 %50, label %"_ZN6uu_cut14get_delimiters28_$u7b$$u7b$closure$u7d$$u7d$17hd376541e46cbad56E.exit", label %51 + br i1 %50, label %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63.thread, label %51 51: ; preds = %48 %52 = tail call noundef i128 @_ZN12clap_builder6parser7matches11matched_arg10MatchedArg13infer_type_id17hf290abf4832dccb4E(ptr noalias noundef nonnull readonly align 16 dereferenceable(112) %49, i128 noundef -75035133943807973589178565794283963657), !noalias !133 @@ -1367,7 +1367,7 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit: ; 54: ; preds = %51 %55 = tail call noundef align 16 dereferenceable_or_null(32) ptr @_ZN12clap_builder6parser7matches11matched_arg10MatchedArg5first17h50d2ee94eaddf3d5E(ptr noalias noundef nonnull readonly align 16 dereferenceable(112) %49), !noalias !136 %56 = icmp eq ptr %55, null - br i1 %56, label %"_ZN6uu_cut14get_delimiters28_$u7b$$u7b$closure$u7d$$u7d$17hd376541e46cbad56E.exit", label %57 + br i1 %56, label %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63.thread, label %57 57: ; preds = %54 tail call void @llvm.experimental.noalias.scope.decl(metadata !137) @@ -1493,7 +1493,7 @@ _ZN6uucore4mods5error12USimpleError3new17h662ce6101a732c3bE.exit: ; preds = %.no store ptr %92, ptr %100, align 8 %101 = getelementptr inbounds i8, ptr %0, i64 16 store ptr @anon.665fe9b1cceef5d373a7ecaaa3833e15.7.llvm.11389445161417936973, ptr %101, align 8 - br label %130 + br label %134 102: ; preds = %84 %103 = getelementptr i8, ptr %32, i64 24 @@ -1553,7 +1553,7 @@ _ZN6uucore4mods5error12USimpleError3new17h662ce6101a732c3bE.exit: ; preds = %.no store ptr %122, ptr %124, align 8 %125 = getelementptr inbounds i8, ptr %0, i64 16 store ptr %123, ptr %125, align 8 - br label %130 + br label %134 126: ; preds = %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63 %127 = icmp ne ptr %.val51, null @@ -1567,23 +1567,31 @@ _ZN6uucore4mods5error12USimpleError3new17h662ce6101a732c3bE.exit: ; preds = %.no br i1 %128, label %"_ZN6uu_cut14get_delimiters28_$u7b$$u7b$closure$u7d$$u7d$17hd376541e46cbad56E.exit", label %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h76c8a946bfff30cbE.exit.i" "_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h76c8a946bfff30cbE.exit.i": ; preds = %"_ZN78_$LT$std..ffi..os_str..OsString$u20$as$u20$core..cmp..PartialEq$LT$str$GT$$GT$2eq17h9e3fbbf39e857366E.exit.i", %126 + %129 = insertvalue { ptr, i64 } poison, ptr %.val51, 0 + %130 = insertvalue { ptr, i64 } %129, i64 %.val52, 1 br label %"_ZN6uu_cut14get_delimiters28_$u7b$$u7b$closure$u7d$$u7d$17hd376541e46cbad56E.exit" -"_ZN6uu_cut14get_delimiters28_$u7b$$u7b$closure$u7d$$u7d$17hd376541e46cbad56E.exit": ; preds = %54, %48, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h76c8a946bfff30cbE.exit.i", %"_ZN78_$LT$std..ffi..os_str..OsString$u20$as$u20$core..cmp..PartialEq$LT$str$GT$$GT$2eq17h9e3fbbf39e857366E.exit.i", %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63 - %.sroa.019.0 = phi ptr [ %.val51, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h76c8a946bfff30cbE.exit.i" ], [ @anon.305833e901efdab365351de932979111.44, %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63 ], [ @anon.305833e901efdab365351de932979111.44, %"_ZN78_$LT$std..ffi..os_str..OsString$u20$as$u20$core..cmp..PartialEq$LT$str$GT$$GT$2eq17h9e3fbbf39e857366E.exit.i" ], [ null, %48 ], [ null, %54 ] - %.sroa.3.0 = phi i64 [ %.val52, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h76c8a946bfff30cbE.exit.i" ], [ 1, %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63 ], [ 1, %"_ZN78_$LT$std..ffi..os_str..OsString$u20$as$u20$core..cmp..PartialEq$LT$str$GT$$GT$2eq17h9e3fbbf39e857366E.exit.i" ], [ undef, %48 ], [ undef, %54 ] - %129 = getelementptr inbounds i8, ptr %0, i64 8 - store ptr %.sroa.017.0, ptr %129, align 8 +"_ZN6uu_cut14get_delimiters28_$u7b$$u7b$closure$u7d$$u7d$17hd376541e46cbad56E.exit": ; preds = %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63, %"_ZN78_$LT$std..ffi..os_str..OsString$u20$as$u20$core..cmp..PartialEq$LT$str$GT$$GT$2eq17h9e3fbbf39e857366E.exit.i", %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h76c8a946bfff30cbE.exit.i" + %.merged.i = phi { ptr, i64 } [ %130, %"_ZN4core6result19Result$LT$T$C$E$GT$6unwrap17h76c8a946bfff30cbE.exit.i" ], [ { ptr @anon.305833e901efdab365351de932979111.44, i64 1 }, %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63 ], [ { ptr @anon.305833e901efdab365351de932979111.44, i64 1 }, %"_ZN78_$LT$std..ffi..os_str..OsString$u20$as$u20$core..cmp..PartialEq$LT$str$GT$$GT$2eq17h9e3fbbf39e857366E.exit.i" ] + %131 = extractvalue { ptr, i64 } %.merged.i, 0 + %132 = extractvalue { ptr, i64 } %.merged.i, 1 + br label %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63.thread + +_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63.thread: ; preds = %54, %48, %"_ZN6uu_cut14get_delimiters28_$u7b$$u7b$closure$u7d$$u7d$17hd376541e46cbad56E.exit" + %.sroa.019.0 = phi ptr [ %131, %"_ZN6uu_cut14get_delimiters28_$u7b$$u7b$closure$u7d$$u7d$17hd376541e46cbad56E.exit" ], [ null, %48 ], [ null, %54 ] + %.sroa.3.0 = phi i64 [ %132, %"_ZN6uu_cut14get_delimiters28_$u7b$$u7b$closure$u7d$$u7d$17hd376541e46cbad56E.exit" ], [ undef, %48 ], [ undef, %54 ] + %133 = getelementptr inbounds i8, ptr %0, i64 8 + store ptr %.sroa.017.0, ptr %133, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 16 store i64 %.sroa.618.0, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 24 store ptr %.sroa.019.0, ptr %.sroa.5.0..sroa_idx, align 8 %.sroa.616.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 32 store i64 %.sroa.3.0, ptr %.sroa.616.0..sroa_idx, align 8 - br label %130 + br label %134 -130: ; preds = %_ZN6uucore4mods5error12USimpleError3new17h662ce6101a732c3bE.exit, %120, %"_ZN6uu_cut14get_delimiters28_$u7b$$u7b$closure$u7d$$u7d$17hd376541e46cbad56E.exit" - %storemerge = phi i64 [ 0, %"_ZN6uu_cut14get_delimiters28_$u7b$$u7b$closure$u7d$$u7d$17hd376541e46cbad56E.exit" ], [ 1, %120 ], [ 1, %_ZN6uucore4mods5error12USimpleError3new17h662ce6101a732c3bE.exit ] +134: ; preds = %_ZN6uucore4mods5error12USimpleError3new17h662ce6101a732c3bE.exit, %120, %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63.thread + %storemerge = phi i64 [ 0, %_ZN12clap_builder6parser5error12MatchesError6unwrap17h533190a0ac4545dfE.exit63.thread ], [ 1, %120 ], [ 1, %_ZN6uucore4mods5error12USimpleError3new17h662ce6101a732c3bE.exit ] store i64 %storemerge, ptr %0, align 8 ret void } diff --git a/bench/coreutils-rs/optimized/3ri12qup21vdgfw4.ll b/bench/coreutils-rs/optimized/3ri12qup21vdgfw4.ll index 9e0fe5e562b..67384f8694d 100644 --- a/bench/coreutils-rs/optimized/3ri12qup21vdgfw4.ll +++ b/bench/coreutils-rs/optimized/3ri12qup21vdgfw4.ll @@ -644,16 +644,15 @@ _ZN3std4sync6poison4Flag4done17h6aecd475d8dd2349E.exit.i.i.i.i.i.i.i.i.i: ; pred br i1 %174, label %.loopexit, label %23 175: ; preds = %"_ZN9itertools9Itertools13find_position28_$u7b$$u7b$closure$u7d$$u7d$17hffa7c13e2e3e8644E.exit.i.i" - %176 = add i64 %.pre129, 1 - store i64 %176, ptr %2, align 8, !noalias !55 + %176 = insertvalue { i64, ptr } poison, i64 %25, 0 + %177 = insertvalue { i64, ptr } %176, ptr %26, 1 + %178 = add i64 %.pre129, 1 + store i64 %178, ptr %2, align 8, !noalias !55 br label %.loopexit .loopexit: ; preds = %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h69165de91c83bcfbE.exit", %3, %175 - %.sroa.3.0 = phi ptr [ %26, %175 ], [ null, %3 ], [ null, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h69165de91c83bcfbE.exit" ] - %.sroa.0.0 = phi i64 [ %25, %175 ], [ undef, %3 ], [ undef, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h69165de91c83bcfbE.exit" ] - %177 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 - %178 = insertvalue { i64, ptr } %177, ptr %.sroa.3.0, 1 - ret { i64, ptr } %178 + %.merged = phi { i64, ptr } [ %177, %175 ], [ { i64 undef, ptr null }, %3 ], [ { i64 undef, ptr null }, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h69165de91c83bcfbE.exit" ] + ret { i64, ptr } %.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable diff --git a/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll b/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll index 0b9515d3e01..00f78c7b0d5 100644 --- a/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll +++ b/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll @@ -1127,7 +1127,7 @@ default.unreachable7: ; preds = %12 define internal fastcc void @_ZN10num_bigint6bigint6BigInt12from_biguint17hcc6dbcfeb5ddc4b2E(ptr noalias nocapture noundef writeonly align 8 dereferenceable(32) %0, i8 noundef %1, ptr noalias nocapture noundef align 8 dereferenceable(24) %2) unnamed_addr #0 personality ptr @rust_eh_personality { %4 = alloca { { { ptr, i64 }, i64 }, {} }, align 8 %5 = icmp eq i8 %1, 1 - br i1 %5, label %6, label %38 + br i1 %5, label %6, label %40 6: ; preds = %3 tail call void @llvm.experimental.noalias.scope.decl(metadata !213) @@ -1140,7 +1140,7 @@ define internal fastcc void @_ZN10num_bigint6bigint6BigInt12from_biguint17hcc6db %.sroa.5.0..sroa_idx.i = getelementptr inbounds i8, ptr %4, i64 16 store i64 2, ptr %.sroa.5.0..sroa_idx.i, align 8, !noalias !213 invoke void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$14extend_trusted17h1d9a4e70c56c3c7aE.llvm.469041376202038926"(ptr noalias noundef nonnull align 8 dereferenceable(24) %2, ptr noalias nocapture noundef nonnull align 8 dereferenceable(24) %4) - to label %.noexc unwind label %42 + to label %.noexc unwind label %44 .noexc: ; preds = %6 tail call void @llvm.experimental.noalias.scope.decl(metadata !216) @@ -1194,7 +1194,7 @@ define internal fastcc void @_ZN10num_bigint6bigint6BigInt12from_biguint17hcc6db 32: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17h7a8406789308c251E.exit.i.i" %33 = invoke { i64, i64 } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$6shrink17h7de441a984ce4930E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %2, i64 noundef %16) - to label %.noexc3 unwind label %42 + to label %.noexc3 unwind label %44 .noexc3: ; preds = %32 %34 = extractvalue { i64, i64 } %33, 0 @@ -1205,51 +1205,53 @@ define internal fastcc void @_ZN10num_bigint6bigint6BigInt12from_biguint17hcc6db 35: ; preds = %.noexc3 invoke void @_ZN5alloc7raw_vec17capacity_overflow17hbca7785f3bc15d50E() #16 - to label %.noexc4 unwind label %42 + to label %.noexc4 unwind label %44 .noexc4: ; preds = %35 unreachable 36: ; preds = %.noexc3 %37 = extractvalue { i64, i64 } %33, 1 - invoke void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %34, i64 noundef %37) #16 - to label %.noexc5 unwind label %42 + %38 = icmp eq i64 %34, -9223372036854775807 + %39 = select i1 %38, i64 undef, i64 %37 + invoke void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %34, i64 noundef %39) #16 + to label %.noexc5 unwind label %44 .noexc5: ; preds = %36 unreachable _ZN10num_bigint7biguint7BigUint17assign_from_slice17h19ad959abb92a724E.exit: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$8truncate17h7a8406789308c251E.exit.i.i", %.noexc3 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4) - br label %44 + br label %46 -38: ; preds = %3 - %39 = getelementptr inbounds i8, ptr %2, i64 16 - %40 = load i64, ptr %39, align 8, !noundef !5 - %41 = icmp eq i64 %40, 0 - %spec.select = select i1 %41, i8 1, i8 %1 - br label %44 +40: ; preds = %3 + %41 = getelementptr inbounds i8, ptr %2, i64 16 + %42 = load i64, ptr %41, align 8, !noundef !5 + %43 = icmp eq i64 %42, 0 + %spec.select = select i1 %43, i8 1, i8 %1 + br label %46 -42: ; preds = %36, %35, %32, %6 - %43 = landingpad { ptr, i32 } +44: ; preds = %36, %35, %32, %6 + %45 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr49drop_in_place$LT$num_bigint..biguint..BigUint$GT$17h90059a324b32667aE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %2) #14 - to label %48 unwind label %46 + to label %50 unwind label %48 -44: ; preds = %_ZN10num_bigint7biguint7BigUint17assign_from_slice17h19ad959abb92a724E.exit, %38 - %.0 = phi i8 [ 1, %_ZN10num_bigint7biguint7BigUint17assign_from_slice17h19ad959abb92a724E.exit ], [ %spec.select, %38 ] - %45 = getelementptr inbounds i8, ptr %0, i64 24 - store i8 %.0, ptr %45, align 8 +46: ; preds = %_ZN10num_bigint7biguint7BigUint17assign_from_slice17h19ad959abb92a724E.exit, %40 + %.0 = phi i8 [ 1, %_ZN10num_bigint7biguint7BigUint17assign_from_slice17h19ad959abb92a724E.exit ], [ %spec.select, %40 ] + %47 = getelementptr inbounds i8, ptr %0, i64 24 + store i8 %.0, ptr %47, align 8 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 24, i1 false) ret void -46: ; preds = %42 - %47 = landingpad { ptr, i32 } +48: ; preds = %44 + %49 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #15 unreachable -48: ; preds = %42 - resume { ptr, i32 } %43 +50: ; preds = %44 + resume { ptr, i32 } %45 } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/coreutils-rs/optimized/3x959pa9na58uqov.ll b/bench/coreutils-rs/optimized/3x959pa9na58uqov.ll index 14f6793f907..a50407d1e61 100644 --- a/bench/coreutils-rs/optimized/3x959pa9na58uqov.ll +++ b/bench/coreutils-rs/optimized/3x959pa9na58uqov.ll @@ -5265,17 +5265,12 @@ common.resume: ; preds = %39, %47, %27, %15 56: ; preds = %3 %57 = call { ptr, ptr } @"_ZN6uucore4mods5error139_$LT$impl$u20$core..convert..From$LT$std..io..error..Error$GT$$u20$for$u20$alloc..boxed..Box$LT$dyn$u20$uucore..mods..error..UError$GT$$GT$4from17h5f3f9db19071e545E"(ptr noundef nonnull %10) - %58 = extractvalue { ptr, ptr } %57, 0 - %59 = extractvalue { ptr, ptr } %57, 1 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %6) br label %"_ZN4core3ptr98drop_in_place$LT$core..option..Option$LT$alloc..boxed..Box$LT$dyn$u20$std..io..BufRead$GT$$GT$$GT$17h90a0454564d37616E.llvm.14531926216617506853.exit" "_ZN4core3ptr98drop_in_place$LT$core..option..Option$LT$alloc..boxed..Box$LT$dyn$u20$std..io..BufRead$GT$$GT$$GT$17h90a0454564d37616E.llvm.14531926216617506853.exit": ; preds = %55, %48, %"_ZN5alloc5boxed12Box$LT$T$GT$3new17hba157fcfb40e04c0E.llvm.14531926216617506853.exit", %56 - %.sroa.3.0 = phi ptr [ %59, %56 ], [ undef, %"_ZN5alloc5boxed12Box$LT$T$GT$3new17hba157fcfb40e04c0E.llvm.14531926216617506853.exit" ], [ undef, %48 ], [ undef, %55 ] - %.sroa.0.0 = phi ptr [ %58, %56 ], [ null, %"_ZN5alloc5boxed12Box$LT$T$GT$3new17hba157fcfb40e04c0E.llvm.14531926216617506853.exit" ], [ null, %48 ], [ null, %55 ] - %60 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %61 = insertvalue { ptr, ptr } %60, ptr %.sroa.3.0, 1 - ret { ptr, ptr } %61 + %.merged = phi { ptr, ptr } [ %57, %56 ], [ { ptr null, ptr undef }, %"_ZN5alloc5boxed12Box$LT$T$GT$3new17hba157fcfb40e04c0E.llvm.14531926216617506853.exit" ], [ { ptr null, ptr undef }, %48 ], [ { ptr null, ptr undef }, %55 ] + ret { ptr, ptr } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/coreutils-rs/optimized/49l60kyy3fxfwjj0.ll b/bench/coreutils-rs/optimized/49l60kyy3fxfwjj0.ll index 88c35828ef6..5196bfc8409 100644 --- a/bench/coreutils-rs/optimized/49l60kyy3fxfwjj0.ll +++ b/bench/coreutils-rs/optimized/49l60kyy3fxfwjj0.ll @@ -401,16 +401,11 @@ define { ptr, i64 } @_ZN4core4iter6traits8iterator8Iterator3nth17h6e4bc65b0ba79d _ZN4core4iter6traits8iterator8Iterator10advance_by17h60a295f005b248dcE.exit.thread: ; preds = %5 %10 = tail call { ptr, i64 } @_ZN4core4iter6traits8iterator8Iterator4find17h9c53fffebf38163cE(ptr align 8 %0, ptr nonnull align 1 %3, ptr nonnull align 1 %4) - %11 = extractvalue { ptr, i64 } %10, 0 - %12 = extractvalue { ptr, i64 } %10, 1 br label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h60a295f005b248dcE.exit _ZN4core4iter6traits8iterator8Iterator10advance_by17h60a295f005b248dcE.exit: ; preds = %6, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h60a295f005b248dcE.exit.thread - %.sroa.3.0 = phi i64 [ %12, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h60a295f005b248dcE.exit.thread ], [ undef, %6 ] - %.sroa.0.0 = phi ptr [ %11, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h60a295f005b248dcE.exit.thread ], [ null, %6 ] - %13 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %14 = insertvalue { ptr, i64 } %13, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %14 + %.merged = phi { ptr, i64 } [ %10, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h60a295f005b248dcE.exit.thread ], [ { ptr null, i64 undef }, %6 ] + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable @@ -436,16 +431,11 @@ define { ptr, i64 } @_ZN4core4iter6traits8iterator8Iterator3nth17h7cf19edd89c195 _ZN4core4iter6traits8iterator8Iterator10advance_by17hfbf2674c76f42004E.exit.thread: ; preds = %6 tail call void @llvm.assume(i1 %5) %11 = tail call { ptr, i64 } @_ZN4core4iter6traits8iterator8Iterator4find17h4f82092896f38708E(ptr nonnull align 8 %3, ptr nonnull align 1 %4, ptr nonnull align 8 %0) - %12 = extractvalue { ptr, i64 } %11, 0 - %13 = extractvalue { ptr, i64 } %11, 1 br label %_ZN4core4iter6traits8iterator8Iterator10advance_by17hfbf2674c76f42004E.exit _ZN4core4iter6traits8iterator8Iterator10advance_by17hfbf2674c76f42004E.exit: ; preds = %7, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hfbf2674c76f42004E.exit.thread - %.sroa.3.0 = phi i64 [ %13, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hfbf2674c76f42004E.exit.thread ], [ undef, %7 ] - %.sroa.0.0 = phi ptr [ %12, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hfbf2674c76f42004E.exit.thread ], [ null, %7 ] - %14 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %15 = insertvalue { ptr, i64 } %14, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %15 + %.merged = phi { ptr, i64 } [ %11, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hfbf2674c76f42004E.exit.thread ], [ { ptr null, i64 undef }, %7 ] + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable @@ -468,16 +458,11 @@ define { ptr, i64 } @_ZN4core4iter6traits8iterator8Iterator3nth17h9685c83d1caf1a _ZN4core4iter6traits8iterator8Iterator10advance_by17h29e6227faf28e4adE.exit.thread: ; preds = %5 %10 = tail call { ptr, i64 } @_ZN4core4iter6traits8iterator8Iterator4find17hee3dc89172be79a0E(ptr align 8 %0, ptr nonnull align 1 %3, ptr nonnull align 1 %4) - %11 = extractvalue { ptr, i64 } %10, 0 - %12 = extractvalue { ptr, i64 } %10, 1 br label %_ZN4core4iter6traits8iterator8Iterator10advance_by17h29e6227faf28e4adE.exit _ZN4core4iter6traits8iterator8Iterator10advance_by17h29e6227faf28e4adE.exit: ; preds = %6, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h29e6227faf28e4adE.exit.thread - %.sroa.3.0 = phi i64 [ %12, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h29e6227faf28e4adE.exit.thread ], [ undef, %6 ] - %.sroa.0.0 = phi ptr [ %11, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h29e6227faf28e4adE.exit.thread ], [ null, %6 ] - %13 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %14 = insertvalue { ptr, i64 } %13, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %14 + %.merged = phi { ptr, i64 } [ %10, %_ZN4core4iter6traits8iterator8Iterator10advance_by17h29e6227faf28e4adE.exit.thread ], [ { ptr null, i64 undef }, %6 ] + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable @@ -500,16 +485,11 @@ define { ptr, i64 } @_ZN4core4iter6traits8iterator8Iterator3nth17hb78a6431b9b8f3 _ZN4core4iter6traits8iterator8Iterator10advance_by17hcbe386b774344537E.exit.thread: ; preds = %5 %10 = tail call { ptr, i64 } @_ZN4core4iter6traits8iterator8Iterator4find17he2e2387d1f517709E(ptr align 8 %0, ptr nonnull align 1 %3, ptr nonnull align 1 %4) - %11 = extractvalue { ptr, i64 } %10, 0 - %12 = extractvalue { ptr, i64 } %10, 1 br label %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcbe386b774344537E.exit _ZN4core4iter6traits8iterator8Iterator10advance_by17hcbe386b774344537E.exit: ; preds = %6, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcbe386b774344537E.exit.thread - %.sroa.3.0 = phi i64 [ %12, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcbe386b774344537E.exit.thread ], [ undef, %6 ] - %.sroa.0.0 = phi ptr [ %11, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcbe386b774344537E.exit.thread ], [ null, %6 ] - %13 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %14 = insertvalue { ptr, i64 } %13, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %14 + %.merged = phi { ptr, i64 } [ %10, %_ZN4core4iter6traits8iterator8Iterator10advance_by17hcbe386b774344537E.exit.thread ], [ { ptr null, i64 undef }, %6 ] + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/coreutils-rs/optimized/4o7xlymj7t9iafq7.ll b/bench/coreutils-rs/optimized/4o7xlymj7t9iafq7.ll index 20a2ed9f274..45fd49595c7 100644 --- a/bench/coreutils-rs/optimized/4o7xlymj7t9iafq7.ll +++ b/bench/coreutils-rs/optimized/4o7xlymj7t9iafq7.ll @@ -57,9 +57,11 @@ define hidden { ptr, i64 } @"_ZN4core5slice4iter13Iter$LT$T$GT$10make_slice17h21 ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define hidden { i64, i64 } @"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h518faa5c371368c7E.llvm.469041376202038926"(i64 noundef %0, i64 %1) unnamed_addr #2 { - %3 = insertvalue { i64, i64 } poison, i64 %0, 0 - %4 = insertvalue { i64, i64 } %3, i64 %1, 1 - ret { i64, i64 } %4 + %3 = icmp eq i64 %0, -9223372036854775807 + %4 = insertvalue { i64, i64 } poison, i64 %0, 0 + %5 = insertvalue { i64, i64 } %4, i64 %1, 1 + %.merged = select i1 %3, { i64, i64 } { i64 -9223372036854775807, i64 undef }, { i64, i64 } %5 + ret { i64, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable @@ -106,7 +108,9 @@ define hidden void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$13shrink_to_fit17hcf95a14012 10: ; preds = %6 %11 = extractvalue { i64, i64 } %7, 1 - tail call void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %8, i64 noundef %11) #12 + %12 = icmp eq i64 %8, -9223372036854775807 + %13 = select i1 %12, i64 undef, i64 %11 + tail call void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %8, i64 noundef %13) #12 unreachable _ZN5alloc7raw_vec14handle_reserve17hf0112dc2ee693d5aE.llvm.469041376202038926.exit: ; preds = %6, %1 @@ -245,7 +249,9 @@ define hidden void @_ZN5alloc7raw_vec14handle_reserve17hf0112dc2ee693d5aE.llvm.4 unreachable 5: ; preds = %2 - tail call void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %0, i64 noundef %1) #12 + %6 = icmp eq i64 %0, -9223372036854775807 + %7 = select i1 %6, i64 undef, i64 %1 + tail call void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %0, i64 noundef %7) #12 unreachable } diff --git a/bench/coreutils-rs/optimized/4qf8fxdjxuwdwevl.ll b/bench/coreutils-rs/optimized/4qf8fxdjxuwdwevl.ll index c325fd90041..930f2a37942 100644 --- a/bench/coreutils-rs/optimized/4qf8fxdjxuwdwevl.ll +++ b/bench/coreutils-rs/optimized/4qf8fxdjxuwdwevl.ll @@ -466,24 +466,24 @@ define hidden void @_ZN6uucore8features5pipes6splice17h1815b91d86907b5fE(ptr noa ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define hidden { ptr, i64 } @"_ZN71_$LT$alloc..borrow..Cow$LT$B$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17h167ab1564de05c7dE"(ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %0) unnamed_addr #9 { - %.sroa.0.0.in = getelementptr inbounds i8, ptr %0, i64 8 - %.sroa.0.0 = load ptr, ptr %.sroa.0.0.in, align 8, !nonnull !16, !noundef !16 - %.sroa.5.0.in = getelementptr inbounds i8, ptr %0, i64 16 - %.sroa.5.0 = load i64, ptr %.sroa.5.0.in, align 8, !noundef !16 - %2 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %3 = insertvalue { ptr, i64 } %2, i64 %.sroa.5.0, 1 - ret { ptr, i64 } %3 + %.pn1.in = getelementptr inbounds i8, ptr %0, i64 16 + %.pn1 = load i64, ptr %.pn1.in, align 8, !noundef !16 + %.pn3.in = getelementptr inbounds i8, ptr %0, i64 8 + %.pn3 = load ptr, ptr %.pn3.in, align 8, !nonnull !16, !noundef !16 + %.pn = insertvalue { ptr, i64 } poison, ptr %.pn3, 0 + %.merged = insertvalue { ptr, i64 } %.pn, i64 %.pn1, 1 + ret { ptr, i64 } %.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define hidden { ptr, i64 } @"_ZN71_$LT$alloc..borrow..Cow$LT$B$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17h9c4111f1f38fa5a2E"(ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %0) unnamed_addr #9 { - %.sroa.0.0.in = getelementptr inbounds i8, ptr %0, i64 8 - %.sroa.0.0 = load ptr, ptr %.sroa.0.0.in, align 8, !nonnull !16, !noundef !16 - %.sroa.5.0.in = getelementptr inbounds i8, ptr %0, i64 16 - %.sroa.5.0 = load i64, ptr %.sroa.5.0.in, align 8, !noundef !16 - %2 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %3 = insertvalue { ptr, i64 } %2, i64 %.sroa.5.0, 1 - ret { ptr, i64 } %3 + %.pn1.in = getelementptr inbounds i8, ptr %0, i64 16 + %.pn1 = load i64, ptr %.pn1.in, align 8, !noundef !16 + %.pn3.in = getelementptr inbounds i8, ptr %0, i64 8 + %.pn3 = load ptr, ptr %.pn3.in, align 8, !nonnull !16, !noundef !16 + %.pn = insertvalue { ptr, i64 } poison, ptr %.pn3, 0 + %.merged = insertvalue { ptr, i64 } %.pn, i64 %.pn1, 1 + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable @@ -909,13 +909,13 @@ _ZN12clap_builder4util9any_value8AnyValue3new17h422d34f43d6ad92bE.exit: ; preds ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable define hidden { ptr, i64 } @"_ZN77_$LT$alloc..borrow..Cow$LT$T$GT$$u20$as$u20$core..convert..AsRef$LT$T$GT$$GT$6as_ref17h001f2d5cadeb3d3bE"(ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %0) unnamed_addr #9 { - %.sroa.0.0.in.i = getelementptr inbounds i8, ptr %0, i64 8 - %.sroa.0.0.i = load ptr, ptr %.sroa.0.0.in.i, align 8, !alias.scope !190, !nonnull !16, !noundef !16 - %.sroa.5.0.in.i = getelementptr inbounds i8, ptr %0, i64 16 - %.sroa.5.0.i = load i64, ptr %.sroa.5.0.in.i, align 8, !alias.scope !190, !noundef !16 - %2 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0.i, 0 - %3 = insertvalue { ptr, i64 } %2, i64 %.sroa.5.0.i, 1 - ret { ptr, i64 } %3 + %.pn1.in.i = getelementptr inbounds i8, ptr %0, i64 16 + %.pn1.i = load i64, ptr %.pn1.in.i, align 8, !alias.scope !190, !noundef !16 + %.pn3.in.i = getelementptr inbounds i8, ptr %0, i64 8 + %.pn3.i = load ptr, ptr %.pn3.in.i, align 8, !alias.scope !190, !nonnull !16, !noundef !16 + %.pn.i = insertvalue { ptr, i64 } poison, ptr %.pn3.i, 0 + %.merged.i = insertvalue { ptr, i64 } %.pn.i, i64 %.pn1.i, 1 + ret { ptr, i64 } %.merged.i } ; Function Attrs: nonlazybind uwtable diff --git a/bench/coreutils-rs/optimized/575hpdlz1pzyx0g8.ll b/bench/coreutils-rs/optimized/575hpdlz1pzyx0g8.ll index ba05f07a1be..1401e9688a2 100644 --- a/bench/coreutils-rs/optimized/575hpdlz1pzyx0g8.ll +++ b/bench/coreutils-rs/optimized/575hpdlz1pzyx0g8.ll @@ -7,21 +7,16 @@ target triple = "x86_64-unknown-linux-gnu" define { ptr, i64 } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h074b07ea5d398b18E"(ptr align 8 %0) unnamed_addr #0 { %2 = tail call align 8 ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h2b428567a1b9d23bE"(ptr align 8 %0) %3 = icmp eq ptr %2, null - br i1 %3, label %9, label %4 + br i1 %3, label %7, label %4 4: ; preds = %1 %5 = getelementptr inbounds i8, ptr %0, i64 16 %6 = tail call { ptr, i64 } @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h480696c188648457E"(ptr nonnull align 1 %5, ptr nonnull align 8 %2) - %7 = extractvalue { ptr, i64 } %6, 0 - %8 = extractvalue { ptr, i64 } %6, 1 - br label %9 + br label %7 -9: ; preds = %1, %4 - %.sroa.3.0 = phi i64 [ %8, %4 ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %7, %4 ], [ null, %1 ] - %10 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %11 = insertvalue { ptr, i64 } %10, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %11 +7: ; preds = %1, %4 + %.merged = phi { ptr, i64 } [ %6, %4 ], [ { ptr null, i64 undef }, %1 ] + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable @@ -29,43 +24,33 @@ define { ptr, i64 } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20 %2 = tail call { ptr, i64 } @"_ZN99_$LT$core..str..iter..SplitInclusive$LT$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h7ee24f042db0e7ddE"(ptr align 8 %0) %3 = extractvalue { ptr, i64 } %2, 0 %4 = icmp eq ptr %3, null - br i1 %4, label %11, label %5 + br i1 %4, label %9, label %5 5: ; preds = %1 %6 = getelementptr inbounds i8, ptr %0, i64 72 %7 = extractvalue { ptr, i64 } %2, 1 %8 = tail call { ptr, i64 } @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17h2c3a735d9d782e59E"(ptr nonnull align 1 %6, ptr nonnull align 1 %3, i64 %7) - %9 = extractvalue { ptr, i64 } %8, 0 - %10 = extractvalue { ptr, i64 } %8, 1 - br label %11 + br label %9 -11: ; preds = %1, %5 - %.sroa.3.0 = phi i64 [ %10, %5 ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %9, %5 ], [ null, %1 ] - %12 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %13 = insertvalue { ptr, i64 } %12, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %13 +9: ; preds = %1, %5 + %.merged = phi { ptr, i64 } [ %8, %5 ], [ { ptr null, i64 undef }, %1 ] + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable define { ptr, i64 } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h6848291d3765c687E"(ptr align 8 %0) unnamed_addr #0 { %2 = tail call align 8 ptr @"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h98c615b07a03a5e4E"(ptr align 8 %0) %3 = icmp eq ptr %2, null - br i1 %3, label %9, label %4 + br i1 %3, label %7, label %4 4: ; preds = %1 %5 = getelementptr inbounds i8, ptr %0, i64 16 %6 = tail call { ptr, i64 } @"_ZN4core3ops8function5impls80_$LT$impl$u20$core..ops..function..FnOnce$LT$A$GT$$u20$for$u20$$RF$mut$u20$F$GT$9call_once17hc5c9f8f9602182b9E"(ptr nonnull align 1 %5, ptr nonnull align 8 %2) - %7 = extractvalue { ptr, i64 } %6, 0 - %8 = extractvalue { ptr, i64 } %6, 1 - br label %9 + br label %7 -9: ; preds = %1, %4 - %.sroa.3.0 = phi i64 [ %8, %4 ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %7, %4 ], [ null, %1 ] - %10 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %11 = insertvalue { ptr, i64 } %10, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %11 +7: ; preds = %1, %4 + %.merged = phi { ptr, i64 } [ %6, %4 ], [ { ptr null, i64 undef }, %1 ] + ret { ptr, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/coreutils-rs/optimized/e6v2hjhbpwfodki.ll b/bench/coreutils-rs/optimized/e6v2hjhbpwfodki.ll index d72e4aeaa23..c3b72062db4 100644 --- a/bench/coreutils-rs/optimized/e6v2hjhbpwfodki.ll +++ b/bench/coreutils-rs/optimized/e6v2hjhbpwfodki.ll @@ -4066,24 +4066,23 @@ define hidden { ptr, ptr } @"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V br label %41 41: ; preds = %39, %.loopexit41 - %.sroa.3.0 = phi ptr [ %48, %.loopexit41 ], [ undef, %39 ] - %.sroa.0.0 = phi ptr [ %46, %.loopexit41 ], [ null, %39 ] - %42 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %43 = insertvalue { ptr, ptr } %42, ptr %.sroa.3.0, 1 - ret { ptr, ptr } %43 + %.merged = phi { ptr, ptr } [ %48, %.loopexit41 ], [ { ptr null, ptr undef }, %39 ] + ret { ptr, ptr } %.merged .loopexit41: ; preds = %.noexc4, %.noexc %.sroa.10.0.ph.i = phi i64 [ %21, %.noexc ], [ %34, %.noexc4 ] %.sroa.5.0.ph.i = phi ptr [ %12, %.noexc ], [ %30, %.noexc4 ] call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7), !noalias !694 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %8) - %44 = getelementptr inbounds i8, ptr %.sroa.5.0.ph.i, i64 176 - %45 = getelementptr inbounds { [2 x i64] }, ptr %44, i64 %.sroa.10.0.ph.i - %46 = load ptr, ptr %45, align 8, !noalias !707, !nonnull !13, !noundef !13 - %47 = getelementptr inbounds i8, ptr %45, i64 8 - %48 = load ptr, ptr %47, align 8, !noalias !707, !nonnull !13, !align !351, !noundef !13 - store ptr %2, ptr %45, align 8, !noalias !707 - store ptr %3, ptr %47, align 8, !noalias !707 + %42 = getelementptr inbounds i8, ptr %.sroa.5.0.ph.i, i64 176 + %43 = getelementptr inbounds { [2 x i64] }, ptr %42, i64 %.sroa.10.0.ph.i + %44 = load ptr, ptr %43, align 8, !noalias !707, !nonnull !13, !noundef !13 + %45 = getelementptr inbounds i8, ptr %43, i64 8 + %46 = load ptr, ptr %45, align 8, !noalias !707, !nonnull !13, !align !351, !noundef !13 + store ptr %2, ptr %43, align 8, !noalias !707 + store ptr %3, ptr %45, align 8, !noalias !707 + %47 = insertvalue { ptr, ptr } poison, ptr %44, 0 + %48 = insertvalue { ptr, ptr } %47, ptr %46, 1 br label %41 "_ZN4core3ptr237drop_in_place$LT$alloc..sync..Arc$LT$dyn$u20$core..ops..function..Fn$LT$$LP$$RF$libc..unix..linux_like..linux..gnu..b64..x86_64..siginfo_t$C$$RP$$GT$$u2b$Output$u20$$u3d$$u20$$LP$$RP$$u2b$core..marker..Send$u2b$core..marker..Sync$GT$$GT$17h095bfa5828580209E.llvm.16397499954887149854.exit": ; preds = %49, %52 diff --git a/bench/coreutils-rs/optimized/h56aibhqef681ic.ll b/bench/coreutils-rs/optimized/h56aibhqef681ic.ll index 44e5f84028d..9b82d6b88c4 100644 --- a/bench/coreutils-rs/optimized/h56aibhqef681ic.ll +++ b/bench/coreutils-rs/optimized/h56aibhqef681ic.ll @@ -2447,7 +2447,7 @@ define { ptr, i64 } @_ZN6uucore8features2fs15OwningComponent9as_os_str17h93119f5 i64 1, label %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit i64 2, label %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit14 i64 3, label %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit21 - i64 4, label %8 + i64 4, label %10 ] default.unreachable38: ; preds = %1 @@ -2458,6 +2458,8 @@ default.unreachable38: ; preds = %1 %5 = load ptr, ptr %4, align 8, !nonnull !7, !noundef !7 %6 = getelementptr inbounds i8, ptr %0, i64 24 %7 = load i64, ptr %6, align 8, !noundef !7 + %8 = insertvalue { ptr, i64 } poison, ptr %5, 0 + %9 = insertvalue { ptr, i64 } %8, i64 %7, 1 br label %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit _ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit14: ; preds = %1 @@ -2466,19 +2468,18 @@ _ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit14: ; preds = %1 _ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit21: ; preds = %1 br label %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit -8: ; preds = %1 - %9 = getelementptr inbounds i8, ptr %0, i64 16 - %10 = load ptr, ptr %9, align 8, !nonnull !7, !noundef !7 - %11 = getelementptr inbounds i8, ptr %0, i64 24 - %12 = load i64, ptr %11, align 8, !noundef !7 +10: ; preds = %1 + %11 = getelementptr inbounds i8, ptr %0, i64 16 + %12 = load ptr, ptr %11, align 8, !nonnull !7, !noundef !7 + %13 = getelementptr inbounds i8, ptr %0, i64 24 + %14 = load i64, ptr %13, align 8, !noundef !7 + %15 = insertvalue { ptr, i64 } poison, ptr %12, 0 + %16 = insertvalue { ptr, i64 } %15, i64 %14, 1 br label %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit -_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit: ; preds = %1, %8, %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit21, %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit14, %3 - %.sroa.6.0 = phi i64 [ %12, %8 ], [ 2, %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit21 ], [ 1, %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit14 ], [ %7, %3 ], [ %2, %1 ] - %.sroa.0.0 = phi ptr [ %10, %8 ], [ @anon.27aa217f45c270b761c4ad406800e76c.3, %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit21 ], [ @anon.27aa217f45c270b761c4ad406800e76c.2, %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit14 ], [ %5, %3 ], [ @anon.27aa217f45c270b761c4ad406800e76c.1, %1 ] - %13 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %14 = insertvalue { ptr, i64 } %13, i64 %.sroa.6.0, 1 - ret { ptr, i64 } %14 +_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit: ; preds = %1, %10, %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit21, %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit14, %3 + %.merged = phi { ptr, i64 } [ %16, %10 ], [ { ptr @anon.27aa217f45c270b761c4ad406800e76c.3, i64 2 }, %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit21 ], [ { ptr @anon.27aa217f45c270b761c4ad406800e76c.2, i64 1 }, %_ZN3std4path9Component9as_os_str17hf18659d2f1a75094E.exit14 ], [ %9, %3 ], [ { ptr @anon.27aa217f45c270b761c4ad406800e76c.1, i64 1 }, %1 ] + ret { ptr, i64 } %.merged } ; Function Attrs: nonlazybind uwtable @@ -2864,15 +2865,15 @@ define void @_ZN6uucore8features2fs26dir_strip_dot_for_creation17he592bdd815b393 %7 = alloca { i64, [2 x i64] }, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7) call void @_ZN3std3sys6os_str5bytes5Slice15to_string_lossy17hc81afb44f3a3eefcE(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef %2) - %.sroa.5.0.in.i = getelementptr inbounds i8, ptr %7, i64 16 - %.sroa.5.0.i = load i64, ptr %.sroa.5.0.in.i, align 8, !alias.scope !318, !noundef !7 - %.not.i = icmp ult i64 %.sroa.5.0.i, 2 + %.pn1.in.i = getelementptr inbounds i8, ptr %7, i64 16 + %.pn1.i = load i64, ptr %.pn1.in.i, align 8, !alias.scope !318, !noundef !7 + %.not.i = icmp ult i64 %.pn1.i, 2 br i1 %.not.i, label %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$9ends_with17hb6e8d0d2cc57a50eE.exit.thread", label %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$9ends_with17hb6e8d0d2cc57a50eE.exit" "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$9ends_with17hb6e8d0d2cc57a50eE.exit": ; preds = %3 - %.sroa.0.0.in.i = getelementptr inbounds i8, ptr %7, i64 8 - %.sroa.0.0.i = load ptr, ptr %.sroa.0.0.in.i, align 8, !alias.scope !318, !nonnull !7, !noundef !7 - %8 = getelementptr i8, ptr %.sroa.0.0.i, i64 %.sroa.5.0.i + %.pn3.in.i = getelementptr inbounds i8, ptr %7, i64 8 + %.pn3.i = load ptr, ptr %.pn3.in.i, align 8, !alias.scope !318, !nonnull !7, !noundef !7 + %8 = getelementptr i8, ptr %.pn3.i, i64 %.pn1.i %9 = getelementptr i8, ptr %8, i64 -2 %bcmp.i.i = tail call i32 @bcmp(ptr noundef nonnull readonly dereferenceable(2) @anon.27aa217f45c270b761c4ad406800e76c.112, ptr noundef nonnull readonly dereferenceable(2) %9, i64 2), !alias.scope !321 %10 = icmp eq i32 %bcmp.i.i, 0 diff --git a/bench/cpython/optimized/cmathmodule.ll b/bench/cpython/optimized/cmathmodule.ll index a839a68235a..e55cd8d8548 100644 --- a/bench/cpython/optimized/cmathmodule.ll +++ b/bench/cpython/optimized/cmathmodule.ll @@ -2149,23 +2149,27 @@ special_type.exit46: ; preds = %if.then1.i40, %if.e %retval.sroa.0.0.copyload = load double, ptr %arrayidx6, align 16 %retval.sroa.4.0.arrayidx6.sroa_idx = getelementptr inbounds i8, ptr %arrayidx6, i64 8 %retval.sroa.4.0.copyload = load double, ptr %retval.sroa.4.0.arrayidx6.sroa_idx, align 8 - br label %return + %10 = insertvalue { double, double } poison, double %retval.sroa.0.0.copyload, 0 + %11 = insertvalue { double, double } %10, double %retval.sroa.4.0.copyload, 1 + br label %common.ret1 if.end: ; preds = %entry %cmp = fcmp olt double %z.coerce0, 0.000000e+00 br i1 %cmp, label %if.then8, label %if.end13 +common.ret1: ; preds = %if.end85, %special_type.exit46, %if.then8 + %common.ret1.op = phi { double, double } [ %call12, %if.then8 ], [ %20, %if.end85 ], [ %11, %special_type.exit46 ] + ret { double, double } %common.ret1.op + if.then8: ; preds = %if.end %call10 = tail call { double, double } @_Py_c_neg(double %z.coerce0, double %z.coerce1) #10 - %10 = extractvalue { double, double } %call10, 0 - %11 = extractvalue { double, double } %call10, 1 - %call11 = tail call fastcc { double, double } @cmath_atanh_impl(double %10, double %11) - %12 = extractvalue { double, double } %call11, 0 - %13 = extractvalue { double, double } %call11, 1 - %call12 = tail call { double, double } @_Py_c_neg(double %12, double %13) #10 - %14 = extractvalue { double, double } %call12, 0 - %15 = extractvalue { double, double } %call12, 1 - br label %return + %12 = extractvalue { double, double } %call10, 0 + %13 = extractvalue { double, double } %call10, 1 + %call11 = tail call fastcc { double, double } @cmath_atanh_impl(double %12, double %13) + %14 = extractvalue { double, double } %call11, 0 + %15 = extractvalue { double, double } %call11, 1 + %call12 = tail call { double, double } @_Py_c_neg(double %14, double %15) #10 + br label %common.ret1 if.end13: ; preds = %if.end %cmp17 = fcmp ogt double %z.coerce0, 0x5FDFFFFFFFFFFFFF @@ -2181,9 +2185,7 @@ if.then21: ; preds = %if.end13 %div28 = fdiv double %div27, %call25 %div29 = fdiv double %div28, %call25 %fneg32 = tail call double @llvm.copysign.f64(double 0x3FF921FB54442D18, double %z.coerce1) - %call34 = tail call ptr @__errno_location() #11 - store i32 0, ptr %call34, align 4 - br label %return + br label %if.end85 if.else: ; preds = %if.end13 %cmp36 = fcmp oeq double %z.coerce0, 1.000000e+00 @@ -2193,12 +2195,7 @@ if.else: ; preds = %if.end13 if.then39: ; preds = %if.else %cmp40 = fcmp oeq double %z.coerce1, 0.000000e+00 - br i1 %cmp40, label %if.then41, label %if.else46 - -if.then41: ; preds = %if.then39 - %call45 = tail call ptr @__errno_location() #11 - store i32 33, ptr %call45, align 4 - br label %return + br i1 %cmp40, label %if.end85, label %if.else46 if.else46: ; preds = %if.then39 %sqrt = tail call double @llvm.sqrt.f64(double %2) @@ -2211,9 +2208,7 @@ if.else46: ; preds = %if.then39 %call55 = tail call double @atan2(double noundef 2.000000e+00, double noundef %fneg54) #10 %div56 = fmul double %call55, 5.000000e-01 %16 = tail call double @llvm.copysign.f64(double %div56, double %z.coerce1) - %call59 = tail call ptr @__errno_location() #11 - store i32 0, ptr %call59, align 4 - br label %return + br label %if.end85 if.else61: ; preds = %if.else %mul = fmul double %z.coerce0, 4.000000e+00 @@ -2237,16 +2232,17 @@ _Py_log1p.exit: ; preds = %if.else61, %if.else %18 = tail call double @llvm.fmuladd.f64(double %sub, double %add, double %neg) %call79 = tail call double @atan2(double noundef %mul73, double noundef %18) #10 %div81 = fmul double %call79, -5.000000e-01 - %call83 = tail call ptr @__errno_location() #11 - store i32 0, ptr %call83, align 4 - br label %return + br label %if.end85 -return: ; preds = %if.then21, %if.then41, %if.else46, %_Py_log1p.exit, %if.then8, %special_type.exit46 - %retval.sroa.0.0 = phi double [ %14, %if.then8 ], [ %retval.sroa.0.0.copyload, %special_type.exit46 ], [ %div29, %if.then21 ], [ 0x7FF0000000000000, %if.then41 ], [ %fneg52, %if.else46 ], [ %div70, %_Py_log1p.exit ] - %retval.sroa.4.0 = phi double [ %15, %if.then8 ], [ %retval.sroa.4.0.copyload, %special_type.exit46 ], [ %fneg32, %if.then21 ], [ %z.coerce1, %if.then41 ], [ %16, %if.else46 ], [ %div81, %_Py_log1p.exit ] - %.fca.0.insert = insertvalue { double, double } poison, double %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { double, double } %.fca.0.insert, double %retval.sroa.4.0, 1 - ret { double, double } %.fca.1.insert +if.end85: ; preds = %if.then39, %_Py_log1p.exit, %if.else46, %if.then21 + %.sink = phi i32 [ 0, %_Py_log1p.exit ], [ 0, %if.else46 ], [ 0, %if.then21 ], [ 33, %if.then39 ] + %r.sroa.0.0 = phi double [ %div70, %_Py_log1p.exit ], [ %fneg52, %if.else46 ], [ %div29, %if.then21 ], [ 0x7FF0000000000000, %if.then39 ] + %r.sroa.5.0 = phi double [ %div81, %_Py_log1p.exit ], [ %16, %if.else46 ], [ %fneg32, %if.then21 ], [ %z.coerce1, %if.then39 ] + %call83 = tail call ptr @__errno_location() #11 + store i32 %.sink, ptr %call83, align 4 + %19 = insertvalue { double, double } poison, double %r.sroa.0.0, 0 + %20 = insertvalue { double, double } %19, double %r.sroa.5.0, 1 + br label %common.ret1 } declare { double, double } @_Py_c_neg(double, double) local_unnamed_addr #1 diff --git a/bench/delta-rs/optimized/4imd7xbfeanhlkqt.ll b/bench/delta-rs/optimized/4imd7xbfeanhlkqt.ll index 32a83aaa911..f407adcd636 100644 --- a/bench/delta-rs/optimized/4imd7xbfeanhlkqt.ll +++ b/bench/delta-rs/optimized/4imd7xbfeanhlkqt.ll @@ -3594,7 +3594,7 @@ define hidden void @_ZN15deltalake_mount4file23MountFileStorageBackend7try_new17 define { ptr, ptr } @"_ZN68_$LT$deltalake_mount..error..Error$u20$as$u20$core..error..Error$GT$6source17hcd418eb44e180285E"(ptr noalias noundef readonly align 8 dereferenceable(80) %0) unnamed_addr #13 { %2 = load i64, ptr %0, align 8, !range !58, !noundef !38 %switch.not = icmp ult i64 %2, 16 - br i1 %switch.not, label %3, label %"_ZN58_$LT$object_store..Error$u20$as$u20$core..error..Error$GT$6source17hc743c76994604126E.exit" + br i1 %switch.not, label %3, label %44 3: ; preds = %1 %4 = add nsw i64 %2, -6 @@ -3668,12 +3668,16 @@ define { ptr, ptr } @"_ZN68_$LT$deltalake_mount..error..Error$u20$as$u20$core..e 41: ; preds = %3 br label %"_ZN58_$LT$object_store..Error$u20$as$u20$core..error..Error$GT$6source17hc743c76994604126E.exit" -"_ZN58_$LT$object_store..Error$u20$as$u20$core..error..Error$GT$6source17hc743c76994604126E.exit": ; preds = %41, %40, %35, %30, %25, %20, %18, %13, %8, %3, %1 - %.sroa.5.0 = phi ptr [ undef, %1 ], [ undef, %41 ], [ undef, %40 ], [ %39, %35 ], [ %34, %30 ], [ %29, %25 ], [ %24, %20 ], [ @anon.b197a4c86746c65d6887cae8be7ec8a4.59, %18 ], [ %17, %13 ], [ %12, %8 ], [ @anon.b197a4c86746c65d6887cae8be7ec8a4.57, %3 ] - %.sroa.0.0 = phi ptr [ null, %1 ], [ null, %41 ], [ null, %40 ], [ %37, %35 ], [ %32, %30 ], [ %27, %25 ], [ %22, %20 ], [ %19, %18 ], [ %15, %13 ], [ %10, %8 ], [ %0, %3 ] - %42 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %43 = insertvalue { ptr, ptr } %42, ptr %.sroa.5.0, 1 - ret { ptr, ptr } %43 +"_ZN58_$LT$object_store..Error$u20$as$u20$core..error..Error$GT$6source17hc743c76994604126E.exit": ; preds = %3, %8, %13, %18, %20, %25, %30, %35, %40, %41 + %.sroa.11.0.i = phi ptr [ undef, %41 ], [ undef, %40 ], [ %39, %35 ], [ %34, %30 ], [ %29, %25 ], [ %24, %20 ], [ @anon.b197a4c86746c65d6887cae8be7ec8a4.59, %18 ], [ %17, %13 ], [ %12, %8 ], [ @anon.b197a4c86746c65d6887cae8be7ec8a4.57, %3 ] + %.sroa.0.0.i = phi ptr [ null, %41 ], [ null, %40 ], [ %37, %35 ], [ %32, %30 ], [ %27, %25 ], [ %22, %20 ], [ %19, %18 ], [ %15, %13 ], [ %10, %8 ], [ %0, %3 ] + %42 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0.i, 0 + %43 = insertvalue { ptr, ptr } %42, ptr %.sroa.11.0.i, 1 + br label %44 + +44: ; preds = %1, %"_ZN58_$LT$object_store..Error$u20$as$u20$core..error..Error$GT$6source17hc743c76994604126E.exit" + %.merged = phi { ptr, ptr } [ %43, %"_ZN58_$LT$object_store..Error$u20$as$u20$core..error..Error$GT$6source17hc743c76994604126E.exit" ], [ { ptr null, ptr undef }, %1 ] + ret { ptr, ptr } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/delta-rs/optimized/4jpyf52a2nk6q4dy.ll b/bench/delta-rs/optimized/4jpyf52a2nk6q4dy.ll index 98a279bc456..005defb61f1 100644 --- a/bench/delta-rs/optimized/4jpyf52a2nk6q4dy.ll +++ b/bench/delta-rs/optimized/4jpyf52a2nk6q4dy.ll @@ -656,22 +656,26 @@ define hidden noundef nonnull align 8 ptr @"_ZN3std3sys3pal6common12thread_local %.sroa.6.0.copyload.i = load i64, ptr %.sroa.6.0..0.1.sroa_idx.i, align 8, !alias.scope !64 store i64 0, ptr %1, align 8, !alias.scope !64 %4 = icmp eq i64 %.sroa.02.0.copyload.i, 1 - br i1 %4, label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h3f4b6d6bdb3f1b51E.llvm.1683228073582790202.exit", label %5 + br i1 %4, label %7, label %5 5: ; preds = %3, %2 %6 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE(), !noalias !64 - %7 = extractvalue { i64, i64 } %6, 0 - %8 = extractvalue { i64, i64 } %6, 1 br label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h3f4b6d6bdb3f1b51E.llvm.1683228073582790202.exit" -"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h3f4b6d6bdb3f1b51E.llvm.1683228073582790202.exit": ; preds = %3, %5 - %.sroa.0.0.i = phi i64 [ %7, %5 ], [ %.sroa.5.0.copyload.i, %3 ] - %.sroa.3.0.i = phi i64 [ %8, %5 ], [ %.sroa.6.0.copyload.i, %3 ] +7: ; preds = %3 + %8 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload.i, 0 + %9 = insertvalue { i64, i64 } %8, i64 %.sroa.6.0.copyload.i, 1 + br label %"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h3f4b6d6bdb3f1b51E.llvm.1683228073582790202.exit" + +"_ZN3std4hash6random11RandomState3new4KEYS7__getit28_$u7b$$u7b$closure$u7d$$u7d$17h3f4b6d6bdb3f1b51E.llvm.1683228073582790202.exit": ; preds = %5, %7 + %.merged.i = phi { i64, i64 } [ %9, %7 ], [ %6, %5 ] + %10 = extractvalue { i64, i64 } %.merged.i, 0 + %11 = extractvalue { i64, i64 } %.merged.i, 1 store i64 1, ptr %0, align 8 %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 - store i64 %.sroa.0.0.i, ptr %.sroa.2.0..sroa_idx, align 8 + store i64 %10, ptr %.sroa.2.0..sroa_idx, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 16 - store i64 %.sroa.3.0.i, ptr %.sroa.3.0..sroa_idx, align 8 + store i64 %11, ptr %.sroa.3.0..sroa_idx, align 8 ret ptr %.sroa.2.0..sroa_idx } @@ -688,20 +692,20 @@ define hidden { i64, i64 } @"_ZN3std4hash6random11RandomState3new4KEYS7__getit28 %.sroa.6.0.copyload = load i64, ptr %.sroa.6.0..0.1.sroa_idx, align 8 store i64 0, ptr %0, align 8 %3 = icmp eq i64 %.sroa.02.0.copyload, 1 - br i1 %3, label %8, label %4 + br i1 %3, label %6, label %4 4: ; preds = %2, %1 %5 = tail call { i64, i64 } @_ZN3std3sys3pal4unix4rand19hashmap_random_keys17ha9236b60ee6bd33cE() - %6 = extractvalue { i64, i64 } %5, 0 - %7 = extractvalue { i64, i64 } %5, 1 - br label %8 + br label %9 + +6: ; preds = %2 + %7 = insertvalue { i64, i64 } poison, i64 %.sroa.5.0.copyload, 0 + %8 = insertvalue { i64, i64 } %7, i64 %.sroa.6.0.copyload, 1 + br label %9 -8: ; preds = %2, %4 - %.sroa.0.0 = phi i64 [ %6, %4 ], [ %.sroa.5.0.copyload, %2 ] - %.sroa.3.0 = phi i64 [ %7, %4 ], [ %.sroa.6.0.copyload, %2 ] - %9 = insertvalue { i64, i64 } poison, i64 %.sroa.0.0, 0 - %10 = insertvalue { i64, i64 } %9, i64 %.sroa.3.0, 1 - ret { i64, i64 } %10 +9: ; preds = %6, %4 + %.merged = phi { i64, i64 } [ %8, %6 ], [ %5, %4 ] + ret { i64, i64 } %.merged } ; Function Attrs: nonlazybind uwtable @@ -719,9 +723,11 @@ define hidden noundef zeroext i1 @"_ZN42_$LT$$RF$T$u20$as$u20$core..fmt..Debug$G ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define hidden { i64, i64 } @"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hb649c4261efabd4fE.llvm.1683228073582790202"(i64 noundef %0, i64 %1) unnamed_addr #4 { - %3 = insertvalue { i64, i64 } poison, i64 %0, 0 - %4 = insertvalue { i64, i64 } %3, i64 %1, 1 - ret { i64, i64 } %4 + %3 = icmp eq i64 %0, -9223372036854775807 + %4 = insertvalue { i64, i64 } poison, i64 %0, 0 + %5 = insertvalue { i64, i64 } %4, i64 %1, 1 + %.merged = select i1 %3, { i64, i64 } { i64 -9223372036854775807, i64 undef }, { i64, i64 } %5 + ret { i64, i64 } %.merged } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable @@ -1246,7 +1252,9 @@ define hidden void @_ZN5alloc7raw_vec14handle_reserve17hf0112dc2ee693d5aE.llvm.1 unreachable 5: ; preds = %2 - tail call void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %0, i64 noundef %1) #31 + %6 = icmp eq i64 %0, -9223372036854775807 + %7 = select i1 %6, i64 undef, i64 %1 + tail call void @_ZN5alloc5alloc18handle_alloc_error17h426354a964e0805cE(i64 noundef %0, i64 noundef %7) #31 unreachable } diff --git a/bench/diesel-rs/optimized/27d1dwdaey9nml16.ll b/bench/diesel-rs/optimized/27d1dwdaey9nml16.ll index dc5afb29ec4..7fba47ef928 100644 --- a/bench/diesel-rs/optimized/27d1dwdaey9nml16.ll +++ b/bench/diesel-rs/optimized/27d1dwdaey9nml16.ll @@ -161,13 +161,13 @@ define hidden { ptr, ptr } @"_ZN108_$LT$alloc..collections..btree..map..Iter$LT$ tail call void @llvm.experimental.noalias.scope.decl(metadata !5) %7 = load i64, ptr %0, align 8, !range !8, !alias.scope !5, !noundef !4 %.not.not.i = icmp eq i64 %7, 0 - br i1 %.not.not.i, label %20, label %8 + br i1 %.not.not.i, label %18, label %8 8: ; preds = %5 %9 = getelementptr inbounds i8, ptr %0, i64 8 %10 = load ptr, ptr %9, align 8, !alias.scope !5, !noundef !4 %11 = icmp eq ptr %10, null - br i1 %11, label %12, label %21 + br i1 %11, label %12, label %19 12: ; preds = %8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.4.i), !noalias !5 @@ -179,23 +179,18 @@ define hidden { ptr, ptr } @"_ZN108_$LT$alloc..collections..btree..map..Iter$LT$ store i64 1, ptr %0, align 8, !alias.scope !5 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4.i, i64 24, i1 false) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.4.i), !noalias !5 - br label %21 + br label %19 -17: ; preds = %1, %21 - %.sroa.3.0 = phi ptr [ %24, %21 ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %23, %21 ], [ null, %1 ] - %18 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %19 = insertvalue { ptr, ptr } %18, ptr %.sroa.3.0, 1 - ret { ptr, ptr } %19 +17: ; preds = %1, %19 + %.merged = phi { ptr, ptr } [ %20, %19 ], [ { ptr null, ptr undef }, %1 ] + ret { ptr, ptr } %.merged -20: ; preds = %5 +18: ; preds = %5 tail call void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.4ecf52d27cf3a2b5cf5817e9e2e41738.0.llvm.2648289344551647319, i64 noundef 43, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.4ecf52d27cf3a2b5cf5817e9e2e41738.2.llvm.2648289344551647319) #30 unreachable -21: ; preds = %8, %12 - %22 = tail call { ptr, ptr } @_ZN5alloc11collections5btree3mem7replace17hf572d6973238b115E.llvm.2648289344551647319(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) - %23 = extractvalue { ptr, ptr } %22, 0 - %24 = extractvalue { ptr, ptr } %22, 1 +19: ; preds = %8, %12 + %20 = tail call { ptr, ptr } @_ZN5alloc11collections5btree3mem7replace17hf572d6973238b115E.llvm.2648289344551647319(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) br label %17 } @@ -5394,15 +5389,15 @@ define void @"_ZN158_$LT$alloc..boxed..Box$LT$dyn$u20$diesel..connection..instru ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: readwrite) uwtable define hidden void @"_ZN6diesel10expression11sql_literal24SqlLiteral$LT$ST$C$T$GT$4bind17h28d8ea9395921bbcE"(ptr noalias nocapture noundef writeonly sret({ { { { { i64, ptr }, i64 } }, {}, {} }, { ptr, i64 } }) align 8 dereferenceable(40) %0, ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %1, ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %2) unnamed_addr #13 personality ptr @rust_eh_personality { - %.sroa.0.0.in.i.i = getelementptr inbounds i8, ptr %2, i64 8 - %.sroa.0.0.i.i = load ptr, ptr %.sroa.0.0.in.i.i, align 8, !alias.scope !795, !nonnull !4, !noundef !4 - %.sroa.5.0.in.i.i = getelementptr inbounds i8, ptr %2, i64 16 - %.sroa.5.0.i.i = load i64, ptr %.sroa.5.0.in.i.i, align 8, !alias.scope !795, !noundef !4 + %.pn1.in.i.i = getelementptr inbounds i8, ptr %2, i64 16 + %.pn1.i.i = load i64, ptr %.pn1.in.i.i, align 8, !alias.scope !795, !noundef !4 + %.pn3.in.i.i = getelementptr inbounds i8, ptr %2, i64 8 + %.pn3.i.i = load ptr, ptr %.pn3.in.i.i, align 8, !alias.scope !795, !nonnull !4, !noundef !4 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i64 24, i1 false) %4 = getelementptr inbounds i8, ptr %0, i64 24 - store ptr %.sroa.0.0.i.i, ptr %4, align 8 + store ptr %.pn3.i.i, ptr %4, align 8 %5 = getelementptr inbounds i8, ptr %0, i64 32 - store i64 %.sroa.5.0.i.i, ptr %5, align 8 + store i64 %.pn1.i.i, ptr %5, align 8 ret void } @@ -7100,11 +7095,11 @@ define hidden void @_ZN6diesel2pg10connection3raw18last_error_message17hf05a1dfc %6 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4) call void @_ZN5alloc6string6String15from_utf8_lossy17hbdcea6e91ddd200cE(ptr noalias nocapture noundef nonnull sret({ i64, [2 x i64] }) align 8 dereferenceable(24) %4, ptr noalias noundef nonnull readonly align 1 %5, i64 noundef %6) - %.sroa.0.0.in.i = getelementptr inbounds i8, ptr %4, i64 8 - %.sroa.0.0.i = load ptr, ptr %.sroa.0.0.in.i, align 8, !alias.scope !1122, !nonnull !4, !noundef !4 - %.sroa.5.0.in.i = getelementptr inbounds i8, ptr %4, i64 16 - %.sroa.5.0.i = load i64, ptr %.sroa.5.0.in.i, align 8, !alias.scope !1122, !noundef !4 - %7 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17hb98e93f08ac7f736E"(i64 noundef %.sroa.5.0.i, i1 noundef zeroext false) + %.pn1.in.i = getelementptr inbounds i8, ptr %4, i64 16 + %.pn1.i = load i64, ptr %.pn1.in.i, align 8, !alias.scope !1122, !noundef !4 + %.pn3.in.i = getelementptr inbounds i8, ptr %4, i64 8 + %.pn3.i = load ptr, ptr %.pn3.in.i, align 8, !alias.scope !1122, !nonnull !4, !noundef !4 + %7 = invoke { i64, ptr } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$11allocate_in17hb98e93f08ac7f736E"(i64 noundef %.pn1.i, i1 noundef zeroext false) to label %10 unwind label %8 8: ; preds = %2 @@ -7118,12 +7113,12 @@ define hidden void @_ZN6diesel2pg10connection3raw18last_error_message17hf05a1dfc %12 = extractvalue { i64, ptr } %7, 1 %13 = icmp ne ptr %12, null tail call void @llvm.assume(i1 %13) - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %12, ptr nonnull readonly align 1 %.sroa.0.0.i, i64 %.sroa.5.0.i, i1 false) + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %12, ptr nonnull readonly align 1 %.pn3.i, i64 %.pn1.i, i1 false) store i64 %11, ptr %0, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 8 store ptr %12, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds i8, ptr %0, i64 16 - store i64 %.sroa.5.0.i, ptr %.sroa.5.0..sroa_idx, align 8 + store i64 %.pn1.i, ptr %.sroa.5.0..sroa_idx, align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !1125) %14 = load i64, ptr %4, align 8, !range !40, !alias.scope !1125, !noundef !4 %15 = icmp eq i64 %14, -9223372036854775808 @@ -7141,7 +7136,7 @@ define hidden void @_ZN6diesel2pg10connection3raw18last_error_message17hf05a1dfc %20 = load ptr, ptr %3, align 8, !noalias !1128, !nonnull !4, !noundef !4 %21 = getelementptr inbounds i8, ptr %3, i64 16 %22 = load i64, ptr %21, align 8, !noalias !1128, !noundef !4 - call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.2909037117879540835"(ptr noalias noundef nonnull readonly align 1 %.sroa.5.0.in.i, ptr noundef nonnull %20, i64 noundef %18, i64 noundef %22) + call void @"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17hae8e459b587c5295E.llvm.2909037117879540835"(ptr noalias noundef nonnull readonly align 1 %.pn1.in.i, ptr noundef nonnull %20, i64 noundef %18, i64 noundef %22) br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hb50398bb251d6c3eE.exit.i" "_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17hb50398bb251d6c3eE.exit.i": ; preds = %19, %16 diff --git a/bench/diesel-rs/optimized/41xl287hhjds5e33.ll b/bench/diesel-rs/optimized/41xl287hhjds5e33.ll index 65f25cdb419..2a969156110 100644 --- a/bench/diesel-rs/optimized/41xl287hhjds5e33.ll +++ b/bench/diesel-rs/optimized/41xl287hhjds5e33.ll @@ -67,7 +67,6 @@ define { i64, ptr } @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$ 5: ; preds = %1 %6 = tail call { i64, ptr } @_ZN4core3ops8function6FnOnce9call_once17hfc437c6642ee9839E(ptr nonnull align 8 %2) %.fca.0.extract.i = extractvalue { i64, ptr } %6, 0 - %.fca.1.extract.i = extractvalue { i64, ptr } %6, 1 %.not15.i = icmp eq i64 %.fca.0.extract.i, 1 br i1 %.not15.i, label %_ZN4core4iter8adapters5chain17and_then_or_clear17h916b2c8727918f7dE.exit, label %7 @@ -86,10 +85,11 @@ define { i64, ptr } @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$ br label %_ZN4core4iter8adapters5chain17and_then_or_clear17h916b2c8727918f7dE.exit _ZN4core4iter8adapters5chain17and_then_or_clear17h916b2c8727918f7dE.exit: ; preds = %1, %5, %10 - %.sroa.3.0.i = phi ptr [ undef, %1 ], [ %.fca.1.extract.i, %5 ], [ %.fca.1.extract.i, %10 ] - %.sroa.0.0.i = phi i64 [ 0, %1 ], [ 1, %5 ], [ %.fca.0.extract.i, %10 ] - %11 = tail call { i64, ptr } @"_ZN4core6option15Option$LT$T$GT$7or_else17he5e22d1b22721dd5E"(i64 %.sroa.0.0.i, ptr %.sroa.3.0.i, ptr nonnull align 4 %0) - ret { i64, ptr } %11 + %.merged.i = phi { i64, ptr } [ %6, %5 ], [ %6, %10 ], [ { i64 0, ptr undef }, %1 ] + %11 = extractvalue { i64, ptr } %.merged.i, 0 + %12 = extractvalue { i64, ptr } %.merged.i, 1 + %13 = tail call { i64, ptr } @"_ZN4core6option15Option$LT$T$GT$7or_else17he5e22d1b22721dd5E"(i64 %11, ptr %12, ptr nonnull align 4 %0) + ret { i64, ptr } %13 } ; Function Attrs: inlinehint nonlazybind uwtable @@ -157,16 +157,11 @@ define { i64, ptr } @"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$ 5: ; preds = %1 %6 = getelementptr inbounds i8, ptr %0, i64 4 %7 = tail call { i64, ptr } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0db2f195dff8c13eE"(ptr nonnull align 4 %6) - %.fca.0.extract = extractvalue { i64, ptr } %7, 0 - %.fca.1.extract = extractvalue { i64, ptr } %7, 1 br label %8 8: ; preds = %1, %5 - %.sroa.3.0 = phi ptr [ %.fca.1.extract, %5 ], [ undef, %1 ] - %.sroa.0.0 = phi i64 [ %.fca.0.extract, %5 ], [ 0, %1 ] - %9 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 - %10 = insertvalue { i64, ptr } %9, ptr %.sroa.3.0, 1 - ret { i64, ptr } %10 + %.merged = phi { i64, ptr } [ %7, %5 ], [ { i64 0, ptr undef }, %1 ] + ret { i64, ptr } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable @@ -317,7 +312,6 @@ define { i64, ptr } @_ZN4core4iter8adapters5chain17and_then_or_clear17h916b2c872 4: ; preds = %1 %5 = tail call { i64, ptr } @_ZN4core3ops8function6FnOnce9call_once17hfc437c6642ee9839E(ptr nonnull align 8 %0) %.fca.0.extract = extractvalue { i64, ptr } %5, 0 - %.fca.1.extract = extractvalue { i64, ptr } %5, 1 %.not15 = icmp eq i64 %.fca.0.extract, 1 br i1 %.not15, label %10, label %6 @@ -336,11 +330,8 @@ define { i64, ptr } @_ZN4core4iter8adapters5chain17and_then_or_clear17h916b2c872 br label %10 10: ; preds = %9, %4, %1 - %.sroa.3.0 = phi ptr [ undef, %1 ], [ %.fca.1.extract, %4 ], [ %.fca.1.extract, %9 ] - %.sroa.0.0 = phi i64 [ 0, %1 ], [ 1, %4 ], [ %.fca.0.extract, %9 ] - %11 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 - %12 = insertvalue { i64, ptr } %11, ptr %.sroa.3.0, 1 - ret { i64, ptr } %12 + %.merged = phi { i64, ptr } [ { i64 0, ptr undef }, %1 ], [ %5, %4 ], [ %5, %9 ] + ret { i64, ptr } %.merged } ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: readwrite) uwtable diff --git a/bench/diesel-rs/optimized/4dmkc4an6cvf22v6.ll b/bench/diesel-rs/optimized/4dmkc4an6cvf22v6.ll index 26748ae46f4..ec3d3cfff5c 100644 --- a/bench/diesel-rs/optimized/4dmkc4an6cvf22v6.ll +++ b/bench/diesel-rs/optimized/4dmkc4an6cvf22v6.ll @@ -6126,17 +6126,17 @@ select.unfold: ; preds = %7, %1 %20 = load ptr, ptr %19, align 8, !alias.scope !1250, !noalias !1247, !nonnull !4, !align !166 %21 = getelementptr inbounds i8, ptr %2, i64 16 %22 = load i64, ptr %21, align 8, !alias.scope !1250, !noalias !1247 - %.sroa.3.0.i.i = select i1 %trunc.i.i, i64 0, i64 %22 - %.sroa.0.0.i.i = select i1 %trunc.i.i, ptr @anon.4ecf52d27cf3a2b5cf5817e9e2e41738.9.llvm.2648289344551647319, ptr %20 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !1247 + %.fca.0.extract = select i1 %trunc.i.i, ptr @anon.4ecf52d27cf3a2b5cf5817e9e2e41738.9.llvm.2648289344551647319, ptr %20 + %23 = select i1 %trunc.i.i, i64 0, i64 %22 br label %_ZN6diesel2pg10connection6result16get_result_field17h1b03f44227472a8eE.exit _ZN6diesel2pg10connection6result16get_result_field17h1b03f44227472a8eE.exit: ; preds = %7, %select.unfold - %.sroa.3.0.i.i.pn = phi i64 [ %.sroa.3.0.i.i, %select.unfold ], [ %14, %7 ] - %.sroa.0.0 = phi ptr [ %.sroa.0.0.i.i, %select.unfold ], [ %12, %7 ] - %23 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %24 = insertvalue { ptr, i64 } %23, i64 %.sroa.3.0.i.i.pn, 1 - ret { ptr, i64 } %24 + %.pn = phi i64 [ %23, %select.unfold ], [ %14, %7 ] + %.sroa.0.0 = phi ptr [ %.fca.0.extract, %select.unfold ], [ %12, %7 ] + %24 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 + %25 = insertvalue { ptr, i64 } %24, i64 %.pn, 1 + ret { ptr, i64 } %25 } ; Function Attrs: nonlazybind uwtable @@ -6524,7 +6524,7 @@ define { ptr, i64 } @"_ZN122_$LT$diesel..sqlite..connection..row..SqliteField$u2 %2 = load ptr, ptr %0, align 8, !nonnull !4, !noundef !4 %3 = load i64, ptr %2, align 8, !range !116, !noundef !4 %4 = icmp eq i64 %3, 2 - br i1 %4, label %22, label %5 + br i1 %4, label %24, label %5 5: ; preds = %1 %6 = getelementptr inbounds i8, ptr %0, i64 16 @@ -6538,39 +6538,43 @@ define { ptr, i64 } @"_ZN122_$LT$diesel..sqlite..connection..row..SqliteField$u2 %13 = getelementptr inbounds i8, ptr %9, i64 8 %14 = load ptr, ptr %13, align 8, !nonnull !4 %15 = getelementptr inbounds { ptr, i64 }, ptr %14, i64 %12 - br i1 %.not.i, label %16, label %.thread + br i1 %.not.i, label %16, label %_ZN6diesel6sqlite10connection4stmt12StatementUse10field_name17hf08bc0c75e51dcd0E.exit 16: ; preds = %5 %17 = load ptr, ptr %15, align 8, !noundef !4 %18 = icmp eq ptr %17, null - br i1 %18, label %.thread, label %19 + br i1 %18, label %_ZN6diesel6sqlite10connection4stmt12StatementUse10field_name17hf08bc0c75e51dcd0E.exit, label %19 19: ; preds = %16 %20 = getelementptr inbounds i8, ptr %15, i64 8 %21 = load i64, ptr %20, align 8, !noundef !4 + br label %_ZN6diesel6sqlite10connection4stmt12StatementUse10field_name17hf08bc0c75e51dcd0E.exit + +_ZN6diesel6sqlite10connection4stmt12StatementUse10field_name17hf08bc0c75e51dcd0E.exit: ; preds = %5, %16, %19 + %.sroa.4.0.i = phi i64 [ %21, %19 ], [ undef, %5 ], [ undef, %16 ] + %.sroa.0.0.i = phi ptr [ %17, %19 ], [ null, %5 ], [ null, %16 ] + %22 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0.i, 0 + %23 = insertvalue { ptr, i64 } %22, i64 %.sroa.4.0.i, 1 br label %.thread -22: ; preds = %1 - %23 = getelementptr inbounds i8, ptr %2, i64 40 - %24 = load i64, ptr %23, align 8, !noundef !4 - %25 = getelementptr inbounds i8, ptr %0, i64 16 - %26 = load i32, ptr %25, align 8, !noundef !4 - %27 = sext i32 %26 to i64 - %28 = icmp ugt i64 %24, %27 - br i1 %28, label %31, label %.thread - -.thread: ; preds = %19, %16, %5, %22, %31 - %.sroa.4.0 = phi i64 [ %.sroa.3.0.i, %31 ], [ undef, %22 ], [ %21, %19 ], [ undef, %5 ], [ undef, %16 ] - %.sroa.0.0 = phi ptr [ %.sroa.0.0.i9, %31 ], [ null, %22 ], [ %17, %19 ], [ null, %5 ], [ null, %16 ] - %29 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %30 = insertvalue { ptr, i64 } %29, i64 %.sroa.4.0, 1 - ret { ptr, i64 } %30 - -31: ; preds = %22 +24: ; preds = %1 + %25 = getelementptr inbounds i8, ptr %2, i64 40 + %26 = load i64, ptr %25, align 8, !noundef !4 + %27 = getelementptr inbounds i8, ptr %0, i64 16 + %28 = load i32, ptr %27, align 8, !noundef !4 + %29 = sext i32 %28 to i64 + %30 = icmp ugt i64 %26, %29 + br i1 %30, label %31, label %.thread + +.thread: ; preds = %24, %31, %_ZN6diesel6sqlite10connection4stmt12StatementUse10field_name17hf08bc0c75e51dcd0E.exit + %.merged = phi { ptr, i64 } [ %23, %_ZN6diesel6sqlite10connection4stmt12StatementUse10field_name17hf08bc0c75e51dcd0E.exit ], [ %43, %31 ], [ { ptr null, i64 undef }, %24 ] + ret { ptr, i64 } %.merged + +31: ; preds = %24 %32 = getelementptr inbounds i8, ptr %2, i64 32 %33 = load ptr, ptr %32, align 8, !nonnull !4, !noundef !4 %34 = getelementptr inbounds i8, ptr %33, i64 16 - %35 = getelementptr inbounds { i64, [2 x i64] }, ptr %34, i64 %27 + %35 = getelementptr inbounds { i64, [2 x i64] }, ptr %34, i64 %29 %36 = load i64, ptr %35, align 8, !range !56, !alias.scope !1316, !noundef !4 %37 = icmp eq i64 %36, -9223372036854775808 %38 = getelementptr inbounds i8, ptr %35, i64 8 @@ -6578,7 +6582,9 @@ define { ptr, i64 } @"_ZN122_$LT$diesel..sqlite..connection..row..SqliteField$u2 %40 = getelementptr inbounds i8, ptr %35, i64 16 %41 = load i64, ptr %40, align 8, !alias.scope !1316 %.sroa.3.0.i = select i1 %37, i64 undef, i64 %41 - %.sroa.0.0.i9 = select i1 %37, ptr null, ptr %39 + %.sroa.0.0.i10 = select i1 %37, ptr null, ptr %39 + %42 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0.i10, 0 + %43 = insertvalue { ptr, i64 } %42, i64 %.sroa.3.0.i, 1 br label %.thread } diff --git a/bench/diesel-rs/optimized/4evqpcg6dxygah01.ll b/bench/diesel-rs/optimized/4evqpcg6dxygah01.ll index 5c0636d88f6..afa8cc0c43e 100644 --- a/bench/diesel-rs/optimized/4evqpcg6dxygah01.ll +++ b/bench/diesel-rs/optimized/4evqpcg6dxygah01.ll @@ -2821,32 +2821,30 @@ define void @"_ZN17all_about_updates18update_with_option1_141_$LT$impl$u20$diese 25: ; preds = %23 %26 = tail call { ptr, i64 } @"_ZN137_$LT$diesel..expression..operators..Eq$LT$Left$C$Right$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17h7b04bb07f3008016E"(ptr noalias noundef nonnull readonly align 1 %.sroa.0.0, i64 noundef %.sroa.5.0), !noalias !443 - %27 = extractvalue { ptr, i64 } %26, 0 - %28 = extractvalue { ptr, i64 } %26, 1 br label %"_ZN113_$LT$core..option..Option$LT$T$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17hf0aedb94b22c316dE.llvm.12703545329642850438.exit.i" "_ZN113_$LT$core..option..Option$LT$T$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17hf0aedb94b22c316dE.llvm.12703545329642850438.exit.i": ; preds = %25, %23 - %.sroa.02.0.i.i = phi ptr [ %27, %25 ], [ null, %23 ] - %.sroa.33.0.i.i = phi i64 [ %28, %25 ], [ undef, %23 ] - %29 = icmp eq ptr %.sroa.04.0, null - br i1 %29, label %"_ZN6diesel10type_impls6tuples109_$LT$impl$u20$diesel..query_builder..update_statement..changeset..AsChangeset$u20$for$u20$$LP$T0$C$T1$RP$$GT$12as_changeset17h0b9e71c3760be6ceE.exit", label %30 - -30: ; preds = %"_ZN113_$LT$core..option..Option$LT$T$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17hf0aedb94b22c316dE.llvm.12703545329642850438.exit.i" - %31 = tail call { ptr, i64 } @"_ZN137_$LT$diesel..expression..operators..Eq$LT$Left$C$Right$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17h0275eab74fdbdf97E"(ptr noalias noundef nonnull readonly align 1 %.sroa.04.0, i64 noundef %.sroa.55.0), !noalias !443 - %32 = extractvalue { ptr, i64 } %31, 0 - %33 = extractvalue { ptr, i64 } %31, 1 + %.merged.i.i = phi { ptr, i64 } [ %26, %25 ], [ { ptr null, i64 undef }, %23 ] + %27 = icmp eq ptr %.sroa.04.0, null + br i1 %27, label %"_ZN6diesel10type_impls6tuples109_$LT$impl$u20$diesel..query_builder..update_statement..changeset..AsChangeset$u20$for$u20$$LP$T0$C$T1$RP$$GT$12as_changeset17h0b9e71c3760be6ceE.exit", label %28 + +28: ; preds = %"_ZN113_$LT$core..option..Option$LT$T$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17hf0aedb94b22c316dE.llvm.12703545329642850438.exit.i" + %29 = tail call { ptr, i64 } @"_ZN137_$LT$diesel..expression..operators..Eq$LT$Left$C$Right$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17h0275eab74fdbdf97E"(ptr noalias noundef nonnull readonly align 1 %.sroa.04.0, i64 noundef %.sroa.55.0), !noalias !443 br label %"_ZN6diesel10type_impls6tuples109_$LT$impl$u20$diesel..query_builder..update_statement..changeset..AsChangeset$u20$for$u20$$LP$T0$C$T1$RP$$GT$12as_changeset17h0b9e71c3760be6ceE.exit" -"_ZN6diesel10type_impls6tuples109_$LT$impl$u20$diesel..query_builder..update_statement..changeset..AsChangeset$u20$for$u20$$LP$T0$C$T1$RP$$GT$12as_changeset17h0b9e71c3760be6ceE.exit": ; preds = %"_ZN113_$LT$core..option..Option$LT$T$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17hf0aedb94b22c316dE.llvm.12703545329642850438.exit.i", %30 - %.sroa.02.0.i2.i = phi ptr [ %32, %30 ], [ null, %"_ZN113_$LT$core..option..Option$LT$T$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17hf0aedb94b22c316dE.llvm.12703545329642850438.exit.i" ] - %.sroa.33.0.i3.i = phi i64 [ %33, %30 ], [ undef, %"_ZN113_$LT$core..option..Option$LT$T$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17hf0aedb94b22c316dE.llvm.12703545329642850438.exit.i" ] - store ptr %.sroa.02.0.i.i, ptr %0, align 8, !alias.scope !440, !noalias !445 +"_ZN6diesel10type_impls6tuples109_$LT$impl$u20$diesel..query_builder..update_statement..changeset..AsChangeset$u20$for$u20$$LP$T0$C$T1$RP$$GT$12as_changeset17h0b9e71c3760be6ceE.exit": ; preds = %"_ZN113_$LT$core..option..Option$LT$T$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17hf0aedb94b22c316dE.llvm.12703545329642850438.exit.i", %28 + %.merged.i2.i = phi { ptr, i64 } [ %29, %28 ], [ { ptr null, i64 undef }, %"_ZN113_$LT$core..option..Option$LT$T$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17hf0aedb94b22c316dE.llvm.12703545329642850438.exit.i" ] + %30 = extractvalue { ptr, i64 } %.merged.i.i, 1 + %31 = extractvalue { ptr, i64 } %.merged.i.i, 0 + %32 = extractvalue { ptr, i64 } %.merged.i2.i, 0 + %33 = extractvalue { ptr, i64 } %.merged.i2.i, 1 + store ptr %31, ptr %0, align 8, !alias.scope !440, !noalias !445 %34 = getelementptr inbounds i8, ptr %0, i64 8 - store i64 %.sroa.33.0.i.i, ptr %34, align 8, !alias.scope !440, !noalias !445 + store i64 %30, ptr %34, align 8, !alias.scope !440, !noalias !445 %35 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %.sroa.02.0.i2.i, ptr %35, align 8, !alias.scope !440, !noalias !445 + store ptr %32, ptr %35, align 8, !alias.scope !440, !noalias !445 %36 = getelementptr inbounds i8, ptr %0, i64 24 - store i64 %.sroa.33.0.i3.i, ptr %36, align 8, !alias.scope !440, !noalias !445 + store i64 %33, ptr %36, align 8, !alias.scope !440, !noalias !445 ret void } diff --git a/bench/diesel-rs/optimized/vl08vh3jfmwhanx.ll b/bench/diesel-rs/optimized/vl08vh3jfmwhanx.ll index 777657a64f3..ffc7267a82c 100644 --- a/bench/diesel-rs/optimized/vl08vh3jfmwhanx.ll +++ b/bench/diesel-rs/optimized/vl08vh3jfmwhanx.ll @@ -329,9 +329,11 @@ define hidden noundef align 8 dereferenceable_or_null(16) ptr @"_ZN113_$LT$core. ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define hidden { ptr, i64 } @"_ZN113_$LT$core..option..Option$LT$T$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17h351c5a9d3c2ca310E.llvm.12703545329642850438"(ptr noalias noundef readonly align 1 %0, i64 %1) unnamed_addr #2 personality ptr @rust_eh_personality { - %3 = insertvalue { ptr, i64 } poison, ptr %0, 0 - %4 = insertvalue { ptr, i64 } %3, i64 %1, 1 - ret { ptr, i64 } %4 + %3 = icmp eq ptr %0, null + %4 = insertvalue { ptr, i64 } poison, ptr %0, 0 + %5 = insertvalue { ptr, i64 } %4, i64 %1, 1 + %.merged = select i1 %3, { ptr, i64 } { ptr null, i64 undef }, { ptr, i64 } %5 + ret { ptr, i64 } %.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable @@ -341,9 +343,11 @@ define hidden noundef align 8 dereferenceable_or_null(16) ptr @"_ZN113_$LT$core. ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define hidden { ptr, i64 } @"_ZN113_$LT$core..option..Option$LT$T$GT$$u20$as$u20$diesel..query_builder..update_statement..changeset..AsChangeset$GT$12as_changeset17hf0aedb94b22c316dE.llvm.12703545329642850438"(ptr noalias noundef readonly align 1 %0, i64 %1) unnamed_addr #2 personality ptr @rust_eh_personality { - %3 = insertvalue { ptr, i64 } poison, ptr %0, 0 - %4 = insertvalue { ptr, i64 } %3, i64 %1, 1 - ret { ptr, i64 } %4 + %3 = icmp eq ptr %0, null + %4 = insertvalue { ptr, i64 } poison, ptr %0, 0 + %5 = insertvalue { ptr, i64 } %4, i64 %1, 1 + %.merged = select i1 %3, { ptr, i64 } { ptr null, i64 undef }, { ptr, i64 } %5 + ret { ptr, i64 } %.merged } ; Function Attrs: nonlazybind uwtable @@ -1652,17 +1656,21 @@ define hidden void @"_ZN6diesel10type_impls6tuples109_$LT$impl$u20$diesel..query %3 = load ptr, ptr %1, align 8, !align !7, !noundef !4 %4 = getelementptr inbounds i8, ptr %1, i64 8 %5 = load i64, ptr %4, align 8 - %6 = getelementptr inbounds i8, ptr %1, i64 16 - %7 = load ptr, ptr %6, align 8, !align !7, !noundef !4 - %8 = getelementptr inbounds i8, ptr %1, i64 24 - %9 = load i64, ptr %8, align 8 + %6 = icmp eq ptr %3, null + %7 = getelementptr inbounds i8, ptr %1, i64 16 + %8 = load ptr, ptr %7, align 8, !align !7, !noundef !4 + %9 = getelementptr inbounds i8, ptr %1, i64 24 + %10 = load i64, ptr %9, align 8 + %11 = icmp eq ptr %8, null + %12 = select i1 %6, i64 undef, i64 %5 + %13 = select i1 %11, i64 undef, i64 %10 store ptr %3, ptr %0, align 8 - %10 = getelementptr inbounds i8, ptr %0, i64 8 - store i64 %5, ptr %10, align 8 - %11 = getelementptr inbounds i8, ptr %0, i64 16 - store ptr %7, ptr %11, align 8 - %12 = getelementptr inbounds i8, ptr %0, i64 24 - store i64 %9, ptr %12, align 8 + %14 = getelementptr inbounds i8, ptr %0, i64 8 + store i64 %12, ptr %14, align 8 + %15 = getelementptr inbounds i8, ptr %0, i64 16 + store ptr %8, ptr %15, align 8 + %16 = getelementptr inbounds i8, ptr %0, i64 24 + store i64 %13, ptr %16, align 8 ret void } diff --git a/bench/duckdb/optimized/ub_duckdb_func_scalar.cpp.ll b/bench/duckdb/optimized/ub_duckdb_func_scalar.cpp.ll index 6affa3db97c..b8aa115dac1 100644 --- a/bench/duckdb/optimized/ub_duckdb_func_scalar.cpp.ll +++ b/bench/duckdb/optimized/ub_duckdb_func_scalar.cpp.ll @@ -14273,19 +14273,19 @@ _ZN6duckdb8string_t8FinalizeEv.exit.i: ; preds = %if.else.i.i, %for.b call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %date.i) #29 %.fca.0.load.pre.i = load i64, ptr %retval.i, align 8 %.fca.1.load.pre.i = load ptr, ptr %8, align 8 + %16 = insertvalue { i64, ptr } poison, i64 %.fca.0.load.pre.i, 0 + %17 = insertvalue { i64, ptr } %16, ptr %.fca.1.load.pre.i, 1 br label %"_ZZN6duckdb14StrfTimeFormat22ConvertTimestampVectorERNS_6VectorES2_mENK3$_0clENS_11timestamp_tERNS_12ValidityMaskEm.exit" if.else.i: ; preds = %entry, %entry - %16 = getelementptr inbounds i8, ptr %dataptr, i64 8 - %17 = load ptr, ptr %16, align 8, !tbaa !272 + %18 = getelementptr inbounds i8, ptr %dataptr, i64 8 + %19 = load ptr, ptr %18, align 8, !tbaa !272 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %ref.tmp.i) #29 call void @_ZN6duckdb9Timestamp8ToStringB5cxx11ENS_11timestamp_tE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp.i, i64 %input.coerce) - %call20.i = invoke { i64, ptr } @_ZN6duckdb12StringVector9AddStringERNS_6VectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(104) %17, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) + %call20.i = invoke { i64, ptr } @_ZN6duckdb12StringVector9AddStringERNS_6VectorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(104) %19, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp.i) to label %invoke.cont.i unwind label %lpad.i invoke.cont.i: ; preds = %if.else.i - %18 = extractvalue { i64, ptr } %call20.i, 0 - %19 = extractvalue { i64, ptr } %call20.i, 1 %20 = load ptr, ptr %ref.tmp.i, align 8, !tbaa !12 %21 = getelementptr inbounds i8, ptr %ref.tmp.i, i64 16 %cmp.i.i.i29.i = icmp eq ptr %20, %21 @@ -14330,12 +14330,9 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit35.i: ; preds = %i resume { ptr, i32 } %23 "_ZZN6duckdb14StrfTimeFormat22ConvertTimestampVectorERNS_6VectorES2_mENK3$_0clENS_11timestamp_tERNS_12ValidityMaskEm.exit": ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i, %_ZN6duckdb8string_t8FinalizeEv.exit.i - %.fca.1.load.i = phi ptr [ %19, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i ], [ %.fca.1.load.pre.i, %_ZN6duckdb8string_t8FinalizeEv.exit.i ] - %.fca.0.load.i = phi i64 [ %18, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i ], [ %.fca.0.load.pre.i, %_ZN6duckdb8string_t8FinalizeEv.exit.i ] - %.fca.0.insert.i = insertvalue { i64, ptr } poison, i64 %.fca.0.load.i, 0 - %.fca.1.insert.i = insertvalue { i64, ptr } %.fca.0.insert.i, ptr %.fca.1.load.i, 1 + %.fca.1.insert.i.merged = phi { i64, ptr } [ %call20.i, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit.i ], [ %17, %_ZN6duckdb8string_t8FinalizeEv.exit.i ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %retval.i) - ret { i64, ptr } %.fca.1.insert.i + ret { i64, ptr } %.fca.1.insert.i.merged } declare void @_ZN6duckdb9Timestamp7ConvertENS_11timestamp_tERNS_6date_tERNS_7dtime_tE(i64, ptr noundef nonnull align 4 dereferenceable(4), ptr noundef nonnull align 8 dereferenceable(8)) local_unnamed_addr #2 diff --git a/bench/graphviz/optimized/arrows.c.ll b/bench/graphviz/optimized/arrows.c.ll index e2ebf58973d..ff1c8cd853e 100644 --- a/bench/graphviz/optimized/arrows.c.ll +++ b/bench/graphviz/optimized/arrows.c.ll @@ -1057,14 +1057,14 @@ define void @arrow_gen(ptr noundef %0, i32 noundef %1, double %2, double %3, dou br label %30 30: ; preds = %9, %arrow_gen_type.exit - %.sroa.4.038 = phi double [ %3, %9 ], [ %.sroa.418.0.i, %arrow_gen_type.exit ] - %.sroa.031.037 = phi double [ %2, %9 ], [ %.sroa.017.0.i, %arrow_gen_type.exit ] - %.036 = phi i32 [ 0, %9 ], [ %54, %arrow_gen_type.exit ] + %.sroa.4.038 = phi double [ %3, %9 ], [ %55, %arrow_gen_type.exit ] + %.sroa.031.037 = phi double [ %2, %9 ], [ %54, %arrow_gen_type.exit ] + %.036 = phi i32 [ 0, %9 ], [ %56, %arrow_gen_type.exit ] %31 = shl nuw nsw i32 %.036, 3 %32 = lshr i32 %8, %31 %33 = and i32 %32, 255 %34 = icmp eq i32 %33, 0 - br i1 %34, label %55, label %35 + br i1 %34, label %57, label %35 35: ; preds = %30 %36 = and i32 %32, 15 @@ -1073,7 +1073,7 @@ define void @arrow_gen(ptr noundef %0, i32 noundef %1, double %2, double %3, dou 37: ; preds = %39 %38 = add nuw nsw i64 %.021.i, 1 %exitcond.not.i = icmp eq i64 %38, 8 - br i1 %exitcond.not.i, label %arrow_gen_type.exit, label %39 + br i1 %exitcond.not.i, label %.loopexit.loopexit.i, label %39 39: ; preds = %37, %35 %.021.i = phi i64 [ 0, %35 ], [ %38, %37 ] @@ -1091,18 +1091,22 @@ define void @arrow_gen(ptr noundef %0, i32 noundef %1, double %2, double %3, dou %49 = getelementptr inbounds i8, ptr %40, i64 16 %50 = load ptr, ptr %49, align 8 %51 = tail call { double, double } %50(ptr noundef nonnull %0, double %.sroa.031.037, double %.sroa.4.038, double %47, double %48, double noundef %6, double noundef %7, i32 noundef %33) #11 - %52 = extractvalue { double, double } %51, 0 - %53 = extractvalue { double, double } %51, 1 br label %arrow_gen_type.exit -arrow_gen_type.exit: ; preds = %37, %43 - %.sroa.017.0.i = phi double [ %52, %43 ], [ %.sroa.031.037, %37 ] - %.sroa.418.0.i = phi double [ %53, %43 ], [ %.sroa.4.038, %37 ] - %54 = add nuw nsw i32 %.036, 1 - %exitcond.not = icmp eq i32 %54, 4 - br i1 %exitcond.not, label %55, label %30 +.loopexit.loopexit.i: ; preds = %37 + %52 = insertvalue { double, double } poison, double %.sroa.031.037, 0 + %53 = insertvalue { double, double } %52, double %.sroa.4.038, 1 + br label %arrow_gen_type.exit + +arrow_gen_type.exit: ; preds = %43, %.loopexit.loopexit.i + %.fca.1.insert.merged.i = phi { double, double } [ %51, %43 ], [ %53, %.loopexit.loopexit.i ] + %54 = extractvalue { double, double } %.fca.1.insert.merged.i, 0 + %55 = extractvalue { double, double } %.fca.1.insert.merged.i, 1 + %56 = add nuw nsw i32 %.036, 1 + %exitcond.not = icmp eq i32 %56, 4 + br i1 %exitcond.not, label %57, label %30 -55: ; preds = %30, %arrow_gen_type.exit +57: ; preds = %30, %arrow_gen_type.exit store i32 %13, ptr %12, align 8 ret void } diff --git a/bench/grpc/optimized/cds.cc.ll b/bench/grpc/optimized/cds.cc.ll index 362f4475896..38dc5f299a8 100644 --- a/bench/grpc/optimized/cds.cc.ll +++ b/bench/grpc/optimized/cds.cc.ll @@ -10902,23 +10902,20 @@ cond.true: ; preds = %entry %1 = inttoptr i64 %sub.i to ptr %message = getelementptr inbounds i8, ptr %1, i64 8 %call4 = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %message) #24 - %2 = extractvalue { i64, ptr } %call4, 0 - %3 = extractvalue { i64, ptr } %call4, 1 br label %cond.end9 cond.false: ; preds = %entry - %4 = and i64 %0, 2 - %.not = icmp eq i64 %4, 0 + %2 = and i64 %0, 2 + %.not = icmp eq i64 %2, 0 %spec.select = select i1 %.not, i64 0, i64 27 %spec.select1 = select i1 %.not, ptr null, ptr @_ZN4absl12lts_202308026Status16kMovedFromStringE + %3 = insertvalue { i64, ptr } poison, i64 %spec.select, 0 + %4 = insertvalue { i64, ptr } %3, ptr %spec.select1, 1 br label %cond.end9 cond.end9: ; preds = %cond.false, %cond.true - %retval.sroa.0.0 = phi i64 [ %2, %cond.true ], [ %spec.select, %cond.false ] - %retval.sroa.4.0 = phi ptr [ %3, %cond.true ], [ %spec.select1, %cond.false ] - %.fca.0.insert = insertvalue { i64, ptr } poison, i64 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i64, ptr } %.fca.0.insert, ptr %retval.sroa.4.0, 1 - ret { i64, ptr } %.fca.1.insert + %.fca.1.insert.merged = phi { i64, ptr } [ %call4, %cond.true ], [ %4, %cond.false ] + ret { i64, ptr } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable diff --git a/bench/grpc/optimized/error_utils.cc.ll b/bench/grpc/optimized/error_utils.cc.ll index 0774b3289dd..8b8293e90a9 100644 --- a/bench/grpc/optimized/error_utils.cc.ll +++ b/bench/grpc/optimized/error_utils.cc.ll @@ -975,22 +975,23 @@ cond.true.i: ; preds = %if.end %1 = inttoptr i64 %sub.i.i to ptr %message.i = getelementptr inbounds i8, ptr %1, i64 8 %call4.i = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %message.i) #11 - %2 = extractvalue { i64, ptr } %call4.i, 0 - %3 = extractvalue { i64, ptr } %call4.i, 1 br label %_ZNK4absl12lts_202308026Status7messageEv.exit cond.false.i: ; preds = %if.end - %4 = and i64 %0, 2 - %.not.i = icmp eq i64 %4, 0 + %2 = and i64 %0, 2 + %.not.i = icmp eq i64 %2, 0 %spec.select.i = select i1 %.not.i, i64 0, i64 27 %spec.select1.i = select i1 %.not.i, ptr null, ptr @_ZN4absl12lts_202308026Status16kMovedFromStringE + %3 = insertvalue { i64, ptr } poison, i64 %spec.select.i, 0 + %4 = insertvalue { i64, ptr } %3, ptr %spec.select1.i, 1 br label %_ZNK4absl12lts_202308026Status7messageEv.exit _ZNK4absl12lts_202308026Status7messageEv.exit: ; preds = %cond.true.i, %cond.false.i - %retval.sroa.0.0.i = phi i64 [ %2, %cond.true.i ], [ %spec.select.i, %cond.false.i ] - %retval.sroa.4.0.i = phi ptr [ %3, %cond.true.i ], [ %spec.select1.i, %cond.false.i ] + %.fca.1.insert.merged.i = phi { i64, ptr } [ %call4.i, %cond.true.i ], [ %4, %cond.false.i ] + %5 = extractvalue { i64, ptr } %.fca.1.insert.merged.i, 0 + %6 = extractvalue { i64, ptr } %.fca.1.insert.merged.i, 1 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp3, i8 0, i64 24, i1 false) - invoke void @_ZN9grpc_core12StatusCreateEN4absl12lts_2023080210StatusCodeESt17basic_string_viewIcSt11char_traitsIcEERKNS_13DebugLocationESt6vectorINS1_6StatusESaISB_EE(ptr nonnull sret(%"class.absl::lts_20230802::Status") align 8 %agg.tmp, i32 noundef 2, i64 %retval.sroa.0.0.i, ptr %retval.sroa.4.0.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, ptr noundef nonnull %agg.tmp3) + invoke void @_ZN9grpc_core12StatusCreateEN4absl12lts_2023080210StatusCodeESt17basic_string_viewIcSt11char_traitsIcEERKNS_13DebugLocationESt6vectorINS1_6StatusESaISB_EE(ptr nonnull sret(%"class.absl::lts_20230802::Status") align 8 %agg.tmp, i32 noundef 2, i64 %5, ptr %6, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp, ptr noundef nonnull %agg.tmp3) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %_ZNK4absl12lts_202308026Status7messageEv.exit @@ -1003,50 +1004,50 @@ invoke.cont5: ; preds = %invoke.cont to label %invoke.cont7 unwind label %lpad4 invoke.cont7: ; preds = %invoke.cont5 - %5 = load i64, ptr %agg.tmp, align 8 - %and.i.i.i = and i64 %5, 1 + %7 = load i64, ptr %agg.tmp, align 8 + %and.i.i.i = and i64 %7, 1 %cmp.i.i.i = icmp eq i64 %and.i.i.i, 0 br i1 %cmp.i.i.i, label %_ZN4absl12lts_202308026StatusD2Ev.exit, label %if.then.i.i if.then.i.i: ; preds = %invoke.cont7 - invoke void @_ZN4absl12lts_202308026Status15UnrefNonInlinedEm(i64 noundef %5) + invoke void @_ZN4absl12lts_202308026Status15UnrefNonInlinedEm(i64 noundef %7) to label %_ZN4absl12lts_202308026StatusD2Ev.exit unwind label %terminate.lpad.i terminate.lpad.i: ; preds = %if.then.i.i - %6 = landingpad { ptr, i32 } + %8 = landingpad { ptr, i32 } catch ptr null - %7 = extractvalue { ptr, i32 } %6, 0 - call void @__clang_call_terminate(ptr %7) #10 + %9 = extractvalue { ptr, i32 } %8, 0 + call void @__clang_call_terminate(ptr %9) #10 unreachable _ZN4absl12lts_202308026StatusD2Ev.exit: ; preds = %invoke.cont7, %if.then.i.i - %8 = load ptr, ptr %agg.tmp3, align 8 + %10 = load ptr, ptr %agg.tmp3, align 8 %_M_finish.i = getelementptr inbounds i8, ptr %agg.tmp3, i64 8 - %9 = load ptr, ptr %_M_finish.i, align 8 - %cmp.not3.i.i.i.i = icmp eq ptr %8, %9 + %11 = load ptr, ptr %_M_finish.i, align 8 + %cmp.not3.i.i.i.i = icmp eq ptr %10, %11 br i1 %cmp.not3.i.i.i.i, label %invoke.cont.i, label %for.body.i.i.i.i for.body.i.i.i.i: ; preds = %_ZN4absl12lts_202308026StatusD2Ev.exit, %_ZSt8_DestroyIN4absl12lts_202308026StatusEEvPT_.exit.i.i.i.i - %__first.addr.04.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i, %_ZSt8_DestroyIN4absl12lts_202308026StatusEEvPT_.exit.i.i.i.i ], [ %8, %_ZN4absl12lts_202308026StatusD2Ev.exit ] - %10 = load i64, ptr %__first.addr.04.i.i.i.i, align 8 - %and.i.i.i.i.i.i.i.i = and i64 %10, 1 + %__first.addr.04.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i, %_ZSt8_DestroyIN4absl12lts_202308026StatusEEvPT_.exit.i.i.i.i ], [ %10, %_ZN4absl12lts_202308026StatusD2Ev.exit ] + %12 = load i64, ptr %__first.addr.04.i.i.i.i, align 8 + %and.i.i.i.i.i.i.i.i = and i64 %12, 1 %cmp.i.i.i.i.i.i.i.i = icmp eq i64 %and.i.i.i.i.i.i.i.i, 0 br i1 %cmp.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyIN4absl12lts_202308026StatusEEvPT_.exit.i.i.i.i, label %if.then.i.i.i.i.i.i.i if.then.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i - invoke void @_ZN4absl12lts_202308026Status15UnrefNonInlinedEm(i64 noundef %10) + invoke void @_ZN4absl12lts_202308026Status15UnrefNonInlinedEm(i64 noundef %12) to label %_ZSt8_DestroyIN4absl12lts_202308026StatusEEvPT_.exit.i.i.i.i unwind label %terminate.lpad.i.i.i.i.i.i terminate.lpad.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i - %11 = landingpad { ptr, i32 } + %13 = landingpad { ptr, i32 } catch ptr null - %12 = extractvalue { ptr, i32 } %11, 0 - call void @__clang_call_terminate(ptr %12) #10 + %14 = extractvalue { ptr, i32 } %13, 0 + call void @__clang_call_terminate(ptr %14) #10 unreachable _ZSt8_DestroyIN4absl12lts_202308026StatusEEvPT_.exit.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i, %for.body.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i, i64 8 - %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %9 + %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %11 br i1 %cmp.not.i.i.i.i, label %invoke.contthread-pre-split.i, label %for.body.i.i.i.i, !llvm.loop !7 invoke.contthread-pre-split.i: ; preds = %_ZSt8_DestroyIN4absl12lts_202308026StatusEEvPT_.exit.i.i.i.i @@ -1054,27 +1055,27 @@ invoke.contthread-pre-split.i: ; preds = %_ZSt8_DestroyIN4abs br label %invoke.cont.i invoke.cont.i: ; preds = %invoke.contthread-pre-split.i, %_ZN4absl12lts_202308026StatusD2Ev.exit - %13 = phi ptr [ %.pr.i, %invoke.contthread-pre-split.i ], [ %8, %_ZN4absl12lts_202308026StatusD2Ev.exit ] - %tobool.not.i.i.i = icmp eq ptr %13, null + %15 = phi ptr [ %.pr.i, %invoke.contthread-pre-split.i ], [ %10, %_ZN4absl12lts_202308026StatusD2Ev.exit ] + %tobool.not.i.i.i = icmp eq ptr %15, null br i1 %tobool.not.i.i.i, label %return, label %if.then.i.i.i if.then.i.i.i: ; preds = %invoke.cont.i - call void @_ZdlPv(ptr noundef nonnull %13) #12 + call void @_ZdlPv(ptr noundef nonnull %15) #12 br label %return lpad: ; preds = %_ZNK4absl12lts_202308026Status7messageEv.exit - %14 = landingpad { ptr, i32 } + %16 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad4: ; preds = %invoke.cont5, %invoke.cont - %15 = landingpad { ptr, i32 } + %17 = landingpad { ptr, i32 } cleanup call void @_ZN4absl12lts_202308026StatusD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp) #11 br label %ehcleanup ehcleanup: ; preds = %lpad4, %lpad - %.pn = phi { ptr, i32 } [ %15, %lpad4 ], [ %14, %lpad ] + %.pn = phi { ptr, i32 } [ %17, %lpad4 ], [ %16, %lpad ] call void @_ZNSt6vectorIN4absl12lts_202308026StatusESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %agg.tmp3) #11 resume { ptr, i32 } %.pn diff --git a/bench/grpc/optimized/evaluate_args.cc.ll b/bench/grpc/optimized/evaluate_args.cc.ll index 1bad3a1d199..a749b6ee3b3 100644 --- a/bench/grpc/optimized/evaluate_args.cc.ll +++ b/bench/grpc/optimized/evaluate_args.cc.ll @@ -872,16 +872,11 @@ entry: if.end: ; preds = %entry %address_str = getelementptr inbounds i8, ptr %0, i64 248 %call = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %address_str) #21 - %1 = extractvalue { i64, ptr } %call, 0 - %2 = extractvalue { i64, ptr } %call, 1 br label %return return: ; preds = %entry, %if.end - %retval.sroa.3.0 = phi ptr [ %2, %if.end ], [ @.str.8, %entry ] - %retval.sroa.0.0 = phi i64 [ %1, %if.end ], [ 0, %entry ] - %.fca.0.insert = insertvalue { i64, ptr } poison, i64 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i64, ptr } %.fca.0.insert, ptr %retval.sroa.3.0, 1 - ret { i64, ptr } %.fca.1.insert + %.fca.1.insert.merged = phi { i64, ptr } [ %call, %if.end ], [ { i64 0, ptr @.str.8 }, %entry ] + ret { i64, ptr } %.fca.1.insert.merged } ; Function Attrs: nounwind @@ -937,16 +932,11 @@ entry: if.end: ; preds = %entry %address_str = getelementptr inbounds i8, ptr %0, i64 424 %call = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %address_str) #21 - %1 = extractvalue { i64, ptr } %call, 0 - %2 = extractvalue { i64, ptr } %call, 1 br label %return return: ; preds = %entry, %if.end - %retval.sroa.3.0 = phi ptr [ %2, %if.end ], [ @.str.8, %entry ] - %retval.sroa.0.0 = phi i64 [ %1, %if.end ], [ 0, %entry ] - %.fca.0.insert = insertvalue { i64, ptr } poison, i64 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i64, ptr } %.fca.0.insert, ptr %retval.sroa.3.0, 1 - ret { i64, ptr } %.fca.1.insert + %.fca.1.insert.merged = phi { i64, ptr } [ %call, %if.end ], [ { i64 0, ptr @.str.8 }, %entry ] + ret { i64, ptr } %.fca.1.insert.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable diff --git a/bench/grpc/optimized/jwt_verifier.cc.ll b/bench/grpc/optimized/jwt_verifier.cc.ll index 53e956ecdaf..bacf108088b 100644 --- a/bench/grpc/optimized/jwt_verifier.cc.ll +++ b/bench/grpc/optimized/jwt_verifier.cc.ll @@ -420,8 +420,6 @@ entry: if.then: ; preds = %entry %call = tail call { i64, i64 } @gpr_inf_past(i32 noundef 1) - %0 = extractvalue { i64, i64 } %call, 0 - %1 = extractvalue { i64, i64 } %call, 1 br label %return if.end: ; preds = %entry @@ -429,14 +427,13 @@ if.end: ; preds = %entry %retval.sroa.0.0.copyload = load i64, ptr %iat, align 8 %retval.sroa.3.0.iat.sroa_idx = getelementptr inbounds i8, ptr %claims, i64 40 %retval.sroa.3.0.copyload = load i64, ptr %retval.sroa.3.0.iat.sroa_idx, align 8 + %0 = insertvalue { i64, i64 } poison, i64 %retval.sroa.0.0.copyload, 0 + %1 = insertvalue { i64, i64 } %0, i64 %retval.sroa.3.0.copyload, 1 br label %return return: ; preds = %if.end, %if.then - %retval.sroa.0.0 = phi i64 [ %0, %if.then ], [ %retval.sroa.0.0.copyload, %if.end ] - %retval.sroa.3.0 = phi i64 [ %1, %if.then ], [ %retval.sroa.3.0.copyload, %if.end ] - %.fca.0.insert = insertvalue { i64, i64 } poison, i64 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i64, i64 } %.fca.0.insert, i64 %retval.sroa.3.0, 1 - ret { i64, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { i64, i64 } [ %call, %if.then ], [ %1, %if.end ] + ret { i64, i64 } %.fca.1.insert.merged } declare { i64, i64 } @gpr_inf_past(i32 noundef) local_unnamed_addr #0 @@ -452,8 +449,6 @@ entry: if.then: ; preds = %entry %call = tail call { i64, i64 } @gpr_inf_future(i32 noundef 1) - %0 = extractvalue { i64, i64 } %call, 0 - %1 = extractvalue { i64, i64 } %call, 1 br label %return if.end: ; preds = %entry @@ -461,14 +456,13 @@ if.end: ; preds = %entry %retval.sroa.0.0.copyload = load i64, ptr %exp, align 8 %retval.sroa.3.0.exp.sroa_idx = getelementptr inbounds i8, ptr %claims, i64 56 %retval.sroa.3.0.copyload = load i64, ptr %retval.sroa.3.0.exp.sroa_idx, align 8 + %0 = insertvalue { i64, i64 } poison, i64 %retval.sroa.0.0.copyload, 0 + %1 = insertvalue { i64, i64 } %0, i64 %retval.sroa.3.0.copyload, 1 br label %return return: ; preds = %if.end, %if.then - %retval.sroa.0.0 = phi i64 [ %0, %if.then ], [ %retval.sroa.0.0.copyload, %if.end ] - %retval.sroa.3.0 = phi i64 [ %1, %if.then ], [ %retval.sroa.3.0.copyload, %if.end ] - %.fca.0.insert = insertvalue { i64, i64 } poison, i64 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i64, i64 } %.fca.0.insert, i64 %retval.sroa.3.0, 1 - ret { i64, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { i64, i64 } [ %call, %if.then ], [ %1, %if.end ] + ret { i64, i64 } %.fca.1.insert.merged } declare { i64, i64 } @gpr_inf_future(i32 noundef) local_unnamed_addr #0 @@ -481,8 +475,6 @@ entry: if.then: ; preds = %entry %call = tail call { i64, i64 } @gpr_inf_past(i32 noundef 1) - %0 = extractvalue { i64, i64 } %call, 0 - %1 = extractvalue { i64, i64 } %call, 1 br label %return if.end: ; preds = %entry @@ -490,14 +482,13 @@ if.end: ; preds = %entry %retval.sroa.0.0.copyload = load i64, ptr %nbf, align 8 %retval.sroa.3.0.nbf.sroa_idx = getelementptr inbounds i8, ptr %claims, i64 72 %retval.sroa.3.0.copyload = load i64, ptr %retval.sroa.3.0.nbf.sroa_idx, align 8 + %0 = insertvalue { i64, i64 } poison, i64 %retval.sroa.0.0.copyload, 0 + %1 = insertvalue { i64, i64 } %0, i64 %retval.sroa.3.0.copyload, 1 br label %return return: ; preds = %if.end, %if.then - %retval.sroa.0.0 = phi i64 [ %0, %if.then ], [ %retval.sroa.0.0.copyload, %if.end ] - %retval.sroa.3.0 = phi i64 [ %1, %if.then ], [ %retval.sroa.3.0.copyload, %if.end ] - %.fca.0.insert = insertvalue { i64, i64 } poison, i64 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i64, i64 } %.fca.0.insert, i64 %retval.sroa.3.0, 1 - ret { i64, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { i64, i64 } [ %call, %if.then ], [ %1, %if.end ] + ret { i64, i64 } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable diff --git a/bench/grpc/optimized/posix_endpoint.cc.ll b/bench/grpc/optimized/posix_endpoint.cc.ll index 16109c4e732..7e99b3a7c08 100644 --- a/bench/grpc/optimized/posix_endpoint.cc.ll +++ b/bench/grpc/optimized/posix_endpoint.cc.ll @@ -1736,23 +1736,24 @@ cond.true.i: ; preds = %invoke.cont28 %16 = inttoptr i64 %sub.i.i to ptr %message.i = getelementptr inbounds i8, ptr %16, i64 8 %call4.i = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %message.i) #29 - %17 = extractvalue { i64, ptr } %call4.i, 0 - %18 = extractvalue { i64, ptr } %call4.i, 1 br label %invoke.cont33 cond.false.i: ; preds = %invoke.cont28 - %19 = and i64 %11, 2 - %.not.i = icmp eq i64 %19, 0 + %17 = and i64 %11, 2 + %.not.i = icmp eq i64 %17, 0 %spec.select.i = select i1 %.not.i, i64 0, i64 27 %spec.select1.i = select i1 %.not.i, ptr null, ptr @_ZN4absl12lts_202308026Status16kMovedFromStringE + %18 = insertvalue { i64, ptr } poison, i64 %spec.select.i, 0 + %19 = insertvalue { i64, ptr } %18, ptr %spec.select1.i, 1 br label %invoke.cont33 invoke.cont33: ; preds = %cond.false.i, %cond.true.i - %retval.sroa.0.0.i = phi i64 [ %17, %cond.true.i ], [ %spec.select.i, %cond.false.i ] - %retval.sroa.4.0.i = phi ptr [ %18, %cond.true.i ], [ %spec.select1.i, %cond.false.i ] - store i64 %retval.sroa.0.0.i, ptr %ref.tmp29, align 8 + %.fca.1.insert.merged.i = phi { i64, ptr } [ %call4.i, %cond.true.i ], [ %19, %cond.false.i ] + %20 = extractvalue { i64, ptr } %.fca.1.insert.merged.i, 0 + %21 = extractvalue { i64, ptr } %.fca.1.insert.merged.i, 1 + store i64 %20, ptr %ref.tmp29, align 8 %pc.sroa.2.0.piece_.sroa_idx.i = getelementptr inbounds i8, ptr %ref.tmp29, i64 8 - store ptr %retval.sroa.4.0.i, ptr %pc.sroa.2.0.piece_.sroa_idx.i, align 8 + store ptr %21, ptr %pc.sroa.2.0.piece_.sroa_idx.i, align 8 invoke void @_ZN4absl12lts_202308026StrCatB5cxx11ERKNS0_8AlphaNumES3_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp26, ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp27, ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp29) to label %invoke.cont36 unwind label %lpad @@ -1762,7 +1763,7 @@ invoke.cont36: ; preds = %invoke.cont33 to label %if.end40 unwind label %lpad38 lpad38: ; preds = %invoke.cont36 - %20 = landingpad { ptr, i32 } + %22 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp26) #29 br label %ehcleanup @@ -1779,17 +1780,17 @@ if.then.i.i3.i.i: ; preds = %if.end40 to label %return unwind label %terminate.lpad.i4.i.i terminate.lpad.i4.i.i: ; preds = %if.then.i.i3.i.i - %21 = landingpad { ptr, i32 } + %23 = landingpad { ptr, i32 } catch ptr null - %22 = extractvalue { ptr, i32 } %21, 0 - call void @__clang_call_terminate(ptr %22) #30 + %24 = extractvalue { ptr, i32 } %23, 0 + call void @__clang_call_terminate(ptr %24) #30 unreachable return: ; preds = %if.end40.thread, %if.then.i.i3.i.i, %if.end40, %_ZSt3minIiET_St16initializer_listIS0_E.exit, %entry ret void ehcleanup: ; preds = %lpad38, %lpad - %.pn = phi { ptr, i32 } [ %14, %lpad ], [ %20, %lpad38 ] + %.pn = phi { ptr, i32 } [ %14, %lpad ], [ %22, %lpad38 ] call void @_ZN4absl12lts_202308028StatusOrIiED2Ev(ptr noundef nonnull align 8 dereferenceable(12) %result) #29 resume { ptr, i32 } %.pn } diff --git a/bench/grpc/optimized/xds_server_config_fetcher.cc.ll b/bench/grpc/optimized/xds_server_config_fetcher.cc.ll index 1d40781f4ee..a4014678306 100644 --- a/bench/grpc/optimized/xds_server_config_fetcher.cc.ll +++ b/bench/grpc/optimized/xds_server_config_fetcher.cc.ll @@ -5287,30 +5287,31 @@ cond.true.i: ; preds = %if.then4 %15 = inttoptr i64 %sub.i.i to ptr %message.i = getelementptr inbounds i8, ptr %15, i64 8 %call4.i = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %message.i) #29 - %16 = extractvalue { i64, ptr } %call4.i, 0 - %17 = extractvalue { i64, ptr } %call4.i, 1 br label %_ZNK4absl12lts_202308026Status7messageEv.exit cond.false.i: ; preds = %if.then4 - %18 = and i64 %14, 2 - %.not.i = icmp eq i64 %18, 0 + %16 = and i64 %14, 2 + %.not.i = icmp eq i64 %16, 0 %spec.select.i = select i1 %.not.i, i64 0, i64 27 %spec.select1.i = select i1 %.not.i, ptr null, ptr @_ZN4absl12lts_202308026Status16kMovedFromStringE + %17 = insertvalue { i64, ptr } poison, i64 %spec.select.i, 0 + %18 = insertvalue { i64, ptr } %17, ptr %spec.select1.i, 1 br label %_ZNK4absl12lts_202308026Status7messageEv.exit _ZNK4absl12lts_202308026Status7messageEv.exit: ; preds = %cond.true.i, %cond.false.i - %retval.sroa.0.0.i = phi i64 [ %16, %cond.true.i ], [ %spec.select.i, %cond.false.i ] - %retval.sroa.4.0.i = phi ptr [ %17, %cond.true.i ], [ %spec.select1.i, %cond.false.i ] + %.fca.1.insert.merged.i = phi { i64, ptr } [ %call4.i, %cond.true.i ], [ %18, %cond.false.i ] + %19 = extractvalue { i64, ptr } %.fca.1.insert.merged.i, 0 + %20 = extractvalue { i64, ptr } %.fca.1.insert.merged.i, 1 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp12) #29 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %agg.tmp.i) - %call.i = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %retval.sroa.0.0.i, ptr %retval.sroa.4.0.i) #29 - %19 = extractvalue { i64, ptr } %call.i, 0 - %20 = extractvalue { i64, ptr } %call.i, 1 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp.i, i64 %19, ptr %20) #29 - %21 = load i64, ptr %agg.tmp.i, align 8 - %22 = getelementptr inbounds i8, ptr %agg.tmp.i, i64 8 - %23 = load ptr, ptr %22, align 8 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ENS4_12__sv_wrapperERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, i64 %21, ptr %23, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp12) + %call.i = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %19, ptr %20) #29 + %21 = extractvalue { i64, ptr } %call.i, 0 + %22 = extractvalue { i64, ptr } %call.i, 1 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E(ptr noundef nonnull align 8 dereferenceable(16) %agg.tmp.i, i64 %21, ptr %22) #29 + %23 = load i64, ptr %agg.tmp.i, align 8 + %24 = getelementptr inbounds i8, ptr %agg.tmp.i, i64 8 + %25 = load ptr, ptr %24, align 8 + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2ENS4_12__sv_wrapperERKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, i64 %23, ptr %25, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp12) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %_ZNK4absl12lts_202308026Status7messageEv.exit @@ -5325,18 +5326,18 @@ invoke.cont15: ; preds = %invoke.cont br label %if.end23 lpad: ; preds = %_ZNK4absl12lts_202308026Status7messageEv.exit - %24 = landingpad { ptr, i32 } + %26 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad14: ; preds = %invoke.cont - %25 = landingpad { ptr, i32 } + %27 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #29 br label %ehcleanup ehcleanup: ; preds = %lpad14, %lpad - %.pn = phi { ptr, i32 } [ %25, %lpad14 ], [ %24, %lpad ] + %.pn = phi { ptr, i32 } [ %27, %lpad14 ], [ %26, %lpad ] call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp12) #29 br label %eh.resume @@ -5352,7 +5353,7 @@ invoke.cont21: ; preds = %if.else br label %if.end23 lpad20: ; preds = %if.else - %26 = landingpad { ptr, i32 } + %28 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp16) #29 br label %eh.resume @@ -5361,7 +5362,7 @@ if.end23: ; preds = %invoke.cont21, %inv ret void eh.resume: ; preds = %lpad20, %ehcleanup - %.pn.pn = phi { ptr, i32 } [ %.pn, %ehcleanup ], [ %26, %lpad20 ] + %.pn.pn = phi { ptr, i32 } [ %.pn, %ehcleanup ], [ %28, %lpad20 ] resume { ptr, i32 } %.pn.pn } diff --git a/bench/grpc/optimized/xds_transport_grpc.cc.ll b/bench/grpc/optimized/xds_transport_grpc.cc.ll index ef97de2121f..e1b1ba9d025 100644 --- a/bench/grpc/optimized/xds_transport_grpc.cc.ll +++ b/bench/grpc/optimized/xds_transport_grpc.cc.ll @@ -2284,34 +2284,35 @@ cond.true.i: ; preds = %if.then %2 = inttoptr i64 %sub.i.i to ptr %message.i = getelementptr inbounds i8, ptr %2, i64 8 %call4.i = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %message.i) #23 - %3 = extractvalue { i64, ptr } %call4.i, 0 - %4 = extractvalue { i64, ptr } %call4.i, 1 br label %_ZNK4absl12lts_202308026Status7messageEv.exit cond.false.i: ; preds = %if.then - %5 = and i64 %1, 2 - %.not.i = icmp eq i64 %5, 0 + %3 = and i64 %1, 2 + %.not.i = icmp eq i64 %3, 0 %spec.select.i = select i1 %.not.i, i64 0, i64 27 %spec.select1.i = select i1 %.not.i, ptr null, ptr @_ZN4absl12lts_202308026Status16kMovedFromStringE + %4 = insertvalue { i64, ptr } poison, i64 %spec.select.i, 0 + %5 = insertvalue { i64, ptr } %4, ptr %spec.select1.i, 1 br label %_ZNK4absl12lts_202308026Status7messageEv.exit _ZNK4absl12lts_202308026Status7messageEv.exit: ; preds = %cond.true.i, %cond.false.i - %retval.sroa.0.0.i = phi i64 [ %3, %cond.true.i ], [ %spec.select.i, %cond.false.i ] - %retval.sroa.4.0.i = phi ptr [ %4, %cond.true.i ], [ %spec.select1.i, %cond.false.i ] - store i64 %retval.sroa.0.0.i, ptr %ref.tmp4, align 8 + %.fca.1.insert.merged.i = phi { i64, ptr } [ %call4.i, %cond.true.i ], [ %5, %cond.false.i ] + %6 = extractvalue { i64, ptr } %.fca.1.insert.merged.i, 0 + %7 = extractvalue { i64, ptr } %.fca.1.insert.merged.i, 1 + store i64 %6, ptr %ref.tmp4, align 8 %pc.sroa.2.0.piece_.sroa_idx.i = getelementptr inbounds i8, ptr %ref.tmp4, i64 8 - store ptr %retval.sroa.4.0.i, ptr %pc.sroa.2.0.piece_.sroa_idx.i, align 8 + store ptr %7, ptr %pc.sroa.2.0.piece_.sroa_idx.i, align 8 call void @_ZN4absl12lts_202308026StrCatB5cxx11ERKNS0_8AlphaNumES3_(ptr nonnull sret(%"class.std::__cxx11::basic_string") align 8 %ref.tmp, ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp3, ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp4) %call7 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #23 - %6 = extractvalue { i64, ptr } %call7, 0 - %7 = extractvalue { i64, ptr } %call7, 1 - invoke void @_ZN4absl12lts_202308026StatusC1ENS0_10StatusCodeESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp, i32 noundef %call, i64 %6, ptr %7) + %8 = extractvalue { i64, ptr } %call7, 0 + %9 = extractvalue { i64, ptr } %call7, 1 + invoke void @_ZN4absl12lts_202308026StatusC1ENS0_10StatusCodeESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp, i32 noundef %call, i64 %8, ptr %9) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %_ZNK4absl12lts_202308026Status7messageEv.exit %_M_manager.i.i = getelementptr inbounds i8, ptr %this, i64 48 - %8 = load ptr, ptr %_M_manager.i.i, align 8 - %tobool.not.i.i = icmp eq ptr %8, null + %10 = load ptr, ptr %_M_manager.i.i, align 8 + %tobool.not.i.i = icmp eq ptr %10, null br i1 %tobool.not.i.i, label %if.then.i, label %if.end.i if.then.i: ; preds = %invoke.cont @@ -2324,25 +2325,25 @@ if.then.i: ; preds = %invoke.cont if.end.i: ; preds = %invoke.cont %on_connectivity_failure_ = getelementptr inbounds i8, ptr %this, i64 32 %_M_invoker.i = getelementptr inbounds i8, ptr %this, i64 56 - %9 = load ptr, ptr %_M_invoker.i, align 8 - invoke void %9(ptr noundef nonnull align 8 dereferenceable(16) %on_connectivity_failure_, ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp) + %11 = load ptr, ptr %_M_invoker.i, align 8 + invoke void %11(ptr noundef nonnull align 8 dereferenceable(16) %on_connectivity_failure_, ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp) to label %invoke.cont9 unwind label %lpad8 invoke.cont9: ; preds = %if.end.i - %10 = load i64, ptr %agg.tmp, align 8 - %and.i.i.i = and i64 %10, 1 + %12 = load i64, ptr %agg.tmp, align 8 + %and.i.i.i = and i64 %12, 1 %cmp.i.i.i = icmp eq i64 %and.i.i.i, 0 br i1 %cmp.i.i.i, label %_ZN4absl12lts_202308026StatusD2Ev.exit, label %if.then.i.i if.then.i.i: ; preds = %invoke.cont9 - invoke void @_ZN4absl12lts_202308026Status15UnrefNonInlinedEm(i64 noundef %10) + invoke void @_ZN4absl12lts_202308026Status15UnrefNonInlinedEm(i64 noundef %12) to label %_ZN4absl12lts_202308026StatusD2Ev.exit unwind label %terminate.lpad.i terminate.lpad.i: ; preds = %if.then.i.i - %11 = landingpad { ptr, i32 } + %13 = landingpad { ptr, i32 } catch ptr null - %12 = extractvalue { ptr, i32 } %11, 0 - call void @__clang_call_terminate(ptr %12) #25 + %14 = extractvalue { ptr, i32 } %13, 0 + call void @__clang_call_terminate(ptr %14) #25 unreachable _ZN4absl12lts_202308026StatusD2Ev.exit: ; preds = %invoke.cont9, %if.then.i.i @@ -2350,18 +2351,18 @@ _ZN4absl12lts_202308026StatusD2Ev.exit: ; preds = %invoke.cont9, %if.t br label %if.end lpad: ; preds = %_ZNK4absl12lts_202308026Status7messageEv.exit - %13 = landingpad { ptr, i32 } + %15 = landingpad { ptr, i32 } cleanup br label %ehcleanup lpad8: ; preds = %if.end.i, %if.then.i - %14 = landingpad { ptr, i32 } + %16 = landingpad { ptr, i32 } cleanup call void @_ZN4absl12lts_202308026StatusD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %agg.tmp) #23 br label %ehcleanup ehcleanup: ; preds = %lpad8, %lpad - %.pn = phi { ptr, i32 } [ %14, %lpad8 ], [ %13, %lpad ] + %.pn = phi { ptr, i32 } [ %16, %lpad8 ], [ %15, %lpad ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #23 resume { ptr, i32 } %.pn diff --git a/bench/hermes/optimized/ArrayIterator.cpp.ll b/bench/hermes/optimized/ArrayIterator.cpp.ll index cd797f4b4e6..7162bea205d 100644 --- a/bench/hermes/optimized/ArrayIterator.cpp.ll +++ b/bench/hermes/optimized/ArrayIterator.cpp.ll @@ -89,20 +89,17 @@ if.then: ; preds = %_ZNK6hermes2vm10Nat %5 = getelementptr inbounds i8, ptr %ref.tmp, i64 8 store i32 3, ptr %5, align 8 %call3 = call noundef i32 @_ZN6hermes2vm7Runtime14raiseTypeErrorERKNS0_11TwineChar16E(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp) #2 + %6 = insertvalue { i32, i64 } poison, i32 %call3, 0 + %7 = insertvalue { i32, i64 } %6, i64 undef, 1 br label %return if.end: ; preds = %_ZNK6hermes2vm10NativeArgs11dyncastThisINS0_15JSArrayIteratorEEENS0_6HandleIT_EEv.exit %call6 = tail call { i32, i64 } @_ZN6hermes2vm15JSArrayIterator11nextElementENS0_6HandleIS1_EERNS0_7RuntimeE(ptr nonnull %retval.sroa.0.0.i, ptr noundef nonnull align 8 dereferenceable(9832) %runtime) #2 - %6 = extractvalue { i32, i64 } %call6, 0 - %7 = extractvalue { i32, i64 } %call6, 1 br label %return return: ; preds = %if.end, %if.then - %retval.sroa.0.0 = phi i32 [ %6, %if.end ], [ %call3, %if.then ] - %retval.sroa.3.0 = phi i64 [ %7, %if.end ], [ undef, %if.then ] - %.fca.0.insert = insertvalue { i32, i64 } poison, i32 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i32, i64 } %.fca.0.insert, i64 %retval.sroa.3.0, 1 - ret { i32, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { i32, i64 } [ %call6, %if.end ], [ %7, %if.then ] + ret { i32, i64 } %.fca.1.insert.merged } declare void @_ZN6hermes2vm14definePropertyERNS0_7RuntimeENS0_6HandleINS0_8JSObjectEEENS0_8SymbolIDENS3_INS0_11HermesValueEEENS0_19DefinePropertyFlagsE(ptr noundef nonnull align 8 dereferenceable(9832), ptr, i32, ptr, i32) local_unnamed_addr #1 diff --git a/bench/hermes/optimized/BlockScopingTransformations.cpp.ll b/bench/hermes/optimized/BlockScopingTransformations.cpp.ll index 1f99cd104e0..8fb66923ea6 100644 --- a/bench/hermes/optimized/BlockScopingTransformations.cpp.ll +++ b/bench/hermes/optimized/BlockScopingTransformations.cpp.ll @@ -32817,26 +32817,19 @@ while.end: ; preds = %while.cond sw.bb: ; preds = %while.end, %while.end %call4 = tail call fastcc { ptr, i8 } @_ZN6hermes3sem12_GLOBAL__N_127BlockScopingTransformations22visitAndRewriteForInOfEPNS_6ESTree4NodeES5_(ptr noundef nonnull align 8 dereferenceable(72) %this, ptr noundef nonnull %0, ptr noundef %labeledStmt) - %2 = extractvalue { ptr, i8 } %call4, 0 - %3 = extractvalue { ptr, i8 } %call4, 1 br label %return sw.bb5: ; preds = %while.end %call7 = tail call fastcc { ptr, i8 } @_ZN6hermes3sem12_GLOBAL__N_127BlockScopingTransformations18visitAndRewriteForEPNS_6ESTree16ForStatementNodeEPNS3_4NodeE(ptr noundef nonnull align 8 dereferenceable(72) %this, ptr noundef nonnull %0, ptr noundef %labeledStmt) - %4 = extractvalue { ptr, i8 } %call7, 0 - %5 = extractvalue { ptr, i8 } %call7, 1 br label %return sw.default: ; preds = %while.end - %6 = tail call fastcc { ptr, i8 } @_ZN6hermes6ESTree24RecursiveVisitorDispatchINS_3sem12_GLOBAL__N_127BlockScopingTransformationsELb0EE5visitERS4_PNS0_4NodeES8_(ptr noundef nonnull align 8 dereferenceable(72) %this, ptr noundef nonnull %0) + %2 = tail call fastcc { ptr, i8 } @_ZN6hermes6ESTree24RecursiveVisitorDispatchINS_3sem12_GLOBAL__N_127BlockScopingTransformationsELb0EE5visitERS4_PNS0_4NodeES8_(ptr noundef nonnull align 8 dereferenceable(72) %this, ptr noundef nonnull %0) br label %return return: ; preds = %sw.default, %sw.bb5, %sw.bb - %retval.sroa.3.0 = phi i8 [ 0, %sw.default ], [ %5, %sw.bb5 ], [ %3, %sw.bb ] - %retval.sroa.0.0 = phi ptr [ undef, %sw.default ], [ %4, %sw.bb5 ], [ %2, %sw.bb ] - %.fca.0.insert = insertvalue { ptr, i8 } poison, ptr %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { ptr, i8 } %.fca.0.insert, i8 %retval.sroa.3.0, 1 - ret { ptr, i8 } %.fca.1.insert + %.fca.1.insert.merged = phi { ptr, i8 } [ { ptr undef, i8 0 }, %sw.default ], [ %call7, %sw.bb5 ], [ %call4, %sw.bb ] + ret { ptr, i8 } %.fca.1.insert.merged } ; Function Attrs: nofree nounwind willreturn memory(argmem: read) diff --git a/bench/hermes/optimized/JSONParser.cpp.ll b/bench/hermes/optimized/JSONParser.cpp.ll index c25a3495b0f..0dfdff205c5 100644 --- a/bench/hermes/optimized/JSONParser.cpp.ll +++ b/bench/hermes/optimized/JSONParser.cpp.ll @@ -1137,13 +1137,15 @@ sw.bb: ; preds = %entry %call6 = tail call noundef ptr @_ZN6hermes6parser11JSONFactory9getStringEPNS_12UniqueStringE(ptr noundef nonnull align 8 dereferenceable(120) %1, ptr noundef %2) %call8 = tail call noundef ptr @_ZN6hermes6parser7JSLexer7advanceENS1_14GrammarContextE(ptr noundef nonnull align 8 dereferenceable(1128) %lexer_, i32 noundef 0) #18 %3 = ptrtoint ptr %call6 to i64 + %4 = insertvalue { i64, i8 } poison, i64 %3, 0 + %5 = insertvalue { i64, i8 } %4, i8 1, 1 br label %return sw.bb9: ; preds = %entry %call11 = tail call noundef ptr @_ZN6hermes6parser7JSLexer7advanceENS1_14GrammarContextE(ptr noundef nonnull align 8 dereferenceable(1128) %lexer_, i32 noundef 0) #18 - %4 = load i32, ptr %token_.i, align 8 - %cmp.not = icmp eq i32 %4, 111 - br i1 %cmp.not, label %7, label %if.then + %6 = load i32, ptr %token_.i, align 8 + %cmp.not = icmp eq i32 %6, 111 + br i1 %cmp.not, label %9, label %if.then if.then: ; preds = %sw.bb9 %LHSKind.i = getelementptr inbounds i8, ptr %ref.tmp15, i64 16 @@ -1152,45 +1154,43 @@ if.then: ; preds = %sw.bb9 store ptr @.str.6, ptr %ref.tmp15, align 8 store i8 3, ptr %LHSKind.i, align 8 %sm_.i = getelementptr inbounds i8, ptr %this, i64 1136 - %5 = load ptr, ptr %sm_.i, align 8 + %7 = load ptr, ptr %sm_.i, align 8 %range_.i.i = getelementptr inbounds i8, ptr %this, i64 72 %retval.sroa.0.0.copyload.i.i = load ptr, ptr %range_.i.i, align 8 %retval.sroa.2.0.range_.sroa_idx.i.i = getelementptr inbounds i8, ptr %this, i64 80 %retval.sroa.2.0.copyload.i.i = load ptr, ptr %retval.sroa.2.0.range_.sroa_idx.i.i, align 8 - call void @_ZN6hermes18SourceErrorManager7messageENS0_8DiagKindEN4llvh7SMRangeERKNS2_5TwineENS_9SubsystemE(ptr noundef nonnull align 8 dereferenceable(464) %5, i32 noundef 0, ptr %retval.sroa.0.0.copyload.i.i, ptr %retval.sroa.2.0.copyload.i.i, ptr noundef nonnull align 8 dereferenceable(18) %ref.tmp15, i32 noundef 2) #18 + call void @_ZN6hermes18SourceErrorManager7messageENS0_8DiagKindEN4llvh7SMRangeERKNS2_5TwineENS_9SubsystemE(ptr noundef nonnull align 8 dereferenceable(464) %7, i32 noundef 0, ptr %retval.sroa.0.0.copyload.i.i, ptr %retval.sroa.2.0.copyload.i.i, ptr noundef nonnull align 8 dereferenceable(18) %ref.tmp15, i32 noundef 2) #18 br label %return sw.bb16: ; preds = %entry %numeric_.i = getelementptr inbounds i8, ptr %this, i64 88 - %6 = load double, ptr %numeric_.i, align 8 - br label %9 + %8 = load double, ptr %numeric_.i, align 8 + br label %11 -7: ; preds = %sw.bb9 +9: ; preds = %sw.bb9 %numeric_.i19 = getelementptr inbounds i8, ptr %this, i64 88 - %8 = load double, ptr %numeric_.i19, align 8 - %fneg20 = fneg double %8 - br label %9 - -9: ; preds = %sw.bb16, %7 - %10 = phi double [ %fneg20, %7 ], [ %6, %sw.bb16 ] - %11 = load ptr, ptr %this, align 8 - %call22 = tail call noundef ptr @_ZN6hermes6parser11JSONFactory9getNumberEd(ptr noundef nonnull align 8 dereferenceable(120) %11, double noundef %10) + %10 = load double, ptr %numeric_.i19, align 8 + %fneg20 = fneg double %10 + br label %11 + +11: ; preds = %sw.bb16, %9 + %12 = phi double [ %fneg20, %9 ], [ %8, %sw.bb16 ] + %13 = load ptr, ptr %this, align 8 + %call22 = tail call noundef ptr @_ZN6hermes6parser11JSONFactory9getNumberEd(ptr noundef nonnull align 8 dereferenceable(120) %13, double noundef %12) %call24 = tail call noundef ptr @_ZN6hermes6parser7JSLexer7advanceENS1_14GrammarContextE(ptr noundef nonnull align 8 dereferenceable(1128) %lexer_, i32 noundef 0) #18 - %12 = ptrtoint ptr %call22 to i64 + %14 = ptrtoint ptr %call22 to i64 + %15 = insertvalue { i64, i8 } poison, i64 %14, 0 + %16 = insertvalue { i64, i8 } %15, i8 1, 1 br label %return sw.bb26: ; preds = %entry %call28 = tail call noundef ptr @_ZN6hermes6parser7JSLexer7advanceENS1_14GrammarContextE(ptr noundef nonnull align 8 dereferenceable(1128) %lexer_, i32 noundef 0) #18 %call29 = tail call { i64, i8 } @_ZN6hermes6parser10JSONParser11parseObjectEv(ptr noundef nonnull align 8 dereferenceable(1144) %this) - %13 = extractvalue { i64, i8 } %call29, 0 - %14 = extractvalue { i64, i8 } %call29, 1 br label %return sw.bb30: ; preds = %entry %call32 = tail call noundef ptr @_ZN6hermes6parser7JSLexer7advanceENS1_14GrammarContextE(ptr noundef nonnull align 8 dereferenceable(1128) %lexer_, i32 noundef 0) #18 %call33 = tail call { i64, i8 } @_ZN6hermes6parser10JSONParser10parseArrayEv(ptr noundef nonnull align 8 dereferenceable(1144) %this) - %15 = extractvalue { i64, i8 } %call33, 0 - %16 = extractvalue { i64, i8 } %call33, 1 br label %return sw.bb35: ; preds = %entry @@ -1220,12 +1220,9 @@ sw.default: ; preds = %entry call void @_ZN6hermes18SourceErrorManager7messageENS0_8DiagKindEN4llvh7SMRangeERKNS2_5TwineENS_9SubsystemE(ptr noundef nonnull align 8 dereferenceable(464) %17, i32 noundef 0, ptr %retval.sroa.0.0.copyload.i.i14, ptr %retval.sroa.2.0.copyload.i.i16, ptr noundef nonnull align 8 dereferenceable(18) %ref.tmp53, i32 noundef 2) #18 br label %return -return: ; preds = %sw.default, %sw.bb47, %sw.bb41, %sw.bb35, %sw.bb30, %sw.bb26, %9, %if.then, %sw.bb - %retval.sroa.0.0 = phi i64 [ undef, %sw.default ], [ ptrtoint (ptr @_ZN6hermes6parser8JSONNull9instance_E to i64), %sw.bb47 ], [ ptrtoint (ptr @_ZN6hermes6parser11JSONBoolean6false_E to i64), %sw.bb41 ], [ ptrtoint (ptr @_ZN6hermes6parser11JSONBoolean5true_E to i64), %sw.bb35 ], [ %15, %sw.bb30 ], [ %13, %sw.bb26 ], [ %12, %9 ], [ undef, %if.then ], [ %3, %sw.bb ] - %retval.sroa.8.0 = phi i8 [ 0, %sw.default ], [ 1, %sw.bb47 ], [ 1, %sw.bb41 ], [ 1, %sw.bb35 ], [ %16, %sw.bb30 ], [ %14, %sw.bb26 ], [ 1, %9 ], [ 0, %if.then ], [ 1, %sw.bb ] - %.fca.0.insert = insertvalue { i64, i8 } poison, i64 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i64, i8 } %.fca.0.insert, i8 %retval.sroa.8.0, 1 - ret { i64, i8 } %.fca.1.insert +return: ; preds = %sw.default, %sw.bb47, %sw.bb41, %sw.bb35, %sw.bb30, %sw.bb26, %11, %if.then, %sw.bb + %.fca.1.insert.merged = phi { i64, i8 } [ { i64 undef, i8 0 }, %sw.default ], [ { i64 ptrtoint (ptr @_ZN6hermes6parser8JSONNull9instance_E to i64), i8 1 }, %sw.bb47 ], [ { i64 ptrtoint (ptr @_ZN6hermes6parser11JSONBoolean6false_E to i64), i8 1 }, %sw.bb41 ], [ { i64 ptrtoint (ptr @_ZN6hermes6parser11JSONBoolean5true_E to i64), i8 1 }, %sw.bb35 ], [ %call33, %sw.bb30 ], [ %call29, %sw.bb26 ], [ %16, %11 ], [ { i64 undef, i8 0 }, %if.then ], [ %5, %sw.bb ] + ret { i64, i8 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nounwind uwtable diff --git a/bench/hermes/optimized/Object.cpp.ll b/bench/hermes/optimized/Object.cpp.ll index 55075723939..46b5bb48aff 100644 --- a/bench/hermes/optimized/Object.cpp.ll +++ b/bench/hermes/optimized/Object.cpp.ll @@ -142,52 +142,53 @@ entry: if.then: ; preds = %entry %call8 = tail call { i32, i64 } @_ZN6hermes2vm8toObjectERNS0_7RuntimeENS0_6HandleINS0_11HermesValueEEE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime, ptr nonnull %retval.sroa.0.0.i) #8 - %4 = extractvalue { i32, i64 } %call8, 0 - %5 = extractvalue { i32, i64 } %call8, 1 br label %return if.end: ; preds = %entry, %entry %newTarget_.i.i = getelementptr inbounds i8, ptr %args, i64 16 - %6 = load ptr, ptr %newTarget_.i.i, align 8 - %7 = load i64, ptr %6, align 8 - %shr.i.mask.i.i.i = and i64 %7, -140737488355328 + %4 = load ptr, ptr %newTarget_.i.i, align 8 + %5 = load i64, ptr %4, align 8 + %shr.i.mask.i.i.i = and i64 %5, -140737488355328 %cmp.i.i.i.not = icmp eq i64 %shr.i.mask.i.i.i, -1688849860263936 br i1 %cmp.i.i.i.not, label %if.end22, label %if.then10 if.then10: ; preds = %if.end %retval.sroa.0.0.copyload.i.i = load i64, ptr %2, align 8 + %6 = insertvalue { i32, i64 } { i32 1, i64 poison }, i64 %retval.sroa.0.0.copyload.i.i, 1 br label %return if.end22: ; preds = %if.end %call23 = tail call ptr @_ZN6hermes2vm8JSObject6createERNS0_7RuntimeE(ptr noundef nonnull align 8 dereferenceable(9832) %runtime) #8 - %8 = ptrtoint ptr %call23 to i64 - %or.i.i.i.i.i = or i64 %8, -281474976710656 + %7 = ptrtoint ptr %call23 to i64 + %or.i.i.i.i.i = or i64 %7, -281474976710656 %topGCScope_.i.i.i.i = getelementptr inbounds i8, ptr %runtime, i64 8 - %9 = load ptr, ptr %topGCScope_.i.i.i.i, align 8 - %next_.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %9, i64 192 - %10 = load ptr, ptr %next_.i.i.i.i.i.i.i, align 8 - %curChunkEnd_.i.i.i.i.i.i = getelementptr inbounds i8, ptr %9, i64 200 - %11 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i, align 8 - %cmp.i.i.i.i.i.i = icmp ult ptr %10, %11 + %8 = load ptr, ptr %topGCScope_.i.i.i.i, align 8 + %next_.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %8, i64 192 + %9 = load ptr, ptr %next_.i.i.i.i.i.i.i, align 8 + %curChunkEnd_.i.i.i.i.i.i = getelementptr inbounds i8, ptr %8, i64 200 + %10 = load ptr, ptr %curChunkEnd_.i.i.i.i.i.i, align 8 + %cmp.i.i.i.i.i.i = icmp ult ptr %9, %10 br i1 %cmp.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %if.end.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %if.end22 - %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds i8, ptr %10, i64 8 + %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds i8, ptr %9, i64 8 store ptr %incdec.ptr.i.i.i.i.i.i, ptr %next_.i.i.i.i.i.i.i, align 8 - store i64 %or.i.i.i.i.i, ptr %10, align 8 - br label %return + store i64 %or.i.i.i.i.i, ptr %9, align 8 + br label %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_8JSObjectEEENS0_6HandleIT_EEONS0_12PseudoHandleIS5_EE.exit if.end.i.i.i.i.i.i: ; preds = %if.end22 - %call7.i.i.i.i.i.i = tail call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %9, i64 %or.i.i.i.i.i) #8 + %call7.i.i.i.i.i.i = tail call noundef ptr @_ZN6hermes2vm7GCScope15_newChunkAndPHVENS0_11HermesValueE(ptr noundef nonnull align 8 dereferenceable(212) %8, i64 %or.i.i.i.i.i) #8 %retval.sroa.0.0.copyload.i.i8.pre = load i64, ptr %call7.i.i.i.i.i.i, align 8 + br label %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_8JSObjectEEENS0_6HandleIT_EEONS0_12PseudoHandleIS5_EE.exit + +_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_8JSObjectEEENS0_6HandleIT_EEONS0_12PseudoHandleIS5_EE.exit: ; preds = %if.then.i.i.i.i.i.i, %if.end.i.i.i.i.i.i + %retval.sroa.0.0.copyload.i.i8 = phi i64 [ %or.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %retval.sroa.0.0.copyload.i.i8.pre, %if.end.i.i.i.i.i.i ] + %11 = insertvalue { i32, i64 } { i32 1, i64 poison }, i64 %retval.sroa.0.0.copyload.i.i8, 1 br label %return -return: ; preds = %if.end.i.i.i.i.i.i, %if.then.i.i.i.i.i.i, %if.then10, %if.then - %retval.sroa.0.0 = phi i32 [ 1, %if.then10 ], [ %4, %if.then ], [ 1, %if.then.i.i.i.i.i.i ], [ 1, %if.end.i.i.i.i.i.i ] - %retval.sroa.4.0 = phi i64 [ %retval.sroa.0.0.copyload.i.i, %if.then10 ], [ %5, %if.then ], [ %or.i.i.i.i.i, %if.then.i.i.i.i.i.i ], [ %retval.sroa.0.0.copyload.i.i8.pre, %if.end.i.i.i.i.i.i ] - %.fca.0.insert = insertvalue { i32, i64 } poison, i32 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i32, i64 } %.fca.0.insert, i64 %retval.sroa.4.0, 1 - ret { i32, i64 } %.fca.1.insert +return: ; preds = %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_8JSObjectEEENS0_6HandleIT_EEONS0_12PseudoHandleIS5_EE.exit, %if.then10, %if.then + %.fca.1.insert.merged = phi { i32, i64 } [ %6, %if.then10 ], [ %11, %_ZN6hermes2vm15HandleRootOwner10makeHandleINS0_8JSObjectEEENS0_6HandleIT_EEONS0_12PseudoHandleIS5_EE.exit ], [ %call8, %if.then ] + ret { i32, i64 } %.fca.1.insert.merged } declare void @_ZN6hermes2vm12defineMethodERNS0_7RuntimeENS0_6HandleINS0_8JSObjectEEENS0_8SymbolIDEPvPFNS0_10CallResultINS0_11HermesValueELNS0_6detail20CallResultSpecializeE2EEES7_S2_NS0_10NativeArgsEEj(ptr noundef nonnull align 8 dereferenceable(9832), ptr, i32, ptr noundef, ptr noundef, i32 noundef) local_unnamed_addr #1 diff --git a/bench/hermes/optimized/Program.cpp.ll b/bench/hermes/optimized/Program.cpp.ll index 6d85a99443d..e8e5058d5bf 100644 --- a/bench/hermes/optimized/Program.cpp.ll +++ b/bench/hermes/optimized/Program.cpp.ll @@ -1540,15 +1540,16 @@ entry: if.then: ; preds = %entry %retval.sroa.44.0.copyload = load ptr, ptr %_M_cat.i, align 8 + %1 = insertvalue { i32, ptr } poison, i32 %0, 0 br label %cleanup if.end: ; preds = %entry %OutBufEnd.i = getelementptr inbounds i8, ptr %OS, i64 16 - %1 = load ptr, ptr %OutBufEnd.i, align 8 + %2 = load ptr, ptr %OutBufEnd.i, align 8 %OutBufCur.i = getelementptr inbounds i8, ptr %OS, i64 24 - %2 = load ptr, ptr %OutBufCur.i, align 8 - %sub.ptr.lhs.cast.i = ptrtoint ptr %1 to i64 - %sub.ptr.rhs.cast.i = ptrtoint ptr %2 to i64 + %3 = load ptr, ptr %OutBufCur.i, align 8 + %sub.ptr.lhs.cast.i = ptrtoint ptr %2 to i64 + %sub.ptr.rhs.cast.i = ptrtoint ptr %3 to i64 %sub.ptr.sub.i = sub i64 %sub.ptr.lhs.cast.i, %sub.ptr.rhs.cast.i %cmp.i7 = icmp ugt i64 %Contents.coerce1, %sub.ptr.sub.i br i1 %cmp.i7, label %if.then.i, label %if.end.i @@ -1562,16 +1563,16 @@ if.end.i: ; preds = %if.end br i1 %tobool.not.i, label %_ZN4llvh11raw_ostreamlsENS_9StringRefE.exit, label %if.then4.i if.then4.i: ; preds = %if.end.i - call void @llvm.memcpy.p0.p0.i64(ptr align 1 %2, ptr align 1 %Contents.coerce0, i64 %Contents.coerce1, i1 false) - %3 = load ptr, ptr %OutBufCur.i, align 8 - %add.ptr.i = getelementptr inbounds i8, ptr %3, i64 %Contents.coerce1 + call void @llvm.memcpy.p0.p0.i64(ptr align 1 %3, ptr align 1 %Contents.coerce0, i64 %Contents.coerce1, i1 false) + %4 = load ptr, ptr %OutBufCur.i, align 8 + %add.ptr.i = getelementptr inbounds i8, ptr %4, i64 %Contents.coerce1 store ptr %add.ptr.i, ptr %OutBufCur.i, align 8 br label %_ZN4llvh11raw_ostreamlsENS_9StringRefE.exit _ZN4llvh11raw_ostreamlsENS_9StringRefE.exit: ; preds = %if.then.i, %if.end.i, %if.then4.i %EC.i = getelementptr inbounds i8, ptr %OS, i64 48 - %4 = load i32, ptr %EC.i, align 8 - %cmp.i.i.not = icmp eq i32 %4, 0 + %5 = load i32, ptr %EC.i, align 8 + %cmp.i.i.not = icmp eq i32 %5, 0 br i1 %cmp.i.i.not, label %if.end6, label %if.then4 if.then4: ; preds = %_ZN4llvh11raw_ostreamlsENS_9StringRefE.exit @@ -1581,15 +1582,15 @@ if.then4: ; preds = %_ZN4llvh11raw_ostre if.end6: ; preds = %_ZN4llvh11raw_ostreamlsENS_9StringRefE.exit %retval.sroa.0.0.copyload1 = load i32, ptr %EC, align 8 %retval.sroa.44.0.copyload6 = load ptr, ptr %_M_cat.i, align 8 + %6 = insertvalue { i32, ptr } poison, i32 %retval.sroa.0.0.copyload1, 0 br label %cleanup cleanup: ; preds = %if.end6, %if.then4, %if.then - %retval.sroa.0.0 = phi i32 [ %0, %if.then ], [ 5, %if.then4 ], [ %retval.sroa.0.0.copyload1, %if.end6 ] - %retval.sroa.44.0 = phi ptr [ %retval.sroa.44.0.copyload, %if.then ], [ %call.i8, %if.then4 ], [ %retval.sroa.44.0.copyload6, %if.end6 ] + %.pn = phi { i32, ptr } [ %1, %if.then ], [ { i32 5, ptr poison }, %if.then4 ], [ %6, %if.end6 ] + %retval.sroa.44.0.copyload.pn = phi ptr [ %retval.sroa.44.0.copyload, %if.then ], [ %call.i8, %if.then4 ], [ %retval.sroa.44.0.copyload6, %if.end6 ] + %.fca.1.insert.merged = insertvalue { i32, ptr } %.pn, ptr %retval.sroa.44.0.copyload.pn, 1 call void @_ZN4llvh14raw_fd_ostreamD1Ev(ptr noundef nonnull align 8 dereferenceable(72) %OS) #21 - %.fca.0.insert = insertvalue { i32, ptr } poison, i32 %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { i32, ptr } %.fca.0.insert, ptr %retval.sroa.44.0, 1 - ret { i32, ptr } %.fca.1.insert + ret { i32, ptr } %.fca.1.insert.merged } declare void @_ZN4llvh14raw_fd_ostreamC1ENS_9StringRefERSt10error_codeNS_3sys2fs9OpenFlagsE(ptr noundef nonnull align 8 dereferenceable(72), ptr, i64, ptr noundef nonnull align 8 dereferenceable(16), i32 noundef) unnamed_addr #5 diff --git a/bench/hermes/optimized/c-api.cpp.ll b/bench/hermes/optimized/c-api.cpp.ll index 80f7c35c51c..bcb58d8a4c0 100644 --- a/bench/hermes/optimized/c-api.cpp.ll +++ b/bench/hermes/optimized/c-api.cpp.ll @@ -582,14 +582,13 @@ if.end: ; preds = %entry if.then2: ; preds = %if.end %call.i = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %map) #9 %call1.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %map) #9 + %.fca.0.insert.i4 = insertvalue { ptr, i64 } poison, ptr %call.i, 0 + %.fca.1.insert.i5 = insertvalue { ptr, i64 } %.fca.0.insert.i4, i64 %call1.i, 1 br label %return return: ; preds = %entry, %if.end, %if.then2 - %retval.sroa.0.0 = phi ptr [ %call.i, %if.then2 ], [ null, %if.end ], [ @.str.1, %entry ] - %retval.sroa.4.0 = phi i64 [ %call1.i, %if.then2 ], [ 0, %if.end ], [ 14, %entry ] - %.fca.0.insert = insertvalue { ptr, i64 } poison, ptr %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { ptr, i64 } %.fca.0.insert, i64 %retval.sroa.4.0, 1 - ret { ptr, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { ptr, i64 } [ %.fca.1.insert.i5, %if.then2 ], [ zeroinitializer, %if.end ], [ { ptr @.str.1, i64 14 }, %entry ] + ret { ptr, i64 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable @@ -657,14 +656,13 @@ if.end: ; preds = %hermes_source_map_g call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #9 %call.i = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %pathBuf_) #9 %call1.i = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4sizeEv(ptr noundef nonnull align 8 dereferenceable(32) %pathBuf_) #9 + %.fca.0.insert.i = insertvalue { ptr, i64 } poison, ptr %call.i, 0 + %.fca.1.insert.i = insertvalue { ptr, i64 } %.fca.0.insert.i, i64 %call1.i, 1 br label %return return: ; preds = %entry, %lor.lhs.false.i, %hermes_source_map_get_num_paths.exit, %if.end - %retval.sroa.0.0 = phi ptr [ %call.i, %if.end ], [ null, %hermes_source_map_get_num_paths.exit ], [ null, %lor.lhs.false.i ], [ null, %entry ] - %retval.sroa.3.0 = phi i64 [ %call1.i, %if.end ], [ 0, %hermes_source_map_get_num_paths.exit ], [ 0, %lor.lhs.false.i ], [ 0, %entry ] - %.fca.0.insert = insertvalue { ptr, i64 } poison, ptr %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { ptr, i64 } %.fca.0.insert, i64 %retval.sroa.3.0, 1 - ret { ptr, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { ptr, i64 } [ %.fca.1.insert.i, %if.end ], [ zeroinitializer, %hermes_source_map_get_num_paths.exit ], [ zeroinitializer, %lor.lhs.false.i ], [ zeroinitializer, %entry ] + ret { ptr, i64 } %.fca.1.insert.merged } ; Function Attrs: nounwind diff --git a/bench/html5ever-rs/optimized/2viofaie60fezmt7.ll b/bench/html5ever-rs/optimized/2viofaie60fezmt7.ll index 2248e549f92..8197a478ce4 100644 --- a/bench/html5ever-rs/optimized/2viofaie60fezmt7.ll +++ b/bench/html5ever-rs/optimized/2viofaie60fezmt7.ll @@ -9,9 +9,11 @@ target triple = "x86_64-unknown-linux-gnu" ; Function Attrs: inlinehint mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(none) uwtable define hidden { i64, i64 } @"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h59b7ccfa93ac958eE.llvm.10562867175124784169"(i64 noundef %0, i64 %1) unnamed_addr #0 { - %3 = insertvalue { i64, i64 } poison, i64 %0, 0 - %4 = insertvalue { i64, i64 } %3, i64 %1, 1 - ret { i64, i64 } %4 + %3 = icmp eq i64 %0, -9223372036854775807 + %4 = insertvalue { i64, i64 } poison, i64 %0, 0 + %5 = insertvalue { i64, i64 } %4, i64 %1, 1 + %.merged = select i1 %3, { i64, i64 } { i64 -9223372036854775807, i64 undef }, { i64, i64 } %5 + ret { i64, i64 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable @@ -193,35 +195,46 @@ define hidden void @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$13reserve_exact17hbd1ff734fa %5 = load i64, ptr %0, align 8, !alias.scope !21, !noundef !13 %6 = sub i64 %5, %4 %7 = icmp ugt i64 %1, %6 - br i1 %7, label %9, label %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$17try_reserve_exact17h6ee70426b69fe442E.exit.thread" + br i1 %7, label %10, label %8 -"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$17try_reserve_exact17h6ee70426b69fe442E.exit.thread": ; preds = %2, %._crit_edge.i +8: ; preds = %._crit_edge.i, %2 %.pre-phi.i = phi i64 [ %.pre8.i, %._crit_edge.i ], [ %6, %2 ] - %8 = icmp ule i64 %1, %.pre-phi.i - tail call void @llvm.assume(i1 %8) - ret void + %9 = icmp ule i64 %1, %.pre-phi.i + tail call void @llvm.assume(i1 %9) + br label %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$17try_reserve_exact17h6ee70426b69fe442E.exit" -9: ; preds = %2 - %10 = tail call { i64, i64 } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$10grow_exact17hf8213212cf4c36f7E.llvm.16976975650955182070"(ptr noalias noundef nonnull align 8 dereferenceable(16) %0, i64 noundef %4, i64 noundef %1) - %.fca.0.extract.i = extractvalue { i64, i64 } %10, 0 - switch i64 %.fca.0.extract.i, label %12 [ - i64 -9223372036854775807, label %._crit_edge.i - i64 0, label %11 - ] +10: ; preds = %2 + %11 = tail call { i64, i64 } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$10grow_exact17hf8213212cf4c36f7E.llvm.16976975650955182070"(ptr noalias noundef nonnull align 8 dereferenceable(16) %0, i64 noundef %4, i64 noundef %1) + %.fca.0.extract.i = extractvalue { i64, i64 } %11, 0 + %12 = icmp eq i64 %.fca.0.extract.i, -9223372036854775807 + br i1 %12, label %._crit_edge.i, label %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$17try_reserve_exact17h6ee70426b69fe442E.exit" -._crit_edge.i: ; preds = %9 +._crit_edge.i: ; preds = %10 %.pre.i = load i64, ptr %0, align 8, !alias.scope !21 %.pre8.i = sub i64 %.pre.i, %4 - br label %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$17try_reserve_exact17h6ee70426b69fe442E.exit.thread" + br label %8 + +"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$17try_reserve_exact17h6ee70426b69fe442E.exit": ; preds = %8, %10 + %.merged.i = phi { i64, i64 } [ { i64 -9223372036854775807, i64 undef }, %8 ], [ %11, %10 ] + %13 = extractvalue { i64, i64 } %.merged.i, 0 + switch i64 %13, label %15 [ + i64 -9223372036854775807, label %_ZN5alloc7raw_vec14handle_reserve17had58ffe066ab6fa9E.llvm.10562867175124784169.exit + i64 0, label %14 + ] -11: ; preds = %9 +14: ; preds = %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$17try_reserve_exact17h6ee70426b69fe442E.exit" tail call void @_ZN5alloc7raw_vec17capacity_overflow17hefb917d2eb4d2968E() #12 unreachable -12: ; preds = %9 - %.fca.1.extract.i = extractvalue { i64, i64 } %10, 1 - tail call void @_ZN5alloc5alloc18handle_alloc_error17h81706c48453a6249E(i64 noundef %.fca.0.extract.i, i64 noundef %.fca.1.extract.i) #12 +15: ; preds = %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$17try_reserve_exact17h6ee70426b69fe442E.exit" + %16 = extractvalue { i64, i64 } %.merged.i, 1 + %17 = icmp eq i64 %13, -9223372036854775807 + %.fca.1.extract.i = select i1 %17, i64 undef, i64 %16 + tail call void @_ZN5alloc5alloc18handle_alloc_error17h81706c48453a6249E(i64 noundef %13, i64 noundef %.fca.1.extract.i) #12 unreachable + +_ZN5alloc7raw_vec14handle_reserve17had58ffe066ab6fa9E.llvm.10562867175124784169.exit: ; preds = %"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$17try_reserve_exact17h6ee70426b69fe442E.exit" + ret void } ; Function Attrs: inlinehint nonlazybind uwtable @@ -239,7 +252,9 @@ define hidden void @_ZN5alloc7raw_vec14handle_reserve17had58ffe066ab6fa9E.llvm.1 unreachable 5: ; preds = %2 - tail call void @_ZN5alloc5alloc18handle_alloc_error17h81706c48453a6249E(i64 noundef %0, i64 noundef %1) #12 + %6 = icmp eq i64 %0, -9223372036854775807 + %.fca.1.extract = select i1 %6, i64 undef, i64 %1 + tail call void @_ZN5alloc5alloc18handle_alloc_error17h81706c48453a6249E(i64 noundef %0, i64 noundef %.fca.1.extract) #12 unreachable } diff --git a/bench/html5ever-rs/optimized/427f68nqtcfpg289.ll b/bench/html5ever-rs/optimized/427f68nqtcfpg289.ll index d229266c272..3d22bc56675 100644 --- a/bench/html5ever-rs/optimized/427f68nqtcfpg289.ll +++ b/bench/html5ever-rs/optimized/427f68nqtcfpg289.ll @@ -1880,8 +1880,8 @@ define internal fastcc noundef range(i8 -1, 2) i8 @"_ZN64_$LT$core..option..Opti unreachable "_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit.i": ; preds = %34, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i.i", %17 - %.sroa.4.0.i.i = phi i64 [ %40, %34 ], [ %24, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i.i" ], [ %21, %17 ] - %.sroa.0.0.i.i = phi ptr [ %38, %34 ], [ %27, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i.i" ], [ %19, %17 ] + %.pn11.i.i = phi ptr [ %38, %34 ], [ %27, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i.i" ], [ %19, %17 ] + %.pn9.i.i = phi i64 [ %40, %34 ], [ %24, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i.i" ], [ %21, %17 ] %42 = trunc i64 %5 to i8 %43 = and i8 %42, 3 switch i8 %43, label %44 [ @@ -1898,21 +1898,21 @@ define internal fastcc noundef range(i8 -1, 2) i8 @"_ZN64_$LT$core..option..Opti %47 = load ptr, ptr %46, align 8, !noalias !238, !nonnull !4, !align !232, !noundef !4 %48 = getelementptr inbounds i8, ptr %46, i64 8 %49 = load i64, ptr %48, align 8, !noalias !238, !noundef !4 - br label %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit4.i" + br label %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit6.i" 50: ; preds = %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit.i" %51 = lshr i64 %5, 4 %52 = and i64 %51, 15 %53 = icmp ugt i64 %52, 7 - br i1 %53, label %54, label %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i3.i" + br i1 %53, label %54, label %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i5.i" 54: ; preds = %50 tail call void @_ZN4core5slice5index24slice_end_index_len_fail17h9163fa4abd3ca1acE(i64 noundef %52, i64 noundef 7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.880fec8bd5975f2d766e0c23ef8057da.17) #23, !noalias !241 unreachable -"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i3.i": ; preds = %50 +"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i5.i": ; preds = %50 %55 = getelementptr inbounds i8, ptr %1, i64 1 - br label %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit4.i" + br label %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit6.i" 56: ; preds = %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit.i" %57 = tail call noundef align 8 dereferenceable(56) ptr @"_ZN89_$LT$markup5ever..PrefixStaticSet$u20$as$u20$string_cache..static_sets..StaticAtomSet$GT$3get17h444d422798f48d3dE"(), !noalias !238 @@ -1929,26 +1929,26 @@ define internal fastcc noundef range(i8 -1, 2) i8 @"_ZN64_$LT$core..option..Opti %66 = load ptr, ptr %65, align 8, !noalias !238, !nonnull !4, !align !232, !noundef !4 %67 = getelementptr inbounds i8, ptr %65, i64 8 %68 = load i64, ptr %67, align 8, !noalias !238, !noundef !4 - br label %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit4.i" + br label %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit6.i" 69: ; preds = %56 tail call void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef %58, i64 noundef %60, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.880fec8bd5975f2d766e0c23ef8057da.18) #23, !noalias !238 unreachable -"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit4.i": ; preds = %62, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i3.i", %45 - %.sroa.4.0.i1.i = phi i64 [ %68, %62 ], [ %52, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i3.i" ], [ %49, %45 ] - %.sroa.0.0.i2.i = phi ptr [ %66, %62 ], [ %55, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i3.i" ], [ %47, %45 ] - %70 = sub i64 %.sroa.4.0.i.i, %.sroa.4.0.i1.i - %..i.i = tail call i64 @llvm.umin.i64(i64 %.sroa.4.0.i.i, i64 %.sroa.4.0.i1.i) - %71 = tail call i32 @memcmp(ptr nonnull readonly %.sroa.0.0.i.i, ptr nonnull readonly %.sroa.0.0.i2.i, i64 %..i.i), !alias.scope !244 +"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit6.i": ; preds = %62, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i5.i", %45 + %.pn11.i1.i = phi ptr [ %66, %62 ], [ %55, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i5.i" ], [ %47, %45 ] + %.pn9.i2.i = phi i64 [ %68, %62 ], [ %52, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$5index17h0fa0dd358988f99eE.exit.i5.i" ], [ %49, %45 ] + %70 = sub i64 %.pn9.i.i, %.pn9.i2.i + %..i.i = tail call i64 @llvm.umin.i64(i64 %.pn9.i.i, i64 %.pn9.i2.i) + %71 = tail call i32 @memcmp(ptr nonnull readonly %.pn11.i.i, ptr nonnull readonly %.pn11.i1.i, i64 %..i.i), !alias.scope !244 %72 = sext i32 %71 to i64 %73 = icmp eq i32 %71, 0 %spec.store.select.i.i = select i1 %73, i64 %70, i64 %72 %.0.i.i = tail call noundef range(i8 -1, 2) i8 @llvm.scmp.i8.i64(i64 %spec.store.select.i.i, i64 0) br label %"_ZN73_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..cmp..Ord$GT$3cmp17hdcd43e046d57676fE.exit" -"_ZN73_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..cmp..Ord$GT$3cmp17hdcd43e046d57676fE.exit": ; preds = %2, %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit4.i", %11, %9 - %.0 = phi i8 [ 1, %9 ], [ 0, %11 ], [ %.0.i.i, %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit4.i" ], [ -1, %2 ] +"_ZN73_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..cmp..Ord$GT$3cmp17hdcd43e046d57676fE.exit": ; preds = %2, %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit6.i", %11, %9 + %.0 = phi i8 [ 1, %9 ], [ 0, %11 ], [ %.0.i.i, %"_ZN82_$LT$string_cache..atom..Atom$LT$Static$GT$$u20$as$u20$core..ops..deref..Deref$GT$5deref17hdaeb44b5729a984eE.exit6.i" ], [ -1, %2 ] ret i8 %.0 } diff --git a/bench/html5ever-rs/optimized/6qwbbyxelav3qgo.ll b/bench/html5ever-rs/optimized/6qwbbyxelav3qgo.ll index 450b14de4ca..2585384efff 100644 --- a/bench/html5ever-rs/optimized/6qwbbyxelav3qgo.ll +++ b/bench/html5ever-rs/optimized/6qwbbyxelav3qgo.ll @@ -25,13 +25,13 @@ define hidden { ptr, ptr } @"_ZN108_$LT$alloc..collections..btree..map..Iter$LT$ tail call void @llvm.experimental.noalias.scope.decl(metadata !5) %7 = load i64, ptr %0, align 8, !range !8, !alias.scope !5, !noundef !4 %.not.not.i = icmp eq i64 %7, 0 - br i1 %.not.not.i, label %20, label %8 + br i1 %.not.not.i, label %18, label %8 8: ; preds = %5 %9 = getelementptr inbounds i8, ptr %0, i64 8 %10 = load ptr, ptr %9, align 8, !alias.scope !5, !noundef !4 %11 = icmp eq ptr %10, null - br i1 %11, label %12, label %21 + br i1 %11, label %12, label %19 12: ; preds = %8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.4.i), !noalias !5 @@ -43,23 +43,18 @@ define hidden { ptr, ptr } @"_ZN108_$LT$alloc..collections..btree..map..Iter$LT$ store i64 1, ptr %0, align 8, !alias.scope !5 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4.i, i64 24, i1 false) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.4.i), !noalias !5 - br label %21 + br label %19 -17: ; preds = %1, %21 - %.sroa.3.0 = phi ptr [ %24, %21 ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %23, %21 ], [ null, %1 ] - %18 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %19 = insertvalue { ptr, ptr } %18, ptr %.sroa.3.0, 1 - ret { ptr, ptr } %19 +17: ; preds = %1, %19 + %.merged = phi { ptr, ptr } [ %20, %19 ], [ { ptr null, ptr undef }, %1 ] + ret { ptr, ptr } %.merged -20: ; preds = %5 +18: ; preds = %5 tail call void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.6aab054ba3997061577097a5e0729914.0.llvm.3526042320029563352, i64 noundef 43, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.6aab054ba3997061577097a5e0729914.2.llvm.3526042320029563352) #10 unreachable -21: ; preds = %8, %12 - %22 = tail call { ptr, ptr } @_ZN5alloc11collections5btree3mem7replace17hf773ad46454ced53E.llvm.3526042320029563352(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) - %23 = extractvalue { ptr, ptr } %22, 0 - %24 = extractvalue { ptr, ptr } %22, 1 +19: ; preds = %8, %12 + %20 = tail call { ptr, ptr } @_ZN5alloc11collections5btree3mem7replace17hf773ad46454ced53E.llvm.3526042320029563352(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) br label %17 } diff --git a/bench/hyper-rs/optimized/4hz5u2ddz2sd8g08.ll b/bench/hyper-rs/optimized/4hz5u2ddz2sd8g08.ll index e13f1b643ce..5e3310fbaa1 100644 --- a/bench/hyper-rs/optimized/4hz5u2ddz2sd8g08.ll +++ b/bench/hyper-rs/optimized/4hz5u2ddz2sd8g08.ll @@ -17,7 +17,7 @@ define hidden { i64, ptr } @"_ZN82_$LT$hyper..common..io..rewind..Rewind$LT$T$GT call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.6.0..sroa_idx, i64 24, i1 false) store ptr null, ptr %5, align 8 %.not = icmp eq ptr %.sroa.0.0.copyload, null - br i1 %.not, label %56, label %6 + br i1 %.not, label %54, label %6 6: ; preds = %3 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %4) @@ -40,7 +40,7 @@ define hidden { i64, ptr } @"_ZN82_$LT$hyper..common..io..rewind..Rewind$LT$T$GT %15 = load ptr, ptr %10, align 8, !alias.scope !11, !noundef !4 call void %13(ptr noalias noundef nonnull align 8 dereferenceable(8) %14, ptr noundef %15, i64 noundef 0) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %4) - br label %56 + br label %54 16: ; preds = %6 %17 = getelementptr inbounds i8, ptr %2, i64 8 @@ -61,14 +61,14 @@ define hidden { i64, ptr } @"_ZN82_$LT$hyper..common..io..rewind..Rewind$LT$T$GT 28: ; preds = %16 invoke void @_ZN4core5slice5index22slice_index_order_fail17hcfcb08cd5efc8d4cE(i64 noundef %20, i64 noundef %23, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.9c310c0ae85789e15ff270161430c191.17) #7 - to label %.noexc22 unwind label %46 + to label %.noexc22 unwind label %44 .noexc22: ; preds = %28 unreachable 29: ; preds = %26 invoke void @_ZN4core5slice5index24slice_end_index_len_fail17h9163fa4abd3ca1acE(i64 noundef %23, i64 noundef %18, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.9c310c0ae85789e15ff270161430c191.17) #7 - to label %.noexc23 unwind label %46 + to label %.noexc23 unwind label %44 .noexc23: ; preds = %29 unreachable @@ -113,47 +113,42 @@ define hidden { i64, ptr } @"_ZN82_$LT$hyper..common..io..rewind..Rewind$LT$T$GT call void %41(ptr noalias noundef nonnull align 8 dereferenceable(8) %42, ptr noundef %37, i64 noundef %36) br label %38 -43: ; preds = %56, %38 - %.sroa.3.0 = phi ptr [ %.fca.1.extract, %56 ], [ null, %38 ] - %.sroa.0.0 = phi i64 [ %.fca.0.extract, %56 ], [ 0, %38 ] - %44 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 - %45 = insertvalue { i64, ptr } %44, ptr %.sroa.3.0, 1 - ret { i64, ptr } %45 +43: ; preds = %54, %38 + %.merged = phi { i64, ptr } [ %60, %54 ], [ zeroinitializer, %38 ] + ret { i64, ptr } %.merged -"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hb02f88ba03525e2fE.exit": ; preds = %46 - resume { ptr, i32 } %47 +"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hb02f88ba03525e2fE.exit": ; preds = %44 + resume { ptr, i32 } %45 -46: ; preds = %29, %28 - %47 = landingpad { ptr, i32 } +44: ; preds = %29, %28 + %45 = landingpad { ptr, i32 } cleanup tail call void @llvm.experimental.noalias.scope.decl(metadata !27) tail call void @llvm.experimental.noalias.scope.decl(metadata !30) - %48 = load ptr, ptr %4, align 8, !alias.scope !33, !nonnull !4, !align !12, !noundef !4 - %49 = getelementptr inbounds i8, ptr %48, i64 16 - %50 = load ptr, ptr %49, align 8, !noalias !33, !nonnull !4, !noundef !4 - %51 = getelementptr inbounds i8, ptr %4, i64 24 - %52 = load ptr, ptr %10, align 8, !alias.scope !33, !noundef !4 - %53 = load i64, ptr %7, align 8, !alias.scope !33, !noundef !4 - invoke void %50(ptr noalias noundef nonnull align 8 dereferenceable(8) %51, ptr noundef %52, i64 noundef %53) - to label %"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hb02f88ba03525e2fE.exit" unwind label %54 - -54: ; preds = %46 - %55 = landingpad { ptr, i32 } + %46 = load ptr, ptr %4, align 8, !alias.scope !33, !nonnull !4, !align !12, !noundef !4 + %47 = getelementptr inbounds i8, ptr %46, i64 16 + %48 = load ptr, ptr %47, align 8, !noalias !33, !nonnull !4, !noundef !4 + %49 = getelementptr inbounds i8, ptr %4, i64 24 + %50 = load ptr, ptr %10, align 8, !alias.scope !33, !noundef !4 + %51 = load i64, ptr %7, align 8, !alias.scope !33, !noundef !4 + invoke void %48(ptr noalias noundef nonnull align 8 dereferenceable(8) %49, ptr noundef %50, i64 noundef %51) + to label %"_ZN4core3ptr40drop_in_place$LT$bytes..bytes..Bytes$GT$17hb02f88ba03525e2fE.exit" unwind label %52 + +52: ; preds = %44 + %53 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #8 unreachable -56: ; preds = %3, %.thread +54: ; preds = %3, %.thread call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.6) call void @llvm.experimental.noalias.scope.decl(metadata !34) - %57 = load ptr, ptr %0, align 8, !alias.scope !34, !noalias !37, !nonnull !4, !align !16, !noundef !4 - %58 = getelementptr inbounds i8, ptr %0, i64 8 - %59 = load ptr, ptr %58, align 8, !alias.scope !34, !noalias !37, !nonnull !4, !align !12, !noundef !4 - %60 = getelementptr inbounds i8, ptr %59, i64 24 - %61 = load ptr, ptr %60, align 8, !invariant.load !4, !noalias !40, !nonnull !4 - %62 = call { i64, ptr } %61(ptr noalias noundef nonnull align 1 %57, ptr noalias noundef nonnull align 8 dereferenceable(8) %1, ptr noalias noundef nonnull align 8 dereferenceable(32) %2), !noalias !34 - %.fca.0.extract = extractvalue { i64, ptr } %62, 0 - %.fca.1.extract = extractvalue { i64, ptr } %62, 1 + %55 = load ptr, ptr %0, align 8, !alias.scope !34, !noalias !37, !nonnull !4, !align !16, !noundef !4 + %56 = getelementptr inbounds i8, ptr %0, i64 8 + %57 = load ptr, ptr %56, align 8, !alias.scope !34, !noalias !37, !nonnull !4, !align !12, !noundef !4 + %58 = getelementptr inbounds i8, ptr %57, i64 24 + %59 = load ptr, ptr %58, align 8, !invariant.load !4, !noalias !40, !nonnull !4 + %60 = call { i64, ptr } %59(ptr noalias noundef nonnull align 1 %55, ptr noalias noundef nonnull align 8 dereferenceable(8) %1, ptr noalias noundef nonnull align 8 dereferenceable(32) %2), !noalias !34 br label %43 } diff --git a/bench/hyperscan/optimized/ng_holder.cpp.ll b/bench/hyperscan/optimized/ng_holder.cpp.ll index d0789a619e7..91148f6ff1a 100644 --- a/bench/hyperscan/optimized/ng_holder.cpp.ll +++ b/bench/hyperscan/optimized/ng_holder.cpp.ll @@ -629,6 +629,8 @@ sw.bb: ; preds = %entry %retval.sroa.0.0.copyload = load ptr, ptr %start, align 8 %retval.sroa.6.0.start.sroa_idx = getelementptr inbounds i8, ptr %this, i64 80 %retval.sroa.6.0.copyload = load i64, ptr %retval.sroa.6.0.start.sroa_idx, align 8 + %0 = insertvalue { ptr, i64 } poison, ptr %retval.sroa.0.0.copyload, 0 + %1 = insertvalue { ptr, i64 } %0, i64 %retval.sroa.6.0.copyload, 1 br label %return sw.bb2: ; preds = %entry @@ -636,6 +638,8 @@ sw.bb2: ; preds = %entry %retval.sroa.0.0.copyload1 = load ptr, ptr %startDs, align 8 %retval.sroa.6.0.startDs.sroa_idx = getelementptr inbounds i8, ptr %this, i64 96 %retval.sroa.6.0.copyload4 = load i64, ptr %retval.sroa.6.0.startDs.sroa_idx, align 8 + %2 = insertvalue { ptr, i64 } poison, ptr %retval.sroa.0.0.copyload1, 0 + %3 = insertvalue { ptr, i64 } %2, i64 %retval.sroa.6.0.copyload4, 1 br label %return sw.bb3: ; preds = %entry @@ -643,6 +647,8 @@ sw.bb3: ; preds = %entry %retval.sroa.0.0.copyload2 = load ptr, ptr %accept, align 8 %retval.sroa.6.0.accept.sroa_idx = getelementptr inbounds i8, ptr %this, i64 112 %retval.sroa.6.0.copyload5 = load i64, ptr %retval.sroa.6.0.accept.sroa_idx, align 8 + %4 = insertvalue { ptr, i64 } poison, ptr %retval.sroa.0.0.copyload2, 0 + %5 = insertvalue { ptr, i64 } %4, i64 %retval.sroa.6.0.copyload5, 1 br label %return sw.bb4: ; preds = %entry @@ -650,14 +656,13 @@ sw.bb4: ; preds = %entry %retval.sroa.0.0.copyload3 = load ptr, ptr %acceptEod, align 8 %retval.sroa.6.0.acceptEod.sroa_idx = getelementptr inbounds i8, ptr %this, i64 128 %retval.sroa.6.0.copyload6 = load i64, ptr %retval.sroa.6.0.acceptEod.sroa_idx, align 8 + %6 = insertvalue { ptr, i64 } poison, ptr %retval.sroa.0.0.copyload3, 0 + %7 = insertvalue { ptr, i64 } %6, i64 %retval.sroa.6.0.copyload6, 1 br label %return return: ; preds = %entry, %sw.bb4, %sw.bb3, %sw.bb2, %sw.bb - %retval.sroa.0.0 = phi ptr [ %retval.sroa.0.0.copyload3, %sw.bb4 ], [ %retval.sroa.0.0.copyload2, %sw.bb3 ], [ %retval.sroa.0.0.copyload1, %sw.bb2 ], [ %retval.sroa.0.0.copyload, %sw.bb ], [ null, %entry ] - %retval.sroa.6.0 = phi i64 [ %retval.sroa.6.0.copyload6, %sw.bb4 ], [ %retval.sroa.6.0.copyload5, %sw.bb3 ], [ %retval.sroa.6.0.copyload4, %sw.bb2 ], [ %retval.sroa.6.0.copyload, %sw.bb ], [ 0, %entry ] - %.fca.0.insert = insertvalue { ptr, i64 } poison, ptr %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { ptr, i64 } %.fca.0.insert, i64 %retval.sroa.6.0, 1 - ret { ptr, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { ptr, i64 } [ %7, %sw.bb4 ], [ %5, %sw.bb3 ], [ %3, %sw.bb2 ], [ %1, %sw.bb ], [ zeroinitializer, %entry ] + ret { ptr, i64 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: write) diff --git a/bench/hyperscan/optimized/ng_util.cpp.ll b/bench/hyperscan/optimized/ng_util.cpp.ll index a1ed48a6bdc..c855f3b8792 100644 --- a/bench/hyperscan/optimized/ng_util.cpp.ll +++ b/bench/hyperscan/optimized/ng_util.cpp.ll @@ -456,6 +456,8 @@ if.end: ; preds = %entry %1 = load ptr, ptr %target.i.i, align 8 %serial2.i.i.i = getelementptr inbounds i8, ptr %1, i64 96 %2 = load i64, ptr %serial2.i.i.i, align 8 + %.fca.0.insert.i.i = insertvalue { ptr, i64 } poison, ptr %1, 0 + %.fca.1.insert.i.i = insertvalue { ptr, i64 } %.fca.0.insert.i.i, i64 %2, 1 %cmp.i = icmp eq ptr %a.coerce0, %1 %3 = load ptr, ptr %0, align 8 %cmp.i.i.i.i4 = icmp eq ptr %3, %m_header.i.i.i.i @@ -469,10 +471,11 @@ if.end14: ; preds = %if.then9 %4 = load ptr, ptr %target.i.i8, align 8 %serial2.i.i.i9 = getelementptr inbounds i8, ptr %4, i64 96 %5 = load i64, ptr %serial2.i.i.i9, align 8 + %.fca.0.insert.i.i10 = insertvalue { ptr, i64 } poison, ptr %4, 0 + %.fca.1.insert.i.i11 = insertvalue { ptr, i64 } %.fca.0.insert.i.i10, i64 %5, 1 %6 = load ptr, ptr %3, align 8 %cmp.i.i.i.i12.not = icmp eq ptr %6, %m_header.i.i.i.i - %spec.select = select i1 %cmp.i.i.i.i12.not, ptr %4, ptr null - %spec.select37 = select i1 %cmp.i.i.i.i12.not, i64 %5, i64 0 + %spec.select = select i1 %cmp.i.i.i.i12.not, { ptr, i64 } %.fca.1.insert.i.i11, { ptr, i64 } zeroinitializer br label %return if.else: ; preds = %if.end @@ -493,11 +496,8 @@ if.then33: ; preds = %land.rhs, %lor.rhs br label %return return: ; preds = %if.end14, %if.then9, %entry, %if.else, %lor.rhs, %if.then33 - %retval.sroa.0.0 = phi ptr [ null, %if.then33 ], [ %1, %lor.rhs ], [ %1, %if.else ], [ null, %entry ], [ null, %if.then9 ], [ %spec.select, %if.end14 ] - %retval.sroa.6.0 = phi i64 [ 0, %if.then33 ], [ %2, %lor.rhs ], [ %2, %if.else ], [ 0, %entry ], [ 0, %if.then9 ], [ %spec.select37, %if.end14 ] - %.fca.0.insert = insertvalue { ptr, i64 } poison, ptr %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { ptr, i64 } %.fca.0.insert, i64 %retval.sroa.6.0, 1 - ret { ptr, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { ptr, i64 } [ zeroinitializer, %if.then33 ], [ %.fca.1.insert.i.i, %lor.rhs ], [ %.fca.1.insert.i.i, %if.else ], [ zeroinitializer, %entry ], [ zeroinitializer, %if.then9 ], [ %spec.select, %if.end14 ] + ret { ptr, i64 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) @@ -563,6 +563,8 @@ if.end11: ; preds = %if.end %5 = load ptr, ptr %source.i.i, align 8 %serial2.i.i.i = getelementptr inbounds i8, ptr %5, i64 96 %6 = load i64, ptr %serial2.i.i.i, align 8 + %.fca.0.insert.i.i = insertvalue { ptr, i64 } poison, ptr %5, 0 + %.fca.1.insert.i.i = insertvalue { ptr, i64 } %.fca.0.insert.i.i, i64 %6, 1 %cmp.i = icmp eq ptr %a.coerce0, %5 br i1 %cmp.i, label %if.then17, label %return @@ -576,14 +578,13 @@ if.end22: ; preds = %if.then17 %8 = load ptr, ptr %source.i.i12, align 8 %serial2.i.i.i13 = getelementptr inbounds i8, ptr %8, i64 96 %9 = load i64, ptr %serial2.i.i.i13, align 8 + %.fca.0.insert.i.i14 = insertvalue { ptr, i64 } poison, ptr %8, 0 + %.fca.1.insert.i.i15 = insertvalue { ptr, i64 } %.fca.0.insert.i.i14, i64 %9, 1 br label %return return: ; preds = %for.cond19.i.i.i, %for.cond.i.i.i, %if.then17, %if.end, %entry, %if.end11, %if.end22 - %retval.sroa.0.0 = phi ptr [ %8, %if.end22 ], [ %5, %if.end11 ], [ null, %entry ], [ null, %if.end ], [ null, %if.then17 ], [ null, %for.cond.i.i.i ], [ null, %for.cond19.i.i.i ] - %retval.sroa.5.0 = phi i64 [ %9, %if.end22 ], [ %6, %if.end11 ], [ 0, %entry ], [ 0, %if.end ], [ 0, %if.then17 ], [ 0, %for.cond.i.i.i ], [ 0, %for.cond19.i.i.i ] - %.fca.0.insert = insertvalue { ptr, i64 } poison, ptr %retval.sroa.0.0, 0 - %.fca.1.insert = insertvalue { ptr, i64 } %.fca.0.insert, i64 %retval.sroa.5.0, 1 - ret { ptr, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { ptr, i64 } [ %.fca.1.insert.i.i15, %if.end22 ], [ %.fca.1.insert.i.i, %if.end11 ], [ zeroinitializer, %entry ], [ zeroinitializer, %if.end ], [ zeroinitializer, %if.then17 ], [ zeroinitializer, %for.cond.i.i.i ], [ zeroinitializer, %for.cond19.i.i.i ] + ret { ptr, i64 } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable diff --git a/bench/influxdb-rs/optimized/168qliixz1k1vi84.ll b/bench/influxdb-rs/optimized/168qliixz1k1vi84.ll index 401ea8a6634..b2ad1cb35e8 100644 --- a/bench/influxdb-rs/optimized/168qliixz1k1vi84.ll +++ b/bench/influxdb-rs/optimized/168qliixz1k1vi84.ll @@ -291,13 +291,13 @@ define hidden { ptr, ptr } @"_ZN108_$LT$alloc..collections..btree..map..Iter$LT$ tail call void @llvm.experimental.noalias.scope.decl(metadata !5) %7 = load i64, ptr %0, align 8, !range !8, !alias.scope !5, !noundef !4 %.not.not.i = icmp eq i64 %7, 0 - br i1 %.not.not.i, label %20, label %8 + br i1 %.not.not.i, label %18, label %8 8: ; preds = %5 %9 = getelementptr inbounds i8, ptr %0, i64 8 %10 = load ptr, ptr %9, align 8, !alias.scope !5, !noundef !4 %11 = icmp eq ptr %10, null - br i1 %11, label %12, label %21 + br i1 %11, label %12, label %19 12: ; preds = %8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.4.i), !noalias !5 @@ -309,23 +309,18 @@ define hidden { ptr, ptr } @"_ZN108_$LT$alloc..collections..btree..map..Iter$LT$ store i64 1, ptr %0, align 8, !alias.scope !5 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %9, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.4.i, i64 24, i1 false) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.4.i), !noalias !5 - br label %21 + br label %19 -17: ; preds = %1, %21 - %.sroa.3.0 = phi ptr [ %24, %21 ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %23, %21 ], [ null, %1 ] - %18 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %19 = insertvalue { ptr, ptr } %18, ptr %.sroa.3.0, 1 - ret { ptr, ptr } %19 +17: ; preds = %1, %19 + %.merged = phi { ptr, ptr } [ %20, %19 ], [ { ptr null, ptr undef }, %1 ] + ret { ptr, ptr } %.merged -20: ; preds = %5 +18: ; preds = %5 tail call void @_ZN4core9panicking5panic17h195fc2a96298d4c3E(ptr noalias noundef nonnull readonly align 1 @anon.45d932603a0101fa3cd25df63387eec5.0.llvm.764624619746776857, i64 noundef 43, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.45d932603a0101fa3cd25df63387eec5.2.llvm.764624619746776857) #22 unreachable -21: ; preds = %8, %12 - %22 = tail call { ptr, ptr } @_ZN5alloc11collections5btree3mem7replace17he9c90ee809f4118eE.llvm.764624619746776857(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) - %23 = extractvalue { ptr, ptr } %22, 0 - %24 = extractvalue { ptr, ptr } %22, 1 +19: ; preds = %8, %12 + %20 = tail call { ptr, ptr } @_ZN5alloc11collections5btree3mem7replace17he9c90ee809f4118eE.llvm.764624619746776857(ptr noalias noundef nonnull align 8 dereferenceable(24) %9) br label %17 } @@ -7550,10 +7545,10 @@ define { ptr, i64 } @_ZN16influxdb3_server17CommonServerState12bearer_token17hcb %4 = icmp eq ptr %3, null %5 = getelementptr inbounds i8, ptr %0, i64 96 %..val2.i = load i64, ptr %5, align 8, !alias.scope !1279 - %.sroa.3.0.i = select i1 %4, i64 undef, i64 %..val2.i %6 = insertvalue { ptr, i64 } poison, ptr %3, 0 - %7 = insertvalue { ptr, i64 } %6, i64 %.sroa.3.0.i, 1 - ret { ptr, i64 } %7 + %7 = insertvalue { ptr, i64 } %6, i64 %..val2.i, 1 + %.merged.i = select i1 %4, { ptr, i64 } { ptr null, i64 undef }, { ptr, i64 } %7 + ret { ptr, i64 } %.merged.i } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write) uwtable diff --git a/bench/influxdb-rs/optimized/1qfvsl8a7jfomqbf.ll b/bench/influxdb-rs/optimized/1qfvsl8a7jfomqbf.ll index ad353f539b8..db7cbcca4a6 100644 --- a/bench/influxdb-rs/optimized/1qfvsl8a7jfomqbf.ll +++ b/bench/influxdb-rs/optimized/1qfvsl8a7jfomqbf.ll @@ -10345,7 +10345,7 @@ define hidden { ptr, i64 } @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$16into_boxed_slice17 7: ; preds = %1 %8 = invoke { i64, i64 } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$6shrink17h6227c18fb3072141E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %0, i64 noundef %5) - to label %.noexc unwind label %13 + to label %.noexc unwind label %14 .noexc: ; preds = %7 %9 = extractvalue { i64, i64 } %8, 0 @@ -10360,37 +10360,39 @@ define hidden { ptr, i64 } @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$16into_boxed_slice17 10: ; preds = %.noexc invoke void @_ZN5alloc7raw_vec17capacity_overflow17ha5d418fbc836d11cE() #32 - to label %.noexc29 unwind label %13 + to label %.noexc29 unwind label %14 .noexc29: ; preds = %10 unreachable 11: ; preds = %.noexc %12 = extractvalue { i64, i64 } %8, 1 - invoke void @_ZN5alloc5alloc18handle_alloc_error17h7d585e222775d2b3E(i64 noundef %9, i64 noundef %12) #32 - to label %.noexc30 unwind label %13 + %13 = icmp eq i64 %9, -9223372036854775807 + %.fca.1.extract.i.i = select i1 %13, i64 undef, i64 %12 + invoke void @_ZN5alloc5alloc18handle_alloc_error17h7d585e222775d2b3E(i64 noundef %9, i64 noundef %.fca.1.extract.i.i) #32 + to label %.noexc30 unwind label %14 .noexc30: ; preds = %11 unreachable -13: ; preds = %11, %10, %7 - %14 = landingpad { ptr, i32 } +14: ; preds = %11, %10, %7 + %15 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr180drop_in_place$LT$alloc..vec..Vec$LT$crossbeam_channel..flavors..array..Slot$LT$core..result..Result$LT$influxdb3_write..SequenceNumber$C$influxdb3_write..wal..Error$GT$$GT$$GT$$GT$17hc9b53d531b6ee7cbE"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0) #29 - to label %17 unwind label %18 + to label %18 unwind label %19 "_ZN5alloc3vec16Vec$LT$T$C$A$GT$13shrink_to_fit17h7fa74a473cdd73cbE.exit": ; preds = %".noexc._ZN5alloc3vec16Vec$LT$T$C$A$GT$13shrink_to_fit17h7fa74a473cdd73cbE.exit_crit_edge", %1 %.sroa.54.0.copyload = phi i64 [ %.sroa.54.0.copyload.pre, %".noexc._ZN5alloc3vec16Vec$LT$T$C$A$GT$13shrink_to_fit17h7fa74a473cdd73cbE.exit_crit_edge" ], [ %5, %1 ] %.sroa.02.0.copyload = load ptr, ptr %0, align 8, !nonnull !4, !noundef !4 - %15 = insertvalue { ptr, i64 } poison, ptr %.sroa.02.0.copyload, 0 - %16 = insertvalue { ptr, i64 } %15, i64 %.sroa.54.0.copyload, 1 - ret { ptr, i64 } %16 + %16 = insertvalue { ptr, i64 } poison, ptr %.sroa.02.0.copyload, 0 + %17 = insertvalue { ptr, i64 } %16, i64 %.sroa.54.0.copyload, 1 + ret { ptr, i64 } %17 -17: ; preds = %13 - resume { ptr, i32 } %14 +18: ; preds = %14 + resume { ptr, i32 } %15 -18: ; preds = %13 - %19 = landingpad { ptr, i32 } +19: ; preds = %14 + %20 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17hd44bb2114362504eE() #30 unreachable @@ -10407,7 +10409,7 @@ define hidden { ptr, i64 } @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$16into_boxed_slice17 7: ; preds = %1 %8 = invoke { i64, i64 } @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$6shrink17h97ae0aa77ef606e3E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %0, i64 noundef %5) - to label %.noexc unwind label %13 + to label %.noexc unwind label %14 .noexc: ; preds = %7 %9 = extractvalue { i64, i64 } %8, 0 @@ -10422,37 +10424,39 @@ define hidden { ptr, i64 } @"_ZN5alloc3vec16Vec$LT$T$C$A$GT$16into_boxed_slice17 10: ; preds = %.noexc invoke void @_ZN5alloc7raw_vec17capacity_overflow17ha5d418fbc836d11cE() #32 - to label %.noexc29 unwind label %13 + to label %.noexc29 unwind label %14 .noexc29: ; preds = %10 unreachable 11: ; preds = %.noexc %12 = extractvalue { i64, i64 } %8, 1 - invoke void @_ZN5alloc5alloc18handle_alloc_error17h7d585e222775d2b3E(i64 noundef %9, i64 noundef %12) #32 - to label %.noexc30 unwind label %13 + %13 = icmp eq i64 %9, -9223372036854775807 + %.fca.1.extract.i.i = select i1 %13, i64 undef, i64 %12 + invoke void @_ZN5alloc5alloc18handle_alloc_error17h7d585e222775d2b3E(i64 noundef %9, i64 noundef %.fca.1.extract.i.i) #32 + to label %.noexc30 unwind label %14 .noexc30: ; preds = %11 unreachable -13: ; preds = %11, %10, %7 - %14 = landingpad { ptr, i32 } +14: ; preds = %11, %10, %7 + %15 = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr136drop_in_place$LT$alloc..vec..Vec$LT$crossbeam_channel..flavors..array..Slot$LT$alloc..vec..Vec$LT$influxdb3_write..WalOp$GT$$GT$$GT$$GT$17hd2caea18ceb26263E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %0) #29 - to label %17 unwind label %18 + to label %18 unwind label %19 "_ZN5alloc3vec16Vec$LT$T$C$A$GT$13shrink_to_fit17he6c4543a95dd40cfE.exit": ; preds = %".noexc._ZN5alloc3vec16Vec$LT$T$C$A$GT$13shrink_to_fit17he6c4543a95dd40cfE.exit_crit_edge", %1 %.sroa.54.0.copyload = phi i64 [ %.sroa.54.0.copyload.pre, %".noexc._ZN5alloc3vec16Vec$LT$T$C$A$GT$13shrink_to_fit17he6c4543a95dd40cfE.exit_crit_edge" ], [ %5, %1 ] %.sroa.02.0.copyload = load ptr, ptr %0, align 8, !nonnull !4, !noundef !4 - %15 = insertvalue { ptr, i64 } poison, ptr %.sroa.02.0.copyload, 0 - %16 = insertvalue { ptr, i64 } %15, i64 %.sroa.54.0.copyload, 1 - ret { ptr, i64 } %16 + %16 = insertvalue { ptr, i64 } poison, ptr %.sroa.02.0.copyload, 0 + %17 = insertvalue { ptr, i64 } %16, i64 %.sroa.54.0.copyload, 1 + ret { ptr, i64 } %17 -17: ; preds = %13 - resume { ptr, i32 } %14 +18: ; preds = %14 + resume { ptr, i32 } %15 -18: ; preds = %13 - %19 = landingpad { ptr, i32 } +19: ; preds = %14 + %20 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer tail call void @_ZN4core9panicking16panic_in_cleanup17hd44bb2114362504eE() #30 unreachable diff --git a/bench/influxdb-rs/optimized/2g8nrbnslhx52xx1.ll b/bench/influxdb-rs/optimized/2g8nrbnslhx52xx1.ll index 46b0baf128e..a8482df9385 100644 --- a/bench/influxdb-rs/optimized/2g8nrbnslhx52xx1.ll +++ b/bench/influxdb-rs/optimized/2g8nrbnslhx52xx1.ll @@ -459,16 +459,11 @@ select.unfold: ; preds = %"_ZN4core3str4iter2 %.sroa.0.0.i.i = getelementptr inbounds i8, ptr %.val.i.i, i64 %.pn %77 = getelementptr inbounds i8, ptr %0, i64 72 %78 = tail call { ptr, i64 } @"_ZN89_$LT$core..str..LinesMap$u20$as$u20$core..ops..function..Fn$LT$$LP$$RF$str$C$$RP$$GT$$GT$4call17h49335e292259be4dE.llvm.2921359679148529085"(ptr noalias noundef nonnull readonly align 1 %77, ptr noalias noundef nonnull readonly align 1 %.sroa.0.0.i.i, i64 noundef %.sroa.4.0.i.i) - %79 = extractvalue { ptr, i64 } %78, 0 - %80 = extractvalue { ptr, i64 } %78, 1 br label %"_ZN99_$LT$core..str..iter..SplitInclusive$LT$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h8b94148a549c7132E.exit.thread" "_ZN99_$LT$core..str..iter..SplitInclusive$LT$P$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h8b94148a549c7132E.exit.thread": ; preds = %"_ZN4core3str4iter22SplitInternal$LT$P$GT$7get_end17h068e4749ca468c23E.exit.i.i", %1, %select.unfold - %.sroa.3.0 = phi i64 [ %80, %select.unfold ], [ undef, %1 ], [ undef, %"_ZN4core3str4iter22SplitInternal$LT$P$GT$7get_end17h068e4749ca468c23E.exit.i.i" ] - %.sroa.0.0 = phi ptr [ %79, %select.unfold ], [ null, %1 ], [ null, %"_ZN4core3str4iter22SplitInternal$LT$P$GT$7get_end17h068e4749ca468c23E.exit.i.i" ] - %81 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %82 = insertvalue { ptr, i64 } %81, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %82 + %.merged = phi { ptr, i64 } [ %78, %select.unfold ], [ { ptr null, i64 undef }, %1 ], [ { ptr null, i64 undef }, %"_ZN4core3str4iter22SplitInternal$LT$P$GT$7get_end17h068e4749ca468c23E.exit.i.i" ] + ret { ptr, i64 } %.merged } ; Function Attrs: alwaysinline nounwind nonlazybind uwtable @@ -5381,12 +5376,12 @@ define hidden { ptr, i64 } @"_ZN71_$LT$alloc..borrow..Cow$LT$B$GT$$u20$as$u20$co %3 = icmp eq ptr %2, null %4 = getelementptr inbounds i8, ptr %0, i64 8 %5 = load ptr, ptr %4, align 8, !nonnull !12, !align !13 - %.sroa.0.0 = select i1 %3, ptr %5, ptr %2 - %.sroa.5.0.in = getelementptr inbounds i8, ptr %0, i64 16 - %.sroa.5.0 = load i64, ptr %.sroa.5.0.in, align 8, !noundef !12 - %6 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %7 = insertvalue { ptr, i64 } %6, i64 %.sroa.5.0, 1 - ret { ptr, i64 } %7 + %.pn3 = select i1 %3, ptr %5, ptr %2 + %.pn1.in = getelementptr inbounds i8, ptr %0, i64 16 + %.pn1 = load i64, ptr %.pn1.in, align 8, !noundef !12 + %.pn = insertvalue { ptr, i64 } poison, ptr %.pn3, 0 + %.merged = insertvalue { ptr, i64 } %.pn, i64 %.pn1, 1 + ret { ptr, i64 } %.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable diff --git a/bench/influxdb-rs/optimized/4bpmt5749p4g145g.ll b/bench/influxdb-rs/optimized/4bpmt5749p4g145g.ll index 77f1ffcc7ac..d173bebe311 100644 --- a/bench/influxdb-rs/optimized/4bpmt5749p4g145g.ll +++ b/bench/influxdb-rs/optimized/4bpmt5749p4g145g.ll @@ -281,14 +281,13 @@ define hidden { i8, i8 } @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT %.sroa.0.1.i.i.i.i.i = phi i8 [ 0, %45 ], [ 1, %"_ZN58_$LT$alloc..vec..Vec$LT$u8$GT$$u20$as$u20$hex..FromHex$GT$8from_hex28_$u7b$$u7b$closure$u7d$$u7d$17h76b1d52bec8852acE.exit.i.i.i.i" ] %46 = add i64 %15, 1 store i64 %46, ptr %4, align 8, !alias.scope !34, !noalias !51 + %47 = insertvalue { i8, i8 } poison, i8 %.sroa.0.1.i.i.i.i.i, 0 + %48 = insertvalue { i8, i8 } %47, i8 %.sroa.6.08.i.i.i.i, 1 br label %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h06defcafa0db3ac2E.llvm.3198005069098508149.exit" "_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17h06defcafa0db3ac2E.llvm.3198005069098508149.exit": ; preds = %3, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit.i.i" - %.sroa.3.0.i.i = phi i8 [ %.sroa.6.08.i.i.i.i, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit.i.i" ], [ undef, %3 ] - %.sroa.0.0.i.i = phi i8 [ %.sroa.0.1.i.i.i.i.i, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit.i.i" ], [ 2, %3 ] - %47 = insertvalue { i8, i8 } poison, i8 %.sroa.0.0.i.i, 0 - %48 = insertvalue { i8, i8 } %47, i8 %.sroa.3.0.i.i, 1 - ret { i8, i8 } %48 + %.merged.i.i = phi { i8, i8 } [ %48, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit.i.i" ], [ { i8 2, i8 undef }, %3 ] + ret { i8, i8 } %.merged.i.i } ; Function Attrs: nonlazybind uwtable @@ -976,14 +975,13 @@ define hidden { i8, i8 } @"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate %.sroa.0.1.i.i.i.i = phi i8 [ 0, %44 ], [ 1, %"_ZN58_$LT$alloc..vec..Vec$LT$u8$GT$$u20$as$u20$hex..FromHex$GT$8from_hex28_$u7b$$u7b$closure$u7d$$u7d$17h76b1d52bec8852acE.exit.i.i.i" ] %46 = add i64 %14, 1 store i64 %46, ptr %3, align 8, !noalias !256 + %47 = insertvalue { i8, i8 } poison, i8 %.sroa.0.1.i.i.i.i, 0 + %48 = insertvalue { i8, i8 } %47, i8 %.sroa.6.08.i.i.i, 1 br label %_ZN4core4iter6traits8iterator8Iterator8try_fold17h12820251cad19d26E.llvm.3198005069098508149.exit _ZN4core4iter6traits8iterator8Iterator8try_fold17h12820251cad19d26E.llvm.3198005069098508149.exit: ; preds = %2, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit.i" - %.sroa.3.0.i = phi i8 [ %.sroa.6.08.i.i.i, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit.i" ], [ undef, %2 ] - %.sroa.0.0.i = phi i8 [ %.sroa.0.1.i.i.i.i, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit.i" ], [ 2, %2 ] - %47 = insertvalue { i8, i8 } poison, i8 %.sroa.0.0.i, 0 - %48 = insertvalue { i8, i8 } %47, i8 %.sroa.3.0.i, 1 - ret { i8, i8 } %48 + %.merged.i = phi { i8, i8 } [ %48, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit.i" ], [ { i8 2, i8 undef }, %2 ] + ret { i8, i8 } %.merged.i } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: write, inaccessiblemem: write) uwtable @@ -1777,7 +1775,7 @@ define hidden { i8, i8 } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h1282 %3 = getelementptr inbounds i8, ptr %0, i64 8 %4 = load i64, ptr %3, align 8, !alias.scope !480, !noundef !4 %5 = icmp eq i64 %4, 0 - br i1 %5, label %49, label %6 + br i1 %5, label %51, label %6 6: ; preds = %2 %7 = getelementptr inbounds i8, ptr %0, i64 16 @@ -1888,14 +1886,13 @@ define hidden { i8, i8 } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h1282 %.sroa.0.1.i.i.i = phi i8 [ 0, %45 ], [ 1, %"_ZN58_$LT$alloc..vec..Vec$LT$u8$GT$$u20$as$u20$hex..FromHex$GT$8from_hex28_$u7b$$u7b$closure$u7d$$u7d$17h76b1d52bec8852acE.exit.i.i" ] %48 = add i64 %47, 1 store i64 %48, ptr %.val17, align 8, !noalias !483 - br label %49 - -49: ; preds = %2, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit" - %.sroa.3.0 = phi i8 [ %.sroa.6.08.i.i, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit" ], [ undef, %2 ] - %.sroa.0.0 = phi i8 [ %.sroa.0.1.i.i.i, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit" ], [ 2, %2 ] - %50 = insertvalue { i8, i8 } poison, i8 %.sroa.0.0, 0 - %51 = insertvalue { i8, i8 } %50, i8 %.sroa.3.0, 1 - ret { i8, i8 } %51 + %49 = insertvalue { i8, i8 } poison, i8 %.sroa.0.1.i.i.i, 0 + %50 = insertvalue { i8, i8 } %49, i8 %.sroa.6.08.i.i, 1 + br label %51 + +51: ; preds = %2, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit" + %.merged = phi { i8, i8 } [ %50, %"_ZN110_$LT$core..iter..adapters..enumerate..Enumerate$LT$I$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold9enumerate28_$u7b$$u7b$closure$u7d$$u7d$17h553cb57bfbfdb48bE.exit" ], [ { i8 2, i8 undef }, %2 ] + ret { i8, i8 } %.merged } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/just-rs/optimized/uwydcyn8qeoqoev.ll b/bench/just-rs/optimized/uwydcyn8qeoqoev.ll index 16d7463449a..62687eefcaa 100644 --- a/bench/just-rs/optimized/uwydcyn8qeoqoev.ll +++ b/bench/just-rs/optimized/uwydcyn8qeoqoev.ll @@ -20577,7 +20577,7 @@ _ZN4just6parser6Parser8next_are17h904c44e2a49215cdE.exit718.thread: ; preds = %7 define internal fastcc { ptr, i64 } @_ZN4just6parser6Parser9parse_ast15pop_doc_comment17hbe5acf5ad436b38dE(ptr noalias nocapture noundef align 8 dereferenceable(24) %0, i1 noundef zeroext %1) unnamed_addr #1 personality ptr @rust_eh_personality { %3 = alloca { { { ptr, i64 }, { { { ptr, ptr, {} } }, i64 }, {} } }, align 8 %4 = alloca { i64, [33 x i64] }, align 8 - br i1 %1, label %48, label %5 + br i1 %1, label %50, label %5 5: ; preds = %2 %6 = getelementptr inbounds i8, ptr %0, i64 16 @@ -20587,12 +20587,12 @@ define internal fastcc { ptr, i64 } @_ZN4just6parser6Parser9parse_ast15pop_doc_c %9 = load ptr, ptr %8, align 8, !nonnull !4 %10 = add i64 %7, -1 %11 = getelementptr inbounds [0 x { i64, [33 x i64] }], ptr %9, i64 0, i64 %10 - br i1 %.not, label %48, label %12 + br i1 %.not, label %50, label %12 12: ; preds = %5 %13 = load i64, ptr %11, align 8, !range !84, !noundef !4 %14 = icmp eq i64 %13, -9223372036854775806 - br i1 %14, label %15, label %48 + br i1 %14, label %15, label %50 15: ; preds = %12 %16 = getelementptr inbounds i8, ptr %11, i64 8 @@ -20671,31 +20671,30 @@ define internal fastcc { ptr, i64 } @_ZN4just6parser6Parser9parse_ast15pop_doc_c %41 = getelementptr inbounds i8, ptr %.sroa.0.0.i13, i64 %40 %42 = sub i64 %28, %40 call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3), !noalias !3398 + %43 = insertvalue { ptr, i64 } poison, ptr %41, 0 + %44 = insertvalue { ptr, i64 } %43, i64 %42, 1 call void @llvm.lifetime.start.p0(i64 272, ptr nonnull %4) call void @llvm.experimental.noalias.scope.decl(metadata !3411) store i64 %10, ptr %6, align 8, !alias.scope !3411, !noalias !3414 - %43 = load i64, ptr %0, align 8, !alias.scope !3411, !noalias !3414, !noundef !4 - %44 = icmp ult i64 %10, %43 - call void @llvm.assume(i1 %44) + %45 = load i64, ptr %0, align 8, !alias.scope !3411, !noalias !3414, !noundef !4 + %46 = icmp ult i64 %10, %45 + call void @llvm.assume(i1 %46) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(272) %4, ptr noundef nonnull align 8 dereferenceable(272) %11, i64 272, i1 false), !noalias !3411 - %45 = load i64, ptr %4, align 8, !range !3416, !alias.scope !3417, !noundef !4 - %46 = icmp eq i64 %45, -9223372036854775801 - br i1 %46, label %"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$just..item..Item$GT$$GT$17hfa16ec86cb917894E.exit", label %47 + %47 = load i64, ptr %4, align 8, !range !3416, !alias.scope !3417, !noundef !4 + %48 = icmp eq i64 %47, -9223372036854775801 + br i1 %48, label %"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$just..item..Item$GT$$GT$17hfa16ec86cb917894E.exit", label %49 -47: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hdf5bbea022a3e77dE.exit" +49: ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hdf5bbea022a3e77dE.exit" call fastcc void @"_ZN4core3ptr37drop_in_place$LT$just..item..Item$GT$17h24c6778d35488ec8E"(ptr noalias noundef nonnull align 8 dereferenceable(272) %4) br label %"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$just..item..Item$GT$$GT$17hfa16ec86cb917894E.exit" -"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$just..item..Item$GT$$GT$17hfa16ec86cb917894E.exit": ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hdf5bbea022a3e77dE.exit", %47 +"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$just..item..Item$GT$$GT$17hfa16ec86cb917894E.exit": ; preds = %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hdf5bbea022a3e77dE.exit", %49 call void @llvm.lifetime.end.p0(i64 272, ptr nonnull %4) - br label %48 - -48: ; preds = %5, %12, %2, %"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$just..item..Item$GT$$GT$17hfa16ec86cb917894E.exit" - %.sroa.3.0 = phi i64 [ %42, %"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$just..item..Item$GT$$GT$17hfa16ec86cb917894E.exit" ], [ undef, %2 ], [ undef, %12 ], [ undef, %5 ] - %.sroa.0.0 = phi ptr [ %41, %"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$just..item..Item$GT$$GT$17hfa16ec86cb917894E.exit" ], [ null, %2 ], [ null, %12 ], [ null, %5 ] - %49 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %50 = insertvalue { ptr, i64 } %49, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %50 + br label %50 + +50: ; preds = %5, %12, %2, %"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$just..item..Item$GT$$GT$17hfa16ec86cb917894E.exit" + %.merged = phi { ptr, i64 } [ %44, %"_ZN4core3ptr65drop_in_place$LT$core..option..Option$LT$just..item..Item$GT$$GT$17hfa16ec86cb917894E.exit" ], [ { ptr null, i64 undef }, %2 ], [ { ptr null, i64 undef }, %12 ], [ { ptr null, i64 undef }, %5 ] + ret { ptr, i64 } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/llvm/optimized/BlockFrequencyInfoImpl.cpp.ll b/bench/llvm/optimized/BlockFrequencyInfoImpl.cpp.ll index 726176cb42c..458235903b8 100644 --- a/bench/llvm/optimized/BlockFrequencyInfoImpl.cpp.ll +++ b/bench/llvm/optimized/BlockFrequencyInfoImpl.cpp.ll @@ -2982,7 +2982,7 @@ _ZNK4llvm15SparseBitVectorILj128EE4testEj.exit: ; preds = %38, %35, %_ZNK4llvm define dso_local { i64, i16 } @_ZNK4llvm26BlockFrequencyInfoImplBase20getFloatingBlockFreqERKNS0_9BlockNodeE(ptr nocapture noundef nonnull readonly align 8 dereferenceable(112) %0, ptr nocapture noundef nonnull readonly align 4 dereferenceable(4) %1) local_unnamed_addr #6 align 2 { %3 = load i32, ptr %1, align 4 %.not = icmp eq i32 %3, -1 - br i1 %.not, label %9, label %4 + br i1 %.not, label %11, label %4 4: ; preds = %2 %5 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -2992,14 +2992,13 @@ define dso_local { i64, i16 } @_ZNK4llvm26BlockFrequencyInfoImplBase20getFloatin %.sroa.03.0.copyload = load i64, ptr %8, align 8 %.sroa.3.0..sroa_idx = getelementptr inbounds i8, ptr %8, i64 8 %.sroa.3.0.copyload = load i16, ptr %.sroa.3.0..sroa_idx, align 8 - br label %9 + %9 = insertvalue { i64, i16 } poison, i64 %.sroa.03.0.copyload, 0 + %10 = insertvalue { i64, i16 } %9, i16 %.sroa.3.0.copyload, 1 + br label %11 -9: ; preds = %2, %4 - %.sroa.03.0 = phi i64 [ %.sroa.03.0.copyload, %4 ], [ 0, %2 ] - %.sroa.3.0 = phi i16 [ %.sroa.3.0.copyload, %4 ], [ 0, %2 ] - %.fca.0.insert = insertvalue { i64, i16 } poison, i64 %.sroa.03.0, 0 - %.fca.1.insert = insertvalue { i64, i16 } %.fca.0.insert, i16 %.sroa.3.0, 1 - ret { i64, i16 } %.fca.1.insert +11: ; preds = %2, %4 + %.fca.1.insert.merged = phi { i64, i16 } [ %10, %4 ], [ zeroinitializer, %2 ] + ret { i64, i16 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) uwtable diff --git a/bench/llvm/optimized/COFFObjectFile.cpp.ll b/bench/llvm/optimized/COFFObjectFile.cpp.ll index b44d4cd9a3b..f8858806f00 100644 --- a/bench/llvm/optimized/COFFObjectFile.cpp.ll +++ b/bench/llvm/optimized/COFFObjectFile.cpp.ll @@ -6987,32 +6987,29 @@ _ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit: ; preds = %15, %17 call void @llvm.assume(i1 true) [ "align"(ptr %.sink3.i.i, i64 1) ] %.0.copyload.i.i.i.i.i = load i32, ptr %.sink3.i.i, align 1 %.not = icmp ult i32 %.0.copyload.i.i.i, %.0.copyload.i.i.i.i.i - br i1 %.not, label %27, label %_ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit.thread + br i1 %.not, label %25, label %_ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit.thread _ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit.thread: ; preds = %12, %2, %_ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit %21 = load ptr, ptr %0, align 8 %22 = getelementptr inbounds i8, ptr %21, i64 56 %23 = load ptr, ptr %22, align 8 %24 = tail call { i64, ptr } %23(ptr noundef nonnull align 8 dereferenceable(232) %0) #28 - %25 = extractvalue { i64, ptr } %24, 0 - %26 = extractvalue { i64, ptr } %24, 1 br label %31 -27: ; preds = %_ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit +25: ; preds = %_ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit call void @llvm.assume(i1 true) [ "align"(ptr %4, i64 1) ] - %28 = zext i32 %.0.copyload.i.i.i to i64 - %29 = getelementptr inbounds %"struct.llvm::object::coff_symbol.3", ptr %8, i64 %28 - %30 = getelementptr inbounds %"struct.llvm::object::coff_symbol", ptr %6, i64 %28 - %storemerge.in = select i1 %.not.i, ptr %29, ptr %30 + %26 = zext i32 %.0.copyload.i.i.i to i64 + %27 = getelementptr inbounds %"struct.llvm::object::coff_symbol.3", ptr %8, i64 %26 + %28 = getelementptr inbounds %"struct.llvm::object::coff_symbol", ptr %6, i64 %26 + %storemerge.in = select i1 %.not.i, ptr %27, ptr %28 %storemerge = ptrtoint ptr %storemerge.in to i64 + %29 = insertvalue { i64, ptr } poison, i64 %storemerge, 0 + %30 = insertvalue { i64, ptr } %29, ptr %0, 1 br label %31 -31: ; preds = %27, %_ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit.thread - %.sroa.013.0 = phi i64 [ %storemerge, %27 ], [ %25, %_ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit.thread ] - %.sroa.3.0 = phi ptr [ %0, %27 ], [ %26, %_ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit.thread ] - %.fca.0.insert = insertvalue { i64, ptr } poison, i64 %.sroa.013.0, 0 - %.fca.1.insert = insertvalue { i64, ptr } %.fca.0.insert, ptr %.sroa.3.0, 1 - ret { i64, ptr } %.fca.1.insert +31: ; preds = %25, %_ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit.thread + %.fca.1.insert.merged = phi { i64, ptr } [ %30, %25 ], [ %24, %_ZNK4llvm6object14COFFObjectFile18getNumberOfSymbolsEv.exit.thread ] + ret { i64, ptr } %.fca.1.insert.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: write) uwtable diff --git a/bench/llvm/optimized/CheckPlacementNew.cpp.ll b/bench/llvm/optimized/CheckPlacementNew.cpp.ll index 4a59877a0a0..829516e1dbc 100644 --- a/bench/llvm/optimized/CheckPlacementNew.cpp.ll +++ b/bench/llvm/optimized/CheckPlacementNew.cpp.ll @@ -906,8 +906,6 @@ _ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit45.i.i.i: store i8 6, ptr %.sroa.214.0..sroa_idx.i.i.i, align 8 %.sroa.0.0.copyload.i48.i.i.i = load i64, ptr %77, align 8 %79 = call { ptr, i8 } @_ZN5clang4ento11SValBuilder9evalBinOpEN4llvm18IntrusiveRefCntPtrIKNS0_12ProgramStateEEENS_18BinaryOperatorKindENS0_4SValES8_NS_8QualTypeE(ptr noundef nonnull align 8 dereferenceable(412) %40, ptr noundef nonnull %15, i32 noundef 2, ptr %.fca.0.extract19.i.i.i, i8 %.fca.1.extract20.i.i.i, ptr noundef nonnull byval(%"class.clang::ento::SVal") align 8 %16, i64 %.sroa.0.0.copyload.i48.i.i.i) #17 - %.fca.0.extract4.i.i.i = extractvalue { ptr, i8 } %79, 0 - %.fca.1.extract5.i.i.i = extractvalue { ptr, i8 } %79, 1 %80 = load ptr, ptr %15, align 8 %.not.i.i49.i.i.i = icmp eq ptr %80, null br i1 %.not.i.i49.i.i.i, label %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit.i.i.i, label %81 @@ -966,6 +964,8 @@ _ZN4llvm5APIntC2Ejmbb.exit.i.i.i: ; preds = %109, %102 %112 = getelementptr inbounds nuw i8, ptr %40, i64 16 %.sroa.0.0.copyload.i52.i.i.i = load i64, ptr %83, align 8 %113 = call noundef nonnull align 8 dereferenceable(13) ptr @_ZN5clang4ento17BasicValueFactory8getValueEmNS_8QualTypeE(ptr noundef nonnull align 8 dereferenceable(144) %112, i64 noundef %.0.i.i.i.i, i64 %.sroa.0.0.copyload.i52.i.i.i) #17 + %.fca.0.insert.i53.i.i.i = insertvalue { ptr, i8 } poison, ptr %113, 0 + %.fca.1.insert.i54.i.i.i = insertvalue { ptr, i8 } %.fca.0.insert.i53.i.i.i, i8 6, 1 %114 = load i32, ptr %100, align 8 %115 = icmp ugt i32 %114, 64 br i1 %115, label %116, label %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit.i.i.i @@ -980,8 +980,7 @@ _ZN4llvm5APIntC2Ejmbb.exit.i.i.i: ; preds = %109, %102 br label %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit.i.i.i _ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit.i.i.i: ; preds = %119, %116, %_ZN4llvm5APIntC2Ejmbb.exit.i.i.i, %81, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit45.i.i.i, %_ZNK5clang10CXXNewExpr12getArraySizeEv.exit.i.i.i - %.sroa.042.0.i.i.i = phi ptr [ %113, %116 ], [ %113, %119 ], [ %113, %_ZN4llvm5APIntC2Ejmbb.exit.i.i.i ], [ %.fca.0.extract4.i.i.i, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit45.i.i.i ], [ %.fca.0.extract4.i.i.i, %81 ], [ null, %_ZNK5clang10CXXNewExpr12getArraySizeEv.exit.i.i.i ] - %.sroa.4.0.i.i.i = phi i8 [ 6, %116 ], [ 6, %119 ], [ 6, %_ZN4llvm5APIntC2Ejmbb.exit.i.i.i ], [ %.fca.1.extract5.i.i.i, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit45.i.i.i ], [ %.fca.1.extract5.i.i.i, %81 ], [ 1, %_ZNK5clang10CXXNewExpr12getArraySizeEv.exit.i.i.i ] + %.fca.1.insert.merged.i.i.i = phi { ptr, i8 } [ %.fca.1.insert.i54.i.i.i, %116 ], [ %.fca.1.insert.i54.i.i.i, %119 ], [ %.fca.1.insert.i54.i.i.i, %_ZN4llvm5APIntC2Ejmbb.exit.i.i.i ], [ %79, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit45.i.i.i ], [ %79, %81 ], [ { ptr null, i8 1 }, %_ZNK5clang10CXXNewExpr12getArraySizeEv.exit.i.i.i ] br i1 %.not.i.i.i.i.i, label %_ZNK12_GLOBAL__N_119PlacementNewChecker24getExtentSizeOfNewTargetEPKN5clang10CXXNewExprERNS1_4ento14CheckerContextERb.exit.i.i, label %120 120: ; preds = %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit.i.i.i @@ -992,6 +991,8 @@ _ZNK12_GLOBAL__N_119PlacementNewChecker24getExtentSizeOfNewTargetEPKN5clang10CXX call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %16) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %17) + %.fca.0.extract3.i.i = extractvalue { ptr, i8 } %.fca.1.insert.merged.i.i.i, 0 + %.fca.1.extract4.i.i = extractvalue { ptr, i8 } %.fca.1.insert.merged.i.i.i, 1 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %13) %121 = getelementptr inbounds i8, ptr %1, i64 56 %122 = load i32, ptr %1, align 8 @@ -1047,7 +1048,7 @@ _ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit.i18.i.i: _ZNK12_GLOBAL__N_119PlacementNewChecker20getExtentSizeOfPlaceEPKN5clang10CXXNewExprERNS1_4ento14CheckerContextE.exit.i.i: ; preds = %145, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit.i18.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) %.fca.0.extract.i.i = extractvalue { ptr, i8 } %143, 0 - %146 = icmp eq i8 %.sroa.4.0.i.i.i, 6 + %146 = icmp eq i8 %.fca.1.extract4.i.i, 6 %.fca.1.extract.i.i = extractvalue { ptr, i8 } %143, 1 %147 = icmp eq i8 %.fca.1.extract.i.i, 6 %or.cond.i.i = select i1 %146, i1 %147, i1 false @@ -1060,11 +1061,11 @@ _ZNK12_GLOBAL__N_119PlacementNewChecker20getExtentSizeOfPlaceEPKN5clang10CXXNewE br i1 %151, label %152, label %154 152: ; preds = %148 - %153 = call noundef i32 @_ZNK4llvm5APInt7compareERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.sroa.042.0.i.i.i) #20 + %153 = call noundef i32 @_ZNK4llvm5APInt7compareERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract3.i.i) #20 br label %_ZNK4llvm6APSIntltERKS0_.exit.i.i 154: ; preds = %148 - %155 = call noundef i32 @_ZNK4llvm5APInt13compareSignedERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.sroa.042.0.i.i.i) #20 + %155 = call noundef i32 @_ZNK4llvm5APInt13compareSignedERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract3.i.i) #20 br label %_ZNK4llvm6APSIntltERKS0_.exit.i.i _ZNK4llvm6APSIntltERKS0_.exit.i.i: ; preds = %154, %152 @@ -1079,11 +1080,11 @@ _ZNK4llvm6APSIntltERKS0_.exit.i.i: ; preds = %154, %152 br i1 %151, label %159, label %161 159: ; preds = %158 - %160 = call noundef i32 @_ZNK4llvm5APInt7compareERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.sroa.042.0.i.i.i) #20 + %160 = call noundef i32 @_ZNK4llvm5APInt7compareERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract3.i.i) #20 br label %_ZNK4llvm6APSIntgeERKS0_.exit.i.i 161: ; preds = %158 - %162 = call noundef i32 @_ZNK4llvm5APInt13compareSignedERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.sroa.042.0.i.i.i) #20 + %162 = call noundef i32 @_ZNK4llvm5APInt13compareSignedERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract3.i.i) #20 br label %_ZNK4llvm6APSIntgeERKS0_.exit.i.i _ZNK4llvm6APSIntgeERKS0_.exit.i.i: ; preds = %161, %159 @@ -1153,11 +1154,11 @@ _ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit.i.i: ; preds br i1 %182, label %183, label %185 183: ; preds = %180 - %184 = call noundef i32 @_ZNK4llvm5APInt7compareERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.sroa.042.0.i.i.i) #20 + %184 = call noundef i32 @_ZNK4llvm5APInt7compareERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract3.i.i) #20 br label %_ZNK4llvm6APSIntgtERKS0_.exit.i.i 185: ; preds = %180 - %186 = call noundef i32 @_ZNK4llvm5APInt13compareSignedERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.sroa.042.0.i.i.i) #20 + %186 = call noundef i32 @_ZNK4llvm5APInt13compareSignedERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract3.i.i) #20 br label %_ZNK4llvm6APSIntgtERKS0_.exit.i.i _ZNK4llvm6APSIntgtERKS0_.exit.i.i: ; preds = %185, %183 @@ -1184,7 +1185,7 @@ _ZNK4llvm6APSIntgtERKS0_.exit.i.i: ; preds = %185, %183 br label %_ZNK4llvm6APSIntmiERKS0_.exit.i.i _ZNK4llvm6APSIntmiERKS0_.exit.i.i: ; preds = %195, %193 - %196 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN4llvm5APIntmIERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %10, ptr noundef nonnull align 8 dereferenceable(12) %.sroa.042.0.i.i.i) #17, !noalias !16 + %196 = call noundef nonnull align 8 dereferenceable(12) ptr @_ZN4llvm5APIntmIERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %10, ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract3.i.i) #17, !noalias !16 %197 = load i32, ptr %189, align 8, !noalias !16 %198 = load i64, ptr %10, align 8, !noalias !16 %199 = load i8, ptr %149, align 4, !noalias !13 @@ -1211,7 +1212,7 @@ _ZNK4llvm6APSIntmiERKS0_.exit.i.i: ; preds = %195, %193 %208 = getelementptr inbounds i8, ptr %20, i64 64 store ptr getelementptr inbounds inrange(-16, 32) (i8, ptr @_ZTVN4llvm7support6detail30stream_operator_format_adapterIRKNS_6APSIntEEE, i64 16), ptr %208, align 8, !alias.scope !19 %209 = getelementptr inbounds i8, ptr %20, i64 72 - store ptr %.sroa.042.0.i.i.i, ptr %209, align 8, !alias.scope !19 + store ptr %.fca.0.extract3.i.i, ptr %209, align 8, !alias.scope !19 %210 = getelementptr inbounds i8, ptr %20, i64 80 store ptr getelementptr inbounds inrange(-16, 32) (i8, ptr @_ZTVN4llvm7support6detail30stream_operator_format_adapterIRKNS_6APSIntEEE, i64 16), ptr %210, align 8, !alias.scope !19 %211 = getelementptr inbounds i8, ptr %20, i64 88 @@ -1273,12 +1274,12 @@ _ZNK4llvm19formatv_object_basecvNSt7__cxx1112basic_stringIcSt11char_traitsIcESaI 233: ; preds = %229 %234 = load i64, ptr %.fca.0.extract.i.i, align 8 - %235 = load i64, ptr %.sroa.042.0.i.i.i, align 8 + %235 = load i64, ptr %.fca.0.extract3.i.i, align 8 %236 = icmp eq i64 %234, %235 br i1 %236, label %238, label %245 _ZNK4llvm6APSInteqERKS0_.exit.i.i: ; preds = %229 - %237 = call noundef zeroext i1 @_ZNK4llvm5APInt13equalSlowCaseERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.sroa.042.0.i.i.i) #20 + %237 = call noundef zeroext i1 @_ZNK4llvm5APInt13equalSlowCaseERKS0_(ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract.i.i, ptr noundef nonnull align 8 dereferenceable(12) %.fca.0.extract3.i.i) #20 br i1 %237, label %238, label %245 238: ; preds = %_ZNK4llvm6APSInteqERKS0_.exit.i.i, %233 @@ -1316,7 +1317,7 @@ _ZNK4llvm6APSInteqERKS0_.exit.i.i: ; preds = %229 %249 = getelementptr inbounds nuw i8, ptr %24, i64 40 store ptr getelementptr inbounds inrange(-16, 32) (i8, ptr @_ZTVN4llvm7support6detail30stream_operator_format_adapterIRKNS_6APSIntEEE, i64 16), ptr %249, align 8, !alias.scope !35 %250 = getelementptr inbounds i8, ptr %24, i64 48 - store ptr %.sroa.042.0.i.i.i, ptr %250, align 8, !alias.scope !35 + store ptr %.fca.0.extract3.i.i, ptr %250, align 8, !alias.scope !35 %251 = getelementptr inbounds i8, ptr %24, i64 56 store ptr getelementptr inbounds inrange(-16, 32) (i8, ptr @_ZTVN4llvm7support6detail30stream_operator_format_adapterIRKNS_6APSIntEEE, i64 16), ptr %251, align 8, !alias.scope !35 %252 = getelementptr inbounds i8, ptr %24, i64 64 diff --git a/bench/llvm/optimized/CodeGenTarget.cpp.ll b/bench/llvm/optimized/CodeGenTarget.cpp.ll index a1cd7b01cda..60a971d87e8 100644 --- a/bench/llvm/optimized/CodeGenTarget.cpp.ll +++ b/bench/llvm/optimized/CodeGenTarget.cpp.ll @@ -909,29 +909,24 @@ declare noundef i64 @_ZNK4llvm6Record13getValueAsIntENS_9StringRefE(ptr noundef ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable define dso_local { ptr, i64 } @_ZN4llvm7getNameENS_3MVT15SimpleValueTypeE(i16 noundef zeroext %0) local_unnamed_addr #3 { switch i16 %0, label %4 [ - i16 1, label %8 + i16 1, label %6 i16 510, label %2 i16 506, label %3 ] 2: ; preds = %1 - br label %8 + br label %6 3: ; preds = %1 - br label %8 + br label %6 4: ; preds = %1 %5 = tail call { ptr, i64 } @_ZN4llvm11getEnumNameENS_3MVT15SimpleValueTypeE(i16 noundef zeroext %0) - %6 = extractvalue { ptr, i64 } %5, 0 - %7 = extractvalue { ptr, i64 } %5, 1 - br label %8 + br label %6 -8: ; preds = %1, %4, %3, %2 - %.sroa.5.0 = phi i64 [ %7, %4 ], [ 18, %3 ], [ 18, %2 ], [ 7, %1 ] - %.sroa.0.0 = phi ptr [ %6, %4 ], [ @.str.12, %3 ], [ @.str.12, %2 ], [ @.str.11, %1 ] - %.fca.0.insert = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %.fca.1.insert = insertvalue { ptr, i64 } %.fca.0.insert, i64 %.sroa.5.0, 1 - ret { ptr, i64 } %.fca.1.insert +6: ; preds = %1, %4, %3, %2 + %.fca.1.insert.merged = phi { ptr, i64 } [ %5, %4 ], [ { ptr @.str.12, i64 18 }, %3 ], [ { ptr @.str.12, i64 18 }, %2 ], [ { ptr @.str.11, i64 7 }, %1 ] + ret { ptr, i64 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable diff --git a/bench/llvm/optimized/DeclarationFragments.cpp.ll b/bench/llvm/optimized/DeclarationFragments.cpp.ll index f5dd0085e8f..bdc559c8338 100644 --- a/bench/llvm/optimized/DeclarationFragments.cpp.ll +++ b/bench/llvm/optimized/DeclarationFragments.cpp.ll @@ -6802,14 +6802,14 @@ define internal fastcc void @_ZN12_GLOBAL__N_123findTypeLocForBlockDeclEPKN5clan br label %_ZNK5clang7TypeLoc17getUnqualifiedLocEv.exit.preheader _ZNK5clang7TypeLoc17getUnqualifiedLocEv.exit.preheader: ; preds = %4, %8 - %.sroa.062.0.ph = phi ptr [ %6, %4 ], [ %21, %8 ] + %.sroa.060.0.ph = phi ptr [ %6, %4 ], [ %21, %8 ] %.sroa.9.0.ph = phi ptr [ %5, %4 ], [ %22, %8 ] br label %_ZNK5clang7TypeLoc17getUnqualifiedLocEv.exit _ZNK5clang7TypeLoc17getUnqualifiedLocEv.exit: ; preds = %_ZNK5clang7TypeLoc17getUnqualifiedLocEv.exit.preheader, %.backedge - %.sroa.062.0 = phi ptr [ %.sroa.062.0.be, %.backedge ], [ %.sroa.062.0.ph, %_ZNK5clang7TypeLoc17getUnqualifiedLocEv.exit.preheader ] + %.sroa.060.0 = phi ptr [ %.sroa.060.0.be, %.backedge ], [ %.sroa.060.0.ph, %_ZNK5clang7TypeLoc17getUnqualifiedLocEv.exit.preheader ] %.sroa.9.0 = phi ptr [ %.sroa.9.0.be, %.backedge ], [ %.sroa.9.0.ph, %_ZNK5clang7TypeLoc17getUnqualifiedLocEv.exit.preheader ] - %23 = ptrtoint ptr %.sroa.062.0 to i64 + %23 = ptrtoint ptr %.sroa.060.0 to i64 %24 = and i64 %23, 15 %.not.i = icmp eq i64 %24, 0 br i1 %.not.i, label %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_17AttributedTypeLocENS_14AttributedTypeENS_17AttributedLocInfoEE6isKindERKNS_7TypeLocE.exit.i, label %25 @@ -6833,13 +6833,13 @@ _ZNK5clang7TypeLoc17getUnqualifiedLocEv.exit: ; preds = %_ZNK5clang7TypeLoc1 br label %.backedge .backedge: ; preds = %25, %44 - %.sroa.062.0.be = phi ptr [ %40, %25 ], [ %56, %44 ] + %.sroa.060.0.be = phi ptr [ %40, %25 ], [ %56, %44 ] %.sroa.9.0.be.in = phi i64 [ %39, %25 ], [ %55, %44 ] %.sroa.9.0.be = inttoptr i64 %.sroa.9.0.be.in to ptr br label %_ZNK5clang7TypeLoc17getUnqualifiedLocEv.exit, !llvm.loop !11 _ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_17AttributedTypeLocENS_14AttributedTypeENS_17AttributedLocInfoEE6isKindERKNS_7TypeLocE.exit.i: ; preds = %_ZNK5clang7TypeLoc17getUnqualifiedLocEv.exit - %41 = load ptr, ptr %.sroa.062.0, align 8 + %41 = load ptr, ptr %.sroa.060.0, align 8 %42 = getelementptr inbounds nuw i8, ptr %41, i64 16 %43 = load i8, ptr %42, align 16 switch i8 %43, label %_ZNK5clang7TypeLoc5getAsINS_19BlockPointerTypeLocEEET_v.exit.thread [ @@ -6848,7 +6848,7 @@ _ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_17AttributedTypeLocENS_14Attrib ] 44: ; preds = %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_17AttributedTypeLocENS_14AttributedTypeENS_17AttributedLocInfoEE6isKindERKNS_7TypeLocE.exit.i - %45 = getelementptr inbounds nuw i8, ptr %.sroa.062.0, i64 32 + %45 = getelementptr inbounds nuw i8, ptr %.sroa.060.0, i64 32 %.sroa.0.0.copyload.i.i.i.i = load i64, ptr %45, align 16 %46 = ptrtoint ptr %.sroa.9.0 to i64 %47 = add i64 %46, 8 @@ -6864,7 +6864,7 @@ _ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_17AttributedTypeLocENS_14Attrib br label %.backedge 57: ; preds = %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_17AttributedTypeLocENS_14AttributedTypeENS_17AttributedLocInfoEE6isKindERKNS_7TypeLocE.exit.i - %58 = getelementptr inbounds nuw i8, ptr %.sroa.062.0, i64 32 + %58 = getelementptr inbounds nuw i8, ptr %.sroa.060.0, i64 32 %.sroa.0.0.copyload.i.i.i.i32 = load i64, ptr %58, align 16 %59 = ptrtoint ptr %.sroa.9.0 to i64 %60 = add i64 %59, 4 @@ -6878,6 +6878,8 @@ _ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_17AttributedTypeLocENS_14Attrib %68 = mul i64 %67, %65 %69 = inttoptr i64 %68 to ptr %70 = inttoptr i64 %.sroa.0.0.copyload.i.i.i.i32 to ptr + %.fca.0.insert.i.i33 = insertvalue { ptr, ptr } poison, ptr %70, 0 + %.fca.1.insert.i.i34 = insertvalue { ptr, ptr } %.fca.0.insert.i.i33, ptr %69, 1 %71 = and i64 %.sroa.0.0.copyload.i.i.i.i32, 15 %.not.i.i35 = icmp eq i64 %71, 0 br i1 %.not.i.i35, label %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_12ParenTypeLocENS_9ParenTypeENS_12ParenLocInfoEE6isKindERKNS_7TypeLocE.exit.i, label %_ZNK5clang7TypeLoc12IgnoreParensEv.exit @@ -6891,35 +6893,34 @@ _ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_12ParenTypeLocENS_9ParenTypeENS 76: ; preds = %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_12ParenTypeLocENS_9ParenTypeENS_12ParenLocInfoEE6isKindERKNS_7TypeLocE.exit.i %77 = tail call { ptr, ptr } @_ZN5clang7TypeLoc16IgnoreParensImplES0_(ptr nonnull %70, ptr %69) #19 - %78 = extractvalue { ptr, ptr } %77, 0 - %79 = extractvalue { ptr, ptr } %77, 1 br label %_ZNK5clang7TypeLoc12IgnoreParensEv.exit _ZNK5clang7TypeLoc12IgnoreParensEv.exit: ; preds = %57, %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_12ParenTypeLocENS_9ParenTypeENS_12ParenLocInfoEE6isKindERKNS_7TypeLocE.exit.i, %76 - %.sroa.01.0.i = phi ptr [ %78, %76 ], [ %70, %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_12ParenTypeLocENS_9ParenTypeENS_12ParenLocInfoEE6isKindERKNS_7TypeLocE.exit.i ], [ %70, %57 ] - %.sroa.3.0.i = phi ptr [ %79, %76 ], [ %69, %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_12ParenTypeLocENS_9ParenTypeENS_12ParenLocInfoEE6isKindERKNS_7TypeLocE.exit.i ], [ %69, %57 ] - %80 = ptrtoint ptr %.sroa.01.0.i to i64 - %81 = and i64 %80, 15 - %.not.i.i38 = icmp eq i64 %81, 0 - br i1 %.not.i.i38, label %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_15FunctionTypeLocENS_12FunctionTypeENS_15FunctionLocInfoEE6isKindERKNS_7TypeLocE.exit.i, label %_ZNK5clang7TypeLoc5getAsINS_15FunctionTypeLocEEET_v.exit + %.fca.1.insert.merged.i = phi { ptr, ptr } [ %77, %76 ], [ %.fca.1.insert.i.i34, %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_12ParenTypeLocENS_9ParenTypeENS_12ParenLocInfoEE6isKindERKNS_7TypeLocE.exit.i ], [ %.fca.1.insert.i.i34, %57 ] + %78 = extractvalue { ptr, ptr } %.fca.1.insert.merged.i, 0 + %79 = ptrtoint ptr %78 to i64 + %80 = and i64 %79, 15 + %.not.i.i36 = icmp eq i64 %80, 0 + br i1 %.not.i.i36, label %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_15FunctionTypeLocENS_12FunctionTypeENS_15FunctionLocInfoEE6isKindERKNS_7TypeLocE.exit.i, label %_ZNK5clang7TypeLoc5getAsINS_15FunctionTypeLocEEET_v.exit _ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_15FunctionTypeLocENS_12FunctionTypeENS_15FunctionLocInfoEE6isKindERKNS_7TypeLocE.exit.i: ; preds = %_ZNK5clang7TypeLoc12IgnoreParensEv.exit - %82 = load ptr, ptr %.sroa.01.0.i, align 8 + %81 = extractvalue { ptr, ptr } %.fca.1.insert.merged.i, 1 + %82 = load ptr, ptr %78, align 8 %83 = getelementptr inbounds nuw i8, ptr %82, i64 16 %84 = load i8, ptr %83, align 16 %85 = add i8 %84, -25 %spec.select.i.i.i.i = icmp ult i8 %85, 2 - %spec.select = select i1 %spec.select.i.i.i.i, ptr %.sroa.01.0.i, ptr null - %spec.select80 = select i1 %spec.select.i.i.i.i, ptr %.sroa.3.0.i, ptr null + %spec.select = select i1 %spec.select.i.i.i.i, ptr %78, ptr null + %spec.select78 = select i1 %spec.select.i.i.i.i, ptr %81, ptr null store ptr %spec.select, ptr %1, align 8 - %.sroa.22.0..sroa_idx79 = getelementptr inbounds i8, ptr %1, i64 8 - store ptr %spec.select80, ptr %.sroa.22.0..sroa_idx79, align 8 - %86 = load ptr, ptr %.sroa.01.0.i, align 8 + %.sroa.22.0..sroa_idx77 = getelementptr inbounds i8, ptr %1, i64 8 + store ptr %spec.select78, ptr %.sroa.22.0..sroa_idx77, align 8 + %86 = load ptr, ptr %78, align 8 %87 = getelementptr inbounds nuw i8, ptr %86, i64 16 %88 = load i8, ptr %87, align 16 %89 = icmp eq i8 %88, 26 - %spec.select81 = select i1 %89, ptr %.sroa.01.0.i, ptr null - %spec.select82 = select i1 %89, ptr %.sroa.3.0.i, ptr null + %spec.select79 = select i1 %89, ptr %78, ptr null + %spec.select80 = select i1 %89, ptr %81, ptr null br label %_ZNK5clang7TypeLoc5getAsINS_20FunctionProtoTypeLocEEET_v.exit _ZNK5clang7TypeLoc5getAsINS_15FunctionTypeLocEEET_v.exit: ; preds = %_ZNK5clang7TypeLoc12IgnoreParensEv.exit @@ -6927,11 +6928,11 @@ _ZNK5clang7TypeLoc5getAsINS_15FunctionTypeLocEEET_v.exit: ; preds = %_ZNK5clang7 br label %_ZNK5clang7TypeLoc5getAsINS_20FunctionProtoTypeLocEEET_v.exit _ZNK5clang7TypeLoc5getAsINS_20FunctionProtoTypeLocEEET_v.exit: ; preds = %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_15FunctionTypeLocENS_12FunctionTypeENS_15FunctionLocInfoEE6isKindERKNS_7TypeLocE.exit.i, %_ZNK5clang7TypeLoc5getAsINS_15FunctionTypeLocEEET_v.exit - %.sroa.0.0.i46 = phi ptr [ null, %_ZNK5clang7TypeLoc5getAsINS_15FunctionTypeLocEEET_v.exit ], [ %spec.select81, %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_15FunctionTypeLocENS_12FunctionTypeENS_15FunctionLocInfoEE6isKindERKNS_7TypeLocE.exit.i ] - %.sroa.5.0.i47 = phi ptr [ null, %_ZNK5clang7TypeLoc5getAsINS_15FunctionTypeLocEEET_v.exit ], [ %spec.select82, %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_15FunctionTypeLocENS_12FunctionTypeENS_15FunctionLocInfoEE6isKindERKNS_7TypeLocE.exit.i ] - store ptr %.sroa.0.0.i46, ptr %2, align 8 + %.sroa.0.0.i44 = phi ptr [ null, %_ZNK5clang7TypeLoc5getAsINS_15FunctionTypeLocEEET_v.exit ], [ %spec.select79, %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_15FunctionTypeLocENS_12FunctionTypeENS_15FunctionLocInfoEE6isKindERKNS_7TypeLocE.exit.i ] + %.sroa.5.0.i45 = phi ptr [ null, %_ZNK5clang7TypeLoc5getAsINS_15FunctionTypeLocEEET_v.exit ], [ %spec.select80, %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_15FunctionTypeLocENS_12FunctionTypeENS_15FunctionLocInfoEE6isKindERKNS_7TypeLocE.exit.i ] + store ptr %.sroa.0.0.i44, ptr %2, align 8 %.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %2, i64 8 - store ptr %.sroa.5.0.i47, ptr %.sroa.2.0..sroa_idx, align 8 + store ptr %.sroa.5.0.i45, ptr %.sroa.2.0..sroa_idx, align 8 br label %_ZNK5clang7TypeLoc5getAsINS_19BlockPointerTypeLocEEET_v.exit.thread _ZNK5clang7TypeLoc5getAsINS_19BlockPointerTypeLocEEET_v.exit.thread: ; preds = %_ZN5clang15ConcreteTypeLocINS_13UnqualTypeLocENS_17AttributedTypeLocENS_14AttributedTypeENS_17AttributedLocInfoEE6isKindERKNS_7TypeLocE.exit.i, %_ZNK5clang7TypeLoc5getAsINS_20FunctionProtoTypeLocEEET_v.exit, %3 diff --git a/bench/llvm/optimized/DwarfCompileUnit.cpp.ll b/bench/llvm/optimized/DwarfCompileUnit.cpp.ll index aa8dc518f44..5db50368ec6 100644 --- a/bench/llvm/optimized/DwarfCompileUnit.cpp.ll +++ b/bench/llvm/optimized/DwarfCompileUnit.cpp.ll @@ -15303,41 +15303,41 @@ define linkonce_odr hidden noundef zeroext i1 @_ZN4llvm9SetVectorIPKNS_6MDNodeEN 22: ; preds = %._crit_edge.i.i, %2 %23 = tail call { ptr, i8 } @_ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv(ptr noundef nonnull align 8 dereferenceable(28) %0, ptr noundef %3) #23, !noalias !178 - %.fca.1.extract.i.i = extractvalue { ptr, i8 } %23, 1 - %24 = trunc i8 %.fca.1.extract.i.i to i1 + %24 = extractvalue { ptr, i8 } %23, 1 + %25 = trunc i8 %24 to i1 br label %_ZN4llvm15SmallPtrSetImplIPKNS_6MDNodeEE6insertES3_.exit _ZN4llvm15SmallPtrSetImplIPKNS_6MDNodeEE6insertES3_.exit: ; preds = %.lr.ph.i.i, %20, %22 - %.sroa.4.0.i.i = phi i1 [ true, %20 ], [ %24, %22 ], [ false, %.lr.ph.i.i ] - br i1 %.sroa.4.0.i.i, label %25, label %39 + %.fca.1.insert.merged.i.i = phi i1 [ true, %20 ], [ %25, %22 ], [ false, %.lr.ph.i.i ] + br i1 %.fca.1.insert.merged.i.i, label %26, label %40 -25: ; preds = %_ZN4llvm15SmallPtrSetImplIPKNS_6MDNodeEE6insertES3_.exit - %26 = getelementptr inbounds nuw i8, ptr %0, i64 64 - %27 = load ptr, ptr %1, align 8 - %28 = tail call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %26) #23 - %29 = add i64 %28, 1 - %30 = tail call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %26) #23 - %.not.i.i.i = icmp ugt i64 %29, %30 - br i1 %.not.i.i.i, label %31, label %_ZN4llvm23SmallVectorTemplateBaseIPKNS_6MDNodeELb1EE9push_backES3_.exit - -31: ; preds = %25 - %32 = getelementptr inbounds i8, ptr %0, i64 80 - tail call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %26, ptr noundef nonnull %32, i64 noundef %29, i64 noundef 8) #23 +26: ; preds = %_ZN4llvm15SmallPtrSetImplIPKNS_6MDNodeEE6insertES3_.exit + %27 = getelementptr inbounds nuw i8, ptr %0, i64 64 + %28 = load ptr, ptr %1, align 8 + %29 = tail call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %27) #23 + %30 = add i64 %29, 1 + %31 = tail call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE8capacityEv(ptr noundef nonnull align 8 dereferenceable(16) %27) #23 + %.not.i.i.i = icmp ugt i64 %30, %31 + br i1 %.not.i.i.i, label %32, label %_ZN4llvm23SmallVectorTemplateBaseIPKNS_6MDNodeELb1EE9push_backES3_.exit + +32: ; preds = %26 + %33 = getelementptr inbounds i8, ptr %0, i64 80 + tail call void @_ZN4llvm15SmallVectorBaseIjE8grow_podEPvmm(ptr noundef nonnull align 8 dereferenceable(16) %27, ptr noundef nonnull %33, i64 noundef %30, i64 noundef 8) #23 br label %_ZN4llvm23SmallVectorTemplateBaseIPKNS_6MDNodeELb1EE9push_backES3_.exit -_ZN4llvm23SmallVectorTemplateBaseIPKNS_6MDNodeELb1EE9push_backES3_.exit: ; preds = %25, %31 - %33 = load ptr, ptr %26, align 8 - %34 = tail call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %26) #23 - %35 = getelementptr inbounds ptr, ptr %33, i64 %34 - %36 = ptrtoint ptr %27 to i64 - store i64 %36, ptr %35, align 1 - %37 = tail call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %26) #23 - %38 = add i64 %37, 1 - tail call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %26, i64 noundef %38) #23 - br label %39 - -39: ; preds = %_ZN4llvm23SmallVectorTemplateBaseIPKNS_6MDNodeELb1EE9push_backES3_.exit, %_ZN4llvm15SmallPtrSetImplIPKNS_6MDNodeEE6insertES3_.exit - ret i1 %.sroa.4.0.i.i +_ZN4llvm23SmallVectorTemplateBaseIPKNS_6MDNodeELb1EE9push_backES3_.exit: ; preds = %26, %32 + %34 = load ptr, ptr %27, align 8 + %35 = tail call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %27) #23 + %36 = getelementptr inbounds ptr, ptr %34, i64 %35 + %37 = ptrtoint ptr %28 to i64 + store i64 %37, ptr %36, align 1 + %38 = tail call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %27) #23 + %39 = add i64 %38, 1 + tail call void @_ZN4llvm15SmallVectorBaseIjE8set_sizeEm(ptr noundef nonnull align 8 dereferenceable(16) %27, i64 noundef %39) #23 + br label %40 + +40: ; preds = %_ZN4llvm23SmallVectorTemplateBaseIPKNS_6MDNodeELb1EE9push_backES3_.exit, %_ZN4llvm15SmallPtrSetImplIPKNS_6MDNodeEE6insertES3_.exit + ret i1 %.fca.1.insert.merged.i.i } declare { ptr, i8 } @_ZN4llvm19SmallPtrSetImplBase14insert_imp_bigEPKv(ptr noundef nonnull align 8 dereferenceable(28), ptr noundef) local_unnamed_addr #2 diff --git a/bench/llvm/optimized/DynamicExtent.cpp.ll b/bench/llvm/optimized/DynamicExtent.cpp.ll index 7d40badfeb5..52c07d5d927 100644 --- a/bench/llvm/optimized/DynamicExtent.cpp.ll +++ b/bench/llvm/optimized/DynamicExtent.cpp.ll @@ -147,14 +147,11 @@ _ZNK5clang4ento4SVal5getAsINS0_20DefinedOrUnknownSValEEESt8optionalIT_Ev.exit: ; %24 = load ptr, ptr %23, align 8 %25 = tail call noundef nonnull align 8 dereferenceable(152) ptr %24(ptr noundef nonnull align 8 dereferenceable(48) %4) #13 %26 = tail call { ptr, i8 } @_ZNK5clang4ento16MemRegionManager13getStaticSizeEPKNS0_9MemRegionERNS0_11SValBuilderE(ptr noundef nonnull align 8 dereferenceable(152) %25, ptr noundef nonnull %4, ptr noundef nonnull align 8 dereferenceable(412) %2) #13 - %.fca.1.extract = extractvalue { ptr, i8 } %26, 1 br label %27 27: ; preds = %20, %_ZNK5clang4ento4SVal5getAsINS0_20DefinedOrUnknownSValEEESt8optionalIT_Ev.exit - %.pn = phi { ptr, i8 } [ %26, %_ZNK5clang4ento4SVal5getAsINS0_20DefinedOrUnknownSValEEESt8optionalIT_Ev.exit ], [ %21, %20 ] - %.sroa.315.0 = phi i8 [ %.fca.1.extract, %_ZNK5clang4ento4SVal5getAsINS0_20DefinedOrUnknownSValEEESt8optionalIT_Ev.exit ], [ %.fca.1.extract2, %20 ] - %.fca.1.insert = insertvalue { ptr, i8 } %.pn, i8 %.sroa.315.0, 1 - ret { ptr, i8 } %.fca.1.insert + %.fca.1.insert.merged = phi { ptr, i8 } [ %26, %_ZNK5clang4ento4SVal5getAsINS0_20DefinedOrUnknownSValEEESt8optionalIT_Ev.exit ], [ %21, %20 ] + ret { ptr, i8 } %.fca.1.insert.merged } declare noundef nonnull ptr @_ZNK5clang4ento9MemRegion10StripCastsEb(ptr noundef nonnull align 8 dereferenceable(48), i1 noundef zeroext) local_unnamed_addr #1 @@ -426,6 +423,8 @@ _ZNK5clang10ASTContext22getAsConstantArrayTypeENS_8QualTypeE.exit: ; preds = %17 _ZNK5clang17ConstantArrayType7getSizeEv.exit: ; preds = %30, %32, %40, %48 %49 = getelementptr inbounds nuw i8, ptr %0, i64 16 %50 = call noundef nonnull align 8 dereferenceable(13) ptr @_ZN5clang4ento17BasicValueFactory8getValueERKN4llvm5APIntEb(ptr noundef nonnull align 8 dereferenceable(144) %49, ptr noundef nonnull align 8 dereferenceable(12) %3, i1 noundef zeroext false) #13 + %.fca.0.insert.i = insertvalue { ptr, i8 } poison, ptr %50, 0 + %.fca.1.insert.i = insertvalue { ptr, i8 } %.fca.0.insert.i, i8 6, 1 %51 = getelementptr inbounds nuw i8, ptr %3, i64 8 %52 = load i32, ptr %51, align 8 %53 = icmp ugt i32 %52, 64 @@ -441,11 +440,8 @@ _ZNK5clang17ConstantArrayType7getSizeEv.exit: ; preds = %30, %32, %40, %48 br label %_ZN4llvm5APIntD2Ev.exit _ZN4llvm5APIntD2Ev.exit: ; preds = %9, %17, %57, %54, %_ZNK5clang17ConstantArrayType7getSizeEv.exit, %2 - %.sroa.011.0 = phi ptr [ null, %2 ], [ %50, %_ZNK5clang17ConstantArrayType7getSizeEv.exit ], [ %50, %54 ], [ %50, %57 ], [ null, %17 ], [ null, %9 ] - %.sroa.4.0 = phi i8 [ 1, %2 ], [ 6, %_ZNK5clang17ConstantArrayType7getSizeEv.exit ], [ 6, %54 ], [ 6, %57 ], [ 1, %17 ], [ 1, %9 ] - %.fca.0.insert = insertvalue { ptr, i8 } poison, ptr %.sroa.011.0, 0 - %.fca.1.insert = insertvalue { ptr, i8 } %.fca.0.insert, i8 %.sroa.4.0, 1 - ret { ptr, i8 } %.fca.1.insert + %.fca.1.insert.merged = phi { ptr, i8 } [ { ptr null, i8 1 }, %2 ], [ %.fca.1.insert.i, %_ZNK5clang17ConstantArrayType7getSizeEv.exit ], [ %.fca.1.insert.i, %54 ], [ %.fca.1.insert.i, %57 ], [ { ptr null, i8 1 }, %17 ], [ { ptr null, i8 1 }, %9 ] + ret { ptr, i8 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nounwind uwtable @@ -522,8 +518,6 @@ _ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit37: ; pre store i8 6, ptr %.sroa.215.0..sroa_idx, align 8 %.sroa.0.0.copyload.i38 = load i64, ptr %31, align 8 %39 = call { ptr, i8 } @_ZN5clang4ento11SValBuilder9evalBinOpEN4llvm18IntrusiveRefCntPtrIKNS0_12ProgramStateEEENS_18BinaryOperatorKindENS0_4SValES8_NS_8QualTypeE(ptr noundef nonnull align 8 dereferenceable(412) %13, ptr noundef nonnull %6, i32 noundef 6, ptr %.fca.0.extract447, i8 %.fca.1.extract548, ptr noundef nonnull byval(%"class.clang::ento::SVal") align 8 %7, i64 %.sroa.0.0.copyload.i38) #13 - %.fca.0.extract = extractvalue { ptr, i8 } %39, 0 - %.fca.1.extract = extractvalue { ptr, i8 } %39, 1 %40 = load ptr, ptr %6, align 8 %.not.i.i39 = icmp eq ptr %40, null br i1 %.not.i.i39, label %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit40, label %41 @@ -533,11 +527,8 @@ _ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit37: ; pre br label %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit40 _ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit40: ; preds = %41, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit37, %15, %3 - %.sroa.026.0 = phi ptr [ null, %3 ], [ null, %15 ], [ %.fca.0.extract, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit37 ], [ %.fca.0.extract, %41 ] - %.sroa.5.0 = phi i8 [ 1, %3 ], [ 1, %15 ], [ %.fca.1.extract, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit37 ], [ %.fca.1.extract, %41 ] - %.fca.0.insert = insertvalue { ptr, i8 } poison, ptr %.sroa.026.0, 0 - %.fca.1.insert = insertvalue { ptr, i8 } %.fca.0.insert, i8 %.sroa.5.0, 1 - ret { ptr, i8 } %.fca.1.insert + %.fca.1.insert.merged = phi { ptr, i8 } [ { ptr null, i8 1 }, %3 ], [ { ptr null, i8 1 }, %15 ], [ %39, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEEC2ERKS5_.exit37 ], [ %39, %41 ] + ret { ptr, i8 } %.fca.1.insert.merged } declare noundef ptr @_ZNK5clang4ento4SVal11getAsRegionEv(ptr noundef nonnull align 8 dereferenceable(9)) local_unnamed_addr #1 @@ -613,8 +604,6 @@ _ZN5clang4ento16getElementExtentENS_8QualTypeERNS0_11SValBuilderE.exit: ; preds 37: ; preds = %_ZN5clang4ento16getElementExtentENS_8QualTypeERNS0_11SValBuilderE.exit %38 = call fastcc { ptr, i8 } @_ZN5clang4entoL28getConstantArrayElementCountERNS0_11SValBuilderEPKNS0_9MemRegionE(ptr noundef nonnull align 8 dereferenceable(412) %17, ptr noundef nonnull %11) - %.fca.0.extract12 = extractvalue { ptr, i8 } %38, 0 - %.fca.1.extract13 = extractvalue { ptr, i8 } %38, 1 br label %53 39: ; preds = %_ZN5clang4ento16getElementExtentENS_8QualTypeERNS0_11SValBuilderE.exit @@ -673,6 +662,8 @@ _ZN5clang4entoL22getDynamicElementCountEN4llvm18IntrusiveRefCntPtrIKNS0_12Progra %.fca.0.extract1.i = extractvalue { ptr, i8 } %48, 0 %.sroa.3.0.i.sroa.speculated.i = call i8 @llvm.umax.i8(i8 %.fca.1.extract2.i, i8 1) %.sroa.0.0.i.sroa.speculated.i = select i1 %.not.i.i.i.not.i, ptr null, ptr %.fca.0.extract1.i + %.fca.0.insert.i.i29 = insertvalue { ptr, i8 } poison, ptr %.sroa.0.0.i.sroa.speculated.i, 0 + %.fca.1.insert.i.i30 = insertvalue { ptr, i8 } %.fca.0.insert.i.i29, i8 %.sroa.3.0.i.sroa.speculated.i, 1 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %6) %51 = load ptr, ptr %9, align 8 @@ -688,11 +679,8 @@ _ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit33: ; preds = br label %53 53: ; preds = %4, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit33, %37 - %.sroa.025.0 = phi ptr [ %.fca.0.extract12, %37 ], [ %.sroa.0.0.i.sroa.speculated.i, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit33 ], [ null, %4 ] - %.sroa.4.0 = phi i8 [ %.fca.1.extract13, %37 ], [ %.sroa.3.0.i.sroa.speculated.i, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit33 ], [ 1, %4 ] - %.fca.0.insert = insertvalue { ptr, i8 } poison, ptr %.sroa.025.0, 0 - %.fca.1.insert = insertvalue { ptr, i8 } %.fca.0.insert, i8 %.sroa.4.0, 1 - ret { ptr, i8 } %.fca.1.insert + %.fca.1.insert.merged = phi { ptr, i8 } [ %38, %37 ], [ %.fca.1.insert.i.i30, %_ZN4llvm18IntrusiveRefCntPtrIKN5clang4ento12ProgramStateEED2Ev.exit33 ], [ { ptr null, i8 1 }, %4 ] + ret { ptr, i8 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nounwind uwtable diff --git a/bench/llvm/optimized/FunctionSpecialization.cpp.ll b/bench/llvm/optimized/FunctionSpecialization.cpp.ll index ce2a2dc3e8c..e96d3771007 100644 --- a/bench/llvm/optimized/FunctionSpecialization.cpp.ll +++ b/bench/llvm/optimized/FunctionSpecialization.cpp.ll @@ -1818,15 +1818,18 @@ define dso_local { i64, i32 } @_ZN4llvm15InstCostVisitor18estimateSwitchInstERNS %25 = and i32 %24, 67108863 %26 = add nsw i32 %25, -1 %27 = zext i32 %26 to i64 + %.fca.0.insert.i.i.i = insertvalue { ptr, i64 } poison, ptr %1, 0 %.not.i.i = icmp eq i64 %22, %27 - %28 = and i64 %22, 4294967295 - %29 = select i1 %.not.i.i, i64 4294967294, i64 %28 - %.not.i.i18 = icmp eq i64 %29, 4294967294 + %.fca.1.insert.i4.i.i = insertvalue { ptr, i64 } %.fca.0.insert.i.i.i, i64 4294967294, 1 + %spec.select.i.i18 = select i1 %.not.i.i, { ptr, i64 } %.fca.1.insert.i4.i.i, { ptr, i64 } %21 + %28 = extractvalue { ptr, i64 } %spec.select.i.i18, 1 + %29 = and i64 %28, 4294967295 + %.not.i.i19 = icmp eq i64 %29, 4294967294 %30 = shl nuw nsw i64 %29, 1 %31 = add nuw nsw i64 %30, 3 %32 = and i64 %31, 4294967295 %33 = load ptr, ptr %4, align 8 - %34 = select i1 %.not.i.i18, i64 1, i64 %32 + %34 = select i1 %.not.i.i19, i64 1, i64 %32 %35 = getelementptr inbounds %"class.llvm::Use", ptr %33, i64 %34 %36 = load ptr, ptr %35, align 8 %37 = getelementptr inbounds i8, ptr %3, i64 16 diff --git a/bench/llvm/optimized/Globals.cpp.ll b/bench/llvm/optimized/Globals.cpp.ll index 6866c8fc70a..d138bd9c9c0 100644 --- a/bench/llvm/optimized/Globals.cpp.ll +++ b/bench/llvm/optimized/Globals.cpp.ll @@ -1682,7 +1682,7 @@ define dso_local { ptr, i64 } @_ZNK4llvm11GlobalValue10getSectionEv(ptr noundef %2 = alloca %"class.llvm::DenseSet.470", align 8 %3 = load i8, ptr %0, align 8 %.not = icmp eq i8 %3, 1 - br i1 %.not, label %4, label %17 + br i1 %.not, label %4, label %15 4: ; preds = %1 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %2) @@ -1698,26 +1698,19 @@ define dso_local { ptr, i64 } @_ZNK4llvm11GlobalValue10getSectionEv(ptr noundef call void @_ZN4llvm17deallocate_bufferEPvmm(ptr noundef %8, i64 noundef %12, i64 noundef 8) #12 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2) %.not6 = icmp eq ptr %7, null - br i1 %.not6, label %21, label %13 + br i1 %.not6, label %17, label %13 13: ; preds = %4 %14 = call { ptr, i64 } @_ZNK4llvm12GlobalObject10getSectionEv(ptr noundef nonnull align 8 dereferenceable(56) %7) - %15 = extractvalue { ptr, i64 } %14, 0 - %16 = extractvalue { ptr, i64 } %14, 1 - br label %21 + br label %17 -17: ; preds = %1 - %18 = tail call { ptr, i64 } @_ZNK4llvm12GlobalObject10getSectionEv(ptr noundef nonnull align 8 dereferenceable(56) %0) - %19 = extractvalue { ptr, i64 } %18, 0 - %20 = extractvalue { ptr, i64 } %18, 1 - br label %21 +15: ; preds = %1 + %16 = tail call { ptr, i64 } @_ZNK4llvm12GlobalObject10getSectionEv(ptr noundef nonnull align 8 dereferenceable(56) %0) + br label %17 -21: ; preds = %4, %17, %13 - %.sroa.4.0 = phi i64 [ %20, %17 ], [ %16, %13 ], [ 0, %4 ] - %.sroa.0.0 = phi ptr [ %19, %17 ], [ %15, %13 ], [ @.str.2, %4 ] - %.fca.0.insert = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %.fca.1.insert = insertvalue { ptr, i64 } %.fca.0.insert, i64 %.sroa.4.0, 1 - ret { ptr, i64 } %.fca.1.insert +17: ; preds = %4, %15, %13 + %.fca.1.insert.merged = phi { ptr, i64 } [ %16, %15 ], [ %14, %13 ], [ { ptr @.str.2, i64 0 }, %4 ] + ret { ptr, i64 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nounwind uwtable diff --git a/bench/llvm/optimized/Lexer.cpp.ll b/bench/llvm/optimized/Lexer.cpp.ll index 70b6e986caa..0d4f9fdd4d6 100644 --- a/bench/llvm/optimized/Lexer.cpp.ll +++ b/bench/llvm/optimized/Lexer.cpp.ll @@ -3135,8 +3135,6 @@ define dso_local { i64, i8 } @_ZN5clang5Lexer17makeFileCharRangeENS_15CharSource 16: ; preds = %15 %17 = tail call fastcc { i64, i8 } @_ZL21makeRangeFromFileLocsN5clang15CharSourceRangeERKNS_13SourceManagerERKNS_11LangOptionsE(i64 %0, i8 %1, ptr noundef nonnull align 8 dereferenceable(696) %2, ptr noundef nonnull align 8 dereferenceable(841) %3) - %.fca.0.extract62 = extractvalue { i64, i8 } %17, 0 - %.fca.1.extract63 = extractvalue { i64, i8 } %17, 1 br label %.critedge 18: ; preds = %12 @@ -3152,8 +3150,6 @@ define dso_local { i64, i8 } @_ZN5clang5Lexer17makeFileCharRangeENS_15CharSource %.sroa.0125.0.insert.ext132 = zext i32 %.sroa.060.0.copyload to i64 %.sroa.0125.0.insert.insert134 = or disjoint i64 %.sroa.10.0.insert.shift147, %.sroa.0125.0.insert.ext132 %22 = call fastcc { i64, i8 } @_ZL21makeRangeFromFileLocsN5clang15CharSourceRangeERKNS_13SourceManagerERKNS_11LangOptionsE(i64 %.sroa.0125.0.insert.insert134, i8 %1, ptr noundef nonnull align 8 dereferenceable(696) %2, ptr noundef nonnull align 8 dereferenceable(841) %3) - %.fca.0.extract50 = extractvalue { i64, i8 } %22, 0 - %.fca.1.extract51 = extractvalue { i64, i8 } %22, 1 br label %.critedge 23: ; preds = %15 @@ -3181,8 +3177,6 @@ define dso_local { i64, i8 } @_ZN5clang5Lexer17makeFileCharRangeENS_15CharSource %.sroa.0125.0.insert.ext129 = and i64 %0, 2147483647 %.sroa.0125.0.insert.insert131 = or disjoint i64 %.sroa.10.0.insert.shift143, %.sroa.0125.0.insert.ext129 %33 = call fastcc { i64, i8 } @_ZL21makeRangeFromFileLocsN5clang15CharSourceRangeERKNS_13SourceManagerERKNS_11LangOptionsE(i64 %.sroa.0125.0.insert.insert131, i8 %.sroa.15.0, ptr noundef nonnull align 8 dereferenceable(696) %2, ptr noundef nonnull align 8 dereferenceable(841) %3) - %.fca.0.extract36 = extractvalue { i64, i8 } %33, 0 - %.fca.1.extract37 = extractvalue { i64, i8 } %33, 1 br label %.critedge 34: ; preds = %18 @@ -3224,8 +3218,6 @@ define dso_local { i64, i8 } @_ZN5clang5Lexer17makeFileCharRangeENS_15CharSource %.sroa.0125.0.insert.ext126 = zext i32 %.sroa.032.0.copyload194 to i64 %.sroa.0125.0.insert.insert128 = or disjoint i64 %.sroa.10.0.insert.shift139, %.sroa.0125.0.insert.ext126 %47 = call fastcc { i64, i8 } @_ZL21makeRangeFromFileLocsN5clang15CharSourceRangeERKNS_13SourceManagerERKNS_11LangOptionsE(i64 %.sroa.0125.0.insert.insert128, i8 %.sroa.15.1, ptr noundef nonnull align 8 dereferenceable(696) %2, ptr noundef nonnull align 8 dereferenceable(841) %3) - %.fca.0.extract20 = extractvalue { i64, i8 } %47, 0 - %.fca.1.extract21 = extractvalue { i64, i8 } %47, 1 br label %.critedge 48: ; preds = %38, %40, %34 @@ -3395,16 +3387,11 @@ _ZNK5clang13SourceManager12getSLocEntryENS_6FileIDEPb.exit121: ; preds = %_ZNK5c %.sroa.0125.0.insert.ext = zext i32 %125 to i64 %.sroa.0125.0.insert.insert = or disjoint i64 %.sroa.10.0.insert.shift, %.sroa.0125.0.insert.ext %127 = call { i64, i8 } @_ZN5clang5Lexer17makeFileCharRangeENS_15CharSourceRangeERKNS_13SourceManagerERKNS_11LangOptionsE(i64 %.sroa.0125.0.insert.insert, i8 %1, ptr noundef nonnull align 8 dereferenceable(696) %2, ptr noundef nonnull align 8 dereferenceable(841) %3) - %.fca.0.extract = extractvalue { i64, i8 } %127, 0 - %.fca.1.extract = extractvalue { i64, i8 } %127, 1 br label %.critedge .critedge: ; preds = %_ZNK5clang13SourceManager9getFileIDENS_14SourceLocationE.exit118, %_ZNK5clang13SourceManager9getFileIDENS_14SourceLocationE.exit, %79, %116, %_ZNK5clang13SourceManager12getSLocEntryENS_6FileIDEPb.exit121, %_ZNK5clang13SourceManager12getSLocEntryENS_6FileIDEPb.exit, %30, %25, %19, %4, %124, %46, %32, %21, %16 - %.sroa.20.0 = phi i8 [ %.fca.1.extract63, %16 ], [ %.fca.1.extract51, %21 ], [ %.fca.1.extract37, %32 ], [ %.fca.1.extract21, %46 ], [ %.fca.1.extract, %124 ], [ 0, %4 ], [ 0, %19 ], [ 0, %25 ], [ 0, %30 ], [ 0, %_ZNK5clang13SourceManager12getSLocEntryENS_6FileIDEPb.exit ], [ 0, %_ZNK5clang13SourceManager12getSLocEntryENS_6FileIDEPb.exit121 ], [ 0, %116 ], [ 0, %79 ], [ 0, %_ZNK5clang13SourceManager9getFileIDENS_14SourceLocationE.exit ], [ 0, %_ZNK5clang13SourceManager9getFileIDENS_14SourceLocationE.exit118 ] - %.sroa.0162.0 = phi i64 [ %.fca.0.extract62, %16 ], [ %.fca.0.extract50, %21 ], [ %.fca.0.extract36, %32 ], [ %.fca.0.extract20, %46 ], [ %.fca.0.extract, %124 ], [ 0, %4 ], [ 0, %19 ], [ 0, %25 ], [ 0, %30 ], [ 0, %_ZNK5clang13SourceManager12getSLocEntryENS_6FileIDEPb.exit ], [ 0, %_ZNK5clang13SourceManager12getSLocEntryENS_6FileIDEPb.exit121 ], [ 0, %116 ], [ 0, %79 ], [ 0, %_ZNK5clang13SourceManager9getFileIDENS_14SourceLocationE.exit ], [ 0, %_ZNK5clang13SourceManager9getFileIDENS_14SourceLocationE.exit118 ] - %.fca.0.insert = insertvalue { i64, i8 } poison, i64 %.sroa.0162.0, 0 - %.fca.1.insert = insertvalue { i64, i8 } %.fca.0.insert, i8 %.sroa.20.0, 1 - ret { i64, i8 } %.fca.1.insert + %.fca.1.insert.merged = phi { i64, i8 } [ %17, %16 ], [ %22, %21 ], [ %33, %32 ], [ %47, %46 ], [ %127, %124 ], [ zeroinitializer, %4 ], [ zeroinitializer, %19 ], [ zeroinitializer, %25 ], [ zeroinitializer, %30 ], [ zeroinitializer, %_ZNK5clang13SourceManager12getSLocEntryENS_6FileIDEPb.exit ], [ zeroinitializer, %_ZNK5clang13SourceManager12getSLocEntryENS_6FileIDEPb.exit121 ], [ zeroinitializer, %116 ], [ zeroinitializer, %79 ], [ zeroinitializer, %_ZNK5clang13SourceManager9getFileIDENS_14SourceLocationE.exit ], [ zeroinitializer, %_ZNK5clang13SourceManager9getFileIDENS_14SourceLocationE.exit118 ] + ret { i64, i8 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nounwind uwtable @@ -4178,21 +4165,21 @@ define dso_local { ptr, i64 } @_ZN5clang5Lexer21getIndentationForLineENS_14Sourc 5: ; preds = %2 %6 = tail call i64 @_ZNK5clang13SourceManager16getDecomposedLocENS_14SourceLocationE(ptr noundef nonnull align 8 dereferenceable(696) %1, i32 %0) - %.sroa.012.0.extract.trunc = trunc i64 %6 to i32 + %.sroa.010.0.extract.trunc = trunc i64 %6 to i32 %.sroa.3.0.extract.shift = lshr i64 %6, 32 - %7 = icmp eq i32 %.sroa.012.0.extract.trunc, 0 + %7 = icmp eq i32 %.sroa.010.0.extract.trunc, 0 br i1 %7, label %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread, label %8 8: ; preds = %5 store i8 0, ptr %3, align 1 - %9 = call { ptr, i64 } @_ZNK5clang13SourceManager13getBufferDataENS_6FileIDEPb(ptr noundef nonnull align 8 dereferenceable(696) %1, i32 %.sroa.012.0.extract.trunc, ptr noundef nonnull %3) #24 + %9 = call { ptr, i64 } @_ZNK5clang13SourceManager13getBufferDataENS_6FileIDEPb(ptr noundef nonnull align 8 dereferenceable(696) %1, i32 %.sroa.010.0.extract.trunc, ptr noundef nonnull %3) #24 %10 = extractvalue { ptr, i64 } %9, 0 %11 = extractvalue { ptr, i64 } %9, 1 %12 = load i8, ptr %3, align 1 %13 = trunc i8 %12 to i1 %.not.i = icmp ule i64 %11, %.sroa.3.0.extract.shift - %or.cond38.not = select i1 %13, i1 true, i1 %.not.i - br i1 %or.cond38.not, label %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread, label %14 + %or.cond36.not = select i1 %13, i1 true, i1 %.not.i + br i1 %or.cond36.not, label %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread, label %14 14: ; preds = %8 %15 = getelementptr inbounds i8, ptr %10, i64 %.sroa.3.0.extract.shift @@ -4229,7 +4216,7 @@ define dso_local { ptr, i64 } @_ZN5clang5Lexer21getIndentationForLineENS_14Sourc 29: ; preds = %26, %23 %30 = getelementptr inbounds i8, ptr %.019.i, i64 -2 %31 = icmp ult ptr %30, %10 - br i1 %31, label %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread33, label %.thread.i.i.preheader + br i1 %31, label %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread31, label %.thread.i.i.preheader .thread.i.i.preheader: ; preds = %29, %26, %23, %21 %.0.pn.i.i.ph = phi ptr [ %.019.i, %21 ], [ %.019.i, %23 ], [ %22, %29 ], [ %.019.i, %26 ] @@ -4252,9 +4239,9 @@ define dso_local { ptr, i64 } @_ZN5clang5Lexer21getIndentationForLineENS_14Sourc _ZN5clang5Lexer16isNewLineEscapedEPKcS2_.exit.i: ; preds = %33, %.thread.i.i %38 = icmp eq i8 %.pre.i.i, 92 - br i1 %38, label %40, label %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread33 + br i1 %38, label %40, label %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread31 -_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread33: ; preds = %29, %_ZN5clang5Lexer16isNewLineEscapedEPKcS2_.exit.i +_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread31: ; preds = %29, %_ZN5clang5Lexer16isNewLineEscapedEPKcS2_.exit.i %39 = getelementptr inbounds i8, ptr %.019.i, i64 1 br label %42 @@ -4268,9 +4255,9 @@ _ZL19findBeginningOfLineN4llvm9StringRefEj.exit: ; preds = %40, %14 %.not = icmp eq ptr %.011.i, null br i1 %.not, label %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread, label %42 -42: ; preds = %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread33, %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit - %.011.i36 = phi ptr [ %39, %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread33 ], [ %.011.i, %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit ] - %43 = ptrtoint ptr %.011.i36 to i64 +42: ; preds = %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread31, %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit + %.011.i34 = phi ptr [ %39, %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread31 ], [ %.011.i, %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit ] + %43 = ptrtoint ptr %.011.i34 to i64 %44 = ptrtoint ptr %10 to i64 %45 = sub i64 %43, %44 %.sroa.speculated5.i = call i64 @llvm.umin.i64(i64 %11, i64 %45) @@ -4286,13 +4273,13 @@ _ZL19findBeginningOfLineN4llvm9StringRefEj.exit: ; preds = %40, %14 51: ; preds = %42 %52 = load i64, ptr %48, align 8 %..i = call i64 @llvm.umin.i64(i64 %49, i64 %52) - %.sroa.0.0.i = load ptr, ptr %4, align 8 + %.sroa.0.0.copyload.pn.i = load ptr, ptr %4, align 8 br label %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread _ZL19findBeginningOfLineN4llvm9StringRefEj.exit.thread: ; preds = %42, %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit, %8, %5, %2, %51 %.sroa.11.0 = phi i64 [ %..i, %51 ], [ 0, %2 ], [ 0, %5 ], [ 0, %8 ], [ 0, %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit ], [ 0, %42 ] - %.sroa.016.0 = phi ptr [ %.sroa.0.0.i, %51 ], [ null, %2 ], [ null, %5 ], [ null, %8 ], [ null, %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit ], [ @.str.1, %42 ] - %.fca.0.insert = insertvalue { ptr, i64 } poison, ptr %.sroa.016.0, 0 + %.sroa.014.0 = phi ptr [ %.sroa.0.0.copyload.pn.i, %51 ], [ null, %2 ], [ null, %5 ], [ null, %8 ], [ null, %_ZL19findBeginningOfLineN4llvm9StringRefEj.exit ], [ @.str.1, %42 ] + %.fca.0.insert = insertvalue { ptr, i64 } poison, ptr %.sroa.014.0, 0 %.fca.1.insert = insertvalue { ptr, i64 } %.fca.0.insert, i64 %.sroa.11.0, 1 ret { ptr, i64 } %.fca.1.insert } @@ -9658,11 +9645,11 @@ define dso_local void @_ZN5clang5Lexer24codeCompleteIncludedFileEPKcS2_b(ptr noc 18: ; preds = %4 %19 = load i64, ptr %9, align 8 %..i = call i64 @llvm.umin.i64(i64 %16, i64 %19) - %.sroa.0.0.i = load ptr, ptr %5, align 8 + %.sroa.0.0.copyload.pn.i = load ptr, ptr %5, align 8 br label %20 20: ; preds = %4, %18 - %.sroa.035.0 = phi ptr [ %.sroa.0.0.i, %18 ], [ @.str.1, %4 ] + %.sroa.035.0 = phi ptr [ %.sroa.0.0.copyload.pn.i, %18 ], [ @.str.1, %4 ] %.sroa.3.0 = phi i64 [ %..i, %18 ], [ 0, %4 ] %21 = getelementptr inbounds i8, ptr %1, i64 %16 %22 = getelementptr inbounds i8, ptr %21, i64 1 diff --git a/bench/llvm/optimized/LoopUnrollAndJamPass.cpp.ll b/bench/llvm/optimized/LoopUnrollAndJamPass.cpp.ll index fc770ccca00..262c6ade491 100644 --- a/bench/llvm/optimized/LoopUnrollAndJamPass.cpp.ll +++ b/bench/llvm/optimized/LoopUnrollAndJamPass.cpp.ll @@ -337,7 +337,7 @@ _ZN4llvm21SmallPriorityWorklistIPNS_4LoopELj4EEC2Ev.exit.i: ; preds = %.lr.ph.i. br label %80 80: ; preds = %_ZN4llvm10LPMUpdater17markLoopAsDeletedERNS_4LoopENS_9StringRefE.exit.i, %.lr.ph.i - %.036.i = phi i1 [ false, %.lr.ph.i ], [ %360, %_ZN4llvm10LPMUpdater17markLoopAsDeletedERNS_4LoopENS_9StringRefE.exit.i ] + %.034.i = phi i1 [ false, %.lr.ph.i ], [ %360, %_ZN4llvm10LPMUpdater17markLoopAsDeletedERNS_4LoopENS_9StringRefE.exit.i ] %81 = load ptr, ptr %54, align 8 %82 = call noundef i64 @_ZNK4llvm15SmallVectorBaseIjE4sizeEv(ptr noundef nonnull align 8 dereferenceable(16) %54) #11 %83 = getelementptr inbounds ptr, ptr %81, i64 %82 @@ -357,16 +357,15 @@ _ZN4llvm21SmallPriorityWorklistIPNS_4LoopELj4EEC2Ev.exit.i: ; preds = %.lr.ph.i. 91: ; preds = %87 %92 = call { ptr, i64 } @_ZNK4llvm5Value7getNameEv(ptr noundef nonnull align 8 dereferenceable(24) %86) #11 - %93 = extractvalue { ptr, i64 } %92, 0 - %94 = extractvalue { ptr, i64 } %92, 1 br label %_ZNK4llvm4Loop7getNameEv.exit.i _ZNK4llvm4Loop7getNameEv.exit.i: ; preds = %91, %87, %80 - %.sroa.3.0.i.i = phi i64 [ %94, %91 ], [ 14, %87 ], [ 14, %80 ] - %.sroa.0.0.i.i = phi ptr [ %93, %91 ], [ @.str.11, %87 ], [ @.str.11, %80 ] + %.fca.1.insert.merged.i.i = phi { ptr, i64 } [ %92, %91 ], [ { ptr @.str.11, i64 14 }, %87 ], [ { ptr @.str.11, i64 14 }, %80 ] + %93 = extractvalue { ptr, i64 } %.fca.1.insert.merged.i.i, 0 + %94 = extractvalue { ptr, i64 } %.fca.1.insert.merged.i.i, 1 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #11 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %18) - %95 = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %.sroa.3.0.i.i, ptr %.sroa.0.0.i.i) #11 + %95 = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %94, ptr %93) #11 %96 = extractvalue { i64, ptr } %95, 0 %97 = extractvalue { i64, ptr } %95, 1 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12__sv_wrapperC1ESt17basic_string_viewIcS2_E(ptr noundef nonnull align 8 dereferenceable(16) %18, i64 %96, ptr %97) #11 @@ -574,8 +573,8 @@ _ZL24getUnrollMetadataForLoopPKN4llvm4LoopENS_9StringRefE.exit.i.i.i: ; preds = %202 = getelementptr inbounds i8, ptr %200, i64 -16 %203 = load i64, ptr %202, align 8 %204 = and i64 %203, 2 - %.not.i.i.i.i23.i = icmp eq i64 %204, 0 - br i1 %.not.i.i.i.i23.i, label %209, label %205 + %.not.i.i.i.i21.i = icmp eq i64 %204, 0 + br i1 %.not.i.i.i.i21.i, label %209, label %205 205: ; preds = %201 %206 = getelementptr inbounds i8, ptr %200, i64 -32 @@ -668,27 +667,27 @@ _ZL27hasUnrollAndJamEnablePragmaPKN4llvm4LoopE.exit.i.i: ; preds = %250, %_ZL28u 257: ; preds = %255, %_ZL27hasUnrollAndJamEnablePragmaPKN4llvm4LoopE.exit.i.i %258 = load i8, ptr %74, align 2 %259 = trunc i8 %258 to i1 - %.pre37.i = load i32, ptr %72, align 4 + %.pre35.i = load i32, ptr %72, align 4 br i1 %259, label %269, label %260 260: ; preds = %257 %.val114.i.i = load i32, ptr %65, align 4 %261 = sub i32 %140, %.val114.i.i %262 = zext i32 %261 to i64 - %263 = zext i32 %.pre37.i to i64 + %263 = zext i32 %.pre35.i to i64 %264 = mul nuw i64 %262, %263 %265 = zext i32 %.val114.i.i to i64 %266 = add nuw i64 %264, %265 %267 = load i32, ptr %59, align 4 %268 = zext i32 %267 to i64 - %.not.i24.i = icmp ult i64 %266, %268 - br i1 %.not.i24.i, label %.thread.i.i, label %_ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit.thread.i + %.not.i22.i = icmp ult i64 %266, %268 + br i1 %.not.i22.i, label %.thread.i.i, label %_ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit.thread.i 269: ; preds = %257 br i1 %253, label %_ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit.i, label %.preheader.i.i .preheader.i.i: ; preds = %269 - %.not100131.i.i = icmp eq i32 %.pre37.i, 0 + %.not100131.i.i = icmp eq i32 %.pre35.i, 0 br i1 %.not100131.i.i, label %.critedge.i.i, label %.lr.ph.i.i .lr.ph.i.i: ; preds = %.preheader.i.i @@ -704,7 +703,7 @@ _ZL27hasUnrollAndJamEnablePragmaPKN4llvm4LoopE.exit.i.i: ; preds = %250, %_ZL28u br i1 %254, label %_ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit.i, label %283 275: ; preds = %280, %.lr.ph.i.i - %276 = phi i32 [ %.pre37.i, %.lr.ph.i.i ], [ %281, %280 ] + %276 = phi i32 [ %.pre35.i, %.lr.ph.i.i ], [ %281, %280 ] %277 = zext i32 %276 to i64 %278 = mul nuw i64 %277, %271 %279 = add nuw i64 %278, %272 @@ -745,15 +744,15 @@ _ZL27hasUnrollAndJamEnablePragmaPKN4llvm4LoopE.exit.i.i: ; preds = %250, %_ZL28u %.not104138.i.i = icmp eq i64 %294, 0 br i1 %.not104138.i.i, label %_ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit.thread.i, label %.lr.ph142.i.i -.lr.ph142.i.i: ; preds = %291, %._crit_edge.i27.i - %.095140.i.i = phi i32 [ %.1.lcssa.i.i, %._crit_edge.i27.i ], [ 0, %291 ] - %.096139.i.i = phi ptr [ %311, %._crit_edge.i27.i ], [ %293, %291 ] +.lr.ph142.i.i: ; preds = %291, %._crit_edge.i25.i + %.095140.i.i = phi i32 [ %.1.lcssa.i.i, %._crit_edge.i25.i ], [ 0, %291 ] + %.096139.i.i = phi ptr [ %311, %._crit_edge.i25.i ], [ %293, %291 ] %296 = load ptr, ptr %.096139.i.i, align 8 %297 = getelementptr inbounds i8, ptr %296, i64 56 %298 = getelementptr inbounds nuw i8, ptr %296, i64 48 %.sroa.0121.0133.i.i = load ptr, ptr %297, align 8 %.not130134.i.i = icmp eq ptr %.sroa.0121.0133.i.i, %298 - br i1 %.not130134.i.i, label %._crit_edge.i27.i, label %.lr.ph137.i.i + br i1 %.not130134.i.i, label %._crit_edge.i25.i, label %.lr.ph137.i.i .lr.ph137.i.i: ; preds = %.lr.ph142.i.i, %309 %.sroa.0121.0136.i.i = phi ptr [ %.sroa.0121.0.i.i, %309 ], [ %.sroa.0121.0133.i.i, %.lr.ph142.i.i ] @@ -779,15 +778,15 @@ _ZL27hasUnrollAndJamEnablePragmaPKN4llvm4LoopE.exit.i.i: ; preds = %250, %_ZL28u %310 = getelementptr inbounds nuw i8, ptr %.sroa.0121.0136.i.i, i64 8 %.sroa.0121.0.i.i = load ptr, ptr %310, align 8 %.not130.i.i = icmp eq ptr %.sroa.0121.0.i.i, %298 - br i1 %.not130.i.i, label %._crit_edge.i27.i, label %.lr.ph137.i.i + br i1 %.not130.i.i, label %._crit_edge.i25.i, label %.lr.ph137.i.i -._crit_edge.i27.i: ; preds = %309, %.lr.ph142.i.i +._crit_edge.i25.i: ; preds = %309, %.lr.ph142.i.i %.1.lcssa.i.i = phi i32 [ %.095140.i.i, %.lr.ph142.i.i ], [ %.2.i.i, %309 ] %311 = getelementptr inbounds i8, ptr %.096139.i.i, i64 8 %.not104.i.i = icmp eq ptr %311, %295 br i1 %.not104.i.i, label %._crit_edge143.i.i, label %.lr.ph142.i.i -._crit_edge143.i.i: ; preds = %._crit_edge.i27.i +._crit_edge143.i.i: ; preds = %._crit_edge.i25.i %312 = icmp eq i32 %.1.lcssa.i.i, 0 br i1 %312, label %_ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit.thread.i, label %._crit_edge143.i._ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit_crit_edge.i @@ -801,16 +800,16 @@ _ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13Do br label %345 _ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit.i: ; preds = %._crit_edge143.i._ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit_crit_edge.i, %.critedge.i.i, %.thread.i.i, %269, %240, %190 - %313 = phi i32 [ %177, %190 ], [ %223, %240 ], [ %282, %.critedge.i.i ], [ %.pre.i, %._crit_edge143.i._ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit_crit_edge.i ], [ %.pre37.i, %.thread.i.i ], [ %.pre37.i, %269 ] - %.0.i26.i = phi i1 [ true, %190 ], [ true, %240 ], [ true, %.critedge.i.i ], [ false, %._crit_edge143.i._ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit_crit_edge.i ], [ true, %.thread.i.i ], [ true, %269 ] + %313 = phi i32 [ %177, %190 ], [ %223, %240 ], [ %282, %.critedge.i.i ], [ %.pre.i, %._crit_edge143.i._ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit_crit_edge.i ], [ %.pre35.i, %.thread.i.i ], [ %.pre35.i, %269 ] + %.0.i24.i = phi i1 [ true, %190 ], [ true, %240 ], [ true, %.critedge.i.i ], [ false, %._crit_edge143.i._ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit_crit_edge.i ], [ true, %.thread.i.i ], [ true, %269 ] call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %7) %314 = icmp ult i32 %313, 2 br i1 %314, label %345, label %315 315: ; preds = %_ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13DominatorTreeEPNS_8LoopInfoEPNS_15AssumptionCacheERNS_15ScalarEvolutionERKNS_15SmallPtrSetImplIPKNS_5ValueEEEPNS_25OptimizationRemarkEmitterEjjRKNS_19UnrollCostEstimatorEjjRNS2_20UnrollingPreferencesERNS2_18PeelingPreferencesE.exit.i - %.not.i22.i = icmp ne i32 %161, 0 + %.not.i20.i = icmp ne i32 %161, 0 %316 = icmp ugt i32 %313, %161 - %or.cond.i.i = and i1 %.not.i22.i, %316 + %or.cond.i.i = and i1 %.not.i20.i, %316 br i1 %or.cond.i.i, label %317, label %318 317: ; preds = %315 @@ -866,10 +865,10 @@ _ZL24computeUnrollAndJamCountPN4llvm4LoopES1_RKNS_19TargetTransformInfoERNS_13Do br label %345 342: ; preds = %336 - br i1 %.0.i26.i, label %344, label %345 + br i1 %.0.i24.i, label %344, label %345 343: ; preds = %331 - br i1 %.0.i26.i, label %344, label %345 + br i1 %.0.i24.i, label %344, label %345 344: ; preds = %343, %342 call void @_ZN4llvm4Loop22setLoopAlreadyUnrolledEv(ptr noundef nonnull align 8 dereferenceable(152) %85) #11 @@ -933,7 +932,7 @@ _ZL21tryToUnrollAndJamLoopPN4llvm4LoopERNS_13DominatorTreeEPNS_8LoopInfoERNS_15S br label %_ZN4llvm10LPMUpdater17markLoopAsDeletedERNS_4LoopENS_9StringRefE.exit.i _ZN4llvm10LPMUpdater17markLoopAsDeletedERNS_4LoopENS_9StringRefE.exit.i: ; preds = %359, %353, %350, %_ZL21tryToUnrollAndJamLoopPN4llvm4LoopERNS_13DominatorTreeEPNS_8LoopInfoERNS_15ScalarEvolutionERKNS_19TargetTransformInfoERNS_15AssumptionCacheERNS_14DependenceInfoERNS_25OptimizationRemarkEmitterEi.exit.i, %_ZL21tryToUnrollAndJamLoopPN4llvm4LoopERNS_13DominatorTreeEPNS_8LoopInfoERNS_15ScalarEvolutionERKNS_19TargetTransformInfoERNS_15AssumptionCacheERNS_14DependenceInfoERNS_25OptimizationRemarkEmitterEi.exit.thread.i - %360 = phi i1 [ true, %350 ], [ true, %353 ], [ true, %359 ], [ %.036.i, %_ZL21tryToUnrollAndJamLoopPN4llvm4LoopERNS_13DominatorTreeEPNS_8LoopInfoERNS_15ScalarEvolutionERKNS_19TargetTransformInfoERNS_15AssumptionCacheERNS_14DependenceInfoERNS_25OptimizationRemarkEmitterEi.exit.thread.i ], [ %.036.i, %_ZL21tryToUnrollAndJamLoopPN4llvm4LoopERNS_13DominatorTreeEPNS_8LoopInfoERNS_15ScalarEvolutionERKNS_19TargetTransformInfoERNS_15AssumptionCacheERNS_14DependenceInfoERNS_25OptimizationRemarkEmitterEi.exit.i ] + %360 = phi i1 [ true, %350 ], [ true, %353 ], [ true, %359 ], [ %.034.i, %_ZL21tryToUnrollAndJamLoopPN4llvm4LoopERNS_13DominatorTreeEPNS_8LoopInfoERNS_15ScalarEvolutionERKNS_19TargetTransformInfoERNS_15AssumptionCacheERNS_14DependenceInfoERNS_25OptimizationRemarkEmitterEi.exit.thread.i ], [ %.034.i, %_ZL21tryToUnrollAndJamLoopPN4llvm4LoopERNS_13DominatorTreeEPNS_8LoopInfoERNS_15ScalarEvolutionERKNS_19TargetTransformInfoERNS_15AssumptionCacheERNS_14DependenceInfoERNS_25OptimizationRemarkEmitterEi.exit.i ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %21) #11 %361 = call noundef zeroext i1 @_ZNK4llvm15SmallVectorBaseIjE5emptyEv(ptr noundef nonnull align 8 dereferenceable(16) %54) #11 br i1 %361, label %._crit_edge.i, label %80, !llvm.loop !7 diff --git a/bench/llvm/optimized/LowerExpectIntrinsic.cpp.ll b/bench/llvm/optimized/LowerExpectIntrinsic.cpp.ll index f447df2b857..cf1c11acc1a 100644 --- a/bench/llvm/optimized/LowerExpectIntrinsic.cpp.ll +++ b/bench/llvm/optimized/LowerExpectIntrinsic.cpp.ll @@ -507,9 +507,12 @@ _ZNK4llvm8CallBase17getCalledFunctionEv.exit.i.i: ; preds = %_ZN4llvm16dyn_cast_ %204 = and i32 %203, 67108863 %205 = add nsw i32 %204, -1 %206 = zext i32 %205 to i64 + %.fca.0.insert.i.i.i.i.i = insertvalue { ptr, i64 } poison, ptr %spec.select.i.i.i, 0 %.not.i.i.i.i = icmp eq i64 %201, %206 - %207 = and i64 %201, 4294967295 - %208 = select i1 %.not.i.i.i.i, i64 4294967294, i64 %207 + %.fca.1.insert.i4.i.i.i.i = insertvalue { ptr, i64 } %.fca.0.insert.i.i.i.i.i, i64 4294967294, 1 + %spec.select.i.i31.i.i = select i1 %.not.i.i.i.i, { ptr, i64 } %.fca.1.insert.i4.i.i.i.i, { ptr, i64 } %200 + %207 = extractvalue { ptr, i64 } %spec.select.i.i31.i.i, 1 + %208 = and i64 %207, 4294967295 %209 = load i32, ptr %180, align 4 %210 = icmp eq i32 %209, 89 br i1 %210, label %211, label %214 @@ -547,7 +550,7 @@ _ZL15getBranchWeightjPN4llvm8CallInstEi.exit.i.i: ; preds = %214, %211 call void @_ZN4llvm15SmallVectorBaseIjEC2EPvm(ptr noundef nonnull align 8 dereferenceable(16) %14, ptr noundef nonnull %21, i64 noundef 16) #14 call void @_ZN4llvm15SmallVectorImplIjE6assignEmj(ptr noundef nonnull align 8 dereferenceable(16) %14, i64 noundef %233, i32 noundef %.sink7.i.i.i) %234 = icmp eq i64 %208, 4294967294 - %235 = add nuw nsw i64 %208, 1 + %235 = add i64 %207, 1 %236 = and i64 %235, 4294967295 %237 = select i1 %234, i64 0, i64 %236 %238 = load ptr, ptr %14, align 8 diff --git a/bench/llvm/optimized/SemaStmtAsm.cpp.ll b/bench/llvm/optimized/SemaStmtAsm.cpp.ll index 30ac152bce3..617dd80f5ea 100644 --- a/bench/llvm/optimized/SemaStmtAsm.cpp.ll +++ b/bench/llvm/optimized/SemaStmtAsm.cpp.ll @@ -4581,20 +4581,19 @@ _ZNK5clang4Decl7getAttrINS_12AsmLabelAttrEEEPT_v.exit.i: ; preds = %.lr.ph.i.i.i %89 = load i32, ptr %80, align 4 %90 = zext i32 %89 to i64 %91 = call { ptr, i64 } @_ZNK5clang10TargetInfo28getNormalizedGCCRegisterNameEN4llvm9StringRefEb(ptr noundef nonnull align 8 dereferenceable(489) %6, ptr %88, i64 %90, i1 noundef zeroext true) #18 - %92 = extractvalue { ptr, i64 } %91, 0 - %93 = extractvalue { ptr, i64 } %91, 1 br label %_ZL19extractRegisterNamePKN5clang4ExprERKNS_10TargetInfoE.exit _ZL19extractRegisterNamePKN5clang4ExprERKNS_10TargetInfoE.exit: ; preds = %64, %57, %.lr.ph, %33, %41, %59, %_ZN5clangneENS_22specific_attr_iteratorINS_12AsmLabelAttrEN4llvm11SmallVectorIPNS_4AttrELj4EEEEES7_.exit.i.i.i, %_ZNK5clang4Decl7getAttrINS_12AsmLabelAttrEEEPT_v.exit.i, %87 - %.sroa.3.0.i = phi i64 [ %93, %87 ], [ 0, %59 ], [ 0, %_ZN5clangneENS_22specific_attr_iteratorINS_12AsmLabelAttrEN4llvm11SmallVectorIPNS_4AttrELj4EEEEES7_.exit.i.i.i ], [ 0, %33 ], [ 0, %41 ], [ 0, %_ZNK5clang4Decl7getAttrINS_12AsmLabelAttrEEEPT_v.exit.i ], [ 0, %.lr.ph ], [ 0, %57 ], [ 0, %64 ] - %.sroa.0.0.i = phi ptr [ %92, %87 ], [ @.str.5, %59 ], [ @.str.5, %_ZN5clangneENS_22specific_attr_iteratorINS_12AsmLabelAttrEN4llvm11SmallVectorIPNS_4AttrELj4EEEEES7_.exit.i.i.i ], [ @.str.5, %33 ], [ @.str.5, %41 ], [ @.str.5, %_ZNK5clang4Decl7getAttrINS_12AsmLabelAttrEEEPT_v.exit.i ], [ @.str.5, %.lr.ph ], [ @.str.5, %57 ], [ @.str.5, %64 ] + %.fca.1.insert.merged.i = phi { ptr, i64 } [ %91, %87 ], [ { ptr @.str.5, i64 0 }, %59 ], [ { ptr @.str.5, i64 0 }, %_ZN5clangneENS_22specific_attr_iteratorINS_12AsmLabelAttrEN4llvm11SmallVectorIPNS_4AttrELj4EEEEES7_.exit.i.i.i ], [ { ptr @.str.5, i64 0 }, %33 ], [ { ptr @.str.5, i64 0 }, %41 ], [ { ptr @.str.5, i64 0 }, %_ZNK5clang4Decl7getAttrINS_12AsmLabelAttrEEEPT_v.exit.i ], [ { ptr @.str.5, i64 0 }, %.lr.ph ], [ { ptr @.str.5, i64 0 }, %57 ], [ { ptr @.str.5, i64 0 }, %64 ] + %92 = extractvalue { ptr, i64 } %.fca.1.insert.merged.i, 0 + %93 = extractvalue { ptr, i64 } %.fca.1.insert.merged.i, 1 %94 = load ptr, ptr %6, align 8 %95 = getelementptr inbounds i8, ptr %94, i64 312 %96 = load ptr, ptr %95, align 8 - %97 = call { ptr, i64 } %96(ptr noundef nonnull align 8 dereferenceable(489) %6, ptr nonnull %21, i64 %28, ptr %.sroa.0.0.i, i64 %.sroa.3.0.i) #18 + %97 = call { ptr, i64 } %96(ptr noundef nonnull align 8 dereferenceable(489) %6, ptr nonnull %21, i64 %28, ptr %92, i64 %93) #18 %98 = extractvalue { ptr, i64 } %97, 1 - %.not.i.i47 = icmp eq i64 %98, 0 - br i1 %.not.i.i47, label %_ZN4llvmneENS_9StringRefES0_.exit.thread11, label %_ZN4llvmneENS_9StringRefES0_.exit.thread + %.not.i.i45 = icmp eq i64 %98, 0 + br i1 %.not.i.i45, label %_ZN4llvmneENS_9StringRefES0_.exit.thread11, label %_ZN4llvmneENS_9StringRefES0_.exit.thread _ZN4llvmneENS_9StringRefES0_.exit.thread: ; preds = %_ZL19extractRegisterNamePKN5clang4ExprERKNS_10TargetInfoE.exit %99 = extractvalue { ptr, i64 } %97, 0 @@ -4624,27 +4623,27 @@ _ZN4llvmneENS_9StringRefES0_.exit.thread11: ; preds = %_ZL19extractRegiste %117 = load i32, ptr %116, align 4 %118 = mul i32 %115, %117 %119 = zext i32 %118 to i64 - switch i32 %118, label %_ZN4llvmeqENS_9StringRefES0_.exit58.thread20 [ + switch i32 %118, label %_ZN4llvmeqENS_9StringRefES0_.exit56.thread20 [ i32 2, label %_ZN4llvmeqENS_9StringRefES0_.exit - i32 6, label %_ZN4llvmeqENS_9StringRefES0_.exit54 + i32 6, label %_ZN4llvmeqENS_9StringRefES0_.exit52 ] _ZN4llvmeqENS_9StringRefES0_.exit: ; preds = %105 %bcmp.i = call i32 @bcmp(ptr nonnull %112, ptr nonnull @.str.6, i64 %119) %120 = icmp eq i32 %bcmp.i, 0 - br i1 %120, label %_ZN4llvmeqENS_9StringRefES0_.exit.thread, label %_ZN4llvmeqENS_9StringRefES0_.exit58.thread20 + br i1 %120, label %_ZN4llvmeqENS_9StringRefES0_.exit.thread, label %_ZN4llvmeqENS_9StringRefES0_.exit56.thread20 -_ZN4llvmeqENS_9StringRefES0_.exit54: ; preds = %105 - %bcmp.i53 = call i32 @bcmp(ptr nonnull %112, ptr nonnull @.str.7, i64 %119) - %121 = icmp eq i32 %bcmp.i53, 0 - br i1 %121, label %_ZN4llvmeqENS_9StringRefES0_.exit.thread, label %_ZN4llvmeqENS_9StringRefES0_.exit58 +_ZN4llvmeqENS_9StringRefES0_.exit52: ; preds = %105 + %bcmp.i51 = call i32 @bcmp(ptr nonnull %112, ptr nonnull @.str.7, i64 %119) + %121 = icmp eq i32 %bcmp.i51, 0 + br i1 %121, label %_ZN4llvmeqENS_9StringRefES0_.exit.thread, label %_ZN4llvmeqENS_9StringRefES0_.exit56 -_ZN4llvmeqENS_9StringRefES0_.exit58: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit54 - %bcmp.i57 = call i32 @bcmp(ptr nonnull %112, ptr nonnull @.str, i64 %119) - %122 = icmp eq i32 %bcmp.i57, 0 - br i1 %122, label %_ZN4llvmeqENS_9StringRefES0_.exit.thread, label %_ZN4llvmeqENS_9StringRefES0_.exit58.thread20 +_ZN4llvmeqENS_9StringRefES0_.exit56: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit52 + %bcmp.i55 = call i32 @bcmp(ptr nonnull %112, ptr nonnull @.str, i64 %119) + %122 = icmp eq i32 %bcmp.i55, 0 + br i1 %122, label %_ZN4llvmeqENS_9StringRefES0_.exit.thread, label %_ZN4llvmeqENS_9StringRefES0_.exit56.thread20 -_ZN4llvmeqENS_9StringRefES0_.exit58.thread20: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit, %105, %_ZN4llvmeqENS_9StringRefES0_.exit58 +_ZN4llvmeqENS_9StringRefES0_.exit56.thread20: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit, %105, %_ZN4llvmeqENS_9StringRefES0_.exit56 %123 = call { ptr, i64 } @_ZNK5clang10TargetInfo28getNormalizedGCCRegisterNameEN4llvm9StringRefEb(ptr noundef nonnull align 8 dereferenceable(489) %6, ptr nonnull %112, i64 %119, i1 noundef zeroext true) #18 %124 = extractvalue { ptr, i64 } %123, 0 %125 = extractvalue { ptr, i64 } %123, 1 @@ -4658,14 +4657,14 @@ _ZN4llvmeqENS_9StringRefES0_.exit58.thread20: ; preds = %_ZN4llvmeqENS_9Stri %.not24 = select i1 %128, i1 true, i1 %132 br i1 %.not24, label %_ZN4llvmeqENS_9StringRefES0_.exit.thread, label %133 -133: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit58.thread20 +133: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit56.thread20 %134 = getelementptr inbounds ptr, ptr %3, i64 %indvars.iv %135 = load ptr, ptr %134, align 8 %136 = getelementptr inbounds i8, ptr %135, i64 20 %.sroa.0.0.copyload.i = load i32, ptr %136, align 4 br label %.loopexit -_ZN4llvmeqENS_9StringRefES0_.exit.thread: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit58.thread20, %_ZN4llvmeqENS_9StringRefES0_.exit, %_ZN4llvmeqENS_9StringRefES0_.exit54, %_ZN4llvmeqENS_9StringRefES0_.exit58 +_ZN4llvmeqENS_9StringRefES0_.exit.thread: ; preds = %_ZN4llvmeqENS_9StringRefES0_.exit56.thread20, %_ZN4llvmeqENS_9StringRefES0_.exit, %_ZN4llvmeqENS_9StringRefES0_.exit52, %_ZN4llvmeqENS_9StringRefES0_.exit56 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %.loopexit, label %105, !llvm.loop !48 @@ -4706,8 +4705,8 @@ _ZN4llvmeqENS_9StringRefES0_.exit.thread: ; preds = %_ZN4llvmeqENS_9Stri 150: ; preds = %147, %.lr.ph.i.i, %.lr.ph.i.i %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 - %.not.i.i59 = icmp eq i64 %indvars.iv.next.i.i, %143 - br i1 %.not.i.i59, label %_ZN4llvm9StringSetINS_15MallocAllocatorEED2Ev.exit, label %.lr.ph.i.i, !llvm.loop !49 + %.not.i.i57 = icmp eq i64 %indvars.iv.next.i.i, %143 + br i1 %.not.i.i57, label %_ZN4llvm9StringSetINS_15MallocAllocatorEED2Ev.exit, label %.lr.ph.i.i, !llvm.loop !49 _ZN4llvm9StringSetINS_15MallocAllocatorEED2Ev.exit: ; preds = %150, %.loopexit, %140 %151 = load ptr, ptr %8, align 8 diff --git a/bench/llvm/optimized/VPlanRecipes.cpp.ll b/bench/llvm/optimized/VPlanRecipes.cpp.ll index 8cbb426425b..541d9adb5fe 100644 --- a/bench/llvm/optimized/VPlanRecipes.cpp.ll +++ b/bench/llvm/optimized/VPlanRecipes.cpp.ll @@ -11395,7 +11395,8 @@ _ZN4llvm26getLoadStorePointerOperandEPNS_5ValueE.exit: ; preds = %_ZN4llvm24getL %44 = icmp eq i32 %.fca.1.extract18, 1 %spec.select.i = select i1 %44, i32 1, i32 %.fca.1.extract23 %.0.i.i56 = tail call i64 @llvm.sadd.sat.i64(i64 %.fca.0.extract22, i64 %.fca.0.extract17) - br label %82 + %.fca.0.insert.i = insertvalue { i64, i32 } poison, i64 %.0.i.i56, 0 + br label %83 45: ; preds = %_ZN4llvm24getLoadStoreAddressSpaceEPKNS_5ValueE.exit %46 = getelementptr inbounds nuw i8, ptr %0, i64 114 @@ -11447,13 +11448,13 @@ _ZN4llvm15InstructionCostpLERKS0_.exit: ; preds = %_ZNK4llvm4User10get %.sroa.9.0.in.in = extractvalue { i64, i32 } %.pn, 1 %.sroa.9.0.in = icmp eq i32 %.sroa.9.0.in.in, 1 %.sroa.9.0 = zext i1 %.sroa.9.0.in to i32 - %.sroa.068.0 = extractvalue { i64, i32 } %.pn, 0 %76 = getelementptr inbounds nuw i8, ptr %0, i64 113 %77 = load i8, ptr %76, align 1 %78 = trunc i8 %77 to i1 - br i1 %78, label %_ZN4llvm15InstructionCostpLERKS0_.exit61, label %82 + br i1 %78, label %_ZN4llvm15InstructionCostpLERKS0_.exit61, label %83 _ZN4llvm15InstructionCostpLERKS0_.exit61: ; preds = %_ZN4llvm15InstructionCostpLERKS0_.exit + %.sroa.068.0 = extractvalue { i64, i32 } %.pn, 0 %79 = load ptr, ptr %2, align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %4, i8 0, i64 16, i1 false) %80 = tail call { i64, i32 } @_ZNK4llvm19TargetTransformInfo14getShuffleCostENS0_11ShuffleKindEPNS_10VectorTypeENS_8ArrayRefIiEENS0_14TargetCostKindEiS3_NS4_IPKNS_5ValueEEEPKNS_11InstructionE(ptr noundef nonnull align 8 dereferenceable(8) %79, i32 noundef 1, ptr noundef %.0.i53, ptr null, i64 0, i32 noundef 0, i32 noundef 0, ptr noundef null, ptr noundef nonnull byval(%"class.llvm::ArrayRef.195") align 8 %4, ptr noundef null) #19 @@ -11462,14 +11463,14 @@ _ZN4llvm15InstructionCostpLERKS0_.exit61: ; preds = %_ZN4llvm15Instructi %81 = icmp eq i32 %.fca.1.extract, 1 %spec.select80 = select i1 %81, i32 1, i32 %.sroa.9.0 %.0.i60 = tail call i64 @llvm.sadd.sat.i64(i64 %.sroa.068.0, i64 %.fca.0.extract) - br label %82 + %82 = insertvalue { i64, i32 } poison, i64 %.0.i60, 0 + br label %83 -82: ; preds = %_ZN4llvm15InstructionCostpLERKS0_.exit, %_ZN4llvm15InstructionCostpLERKS0_.exit61, %_ZN4llvm26getLoadStorePointerOperandEPNS_5ValueE.exit - %.sroa.047.0 = phi i64 [ %.0.i60, %_ZN4llvm15InstructionCostpLERKS0_.exit61 ], [ %.0.i.i56, %_ZN4llvm26getLoadStorePointerOperandEPNS_5ValueE.exit ], [ %.sroa.068.0, %_ZN4llvm15InstructionCostpLERKS0_.exit ] - %.sroa.4.0 = phi i32 [ %spec.select80, %_ZN4llvm15InstructionCostpLERKS0_.exit61 ], [ %spec.select.i, %_ZN4llvm26getLoadStorePointerOperandEPNS_5ValueE.exit ], [ %.sroa.9.0, %_ZN4llvm15InstructionCostpLERKS0_.exit ] - %.fca.0.insert = insertvalue { i64, i32 } poison, i64 %.sroa.047.0, 0 - %.fca.1.insert = insertvalue { i64, i32 } %.fca.0.insert, i32 %.sroa.4.0, 1 - ret { i64, i32 } %.fca.1.insert +83: ; preds = %_ZN4llvm15InstructionCostpLERKS0_.exit, %_ZN4llvm15InstructionCostpLERKS0_.exit61, %_ZN4llvm26getLoadStorePointerOperandEPNS_5ValueE.exit + %.pn82 = phi { i64, i32 } [ %82, %_ZN4llvm15InstructionCostpLERKS0_.exit61 ], [ %.fca.0.insert.i, %_ZN4llvm26getLoadStorePointerOperandEPNS_5ValueE.exit ], [ %.pn, %_ZN4llvm15InstructionCostpLERKS0_.exit ] + %spec.select80.pn = phi i32 [ %spec.select80, %_ZN4llvm15InstructionCostpLERKS0_.exit61 ], [ %spec.select.i, %_ZN4llvm26getLoadStorePointerOperandEPNS_5ValueE.exit ], [ %.sroa.9.0, %_ZN4llvm15InstructionCostpLERKS0_.exit ] + %.fca.1.insert.merged = insertvalue { i64, i32 } %.pn82, i32 %spec.select80.pn, 1 + ret { i64, i32 } %.fca.1.insert.merged } declare { i64, i32 } @_ZNK4llvm19TargetTransformInfo25getAddressComputationCostEPNS_4TypeEPNS_15ScalarEvolutionEPKNS_4SCEVE(ptr noundef nonnull align 8 dereferenceable(8), ptr noundef, ptr noundef, ptr noundef) local_unnamed_addr #2 diff --git a/bench/llvm/optimized/WasmObjectFile.cpp.ll b/bench/llvm/optimized/WasmObjectFile.cpp.ll index 48523b258bf..693efc49450 100644 --- a/bench/llvm/optimized/WasmObjectFile.cpp.ll +++ b/bench/llvm/optimized/WasmObjectFile.cpp.ll @@ -19258,31 +19258,28 @@ define dso_local { i64, ptr } @_ZNK4llvm6object14WasmObjectFile19getRelocationSy %8 = getelementptr inbounds %"struct.llvm::wasm::WasmRelocation", ptr %7, i64 %.sroa.2.0.extract.shift.i %9 = load i8, ptr %8, align 8 %10 = icmp eq i8 %9, 6 - br i1 %10, label %11, label %18 + br i1 %10, label %11, label %16 11: ; preds = %2 %12 = load ptr, ptr %0, align 8 %13 = getelementptr inbounds i8, ptr %12, i64 56 %14 = load ptr, ptr %13, align 8 %15 = tail call { i64, ptr } %14(ptr noundef nonnull align 8 dereferenceable(684) %0) #25 - %16 = extractvalue { i64, ptr } %15, 0 - %17 = extractvalue { i64, ptr } %15, 1 br label %21 -18: ; preds = %2 - %19 = getelementptr inbounds nuw i8, ptr %8, i64 4 - %20 = load i32, ptr %19, align 4 - %.sroa.3.0.insert.ext = zext i32 %20 to i64 +16: ; preds = %2 + %17 = getelementptr inbounds nuw i8, ptr %8, i64 4 + %18 = load i32, ptr %17, align 4 + %.sroa.3.0.insert.ext = zext i32 %18 to i64 %.sroa.3.0.insert.shift = shl nuw i64 %.sroa.3.0.insert.ext, 32 %.sroa.06.0.insert.insert = or disjoint i64 %.sroa.3.0.insert.shift, 1 + %19 = insertvalue { i64, ptr } poison, i64 %.sroa.06.0.insert.insert, 0 + %20 = insertvalue { i64, ptr } %19, ptr %0, 1 br label %21 -21: ; preds = %18, %11 - %.sroa.09.0 = phi i64 [ %16, %11 ], [ %.sroa.06.0.insert.insert, %18 ] - %.sroa.310.0 = phi ptr [ %17, %11 ], [ %0, %18 ] - %.fca.0.insert = insertvalue { i64, ptr } poison, i64 %.sroa.09.0, 0 - %.fca.1.insert = insertvalue { i64, ptr } %.fca.0.insert, ptr %.sroa.310.0, 1 - ret { i64, ptr } %.fca.1.insert +21: ; preds = %16, %11 + %.fca.1.insert.merged = phi { i64, ptr } [ %15, %11 ], [ %20, %16 ] + ret { i64, ptr } %.fca.1.insert.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, inaccessiblemem: none) uwtable diff --git a/bench/logos-rs/optimized/l82l31q4dxfnso7.ll b/bench/logos-rs/optimized/l82l31q4dxfnso7.ll index bf4c43bfc3b..cb31735674a 100644 --- a/bench/logos-rs/optimized/l82l31q4dxfnso7.ll +++ b/bench/logos-rs/optimized/l82l31q4dxfnso7.ll @@ -2739,15 +2739,13 @@ define hidden { ptr, i32 } @"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$8fork_of %16 = extractvalue { ptr, i32 } %15, 0 %17 = extractvalue { ptr, i32 } %15, 1 %18 = tail call { ptr, i32 } @_ZN13logos_codegen5graph4fork4Fork4miss17ha474bec5964925b1E(ptr align 4 %16, i32 %17, i32 %1) - %19 = extractvalue { ptr, i32 } %18, 0 - %20 = extractvalue { ptr, i32 } %18, 1 - br label %42 + br label %40 "_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit": ; preds = %12 - %21 = add i64 %13, 9223372036854775806 - %22 = tail call i64 @llvm.umin.i64(i64 %21, i64 2) - switch i64 %22, label %default.unreachable [ - i64 0, label %23 + %19 = add i64 %13, 9223372036854775806 + %20 = tail call i64 @llvm.umin.i64(i64 %19, i64 2) + switch i64 %20, label %default.unreachable [ + i64 0, label %21 i64 1, label %28 i64 2, label %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit.thread" ] @@ -2755,12 +2753,14 @@ define hidden { ptr, i32 } @"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$8fork_of default.unreachable: ; preds = %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit" unreachable -23: ; preds = %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit" - %24 = getelementptr inbounds i8, ptr %10, i64 8 - %25 = tail call align 4 ptr @"_ZN69_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h704df7b15f25d3e2E"(ptr nonnull align 8 %24) - %26 = getelementptr inbounds i8, ptr %10, i64 16 - %27 = load i32, ptr %26, align 8 - br label %42 +21: ; preds = %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit" + %22 = getelementptr inbounds i8, ptr %10, i64 8 + %23 = tail call align 4 ptr @"_ZN69_$LT$alloc..boxed..Box$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h704df7b15f25d3e2E"(ptr nonnull align 8 %22) + %24 = getelementptr inbounds i8, ptr %10, i64 16 + %25 = load i32, ptr %24, align 8 + %26 = insertvalue { ptr, i32 } poison, ptr %23, 0 + %27 = insertvalue { ptr, i32 } %26, i32 %25, 1 + br label %40 28: ; preds = %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit" %29 = getelementptr inbounds i8, ptr %10, i64 8 @@ -2779,16 +2779,11 @@ default.unreachable: ; preds = %"_ZN13logos_codegen %38 = getelementptr inbounds i8, ptr %4, i64 28 store i32 %35, ptr %38, align 4 %39 = call { ptr, i32 } @_ZN13logos_codegen5graph4rope4Rope9into_fork17h959f04f9ad79d04dE(ptr nonnull align 8 %4, ptr nonnull align 8 %0) - %40 = extractvalue { ptr, i32 } %39, 0 - %41 = extractvalue { ptr, i32 } %39, 1 - br label %42 + br label %40 -42: ; preds = %23, %28, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit.thread" - %.sroa.4.0 = phi i32 [ %20, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit.thread" ], [ %41, %28 ], [ %27, %23 ] - %.sroa.0.0 = phi ptr [ %19, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit.thread" ], [ %40, %28 ], [ %25, %23 ] - %43 = insertvalue { ptr, i32 } poison, ptr %.sroa.0.0, 0 - %44 = insertvalue { ptr, i32 } %43, i32 %.sroa.4.0, 1 - ret { ptr, i32 } %44 +40: ; preds = %21, %28, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit.thread" + %.merged = phi { ptr, i32 } [ %18, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit.thread" ], [ %39, %28 ], [ %27, %21 ] + ret { ptr, i32 } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/meilisearch-rs/optimized/11m597hzfugnyzhs.ll b/bench/meilisearch-rs/optimized/11m597hzfugnyzhs.ll index 3fb9478e851..98de7ccca14 100644 --- a/bench/meilisearch-rs/optimized/11m597hzfugnyzhs.ll +++ b/bench/meilisearch-rs/optimized/11m597hzfugnyzhs.ll @@ -3892,7 +3892,7 @@ _ZN4core5slice6memchr12memchr_naive17he786c2df6c28d6b1E.exit.i.i: ; preds = %51, %65 = getelementptr inbounds i8, ptr %.val.i, i64 %64 %bcmp.i.i.i = tail call i32 @bcmp(ptr nonnull readonly %65, ptr nonnull readonly %15, i64 %18), !alias.scope !653, !noalias !647 %66 = icmp eq i32 %bcmp.i.i.i, 0 - br i1 %66, label %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread12.i", label %60 + br i1 %66, label %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread11.i", label %60 .split51.us.i.i: ; preds = %35 tail call void @_ZN4core5slice5index24slice_end_index_len_fail17h70ffde91723d2a46E(i64 noundef %18, i64 noundef 4, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.637777809052813972814a42774bd81d.20) #20, !noalias !657 @@ -3902,7 +3902,7 @@ _ZN4core5slice6memchr12memchr_naive17he786c2df6c28d6b1E.exit.i.i: ; preds = %51, %.us-phi.i.i = phi i64 [ %.sroa.04.0.us.i.i, %34 ], [ %.sroa.04.0.i.i, %55 ] store i64 %10, ptr %8, align 8, !alias.scope !646, !noalias !647 %trunc.i = trunc nuw i64 %.us-phi.i.i to i1 - br i1 %trunc.i, label %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread12.i", label %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread.i" + br i1 %trunc.i, label %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread11.i", label %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread.i" "_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread.i": ; preds = %60, %39, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.i", %5 store i8 1, ptr %2, align 1, !alias.scope !660 @@ -3914,27 +3914,29 @@ _ZN4core5slice6memchr12memchr_naive17he786c2df6c28d6b1E.exit.i.i: ; preds = %51, %.pre3.i.i = load i64, ptr %.phi.trans.insert.i.i, align 8, !alias.scope !660 %.not.i5.i = icmp ne i64 %.pre3.i.i, %.pre.i.i %or.cond.not.i.i = select i1 %69, i1 true, i1 %.not.i5.i + br i1 %or.cond.not.i.i, label %._crit_edge.i.i, label %"_ZN4core3str4iter22SplitInternal$LT$P$GT$4next17hd1f8a64da2c11f36E.exit" + +._crit_edge.i.i: ; preds = %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread.i" %70 = sub nuw i64 %.pre3.i.i, %.pre.i.i %71 = getelementptr inbounds i8, ptr %.val.i, i64 %.pre.i.i - %.sroa.3.0.i.i = select i1 %or.cond.not.i.i, i64 %70, i64 undef - %.sroa.0.0.i.i = select i1 %or.cond.not.i.i, ptr %71, ptr null + %72 = insertvalue { ptr, i64 } poison, ptr %71, 0 + %73 = insertvalue { ptr, i64 } %72, i64 %70, 1 br label %"_ZN4core3str4iter22SplitInternal$LT$P$GT$4next17hd1f8a64da2c11f36E.exit" -"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread12.i": ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h3daec0736d7dbe92E.exit.i.i", %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.i" - %.sroa.6.019.i = phi i64 [ undef, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.i" ], [ %58, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h3daec0736d7dbe92E.exit.i.i" ] - %.sroa.4.0618.i = phi i64 [ undef, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.i" ], [ %64, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h3daec0736d7dbe92E.exit.i.i" ] - %72 = load i64, ptr %0, align 8, !alias.scope !640, !noundef !11 - %73 = sub nuw i64 %.sroa.4.0618.i, %72 - %74 = getelementptr inbounds i8, ptr %.val.i, i64 %72 - store i64 %.sroa.6.019.i, ptr %0, align 8, !alias.scope !640 +"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread11.i": ; preds = %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h3daec0736d7dbe92E.exit.i.i", %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.i" + %.sroa.6.018.i = phi i64 [ undef, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.i" ], [ %58, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h3daec0736d7dbe92E.exit.i.i" ] + %.sroa.4.017.i = phi i64 [ undef, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.i" ], [ %64, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h3daec0736d7dbe92E.exit.i.i" ] + %74 = load i64, ptr %0, align 8, !alias.scope !640, !noundef !11 + %75 = sub nuw i64 %.sroa.4.017.i, %74 + %76 = getelementptr inbounds i8, ptr %.val.i, i64 %74 + %77 = insertvalue { ptr, i64 } poison, ptr %76, 0 + %78 = insertvalue { ptr, i64 } %77, i64 %75, 1 + store i64 %.sroa.6.018.i, ptr %0, align 8, !alias.scope !640 br label %"_ZN4core3str4iter22SplitInternal$LT$P$GT$4next17hd1f8a64da2c11f36E.exit" -"_ZN4core3str4iter22SplitInternal$LT$P$GT$4next17hd1f8a64da2c11f36E.exit": ; preds = %1, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread.i", %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread12.i" - %.sroa.4.0.i = phi i64 [ undef, %1 ], [ %73, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread12.i" ], [ %.sroa.3.0.i.i, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread.i" ] - %.sroa.0.0.i = phi ptr [ null, %1 ], [ %74, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread12.i" ], [ %.sroa.0.0.i.i, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread.i" ] - %75 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0.i, 0 - %76 = insertvalue { ptr, i64 } %75, i64 %.sroa.4.0.i, 1 - ret { ptr, i64 } %76 +"_ZN4core3str4iter22SplitInternal$LT$P$GT$4next17hd1f8a64da2c11f36E.exit": ; preds = %1, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread.i", %._crit_edge.i.i, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread11.i" + %.merged.i = phi { ptr, i64 } [ { ptr null, i64 undef }, %1 ], [ %78, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread11.i" ], [ %73, %._crit_edge.i.i ], [ { ptr null, i64 undef }, %"_ZN81_$LT$core..str..pattern..CharSearcher$u20$as$u20$core..str..pattern..Searcher$GT$10next_match17h8004f309653965c4E.exit.thread.i" ] + ret { ptr, i64 } %.merged.i } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable diff --git a/bench/meilisearch-rs/optimized/1cgo24wrkn2cjv53.ll b/bench/meilisearch-rs/optimized/1cgo24wrkn2cjv53.ll index fbff9477a3c..86c4f60e0f0 100644 --- a/bench/meilisearch-rs/optimized/1cgo24wrkn2cjv53.ll +++ b/bench/meilisearch-rs/optimized/1cgo24wrkn2cjv53.ll @@ -676,13 +676,9 @@ define hidden { i32, float } @"_ZN106_$LT$core..iter..adapters..GenericShunt$LT$ call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3), !noalias !166 %9 = extractvalue { i32, float } %8, 0 %10 = icmp eq i32 %9, 2 - %11 = extractvalue { i32, float } %8, 1 - %.sroa.3.0.i = select i1 %10, float undef, float %11 - %.sroa.0.0.i = select i1 %10, i32 0, i32 %9 - %12 = insertvalue { i32, float } poison, i32 %.sroa.0.0.i, 0 - %13 = insertvalue { i32, float } %12, float %.sroa.3.0.i, 1 + %spec.select.i = select i1 %10, { i32, float } { i32 0, float undef }, { i32, float } %8 call void @llvm.lifetime.end.p0(i64 0, ptr nonnull %2) - ret { i32, float } %13 + ret { i32, float } %spec.select.i } ; Function Attrs: nonlazybind uwtable @@ -1432,12 +1428,8 @@ define hidden { i32, float } @"_ZN106_$LT$core..iter..adapters..GenericShunt$LT$ call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %3), !noalias !522 %9 = extractvalue { i32, float } %8, 0 %10 = icmp eq i32 %9, 2 - %11 = extractvalue { i32, float } %8, 1 - %.sroa.3.0 = select i1 %10, float undef, float %11 - %.sroa.0.0 = select i1 %10, i32 0, i32 %9 - %12 = insertvalue { i32, float } poison, i32 %.sroa.0.0, 0 - %13 = insertvalue { i32, float } %12, float %.sroa.3.0, 1 - ret { i32, float } %13 + %spec.select = select i1 %10, { i32, float } { i32 0, float undef }, { i32, float } %8 + ret { i32, float } %spec.select } ; Function Attrs: nonlazybind uwtable @@ -39941,7 +39933,7 @@ define hidden { i64, ptr } @"_ZN5tokio4sync4mpsc4chan15Rx$LT$T$C$S$GT$4recv17hb1 %19 = getelementptr inbounds i8, ptr %5, i64 1 call void @"_ZN80_$LT$tokio..runtime..coop..RestoreOnPending$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96948cf3dca85ca0E"(ptr noalias noundef nonnull align 1 dereferenceable(2) %19) call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %5) - br label %68 + br label %70 20: ; preds = %12 %21 = add i8 %11, -1 @@ -40104,16 +40096,15 @@ define hidden { i64, ptr } @"_ZN5tokio4sync4mpsc4chan15Rx$LT$T$C$S$GT$4recv17hb1 67: ; preds = %64, %62, %53, %50, %41, %.noexc22, %34 %.sroa.7.0.i = phi ptr [ undef, %41 ], [ undef, %.noexc22 ], [ undef, %34 ], [ undef, %53 ], [ %43, %50 ], [ undef, %64 ], [ %55, %62 ] %.sroa.0.0.i19 = phi i64 [ 0, %41 ], [ 2, %.noexc22 ], [ 2, %34 ], [ 0, %53 ], [ 1, %50 ], [ 0, %64 ], [ 1, %62 ] + %68 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0.i19, 0 + %69 = insertvalue { i64, ptr } %68, ptr %.sroa.7.0.i, 1 call void @"_ZN80_$LT$tokio..runtime..coop..RestoreOnPending$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96948cf3dca85ca0E"(ptr noalias noundef nonnull align 1 dereferenceable(2) %6) - br label %68 + br label %70 -68: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit", %67 - %.sroa.3.0 = phi ptr [ %.sroa.7.0.i, %67 ], [ undef, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" ] - %.sroa.0.0 = phi i64 [ %.sroa.0.0.i19, %67 ], [ 2, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" ] +70: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit", %67 + %.merged = phi { i64, ptr } [ %69, %67 ], [ { i64 2, ptr undef }, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" ] call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %6) - %69 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 - %70 = insertvalue { i64, ptr } %69, ptr %.sroa.3.0, 1 - ret { i64, ptr } %70 + ret { i64, ptr } %.merged 71: ; preds = %.body %72 = landingpad { ptr, i32 } @@ -40520,19 +40511,19 @@ define hidden { i64, i64 } @"_ZN5tokio4sync4mpsc4chan15Rx$LT$T$C$S$GT$9recv_many br label %.body .loopexit.split-lp.loopexit: ; preds = %36 - %lpad.loopexit53 = landingpad { ptr, i32 } + %lpad.loopexit55 = landingpad { ptr, i32 } cleanup br label %.body .loopexit.split-lp.loopexit.split-lp: ; preds = %.invoke, %101, %.noexc31, %80, %.noexc28, %55, %53, %43, %41 - %lpad.loopexit.split-lp54 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp56 = landingpad { ptr, i32 } cleanup br label %.body .body: ; preds = %.loopexit, %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit, %68, %89 - %eh.lpad-body = phi { ptr, i32 } [ %69, %68 ], [ %90, %89 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit53, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp54, %.loopexit.split-lp.loopexit.split-lp ] + %eh.lpad-body = phi { ptr, i32 } [ %69, %68 ], [ %90, %89 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit55, %.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp56, %.loopexit.split-lp.loopexit.split-lp ] invoke void @"_ZN80_$LT$tokio..runtime..coop..RestoreOnPending$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96948cf3dca85ca0E"(ptr noalias noundef nonnull align 1 dereferenceable(2) %10) - to label %"_ZN4core3ptr59drop_in_place$LT$tokio..runtime..coop..RestoreOnPending$GT$17h7c92cc35a7014186E.exit" unwind label %111 + to label %"_ZN4core3ptr59drop_in_place$LT$tokio..runtime..coop..RestoreOnPending$GT$17h7c92cc35a7014186E.exit" unwind label %109 107: ; preds = %106, %82, %61, %.noexc25, %.noexc24, %49, %.noexc22 %.sroa.7.0.i = phi i64 [ %39, %.noexc22 ], [ %47, %.noexc24 ], [ 0, %61 ], [ %77, %82 ], [ %98, %106 ], [ undef, %.noexc25 ], [ undef, %49 ] @@ -40542,21 +40533,21 @@ define hidden { i64, i64 } @"_ZN5tokio4sync4mpsc4chan15Rx$LT$T$C$S$GT$9recv_many br label %.sink.split .sink.split: ; preds = %107, %29 - %.sroa.4.1.ph = phi i64 [ 0, %29 ], [ %.sroa.7.0.i, %107 ] - %.sroa.0.1.ph = phi i64 [ 0, %29 ], [ %.sroa.0.0.i20, %107 ] + %.sroa.0.0.pn.ph = phi i64 [ 0, %29 ], [ %.sroa.0.0.i20, %107 ] + %.pn53.ph = phi i64 [ 0, %29 ], [ %.sroa.7.0.i, %107 ] call void @"_ZN80_$LT$tokio..runtime..coop..RestoreOnPending$u20$as$u20$core..ops..drop..Drop$GT$4drop17h96948cf3dca85ca0E"(ptr noalias noundef nonnull align 1 dereferenceable(2) %10) br label %108 108: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit", %.sink.split - %.sroa.4.1 = phi i64 [ 0, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" ], [ %.sroa.4.1.ph, %.sink.split ] - %.sroa.0.1 = phi i64 [ 1, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" ], [ %.sroa.0.1.ph, %.sink.split ] + %.sroa.0.0.pn = phi i64 [ 1, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" ], [ %.sroa.0.0.pn.ph, %.sink.split ] + %.pn53 = phi i64 [ 0, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" ], [ %.pn53.ph, %.sink.split ] call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %10) - %109 = insertvalue { i64, i64 } poison, i64 %.sroa.0.1, 0 - %110 = insertvalue { i64, i64 } %109, i64 %.sroa.4.1, 1 - ret { i64, i64 } %110 + %.pn = insertvalue { i64, i64 } poison, i64 %.sroa.0.0.pn, 0 + %.merged = insertvalue { i64, i64 } %.pn, i64 %.pn53, 1 + ret { i64, i64 } %.merged -111: ; preds = %.body - %112 = landingpad { ptr, i32 } +109: ; preds = %.body + %110 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hd62aa59d1fda1c9fE() #48 unreachable diff --git a/bench/minetest/optimized/game.cpp.ll b/bench/minetest/optimized/game.cpp.ll index 2b63cac945e..259d06049b7 100644 --- a/bench/minetest/optimized/game.cpp.ll +++ b/bench/minetest/optimized/game.cpp.ll @@ -37930,8 +37930,6 @@ if.then.i.i877: ; preds = %lpad13 br label %ehcleanup ehcleanup: ; preds = %if.then.i.i877, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i878 - %exn.slot.0 = extractvalue { ptr, i32 } %20, 0 - %ehselector.slot.0 = extractvalue { ptr, i32 } %20, 1 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp8) #40 br label %ehcleanup718 @@ -38240,8 +38238,6 @@ ehcleanup109: ; preds = %if.then.i.i950, %_Z ehcleanup114: ; preds = %ehcleanup109, %lpad91, %ehcleanup87, %lpad70, %lpad62, %lpad58 %.pn859.pn.pn.pn = phi { ptr, i32 } [ %56, %lpad62 ], [ %55, %lpad58 ], [ %57, %lpad70 ], [ %62, %ehcleanup109 ], [ %61, %lpad91 ], [ %58, %ehcleanup87 ] - %exn.slot.5 = extractvalue { ptr, i32 } %.pn859.pn.pn.pn, 0 - %ehselector.slot.5 = extractvalue { ptr, i32 } %.pn859.pn.pn.pn, 1 %65 = load ptr, ptr %name.i, align 8, !tbaa !11 %cmp.i.i.i.i956 = icmp eq ptr %65, %32 br i1 %cmp.i.i.i.i956, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i.i958, label %if.then.i.i.i957 @@ -38897,8 +38893,6 @@ if.then.i.i1149: ; preds = %lpad328 br label %ehcleanup332 ehcleanup332: ; preds = %if.then.i.i1149, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i1150 - %exn.slot.6 = extractvalue { ptr, i32 } %175, 0 - %ehselector.slot.6 = extractvalue { ptr, i32 } %175, 1 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp324) #40 br label %ehcleanup702 @@ -39093,8 +39087,6 @@ if.then.i.i1252: ; preds = %lpad435 br label %ehcleanup439 ehcleanup439: ; preds = %if.then.i.i1252, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i1253 - %exn.slot.7 = extractvalue { ptr, i32 } %197, 0 - %ehselector.slot.7 = extractvalue { ptr, i32 } %197, 1 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp431) #40 br label %ehcleanup702 @@ -39487,13 +39479,13 @@ _ZN9SoundSpecaSERKS_.exit1369: ; preds = %if.else669 ehcleanup676: ; preds = %cleanup.action642, %lpad489 %.pn855 = phi { ptr, i32 } [ %241, %lpad489 ], [ %.pn845.pn.pn.pn.pn.pn.pn.pn.pn, %cleanup.action642 ] - %exn.slot.17 = extractvalue { ptr, i32 } %.pn855, 0 %ehselector.slot.17 = extractvalue { ptr, i32 } %.pn855, 1 %259 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTI24InvalidPositionException) #40 %matches = icmp eq i32 %ehselector.slot.17, %259 br i1 %matches, label %catch, label %ehcleanup702 catch: ; preds = %ehcleanup676 + %exn.slot.17 = extractvalue { ptr, i32 } %.pn855, 0 %260 = call ptr @__cxa_begin_catch(ptr %exn.slot.17) #40 %.not30 = icmp eq ptr @_ZTH11errorstream, null br i1 %.not30, label %_ZTW11errorstream.exit1370, label %261 @@ -39566,21 +39558,15 @@ lpad677: ; preds = %invoke.cont689, %if %271 = landingpad { ptr, i32 } cleanup invoke void @__cxa_end_catch() - to label %invoke.cont698 unwind label %terminate.lpad - -invoke.cont698: ; preds = %lpad677 - %272 = extractvalue { ptr, i32 } %271, 1 - %273 = extractvalue { ptr, i32 } %271, 0 - br label %ehcleanup702 + to label %ehcleanup702 unwind label %terminate.lpad cleanup701: ; preds = %invoke.cont694, %_ZN9SoundSpecaSERKS_.exit1369, %_ZN9SoundSpecaSERKS_.exit, %if.then405 %retval.2 = phi i1 [ false, %invoke.cont694 ], [ false, %if.then405 ], [ false, %_ZN9SoundSpecaSERKS_.exit1369 ], [ true, %_ZN9SoundSpecaSERKS_.exit ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %predicted_node) #40 br label %cleanup709 -ehcleanup702: ; preds = %invoke.cont698, %ehcleanup676, %ehcleanup439, %ehcleanup332 - %ehselector.slot.18 = phi i32 [ %272, %invoke.cont698 ], [ %ehselector.slot.17, %ehcleanup676 ], [ %ehselector.slot.7, %ehcleanup439 ], [ %ehselector.slot.6, %ehcleanup332 ] - %exn.slot.18 = phi ptr [ %273, %invoke.cont698 ], [ %exn.slot.17, %ehcleanup676 ], [ %exn.slot.7, %ehcleanup439 ], [ %exn.slot.6, %ehcleanup332 ] +ehcleanup702: ; preds = %lpad677, %ehcleanup676, %ehcleanup439, %ehcleanup332 + %.merged = phi { ptr, i32 } [ %.pn855, %ehcleanup676 ], [ %197, %ehcleanup439 ], [ %175, %ehcleanup332 ], [ %271, %lpad677 ] call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %predicted_node) #40 call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %id) #40 br label %ehcleanup718 @@ -39596,18 +39582,15 @@ cleanup717: ; preds = %cleanup709, %if.the ret i1 %retval.5 ehcleanup718: ; preds = %ehcleanup702, %_ZN17InventoryLocationD2Ev.exit961, %ehcleanup - %ehselector.slot.19 = phi i32 [ %ehselector.slot.5, %_ZN17InventoryLocationD2Ev.exit961 ], [ %ehselector.slot.18, %ehcleanup702 ], [ %ehselector.slot.0, %ehcleanup ] - %exn.slot.19 = phi ptr [ %exn.slot.5, %_ZN17InventoryLocationD2Ev.exit961 ], [ %exn.slot.18, %ehcleanup702 ], [ %exn.slot.0, %ehcleanup ] + %lpad.val729.merged = phi { ptr, i32 } [ %.pn859.pn.pn.pn, %_ZN17InventoryLocationD2Ev.exit961 ], [ %.merged, %ehcleanup702 ], [ %20, %ehcleanup ] call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %is_valid_position) #40 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn.slot.19, 0 - %lpad.val729 = insertvalue { ptr, i32 } %lpad.val, i32 %ehselector.slot.19, 1 - resume { ptr, i32 } %lpad.val729 + resume { ptr, i32 } %lpad.val729.merged terminate.lpad: ; preds = %lpad677 - %274 = landingpad { ptr, i32 } + %272 = landingpad { ptr, i32 } catch ptr null - %275 = extractvalue { ptr, i32 } %274, 0 - call void @__clang_call_terminate(ptr %275) #43 + %273 = extractvalue { ptr, i32 } %272, 0 + call void @__clang_call_terminate(ptr %273) #43 unreachable } diff --git a/bench/minetest/optimized/server.cpp.ll b/bench/minetest/optimized/server.cpp.ll index 28a04968dea..646ad2943bb 100644 --- a/bench/minetest/optimized/server.cpp.ll +++ b/bench/minetest/optimized/server.cpp.ll @@ -25919,8 +25919,6 @@ if.then.i.i175: ; preds = %lpad3 ehcleanup: ; preds = %if.then.i.i175, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i176, %lpad %.pn = phi { ptr, i32 } [ %16, %lpad ], [ %17, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i176 ], [ %17, %if.then.i.i175 ] - %exn.slot.0 = extractvalue { ptr, i32 } %.pn, 0 - %ehselector.slot.0 = extractvalue { ptr, i32 } %.pn, 1 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp) #34 br label %_ZNSt11unique_lockISt5mutexED2Ev.exit291 @@ -26375,18 +26373,12 @@ lpad90: ; preds = %if.then.i281, %invo lpad96: ; preds = %invoke.cont93 %74 = landingpad { ptr, i32 } cleanup - br label %ehcleanup100 + br label %ehcleanup125 ehcleanup98: ; preds = %lpad90, %lpad83 %.pn155 = phi { ptr, i32 } [ %73, %lpad90 ], [ %72, %lpad83 ] invoke void @__cxa_end_catch() - to label %ehcleanup100 unwind label %terminate.lpad - -ehcleanup100: ; preds = %ehcleanup98, %lpad96 - %.pn157 = phi { ptr, i32 } [ %74, %lpad96 ], [ %.pn155, %ehcleanup98 ] - %exn.slot.4 = extractvalue { ptr, i32 } %.pn157, 0 - %ehselector.slot.4 = extractvalue { ptr, i32 } %.pn157, 1 - br label %ehcleanup125 + to label %ehcleanup125 unwind label %terminate.lpad lpad104: ; preds = %invoke.cont105, %_ZTW11errorstream.exit271 %75 = landingpad { ptr, i32 } @@ -26402,33 +26394,23 @@ lpad113: ; preds = %if.then.i273, %invo lpad119: ; preds = %invoke.cont116 %77 = landingpad { ptr, i32 } cleanup - br label %ehcleanup123 + br label %ehcleanup125 ehcleanup121: ; preds = %lpad113, %lpad104 %.pn159 = phi { ptr, i32 } [ %76, %lpad113 ], [ %75, %lpad104 ] invoke void @__cxa_end_catch() - to label %ehcleanup123 unwind label %terminate.lpad - -ehcleanup123: ; preds = %ehcleanup121, %lpad119 - %.pn161 = phi { ptr, i32 } [ %77, %lpad119 ], [ %.pn159, %ehcleanup121 ] - %exn.slot.6 = extractvalue { ptr, i32 } %.pn161, 0 - %ehselector.slot.6 = extractvalue { ptr, i32 } %.pn161, 1 - br label %ehcleanup125 + to label %ehcleanup125 unwind label %terminate.lpad -ehcleanup125: ; preds = %ehcleanup123, %ehcleanup100, %catch.fallthrough - %ehselector.slot.7 = phi i32 [ %ehselector.slot.6, %ehcleanup123 ], [ %ehselector.slot.4, %ehcleanup100 ], [ %ehselector.slot.2, %catch.fallthrough ] - %exn.slot.7 = phi ptr [ %exn.slot.6, %ehcleanup123 ], [ %exn.slot.4, %ehcleanup100 ], [ %exn.slot.2, %catch.fallthrough ] +ehcleanup125: ; preds = %lpad119, %ehcleanup121, %lpad96, %ehcleanup98, %catch.fallthrough + %.merged = phi { ptr, i32 } [ %.pn153, %catch.fallthrough ], [ %74, %lpad96 ], [ %.pn155, %ehcleanup98 ], [ %77, %lpad119 ], [ %.pn159, %ehcleanup121 ] call void @_ZN13ScopeProfilerD1Ev(ptr noundef nonnull align 8 dereferenceable(52) %sp) #34 br label %_ZNSt11unique_lockISt5mutexED2Ev.exit291 _ZNSt11unique_lockISt5mutexED2Ev.exit291: ; preds = %ehcleanup125, %ehcleanup - %ehselector.slot.8 = phi i32 [ %ehselector.slot.7, %ehcleanup125 ], [ %ehselector.slot.0, %ehcleanup ] - %exn.slot.8 = phi ptr [ %exn.slot.7, %ehcleanup125 ], [ %exn.slot.0, %ehcleanup ] + %lpad.val138.merged = phi { ptr, i32 } [ %.merged, %ehcleanup125 ], [ %.pn, %ehcleanup ] call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %sp) #34 %call1.i.i.i.i290 = call noundef i32 @pthread_mutex_unlock(ptr noundef nonnull %m_env_mutex) #34 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn.slot.8, 0 - %lpad.val138 = insertvalue { ptr, i32 } %lpad.val, i32 %ehselector.slot.8, 1 - resume { ptr, i32 } %lpad.val138 + resume { ptr, i32 } %lpad.val138.merged terminate.lpad: ; preds = %ehcleanup121, %ehcleanup98 %78 = landingpad { ptr, i32 } @@ -58600,8 +58582,6 @@ if.then.i.i357: ; preds = %lpad2 ehcleanup: ; preds = %if.then.i.i357, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i358, %lpad %.pn = phi { ptr, i32 } [ %46, %lpad ], [ %47, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i358 ], [ %47, %if.then.i.i357 ] - %exn.slot.0 = extractvalue { ptr, i32 } %.pn, 0 - %ehselector.slot.0 = extractvalue { ptr, i32 } %.pn, 1 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp) #34 br label %ehcleanup277 @@ -60235,25 +60215,26 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.threa %268 = load i64, ptr %_M_string_length.i.i.i.i325, align 8, !tbaa !14 %cmp3.i.i.i777 = icmp ult i64 %268, 16 call void @llvm.assume(i1 %cmp3.i.i.i777) + %269 = insertvalue { ptr, i32 } poison, ptr %exn.slot.20, 0 + %270 = insertvalue { ptr, i32 } %269, i32 %ehselector.slot.20, 1 br label %ehcleanup277 if.then.i.i773: ; preds = %ehcleanup269 call void @_ZdlPv(ptr noundef %267) #35 + %271 = insertvalue { ptr, i32 } poison, ptr %exn.slot.20, 0 + %272 = insertvalue { ptr, i32 } %271, i32 %ehselector.slot.20, 1 br label %ehcleanup277 ehcleanup277: ; preds = %if.then.i.i773, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i775, %ehcleanup - %ehselector.slot.22 = phi i32 [ %ehselector.slot.0, %ehcleanup ], [ %ehselector.slot.20, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i775 ], [ %ehselector.slot.20, %if.then.i.i773 ] - %exn.slot.22 = phi ptr [ %exn.slot.0, %ehcleanup ], [ %exn.slot.20, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i775 ], [ %exn.slot.20, %if.then.i.i773 ] + %lpad.val280.merged = phi { ptr, i32 } [ %.pn, %ehcleanup ], [ %270, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i775 ], [ %272, %if.then.i.i773 ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %migrate_to) #34 - %lpad.val = insertvalue { ptr, i32 } poison, ptr %exn.slot.22, 0 - %lpad.val280 = insertvalue { ptr, i32 } %lpad.val, i32 %ehselector.slot.22, 1 - resume { ptr, i32 } %lpad.val280 + resume { ptr, i32 } %lpad.val280.merged terminate.lpad: ; preds = %ehcleanup209 - %269 = landingpad { ptr, i32 } + %273 = landingpad { ptr, i32 } catch ptr null - %270 = extractvalue { ptr, i32 } %269, 0 - call void @__clang_call_terminate(ptr %270) #36 + %274 = extractvalue { ptr, i32 } %273, 0 + call void @__clang_call_terminate(ptr %274) #36 unreachable } diff --git a/bench/mini-lsm-rs/optimized/2j7sj03n10nloiwr.ll b/bench/mini-lsm-rs/optimized/2j7sj03n10nloiwr.ll index a00d19cc3a6..dd40f467efe 100644 --- a/bench/mini-lsm-rs/optimized/2j7sj03n10nloiwr.ll +++ b/bench/mini-lsm-rs/optimized/2j7sj03n10nloiwr.ll @@ -11327,7 +11327,7 @@ define { i64, ptr } @_ZN13mini_lsm_mvcc5table7SsTable17read_block_cached17he99c3 %68 = getelementptr inbounds i8, ptr %0, i64 136 %69 = load ptr, ptr %68, align 8, !noundef !4 %.not = icmp eq ptr %69, null - br i1 %.not, label %996, label %70 + br i1 %.not, label %998, label %70 70: ; preds = %2 %71 = getelementptr inbounds i8, ptr %69, i64 16 @@ -13961,12 +13961,12 @@ common.resume: ; preds = %981, %986, %.body.i "_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit.thread": ; preds = %152, %156 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65), !noalias !2136 - br label %999 + br label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit" "_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit": ; preds = %939, %943 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %63), !noalias !2152 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %65), !noalias !2136 - br i1 %switch.i, label %999, label %979 + br i1 %switch.i, label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit", label %979 979: ; preds = %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit" call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) @@ -14019,12 +14019,12 @@ common.resume: ; preds = %981, %986, %.body.i %990 = load ptr, ptr %7, align 8, !alias.scope !2673, !nonnull !4, !noundef !4 %991 = atomicrmw sub ptr %990, i64 1 release, align 8, !noalias !2673 %992 = icmp eq i64 %991, 1 - br i1 %992, label %993, label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit" + br i1 %992, label %993, label %"_ZN13mini_lsm_mvcc5table7SsTable17read_block_cached28_$u7b$$u7b$closure$u7d$$u7d$17hefd575f4ce42213dE.exit.i" 993: ; preds = %989 fence acquire call void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h0a4da7c92fa646bfE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %7) - br label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit" + br label %"_ZN13mini_lsm_mvcc5table7SsTable17read_block_cached28_$u7b$$u7b$closure$u7d$$u7d$17hefd575f4ce42213dE.exit.i" 994: ; preds = %986 %995 = landingpad { ptr, i32 } @@ -14032,23 +14032,25 @@ common.resume: ; preds = %981, %986, %.body.i call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #41 unreachable -"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit": ; preds = %989, %993 +"_ZN13mini_lsm_mvcc5table7SsTable17read_block_cached28_$u7b$$u7b$closure$u7d$$u7d$17hefd575f4ce42213dE.exit.i": ; preds = %993, %989 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) - br label %999 - -996: ; preds = %2 - %997 = tail call { i64, ptr } @_ZN13mini_lsm_mvcc5table7SsTable10read_block17h603858a7c3fde5d4E(ptr noundef nonnull align 8 %0, i64 noundef %1) - %.fca.0.extract = extractvalue { i64, ptr } %997, 0 - %998 = extractvalue { i64, ptr } %997, 1 - br label %999 - -999: ; preds = %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit.thread", %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit", %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit", %996 - %.pn = phi ptr [ %998, %996 ], [ %988, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit" ], [ %150, %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit.thread" ], [ %865, %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit" ] - %.sroa.0.0 = phi i64 [ %.fca.0.extract, %996 ], [ 1, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit" ], [ 0, %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit.thread" ], [ 0, %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit" ] - %1000 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 - %1001 = insertvalue { i64, ptr } %1000, ptr %.pn, 1 - ret { i64, ptr } %1001 + br label %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit" + +"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit": ; preds = %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit.thread", %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit", %"_ZN13mini_lsm_mvcc5table7SsTable17read_block_cached28_$u7b$$u7b$closure$u7d$$u7d$17hefd575f4ce42213dE.exit.i" + %switch = phi i64 [ 1, %"_ZN13mini_lsm_mvcc5table7SsTable17read_block_cached28_$u7b$$u7b$closure$u7d$$u7d$17hefd575f4ce42213dE.exit.i" ], [ 0, %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit" ], [ 0, %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit.thread" ] + %.sroa.3.0.i = phi ptr [ %988, %"_ZN13mini_lsm_mvcc5table7SsTable17read_block_cached28_$u7b$$u7b$closure$u7d$$u7d$17hefd575f4ce42213dE.exit.i" ], [ %865, %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit" ], [ %150, %"_ZN4moka4sync5cache22Cache$LT$K$C$V$C$S$GT$12try_get_with17h521c303a592e2ca1E.exit.thread" ] + %996 = insertvalue { i64, ptr } poison, i64 %switch, 0 + %997 = insertvalue { i64, ptr } %996, ptr %.sroa.3.0.i, 1 + br label %1000 + +998: ; preds = %2 + %999 = tail call { i64, ptr } @_ZN13mini_lsm_mvcc5table7SsTable10read_block17h603858a7c3fde5d4E(ptr noundef nonnull align 8 %0, i64 noundef %1) + br label %1000 + +1000: ; preds = %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit", %998 + %.merged = phi { i64, ptr } [ %999, %998 ], [ %997, %"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17hdd4d2f9a225003a2E.exit" ] + ret { i64, ptr } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/mini-lsm-rs/optimized/4c6shhrwpfde8fun.ll b/bench/mini-lsm-rs/optimized/4c6shhrwpfde8fun.ll index d0d97dda92c..827ef078a28 100644 --- a/bench/mini-lsm-rs/optimized/4c6shhrwpfde8fun.ll +++ b/bench/mini-lsm-rs/optimized/4c6shhrwpfde8fun.ll @@ -105,51 +105,45 @@ define hidden { i64, i32 } @_ZN15crossbeam_utils6atomic11atomic_cell11atomic_loa %12 = icmp eq i64 %11, 1 br i1 %12, label %.lr.ph, label %._crit_edge -13: ; preds = %6 - %14 = extractvalue { i64, i32 } %7, 1 - %15 = extractvalue { i64, i32 } %7, 0 - br label %16 - -16: ; preds = %._crit_edge, %13 - %.sroa.3.0 = phi i32 [ %14, %13 ], [ %29, %._crit_edge ] - %.sroa.0.0 = phi i64 [ %15, %13 ], [ %27, %._crit_edge ] - %17 = insertvalue { i64, i32 } poison, i64 %.sroa.0.0, 0 - %18 = insertvalue { i64, i32 } %17, i32 %.sroa.3.0, 1 - ret { i64, i32 } %18 +13: ; preds = %6, %._crit_edge + %.merged = phi { i64, i32 } [ %26, %._crit_edge ], [ %7, %6 ] + ret { i64, i32 } %.merged .lr.ph: ; preds = %10, %.thread.i %.07 = phi i32 [ %spec.select, %.thread.i ], [ 0, %10 ] - %19 = icmp ult i32 %.07, 7 - br i1 %19, label %.preheader.i, label %20 + %14 = icmp ult i32 %.07, 7 + br i1 %14, label %.preheader.i, label %15 -20: ; preds = %.lr.ph +15: ; preds = %.lr.ph tail call void @_ZN3std6thread9yield_now17h7997a258d0252531E() br label %.thread.i -.thread.i: ; preds = %.preheader.i, %20 - %21 = icmp ult i32 %.07, 11 - %22 = zext i1 %21 to i32 - %spec.select = add nuw nsw i32 %.07, %22 - %23 = atomicrmw xchg ptr %4, i64 1 acquire, align 8 - %24 = icmp eq i64 %23, 1 - br i1 %24, label %.lr.ph, label %._crit_edge +.thread.i: ; preds = %.preheader.i, %15 + %16 = icmp ult i32 %.07, 11 + %17 = zext i1 %16 to i32 + %spec.select = add nuw nsw i32 %.07, %17 + %18 = atomicrmw xchg ptr %4, i64 1 acquire, align 8 + %19 = icmp eq i64 %18, 1 + br i1 %19, label %.lr.ph, label %._crit_edge .preheader.i: ; preds = %.lr.ph, %.preheader.i - %.sroa.01.08.i = phi i32 [ %25, %.preheader.i ], [ 0, %.lr.ph ] - %25 = add nuw nsw i32 %.sroa.01.08.i, 1 + %.sroa.01.08.i = phi i32 [ %20, %.preheader.i ], [ 0, %.lr.ph ] + %20 = add nuw nsw i32 %.sroa.01.08.i, 1 tail call void @llvm.x86.sse2.pause() #23 - %.sroa.01.0.highbits.i = lshr i32 %25, %.07 - %26 = icmp eq i32 %.sroa.01.0.highbits.i, 0 - br i1 %26, label %.preheader.i, label %.thread.i + %.sroa.01.0.highbits.i = lshr i32 %20, %.07 + %21 = icmp eq i32 %.sroa.01.0.highbits.i, 0 + br i1 %21, label %.preheader.i, label %.thread.i ._crit_edge: ; preds = %.thread.i, %10 - %.lcssa = phi i64 [ %11, %10 ], [ %23, %.thread.i ] + %.lcssa = phi i64 [ %11, %10 ], [ %18, %.thread.i ] fence release - %27 = load i64, ptr %0, align 8, !noundef !4 - %28 = getelementptr inbounds i8, ptr %0, i64 8 - %29 = load i32, ptr %28, align 8, !range !5, !noundef !4 + %22 = load i64, ptr %0, align 8, !noundef !4 + %23 = getelementptr inbounds i8, ptr %0, i64 8 + %24 = load i32, ptr %23, align 8, !range !5, !noundef !4 store atomic i64 %.lcssa, ptr %4 release, align 8 - br label %16 + %25 = insertvalue { i64, i32 } poison, i64 %22, 0 + %26 = insertvalue { i64, i32 } %25, i32 %24, 1 + br label %13 } ; Function Attrs: mustprogress nofree norecurse nounwind nonlazybind willreturn memory(argmem: readwrite) uwtable diff --git a/bench/mini-lsm-rs/optimized/4ewvyiut5id4i5es.ll b/bench/mini-lsm-rs/optimized/4ewvyiut5id4i5es.ll index 7669a591f8a..7607b3f597b 100644 --- a/bench/mini-lsm-rs/optimized/4ewvyiut5id4i5es.ll +++ b/bench/mini-lsm-rs/optimized/4ewvyiut5id4i5es.ll @@ -2719,15 +2719,14 @@ default.unreachable.i.i.i.i: ; preds = %.noexc.i.i.i "_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h4b17922528f005c8E.exit": ; preds = %6, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17h2ff7a84dac969ad4E.exit.i" %80 = phi i64 [ %22, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17h2ff7a84dac969ad4E.exit.i" ], [ %15, %6 ] %81 = phi ptr [ %20, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17h2ff7a84dac969ad4E.exit.i" ], [ %13, %6 ] + %82 = insertvalue { ptr, i64 } poison, ptr %81, 0 + %83 = insertvalue { ptr, i64 } %82, i64 %80, 1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hd613401d147b48f7E.exit.thread" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hd613401d147b48f7E.exit.thread": ; preds = %1, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h4b17922528f005c8E.exit" - %.sroa.3.0 = phi i64 [ %80, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h4b17922528f005c8E.exit" ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %81, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h4b17922528f005c8E.exit" ], [ null, %1 ] - %82 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %83 = insertvalue { ptr, i64 } %82, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %83 + %.merged = phi { ptr, i64 } [ %83, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h4b17922528f005c8E.exit" ], [ { ptr null, i64 undef }, %1 ] + ret { ptr, i64 } %.merged } ; Function Attrs: nonlazybind uwtable @@ -2942,15 +2941,14 @@ default.unreachable.i.i.i.i: ; preds = %.noexc.i.i.i "_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h098ebd32b625db9cE.exit": ; preds = %6, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17h7815d7cf41f942c7E.exit.i" %79 = phi i64 [ %22, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17h7815d7cf41f942c7E.exit.i" ], [ %15, %6 ] %80 = phi ptr [ %20, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17h7815d7cf41f942c7E.exit.i" ], [ %13, %6 ] + %81 = insertvalue { ptr, i64 } poison, ptr %80, 0 + %82 = insertvalue { ptr, i64 } %81, i64 %79, 1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17h93b94a31205f74f4E.exit.thread" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17h93b94a31205f74f4E.exit.thread": ; preds = %1, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h098ebd32b625db9cE.exit" - %.sroa.3.0 = phi i64 [ %79, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h098ebd32b625db9cE.exit" ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %80, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h098ebd32b625db9cE.exit" ], [ null, %1 ] - %81 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %82 = insertvalue { ptr, i64 } %81, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %82 + %.merged = phi { ptr, i64 } [ %82, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h098ebd32b625db9cE.exit" ], [ { ptr null, i64 undef }, %1 ] + ret { ptr, i64 } %.merged } ; Function Attrs: nonlazybind uwtable @@ -3134,15 +3132,14 @@ default.unreachable.i.i.i: ; preds = %.noexc31.i.i "_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h7dad814b2f7056ffE.exit": ; preds = %54, %6 %69 = phi i64 [ %23, %54 ], [ %15, %6 ] %70 = phi ptr [ %21, %54 ], [ %13, %6 ] + %71 = insertvalue { ptr, i64 } poison, ptr %70, 0 + %72 = insertvalue { ptr, i64 } %71, i64 %69, 1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17h677f52a4112b815dE.exit.thread" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17h677f52a4112b815dE.exit.thread": ; preds = %1, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h7dad814b2f7056ffE.exit" - %.sroa.3.0 = phi i64 [ %69, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h7dad814b2f7056ffE.exit" ], [ undef, %1 ] - %.sroa.0.0 = phi ptr [ %70, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h7dad814b2f7056ffE.exit" ], [ null, %1 ] - %71 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %72 = insertvalue { ptr, i64 } %71, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %72 + %.merged = phi { ptr, i64 } [ %72, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h7dad814b2f7056ffE.exit" ], [ { ptr null, i64 undef }, %1 ] + ret { ptr, i64 } %.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: read) uwtable diff --git a/bench/mini-lsm-rs/optimized/4xntel1vrsy72qk8.ll b/bench/mini-lsm-rs/optimized/4xntel1vrsy72qk8.ll index e68beab28c2..53882fd3d37 100644 --- a/bench/mini-lsm-rs/optimized/4xntel1vrsy72qk8.ll +++ b/bench/mini-lsm-rs/optimized/4xntel1vrsy72qk8.ll @@ -3803,7 +3803,7 @@ define internal fastcc { ptr, i64 } @"_ZN5alloc11collections11binary_heap23Binar %14 = load i64, ptr %13, align 8, !noalias !875, !noundef !4 tail call void @llvm.experimental.noalias.scope.decl(metadata !878) %15 = icmp eq i64 %6, 0 - br i1 %15, label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hcf21dc7803f3b6d3E.exit.thread", label %16 + br i1 %15, label %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h28d94dbf967720c4E.exit", label %16 16: ; preds = %5 %17 = load ptr, ptr %10, align 8, !alias.scope !881, !noalias !884, !nonnull !4, !align !5, !noundef !4 @@ -3972,14 +3972,18 @@ default.unreachable.i.i.i.i.i: ; preds = %60 store ptr %12, ptr %87, align 8, !noalias !878 %.sroa.13.16..sroa_idx.i.i.i = getelementptr inbounds i8, ptr %87, i64 8 store i64 %14, ptr %.sroa.13.16..sroa_idx.i.i.i, align 8, !noalias !878 + br label %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h28d94dbf967720c4E.exit" + +"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h28d94dbf967720c4E.exit": ; preds = %5, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17ha12e688016bf4400E.exit.i" + %.sroa.3.0.i5 = phi i64 [ %14, %5 ], [ %19, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17ha12e688016bf4400E.exit.i" ] + %.sroa.0.0.i6 = phi ptr [ %12, %5 ], [ %17, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17ha12e688016bf4400E.exit.i" ] + %88 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0.i6, 0 + %89 = insertvalue { ptr, i64 } %88, i64 %.sroa.3.0.i5, 1 br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hcf21dc7803f3b6d3E.exit.thread" -"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hcf21dc7803f3b6d3E.exit.thread": ; preds = %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17ha12e688016bf4400E.exit.i", %5, %1 - %.sroa.3.0 = phi i64 [ undef, %1 ], [ %14, %5 ], [ %19, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17ha12e688016bf4400E.exit.i" ] - %.sroa.0.0 = phi ptr [ null, %1 ], [ %12, %5 ], [ %17, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$19sift_down_to_bottom17ha12e688016bf4400E.exit.i" ] - %88 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0, 0 - %89 = insertvalue { ptr, i64 } %88, i64 %.sroa.3.0, 1 - ret { ptr, i64 } %89 +"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hcf21dc7803f3b6d3E.exit.thread": ; preds = %1, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h28d94dbf967720c4E.exit" + %.merged = phi { ptr, i64 } [ %89, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17h28d94dbf967720c4E.exit" ], [ { ptr null, i64 undef }, %1 ] + ret { ptr, i64 } %.merged } ; Function Attrs: nonlazybind uwtable @@ -4164,15 +4168,14 @@ default.unreachable.i.i.i.i: ; preds = %"_ZN122_$LT$mini_ls "_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17hc7d13592f6655c46E.exit": ; preds = %62, %6 %77 = phi i64 [ %23, %62 ], [ %15, %6 ] %78 = phi ptr [ %21, %62 ], [ %13, %6 ] + %79 = insertvalue { ptr, i64 } poison, ptr %78, 0 + %80 = insertvalue { ptr, i64 } %79, i64 %77, 1 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %2) br label %"_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hf07550a5800b94d3E.exit.thread" "_ZN5alloc3vec16Vec$LT$T$C$A$GT$3pop17hf07550a5800b94d3E.exit.thread": ; preds = %1, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17hc7d13592f6655c46E.exit" - %.sroa.3.0 = phi i64 [ %77, %"_ZN5alloc11collections11binary_heap23BinaryHeap$LT$T$C$A$GT$3pop28_$u7b$$u7b$closure$u7d$$u7d$17hc7d13592f6655c46E.ex{"code":"internal","msg":"git-diff-tree: context deadline exceeded","meta":{"cause":"*fmt.wrapError"}}