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 6e4e0545242..acc8bad6150 100644 --- a/bench/abseil-cpp/optimized/node_hash_map_test.cc.ll +++ b/bench/abseil-cpp/optimized/node_hash_map_test.cc.ll @@ -148522,7 +148522,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 @@ -148587,13 +148587,16 @@ while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, tail call void @_ZdlPv(ptr noundef %19) #33 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 @@ -149451,7 +149454,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 @@ -149522,13 +149525,16 @@ while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, tail call void @_ZdlPv(ptr noundef %19) #33 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/node_hash_set_test.cc.ll b/bench/abseil-cpp/optimized/node_hash_set_test.cc.ll index ae063374bf7..ced248dabb4 100644 --- a/bench/abseil-cpp/optimized/node_hash_set_test.cc.ll +++ b/bench/abseil-cpp/optimized/node_hash_set_test.cc.ll @@ -212211,7 +212211,7 @@ _ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyIiEENS0_19Stat while.cond.preheader: ; preds = %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyIiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIiEEE5beginEv.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_17NodeHashSetPolicyIiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIiEEE5beginEv.exit %capacity_.i.i.i = getelementptr inbounds i8, ptr %this, i64 16 @@ -212276,13 +212276,16 @@ while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, tail call void @_ZdlPv(ptr noundef %19) #33 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 !4798 + br i1 %cmp.i.i.i5.not, label %while.end, label %while.body, !llvm.loop !4798 -return: ; preds = %while.end.i.i.i.i, %while.cond.preheader, %entry, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyIiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIiEEE13destroy_slotsEv.exit - %retval.sroa.0.0 = phi ptr [ null, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyIiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIiEEE13destroy_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_17NodeHashSetPolicyIiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIiEEE13destroy_slotsEv.exit + %.fca.1.insert.merged = phi { ptr, ptr } [ { ptr null, ptr undef }, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyIiEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIiEEE13destroy_slotsEv.exit ], [ %21, %while.end ], [ { ptr null, ptr undef }, %entry ] + ret { ptr, ptr } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable @@ -213444,7 +213447,7 @@ _ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINSt7__cxx1112 while.cond.preheader: ; preds = %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS8_EEE5beginEv.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_17NodeHashSetPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS8_EEE5beginEv.exit %capacity_.i.i.i = getelementptr inbounds i8, ptr %this, i64 16 @@ -213511,13 +213514,16 @@ while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, tail call void @_ZdlPv(ptr noundef %19) #33 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 !4822 + br i1 %cmp.i.i.i5.not, label %while.end, label %while.body, !llvm.loop !4822 + +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 = %while.end.i.i.i.i, %while.cond.preheader, %entry, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS8_EEE13destroy_slotsEv.exit - %retval.sroa.0.0 = phi ptr [ null, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS8_EEE13destroy_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 +return: ; preds = %entry, %while.end, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS8_EEE13destroy_slotsEv.exit + %.fca.1.insert.merged = phi { ptr, ptr } [ { ptr null, ptr undef }, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS8_EEE13destroy_slotsEv.exit ], [ %21, %while.end ], [ { ptr null, ptr undef }, %entry ] + ret { ptr, ptr } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable @@ -214534,7 +214540,7 @@ _ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINS0_13hash_in while.cond.preheader: ; preds = %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINS0_13hash_internal4EnumEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE5beginEv.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_17NodeHashSetPolicyINS0_13hash_internal4EnumEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE5beginEv.exit %capacity_.i.i.i = getelementptr inbounds i8, ptr %this, i64 16 @@ -214599,13 +214605,16 @@ while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, tail call void @_ZdlPv(ptr noundef %19) #33 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 !4835 + br i1 %cmp.i.i.i5.not, label %while.end, label %while.body, !llvm.loop !4835 -return: ; preds = %while.end.i.i.i.i, %while.cond.preheader, %entry, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINS0_13hash_internal4EnumEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE13destroy_slotsEv.exit - %retval.sroa.0.0 = phi ptr [ null, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINS0_13hash_internal4EnumEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE13destroy_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_17NodeHashSetPolicyINS0_13hash_internal4EnumEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE13destroy_slotsEv.exit + %.fca.1.insert.merged = phi { ptr, ptr } [ { ptr null, ptr undef }, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINS0_13hash_internal4EnumEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE13destroy_slotsEv.exit ], [ %21, %while.end ], [ { ptr null, ptr undef }, %entry ] + ret { ptr, ptr } %.fca.1.insert.merged } ; Function Attrs: mustprogress uwtable @@ -215377,7 +215386,7 @@ _ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINS0_13hash_in while.cond.preheader: ; preds = %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINS0_13hash_internal9EnumClassEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE5beginEv.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_17NodeHashSetPolicyINS0_13hash_internal9EnumClassEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE5beginEv.exit %capacity_.i.i.i = getelementptr inbounds i8, ptr %this, i64 16 @@ -215442,13 +215451,16 @@ while.end.i.i.i.i: ; preds = %while.body.i.i.i.i, tail call void @_ZdlPv(ptr noundef %19) #33 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 !4845 + br i1 %cmp.i.i.i5.not, label %while.end, label %while.body, !llvm.loop !4845 + +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 = %while.end.i.i.i.i, %while.cond.preheader, %entry, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINS0_13hash_internal9EnumClassEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE13destroy_slotsEv.exit - %retval.sroa.0.0 = phi ptr [ null, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINS0_13hash_internal9EnumClassEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE13destroy_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 +return: ; preds = %entry, %while.end, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINS0_13hash_internal9EnumClassEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE13destroy_slotsEv.exit + %.fca.1.insert.merged = phi { ptr, ptr } [ { ptr null, ptr undef }, %_ZN4absl18container_internal12raw_hash_setINS0_17NodeHashSetPolicyINS0_13hash_internal9EnumClassEEENS0_19StatefulTestingHashENS0_20StatefulTestingEqualENS0_5AllocIS4_EEE13destroy_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 e8653c7117f..5cb9e3f1f97 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) #9 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) #9 + %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) #9 %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) #9 diff --git a/bench/abseil-cpp/optimized/status.cc.ll b/bench/abseil-cpp/optimized/status.cc.ll index 777549acbda..77604c25819 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) #12 - %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 25faa089333..8c3a3b4dde7 100644 --- a/bench/abseil-cpp/optimized/usage_config_test.cc.ll +++ b/bench/abseil-cpp/optimized/usage_config_test.cc.ll @@ -2155,13 +2155,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 379cf5c5734..ce7eb1e8b62 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/1ghd7r3h0kcgux6d.ll b/bench/actix-rs/optimized/1ghd7r3h0kcgux6d.ll index 6a1f5000927..afbe36ab875 100644 --- a/bench/actix-rs/optimized/1ghd7r3h0kcgux6d.ll +++ b/bench/actix-rs/optimized/1ghd7r3h0kcgux6d.ll @@ -9009,18 +9009,18 @@ define internal fastcc { ptr, i64 } @_ZN6brotli3enc6encode20GetHashTableInternal br i1 %37, label %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0954a30d4fff06b5E.exit.thread", label %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0954a30d4fff06b5E.exit.preheader" "_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0954a30d4fff06b5E.exit.preheader": ; preds = %34, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h0eae92c626cdc926E.exit" - %.sroa.4.0415 = phi i64 [ 1024, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h0eae92c626cdc926E.exit" ], [ %.val26, %34 ] - %.sroa.0.0513 = phi ptr [ %0, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h0eae92c626cdc926E.exit" ], [ %.val25, %34 ] + %.sroa.0.0519 = phi ptr [ %0, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h0eae92c626cdc926E.exit" ], [ %.val25, %34 ] + %.pn917 = phi i64 [ 1024, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h0eae92c626cdc926E.exit" ], [ %.val26, %34 ] %38 = shl i64 %.1, 2 - tail call void @llvm.memset.p0.i64(ptr align 4 %.sroa.0.0513, i8 0, i64 %38, i1 false) + tail call void @llvm.memset.p0.i64(ptr align 4 %.sroa.0.0519, i8 0, i64 %38, i1 false) br label %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0954a30d4fff06b5E.exit.thread" "_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0954a30d4fff06b5E.exit.thread": ; preds = %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0954a30d4fff06b5E.exit.preheader", %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h0eae92c626cdc926E.exit" - %.sroa.4.0416 = phi i64 [ %.sroa.4.0415, %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0954a30d4fff06b5E.exit.preheader" ], [ 1024, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h0eae92c626cdc926E.exit" ] - %.sroa.0.0514 = phi ptr [ %.sroa.0.0513, %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0954a30d4fff06b5E.exit.preheader" ], [ %0, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h0eae92c626cdc926E.exit" ] - %39 = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0514, 0 - %40 = insertvalue { ptr, i64 } %39, i64 %.sroa.4.0416, 1 - ret { ptr, i64 } %40 + %.sroa.0.0520 = phi ptr [ %.sroa.0.0519, %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0954a30d4fff06b5E.exit.preheader" ], [ %0, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h0eae92c626cdc926E.exit" ] + %.pn918 = phi i64 [ %.pn917, %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0954a30d4fff06b5E.exit.preheader" ], [ 1024, %"_ZN106_$LT$core..ops..range..Range$LT$usize$GT$$u20$as$u20$core..slice..index..SliceIndex$LT$$u5b$T$u5d$$GT$$GT$9index_mut17h0eae92c626cdc926E.exit" ] + %.pn = insertvalue { ptr, i64 } poison, ptr %.sroa.0.0520, 0 + %.merged6 = insertvalue { ptr, i64 } %.pn, i64 %.pn918, 1 + ret { ptr, i64 } %.merged6 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/actix-rs/optimized/1heyflno2zbhb99l.ll b/bench/actix-rs/optimized/1heyflno2zbhb99l.ll index 823ad8bcb49..e3ccf9bc9ed 100644 --- a/bench/actix-rs/optimized/1heyflno2zbhb99l.ll +++ b/bench/actix-rs/optimized/1heyflno2zbhb99l.ll @@ -8647,7 +8647,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 @@ -8660,16 +8660,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 @@ -8682,7 +8677,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 @@ -8693,16 +8688,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 @@ -8715,7 +8705,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 @@ -8726,16 +8716,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 c898bf7f452..2096a5c4c1d 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 a7aa0c61764..fd90d972d80 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 95a27e17de0..58ae9ca14e6 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/2sajg5of2ft10y8h.ll b/bench/actix-rs/optimized/2sajg5of2ft10y8h.ll index a05046d784c..fe95a6ca900 100644 --- a/bench/actix-rs/optimized/2sajg5of2ft10y8h.ll +++ b/bench/actix-rs/optimized/2sajg5of2ft10y8h.ll @@ -113,7 +113,7 @@ _ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit %63 = getelementptr inbounds i8, ptr %62, i64 16 %64 = load i64, ptr %63, align 8, !range !7, !invariant.load !3 %65 = invoke align 8 ptr @"_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$9value_mut17h03eccd355f123ee8E"(ptr nonnull align 8 %9) - to label %66 unwind label %92 + to label %66 unwind label %88 66: ; preds = %_ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit.thread %67 = add i64 %64, -1 @@ -123,11 +123,9 @@ _ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit %71 = getelementptr inbounds i8, ptr %62, i64 128 %72 = load ptr, ptr %71, align 8, !invariant.load !3, !nonnull !3 %73 = invoke { i32, i32 } %72(ptr align 1 %70, ptr align 8 %65, ptr nonnull align 8 %1, ptr align 8 %2, i64 %3) - to label %74 unwind label %92 + to label %74 unwind label %88 74: ; preds = %66 - %75 = extractvalue { i32, i32 } %73, 0 - %76 = extractvalue { i32, i32 } %73, 1 %.sroa.01.sroa.0.0.copyload = load i64, ptr %9, align 8 %.sroa.01.sroa.2.0..sroa_idx = getelementptr inbounds i8, ptr %9, i64 8 %.sroa.01.sroa.2.0.copyload = load i64, ptr %.sroa.01.sroa.2.0..sroa_idx, align 8 @@ -138,66 +136,63 @@ _ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %5) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %6) call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %7) - %77 = icmp eq i64 %.sroa.01.sroa.0.0.copyload, 0 - br i1 %77, label %78, label %81 + %75 = icmp eq i64 %.sroa.01.sroa.0.0.copyload, 0 + br i1 %75, label %76, label %79 -78: ; preds = %74 - %79 = inttoptr i64 %.sroa.01.sroa.2.0.copyload to ptr - store ptr %79, ptr %7, align 8 - %80 = trunc nuw i8 %.sroa.01.sroa.4.0.copyload to i1 - br i1 %80, label %85, label %83 +76: ; preds = %74 + %77 = inttoptr i64 %.sroa.01.sroa.2.0.copyload to ptr + store ptr %77, ptr %7, align 8 + %78 = trunc nuw i8 %.sroa.01.sroa.4.0.copyload to i1 + br i1 %78, label %83, label %81 -81: ; preds = %74 +79: ; preds = %74 store i64 %.sroa.01.sroa.2.0.copyload, ptr %6, align 8 - %82 = icmp eq i64 %.sroa.01.sroa.2.0.copyload, 2 - br i1 %82, label %.noexc5, label %86 + %80 = icmp eq i64 %.sroa.01.sroa.2.0.copyload, 2 + br i1 %80, label %.noexc5, label %84 -83: ; preds = %78 - %84 = icmp ne ptr %.sroa.01.sroa.3.0.copyload, null - call void @llvm.assume(i1 %84) - call void @"_ZN14regex_automata4util4pool5inner17Pool$LT$T$C$F$GT$9put_value17hfc868b4c5f713897E"(ptr nonnull align 8 %.sroa.01.sroa.3.0.copyload, ptr align 8 %79) +81: ; preds = %76 + %82 = icmp ne ptr %.sroa.01.sroa.3.0.copyload, null + call void @llvm.assume(i1 %82) + call void @"_ZN14regex_automata4util4pool5inner17Pool$LT$T$C$F$GT$9put_value17hfc868b4c5f713897E"(ptr nonnull align 8 %.sroa.01.sroa.3.0.copyload, ptr align 8 %77) br label %"_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$7put_imp17h9ad714504e7d7a6cE.exit" -85: ; preds = %78 +83: ; preds = %76 call void @"_ZN4core3ptr80drop_in_place$LT$alloc..boxed..Box$LT$regex_automata..meta..regex..Cache$GT$$GT$17h5ee9ac6c044178ceE"(ptr nonnull align 8 %7) br label %"_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$7put_imp17h9ad714504e7d7a6cE.exit" -.noexc5: ; preds = %81 +.noexc5: ; preds = %79 store ptr null, ptr %5, align 8 call void @_ZN4core9panicking13assert_failed17h1f57358f8ec3e200E(i8 1, ptr nonnull align 8 @_ZN14regex_automata4util4pool5inner17THREAD_ID_DROPPED17h57fc349bbbf9736cE, ptr nonnull align 8 %6, ptr nonnull align 8 %5, ptr nonnull align 8 @anon.e75120ad5db99556c36ae7c5eb845701.3) #10 unreachable -86: ; preds = %81 - %87 = icmp ne ptr %.sroa.01.sroa.3.0.copyload, null - call void @llvm.assume(i1 %87) - %88 = getelementptr inbounds i8, ptr %.sroa.01.sroa.3.0.copyload, i64 40 - call void @_ZN4core4sync6atomic12atomic_store17h8309d489731ae414E(ptr nonnull %88, i64 %.sroa.01.sroa.2.0.copyload, i8 1) +84: ; preds = %79 + %85 = icmp ne ptr %.sroa.01.sroa.3.0.copyload, null + call void @llvm.assume(i1 %85) + %86 = getelementptr inbounds i8, ptr %.sroa.01.sroa.3.0.copyload, i64 40 + call void @_ZN4core4sync6atomic12atomic_store17h8309d489731ae414E(ptr nonnull %86, i64 %.sroa.01.sroa.2.0.copyload, i8 1) br label %"_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$7put_imp17h9ad714504e7d7a6cE.exit" -"_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$7put_imp17h9ad714504e7d7a6cE.exit": ; preds = %86, %85, %83 +"_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$7put_imp17h9ad714504e7d7a6cE.exit": ; preds = %84, %83, %81 call void @llvm.lifetime.end.p0(i64 48, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %7) br label %_ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit.thread14 _ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit.thread14: ; preds = %36, %31, %22, %"_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$7put_imp17h9ad714504e7d7a6cE.exit", %_ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit - %.sroa.3.0 = phi i32 [ %76, %"_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$7put_imp17h9ad714504e7d7a6cE.exit" ], [ undef, %_ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit ], [ undef, %22 ], [ undef, %31 ], [ undef, %36 ] - %.sroa.0.0 = phi i32 [ %75, %"_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$7put_imp17h9ad714504e7d7a6cE.exit" ], [ 0, %_ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit ], [ 0, %22 ], [ 0, %31 ], [ 0, %36 ] - %89 = insertvalue { i32, i32 } poison, i32 %.sroa.0.0, 0 - %90 = insertvalue { i32, i32 } %89, i32 %.sroa.3.0, 1 - ret { i32, i32 } %90 + %.merged = phi { i32, i32 } [ %73, %"_ZN14regex_automata4util4pool5inner22PoolGuard$LT$T$C$F$GT$7put_imp17h9ad714504e7d7a6cE.exit" ], [ { i32 0, i32 undef }, %_ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit ], [ { i32 0, i32 undef }, %22 ], [ { i32 0, i32 undef }, %31 ], [ { i32 0, i32 undef }, %36 ] + ret { i32, i32 } %.merged -91: ; preds = %92 +87: ; preds = %88 resume { ptr, i32 } %lpad.thr_comm.split-lp -92: ; preds = %_ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit.thread, %66 +88: ; preds = %_ZN14regex_automata4meta5regex9RegexInfo13is_impossible17h4c32fb66793d62c6E.exit.thread, %66 %lpad.thr_comm.split-lp = landingpad { ptr, i32 } cleanup invoke void @"_ZN4core3ptr366drop_in_place$LT$regex_automata..util..pool..PoolGuard$LT$regex_automata..meta..regex..Cache$C$alloc..boxed..Box$LT$dyn$u20$core..ops..function..Fn$LT$$LP$$RP$$GT$$u2b$Output$u20$$u3d$$u20$regex_automata..meta..regex..Cache$u2b$core..panic..unwind_safe..UnwindSafe$u2b$core..marker..Send$u2b$core..marker..Sync$u2b$core..panic..unwind_safe..RefUnwindSafe$GT$$GT$$GT$17h6b0825514f743d52E"(ptr nonnull align 8 %9) #11 - to label %91 unwind label %93 + to label %87 unwind label %89 -93: ; preds = %92 - %94 = landingpad { ptr, i32 } +89: ; preds = %88 + %90 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hbacfddf1bcf21a1eE() #12 unreachable diff --git a/bench/actix-rs/optimized/38w83wyqv1thu0n9.ll b/bench/actix-rs/optimized/38w83wyqv1thu0n9.ll index dbf0cb9245f..ce24f04f373 100644 --- a/bench/actix-rs/optimized/38w83wyqv1thu0n9.ll +++ b/bench/actix-rs/optimized/38w83wyqv1thu0n9.ll @@ -1763,10 +1763,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 @@ -1820,10 +1820,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 @@ -8363,20 +8363,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 b23eba62a83..9a58cda97a6 100644 --- a/bench/actix-rs/optimized/3r4ha69xj2bs6l86.ll +++ b/bench/actix-rs/optimized/3r4ha69xj2bs6l86.ll @@ -7660,16 +7660,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 @@ -7682,16 +7677,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 @@ -7817,11 +7807,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 1e922eb750f..b72c7c45cc6 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 c7ad23974ea..cc546aba0da 100644 --- a/bench/actix-rs/optimized/48duj8tg7v09rmpe.ll +++ b/bench/actix-rs/optimized/48duj8tg7v09rmpe.ll @@ -788,7 +788,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 @@ -804,53 +804,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 7943bb38607..b07a4565658 100644 --- a/bench/actix-rs/optimized/4vksfexudgt1qids.ll +++ b/bench/actix-rs/optimized/4vksfexudgt1qids.ll @@ -3969,22 +3969,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 !501 store i64 0, ptr %1, align 8, !alias.scope !501 %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 !501 - %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 !495 %.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 !495 + store i64 %10, ptr %.sroa.2.0..sroa_idx.i, align 8, !noalias !495 %.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 !495 + store i64 %11, ptr %.sroa.3.0..sroa_idx.i, align 8, !noalias !495 ret ptr %.sroa.2.0..sroa_idx.i } @@ -3993,7 +3997,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 !502) @@ -4010,24 +4014,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 !511 store i64 0, ptr %1, align 8, !alias.scope !511 %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 !511 - %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 !512 - store i64 %.sroa.0.0.i.i.i, ptr %4, align 8, !noalias !512 + store i64 %13, ptr %4, align 8, !noalias !512 %.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 !512 - br label %12 + store i64 %14, ptr %.sroa.3.0..sroa_idx.i.i, align 8, !noalias !512 + 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 } @@ -5491,9 +5499,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 @@ -6063,7 +6073,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 48ee05bcbef..096a325b51a 100644 --- a/bench/arrow/optimized/compare.cc.ll +++ b/bench/arrow/optimized/compare.cc.ll @@ -20316,6 +20316,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 @@ -20410,6 +20412,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 @@ -20462,18 +20465,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 e6f009663ab..698bd1aaec4 100644 --- a/bench/arrow/optimized/expression.cc.ll +++ b/bench/arrow/optimized/expression.cc.ll @@ -46249,9 +46249,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) #25 - %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 4d2316ac42d..905f7760c7b 100644 --- a/bench/arrow/optimized/list_util.cc.ll +++ b/bench/arrow/optimized/list_util.cc.ll @@ -1863,6 +1863,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 @@ -1957,6 +1959,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 @@ -2009,18 +2012,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 @@ -2185,7 +2186,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 @@ -2293,7 +2299,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) @@ -2319,12 +2325,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 ] @@ -2332,14 +2348,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 067220951da..37ca9476514 100644 --- a/bench/arrow/optimized/pretty_print.cc.ll +++ b/bench/arrow/optimized/pretty_print.cc.ll @@ -25269,9 +25269,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) #17 - %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) @@ -25647,9 +25647,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) #17 - %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) @@ -30904,9 +30904,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) #17 - %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 797e438cea8..6d742e05211 100644 --- a/bench/assimp/optimized/Assimp.cpp.ll +++ b/bench/assimp/optimized/Assimp.cpp.ll @@ -762,33 +762,32 @@ entry: invoke.cont: ; preds = %entry %call5.i.i.i.i.i.i1 = invoke noalias noundef nonnull dereferenceable(24) ptr @_Znwm(i64 noundef 24) #42 - 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) #43 + 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) #43 - %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) #43 - 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 4bd8f204000..60afb51faa3 100644 --- a/bench/assimp/optimized/STEPFileReader.cpp.ll +++ b/bench/assimp/optimized/STEPFileReader.cpp.ll @@ -6534,16 +6534,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) #18 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) #18 br label %cleanup.action @@ -6563,14 +6559,11 @@ ehcleanup18: ; preds = %lpad12, %lpad14 %.pn5 = phi { ptr, i32 } [ %15, %lpad14 ], [ %14, %lpad12 ] %cleanup.isactive.1 = phi i1 [ %cleanup.isactive.0, %lpad14 ], [ true, %lpad12 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp7) #18 - %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) #18 br i1 %cleanup.isactive.1, 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) #18 br label %eh.resume @@ -6689,14 +6682,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) #18 - %matches = icmp eq i32 %39, %40 + %38 = extractvalue { ptr, i32 } %37, 1 + %39 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTIN6Assimp4STEP9TypeErrorE) #18 + %matches = icmp eq i32 %38, %39 br i1 %matches, label %catch, label %ehcleanup52 catch: ; preds = %lpad26 - %41 = call ptr @__cxa_begin_catch(ptr %38) #18 + %40 = extractvalue { ptr, i32 } %37, 0 + %41 = call ptr @__cxa_begin_catch(ptr %40) #18 %exception29 = call ptr @__cxa_allocate_exception(i64 16) #18 %vtable = load ptr, ptr %41, align 8 %vfn = getelementptr inbounds i8, ptr %vtable, i64 16 @@ -6718,8 +6711,6 @@ invoke.cont37: ; preds = %invoke.cont34 ehcleanup40.thread: ; preds = %catch %44 = landingpad { ptr, i32 } cleanup - %exn.slot.324 = extractvalue { ptr, i32 } %44, 0 - %ehselector.slot.325 = extractvalue { ptr, i32 } %44, 1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp32) #18 br label %cleanup.action43 @@ -6728,35 +6719,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) #18 - %exn.slot.3 = extractvalue { ptr, i32 } %45, 0 - %ehselector.slot.3 = extractvalue { ptr, i32 } %45, 1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp32) #18 br i1 %cleanup.isactive38.0, label %cleanup.action43, label %cleanup.done44 cleanup.action43: ; preds = %ehcleanup40.thread, %ehcleanup40 - %ehselector.slot.329 = phi i32 [ %ehselector.slot.325, %ehcleanup40.thread ], [ %ehselector.slot.3, %ehcleanup40 ] - %exn.slot.327 = phi ptr [ %exn.slot.324, %ehcleanup40.thread ], [ %exn.slot.3, %ehcleanup40 ] + %.pn822 = phi { ptr, i32 } [ %44, %ehcleanup40.thread ], [ %45, %ehcleanup40 ] call void @__cxa_free_exception(ptr %exception29) #18 br label %cleanup.done44 cleanup.done44: ; preds = %cleanup.action43, %ehcleanup40 - %ehselector.slot.328 = phi i32 [ %ehselector.slot.329, %cleanup.action43 ], [ %ehselector.slot.3, %ehcleanup40 ] - %exn.slot.326 = phi ptr [ %exn.slot.327, %cleanup.action43 ], [ %exn.slot.3, %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.328, %cleanup.done44 ], [ %39, %lpad26 ] - %exn.slot.4 = phi ptr [ %exn.slot.326, %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) #18 br label %eh.resume eh.resume: ; preds = %ehcleanup18, %cleanup.action, %ehcleanup52, %ehcleanup - %ehselector.slot.5 = phi i32 [ %ehselector.slot.4, %ehcleanup52 ], [ %ehselector.slot.221, %cleanup.action ], [ %ehselector.slot.2, %ehcleanup18 ], [ %ehselector.slot.0, %ehcleanup ] - %exn.slot.5 = 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.5, 0 - %lpad.val55 = insertvalue { ptr, i32 } %lpad.val, i32 %ehselector.slot.5, 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 e3f189621d7..c6c61b50cd1 100644 --- a/bench/bullet3/optimized/b3ConvexHullContact.ll +++ b/bench/bullet3/optimized/b3ConvexHullContact.ll @@ -28008,59 +28008,62 @@ _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 + %34 = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %retval.sroa.0.0.copyload.i, 0 + %35 = insertvalue { <2 x float>, <2 x float> } %34, <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> } [ %35, %_Z8b3MaxDotRK9b3Vector3PS0_iPf.exit.i ], [ zeroinitializer, %entry ] + %36 = extractvalue { <2 x float>, <2 x float> } %.fca.1.insert.merged.i, 0 + %37 = extractvalue { <2 x float>, <2 x float> } %.fca.1.insert.merged.i, 1 %mul4.i.i.i.i.i = fmul float %5, %5 - %34 = tail call float @llvm.fmuladd.f32(float %4, float %4, float %mul4.i.i.i.i.i) - %35 = tail call float @llvm.fmuladd.f32(float %orn.sroa.5.0.copyload, float %orn.sroa.5.0.copyload, float %34) - %36 = tail call noundef float @llvm.fmuladd.f32(float %orn.sroa.7.0.copyload, float %orn.sroa.7.0.copyload, float %35) - %div.i.i.i = fdiv float 2.000000e+00, %36 + %38 = tail call float @llvm.fmuladd.f32(float %4, float %4, float %mul4.i.i.i.i.i) + %39 = tail call float @llvm.fmuladd.f32(float %orn.sroa.5.0.copyload, float %orn.sroa.5.0.copyload, float %38) + %40 = tail call noundef float @llvm.fmuladd.f32(float %orn.sroa.7.0.copyload, float %orn.sroa.7.0.copyload, float %39) + %div.i.i.i = fdiv float 2.000000e+00, %40 %mul6.i.i.i = fmul float %orn.sroa.5.0.copyload, %div.i.i.i %mul12.i.i.i = fmul float %orn.sroa.7.0.copyload, %mul6.i.i.i %mul18.i.i.i = fmul float %4, %mul6.i.i.i - %37 = insertelement <2 x float> poison, float %div.i.i.i, i64 0 - %38 = shufflevector <2 x float> %37, <2 x float> poison, <2 x i32> zeroinitializer - %39 = fmul <2 x float> %0, %38 - %40 = extractelement <2 x float> %39, i64 0 - %mul8.i.i.i = fmul float %orn.sroa.7.0.copyload, %40 - %41 = extractelement <2 x float> %39, i64 1 - %mul10.i.i.i = fmul float %orn.sroa.7.0.copyload, %41 - %mul16.i.i.i = fmul float %4, %41 - %42 = fmul <2 x float> %0, %39 + %41 = insertelement <2 x float> poison, float %div.i.i.i, i64 0 + %42 = shufflevector <2 x float> %41, <2 x float> poison, <2 x i32> zeroinitializer + %43 = fmul <2 x float> %0, %42 + %44 = extractelement <2 x float> %43, i64 0 + %mul8.i.i.i = fmul float %orn.sroa.7.0.copyload, %44 + %45 = extractelement <2 x float> %43, i64 1 + %mul10.i.i.i = fmul float %orn.sroa.7.0.copyload, %45 + %mul16.i.i.i = fmul float %4, %45 + %46 = fmul <2 x float> %0, %43 %mul22.i.i.i = fmul float %5, %mul6.i.i.i %mul24.i.i.i = fmul float %orn.sroa.5.0.copyload, %mul6.i.i.i - %43 = extractelement <2 x float> %42, i64 1 - %add.i.i.i = fadd float %43, %mul24.i.i.i + %47 = extractelement <2 x float> %46, i64 1 + %add.i.i.i = fadd float %47, %mul24.i.i.i %sub.i.i.i = fsub float 1.000000e+00, %add.i.i.i %sub26.i.i.i = fsub float %mul16.i.i.i, %mul12.i.i.i %add28.i.i.i = fadd float %mul18.i.i.i, %mul10.i.i.i %add30.i.i.i = fadd float %mul16.i.i.i, %mul12.i.i.i - %44 = extractelement <2 x float> %42, i64 0 - %add32.i.i.i = fadd float %44, %mul24.i.i.i + %48 = extractelement <2 x float> %46, i64 0 + %add32.i.i.i = fadd float %48, %mul24.i.i.i %sub33.i.i.i = fsub float 1.000000e+00, %add32.i.i.i %sub35.i.i.i = fsub float %mul22.i.i.i, %mul8.i.i.i %sub37.i.i.i = fsub float %mul18.i.i.i, %mul10.i.i.i %add39.i.i.i = fadd float %mul22.i.i.i, %mul8.i.i.i - %add41.i.i.i = fadd float %44, %43 + %add41.i.i.i = fadd float %48, %47 %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 - %45 = 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 - %46 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %add28.i.i.i, float %45) + %pInA.sroa.0.0.vec.extract = extractelement <2 x float> %36, i64 0 + %pInA.sroa.0.4.vec.extract = extractelement <2 x float> %36, i64 1 + %mul5.i.i.i.i13 = fmul float %sub26.i.i.i, %pInA.sroa.0.4.vec.extract + %49 = 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> %37, i64 0 + %50 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %add28.i.i.i, float %49) %mul5.i3.i.i.i = fmul float %sub33.i.i.i, %pInA.sroa.0.4.vec.extract - %47 = tail call float @llvm.fmuladd.f32(float %pInA.sroa.0.0.vec.extract, float %add30.i.i.i, float %mul5.i3.i.i.i) - %48 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %sub35.i.i.i, float %47) + %51 = tail call float @llvm.fmuladd.f32(float %pInA.sroa.0.0.vec.extract, float %add30.i.i.i, float %mul5.i3.i.i.i) + %52 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %sub35.i.i.i, float %51) %mul5.i8.i.i.i = fmul float %add39.i.i.i, %pInA.sroa.0.4.vec.extract - %49 = tail call float @llvm.fmuladd.f32(float %pInA.sroa.0.0.vec.extract, float %sub37.i.i.i, float %mul5.i8.i.i.i) - %50 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %sub42.i.i.i, float %49) - %add.i.i3.i = fadd float %pos.sroa.0.0.copyload, %46 - %add4.i.i.i = fadd float %pos.sroa.2.0.copyload, %48 - %add7.i.i.i = fadd float %pos.sroa.3.0.copyload, %50 + %53 = tail call float @llvm.fmuladd.f32(float %pInA.sroa.0.0.vec.extract, float %sub37.i.i.i, float %mul5.i8.i.i.i) + %54 = tail call noundef float @llvm.fmuladd.f32(float %pInA.sroa.3.8.vec.extract, float %sub42.i.i.i, float %53) + %add.i.i3.i = fadd float %pos.sroa.0.0.copyload, %50 + %add4.i.i.i = fadd float %pos.sroa.2.0.copyload, %52 + %add7.i.i.i = fadd float %pos.sroa.3.0.copyload, %54 %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 a368fcfdb87..73ce96e7a0e 100644 --- a/bench/bullet3/optimized/b3FixedConstraint.ll +++ b/bench/bullet3/optimized/b3FixedConstraint.ll @@ -531,31 +531,31 @@ if.end115: ; preds = %if.then100, %for.en %cmp.i.i = fcmp olt float %193, %194 %195 = fneg <2 x float> %160 %196 = fneg <2 x float> %171 - %retval.sroa.0.0.i.i = select i1 %cmp.i.i, <2 x float> %160, <2 x float> %195 - %retval.sroa.3.0.i.i = select i1 %cmp.i.i, <2 x float> %171, <2 x float> %196 + %retval.sroa.0.0.copyload.pn.i.i = select i1 %cmp.i.i, <2 x float> %160, <2 x float> %195 + %retval.sroa.3.0.copyload.pn.i.i = select i1 %cmp.i.i, <2 x float> %171, <2 x float> %196 %197 = insertelement <2 x float> poison, float %172, i64 1 %198 = shufflevector <2 x float> %197, <2 x float> %174, <2 x i32> %199 = fneg <2 x float> %198 %fneg4.i.i = fneg float %175 - %orn1.sroa.3.12.vec.extract.i = extractelement <2 x float> %retval.sroa.3.0.i.i, i64 1 - %orn1.sroa.3.8.vec.extract.i = extractelement <2 x float> %retval.sroa.3.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.3.8.vec.extract.i = extractelement <2 x float> %retval.sroa.3.0.copyload.pn.i.i, i64 0 %200 = insertelement <2 x float> poison, float %179, i64 0 %201 = shufflevector <2 x float> %200, <2 x float> poison, <2 x i32> zeroinitializer - %202 = fmul <2 x float> %201, %retval.sroa.0.0.i.i - %203 = shufflevector <2 x float> %retval.sroa.3.0.i.i, <2 x float> poison, <2 x i32> + %202 = fmul <2 x float> %201, %retval.sroa.0.0.copyload.pn.i.i + %203 = shufflevector <2 x float> %retval.sroa.3.0.copyload.pn.i.i, <2 x float> poison, <2 x i32> %204 = shufflevector <2 x float> %199, <2 x float> poison, <2 x i32> %205 = insertelement <2 x float> %204, float %fneg4.i.i, i64 1 %206 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %203, <2 x float> %205, <2 x float> %202) - %207 = shufflevector <2 x float> %retval.sroa.0.0.i.i, <2 x float> %retval.sroa.3.0.i.i, <2 x i32> + %207 = shufflevector <2 x float> %retval.sroa.0.0.copyload.pn.i.i, <2 x float> %retval.sroa.3.0.copyload.pn.i.i, <2 x i32> %208 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %207, <2 x float> %199, <2 x float> %206) - %209 = shufflevector <2 x float> %retval.sroa.3.0.i.i, <2 x float> %retval.sroa.0.0.i.i, <2 x i32> + %209 = shufflevector <2 x float> %retval.sroa.3.0.copyload.pn.i.i, <2 x float> %retval.sroa.0.0.copyload.pn.i.i, <2 x i32> %210 = tail call <2 x float> @llvm.fmuladd.v2f32(<2 x float> %209, <2 x float> %174, <2 x float> %208) %mul25.i.i135 = fmul float %179, %orn1.sroa.3.8.vec.extract.i %211 = extractelement <2 x float> %199, i64 0 %212 = tail call float @llvm.fmuladd.f32(float %orn1.sroa.3.12.vec.extract.i, float %211, float %mul25.i.i135) - %213 = extractelement <2 x float> %retval.sroa.0.0.i.i, i64 0 + %213 = extractelement <2 x float> %retval.sroa.0.0.copyload.pn.i.i, i64 0 %214 = tail call float @llvm.fmuladd.f32(float %213, float %fneg4.i.i, float %212) - %215 = extractelement <2 x float> %retval.sroa.0.0.i.i, i64 1 + %215 = extractelement <2 x float> %retval.sroa.0.0.copyload.pn.i.i, i64 1 %216 = tail call float @llvm.fmuladd.f32(float %215, float %172, float %214) %neg37.i.i = fmul float %172, %213 %217 = tail call float @llvm.fmuladd.f32(float %orn1.sroa.3.12.vec.extract.i, float %179, float %neg37.i.i) @@ -587,11 +587,11 @@ if.else.i: ; preds = %if.end115 %224 = insertelement <2 x float> poison, float %div.i.i, i64 0 %225 = shufflevector <2 x float> %224, <2 x float> poison, <2 x i32> zeroinitializer %226 = fmul <2 x float> %210, %225 - %mul5.i.i23.i = fmul float %216, %div.i.i + %mul5.i.i21.i = fmul float %216, %div.i.i br label %_ZN15b3TransformUtil32calculateDiffAxisAngleQuaternionERK12b3QuaternionS2_R9b3Vector3Rf.exit _ZN15b3TransformUtil32calculateDiffAxisAngleQuaternionERK12b3QuaternionS2_R9b3Vector3Rf.exit: ; preds = %if.then.i, %if.else.i - %227 = phi float [ 0.000000e+00, %if.then.i ], [ %mul5.i.i23.i, %if.else.i ] + %227 = phi float [ 0.000000e+00, %if.then.i ], [ %mul5.i.i21.i, %if.else.i ] %228 = phi <2 x float> [ , %if.then.i ], [ %226, %if.else.i ] %fneg = fmul float %call.i.i.i, -2.000000e+00 %229 = insertelement <2 x float> poison, float %fneg, i64 0 diff --git a/bench/bullet3/optimized/b3QuantizedBvh.ll b/bench/bullet3/optimized/b3QuantizedBvh.ll index aebac9af5b5..bdd0607796b 100644 --- a/bench/bullet3/optimized/b3QuantizedBvh.ll +++ b/bench/bullet3/optimized/b3QuantizedBvh.ll @@ -453,10 +453,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> [ %57, %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 %39, align 8 + %retval.sroa.0.4.vec.insert12.i.pn.i64 = phi <2 x float> [ %57, %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 %39, align 8 call void @_ZN14b3QuantizedBvh21mergeInternalNodeAabbEiRK9b3Vector3S2_(ptr noundef nonnull align 16 dereferenceable(252) %this, i32 noundef %41, 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 @@ -1199,13 +1199,13 @@ 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> [ %57, %if.then.i118 ], [ %retval.sroa.0.0.copyload.i75, %if.end.i108 ] - %retval.sroa.0.0.i114 = phi <2 x float> [ %61, %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 ] - %63 = fadd <2 x float> %retval.sroa.3.0.i79186, %retval.sroa.3.0.i115 + %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> [ %57, %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> [ %61, %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 ] + %63 = 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> %63, i64 0 - %64 = fadd <2 x float> %retval.sroa.0.0.i78184, %retval.sroa.0.0.i114 + %64 = fadd <2 x float> %retval.sroa.0.4.vec.insert12.i.pn.i78184, %retval.sroa.0.4.vec.insert12.i.pn.i114 %65 = fmul <2 x float> %64, %mul4.i.i157 = fmul float %add7.i147, 5.000000e-01 %retval.sroa.3.12.vec.insert.i.i.i160 = insertelement <2 x float> , float %mul4.i.i157, i64 0 diff --git a/bench/bullet3/optimized/btConvexHullShape.ll b/bench/bullet3/optimized/btConvexHullShape.ll index 7febdfa32a3..90d145fe72e 100644 --- a/bench/bullet3/optimized/btConvexHullShape.ll +++ b/bench/bullet3/optimized/btConvexHullShape.ll @@ -315,18 +315,18 @@ entry: for.body.lr.ph.i: ; preds = %entry %m_localScaling = getelementptr inbounds i8, ptr %this, i64 32 %1 = load float, ptr %vec, align 4 + %2 = load float, ptr %m_localScaling, align 8 + %mul.i = fmul float %1, %2 %arrayidx5.i1 = getelementptr inbounds i8, ptr %vec, i64 4 - %2 = load float, ptr %arrayidx5.i1, align 4 - %3 = load <2 x float>, ptr %m_localScaling, align 8 - %4 = extractelement <2 x float> %3, i64 0 - %mul.i = fmul float %1, %4 - %5 = extractelement <2 x float> %3, i64 1 - %mul8.i = fmul float %2, %5 + %3 = load float, ptr %arrayidx5.i1, align 4 + %arrayidx7.i2 = getelementptr inbounds i8, ptr %this, i64 36 %arrayidx11.i = getelementptr inbounds i8, ptr %vec, i64 8 - %6 = load float, ptr %arrayidx11.i, align 4 - %arrayidx13.i = getelementptr inbounds i8, ptr %this, i64 40 - %7 = load float, ptr %arrayidx13.i, align 8 - %mul14.i = fmul float %6, %7 + %4 = load float, ptr %arrayidx11.i, align 4 + %5 = load <2 x float>, ptr %arrayidx7.i2, align 4 + %6 = extractelement <2 x float> %5, i64 0 + %mul8.i = fmul float %3, %6 + %7 = extractelement <2 x float> %5, i64 1 + %mul14.i = fmul float %4, %7 %m_data.i = getelementptr inbounds i8, ptr %this, i64 136 %8 = load ptr, ptr %m_data.i, align 8 %conv = zext nneg i32 %0 to i64 @@ -356,20 +356,21 @@ for.body.i: ; preds = %for.body.i, %for.bo _ZNK9btVector36maxDotEPKS_lRf.exit: ; preds = %for.body.i %idxprom.i = sext i32 %ptIndex.1.i to i64 %arrayidx.i5 = getelementptr inbounds %class.btVector3, ptr %8, i64 %idxprom.i - %15 = load <2 x float>, ptr %arrayidx.i5, align 4 - %16 = fmul <2 x float> %3, %15 - %arrayidx11.i10 = getelementptr inbounds i8, ptr %arrayidx.i5, i64 8 - %17 = load float, ptr %arrayidx11.i10, align 4 - %mul14.i12 = fmul float %7, %17 - %retval.sroa.3.12.vec.insert.i15 = insertelement <2 x float> , float %mul14.i12, i64 0 + %15 = load float, ptr %arrayidx.i5, align 4 + %mul.i6 = fmul float %2, %15 + %arrayidx5.i7 = getelementptr inbounds i8, ptr %arrayidx.i5, i64 4 + %16 = load <2 x float>, ptr %arrayidx5.i7, align 4 + %17 = fmul <2 x float> %5, %16 + %retval.sroa.0.0.vec.insert.i13 = insertelement <2 x float> poison, float %mul.i6, i64 0 + %18 = shufflevector <2 x float> %retval.sroa.0.0.vec.insert.i13, <2 x float> %17, <2 x i32> + %19 = shufflevector <2 x float> , <2 x float> %17, <2 x i32> + %.fca.0.insert.i16 = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %18, 0 + %.fca.1.insert.i17 = insertvalue { <2 x float>, <2 x float> } %.fca.0.insert.i16, <2 x float> %19, 1 br label %return return: ; preds = %entry, %_ZNK9btVector36maxDotEPKS_lRf.exit - %retval.sroa.0.0 = phi <2 x float> [ %16, %_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 @@ -484,16 +485,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.11.0.vec.sroa_idx = getelementptr inbounds i8, ptr %vec, i64 8 %vecnorm.sroa.11.0.copyload = load float, ptr %vecnorm.sroa.11.0.vec.sroa_idx, align 4 %vtable13 = load ptr, ptr %this, align 8 @@ -526,18 +527,17 @@ if.then: ; preds = %entry %21 = shufflevector <2 x float> %20, <2 x float> poison, <2 x i32> zeroinitializer %22 = fmul <2 x float> %21, %19 %mul8.i.i2 = fmul float %call15, %mul7.i.i.i - %23 = fadd <2 x float> %1, %22 + %23 = fadd <2 x float> %3, %22 %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 + %24 = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %23, 0 + %25 = insertvalue { <2 x float>, <2 x float> } %24, <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> [ %23, %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> } [ %25, %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 b252bfcdcac..b72d586d567 100644 --- a/bench/bullet3/optimized/btConvexInternalShape.ll +++ b/bench/bullet3/optimized/btConvexInternalShape.ll @@ -265,16 +265,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.11.0.vec.sroa_idx = getelementptr inbounds i8, ptr %vec, i64 8 %vecnorm.sroa.11.0.copyload = load float, ptr %vecnorm.sroa.11.0.vec.sroa_idx, align 4 %vtable13 = load ptr, ptr %this, align 8 @@ -307,18 +307,17 @@ if.then: ; preds = %entry %21 = shufflevector <2 x float> %20, <2 x float> poison, <2 x i32> zeroinitializer %22 = fmul <2 x float> %21, %19 %mul8.i.i2 = fmul float %call15, %mul7.i.i.i - %23 = fadd <2 x float> %1, %22 + %23 = fadd <2 x float> %3, %22 %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 + %24 = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %23, 0 + %25 = insertvalue { <2 x float>, <2 x float> } %24, <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> [ %23, %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> } [ %25, %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/btConvexPointCloudShape.ll b/bench/bullet3/optimized/btConvexPointCloudShape.ll index e4af140f16c..2785d13132c 100644 --- a/bench/bullet3/optimized/btConvexPointCloudShape.ll +++ b/bench/bullet3/optimized/btConvexPointCloudShape.ll @@ -114,23 +114,24 @@ _ZNK9btVector36maxDotEPKS_lRf.exit: ; preds = %for.body.i %idxprom.i = sext i32 %ptIndex.1.i to i64 %arrayidx.i9 = getelementptr inbounds %class.btVector3, ptr %3, i64 %idxprom.i %m_localScaling.i = getelementptr inbounds i8, ptr %this, i64 32 - %10 = load <2 x float>, ptr %arrayidx.i9, align 4 - %11 = load <2 x float>, ptr %m_localScaling.i, align 8 - %12 = fmul <2 x float> %10, %11 - %arrayidx11.i.i = getelementptr inbounds i8, ptr %arrayidx.i9, i64 8 - %13 = load float, ptr %arrayidx11.i.i, align 4 - %arrayidx13.i.i = getelementptr inbounds i8, ptr %this, i64 40 - %14 = load float, ptr %arrayidx13.i.i, align 8 - %mul14.i.i = fmul float %13, %14 - %retval.sroa.3.12.vec.insert.i.i = insertelement <2 x float> , float %mul14.i.i, i64 0 + %10 = load float, ptr %arrayidx.i9, align 4 + %11 = load float, ptr %m_localScaling.i, align 8 + %mul.i.i = fmul float %10, %11 + %arrayidx5.i.i10 = getelementptr inbounds i8, ptr %arrayidx.i9, i64 4 + %arrayidx7.i.i11 = getelementptr inbounds i8, ptr %this, i64 36 + %12 = load <2 x float>, ptr %arrayidx5.i.i10, align 4 + %13 = load <2 x float>, ptr %arrayidx7.i.i11, align 4 + %14 = fmul <2 x float> %12, %13 + %retval.sroa.0.0.vec.insert.i.i = insertelement <2 x float> poison, float %mul.i.i, i64 0 + %15 = shufflevector <2 x float> %retval.sroa.0.0.vec.insert.i.i, <2 x float> %14, <2 x i32> + %16 = shufflevector <2 x float> , <2 x float> %14, <2 x i32> + %.fca.0.insert.i.i = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %15, 0 + %.fca.1.insert.i.i = insertvalue { <2 x float>, <2 x float> } %.fca.0.insert.i.i, <2 x float> %16, 1 br label %return return: ; preds = %if.end, %_ZNK9btVector36maxDotEPKS_lRf.exit - %retval.sroa.0.0 = phi <2 x float> [ %12, %_ZNK9btVector36maxDotEPKS_lRf.exit ], [ zeroinitializer, %if.end ] - %retval.sroa.3.0 = phi <2 x float> [ %retval.sroa.3.12.vec.insert.i.i, %_ZNK9btVector36maxDotEPKS_lRf.exit ], [ zeroinitializer, %if.end ] - %.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.i.i, %_ZNK9btVector36maxDotEPKS_lRf.exit ], [ zeroinitializer, %if.end ] + 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 @@ -235,16 +236,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(132) %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.11.0.vec.sroa_idx = getelementptr inbounds i8, ptr %vec, i64 8 %vecnorm.sroa.11.0.copyload = load float, ptr %vecnorm.sroa.11.0.vec.sroa_idx, align 4 %vtable13 = load ptr, ptr %this, align 8 @@ -277,18 +278,17 @@ if.then: ; preds = %entry %21 = shufflevector <2 x float> %20, <2 x float> poison, <2 x i32> zeroinitializer %22 = fmul <2 x float> %21, %19 %mul8.i.i2 = fmul float %call15, %mul7.i.i.i - %23 = fadd <2 x float> %1, %22 + %23 = fadd <2 x float> %3, %22 %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 + %24 = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %23, 0 + %25 = insertvalue { <2 x float>, <2 x float> } %24, <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> [ %23, %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> } [ %25, %if.then ], [ %call, %entry ] + ret { <2 x float>, <2 x float> } %.fca.1.insert.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: read) uwtable diff --git a/bench/bullet3/optimized/btConvexTriangleMeshShape.ll b/bench/bullet3/optimized/btConvexTriangleMeshShape.ll index d3c1ca5db55..f9b17f8bb8e 100644 --- a/bench/bullet3/optimized/btConvexTriangleMeshShape.ll +++ b/bench/bullet3/optimized/btConvexTriangleMeshShape.ll @@ -259,16 +259,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(128) %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.11.0.vec.sroa_idx = getelementptr inbounds i8, ptr %vec, i64 8 %vecnorm.sroa.11.0.copyload = load float, ptr %vecnorm.sroa.11.0.vec.sroa_idx, align 4 %vtable13 = load ptr, ptr %this, align 8 @@ -301,18 +301,17 @@ if.then: ; preds = %entry %21 = shufflevector <2 x float> %20, <2 x float> poison, <2 x i32> zeroinitializer %22 = fmul <2 x float> %21, %19 %mul8.i.i2 = fmul float %call15, %mul7.i.i.i - %23 = fadd <2 x float> %1, %22 + %23 = fadd <2 x float> %3, %22 %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 + %24 = insertvalue { <2 x float>, <2 x float> } poison, <2 x float> %23, 0 + %25 = insertvalue { <2 x float>, <2 x float> } %24, <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> [ %23, %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> } [ %25, %if.then ], [ %call, %entry ] + ret { <2 x float>, <2 x float> } %.fca.1.insert.merged } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(none) uwtable @@ -429,30 +428,30 @@ cond.false.i: ; preds = %invoke.cont6 br label %invoke.cont17 invoke.cont17: ; preds = %cond.false.i, %cond.true.i - %retval.sroa.0.0.i = phi <2 x float> [ %7, %cond.true.i ], [ %retval.sroa.0.0.copyload.i, %cond.false.i ] - %retval.sroa.3.0.i = phi <2 x float> [ %retval.sroa.3.12.vec.insert.i.i.i, %cond.true.i ], [ %retval.sroa.3.0.copyload.i, %cond.false.i ] + %retval.sroa.0.4.vec.insert.i.i.pn.i = phi <2 x float> [ %7, %cond.true.i ], [ %retval.sroa.0.0.copyload.i, %cond.false.i ] + %retval.sroa.3.12.vec.insert.i.i.pn.i = phi <2 x float> [ %retval.sroa.3.12.vec.insert.i.i.i, %cond.true.i ], [ %retval.sroa.3.0.copyload.i, %cond.false.i ] %m_origin.i = getelementptr inbounds i8, ptr %principal, i64 48 - store <2 x float> %retval.sroa.0.0.i, ptr %m_origin.i, align 4 + store <2 x float> %retval.sroa.0.4.vec.insert.i.i.pn.i, ptr %m_origin.i, align 4 %center.sroa.3.0.m_origin.i.sroa_idx = getelementptr inbounds i8, ptr %principal, i64 56 - store <2 x float> %retval.sroa.3.0.i, ptr %center.sroa.3.0.m_origin.i.sroa_idx, align 4 + store <2 x float> %retval.sroa.3.12.vec.insert.i.i.pn.i, ptr %center.sroa.3.0.m_origin.i.sroa_idx, align 4 %mul.i = fmul float %3, 0x3FC5555560000000 store float %mul.i, ptr %volume, align 4 store ptr getelementptr inbounds (i8, ptr @_ZTVZNK25btConvexTriangleMeshShape31calculatePrincipalAxisTransformER11btTransformR9btVector3RfE15InertiaCallback, i64 16), ptr %inertiaCallback, align 8 - %sum.i13 = getelementptr inbounds i8, ptr %inertiaCallback, i64 8 + %sum.i11 = getelementptr inbounds i8, ptr %inertiaCallback, i64 8 %center10.i = getelementptr inbounds i8, ptr %inertiaCallback, i64 56 - call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %sum.i13, i8 0, i64 48, i1 false) - store <2 x float> %retval.sroa.0.0.i, ptr %center10.i, align 8 + call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %sum.i11, i8 0, i64 48, i1 false) + store <2 x float> %retval.sroa.0.4.vec.insert.i.i.pn.i, ptr %center10.i, align 8 %center.sroa.3.0.center10.i.sroa_idx = getelementptr inbounds i8, ptr %inertiaCallback, i64 64 - store <2 x float> %retval.sroa.3.0.i, ptr %center.sroa.3.0.center10.i.sroa_idx, align 8 + store <2 x float> %retval.sroa.3.12.vec.insert.i.i.pn.i, ptr %center.sroa.3.0.center10.i.sroa_idx, align 8 %9 = load ptr, ptr %m_stridingMesh, align 8 %10 = load <2 x float>, ptr %aabbMax, align 16 %11 = fneg <2 x float> %10 %12 = load float, ptr %arrayidx5.i, align 8 - %fneg8.i18 = fneg float %12 - %retval.sroa.3.12.vec.insert.i21 = insertelement <2 x float> , float %fneg8.i18, i64 0 + %fneg8.i16 = fneg float %12 + %retval.sroa.3.12.vec.insert.i19 = insertelement <2 x float> , float %fneg8.i16, i64 0 store <2 x float> %11, ptr %ref.tmp15, align 8 %13 = getelementptr inbounds i8, ptr %ref.tmp15, i64 8 - store <2 x float> %retval.sroa.3.12.vec.insert.i21, ptr %13, align 8 + store <2 x float> %retval.sroa.3.12.vec.insert.i19, ptr %13, align 8 %vtable20 = load ptr, ptr %9, align 8 %vfn21 = getelementptr inbounds i8, ptr %vtable20, i64 16 %14 = load ptr, ptr %vfn21, align 8 @@ -460,22 +459,22 @@ invoke.cont17: ; preds = %cond.false.i, %cond to label %invoke.cont22 unwind label %lpad16 invoke.cont22: ; preds = %invoke.cont17 - invoke void @_ZN11btMatrix3x311diagonalizeERS_fi(ptr noundef nonnull align 4 dereferenceable(48) %sum.i13, ptr noundef nonnull align 4 dereferenceable(48) %principal, float noundef 0x3EE4F8B580000000, i32 noundef 20) + invoke void @_ZN11btMatrix3x311diagonalizeERS_fi(ptr noundef nonnull align 4 dereferenceable(48) %sum.i11, ptr noundef nonnull align 4 dereferenceable(48) %principal, float noundef 0x3EE4F8B580000000, i32 noundef 20) to label %invoke.cont27 unwind label %lpad16 invoke.cont27: ; preds = %invoke.cont22 %arrayidx36 = getelementptr inbounds i8, ptr %inertiaCallback, i64 28 %arrayidx41 = getelementptr inbounds i8, ptr %inertiaCallback, i64 48 - %15 = load float, ptr %sum.i13, align 8 + %15 = load float, ptr %sum.i11, align 8 store float %15, ptr %inertia, align 4 %16 = load float, ptr %arrayidx36, align 4 - %arrayidx3.i26 = getelementptr inbounds i8, ptr %inertia, i64 4 - store float %16, ptr %arrayidx3.i26, align 4 + %arrayidx3.i24 = getelementptr inbounds i8, ptr %inertia, i64 4 + store float %16, ptr %arrayidx3.i24, align 4 %17 = load float, ptr %arrayidx41, align 8 - %arrayidx5.i27 = getelementptr inbounds i8, ptr %inertia, i64 8 - store float %17, ptr %arrayidx5.i27, align 4 - %arrayidx7.i28 = getelementptr inbounds i8, ptr %inertia, i64 12 - store float 0.000000e+00, ptr %arrayidx7.i28, align 4 + %arrayidx5.i25 = getelementptr inbounds i8, ptr %inertia, i64 8 + store float %17, ptr %arrayidx5.i25, align 4 + %arrayidx7.i26 = getelementptr inbounds i8, ptr %inertia, i64 12 + store float 0.000000e+00, ptr %arrayidx7.i26, align 4 %18 = load float, ptr %volume, align 4 %div.i = fdiv float 1.000000e+00, %18 %19 = insertelement <2 x float> poison, float %15, i64 0 @@ -485,7 +484,7 @@ invoke.cont27: ; preds = %invoke.cont22 %23 = fmul <2 x float> %20, %22 store <2 x float> %23, ptr %inertia, align 4 %mul7.i.i = fmul float %17, %div.i - store float %mul7.i.i, ptr %arrayidx5.i27, align 4 + store float %mul7.i.i, ptr %arrayidx5.i25, align 4 call void @_ZN31btInternalTriangleIndexCallbackD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %inertiaCallback) #15 call void @_ZN31btInternalTriangleIndexCallbackD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %centerCallback) #15 ret void diff --git a/bench/bullet3/optimized/btDeformableContactConstraint.ll b/bench/bullet3/optimized/btDeformableContactConstraint.ll index 5b05c0e6646..7fc84ca256b 100644 --- a/bench/bullet3/optimized/btDeformableContactConstraint.ll +++ b/bench/bullet3/optimized/btDeformableContactConstraint.ll @@ -2940,11 +2940,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> [ %2, %entry ], [ %13, %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> [ %2, %entry ], [ %13, %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/casadi/optimized/tinyxml_interface.cpp.ll b/bench/casadi/optimized/tinyxml_interface.cpp.ll index 7de918b5903..d01fb8a40c7 100644 --- a/bench/casadi/optimized/tinyxml_interface.cpp.ll +++ b/bench/casadi/optimized/tinyxml_interface.cpp.ll @@ -338,13 +338,11 @@ define void @_ZN6casadi16TinyXmlInterface5parseERKNSt7__cxx1112basic_stringIcSt1 40: ; preds = %39 invoke void @__cxa_throw(ptr nonnull %30, ptr nonnull @_ZTIN6casadi15CasadiExceptionE, ptr nonnull @_ZN6casadi15CasadiExceptionD2Ev) #20 - to label %135 unwind label %54 + to label %133 unwind label %54 .thread: ; preds = %29 %41 = landingpad { ptr, i32 } cleanup - %.61870 = extractvalue { ptr, i32 } %41, 0 - %.63671 = extractvalue { ptr, i32 } %41, 1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #17 br label %62 @@ -420,14 +418,11 @@ define void @_ZN6casadi16TinyXmlInterface5parseERKNSt7__cxx1112basic_stringIcSt1 %.pn58.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn58.pn.pn.pn.pn, %60 ], [ %43, %42 ] %.628 = phi i1 [ %.527, %60 ], [ true, %42 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #17 - %.618 = extractvalue { ptr, i32 } %.pn58.pn.pn.pn.pn.pn, 0 - %.636 = extractvalue { ptr, i32 } %.pn58.pn.pn.pn.pn.pn, 1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #17 br i1 %.628, label %62, label %129 62: ; preds = %.thread, %61 - %.63673 = phi i32 [ %.63671, %.thread ], [ %.636, %61 ] - %.61872 = phi ptr [ %.61870, %.thread ], [ %.618, %61 ] + %.pn58.pn.pn.pn.pn.pn.pn71 = phi { ptr, i32 } [ %41, %.thread ], [ %.pn58.pn.pn.pn.pn.pn, %61 ] call void @__cxa_free_exception(ptr %30) #17 br label %129 @@ -460,20 +455,20 @@ define void @_ZN6casadi16TinyXmlInterface5parseERKNSt7__cxx1112basic_stringIcSt1 %75 = landingpad { ptr, i32 } cleanup catch ptr @_ZTISt9exception - %76 = extractvalue { ptr, i32 } %75, 0 - %77 = extractvalue { ptr, i32 } %75, 1 - %78 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #17 - %79 = icmp eq i32 %77, %78 - br i1 %79, label %80, label %128 - -80: ; preds = %74 - %81 = call ptr @__cxa_begin_catch(ptr %76) #17 + %76 = extractvalue { ptr, i32 } %75, 1 + %77 = call i32 @llvm.eh.typeid.for.p0(ptr nonnull @_ZTISt9exception) #17 + %78 = icmp eq i32 %76, %77 + br i1 %78, label %79, label %128 + +79: ; preds = %74 + %80 = extractvalue { ptr, i32 } %75, 0 + %81 = call ptr @__cxa_begin_catch(ptr %80) #17 %82 = call ptr @__cxa_allocate_exception(i64 40) #17 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #17 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %17, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %18) - to label %83 unwind label %.thread74 + to label %83 unwind label %.thread72 -83: ; preds = %80 +83: ; preds = %79 invoke void @_ZN6casadi9trim_pathERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %16, ptr noundef nonnull align 8 dereferenceable(32) %17) to label %84 unwind label %100 @@ -519,13 +514,11 @@ define void @_ZN6casadi16TinyXmlInterface5parseERKNSt7__cxx1112basic_stringIcSt1 98: ; preds = %97 invoke void @__cxa_throw(ptr nonnull %82, ptr nonnull @_ZTIN6casadi15CasadiExceptionE, ptr nonnull @_ZN6casadi15CasadiExceptionD2Ev) #20 - to label %135 unwind label %116 + to label %133 unwind label %116 -.thread74: ; preds = %80 +.thread72: ; preds = %79 %99 = landingpad { ptr, i32 } cleanup - %.1577 = extractvalue { ptr, i32 } %99, 0 - %.154578 = extractvalue { ptr, i32 } %99, 1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #17 br label %126 @@ -624,44 +617,36 @@ define void @_ZN6casadi16TinyXmlInterface5parseERKNSt7__cxx1112basic_stringIcSt1 %.pn.pn.pn.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn, %124 ], [ %101, %100 ] %.8 = phi i1 [ %.7, %124 ], [ true, %100 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #17 - %.15 = extractvalue { ptr, i32 } %.pn.pn.pn.pn.pn.pn.pn.pn, 0 - %.1545 = extractvalue { ptr, i32 } %.pn.pn.pn.pn.pn.pn.pn.pn, 1 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #17 br i1 %.8, label %126, label %127 -126: ; preds = %.thread74, %125 - %.154582 = phi i32 [ %.154578, %.thread74 ], [ %.1545, %125 ] - %.1580 = phi ptr [ %.1577, %.thread74 ], [ %.15, %125 ] +126: ; preds = %.thread72, %125 + %.pn.pn.pn.pn.pn.pn.pn.pn.pn76 = phi { ptr, i32 } [ %99, %.thread72 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn, %125 ] call void @__cxa_free_exception(ptr %82) #17 br label %127 127: ; preds = %126, %125 - %.154581 = phi i32 [ %.154582, %126 ], [ %.1545, %125 ] - %.1579 = phi ptr [ %.1580, %126 ], [ %.15, %125 ] + %.pn.pn.pn.pn.pn.pn.pn.pn.pn75 = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn76, %126 ], [ %.pn.pn.pn.pn.pn.pn.pn.pn, %125 ] invoke void @__cxa_end_catch() - to label %128 unwind label %132 + to label %128 unwind label %130 128: ; preds = %127, %74 - %.1646 = phi i32 [ %.154581, %127 ], [ %77, %74 ] - %.16 = phi ptr [ %.1579, %127 ], [ %76, %74 ] + %.merged66 = phi { ptr, i32 } [ %.pn.pn.pn.pn.pn.pn.pn.pn.pn75, %127 ], [ %75, %74 ] call void @_ZN6casadi7XmlNodeD2Ev(ptr noundef nonnull align 8 dereferenceable(176) %0) #17 br label %129 129: ; preds = %61, %62, %128 - %.1747 = phi i32 [ %.63673, %62 ], [ %.636, %61 ], [ %.1646, %128 ] - %.17 = phi ptr [ %.61872, %62 ], [ %.618, %61 ], [ %.16, %128 ] - %130 = insertvalue { ptr, i32 } poison, ptr %.17, 0 - %131 = insertvalue { ptr, i32 } %130, i32 %.1747, 1 - resume { ptr, i32 } %131 - -132: ; preds = %127 - %133 = landingpad { ptr, i32 } + %.merged = phi { ptr, i32 } [ %.pn58.pn.pn.pn.pn.pn.pn71, %62 ], [ %.pn58.pn.pn.pn.pn.pn, %61 ], [ %.merged66, %128 ] + resume { ptr, i32 } %.merged + +130: ; preds = %127 + %131 = landingpad { ptr, i32 } catch ptr null - %134 = extractvalue { ptr, i32 } %133, 0 - call void @__clang_call_terminate(ptr %134) #21 + %132 = extractvalue { ptr, i32 } %131, 0 + call void @__clang_call_terminate(ptr %132) #21 unreachable -135: ; preds = %98, %40 +133: ; preds = %98, %40 unreachable } diff --git a/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll b/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll index d295d24476d..f09725105a8 100644 --- a/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll +++ b/bench/clap-rs/optimized/4bajo035z6e1d4qz.ll @@ -2726,13 +2726,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 @@ -2798,13 +2798,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/cmAddCustomTargetCommand.cxx.ll b/bench/cmake/optimized/cmAddCustomTargetCommand.cxx.ll index 716b205430a..7d517fbe49b 100644 --- a/bench/cmake/optimized/cmAddCustomTargetCommand.cxx.ll +++ b/bench/cmake/optimized/cmAddCustomTargetCommand.cxx.ll @@ -221,14 +221,14 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %61 = extractvalue { i64, ptr } %60, 0 %62 = extractvalue { i64, ptr } %60, 1 store i64 %61, ptr %59, align 8, !alias.scope !11, !noalias !8 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %5, i64 32 - store ptr %62, 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 %5, i64 32 + store ptr %62, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !11, !noalias !8 %63 = getelementptr inbounds i8, ptr %5, i64 40 store ptr null, ptr %63, align 8, !alias.scope !11, !noalias !8 %64 = getelementptr inbounds i8, ptr %5, i64 48 store i64 84, ptr %64, align 8, !alias.scope !14, !noalias !8 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %5, i64 56 - store ptr @.str.3, 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 %5, i64 56 + store ptr @.str.3, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !14, !noalias !8 %65 = getelementptr inbounds i8, ptr %5, i64 64 store ptr null, ptr %65, align 8, !alias.scope !14, !noalias !8 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 %5, i64 3) @@ -598,14 +598,14 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE5clearE store ptr %200, ptr %201, align 8, !noalias !23 store i8 %198, ptr %200, align 8, !noalias !23 store i64 1, ptr %197, align 8, !alias.scope !26, !noalias !23 - %.sroa.2.0..sroa_idx.i7.i126 = getelementptr inbounds i8, ptr %3, i64 32 - store ptr %200, ptr %.sroa.2.0..sroa_idx.i7.i126, align 8, !alias.scope !26, !noalias !23 + %.sroa.2.0..sroa_idx.i6.i126 = getelementptr inbounds i8, ptr %3, i64 32 + store ptr %200, ptr %.sroa.2.0..sroa_idx.i6.i126, align 8, !alias.scope !26, !noalias !23 %202 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %202, align 8, !alias.scope !26, !noalias !23 %203 = getelementptr inbounds i8, ptr %3, i64 48 store i64 34, ptr %203, align 8, !alias.scope !29, !noalias !23 - %.sroa.2.0..sroa_idx.i16.i127 = getelementptr inbounds i8, ptr %3, i64 56 - store ptr @.str.19, ptr %.sroa.2.0..sroa_idx.i16.i127, align 8, !alias.scope !29, !noalias !23 + %.sroa.2.0..sroa_idx.i14.i127 = getelementptr inbounds i8, ptr %3, i64 56 + store ptr @.str.19, ptr %.sroa.2.0..sroa_idx.i14.i127, align 8, !alias.scope !29, !noalias !23 %204 = getelementptr inbounds i8, ptr %3, i64 64 store ptr null, ptr %204, 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 %25, ptr nonnull %3, i64 3) @@ -1296,7 +1296,7 @@ declare noundef i64 @_ZN21cmGeneratorExpression4FindERKNSt7__cxx1112basic_string ; Function Attrs: mustprogress uwtable define linkonce_odr dso_local void @_Z8cmStrCatIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcJEES5_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) local_unnamed_addr #3 comdat { -_ZZ8cmStrCatIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcJEES5_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESH_.exit10: +_ZZ8cmStrCatIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcJEES5_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESH_.exit9: %3 = alloca [2 x %"struct.std::pair.179"], align 8 %4 = alloca %class.cmAlphaNum, align 8 %5 = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #15 @@ -1317,8 +1317,8 @@ _ZZ8cmStrCatIRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEcJEES5_OT_OT0 store ptr %12, ptr %13, align 8 store i8 %10, ptr %12, align 8 store i64 1, ptr %9, align 8, !alias.scope !36 - %.sroa.2.0..sroa_idx.i6 = getelementptr inbounds i8, ptr %3, i64 32 - store ptr %12, ptr %.sroa.2.0..sroa_idx.i6, align 8, !alias.scope !36 + %.sroa.2.0..sroa_idx.i5 = getelementptr inbounds i8, ptr %3, i64 32 + store ptr %12, ptr %.sroa.2.0..sroa_idx.i5, align 8, !alias.scope !36 %14 = getelementptr inbounds i8, ptr %3, i64 40 store ptr null, ptr %14, align 8, !alias.scope !36 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/cmAddTestCommand.cxx.ll b/bench/cmake/optimized/cmAddTestCommand.cxx.ll index dfa83154bf6..90f4459d04d 100644 --- a/bench/cmake/optimized/cmAddTestCommand.cxx.ll +++ b/bench/cmake/optimized/cmAddTestCommand.cxx.ll @@ -612,14 +612,14 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %196 = extractvalue { i64, ptr } %195, 0 %197 = extractvalue { i64, ptr } %195, 1 store i64 %196, ptr %194, align 8, !alias.scope !13, !noalias !10 - %.sroa.2.0..sroa_idx.i7.i.i = getelementptr inbounds i8, ptr %5, i64 32 - store ptr %197, 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 %197, ptr %.sroa.2.0..sroa_idx.i6.i.i, align 8, !alias.scope !13, !noalias !10 %198 = getelementptr inbounds i8, ptr %5, i64 40 store ptr null, ptr %198, align 8, !alias.scope !13, !noalias !10 %199 = getelementptr inbounds i8, ptr %5, i64 48 store i64 41, ptr %199, 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 %200 = getelementptr inbounds i8, ptr %5, i64 64 store ptr null, ptr %200, 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) @@ -951,14 +951,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) @@ -1181,7 +1181,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) #15 store i64 %5, ptr %4, align 8, !alias.scope !38 @@ -1194,15 +1194,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) #15 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 2a48c852a02..7032c8b9161 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) #13, !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) #13, !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 50f2c7fa2dd..3a345ed799b 100644 --- a/bench/cmake/optimized/cmCMakeHostSystemInformationCommand.cxx.ll +++ b/bench/cmake/optimized/cmCMakeHostSystemInformationCommand.cxx.ll @@ -965,14 +965,14 @@ _ZN17cmExecutionStatus8SetErrorERKNSt7__cxx1112basic_stringIcSt11char_traitsIcES %303 = extractvalue { i64, ptr } %302, 0 %304 = extractvalue { i64, ptr } %302, 1 store i64 %303, ptr %301, align 8, !alias.scope !14, !noalias !11 - %.sroa.2.0..sroa_idx.i7.i.i = getelementptr inbounds i8, ptr %40, i64 32 - store ptr %304, 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 %304, ptr %.sroa.2.0..sroa_idx.i6.i.i, align 8, !alias.scope !14, !noalias !11 %305 = getelementptr inbounds i8, ptr %40, i64 40 store ptr %54, ptr %305, align 8, !alias.scope !14, !noalias !11 %306 = getelementptr inbounds i8, ptr %40, i64 48 store i64 2, ptr %306, 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 %307 = getelementptr inbounds i8, ptr %40, i64 64 store ptr null, ptr %307, 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 %497 = getelementptr inbounds i8, ptr %4, i64 8 %498 = getelementptr inbounds i8, ptr %4, i64 24 %499 = 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 %500 = getelementptr inbounds i8, ptr %3, i64 40 %501 = 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 %502 = getelementptr inbounds i8, ptr %3, i64 64 %503 = getelementptr inbounds i8, ptr %71, i64 32 %504 = getelementptr inbounds i8, ptr %1, i64 8 @@ -2430,13 +2430,13 @@ _ZSteqIcSt11char_traitsIcEEbNSt15__type_identityISt17basic_string_viewIT_T0_EE4t store ptr %498, ptr %499, align 8, !noalias !48 store i8 95, ptr %498, align 8, !noalias !48 store i64 1, ptr %496, align 8, !alias.scope !54, !noalias !48 - store ptr %498, ptr %.sroa.2.0..sroa_idx.i7.i.i.i.i.i, align 8, !alias.scope !54, !noalias !48 + store ptr %498, ptr %.sroa.2.0..sroa_idx.i6.i.i.i.i.i, align 8, !alias.scope !54, !noalias !48 store ptr null, ptr %500, align 8, !alias.scope !54, !noalias !48 %756 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %752) #21, !noalias !48 %757 = extractvalue { i64, ptr } %756, 0 %758 = extractvalue { i64, ptr } %756, 1 store i64 %757, ptr %501, align 8, !alias.scope !57, !noalias !48 - store ptr %758, ptr %.sroa.2.0..sroa_idx.i16.i.i.i.i.i, align 8, !alias.scope !57, !noalias !48 + store ptr %758, ptr %.sroa.2.0..sroa_idx.i14.i.i.i.i.i, align 8, !alias.scope !57, !noalias !48 store ptr null, ptr %502, 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 %759 unwind label %779, !noalias !47 @@ -2934,7 +2934,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) #21 @@ -2948,8 +2948,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 @@ -2962,8 +2962,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) @@ -3848,7 +3848,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 @@ -3866,7 +3866,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 @@ -4218,8 +4218,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) @@ -4563,7 +4563,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 @@ -4698,7 +4698,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/cmCPackGenerator.cxx.ll b/bench/cmake/optimized/cmCPackGenerator.cxx.ll index 35e2907c15a..825473b6fff 100644 --- a/bench/cmake/optimized/cmCPackGenerator.cxx.ll +++ b/bench/cmake/optimized/cmCPackGenerator.cxx.ll @@ -1411,8 +1411,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit161: ; store ptr null, ptr %180, align 8, !alias.scope !11, !noalias !8 %181 = getelementptr inbounds i8, ptr %2, i64 24 store i64 17, ptr %181, align 8, !alias.scope !14, !noalias !8 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %2, i64 32 - store ptr @.str.11, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !14, !noalias !8 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %2, i64 32 + store ptr @.str.11, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !14, !noalias !8 %182 = getelementptr inbounds i8, ptr %2, i64 40 store ptr null, ptr %182, 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 %11, ptr nonnull %2, i64 2) @@ -3858,8 +3858,8 @@ _ZN10cmCPackLog3LogEiPKciS1_.exit121: ; preds = %125 %136 = getelementptr inbounds i8, ptr %2, i64 24 %137 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %110) #23, !noalias !21 store i64 %137, ptr %136, align 8, !alias.scope !24, !noalias !21 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %2, i64 32 - store ptr %110, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !24, !noalias !21 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %2, i64 32 + store ptr %110, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !24, !noalias !21 %138 = getelementptr inbounds i8, ptr %2, i64 40 store ptr null, ptr %138, align 8, !alias.scope !24, !noalias !21 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 %2, i64 2) @@ -4862,8 +4862,8 @@ _Z10cmNonempty7cmValue.exit: ; preds = %25 %32 = extractvalue { i64, ptr } %31, 0 %33 = extractvalue { i64, ptr } %31, 1 store i64 %32, ptr %30, align 8, !alias.scope !33, !noalias !30 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %5, i64 32 - store ptr %33, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !33, !noalias !30 + %.sroa.2.0..sroa_idx.i5.i = getelementptr inbounds i8, ptr %5, i64 32 + store ptr %33, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !33, !noalias !30 %34 = getelementptr inbounds i8, ptr %5, i64 40 store ptr null, ptr %34, align 8, !alias.scope !33, !noalias !30 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 %5, i64 2) @@ -4980,8 +4980,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit55: ; store ptr null, ptr %71, align 8, !alias.scope !39, !noalias !36 %72 = getelementptr inbounds i8, ptr %4, i64 24 store i64 18, ptr %72, align 8, !alias.scope !42, !noalias !36 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %4, i64 32 - store ptr @.str.57, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !42, !noalias !36 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %4, i64 32 + store ptr @.str.57, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !42, !noalias !36 %73 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %73, align 8, !alias.scope !42, !noalias !36 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 %4, i64 2) @@ -5571,7 +5571,7 @@ _ZN6cmListC2ESt16initializer_listINSt7__cxx1112basic_stringIcSt11char_traitsIcES %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %10, i64 8 %134 = getelementptr inbounds i8, ptr %10, i64 16 %135 = 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 %136 = getelementptr inbounds i8, ptr %10, i64 40 %137 = getelementptr inbounds i8, ptr %27, i64 8 %138 = getelementptr inbounds i8, ptr %27, i64 81 @@ -5585,19 +5585,19 @@ _ZN6cmListC2ESt16initializer_listINSt7__cxx1112basic_stringIcSt11char_traitsIcES %145 = getelementptr inbounds i8, ptr %8, i64 8 %146 = getelementptr inbounds i8, ptr %8, i64 24 %147 = getelementptr inbounds i8, ptr %8, i64 16 - %.sroa.2.0..sroa_idx.i9.i = getelementptr inbounds i8, ptr %7, i64 32 + %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %7, i64 32 %148 = getelementptr inbounds i8, ptr %7, i64 40 %149 = getelementptr inbounds i8, ptr %7, i64 48 - %.sroa.2.0..sroa_idx.i18.i = getelementptr inbounds i8, ptr %7, i64 56 + %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %7, i64 56 %150 = getelementptr inbounds i8, ptr %7, i64 64 %151 = getelementptr inbounds i8, ptr %7, i64 72 %152 = getelementptr inbounds i8, ptr %9, i64 8 %153 = getelementptr inbounds i8, ptr %9, i64 24 %154 = getelementptr inbounds i8, ptr %9, i64 16 - %.sroa.2.0..sroa_idx.i27.i = getelementptr inbounds i8, ptr %7, i64 80 + %.sroa.2.0..sroa_idx.i24.i = getelementptr inbounds i8, ptr %7, i64 80 %155 = getelementptr inbounds i8, ptr %7, i64 88 %156 = getelementptr inbounds i8, ptr %7, i64 96 - %.sroa.2.0..sroa_idx.i36.i = getelementptr inbounds i8, ptr %7, i64 104 + %.sroa.2.0..sroa_idx.i32.i = getelementptr inbounds i8, ptr %7, i64 104 %157 = getelementptr inbounds i8, ptr %7, i64 112 %158 = getelementptr inbounds i8, ptr %24, i64 8 %159 = getelementptr inbounds i8, ptr %24, i64 16 @@ -5607,10 +5607,10 @@ _ZN6cmListC2ESt16initializer_listINSt7__cxx1112basic_stringIcSt11char_traitsIcES %162 = getelementptr inbounds i8, ptr %6, i64 8 %163 = getelementptr inbounds i8, ptr %6, i64 24 %164 = getelementptr inbounds i8, ptr %6, i64 16 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %5, i64 32 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %5, i64 32 %165 = getelementptr inbounds i8, ptr %5, i64 40 %166 = getelementptr inbounds i8, ptr %5, i64 48 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %5, i64 56 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %5, i64 56 %167 = getelementptr inbounds i8, ptr %5, i64 64 %168 = getelementptr inbounds i8, ptr %49, i64 32 br label %196 @@ -5741,7 +5741,7 @@ _ZN10cmCPackLog3LogEiPKciS1_.exit171: ; preds = %203 store ptr %212, ptr %.sroa.2.0..sroa_idx.i.i, align 8, !alias.scope !49, !noalias !46 store ptr null, ptr %134, align 8, !alias.scope !49, !noalias !46 store i64 2, ptr %135, align 8, !alias.scope !52, !noalias !46 - store ptr @.str.68, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !52, !noalias !46 + store ptr @.str.68, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !52, !noalias !46 store ptr null, ptr %136, align 8, !alias.scope !52, !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 %30, ptr nonnull %10, i64 2) to label %213 unwind label %249 @@ -6041,27 +6041,27 @@ _ZN5cmsys17RegularExpression4findERKNSt7__cxx1112basic_stringIcSt11char_traitsIc store ptr %146, ptr %147, align 8, !noalias !55 store i8 47, ptr %146, align 8, !noalias !55 store i64 1, ptr %144, align 8, !alias.scope !61, !noalias !55 - store ptr %146, ptr %.sroa.2.0..sroa_idx.i9.i, align 8, !alias.scope !61, !noalias !55 + store ptr %146, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !61, !noalias !55 store ptr null, ptr %148, align 8, !alias.scope !61, !noalias !55 %305 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %29) #23, !noalias !55 %306 = extractvalue { i64, ptr } %305, 0 %307 = extractvalue { i64, ptr } %305, 1 store i64 %306, ptr %149, align 8, !alias.scope !64, !noalias !55 - store ptr %307, ptr %.sroa.2.0..sroa_idx.i18.i, align 8, !alias.scope !64, !noalias !55 + store ptr %307, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !64, !noalias !55 store ptr null, ptr %150, align 8, !alias.scope !64, !noalias !55 store ptr null, ptr %9, align 8, !noalias !55 store i64 1, ptr %152, align 8, !noalias !55 store ptr %153, ptr %154, align 8, !noalias !55 store i8 47, ptr %153, align 8, !noalias !55 store i64 1, ptr %151, align 8, !alias.scope !67, !noalias !55 - store ptr %153, ptr %.sroa.2.0..sroa_idx.i27.i, align 8, !alias.scope !67, !noalias !55 + store ptr %153, ptr %.sroa.2.0..sroa_idx.i24.i, align 8, !alias.scope !67, !noalias !55 store ptr null, ptr %155, align 8, !alias.scope !67, !noalias !55 call void @llvm.experimental.noalias.scope.decl(metadata !70) %308 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %39) #23, !noalias !73 %309 = extractvalue { i64, ptr } %308, 0 %310 = extractvalue { i64, ptr } %308, 1 store i64 %309, ptr %156, align 8, !alias.scope !70, !noalias !55 - store ptr %310, ptr %.sroa.2.0..sroa_idx.i36.i, align 8, !alias.scope !70, !noalias !55 + store ptr %310, ptr %.sroa.2.0..sroa_idx.i32.i, align 8, !alias.scope !70, !noalias !55 store ptr %39, ptr %157, align 8, !alias.scope !70, !noalias !55 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %38, ptr nonnull %7, i64 5) to label %311 unwind label %340 @@ -6312,13 +6312,13 @@ _ZNSt6vectorISt4pairINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES6_ESaI store ptr %163, ptr %164, align 8, !noalias !74 store i8 47, ptr %163, align 8, !noalias !74 store i64 1, ptr %161, align 8, !alias.scope !80, !noalias !74 - store ptr %163, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !80, !noalias !74 + store ptr %163, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !80, !noalias !74 store ptr null, ptr %165, align 8, !alias.scope !80, !noalias !74 %392 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %29) #23, !noalias !74 %393 = extractvalue { i64, ptr } %392, 0 %394 = extractvalue { i64, ptr } %392, 1 store i64 %393, ptr %166, align 8, !alias.scope !83, !noalias !74 - store ptr %394, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !83, !noalias !74 + store ptr %394, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !83, !noalias !74 store ptr null, ptr %167, align 8, !alias.scope !83, !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 %46, ptr nonnull %5, i64 3) to label %395 unwind label %.loopexit.split-lp282 @@ -9809,8 +9809,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit66: ; store ptr null, ptr %83, align 8, !alias.scope !96, !noalias !93 %84 = getelementptr inbounds i8, ptr %6, i64 24 store i64 21, ptr %84, align 8, !alias.scope !99, !noalias !93 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %6, i64 32 - store ptr @.str.112, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !99, !noalias !93 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %6, i64 32 + store ptr @.str.112, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !99, !noalias !93 %85 = getelementptr inbounds i8, ptr %6, i64 40 store ptr null, ptr %85, 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 %20, ptr nonnull %6, i64 2) @@ -12686,8 +12686,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit441: ; store ptr %872, ptr %873, align 8, !noalias !107 store i8 59, ptr %872, align 8, !noalias !107 store i64 1, ptr %870, align 8, !alias.scope !113, !noalias !107 - %.sroa.2.0..sroa_idx.i8.i = getelementptr inbounds i8, ptr %11, i64 32 - store ptr %872, ptr %.sroa.2.0..sroa_idx.i8.i, align 8, !alias.scope !113, !noalias !107 + %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %11, i64 32 + store ptr %872, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !113, !noalias !107 %874 = getelementptr inbounds i8, ptr %11, i64 40 store ptr null, ptr %874, align 8, !alias.scope !113, !noalias !107 %875 = getelementptr inbounds i8, ptr %11, i64 48 @@ -12695,8 +12695,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit441: ; %877 = extractvalue { i64, ptr } %876, 0 %878 = extractvalue { i64, ptr } %876, 1 store i64 %877, ptr %875, align 8, !alias.scope !116, !noalias !107 - %.sroa.2.0..sroa_idx.i17.i = getelementptr inbounds i8, ptr %11, i64 56 - store ptr %878, ptr %.sroa.2.0..sroa_idx.i17.i, align 8, !alias.scope !116, !noalias !107 + %.sroa.2.0..sroa_idx.i15.i = getelementptr inbounds i8, ptr %11, i64 56 + store ptr %878, ptr %.sroa.2.0..sroa_idx.i15.i, align 8, !alias.scope !116, !noalias !107 %879 = getelementptr inbounds i8, ptr %11, i64 64 store ptr null, ptr %879, align 8, !alias.scope !116, !noalias !107 invoke void @_Z10cmCatViewsSt16initializer_listISt4pairISt17basic_string_viewIcSt11char_traitsIcEEPNSt7__cxx1112basic_stringIcS3_SaIcEEEEE(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %118, ptr nonnull %11, i64 3) @@ -13987,8 +13987,8 @@ _ZN10cmCPackLog3LogEiPKciS1_.exit230: ; preds = %211 store ptr null, ptr %218, align 8, !alias.scope !127, !noalias !124 %219 = getelementptr inbounds i8, ptr %2, i64 24 store i64 2, ptr %219, align 8, !alias.scope !130, !noalias !124 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %2, i64 32 - store ptr @.str.68, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !130, !noalias !124 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %2, i64 32 + store ptr @.str.68, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !130, !noalias !124 %220 = getelementptr inbounds i8, ptr %2, i64 40 store ptr null, ptr %220, 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 %25, ptr nonnull %2, i64 2) @@ -16315,15 +16315,15 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr store ptr null, ptr %45, align 8, !alias.scope !142, !noalias !139 %46 = getelementptr inbounds i8, ptr %4, i64 24 store i64 24, ptr %46, align 8, !alias.scope !145, !noalias !139 - %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %4, i64 32 - store ptr @.str.171, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !145, !noalias !139 + %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %4, i64 32 + store ptr @.str.171, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !145, !noalias !139 %47 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %47, align 8, !alias.scope !145, !noalias !139 %48 = getelementptr inbounds i8, ptr %4, i64 48 %49 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #23, !noalias !139 store i64 %49, ptr %48, align 8, !alias.scope !148, !noalias !139 - %.sroa.2.0..sroa_idx.i16.i = getelementptr inbounds i8, ptr %4, i64 56 - store ptr %2, ptr %.sroa.2.0..sroa_idx.i16.i, align 8, !alias.scope !148, !noalias !139 + %.sroa.2.0..sroa_idx.i14.i = getelementptr inbounds i8, ptr %4, i64 56 + store ptr %2, ptr %.sroa.2.0..sroa_idx.i14.i, align 8, !alias.scope !148, !noalias !139 %50 = getelementptr inbounds i8, ptr %4, i64 64 store ptr null, ptr %50, align 8, !alias.scope !148, !noalias !139 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) diff --git a/bench/cmake/optimized/cmCTestBuildHandler.cxx.ll b/bench/cmake/optimized/cmCTestBuildHandler.cxx.ll index 9371c7a02f1..ece19e47942 100644 --- a/bench/cmake/optimized/cmCTestBuildHandler.cxx.ll +++ b/bench/cmake/optimized/cmCTestBuildHandler.cxx.ll @@ -5157,8 +5157,8 @@ _ZNSt6vectorIN19cmCTestBuildHandler24cmCTestBuildErrorWarningESaIS1_EE9push_back %370 = extractvalue { i64, ptr } %369, 0 %371 = extractvalue { i64, ptr } %369, 1 store i64 %370, ptr %368, align 8, !alias.scope !37, !noalias !34 - %.sroa.2.0..sroa_idx.i6.i = getelementptr inbounds i8, ptr %8, i64 32 - store ptr %371, 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 %371, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !37, !noalias !34 %372 = getelementptr inbounds i8, ptr %8, i64 40 store ptr null, ptr %372, 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) @@ -6281,8 +6281,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) @@ -7623,8 +7623,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 @@ -7632,14 +7632,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) @@ -7680,8 +7680,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) @@ -7769,8 +7769,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) @@ -7924,21 +7924,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) #21, !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) @@ -9233,7 +9233,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) #21 store i64 %4, ptr %3, align 8, !alias.scope !183 @@ -9246,8 +9246,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 18477489615..b7bd7ae4d4f 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) @@ -5575,8 +5575,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) @@ -10359,7 +10359,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 @@ -11006,7 +11006,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 @@ -16097,13 +16097,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 @@ -16199,7 +16199,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 @@ -16235,7 +16235,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 @@ -17137,8 +17137,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) @@ -19128,8 +19128,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 @@ -19138,8 +19138,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 @@ -19151,15 +19151,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) #19, !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) @@ -20057,10 +20057,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 @@ -20148,13 +20148,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) #19, !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 @@ -22065,8 +22065,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 8528fe9a420..0a600f87b94 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) @@ -842,8 +842,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 @@ -851,14 +851,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) @@ -1120,8 +1120,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 @@ -1129,14 +1129,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) @@ -2538,14 +2538,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 @@ -2656,7 +2656,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 @@ -2694,7 +2694,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 1c79e30ec62..65abda817cf 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) @@ -5538,7 +5538,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) #22 store i64 %5, ptr %4, align 8, !alias.scope !90 @@ -5551,15 +5551,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) #22 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/cmCacheManager.cxx.ll b/bench/cmake/optimized/cmCacheManager.cxx.ll index 7b35fb56bc0..4679f6a698c 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) #18, !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) #18, !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) #18, !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 ff2b5426f28..7526185714f 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) #16 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 785dc9a129a..952437773c3 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) #16, !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) #16, !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 1a564625d61..e084c6c57cf 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) #20 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) #20 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) #20 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) #20 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) #20 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) #20 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 e78ba2af6ce..881c31b5bb0 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 c6733007b03..decd1b4b604 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) @@ -3375,7 +3375,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) #17 store i64 %5, ptr %4, align 8, !alias.scope !37 @@ -3388,15 +3388,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) #17 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) @@ -3592,7 +3592,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) @@ -3614,15 +3614,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) #17 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 @@ -3630,15 +3630,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) #17 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) @@ -3649,7 +3649,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) #17 store i64 %5, ptr %4, align 8, !alias.scope !62 @@ -3662,15 +3662,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) #17 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 ef829804f3b..964ecbc151d 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) #15, !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) #15, !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 @@ -2878,14 +2878,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 @@ -2893,14 +2893,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 a6058e32b37..835378b8d92 100644 --- a/bench/cmake/optimized/cmFileAPICodemodel.cxx.ll +++ b/bench/cmake/optimized/cmFileAPICodemodel.cxx.ll @@ -2678,10 +2678,10 @@ _ZNSt6vectorIP17cmGeneratorTargetSaIS1_EED2Ev.exit28.i: ; preds = %657, %.body.i %666 = getelementptr inbounds i8, ptr %27, i64 8 %667 = getelementptr inbounds i8, ptr %27, i64 24 %668 = 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 %669 = getelementptr inbounds i8, ptr %26, i64 40 %670 = 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 %671 = getelementptr inbounds i8, ptr %26, i64 64 %.sroa.2.0..sroa_idx.i.i26.i.i.i = getelementptr inbounds i8, ptr %24, i64 8 %672 = getelementptr inbounds i8, ptr %24, i64 16 @@ -2689,10 +2689,10 @@ _ZNSt6vectorIP17cmGeneratorTargetSaIS1_EED2Ev.exit28.i: ; preds = %657, %.body.i %674 = getelementptr inbounds i8, ptr %25, i64 8 %675 = getelementptr inbounds i8, ptr %25, i64 24 %676 = 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 %677 = getelementptr inbounds i8, ptr %24, i64 40 %678 = 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 %679 = getelementptr inbounds i8, ptr %24, i64 64 %680 = getelementptr inbounds i8, ptr %1, i64 232 %681 = getelementptr inbounds i8, ptr %37, i64 8 @@ -2821,13 +2821,13 @@ _ZN12_GLOBAL__N_115RelativeIfUnderERKNSt7__cxx1112basic_stringIcSt11char_traitsI store ptr %667, ptr %668, align 8, !noalias !61 store i8 45, ptr %667, align 8, !noalias !61 store i64 1, ptr %665, align 8, !alias.scope !62, !noalias !61 - store ptr %667, ptr %.sroa.2.0..sroa_idx.i7.i.i.i.i, align 8, !alias.scope !62, !noalias !61 + store ptr %667, ptr %.sroa.2.0..sroa_idx.i6.i.i.i.i, align 8, !alias.scope !62, !noalias !61 store ptr null, ptr %669, align 8, !alias.scope !62, !noalias !61 %712 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %32) #22, !noalias !55 %713 = extractvalue { i64, ptr } %712, 0 %714 = extractvalue { i64, ptr } %712, 1 store i64 %713, ptr %670, align 8, !alias.scope !65, !noalias !61 - store ptr %714, ptr %.sroa.2.0..sroa_idx.i16.i.i.i.i, align 8, !alias.scope !65, !noalias !61 + store ptr %714, ptr %.sroa.2.0..sroa_idx.i14.i.i.i.i, align 8, !alias.scope !65, !noalias !61 store ptr null, ptr %671, 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 %715 unwind label %722, !noalias !53 @@ -2883,13 +2883,13 @@ _ZN12_GLOBAL__N_115RelativeIfUnderERKNSt7__cxx1112basic_stringIcSt11char_traitsI store ptr %675, ptr %676, align 8, !noalias !74 store i8 45, ptr %675, align 8, !noalias !74 store i64 1, ptr %673, align 8, !alias.scope !75, !noalias !74 - store ptr %675, ptr %.sroa.2.0..sroa_idx.i7.i27.i.i.i, align 8, !alias.scope !75, !noalias !74 + store ptr %675, ptr %.sroa.2.0..sroa_idx.i6.i27.i.i.i, align 8, !alias.scope !75, !noalias !74 store ptr null, ptr %677, align 8, !alias.scope !75, !noalias !74 %731 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %30) #22, !noalias !68 %732 = extractvalue { i64, ptr } %731, 0 %733 = extractvalue { i64, ptr } %731, 1 store i64 %732, ptr %678, align 8, !alias.scope !78, !noalias !74 - store ptr %733, ptr %.sroa.2.0..sroa_idx.i16.i28.i.i.i, align 8, !alias.scope !78, !noalias !74 + store ptr %733, ptr %.sroa.2.0..sroa_idx.i14.i28.i.i.i, align 8, !alias.scope !78, !noalias !74 store ptr null, ptr %679, 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 %734 unwind label %722, !noalias !53 @@ -8934,25 +8934,25 @@ _ZN12_GLOBAL__N_14JBTsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev %1366 = getelementptr inbounds i8, ptr %54, i64 8 %1367 = getelementptr inbounds i8, ptr %54, i64 24 %1368 = 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 %1369 = getelementptr inbounds i8, ptr %53, i64 40 %1370 = 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 %1371 = getelementptr inbounds i8, ptr %53, i64 64 %1372 = getelementptr inbounds i8, ptr %71, i64 8 %.sroa.2.0..sroa_idx.i.i.i = getelementptr inbounds i8, ptr %64, i64 8 %1373 = getelementptr inbounds i8, ptr %64, i64 16 %1374 = 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 %1375 = getelementptr inbounds i8, ptr %64, i64 40 %1376 = 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 %1377 = getelementptr inbounds i8, ptr %64, i64 64 %1378 = 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 %1379 = getelementptr inbounds i8, ptr %64, i64 88 %1380 = 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 %1381 = getelementptr inbounds i8, ptr %64, i64 112 br label %1382 @@ -8982,19 +8982,19 @@ _ZN12_GLOBAL__N_14JBTsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEED2Ev %1392 = extractvalue { i64, ptr } %1391, 0 %1393 = extractvalue { i64, ptr } %1391, 1 store i64 %1392, ptr %1374, align 8, !alias.scope !197, !noalias !194 - store ptr %1393, ptr %.sroa.2.0..sroa_idx.i9.i.i, align 8, !alias.scope !197, !noalias !194 + store ptr %1393, ptr %.sroa.2.0..sroa_idx.i8.i.i, align 8, !alias.scope !197, !noalias !194 store ptr null, ptr %1375, align 8, !alias.scope !197, !noalias !194 store i64 31, ptr %1376, 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 %1377, align 8, !alias.scope !200, !noalias !194 %1394 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.096.0120.i) #22, !noalias !194 %1395 = extractvalue { i64, ptr } %1394, 0 %1396 = extractvalue { i64, ptr } %1394, 1 store i64 %1395, ptr %1378, align 8, !alias.scope !203, !noalias !194 - store ptr %1396, ptr %.sroa.2.0..sroa_idx.i27.i.i, align 8, !alias.scope !203, !noalias !194 + store ptr %1396, ptr %.sroa.2.0..sroa_idx.i24.i.i, align 8, !alias.scope !203, !noalias !194 store ptr null, ptr %1379, align 8, !alias.scope !203, !noalias !194 store i64 24, ptr %1380, 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 %1381, 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 %1397 unwind label %.loopexit103.i, !noalias !188 @@ -9339,13 +9339,13 @@ _ZN12_GLOBAL__N_115RelativeIfUnderERKNSt7__cxx1112basic_stringIcSt11char_traitsI store ptr %1367, ptr %1368, align 8, !noalias !212 store i8 47, ptr %1367, align 8, !noalias !212 store i64 1, ptr %1365, align 8, !alias.scope !218, !noalias !212 - store ptr %1367, ptr %.sroa.2.0..sroa_idx.i7.i.i, align 8, !alias.scope !218, !noalias !212 + store ptr %1367, ptr %.sroa.2.0..sroa_idx.i6.i.i, align 8, !alias.scope !218, !noalias !212 store ptr null, ptr %1369, align 8, !alias.scope !218, !noalias !212 %1503 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %.sroa.084.0110.i) #22, !noalias !212 %1504 = extractvalue { i64, ptr } %1503, 0 %1505 = extractvalue { i64, ptr } %1503, 1 store i64 %1504, ptr %1370, align 8, !alias.scope !221, !noalias !212 - store ptr %1505, ptr %.sroa.2.0..sroa_idx.i16.i.i, align 8, !alias.scope !221, !noalias !212 + store ptr %1505, ptr %.sroa.2.0..sroa_idx.i14.i.i, align 8, !alias.scope !221, !noalias !212 store ptr null, ptr %1371, 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 %1506 unwind label %1497, !noalias !188 @@ -26269,13 +26269,13 @@ _ZNSt10_HashtableIPK17cmGeneratorTargetSt4pairIKS2_jESaIS5_ENSt8__detail10_Selec %.sroa.2.0..sroa_idx.i.i = getelementptr inbounds i8, ptr %7, i64 8 %212 = getelementptr inbounds i8, ptr %7, i64 16 %213 = 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 %214 = getelementptr inbounds i8, ptr %7, i64 40 %215 = getelementptr inbounds i8, ptr %8, i64 24 %.sroa.2.0..sroa_idx.i.i253 = getelementptr inbounds i8, ptr %6, i64 8 %216 = getelementptr inbounds i8, ptr %6, i64 16 %217 = getelementptr inbounds i8, ptr %6, i64 24 - %.sroa.2.0..sroa_idx.i6.i254 = getelementptr inbounds i8, ptr %6, i64 32 + %.sroa.2.0..sroa_idx.i5.i254 = getelementptr inbounds i8, ptr %6, i64 32 %218 = getelementptr inbounds i8, ptr %6, i64 40 br label %219 @@ -26294,7 +26294,7 @@ _ZNSt10_HashtableIPK17cmGeneratorTargetSt4pairIKS2_jESaIS5_ENSt8__detail10_Selec %226 = extractvalue { i64, ptr } %225, 0 %227 = extractvalue { i64, ptr } %225, 1 store i64 %226, ptr %213, align 8, !alias.scope !449, !noalias !443 - store ptr %227, ptr %.sroa.2.0..sroa_idx.i6.i, align 8, !alias.scope !449, !noalias !443 + store ptr %227, ptr %.sroa.2.0..sroa_idx.i5.i, align 8, !alias.scope !449, !noalias !443 store ptr null, ptr %214, 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 %228 unwind label %.loopexit325 @@ -26314,7 +26314,7 @@ _ZNSt10_HashtableIPK17cmGeneratorTargetSt4pairIKS2_jESaIS5_ENSt8__detail10_Selec %235 = extractvalue { i64, ptr } %234, 0 %236 = extractvalue { i64, ptr } %234, 1 store i64 %235, ptr %217, align 8, !alias.scope !458, !noalias !452 - store ptr %236, ptr %.sroa.2.0..sroa_idx.i6.i254, align 8, !alias.scope !458, !noalias !452 + store ptr %236, ptr %.sroa.2.0..sroa_idx.i5.i254, align 8, !alias.scope !458, !noalias !452 store ptr null, ptr %218, 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 %237 unwind label %249 @@ -27613,7 +27613,7 @@ _ZN12_GLOBAL__N_115RelativeIfUnderERKNSt7__cxx1112basic_stringIcSt11char_traitsI %.sroa.2.0..sroa_idx.i.i266 = getelementptr inbounds i8, ptr %5, i64 8 %700 = getelementptr inbounds i8, ptr %5, i64 16 %701 = getelementptr inbounds i8, ptr %5, i64 24 - %.sroa.2.0..sroa_idx.i6.i267 = getelementptr inbounds i8, ptr %5, i64 32 + %.sroa.2.0..sroa_idx.i5.i267 = getelementptr inbounds i8, ptr %5, i64 32 %702 = getelementptr inbounds i8, ptr %5, i64 40 br label %703 @@ -27682,7 +27682,7 @@ _ZN12_GLOBAL__N_115RelativeIfUnderERKNSt7__cxx1112basic_stringIcSt11char_traitsI %719 = extractvalue { i64, ptr } %718, 0 %720 = extractvalue { i64, ptr } %718, 1 store i64 %719, ptr %701, align 8, !alias.scope !468, !noalias !462 - store ptr %720, ptr %.sroa.2.0..sroa_idx.i6.i267, align 8, !alias.scope !468, !noalias !462 + store ptr %720, ptr %.sroa.2.0..sroa_idx.i5.i267, align 8, !alias.scope !468, !noalias !462 store ptr %85, ptr %702, 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 %721 unwind label %726 diff --git a/bench/cmake/optimized/cmProcess.cxx.ll b/bench/cmake/optimized/cmProcess.cxx.ll index 449846ff300..4ebe734cc30 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) #17 @@ -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) #17, !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) #17 + %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) #17 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #17 - 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 d621c81a1bb..6102ee9f5ad 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) #14 @@ -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) #14 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/coreutils-rs/optimized/11lwsmxswp4jsl8v.ll b/bench/coreutils-rs/optimized/11lwsmxswp4jsl8v.ll index c24f6b5fb9a..1818aa94b3a 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 5b5c4cfbf20..3412f96c8e2 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 f1f3e74470a..5f953f4e085 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 2931fa7dae3..c74a0978648 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 14436436aa2..d6511f1978f 100644 --- a/bench/coreutils-rs/optimized/1dx6vdk7m2fhs89j.ll +++ b/bench/coreutils-rs/optimized/1dx6vdk7m2fhs89j.ll @@ -3669,21 +3669,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 c2578bd10e3..960436445e4 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 7c7df06336d..d67987d7ff5 100644 --- a/bench/coreutils-rs/optimized/2ph6t6nh0hmjeejh.ll +++ b/bench/coreutils-rs/optimized/2ph6t6nh0hmjeejh.ll @@ -526,22 +526,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 } @@ -558,20 +562,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 @@ -1538,13 +1542,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 18830926d4b..fd93be83685 100644 --- a/bench/coreutils-rs/optimized/37bflzxgdl1s2bim.ll +++ b/bench/coreutils-rs/optimized/37bflzxgdl1s2bim.ll @@ -1758,8 +1758,8 @@ _ZN3std4path4Path4join17hfe4f79f45298948eE.exit: ; preds = %425 br label %_ZN5uu_cp7copydir24get_local_to_root_parent17hc784ea7756a04284E.exit.i 478: ; preds = %472 - %..val2.i.i = load i64, ptr %342, 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 %342, align 8, !alias.scope !280, !noalias !269 %479 = invoke { ptr, i64 } @_ZN3std4path4Path13_strip_prefix17h9bd2bfa29ca3ec2eE(ptr noalias noundef nonnull readonly align 1 %473, i64 noundef %474, ptr noalias noundef nonnull readonly align 1 %..val.i.i, i64 noundef %..val2.i.i) to label %.noexc48.i unwind label %.loopexit378, !noalias !267 diff --git a/bench/coreutils-rs/optimized/389ib4lq03w39x6a.ll b/bench/coreutils-rs/optimized/389ib4lq03w39x6a.ll index 135d7878816..715aed357fd 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 d6324519662..eabcd84d5c7 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 27a2f9f0df7..320a5663c0f 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 b911e1e949c..ee50bc47303 100644 --- a/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll +++ b/bench/coreutils-rs/optimized/3t7rjcjao5l6ltsf.ll @@ -1130,7 +1130,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) @@ -1143,7 +1143,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) @@ -1197,7 +1197,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 @@ -1208,51 +1208,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 2baa666847b..10815050c75 100644 --- a/bench/coreutils-rs/optimized/3x959pa9na58uqov.ll +++ b/bench/coreutils-rs/optimized/3x959pa9na58uqov.ll @@ -5196,17 +5196,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 7966cebdcca..325f6b797ee 100644 --- a/bench/coreutils-rs/optimized/49l60kyy3fxfwjj0.ll +++ b/bench/coreutils-rs/optimized/49l60kyy3fxfwjj0.ll @@ -385,16 +385,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 @@ -420,16 +415,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 @@ -452,16 +442,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 @@ -484,16 +469,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 6e3daa2d071..2abcd0a913b 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 0813369e55a..28923bb28a7 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 e5576533117..e8d965298e9 100644 --- a/bench/coreutils-rs/optimized/e6v2hjhbpwfodki.ll +++ b/bench/coreutils-rs/optimized/e6v2hjhbpwfodki.ll @@ -4077,24 +4077,23 @@ define hidden { ptr, ptr } @"_ZN5alloc11collections5btree3map25BTreeMap$LT$K$C$V br label %44 44: ; preds = %41, %.loopexit41 - %.sroa.3.0 = phi ptr [ %51, %.loopexit41 ], [ undef, %41 ] - %.sroa.0.0 = phi ptr [ %49, %.loopexit41 ], [ null, %41 ] - %45 = insertvalue { ptr, ptr } poison, ptr %.sroa.0.0, 0 - %46 = insertvalue { ptr, ptr } %45, ptr %.sroa.3.0, 1 - ret { ptr, ptr } %46 + %.merged = phi { ptr, ptr } [ %51, %.loopexit41 ], [ { ptr null, ptr undef }, %41 ] + ret { ptr, ptr } %.merged .loopexit41: ; preds = %.noexc4, %.noexc %.sroa.10.0.ph.i = phi i64 [ %24, %.noexc ], [ %37, %.noexc4 ] %.sroa.5.0.ph.i = phi ptr [ %12, %.noexc ], [ %33, %.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) - %47 = getelementptr inbounds i8, ptr %.sroa.5.0.ph.i, i64 176 - %48 = getelementptr inbounds { [2 x i64] }, ptr %47, i64 %.sroa.10.0.ph.i - %49 = load ptr, ptr %48, align 8, !noalias !707, !nonnull !13, !noundef !13 - %50 = getelementptr inbounds i8, ptr %48, i64 8 - %51 = load ptr, ptr %50, align 8, !noalias !707, !nonnull !13, !align !351, !noundef !13 - store ptr %2, ptr %48, align 8, !noalias !707 - store ptr %3, ptr %50, align 8, !noalias !707 + %45 = getelementptr inbounds i8, ptr %.sroa.5.0.ph.i, i64 176 + %46 = getelementptr inbounds { [2 x i64] }, ptr %45, i64 %.sroa.10.0.ph.i + %47 = load ptr, ptr %46, align 8, !noalias !707, !nonnull !13, !noundef !13 + %48 = getelementptr inbounds i8, ptr %46, i64 8 + %49 = load ptr, ptr %48, align 8, !noalias !707, !nonnull !13, !align !351, !noundef !13 + store ptr %2, ptr %46, align 8, !noalias !707 + store ptr %3, ptr %48, align 8, !noalias !707 + %50 = insertvalue { ptr, ptr } poison, ptr %47, 0 + %51 = insertvalue { ptr, ptr } %50, ptr %49, 1 br label %44 "_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 = %52, %55 diff --git a/bench/coreutils-rs/optimized/h56aibhqef681ic.ll b/bench/coreutils-rs/optimized/h56aibhqef681ic.ll index a26366cebb0..6157f28f218 100644 --- a/bench/coreutils-rs/optimized/h56aibhqef681ic.ll +++ b/bench/coreutils-rs/optimized/h56aibhqef681ic.ll @@ -2448,7 +2448,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 @@ -2459,6 +2459,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 @@ -2467,19 +2469,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 @@ -2865,15 +2866,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 8f0c7699764..598c97831dd 100644 --- a/bench/cpython/optimized/cmathmodule.ll +++ b/bench/cpython/optimized/cmathmodule.ll @@ -2155,23 +2155,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 @@ -2187,9 +2191,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 @@ -2199,12 +2201,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) @@ -2217,9 +2214,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 @@ -2243,16 +2238,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 821e8ba5f4d..33a8b699cd2 100644 --- a/bench/delta-rs/optimized/4imd7xbfeanhlkqt.ll +++ b/bench/delta-rs/optimized/4imd7xbfeanhlkqt.ll @@ -3592,7 +3592,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 @@ -3666,12 +3666,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 18522ce4943..8a04488f6e5 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 @@ -1243,7 +1249,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/delta-rs/optimized/znqw5q2v5mkwwil.ll b/bench/delta-rs/optimized/znqw5q2v5mkwwil.ll index 867098aa292..776b49ada88 100644 --- a/bench/delta-rs/optimized/znqw5q2v5mkwwil.ll +++ b/bench/delta-rs/optimized/znqw5q2v5mkwwil.ll @@ -3736,44 +3736,45 @@ define { ptr, ptr } @_ZN14deltalake_test11TestContext11get_storage17hc5e02e7cb70 %2 = getelementptr inbounds i8, ptr %0, i64 680 %3 = load ptr, ptr %2, align 8, !noundef !4 %.not = icmp eq ptr %3, null - br i1 %.not, label %4, label %..thread_crit_edge + br i1 %.not, label %6, label %..thread_crit_edge ..thread_crit_edge: ; preds = %1 %.phi.trans.insert = getelementptr inbounds i8, ptr %0, i64 688 %..val5.pre = load ptr, ptr %.phi.trans.insert, align 8 + %4 = insertvalue { ptr, ptr } poison, ptr %3, 0 + %5 = insertvalue { ptr, ptr } %4, ptr %..val5.pre, 1 br label %.thread -4: ; preds = %1 - %5 = tail call { ptr, ptr } @_ZN14deltalake_test11TestContext11new_storage17hb079a9494087dc6eE(ptr noalias noundef nonnull readonly align 8 dereferenceable(712) %0) - %6 = extractvalue { ptr, ptr } %5, 1 - %7 = extractvalue { ptr, ptr } %5, 0 - store ptr %7, ptr %2, align 8 - %8 = getelementptr inbounds i8, ptr %0, i64 688 - store ptr %6, ptr %8, align 8 - %9 = icmp eq ptr %7, null - br i1 %9, label %10, label %.thread - -10: ; preds = %4 +6: ; preds = %1 + %7 = tail call { ptr, ptr } @_ZN14deltalake_test11TestContext11new_storage17hb079a9494087dc6eE(ptr noalias noundef nonnull readonly align 8 dereferenceable(712) %0) + %8 = extractvalue { ptr, ptr } %7, 1 + %9 = extractvalue { ptr, ptr } %7, 0 + store ptr %9, ptr %2, align 8 + %10 = getelementptr inbounds i8, ptr %0, i64 688 + store ptr %8, ptr %10, align 8 + %11 = icmp eq ptr %9, null + br i1 %11, label %12, label %.thread + +12: ; preds = %6 tail call void @_ZN4core6option13unwrap_failed17hcb3a256a9f1ca882E(ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.791db69454e89ea14b1bf901649a42ca.77) #21 unreachable -.thread: ; preds = %..thread_crit_edge, %4 - %..val5 = phi ptr [ %..val5.pre, %..thread_crit_edge ], [ %6, %4 ] - %..val = phi ptr [ %3, %..thread_crit_edge ], [ %7, %4 ] - %11 = atomicrmw add ptr %..val, i64 1 monotonic, align 8 - %12 = icmp slt i64 %11, 0 - br i1 %12, label %13, label %"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hf01f75ffd4eadce4E.exit" +.thread: ; preds = %..thread_crit_edge, %6 + %..val5 = phi ptr [ %..val5.pre, %..thread_crit_edge ], [ %8, %6 ] + %..val = phi ptr [ %3, %..thread_crit_edge ], [ %9, %6 ] + %.merged = phi { ptr, ptr } [ %5, %..thread_crit_edge ], [ %7, %6 ] + %13 = atomicrmw add ptr %..val, i64 1 monotonic, align 8 + %14 = icmp slt i64 %13, 0 + br i1 %14, label %15, label %"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hf01f75ffd4eadce4E.exit" -13: ; preds = %.thread +15: ; preds = %.thread tail call void @llvm.trap() unreachable "_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hf01f75ffd4eadce4E.exit": ; preds = %.thread - %14 = icmp ne ptr %..val5, null - tail call void @llvm.assume(i1 %14) - %15 = insertvalue { ptr, ptr } poison, ptr %..val, 0 - %16 = insertvalue { ptr, ptr } %15, ptr %..val5, 1 - ret { ptr, ptr } %16 + %16 = icmp ne ptr %..val5, null + tail call void @llvm.assume(i1 %16) + ret { ptr, ptr } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/diesel-rs/optimized/27d1dwdaey9nml16.ll b/bench/diesel-rs/optimized/27d1dwdaey9nml16.ll index f87278f217f..7ee075a65b7 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 } @@ -5384,15 +5379,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 } @@ -7090,11 +7085,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 @@ -7108,12 +7103,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 @@ -7131,7 +7126,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 d4aac384d34..460c9dbaaf3 100644 --- a/bench/diesel-rs/optimized/4dmkc4an6cvf22v6.ll +++ b/bench/diesel-rs/optimized/4dmkc4an6cvf22v6.ll @@ -6148,17 +6148,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 @@ -6546,7 +6546,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 @@ -6560,39 +6560,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 @@ -6600,7 +6604,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 a27aea29844..54562c20495 100644 --- a/bench/diesel-rs/optimized/4evqpcg6dxygah01.ll +++ b/bench/diesel-rs/optimized/4evqpcg6dxygah01.ll @@ -2849,32 +2849,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 d75929a0079..996be2b0101 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 @@ -1651,17 +1655,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 acf694b9221..d8a3b71a7d2 100644 --- a/bench/duckdb/optimized/ub_duckdb_func_scalar.cpp.ll +++ b/bench/duckdb/optimized/ub_duckdb_func_scalar.cpp.ll @@ -14271,19 +14271,19 @@ _ZN6duckdb8string_t8FinalizeEv.exit.i: ; preds = %if.else.i.i, %for.b call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %date.i) #27 %.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) #27 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 @@ -14328,12 +14328,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/grpc/optimized/cds.cc.ll b/bench/grpc/optimized/cds.cc.ll index fa08d050cf1..8098657d8f1 100644 --- a/bench/grpc/optimized/cds.cc.ll +++ b/bench/grpc/optimized/cds.cc.ll @@ -10890,23 +10890,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) #22 - %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 9476fe7fd33..033cd99cf17 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) #10 - %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) #9 + %9 = extractvalue { ptr, i32 } %8, 0 + call void @__clang_call_terminate(ptr %9) #9 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) #9 + %14 = extractvalue { ptr, i32 } %13, 0 + call void @__clang_call_terminate(ptr %14) #9 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) #11 + call void @_ZdlPv(ptr noundef nonnull %15) #11 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) #10 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) #10 resume { ptr, i32 } %.pn diff --git a/bench/grpc/optimized/evaluate_args.cc.ll b/bench/grpc/optimized/evaluate_args.cc.ll index 4d20336d9c8..7eb49025ba1 100644 --- a/bench/grpc/optimized/evaluate_args.cc.ll +++ b/bench/grpc/optimized/evaluate_args.cc.ll @@ -864,16 +864,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) #20 - %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 @@ -929,16 +924,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) #20 - %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/posix_endpoint.cc.ll b/bench/grpc/optimized/posix_endpoint.cc.ll index 9c3a245b89f..9cb3d6dfab1 100644 --- a/bench/grpc/optimized/posix_endpoint.cc.ll +++ b/bench/grpc/optimized/posix_endpoint.cc.ll @@ -1733,23 +1733,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) #28 - %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 @@ -1759,7 +1760,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) #28 br label %ehcleanup @@ -1776,17 +1777,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) #29 + %24 = extractvalue { ptr, i32 } %23, 0 + call void @__clang_call_terminate(ptr %24) #29 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) #28 resume { ptr, i32 } %.pn } diff --git a/bench/grpc/optimized/xds_endpoint.cc.ll b/bench/grpc/optimized/xds_endpoint.cc.ll index 386ff5e2b14..ef35684891b 100644 --- a/bench/grpc/optimized/xds_endpoint.cc.ll +++ b/bench/grpc/optimized/xds_endpoint.cc.ll @@ -5775,7 +5775,7 @@ lpad16: ; preds = %if.then20 br label %ehcleanup if.then.i28: ; preds = %invoke.cont17, %invoke.cont15 - %ret.sroa.0.0.insert.insert.i45 = phi i32 [ %6, %invoke.cont17 ], [ 0, %invoke.cont15 ] + %ret.sroa.0.0.insert.insert.i43 = phi i32 [ %6, %invoke.cont17 ], [ 0, %invoke.cont15 ] invoke void @_ZN9grpc_core16ValidationErrors8PopFieldEv(ptr noundef nonnull align 8 dereferenceable(72) %errors) to label %cleanup.cont unwind label %terminate.lpad.i29 @@ -5790,7 +5790,7 @@ cleanup.cont: ; preds = %if.then.i28 %call26 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %address_str) #19 %13 = extractvalue { i64, ptr } %call26, 0 %14 = extractvalue { i64, ptr } %call26, 1 - invoke void @_ZN9grpc_core16StringToSockaddrESt17basic_string_viewIcSt11char_traitsIcEEi(ptr nonnull sret(%"class.absl::lts_20230802::StatusOr.116") align 8 %addr, i64 %13, ptr %14, i32 noundef %ret.sroa.0.0.insert.insert.i45) + invoke void @_ZN9grpc_core16StringToSockaddrESt17basic_string_viewIcSt11char_traitsIcEEi(ptr nonnull sret(%"class.absl::lts_20230802::StatusOr.116") align 8 %addr, i64 %13, ptr %14, i32 noundef %ret.sroa.0.0.insert.insert.i43) to label %invoke.cont27 unwind label %lpad14 invoke.cont27: ; preds = %cleanup.cont @@ -5808,39 +5808,40 @@ cond.true.i: ; preds = %if.then31 %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) #19 - %17 = extractvalue { i64, ptr } %call4.i, 0 - %18 = extractvalue { i64, ptr } %call4.i, 1 br label %invoke.cont35 cond.false.i: ; preds = %if.then31 - %19 = and i64 %15, 2 - %.not.i = icmp eq i64 %19, 0 + %17 = and i64 %15, 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.cont35 invoke.cont35: ; 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 ] - invoke void @_ZN9grpc_core16ValidationErrors8AddErrorESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(72) %errors, i64 %retval.sroa.0.0.i, ptr %retval.sroa.4.0.i) + %.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 + invoke void @_ZN9grpc_core16ValidationErrors8AddErrorESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(72) %errors, i64 %20, ptr %21) to label %cleanup42 unwind label %lpad28 lpad28: ; preds = %invoke.cont35 - %20 = landingpad { ptr, i32 } + %22 = landingpad { ptr, i32 } cleanup call void @_ZN4absl12lts_202308028StatusOrI21grpc_resolved_addressED2Ev(ptr noundef nonnull align 8 dereferenceable(140) %addr) #19 br label %ehcleanup cleanup42.thread: ; preds = %invoke.cont27 - %21 = getelementptr inbounds i8, ptr %addr, i64 8 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(132) %agg.result, ptr noundef nonnull align 8 dereferenceable(132) %21, i64 132, i1 false) - %_M_engaged.i.i.i.i35 = getelementptr inbounds i8, ptr %agg.result, i64 132 - store i8 1, ptr %_M_engaged.i.i.i.i35, align 4 + %23 = getelementptr inbounds i8, ptr %addr, i64 8 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 4 dereferenceable(132) %agg.result, ptr noundef nonnull align 8 dereferenceable(132) %23, i64 132, i1 false) + %_M_engaged.i.i.i.i33 = getelementptr inbounds i8, ptr %agg.result, i64 132 + store i8 1, ptr %_M_engaged.i.i.i.i33, align 4 br label %cleanup43 cleanup42: ; preds = %invoke.cont35 - %_M_engaged.i.i.i.i34 = getelementptr inbounds i8, ptr %agg.result, i64 132 - store i8 0, ptr %_M_engaged.i.i.i.i34, align 4 + %_M_engaged.i.i.i.i32 = getelementptr inbounds i8, ptr %agg.result, i64 132 + store i8 0, ptr %_M_engaged.i.i.i.i32, align 4 %.pre = load i64, ptr %addr, align 8 %and.i.i.i1.i.i = and i64 %.pre, 1 %cmp.i.i.i2.i.i = icmp eq i64 %and.i.i.i1.i.i, 0 @@ -5851,36 +5852,36 @@ if.then.i.i3.i.i: ; preds = %cleanup42 to label %cleanup43 unwind label %terminate.lpad.i4.i.i terminate.lpad.i4.i.i: ; preds = %if.then.i.i3.i.i - %22 = landingpad { ptr, i32 } + %24 = landingpad { ptr, i32 } catch ptr null - %23 = extractvalue { ptr, i32 } %22, 0 - call void @__clang_call_terminate(ptr %23) #24 + %25 = extractvalue { ptr, i32 } %24, 0 + call void @__clang_call_terminate(ptr %25) #24 unreachable cleanup43: ; preds = %cleanup42.thread, %if.then.i.i3.i.i, %cleanup42, %if.then.i call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %address_str) #19 - %.pre46 = load ptr, ptr %field, align 8 + %.pre44 = load ptr, ptr %field, align 8 br label %cleanup44 ehcleanup: ; preds = %lpad28, %lpad16, %lpad14 - %.pn = phi { ptr, i32 } [ %20, %lpad28 ], [ %9, %lpad14 ], [ %10, %lpad16 ] + %.pn = phi { ptr, i32 } [ %22, %lpad28 ], [ %9, %lpad14 ], [ %10, %lpad16 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %address_str) #19 br label %ehcleanup45 cleanup44: ; preds = %cleanup43, %invoke.cont6 - %24 = phi ptr [ %.pre46, %cleanup43 ], [ %errors, %invoke.cont6 ] - %cmp.not.i36 = icmp eq ptr %24, null - br i1 %cmp.not.i36, label %return, label %if.then.i37 + %26 = phi ptr [ %.pre44, %cleanup43 ], [ %errors, %invoke.cont6 ] + %cmp.not.i34 = icmp eq ptr %26, null + br i1 %cmp.not.i34, label %return, label %if.then.i35 -if.then.i37: ; preds = %cleanup44 - invoke void @_ZN9grpc_core16ValidationErrors8PopFieldEv(ptr noundef nonnull align 8 dereferenceable(72) %24) - to label %return unwind label %terminate.lpad.i38 +if.then.i35: ; preds = %cleanup44 + invoke void @_ZN9grpc_core16ValidationErrors8PopFieldEv(ptr noundef nonnull align 8 dereferenceable(72) %26) + to label %return unwind label %terminate.lpad.i36 -terminate.lpad.i38: ; preds = %if.then.i37 - %25 = landingpad { ptr, i32 } +terminate.lpad.i36: ; preds = %if.then.i35 + %27 = landingpad { ptr, i32 } catch ptr null - %26 = extractvalue { ptr, i32 } %25, 0 - call void @__clang_call_terminate(ptr %26) #24 + %28 = extractvalue { ptr, i32 } %27, 0 + call void @__clang_call_terminate(ptr %28) #24 unreachable ehcleanup45: ; preds = %lpad, %lpad.i, %ehcleanup @@ -5888,7 +5889,7 @@ ehcleanup45: ; preds = %lpad, %lpad.i, %ehc call void @_ZN9grpc_core16ValidationErrors11ScopedFieldD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %field) #19 resume { ptr, i32 } %.pn11 -return: ; preds = %if.then.i37, %cleanup44, %if.then +return: ; preds = %if.then.i35, %cleanup44, %if.then ret void } diff --git a/bench/grpc/optimized/xds_server_config_fetcher.cc.ll b/bench/grpc/optimized/xds_server_config_fetcher.cc.ll index 88307f43c4f..0700475cdf4 100644 --- a/bench/grpc/optimized/xds_server_config_fetcher.cc.ll +++ b/bench/grpc/optimized/xds_server_config_fetcher.cc.ll @@ -5277,30 +5277,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) #27 - %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) #27 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) #27 - %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) #27 - %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) #27 + %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) #27 + %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 @@ -5315,18 +5316,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) #27 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) #27 br label %eh.resume @@ -5342,7 +5343,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) #27 br label %eh.resume @@ -5351,7 +5352,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/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 1ce6960d6b1..805ec37f13e 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/IRGen.cpp.ll b/bench/hermes/optimized/IRGen.cpp.ll index 07826180049..000e78e84f5 100644 --- a/bench/hermes/optimized/IRGen.cpp.ll +++ b/bench/hermes/optimized/IRGen.cpp.ll @@ -476,31 +476,33 @@ _ZN6hermes9ScopeDesc16createInnerScopeEv.exit: ; preds = %do.end, %if.then.i. store i64 %call2.i, ptr %Length.i, align 8 %call19 = call noundef ptr @_ZN6hermes5irgen11ESTreeIRGen22genSyntaxErrorFunctionEPNS_6ModuleEPNS_9ScopeDescENS_10IdentifierEN4llvh7SMRangeENS7_9StringRefE(ptr noundef nonnull %M, ptr noundef nonnull %call.i17, ptr %agg.tmp14.sroa.0.0.copyload, ptr %agg.tmp15.sroa.0.0.copyload, ptr %agg.tmp15.sroa.2.0.copyload, ptr noundef nonnull byval(%"class.llvh::StringRef") align 8 %agg.tmp17) #7 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #7 + %19 = insertvalue { ptr, ptr } poison, ptr %call19, 0 + %20 = insertvalue { ptr, ptr } %19, ptr %call19, 1 br label %cleanup if.end: ; preds = %lor.lhs.false call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp21, i8 0, i64 24, i1 false) call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp22, i8 0, i64 24, i1 false) call void @_ZN6hermes5irgen11ESTreeIRGenC1EPNS_6ESTree4NodeERKSt6vectorIPNS2_11ProgramNodeESaIS7_EEPNS_6ModuleERKNS_10ScopeChainE(ptr noundef nonnull align 8 dereferenceable(200) %generator, ptr noundef %12, ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp21, ptr noundef nonnull %M, ptr noundef nonnull align 8 dereferenceable(24) %ref.tmp22) #7 - %19 = load ptr, ptr %ref.tmp22, align 8 + %21 = load ptr, ptr %ref.tmp22, align 8 %_M_finish.i.i = getelementptr inbounds i8, ptr %ref.tmp22, i64 8 - %20 = load ptr, ptr %_M_finish.i.i, align 8 - %cmp.not3.i.i.i.i.i = icmp eq ptr %19, %20 + %22 = load ptr, ptr %_M_finish.i.i, align 8 + %cmp.not3.i.i.i.i.i = icmp eq ptr %21, %22 br i1 %cmp.not3.i.i.i.i.i, label %_ZSt8_DestroyIPN6hermes14ScopeChainItemES1_EvT_S3_RSaIT0_E.exit.i.i, label %for.body.i.i.i.i.i for.body.i.i.i.i.i: ; preds = %if.end, %_ZSt8_DestroyIN6hermes14ScopeChainItemEEvPT_.exit.i.i.i.i.i - %__first.addr.04.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i, %_ZSt8_DestroyIN6hermes14ScopeChainItemEEvPT_.exit.i.i.i.i.i ], [ %19, %if.end ] - %21 = load ptr, ptr %__first.addr.04.i.i.i.i.i, align 8 - %tobool.not.i.i.i.i.i.i.i.i.i.i = icmp eq ptr %21, null + %__first.addr.04.i.i.i.i.i = phi ptr [ %incdec.ptr.i.i.i.i.i, %_ZSt8_DestroyIN6hermes14ScopeChainItemEEvPT_.exit.i.i.i.i.i ], [ %21, %if.end ] + %23 = load ptr, ptr %__first.addr.04.i.i.i.i.i, align 8 + %tobool.not.i.i.i.i.i.i.i.i.i.i = icmp eq ptr %23, null br i1 %tobool.not.i.i.i.i.i.i.i.i.i.i, label %_ZSt8_DestroyIN6hermes14ScopeChainItemEEvPT_.exit.i.i.i.i.i, label %if.then.i.i.i.i.i.i.i.i.i.i if.then.i.i.i.i.i.i.i.i.i.i: ; preds = %for.body.i.i.i.i.i - call void @_ZdlPv(ptr noundef nonnull %21) #8 + call void @_ZdlPv(ptr noundef nonnull %23) #8 br label %_ZSt8_DestroyIN6hermes14ScopeChainItemEEvPT_.exit.i.i.i.i.i _ZSt8_DestroyIN6hermes14ScopeChainItemEEvPT_.exit.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i.i.i.i.i, %for.body.i.i.i.i.i %incdec.ptr.i.i.i.i.i = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i.i.i, i64 24 - %cmp.not.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i, %20 + %cmp.not.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i, %22 br i1 %cmp.not.i.i.i.i.i, label %_ZSt8_DestroyIPN6hermes14ScopeChainItemES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i, label %for.body.i.i.i.i.i, !llvm.loop !4 _ZSt8_DestroyIPN6hermes14ScopeChainItemES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i: ; preds = %_ZSt8_DestroyIN6hermes14ScopeChainItemEEvPT_.exit.i.i.i.i.i @@ -508,27 +510,25 @@ _ZSt8_DestroyIPN6hermes14ScopeChainItemES1_EvT_S3_RSaIT0_E.exitthread-pre-split. br label %_ZSt8_DestroyIPN6hermes14ScopeChainItemES1_EvT_S3_RSaIT0_E.exit.i.i _ZSt8_DestroyIPN6hermes14ScopeChainItemES1_EvT_S3_RSaIT0_E.exit.i.i: ; preds = %_ZSt8_DestroyIPN6hermes14ScopeChainItemES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i, %if.end - %22 = phi ptr [ %.pr.i.i, %_ZSt8_DestroyIPN6hermes14ScopeChainItemES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i ], [ %19, %if.end ] - %tobool.not.i.i.i.i = icmp eq ptr %22, null + %24 = phi ptr [ %.pr.i.i, %_ZSt8_DestroyIPN6hermes14ScopeChainItemES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i.i ], [ %21, %if.end ] + %tobool.not.i.i.i.i = icmp eq ptr %24, null br i1 %tobool.not.i.i.i.i, label %_ZN6hermes10ScopeChainD2Ev.exit, label %if.then.i.i.i.i if.then.i.i.i.i: ; preds = %_ZSt8_DestroyIPN6hermes14ScopeChainItemES1_EvT_S3_RSaIT0_E.exit.i.i - call void @_ZdlPv(ptr noundef nonnull %22) #8 + call void @_ZdlPv(ptr noundef nonnull %24) #8 br label %_ZN6hermes10ScopeChainD2Ev.exit _ZN6hermes10ScopeChainD2Ev.exit: ; preds = %_ZSt8_DestroyIPN6hermes14ScopeChainItemES1_EvT_S3_RSaIT0_E.exit.i.i, %if.then.i.i.i.i - %23 = load ptr, ptr %ref.tmp21, align 8 - %tobool.not.i.i.i = icmp eq ptr %23, null + %25 = load ptr, ptr %ref.tmp21, align 8 + %tobool.not.i.i.i = icmp eq ptr %25, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorIPN6hermes6ESTree11ProgramNodeESaIS3_EED2Ev.exit, label %if.then.i.i.i if.then.i.i.i: ; preds = %_ZN6hermes10ScopeChainD2Ev.exit - call void @_ZdlPv(ptr noundef nonnull %23) #8 + call void @_ZdlPv(ptr noundef nonnull %25) #8 br label %_ZNSt6vectorIPN6hermes6ESTree11ProgramNodeESaIS3_EED2Ev.exit _ZNSt6vectorIPN6hermes6ESTree11ProgramNodeESaIS3_EED2Ev.exit: ; preds = %_ZN6hermes10ScopeChainD2Ev.exit, %if.then.i.i.i %call23 = call { ptr, ptr } @_ZN6hermes5irgen11ESTreeIRGen14doLazyFunctionEPNS_3hbc19LazyCompilationDataE(ptr noundef nonnull align 8 dereferenceable(200) %generator, ptr noundef %lazyData) #7 - %24 = extractvalue { ptr, ptr } %call23, 0 - %25 = extractvalue { ptr, ptr } %call23, 1 %functionForDecl.i = getelementptr inbounds i8, ptr %generator, i64 176 %26 = load ptr, ptr %functionForDecl.i, align 8 call void @_ZdlPv(ptr noundef %26) #7 @@ -612,8 +612,7 @@ _ZN6hermes5irgen11ESTreeIRGenD2Ev.exit: ; preds = %_ZNSt6vectorIPN6her br label %cleanup cleanup: ; preds = %_ZN6hermes5irgen11ESTreeIRGenD2Ev.exit, %_ZN6hermes9ScopeDesc16createInnerScopeEv.exit - %retval.sroa.0.0 = phi ptr [ %24, %_ZN6hermes5irgen11ESTreeIRGenD2Ev.exit ], [ %call19, %_ZN6hermes9ScopeDesc16createInnerScopeEv.exit ] - %retval.sroa.3.0 = phi ptr [ %25, %_ZN6hermes5irgen11ESTreeIRGenD2Ev.exit ], [ %call19, %_ZN6hermes9ScopeDesc16createInnerScopeEv.exit ] + %.fca.1.insert.merged = phi { ptr, ptr } [ %call23, %_ZN6hermes5irgen11ESTreeIRGenD2Ev.exit ], [ %20, %_ZN6hermes9ScopeDesc16createInnerScopeEv.exit ] call void @_ZN6hermes6parser8JSParserD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %parser) #7 call void @_ZNSt5dequeIN6hermes3sem12FunctionInfoESaIS2_EED2Ev(ptr noundef nonnull align 8 dereferenceable(80) %semCtx) #7 %39 = load ptr, ptr %state_.i.i, align 8 @@ -666,9 +665,7 @@ if.then.i.i.i.i.i30: ; preds = %_ZN4llvh23SmallVect _ZN6hermes15AllocationScopeD2Ev.exit: ; preds = %_ZN4llvh23SmallVectorTemplateBaseISt10unique_ptrIvPDoFvPvEELb0EE13destroy_rangeEPS5_S7_.exit.i.i.i.i, %if.then.i.i.i.i.i30 call void @_ZdlPv(ptr noundef nonnull %39) #8 call void @_ZN6hermes21SimpleDiagHandlerRAIID1Ev(ptr noundef nonnull align 8 dereferenceable(388) %diagHandler) #7 - %.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 + ret { ptr, ptr } %.fca.1.insert.merged } declare void @_ZN6hermes21SimpleDiagHandlerRAIIC1ERNS_18SourceErrorManagerE(ptr noundef nonnull align 8 dereferenceable(388), ptr noundef nonnull align 8 dereferenceable(464)) unnamed_addr #1 diff --git a/bench/hermes/optimized/JSONParser.cpp.ll b/bench/hermes/optimized/JSONParser.cpp.ll index cff89f6bb81..099ba6e0e55 100644 --- a/bench/hermes/optimized/JSONParser.cpp.ll +++ b/bench/hermes/optimized/JSONParser.cpp.ll @@ -1140,13 +1140,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 @@ -1155,45 +1157,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 @@ -1223,12 +1223,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 21f6aba51e6..4de59d08959 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 518ac92b567..320e9611c0b 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 ult i64 %sub.ptr.sub.i, %Contents.coerce1 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/SourceErrorManager.cpp.ll b/bench/hermes/optimized/SourceErrorManager.cpp.ll index f55d9af15d6..df0d7fe7fc1 100644 --- a/bench/hermes/optimized/SourceErrorManager.cpp.ll +++ b/bench/hermes/optimized/SourceErrorManager.cpp.ll @@ -1191,28 +1191,25 @@ _ZNK6hermes15StringSetVectorixB5cxx11Em.exit: ; preds = %if.then.i.i.i.i.i, %storemerge.i.i.i.i.i = phi ptr [ %add.ptr15.i.i.i.i.i, %cond.end.i.i.i.i.i ], [ %add.ptr.i.i.i.i.i, %if.then.i.i.i.i.i ] %call.i = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %storemerge.i.i.i.i.i) #24 %call2.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %storemerge.i.i.i.i.i) #24 + %4 = insertvalue { ptr, i64 } poison, ptr %call.i, 0 + %5 = insertvalue { ptr, i64 } %4, i64 %call2.i, 1 br label %return if.else: ; preds = %entry %sub.i = add nsw i32 %bufId, -1 %conv.i = zext i32 %sub.i to i64 - %4 = load ptr, ptr %this, align 8 - %add.ptr.i.i = getelementptr inbounds %"struct.llvh::SourceMgr::SrcBuffer", ptr %4, i64 %conv.i - %5 = load ptr, ptr %add.ptr.i.i, align 8 - %vtable = load ptr, ptr %5, align 8 + %6 = load ptr, ptr %this, align 8 + %add.ptr.i.i = getelementptr inbounds %"struct.llvh::SourceMgr::SrcBuffer", ptr %6, i64 %conv.i + %7 = load ptr, ptr %add.ptr.i.i, align 8 + %vtable = load ptr, ptr %7, align 8 %vfn = getelementptr inbounds i8, ptr %vtable, i64 16 - %6 = load ptr, ptr %vfn, align 8 - %call5 = tail call { ptr, i64 } %6(ptr noundef nonnull align 8 dereferenceable(24) %5) #24 - %7 = extractvalue { ptr, i64 } %call5, 0 - %8 = extractvalue { ptr, i64 } %call5, 1 + %8 = load ptr, ptr %vfn, align 8 + %call5 = tail call { ptr, i64 } %8(ptr noundef nonnull align 8 dereferenceable(24) %7) #24 br label %return return: ; preds = %if.else, %_ZNK6hermes15StringSetVectorixB5cxx11Em.exit - %retval.sroa.3.0 = phi i64 [ %call2.i, %_ZNK6hermes15StringSetVectorixB5cxx11Em.exit ], [ %8, %if.else ] - %retval.sroa.0.0 = phi ptr [ %call.i, %_ZNK6hermes15StringSetVectorixB5cxx11Em.exit ], [ %7, %if.else ] - %.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 } [ %5, %_ZNK6hermes15StringSetVectorixB5cxx11Em.exit ], [ %call5, %if.else ] + ret { ptr, i64 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nounwind uwtable @@ -1384,6 +1381,8 @@ if.then: ; preds = %_ZNK4llvh12DenseMap %second = getelementptr inbounds i8, ptr %cond.sink.i.ph.pn.i, i64 8 %call.i = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %second) #24 %call2.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %second) #24 + %5 = insertvalue { ptr, i64 } poison, ptr %call.i, 0 + %6 = insertvalue { ptr, i64 } %5, i64 %call2.i, 1 br label %return if.end: ; preds = %_ZNK4llvh12DenseMapBaseINS_8DenseMapIjNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEENS_12DenseMapInfoIjEENS_6detail12DenseMapPairIjS7_EEEEjS7_S9_SC_E4findERKj.exit @@ -1394,13 +1393,13 @@ if.then.i9: ; preds = %if.end %and.i.i = and i32 %bufId, 2147483647 %conv.i = zext nneg i32 %and.i.i to i64 %_M_start.i.i.i = getelementptr inbounds i8, ptr %this, i64 208 - %5 = load ptr, ptr %_M_start.i.i.i, align 8, !noalias !21 + %7 = load ptr, ptr %_M_start.i.i.i, align 8, !noalias !21 %_M_first3.i.i.i.i.i.i = getelementptr inbounds i8, ptr %this, i64 216 - %6 = load ptr, ptr %_M_first3.i.i.i.i.i.i, align 8, !noalias !21 + %8 = load ptr, ptr %_M_first3.i.i.i.i.i.i, align 8, !noalias !21 %_M_node5.i.i.i.i.i.i = getelementptr inbounds i8, ptr %this, i64 232 - %7 = load ptr, ptr %_M_node5.i.i.i.i.i.i, align 8, !noalias !21 - %sub.ptr.lhs.cast.i.i.i.i.i.i = ptrtoint ptr %5 to i64 - %sub.ptr.rhs.cast.i.i.i.i.i.i = ptrtoint ptr %6 to i64 + %9 = load ptr, ptr %_M_node5.i.i.i.i.i.i, align 8, !noalias !21 + %sub.ptr.lhs.cast.i.i.i.i.i.i = ptrtoint ptr %7 to i64 + %sub.ptr.rhs.cast.i.i.i.i.i.i = ptrtoint ptr %8 to i64 %sub.ptr.sub.i.i.i.i.i.i = sub i64 %sub.ptr.lhs.cast.i.i.i.i.i.i, %sub.ptr.rhs.cast.i.i.i.i.i.i %sub.ptr.div.i.i.i.i.i.i = ashr exact i64 %sub.ptr.sub.i.i.i.i.i.i, 5 %add.i.i.i.i.i.i = add nsw i64 %sub.ptr.div.i.i.i.i.i.i, %conv.i @@ -1412,7 +1411,7 @@ land.lhs.true.i.i.i.i.i.i: ; preds = %if.then.i9 br i1 %cmp2.i.i.i.i.i.i, label %if.then.i.i.i.i.i.i, label %cond.true.i.i.i.i.i.i if.then.i.i.i.i.i.i: ; preds = %land.lhs.true.i.i.i.i.i.i - %add.ptr.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %5, i64 %conv.i + %add.ptr.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %7, i64 %conv.i br label %_ZNK6hermes15StringSetVectorixB5cxx11Em.exit.i cond.true.i.i.i.i.i.i: ; preds = %land.lhs.true.i.i.i.i.i.i @@ -1425,39 +1424,36 @@ cond.false.i.i.i.i.i.i: ; preds = %if.then.i9 cond.end.i.i.i.i.i.i: ; preds = %cond.false.i.i.i.i.i.i, %cond.true.i.i.i.i.i.i %cond.i.i.i.i.i.i = phi i64 [ %div911.i.i.i.i.i.i, %cond.true.i.i.i.i.i.i ], [ %sub10.i.i.i.i.i.i, %cond.false.i.i.i.i.i.i ] - %add.ptr11.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %7, i64 %cond.i.i.i.i.i.i - %8 = load ptr, ptr %add.ptr11.i.i.i.i.i.i, align 8, !noalias !21 + %add.ptr11.i.i.i.i.i.i = getelementptr inbounds ptr, ptr %9, i64 %cond.i.i.i.i.i.i + %10 = load ptr, ptr %add.ptr11.i.i.i.i.i.i, align 8, !noalias !21 %mul.i.i.i.i.i.i = shl nsw i64 %cond.i.i.i.i.i.i, 4 %sub14.i.i.i.i.i.i = sub nsw i64 %add.i.i.i.i.i.i, %mul.i.i.i.i.i.i - %add.ptr15.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %8, i64 %sub14.i.i.i.i.i.i + %add.ptr15.i.i.i.i.i.i = getelementptr inbounds %"class.std::__cxx11::basic_string", ptr %10, i64 %sub14.i.i.i.i.i.i br label %_ZNK6hermes15StringSetVectorixB5cxx11Em.exit.i _ZNK6hermes15StringSetVectorixB5cxx11Em.exit.i: ; preds = %cond.end.i.i.i.i.i.i, %if.then.i.i.i.i.i.i %storemerge.i.i.i.i.i.i = phi ptr [ %add.ptr15.i.i.i.i.i.i, %cond.end.i.i.i.i.i.i ], [ %add.ptr.i.i.i.i.i.i, %if.then.i.i.i.i.i.i ] %call.i.i = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %storemerge.i.i.i.i.i.i) #24 %call2.i.i = tail call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %storemerge.i.i.i.i.i.i) #24 + %11 = insertvalue { ptr, i64 } poison, ptr %call.i.i, 0 + %12 = insertvalue { ptr, i64 } %11, i64 %call2.i.i, 1 br label %return if.else.i: ; preds = %if.end %sub.i.i7 = add nsw i32 %bufId, -1 %conv.i.i = zext i32 %sub.i.i7 to i64 - %9 = load ptr, ptr %this, align 8 - %add.ptr.i.i.i8 = getelementptr inbounds %"struct.llvh::SourceMgr::SrcBuffer", ptr %9, i64 %conv.i.i - %10 = load ptr, ptr %add.ptr.i.i.i8, align 8 - %vtable.i = load ptr, ptr %10, align 8 + %13 = load ptr, ptr %this, align 8 + %add.ptr.i.i.i8 = getelementptr inbounds %"struct.llvh::SourceMgr::SrcBuffer", ptr %13, i64 %conv.i.i + %14 = load ptr, ptr %add.ptr.i.i.i8, align 8 + %vtable.i = load ptr, ptr %14, align 8 %vfn.i = getelementptr inbounds i8, ptr %vtable.i, i64 16 - %11 = load ptr, ptr %vfn.i, align 8 - %call5.i = tail call { ptr, i64 } %11(ptr noundef nonnull align 8 dereferenceable(24) %10) #24 - %12 = extractvalue { ptr, i64 } %call5.i, 0 - %13 = extractvalue { ptr, i64 } %call5.i, 1 + %15 = load ptr, ptr %vfn.i, align 8 + %call5.i = tail call { ptr, i64 } %15(ptr noundef nonnull align 8 dereferenceable(24) %14) #24 br label %return return: ; preds = %if.else.i, %_ZNK6hermes15StringSetVectorixB5cxx11Em.exit.i, %if.then - %retval.sroa.3.0 = phi i64 [ %call2.i, %if.then ], [ %call2.i.i, %_ZNK6hermes15StringSetVectorixB5cxx11Em.exit.i ], [ %13, %if.else.i ] - %retval.sroa.0.0 = phi ptr [ %call.i, %if.then ], [ %call.i.i, %_ZNK6hermes15StringSetVectorixB5cxx11Em.exit.i ], [ %12, %if.else.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.3.0, 1 - ret { ptr, i64 } %.fca.1.insert + %.fca.1.insert.merged = phi { ptr, i64 } [ %6, %if.then ], [ %12, %_ZNK6hermes15StringSetVectorixB5cxx11Em.exit.i ], [ %call5.i, %if.else.i ] + ret { ptr, i64 } %.fca.1.insert.merged } ; Function Attrs: mustprogress nounwind uwtable diff --git a/bench/hermes/optimized/c-api.cpp.ll b/bench/hermes/optimized/c-api.cpp.ll index e1fdac858c7..8cd49342d36 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 69cb190964c..6aaae8f6b1f 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 ult i64 %6, %1 - 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 uge i64 %.pre-phi.i, %1 - tail call void @llvm.assume(i1 %8) - ret void + %9 = icmp uge i64 %.pre-phi.i, %1 + 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 155a50e7909..34e42b3fbe1 100644 --- a/bench/html5ever-rs/optimized/427f68nqtcfpg289.ll +++ b/bench/html5ever-rs/optimized/427f68nqtcfpg289.ll @@ -1871,8 +1871,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 [ @@ -1889,21 +1889,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 @@ -1920,18 +1920,18 @@ 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 @@ -1941,8 +1941,8 @@ define internal fastcc noundef range(i8 -1, 2) i8 @"_ZN64_$LT$core..option..Opti %.0.i.i = select i1 %74, i8 -1, i8 %.9.i.i 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 1fadbe1a605..daa6002ed5d 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 1b1854f90ee..284c7c74545 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.not = icmp eq ptr %.sroa.0.0.copyload, null - br i1 %.not.not, label %56, label %6 + br i1 %.not.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 b05b94e49b6..7d8d3b3844c 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 89ea3be04dc..2a04f178f93 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 %1, %a.coerce0 %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 %5, %a.coerce0 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 15cc39d5782..63609f8d266 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 } @@ -7545,10 +7540,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 45ba93cc534..d93fa33b14a 100644 --- a/bench/influxdb-rs/optimized/1qfvsl8a7jfomqbf.ll +++ b/bench/influxdb-rs/optimized/1qfvsl8a7jfomqbf.ll @@ -10252,7 +10252,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 @@ -10267,37 +10267,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 @@ -10314,7 +10316,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 @@ -10329,37 +10331,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 99ce02ae117..6c70e89227f 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.1.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.1.i.i, i64 noundef %.sroa.4.1.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 @@ -5365,12 +5360,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 fe024455095..16165a4cbd5 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 @@ -1784,7 +1782,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 @@ -1895,14 +1893,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 a27fe3b2672..d26a59a5d9d 100644 --- a/bench/just-rs/optimized/uwydcyn8qeoqoev.ll +++ b/bench/just-rs/optimized/uwydcyn8qeoqoev.ll @@ -20518,7 +20518,7 @@ _ZN4just6parser6Parser8next_are17h904c44e2a49215cdE.exit718: ; preds = %781 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 @@ -20528,12 +20528,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 @@ -20612,31 +20612,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/llama.cpp/optimized/grammar-parser.cpp.ll b/bench/llama.cpp/optimized/grammar-parser.cpp.ll index d5124caac98..346c8e3088b 100644 --- a/bench/llama.cpp/optimized/grammar-parser.cpp.ll +++ b/bench/llama.cpp/optimized/grammar-parser.cpp.ll @@ -3246,39 +3246,38 @@ if.then: ; preds = %entry sw.bb: ; preds = %if.then %add.ptr = getelementptr inbounds i8, ptr %src, i64 2 %call = tail call fastcc { i32, ptr } @_ZN14grammar_parserL9parse_hexEPKci(ptr noundef nonnull %add.ptr, i32 noundef 2) - %2 = extractvalue { i32, ptr } %call, 0 - %3 = extractvalue { i32, ptr } %call, 1 br label %return sw.bb2: ; preds = %if.then %add.ptr3 = getelementptr inbounds i8, ptr %src, i64 2 %call4 = tail call fastcc { i32, ptr } @_ZN14grammar_parserL9parse_hexEPKci(ptr noundef nonnull %add.ptr3, i32 noundef 4) - %4 = extractvalue { i32, ptr } %call4, 0 - %5 = extractvalue { i32, ptr } %call4, 1 br label %return sw.bb5: ; preds = %if.then %add.ptr6 = getelementptr inbounds i8, ptr %src, i64 2 %call7 = tail call fastcc { i32, ptr } @_ZN14grammar_parserL9parse_hexEPKci(ptr noundef nonnull %add.ptr6, i32 noundef 8) - %6 = extractvalue { i32, ptr } %call7, 0 - %7 = extractvalue { i32, ptr } %call7, 1 br label %return sw.bb8: ; preds = %if.then %add.ptr11 = getelementptr inbounds i8, ptr %src, i64 2 + %2 = insertvalue { i32, ptr } { i32 9, ptr poison }, ptr %add.ptr11, 1 br label %return sw.bb13: ; preds = %if.then %add.ptr17 = getelementptr inbounds i8, ptr %src, i64 2 + %3 = insertvalue { i32, ptr } { i32 13, ptr poison }, ptr %add.ptr17, 1 br label %return sw.bb19: ; preds = %if.then %add.ptr23 = getelementptr inbounds i8, ptr %src, i64 2 + %4 = insertvalue { i32, ptr } { i32 10, ptr poison }, ptr %add.ptr23, 1 br label %return sw.bb25: ; preds = %if.then, %if.then, %if.then, %if.then %add.ptr29 = getelementptr inbounds i8, ptr %src, i64 2 %conv.i28 = zext nneg i8 %1 to i32 + %5 = insertvalue { i32, ptr } poison, i32 %conv.i28, 0 + %6 = insertvalue { i32, ptr } %5, ptr %add.ptr29, 1 br label %return sw.default: ; preds = %if.then @@ -3301,32 +3300,32 @@ invoke.cont37: ; preds = %invoke.cont35 to label %unreachable unwind label %lpad36 ehcleanup38.thread: ; preds = %sw.default - %8 = landingpad { ptr, i32 } + %7 = landingpad { ptr, i32 } cleanup call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp33) #21 br label %cleanup.action lpad34: ; preds = %invoke.cont - %9 = landingpad { ptr, i32 } + %8 = landingpad { ptr, i32 } cleanup br label %ehcleanup38 lpad36: ; preds = %invoke.cont37, %invoke.cont35 %cleanup.isactive.0 = phi i1 [ false, %invoke.cont37 ], [ true, %invoke.cont35 ] - %10 = landingpad { ptr, i32 } + %9 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp31) #21 br label %ehcleanup38 ehcleanup38: ; preds = %lpad34, %lpad36 - %.pn = phi { ptr, i32 } [ %10, %lpad36 ], [ %9, %lpad34 ] + %.pn = phi { ptr, i32 } [ %9, %lpad36 ], [ %8, %lpad34 ] %cleanup.isactive.1 = phi i1 [ %cleanup.isactive.0, %lpad36 ], [ true, %lpad34 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp32) #21 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp33) #21 br i1 %cleanup.isactive.1, label %cleanup.action, label %eh.resume cleanup.action: ; preds = %ehcleanup38.thread, %ehcleanup38 - %.pn.pn35 = phi { ptr, i32 } [ %8, %ehcleanup38.thread ], [ %.pn, %ehcleanup38 ] + %.pn.pn35 = phi { ptr, i32 } [ %7, %ehcleanup38.thread ], [ %.pn, %ehcleanup38 ] call void @__cxa_free_exception(ptr %exception) #21 br label %eh.resume @@ -3335,33 +3334,40 @@ if.then40: ; preds = %entry %shr.i = lshr i8 %0, 4 %idxprom.i = zext nneg i8 %shr.i to i64 %arrayidx.i = getelementptr inbounds [16 x i32], ptr @_ZZN14grammar_parserL11decode_utf8EPKcE6lookup, i64 0, i64 %idxprom.i - %11 = load i32, ptr %arrayidx.i, align 4 - %sub.i = sub nsw i32 8, %11 + %10 = load i32, ptr %arrayidx.i, align 4 + %sub.i = sub nsw i32 8, %10 %notmask.i = shl nsw i32 -1, %sub.i %conv5.i = xor i32 %notmask.i, -1 %and.i = and i32 %conv5.i, %conv.i32 - %idx.ext.i = sext i32 %11 to i64 + %idx.ext.i = sext i32 %10 to i64 %add.ptr.i = getelementptr inbounds i8, ptr %src, i64 %idx.ext.i %storemerge8.i = getelementptr inbounds i8, ptr %src, i64 1 - %12 = and i64 %idxprom.i, 12 - %cmp9.i = icmp eq i64 %12, 12 - br i1 %cmp9.i, label %land.rhs.i, label %return + %11 = and i64 %idxprom.i, 12 + %cmp9.i = icmp eq i64 %11, 12 + br i1 %cmp9.i, label %land.rhs.i, label %_ZN14grammar_parserL11decode_utf8EPKc.exit land.rhs.i: ; preds = %if.then40, %for.body.i %storemerge11.i = phi ptr [ %storemerge.i, %for.body.i ], [ %storemerge8.i, %if.then40 ] %value.010.i = phi i32 [ %add.i, %for.body.i ], [ %and.i, %if.then40 ] - %13 = load i8, ptr %storemerge11.i, align 1 - %tobool.not.i = icmp eq i8 %13, 0 - br i1 %tobool.not.i, label %return, label %for.body.i + %12 = load i8, ptr %storemerge11.i, align 1 + %tobool.not.i = icmp eq i8 %12, 0 + br i1 %tobool.not.i, label %_ZN14grammar_parserL11decode_utf8EPKc.exit, label %for.body.i for.body.i: ; preds = %land.rhs.i %shl7.i = shl i32 %value.010.i, 6 - %14 = and i8 %13, 63 - %and9.i = zext nneg i8 %14 to i32 + %13 = and i8 %12, 63 + %and9.i = zext nneg i8 %13 to i32 %add.i = or disjoint i32 %shl7.i, %and9.i %storemerge.i = getelementptr inbounds i8, ptr %storemerge11.i, i64 1 %cmp.i = icmp ult ptr %storemerge.i, %add.ptr.i - br i1 %cmp.i, label %land.rhs.i, label %return, !llvm.loop !16 + br i1 %cmp.i, label %land.rhs.i, label %_ZN14grammar_parserL11decode_utf8EPKc.exit, !llvm.loop !16 + +_ZN14grammar_parserL11decode_utf8EPKc.exit: ; preds = %land.rhs.i, %for.body.i, %if.then40 + %value.0.lcssa.i = phi i32 [ %and.i, %if.then40 ], [ %value.010.i, %land.rhs.i ], [ %add.i, %for.body.i ] + %storemerge.lcssa.i = phi ptr [ %storemerge8.i, %if.then40 ], [ %storemerge11.i, %land.rhs.i ], [ %storemerge.i, %for.body.i ] + %14 = insertvalue { i32, ptr } poison, i32 %value.0.lcssa.i, 0 + %15 = insertvalue { i32, ptr } %14, ptr %storemerge.lcssa.i, 1 + br label %return if.end42: ; preds = %entry %exception43 = tail call ptr @__cxa_allocate_exception(i64 16) #21 @@ -3373,20 +3379,17 @@ invoke.cont45: ; preds = %if.end42 unreachable lpad44: ; preds = %if.end42 - %15 = landingpad { ptr, i32 } + %16 = landingpad { ptr, i32 } cleanup tail call void @__cxa_free_exception(ptr %exception43) #21 br label %eh.resume -return: ; preds = %for.body.i, %land.rhs.i, %if.then40, %sw.bb25, %sw.bb19, %sw.bb13, %sw.bb8, %sw.bb5, %sw.bb2, %sw.bb - %retval.sroa.0.0 = phi i32 [ %conv.i28, %sw.bb25 ], [ 10, %sw.bb19 ], [ 13, %sw.bb13 ], [ 9, %sw.bb8 ], [ %6, %sw.bb5 ], [ %4, %sw.bb2 ], [ %2, %sw.bb ], [ %and.i, %if.then40 ], [ %value.010.i, %land.rhs.i ], [ %add.i, %for.body.i ] - %retval.sroa.9.0 = phi ptr [ %add.ptr29, %sw.bb25 ], [ %add.ptr23, %sw.bb19 ], [ %add.ptr17, %sw.bb13 ], [ %add.ptr11, %sw.bb8 ], [ %7, %sw.bb5 ], [ %5, %sw.bb2 ], [ %3, %sw.bb ], [ %storemerge8.i, %if.then40 ], [ %storemerge11.i, %land.rhs.i ], [ %storemerge.i, %for.body.i ] - %.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.9.0, 1 - ret { i32, ptr } %.fca.1.insert +return: ; preds = %_ZN14grammar_parserL11decode_utf8EPKc.exit, %sw.bb25, %sw.bb19, %sw.bb13, %sw.bb8, %sw.bb5, %sw.bb2, %sw.bb + %.fca.1.insert.merged = phi { i32, ptr } [ %15, %_ZN14grammar_parserL11decode_utf8EPKc.exit ], [ %6, %sw.bb25 ], [ %4, %sw.bb19 ], [ %3, %sw.bb13 ], [ %2, %sw.bb8 ], [ %call7, %sw.bb5 ], [ %call4, %sw.bb2 ], [ %call, %sw.bb ] + ret { i32, ptr } %.fca.1.insert.merged eh.resume: ; preds = %ehcleanup38, %cleanup.action, %lpad44 - %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn35, %cleanup.action ], [ %.pn, %ehcleanup38 ], [ %15, %lpad44 ] + %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn35, %cleanup.action ], [ %.pn, %ehcleanup38 ], [ %16, %lpad44 ] resume { ptr, i32 } %.pn.pn.pn unreachable: ; preds = %invoke.cont37 diff --git a/bench/logos-rs/optimized/l82l31q4dxfnso7.ll b/bench/logos-rs/optimized/l82l31q4dxfnso7.ll index 540f06d321f..84b8531444d 100644 --- a/bench/logos-rs/optimized/l82l31q4dxfnso7.ll +++ b/bench/logos-rs/optimized/l82l31q4dxfnso7.ll @@ -2723,15 +2723,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 %39 + br label %37 "_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" ] @@ -2739,12 +2737,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 %39 +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 %37 28: ; preds = %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit" %29 = getelementptr inbounds i8, ptr %10, i64 8 @@ -2759,16 +2759,11 @@ default.unreachable: ; preds = %"_ZN13logos_codegen store i32 %31, ptr %33, align 8 store <2 x i32> %35, ptr %34, align 8 %36 = call { ptr, i32 } @_ZN13logos_codegen5graph4rope4Rope9into_fork17h959f04f9ad79d04dE(ptr nonnull align 8 %4, ptr nonnull align 8 %0) - %37 = extractvalue { ptr, i32 } %36, 0 - %38 = extractvalue { ptr, i32 } %36, 1 - br label %39 - -39: ; 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" ], [ %38, %28 ], [ %27, %23 ] - %.sroa.0.0 = phi ptr [ %19, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit.thread" ], [ %37, %28 ], [ %25, %23 ] - %40 = insertvalue { ptr, i32 } poison, ptr %.sroa.0.0, 0 - %41 = insertvalue { ptr, i32 } %40, i32 %.sroa.4.0, 1 - ret { ptr, i32 } %41 + br label %37 + +37: ; preds = %21, %28, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit.thread" + %.merged = phi { ptr, i32 } [ %18, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit.thread" ], [ %36, %28 ], [ %27, %21 ] + ret { ptr, i32 } %.merged } ; Function Attrs: nonlazybind uwtable diff --git a/bench/meilisearch-rs/optimized/1cgo24wrkn2cjv53.ll b/bench/meilisearch-rs/optimized/1cgo24wrkn2cjv53.ll index 9092a337a1c..060dc26f739 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 @@ -1441,12 +1437,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 @@ -39857,7 +39849,7 @@ define hidden { i64, ptr } @"_ZN5tokio4sync4mpsc4chan15Rx$LT$T$C$S$GT$4recv17hb1 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) call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %6) - br label %68 + br label %70 20: ; preds = %12 %21 = add i8 %11, -1 @@ -40020,16 +40012,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) call void @llvm.lifetime.end.p0(i64 2, ptr nonnull %6) - br label %68 + br label %70 -68: ; preds = %67, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" - %.sroa.3.0 = phi ptr [ undef, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" ], [ %.sroa.7.0.i, %67 ] - %.sroa.0.0 = phi i64 [ 2, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" ], [ %.sroa.0.0.i19, %67 ] - %69 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 - %70 = insertvalue { i64, ptr } %69, ptr %.sroa.3.0, 1 - ret { i64, ptr } %70 +70: ; preds = %67, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" + %.merged = phi { i64, ptr } [ { i64 2, ptr undef }, %"_ZN4core6result19Result$LT$T$C$E$GT$9unwrap_or17h22cfc91176c7a0c4E.exit" ], [ %69, %67 ] + ret { i64, ptr } %.merged 71: ; preds = %.body %72 = landingpad { ptr, i32 } @@ -40442,19 +40433,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 %112 + to label %"_ZN4core3ptr59drop_in_place$LT$tokio..runtime..coop..RestoreOnPending$GT$17h7c92cc35a7014186E.exit" unwind label %110 108: ; 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 ] @@ -40466,14 +40457,14 @@ define hidden { i64, i64 } @"_ZN5tokio4sync4mpsc4chan15Rx$LT$T$C$S$GT$9recv_many br label %109 109: ; preds = %108, %107 - %.sroa.4.1 = phi i64 [ 0, %107 ], [ %.sroa.7.0.i, %108 ] - %.sroa.0.1 = phi i64 [ %.sroa.0.0, %107 ], [ %.sroa.0.0.i20, %108 ] - %110 = insertvalue { i64, i64 } poison, i64 %.sroa.0.1, 0 - %111 = insertvalue { i64, i64 } %110, i64 %.sroa.4.1, 1 - ret { i64, i64 } %111 - -112: ; preds = %.body - %113 = landingpad { ptr, i32 {"code":"internal","msg":"git-diff-tree: context deadline exceeded","meta":{"cause":"*fmt.wrapError"}}