diff --git a/bench/abseil-cpp/optimized/hash_instantiated_test.cc.ll b/bench/abseil-cpp/optimized/hash_instantiated_test.cc.ll index d184c08d542..eea62384262 100644 --- a/bench/abseil-cpp/optimized/hash_instantiated_test.cc.ll +++ b/bench/abseil-cpp/optimized/hash_instantiated_test.cc.ll @@ -100004,7 +100004,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -100032,7 +100031,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !2807 @@ -300505,7 +300504,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -300533,7 +300531,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !7478 diff --git a/bench/abseil-cpp/optimized/raw_hash_set_test.cc.ll b/bench/abseil-cpp/optimized/raw_hash_set_test.cc.ll index 024f84aedf0..577b1b99012 100644 --- a/bench/abseil-cpp/optimized/raw_hash_set_test.cc.ll +++ b/bench/abseil-cpp/optimized/raw_hash_set_test.cc.ll @@ -115642,7 +115642,6 @@ _ZN4absl18container_internal11node_handleINS0_12_GLOBAL__N_111ValuePolicyIlLb0EE br label %ehcleanup216 invoke.cont15: ; preds = %cond.false.i, %_ZN4absl18container_internal12raw_hash_setINS0_12_GLOBAL__N_111ValuePolicyIlLb0EEENS_13hash_internal4HashIlEESt8equal_toIlESaIlEE4findIlEENSB_8iteratorERKl.exit.i - %node.sroa.0.2 = phi i8 [ 1, %cond.false.i ], [ 0, %_ZN4absl18container_internal12raw_hash_setINS0_12_GLOBAL__N_111ValuePolicyIlLb0EEENS_13hash_internal4HashIlEESt8equal_toIlESaIlEE4findIlEENSB_8iteratorERKl.exit.i ] %node.sroa.22.0 = phi i64 [ %ref.tmp.val.val.i.i, %cond.false.i ], [ 0, %_ZN4absl18container_internal12raw_hash_setINS0_12_GLOBAL__N_111ValuePolicyIlLb0EEENS_13hash_internal4HashIlEESt8equal_toIlESaIlEE4findIlEENSB_8iteratorERKl.exit.i ] store i64 8589934595, ptr %ref.tmp9, align 8, !alias.scope !4531 invoke fastcc void @_ZNK7testing8internal29PredicateFormatterFromMatcherINS0_27UnorderedElementsAreMatcherISt5tupleIJiiEEEEEclIN4absl18container_internal12_GLOBAL__N_110ValueTableIlLb0EEEEENS_15AssertionResultEPKcRKT_(ptr noalias align 8 %gtest_ar, ptr noundef nonnull align 4 dereferenceable(8) %ref.tmp9, ptr noundef nonnull align 8 dereferenceable(32) %t) @@ -115746,8 +115745,7 @@ _ZN7testing15AssertionResultD2Ev.exit: ; preds = %if.end, %_ZNKSt14de store ptr null, ptr %message_.i, align 8 %t.val33 = load ptr, ptr %t, align 8, !nonnull !1153, !noundef !1153 %t.val34 = load ptr, ptr %ref.tmp.sroa.3.0.this.sroa_idx.i.i.i.i, align 8 - %tobool.i.i.i.i.i.i = trunc nuw i8 %node.sroa.0.2 to i1 - br i1 %tobool.i.i.i.i.i.i, label %if.end.i.i, label %invoke.cont42 + br i1 %cmp.i.i.not, label %invoke.cont42, label %if.end.i.i if.end.i.i: ; preds = %_ZN7testing15AssertionResultD2Ev.exit call void @llvm.prefetch.p0(ptr nonnull readonly %t.val33, i32 0, i32 1, i32 1), !noalias !4534 @@ -115824,7 +115822,8 @@ invoke.cont42.loopexit: ; preds = %for.body.i.i.i.i.i. br label %invoke.cont42 invoke.cont42: ; preds = %invoke.cont42.loopexit, %invoke.cont.i.i.i, %_ZN7testing15AssertionResultD2Ev.exit - %node.sroa.0.3 = phi i8 [ 0, %invoke.cont.i.i.i ], [ %node.sroa.0.2, %_ZN7testing15AssertionResultD2Ev.exit ], [ 1, %invoke.cont42.loopexit ] + %node.sroa.0.3 = phi i1 [ true, %invoke.cont.i.i.i ], [ true, %_ZN7testing15AssertionResultD2Ev.exit ], [ false, %invoke.cont42.loopexit ] + %node.sroa.0.3 = phi i8 [ 1, %invoke.cont.i.i.i ], [ 1, %_ZN7testing15AssertionResultD2Ev.exit ], [ 0, %invoke.cont42.loopexit ] %res.sroa.4.01825.i = phi ptr [ %add.ptr3.i.i.i.i.i19.i.i, %invoke.cont.i.i.i ], [ undef, %_ZN7testing15AssertionResultD2Ev.exit ], [ %add.ptr21.i.i.i.i.i.i.i.le, %invoke.cont42.loopexit ] store i32 3, ptr %ref.tmp36, align 4 %agg.tmp3754.sroa.4.0.ref.tmp36.sroa_idx = getelementptr inbounds nuw i8, ptr %ref.tmp36, i64 4 @@ -116039,11 +116038,9 @@ _ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEP _ZN7testing15AssertionResultD2Ev.exit100: ; preds = %if.end81, %_ZNKSt14default_deleteINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclEPS5_.exit.i.i99 store ptr null, ptr %message_.i97, align 8 - %frombool = xor i8 %node.sroa.0.3, 1 - store i8 %frombool, ptr %gtest_ar_, align 8 + store i8 %node.sroa.0.3, ptr %gtest_ar_, align 8 %message_.i101 = getelementptr inbounds nuw i8, ptr %gtest_ar_, i64 8 store ptr null, ptr %message_.i101, align 8 - %tobool.i102.not.not = icmp eq i8 %node.sroa.0.3, 0 br i1 %tobool.i102.not.not, label %_ZN7testing15AssertionResultD2Ev.exit116, label %if.else88 ehcleanup82: ; preds = %_ZN7testing7MessageD2Ev.exit96, %lpad70 diff --git a/bench/actix-rs/optimized/2wg1z1eatrkafji9.ll b/bench/actix-rs/optimized/2wg1z1eatrkafji9.ll index fccbb285599..d5d4b753ff1 100644 --- a/bench/actix-rs/optimized/2wg1z1eatrkafji9.ll +++ b/bench/actix-rs/optimized/2wg1z1eatrkafji9.ll @@ -2077,9 +2077,10 @@ define internal fastcc void @"_ZN4core3ptr365drop_in_place$LT$hashbrown..scopegu 2: ; preds = %13, %0 %.sroa.0.08.i.i = phi i64 [ 0, %0 ], [ %spec.select6.i.i, %13 ] - %3 = icmp ult i64 %.sroa.0.08.i.i, %.0.val - %4 = zext i1 %3 to i64 - %spec.select6.i.i = add nuw i64 %.sroa.0.08.i.i, %4 + %3 = icmp uge i64 %.sroa.0.08.i.i, %.0.val + %4 = xor i1 %3, true + %spec.select6.i.i = zext i1 %not..i.i to i64 + %spec.select6.i.i = add nuw i64 %.sroa.0.07.i.i, %4 %5 = load ptr, ptr %.8.val, align 8, !nonnull !42, !noundef !42 %6 = getelementptr inbounds i8, ptr %5, i64 %.sroa.0.08.i.i %7 = load i8, ptr %6, align 1, !noundef !42 @@ -2094,9 +2095,9 @@ define internal fastcc void @"_ZN4core3ptr365drop_in_place$LT$hashbrown..scopegu br label %13 13: ; preds = %9, %2 - %.not.i.i.i = icmp ule i64 %spec.select6.i.i, %.0.val - %or.cond.not.i.i = select i1 %3, i1 %.not.i.i.i, i1 false - br i1 %or.cond.not.i.i, label %2, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h1b41bde651fd00e8E.exit" + %.not.i.i.i = icmp ugt i64 %spec.select6.i.i, %.0.val + %or.cond.not.i.i = select i1 %3, i1 true, i1 %.not.i.i.i + br i1 %or.cond.not.i.i, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h1b41bde651fd00e8E.exit", label %2 "_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h1b41bde651fd00e8E.exit": ; preds = %13 ret void diff --git a/bench/actix-rs/optimized/520p8qtoxfmkvgyc.ll b/bench/actix-rs/optimized/520p8qtoxfmkvgyc.ll index 0616164c30f..787eaf336bc 100644 --- a/bench/actix-rs/optimized/520p8qtoxfmkvgyc.ll +++ b/bench/actix-rs/optimized/520p8qtoxfmkvgyc.ll @@ -1782,9 +1782,10 @@ define internal fastcc void @"_ZN4core3ptr345drop_in_place$LT$hashbrown..scopegu 2: ; preds = %13, %0 %.sroa.0.08.i.i = phi i64 [ 0, %0 ], [ %spec.select6.i.i, %13 ] - %3 = icmp ult i64 %.sroa.0.08.i.i, %.0.val - %4 = zext i1 %3 to i64 - %spec.select6.i.i = add nuw i64 %.sroa.0.08.i.i, %4 + %3 = icmp uge i64 %.sroa.0.08.i.i, %.0.val + %4 = xor i1 %3, true + %spec.select6.i.i = zext i1 %not..i.i to i64 + %spec.select6.i.i = add nuw i64 %.sroa.0.07.i.i, %4 %5 = load ptr, ptr %.8.val, align 8, !nonnull !4, !noundef !4 %6 = getelementptr inbounds i8, ptr %5, i64 %.sroa.0.08.i.i %7 = load i8, ptr %6, align 1, !noundef !4 @@ -1799,9 +1800,9 @@ define internal fastcc void @"_ZN4core3ptr345drop_in_place$LT$hashbrown..scopegu br label %13 13: ; preds = %9, %2 - %.not.i.i.i = icmp ule i64 %spec.select6.i.i, %.0.val - %or.cond.not.i.i = select i1 %3, i1 %.not.i.i.i, i1 false - br i1 %or.cond.not.i.i, label %2, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h0b4ac29b9db5d94eE.exit" + %.not.i.i.i = icmp ugt i64 %spec.select6.i.i, %.0.val + %or.cond.not.i.i = select i1 %3, i1 true, i1 %.not.i.i.i + br i1 %or.cond.not.i.i, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h0b4ac29b9db5d94eE.exit", label %2 "_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h0b4ac29b9db5d94eE.exit": ; preds = %13 ret void @@ -12183,7 +12184,7 @@ _ZN4core4iter6traits8iterator8Iterator4fold17h0ee10cfa5508cb17E.exit.i: ; preds to label %.thread.i unwind label %80, !noalias !2558 .thread.i: ; preds = %197, %"_ZN4core3ptr53drop_in_place$LT$http..header..value..HeaderValue$GT$17h40c2fab987dd4094E.exit40.i", %69, %49 - %.pn2348.i = phi { ptr, i32 } [ %50, %49 ], [ %70, %69 ], [ %.pn.pn55.i, %"_ZN4core3ptr53drop_in_place$LT$http..header..value..HeaderValue$GT$17h40c2fab987dd4094E.exit40.i" ], [ %.pn.pn55.i, %197 ] + %.pn2348.i = phi { ptr, i32 } [ %50, %49 ], [ %70, %69 ], [ %.pn.pn55.i, %197 ], [ %.pn.pn55.i, %"_ZN4core3ptr53drop_in_place$LT$http..header..value..HeaderValue$GT$17h40c2fab987dd4094E.exit40.i" ] invoke void @"_ZN75_$LT$http..header..map..Drain$LT$T$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h5482ec906d0c062aE.llvm.14998522591088738574"(ptr noalias noundef nonnull align 8 dereferenceable(56) %27) to label %.body unwind label %80, !noalias !2558 diff --git a/bench/arrow/optimized/expression.cc.ll b/bench/arrow/optimized/expression.cc.ll index 1fe3888c01f..6314d78e09f 100644 --- a/bench/arrow/optimized/expression.cc.ll +++ b/bench/arrow/optimized/expression.cc.ll @@ -14962,7 +14962,6 @@ lpad40: ; preds = %if.then38 br label %ehcleanup69 if.end43: ; preds = %if.then38, %if.end36 - %at_least_one_modified.3 = phi i8 [ %at_least_one_modified.017, %if.end36 ], [ 1, %if.then38 ] %29 = load ptr, ptr %modified_arguments, align 8 %add.ptr.i140 = getelementptr inbounds %"class.arrow::compute::Expression", ptr %29, i64 %i.018 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %modified_argument, i8 0, i64 16, i1 false) @@ -15043,7 +15042,7 @@ if.end8.sink.split.i.i.i.i.i.i164: ; preds = %_ZN9__gnu_cxx27__ex cleanup: ; preds = %if.end8.sink.split.i.i.i.i.i.i164, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151, %if.end43, %invoke.cont31 %cleanup.dest.slot.1 = phi i32 [ 6, %invoke.cont31 ], [ 0, %if.end43 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161 ], [ 0, %if.end8.sink.split.i.i.i.i.i.i164 ] - %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.017, %invoke.cont31 ], [ %at_least_one_modified.3, %if.end43 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161 ], [ %at_least_one_modified.3, %if.end8.sink.split.i.i.i.i.i.i164 ] + %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.017, %invoke.cont31 ], [ 1, %if.end43 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161 ], [ 1, %if.end8.sink.split.i.i.i.i.i.i164 ] %41 = load ptr, ptr %_M_refcount.i.i.i.i.i136, align 8 %cmp.not.i.i.i.i175 = icmp eq ptr %41, null br i1 %cmp.not.i.i.i.i175, label %cleanup46, label %if.then.i.i.i.i176 @@ -18474,9 +18473,8 @@ lpad39: ; preds = %if.then37 br label %ehcleanup70 if.end42: ; preds = %if.then37.if.end42_crit_edge, %if.end35 - %204 = phi ptr [ %200, %if.end35 ], [ %.pre37, %if.then37.if.end42_crit_edge ] - %205 = phi ptr [ %199, %if.end35 ], [ %.pre36, %if.then37.if.end42_crit_edge ] - %at_least_one_modified.3 = phi i8 [ %at_least_one_modified.028, %if.end35 ], [ 1, %if.then37.if.end42_crit_edge ] + %204 = phi ptr [ %.pre37, %if.then37.if.end42_crit_edge ], [ %200, %if.end35 ] + %205 = phi ptr [ %.pre36, %if.then37.if.end42_crit_edge ], [ %199, %if.end35 ] %206 = load ptr, ptr %modified_arguments, align 8 %add.ptr.i142 = getelementptr inbounds %"class.arrow::compute::Expression", ptr %206, i64 %i.029 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %modified_argument, i8 0, i64 16, i1 false) @@ -18557,7 +18555,7 @@ if.end8.sink.split.i.i.i.i.i.i166: ; preds = %_ZN9__gnu_cxx27__ex cleanup: ; preds = %if.end8.sink.split.i.i.i.i.i.i166, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i163, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i153, %if.end42, %invoke.cont30 %cleanup.dest.slot.1 = phi i32 [ 6, %invoke.cont30 ], [ 0, %if.end42 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i153 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i163 ], [ 0, %if.end8.sink.split.i.i.i.i.i.i166 ] - %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.028, %invoke.cont30 ], [ %at_least_one_modified.3, %if.end42 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i153 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i163 ], [ %at_least_one_modified.3, %if.end8.sink.split.i.i.i.i.i.i166 ] + %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.028, %invoke.cont30 ], [ 1, %if.end42 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i153 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i163 ], [ 1, %if.end8.sink.split.i.i.i.i.i.i166 ] %218 = load ptr, ptr %_M_refcount.i.i.i.i.i138, align 8 %cmp.not.i.i.i.i177 = icmp eq ptr %218, null br i1 %cmp.not.i.i.i.i177, label %cleanup45, label %if.then.i.i.i.i178 @@ -19685,9 +19683,8 @@ lpad39: ; preds = %if.then37 br label %ehcleanup70 if.end42: ; preds = %if.then37.if.end42_crit_edge, %if.end35 - %57 = phi ptr [ %53, %if.end35 ], [ %.pre21, %if.then37.if.end42_crit_edge ] - %58 = phi ptr [ %52, %if.end35 ], [ %.pre, %if.then37.if.end42_crit_edge ] - %at_least_one_modified.3 = phi i8 [ %at_least_one_modified.018, %if.end35 ], [ 1, %if.then37.if.end42_crit_edge ] + %57 = phi ptr [ %.pre21, %if.then37.if.end42_crit_edge ], [ %53, %if.end35 ] + %58 = phi ptr [ %.pre, %if.then37.if.end42_crit_edge ], [ %52, %if.end35 ] %59 = load ptr, ptr %modified_arguments, align 8 %add.ptr.i103 = getelementptr inbounds %"class.arrow::compute::Expression", ptr %59, i64 %i.019 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %modified_argument, i8 0, i64 16, i1 false) @@ -19768,7 +19765,7 @@ if.end8.sink.split.i.i.i.i.i.i127: ; preds = %_ZN9__gnu_cxx27__ex cleanup: ; preds = %if.end8.sink.split.i.i.i.i.i.i127, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i124, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i114, %if.end42, %invoke.cont30 %cleanup.dest.slot.1 = phi i32 [ 6, %invoke.cont30 ], [ 0, %if.end42 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i114 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i124 ], [ 0, %if.end8.sink.split.i.i.i.i.i.i127 ] - %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.018, %invoke.cont30 ], [ %at_least_one_modified.3, %if.end42 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i114 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i124 ], [ %at_least_one_modified.3, %if.end8.sink.split.i.i.i.i.i.i127 ] + %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.018, %invoke.cont30 ], [ 1, %if.end42 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i114 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i124 ], [ 1, %if.end8.sink.split.i.i.i.i.i.i127 ] %71 = load ptr, ptr %_M_refcount.i.i.i.i.i99, align 8 %cmp.not.i.i.i.i138 = icmp eq ptr %71, null br i1 %cmp.not.i.i.i.i138, label %cleanup45, label %if.then.i.i.i.i139 @@ -22549,7 +22546,6 @@ lpad40: ; preds = %if.then38 br label %ehcleanup69 if.end43: ; preds = %if.then38, %if.end36 - %at_least_one_modified.3 = phi i8 [ %at_least_one_modified.017, %if.end36 ], [ 1, %if.then38 ] %29 = load ptr, ptr %modified_arguments, align 8 %add.ptr.i140 = getelementptr inbounds %"class.arrow::compute::Expression", ptr %29, i64 %i.018 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %modified_argument, i8 0, i64 16, i1 false) @@ -22630,7 +22626,7 @@ if.end8.sink.split.i.i.i.i.i.i164: ; preds = %_ZN9__gnu_cxx27__ex cleanup: ; preds = %if.end8.sink.split.i.i.i.i.i.i164, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151, %if.end43, %invoke.cont31 %cleanup.dest.slot.1 = phi i32 [ 6, %invoke.cont31 ], [ 0, %if.end43 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161 ], [ 0, %if.end8.sink.split.i.i.i.i.i.i164 ] - %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.017, %invoke.cont31 ], [ %at_least_one_modified.3, %if.end43 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161 ], [ %at_least_one_modified.3, %if.end8.sink.split.i.i.i.i.i.i164 ] + %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.017, %invoke.cont31 ], [ 1, %if.end43 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161 ], [ 1, %if.end8.sink.split.i.i.i.i.i.i164 ] %41 = load ptr, ptr %_M_refcount.i.i.i.i.i136, align 8 %cmp.not.i.i.i.i175 = icmp eq ptr %41, null br i1 %cmp.not.i.i.i.i175, label %cleanup46, label %if.then.i.i.i.i176 @@ -24191,9 +24187,8 @@ lpad40: ; preds = %if.then38 br label %ehcleanup71 if.end43: ; preds = %if.then38.if.end43_crit_edge, %if.end36 - %84 = phi ptr [ %80, %if.end36 ], [ %.pre21, %if.then38.if.end43_crit_edge ] - %85 = phi ptr [ %79, %if.end36 ], [ %.pre, %if.then38.if.end43_crit_edge ] - %at_least_one_modified.3 = phi i8 [ %at_least_one_modified.018, %if.end36 ], [ 1, %if.then38.if.end43_crit_edge ] + %84 = phi ptr [ %.pre21, %if.then38.if.end43_crit_edge ], [ %80, %if.end36 ] + %85 = phi ptr [ %.pre, %if.then38.if.end43_crit_edge ], [ %79, %if.end36 ] %86 = load ptr, ptr %modified_arguments, align 8 %add.ptr.i151 = getelementptr inbounds %"class.arrow::compute::Expression", ptr %86, i64 %i.019 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %modified_argument, i8 0, i64 16, i1 false) @@ -24274,7 +24269,7 @@ if.end8.sink.split.i.i.i.i.i.i175: ; preds = %_ZN9__gnu_cxx27__ex cleanup: ; preds = %if.end8.sink.split.i.i.i.i.i.i175, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i172, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i162, %if.end43, %invoke.cont31 %cleanup.dest.slot.1 = phi i32 [ 6, %invoke.cont31 ], [ 0, %if.end43 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i162 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i172 ], [ 0, %if.end8.sink.split.i.i.i.i.i.i175 ] - %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.018, %invoke.cont31 ], [ %at_least_one_modified.3, %if.end43 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i162 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i172 ], [ %at_least_one_modified.3, %if.end8.sink.split.i.i.i.i.i.i175 ] + %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.018, %invoke.cont31 ], [ 1, %if.end43 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i162 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i172 ], [ 1, %if.end8.sink.split.i.i.i.i.i.i175 ] %98 = load ptr, ptr %_M_refcount.i.i.i.i.i147, align 8 %cmp.not.i.i.i.i186 = icmp eq ptr %98, null br i1 %cmp.not.i.i.i.i186, label %cleanup46, label %if.then.i.i.i.i187 @@ -43521,7 +43516,6 @@ lpad40: ; preds = %if.then38 br label %ehcleanup69 if.end43: ; preds = %if.then38, %if.end36 - %at_least_one_modified.3 = phi i8 [ %at_least_one_modified.017, %if.end36 ], [ 1, %if.then38 ] %29 = load ptr, ptr %modified_arguments, align 8 %add.ptr.i140 = getelementptr inbounds %"class.arrow::compute::Expression", ptr %29, i64 %i.018 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %modified_argument, i8 0, i64 16, i1 false) @@ -43602,7 +43596,7 @@ if.end8.sink.split.i.i.i.i.i.i164: ; preds = %_ZN9__gnu_cxx27__ex cleanup: ; preds = %if.end8.sink.split.i.i.i.i.i.i164, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151, %if.end43, %invoke.cont31 %cleanup.dest.slot.1 = phi i32 [ 6, %invoke.cont31 ], [ 0, %if.end43 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151 ], [ 0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161 ], [ 0, %if.end8.sink.split.i.i.i.i.i.i164 ] - %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.017, %invoke.cont31 ], [ %at_least_one_modified.3, %if.end43 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151 ], [ %at_least_one_modified.3, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161 ], [ %at_least_one_modified.3, %if.end8.sink.split.i.i.i.i.i.i164 ] + %at_least_one_modified.2 = phi i8 [ %at_least_one_modified.017, %invoke.cont31 ], [ 1, %if.end43 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i151 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i.i161 ], [ 1, %if.end8.sink.split.i.i.i.i.i.i164 ] %41 = load ptr, ptr %_M_refcount.i.i.i.i.i136, align 8 %cmp.not.i.i.i.i175 = icmp eq ptr %41, null br i1 %cmp.not.i.i.i.i175, label %cleanup46, label %if.then.i.i.i.i176 diff --git a/bench/arrow/optimized/type.cc.ll b/bench/arrow/optimized/type.cc.ll index 7a6c3062f34..337ce73daff 100644 --- a/bench/arrow/optimized/type.cc.ll +++ b/bench/arrow/optimized/type.cc.ll @@ -68283,7 +68283,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -68311,7 +68310,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !1795 diff --git a/bench/assimp/optimized/ComputeUVMappingProcess.cpp.ll b/bench/assimp/optimized/ComputeUVMappingProcess.cpp.ll index c8646507a8e..85c819d4e44 100644 --- a/bench/assimp/optimized/ComputeUVMappingProcess.cpp.ll +++ b/bench/assimp/optimized/ComputeUVMappingProcess.cpp.ll @@ -112,7 +112,7 @@ for.body6: ; preds = %for.cond3.preheader %indvars.iv = phi i64 [ 0, %for.cond3.preheader ], [ %indvars.iv.next, %for.inc ] %round_to_zero.059 = phi i1 [ false, %for.cond3.preheader ], [ %round_to_zero.1, %for.inc ] %one.058 = phi i8 [ 0, %for.cond3.preheader ], [ %one.1, %for.inc ] - %zero.057 = phi i8 [ 0, %for.cond3.preheader ], [ %zero.1, %for.inc ] + %zero.057 = phi i8 [ 0, %for.cond3.preheader ], [ %zero.1.fr, %for.inc ] %large.056 = phi i32 [ %2, %for.cond3.preheader ], [ %large.1, %for.inc ] %smallV.055 = phi i32 [ %2, %for.cond3.preheader ], [ %smallV.1, %for.inc ] %arrayidx8 = getelementptr inbounds nuw i32, ptr %3, i64 %indvars.iv @@ -126,6 +126,7 @@ for.body6: ; preds = %for.cond3.preheader %6 = trunc nuw i64 %indvars.iv to i32 %smallV.1 = select i1 %cmp11, i32 %6, i32 %smallV.055 %zero.1 = select i1 %cmp11, i8 %zero.0., i8 %zero.057 + %zero.1.fr = freeze i8 %zero.1 %7 = and i1 %cmp11, %cmp19 %round_to_zero.1 = select i1 %7, i1 true, i1 %round_to_zero.059 %cmp29 = fcmp ogt float %5, 0x3FECCCCCC0000000 @@ -152,9 +153,9 @@ for.end: ; preds = %for.inc br i1 %or.cond, label %for.inc130, label %for.body50.lr.ph for.body50.lr.ph: ; preds = %for.end - %tobool = trunc nuw i8 %zero.1 to i1 + %tobool = trunc i8 %zero.1.fr to i1 %tobool75 = trunc nuw i8 %one.1 to i1 - br i1 %tobool75, label %for.body50.us, label %for.body50 + br i1 %tobool, label %for.body50.us, label %for.body50 for.body50.us: ; preds = %for.body50.lr.ph, %for.inc126.us %indvars.iv72 = phi i64 [ %indvars.iv.next73, %for.inc126.us ], [ 0, %for.body50.lr.ph ] @@ -164,26 +165,28 @@ for.body50.us: ; preds = %for.body50.lr.ph, % %idxprom54.us = zext i32 %9 to i64 %arrayidx55.us = getelementptr inbounds nuw %class.aiVector3t, ptr %out, i64 %idxprom54.us %10 = load float, ptr %arrayidx55.us, align 4 - %cmp57.us = fcmp ule float %10, 0x3FECCCCCC0000000 - %brmerge = select i1 %cmp57.us, i1 true, i1 %tobool - br i1 %brmerge, label %if.else83.us, label %for.inc126.us.sink.split + %cmp57.us = fcmp olt float %10, 0x3FB99999A0000000 + br i1 %cmp57.us, label %land.lhs.true74.us, label %if.else83.us if.else83.us: ; preds = %for.body50.us - br i1 %tobool, label %if.then87.us, label %for.inc126.us + br i1 %tobool84, label %land.lhs.true85.us, label %for.inc126.us -if.then87.us: ; preds = %if.else83.us +if.then87.us: ; preds = %if.else66.us + br i1 %tobool84, label %land.lhs.true85.us, label %for.inc126.us.sink.split + +land.lhs.true85.us: ; preds = %land.lhs.true74.us, %if.else83.us br i1 %round_to_zero.1, label %land.lhs.true89.us, label %land.lhs.true106.us -land.lhs.true106.us: ; preds = %if.then87.us +land.lhs.true106.us: ; preds = %land.lhs.true85.us %cmp113.us = fcmp ugt float %10, 0x3F847AE140000000 br i1 %cmp113.us, label %for.inc126.us, label %for.inc126.us.sink.split -land.lhs.true89.us: ; preds = %if.then87.us +land.lhs.true89.us: ; preds = %land.lhs.true85.us %cmp96.us = fcmp ult float %10, 0x3FEFAE1480000000 br i1 %cmp96.us, label %for.inc126.us, label %for.inc126.us.sink.split -for.inc126.us.sink.split: ; preds = %land.lhs.true89.us, %land.lhs.true106.us, %for.body50.us - %.sink = phi float [ 0.000000e+00, %for.body50.us ], [ 1.000000e+00, %land.lhs.true106.us ], [ 0.000000e+00, %land.lhs.true89.us ] +for.inc126.us.sink.split: ; preds = %land.lhs.true89.us, %land.lhs.true106.us, %if.then87.us + %.sink = phi float [ 1.000000e+00, %if.then87.us ], [ 1.000000e+00, %land.lhs.true106.us ], [ 0.000000e+00, %land.lhs.true89.us ] store float %.sink, ptr %arrayidx55.us, align 4 br label %for.inc126.us @@ -203,12 +206,12 @@ for.body50: ; preds = %for.body50.lr.ph, % %arrayidx55 = getelementptr inbounds nuw %class.aiVector3t, ptr %out, i64 %idxprom54 %15 = load float, ptr %arrayidx55, align 4 %cmp57 = fcmp ule float %15, 0x3FECCCCCC0000000 - %brmerge66 = select i1 %cmp57, i1 true, i1 %tobool - br i1 %brmerge66, label %if.else66, label %for.inc126.sink.split + br i1 %cmp57, label %if.else66, label %for.inc126.sink.split if.else66: ; preds = %for.body50 %cmp73 = fcmp uge float %15, 0x3FB99999A0000000 - br i1 %cmp73, label %for.inc126, label %for.inc126.sink.split + %brmerge67 = select i1 %cmp73, i1 true, i1 %tobool84 + br i1 %brmerge67, label %for.inc126, label %for.inc126.sink.split for.inc126.sink.split: ; preds = %if.else66, %for.body50 %.sink79 = phi float [ 0.000000e+00, %for.body50 ], [ 1.000000e+00, %if.else66 ] diff --git a/bench/assimp/optimized/DXFLoader.cpp.ll b/bench/assimp/optimized/DXFLoader.cpp.ll index ba6ddb628b6..baa8440df33 100644 --- a/bench/assimp/optimized/DXFLoader.cpp.ll +++ b/bench/assimp/optimized/DXFLoader.cpp.ll @@ -6372,7 +6372,7 @@ while.body: ; preds = %while.body.lr.ph, % %36 = phi float [ 0.000000e+00, %while.body.lr.ph ], [ %69, %sw.epilog ] %b.sroa.16.0174 = phi i1 [ false, %while.body.lr.ph ], [ %b.sroa.16.1, %sw.epilog ] %b.sroa.12.0173 = phi i1 [ false, %while.body.lr.ph ], [ %b.sroa.12.1, %sw.epilog ] - %b.sroa.6.0172 = phi i8 [ 0, %while.body.lr.ph ], [ %b.sroa.6.1, %sw.epilog ] + %b.sroa.6.0172 = phi i1 [ false, %while.body.lr.ph ], [ %b.sroa.6.1, %sw.epilog ] %b.sroa.0.0171 = phi i8 [ 0, %while.body.lr.ph ], [ %b.sroa.0.1, %sw.epilog ] %37 = phi float [ 0.000000e+00, %while.body.lr.ph ], [ %70, %sw.epilog ] %38 = load i32, ptr %groupcode.i, align 8 @@ -6558,7 +6558,7 @@ sw.epilog: ; preds = %while.body, %_ZNK6A %69 = phi float [ %36, %_ZNK6Assimp3DXF10LineReader18ValueAsUnsignedIntEv.exit ], [ %51, %sw.bb66 ], [ %36, %sw.bb61 ], [ %36, %sw.bb56 ], [ %36, %sw.bb51 ], [ %36, %sw.bb46 ], [ %36, %sw.bb41 ], [ %36, %sw.bb36 ], [ %36, %sw.bb31 ], [ %36, %sw.bb26 ], [ %36, %sw.bb22 ], [ %36, %sw.bb18 ], [ %36, %sw.bb15 ], [ %36, %sw.bb ], [ %36, %while.body ] %70 = phi float [ %37, %_ZNK6Assimp3DXF10LineReader18ValueAsUnsignedIntEv.exit ], [ %37, %sw.bb66 ], [ %37, %sw.bb61 ], [ %37, %sw.bb56 ], [ %37, %sw.bb51 ], [ %37, %sw.bb46 ], [ %37, %sw.bb41 ], [ %37, %sw.bb36 ], [ %37, %sw.bb31 ], [ %37, %sw.bb26 ], [ %37, %sw.bb22 ], [ %37, %sw.bb18 ], [ %40, %sw.bb15 ], [ %37, %sw.bb ], [ %37, %while.body ] %b.sroa.0.1 = phi i8 [ %b.sroa.0.0171, %_ZNK6Assimp3DXF10LineReader18ValueAsUnsignedIntEv.exit ], [ %b.sroa.0.0171, %sw.bb66 ], [ %b.sroa.0.0171, %sw.bb61 ], [ %b.sroa.0.0171, %sw.bb56 ], [ 1, %sw.bb51 ], [ 1, %sw.bb46 ], [ 1, %sw.bb41 ], [ %b.sroa.0.0171, %sw.bb36 ], [ %b.sroa.0.0171, %sw.bb31 ], [ %b.sroa.0.0171, %sw.bb26 ], [ %b.sroa.0.0171, %sw.bb22 ], [ %b.sroa.0.0171, %sw.bb18 ], [ %b.sroa.0.0171, %sw.bb15 ], [ %b.sroa.0.0171, %sw.bb ], [ %b.sroa.0.0171, %while.body ] - %b.sroa.6.1 = phi i8 [ %b.sroa.6.0172, %_ZNK6Assimp3DXF10LineReader18ValueAsUnsignedIntEv.exit ], [ 1, %sw.bb66 ], [ 1, %sw.bb61 ], [ 1, %sw.bb56 ], [ %b.sroa.6.0172, %sw.bb51 ], [ %b.sroa.6.0172, %sw.bb46 ], [ %b.sroa.6.0172, %sw.bb41 ], [ %b.sroa.6.0172, %sw.bb36 ], [ %b.sroa.6.0172, %sw.bb31 ], [ %b.sroa.6.0172, %sw.bb26 ], [ %b.sroa.6.0172, %sw.bb22 ], [ %b.sroa.6.0172, %sw.bb18 ], [ %b.sroa.6.0172, %sw.bb15 ], [ %b.sroa.6.0172, %sw.bb ], [ %b.sroa.6.0172, %while.body ] + %b.sroa.6.1 = phi i1 [ %b.sroa.6.0172, %_ZNK6Assimp3DXF10LineReader18ValueAsUnsignedIntEv.exit ], [ true, %sw.bb66 ], [ true, %sw.bb61 ], [ true, %sw.bb56 ], [ %b.sroa.6.0172, %sw.bb51 ], [ %b.sroa.6.0172, %sw.bb46 ], [ %b.sroa.6.0172, %sw.bb41 ], [ %b.sroa.6.0172, %sw.bb36 ], [ %b.sroa.6.0172, %sw.bb31 ], [ %b.sroa.6.0172, %sw.bb26 ], [ %b.sroa.6.0172, %sw.bb22 ], [ %b.sroa.6.0172, %sw.bb18 ], [ %b.sroa.6.0172, %sw.bb15 ], [ %b.sroa.6.0172, %sw.bb ], [ %b.sroa.6.0172, %while.body ] %b.sroa.12.1 = phi i1 [ %b.sroa.12.0173, %_ZNK6Assimp3DXF10LineReader18ValueAsUnsignedIntEv.exit ], [ %b.sroa.12.0173, %sw.bb66 ], [ %b.sroa.12.0173, %sw.bb61 ], [ %b.sroa.12.0173, %sw.bb56 ], [ %b.sroa.12.0173, %sw.bb51 ], [ %b.sroa.12.0173, %sw.bb46 ], [ %b.sroa.12.0173, %sw.bb41 ], [ %b.sroa.12.0173, %sw.bb36 ], [ %b.sroa.12.0173, %sw.bb31 ], [ %b.sroa.12.0173, %sw.bb26 ], [ true, %sw.bb22 ], [ true, %sw.bb18 ], [ true, %sw.bb15 ], [ %b.sroa.12.0173, %sw.bb ], [ %b.sroa.12.0173, %while.body ] %b.sroa.16.1 = phi i1 [ %b.sroa.16.0174, %_ZNK6Assimp3DXF10LineReader18ValueAsUnsignedIntEv.exit ], [ %b.sroa.16.0174, %sw.bb66 ], [ %b.sroa.16.0174, %sw.bb61 ], [ %b.sroa.16.0174, %sw.bb56 ], [ %b.sroa.16.0174, %sw.bb51 ], [ %b.sroa.16.0174, %sw.bb46 ], [ %b.sroa.16.0174, %sw.bb41 ], [ true, %sw.bb36 ], [ true, %sw.bb31 ], [ true, %sw.bb26 ], [ %b.sroa.16.0174, %sw.bb22 ], [ %b.sroa.16.0174, %sw.bb18 ], [ %b.sroa.16.0174, %sw.bb15 ], [ %b.sroa.16.0174, %sw.bb ], [ %b.sroa.16.0174, %while.body ] %call74 = call noundef nonnull align 8 dereferenceable(100) ptr @_ZN6Assimp3DXF10LineReaderppEv(ptr noundef nonnull align 8 dereferenceable(100) %reader) @@ -6580,7 +6580,7 @@ while.end: ; preds = %sw.epilog, %while.b %.lcssa323.sink = phi float [ %26, %while.body ], [ %59, %sw.epilog ] %.lcssa = phi float [ %37, %while.body ], [ %70, %sw.epilog ] %b.sroa.0.0.lcssa = phi i8 [ %b.sroa.0.0171, %while.body ], [ %b.sroa.0.1, %sw.epilog ] - %b.sroa.6.0.lcssa = phi i8 [ %b.sroa.6.0172, %while.body ], [ %b.sroa.6.1, %sw.epilog ] + %b.sroa.6.0.lcssa = phi i1 [ %b.sroa.6.0172, %while.body ], [ %b.sroa.6.1, %sw.epilog ] %b.sroa.12.0.lcssa = phi i1 [ %b.sroa.12.0173, %while.body ], [ %b.sroa.12.1, %sw.epilog ] %b.sroa.16.0.lcssa = phi i1 [ %b.sroa.16.0174, %while.body ], [ %b.sroa.16.1, %sw.epilog ] store float %.lcssa313.sink, ptr %z69, align 4 @@ -6603,18 +6603,20 @@ while.end: ; preds = %sw.epilog, %while.b _ZNK10aiVector3tIfEeqERKS0_.exit: ; preds = %while.end %cmp6.i = fcmp oeq float %.lcssa313.sink, %.lcssa316.sink %cond.fr = freeze i1 %cmp6.i - br i1 %cond.fr, label %lor.lhs.false, label %_ZNK10aiVector3tIfEeqERKS0_.exit.thread + %b.sroa.6.0.not = xor i1 %b.sroa.6.0.lcssa, true + %brmerge = select i1 %cond.fr, i1 true, i1 %b.sroa.6.0.not + br i1 %brmerge, label %lor.lhs.false, label %land.lhs.true -_ZNK10aiVector3tIfEeqERKS0_.exit.thread: ; preds = %while.end, %_ZNK10aiVector3tIfEeqERKS0_.exit - %tobool = trunc nuw i8 %b.sroa.6.0.lcssa to i1 - br i1 %tobool, label %land.lhs.true, label %lor.lhs.false +_ZNK10aiVector3tIfEeqERKS0_.exit.thread: ; preds = %while.end + br i1 %b.sroa.6.0.lcssa, label %land.lhs.true, label %lor.lhs.false -land.lhs.true: ; preds = %_ZNK10aiVector3tIfEeqERKS0_.exit.thread +land.lhs.true: ; preds = %_ZNK10aiVector3tIfEeqERKS0_.exit, %_ZNK10aiVector3tIfEeqERKS0_.exit.thread %tobool83 = trunc nuw i8 %b.sroa.0.0.lcssa to i1 br i1 %tobool83, label %lor.lhs.false, label %if.then89 lor.lhs.false: ; preds = %_ZNK10aiVector3tIfEeqERKS0_.exit, %land.lhs.true, %_ZNK10aiVector3tIfEeqERKS0_.exit.thread - %72 = phi i8 [ %b.sroa.6.0.lcssa, %land.lhs.true ], [ %b.sroa.6.0.lcssa, %_ZNK10aiVector3tIfEeqERKS0_.exit.thread ], [ 0, %_ZNK10aiVector3tIfEeqERKS0_.exit ] + %72 = phi i8 [ 1, %land.lhs.true ], [ %b.sroa.0.0.lcssa, %_ZNK10aiVector3tIfEeqERKS0_.exit.thread ], [ %b.sroa.0.0.lcssa, %_ZNK10aiVector3tIfEeqERKS0_.exit ] + %72 = phi i8 [ 1, %land.lhs.true ], [ 0, %_ZNK10aiVector3tIfEeqERKS0_.exit.thread ], [ 0, %_ZNK10aiVector3tIfEeqERKS0_.exit ] %73 = select i1 %b.sroa.12.0.lcssa, i1 %b.sroa.16.0.lcssa, i1 false br i1 %73, label %if.end94, label %if.then89 @@ -6700,10 +6702,9 @@ if.end8.sink.split.i.i.i.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__ex br label %for.end if.end94: ; preds = %lor.lhs.false - %87 = and i8 %b.sroa.0.0.lcssa, 1 + %87 = and i8 %b.sroa.0.0.lcssa255, 1 %88 = or disjoint i8 %87, 2 - %tobool.mask = and i8 %72, 1 - %narrow = add nuw nsw i8 %88, %tobool.mask + %tobool.mask = add nuw nsw i8 %88, %72 %add100 = zext nneg i8 %narrow to i32 %counts = getelementptr inbounds nuw i8, ptr %24, i64 72 %_M_finish.i91 = getelementptr inbounds nuw i8, ptr %24, i64 80 @@ -6777,7 +6778,7 @@ _ZNSt6vectorIjSaIjEE9push_backERKj.exit: ; preds = %if.then.i, %_ZNSt6v %colors = getelementptr inbounds nuw i8, ptr %24, i64 24 %_M_finish.i132 = getelementptr inbounds nuw i8, ptr %24, i64 32 %_M_end_of_storage.i133 = getelementptr inbounds nuw i8, ptr %24, i64 40 - %94 = add nuw nsw i8 %72, %b.sroa.0.0.lcssa + %94 = add nuw nsw i8 %b.sroa.0.0.lcssa255, %72 %95 = add nuw nsw i8 %94, 2 %wide.trip.count = zext i8 %95 to i64 br label %for.body diff --git a/bench/boost/optimized/formatter.ll b/bench/boost/optimized/formatter.ll index 0f29cc84471..23ea95f2587 100644 --- a/bench/boost/optimized/formatter.ll +++ b/bench/boost/optimized/formatter.ll @@ -2014,7 +2014,6 @@ _ZN6icu_7013UnicodeStringpLERKS0_.exit: ; preds = %61 br label %139 74: ; preds = %_ZN6icu_7013UnicodeStringpLERKS0_.exit, %_ZNK6icu_7013UnicodeStringixEi.exit58 - %.138 = phi i8 [ 0, %_ZN6icu_7013UnicodeStringpLERKS0_.exit ], [ %.03775, %_ZNK6icu_7013UnicodeStringixEi.exit58 ] call void @llvm.lifetime.start.p0(i64 64, ptr nonnull %6) #21 %75 = trunc i16 %.033 to i8 invoke void @_ZN5boost6locale8impl_icu22strftime_symbol_to_icuEcRKNS1_16formatters_cacheE(ptr dead_on_unwind nonnull writable sret(%"class.icu_70::UnicodeString") align 8 %6, i8 noundef signext %75, ptr noundef nonnull align 8 dereferenceable(2032) %2) @@ -2129,7 +2128,6 @@ _ZN6icu_7013UnicodeStringpLERKS0_.exit61: ; preds = %105 br label %139 118: ; preds = %_ZN6icu_7013UnicodeStringpLERKS0_.exit61, %_ZNK6icu_7013UnicodeStringixEi.exit.thread - %.340 = phi i8 [ %.03775, %_ZNK6icu_7013UnicodeStringixEi.exit.thread ], [ 1, %_ZN6icu_7013UnicodeStringpLERKS0_.exit61 ] call void @llvm.lifetime.start.p0(i64 2, ptr nonnull %4) store i16 %.0.i.i64, ptr %4, align 2, !tbaa !46 %119 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN6icu_7013UnicodeString8doAppendEPKDsii(ptr noundef nonnull align 8 dereferenceable(64) %0, ptr noundef nonnull %4, i32 noundef 0, i32 noundef 1) @@ -2140,7 +2138,7 @@ _ZN6icu_7013UnicodeStringpLEDs.exit: ; preds = %118 br label %120 120: ; preds = %_ZN6icu_7013UnicodeStringpLEDs.exit, %_ZN6icu_7013UnicodeStringpLERKS0_.exit60, %_ZN6icu_7013UnicodeStringpLERKS0_.exit59 - %.239 = phi i8 [ %.138, %_ZN6icu_7013UnicodeStringpLERKS0_.exit59 ], [ %.03775, %_ZN6icu_7013UnicodeStringpLERKS0_.exit60 ], [ %.340, %_ZN6icu_7013UnicodeStringpLEDs.exit ] + %.239 = phi i8 [ 0, %_ZN6icu_7013UnicodeStringpLERKS0_.exit59 ], [ %.03775, %_ZN6icu_7013UnicodeStringpLERKS0_.exit60 ], [ 1, %_ZN6icu_7013UnicodeStringpLEDs.exit ] %.236 = phi i32 [ %.135, %_ZN6icu_7013UnicodeStringpLERKS0_.exit59 ], [ %.03476, %_ZN6icu_7013UnicodeStringpLERKS0_.exit60 ], [ %.03476, %_ZN6icu_7013UnicodeStringpLEDs.exit ] %121 = add i32 %.236, 1 %122 = icmp ult i32 %121, %17 diff --git a/bench/boost/optimized/junit_log_formatter.ll b/bench/boost/optimized/junit_log_formatter.ll index e18a0b88c7b..dfc0b3da5dc 100644 --- a/bench/boost/optimized/junit_log_formatter.ll +++ b/bench/boost/optimized/junit_log_formatter.ll @@ -11140,15 +11140,12 @@ define linkonce_odr hidden void @_ZN5boost9unit_test5utils13print_escapedERSoNS0 %19 = load ptr, ptr %1, align 8, !tbaa !3 %20 = getelementptr inbounds nuw i8, ptr %1, i64 8 %21 = load ptr, ptr %20, align 8, !tbaa !8 - %.not37 = icmp eq ptr %19, %21 - br i1 %.not37, label %.critedge, label %.lr.ph - -.lr.ph: ; preds = %18 %invariant.gep = getelementptr i8, ptr %0, i64 16 - br label %22 + %22 = icmp eq ptr %19, %21 + br i1 %22, label %.critedge, label %.critedge34 -22: ; preds = %.lr.ph, %72 - %.sroa.028.036 = phi ptr [ %19, %.lr.ph ], [ %73, %72 ] +22: ; preds = %18, %72 + %.sroa.028.036 = phi ptr [ %73, %72 ], [ %19, %18 ] %23 = load i8, ptr %.sroa.028.036, align 1, !tbaa !9 %24 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZZN5boost9unit_test5utils13print_escapedERSoNS0_13basic_cstringIKcEEE9char_type, i64 16), align 8, !tbaa !13 %.not10.i.i.i = icmp eq ptr %24, null diff --git a/bench/boost/optimized/text_file_backend.ll b/bench/boost/optimized/text_file_backend.ll index b1d8245d5d1..425e57d05ad 100644 --- a/bench/boost/optimized/text_file_backend.ll +++ b/bench/boost/optimized/text_file_backend.ll @@ -1827,9 +1827,9 @@ _ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_ br label %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit67 128: ; preds = %30, %26, %.critedge35, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit49, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit42, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit, %36 - %129 = phi ptr [ %.pre, %.critedge35 ], [ %65, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit49 ], [ %55, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit42 ], [ %45, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit ], [ %38, %36 ], [ %20, %26 ], [ %32, %30 ] - %.sroa.069.1 = phi ptr [ %127, %.critedge35 ], [ %68, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit49 ], [ %58, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit42 ], [ %48, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit ], [ %37, %36 ], [ %27, %26 ], [ %31, %30 ] - %.128 = phi i1 [ false, %.critedge35 ], [ false, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit49 ], [ false, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit42 ], [ false, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit ], [ false, %36 ], [ true, %26 ], [ false, %30 ] + %129 = phi ptr [ %20, %26 ], [ %32, %30 ], [ %.pre, %.critedge35 ], [ %65, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit49 ], [ %55, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit42 ], [ %45, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit ], [ %38, %36 ] + %.sroa.069.1 = phi ptr [ %27, %26 ], [ %31, %30 ], [ %127, %.critedge35 ], [ %68, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit49 ], [ %58, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit42 ], [ %48, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit ], [ %37, %36 ] + %.128 = phi i1 [ true, %26 ], [ false, %30 ], [ false, %.critedge35 ], [ false, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit49 ], [ false, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit42 ], [ false, %_ZZN5boost3log11v2_mt_posix5sinks9anonymous13match_patternERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESB_RjRbEN5local11scan_digitsERN9__gnu_cxx17__normal_iteratorIPKcS9_EESJ_l.exit ], [ false, %36 ] %.not = icmp eq ptr %129, %15 br i1 %.not, label %.critedge.thread, label %.lr.ph140, !llvm.loop !33 @@ -2614,7 +2614,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm.exit: ; preds = % %.sroa.0179.2 = phi ptr [ %277, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm.exit ], [ %223, %260 ], [ %223, %.thread ] %.sroa.0186.2 = phi ptr [ %279, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm.exit ], [ %.sroa.0186.0, %260 ], [ %.sroa.0186.0, %.thread ] %.448 = phi i64 [ %266, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm.exit ], [ %.044, %260 ], [ %.044, %.thread ] - %.443 = phi i8 [ 1, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm.exit ], [ %.039, %260 ], [ %.039, %.thread ] + %.443 = phi i8 [ 1, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm.exit ], [ 0, %260 ], [ %.039, %.thread ] %.438 = phi i32 [ %.034, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm.exit ], [ %231, %260 ], [ %231, %.thread ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) #29 br label %282 @@ -2623,7 +2623,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5eraseEmm.exit: ; preds = % %.sroa.0179.1.ph = phi ptr [ %.sroa.0179.2, %281 ], [ %223, %230 ], [ %229, %228 ] %.sroa.0186.1.ph = phi ptr [ %.sroa.0186.2, %281 ], [ %.sroa.0186.0, %230 ], [ %.sroa.0186.0, %228 ] %.246.ph = phi i64 [ %.448, %281 ], [ %.044, %230 ], [ %.044, %228 ] - %.241.ph = phi i8 [ %.443, %281 ], [ %.039, %230 ], [ %.039, %228 ] + %.241.ph = phi i8 [ %.443, %281 ], [ 1, %230 ], [ %.039, %228 ] %.236.ph = phi i32 [ %.438, %281 ], [ %231, %230 ], [ %.034, %228 ] %.not209 = icmp eq ptr %.sroa.0179.1.ph, %.sroa.0186.1.ph br i1 %.not209, label %_ZSt4findIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEcET_SB_SB_RKT0_.exit.thread, label %160, !llvm.loop !39 @@ -7855,8 +7855,7 @@ _ZNSt15__allocated_ptrISaISt10_List_nodeIN5boost3log11v2_mt_posix5sinks9anonymou %251 = sub i32 %.pre, %.sroa.8103.2164 %252 = icmp slt i32 %251, 0 %or.cond.not = select i1 %250, i1 %252, i1 false - %spec.select = select i1 %or.cond.not, i8 %.sroa.4102.2163, i8 1 - %spec.select182 = select i1 %or.cond.not, i32 %.sroa.8103.2164, i32 %.pre + %spec.select = select i1 %or.cond.not, i32 %.sroa.8103.2164, i32 %.pre br label %271 253: ; preds = %171 @@ -7920,8 +7919,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED2Ev.exit68: ; preds = %_ZN 271: ; preds = %249, %239, %.critedge %.sroa.0100.4 = phi i64 [ %246, %239 ], [ %.sroa.0100.2162, %.critedge ], [ %246, %249 ] - %.sroa.4102.4 = phi i8 [ %.sroa.4102.2163, %239 ], [ %.sroa.4102.2163, %.critedge ], [ %spec.select, %249 ] - %.sroa.8103.4 = phi i32 [ %.sroa.8103.2164, %239 ], [ %.sroa.8103.2164, %.critedge ], [ %spec.select182, %249 ] + %.sroa.4102.4 = phi i8 [ %.sroa.4102.2163, %239 ], [ %.sroa.4102.2163, %.critedge ], [ 1, %249 ] + %.sroa.8103.4 = phi i32 [ %.sroa.8103.2164, %239 ], [ %.sroa.8103.2164, %.critedge ], [ %spec.select, %249 ] %.230 = phi i64 [ %223, %239 ], [ %.028165, %.critedge ], [ %223, %249 ] call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %19) #29 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %18) #29 diff --git a/bench/bullet3/optimized/btGjkPairDetector.ll b/bench/bullet3/optimized/btGjkPairDetector.ll index f754c673faf..90ff0b8424a 100644 --- a/bench/bullet3/optimized/btGjkPairDetector.ll +++ b/bench/bullet3/optimized/btGjkPairDetector.ll @@ -1223,13 +1223,15 @@ land.rhs194: ; preds = %if.end187 land.lhs.true200: ; preds = %if.end187, %land.rhs194 %377 = phi i1 [ false, %if.end187 ], [ %cmp196, %land.rhs194 ] + %tobool201.not = xor i1 %isValid.0, true %or.cond = or i1 %status.1, %377 - %or.cond.not = xor i1 %or.cond, true - %or.cond57.not = select i1 %isValid.0, i1 %or.cond.not, i1 false - %brmerge = select i1 %or.cond57.not, i1 true, i1 %tobool190.not - br i1 %brmerge, label %if.end289, label %if.then208 + %or.cond.not = select i1 %tobool201.not, i1 true, i1 %or.cond + br i1 %or.cond.not, label %if.then205, label %land.lhs.true291 if.then208: ; preds = %land.lhs.true200 + br i1 %tobool190.not, label %if.end289, label %if.then208 + +if.then208: ; preds = %if.then205 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %m_cachedSeparatingAxis, i8 0, i64 16, i1 false) %378 = load ptr, ptr %m_simplexSolver, align 8 %379 = load ptr, ptr %m_minkowskiA, align 8 @@ -1287,7 +1289,7 @@ if.end232: ; preds = %if.then228, %if.the %tmpNormalInB.sroa.9.0 = phi <2 x float> [ %retval.sroa.3.12.vec.insert.i349, %if.then222 ], [ %tmpNormalInB.sroa.9.0.copyload, %if.then228 ] %lenSqr225.0 = phi float [ %394, %if.then222 ], [ %398, %if.then228 ] %cmp233 = fcmp ogt float %lenSqr225.0, 0x3D10000000000000 - br i1 %cmp233, label %if.then234, label %if.end289.sink.split + br i1 %cmp233, label %if.then234, label %if.else250 if.then234: ; preds = %if.end232 %call.i358 = call noundef float @sqrtf(float noundef %lenSqr225.0) #13 @@ -1308,7 +1310,7 @@ if.then234: ; preds = %if.end232 store i32 3, ptr %m_lastUsedMethod, align 8 %cmp245 = fcmp ule float %distance.0, %fneg %or.cond58.not = select i1 %isValid.0, i1 %cmp245, i1 false - br i1 %or.cond58.not, label %if.end289.sink.split, label %if.then246 + br i1 %or.cond58.not, label %if.else247, label %if.then246 if.then246: ; preds = %if.then234 %div.i = fdiv float 1.000000e+00, %call.i358 @@ -1327,6 +1329,14 @@ if.then246: ; preds = %if.then234 store <2 x float> %tmpNormalInB.sroa.9.8.vec.insert, ptr %arrayidx5.i, align 8 br label %land.lhs.true291 +if.else247: ; preds = %if.then234 + store i32 8, ptr %m_lastUsedMethod, align 8 + br label %land.lhs.true291 + +if.else250: ; preds = %if.end232 + store i32 9, ptr %m_lastUsedMethod, align 8 + br label %if.end289 + if.else253: ; preds = %if.then220 %cmp256 = fcmp ogt float %386, 0.000000e+00 br i1 %cmp256, label %if.then257, label %if.end289 @@ -1403,16 +1413,15 @@ if.then267: ; preds = %if.then257 store i32 6, ptr %m_lastUsedMethod, align 8 br label %land.lhs.true291 -if.end289.sink.split: ; preds = %if.then257, %if.end232, %if.then234 - %.sink953 = phi i32 [ 8, %if.then234 ], [ 9, %if.end232 ], [ 5, %if.then257 ] - store i32 %.sink953, ptr %m_lastUsedMethod, align 8 - br label %if.end289 +if.end289.sink.split: ; preds = %if.then257 + store i32 5, ptr %m_lastUsedMethod, align 8 + br label %land.lhs.true291 -if.end289: ; preds = %if.end289.sink.split, %land.lhs.true200, %if.then208, %if.else253 +if.end289: ; preds = %if.then205, %if.then208, %if.else250, %if.else253 br i1 %isValid.0, label %land.lhs.true291, label %if.end418 -land.lhs.true291: ; preds = %if.then267, %if.then246, %if.end289 - %distance.1892 = phi float [ %distance.0, %if.end289 ], [ %sub263, %if.then267 ], [ %fneg, %if.then246 ] +land.lhs.true291: ; preds = %land.lhs.true200, %if.else281, %if.then267, %if.else247, %if.then246, %if.end289 + %distance.1892 = phi float [ %distance.0, %if.end289 ], [ %distance.0, %land.lhs.true200 ], [ %distance.0, %if.else281 ], [ %sub263, %if.then267 ], [ %distance.0, %if.else247 ], [ %fneg, %if.then246 ] %cmp292 = fcmp olt float %distance.1892, 0.000000e+00 br i1 %cmp292, label %if.then297, label %lor.lhs.false293 diff --git a/bench/clamav/optimized/png.c.ll b/bench/clamav/optimized/png.c.ll index e9df6d01c17..e35f9705a9c 100644 --- a/bench/clamav/optimized/png.c.ll +++ b/bench/clamav/optimized/png.c.ll @@ -64,7 +64,6 @@ define i32 @cli_parsepng(ptr noundef %0) local_unnamed_addr #0 { br label %13 13: ; preds = %135, %7 - %.0120 = phi i8 [ 0, %7 ], [ %.2122, %135 ] %.0118 = phi i1 [ false, %7 ], [ %.1119, %135 ] %.0115 = phi i32 [ 0, %7 ], [ %.1116, %135 ] %.0112 = phi i64 [ 0, %7 ], [ %.1113, %135 ] @@ -356,7 +355,7 @@ fmap_readn.exit156.thread: ; preds = %33, %31, %fmap_read 124: ; preds = %121, %119, %113, %123, %118, %101 %.3172 = phi i64 [ %55, %101 ], [ %.3173, %113 ], [ %.3173, %118 ], [ %.3173, %123 ], [ %.3173, %119 ], [ %.3173, %121 ] - %.2122 = phi i8 [ %.0120, %101 ], [ %.0120, %113 ], [ %.0120, %118 ], [ %.0120, %123 ], [ 1, %119 ], [ %.0120, %121 ] + %.2122 = phi i1 [ false, %101 ], [ false, %113 ], [ false, %118 ], [ false, %123 ], [ true, %119 ], [ false, %121 ] %.1119 = phi i1 [ %.0118, %101 ], [ true, %113 ], [ %.0118, %118 ], [ %.0118, %123 ], [ %.0118, %119 ], [ %.0118, %121 ] %.1116 = phi i32 [ %87, %101 ], [ %.0115, %113 ], [ 0, %118 ], [ %.0115, %123 ], [ %.0115, %119 ], [ %.0115, %121 ] %.1113 = phi i64 [ %.0112, %101 ], [ %.2114, %113 ], [ %.0112, %118 ], [ %.0112, %123 ], [ %.0112, %119 ], [ %.0112, %121 ] @@ -394,16 +393,10 @@ fmap_readn.exit161.thread: ; preds = %126, %124, %fmap_re store i32 %136, ptr %3, align 4 call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.34, i32 noundef %136) #6 %137 = add i64 %.3172, 4 - %138 = trunc nuw i8 %.2122 to i1 - br i1 %138, label %fmap_readn.exit.thread, label %13 + br i1 %.2122, label %.thread188, label %13 -fmap_readn.exit.thread: ; preds = %15, %13, %135, %fmap_readn.exit, %71, %.thread175 - %.1121 = phi i8 [ %.0120, %.thread175 ], [ %.0120, %71 ], [ %.0120, %15 ], [ %.0120, %13 ], [ %.0120, %fmap_readn.exit ], [ %.2122, %135 ] - %.1 = phi i64 [ %.3174179, %.thread175 ], [ %55, %71 ], [ %.0, %15 ], [ %.0, %13 ], [ %.0, %fmap_readn.exit ], [ %137, %135 ] - %139 = trunc nuw i8 %.1121 to i1 - br i1 %139, label %.thread183, label %140 - -140: ; preds = %fmap_readn.exit.thread +fmap_readn.exit.thread: ; preds = %15, %13, %fmap_readn.exit, %.thread175, %71 + %.1121 = phi i64 [ %55, %71 ], [ %.3174179, %.thread175 ], [ %.0, %fmap_readn.exit ], [ %.0, %13 ], [ %.0, %15 ] call void (ptr, ...) @cli_dbgmsg(ptr noundef nonnull @.str.35) #6 br label %.thread183 @@ -414,8 +407,8 @@ fmap_readn.exit.thread: ; preds = %15, %13, %135, %fma %143 = icmp eq i32 %142, 0 br i1 %143, label %.thread183, label %151 -.thread183: ; preds = %fmap_readn.exit161.thread, %140, %fmap_readn.exit.thread, %48, %fmap_readn.exit156.thread, %25, %141 - %.2186 = phi i64 [ %.2, %141 ], [ %.3172, %fmap_readn.exit161.thread ], [ %.1, %140 ], [ %.1, %fmap_readn.exit.thread ], [ %43, %48 ], [ %23, %fmap_readn.exit156.thread ], [ %23, %25 ] +.thread183: ; preds = %135, %fmap_readn.exit161.thread, %fmap_readn.exit.thread, %48, %fmap_readn.exit156.thread, %25, %141 + %.2186 = phi i64 [ %.2, %141 ], [ %.3172, %fmap_readn.exit161.thread ], [ %.1121, %fmap_readn.exit.thread ], [ %43, %48 ], [ %23, %fmap_readn.exit156.thread ], [ %23, %25 ], [ %137, %135 ] %144 = load i64, ptr %10, align 8 %145 = icmp ugt i64 %144, %.2186 br i1 %145, label %146, label %151 diff --git a/bench/clap-rs/optimized/1rbie63mhpvpjak.ll b/bench/clap-rs/optimized/1rbie63mhpvpjak.ll index 47903ac1da1..96cb409eaeb 100644 --- a/bench/clap-rs/optimized/1rbie63mhpvpjak.ll +++ b/bench/clap-rs/optimized/1rbie63mhpvpjak.ll @@ -3578,8 +3578,8 @@ define hidden noundef zeroext i1 @"_ZN90_$LT$core..ops..control_flow..ControlFlo .sink.split: ; preds = %2 %6 = trunc nuw i8 %4 to i1 %trunc = trunc nuw i8 %3 to i1 - %7 = icmp eq i8 %3, 0 - %spec.select = select i1 %trunc, i1 %6, i1 %7 + %7 = xor i1 %trunc, true + %spec.select = select i1 %not.trunc, i1 true, i1 %6 tail call void @llvm.assume(i1 %spec.select) br label %8 @@ -7640,7 +7640,7 @@ _ZN12clap_builder5error6format21write_dynamic_context17h87a10de77816625dE.exit: br label %789 787: ; preds = %805, %781 - %.1 = phi i8 [ %.2, %805 ], [ %.0, %781 ] + %.1 = phi i8 [ 1, %805 ], [ %.0, %781 ] %788 = invoke noundef align 8 dereferenceable_or_null(32) ptr @"_ZN12clap_builder5error14Error$LT$F$GT$3get17h38f9c2490293ae7cE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %1, i8 noundef 12) to label %806 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -7679,7 +7679,6 @@ _ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exi br label %805 805: ; preds = %_ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exit116, %789 - %.2 = phi i8 [ %.0, %789 ], [ 1, %_ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exit116 ] invoke fastcc void @_ZN12clap_builder5error6format12did_you_mean17h40f8da9e36e564a6E(ptr noalias noundef align 8 dereferenceable(24) %140, ptr noalias noundef readonly align 2 dereferenceable(98) %142, ptr noalias noundef nonnull readonly align 1 @anon.85f68effae4436bb4f25a144403dc49c.51, i64 noundef 8, ptr noalias noundef readonly align 8 dereferenceable(32) %765) to label %787 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -7702,7 +7701,7 @@ _ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exi br label %814 812: ; preds = %830, %806 - %.3 = phi i8 [ %.4, %830 ], [ %.1, %806 ] + %.3 = phi i8 [ 1, %830 ], [ %.1, %806 ] %813 = invoke noundef align 8 dereferenceable_or_null(32) ptr @"_ZN12clap_builder5error14Error$LT$F$GT$3get17h38f9c2490293ae7cE"(ptr noalias noundef nonnull readonly align 8 dereferenceable(8) %1, i8 noundef 14) to label %831 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp @@ -7741,7 +7740,6 @@ _ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exi br label %830 830: ; preds = %_ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exit122, %814 - %.4 = phi i8 [ %.1, %814 ], [ 1, %_ZN12clap_builder7builder10styled_str9StyledStr8push_str17hf3025370b2961e87E.exit122 ] invoke fastcc void @_ZN12clap_builder5error6format12did_you_mean17h40f8da9e36e564a6E(ptr noalias noundef align 8 dereferenceable(24) %140, ptr noalias noundef readonly align 2 dereferenceable(98) %142, ptr noalias noundef nonnull readonly align 1 @anon.85f68effae4436bb4f25a144403dc49c.52, i64 noundef 5, ptr noalias noundef readonly align 8 dereferenceable(32) %788) to label %812 unwind label %.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp diff --git a/bench/clap-rs/optimized/4r6y4qxwk52m92uh.ll b/bench/clap-rs/optimized/4r6y4qxwk52m92uh.ll index f8fad0ced10..4c931fec333 100644 --- a/bench/clap-rs/optimized/4r6y4qxwk52m92uh.ll +++ b/bench/clap-rs/optimized/4r6y4qxwk52m92uh.ll @@ -346,24 +346,23 @@ define noundef zeroext i1 @_ZN8clap_lex9ParsedArg18is_negative_number17he6231e86 %10 = load i64, ptr %9, align 8, !noalias !41 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %2), !noalias !41 %.sroa.6.0 = select i1 %trunc.i, i64 undef, i64 %10 - %.sroa.0.0 = select i1 %trunc.i, ptr null, ptr %8 %.not.i.i.i = icmp eq i64 %.sroa.6.0, 0 %or.cond = select i1 %trunc.i, i1 true, i1 %.not.i.i.i br i1 %or.cond, label %"_ZN8clap_lex9ParsedArg18is_negative_number28_$u7b$$u7b$closure$u7d$$u7d$17h413729e608f85e83E.exit", label %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$11starts_with17hd16f7bb69e6397e5E.exit.i.i" "_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$11starts_with17hd16f7bb69e6397e5E.exit.i.i": ; preds = %1 - %rhsc.i = load i8, ptr %.sroa.0.0, align 1, !alias.scope !43 + %rhsc.i = load i8, ptr %8, align 1, !alias.scope !43 %rhsc.fr.i = freeze i8 %rhsc.i %11 = icmp eq i8 %rhsc.fr.i, 45 br i1 %11, label %12, label %"_ZN8clap_lex9ParsedArg18is_negative_number28_$u7b$$u7b$closure$u7d$$u7d$17h413729e608f85e83E.exit" 12: ; preds = %"_ZN4core5slice29_$LT$impl$u20$$u5b$T$u5d$$GT$11starts_with17hd16f7bb69e6397e5E.exit.i.i" - %13 = getelementptr i8, ptr %.sroa.0.0, i64 %.sroa.6.0 - %14 = icmp eq i64 %.sroa.6.0, 1 + %13 = getelementptr i8, ptr %8, i64 %10 + %14 = icmp eq i64 %10, 1 br i1 %14, label %._crit_edge.i.i, label %.lr.ph.i.preheader.i .lr.ph.i.preheader.i: ; preds = %12 - %15 = getelementptr inbounds nuw i8, ptr %.sroa.0.0, i64 1 + %15 = getelementptr inbounds nuw i8, ptr %8, i64 1 br label %.lr.ph.i.i ._crit_edge.loopexit.i.i: ; preds = %24 diff --git a/bench/coreutils-rs/optimized/jiqj5u7teuhb0o0.ll b/bench/coreutils-rs/optimized/jiqj5u7teuhb0o0.ll index 84c49841259..4faae48afad 100644 --- a/bench/coreutils-rs/optimized/jiqj5u7teuhb0o0.ll +++ b/bench/coreutils-rs/optimized/jiqj5u7teuhb0o0.ll @@ -1021,7 +1021,7 @@ define hidden noundef zeroext i1 @"_ZN4core3ops8function5impls79_$LT$impl$u20$co %14 = load ptr, ptr %6, align 8, !alias.scope !194, !noalias !205, !nonnull !4, !align !80, !noundef !4 %bcmp.i.i.i.i.i9.i.i.i = tail call i32 @bcmp(ptr nonnull readonly align 1 %14, ptr nonnull readonly align 1 %.promoted.i.i.i, i64 %13), !alias.scope !215, !noalias !222 %.not.i.i.i = icmp eq i32 %bcmp.i.i.i.i.i9.i.i.i, 0 - br i1 %.not.i.i.i, label %.sink.split.i.i, label %.critedge._crit_edge.sink.split.i.i.i + br i1 %.not.i.i.i, label %"_ZN132_$LT$uucore..parser..shortcut_value_parser..ShortcutValueParser$u20$as$u20$clap_builder..builder..value_parser..TypedValueParser$GT$9parse_ref28_$u7b$$u7b$closure$u7d$$u7d$17ha4474a8e6bdc8085E.llvm.11973937877542342116.exit", label %.critedge._crit_edge.sink.split.i.i.i 15: ; preds = %.critedge._crit_edge.sink.split.i.i.i, %2 %16 = getelementptr inbounds nuw i8, ptr %3, i64 24 @@ -1036,13 +1036,10 @@ define hidden noundef zeroext i1 @"_ZN4core3ops8function5impls79_$LT$impl$u20$co "_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit.i": ; preds = %15 %18 = getelementptr inbounds nuw i8, ptr %3, i64 40 %19 = call noundef zeroext i1 @_ZN4core4iter6traits8iterator8Iterator8try_fold17h922932abf775a9e7E.llvm.16954148956069160696(ptr noalias noundef nonnull align 8 dereferenceable(16) %16, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %6, ptr noalias noundef nonnull align 1 %18), !noalias !190 - br i1 %19, label %.sink.split.i.i, label %"_ZN132_$LT$uucore..parser..shortcut_value_parser..ShortcutValueParser$u20$as$u20$clap_builder..builder..value_parser..TypedValueParser$GT$9parse_ref28_$u7b$$u7b$closure$u7d$$u7d$17ha4474a8e6bdc8085E.llvm.11973937877542342116.exit" - -.sink.split.i.i: ; preds = %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit.i", %.lr.ph.split.i.i.i br label %"_ZN132_$LT$uucore..parser..shortcut_value_parser..ShortcutValueParser$u20$as$u20$clap_builder..builder..value_parser..TypedValueParser$GT$9parse_ref28_$u7b$$u7b$closure$u7d$$u7d$17ha4474a8e6bdc8085E.llvm.11973937877542342116.exit" -"_ZN132_$LT$uucore..parser..shortcut_value_parser..ShortcutValueParser$u20$as$u20$clap_builder..builder..value_parser..TypedValueParser$GT$9parse_ref28_$u7b$$u7b$closure$u7d$$u7d$17ha4474a8e6bdc8085E.llvm.11973937877542342116.exit": ; preds = %15, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit.i", %.sink.split.i.i - %.0.i3.i = phi i1 [ false, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit.i" ], [ true, %.sink.split.i.i ], [ false, %15 ] +"_ZN132_$LT$uucore..parser..shortcut_value_parser..ShortcutValueParser$u20$as$u20$clap_builder..builder..value_parser..TypedValueParser$GT$9parse_ref28_$u7b$$u7b$closure$u7d$$u7d$17ha4474a8e6bdc8085E.llvm.11973937877542342116.exit": ; preds = %.lr.ph.split.i.i.i, %15, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit.i" + %.0.i3.i = phi i1 [ %19, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit.i" ], [ false, %15 ], [ true, %.lr.ph.split.i.i.i ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3), !noalias !190 ret i1 %.0.i3.i } @@ -3011,8 +3008,8 @@ define hidden noundef zeroext i1 @"_ZN90_$LT$core..ops..control_flow..ControlFlo .sink.split: ; preds = %2 %6 = trunc nuw i8 %4 to i1 %trunc = trunc nuw i8 %3 to i1 - %7 = icmp eq i8 %3, 0 - %spec.select = select i1 %trunc, i1 %6, i1 %7 + %7 = xor i1 %trunc, true + %spec.select = select i1 %not.trunc, i1 true, i1 %6 tail call void @llvm.assume(i1 %spec.select) br label %8 @@ -4819,7 +4816,7 @@ define hidden noundef zeroext i1 @"_ZN132_$LT$uucore..parser..shortcut_value_par %13 = load ptr, ptr %5, align 8, !alias.scope !692, !noalias !702, !nonnull !4, !align !80, !noundef !4 %bcmp.i.i.i.i.i9.i.i = tail call i32 @bcmp(ptr nonnull readonly align 1 %13, ptr nonnull readonly align 1 %.promoted.i.i, i64 %12), !alias.scope !712, !noalias !719 %.not.i.i = icmp eq i32 %bcmp.i.i.i.i.i9.i.i, 0 - br i1 %.not.i.i, label %.sink.split.i, label %.critedge._crit_edge.sink.split.i.i + br i1 %.not.i.i, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17hd1891d36501ef5ccE.llvm.11973937877542342116.exit", label %.critedge._crit_edge.sink.split.i.i 14: ; preds = %.critedge._crit_edge.sink.split.i.i, %2 %15 = getelementptr inbounds nuw i8, ptr %3, i64 24 @@ -4834,13 +4831,10 @@ define hidden noundef zeroext i1 @"_ZN132_$LT$uucore..parser..shortcut_value_par "_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit": ; preds = %14 %17 = getelementptr inbounds nuw i8, ptr %3, i64 40 %18 = call noundef zeroext i1 @_ZN4core4iter6traits8iterator8Iterator8try_fold17h922932abf775a9e7E.llvm.16954148956069160696(ptr noalias noundef nonnull align 8 dereferenceable(16) %15, ptr noalias noundef nonnull readonly align 8 dereferenceable(16) %5, ptr noalias noundef nonnull align 1 %17) - br i1 %18, label %.sink.split.i, label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17hd1891d36501ef5ccE.llvm.11973937877542342116.exit" - -.sink.split.i: ; preds = %.lr.ph.split.i.i, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit" br label %"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17hd1891d36501ef5ccE.llvm.11973937877542342116.exit" -"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17hd1891d36501ef5ccE.llvm.11973937877542342116.exit": ; preds = %14, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit", %.sink.split.i - %.0.i3 = phi i1 [ false, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit" ], [ true, %.sink.split.i ], [ false, %14 ] +"_ZN90_$LT$core..ops..control_flow..ControlFlow$LT$B$C$C$GT$$u20$as$u20$core..cmp..PartialEq$GT$2eq17hd1891d36501ef5ccE.llvm.11973937877542342116.exit": ; preds = %.lr.ph.split.i.i, %14, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit" + %.0.i3 = phi i1 [ %18, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$8try_fold17hb6c661b397ef64b4E.llvm.11973937877542342116.exit" ], [ false, %14 ], [ true, %.lr.ph.split.i.i ] call void @llvm.lifetime.end.p0(i64 40, ptr nonnull %3) ret i1 %.0.i3 } diff --git a/bench/csmith/optimized/Attribute.cpp.ll b/bench/csmith/optimized/Attribute.cpp.ll index 2815385a4ba..bc11cd2d472 100644 --- a/bench/csmith/optimized/Attribute.cpp.ll +++ b/bench/csmith/optimized/Attribute.cpp.ll @@ -76,7 +76,7 @@ define dso_local void @_ZN18AttributeGenerator6OutputERSo(ptr noundef nonnull re %9 = load ptr, ptr %8, align 8 %10 = load ptr, ptr %9, align 8 invoke void %10(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(44) %8) - to label %11 unwind label %20 + to label %11 unwind label %17 11: ; preds = %.lr.ph %12 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull align 8 dereferenceable(32) %4) #9 @@ -87,32 +87,22 @@ define dso_local void @_ZN18AttributeGenerator6OutputERSo(ptr noundef nonnull re 14: ; preds = %11 %15 = trunc nuw i8 %.015 to i1 - br i1 %15, label %22, label %16 + %15 = select i1 %15, ptr @.str.2, ptr @.str.1 + %16 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull %15) + to label %.invoke unwind label %17 -16: ; preds = %14 - %17 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull @.str.1) - to label %18 unwind label %20 - -18: ; preds = %16 - %19 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(32) %3) - to label %26 unwind label %20 - -20: ; preds = %24, %22, %18, %16, %.lr.ph - %21 = landingpad { ptr, i32 } +16: ; preds = %14, %24, %.lr.ph + %17 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #9 - resume { ptr, i32 } %21 - -22: ; preds = %14 - %23 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull @.str.2) - to label %24 unwind label %20 + resume { ptr, i32 } %18 -24: ; preds = %22 - %25 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %23, ptr noundef nonnull align 8 dereferenceable(32) %3) - to label %26 unwind label %20 +24: ; preds = %14 + %25 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef nonnull align 8 dereferenceable(32) %3) + to label %26 unwind label %17 -26: ; preds = %18, %24, %11 - %.1 = phi i8 [ %.015, %24 ], [ %.015, %11 ], [ 1, %18 ] +26: ; preds = %24, %11 + %.1 = phi i8 [ %.015, %11 ], [ 1, %24 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %3) #9 %27 = getelementptr inbounds nuw i8, ptr %.sroa.08.014, i64 8 %28 = load ptr, ptr %6, align 8 diff --git a/bench/curl/optimized/libcurl_la-mime.ll b/bench/curl/optimized/libcurl_la-mime.ll index 69827dc80ce..86b6b5c6090 100644 --- a/bench/curl/optimized/libcurl_la-mime.ll +++ b/bench/curl/optimized/libcurl_la-mime.ll @@ -2002,18 +2002,15 @@ for.cond.i84.outer: ; preds = %sw.bb37, %sw.defaul %bufsize.addr.0.i.ph = phi i64 [ %sub.i91, %sw.default.i ], [ %bufsize.addr.0120, %sw.bb37 ] %buffer.addr.0.i.ph = phi ptr [ %add.ptr.i90, %sw.default.i ], [ %buffer.addr.0122, %sw.bb37 ] %cursize.0.i.ph = phi i64 [ %add.i89, %sw.default.i ], [ 0, %sw.bb37 ] - %ateof.0.i.ph = phi i8 [ %ateof.0.i.ph168, %sw.default.i ], [ 0, %sw.bb37 ] - br label %for.cond.i84.outer167 - -for.cond.i84.outer167: ; preds = %if.end31.i, %for.cond.i84.outer - %ateof.0.i.ph168 = phi i8 [ %ateof.0.i.ph, %for.cond.i84.outer ], [ 1, %if.end31.i ] - %.pre140 = trunc nuw i8 %ateof.0.i.ph168 to i1 + %ateof.0.i.ph = phi i8 [ %ateof.0.i, %sw.default.i ], [ 0, %sw.bb37 ] br label %for.cond.i84 -for.cond.i84: ; preds = %for.cond.i84.outer167, %sw.default46.i +for.cond.i84: ; preds = %for.cond.i84.backedge, %for.cond.i84.outer + %ateof.0.i = phi i8 [ %ateof.0.i.ph, %for.cond.i84.outer ], [ %ateof.0.i.be, %for.cond.i84.backedge ] %15 = load i64, ptr %bufbeg.i, align 8 %16 = load i64, ptr %bufend.i, align 8 %cmp.i85 = icmp ult i64 %15, %16 + %.pre140 = trunc nuw i8 %ateof.0.i to i1 %brmerge = select i1 %cmp.i85, i1 true, i1 %.pre140 %not.cmp.i85 = xor i1 %cmp.i85, true %.pre140.mux = select i1 %not.cmp.i85, i1 true, i1 %.pre140 @@ -2083,7 +2080,7 @@ if.end31.i: ; preds = %if.end22.i %sub37.i = sub nuw nsw i64 256, %20 %call38.i = tail call fastcc i64 @read_part_content(ptr noundef nonnull %part, ptr noundef nonnull %add.ptr35.i, i64 noundef %sub37.i, ptr noundef nonnull %hasread) switch i64 %call38.i, label %sw.default46.i [ - i64 0, label %for.cond.i84.outer167 + i64 0, label %for.cond.i84.backedge i64 268435456, label %sw.bb40.i i64 268435457, label %sw.bb40.i i64 -1, label %sw.bb40.i @@ -2099,6 +2096,10 @@ sw.default46.i: ; preds = %if.end31.i %21 = load i64, ptr %bufend.i, align 8 %add48.i = add i64 %21, %call38.i store i64 %add48.i, ptr %bufend.i, align 8 + br label %for.cond.i84.backedge + +for.cond.i84.backedge: ; preds = %sw.default46.i, %if.end31.i + %ateof.0.i.be = phi i8 [ 0, %sw.default46.i ], [ 1, %if.end31.i ] br label %for.cond.i84 if.else41: ; preds = %sw.bb37 diff --git a/bench/diesel-rs/optimized/462o5qgxgzqa9ugn.ll b/bench/diesel-rs/optimized/462o5qgxgzqa9ugn.ll index a324fc9ca40..17e5564c137 100644 --- a/bench/diesel-rs/optimized/462o5qgxgzqa9ugn.ll +++ b/bench/diesel-rs/optimized/462o5qgxgzqa9ugn.ll @@ -808,9 +808,9 @@ define hidden void @_ZN13dsl_auto_type9auto_type14auto_type_impl17h863a5c8f316c2 invoke void @_ZN12darling_core3ast4data10NestedMeta15parse_meta_list17haf477775bf655d13E(ptr noalias noundef nonnull sret({ i64, [3 x i64] }) align 8 captures(none) dereferenceable(32) %70, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %1) to label %77 unwind label %75 -.body365: ; preds = %75, %.thread568, %.thread552, %622 - %.1156 = phi i8 [ %.4159542556, %.thread552 ], [ %.4159540547, %622 ], [ %.3158460567, %.thread568 ], [ %.0155, %75 ] - %.pn253 = phi { ptr, i32 } [ %.pn251557, %.thread552 ], [ %623, %622 ], [ %.pn249461565, %.thread568 ], [ %76, %75 ] +.body365: ; preds = %75, %.thread568, %.thread552 + %.1156 = phi i8 [ %.4159542, %.thread552 ], [ %.3158460567, %.thread568 ], [ %.0155, %75 ] + %.pn253 = phi { ptr, i32 } [ %.pn251, %.thread552 ], [ %.pn249461565, %.thread568 ], [ %76, %75 ] %74 = trunc nuw i8 %.1156 to i1 br i1 %74, label %.thread, label %"_ZN4core3ptr36drop_in_place$LT$syn..path..Path$GT$17h6ff015252568a890E.exit369" @@ -2650,7 +2650,6 @@ define hidden void @_ZN13dsl_auto_type9auto_type14auto_type_impl17h863a5c8f316c2 to label %.thread543 unwind label %638 .thread543: ; preds = %610, %607, %605 - %.7537548 = phi i8 [ %.6, %605 ], [ 1, %607 ], [ 1, %610 ] %.4159540547 = phi i8 [ 0, %605 ], [ 1, %607 ], [ 1, %610 ] %611 = getelementptr inbounds nuw i8, ptr %73, i64 80 call void @llvm.experimental.noalias.scope.decl(metadata !387) @@ -2687,8 +2686,7 @@ define hidden void @_ZN13dsl_auto_type9auto_type14auto_type_impl17h863a5c8f316c2 622: ; preds = %613 %623 = landingpad { ptr, i32 } cleanup - %624 = trunc nuw i8 %.7537548 to i1 - br i1 %624, label %.thread552, label %.body365 + br label %.thread552 "_ZN4core3ptr125drop_in_place$LT$core..option..Option$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$$GT$17hd313feaa9cfe6ddaE.exit": ; preds = %"_ZN4core3ptr97drop_in_place$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$17ha80a92c6e4788c6dE.exit.i", %.thread549 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %73) @@ -2735,9 +2733,9 @@ define hidden void @_ZN13dsl_auto_type9auto_type14auto_type_impl17h863a5c8f316c2 invoke fastcc void @"_ZN4core3ptr67drop_in_place$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$17h28c40c67b144a131E"(ptr noalias noundef align 8 dereferenceable(32) %640) #14 to label %.thread552 unwind label %220 -.thread552: ; preds = %638, %622 - %.pn251557 = phi { ptr, i32 } [ %623, %622 ], [ %639, %638 ] - %.4159542556 = phi i8 [ %.4159540547, %622 ], [ 1, %638 ] +.thread552: ; preds = %622, %637 + %.pn251557 = phi i8 [ %.4159540547, %622 ], [ 1, %638 ] + %.4159542556 = phi { ptr, i32 } [ %623, %622 ], [ %638, %638 ] %641 = getelementptr inbounds nuw i8, ptr %73, i64 48 invoke fastcc void @"_ZN4core3ptr125drop_in_place$LT$core..option..Option$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$$GT$17hd313feaa9cfe6ddaE"(ptr noalias noundef align 8 dereferenceable(32) %641) #14 to label %.body365 unwind label %220 @@ -3623,10 +3621,10 @@ define void @"_ZN96_$LT$dsl_auto_type..auto_type..DeriveParameters$u20$as$u20$da br label %268 268: ; preds = %"_ZN4core3ptr107drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$syn..path..Path$GT$$GT$$RP$$GT$17hcee8bab40a2c48c5E.exit256", %450, %405, %416, %374, %385, %"_ZN4core3ptr110drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$$RP$$GT$17h5548ca0a4452e5f2E.exit217", %354, %"_ZN4core3ptr168drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$$GT$$RP$$GT$17h18862adf0a832adcE.exit202", %314, %267 - %.1130 = phi i8 [ %.0129577, %450 ], [ %.0129577, %"_ZN4core3ptr107drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$syn..path..Path$GT$$GT$$RP$$GT$17hcee8bab40a2c48c5E.exit256" ], [ %.0129577, %416 ], [ 1, %405 ], [ %.0129577, %385 ], [ %.0129577, %374 ], [ %.0129577, %354 ], [ %.0129577, %"_ZN4core3ptr110drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$$RP$$GT$17h5548ca0a4452e5f2E.exit217" ], [ %.0129577, %314 ], [ %.0129577, %"_ZN4core3ptr168drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$$GT$$RP$$GT$17h18862adf0a832adcE.exit202" ], [ %.0129577, %267 ] + %.1130 = phi i8 [ %.0129577, %450 ], [ %.0129577, %"_ZN4core3ptr107drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$syn..path..Path$GT$$GT$$RP$$GT$17hcee8bab40a2c48c5E.exit256" ], [ 1, %416 ], [ 1, %405 ], [ %.0129577, %385 ], [ %.0129577, %374 ], [ %.0129577, %354 ], [ %.0129577, %"_ZN4core3ptr110drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$$RP$$GT$17h5548ca0a4452e5f2E.exit217" ], [ %.0129577, %314 ], [ %.0129577, %"_ZN4core3ptr168drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$$GT$$RP$$GT$17h18862adf0a832adcE.exit202" ], [ %.0129577, %267 ] %.sroa.0117.2 = phi i32 [ %.sroa.0117.0578, %450 ], [ %.sroa.0117.0578, %"_ZN4core3ptr107drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$syn..path..Path$GT$$GT$$RP$$GT$17hcee8bab40a2c48c5E.exit256" ], [ %.sroa.0117.0578, %416 ], [ %.sroa.0.0.i240, %405 ], [ %.sroa.0117.0578, %385 ], [ %.sroa.0117.0578, %374 ], [ %.sroa.0117.0578, %354 ], [ %.sroa.0117.0578, %"_ZN4core3ptr110drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$$RP$$GT$17h5548ca0a4452e5f2E.exit217" ], [ %.sroa.0117.0578, %314 ], [ %.sroa.0117.0578, %"_ZN4core3ptr168drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$$GT$$RP$$GT$17h18862adf0a832adcE.exit202" ], [ %.sroa.0117.0578, %267 ] %.sroa.5119.2 = phi i32 [ %.sroa.5119.0579, %450 ], [ %.sroa.5119.0579, %"_ZN4core3ptr107drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$syn..path..Path$GT$$GT$$RP$$GT$17hcee8bab40a2c48c5E.exit256" ], [ %.sroa.5119.0579, %416 ], [ %.sroa.3.0.i239, %405 ], [ %.sroa.5119.0579, %385 ], [ %.sroa.5119.0579, %374 ], [ %.sroa.5119.0579, %354 ], [ %.sroa.5119.0579, %"_ZN4core3ptr110drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$$RP$$GT$17h5548ca0a4452e5f2E.exit217" ], [ %.sroa.5119.0579, %314 ], [ %.sroa.5119.0579, %"_ZN4core3ptr168drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$$GT$$RP$$GT$17h18862adf0a832adcE.exit202" ], [ %.sroa.5119.0579, %267 ] - %.1 = phi i8 [ %.0580, %450 ], [ %.0580, %"_ZN4core3ptr107drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$syn..path..Path$GT$$GT$$RP$$GT$17hcee8bab40a2c48c5E.exit256" ], [ %.0580, %416 ], [ %.0580, %405 ], [ %.0580, %385 ], [ 1, %374 ], [ %.0580, %354 ], [ %.0580, %"_ZN4core3ptr110drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$$RP$$GT$17h5548ca0a4452e5f2E.exit217" ], [ %.0580, %314 ], [ %.0580, %"_ZN4core3ptr168drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$$GT$$RP$$GT$17h18862adf0a832adcE.exit202" ], [ %.0580, %267 ] + %.1 = phi i8 [ %.0580, %450 ], [ %.0580, %"_ZN4core3ptr107drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$syn..path..Path$GT$$GT$$RP$$GT$17hcee8bab40a2c48c5E.exit256" ], [ %.0580, %416 ], [ %.0580, %405 ], [ 1, %385 ], [ 1, %374 ], [ %.0580, %354 ], [ %.0580, %"_ZN4core3ptr110drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$$RP$$GT$17h5548ca0a4452e5f2E.exit217" ], [ %.0580, %314 ], [ %.0580, %"_ZN4core3ptr168drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$$GT$$RP$$GT$17h18862adf0a832adcE.exit202" ], [ %.0580, %267 ] %.sroa.0124.2 = phi i32 [ %.sroa.0124.0581, %450 ], [ %.sroa.0124.0581, %"_ZN4core3ptr107drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$syn..path..Path$GT$$GT$$RP$$GT$17hcee8bab40a2c48c5E.exit256" ], [ %.sroa.0124.0581, %416 ], [ %.sroa.0124.0581, %405 ], [ %.sroa.0124.0581, %385 ], [ %.sroa.0.0.i, %374 ], [ %.sroa.0124.0581, %354 ], [ %.sroa.0124.0581, %"_ZN4core3ptr110drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$$RP$$GT$17h5548ca0a4452e5f2E.exit217" ], [ %.sroa.0124.0581, %314 ], [ %.sroa.0124.0581, %"_ZN4core3ptr168drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$$GT$$RP$$GT$17h18862adf0a832adcE.exit202" ], [ %.sroa.0124.0581, %267 ] %.sroa.5126.2 = phi i32 [ %.sroa.5126.0582, %450 ], [ %.sroa.5126.0582, %"_ZN4core3ptr107drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$syn..path..Path$GT$$GT$$RP$$GT$17hcee8bab40a2c48c5E.exit256" ], [ %.sroa.5126.0582, %416 ], [ %.sroa.5126.0582, %405 ], [ %.sroa.5126.0582, %385 ], [ %.sroa.3.0.i, %374 ], [ %.sroa.5126.0582, %354 ], [ %.sroa.5126.0582, %"_ZN4core3ptr110drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$proc_macro2..Ident$GT$$GT$$RP$$GT$17h5548ca0a4452e5f2E.exit217" ], [ %.sroa.5126.0582, %314 ], [ %.sroa.5126.0582, %"_ZN4core3ptr168drop_in_place$LT$$LP$bool$C$core..option..Option$LT$core..option..Option$LT$darling_core..util..spanned_value..SpannedValue$LT$alloc..string..String$GT$$GT$$GT$$RP$$GT$17h18862adf0a832adcE.exit202" ], [ %.sroa.5126.0582, %267 ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %48), !noalias !583 diff --git a/bench/diesel-rs/optimized/re13hpgqfsvf2ck.ll b/bench/diesel-rs/optimized/re13hpgqfsvf2ck.ll index 1fa3b82957e..63ccf2d6d34 100644 --- a/bench/diesel-rs/optimized/re13hpgqfsvf2ck.ll +++ b/bench/diesel-rs/optimized/re13hpgqfsvf2ck.ll @@ -1984,10 +1984,11 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 264: ; preds = %264, %262 %.sroa.0.012.i.i.i.i = phi i64 [ 0, %262 ], [ %spec.select8.i.i.i.i, %264 ] - %265 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, %254 - %266 = zext i1 %265 to i64 - %spec.select8.i.i.i.i = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %266 - %267 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, 12 + %265 = icmp samesign uge i64 %.sroa.0.012.i.i.i.i, %254 + %266 = xor i1 %265, true + %spec.select8.i.i.i.i = zext i1 %not..i.i.i.i to i64 + %267 = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %266 + %267 = icmp samesign ult i64 %.sroa.0.011.i.i.i.i, 12 tail call void @llvm.assume(i1 %267) %268 = getelementptr inbounds nuw ptr, ptr %255, i64 %.sroa.0.012.i.i.i.i %269 = load ptr, ptr %268, align 8, !alias.scope !304, !noalias !307, !nonnull !21, !noundef !21 @@ -1996,9 +1997,9 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec %271 = trunc nuw nsw i64 %.sroa.0.012.i.i.i.i to i16 %272 = getelementptr inbounds nuw i8, ptr %269, i64 624 store i16 %271, ptr %272, align 8, !noalias !307 - %.not.i.i.i.i.i.i = icmp samesign ule i64 %spec.select8.i.i.i.i, %254 - %or.cond.i.not.i.i.i = select i1 %265, i1 %.not.i.i.i.i.i.i, i1 false - br i1 %or.cond.i.not.i.i.i, label %264, label %276 + %.not.i.i.i.i.i.i = icmp samesign ugt i64 %spec.select8.i.i.i.i, %254 + %or.cond.i.not.i.i.i = select i1 %265, i1 true, i1 %.not.i.i.i.i.i.i + br i1 %or.cond.i.not.i.i.i, label %276, label %264 273: ; preds = %241 %274 = landingpad { ptr, i32 } diff --git a/bench/eastl/optimized/TestFixedList.cpp.ll b/bench/eastl/optimized/TestFixedList.cpp.ll index 68e4b90a5db..ad15698b496 100644 --- a/bench/eastl/optimized/TestFixedList.cpp.ll +++ b/bench/eastl/optimized/TestFixedList.cpp.ll @@ -9146,7 +9146,7 @@ for.body.lr.ph: ; preds = %entry for.body.us: ; preds = %for.body.lr.ph, %for.inc.us %4 = phi ptr [ %11, %for.inc.us ], [ %1, %for.body.lr.ph ] - %bReturnValue.020.us = phi i8 [ %bReturnValue.1.us, %for.inc.us ], [ 1, %for.body.lr.ph ] + %bReturnValue.020.us = phi i1 [ %bReturnValue.1.us, %for.inc.us ], [ true, %for.body.lr.ph ] %seqIndex.019.us = phi i32 [ %inc7.us, %for.inc.us ], [ 0, %for.body.lr.ph ] %gp_offset.us = load i32, ptr %args, align 16 %fits_in_gp.us = icmp ult i32 %gp_offset.us, 41 @@ -9185,7 +9185,7 @@ if.then.us: ; preds = %lor.lhs.false.us, % for.inc.us: ; preds = %if.then.us, %lor.lhs.false.us %10 = phi ptr [ %4, %lor.lhs.false.us ], [ %.pre33, %if.then.us ] - %bReturnValue.1.us = phi i8 [ %bReturnValue.020.us, %lor.lhs.false.us ], [ 0, %if.then.us ] + %bReturnValue.1.us = phi i1 [ %bReturnValue.020.us, %lor.lhs.false.us ], [ false, %if.then.us ] %11 = load ptr, ptr %10, align 8 store ptr %11, ptr %first, align 8 %inc7.us = add nuw nsw i32 %seqIndex.019.us, 1 @@ -9195,7 +9195,7 @@ for.inc.us: ; preds = %if.then.us, %lor.lh for.body: ; preds = %for.body.lr.ph, %for.inc %13 = phi ptr [ %20, %for.inc ], [ %1, %for.body.lr.ph ] - %bReturnValue.020 = phi i8 [ %bReturnValue.1, %for.inc ], [ 1, %for.body.lr.ph ] + %bReturnValue.020 = phi i1 [ %bReturnValue.1, %for.inc ], [ true, %for.body.lr.ph ] %seqIndex.019 = phi i32 [ %inc7, %for.inc ], [ 0, %for.body.lr.ph ] %gp_offset = load i32, ptr %args, align 16 %fits_in_gp = icmp ult i32 %gp_offset, 41 @@ -9234,7 +9234,7 @@ if.then: ; preds = %lor.lhs.false, %vaa for.inc: ; preds = %if.then, %lor.lhs.false %19 = phi ptr [ %13, %lor.lhs.false ], [ %.pre, %if.then ] - %bReturnValue.1 = phi i8 [ %bReturnValue.020, %lor.lhs.false ], [ 0, %if.then ] + %bReturnValue.1 = phi i1 [ %bReturnValue.020, %lor.lhs.false ], [ false, %if.then ] %20 = load ptr, ptr %19, align 8 store ptr %20, ptr %first, align 8 %inc7 = add nuw nsw i32 %seqIndex.019, 1 @@ -9244,13 +9244,11 @@ for.inc: ; preds = %if.then, %lor.lhs.f for.end14: ; preds = %for.inc, %for.inc.us %argIndex.0.lcssa = phi i32 [ %inc7.us, %for.inc.us ], [ %inc7, %for.inc ] - %bReturnValue.0.lcssa = phi i8 [ %bReturnValue.1.us, %for.inc.us ], [ %bReturnValue.1, %for.inc ] - %tobool15 = trunc nuw i8 %bReturnValue.0.lcssa to i1 - br i1 %tobool15, label %if.then16, label %if.end50 + %bReturnValue.0.lcssa = phi i1 [ %bReturnValue.1.us, %for.inc.us ], [ %bReturnValue.1, %for.inc ] + br i1 %bReturnValue.0.lcssa, label %if.then16, label %if.end50 if.then16: ; preds = %entry, %for.end14 - %bReturnValue.0.lcssa39 = phi i8 [ %bReturnValue.0.lcssa, %for.end14 ], [ 1, %entry ] - %argIndex.0.lcssa38 = phi i32 [ %argIndex.0.lcssa, %for.end14 ], [ 0, %entry ] + %bReturnValue.0.lcssa39 = phi i32 [ %argIndex.0.lcssa, %for.end14 ], [ 0, %entry ] %gp_offset19 = load i32, ptr %args, align 16 %fits_in_gp20 = icmp ult i32 %gp_offset19, 41 br i1 %fits_in_gp20, label %vaarg.in_reg21, label %vaarg.in_mem23 @@ -9288,7 +9286,7 @@ do.body.preheader: ; preds = %vaarg.end27 do.body: ; preds = %do.body.preheader, %vaarg.end42 %overflow_arg_area4031 = phi ptr [ %overflow_arg_area4030, %vaarg.end42 ], [ %overflow_arg_area_p39.promoted, %do.body.preheader ] %gp_offset3429 = phi i32 [ %gp_offset3428, %vaarg.end42 ], [ %args.promoted, %do.body.preheader ] - %argIndex.1 = phi i32 [ %inc31, %vaarg.end42 ], [ %argIndex.0.lcssa38, %do.body.preheader ] + %argIndex.1 = phi i32 [ %inc31, %vaarg.end42 ], [ %argIndex.0.lcssa37, %do.body.preheader ] %inc31 = add nuw nsw i32 %argIndex.1, 1 %fits_in_gp35 = icmp ult i32 %gp_offset3429, 41 br i1 %fits_in_gp35, label %vaarg.in_reg36, label %vaarg.in_mem38 @@ -9318,18 +9316,17 @@ do.end: ; preds = %vaarg.end42 br i1 %tobool45.not, label %if.else47, label %if.then46 if.then46: ; preds = %do.end - call void (ptr, ...) @_ZN2EA8UnitTest6ReportEPKcz(ptr noundef nonnull @.str.72, ptr noundef nonnull %pName, i32 noundef %inc31, i32 noundef %argIndex.0.lcssa38) + call void (ptr, ...) @_ZN2EA8UnitTest6ReportEPKcz(ptr noundef nonnull @.str.72, ptr noundef nonnull %pName, i32 noundef %inc31, i32 noundef %argIndex.0.lcssa37) br label %if.end50 if.else47: ; preds = %do.end - call void (ptr, ...) @_ZN2EA8UnitTest6ReportEPKcz(ptr noundef nonnull @.str.73, i32 noundef %inc31, i32 noundef %argIndex.0.lcssa38) + call void (ptr, ...) @_ZN2EA8UnitTest6ReportEPKcz(ptr noundef nonnull @.str.73, i32 noundef %inc31, i32 noundef %argIndex.0.lcssa37) br label %if.end50 if.end50: ; preds = %if.then46, %if.else47, %vaarg.end27, %for.end14 - %bReturnValue.2 = phi i8 [ %bReturnValue.0.lcssa39, %vaarg.end27 ], [ %bReturnValue.0.lcssa, %for.end14 ], [ 0, %if.else47 ], [ 0, %if.then46 ] + %bReturnValue.2 = phi i1 [ true, %vaarg.end27 ], [ false, %for.end14 ], [ false, %if.else47 ], [ false, %if.then46 ] call void @llvm.va_end.p0(ptr nonnull %args) - %tobool52 = trunc nuw i8 %bReturnValue.2 to i1 - ret i1 %tobool52 + ret i1 %bReturnValue.2 } ; Function Attrs: mustprogress uwtable diff --git a/bench/faiss/optimized/NSG.cpp.ll b/bench/faiss/optimized/NSG.cpp.ll index 08ba54cc671..89e965d25c5 100644 --- a/bench/faiss/optimized/NSG.cpp.ll +++ b/bench/faiss/optimized/NSG.cpp.ll @@ -6642,7 +6642,7 @@ _ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit: ; preds = %_ZNSt10unique call void @_ZdaPv(ptr noundef nonnull %43) #22 br label %127 -.backedge: ; preds = %.backedge.backedge, %.preheader +.backedge: ; preds = %.critedge.backedge, %.preheader %92 = load i32, ptr %0, align 8 %93 = invoke noundef i32 @_ZN5faiss15RandomGenerator8rand_intEi(ptr noundef nonnull align 8 dereferenceable(5000) %79, i32 noundef %92) to label %94 unwind label %_ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit.loopexit @@ -6654,10 +6654,7 @@ _ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit: ; preds = %_ZNSt10unique %98 = load i8, ptr %97, align 1 %99 = load i8, ptr %11, align 8 %100 = icmp eq i8 %98, %99 - br i1 %100, label %101, label %.backedge.backedge - -.backedge.backedge: ; preds = %94, %101 - br label %.backedge, !llvm.loop !87 + br i1 %100, label %101, label %.critedge.backedge 101: ; preds = %94 %102 = load ptr, ptr %4, align 8 @@ -6667,18 +6664,15 @@ _ZNSt10unique_ptrIA_fSt14default_deleteIS0_EED2Ev.exit: ; preds = %_ZNSt10unique %106 = icmp slt i32 %104, %105 %.not53 = icmp ne i32 %93, %19 %or.cond54.not = and i1 %.not53, %106 - br i1 %or.cond54.not, label %_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit.loopexit, label %.backedge.backedge + br i1 %or.cond54.not, label %_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit, label %.critedge.backedge -_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit.loopexit: ; preds = %101 - %.pre99 = load ptr, ptr %4, align 8 - %.phi.trans.insert = getelementptr inbounds i32, ptr %.pre99, i64 %95 - %.pre100 = load i32, ptr %.phi.trans.insert, align 4 - br label %_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit +_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit.loopexit: ; preds = %101, %94 + br label %.critedge, !llvm.loop !87 -_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit: ; preds = %81, %_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit.loopexit - %107 = phi i32 [ %.pre100, %_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit.loopexit ], [ %86, %81 ] - %.pre-phi = phi i64 [ %95, %_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit.loopexit ], [ %84, %81 ] - %.242 = phi i32 [ %93, %_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit.loopexit ], [ %83, %81 ] +_ZNSt10unique_ptrIN5faiss16DistanceComputerESt14default_deleteIS1_EED2Ev.exit: ; preds = %81, %101 + %107 = phi i32 [ %104, %101 ], [ %86, %81 ] + %.pre-phi = phi i64 [ %95, %101 ], [ %84, %81 ] + %.242 = phi i32 [ %93, %101 ], [ %83, %81 ] %108 = load ptr, ptr %53, align 8 %109 = load ptr, ptr %108, align 8 %110 = getelementptr inbounds nuw i8, ptr %108, i64 8 diff --git a/bench/glslang/optimized/IntermTraverse.cpp.ll b/bench/glslang/optimized/IntermTraverse.cpp.ll index 03a7a8b21b1..fd68bce1c32 100644 --- a/bench/glslang/optimized/IntermTraverse.cpp.ll +++ b/bench/glslang/optimized/IntermTraverse.cpp.ll @@ -453,7 +453,7 @@ _ZN7glslang16TIntermTraverser14incrementDepthEP11TIntermNode.exit: ; preds = %22 tail call void %93(ptr noundef nonnull align 8 dereferenceable(32) %.sink35, ptr noundef nonnull %1) #7 br label %94 -94: ; preds = %.sink.split, %.critedge37, %.critedge +94: ; preds = %.sink.split, %.critedge, %.critedge33 %95 = load i32, ptr %11, align 4 %96 = add nsw i32 %95, -1 store i32 %96, ptr %11, align 4 @@ -605,7 +605,7 @@ define void @_ZN7glslang16TIntermAggregate8traverseEPNS_16TIntermTraverserE(ptr %8 = getelementptr inbounds nuw i8, ptr %7, i64 56 %9 = load ptr, ptr %8, align 8 %10 = tail call noundef zeroext i1 %9(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef 0, ptr noundef nonnull %0) #7 - br i1 %10, label %.thread, label %.thread41 + br i1 %10, label %.thread, label %.thread29 .thread: ; preds = %2, %6 %11 = getelementptr inbounds nuw i8, ptr %1, i64 12 @@ -732,7 +732,7 @@ _ZN7glslang16TIntermTraverser14incrementDepthEP11TIntermNode.exit: ; preds = %22 br label %76 76: ; preds = %56, %63, %70, %66 - %.3 = phi i8 [ %75, %70 ], [ %.237, %66 ], [ %.237, %63 ], [ %.237, %56 ] + %.3 = phi i8 [ %75, %70 ], [ 1, %66 ], [ 1, %63 ], [ 0, %56 ] %77 = load ptr, ptr %53, align 8, !noalias !9 %.not30 = icmp eq ptr %57, %77 br i1 %.not30, label %.loopexit, label %56, !llvm.loop !12 @@ -782,37 +782,46 @@ _ZN7glslang16TIntermTraverser14incrementDepthEP11TIntermNode.exit: ; preds = %22 br label %104 104: ; preds = %84, %90, %98, %93 - %.6 = phi i8 [ %103, %98 ], [ %.534, %93 ], [ %.534, %90 ], [ %.534, %84 ] + %.6 = phi i8 [ %103, %98 ], [ 1, %93 ], [ 1, %90 ], [ 0, %84 ] %105 = getelementptr inbounds nuw i8, ptr %.sroa.018.033, i64 8 %106 = load ptr, ptr %81, align 8 %.not29 = icmp eq ptr %105, %106 br i1 %.not29, label %.loopexit, label %84, !llvm.loop !13 -.loopexit: ; preds = %104, %76, %50, %78 - %.4 = phi i8 [ 1, %50 ], [ 1, %78 ], [ %.3, %76 ], [ %.6, %104 ] +.loopexit: ; preds = %50, %78 %107 = load i32, ptr %11, align 4 %108 = add nsw i32 %107, -1 store i32 %108, ptr %11, align 4 %109 = load ptr, ptr %18, align 8 %110 = getelementptr inbounds i8, ptr %109, i64 -8 store ptr %110, ptr %18, align 8 - %111 = trunc nuw i8 %.4 to i1 - br i1 %111, label %112, label %.thread41 - -112: ; preds = %.loopexit - %113 = getelementptr inbounds nuw i8, ptr %1, i64 10 - %114 = load i8, ptr %113, align 2 - %115 = trunc i8 %114 to i1 - br i1 %115, label %116, label %.thread41 - -116: ; preds = %112 - %117 = load ptr, ptr %1, align 8 - %118 = getelementptr inbounds nuw i8, ptr %117, i64 56 - %119 = load ptr, ptr %118, align 8 - %120 = tail call noundef zeroext i1 %119(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef 2, ptr noundef nonnull %0) #7 - br label %.thread41 - -.thread41: ; preds = %6, %116, %112, %.loopexit + br label %116 + +.loopexit: ; preds = %104, %76 + %.4 = phi i8 [ %.3, %76 ], [ %.6, %104 ] + %113 = load i32, ptr %11, align 4 + %114 = add nsw i32 %113, -1 + store i32 %114, ptr %11, align 4 + %113 = load ptr, ptr %18, align 8 + %114 = getelementptr inbounds i8, ptr %113, i64 -8 + store ptr %114, ptr %18, align 8 + %117 = trunc nuw i8 %.4 to i1 + br i1 %117, label %116, label %.thread29 + +116:; preds = %.loopexit.thread, %.loopexit + %117 = getelementptr inbounds nuw i8, ptr %1, i64 10 + %118 = load i8, ptr %117, align 2 + %119 = trunc i8 %118 to i1 + br i1 %119, label %120, label %.thread29 + +120: ; preds = %116 + %121 = load ptr, ptr %1, align 8 + %122 = getelementptr inbounds nuw i8, ptr %121, i64 56 + %123 = load ptr, ptr %122, align 8 + %124 = tail call noundef zeroext i1 %123(ptr noundef nonnull align 8 dereferenceable(56) %1, i32 noundef 2, ptr noundef nonnull %0) #7 + br label %.thread29 + +.thread29: ; preds = %6, %120, %116, %.loopexit ret void } diff --git a/bench/glslang/optimized/ShaderLang.cpp.ll b/bench/glslang/optimized/ShaderLang.cpp.ll index 51778d313f9..b928cd54210 100644 --- a/bench/glslang/optimized/ShaderLang.cpp.ll +++ b/bench/glslang/optimized/ShaderLang.cpp.ll @@ -5997,13 +5997,10 @@ define noundef zeroext i1 @_ZN7glslang8TProgram4linkE11EShMessages(ptr noundef n 14: ; preds = %12 %15 = tail call noundef zeroext i1 @_ZN7glslang8TProgram15crossStageCheckE11EShMessages(ptr noundef nonnull align 8 dereferenceable(497) %0, i32 poison) - %16 = trunc nuw i8 %spec.select to i1 - %.not = xor i1 %16, true - %17 = select i1 %15, i1 %.not, i1 false br label %18 18: ; preds = %12, %14, %2 - %.09 = phi i1 [ false, %2 ], [ %17, %14 ], [ false, %12 ] + %.09 = phi i1 [ false, %2 ], [ false, %12 ], [ %15, %14 ] ret i1 %.09 } diff --git a/bench/gromacs/optimized/lincs.cpp.ll b/bench/gromacs/optimized/lincs.cpp.ll index f529647a4e0..50f5f40b6ff 100644 --- a/bench/gromacs/optimized/lincs.cpp.ll +++ b/bench/gromacs/optimized/lincs.cpp.ll @@ -479,6 +479,7 @@ _ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11Li _ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit.thread: ; preds = %.lr.ph134 store i32 %60, ptr %55, align 8 + %spec.select = and i8 %.0132, 1 br label %_ZN3gmxL36more_than_two_sequential_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit .lr.ph.i96: ; preds = %_ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit @@ -528,7 +529,7 @@ _ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11Li _ZN3gmxL36more_than_two_sequential_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit: ; preds = %.critedge.i, %168, %_ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit.thread, %_ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit %180 = phi i32 [ %150, %_ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit ], [ %60, %_ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit.thread ], [ %150, %168 ], [ %150, %.critedge.i ] - %.1 = phi i8 [ %.0132, %_ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit ], [ %.0132, %_ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit.thread ], [ %.0132, %.critedge.i ], [ 1, %168 ] + %.1 = phi i8 [ 1, %_ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit ], [ %spec.select, %_ZN3gmxL26count_triangle_constraintsERKSt5arrayI15InteractionListLm94EERKNS_11ListOfListsIiEE.exit.thread ], [ %.0132, %.critedge.i ], [ 1, %168 ] %181 = getelementptr inbounds nuw i8, ptr %.sroa.0110.0131, i64 56 %.not123 = icmp eq ptr %181, %59 br i1 %.not123, label %._crit_edge135.loopexit, label %.lr.ph134 diff --git a/bench/gromacs/optimized/partition.cpp.ll b/bench/gromacs/optimized/partition.cpp.ll index 0f7dc70e29d..2f50297846e 100644 --- a/bench/gromacs/optimized/partition.cpp.ll +++ b/bench/gromacs/optimized/partition.cpp.ll @@ -2711,6 +2711,7 @@ _ZL21dd_print_load_verboseP12gmx_domdec_t.exit: ; preds = %739, %735, %699, %_ br i1 %4, label %849, label %910 844: ; preds = %211, %778, %763, %761, %836, %785 + %.2371 = phi i8 [ %.0369, %778 ], [ %.0369, %763 ], [ %.0369, %761 ], [ %.0369, %836 ], [ %.0369, %785 ], [ 0, %211 ] %845 = getelementptr inbounds nuw i8, ptr %143, i64 2212 %846 = load i32, ptr %845, align 4 %847 = add nsw i32 %846, 1 @@ -2721,7 +2722,7 @@ _ZL21dd_print_load_verboseP12gmx_domdec_t.exit: ; preds = %739, %735, %699, %_ br i1 %4, label %849, label %910 849: ; preds = %839, %831, %.thread676, %844, %848 - %.1370668 = phi i8 [ %.0369, %844 ], [ %.0369, %848 ], [ %.0369, %.thread676 ], [ %.0369, %831 ], [ 1, %839 ] + %.1370668 = phi i8 [ %.2371, %844 ], [ %.0369, %848 ], [ %.0369, %.thread676 ], [ %.0369, %831 ], [ 1, %839 ] %850 = getelementptr inbounds nuw i8, ptr %141, i64 312 %851 = load ptr, ptr %850, align 8 call void @_ZN11gmx_ga2la_t5clearEb(ptr noundef nonnull align 8 dereferenceable(41) %851, i1 noundef zeroext true) @@ -2830,7 +2831,7 @@ _ZL13ddGetAtomInfoN3gmx8ArrayRefIKNS_27AtomInfoWithinMoleculeBlockEEEi.exit.i: ; br i1 %exitcond.not.i, label %_ZL15dd_set_atominfoN3gmx8ArrayRefIKiEEiiP10t_forcerec.exit, label %.lr.ph.i444, !llvm.loop !14 910: ; preds = %839, %831, %844, %848 - %.1370667 = phi i8 [ %.0369, %844 ], [ %.0369, %848 ], [ %.0369, %831 ], [ 1, %839 ] + %.1370667 = phi i8 [ %.2371, %844 ], [ %.0369, %848 ], [ %.0369, %831 ], [ 1, %839 ] %911 = getelementptr inbounds nuw i8, ptr %11, i64 776 %912 = load i32, ptr %911, align 8 %913 = sext i32 %912 to i64 diff --git a/bench/grpc/optimized/posix_endpoint.cc.ll b/bench/grpc/optimized/posix_endpoint.cc.ll index 98725840364..eac19d02d32 100644 --- a/bench/grpc/optimized/posix_endpoint.cc.ll +++ b/bench/grpc/optimized/posix_endpoint.cc.ll @@ -3961,7 +3961,7 @@ if.then11.i: ; preds = %if.else8.i cleanup.i: ; preds = %if.then11.i, %if.else8.i, %if.else.i, %if.then4.i %constrained.0.shrunk = phi i1 [ %cmp.i17, %if.then4.i ], [ %cmp.i17, %if.else.i ], [ false, %if.else8.i ], [ false, %if.then11.i ] - %retval.0.i = phi i1 [ true, %if.then4.i ], [ %cmp.i17, %if.else.i ], [ false, %if.else8.i ], [ false, %if.then11.i ] + %retval.0.i = phi i1 [ true, %if.then4.i ], [ false, %if.else.i ], [ false, %if.else8.i ], [ false, %if.then11.i ] invoke void @_ZN4absl12lts_202308025Mutex6UnlockEv(ptr noundef nonnull align 8 dereferenceable(8) %mu_.i) to label %_ZN17grpc_event_engine12experimental18TcpZerocopySendCtx34UpdateZeroCopyOptMemStateAfterSendEbRb.exit unwind label %terminate.lpad.i2.i @@ -3973,7 +3973,10 @@ terminate.lpad.i2.i: ; preds = %cleanup.i unreachable _ZN17grpc_event_engine12experimental18TcpZerocopySendCtx34UpdateZeroCopyOptMemStateAfterSendEbRb.exit: ; preds = %cleanup.i - br i1 %retval.0.i, label %if.then19, label %if.end38 + br i1 %retval.0.i, label %if.then19, label %lor.lhs.false17 + +lor.lhs.false17: ; preds = %_ZN17grpc_event_engine12experimental18TcpZerocopySendCtx34UpdateZeroCopyOptMemStateAfterSendEbRb.exit + br i1 %constrained.0.shrunk, label %do.body, label %if.end38 if.then19: ; preds = %_ZN17grpc_event_engine12experimental18TcpZerocopySendCtx34UpdateZeroCopyOptMemStateAfterSendEbRb.exit br i1 %constrained.0.shrunk, label %do.body, label %if.then21 @@ -3986,7 +3989,7 @@ if.then21: ; preds = %if.then19 call void %31(ptr noundef nonnull align 8 dereferenceable(8) %30) br label %if.end38 -do.body: ; preds = %if.then19 +do.body: ; preds = %lor.lhs.false17, %if.then19 %call24 = call { i64, i64 } @gpr_now(i32 noundef 0) %32 = extractvalue { i64, i64 } %call24, 0 %33 = extractvalue { i64, i64 } %call24, 1 @@ -4049,7 +4052,7 @@ _ZN17grpc_event_engine12experimental12_GLOBAL__N_120GetUlimitHardMemLockEv.exit: call void (ptr, i32, i32, ptr, ...) @gpr_log(ptr noundef nonnull @.str.1, i32 noundef 978, i32 noundef 1, ptr noundef nonnull @.str.13, i64 noundef %38, i64 noundef %42) br label %if.end38 -if.end38: ; preds = %_ZN17grpc_event_engine12experimental18TcpZerocopySendCtx34UpdateZeroCopyOptMemStateAfterSendEbRb.exit, %if.then21, %lor.lhs.false29, %_ZN17grpc_event_engine12experimental12_GLOBAL__N_120GetUlimitHardMemLockEv.exit +if.end38: ; preds = %if.then21, %lor.lhs.false29, %_ZN17grpc_event_engine12experimental12_GLOBAL__N_120GetUlimitHardMemLockEv.exit, %lor.lhs.false17 %43 = load i64, ptr %sent_length, align 8 %cmp39 = icmp slt i64 %43, 0 br i1 %cmp39, label %if.then40, label %if.end55 diff --git a/bench/hdf5/optimized/H5Centry.c.ll b/bench/hdf5/optimized/H5Centry.c.ll index 45f0c8baa70..0b23963cb78 100644 --- a/bench/hdf5/optimized/H5Centry.c.ll +++ b/bench/hdf5/optimized/H5Centry.c.ll @@ -5373,9 +5373,11 @@ H5C__deserialize_prefetched_entry.exit: ; preds = %510 590: ; preds = %581 %591 = load i32, ptr %543, align 4 %592 = and i32 %591, 1 - %.not142.i = icmp ne i32 %592, 0 - %brmerge.not.i = select i1 %.not142.i, i1 %.0.i, i1 false - br i1 %brmerge.not.i, label %593, label %630 + %.not142.i = icmp eq i32 %592, 0 + %brmerge.not.i = xor i1 %.0.i, true + %brmerge.i = select i1 %.not142.i, i1 true, i1 %brmerge.not.i + %.0.mux.i = select i1 %.not142.i, i1 %.0.i, i1 false + br i1 %brmerge.i, label %630, label %593 593: ; preds = %590 %594 = load i64, ptr %7, align 8 @@ -5438,7 +5440,7 @@ H5C__deserialize_prefetched_entry.exit: ; preds = %510 630: ; preds = %620, %616, %598, %590 %.4.i = phi ptr [ %610, %620 ], [ %610, %616 ], [ %.3.i, %590 ], [ %.3.i, %598 ] - %.1.i244 = phi i1 [ true, %620 ], [ true, %616 ], [ %.0.i, %590 ], [ false, %598 ] + %.1.i244 = phi i1 [ true, %620 ], [ true, %616 ], [ %.0.mux.i, %590 ], [ false, %598 ] %631 = load ptr, ptr %570, align 8 %632 = icmp eq ptr %631, null br i1 %632, label %647, label %633 diff --git a/bench/hdf5/optimized/H5T.c.ll b/bench/hdf5/optimized/H5T.c.ll index bcf704984ab..3d02e995cff 100644 --- a/bench/hdf5/optimized/H5T.c.ll +++ b/bench/hdf5/optimized/H5T.c.ll @@ -13648,8 +13648,8 @@ declare i32 @H5T__print_path_stats(ptr noundef, ptr noundef) local_unnamed_addr define internal fastcc zeroext i1 @H5T_path_match_find_type_with_volobj(ptr noundef readonly captures(none) %0, ptr noundef nonnull %1) unnamed_addr #6 { br label %tailrecurse -tailrecurse: ; preds = %25, %22, %2 - %.tr = phi ptr [ %0, %2 ], [ %24, %22 ], [ %27, %25 ] +tailrecurse: ; preds = %.loopexit.loopexit, %2 + %.tr = phi ptr [ %0, %2 ], [ %.sink, %.loopexit.loopexit ] %3 = getelementptr inbounds nuw i8, ptr %.tr, i64 40 %4 = load ptr, ptr %3, align 8 %5 = getelementptr inbounds nuw i8, ptr %4, i64 40 @@ -13677,41 +13677,38 @@ tailrecurse: ; preds = %25, %22, %2 %wide.trip.count = zext i32 %12 to i64 br label %14 -14: ; preds = %.lr.ph, %16 - %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %16 ] - %.122 = phi i8 [ 0, %.lr.ph ], [ %21, %16 ] - %15 = trunc nuw i8 %.122 to i1 - br i1 %15, label %.loopexit.loopexit, label %16 - -16: ; preds = %14 - %17 = load ptr, ptr %13, align 8 - %18 = getelementptr inbounds nuw %struct.H5T_cmemb_t, ptr %17, i64 %indvars.iv, i32 3 - %19 = load ptr, ptr %18, align 8 - %20 = tail call fastcc zeroext i1 @H5T_path_match_find_type_with_volobj(ptr noundef %19, ptr noundef %1) - %21 = zext i1 %20 to i8 +14: ; preds = %.lr.ph, %15 + %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %15 ] + %.122 = phi i1 [ false, %.lr.ph ], [ %19, %15 ] + br i1 %.122, label %.loopexit, label %15 + +15: ; preds = %14 + %16 = load ptr, ptr %13, align 8 + %17 = getelementptr inbounds nuw %struct.H5T_cmemb_t, ptr %16, i64 %indvars.iv, i32 3 + %18 = load ptr, ptr %17, align 8 + %19 = tail call fastcc zeroext i1 @H5T_path_match_find_type_with_volobj(ptr noundef %18, ptr noundef %1) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %.loopexit.loopexit, label %14 + br i1 %exitcond.not, label %.loopexit, label %14 22: ; preds = %8 %23 = getelementptr inbounds nuw i8, ptr %4, i64 32 %24 = load ptr, ptr %23, align 8 %.not21 = icmp eq ptr %24, null - br i1 %.not21, label %.loopexit, label %tailrecurse + br i1 %.not21, label %.loopexit, label %.loopexit.loopexit 25: ; preds = %8 %26 = getelementptr inbounds nuw i8, ptr %4, i64 32 %27 = load ptr, ptr %26, align 8 %.not = icmp eq ptr %27, null - br i1 %.not, label %.loopexit, label %tailrecurse + br i1 %.not, label %.loopexit, label %.loopexit.loopexit -.loopexit.loopexit: ; preds = %14, %16 - %.017.ph = phi i8 [ %.122, %14 ], [ %21, %16 ] - %28 = trunc nuw i8 %.017.ph to i1 - br label %.loopexit +.loopexit.loopexit: ; preds = %23, %20 + %.017.ph = phi ptr [ %22, %20 ], [ %25, %23 ] + br label %tailrecurse -.loopexit: ; preds = %.loopexit.loopexit, %.preheader, %8, %22, %25, %tailrecurse - %.017 = phi i1 [ true, %tailrecurse ], [ false, %25 ], [ false, %22 ], [ false, %8 ], [ false, %.preheader ], [ %28, %.loopexit.loopexit ] +.loopexit: ; preds = %15, %14, %.preheader, %8, %22, %25, %tailrecurse + %.017 = phi i1 [ true, %tailrecurse ], [ false, %25 ], [ false, %22 ], [ false, %8 ], [ false, %.preheader ], [ %19, %15 ], [ true, %14 ] ret i1 %.017 } diff --git a/bench/hermes/optimized/CompilerDriver.cpp.ll b/bench/hermes/optimized/CompilerDriver.cpp.ll index 2d178097617..a76b7eb49ef 100644 --- a/bench/hermes/optimized/CompilerDriver.cpp.ll +++ b/bench/hermes/optimized/CompilerDriver.cpp.ll @@ -3541,7 +3541,7 @@ if.end.i.i42.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end8.i if.end8.i: ; preds = %if.end.i.i42.i, %if.then.i.i39.i, %if.then7.i, %land.lhs.true5.i, %land.lhs.true3.i, %if.end.i13 - %errored.1.i = phi i8 [ %errored.0.i, %land.lhs.true5.i ], [ %errored.0.i, %land.lhs.true3.i ], [ %errored.0.i, %if.end.i13 ], [ %errored.0.i, %if.then7.i ], [ 1, %if.end.i.i42.i ], [ 1, %if.then.i.i39.i ] + %errored.1.i = phi i8 [ %errored.0.i, %land.lhs.true5.i ], [ %errored.0.i, %land.lhs.true3.i ], [ %errored.0.i, %if.end.i13 ], [ 1, %if.then7.i ], [ 1, %if.end.i.i42.i ], [ 1, %if.then.i.i39.i ] %28 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL15LazyCompilationE, i64 152), align 8 %tobool.i.i47.i = trunc i8 %28 to i1 br i1 %tobool.i.i47.i, label %land.lhs.true10.i, label %if.end13.i15 @@ -3600,7 +3600,7 @@ if.end.i.i71.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end13.i15 if.end13.i15: ; preds = %if.end.i.i71.i, %if.then.i.i68.i, %if.then12.i, %land.lhs.true10.i, %if.end8.i - %errored.2.i = phi i8 [ %errored.1.i, %land.lhs.true10.i ], [ %errored.1.i, %if.end8.i ], [ %errored.1.i, %if.then12.i ], [ 1, %if.end.i.i71.i ], [ 1, %if.then.i.i68.i ] + %errored.2.i = phi i8 [ %errored.1.i, %land.lhs.true10.i ], [ %errored.1.i, %if.end8.i ], [ 1, %if.then12.i ], [ 1, %if.end.i.i71.i ], [ 1, %if.then.i.i68.i ] %35 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL15LazyCompilationE, i64 152), align 8 %tobool.i.i76.i = trunc i8 %35 to i1 br i1 %tobool.i.i76.i, label %if.then15.i, label %if.end37.i @@ -3659,7 +3659,7 @@ if.end.i.i99.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end19.i if.end19.i: ; preds = %if.end.i.i99.i, %if.then.i.i96.i, %if.then18.i19, %if.then15.i - %errored.4.i = phi i8 [ %errored.2.i, %if.then15.i ], [ %errored.2.i, %if.then18.i19 ], [ 1, %if.end.i.i99.i ], [ 1, %if.then.i.i96.i ] + %errored.4.i = phi i8 [ %errored.2.i, %if.then15.i ], [ 1, %if.then18.i19 ], [ 1, %if.end.i.i99.i ], [ 1, %if.then.i.i96.i ] %42 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL10DumpTargetE, i64 152), align 8 %cmp21.not.i = icmp eq i32 %42, 12 br i1 %cmp21.not.i, label %if.end23.i, label %if.then22.i @@ -3713,7 +3713,7 @@ if.end.i.i126.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end23.i if.end23.i: ; preds = %if.end.i.i126.i, %if.then.i.i123.i, %if.then22.i, %if.end19.i - %errored.5.i = phi i8 [ %errored.4.i, %if.end19.i ], [ %errored.4.i, %if.then22.i ], [ 1, %if.end.i.i126.i ], [ 1, %if.then.i.i123.i ] + %errored.5.i = phi i8 [ %errored.4.i, %if.end19.i ], [ 1, %if.then22.i ], [ 1, %if.end.i.i126.i ], [ 1, %if.then.i.i123.i ] %48 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2cl17OptimizationLevelE, i64 152), align 8 %cmp25.i20 = icmp sgt i32 %48, 1 br i1 %cmp25.i20, label %if.then26.i21, label %if.end27.i @@ -3767,7 +3767,7 @@ if.end.i.i153.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end27.i if.end27.i: ; preds = %if.end.i.i153.i, %if.then.i.i150.i, %if.then26.i21, %if.end23.i - %errored.6.i = phi i8 [ %errored.5.i, %if.end23.i ], [ %errored.5.i, %if.then26.i21 ], [ 1, %if.end.i.i153.i ], [ 1, %if.then.i.i150.i ] + %errored.6.i = phi i8 [ %errored.5.i, %if.end23.i ], [ 1, %if.then26.i21 ], [ 1, %if.end.i.i153.i ], [ 1, %if.then.i.i150.i ] %54 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL12BytecodeModeE, i64 152), align 8 %tobool.i.i158.i = trunc i8 %54 to i1 br i1 %tobool.i.i158.i, label %if.then29.i, label %if.end30.i @@ -3821,7 +3821,7 @@ if.end.i.i181.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end30.i if.end30.i: ; preds = %if.end.i.i181.i, %if.then.i.i178.i, %if.then29.i, %if.end27.i - %errored.7.i = phi i8 [ %errored.6.i, %if.end27.i ], [ %errored.6.i, %if.then29.i ], [ 1, %if.end.i.i181.i ], [ 1, %if.then.i.i178.i ] + %errored.7.i = phi i8 [ %errored.6.i, %if.end27.i ], [ 1, %if.then29.i ], [ 1, %if.end.i.i181.i ], [ 1, %if.then.i.i178.i ] %60 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14CustomOptimizeB5cxx11E, i64 152), align 8 %61 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14CustomOptimizeB5cxx11E, i64 160), align 8 %cmp.i.i.i186.i = icmp eq ptr %60, %61 @@ -3876,7 +3876,7 @@ if.end.i.i209.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end33.i if.end33.i: ; preds = %if.end.i.i209.i, %if.then.i.i206.i, %if.then32.i, %if.end30.i - %errored.8.i = phi i8 [ %errored.7.i, %if.end30.i ], [ %errored.7.i, %if.then32.i ], [ 1, %if.end.i.i209.i ], [ 1, %if.then.i.i206.i ] + %errored.8.i = phi i8 [ %errored.7.i, %if.end30.i ], [ 1, %if.then32.i ], [ 1, %if.end.i.i209.i ], [ 1, %if.then.i.i206.i ] %67 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL8CommonJSE, i64 152), align 8 %tobool.i.i214.i = trunc i8 %67 to i1 br i1 %tobool.i.i214.i, label %if.then35.i, label %if.end37.i @@ -3930,7 +3930,7 @@ if.end.i.i237.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end37.i if.end37.i: ; preds = %if.end.i.i237.i, %if.then.i.i234.i, %if.then35.i, %if.end33.i, %if.end13.i15 - %errored.3.i = phi i8 [ %errored.8.i, %if.end33.i ], [ %errored.2.i, %if.end13.i15 ], [ %errored.8.i, %if.then35.i ], [ 1, %if.end.i.i237.i ], [ 1, %if.then.i.i234.i ] + %errored.3.i = phi i8 [ %errored.8.i, %if.end33.i ], [ %errored.2.i, %if.end13.i15 ], [ 1, %if.then35.i ], [ 1, %if.end.i.i237.i ], [ 1, %if.then.i.i234.i ] %73 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2cl14InputFilenamesB5cxx11E, i64 160), align 8 %74 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2cl14InputFilenamesB5cxx11E, i64 152), align 8 %sub.ptr.lhs.cast.i.i.i16 = ptrtoint ptr %73 to i64 @@ -3993,7 +3993,7 @@ if.end.i.i265.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end43.i if.end43.i: ; preds = %if.end.i.i265.i, %if.then.i.i262.i, %if.then42.i, %if.then40.i - %errored.10.i = phi i8 [ %errored.3.i, %if.then40.i ], [ %errored.3.i, %if.then42.i ], [ 1, %if.end.i.i265.i ], [ 1, %if.then.i.i262.i ] + %errored.10.i = phi i8 [ %errored.3.i, %if.then40.i ], [ 1, %if.then42.i ], [ 1, %if.end.i.i265.i ], [ 1, %if.then.i.i262.i ] %81 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14BytecodeFormatE, i64 152), align 8 %cmp45.not.i = icmp eq i32 %81, 0 br i1 %cmp45.not.i, label %if.end47.i, label %if.then46.i @@ -4047,7 +4047,7 @@ if.end.i.i292.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end47.i if.end47.i: ; preds = %if.end.i.i292.i, %if.then.i.i289.i, %if.then46.i, %if.end43.i - %errored.11.i = phi i8 [ %errored.10.i, %if.end43.i ], [ %errored.10.i, %if.then46.i ], [ 1, %if.end.i.i292.i ], [ 1, %if.then.i.i289.i ] + %errored.11.i = phi i8 [ %errored.10.i, %if.end43.i ], [ 1, %if.then46.i ], [ 1, %if.end.i.i292.i ], [ 1, %if.then.i.i289.i ] %87 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL8CommonJSE, i64 152), align 8 %tobool.i.i297.i = trunc i8 %87 to i1 br i1 %tobool.i.i297.i, label %if.end51.i, label %if.then49.i @@ -4101,7 +4101,7 @@ if.end.i.i320.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end51.i if.end51.i: ; preds = %if.end.i.i320.i, %if.then.i.i317.i, %if.then49.i, %if.end47.i, %if.end37.i - %errored.9.i = phi i8 [ %errored.11.i, %if.end47.i ], [ %errored.3.i, %if.end37.i ], [ %errored.11.i, %if.then49.i ], [ 1, %if.end.i.i320.i ], [ 1, %if.then.i.i317.i ] + %errored.9.i = phi i8 [ %errored.11.i, %if.end47.i ], [ %errored.3.i, %if.end37.i ], [ 1, %if.then49.i ], [ 1, %if.end.i.i320.i ], [ 1, %if.then.i.i317.i ] %93 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL15OutputSourceMapE, i64 152), align 8 %tobool.i.i325.i = trunc i8 %93 to i1 br i1 %tobool.i.i325.i, label %if.then53.i, label %if.end65.i @@ -4159,7 +4159,7 @@ if.end.i.i348.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end56.i if.end56.i: ; preds = %if.end.i.i348.i, %if.then.i.i345.i, %if.then55.i, %if.then53.i - %errored.13.i = phi i8 [ %errored.9.i, %if.then53.i ], [ %errored.9.i, %if.then55.i ], [ 1, %if.end.i.i348.i ], [ 1, %if.then.i.i345.i ] + %errored.13.i = phi i8 [ %errored.9.i, %if.then53.i ], [ 1, %if.then55.i ], [ 1, %if.end.i.i348.i ], [ 1, %if.then.i.i345.i ] %99 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14BytecodeFormatE, i64 152), align 8 %cmp58.not.i = icmp eq i32 %99, 0 br i1 %cmp58.not.i, label %if.end60.i, label %if.then59.i @@ -4213,7 +4213,7 @@ if.end.i.i375.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end60.i if.end60.i: ; preds = %if.end.i.i375.i, %if.then.i.i372.i, %if.then59.i, %if.end56.i - %errored.14.i = phi i8 [ %errored.13.i, %if.end56.i ], [ %errored.13.i, %if.then59.i ], [ 1, %if.end.i.i375.i ], [ 1, %if.then.i.i372.i ] + %errored.14.i = phi i8 [ %errored.13.i, %if.end56.i ], [ 1, %if.then59.i ], [ 1, %if.end.i.i375.i ], [ 1, %if.then.i.i372.i ] %105 = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL10DumpTargetE, i64 152), align 8 %cmp62.not.i = icmp eq i32 %105, 11 br i1 %cmp62.not.i, label %if.end65.i, label %if.then63.i @@ -4267,7 +4267,7 @@ if.end.i.i402.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end65.i if.end65.i: ; preds = %if.end.i.i402.i, %if.then.i.i399.i, %if.then63.i, %if.end60.i, %if.end51.i - %errored.12.i = phi i8 [ %errored.14.i, %if.end60.i ], [ %errored.9.i, %if.end51.i ], [ %errored.14.i, %if.then63.i ], [ 1, %if.end.i.i402.i ], [ 1, %if.then.i.i399.i ] + %errored.12.i = phi i8 [ %errored.14.i, %if.end60.i ], [ %errored.9.i, %if.end51.i ], [ 1, %if.then63.i ], [ 1, %if.end.i.i402.i ], [ 1, %if.then.i.i399.i ] %111 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL12BytecodeModeE, i64 152), align 8 %tobool.i.i407.i = trunc i8 %111 to i1 br i1 %tobool.i.i407.i, label %land.lhs.true67.i, label %if.end79.i @@ -4331,13 +4331,12 @@ if.end.i.i430.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end74thread-pre-split.i if.end74thread-pre-split.i: ; preds = %if.end.i.i430.i, %if.then.i.i427.i, %if.then73.i - %errored.16.ph.i = phi i8 [ 1, %if.then.i.i427.i ], [ 1, %if.end.i.i430.i ], [ %errored.12.i, %if.then73.i ] %.pr.i = load i32, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL10DumpTargetE, i64 152), align 8 br label %if.end74.i if.end74.i: ; preds = %if.end74thread-pre-split.i, %if.then70.i %119 = phi i32 [ %.pr.i, %if.end74thread-pre-split.i ], [ %112, %if.then70.i ] - %errored.16.i = phi i8 [ %errored.16.ph.i, %if.end74thread-pre-split.i ], [ %errored.12.i, %if.then70.i ] + %errored.16.i = phi i8 [ 1, %if.end74thread-pre-split.i ], [ %errored.12.i, %if.then70.i ] %cmp76.not.i = icmp eq i32 %119, 10 br i1 %cmp76.not.i, label %if.end79.i, label %if.then77.i @@ -4390,7 +4389,7 @@ if.end.i.i457.i: ; preds = %_ZN4llvh11raw_ostre br label %if.end79.i if.end79.i: ; preds = %if.end.i.i457.i, %if.then.i.i454.i, %if.then77.i, %if.end74.i, %land.lhs.true67.i, %if.end65.i - %errored.15.i = phi i8 [ %errored.12.i, %land.lhs.true67.i ], [ %errored.16.i, %if.end74.i ], [ %errored.12.i, %if.end65.i ], [ %errored.16.i, %if.then77.i ], [ 1, %if.end.i.i457.i ], [ 1, %if.then.i.i454.i ] + %errored.15.i = phi i8 [ %errored.12.i, %land.lhs.true67.i ], [ %errored.16.i, %if.end74.i ], [ %errored.12.i, %if.end65.i ], [ 1, %if.then77.i ], [ 1, %if.end.i.i457.i ], [ 1, %if.then.i.i454.i ] %125 = load i8, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL12InstrumentIRE, i64 152), align 8 %tobool.i.i462.i = trunc i8 %125 to i1 %tobool.i463.i = trunc nuw i8 %errored.15.i to i1 @@ -4446,7 +4445,7 @@ if.end.i.i485.i: ; preds = %_ZN4llvh11raw_ostre _ZN12_GLOBAL__N_113validateFlagsEv.exit: ; preds = %if.end79.i br i1 %tobool.i463.i, label %if.then, label %if.end -if.then: ; preds = %if.then81.i, %if.then.i.i482.i, %if.end.i.i485.i, %_ZN12_GLOBAL__N_113validateFlagsEv.exit +if.then: ; preds = %if.then.i.i482.i, %if.end.i.i485.i, %if.then81.i, %_ZN12_GLOBAL__N_113validateFlagsEv.exit store i32 1, ptr %agg.result, align 8 %bytecodeProvider.i = getelementptr inbounds nuw i8, ptr %agg.result, i64 8 %filename.i.i = getelementptr inbounds nuw i8, ptr %agg.result, i64 40 diff --git a/bench/hermes/optimized/ESTreeIRGen-expr.cpp.ll b/bench/hermes/optimized/ESTreeIRGen-expr.cpp.ll index 168b2cc7293..8c5c2bd81d9 100644 --- a/bench/hermes/optimized/ESTreeIRGen-expr.cpp.ll +++ b/bench/hermes/optimized/ESTreeIRGen-expr.cpp.ll @@ -4577,13 +4577,11 @@ if.then.i.i: ; preds = %_ZN4llvh11SmallVect br i1 %isSpread.091, label %if.then57, label %if.end71 if.end55: ; preds = %_ZN4llvh11SmallVectorIPN6hermes5ValueELj4EEC2ERKS4_.exit, %if.then48 - %consecutive.1 = phi i8 [ %consecutive.0126, %if.then48 ], [ 0, %_ZN4llvh11SmallVectorIPN6hermes5ValueELj4EEC2ERKS4_.exit ] %allocArrayInst.1 = phi ptr [ %allocArrayInst.0127, %if.then48 ], [ %call53, %_ZN4llvh11SmallVectorIPN6hermes5ValueELj4EEC2ERKS4_.exit ] br i1 %isSpread.091, label %if.then57, label %if.end71 if.then57: ; preds = %if.then.i.i, %if.end55 %allocArrayInst.1107 = phi ptr [ %call53, %if.then.i.i ], [ %allocArrayInst.1, %if.end55 ] - %consecutive.1106 = phi i8 [ 0, %if.then.i.i ], [ %consecutive.1, %if.end55 ] %14 = icmp eq ptr %allocArrayInst.1107, null %add.ptr = getelementptr inbounds nuw i8, ptr %allocArrayInst.1107, i64 16 %spec.select = select i1 %14, ptr null, ptr %add.ptr @@ -4600,14 +4598,10 @@ if.then57: ; preds = %if.then.i.i, %if.en if.end71: ; preds = %if.then.i.i, %if.end55 %allocArrayInst.1104 = phi ptr [ %allocArrayInst.1, %if.end55 ], [ %call53, %if.then.i.i ] - %consecutive.1102 = phi i8 [ %consecutive.1, %if.end55 ], [ 0, %if.then.i.i ] - br i1 %tobool43.not93, label %if.end91, label %if.then73 - -if.then73: ; preds = %land.lhs.true, %lor.lhs.false46, %if.end71 - %value.088100116 = phi ptr [ %value.089, %if.end71 ], [ %call37, %lor.lhs.false46 ], [ %call37, %land.lhs.true ] - %consecutive.1102114 = phi i8 [ %consecutive.1102, %if.end71 ], [ %consecutive.0126, %lor.lhs.false46 ], [ %consecutive.0126, %land.lhs.true ] - %allocArrayInst.1104112 = phi ptr [ %allocArrayInst.1104, %if.end71 ], [ %allocArrayInst.0127, %lor.lhs.false46 ], [ %allocArrayInst.0127, %land.lhs.true ] - %tobool74 = trunc nuw i8 %consecutive.1102114 to i1 + br i1 %tobool43.not93, label %if.end91, label %if.else76 + +if.then73: ; preds = %land.lhs.true, %lor.lhs.false46 + %tobool74 = trunc nuw i8 %consecutive.0126 to i1 br i1 %tobool74, label %if.then75, label %if.else76 if.then75: ; preds = %if.then73 @@ -4626,16 +4620,18 @@ _ZN4llvh23SmallVectorTemplateBaseIPN6hermes5ValueELb1EE9push_backERKS3_.exit: ; %19 = load ptr, ptr %elements, align 8 %conv.i3.i = zext i32 %18 to i64 %add.ptr.i.i = getelementptr inbounds nuw ptr, ptr %19, i64 %conv.i3.i - %20 = ptrtoint ptr %value.088100116 to i64 + %20 = ptrtoint ptr %call37 to i64 store i64 %20, ptr %add.ptr.i.i, align 1 %21 = load i32, ptr %Size.i.i.i.i.i, align 8 %add.i = add i32 %21, 1 store i32 %add.i, ptr %Size.i.i.i.i.i, align 8 br label %if.end91 -if.else76: ; preds = %if.then73 - %22 = icmp eq ptr %allocArrayInst.1104112, null - %add.ptr79 = getelementptr inbounds nuw i8, ptr %allocArrayInst.1104112, i64 16 +if.else76: ; preds = %if.end71, %if.then73 + %22 = phi ptr [ %allocArrayInst.0127, %if.then73 ], [ %allocArrayInst.1104, %if.end71 ] + %add.ptr79 = phi ptr [ %call37, %if.then73 ], [ %value.089, %if.end71 ] + %22 = icmp eq ptr %allocArrayInst.1104112159, null + %add.ptr79 = getelementptr inbounds nuw i8, ptr %allocArrayInst.1104112159, i64 16 %spec.select1 = select i1 %22, ptr null, ptr %add.ptr79 br i1 %variableLength.0.lcssa143, label %cond.true, label %cond.false @@ -4653,12 +4649,12 @@ cond.false: ; preds = %if.else76 cond.end: ; preds = %cond.false, %cond.true %cond = phi ptr [ %spec.select.i.i, %cond.true ], [ %call87, %cond.false ] - %call89 = call noundef ptr @_ZN6hermes9IRBuilder26createStoreOwnPropertyInstEPNS_5ValueES2_S2_NS0_14PropEnumerableE(ptr noundef nonnull align 8 dereferenceable(40) %Builder51, ptr noundef nonnull %value.088100116, ptr noundef %spec.select1, ptr noundef %cond, i32 noundef 1) #16 + %call89 = call noundef ptr @_ZN6hermes9IRBuilder26createStoreOwnPropertyInstEPNS_5ValueES2_S2_NS0_14PropEnumerableE(ptr noundef nonnull align 8 dereferenceable(40) %Builder51, ptr noundef nonnull %value.088100116158, ptr noundef %spec.select1, ptr noundef %cond, i32 noundef 1) #16 br label %if.end91 if.end91: ; preds = %_ZN4llvh23SmallVectorTemplateBaseIPN6hermes5ValueELb1EE9push_backERKS3_.exit, %cond.end, %if.end71 - %consecutive.1102115 = phi i8 [ %consecutive.1102114, %_ZN4llvh23SmallVectorTemplateBaseIPN6hermes5ValueELb1EE9push_backERKS3_.exit ], [ %consecutive.1102114, %cond.end ], [ %consecutive.1102, %if.end71 ] - %allocArrayInst.1104113 = phi ptr [ %allocArrayInst.1104112, %_ZN4llvh23SmallVectorTemplateBaseIPN6hermes5ValueELb1EE9push_backERKS3_.exit ], [ %allocArrayInst.1104112, %cond.end ], [ %allocArrayInst.1104, %if.end71 ] + %consecutive.1102115 = phi i8 [ 1, %_ZN4llvh23SmallVectorTemplateBaseIPN6hermes5ValueELb1EE9push_backERKS3_.exit ], [ 0, %cond.end ], [ 0, %if.end71 ] + %allocArrayInst.1104113 = phi ptr [ %allocArrayInst.0127, %_ZN4llvh23SmallVectorTemplateBaseIPN6hermes5ValueELb1EE9push_backERKS3_.exit ], [ %allocArrayInst.1104112159, %cond.end ], [ %allocArrayInst.1104, %if.end71 ] br i1 %variableLength.0.lcssa143, label %if.then93, label %if.else110 if.then93: ; preds = %if.end91 @@ -4680,7 +4676,7 @@ if.else110: ; preds = %if.end91 for.inc113: ; preds = %if.then93, %if.else110, %if.then57 %allocArrayInst.1103 = phi ptr [ %allocArrayInst.1107, %if.then57 ], [ %allocArrayInst.1104113, %if.then93 ], [ %allocArrayInst.1104113, %if.else110 ] - %consecutive.1101 = phi i8 [ %consecutive.1106, %if.then57 ], [ %consecutive.1102115, %if.then93 ], [ %consecutive.1102115, %if.else110 ] + %consecutive.1101 = phi i8 [ 0, %if.then57 ], [ %consecutive.1102115, %if.then93 ], [ %consecutive.1102115, %if.else110 ] %count.1 = phi i32 [ %count.0128, %if.then57 ], [ %count.0128, %if.then93 ], [ %inc111, %if.else110 ] %Next.i.i.i50 = getelementptr inbounds nuw i8, ptr %__begin218.sroa.0.0130, i64 8 %__begin218.sroa.0.0 = load ptr, ptr %Next.i.i.i50, align 8 diff --git a/bench/hermes/optimized/JSLexer.cpp.ll b/bench/hermes/optimized/JSLexer.cpp.ll index e8768744f3d..cc75b7a8d47 100644 --- a/bench/hermes/optimized/JSLexer.cpp.ll +++ b/bench/hermes/optimized/JSLexer.cpp.ll @@ -3277,6 +3277,7 @@ lor.lhs.false79: ; preds = %while.end br i1 %tobool80, label %if.then81, label %end if.then81: ; preds = %lor.lhs.false79, %while.end + %legacyOctal.0335 = phi i8 [ 1, %lor.lhs.false79 ], [ %legacyOctal.0.ph, %while.end ] %cmp84 = icmp eq i8 %.lcssa379, 46 br i1 %cmp84, label %if.then85, label %if.end88 @@ -3295,7 +3296,7 @@ if.then93: ; preds = %if.end88 fraction: ; preds = %if.then85, %if.then34 %radix.1 = phi i32 [ 10, %if.then34 ], [ %radix.0.ph, %if.then85 ] - %legacyOctal.1 = phi i8 [ 0, %if.then34 ], [ %legacyOctal.0.ph, %if.then85 ] + %legacyOctal.1 = phi i8 [ 0, %if.then34 ], [ %legacyOctal.0335, %if.then85 ] %storemerge = phi ptr [ %add.ptr36, %if.then34 ], [ %incdec.ptr87, %if.then85 ] %seenSeparator.0 = phi i8 [ 0, %if.then34 ], [ %seenSeparator.2.lcssa, %if.then85 ] %start.1 = phi ptr [ %0, %if.then34 ], [ %start.0.ph, %if.then85 ] @@ -3339,7 +3340,7 @@ if.then125: ; preds = %while.end120 exponent: ; preds = %if.then125, %if.then93, %if.then43 %incdec.ptr127.sink = phi ptr [ %incdec.ptr127, %if.then125 ], [ %incdec.ptr95, %if.then93 ], [ %add.ptr45, %if.then43 ] %radix.2 = phi i32 [ %radix.1, %if.then125 ], [ %radix.0.ph, %if.then93 ], [ 10, %if.then43 ] - %legacyOctal.2 = phi i8 [ %legacyOctal.1, %if.then125 ], [ %legacyOctal.0.ph, %if.then93 ], [ 0, %if.then43 ] + %legacyOctal.2 = phi i8 [ %legacyOctal.1, %if.then125 ], [ %legacyOctal.0335, %if.then93 ], [ 0, %if.then43 ] %seenSeparator.1 = phi i8 [ %seenSeparator.4.lcssa, %if.then125 ], [ %seenSeparator.2.lcssa, %if.then93 ], [ 0, %if.then43 ] %start.2 = phi ptr [ %start.1, %if.then125 ], [ %start.0.ph, %if.then93 ], [ %0, %if.then43 ] store ptr %incdec.ptr127.sink, ptr %curCharPtr_, align 8 @@ -3382,7 +3383,7 @@ do.body: ; preds = %if.end139, %do.body end: ; preds = %lor.lhs.false.us, %do.body, %while.end120, %lor.lhs.false79, %if.end88 %radix.3 = phi i32 [ %radix.1, %while.end120 ], [ %radix.0.ph, %if.end88 ], [ %radix.0.ph, %lor.lhs.false79 ], [ %radix.2, %do.body ], [ 16, %lor.lhs.false.us ] - %legacyOctal.3 = phi i8 [ %legacyOctal.1, %while.end120 ], [ %legacyOctal.0.ph, %if.end88 ], [ %legacyOctal.0.ph, %lor.lhs.false79 ], [ %legacyOctal.2, %do.body ], [ 0, %lor.lhs.false.us ] + %legacyOctal.3 = phi i8 [ %legacyOctal.1, %while.end120 ], [ %legacyOctal.0335, %if.end88 ], [ 0, %lor.lhs.false79 ], [ %legacyOctal.2, %do.body ], [ 0, %lor.lhs.false.us ] %seenSeparator.3 = phi i8 [ %seenSeparator.4.lcssa, %while.end120 ], [ %seenSeparator.2.lcssa, %if.end88 ], [ %seenSeparator.2.lcssa, %lor.lhs.false79 ], [ %24, %do.body ], [ %seenSeparator.2.us, %lor.lhs.false.us ] %start.3 = phi ptr [ %start.1, %while.end120 ], [ %start.0.ph, %if.end88 ], [ %start.0.ph, %lor.lhs.false79 ], [ %start.2, %do.body ], [ %add.ptr, %lor.lhs.false.us ] %real.0 = phi i1 [ true, %while.end120 ], [ false, %if.end88 ], [ false, %lor.lhs.false79 ], [ true, %do.body ], [ false, %lor.lhs.false.us ] diff --git a/bench/hermes/optimized/MicrosoftDemangle.cpp.ll b/bench/hermes/optimized/MicrosoftDemangle.cpp.ll index c904fad01ae..df679168497 100644 --- a/bench/hermes/optimized/MicrosoftDemangle.cpp.ll +++ b/bench/hermes/optimized/MicrosoftDemangle.cpp.ll @@ -3615,7 +3615,7 @@ if.end.i.i465: ; preds = %_ZNK10StringView10s _ZN10StringView12consumeFrontEc.exit.i450: ; preds = %if.end.i.i465, %_ZNK10StringView10startsWithEc.exit.i.i448, %for.body.i %agg.tmp.sroa.0.0.copyload.i = phi ptr [ %129, %_ZNK10StringView10startsWithEc.exit.i.i448 ], [ %add.ptr.i.i.i466, %if.end.i.i465 ], [ %129, %for.body.i ] - %frombool.i451 = phi i8 [ 0, %_ZNK10StringView10startsWithEc.exit.i.i448 ], [ 1, %if.end.i.i465 ], [ 0, %for.body.i ] + %frombool.i451 = phi i1 [ true, %_ZNK10StringView10startsWithEc.exit.i.i448 ], [ false, %if.end.i.i465 ], [ true, %for.body.i ] %cmp.i.i15.i = icmp eq ptr %agg.tmp.sroa.0.0.copyload.i, %130 br i1 %cmp.i.i15.i, label %_ZN12_GLOBAL__N_19Demangler14demangleNumberER10StringView.exit.thread, label %_ZL15startsWithDigit10StringView.exit.i452 @@ -3672,13 +3672,10 @@ _ZN12_GLOBAL__N_19Demangler14demangleNumberER10StringView.exit: ; preds = %_ZN12 %retval.sroa.0.0.i460 = phi i64 [ %add.i463, %if.then.i462 ], [ %Ret6.034.i, %_ZN12_GLOBAL__N_19Demangler14demangleNumberER10StringView.exit.loopexit ] %storemerge656 = getelementptr i8, ptr %add.ptr.i16.i.pn, i64 1 store ptr %storemerge656, ptr %MangledName, align 8 - %tobool13.i = trunc nuw i8 %frombool.i451 to i1 - %135 = xor i1 %tobool13.i, true - tail call void @llvm.assume(i1 %135) + tail call void @llvm.assume(i1 %frombool.i451) br label %if.end16.i if.end16.i: ; preds = %_ZN12_GLOBAL__N_19Demangler14demangleNumberER10StringView.exit, %_ZN12_GLOBAL__N_19Demangler14demangleNumberER10StringView.exit.thread - %frombool.i445645 = phi i8 [ 0, %_ZN12_GLOBAL__N_19Demangler14demangleNumberER10StringView.exit.thread ], [ %frombool.i451, %_ZN12_GLOBAL__N_19Demangler14demangleNumberER10StringView.exit ] %retval.sroa.0.0.i460644 = phi i64 [ 0, %_ZN12_GLOBAL__N_19Demangler14demangleNumberER10StringView.exit.thread ], [ %retval.sroa.0.0.i460, %_ZN12_GLOBAL__N_19Demangler14demangleNumberER10StringView.exit ] %136 = load ptr, ptr %Arena.i91, align 8 %137 = load ptr, ptr %136, align 8 @@ -3724,7 +3721,7 @@ _ZN4llvh11ms_demangle14ArenaAllocator5allocINS0_18IntegerLiteralNodeEJRmRbEEEPT_ %Value2.i8.i = getelementptr inbounds nuw i8, ptr %call2.i.sink12.i441, i64 16 store i64 %retval.sroa.0.0.i460644, ptr %Value2.i8.i, align 8 %IsNegative3.i9.i = getelementptr inbounds nuw i8, ptr %call2.i.sink12.i441, i64 24 - store i8 %frombool.i445645, ptr %IsNegative3.i9.i, align 8 + store i8 0, ptr %IsNegative3.i9.i, align 8 store ptr %call2.i.sink12.i441, ptr %Tail.0.i689, align 8 %add.i = add nuw i64 %I.0.i690, 1 %cmp19.i = icmp ult i64 %add.i, %retval.sroa.0.0.i532 diff --git a/bench/hermes/optimized/synth.cpp.ll b/bench/hermes/optimized/synth.cpp.ll index fe22f7e70ae..3c35054a520 100644 --- a/bench/hermes/optimized/synth.cpp.ll +++ b/bench/hermes/optimized/synth.cpp.ll @@ -3873,7 +3873,7 @@ invoke.cont38: ; preds = %if.then.i.i, %invok %_ZN2clL14GCSanitizeRateE.val22243244 = load double, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL14GCSanitizeRateE, i64 152), align 8 %cmp.i66 = icmp sgt i32 %_ZN2clL14GCSanitizeRateE.val, 0 %26 = load i64, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL20GCSanitizeRandomSeedE, i64 152), align 8 - %tobool.not.not = icmp ne i64 %26, 0 + %tobool.not.not = icmp eq i64 %26, 0 %ShouldRecordStats_.i = getelementptr inbounds nuw i8, ptr %options, i64 48 store i8 %shouldPrintGCStats.0, ptr %ShouldRecordStats_.i, align 8 %ShouldRecordStatsExplicit_.i = getelementptr inbounds nuw i8, ptr %options, i64 206 @@ -3948,21 +3948,27 @@ invoke.cont154: ; preds = %if.end149 br label %if.end159 if.end159: ; preds = %invoke.cont154, %if.end149 - %brmerge = select i1 %cmp.i66, i1 true, i1 %tobool.not.not - br i1 %brmerge, label %if.end172, label %if.end187 + br i1 %cmp.i66, label %if.end172, label %lor.lhs.false + +lor.lhs.false: ; preds = %if.end159 + br i1 %tobool.not.not, label %if.end187, label %invoke.cont183 if.end172: ; preds = %if.end159 - %_ZN2clL14GCSanitizeRateE.val22243244.mux = select i1 %cmp.i66, double %_ZN2clL14GCSanitizeRateE.val22243244, double 0.000000e+00 - %spec.select240 = select i1 %tobool.not.not, i64 %26, i64 -1 + %_ZN2clL14GCSanitizeRateE.val22243244.mux = select i1 %tobool.not.not, i64 -1, i64 %26 + br label %invoke.cont183 + +invoke.cont183: ; preds = %lor.lhs.false, %if.end172 + %sanitizeConfigBuilder.sroa.0.0241 = phi double [ %_ZN2clL14GCSanitizeRateE.val22247248, %if.end172 ], [ 0.000000e+00, %lor.lhs.false ] + %sanitizeConfigBuilder.sroa.4.0 = phi i64 [ %spec.select244, %if.end172 ], [ %26, %lor.lhs.false ] %SanitizeConfig_.i = getelementptr inbounds nuw i8, ptr %options, i64 32 - store double %_ZN2clL14GCSanitizeRateE.val22243244.mux, ptr %SanitizeConfig_.i, align 8 + store double %sanitizeConfigBuilder.sroa.0.0241, ptr %SanitizeConfig_.i, align 8 %SanitizeConfig.sroa.2.0.SanitizeConfig_.sroa_idx.i = getelementptr inbounds nuw i8, ptr %options, i64 40 - store i64 %spec.select240, ptr %SanitizeConfig.sroa.2.0.SanitizeConfig_.sroa_idx.i, align 8 + store i64 %sanitizeConfigBuilder.sroa.4.0, ptr %SanitizeConfig.sroa.2.0.SanitizeConfig_.sroa_idx.i, align 8 %SanitizeConfigExplicit_.i = getelementptr inbounds nuw i8, ptr %options, i64 205 store i8 1, ptr %SanitizeConfigExplicit_.i, align 1 br label %if.end187 -if.end187: ; preds = %if.end159, %if.end172 +if.end187: ; preds = %invoke.cont183, %lor.lhs.false %27 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL13BytecodeFilesB5cxx11E, i64 152), align 8 %28 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @_ZN2clL13BytecodeFilesB5cxx11E, i64 160), align 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %bytecodeFiles, i8 0, i64 24, i1 false) diff --git a/bench/hyperscan/optimized/ng_som.cpp.ll b/bench/hyperscan/optimized/ng_som.cpp.ll index 2ea1138686f..e33f1d01b18 100644 --- a/bench/hyperscan/optimized/ng_som.cpp.ll +++ b/bench/hyperscan/optimized/ng_som.cpp.ll @@ -10896,17 +10896,14 @@ invoke.cont63.i119: ; preds = %if.then.i.i.i.i.i.i invoke.cont71.i: ; preds = %invoke.cont63.i119, %invoke.cont71.i %ai.sroa.0.0353.i = phi ptr [ %ai.sroa.0.0.i, %invoke.cont71.i ], [ %ai.sroa.0.0350.i, %invoke.cont63.i119 ] - %lhs_all_vac.0352.i = phi i8 [ %spec.select.i, %invoke.cont71.i ], [ 1, %invoke.cont63.i119 ] %target.i.i.i135.i = getelementptr inbounds nuw i8, ptr %ai.sroa.0.0353.i, i64 40 %204 = load ptr, ptr %target.i.i.i135.i, align 8 %index.i.i120 = getelementptr inbounds nuw i8, ptr %204, i64 80 %205 = load i64, ptr %index.i.i120, align 8 %cmp.i136.i = icmp ult i64 %205, 4 - %spec.select.i = select i1 %cmp.i136.i, i8 %lhs_all_vac.0352.i, i8 0 %ai.sroa.0.0.i = load ptr, ptr %ai.sroa.0.0353.i, align 8 %cmp.i.i.i.i.i.i.i.i = icmp ne ptr %ai.sroa.0.0.i, %m_header.i.i.i.i.i.i - %tobool69.i = trunc nuw i8 %spec.select.i to i1 - %206 = select i1 %cmp.i.i.i.i.i.i.i.i, i1 %tobool69.i, i1 false + %tobool69.i = select i1 %cmp.i.i.i.i.i.i.i.i, i1 %cmp.i136.i, i1 false br i1 %206, label %invoke.cont71.i, label %invoke.cont84.i121 lpad47.loopexit.i: ; preds = %for.body.i.i @@ -10932,33 +10929,29 @@ lpad54.i: ; preds = %if.then.i.i.i.i.i.i br label %ehcleanup366.i invoke.cont84.i121: ; preds = %invoke.cont71.i, %invoke.cont63.i119 - %lhs_all_vac.0.lcssa.i = phi i8 [ 1, %invoke.cont63.i119 ], [ %spec.select.i, %invoke.cont71.i ] + %lhs_all_vac.0.lcssa.i = phi i1 [ true, %invoke.cont63.i119 ], [ %cmp.i136.i, %invoke.cont71.i ] %start82.i = getelementptr inbounds nuw i8, ptr %203, i64 72 %agg.tmp80.sroa.0.0.copyload.i = load ptr, ptr %start82.i, align 8 %m_header.i.i.i.i.i137.i = getelementptr inbounds nuw i8, ptr %agg.tmp80.sroa.0.0.copyload.i, i64 136 %ai.sroa.0.1354.i = load ptr, ptr %m_header.i.i.i.i.i137.i, align 8 %cmp.i.i.i.i.i.i.i141355.i = icmp ne ptr %ai.sroa.0.1354.i, %m_header.i.i.i.i.i137.i - %tobool92356.i = trunc nuw i8 %lhs_all_vac.0.lcssa.i to i1 - %209 = select i1 %cmp.i.i.i.i.i.i.i141355.i, i1 %tobool92356.i, i1 false + %tobool92356.i = select i1 %cmp.i.i.i.i.i.i.i141355.i, i1 %lhs_all_vac.0.lcssa.i, i1 false br i1 %209, label %invoke.cont96.i, label %for.end105.i invoke.cont96.i: ; preds = %invoke.cont84.i121, %invoke.cont96.i %ai.sroa.0.1358.i = phi ptr [ %ai.sroa.0.1.i, %invoke.cont96.i ], [ %ai.sroa.0.1354.i, %invoke.cont84.i121 ] - %lhs_all_vac.2357.i = phi i8 [ %spec.select60.i, %invoke.cont96.i ], [ %lhs_all_vac.0.lcssa.i, %invoke.cont84.i121 ] %target.i.i.i142.i = getelementptr inbounds nuw i8, ptr %ai.sroa.0.1358.i, i64 40 %210 = load ptr, ptr %target.i.i.i142.i, align 8 %index.i146.i = getelementptr inbounds nuw i8, ptr %210, i64 80 %211 = load i64, ptr %index.i146.i, align 8 %cmp.i147.i = icmp ult i64 %211, 4 - %spec.select60.i = select i1 %cmp.i147.i, i8 %lhs_all_vac.2357.i, i8 0 %ai.sroa.0.1.i = load ptr, ptr %ai.sroa.0.1358.i, align 8 %cmp.i.i.i.i.i.i.i141.i = icmp ne ptr %ai.sroa.0.1.i, %m_header.i.i.i.i.i137.i - %tobool92.i = trunc nuw i8 %spec.select60.i to i1 - %212 = select i1 %cmp.i.i.i.i.i.i.i141.i, i1 %tobool92.i, i1 false + %tobool92.i = select i1 %cmp.i.i.i.i.i.i.i141.i, i1 %cmp.i147.i, i1 false br i1 %212, label %invoke.cont96.i, label %for.end105.i for.end105.i: ; preds = %invoke.cont96.i, %invoke.cont84.i121 - %tobool92.lcssa.i = phi i1 [ %tobool92356.i, %invoke.cont84.i121 ], [ %tobool92.i, %invoke.cont96.i ] + %tobool92.lcssa.i = phi i1 [ %lhs_all_vac.0.lcssa.i, %invoke.cont84.i121 ], [ %cmp.i147.i, %invoke.cont96.i ] br i1 %tobool92.lcssa.i, label %if.then107.i, label %if.else.i if.then107.i: ; preds = %for.end105.i diff --git a/bench/icu/optimized/numparse_decimal.ll b/bench/icu/optimized/numparse_decimal.ll index e8e3a73fd4b..a664419e765 100644 --- a/bench/icu/optimized/numparse_decimal.ll +++ b/bench/icu/optimized/numparse_decimal.ll @@ -758,12 +758,11 @@ invoke.cont118: ; preds = %invoke.cont109, %in %22 = load i32, ptr %fLength.i132, align 4 %cond.i133 = select i1 %cmp.i.i130, i32 %22, i32 %shr.i.i131 %cmp120 = icmp eq i32 %call110, %cond.i133 - %spec.select108 = zext i1 %cmp120 to i8 br label %if.end123 if.end123: ; preds = %invoke.cont118, %if.end103 %23 = phi i16 [ %18, %if.end103 ], [ %20, %invoke.cont118 ] - %isGrouping.0 = phi i8 [ 0, %if.end103 ], [ %spec.select108, %invoke.cont118 ] + %isGrouping.0 = phi i1 [ false, %if.end103 ], [ %cmp120, %invoke.cont118 ] %maybeMore.6 = phi i8 [ %maybeMore.5, %if.end103 ], [ %frombool117, %invoke.cont118 ] %24 = load i8, ptr %groupingDisabled, align 1 %tobool124 = trunc i8 %24 to i1 @@ -815,8 +814,7 @@ if.then153: ; preds = %invoke.cont150 if.end158: ; preds = %invoke.cont150, %land.lhs.true129, %if.end123 %maybeMore.7 = phi i8 [ %maybeMore.6, %if.end123 ], [ %frombool148, %invoke.cont150 ], [ %maybeMore.6, %land.lhs.true129 ] - %tobool159 = trunc nuw i8 %isGrouping.0 to i1 - br i1 %tobool159, label %if.end172, label %land.lhs.true160 + br i1 %isGrouping.0, label %if.end172, label %land.lhs.true160 land.lhs.true160: ; preds = %if.end158 %31 = load i16, ptr %fUnion2.i113, align 8 @@ -844,7 +842,7 @@ invoke.cont169: ; preds = %if.then168 if.end172: ; preds = %if.then153, %invoke.cont165, %invoke.cont169, %land.lhs.true160, %if.end158 %maybeMore.7225 = phi i8 [ %maybeMore.7, %if.end158 ], [ %maybeMore.7, %invoke.cont169 ], [ %maybeMore.7, %invoke.cont165 ], [ %maybeMore.7, %land.lhs.true160 ], [ %frombool148, %if.then153 ] - %isGrouping.1224 = phi i8 [ %isGrouping.0, %if.end158 ], [ %isGrouping.0, %invoke.cont169 ], [ %isGrouping.0, %invoke.cont165 ], [ %isGrouping.0, %land.lhs.true160 ], [ 1, %if.then153 ] + %isGrouping.1224 = phi i8 [ 1, %if.end158 ], [ 0, %invoke.cont169 ], [ 0, %invoke.cont165 ], [ 0, %land.lhs.true160 ], [ 1, %if.then153 ] %isDecimal.1 = phi i1 [ %isDecimal.0, %if.end158 ], [ true, %invoke.cont169 ], [ %isDecimal.0, %invoke.cont165 ], [ %isDecimal.0, %land.lhs.true160 ], [ %isDecimal.0, %if.then153 ] %33 = load i8, ptr %groupingDisabled, align 1 %tobool174 = trunc i8 %33 to i1 diff --git a/bench/icu/optimized/ucptrie.ll b/bench/icu/optimized/ucptrie.ll index a633b27320c..db4d391ea34 100644 --- a/bench/icu/optimized/ucptrie.ll +++ b/bench/icu/optimized/ucptrie.ll @@ -946,7 +946,6 @@ if.then61: ; preds = %if.else58 br label %if.end63 if.end63: ; preds = %if.else58, %if.then61, %if.then53 - %haveValue.2 = phi i8 [ %haveValue.0, %if.then53 ], [ 1, %if.then61 ], [ 1, %if.else58 ] %trieValue.2 = phi i32 [ %trieValue.0, %if.then53 ], [ %13, %if.then61 ], [ %13, %if.else58 ] %14 = load i32, ptr %dataNullOffset, align 8 %15 = and i32 %c.0, -512 @@ -1050,7 +1049,6 @@ if.then115: ; preds = %if.else112 br label %if.end117 if.end117: ; preds = %if.else112, %if.then115, %if.then107 - %haveValue.4 = phi i8 [ %haveValue.3, %if.then107 ], [ 1, %if.then115 ], [ 1, %if.else112 ] %trieValue.4 = phi i32 [ %trieValue.3, %if.then107 ], [ %23, %if.then115 ], [ %23, %if.else112 ] %add118 = add nsw i32 %c.2, %dataBlockLength.0 %and119 = and i32 %add118, %not @@ -1136,7 +1134,6 @@ if.then145: ; preds = %_ZN12_GLOBAL__N_116 br label %if.end147 if.end147: ; preds = %_ZN12_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES1_.exit145, %if.then145, %if.then129 - %haveValue.5 = phi i8 [ %haveValue.3, %if.then129 ], [ 1, %if.then145 ], [ 1, %_ZN12_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES1_.exit145 ] %value18.5 = phi i32 [ %value18.3, %if.then129 ], [ %value.addr.0.i144, %if.then145 ], [ %value.addr.0.i144, %_ZN12_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES1_.exit145 ] %trieValue.5 = phi i32 [ %trieValue.3, %if.then129 ], [ %retval.0.i130, %if.then145 ], [ %retval.0.i130, %_ZN12_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES1_.exit145 ] %inc148198 = add nsw i32 %c.2, 1 @@ -1154,10 +1151,9 @@ while.body.lr.ph: ; preds = %if.end147 br i1 %cmp13.not, label %while.body.lr.ph.split.us, label %while.body.preheader while.body.preheader: ; preds = %if.end147.thread, %while.body.lr.ph - %haveValue.5343354 = phi i8 [ %haveValue.5, %while.body.lr.ph ], [ %haveValue.3, %if.end147.thread ] - %value18.5344353 = phi i32 [ %value18.5, %while.body.lr.ph ], [ %value18.3, %if.end147.thread ] - %trieValue.5345352 = phi i32 [ %trieValue.5, %while.body.lr.ph ], [ %retval.0.i130, %if.end147.thread ] - %inc148198346351 = phi i32 [ %inc148198, %while.body.lr.ph ], [ %inc148198340, %if.end147.thread ] + %haveValue.5343354 = phi i32 [ %value18.5, %while.body.lr.ph ], [ %value18.3, %if.end147.thread ] + %value18.5344353 = phi i32 [ %trieValue.5, %while.body.lr.ph ], [ %retval.0.i130, %if.end147.thread ] + %trieValue.5345352 = phi i32 [ %inc148198, %while.body.lr.ph ], [ %inc148198340, %if.end147.thread ] %29 = zext nneg i32 %add123 to i64 br label %while.body @@ -1255,9 +1251,9 @@ if.end166.us.us255: ; preds = %while.body.lr.ph.sp while.body: ; preds = %while.body.preheader, %if.end166 %indvars.iv = phi i64 [ %29, %while.body.preheader ], [ %indvars.iv.next, %if.end166 ] - %inc148204 = phi i32 [ %inc148198346351, %while.body.preheader ], [ %inc148, %if.end166 ] + %inc148204 = phi i32 [ %inc148198344348, %while.body.preheader ], [ %inc148, %if.end166 ] %c.3202 = phi i32 [ %c.2, %while.body.preheader ], [ %inc148204, %if.end166 ] - %trieValue.6201 = phi i32 [ %trieValue.5345352, %while.body.preheader ], [ %trieValue.7, %if.end166 ] + %trieValue.6201 = phi i32 [ %trieValue.5343349, %while.body.preheader ], [ %trieValue.7, %if.end166 ] %agg.tmp151.sroa.0.0.copyload = load ptr, ptr %data125, align 8 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 switch i8 %0, label %_ZN12_GLOBAL__N_18getValueE11UCPTrieData17UCPTrieValueWidthi.exit158 [ @@ -1299,7 +1295,7 @@ if.then2.i162: ; preds = %if.then157 _ZN12_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES1_.exit165: ; preds = %if.then157, %if.then2.i162 %value.addr.0.i164 = phi i32 [ %call.i163, %if.then2.i162 ], [ %nullValue.0, %if.then157 ] - %cmp162.not = icmp eq i32 %value.addr.0.i164, %value18.5344353 + %cmp162.not = icmp eq i32 %value.addr.0.i164, %value18.5342350 br i1 %cmp162.not, label %if.end166, label %return if.end166: ; preds = %_ZN12_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES1_.exit165, %_ZN12_GLOBAL__N_18getValueE11UCPTrieData17UCPTrieValueWidthi.exit158 @@ -1310,8 +1306,8 @@ if.end166: ; preds = %_ZN12_GLOBAL__N_116 br i1 %cmp150.not, label %do.cond, label %while.body, !llvm.loop !4 do.cond: ; preds = %if.end166, %if.end166.us.us240, %if.end166.us.us221, %if.end166.us.us, %if.end166.us.us255, %if.end147.thread, %if.end147, %if.then99, %if.end117 - %haveValue.6 = phi i8 [ %haveValue.3, %if.then99 ], [ %haveValue.4, %if.end117 ], [ %haveValue.5, %if.end147 ], [ %haveValue.3, %if.end147.thread ], [ %haveValue.5, %if.end166.us.us255 ], [ %haveValue.5, %if.end166.us.us ], [ %haveValue.5, %if.end166.us.us221 ], [ %haveValue.5, %if.end166.us.us240 ], [ %haveValue.5343354, %if.end166 ] - %value18.6 = phi i32 [ %value18.3, %if.then99 ], [ %nullValue.0, %if.end117 ], [ %value18.5, %if.end147 ], [ %value18.3, %if.end147.thread ], [ %value18.5, %if.end166.us.us255 ], [ %value18.5, %if.end166.us.us ], [ %value18.5, %if.end166.us.us221 ], [ %value18.5, %if.end166.us.us240 ], [ %value18.5344353, %if.end166 ] + %haveValue.6 = phi i8 [ %haveValue.3, %if.then99 ], [ 1, %if.end117 ], [ 1, %if.end147 ], [ 1, %if.end147.thread ], [ 1, %if.end166.us.us255 ], [ 1, %if.end166.us.us ], [ 1, %if.end166.us.us221 ], [ 1, %if.end166.us.us240 ], [ 1, %if.end166 ] + %value18.6 = phi i32 [ %value18.3, %if.then99 ], [ %nullValue.0, %if.end117 ], [ %value18.5, %if.end147 ], [ %value18.3, %if.end147.thread ], [ %value18.5, %if.end166.us.us255 ], [ %value18.5, %if.end166.us.us ], [ %value18.5, %if.end166.us.us221 ], [ %value18.5, %if.end166.us.us240 ], [ %value18.5342350, %if.end166 ] %trieValue.8 = phi i32 [ %trieValue.3, %if.then99 ], [ %trieValue.4, %if.end117 ], [ %trieValue.5, %if.end147 ], [ %retval.0.i130, %if.end147.thread ], [ -1, %if.end166.us.us255 ], [ %trieValue.5, %if.end166.us.us ], [ %trieValue.5, %if.end166.us.us221 ], [ %trieValue.5, %if.end166.us.us240 ], [ %trieValue.7, %if.end166 ] %c.4 = phi i32 [ %add100, %if.then99 ], [ %and119, %if.end117 ], [ %inc148198, %if.end147 ], [ %inc148198340, %if.end147.thread ], [ %inc148.us.us256, %if.end166.us.us255 ], [ %inc148.us.us, %if.end166.us.us ], [ %inc148.us.us222, %if.end166.us.us221 ], [ %inc148.us.us241, %if.end166.us.us240 ], [ %inc148, %if.end166 ] %prevBlock.3 = phi i32 [ %prevBlock.2, %if.then99 ], [ %block.0, %if.end117 ], [ %block.0, %if.end147 ], [ %block.0, %if.end147.thread ], [ %block.0, %if.end166.us.us255 ], [ %block.0, %if.end166.us.us ], [ %block.0, %if.end166.us.us221 ], [ %block.0, %if.end166.us.us240 ], [ %block.0, %if.end166 ] @@ -1320,7 +1316,7 @@ do.cond: ; preds = %if.end166, %if.end1 br i1 %cmp170, label %do.body70, label %do.cond171, !llvm.loop !6 do.cond171: ; preds = %do.cond, %if.end63, %if.then47 - %haveValue.1 = phi i8 [ %haveValue.0, %if.then47 ], [ %haveValue.2, %if.end63 ], [ %haveValue.6, %do.cond ] + %haveValue.1 = phi i8 [ %haveValue.0, %if.then47 ], [ 1, %if.end63 ], [ %haveValue.6, %do.cond ] %value18.1 = phi i32 [ %value18.0, %if.then47 ], [ %nullValue.0, %if.end63 ], [ %value18.6, %do.cond ] %trieValue.1 = phi i32 [ %trieValue.0, %if.then47 ], [ %trieValue.2, %if.end63 ], [ %trieValue.8, %do.cond ] %c.1 = phi i32 [ %add48, %if.then47 ], [ %and65, %if.end63 ], [ %c.4, %do.cond ] diff --git a/bench/icu/optimized/ucurr.ll b/bench/icu/optimized/ucurr.ll index bd1cb8cbe15..5dc94819da7 100644 --- a/bench/icu/optimized/ucurr.ll +++ b/bench/icu/optimized/ucurr.ll @@ -4232,7 +4232,6 @@ for.cond: ; preds = %if.end65 for.body: ; preds = %for.cond.preheader, %for.cond %currIndex.058 = phi i32 [ %currIndex.2, %for.cond ], [ 0, %for.cond.preheader ] - %matchFound.157 = phi i8 [ %matchFound.3, %for.cond ], [ 0, %for.cond.preheader ] %i.056 = phi i32 [ %inc69, %for.cond ], [ 0, %for.cond.preheader ] %call29 = call ptr @ures_getByIndex_75(ptr noundef %call17, i32 noundef %i.056, ptr noundef null, ptr noundef nonnull %localStatus) %call30 = call ptr @ures_getStringByKey_75(ptr noundef %call29, ptr noundef nonnull @.str.4, ptr noundef nonnull %resLen, ptr noundef nonnull %localStatus) @@ -4273,11 +4272,10 @@ land.lhs.true51: ; preds = %if.then39 if.then53: ; preds = %land.lhs.true51 %inc = add nsw i32 %currIndex.058, 1 %cmp54 = icmp eq i32 %inc, %index - %spec.select = select i1 %cmp54, i8 1, i8 %matchFound.157 br label %if.end57 if.end57: ; preds = %if.then53, %land.lhs.true51, %if.then39 - %matchFound.2 = phi i8 [ %matchFound.157, %land.lhs.true51 ], [ %matchFound.157, %if.then39 ], [ %spec.select, %if.then53 ] + %matchFound.2 = phi i1 [ false, %land.lhs.true51 ], [ false, %if.then39 ], [ %cmp54, %if.then53 ] %currIndex.1 = phi i32 [ %currIndex.058, %land.lhs.true51 ], [ %currIndex.058, %if.then39 ], [ %inc, %if.then53 ] call void @ures_close_75(ptr noundef %call40) br label %if.end65 @@ -4289,24 +4287,21 @@ if.else: ; preds = %for.body if.then59: ; preds = %if.else %inc60 = add nsw i32 %currIndex.058, 1 %cmp61 = icmp eq i32 %inc60, %index - %spec.select47 = select i1 %cmp61, i8 1, i8 %matchFound.157 br label %if.end65 if.end65: ; preds = %if.then59, %if.else, %if.end57 - %matchFound.3 = phi i8 [ %matchFound.2, %if.end57 ], [ %matchFound.157, %if.else ], [ %spec.select47, %if.then59 ] + %matchFound.3 = phi i1 [ %matchFound.2, %if.end57 ], [ false, %if.else ], [ %cmp61, %if.then59 ] %currIndex.2 = phi i32 [ %currIndex.1, %if.end57 ], [ %currIndex.058, %if.else ], [ %inc60, %if.then59 ] call void @ures_close_75(ptr noundef %call29) call void @ures_close_75(ptr noundef %call31) - %tobool66 = trunc nuw i8 %matchFound.3 to i1 - br i1 %tobool66, label %if.end70.loopexit, label %for.cond + br i1 %matchFound.3, label %if.end70.loopexit, label %for.cond if.end70.loopexit: ; preds = %for.cond, %if.end65 - %7 = trunc nuw i8 %matchFound.3 to i1 - %8 = xor i1 %7, true + %7 = xor i1 %matchFound.3, true br label %if.end70 if.end70: ; preds = %if.end70.loopexit, %for.cond.preheader, %if.end13 - %matchFound.0 = phi i1 [ true, %if.end13 ], [ true, %for.cond.preheader ], [ %8, %if.end70.loopexit ] + %matchFound.0 = phi i1 [ true, %if.end13 ], [ true, %for.cond.preheader ], [ %7, %if.end70.loopexit ] %s.0 = phi ptr [ null, %if.end13 ], [ null, %for.cond.preheader ], [ %call30, %if.end70.loopexit ] call void @ures_close_75(ptr noundef %call17) %9 = load i32, ptr %ec, align 4 @@ -4328,7 +4323,7 @@ if.end75: ; preds = %if.end70, %if.then7 if.then78: ; preds = %if.end75 %12 = load i32, ptr %resLen, align 4 %cmp79 = icmp sle i32 %buffCapacity, %12 - %brmerge = select i1 %cmp79, i1 true, i1 %matchFound.0 + %brmerge = or i1 %matchFound.0, %cmp79 br i1 %brmerge, label %return, label %if.then82 if.then82: ; preds = %if.then78 diff --git a/bench/icu/optimized/umutablecptrie.ll b/bench/icu/optimized/umutablecptrie.ll index 57f606eb113..87c473aec8e 100644 --- a/bench/icu/optimized/umutablecptrie.ll +++ b/bench/icu/optimized/umutablecptrie.ll @@ -890,7 +890,7 @@ do.body.i: ; preds = %if.end82.i, %if.end %c.0.i = phi i32 [ %c.1.i, %if.end82.i ], [ %start, %if.end14.i ] %trieValue.0.i = phi i32 [ %trieValue.2.i, %if.end82.i ], [ undef, %if.end14.i ] %value15.0.i = phi i32 [ %value15.2.i, %if.end82.i ], [ undef, %if.end14.i ] - %haveValue.0.i = phi i8 [ %haveValue.2.i, %if.end82.i ], [ 0, %if.end14.i ] + %haveValue.0.i = phi i1 [ true, %if.end82.i ], [ false, %if.end14.i ] %arrayidx.i = getelementptr inbounds nuw [69632 x i8], ptr %flags.i, i64 0, i64 %indvars.iv148.i %5 = load i8, ptr %arrayidx.i, align 1 %cmp16.i = icmp eq i8 %5, 0 @@ -900,8 +900,7 @@ do.body.i: ; preds = %if.end82.i, %if.end br i1 %cmp16.i, label %if.then17.i, label %if.else36.i if.then17.i: ; preds = %do.body.i - %tobool.i = trunc nuw i8 %haveValue.0.i to i1 - br i1 %tobool.i, label %if.then20.i, label %if.else.i + br i1 %haveValue.0.i, label %if.then20.i, label %if.else.i if.then20.i: ; preds = %if.then17.i %cmp21.not.i = icmp eq i32 %7, %trieValue.0.i @@ -950,7 +949,6 @@ if.then33.i: ; preds = %_ZN6icu_7512_GLOBAL if.end35.i: ; preds = %if.then33.i, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit73.i, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit.i, %if.then20.i %trieValue.1.i = phi i32 [ %trieValue.0.i, %if.then20.i ], [ %7, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit.i ], [ %7, %if.then33.i ], [ %7, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit73.i ] %value15.1.i = phi i32 [ %value15.0.i, %if.then20.i ], [ %value15.0.i, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit.i ], [ %value.addr.0.i72.i, %if.then33.i ], [ %value.addr.0.i72.i, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit73.i ] - %haveValue.1.i = phi i8 [ %haveValue.0.i, %if.then20.i ], [ %haveValue.0.i, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit.i ], [ 1, %if.then33.i ], [ 1, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit73.i ] %10 = and i32 %c.0.i, -16 %and.i = add nsw i32 %10, 16 br label %if.end82.i @@ -962,8 +960,7 @@ if.else36.i: ; preds = %do.body.i %idxprom43.i = sext i32 %add41.i to i64 %arrayidx44.i = getelementptr inbounds i32, ptr %11, i64 %idxprom43.i %12 = load i32, ptr %arrayidx44.i, align 4 - %tobool45.i = trunc nuw i8 %haveValue.0.i to i1 - br i1 %tobool45.i, label %if.then46.i, label %if.else58.i + br i1 %haveValue.0.i, label %if.then46.i, label %if.else58.i if.then46.i: ; preds = %if.else36.i %cmp47.not.i = icmp eq i32 %12, %trieValue.0.i @@ -1012,7 +1009,6 @@ if.then62.i: ; preds = %_ZN6icu_7512_GLOBAL if.end64.i: ; preds = %if.then62.i, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit87.i, %if.then46.i %trieValue.3.i = phi i32 [ %trieValue.0.i, %if.then46.i ], [ %12, %if.then62.i ], [ %12, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit87.i ] %value15.3.i = phi i32 [ %value15.0.i, %if.then46.i ], [ %value.addr.0.i86.i, %if.then62.i ], [ %value.addr.0.i86.i, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit87.i ] - %haveValue.3.i = phi i8 [ %haveValue.0.i, %if.then46.i ], [ 1, %if.then62.i ], [ 1, %_ZN6icu_7512_GLOBAL__N_116maybeFilterValueEjjjPFjPKvjES2_.exit87.i ] %inc112.i = add nsw i32 %c.0.i, 1 %and65113.i = and i32 %inc112.i, 15 %cmp66.not114.i = icmp eq i32 %and65113.i, 0 @@ -1030,8 +1026,7 @@ while.body.lr.ph.i: ; preds = %if.end64.i while.body.preheader.i: ; preds = %while.body.lr.ph.i, %if.end64.thread.i %trieValue.3156167.i = phi i32 [ %trieValue.3.i, %while.body.lr.ph.i ], [ %12, %if.end64.thread.i ] %value15.3157166.i = phi i32 [ %value15.3.i, %while.body.lr.ph.i ], [ %value15.0.i, %if.end64.thread.i ] - %haveValue.3158165.i = phi i8 [ %haveValue.3.i, %while.body.lr.ph.i ], [ %haveValue.0.i, %if.end64.thread.i ] - %inc112159164.i = phi i32 [ %inc112.i, %while.body.lr.ph.i ], [ %inc112153.i, %if.end64.thread.i ] + %haveValue.3158165.i = phi i32 [ %inc112.i, %while.body.lr.ph.i ], [ %inc112152.i, %if.end64.thread.i ] br label %while.body.i while.body.lr.ph.split.us.i: ; preds = %while.body.lr.ph.i @@ -1060,7 +1055,7 @@ if.end81.us.i: ; preds = %while.body.lr.ph.sp while.body.i: ; preds = %if.end81.i, %while.body.preheader.i %indvars.iv.i = phi i64 [ %idxprom43.i, %while.body.preheader.i ], [ %indvars.iv.next.i, %if.end81.i ] - %inc118.i = phi i32 [ %inc112159164.i, %while.body.preheader.i ], [ %inc.i, %if.end81.i ] + %inc118.i = phi i32 [ %inc112157161.i, %while.body.preheader.i ], [ %inc.i, %if.end81.i ] %trieValue.4116.i = phi i32 [ %trieValue.3156167.i, %while.body.preheader.i ], [ %19, %if.end81.i ] %c.2115.i = phi i32 [ %c.0.i, %while.body.preheader.i ], [ %inc118.i, %if.end81.i ] %18 = load ptr, ptr %data.i, align 8 @@ -1094,7 +1089,6 @@ if.end82.i: ; preds = %if.end81.i, %if.end %c.1.i = phi i32 [ %and.i, %if.end35.i ], [ %inc112.i, %if.end64.i ], [ %inc112153.i, %if.end64.thread.i ], [ %inc.us.i, %if.end81.us.i ], [ %inc.i, %if.end81.i ] %trieValue.2.i = phi i32 [ %trieValue.1.i, %if.end35.i ], [ %trieValue.3.i, %if.end64.i ], [ %12, %if.end64.thread.i ], [ %trieValue.3.i, %if.end81.us.i ], [ %19, %if.end81.i ] %value15.2.i = phi i32 [ %value15.1.i, %if.end35.i ], [ %value15.3.i, %if.end64.i ], [ %value15.0.i, %if.end64.thread.i ], [ %value15.3.i, %if.end81.us.i ], [ %value15.3157166.i, %if.end81.i ] - %haveValue.2.i = phi i8 [ %haveValue.1.i, %if.end35.i ], [ %haveValue.3.i, %if.end64.i ], [ %haveValue.0.i, %if.end64.thread.i ], [ %haveValue.3.i, %if.end81.us.i ], [ %haveValue.3158165.i, %if.end81.i ] %indvars.iv.next149.i = add nuw nsw i64 %indvars.iv148.i, 1 %21 = load i32, ptr %highStart.i, align 8 %cmp85.i = icmp slt i32 %c.1.i, %21 diff --git a/bench/image-rs/optimized/1njpscpjlgoe3i07.ll b/bench/image-rs/optimized/1njpscpjlgoe3i07.ll index 5867712cc83..9078977cf6b 100644 --- a/bench/image-rs/optimized/1njpscpjlgoe3i07.ll +++ b/bench/image-rs/optimized/1njpscpjlgoe3i07.ll @@ -22402,28 +22402,21 @@ define hidden noundef zeroext i1 @"_ZN74_$LT$core..result..Result$LT$T$C$E$GT$$u 6: ; preds = %2 %trunc = trunc nuw i64 %3 to i1 - br i1 %trunc, label %15, label %8 + br i1 %trunc, label %7, label %8 -7: ; preds = %2, %15, %8 - %.0 = phi i1 [ true, %15 ], [ %14, %8 ], [ false, %2 ] +7: ; preds = %6, %2, %8 + %.0 = phi i1 [ %14, %8 ], [ false, %2 ], [ true, %6 ] ret i1 %.0 8: ; preds = %6 - %9 = icmp eq i64 %3, 0 - tail call void @llvm.assume(i1 %9) - %10 = getelementptr inbounds nuw i8, ptr %0, i64 8 - %11 = getelementptr inbounds nuw i8, ptr %1, i64 8 + %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 + %10 = getelementptr inbounds nuw i8, ptr %1, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !4620) tail call void @llvm.experimental.noalias.scope.decl(metadata !4623) - %12 = load i64, ptr %10, align 8, !alias.scope !4620, !noalias !4623, !noundef !5 - %13 = load i64, ptr %11, align 8, !alias.scope !4623, !noalias !4620, !noundef !5 + %12 = load i64, ptr %9, align 8, !alias.scope !4620, !noalias !4623, !noundef !5 + %13 = load i64, ptr %10, align 8, !alias.scope !4623, !noalias !4620, !noundef !5 %14 = icmp eq i64 %12, %13 br label %7 - -15: ; preds = %6 - %16 = icmp ne i64 %3, 0 - tail call void @llvm.assume(i1 %16) - br label %7 } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/imgui/optimized/imgui.cpp.ll b/bench/imgui/optimized/imgui.cpp.ll index 9f057cf40c9..af89fdb76a8 100644 --- a/bench/imgui/optimized/imgui.cpp.ll +++ b/bench/imgui/optimized/imgui.cpp.ll @@ -34661,7 +34661,7 @@ lor.end792.thread: ; preds = %lor.end %ScrollbarX1447 = getelementptr inbounds nuw i8, ptr %window.0, i64 188 store i8 1, ptr %ScrollbarX1447, align 4 %.pre1494 = trunc nuw i8 %frombool772 to i1 - br i1 %.pre1494, label %if.end809, label %if.then799 + br i1 %.pre1494, label %cond.true813, label %if.then799 lor.rhs775: ; preds = %lor.end %needed_size_from_last_frame.sroa.0.0.vec.extract = extractelement <2 x float> %needed_size_from_last_frame.sroa.0.0, i64 0 @@ -34696,7 +34696,8 @@ lor.end792: ; preds = %cond.end781 %tobool795 = trunc i32 %and789 to i1 %tobool795.not = xor i1 %tobool795, true %brmerge1508 = or i1 %tobool795.not, %tobool778 - br i1 %brmerge1508, label %if.end809, label %if.then799 + %frombool772.mux = select i1 %tobool795, i8 1, i8 %frombool772 + br i1 %brmerge1512, label %if.end809, label %if.then799 if.then799: ; preds = %lor.end792, %lor.end792.thread %ScrollbarX14501502 = phi ptr [ %ScrollbarX1447, %lor.end792.thread ], [ %ScrollbarX, %lor.end792 ] @@ -34709,20 +34710,22 @@ if.then799: ; preds = %lor.end792, %lor.en store i8 %frombool808, ptr %ScrollbarY, align 1 br label %if.end809 -if.end809: ; preds = %lor.end792, %lor.end792.thread, %lor.end792.thread1451, %if.then799 - %520 = phi i8 [ %frombool808, %if.then799 ], [ %frombool772, %lor.end792 ], [ %frombool772, %lor.end792.thread1451 ], [ %frombool772, %lor.end792.thread ] - %ScrollbarX1449 = phi ptr [ %ScrollbarX14501502, %if.then799 ], [ %ScrollbarX, %lor.end792 ], [ %ScrollbarX1453, %lor.end792.thread1451 ], [ %ScrollbarX1447, %lor.end792.thread ] +if.end809: ; preds = %lor.end792, %lor.end792.thread1451, %if.then799 + %520 = phi i8 [ %frombool808, %if.then799 ], [ %frombool772.mux, %lor.end792 ], [ %frombool772, %lor.end792.thread1451 ] + %ScrollbarX1449 = phi ptr [ %ScrollbarX14501502, %if.then799 ], [ %ScrollbarX, %lor.end792 ], [ %ScrollbarX1453, %lor.end792.thread1451 ] %tobool812 = trunc nuw i8 %520 to i1 br i1 %tobool812, label %cond.true813, label %cond.end816 -cond.true813: ; preds = %if.end809 +cond.true813: ; preds = %lor.end792.thread, %if.end809 + %ScrollbarX14491506 = phi ptr [ %ScrollbarX1449, %if.end809 ], [ %ScrollbarX1447, %lor.end792.thread ] %ScrollbarSize814 = getelementptr inbounds nuw i8, ptr %0, i64 14692 %521 = load float, ptr %ScrollbarSize814, align 4 br label %cond.end816 cond.end816: ; preds = %if.end809, %cond.true813 + %ScrollbarX14491505 = phi ptr [ %ScrollbarX14491506, %cond.true813 ], [ %ScrollbarX1449, %if.end809 ] %.cast = phi float [ %521, %cond.true813 ], [ 0.000000e+00, %if.end809 ] - %522 = load i8, ptr %ScrollbarX1449, align 4 + %522 = load i8, ptr %ScrollbarX14491505, align 4 %tobool819 = trunc i8 %522 to i1 br i1 %tobool819, label %cond.true820, label %cond.end823 diff --git a/bench/influxdb-rs/optimized/17ptp6pnu4b90vr6.ll b/bench/influxdb-rs/optimized/17ptp6pnu4b90vr6.ll index 8aba734a67d..d23df175ca7 100644 --- a/bench/influxdb-rs/optimized/17ptp6pnu4b90vr6.ll +++ b/bench/influxdb-rs/optimized/17ptp6pnu4b90vr6.ll @@ -3184,9 +3184,10 @@ define internal fastcc void @"_ZN4core3ptr391drop_in_place$LT$hashbrown..scopegu 2: ; preds = %13, %0 %.sroa.0.08.i.i = phi i64 [ 0, %0 ], [ %spec.select6.i.i, %13 ] - %3 = icmp ult i64 %.sroa.0.08.i.i, %.0.val - %4 = zext i1 %3 to i64 - %spec.select6.i.i = add nuw i64 %.sroa.0.08.i.i, %4 + %3 = icmp uge i64 %.sroa.0.08.i.i, %.0.val + %4 = xor i1 %3, true + %spec.select6.i.i = zext i1 %not..i.i to i64 + %spec.select6.i.i = add nuw i64 %.sroa.0.07.i.i, %4 %5 = load ptr, ptr %.8.val, align 8, !nonnull !4, !noundef !4 %6 = getelementptr inbounds i8, ptr %5, i64 %.sroa.0.08.i.i %7 = load i8, ptr %6, align 1, !noundef !4 @@ -3201,9 +3202,9 @@ define internal fastcc void @"_ZN4core3ptr391drop_in_place$LT$hashbrown..scopegu br label %13 13: ; preds = %9, %2 - %.not.i.i.i = icmp ule i64 %spec.select6.i.i, %.0.val - %or.cond.not.i.i = select i1 %3, i1 %.not.i.i.i, i1 false - br i1 %or.cond.not.i.i, label %2, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he7b444bfe386ad3fE.exit" + %.not.i.i.i = icmp ugt i64 %spec.select6.i.i, %.0.val + %or.cond.not.i.i = select i1 %3, i1 true, i1 %.not.i.i.i + br i1 %or.cond.not.i.i, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he7b444bfe386ad3fE.exit", label %2 "_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17he7b444bfe386ad3fE.exit": ; preds = %13 ret void @@ -3217,9 +3218,10 @@ define internal fastcc void @"_ZN4core3ptr395drop_in_place$LT$hashbrown..scopegu 2: ; preds = %13, %0 %.sroa.0.08.i.i = phi i64 [ 0, %0 ], [ %spec.select6.i.i, %13 ] - %3 = icmp ult i64 %.sroa.0.08.i.i, %.0.val - %4 = zext i1 %3 to i64 - %spec.select6.i.i = add nuw i64 %.sroa.0.08.i.i, %4 + %3 = icmp uge i64 %.sroa.0.08.i.i, %.0.val + %4 = xor i1 %3, true + %spec.select6.i.i = zext i1 %not..i.i to i64 + %spec.select6.i.i = add nuw i64 %.sroa.0.07.i.i, %4 %5 = load ptr, ptr %.8.val, align 8, !nonnull !4, !noundef !4 %6 = getelementptr inbounds i8, ptr %5, i64 %.sroa.0.08.i.i %7 = load i8, ptr %6, align 1, !noundef !4 @@ -3234,9 +3236,9 @@ define internal fastcc void @"_ZN4core3ptr395drop_in_place$LT$hashbrown..scopegu br label %13 13: ; preds = %9, %2 - %.not.i.i.i = icmp ule i64 %spec.select6.i.i, %.0.val - %or.cond.not.i.i = select i1 %3, i1 %.not.i.i.i, i1 false - br i1 %or.cond.not.i.i, label %2, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h14344649283687d3E.exit" + %.not.i.i.i = icmp ugt i64 %spec.select6.i.i, %.0.val + %or.cond.not.i.i = select i1 %3, i1 true, i1 %.not.i.i.i + br i1 %or.cond.not.i.i, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h14344649283687d3E.exit", label %2 "_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h14344649283687d3E.exit": ; preds = %13 ret void diff --git a/bench/influxdb-rs/optimized/55ksfxb2g8gj9lwh.ll b/bench/influxdb-rs/optimized/55ksfxb2g8gj9lwh.ll index c0c1ef9c41e..7730f1c279b 100644 --- a/bench/influxdb-rs/optimized/55ksfxb2g8gj9lwh.ll +++ b/bench/influxdb-rs/optimized/55ksfxb2g8gj9lwh.ll @@ -18588,7 +18588,7 @@ define hidden void @"_ZN4core3ptr47drop_in_place$LT$arrow_buffer..bytes..Bytes$G tail call void @llvm.experimental.noalias.scope.decl(metadata !7131) %2 = load i64, ptr %0, align 8, !range !214, !noundef !4 %trunc.i = trunc nuw i64 %2 to i1 - br i1 %trunc.i, label %"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit", label %3 + br i1 %trunc.i, label %"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit.thread", label %3 3: ; preds = %1 %4 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -18604,12 +18604,11 @@ define hidden void @"_ZN4core3ptr47drop_in_place$LT$arrow_buffer..bytes..Bytes$G tail call void @__rust_dealloc(ptr noundef nonnull %10, i64 noundef %5, i64 noundef %11) #28, !noalias !7131 br label %"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit" -"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit": ; preds = %7, %3, %1 +"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit": ; preds = %7, %3 tail call void @llvm.experimental.noalias.scope.decl(metadata !7135) - %12 = icmp eq i64 %2, 0 - br i1 %12, label %"_ZN4core3ptr54drop_in_place$LT$arrow_buffer..alloc..Deallocation$GT$17h23270c8c7397b57aE.llvm.12494526139044184965.exit1", label %13 + br label %"_ZN4core3ptr54drop_in_place$LT$arrow_buffer..alloc..Deallocation$GT$17h23270c8c7397b57aE.llvm.12494526139044184965.exit1" -13: ; preds = %"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit" +"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit.thread":; preds = %1 %14 = getelementptr inbounds nuw i8, ptr %0, i64 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !7138) tail call void @llvm.experimental.noalias.scope.decl(metadata !7141) @@ -35893,7 +35892,7 @@ define hidden void @"_ZN4core3ptr76drop_in_place$LT$alloc..sync..ArcInner$LT$arr tail call void @llvm.experimental.noalias.scope.decl(metadata !15922) %3 = load i64, ptr %2, align 8, !range !214, !alias.scope !15919, !noundef !4 %trunc.i.i = trunc nuw i64 %3 to i1 - br i1 %trunc.i.i, label %"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit.i", label %4 + br i1 %trunc.i.i, label %"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit.thread.i", label %4 4: ; preds = %1 %5 = getelementptr inbounds nuw i8, ptr %0, i64 32 @@ -35909,12 +35908,11 @@ define hidden void @"_ZN4core3ptr76drop_in_place$LT$alloc..sync..ArcInner$LT$arr tail call void @__rust_dealloc(ptr noundef nonnull %11, i64 noundef %6, i64 noundef %12) #28, !noalias !15925 br label %"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit.i" -"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit.i": ; preds = %8, %4, %1 +"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit.i": ; preds = %8, %4 tail call void @llvm.experimental.noalias.scope.decl(metadata !15926) - %13 = icmp eq i64 %3, 0 - br i1 %13, label %"_ZN4core3ptr47drop_in_place$LT$arrow_buffer..bytes..Bytes$GT$17h295938365482ac5dE.llvm.12494526139044184965.exit", label %14 + br label %"_ZN4core3ptr47drop_in_place$LT$arrow_buffer..bytes..Bytes$GT$17h295938365482ac5dE.llvm.12494526139044184965.exit" -14: ; preds = %"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit.i" +"_ZN68_$LT$arrow_buffer..bytes..Bytes$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2ba8b6d9302610c7E.llvm.12494526139044184965.exit.thread.i":; preds = %1 %15 = getelementptr inbounds nuw i8, ptr %0, i64 24 tail call void @llvm.experimental.noalias.scope.decl(metadata !15929) tail call void @llvm.experimental.noalias.scope.decl(metadata !15932) diff --git a/bench/jemalloc/optimized/tcache.ll b/bench/jemalloc/optimized/tcache.ll index e14f29911f0..3b17ce7d102 100644 --- a/bench/jemalloc/optimized/tcache.ll +++ b/bench/jemalloc/optimized/tcache.ll @@ -473,7 +473,7 @@ if.then31.i: ; preds = %land.lhs.true27.i br label %if.end67.i if.end67.i: ; preds = %if.then31.i, %land.lhs.true27.i, %malloc_mutex_lock.exit - %merged_stats.i.1 = phi i8 [ %merged_stats.i.0215, %land.lhs.true27.i ], [ 1, %if.then31.i ], [ %merged_stats.i.0215, %malloc_mutex_lock.exit ] + %merged_stats.i.1 = phi i8 [ 1, %land.lhs.true27.i ], [ 1, %if.then31.i ], [ %merged_stats.i.0215, %malloc_mutex_lock.exit ] %17 = load i32, ptr %arrayidx.i, align 4 %conv.i167 = zext i32 %17 to i64 %slabcur.i = getelementptr inbounds nuw i8, ptr %add.ptr2.i, i64 192 @@ -835,7 +835,7 @@ if.else37.i: ; preds = %land.lhs.true27.i br label %if.then46.i if.then46.i: ; preds = %if.end24.i, %land.lhs.true27.i, %if.else37.i - %merged_stats.i.1 = phi i8 [ %merged_stats.i.0187, %land.lhs.true27.i ], [ 1, %if.else37.i ], [ %merged_stats.i.0187, %if.end24.i ] + %merged_stats.i.1 = phi i8 [ 1, %land.lhs.true27.i ], [ 1, %if.else37.i ], [ %merged_stats.i.0187, %if.end24.i ] %wide.trip.count = zext i32 %nflush.addr.i.0188 to i64 br label %for.body.i @@ -1197,10 +1197,11 @@ if.end44.i.thread298: ; preds = %if.then29.i br label %for.body.i.preheader if.end44.i: ; preds = %land.lhs.true27.i, %if.end24.i + %merged_stats.i.1 = phi i8 [ 1, %land.lhs.true27.i ], [ %merged_stats.i.0273, %if.end24.i ] br i1 %is_small, label %if.end70.i.thread, label %for.body.i.preheader for.body.i.preheader: ; preds = %if.end44.i.thread298, %if.end44.i - %merged_stats.i.1300 = phi i8 [ 1, %if.end44.i.thread298 ], [ %merged_stats.i.0273, %if.end44.i ] + %merged_stats.i.1300 = phi i8 [ 1, %if.end44.i.thread298 ], [ %merged_stats.i.1, %if.end44.i ] %wide.trip.count = zext i32 %nflush.addr.i.0275 to i64 br label %for.body.i @@ -1238,7 +1239,7 @@ if.then65.i: ; preds = %land.lhs.true63.i br label %if.end70.i if.end70.i.thread: ; preds = %if.end44.i.thread, %if.end44.i - %merged_stats.i.1259 = phi i8 [ 1, %if.end44.i.thread ], [ %merged_stats.i.0273, %if.end44.i ] + %merged_stats.i.1259 = phi i8 [ 1, %if.end44.i.thread ], [ %merged_stats.i.1, %if.end44.i ] %33 = load i32, ptr %arrayidx.i51, align 4 %34 = zext i32 %33 to i64 br label %for.body75.i.us.preheader diff --git a/bench/jsonnet/optimized/parser.cpp.ll b/bench/jsonnet/optimized/parser.cpp.ll index 05f646092b5..4bd1f4892d1 100644 --- a/bench/jsonnet/optimized/parser.cpp.ll +++ b/bench/jsonnet/optimized/parser.cpp.ll @@ -7999,13 +7999,13 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr br i1 %.not242252, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %346, %366 - %.026254 = phi i1 [ %.mux, %366 ], [ false, %346 ] + %.026254 = phi i1 [ %.not69, %366 ], [ false, %346 ] %.sroa.0205.0253 = phi ptr [ %367, %366 ], [ %347, %346 ] %349 = getelementptr inbounds nuw i8, ptr %.sroa.0205.0253, i64 24 %350 = load ptr, ptr %349, align 8 %.not69 = icmp ne ptr %350, null %.026.not = xor i1 %.026254, true - %brmerge = select i1 %.not69, i1 true, i1 %.026.not + %brmerge = or i1 %.not69, %.026.not br i1 %brmerge, label %366, label %355 351: ; preds = %.noexc152, %342 @@ -8061,7 +8061,6 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr br label %422 366: ; preds = %.lr.ph - %.mux = select i1 %.not69, i1 true, i1 %.026254 %367 = getelementptr inbounds nuw i8, ptr %.sroa.0205.0253, i64 88 %.not242 = icmp eq ptr %367, %348 br i1 %.not242, label %._crit_edge, label %.lr.ph diff --git a/bench/libquic/optimized/file_util_posix.cc.ll b/bench/libquic/optimized/file_util_posix.cc.ll index 1cc6019ceb7..7c256bde5ee 100644 --- a/bench/libquic/optimized/file_util_posix.cc.ll +++ b/bench/libquic/optimized/file_util_posix.cc.ll @@ -735,7 +735,6 @@ if.end82: ; preds = %invoke.cont79, %lan br label %land.rhs land.rhs: ; preds = %if.end82, %cleanup - %success.061 = phi i8 [ 1, %if.end82 ], [ %success.3, %cleanup ] %call.i52 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %current) #21 br i1 %call.i52, label %while.end.loopexit, label %while.body @@ -787,19 +786,14 @@ land.lhs.true110: ; preds = %if.then99 %call111 = tail call ptr @__errno_location() #22 %21 = load i32, ptr %call111, align 4 %cmp112.not = icmp eq i32 %21, 17 - %spec.select21 = select i1 %cmp112.not, i8 %success.061, i8 0 br label %if.end126 if.then119: ; preds = %if.end95 %call121 = invoke noundef zeroext i1 @_ZN4base8CopyFileERKNS_8FilePathES2_(ptr noundef nonnull align 8 dereferenceable(32) %current, ptr noundef nonnull align 8 dereferenceable(32) %target_path) to label %invoke.cont120 unwind label %lpad87 -invoke.cont120: ; preds = %if.then119 - %spec.select22 = select i1 %call121, i8 %success.061, i8 0 - br label %if.end126 - -if.end126: ; preds = %invoke.cont120, %land.lhs.true110, %if.end95, %if.then99 - %success.3 = phi i8 [ %success.061, %if.then99 ], [ %spec.select21, %land.lhs.true110 ], [ %success.061, %if.end95 ], [ %spec.select22, %invoke.cont120 ] +invoke.cont120: ; preds = %if.then119, %land.lhs.true110, %if.end95, %if.then99 + %spec.select22 = phi i1 [ true, %if.then99 ], [ %cmp112.not, %land.lhs.true110 ], [ true, %if.end95 ], [ %call121, %if.then119 ] invoke void @_ZN4base14FileEnumerator4NextEv(ptr nonnull sret(%"class.base::FilePath") align 8 %ref.tmp127, ptr noundef nonnull align 8 dereferenceable(184) %traversal) to label %invoke.cont128 unwind label %lpad87 @@ -829,21 +823,15 @@ lpad129: ; preds = %invoke.cont128 cleanup: ; preds = %invoke.cont130, %invoke.cont137 call void @_ZN4base8FilePathD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %target_path) #21 - %tobool83 = trunc nuw i8 %success.3 to i1 - br i1 %tobool83, label %land.rhs, label %while.end.loopexit + br i1 %success.3, label %land.rhs, label %while.end ehcleanup143: ; preds = %lpad129, %lpad87 %.pn14 = phi { ptr, i32 } [ %18, %lpad87 ], [ %22, %lpad129 ] call void @_ZN4base8FilePathD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %target_path) #21 br label %ehcleanup146 -while.end.loopexit: ; preds = %land.rhs, %cleanup - %success.1.ph = phi i8 [ %success.3, %cleanup ], [ %success.061, %land.rhs ] - %23 = trunc nuw i8 %success.1.ph to i1 - br label %while.end - -while.end: ; preds = %while.end.loopexit, %cleanup.thread - %success.1 = phi i1 [ false, %cleanup.thread ], [ %23, %while.end.loopexit ] +while.end.loopexit: ; preds = %cleanup, %land.rhs, %cleanup.thread + %success.1.ph = phi i1 [ false, %cleanup.thread ], [ %call.i52, %land.rhs ], [ %call.i52, %cleanup ] call void @_ZN4base8FilePathD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %from_path_base) #21 br label %cleanup147 @@ -853,7 +841,7 @@ ehcleanup146: ; preds = %lpad67.loopexit, %l br label %ehcleanup148 cleanup147: ; preds = %invoke.cont55, %while.end - %retval.3 = phi i1 [ %success.1, %while.end ], [ false, %invoke.cont55 ] + %retval.3 = phi i1 [ %success.1.ph, %while.end ], [ false, %invoke.cont55 ] call void @_ZN4base8FilePathD1Ev(ptr noundef nonnull align 8 dereferenceable(32) %current) #21 call void @_ZN4base14FileEnumeratorD1Ev(ptr noundef nonnull align 8 dereferenceable(184) %traversal) #21 br label %cleanup151 @@ -1042,8 +1030,8 @@ do.body: ; preds = %invoke.cont17, %if. to label %invoke.cont27 unwind label %lpad16.loopexit invoke.cont27: ; preds = %do.body - %cmp30 = icmp slt i32 %call28, 0 - br i1 %cmp30, label %while.end, label %if.end32 + %cmp30 = icmp sgt i32 %call28, -1 + br i1 %cmp30, label %if.end32, label %while.end if.end32: ; preds = %invoke.cont27 %conv29 = zext nneg i32 %call28 to i64 diff --git a/bench/libquic/optimized/spdy_framer.cc.ll b/bench/libquic/optimized/spdy_framer.cc.ll index 3bce5d84739..a5bbe0faf2e 100644 --- a/bench/libquic/optimized/spdy_framer.cc.ll +++ b/bench/libquic/optimized/spdy_framer.cc.ll @@ -7514,7 +7514,6 @@ while.body.lr.ph: ; preds = %if.end18 br label %while.body while.body: ; preds = %while.body.lr.ph, %if.end68 - %processed_successfully.042 = phi i8 [ 1, %while.body.lr.ph ], [ %processed_successfully.1, %if.end68 ] store ptr %buffer, ptr %next_out, align 8 store i32 1024, ptr %avail_out, align 8 %call21 = call i32 @MOZ_Z_inflate(ptr noundef nonnull %call, i32 noundef 2) @@ -7576,51 +7575,39 @@ if.then41: ; preds = %land.end38 %conv43 = zext i32 %9 to i64 %sub = sub nsw i64 1024, %conv43 %cmp44.not = icmp eq i32 %9, 1024 - br i1 %cmp44.not, label %if.end63, label %if.then45 + br i1 %cmp44.not, label %if.end68, label %if.then45 if.then45: ; preds = %if.then41 %10 = load i8, ptr %use_new_methods_, align 2 %tobool46 = trunc i8 %10 to i1 - br i1 %tobool46, label %if.then47, label %if.else58 - -if.then47: ; preds = %if.then45 - %11 = load ptr, ptr %header_parser_, align 8 - %call50 = call noundef zeroext i1 @_ZN3net22SpdyHeadersBlockParser29HandleControlFrameHeadersDataEjPKcm(ptr noundef nonnull align 8 dereferenceable(108) %11, i32 noundef %stream_id, ptr noundef nonnull %buffer, i64 noundef %sub) - %12 = load ptr, ptr %header_parser_, align 8 - %error_.i = getelementptr inbounds nuw i8, ptr %12, i64 100 - %13 = load i32, ptr %error_.i, align 4 - %cmp55 = icmp eq i32 %13, 1 - %narrow = or i1 %call50, %cmp55 - %spec.select = zext i1 %narrow to i8 - br label %if.end63 + br i1 %tobool46, label %if.end63, label %if.else58 if.else58: ; preds = %if.then45 %14 = load ptr, ptr %visitor_.i34, align 8 %vtable = load ptr, ptr %14, align 8 %vfn = getelementptr inbounds nuw i8, ptr %vtable, i64 80 %15 = load ptr, ptr %vfn, align 8 - %call60 = call noundef zeroext i1 %15(ptr noundef nonnull align 8 dereferenceable(8) %14, i32 noundef %stream_id, ptr noundef nonnull %buffer, i64 noundef %sub) - %frombool61 = zext i1 %call60 to i8 - br label %if.end63 - -if.end63: ; preds = %if.then47, %if.else58, %if.then41 - %processed_successfully.1 = phi i8 [ %frombool61, %if.else58 ], [ %processed_successfully.042, %if.then41 ], [ %spec.select, %if.then47 ] - %tobool64 = trunc nuw i8 %processed_successfully.1 to i1 - br i1 %tobool64, label %if.end68, label %if.then65 + %call60 = call noundef zeroext i1 %12(ptr noundef nonnull align 8 dereferenceable(8) %14, i32 noundef %stream_id, ptr noundef nonnull %buffer, i64 noundef %sub) + br i1 %call60, label %if.end68, label %if.then65 + +if.end63: ; preds = %if.then45 + %processed_successfully.1 = load ptr, ptr %header_parser_, align 8 + %tobool64 = call noundef zeroext i1 @_ZN3net22SpdyHeadersBlockParser29HandleControlFrameHeadersDataEjPKcm(ptr noundef nonnull align 8 dereferenceable(108) %processed_successfully.1, i32 noundef %stream_id, ptr noundef nonnull %buffer, i64 noundef %sub) + %14 = load ptr, ptr %header_parser_, align 8 + %error_.i = getelementptr inbounds nuw i8, ptr %14, i64 100 + %15 = load i32, ptr %error_.i, align 4 + %cmp55 = icmp eq i32 %15, 1 + %narrow = or i1 %call50, %cmp55 + br i1 %narrow, label %if.end68, label %if.then65 -if.then65: ; preds = %if.end63 +if.then65: ; preds = %if.else58, %if.end63 store i32 3, ptr %error_code_.i29, align 8 store i32 0, ptr %expect_continuation_.i30, align 4 store i8 0, ptr %end_stream_when_done_.i31, align 8 %16 = load i32, ptr %state_.i32, align 8 store i32 %16, ptr %previous_state_.i33, align 4 store i32 0, ptr %state_.i32, align 8 - %17 = load ptr, ptr %visitor_.i34, align 8 - %vtable.i27 = load ptr, ptr %17, align 8 - %vfn.i28 = getelementptr inbounds nuw i8, ptr %vtable.i27, i64 16 - %18 = load ptr, ptr %vfn.i28, align 8 - call void %18(ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(259) %this) - br label %if.end68 + br label %return.sink.split if.end68.thread: ; preds = %land.end38 store i32 6, ptr %error_code_.i29, align 8 @@ -7631,24 +7618,22 @@ if.end68.thread: ; preds = %land.end38 store i32 0, ptr %state_.i32, align 8 br label %return.sink.split -if.end68: ; preds = %if.end63, %if.then65 +if.end68: ; preds = %if.else58, %if.then41, %if.end63 %20 = load i32, ptr %avail_in, align 8 - %cmp20 = icmp ne i32 %20, 0 - %tobool = trunc nuw i8 %processed_successfully.1 to i1 - %21 = select i1 %cmp20, i1 %tobool, i1 false - br i1 %21, label %while.body, label %return, !llvm.loop !26 - -return.sink.split: ; preds = %cleanup.done, %if.end68.thread - %.sink49.in = phi ptr [ %visitor_.i34, %if.end68.thread ], [ %visitor_.i, %cleanup.done ] - %.sink49 = load ptr, ptr %.sink49.in, align 8 - %vtable.i35 = load ptr, ptr %.sink49, align 8 + %cmp20 = icmp eq i32 %20, 0 + br i1 %cmp20, label %return, label %while.body, !llvm.loop !26 + +return.sink.split:; preds = %cleanup.done, %if.then65, %if.else67 + %.sink48.in = phi ptr [ %visitor_.i34, %if.else67 ], [ %visitor_.i34, %if.then65 ], [ %visitor_.i, %cleanup.done ] + %.sink48 = load ptr, ptr %.sink48.in, align 8 + %.sink49.in = load ptr, ptr %.sink48, align 8 %vfn.i36 = getelementptr inbounds nuw i8, ptr %vtable.i35, i64 16 %22 = load ptr, ptr %vfn.i36, align 8 - call void %22(ptr noundef nonnull align 8 dereferenceable(8) %.sink49, ptr noundef nonnull align 8 dereferenceable(259) %this) + call void %19(ptr noundef nonnull align 8 dereferenceable(8) %.sink48, ptr noundef nonnull align 8 dereferenceable(259) %this) br label %return return: ; preds = %if.end68, %return.sink.split, %if.end18 - %retval.0 = phi i1 [ true, %if.end18 ], [ false, %return.sink.split ], [ %tobool, %if.end68 ] + %retval.0 = phi i1 [ true, %if.end18 ], [ false, %return.sink.split ], [ true, %if.end68 ] ret i1 %retval.0 } diff --git a/bench/libquic/optimized/string_util.cc.ll b/bench/libquic/optimized/string_util.cc.ll index f5fbb5cfc9c..176eefce30a 100644 --- a/bench/libquic/optimized/string_util.cc.ll +++ b/bench/libquic/optimized/string_util.cc.ll @@ -1400,7 +1400,6 @@ invoke.cont9.us: ; preds = %if.then7.us br label %if.end.us if.end.us: ; preds = %invoke.cont9.us, %if.then.us - %in_whitespace.1.us = phi i8 [ %in_whitespace.024.us, %if.then.us ], [ 1, %invoke.cont9.us ] %chars_written.1.us = phi i32 [ %chars_written.026.us, %if.then.us ], [ %inc.us, %invoke.cont9.us ] %tobool12.us = trunc nuw i8 %already_trimmed.025.us to i1 br i1 %tobool12.us, label %for.inc.us, label %land.lhs.true13.us @@ -1417,8 +1416,8 @@ if.then19.us: ; preds = %land.lhs.true13.us, br label %for.inc.us for.inc.us: ; preds = %if.then19.us, %land.lhs.true13.us, %if.end.us, %invoke.cont24.us - %in_whitespace.2.us = phi i8 [ %in_whitespace.1.us, %if.end.us ], [ %in_whitespace.1.us, %if.then19.us ], [ 0, %invoke.cont24.us ], [ %in_whitespace.1.us, %land.lhs.true13.us ] - %already_trimmed.1.us = phi i8 [ %already_trimmed.025.us, %if.end.us ], [ 1, %if.then19.us ], [ 0, %invoke.cont24.us ], [ %already_trimmed.025.us, %land.lhs.true13.us ] + %in_whitespace.2.us = phi i8 [ 1, %if.end.us ], [ 1, %if.then19.us ], [ 0, %invoke.cont24.us ], [ 1, %land.lhs.true13.us ] + %already_trimmed.1.us = phi i8 [ 1, %if.end.us ], [ 1, %if.then19.us ], [ 0, %invoke.cont24.us ], [ 0, %land.lhs.true13.us ] %chars_written.2.us = phi i32 [ %chars_written.1.us, %if.end.us ], [ %dec.us, %if.then19.us ], [ %inc22.us, %invoke.cont24.us ], [ %chars_written.1.us, %land.lhs.true13.us ] %incdec.ptr.i10.us = getelementptr inbounds nuw i8, ptr %i.sroa.0.023.us, i64 2 %call2.us = tail call ptr @_ZNKSt7__cxx1112basic_stringItN4base20string16_char_traitsESaItEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %text) #21 @@ -1491,9 +1490,9 @@ invoke.cont24: ; preds = %if.else br label %for.inc for.inc: ; preds = %if.then, %invoke.cont9, %invoke.cont24 - %in_whitespace.2 = phi i8 [ 0, %invoke.cont24 ], [ %in_whitespace.024, %if.then ], [ 1, %invoke.cont9 ] - %already_trimmed.1 = phi i8 [ 0, %invoke.cont24 ], [ %already_trimmed.025, %if.then ], [ %already_trimmed.025, %invoke.cont9 ] - %chars_written.2 = phi i32 [ %inc22, %invoke.cont24 ], [ %chars_written.026, %if.then ], [ %inc, %invoke.cont9 ] + %in_whitespace.2 = phi i8 [ 0, %invoke.cont24 ], [ 1, %invoke.cont9 ], [ 1, %if.then ] + %already_trimmed.1 = phi i8 [ 0, %invoke.cont24 ], [ %already_trimmed.025, %invoke.cont9 ], [ %already_trimmed.025, %if.then ] + %chars_written.2 = phi i32 [ %inc22, %invoke.cont24 ], [ %inc, %invoke.cont9 ], [ %chars_written.026, %if.then ] %incdec.ptr.i10 = getelementptr inbounds nuw i8, ptr %i.sroa.0.023, i64 2 %call2 = tail call ptr @_ZNKSt7__cxx1112basic_stringItN4base20string16_char_traitsESaItEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %text) #21 %cmp.i.not = icmp eq ptr %incdec.ptr.i10, %call2 @@ -1587,7 +1586,6 @@ invoke.cont9.us: ; preds = %if.then7.us br label %if.end.us if.end.us: ; preds = %invoke.cont9.us, %if.then.us - %in_whitespace.1.us = phi i8 [ %in_whitespace.024.us, %if.then.us ], [ 1, %invoke.cont9.us ] %chars_written.1.us = phi i32 [ %chars_written.026.us, %if.then.us ], [ %inc.us, %invoke.cont9.us ] %tobool12.us = trunc nuw i8 %already_trimmed.025.us to i1 br i1 %tobool12.us, label %for.inc.us, label %land.lhs.true13.us @@ -1604,8 +1602,8 @@ if.then19.us: ; preds = %land.lhs.true13.us, br label %for.inc.us for.inc.us: ; preds = %if.then19.us, %land.lhs.true13.us, %if.end.us, %invoke.cont24.us - %in_whitespace.2.us = phi i8 [ %in_whitespace.1.us, %if.end.us ], [ %in_whitespace.1.us, %if.then19.us ], [ 0, %invoke.cont24.us ], [ %in_whitespace.1.us, %land.lhs.true13.us ] - %already_trimmed.1.us = phi i8 [ %already_trimmed.025.us, %if.end.us ], [ 1, %if.then19.us ], [ 0, %invoke.cont24.us ], [ %already_trimmed.025.us, %land.lhs.true13.us ] + %in_whitespace.2.us = phi i8 [ 1, %if.end.us ], [ 1, %if.then19.us ], [ 0, %invoke.cont24.us ], [ 1, %land.lhs.true13.us ] + %already_trimmed.1.us = phi i8 [ 1, %if.end.us ], [ 1, %if.then19.us ], [ 0, %invoke.cont24.us ], [ 0, %land.lhs.true13.us ] %chars_written.2.us = phi i32 [ %chars_written.1.us, %if.end.us ], [ %dec.us, %if.then19.us ], [ %inc22.us, %invoke.cont24.us ], [ %chars_written.1.us, %land.lhs.true13.us ] %incdec.ptr.i10.us = getelementptr inbounds nuw i8, ptr %i.sroa.0.023.us, i64 1 %call2.us = tail call ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %text) #21 @@ -1678,9 +1676,9 @@ invoke.cont24: ; preds = %if.else br label %for.inc for.inc: ; preds = %if.then, %invoke.cont9, %invoke.cont24 - %in_whitespace.2 = phi i8 [ 0, %invoke.cont24 ], [ %in_whitespace.024, %if.then ], [ 1, %invoke.cont9 ] - %already_trimmed.1 = phi i8 [ 0, %invoke.cont24 ], [ %already_trimmed.025, %if.then ], [ %already_trimmed.025, %invoke.cont9 ] - %chars_written.2 = phi i32 [ %inc22, %invoke.cont24 ], [ %chars_written.026, %if.then ], [ %inc, %invoke.cont9 ] + %in_whitespace.2 = phi i8 [ 0, %invoke.cont24 ], [ 1, %invoke.cont9 ], [ 1, %if.then ] + %already_trimmed.1 = phi i8 [ 0, %invoke.cont24 ], [ %already_trimmed.025, %invoke.cont9 ], [ %already_trimmed.025, %if.then ] + %chars_written.2 = phi i32 [ %inc22, %invoke.cont24 ], [ %inc, %invoke.cont9 ], [ %chars_written.026, %if.then ] %incdec.ptr.i10 = getelementptr inbounds nuw i8, ptr %i.sroa.0.023, i64 1 %call2 = tail call ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE3endEv(ptr noundef nonnull align 8 dereferenceable(32) %text) #21 %cmp.i.not = icmp eq ptr %incdec.ptr.i10, %call2 diff --git a/bench/libzmq/optimized/proxy.cpp.ll b/bench/libzmq/optimized/proxy.cpp.ll index b1dd3fc1b25..a9dc9229ddb 100644 --- a/bench/libzmq/optimized/proxy.cpp.ll +++ b/bench/libzmq/optimized/proxy.cpp.ll @@ -1690,6 +1690,8 @@ do.end930: ; preds = %delete.end926, %del br label %return if.end935: ; preds = %if.end895, %land.lhs.true897 + %backend_in.4 = phi i8 [ 1, %land.lhs.true897 ], [ 0, %if.end895 ] + %frontend_out.4 = phi i8 [ 0, %land.lhs.true897 ], [ %frontend_out.1.lcssa, %if.end895 ] br i1 %or.cond333, label %if.then939.thread, label %if.else967 if.then939: ; preds = %if.then899 @@ -1742,7 +1744,7 @@ if.else967: ; preds = %if.end935 br i1 %tobool968, label %if.then969, label %if.end981 if.then969: ; preds = %if.else967 - %tobool970 = trunc i8 %frontend_out.1.lcssa to i1 + %tobool970 = trunc i8 %frontend_out.4 to i1 br i1 %tobool970, label %if.end981, label %if.else972 if.else972: ; preds = %if.then969 @@ -1756,7 +1758,8 @@ if.else975: ; preds = %if.else972 if.end981: ; preds = %if.else975, %if.else972, %if.then969, %if.else967 %poller_wait.3 = phi ptr [ %poller_wait.0402, %if.else967 ], [ %poller_backend_only.0, %if.then969 ], [ %poller_both_blocked.0, %if.else972 ], [ %spec.select331, %if.else975 ] - br i1 %tobool896, label %if.then983, label %if.end997 + %tobool982 = trunc nuw i8 %backend_in.4 to i1 + br i1 %tobool982, label %if.then983, label %if.end997 if.then983: ; preds = %if.end981 %tobool984 = trunc i8 %backend_out.4 to i1 @@ -1772,9 +1775,9 @@ if.else989: ; preds = %if.else986 br label %if.end997 if.end997: ; preds = %if.then943.thread, %if.else946.thread, %if.then939.thread, %if.else958, %if.else989, %if.else986, %if.then983, %if.then955, %if.then939, %if.end981, %for.end - %backend_out.3 = phi i8 [ %backend_out.4, %if.then939 ], [ %backend_out.4, %if.end981 ], [ %backend_out.1.lcssa, %for.end ], [ %backend_out.4, %if.then955 ], [ %backend_out.4, %if.then983 ], [ %backend_out.4, %if.else986 ], [ %backend_out.4, %if.else989 ], [ %backend_out.4, %if.else958 ], [ %backend_out.4, %if.then939.thread ], [ %backend_out.4, %if.else946.thread ], [ %backend_out.4, %if.then943.thread ] - %backend_in.3 = phi i8 [ 0, %if.then939 ], [ %backend_in.1.lcssa, %if.end981 ], [ %backend_in.1.lcssa, %for.end ], [ 0, %if.then955 ], [ %backend_in.1.lcssa, %if.then983 ], [ %backend_in.1.lcssa, %if.else986 ], [ %backend_in.1.lcssa, %if.else989 ], [ 0, %if.else958 ], [ %backend_in.1.lcssa, %if.then939.thread ], [ %backend_in.1.lcssa, %if.else946.thread ], [ %backend_in.1.lcssa, %if.then943.thread ] - %frontend_out.3 = phi i8 [ 0, %if.then939 ], [ %frontend_out.1.lcssa, %if.end981 ], [ %frontend_out.1.lcssa, %for.end ], [ 0, %if.then955 ], [ %frontend_out.1.lcssa, %if.then983 ], [ %frontend_out.1.lcssa, %if.else986 ], [ %frontend_out.1.lcssa, %if.else989 ], [ 0, %if.else958 ], [ %frontend_out.1.lcssa, %if.then939.thread ], [ %frontend_out.1.lcssa, %if.else946.thread ], [ %frontend_out.1.lcssa, %if.then943.thread ] + %backend_out.3 = phi i8 [ %backend_out.4, %if.then939 ], [ %backend_out.4, %if.end981 ], [ %backend_out.1.lcssa, %for.end ], [ %backend_out.4, %if.then955 ], [ 1, %if.then983 ], [ 0, %if.else986 ], [ 0, %if.else989 ], [ %backend_out.4, %if.else958 ], [ %backend_out.4, %if.then939.thread ], [ %backend_out.4, %if.else946.thread ], [ %backend_out.4, %if.then943.thread ] + %backend_in.3 = phi i8 [ 0, %if.then939 ], [ 0, %if.end981 ], [ %backend_in.1.lcssa, %for.end ], [ 0, %if.then955 ], [ 1, %if.then983 ], [ 1, %if.else986 ], [ 1, %if.else989 ], [ 0, %if.else958 ], [ %backend_in.4, %if.then939.thread ], [ %backend_in.4, %if.else946.thread ], [ %backend_in.4, %if.then943.thread ] + %frontend_out.3 = phi i8 [ 0, %if.then939 ], [ %frontend_out.4, %if.end981 ], [ %frontend_out.1.lcssa, %for.end ], [ 0, %if.then955 ], [ %frontend_out.4, %if.then983 ], [ %frontend_out.4, %if.else986 ], [ %frontend_out.4, %if.else989 ], [ 0, %if.else958 ], [ %frontend_out.4, %if.then939.thread ], [ %frontend_out.4, %if.else946.thread ], [ %frontend_out.4, %if.then943.thread ] %frontend_in.3 = phi i8 [ %frontend_in.4, %if.then939 ], [ %frontend_in.4, %if.end981 ], [ %frontend_in.1.lcssa, %for.end ], [ %frontend_in.4, %if.then955 ], [ %frontend_in.4, %if.then983 ], [ %frontend_in.4, %if.else986 ], [ %frontend_in.4, %if.else989 ], [ %frontend_in.4, %if.else958 ], [ %frontend_in.4, %if.then939.thread ], [ %frontend_in.4, %if.else946.thread ], [ %frontend_in.4, %if.then943.thread ] %poller_wait.1 = phi ptr [ %poller_wait.0402, %if.then939 ], [ %poller_wait.3, %if.end981 ], [ %poller_wait.0402, %for.end ], [ %call13, %if.then955 ], [ %poller_frontend_only.0, %if.then983 ], [ %poller_both_blocked.0, %if.else986 ], [ %spec.select332, %if.else989 ], [ %spec.select335, %if.else958 ], [ %poller_wait.0402, %if.then939.thread ], [ %spec.select334445, %if.else946.thread ], [ %poller_send_blocked.0, %if.then943.thread ] %cmp707.not = icmp eq i32 %state.1.lcssa, 2 diff --git a/bench/libzmq/optimized/zmq.cpp.ll b/bench/libzmq/optimized/zmq.cpp.ll index 051aa9da5c7..64878e20b7f 100644 --- a/bench/libzmq/optimized/zmq.cpp.ll +++ b/bench/libzmq/optimized/zmq.cpp.ll @@ -2162,11 +2162,16 @@ lpad.loopexit: ; preds = %lor.lhs.false.i.i10 cleanup br label %lpad -lpad.loopexit.split-lp.loopexit.loopexit: ; preds = %while.cond, %invoke.cont93, %if.then107, %if.end260 +lpad.loopexit.split-lp.loopexit.loopexit: ; preds = %if.then107, %invoke.cont93, %while.cond %lpad.loopexit173 = landingpad { ptr, i32 } cleanup br label %lpad +lpad.loopexit.split-lp.loopexit.loopexit.loopexit.split-lp: ; preds = %if.end260 + %lpad.loopexit.split-lp180 = landingpad { ptr, i32 } + cleanup + br label %lpad + lpad.loopexit.split-lp.loopexit.loopexit.split-lp: ; preds = %if.then254 %lpad.loopexit.split-lp174 = landingpad { ptr, i32 } cleanup @@ -2177,8 +2182,8 @@ lpad.loopexit.split-lp.loopexit.split-lp: ; preds = %if.end.i, %lor.lhs. cleanup br label %lpad -lpad: ; preds = %lpad.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.loopexit, %lpad.loopexit - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit167, %lpad.loopexit ], [ %lpad.loopexit.split-lp170, %lpad.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit173, %lpad.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp174, %lpad.loopexit.split-lp.loopexit.loopexit.split-lp ] +lpad: ; preds = %lpad.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.loopexit, %lpad.loopexit.split-lp.loopexit.loopexit.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.loopexit.split-lp, %lpad.loopexit + %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit167, %lpad.loopexit ], [ %lpad.loopexit.split-lp170, %lpad.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit.split-lp174, %lpad.loopexit.split-lp.loopexit.loopexit.split-lp ], [ %lpad.loopexit179, %lpad.loopexit.split-lp.loopexit.loopexit ], [ %lpad.loopexit.split-lp180, %lpad.loopexit.split-lp.loopexit.loopexit.loopexit.split-lp ] %41 = load ptr, ptr %_buf.i90, align 8 %cmp.not.i = icmp eq ptr %41, %pollfds %isnull.i = icmp eq ptr %41, null @@ -2222,9 +2227,9 @@ for.inc89: ; preds = %if.end45, %if.else5 %cmp29.not = icmp eq i64 %indvars.iv.next234, %conv26 br i1 %cmp29.not, label %while.cond.preheader, label %for.body30, !llvm.loop !13 -while.cond: ; preds = %while.cond.outer176, %invoke.cont261 - %now.0 = phi i64 [ %call262, %invoke.cont261 ], [ %now.0.ph, %while.cond.outer176 ] - %call94 = invoke noundef i32 @_ZN3zmq15compute_timeoutEblmm(i1 noundef zeroext %first_pass.0.ph177, i64 noundef %timeout_, i64 noundef %now.0, i64 noundef %end.0.ph) +while.cond: ; preds = %while.cond.outer176, %if.end246 + %now.0 = phi i1 [ false, %if.end246 ], [ %first_pass.0.ph177, %while.cond.outer176 ] + %call94 = invoke noundef i32 @_ZN3zmq15compute_timeoutEblmm(i1 noundef zeroext %first_pass.0, i64 noundef %timeout_, i64 noundef %now.0.ph178, i64 noundef %end.0.ph) to label %invoke.cont93 unwind label %lpad.loopexit.split-lp.loopexit.loopexit invoke.cont93: ; preds = %while.cond @@ -2395,11 +2400,7 @@ for.end240: ; preds = %if.end230 br i1 %or.cond, label %cleanup, label %if.end246 if.end246: ; preds = %for.end240 - br i1 %cmp247, label %while.cond.outer176, label %if.end252, !llvm.loop !15 - -while.cond.outer176: ; preds = %if.end246, %while.cond.outer - %first_pass.0.ph177 = phi i1 [ %first_pass.0.ph, %while.cond.outer ], [ false, %if.end246 ] - br label %while.cond + br i1 %cmp247, label %while.cond, label %if.end252, !llvm.loop !15 if.end252: ; preds = %if.end246 br i1 %first_pass.0.ph177, label %if.then254, label %if.end260 @@ -2418,21 +2419,26 @@ while.cond.outer: ; preds = %while.cond.preheade %now.0.ph = phi i64 [ 0, %while.cond.preheader ], [ %call256, %if.end259 ] br label %while.cond.outer176 +while.cond.outer176: ; preds = %while.cond.outer, %invoke.cont261 + %first_pass.0.ph177 = phi i1 [ %first_pass.0.ph, %while.cond.outer ], [ false, %invoke.cont261 ] + %now.0.ph178 = phi i64 [ %now.0.ph, %while.cond.outer ], [ %call262, %invoke.cont261 ] + br label %while.cond + if.end260: ; preds = %if.end252 %call262 = invoke noundef i64 @_ZN3zmq7clock_t6now_msEv(ptr noundef nonnull align 8 dereferenceable(16) %clock) - to label %invoke.cont261 unwind label %lpad.loopexit.split-lp.loopexit.loopexit + to label %invoke.cont261 unwind label %lpad.loopexit.split-lp.loopexit.loopexit.loopexit.split-lp invoke.cont261: ; preds = %if.end260 %cmp263.not = icmp ult i64 %call262, %end.0.ph - br i1 %cmp263.not, label %while.cond, label %cleanup, !llvm.loop !15 + br i1 %cmp263.not, label %while.cond.outer176, label %cleanup, !llvm.loop !15 cleanup.sink.split: ; preds = %call.i.i.noexc, %call.i.i.noexc115 %call1.i.i111 = tail call ptr @__errno_location() #18 store i32 88, ptr %call1.i.i111, align 4 br label %cleanup -cleanup: ; preds = %invoke.cont41, %for.end240, %invoke.cont261, %land.lhs.true, %invoke.cont130, %cleanup.sink.split - %retval.1 = phi i32 [ -1, %cleanup.sink.split ], [ -1, %invoke.cont130 ], [ %spec.select, %for.end240 ], [ 0, %invoke.cont261 ], [ -1, %land.lhs.true ], [ -1, %invoke.cont41 ] +cleanup: ; preds = %invoke.cont41, %invoke.cont261, %for.end240, %land.lhs.true, %invoke.cont130, %cleanup.sink.split + %retval.1 = phi i32 [ -1, %cleanup.sink.split ], [ -1, %invoke.cont130 ], [ -1, %land.lhs.true ], [ %spec.select, %for.end240 ], [ 0, %invoke.cont261 ], [ -1, %invoke.cont41 ] %81 = load ptr, ptr %_buf.i90, align 8 %cmp.not.i128 = icmp eq ptr %81, %pollfds %isnull.i129 = icmp eq ptr %81, null diff --git a/bench/llama.cpp/optimized/common.cpp.ll b/bench/llama.cpp/optimized/common.cpp.ll index 578f05e6d33..c38e4466ec3 100644 --- a/bench/llama.cpp/optimized/common.cpp.ll +++ b/bench/llama.cpp/optimized/common.cpp.ll @@ -36937,7 +36937,7 @@ if.then4: ; preds = %for.body %2 = load i16, ptr %arrayidx.i, align 2 %and1.i = and i16 %2, 2048 %tobool.i.not = icmp eq i16 %and1.i, 0 - br i1 %tobool.i.not, label %if.else, label %if.then6 + br i1 %tobool.i.not, label %if.end27, label %if.then6 if.then6: ; preds = %if.then4 %call9 = invoke noundef i32 @_ZNKSt7__cxx1112regex_traitsIcE5valueEci(ptr noundef nonnull align 8 dereferenceable(8) %__traits, i8 noundef signext %0, i32 noundef 10) @@ -37049,7 +37049,7 @@ lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.lo cleanup br label %ehcleanup -lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end27, %if.else, %if.then6 +lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end27, %if.then6 %lpad.loopexit287 = landingpad { ptr, i32 } cleanup br label %ehcleanup @@ -37059,10 +37059,6 @@ lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.lo cleanup br label %ehcleanup -if.else: ; preds = %if.then4 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %__out.coerce, i8 noundef signext %0) - to label %for.inc unwind label %lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - if.end18: ; preds = %for.body switch i8 %0, label %if.end27 [ i8 92, label %for.inc @@ -37109,12 +37105,12 @@ for.body.i.i.i.i.i.i55: ; preds = %if.then.i45, %.noex %cmp.i.i.i.i.i.i60 = icmp samesign ugt i64 %__n.06.i.i.i.i.i.i56, 1 br i1 %cmp.i.i.i.i.i.i60, label %for.body.i.i.i.i.i.i55, label %for.inc, !llvm.loop !266 -if.end27: ; preds = %if.end18 +if.end27: ; preds = %if.end18, %if.then4 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %__out.coerce, i8 noundef signext %0) to label %for.inc unwind label %lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit -for.inc: ; preds = %.noexc65, %.noexc, %if.end27, %if.then25, %if.then.i45, %if.else, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.i, %if.then.i, %if.end18 - %__escaping.1 = phi i8 [ 1, %if.end18 ], [ 0, %if.then.i ], [ 0, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.i ], [ 0, %if.else ], [ %__escaping.0306, %if.then.i45 ], [ %__escaping.0306, %if.then25 ], [ %__escaping.0306, %if.end27 ], [ 0, %.noexc ], [ %__escaping.0306, %.noexc65 ] +for.inc: ; preds = %.noexc65, %.noexc, %if.end27, %if.then25, %if.then.i45, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.i, %if.then.i, %if.end18 + %__escaping.1 = phi i8 [ 1, %if.end18 ], [ 0, %if.then.i ], [ 0, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.i ], [ 0, %if.then.i45 ], [ 0, %if.then25 ], [ 0, %if.end27 ], [ 0, %.noexc ], [ %__escaping.0306, %.noexc65 ] %incdec.ptr = getelementptr inbounds nuw i8, ptr %__fmt_first.addr.0307, i64 1 %cmp.not = icmp eq ptr %incdec.ptr, %__fmt_last br i1 %cmp.not, label %for.end, label %for.body, !llvm.loop !268 diff --git a/bench/llama.cpp/optimized/console.cpp.ll b/bench/llama.cpp/optimized/console.cpp.ll index 6ad9998522f..67d64bfb0c3 100644 --- a/bench/llama.cpp/optimized/console.cpp.ll +++ b/bench/llama.cpp/optimized/console.cpp.ll @@ -286,7 +286,7 @@ while.cond.i: ; preds = %while.cond.i.backed %widths.sroa.7.0.i = phi ptr [ null, %if.end.i8 ], [ %widths.sroa.7.1.i, %while.cond.i.backedge ] %widths.sroa.16.0.i = phi ptr [ null, %if.end.i8 ], [ %widths.sroa.16.1.i, %while.cond.i.backedge ] %widths.sroa.0.0.i = phi ptr [ null, %if.end.i8 ], [ %widths.sroa.0.1.i, %while.cond.i.backedge ] - %is_special_char.0.i = phi i8 [ 0, %if.end.i8 ], [ %is_special_char.0.i.be, %while.cond.i.backedge ] + %is_special_char.0.i = phi i1 [ false, %if.end.i8 ], [ %is_special_char.0.i.be, %while.cond.i.backedge ] %10 = load ptr, ptr @_ZN7consoleL3outE, align 8 %call1.i9 = call i32 @fflush(ptr noundef %10) %call.i44.i = invoke noundef i32 @getwchar() @@ -338,8 +338,7 @@ _ZNSt6vectorIiSaIiEED2Ev.exit.i: ; preds = %if.then.i.i.i.i, %l resume { ptr, i32 } %lpad.phi.i if.end12.i10: ; preds = %invoke.cont2.i - %tobool.i11 = trunc nuw i8 %is_special_char.0.i to i1 - br i1 %tobool.i11, label %if.then13.i, label %if.end17.i + br i1 %is_special_char.0.i, label %if.then13.i, label %if.end17.i if.then13.i: ; preds = %if.end12.i10 %11 = load i8, ptr @_ZN7consoleL16advanced_displayE, align 1 @@ -368,7 +367,6 @@ invoke.cont14.i: ; preds = %if.then.i.i, %if.th br label %if.end17.i if.end17.i: ; preds = %invoke.cont14.i, %if.end12.i10 - %is_special_char.1.i = phi i8 [ %is_special_char.0.i, %if.end12.i10 ], [ 0, %invoke.cont14.i ] switch i32 %call.i44.i, label %if.else56.i [ i32 27, label %if.then19.i i32 127, label %if.then45.i @@ -725,12 +723,11 @@ invoke.cont82.i: ; preds = %if.then.i93.i, %if. br label %while.cond.i.backedge while.cond.i.backedge: ; preds = %invoke.cont82.i, %lor.lhs.false77.i, %if.end71.i - %is_special_char.0.i.be = phi i8 [ 1, %invoke.cont82.i ], [ %is_special_char.1.i, %lor.lhs.false77.i ], [ %is_special_char.1.i, %if.end71.i ] + %is_special_char.0.i.be = phi i1 [ true, %invoke.cont82.i ], [ false, %lor.lhs.false77.i ], [ false, %if.end71.i ] br label %while.cond.i, !llvm.loop !9 while.end86.i: ; preds = %invoke.cont2.i, %invoke.cont2.i, %invoke.cont2.i, %invoke.cont2.i - %tobool89.i = trunc nuw i8 %is_special_char.0.i to i1 - br i1 %tobool89.i, label %invoke.cont92.i, label %if.else115.i + br i1 %is_special_char.0.i, label %invoke.cont92.i, label %if.else115.i invoke.cont92.i: ; preds = %while.end86.i %64 = load ptr, ptr @_ZN7consoleL3outE, align 8 diff --git a/bench/logos-rs/optimized/hveonhe6t8dfmid.ll b/bench/logos-rs/optimized/hveonhe6t8dfmid.ll index 3e8991c2ca7..ac2d1911cac 100644 --- a/bench/logos-rs/optimized/hveonhe6t8dfmid.ll +++ b/bench/logos-rs/optimized/hveonhe6t8dfmid.ll @@ -218,9 +218,9 @@ define hidden void @_ZN13logos_codegen6parser10definition10Definition10named_att invoke void @"_ZN4core3ptr45drop_in_place$LT$proc_macro2..TokenStream$GT$17h42e110f8c7741f7dE"(ptr nonnull align 8 %78) to label %.invoke unwind label %92 -91: ; preds = %.invoke76, %199, %198, %197, %92 - %.sroa.014.6 = phi i8 [ %.sroa.014.5, %92 ], [ %.sroa.09.1, %197 ], [ %.sroa.09.1, %199 ], [ %.sroa.09.1, %198 ], [ %.sroa.09.1, %.invoke76 ] - %.pn43 = phi { ptr, i32 } [ %93, %92 ], [ %.pn41, %197 ], [ %.pn41, %199 ], [ %.pn41, %198 ], [ %.pn41, %.invoke76 ] +91: ; preds = %203, %.invoke76, %199, %198, %197, %92 + %.sroa.014.6 = phi i8 [ %.sroa.014.5, %92 ], [ %.sroa.09.1, %197 ], [ 1, %203 ], [ 0, %199 ], [ %.sroa.09.1, %201 ], [ %.sroa.09.1, %198 ] + %.pn43 = phi { ptr, i32 } [ %93, %92 ], [ %.pn41, %197 ], [ %.pn41, %203 ], [ %.pn41, %199 ], [ %.pn41, %.invoke76 ], [ %.pn41, %198 ] invoke void @"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17h6babfb2ad2ffb03eE"(ptr nonnull align 8 %22) #10 to label %.thread unwind label %140 @@ -350,7 +350,7 @@ define hidden void @_ZN13logos_codegen6parser10definition10Definition10named_att invoke void @"_ZN4core3ptr50drop_in_place$LT$logos_codegen..leaf..Callback$GT$17h794f05d070dd2e0aE"(ptr nonnull align 8 %14) to label %.thread66 unwind label %.thread63 -140: ; preds = %.invoke76, %.thread.thread, %203, %197, %157, %149, %142, %125, %91 +140: ; preds = %.thread.thread, %206, %203, %201, %197, %157, %149, %142, %125, %91 %141 = landingpad { ptr, i32 } filter [0 x ptr] zeroinitializer call void @_ZN4core9panicking16panic_in_cleanup17hd62aa59d1fda1c9fE() #12 @@ -502,13 +502,18 @@ define hidden void @_ZN13logos_codegen6parser10definition10Definition10named_att 199: ; preds = %.thread56 %200 = trunc nuw i8 %.sroa.09.1 to i1 - br i1 %200, label %.invoke76, label %91 + br i1 %200, label %203, label %91 -.invoke76: ; preds = %199, %198 +.invoke76: ; preds = %198 %201 = getelementptr inbounds nuw i8, ptr %23, i64 24 invoke void @"_ZN4core3ptr45drop_in_place$LT$proc_macro2..TokenStream$GT$17h42e110f8c7741f7dE"(ptr nonnull align 8 %201) #10 to label %91 unwind label %140 +203: ; preds = %199 + %204 = getelementptr inbounds nuw i8, ptr %23, i64 24 + invoke void @"_ZN4core3ptr45drop_in_place$LT$proc_macro2..TokenStream$GT$17h42e110f8c7741f7dE"(ptr nonnull align 8 %204) #10 + to label %91 unwind label %140 + .thread: ; preds = %91, %.thread52 %.pn4551 = phi { ptr, i32 } [ %lpad.thr_comm, %.thread52 ], [ %.pn43, %91 ] %.sroa.014.150 = phi i8 [ %.sroa.014.0.ph, %.thread52 ], [ %.sroa.014.6, %91 ] diff --git a/bench/luau/optimized/Frontend.cpp.ll b/bench/luau/optimized/Frontend.cpp.ll index f73fa3d27a3..b71299cf443 100644 --- a/bench/luau/optimized/Frontend.cpp.ll +++ b/bench/luau/optimized/Frontend.cpp.ll @@ -12856,19 +12856,20 @@ _ZNSt6vectorImSaImEE9push_backERKm.exit110: ; preds = %_ZNSt6vectorImSaImE %.sroa.14.3.lcssa.ph = phi ptr [ %.sroa.14.5.lcssa, %._crit_edge405 ], [ %.sroa.14.3413, %378 ], [ %.sroa.14.3413, %376 ] %.sroa.7.1.lcssa.ph = phi ptr [ %.sroa.7.2.lcssa, %._crit_edge405 ], [ %.sroa.7.1414, %378 ], [ %.sroa.7.1414, %376 ] %.sroa.0191.3.lcssa.ph = phi ptr [ %.sroa.0191.5.lcssa, %._crit_edge405 ], [ %.sroa.0191.3415, %378 ], [ %.sroa.0191.3415, %376 ] - %.pre530 = load ptr, ptr %347, align 8 - %.pre531 = load ptr, ptr %20, align 8 + %.pre530 = phi i8 [ %.359, %._crit_edge405 ], [ 1, %378 ], [ %.359, %376 ] + %.pre531 = load ptr, ptr %347, align 8 + %.pre528 = load ptr, ptr %20, align 8 br label %._crit_edge418 ._crit_edge418: ; preds = %._crit_edge418.loopexit, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" - %420 = phi ptr [ %358, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" ], [ %.pre531, %._crit_edge418.loopexit ] - %421 = phi ptr [ %357, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" ], [ %.pre530, %._crit_edge418.loopexit ] + %420 = phi ptr [ %358, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" ], [ %.pre528, %._crit_edge418.loopexit ] + %421 = phi ptr [ %357, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" ], [ %.pre531, %._crit_edge418.loopexit ] %.sroa.14.3.lcssa = phi ptr [ %.sroa.14.0446, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" ], [ %.sroa.14.3.lcssa.ph, %._crit_edge418.loopexit ] %.sroa.7.1.lcssa = phi ptr [ %.sroa.0191.0447, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" ], [ %.sroa.7.1.lcssa.ph, %._crit_edge418.loopexit ] %.sroa.0191.3.lcssa = phi ptr [ %.sroa.0191.0447, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" ], [ %.sroa.0191.3.lcssa.ph, %._crit_edge418.loopexit ] %.sroa.0188.2 = phi i64 [ %.sroa.0188.0444, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" ], [ %spec.select243, %._crit_edge418.loopexit ] %.sroa.2189.2 = phi i8 [ %.sroa.2189.0445, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" ], [ %spec.select244, %._crit_edge418.loopexit ] - %.258 = phi i8 [ %.056448, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" ], [ %.359, %._crit_edge418.loopexit ] + %.258 = phi i8 [ %.056448, %"_ZNSt18condition_variable4waitIZN4Luau8Frontend18checkQueuedModulesB5cxx11ESt8optionalINS1_15FrontendOptionsEESt8functionIFvS6_IFvvEEEES6_IFvmmEEE3$_4EEvRSt11unique_lockISt5mutexET_.exit" ], [ %.pre530, %._crit_edge418.loopexit ] %422 = ptrtoint ptr %421 to i64 %423 = ptrtoint ptr %420 to i64 %424 = sub i64 %422, %423 diff --git a/bench/meilisearch-rs/optimized/1cgo24wrkn2cjv53.ll b/bench/meilisearch-rs/optimized/1cgo24wrkn2cjv53.ll index 3065ef411a6..fac63cf8bf3 100644 --- a/bench/meilisearch-rs/optimized/1cgo24wrkn2cjv53.ll +++ b/bench/meilisearch-rs/optimized/1cgo24wrkn2cjv53.ll @@ -3857,8 +3857,8 @@ default.unreachable1: ; preds = %3 store i64 %.sroa.04.0.copyload.i, ptr %.sroa.49.0..sroa_idx.i, align 8, !alias.scope !1504, !noalias !1507 br label %"_ZN17crossbeam_channel7flavors4list16Channel$LT$T$GT$4send17h9096223591888a3fE.exit" -common.resume: ; preds = %44, %47, %33 - %common.resume.op = phi { ptr, i32 } [ %lpad.thr_comm.i, %33 ], [ %45, %47 ], [ %45, %44 ] +common.resume: ; preds = %47, %33 + %common.resume.op = phi { ptr, i32 } [ %lpad.thr_comm.i, %33 ], [ %46, %47 ] resume { ptr, i32 } %common.resume.op 33: ; preds = %19, %11 @@ -3900,18 +3900,14 @@ common.resume: ; preds = %44, %47, %33 43: ; preds = %41 invoke void @_ZN4core9panicking5panic17h75b3c9209f97d725E(ptr noalias noundef nonnull readonly align 1 @anon.695ce54c0493ea6bfa978dacabdf8173.5.llvm.5336188084572713014, i64 noundef 40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.695ce54c0493ea6bfa978dacabdf8173.7.llvm.5336188084572713014) #45 - to label %46 unwind label %44, !noalias !1523 + to label %44 unwind label %45, !noalias !1523 44: ; preds = %43 - %45 = landingpad { ptr, i32 } - cleanup - %.not.i = icmp eq i64 %42, 0 - br i1 %.not.i, label %47, label %common.resume - -46: ; preds = %43 unreachable -47: ; preds = %44 +47: ; preds = %43 + %46 = landingpad { ptr, i32 } + cleanup invoke void @"_ZN4core3ptr174drop_in_place$LT$crossbeam_channel..err..SendTimeoutError$LT$core..result..Result$LT$milli..update..index_documents..typed_chunk..TypedChunk$C$milli..error..Error$GT$$GT$$GT$17ha5789ad2d05ff018E.llvm.5336188084572713014"(ptr noalias noundef nonnull align 8 dereferenceable(256) %5) #46 to label %common.resume unwind label %48, !noalias !1521 @@ -3940,21 +3936,17 @@ define hidden void @"_ZN17crossbeam_channel7channel15Sender$LT$T$GT$4send28_$u7b 4: ; preds = %2 invoke void @_ZN4core9panicking5panic17h75b3c9209f97d725E(ptr noalias noundef nonnull readonly align 1 @anon.695ce54c0493ea6bfa978dacabdf8173.5.llvm.5336188084572713014, i64 noundef 40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.695ce54c0493ea6bfa978dacabdf8173.7.llvm.5336188084572713014) #45 - to label %7 unwind label %5 + to label %5 unwind label %7 5: ; preds = %4 - %6 = landingpad { ptr, i32 } - cleanup - %.not = icmp eq i64 %3, 0 - br i1 %.not, label %9, label %8 - -7: ; preds = %4 unreachable -8: ; preds = %9, %5 - resume { ptr, i32 } %6 +8: ; preds = %9 + resume { ptr, i32 } %8 -9: ; preds = %5 +9: ; preds = %4 + %8 = landingpad { ptr, i32 } + cleanup invoke void @"_ZN4core3ptr174drop_in_place$LT$crossbeam_channel..err..SendTimeoutError$LT$core..result..Result$LT$milli..update..index_documents..typed_chunk..TypedChunk$C$milli..error..Error$GT$$GT$$GT$17ha5789ad2d05ff018E.llvm.5336188084572713014"(ptr noalias noundef nonnull align 8 dereferenceable(256) %1) #46 to label %8 unwind label %10 diff --git a/bench/meilisearch-rs/optimized/4spgntyrk3g2e624.ll b/bench/meilisearch-rs/optimized/4spgntyrk3g2e624.ll index 85b6f414370..f1c8dec70e8 100644 --- a/bench/meilisearch-rs/optimized/4spgntyrk3g2e624.ll +++ b/bench/meilisearch-rs/optimized/4spgntyrk3g2e624.ll @@ -770,10 +770,11 @@ define hidden { ptr, i64 } @"_ZN5alloc11collections5btree4node121NodeRef$LT$allo 6: ; preds = %6, %.lr.ph.i %.sroa.0.012.i = phi i64 [ 0, %.lr.ph.i ], [ %spec.select8.i, %6 ] - %7 = icmp samesign ult i64 %.sroa.0.012.i, %4 - %8 = zext i1 %7 to i64 - %spec.select8.i = add nuw nsw i64 %.sroa.0.012.i, %8 - %9 = icmp samesign ult i64 %.sroa.0.012.i, 12 + %7 = icmp samesign uge i64 %.sroa.0.012.i, %4 + %8 = xor i1 %7, true + %spec.select8.i = zext i1 %8 to i64 + %9 = add nuw nsw i64 %.sroa.0.012.i, %8 + %9 = icmp samesign ult i64 %.sroa.0.011.i, 12 tail call void @llvm.assume(i1 %9) %10 = getelementptr inbounds nuw ptr, ptr %5, i64 %.sroa.0.012.i %11 = load ptr, ptr %10, align 8, !noalias !89, !nonnull !5, !noundef !5 @@ -781,9 +782,9 @@ define hidden { ptr, i64 } @"_ZN5alloc11collections5btree4node121NodeRef$LT$allo %12 = trunc nuw nsw i64 %.sroa.0.012.i to i16 %13 = getelementptr inbounds nuw i8, ptr %11, i64 3528 store i16 %12, ptr %13, align 8, !noalias !96 - %.not.i.i.i = icmp samesign ule i64 %spec.select8.i, %4 - %or.cond.i.not = select i1 %7, i1 %.not.i.i.i, i1 false - br i1 %or.cond.i.not, label %6, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hb271e99b9d3deff2E.exit" + %.not.i.i.i = icmp samesign ugt i64 %spec.select8.i, %4 + %or.cond.i.not = select i1 %7, i1 true, i1 %.not.i.i.i + br i1 %or.cond.i.not, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hb271e99b9d3deff2E.exit", label %6 "_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17hb271e99b9d3deff2E.exit": ; preds = %6 %14 = insertvalue { ptr, i64 } poison, ptr %0, 0 @@ -802,10 +803,11 @@ define hidden { ptr, i64 } @"_ZN5alloc11collections5btree4node121NodeRef$LT$allo 6: ; preds = %6, %.lr.ph.i %.sroa.0.012.i = phi i64 [ 0, %.lr.ph.i ], [ %spec.select8.i, %6 ] - %7 = icmp samesign ult i64 %.sroa.0.012.i, %4 - %8 = zext i1 %7 to i64 - %spec.select8.i = add nuw nsw i64 %.sroa.0.012.i, %8 - %9 = icmp samesign ult i64 %.sroa.0.012.i, 12 + %7 = icmp samesign uge i64 %.sroa.0.012.i, %4 + %8 = xor i1 %7, true + %spec.select8.i = zext i1 %8 to i64 + %9 = add nuw nsw i64 %.sroa.0.012.i, %8 + %9 = icmp samesign ult i64 %.sroa.0.011.i, 12 tail call void @llvm.assume(i1 %9) %10 = getelementptr inbounds nuw ptr, ptr %5, i64 %.sroa.0.012.i %11 = load ptr, ptr %10, align 8, !noalias !97, !nonnull !5, !noundef !5 @@ -813,9 +815,9 @@ define hidden { ptr, i64 } @"_ZN5alloc11collections5btree4node121NodeRef$LT$allo %12 = trunc nuw nsw i64 %.sroa.0.012.i to i16 %13 = getelementptr inbounds nuw i8, ptr %11, i64 272 store i16 %12, ptr %13, align 8, !noalias !104 - %.not.i.i.i = icmp samesign ule i64 %spec.select8.i, %4 - %or.cond.i.not = select i1 %7, i1 %.not.i.i.i, i1 false - br i1 %or.cond.i.not, label %6, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17haac078094732deb2E.exit" + %.not.i.i.i = icmp samesign ugt i64 %spec.select8.i, %4 + %or.cond.i.not = select i1 %7, i1 true, i1 %.not.i.i.i + br i1 %or.cond.i.not, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17haac078094732deb2E.exit", label %6 "_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17haac078094732deb2E.exit": ; preds = %6 %14 = insertvalue { ptr, i64 } poison, ptr %0, 0 @@ -834,10 +836,11 @@ define hidden { ptr, i64 } @"_ZN5alloc11collections5btree4node121NodeRef$LT$allo 6: ; preds = %6, %.lr.ph.i %.sroa.0.012.i = phi i64 [ 0, %.lr.ph.i ], [ %spec.select8.i, %6 ] - %7 = icmp samesign ult i64 %.sroa.0.012.i, %4 - %8 = zext i1 %7 to i64 - %spec.select8.i = add nuw nsw i64 %.sroa.0.012.i, %8 - %9 = icmp samesign ult i64 %.sroa.0.012.i, 12 + %7 = icmp samesign uge i64 %.sroa.0.012.i, %4 + %8 = xor i1 %7, true + %spec.select8.i = zext i1 %8 to i64 + %9 = add nuw nsw i64 %.sroa.0.012.i, %8 + %9 = icmp samesign ult i64 %.sroa.0.011.i, 12 tail call void @llvm.assume(i1 %9) %10 = getelementptr inbounds nuw ptr, ptr %5, i64 %.sroa.0.012.i %11 = load ptr, ptr %10, align 8, !noalias !105, !nonnull !5, !noundef !5 @@ -845,9 +848,9 @@ define hidden { ptr, i64 } @"_ZN5alloc11collections5btree4node121NodeRef$LT$allo %12 = trunc nuw nsw i64 %.sroa.0.012.i to i16 %13 = getelementptr inbounds nuw i8, ptr %11, i64 536 store i16 %12, ptr %13, align 8, !noalias !112 - %.not.i.i.i = icmp samesign ule i64 %spec.select8.i, %4 - %or.cond.i.not = select i1 %7, i1 %.not.i.i.i, i1 false - br i1 %or.cond.i.not, label %6, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h4c07d04701c1704bE.exit" + %.not.i.i.i = icmp samesign ugt i64 %spec.select8.i, %4 + %or.cond.i.not = select i1 %7, i1 true, i1 %.not.i.i.i + br i1 %or.cond.i.not, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h4c07d04701c1704bE.exit", label %6 "_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h4c07d04701c1704bE.exit": ; preds = %6 %14 = insertvalue { ptr, i64 } poison, ptr %0, 0 @@ -866,10 +869,11 @@ define hidden { ptr, i64 } @"_ZN5alloc11collections5btree4node121NodeRef$LT$allo 6: ; preds = %6, %.lr.ph.i %.sroa.0.012.i = phi i64 [ 0, %.lr.ph.i ], [ %spec.select8.i, %6 ] - %7 = icmp samesign ult i64 %.sroa.0.012.i, %4 - %8 = zext i1 %7 to i64 - %spec.select8.i = add nuw nsw i64 %.sroa.0.012.i, %8 - %9 = icmp samesign ult i64 %.sroa.0.012.i, 12 + %7 = icmp samesign uge i64 %.sroa.0.012.i, %4 + %8 = xor i1 %7, true + %spec.select8.i = zext i1 %8 to i64 + %9 = add nuw nsw i64 %.sroa.0.012.i, %8 + %9 = icmp samesign ult i64 %.sroa.0.011.i, 12 tail call void @llvm.assume(i1 %9) %10 = getelementptr inbounds nuw ptr, ptr %5, i64 %.sroa.0.012.i %11 = load ptr, ptr %10, align 8, !noalias !113, !nonnull !5, !noundef !5 @@ -877,9 +881,9 @@ define hidden { ptr, i64 } @"_ZN5alloc11collections5btree4node121NodeRef$LT$allo %12 = trunc nuw nsw i64 %.sroa.0.012.i to i16 %13 = getelementptr inbounds nuw i8, ptr %11, i64 272 store i16 %12, ptr %13, align 8, !noalias !120 - %.not.i.i.i = icmp samesign ule i64 %spec.select8.i, %4 - %or.cond.i.not = select i1 %7, i1 %.not.i.i.i, i1 false - br i1 %or.cond.i.not, label %6, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h4288bdfd6cad8a07E.exit" + %.not.i.i.i = icmp samesign ugt i64 %spec.select8.i, %4 + %or.cond.i.not = select i1 %7, i1 true, i1 %.not.i.i.i + br i1 %or.cond.i.not, label %"_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h4288bdfd6cad8a07E.exit", label %6 "_ZN5alloc11collections5btree4node119NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$30correct_childrens_parent_links17h4288bdfd6cad8a07E.exit": ; preds = %6 %14 = insertvalue { ptr, i64 } poison, ptr %0, 0 diff --git a/bench/memcached/optimized/memcached-storage.ll b/bench/memcached/optimized/memcached-storage.ll index eacf0102412..a15b16ce67a 100644 --- a/bench/memcached/optimized/memcached-storage.ll +++ b/bench/memcached/optimized/memcached-storage.ll @@ -1796,15 +1796,15 @@ while.body.outer: ; preds = %if.end133, %if.end7 %page_size.0.ph = phi i64 [ %page_size.176, %if.end133 ], [ 0, %if.end7 ] %page_id.0.ph = phi i32 [ %page_id.179, %if.end133 ], [ 0, %if.end7 ] %drop_unread.0.ph = phi i1 [ %drop_unread.181, %if.end133 ], [ false, %if.end7 ] - %compacting.0.ph = phi i8 [ %compacting.2, %if.end133 ], [ 0, %if.end7 ] + %compacting.0.ph = phi i1 [ %compacting.2, %if.end133 ], [ false, %if.end7 ] %page_offset.0.ph = phi i32 [ %page_offset.2, %if.end133 ], [ 0, %if.end7 ] %to_sleep.0.ph = phi i32 [ 10000, %if.end133 ], [ %0, %if.end7 ] - %tobool20 = trunc nuw i8 %compacting.0.ph to i1 br label %while.body while.body: ; preds = %while.body.outer, %if.else136 %page_size.0 = phi i64 [ %page_size.2.ph89, %if.else136 ], [ %page_size.0.ph, %while.body.outer ] %drop_unread.0 = phi i1 [ %drop_unread.2.ph90, %if.else136 ], [ %drop_unread.0.ph, %while.body.outer ] + %compacting.0 = phi i1 [ false, %if.else136 ], [ %compacting.0.ph, %while.body.outer ] %to_sleep.0 = phi i32 [ %spec.select, %if.else136 ], [ %to_sleep.0.ph, %while.body.outer ] %call15 = call i32 @pthread_mutex_unlock(ptr noundef nonnull @storage_compact_plock) #22 %tobool.not = icmp eq i32 %to_sleep.0, 0 @@ -1817,7 +1817,7 @@ if.then16: ; preds = %while.body if.end18: ; preds = %if.then16, %while.body %call19 = call i32 @pthread_mutex_lock(ptr noundef nonnull @storage_compact_plock) #22 - br i1 %tobool20, label %if.then36, label %land.lhs.true + br i1 %compacting.0, label %if.then36, label %land.lhs.true land.lhs.true: ; preds = %if.end18 call void @llvm.lifetime.start.p0(i64 144, ptr nonnull %st.i) @@ -1948,12 +1948,11 @@ if.then31: ; preds = %if.end28 br label %if.then36 if.then36: ; preds = %if.end18, %if.end28, %if.then31 - %page_offset.183 = phi i32 [ 0, %if.then31 ], [ 0, %if.end28 ], [ %page_offset.0.ph, %if.end18 ] - %compacting.182 = phi i8 [ 1, %if.then31 ], [ 1, %if.end28 ], [ %compacting.0.ph, %if.end18 ] - %drop_unread.181 = phi i1 [ %cmp69.not.i, %if.then31 ], [ %cmp69.not.i, %if.end28 ], [ %drop_unread.0, %if.end18 ] - %page_id.179 = phi i32 [ %page_id.2, %if.then31 ], [ %page_id.2, %if.end28 ], [ %page_id.0.ph, %if.end18 ] - %page_size.176 = phi i64 [ %22, %if.then31 ], [ %22, %if.end28 ], [ %page_size.0, %if.end18 ] - %page_version.175 = phi i64 [ %page_version.2, %if.then31 ], [ %page_version.2, %if.end28 ], [ %page_version.0.ph, %if.end18 ] + %page_offset.183 = phi i32 [ 0, %if.end28 ], [ 0, %if.then31 ], [ %page_offset.0.ph, %if.end18 ] + %compacting.182 = phi i1 [ %cmp69.not.i, %if.end28 ], [ %cmp69.not.i, %if.then31 ], [ %drop_unread.0, %if.end18 ] + %drop_unread.181 = phi i32 [ %page_id.2, %if.end28 ], [ %page_id.2, %if.then31 ], [ %page_id.0.ph, %if.end18 ] + %page_id.179 = phi i64 [ %22, %if.end28 ], [ %22, %if.then31 ], [ %page_size.0, %if.end18 ] + %page_size.176 = phi i64 [ %page_version.2, %if.end28 ], [ %page_version.2, %if.then31 ], [ %page_version.0.ph, %if.end18 ] %call38 = call i32 @pthread_mutex_lock(ptr noundef nonnull %lock) #22 %conv39 = zext i32 %page_offset.183 to i64 %cmp40 = icmp ugt i64 %page_size.176, %conv39 @@ -2363,14 +2362,14 @@ if.then126: ; preds = %if.then112 br label %if.end133 if.end133: ; preds = %do.end77, %if.else108, %if.then112, %if.then126, %storage_compact_readback.exit, %if.then48 - %compacting.2 = phi i8 [ 0, %do.end77 ], [ %compacting.182, %storage_compact_readback.exit ], [ 0, %if.then126 ], [ 0, %if.then112 ], [ %compacting.182, %if.else108 ], [ %compacting.182, %if.then48 ] + %compacting.2 = phi i1 [ false, %do.end77 ], [ true, %storage_compact_readback.exit ], [ false, %if.then126 ], [ false, %if.then112 ], [ true, %if.else108 ], [ true, %if.then48 ] %page_offset.2 = phi i32 [ %page_offset.183, %do.end77 ], [ %add, %storage_compact_readback.exit ], [ %page_offset.183, %if.then126 ], [ %page_offset.183, %if.then112 ], [ %page_offset.183, %if.else108 ], [ %page_offset.183, %if.then48 ] %call135 = call i32 @pthread_mutex_unlock(ptr noundef nonnull %lock) #22 br label %while.body.outer -if.else136: ; preds = %if.else.i, %land.lhs.true.i, %land.lhs.true76.i, %land.lhs.true, %if.end.i, %if.else.i.thread - %drop_unread.2.ph90 = phi i1 [ %drop_unread.0, %land.lhs.true ], [ %drop_unread.0, %if.end.i ], [ false, %if.else.i.thread ], [ false, %land.lhs.true76.i ], [ false, %land.lhs.true.i ], [ false, %if.else.i ] - %page_size.2.ph89 = phi i64 [ %page_size.0, %land.lhs.true ], [ %page_size.0, %if.end.i ], [ %17, %if.else.i.thread ], [ %22, %land.lhs.true76.i ], [ %22, %land.lhs.true.i ], [ %22, %if.else.i ] +if.else136: ; preds = %land.lhs.true76.i, %land.lhs.true.i, %if.else.i, %if.else.i.thread, %if.end.i, %land.lhs.true + %drop_unread.2.ph90 = phi i1 [ %drop_unread.0, %land.lhs.true ], [ %drop_unread.0, %if.end.i ], [ false, %if.else.i.thread ], [ false, %if.else.i ], [ false, %land.lhs.true.i ], [ false, %land.lhs.true76.i ] + %page_size.2.ph89 = phi i64 [ %page_size.0, %land.lhs.true ], [ %page_size.0, %if.end.i ], [ %17, %if.else.i.thread ], [ %22, %if.else.i ], [ %22, %land.lhs.true.i ], [ %22, %land.lhs.true76.i ] call void @llvm.lifetime.end.p0(i64 144, ptr nonnull %st.i) %97 = load i32, ptr getelementptr inbounds nuw (i8, ptr @settings, i64 292), align 4 %cmp137 = icmp ult i32 %to_sleep.0, %97 diff --git a/bench/mini-lsm-rs/optimized/1m9jerzd56wr2irm.ll b/bench/mini-lsm-rs/optimized/1m9jerzd56wr2irm.ll index cba39a43b68..4bdd9f6a342 100644 --- a/bench/mini-lsm-rs/optimized/1m9jerzd56wr2irm.ll +++ b/bench/mini-lsm-rs/optimized/1m9jerzd56wr2irm.ll @@ -1070,10 +1070,11 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 256: ; preds = %256, %254 %.sroa.0.012.i.i.i.i = phi i64 [ 0, %254 ], [ %spec.select8.i.i.i.i, %256 ] - %257 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, %246 - %258 = zext i1 %257 to i64 - %spec.select8.i.i.i.i = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %258 - %259 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, 12 + %257 = icmp samesign uge i64 %.sroa.0.012.i.i.i.i, %246 + %258 = xor i1 %257, true + %spec.select8.i.i.i.i = zext i1 %not..i.i.i.i to i64 + %259 = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %258 + %259 = icmp samesign ult i64 %.sroa.0.011.i.i.i.i, 12 tail call void @llvm.assume(i1 %259) %260 = getelementptr inbounds nuw ptr, ptr %247, i64 %.sroa.0.012.i.i.i.i %261 = load ptr, ptr %260, align 8, !alias.scope !147, !noalias !150, !nonnull !21, !noundef !21 @@ -1082,9 +1083,9 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec %263 = trunc nuw nsw i64 %.sroa.0.012.i.i.i.i to i16 %264 = getelementptr inbounds nuw i8, ptr %261, i64 800 store i16 %263, ptr %264, align 8, !noalias !150 - %.not.i.i.i.i.i.i = icmp samesign ule i64 %spec.select8.i.i.i.i, %246 - %or.cond.i.not.i.i.i = select i1 %257, i1 %.not.i.i.i.i.i.i, i1 false - br i1 %or.cond.i.not.i.i.i, label %256, label %268 + %.not.i.i.i.i.i.i = icmp samesign ugt i64 %spec.select8.i.i.i.i, %246 + %or.cond.i.not.i.i.i = select i1 %257, i1 true, i1 %.not.i.i.i.i.i.i + br i1 %or.cond.i.not.i.i.i, label %268, label %256 265: ; preds = %233 %266 = landingpad { ptr, i32 } @@ -1622,10 +1623,11 @@ _ZN5alloc11collections5btree4node12slice_insert17h11299f5dccbbd5daE.exit.i.i: ; 188: ; preds = %188, %186 %.sroa.0.012.i.i.i.i = phi i64 [ 0, %186 ], [ %spec.select8.i.i.i.i, %188 ] - %189 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, %178 - %190 = zext i1 %189 to i64 - %spec.select8.i.i.i.i = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %190 - %191 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, 12 + %189 = icmp samesign uge i64 %.sroa.0.012.i.i.i.i, %178 + %190 = xor i1 %189, true + %spec.select8.i.i.i.i = zext i1 %not..i.i.i.i to i64 + %191 = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %190 + %191 = icmp samesign ult i64 %.sroa.0.011.i.i.i.i, 12 tail call void @llvm.assume(i1 %191) %192 = getelementptr inbounds nuw ptr, ptr %179, i64 %.sroa.0.012.i.i.i.i %193 = load ptr, ptr %192, align 8, !alias.scope !253, !noalias !256, !nonnull !21, !noundef !21 @@ -1633,9 +1635,9 @@ _ZN5alloc11collections5btree4node12slice_insert17h11299f5dccbbd5daE.exit.i.i: ; %194 = trunc nuw nsw i64 %.sroa.0.012.i.i.i.i to i16 %195 = getelementptr inbounds nuw i8, ptr %193, i64 184 store i16 %194, ptr %195, align 8, !noalias !256 - %.not.i.i.i.i.i.i = icmp samesign ule i64 %spec.select8.i.i.i.i, %178 - %or.cond.i.not.i.i.i = select i1 %189, i1 %.not.i.i.i.i.i.i, i1 false - br i1 %or.cond.i.not.i.i.i, label %188, label %"_ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h48dc742b87bd125cE.exit.i" + %.not.i.i.i.i.i.i = icmp samesign ugt i64 %spec.select8.i.i.i.i, %178 + %or.cond.i.not.i.i.i = select i1 %189, i1 true, i1 %.not.i.i.i.i.i.i + br i1 %or.cond.i.not.i.i.i, label %"_ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h48dc742b87bd125cE.exit.i", label %188 196: ; preds = %165, %163 %.pn.i.i = phi { ptr, i32 } [ %166, %165 ], [ %164, %163 ] diff --git a/bench/mini-lsm-rs/optimized/2vbarw74mreksmkr.ll b/bench/mini-lsm-rs/optimized/2vbarw74mreksmkr.ll index ee6b11f7373..325928814d7 100644 --- a/bench/mini-lsm-rs/optimized/2vbarw74mreksmkr.ll +++ b/bench/mini-lsm-rs/optimized/2vbarw74mreksmkr.ll @@ -9852,6 +9852,8 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h08c022e240b705e4E.exit.i.i.i %128 = load i64, ptr %66, align 8, !noundef !7 %129 = icmp ne i64 %128, 0 %brmerge = select i1 %129, i1 true, i1 %.03698 + %not. = xor i1 %129, true + %.036.mux = select i1 %not., i1 true, i1 %.03698 br i1 %brmerge, label %149, label %148 130: ; preds = %95 @@ -9905,7 +9907,7 @@ _ZN3std4hash6random11RandomState3new4KEYS7__getit17h08c022e240b705e4E.exit.i.i.i br i1 %.not41, label %154, label %151, !prof !836 149: ; preds = %127, %167 - %.137 = phi i1 [ true, %167 ], [ %.03698, %127 ] + %.137 = phi i1 [ true, %167 ], [ %.036.mux, %127 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18) %150 = icmp eq ptr %73, %61 br i1 %150, label %._crit_edge, label %72 diff --git a/bench/mini-lsm-rs/optimized/55xmw4789m5zjpyd.ll b/bench/mini-lsm-rs/optimized/55xmw4789m5zjpyd.ll index ccf73b51e15..757c01085a2 100644 --- a/bench/mini-lsm-rs/optimized/55xmw4789m5zjpyd.ll +++ b/bench/mini-lsm-rs/optimized/55xmw4789m5zjpyd.ll @@ -1160,12 +1160,10 @@ default.unreachable: ; preds = %24 br label %._crit_edge 40: ; preds = %21 - %41 = inttoptr i64 %22 to ptr - %42 = load i64, ptr %5, align 8, !noundef !35 - %43 = add i64 %42, %22 - store i64 %43, ptr %5, align 8 - %.not7 = icmp eq i64 %20, 0 - br i1 %.not7, label %44, label %.thread + %41 = load i64, ptr %5, align 8, !noundef !35 + %42 = add i64 %41, %22 + store i64 %42, ptr %5, align 8 + br label %43 _ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit: ; preds = %24 %.mask20.i = and i64 %25, -4294967296 @@ -1178,8 +1176,8 @@ _ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit: ; preds = %24 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) ret ptr %.0 -44: ; preds = %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17he8aa6200c24a6803E.exit", %40 - %45 = phi i64 [ %.pre, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17he8aa6200c24a6803E.exit" ], [ %43, %40 ] +44: ; preds = %40, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17he8aa6200c24a6803E.exit" + %45 = phi i64 [ %.pre, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17he8aa6200c24a6803E.exit" ], [ %42, %40 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3) %46 = load ptr, ptr %4, align 8, !nonnull !35, !align !82, !noundef !35 %47 = getelementptr inbounds nuw i8, ptr %46, i64 16 @@ -1187,10 +1185,9 @@ _ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit: ; preds = %24 %.not = icmp ult i64 %45, %48 br i1 %.not, label %12, label %._crit_edge -.thread: ; preds = %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit, %33, %29, %27, %40 - %49 = phi ptr [ %.val, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ], [ %.val, %33 ], [ %.val, %29 ], [ %.val, %27 ], [ %41, %40 ] +.thread: ; preds = %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit, %33, %29, %27 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %2), !noalias !204 - invoke void @_ZN3std2io5error14repr_bitpacked11decode_repr17h77b86a63e6b4a41eE.llvm.8684371289217427975(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %2, ptr noundef nonnull %49) + invoke void @_ZN3std2io5error14repr_bitpacked11decode_repr17h77b86a63e6b4a41eE.llvm.8684371289217427975(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %2, ptr noundef nonnull %.val) to label %.noexc unwind label %14 .noexc: ; preds = %.thread diff --git a/bench/msgpack/optimized/speed_test.cpp.ll b/bench/msgpack/optimized/speed_test.cpp.ll index 7d421735781..3bcf01369a0 100644 --- a/bench/msgpack/optimized/speed_test.cpp.ll +++ b/bench/msgpack/optimized/speed_test.cpp.ll @@ -2279,7 +2279,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p %32 = phi ptr [ %2153, %2151 ], [ null, %22 ] %33 = load i32, ptr %23, align 8, !tbaa !120 %34 = icmp eq i32 %33, 0 - br i1 %34, label %35, label %324 + br i1 %34, label %35, label %325 35: ; preds = %29 %36 = load i8, ptr %30, align 1, !tbaa !22 @@ -2665,7 +2665,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 270: ; preds = %194 store i32 32, ptr %23, align 8, !tbaa !120 - br label %329 + br label %330 271: ; preds = %191 %272 = and i8 %36, -16 @@ -2761,48 +2761,55 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p %319 = phi i32 [ %317, %316 ], [ %190, %182 ] %320 = phi i8 [ 0, %316 ], [ 1, %182 ] %321 = icmp eq i32 %319, 0 - br i1 %321, label %322, label %324 + br i1 %321, label %322, label %._crit_edge + +._crit_edge: ; preds = %318 + %.pre = load ptr, ptr %19, align 8, !tbaa !125 + br label %325 322: ; preds = %318 %323 = trunc nuw i8 %320 to i1 br i1 %323, label %324, label %2151 -324: ; preds = %322, %318, %29 - %325 = phi i8 [ %320, %322 ], [ %320, %318 ], [ %31, %29 ] - %326 = phi i32 [ 0, %322 ], [ %319, %318 ], [ %33, %29 ] - %327 = trunc nuw i8 %325 to i1 - %328 = load ptr, ptr %19, align 8, !tbaa !125 - br i1 %327, label %329, label %333 - -329: ; preds = %324, %270 - %330 = phi ptr [ %30, %270 ], [ %328, %324 ] - %331 = phi i32 [ 32, %270 ], [ %326, %324 ] - %332 = getelementptr inbounds nuw i8, ptr %330, i64 1 - store ptr %332, ptr %19, align 8, !tbaa !125 - br label %333 - -333: ; preds = %329, %324 - %334 = phi ptr [ %332, %329 ], [ %328, %324 ] - %335 = phi i32 [ %331, %329 ], [ %326, %324 ] - %336 = phi i8 [ 0, %329 ], [ %325, %324 ] - %337 = ptrtoint ptr %334 to i64 +324: ; preds = %322 + %325 = load ptr, ptr %19, align 8, !tbaa !125 + br label %330 + +325:; preds = %._crit_edge, %29 + %326 = phi ptr [ %.pre, %._crit_edge ], [ %30, %29 ] + %327 = phi i8 [ %320, %._crit_edge ], [ %31, %29 ] + %328 = phi i32 [ %319, %._crit_edge ], [ %33, %29 ] + %330 = trunc nuw i8 %327 to i1 + br i1 %329, label %330, label %334 + +330:; preds = %324, %325, %270 + %331 = phi ptr [ %30, %270 ], [ %326, %325 ], [ %324, %324 ] + %332 = phi i32 [ 32, %270 ], [ %328, %325 ], [ 0, %.thread ] + %333 = getelementptr inbounds nuw i8, ptr %331, i64 1 + store ptr %333, ptr %19, align 8, !tbaa !125 + br label %334 + +334: ; preds = %330, %325 + %335 = phi ptr [ %333, %330 ], [ %326, %325 ] + %336 = phi i32 [ %332, %330 ], [ %328, %325 ] + %337 = ptrtoint ptr %335 to i64 %338 = sub i64 %28, %337 %339 = load i64, ptr %25, align 8, !tbaa !113 %340 = icmp ult i64 %338, %339 br i1 %340, label %341, label %345 -341: ; preds = %333 +341: ; preds = %334 %342 = load ptr, ptr %0, align 8, !tbaa !124 %343 = ptrtoint ptr %342 to i64 %344 = sub i64 %337, %343 store i64 %344, ptr %3, align 8, !tbaa !65 br label %.loopexit174 -345: ; preds = %333 - %346 = getelementptr i8, ptr %334, i64 %339 +345: ; preds = %334 + %346 = getelementptr i8, ptr %335, i64 %339 %347 = getelementptr i8, ptr %346, i64 -1 store ptr %347, ptr %19, align 8, !tbaa !125 - switch i32 %335, label %2139 [ + switch i32 %336, label %2139 [ i32 10, label %348 i32 11, label %421 i32 12, label %492 @@ -2837,7 +2844,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p ] 348: ; preds = %345 - %349 = load i32, ptr %334, align 1 + %349 = load i32, ptr %335, align 1 %350 = call noundef i32 @llvm.bswap.i32(i32 %349) %351 = load ptr, ptr %24, align 8, !tbaa !126 %352 = bitcast i32 %350 to float @@ -2953,7 +2960,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 421: ; preds = %345 - %422 = load i64, ptr %334, align 1 + %422 = load i64, ptr %335, align 1 %423 = call noundef i64 @llvm.bswap.i64(i64 %422) %424 = load ptr, ptr %24, align 8, !tbaa !126 %425 = getelementptr inbounds nuw i8, ptr %424, i64 96 @@ -3067,7 +3074,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 492: ; preds = %345 - %493 = load i8, ptr %334, align 1, !tbaa !22 + %493 = load i8, ptr %335, align 1, !tbaa !22 %494 = load ptr, ptr %24, align 8, !tbaa !126 %495 = zext i8 %493 to i64 %496 = getelementptr inbounds nuw i8, ptr %494, i64 96 @@ -3181,7 +3188,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 563: ; preds = %345 - %564 = load i16, ptr %334, align 1 + %564 = load i16, ptr %335, align 1 %565 = call noundef i16 @llvm.bswap.i16(i16 %564) %566 = load ptr, ptr %24, align 8, !tbaa !126 %567 = zext i16 %565 to i64 @@ -3296,7 +3303,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 635: ; preds = %345 - %636 = load i32, ptr %334, align 1 + %636 = load i32, ptr %335, align 1 %637 = call noundef i32 @llvm.bswap.i32(i32 %636) %638 = load ptr, ptr %24, align 8, !tbaa !126 %639 = zext i32 %637 to i64 @@ -3411,7 +3418,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 707: ; preds = %345 - %708 = load i64, ptr %334, align 1 + %708 = load i64, ptr %335, align 1 %709 = call noundef i64 @llvm.bswap.i64(i64 %708) %710 = load ptr, ptr %24, align 8, !tbaa !126 %711 = getelementptr inbounds nuw i8, ptr %710, i64 96 @@ -3525,7 +3532,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 778: ; preds = %345 - %779 = load i8, ptr %334, align 1, !tbaa !22 + %779 = load i8, ptr %335, align 1, !tbaa !22 %780 = load ptr, ptr %24, align 8, !tbaa !126 %781 = sext i8 %779 to i64 %782 = getelementptr inbounds nuw i8, ptr %780, i64 96 @@ -3641,7 +3648,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 851: ; preds = %345 - %852 = load i16, ptr %334, align 1 + %852 = load i16, ptr %335, align 1 %853 = call noundef i16 @llvm.bswap.i16(i16 %852) %854 = load ptr, ptr %24, align 8, !tbaa !126 %855 = sext i16 %853 to i64 @@ -3758,7 +3765,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 925: ; preds = %345 - %926 = load i32, ptr %334, align 1 + %926 = load i32, ptr %335, align 1 %927 = call noundef i32 @llvm.bswap.i32(i32 %926) %928 = load ptr, ptr %24, align 8, !tbaa !126 %929 = sext i32 %927 to i64 @@ -3875,7 +3882,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 999: ; preds = %345 - %1000 = load i64, ptr %334, align 1 + %1000 = load i64, ptr %335, align 1 %1001 = call noundef i64 @llvm.bswap.i64(i64 %1000) %1002 = load ptr, ptr %24, align 8, !tbaa !126 %1003 = getelementptr inbounds nuw i8, ptr %1002, i64 96 @@ -3992,7 +3999,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1072: ; preds = %345 %1073 = load ptr, ptr %24, align 8, !tbaa !126 - %1074 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1073, ptr noundef %334, i32 noundef 2) + %1074 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1073, ptr noundef %335, i32 noundef 2) %1075 = load ptr, ptr %19, align 8, !tbaa !125 %1076 = getelementptr inbounds nuw i8, ptr %1075, i64 1 store ptr %1076, ptr %19, align 8, !tbaa !125 @@ -4110,7 +4117,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1144: ; preds = %345 %1145 = load ptr, ptr %24, align 8, !tbaa !126 - %1146 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1145, ptr noundef %334, i32 noundef 3) + %1146 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1145, ptr noundef %335, i32 noundef 3) %1147 = load ptr, ptr %19, align 8, !tbaa !125 %1148 = getelementptr inbounds nuw i8, ptr %1147, i64 1 store ptr %1148, ptr %19, align 8, !tbaa !125 @@ -4228,7 +4235,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1216: ; preds = %345 %1217 = load ptr, ptr %24, align 8, !tbaa !126 - %1218 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1217, ptr noundef %334, i32 noundef 5) + %1218 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1217, ptr noundef %335, i32 noundef 5) %1219 = load ptr, ptr %19, align 8, !tbaa !125 %1220 = getelementptr inbounds nuw i8, ptr %1219, i64 1 store ptr %1220, ptr %19, align 8, !tbaa !125 @@ -4346,7 +4353,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1288: ; preds = %345 %1289 = load ptr, ptr %24, align 8, !tbaa !126 - %1290 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1289, ptr noundef %334, i32 noundef 9) + %1290 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1289, ptr noundef %335, i32 noundef 9) %1291 = load ptr, ptr %19, align 8, !tbaa !125 %1292 = getelementptr inbounds nuw i8, ptr %1291, i64 1 store ptr %1292, ptr %19, align 8, !tbaa !125 @@ -4464,7 +4471,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1360: ; preds = %345 %1361 = load ptr, ptr %24, align 8, !tbaa !126 - %1362 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1361, ptr noundef %334, i32 noundef 17) + %1362 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1361, ptr noundef %335, i32 noundef 17) %1363 = load ptr, ptr %19, align 8, !tbaa !125 %1364 = getelementptr inbounds nuw i8, ptr %1363, i64 1 store ptr %1364, ptr %19, align 8, !tbaa !125 @@ -4581,7 +4588,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 1432: ; preds = %345 - %1433 = load i8, ptr %334, align 1, !tbaa !22 + %1433 = load i8, ptr %335, align 1, !tbaa !22 %1434 = zext i8 %1433 to i64 store i64 %1434, ptr %25, align 8, !tbaa !113 %1435 = icmp eq i8 %1433, 0 @@ -4589,7 +4596,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1436: ; preds = %1432 %1437 = load ptr, ptr %24, align 8, !tbaa !126 - %1438 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_strEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1437, ptr noundef nonnull %334, i32 noundef 0) + %1438 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_strEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1437, ptr noundef nonnull %335, i32 noundef 0) %1439 = load ptr, ptr %19, align 8, !tbaa !125 %1440 = getelementptr inbounds nuw i8, ptr %1439, i64 1 store ptr %1440, ptr %19, align 8, !tbaa !125 @@ -4706,7 +4713,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 1508: ; preds = %345 - %1509 = load i8, ptr %334, align 1, !tbaa !22 + %1509 = load i8, ptr %335, align 1, !tbaa !22 %1510 = zext i8 %1509 to i64 store i64 %1510, ptr %25, align 8, !tbaa !113 %1511 = icmp eq i8 %1509, 0 @@ -4714,7 +4721,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1512: ; preds = %1508 %1513 = load ptr, ptr %24, align 8, !tbaa !126 - %1514 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_binEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1513, ptr noundef nonnull %334, i32 noundef 0) + %1514 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_binEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1513, ptr noundef nonnull %335, i32 noundef 0) %1515 = load ptr, ptr %19, align 8, !tbaa !125 %1516 = getelementptr inbounds nuw i8, ptr %1515, i64 1 store ptr %1516, ptr %19, align 8, !tbaa !125 @@ -4831,14 +4838,14 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 1584: ; preds = %345 - %1585 = load i8, ptr %334, align 1, !tbaa !22 + %1585 = load i8, ptr %335, align 1, !tbaa !22 %1586 = zext i8 %1585 to i64 %1587 = add nuw nsw i64 %1586, 1 store i64 %1587, ptr %25, align 8, !tbaa !113 br label %.loopexit 1588: ; preds = %345 - %1589 = load i16, ptr %334, align 1 + %1589 = load i16, ptr %335, align 1 %1590 = call noundef i16 @llvm.bswap.i16(i16 %1589) %1591 = zext i16 %1590 to i64 store i64 %1591, ptr %25, align 8, !tbaa !113 @@ -4848,7 +4855,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1593: ; preds = %1588 %1594 = load ptr, ptr %24, align 8, !tbaa !126 %1595 = zext nneg i16 %1590 to i32 - %1596 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_strEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1594, ptr noundef nonnull %334, i32 noundef %1595) + %1596 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_strEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1594, ptr noundef nonnull %335, i32 noundef %1595) %1597 = load ptr, ptr %19, align 8, !tbaa !125 %1598 = getelementptr inbounds nuw i8, ptr %1597, i64 1 store ptr %1598, ptr %19, align 8, !tbaa !125 @@ -4965,7 +4972,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 1666: ; preds = %345 - %1667 = load i16, ptr %334, align 1 + %1667 = load i16, ptr %335, align 1 %1668 = call noundef i16 @llvm.bswap.i16(i16 %1667) %1669 = zext i16 %1668 to i64 store i64 %1669, ptr %25, align 8, !tbaa !113 @@ -4975,7 +4982,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1671: ; preds = %1666 %1672 = load ptr, ptr %24, align 8, !tbaa !126 %1673 = zext nneg i16 %1668 to i32 - %1674 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_binEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1672, ptr noundef nonnull %334, i32 noundef %1673) + %1674 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_binEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1672, ptr noundef nonnull %335, i32 noundef %1673) %1675 = load ptr, ptr %19, align 8, !tbaa !125 %1676 = getelementptr inbounds nuw i8, ptr %1675, i64 1 store ptr %1676, ptr %19, align 8, !tbaa !125 @@ -5092,7 +5099,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 1744: ; preds = %345 - %1745 = load i16, ptr %334, align 1 + %1745 = load i16, ptr %335, align 1 %1746 = call noundef i16 @llvm.bswap.i16(i16 %1745) %1747 = zext i16 %1746 to i64 %1748 = add nuw nsw i64 %1747, 1 @@ -5100,7 +5107,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit 1749: ; preds = %345 - %1750 = load i32, ptr %334, align 1 + %1750 = load i32, ptr %335, align 1 %1751 = call noundef i32 @llvm.bswap.i32(i32 %1750) %1752 = zext i32 %1751 to i64 store i64 %1752, ptr %25, align 8, !tbaa !113 @@ -5109,7 +5116,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1754: ; preds = %1749 %1755 = load ptr, ptr %24, align 8, !tbaa !126 - %1756 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_strEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1755, ptr noundef nonnull %334, i32 noundef %1751) + %1756 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_strEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1755, ptr noundef nonnull %335, i32 noundef %1751) %1757 = load ptr, ptr %19, align 8, !tbaa !125 %1758 = getelementptr inbounds nuw i8, ptr %1757, i64 1 store ptr %1758, ptr %19, align 8, !tbaa !125 @@ -5226,7 +5233,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 1826: ; preds = %345 - %1827 = load i32, ptr %334, align 1 + %1827 = load i32, ptr %335, align 1 %1828 = call noundef i32 @llvm.bswap.i32(i32 %1827) %1829 = zext i32 %1828 to i64 store i64 %1829, ptr %25, align 8, !tbaa !113 @@ -5235,7 +5242,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1831: ; preds = %1826 %1832 = load ptr, ptr %24, align 8, !tbaa !126 - %1833 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_binEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1832, ptr noundef nonnull %334, i32 noundef %1828) + %1833 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_binEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1832, ptr noundef nonnull %335, i32 noundef %1828) %1834 = load ptr, ptr %19, align 8, !tbaa !125 %1835 = getelementptr inbounds nuw i8, ptr %1834, i64 1 store ptr %1835, ptr %19, align 8, !tbaa !125 @@ -5352,7 +5359,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p br label %.loopexit174 1903: ; preds = %345 - %1904 = load i32, ptr %334, align 1 + %1904 = load i32, ptr %335, align 1 %1905 = call noundef i32 @llvm.bswap.i32(i32 %1904) %1906 = zext i32 %1905 to i64 %1907 = add nuw nsw i64 %1906, 1 @@ -5362,7 +5369,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1908: ; preds = %345 %1909 = load ptr, ptr %24, align 8, !tbaa !126 %1910 = trunc i64 %339 to i32 - %1911 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_strEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1909, ptr noundef %334, i32 noundef %1910) + %1911 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_strEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1909, ptr noundef %335, i32 noundef %1910) %1912 = load ptr, ptr %19, align 8, !tbaa !125 %1913 = getelementptr inbounds nuw i8, ptr %1912, i64 1 store ptr %1913, ptr %19, align 8, !tbaa !125 @@ -5481,7 +5488,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 1981: ; preds = %345 %1982 = load ptr, ptr %24, align 8, !tbaa !126 %1983 = trunc i64 %339 to i32 - %1984 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_binEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1982, ptr noundef %334, i32 noundef %1983) + %1984 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_binEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %1982, ptr noundef %335, i32 noundef %1983) %1985 = load ptr, ptr %19, align 8, !tbaa !125 %1986 = getelementptr inbounds nuw i8, ptr %1985, i64 1 store ptr %1986, ptr %19, align 8, !tbaa !125 @@ -5600,7 +5607,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p 2054: ; preds = %345 %2055 = load ptr, ptr %24, align 8, !tbaa !126 %2056 = trunc i64 %339 to i32 - %2057 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %2055, ptr noundef %334, i32 noundef %2056) + %2057 = call noundef zeroext i1 @_ZN7msgpack2v26detail21create_object_visitor9visit_extEPKcj(ptr noundef nonnull align 8 dereferenceable(121) %2055, ptr noundef %335, i32 noundef %2056) %2058 = load ptr, ptr %19, align 8, !tbaa !125 %2059 = getelementptr inbounds nuw i8, ptr %2058, i64 1 store ptr %2059, ptr %19, align 8, !tbaa !125 @@ -5721,7 +5728,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p store ptr %0, ptr %9, align 8, !tbaa !34 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %10) #25 store ptr %0, ptr %10, align 8, !tbaa !34 - %2128 = call noundef i32 @_ZN7msgpack2v26detail7contextINS1_12parse_helperINS1_21create_object_visitorEEEE15start_aggregateItNS6_8array_svENS6_8array_evEEENS0_12parse_returnERKT0_RKT1_PKcRm(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef %334, ptr noundef nonnull align 8 dereferenceable(8) %3) + %2128 = call noundef i32 @_ZN7msgpack2v26detail7contextINS1_12parse_helperINS1_21create_object_visitorEEEE15start_aggregateItNS6_8array_svENS6_8array_evEEENS0_12parse_returnERKT0_RKT1_PKcRm(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %9, ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef %335, ptr noundef nonnull align 8 dereferenceable(8) %3) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %10) #25 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %9) #25 %2129 = icmp eq i32 %2128, 0 @@ -5732,7 +5739,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p store ptr %0, ptr %11, align 8, !tbaa !34 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %12) #25 store ptr %0, ptr %12, align 8, !tbaa !34 - %2131 = call noundef i32 @_ZN7msgpack2v26detail7contextINS1_12parse_helperINS1_21create_object_visitorEEEE15start_aggregateIjNS6_8array_svENS6_8array_evEEENS0_12parse_returnERKT0_RKT1_PKcRm(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef %334, ptr noundef nonnull align 8 dereferenceable(8) %3) + %2131 = call noundef i32 @_ZN7msgpack2v26detail7contextINS1_12parse_helperINS1_21create_object_visitorEEEE15start_aggregateIjNS6_8array_svENS6_8array_evEEENS0_12parse_returnERKT0_RKT1_PKcRm(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %11, ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef %335, ptr noundef nonnull align 8 dereferenceable(8) %3) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %12) #25 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %11) #25 %2132 = icmp eq i32 %2131, 0 @@ -5743,7 +5750,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p store ptr %0, ptr %13, align 8, !tbaa !34 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %14) #25 store ptr %0, ptr %14, align 8, !tbaa !34 - %2134 = call noundef i32 @_ZN7msgpack2v26detail7contextINS1_12parse_helperINS1_21create_object_visitorEEEE15start_aggregateItNS6_6map_svENS6_6map_evEEENS0_12parse_returnERKT0_RKT1_PKcRm(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef %334, ptr noundef nonnull align 8 dereferenceable(8) %3) + %2134 = call noundef i32 @_ZN7msgpack2v26detail7contextINS1_12parse_helperINS1_21create_object_visitorEEEE15start_aggregateItNS6_6map_svENS6_6map_evEEENS0_12parse_returnERKT0_RKT1_PKcRm(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef nonnull align 8 dereferenceable(8) %14, ptr noundef %335, ptr noundef nonnull align 8 dereferenceable(8) %3) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %14) #25 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %13) #25 %2135 = icmp eq i32 %2134, 0 @@ -5754,7 +5761,7 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p store ptr %0, ptr %15, align 8, !tbaa !34 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %16) #25 store ptr %0, ptr %16, align 8, !tbaa !34 - %2137 = call noundef i32 @_ZN7msgpack2v26detail7contextINS1_12parse_helperINS1_21create_object_visitorEEEE15start_aggregateIjNS6_6map_svENS6_6map_evEEENS0_12parse_returnERKT0_RKT1_PKcRm(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef %334, ptr noundef nonnull align 8 dereferenceable(8) %3) + %2137 = call noundef i32 @_ZN7msgpack2v26detail7contextINS1_12parse_helperINS1_21create_object_visitorEEEE15start_aggregateIjNS6_6map_svENS6_6map_evEEENS0_12parse_returnERKT0_RKT1_PKcRm(ptr noundef nonnull align 8 dereferenceable(56) %0, ptr noundef nonnull align 8 dereferenceable(8) %15, ptr noundef nonnull align 8 dereferenceable(8) %16, ptr noundef %335, ptr noundef nonnull align 8 dereferenceable(8) %3) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %16) #25 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %15) #25 %2138 = icmp eq i32 %2137, 0 @@ -5775,14 +5782,14 @@ define linkonce_odr dso_local noundef i32 @_ZN7msgpack2v26detail7contextINS1_12p .loopexit: ; preds = %217, %2074, %2001, %1928, %1850, %1773, %1691, %1613, %1531, %1455, %1379, %1307, %1235, %1163, %1091, %1019, %946, %872, %798, %725, %654, %582, %510, %439, %368, %127, %55, %2104, %2085, %2031, %2012, %1958, %1939, %1903, %1880, %1861, %1826, %1803, %1784, %1749, %1744, %1721, %1702, %1666, %1643, %1624, %1588, %1584, %1561, %1542, %1508, %1485, %1466, %1432, %1409, %1390, %1337, %1318, %1265, %1246, %1193, %1174, %1121, %1102, %1049, %1030, %976, %957, %902, %883, %828, %809, %755, %736, %684, %665, %612, %593, %540, %521, %469, %450, %398, %379, %247, %228, %157, %138, %85, %66 %2148 = phi i32 [ 34, %1903 ], [ 34, %1744 ], [ 34, %1584 ], [ 0, %66 ], [ 0, %85 ], [ 0, %138 ], [ 0, %157 ], [ 0, %228 ], [ 0, %247 ], [ 0, %379 ], [ 0, %398 ], [ 0, %450 ], [ 0, %469 ], [ 0, %521 ], [ 0, %540 ], [ 0, %593 ], [ 0, %612 ], [ 0, %665 ], [ 0, %684 ], [ 0, %736 ], [ 0, %755 ], [ 0, %809 ], [ 0, %828 ], [ 0, %883 ], [ 0, %902 ], [ 0, %957 ], [ 0, %976 ], [ 0, %1030 ], [ 0, %1049 ], [ 0, %1102 ], [ 0, %1121 ], [ 0, %1174 ], [ 0, %1193 ], [ 0, %1246 ], [ 0, %1265 ], [ 0, %1318 ], [ 0, %1337 ], [ 0, %1390 ], [ 0, %1409 ], [ 32, %1432 ], [ 0, %1466 ], [ 0, %1485 ], [ 33, %1508 ], [ 0, %1542 ], [ 0, %1561 ], [ 32, %1588 ], [ 0, %1624 ], [ 0, %1643 ], [ 33, %1666 ], [ 0, %1702 ], [ 0, %1721 ], [ 32, %1749 ], [ 0, %1784 ], [ 0, %1803 ], [ 33, %1826 ], [ 0, %1861 ], [ 0, %1880 ], [ 0, %1939 ], [ 0, %1958 ], [ 0, %2012 ], [ 0, %2031 ], [ 0, %2085 ], [ 0, %2104 ], [ 0, %55 ], [ 0, %127 ], [ 0, %368 ], [ 0, %439 ], [ 0, %510 ], [ 0, %582 ], [ 0, %654 ], [ 0, %725 ], [ 0, %798 ], [ 0, %872 ], [ 0, %946 ], [ 0, %1019 ], [ 0, %1091 ], [ 0, %1163 ], [ 0, %1235 ], [ 0, %1307 ], [ 0, %1379 ], [ 0, %1455 ], [ 0, %1531 ], [ 0, %1613 ], [ 0, %1691 ], [ 0, %1773 ], [ 0, %1850 ], [ 0, %1928 ], [ 0, %2001 ], [ 0, %2074 ], [ 0, %217 ] - %2149 = phi i8 [ 1, %1903 ], [ 1, %1744 ], [ 1, %1584 ], [ 0, %66 ], [ 0, %85 ], [ 0, %138 ], [ 0, %157 ], [ 0, %228 ], [ 0, %247 ], [ %336, %379 ], [ %336, %398 ], [ %336, %450 ], [ %336, %469 ], [ %336, %521 ], [ %336, %540 ], [ %336, %593 ], [ %336, %612 ], [ %336, %665 ], [ %336, %684 ], [ %336, %736 ], [ %336, %755 ], [ %336, %809 ], [ %336, %828 ], [ %336, %883 ], [ %336, %902 ], [ %336, %957 ], [ %336, %976 ], [ %336, %1030 ], [ %336, %1049 ], [ %336, %1102 ], [ %336, %1121 ], [ %336, %1174 ], [ %336, %1193 ], [ %336, %1246 ], [ %336, %1265 ], [ %336, %1318 ], [ %336, %1337 ], [ %336, %1390 ], [ %336, %1409 ], [ 1, %1432 ], [ %336, %1466 ], [ %336, %1485 ], [ 1, %1508 ], [ %336, %1542 ], [ %336, %1561 ], [ 1, %1588 ], [ %336, %1624 ], [ %336, %1643 ], [ 1, %1666 ], [ %336, %1702 ], [ %336, %1721 ], [ 1, %1749 ], [ %336, %1784 ], [ %336, %1803 ], [ 1, %1826 ], [ %336, %1861 ], [ %336, %1880 ], [ %336, %1939 ], [ %336, %1958 ], [ %336, %2012 ], [ %336, %2031 ], [ %336, %2085 ], [ %336, %2104 ], [ 0, %55 ], [ 0, %127 ], [ %336, %368 ], [ %336, %439 ], [ %336, %510 ], [ %336, %582 ], [ %336, %654 ], [ %336, %725 ], [ %336, %798 ], [ %336, %872 ], [ %336, %946 ], [ %336, %1019 ], [ %336, %1091 ], [ %336, %1163 ], [ %336, %1235 ], [ %336, %1307 ], [ %336, %1379 ], [ %336, %1455 ], [ %336, %1531 ], [ %336, %1613 ], [ %336, %1691 ], [ %336, %1773 ], [ %336, %1850 ], [ %336, %1928 ], [ %336, %2001 ], [ %336, %2074 ], [ 0, %217 ] - %2150 = phi ptr [ %334, %1903 ], [ %334, %1744 ], [ %334, %1584 ], [ %32, %66 ], [ %32, %85 ], [ %32, %138 ], [ %32, %157 ], [ %32, %228 ], [ %32, %247 ], [ %334, %379 ], [ %334, %398 ], [ %334, %450 ], [ %334, %469 ], [ %334, %521 ], [ %334, %540 ], [ %334, %593 ], [ %334, %612 ], [ %334, %665 ], [ %334, %684 ], [ %334, %736 ], [ %334, %755 ], [ %334, %809 ], [ %334, %828 ], [ %334, %883 ], [ %334, %902 ], [ %334, %957 ], [ %334, %976 ], [ %334, %1030 ], [ %334, %1049 ], [ %334, %1102 ], [ %334, %1121 ], [ %334, %1174 ], [ %334, %1193 ], [ %334, %1246 ], [ %334, %1265 ], [ %334, %1318 ], [ %334, %1337 ], [ %334, %1390 ], [ %334, %1409 ], [ %334, %1432 ], [ %334, %1466 ], [ %334, %1485 ], [ %334, %1508 ], [ %334, %1542 ], [ %334, %1561 ], [ %334, %1588 ], [ %334, %1624 ], [ %334, %1643 ], [ %334, %1666 ], [ %334, %1702 ], [ %334, %1721 ], [ %334, %1749 ], [ %334, %1784 ], [ %334, %1803 ], [ %334, %1826 ], [ %334, %1861 ], [ %334, %1880 ], [ %334, %1939 ], [ %334, %1958 ], [ %334, %2012 ], [ %334, %2031 ], [ %334, %2085 ], [ %334, %2104 ], [ %32, %55 ], [ %32, %127 ], [ %334, %368 ], [ %334, %439 ], [ %334, %510 ], [ %334, %582 ], [ %334, %654 ], [ %334, %725 ], [ %334, %798 ], [ %334, %872 ], [ %334, %946 ], [ %334, %1019 ], [ %334, %1091 ], [ %334, %1163 ], [ %334, %1235 ], [ %334, %1307 ], [ %334, %1379 ], [ %334, %1455 ], [ %334, %1531 ], [ %334, %1613 ], [ %334, %1691 ], [ %334, %1773 ], [ %334, %1850 ], [ %334, %1928 ], [ %334, %2001 ], [ %334, %2074 ], [ %32, %217 ] + %2149 = phi i8 [ 1, %1903 ], [ 1, %1744 ], [ 1, %1584 ], [ 0, %66 ], [ 0, %85 ], [ 0, %138 ], [ 0, %157 ], [ 0, %228 ], [ 0, %247 ], [ 0, %379 ], [ 0, %398 ], [ 0, %450 ], [ 0, %469 ], [ 0, %521 ], [ 0, %540 ], [ 0, %593 ], [ 0, %612 ], [ 0, %665 ], [ 0, %684 ], [ 0, %736 ], [ 0, %755 ], [ 0, %809 ], [ 0, %828 ], [ 0, %883 ], [ 0, %902 ], [ 0, %957 ], [ 0, %976 ], [ 0, %1030 ], [ 0, %1049 ], [ 0, %1102 ], [ 0, %1121 ], [ 0, %1174 ], [ 0, %1193 ], [ 0, %1246 ], [ 0, %1265 ], [ 0, %1318 ], [ 0, %1337 ], [ 0, %1390 ], [ 0, %1409 ], [ 1, %1432 ], [ 0, %1466 ], [ 0, %1485 ], [ 1, %1508 ], [ 0, %1542 ], [ 0, %1561 ], [ 1, %1588 ], [ 0, %1624 ], [ 0, %1643 ], [ 1, %1666 ], [ 0, %1702 ], [ 0, %1721 ], [ 1, %1749 ], [ 0, %1784 ], [ 0, %1803 ], [ 1, %1826 ], [ 0, %1861 ], [ 0, %1880 ], [ 0, %1939 ], [ 0, %1958 ], [ 0, %2012 ], [ 0, %2031 ], [ 0, %2085 ], [ 0, %2104 ], [ 0, %55 ], [ 0, %127 ], [ 0, %368 ], [ 0, %439 ], [ 0, %510 ], [ 0, %582 ], [ 0, %654 ], [ 0, %725 ], [ 0, %798 ], [ 0, %872 ], [ 0, %946 ], [ 0, %1019 ], [ 0, %1091 ], [ 0, %1163 ], [ 0, %1235 ], [ 0, %1307 ], [ 0, %1379 ], [ 0, %1455 ], [ 0, %1531 ], [ 0, %1613 ], [ 0, %1691 ], [ 0, %1773 ], [ 0, %1850 ], [ 0, %1928 ], [ 0, %2001 ], [ 0, %2074 ], [ 0, %217 ] + %2150 = phi ptr [ %335, %1903 ], [ %335, %1744 ], [ %335, %1584 ], [ %32, %66 ], [ %32, %85 ], [ %32, %138 ], [ %32, %157 ], [ %32, %228 ], [ %32, %247 ], [ %335, %379 ], [ %335, %398 ], [ %335, %450 ], [ %335, %469 ], [ %335, %521 ], [ %335, %540 ], [ %335, %593 ], [ %335, %612 ], [ %335, %665 ], [ %335, %684 ], [ %335, %736 ], [ %335, %755 ], [ %335, %809 ], [ %335, %828 ], [ %335, %883 ], [ %335, %902 ], [ %335, %957 ], [ %335, %976 ], [ %335, %1030 ], [ %335, %1049 ], [ %335, %1102 ], [ %335, %1121 ], [ %335, %1174 ], [ %335, %1193 ], [ %335, %1246 ], [ %335, %1265 ], [ %335, %1318 ], [ %335, %1337 ], [ %335, %1390 ], [ %335, %1409 ], [ %335, %1432 ], [ %335, %1466 ], [ %335, %1485 ], [ %335, %1508 ], [ %335, %1542 ], [ %335, %1561 ], [ %335, %1588 ], [ %335, %1624 ], [ %335, %1643 ], [ %335, %1666 ], [ %335, %1702 ], [ %335, %1721 ], [ %335, %1749 ], [ %335, %1784 ], [ %335, %1803 ], [ %335, %1826 ], [ %335, %1861 ], [ %335, %1880 ], [ %335, %1939 ], [ %335, %1958 ], [ %335, %2012 ], [ %335, %2031 ], [ %335, %2085 ], [ %335, %2104 ], [ %32, %55 ], [ %32, %127 ], [ %335, %368 ], [ %335, %439 ], [ %335, %510 ], [ %335, %582 ], [ %335, %654 ], [ %335, %725 ], [ %335, %798 ], [ %335, %872 ], [ %335, %946 ], [ %335, %1019 ], [ %335, %1091 ], [ %335, %1163 ], [ %335, %1235 ], [ %335, %1307 ], [ %335, %1379 ], [ %335, %1455 ], [ %335, %1531 ], [ %335, %1613 ], [ %335, %1691 ], [ %335, %1773 ], [ %335, %1850 ], [ %335, %1928 ], [ %335, %2001 ], [ %335, %2074 ], [ %32, %217 ] store i32 %2148, ptr %23, align 8, !tbaa !120 br label %2151 2151: ; preds = %.loopexit, %2136, %2133, %2130, %2127, %322 - %2152 = phi i8 [ %336, %2136 ], [ %336, %2133 ], [ %336, %2130 ], [ %336, %2127 ], [ %320, %322 ], [ %2149, %.loopexit ] - %2153 = phi ptr [ %334, %2136 ], [ %334, %2133 ], [ %334, %2130 ], [ %334, %2127 ], [ %32, %322 ], [ %2150, %.loopexit ] + %2152 = phi i8 [ 0, %2136 ], [ 0, %2133 ], [ 0, %2130 ], [ 0, %2127 ], [ 0, %322 ], [ %2149, %.loopexit ] + %2153 = phi ptr [ %335, %2136 ], [ %335, %2133 ], [ %335, %2130 ], [ %335, %2127 ], [ %32, %322 ], [ %2150, %.loopexit ] %2154 = load ptr, ptr %19, align 8, !tbaa !125 %2155 = icmp eq ptr %2154, %20 br i1 %2155, label %2156, label %29, !llvm.loop !132 diff --git a/bench/nlohmann_json/optimized/unit-conversions.cpp.ll b/bench/nlohmann_json/optimized/unit-conversions.cpp.ll index ffa2c79fb19..96dbb4b2734 100644 --- a/bench/nlohmann_json/optimized/unit-conversions.cpp.ll +++ b/bench/nlohmann_json/optimized/unit-conversions.cpp.ll @@ -55866,7 +55866,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -55894,7 +55893,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !1257 @@ -74394,7 +74393,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -74422,7 +74420,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !1596 @@ -75211,7 +75209,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -75239,7 +75236,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !1604 @@ -76028,7 +76025,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -76056,7 +76052,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !1612 @@ -76847,7 +76843,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -76875,7 +76870,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !1620 @@ -77591,7 +77586,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -77619,7 +77613,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !1628 diff --git a/bench/nlohmann_json/optimized/unit-disabled_exceptions.cpp.ll b/bench/nlohmann_json/optimized/unit-disabled_exceptions.cpp.ll index 366991be67d..9b5b4b1d39e 100644 --- a/bench/nlohmann_json/optimized/unit-disabled_exceptions.cpp.ll +++ b/bench/nlohmann_json/optimized/unit-disabled_exceptions.cpp.ll @@ -3593,18 +3593,14 @@ entry: %value_unsigned.i = getelementptr inbounds nuw i8, ptr %this, i64 168 %value_integer.i = getelementptr inbounds nuw i8, ptr %this, i64 160 %value_float.i = getelementptr inbounds nuw i8, ptr %this, i64 176 - br label %if.then - -if.then.preheader.critedge: ; preds = %if.then214, %if.end273 - %call.i86 = call noundef i32 @_ZN8nlohmann16json_abi_v3_11_36detail5lexerINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEENS1_22iterator_input_adapterIPKcEEE4scanEv(ptr noundef nonnull align 8 dereferenceable(148) %m_lexer.i29) - store i32 %call.i86, ptr %last_token, align 8 - br label %if.then.backedge + br label %if.then.preheader -if.then.backedge: ; preds = %if.then.preheader.critedge, %if.else.i48, %_ZNSt13_Bit_iteratorppEi.exit.i42, %_ZNSt6vectorIbSaIbEE9push_backEb.exit +if.then.preheader.critedge: ; preds = %if.then.preheader.backedge, %entry + %call.i86 = load i32, ptr %last_token, align 8 br label %if.then -if.then: ; preds = %if.then.backedge, %entry - %0 = load i32, ptr %last_token, align 8 +if.then: ; preds = %_ZNSt6vectorIbSaIbEE9push_backEb.exit, %if.then.preheader.critedge + %0 = phi i32 [ %.pre, %if.then.preheader ], [ %call.i27, %_ZNSt6vectorIbSaIbEE9push_backEb.exit ] switch i32 %0, label %sw.default [ i32 9, label %sw.bb i32 8, label %sw.bb57 @@ -3764,7 +3760,7 @@ if.else.i: ; preds = %if.end55 _ZNSt6vectorIbSaIbEE9push_backEb.exit: ; preds = %_ZNSt13_Bit_iteratorppEi.exit.i, %if.else.i %call.i27 = call noundef i32 @_ZN8nlohmann16json_abi_v3_11_36detail5lexerINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEENS1_22iterator_input_adapterIPKcEEE4scanEv(ptr noundef nonnull align 8 dereferenceable(148) %m_lexer.i29) store i32 %call.i27, ptr %last_token, align 8 - br label %if.then.backedge + br label %if.then sw.bb57: ; preds = %if.then %call58 = call noundef zeroext i1 @_ZN8nlohmann16json_abi_v3_11_36detail19json_sax_dom_parserINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEEE11start_arrayEm(ptr noundef nonnull align 8 dereferenceable(42) %sax, i64 noundef -1) @@ -3807,11 +3803,14 @@ _ZNSt13_Bit_iteratorppEi.exit.i42: ; preds = %if.then.i.i.i46, %i %12 = load i64, ptr %10, align 8 %or.i.i = or i64 %12, %shl.i.i44 store i64 %or.i.i, ptr %10, align 8 - br label %if.then.backedge + br label %if.then.preheader.backedge if.else.i48: ; preds = %if.end73 call void @_ZNSt6vectorIbSaIbEE13_M_insert_auxESt13_Bit_iteratorb(ptr noundef nonnull align 8 dereferenceable(40) %states, ptr %10, i32 %retval.sroa.2.0.copyload.i5.i38, i1 noundef zeroext true) - br label %if.then.backedge + br label %if.then.preheader.backedge + +if.then.preheader.backedge: ; preds = %if.else.i48, %_ZNSt13_Bit_iteratorppEi.exit.i42, %if.then217, %if.end291 + br label %if.then.preheader sw.bb74: ; preds = %if.then %13 = load double, ptr %value_float.i, align 8 @@ -3991,10 +3990,15 @@ if.end210: ; preds = %if.end207.preheader if.then214: ; preds = %if.end210 switch i32 %call.i104, label %if.end231 [ - i32 13, label %if.then.preheader.critedge + i32 13, label %if.then217 i32 10, label %if.end230 ] +if.then217: ; preds = %if.then214 + %call.i86 = call noundef i32 @_ZN8nlohmann16json_abi_v3_11_36detail5lexerINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEENS1_22iterator_input_adapterIPKcEEE4scanEv(ptr noundef nonnull align 8 dereferenceable(148) %m_lexer.i) + store i32 %call.i86, ptr %last_token, align 8 + br label %if.then.preheader.backedge + while.cond.outer.backedge.sink.split: ; preds = %if.end304, %if.end230 store i32 63, ptr %_M_offset.i.i1.i.i.i.i, align 8 %26 = load ptr, ptr %_M_finish.i.i.i.i, align 8 @@ -4205,7 +4209,7 @@ if.end273: ; preds = %if.then.i.i162, %lo %call.i167 = call noundef i32 @_ZN8nlohmann16json_abi_v3_11_36detail5lexerINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEENS1_22iterator_input_adapterIPKcEEE4scanEv(ptr noundef nonnull align 8 dereferenceable(148) %m_lexer.i29) store i32 %call.i167, ptr %last_token, align 8 %cmp275.not = icmp eq i32 %call.i167, 12 - br i1 %cmp275.not, label %if.then.preheader.critedge, label %if.then278 + br i1 %cmp275.not, label %if.end291, label %if.then278 if.then278: ; preds = %if.end273 %position.i169 = getelementptr inbounds nuw i8, ptr %this, i64 72 @@ -4267,6 +4271,11 @@ _ZNK8nlohmann16json_abi_v3_11_36detail5lexerINS0_10basic_jsonISt3mapSt6vectorNSt call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp289) #18 br label %cleanup.sink.split +if.end291: ; preds = %if.end273 + %call.i194 = call noundef i32 @_ZN8nlohmann16json_abi_v3_11_36detail5lexerINS0_10basic_jsonISt3mapSt6vectorNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEblmdSaNS0_14adl_serializerES5_IhSaIhEEvEENS1_22iterator_input_adapterIPKcEEE4scanEv(ptr noundef nonnull align 8 dereferenceable(148) %m_lexer.i) + store i32 %call.i194, ptr %last_token, align 8 + br label %if.then.preheader.backedge + if.end304: ; preds = %if.end244 %49 = load ptr, ptr %_M_finish.i.i.i17, align 8 %add.ptr.i.i.i197 = getelementptr inbounds i8, ptr %49, i64 -8 @@ -4343,8 +4352,8 @@ cleanup.sink.split: ; preds = %if.then18, %if.then call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp309.sink) #18 br label %cleanup -cleanup: ; preds = %sw.bb57, %sw.bb, %if.end207.preheader, %if.end207.backedge, %cleanup.sink.split - %retval.0 = phi i1 [ %retval.0.ph, %cleanup.sink.split ], [ true, %if.end207.backedge ], [ false, %sw.bb57 ], [ false, %sw.bb ], [ true, %if.end207.preheader ] +cleanup: ; preds = %sw.bb57, %if.end207.preheader, %sw.bb, %if.end207.backedge, %cleanup.sink.split + %retval.0 = phi i1 [ %retval.0.ph, %cleanup.sink.split ], [ true, %if.end207.backedge ], [ false, %sw.bb ], [ false, %sw.bb57 ], [ true, %if.end207.preheader ] %55 = load ptr, ptr %states, align 8 %tobool.not.i.i.i = icmp eq ptr %55, null br i1 %tobool.not.i.i.i, label %_ZNSt6vectorIbSaIbEED2Ev.exit, label %if.then.i.i.i229 diff --git a/bench/node/optimized/libnode.node_options.ll b/bench/node/optimized/libnode.node_options.ll index dec7ac17466..588c421cc4e 100644 --- a/bench/node/optimized/libnode.node_options.ll +++ b/bench/node/optimized/libnode.node_options.ll @@ -15927,7 +15927,7 @@ if.else27: ; preds = %if.end21 br label %for.inc for.inc: ; preds = %land.lhs.true11, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12emplace_backIJS5_EEERS5_DpOT_.exit, %if.else27, %if.then17 - %is_in_string.1 = phi i8 [ %is_in_string.032, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12emplace_backIJS5_EEERS5_DpOT_.exit ], [ %is_in_string.032, %if.else27 ], [ %frombool, %if.then17 ], [ %is_in_string.032, %land.lhs.true11 ] + %is_in_string.1 = phi i8 [ %is_in_string.032, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12emplace_backIJS5_EEERS5_DpOT_.exit ], [ %is_in_string.032, %if.else27 ], [ %frombool, %if.then17 ], [ 0, %land.lhs.true11 ] %will_start_new_arg.1 = phi i1 [ false, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12emplace_backIJS5_EEERS5_DpOT_.exit ], [ false, %if.else27 ], [ %will_start_new_arg.033, %if.then17 ], [ true, %land.lhs.true11 ] %index.2 = phi i64 [ %index.1, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EE12emplace_backIJS5_EEERS5_DpOT_.exit ], [ %index.1, %if.else27 ], [ %index.034, %if.then17 ], [ %index.034, %land.lhs.true11 ] %inc31 = add i64 %index.2, 1 @@ -19603,7 +19603,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -19631,7 +19630,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !145 @@ -23399,7 +23398,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -23427,7 +23425,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !182 @@ -25064,7 +25062,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -25092,7 +25089,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !190 @@ -26954,7 +26951,6 @@ if.then18: ; preds = %if.then13 br label %if.end20 if.end20: ; preds = %if.then10, %if.then18, %if.then13, %if.else - %__check_bucket.2 = phi i8 [ %__check_bucket.047, %if.else ], [ 0, %if.then13 ], [ 0, %if.then18 ], [ 0, %if.then10 ] %arrayidx21 = getelementptr inbounds ptr, ptr %retval.0.i, i64 %rem.i.i %6 = load ptr, ptr %arrayidx21, align 8 %tobool22.not = icmp eq ptr %6, null @@ -26982,7 +26978,7 @@ if.else36: ; preds = %if.end20 br label %if.end43 if.end43: ; preds = %if.then23, %if.then33, %if.else36, %if.then - %__check_bucket.1 = phi i8 [ 1, %if.then ], [ %__check_bucket.2, %if.else36 ], [ %__check_bucket.2, %if.then33 ], [ %__check_bucket.2, %if.then23 ] + %__check_bucket.1 = phi i8 [ 1, %if.then ], [ 0, %if.else36 ], [ 0, %if.then33 ], [ 0, %if.then23 ] %__bbegin_bkt.1 = phi i64 [ %__bbegin_bkt.050, %if.then ], [ %__bbegin_bkt.050, %if.else36 ], [ %rem.i.i, %if.then33 ], [ %rem.i.i, %if.then23 ] %tobool.not = icmp eq ptr %1, null br i1 %tobool.not, label %while.end, label %while.body, !llvm.loop !197 diff --git a/bench/nori/optimized/screen.cpp.ll b/bench/nori/optimized/screen.cpp.ll index 5fba7ececc6..6b7b191d6c8 100644 --- a/bench/nori/optimized/screen.cpp.ll +++ b/bench/nori/optimized/screen.cpp.ll @@ -4619,7 +4619,7 @@ _ZN7nanogui5ArrayIfLm2EEC2IiEERKNS0_IT_Lm2EEE.exit.critedge: call void @__cxa_end_catch() br label %58 -58: ; preds = %100, %57 +58: ; preds = %102, %57 ret void 59: ; preds = %_ZN7nanogui5ArrayIfLm2EEC2IiEERKNS0_IT_Lm2EEE.exit.critedge @@ -4661,7 +4661,7 @@ _ZN7nanogui5ArrayIfLm2EEC2IiEERKNS0_IT_Lm2EEE.exit.critedge: to label %83 unwind label %40 83: ; preds = %.critedge - br i1 %82, label %100, label %.thread + br i1 %82, label %102, label %.thread .thread: ; preds = %27, %28, %33, %83 %84 = getelementptr inbounds nuw i8, ptr %0, i64 260 @@ -4685,17 +4685,20 @@ _ZN7nanogui5ArrayIfLm2EEC2IiEERKNS0_IT_Lm2EEE.exit.critedge: %99 = invoke noundef zeroext i1 %98(ptr noundef nonnull align 8 dereferenceable(140) %0, ptr noundef nonnull align 4 dereferenceable(8) %3, ptr noundef nonnull align 4 dereferenceable(8) %6, i32 noundef %93, i32 noundef %95) to label %100 unwind label %40 -100: ; preds = %.thread, %83 - %.1.in = phi i1 [ true, %83 ], [ %99, %.thread ] - %101 = getelementptr inbounds nuw i8, ptr %0, i64 260 - %102 = load i64, ptr %3, align 8 - store i64 %102, ptr %101, align 4 - %103 = getelementptr inbounds nuw i8, ptr %0, i64 349 - %104 = load i8, ptr %103, align 1 - %.tr = trunc i8 %104 to i1 - %.narrow = or i1 %.1.in, %.tr - %105 = zext i1 %.narrow to i8 - store i8 %105, ptr %103, align 1 +100: ; preds = %.thread + %.1.in = zext i1 %99 to i8 + br label %102 + +102:; preds = %100, %83 + %103 = phi i8 [ 1, %83 ], [ %101, %100 ] + %104 = getelementptr inbounds nuw i8, ptr %0, i64 260 + %.tr = load i64, ptr %3, align 8 + store i64 %104, ptr %103, align 4 + %105 = getelementptr inbounds nuw i8, ptr %0, i64 349 + %106 = load i8, ptr %105, align 1 + %.masked = and i8 %106, 1 + %107 = or i8 %.masked, %.1 + store i8 %107, ptr %105, align 1 br label %58 106: ; preds = %55, %49, %45 diff --git a/bench/ocio/optimized/FileRules.cpp.ll b/bench/ocio/optimized/FileRules.cpp.ll index 7420abde72d..16f02f48b08 100644 --- a/bench/ocio/optimized/FileRules.cpp.ll +++ b/bench/ocio/optimized/FileRules.cpp.ll @@ -6213,7 +6213,7 @@ if.end8.sink.split.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__ex _ZNSt10shared_ptrIKN19OpenColorIO_v2_4dev10ColorSpaceEED2Ev.exit: ; preds = %if.end33, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i, %if.end8.sink.split.i.i.i.i %inc = add nuw nsw i32 %idx.0108, 1 %cmp22 = icmp sge i32 %inc, %call21 - %.not = or i1 %cmp22, %call28 + %.not = or i1 %call28, %cmp22 br i1 %.not, label %for.end, label %for.body, !llvm.loop !44 for.end: ; preds = %_ZNSt10shared_ptrIKN19OpenColorIO_v2_4dev10ColorSpaceEED2Ev.exit @@ -34085,7 +34085,7 @@ if.then4: ; preds = %for.body %2 = load i16, ptr %arrayidx.i, align 2 %and1.i = and i16 %2, 2048 %tobool.i.not = icmp eq i16 %and1.i, 0 - br i1 %tobool.i.not, label %if.else, label %if.then6 + br i1 %tobool.i.not, label %if.end27, label %if.then6 if.then6: ; preds = %if.then4 %call9 = invoke noundef i32 @_ZNKSt7__cxx1112regex_traitsIcE5valueEci(ptr noundef nonnull align 8 dereferenceable(8) %__traits, i8 noundef signext %0, i32 noundef 10) @@ -34197,7 +34197,7 @@ lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.lo cleanup br label %ehcleanup -lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end27, %if.else, %if.then6 +lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.end27, %if.then6 %lpad.loopexit287 = landingpad { ptr, i32 } cleanup br label %ehcleanup @@ -34207,10 +34207,6 @@ lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.lo cleanup br label %ehcleanup -if.else: ; preds = %if.then4 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %__out.coerce, i8 noundef signext %0) - to label %for.inc unwind label %lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit - if.end18: ; preds = %for.body switch i8 %0, label %if.end27 [ i8 92, label %for.inc @@ -34257,12 +34253,12 @@ for.body.i.i.i.i.i.i55: ; preds = %if.then.i45, %.noex %cmp.i.i.i.i.i.i60 = icmp samesign ugt i64 %__n.06.i.i.i.i.i.i56, 1 br i1 %cmp.i.i.i.i.i.i60, label %for.body.i.i.i.i.i.i55, label %for.inc, !llvm.loop !273 -if.end27: ; preds = %if.end18 +if.end27: ; preds = %if.end18, %if.then4 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %__out.coerce, i8 noundef signext %0) to label %for.inc unwind label %lpad7.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit -for.inc: ; preds = %.noexc65, %.noexc, %if.end27, %if.then25, %if.then.i45, %if.else, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.i, %if.then.i, %if.end18 - %__escaping.1 = phi i8 [ 1, %if.end18 ], [ 0, %if.then.i ], [ 0, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.i ], [ 0, %if.else ], [ %__escaping.0306, %if.then.i45 ], [ %__escaping.0306, %if.then25 ], [ %__escaping.0306, %if.end27 ], [ 0, %.noexc ], [ %__escaping.0306, %.noexc65 ] +for.inc: ; preds = %.noexc65, %.noexc, %if.end27, %if.then25, %if.then.i45, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.i, %if.then.i, %if.end18 + %__escaping.1 = phi i8 [ 1, %if.end18 ], [ 0, %if.then.i ], [ 0, %_ZNKSt7__cxx1113match_resultsIN9__gnu_cxx17__normal_iteratorIPKcNS_12basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISA_EEEEixEm.exit.i ], [ 0, %if.then.i45 ], [ 0, %if.then25 ], [ 0, %if.end27 ], [ 0, %.noexc ], [ %__escaping.0306, %.noexc65 ] %incdec.ptr = getelementptr inbounds nuw i8, ptr %__fmt_first.addr.0307, i64 1 %cmp.not = icmp eq ptr %incdec.ptr, %__fmt_last br i1 %cmp.not, label %for.end, label %for.body, !llvm.loop !275 diff --git a/bench/ocio/optimized/OCIOYaml.cpp.ll b/bench/ocio/optimized/OCIOYaml.cpp.ll index aea5ff5a422..20cc4b3fff3 100644 --- a/bench/ocio/optimized/OCIOYaml.cpp.ll +++ b/bench/ocio/optimized/OCIOYaml.cpp.ll @@ -10398,7 +10398,7 @@ unreachable.i: ; preds = %invoke.cont299.i, % unreachable _ZN19OpenColorIO_v2_4dev12_GLOBAL__N_14loadERKN4YAML4NodeERSt10shared_ptrINS_9FileRulesEERb.exit: ; preds = %_ZNK4YAML4Node3TagB5cxx11Ev.exit.i, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i - %defaultFileRuleFound.5 = phi i8 [ %defaultFileRuleFound.4, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i ], [ %defaultFileRuleFound.2, %_ZNK4YAML4Node3TagB5cxx11Ev.exit.i ] + %defaultFileRuleFound.5 = phi i8 [ %defaultFileRuleFound.4, %_ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.exit.i ], [ 0, %_ZNK4YAML4Node3TagB5cxx11Ev.exit.i ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %stringval.i) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %name.i) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %colorspace.i) @@ -16701,7 +16701,7 @@ ehcleanup1992: ; preds = %ehcleanup1991, %lpa br label %ehcleanup2016 cleanup: ; preds = %invoke.cont1871, %invoke.cont1756, %invoke.cont1658, %invoke.cont1512, %invoke.cont1368, %invoke.cont1168, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit2364, %if.then.i.i.i1187, %invoke.cont.i1185, %if.end8.sink.split.i.i.i.i.i840, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i837, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i827, %for.cond.cleanup263, %if.end199, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1141, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1263, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1432, %for.cond.cleanup580, %invoke.cont855, %for.cond.cleanup994, %invoke.cont1279, %invoke.cont1323, %invoke.cont1989, %invoke.cont1825, %invoke.cont1302, %_ZNSt6vectorIdSaIdEED2Ev.exit, %invoke.cont450, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1223, %for.end743, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit538 - %defaultFileRuleFound.1 = phi i8 [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit538 ], [ %defaultFileRuleFound.0, %if.end199 ], [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1141 ], [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1223 ], [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1263 ], [ %defaultFileRuleFound.0, %invoke.cont450 ], [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1432 ], [ %defaultFileRuleFound.0, %_ZNSt6vectorIdSaIdEED2Ev.exit ], [ %defaultFileRuleFound.0, %for.cond.cleanup580 ], [ %defaultFileRuleFound.2, %for.end743 ], [ %defaultFileRuleFound.0, %invoke.cont855 ], [ %defaultFileRuleFound.0, %for.cond.cleanup994 ], [ %defaultFileRuleFound.0, %invoke.cont1279 ], [ %defaultFileRuleFound.0, %invoke.cont1302 ], [ %defaultFileRuleFound.0, %invoke.cont1323 ], [ %defaultFileRuleFound.0, %invoke.cont1825 ], [ %defaultFileRuleFound.0, %invoke.cont1989 ], [ %defaultFileRuleFound.0, %for.cond.cleanup263 ], [ %defaultFileRuleFound.0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i827 ], [ %defaultFileRuleFound.0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i837 ], [ %defaultFileRuleFound.0, %if.end8.sink.split.i.i.i.i.i840 ], [ %defaultFileRuleFound.0, %invoke.cont.i1185 ], [ %defaultFileRuleFound.0, %if.then.i.i.i1187 ], [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit2364 ], [ %defaultFileRuleFound.0, %invoke.cont1168 ], [ %defaultFileRuleFound.0, %invoke.cont1368 ], [ %defaultFileRuleFound.0, %invoke.cont1512 ], [ %defaultFileRuleFound.0, %invoke.cont1658 ], [ %defaultFileRuleFound.0, %invoke.cont1756 ], [ %defaultFileRuleFound.0, %invoke.cont1871 ] + %defaultFileRuleFound.1 = phi i8 [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit538 ], [ %defaultFileRuleFound.0, %if.end199 ], [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1141 ], [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1223 ], [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1263 ], [ %defaultFileRuleFound.0, %invoke.cont450 ], [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1432 ], [ %defaultFileRuleFound.0, %_ZNSt6vectorIdSaIdEED2Ev.exit ], [ %defaultFileRuleFound.0, %for.cond.cleanup580 ], [ 1, %for.end743 ], [ %defaultFileRuleFound.0, %invoke.cont855 ], [ %defaultFileRuleFound.0, %for.cond.cleanup994 ], [ %defaultFileRuleFound.0, %invoke.cont1279 ], [ %defaultFileRuleFound.0, %invoke.cont1302 ], [ %defaultFileRuleFound.0, %invoke.cont1323 ], [ %defaultFileRuleFound.0, %invoke.cont1825 ], [ %defaultFileRuleFound.0, %invoke.cont1989 ], [ %defaultFileRuleFound.0, %for.cond.cleanup263 ], [ %defaultFileRuleFound.0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i827 ], [ %defaultFileRuleFound.0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i837 ], [ %defaultFileRuleFound.0, %if.end8.sink.split.i.i.i.i.i840 ], [ %defaultFileRuleFound.0, %invoke.cont.i1185 ], [ %defaultFileRuleFound.0, %if.then.i.i.i1187 ], [ %defaultFileRuleFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit2364 ], [ %defaultFileRuleFound.0, %invoke.cont1168 ], [ %defaultFileRuleFound.0, %invoke.cont1368 ], [ %defaultFileRuleFound.0, %invoke.cont1512 ], [ %defaultFileRuleFound.0, %invoke.cont1658 ], [ %defaultFileRuleFound.0, %invoke.cont1756 ], [ %defaultFileRuleFound.0, %invoke.cont1871 ] %mode.1 = phi i32 [ %mode.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit538 ], [ %mode.0, %if.end199 ], [ %mode.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1141 ], [ %mode.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1223 ], [ %mode.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1263 ], [ %mode.0, %invoke.cont450 ], [ %mode.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1432 ], [ %mode.0, %_ZNSt6vectorIdSaIdEED2Ev.exit ], [ %mode.0, %for.cond.cleanup580 ], [ %mode.0, %for.end743 ], [ %mode.0, %invoke.cont855 ], [ %mode.0, %for.cond.cleanup994 ], [ %mode.0, %invoke.cont1279 ], [ %mode.0, %invoke.cont1302 ], [ %mode.0, %invoke.cont1323 ], [ %mode.0, %invoke.cont1825 ], [ %mode.0, %invoke.cont1989 ], [ 1, %for.cond.cleanup263 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i827 ], [ 1, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i837 ], [ 1, %if.end8.sink.split.i.i.i.i.i840 ], [ %mode.0, %invoke.cont.i1185 ], [ %mode.0, %if.then.i.i.i1187 ], [ %mode.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit2364 ], [ %mode.0, %invoke.cont1168 ], [ %mode.0, %invoke.cont1368 ], [ %mode.0, %invoke.cont1512 ], [ %mode.0, %invoke.cont1658 ], [ %mode.0, %invoke.cont1756 ], [ %mode.0, %invoke.cont1871 ] %fileRulesFound.1 = phi i1 [ %fileRulesFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit538 ], [ %fileRulesFound.0, %if.end199 ], [ %fileRulesFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1141 ], [ %fileRulesFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1223 ], [ %fileRulesFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1263 ], [ %fileRulesFound.0, %invoke.cont450 ], [ %fileRulesFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit1432 ], [ %fileRulesFound.0, %_ZNSt6vectorIdSaIdEED2Ev.exit ], [ %fileRulesFound.0, %for.cond.cleanup580 ], [ true, %for.end743 ], [ %fileRulesFound.0, %invoke.cont855 ], [ %fileRulesFound.0, %for.cond.cleanup994 ], [ %fileRulesFound.0, %invoke.cont1279 ], [ %fileRulesFound.0, %invoke.cont1302 ], [ %fileRulesFound.0, %invoke.cont1323 ], [ %fileRulesFound.0, %invoke.cont1825 ], [ %fileRulesFound.0, %invoke.cont1989 ], [ %fileRulesFound.0, %for.cond.cleanup263 ], [ %fileRulesFound.0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i827 ], [ %fileRulesFound.0, %_ZN9__gnu_cxx27__exchange_and_add_dispatchEPii.exit.i.i.i.i.i.i.i837 ], [ %fileRulesFound.0, %if.end8.sink.split.i.i.i.i.i840 ], [ %fileRulesFound.0, %invoke.cont.i1185 ], [ %fileRulesFound.0, %if.then.i.i.i1187 ], [ %fileRulesFound.0, %_ZN4YAML6detail13iterator_baseIKNS0_14iterator_valueEE5proxyD2Ev.exit2364 ], [ %fileRulesFound.0, %invoke.cont1168 ], [ %fileRulesFound.0, %invoke.cont1368 ], [ %fileRulesFound.0, %invoke.cont1512 ], [ %fileRulesFound.0, %invoke.cont1658 ], [ %fileRulesFound.0, %invoke.cont1756 ], [ %fileRulesFound.0, %invoke.cont1871 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp162) #26 @@ -37128,8 +37128,7 @@ ehcleanup82: ; preds = %lpad79, %lpad77 br label %common.resume if.end84: ; preds = %land.lhs.true, %land.lhs.true72 - %108 = and i8 %isDisplay.0, 1 - %cond = zext nneg i8 %108 to i32 + %108 = zext nneg i8 %isDisplay.0 to i32 ret i32 %cond } diff --git a/bench/oiio/optimized/Reader.cpp.ll b/bench/oiio/optimized/Reader.cpp.ll index e5c6c2125e5..84532fcc380 100644 --- a/bench/oiio/optimized/Reader.cpp.ll +++ b/bench/oiio/optimized/Reader.cpp.ll @@ -463,7 +463,7 @@ _ZNK6cineon13GenericHeader13PixelsPerLineEi.exit: ; preds = %if.end12, %if.end.i if.then16: ; preds = %_ZNK6cineon13GenericHeader13PixelsPerLineEi.exit %tobool17 = trunc nuw i8 %consistentDepth.2 to i1 - br i1 %tobool17, label %for.inc, label %for.end + br i1 %tobool17, label %for.inc, label %if.end84 for.inc: ; preds = %_ZNK6cineon13GenericHeader13PixelsPerLineEi.exit, %if.then16 %consistentWidth.2 = phi i8 [ 0, %if.then16 ], [ %consistentWidth.053, %_ZNK6cineon13GenericHeader13PixelsPerLineEi.exit ] @@ -471,10 +471,9 @@ for.inc: ; preds = %_ZNK6cineon13Generi %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !4 -for.end: ; preds = %for.inc, %if.then16 - %consistentWidth.1.ph = phi i8 [ %consistentWidth.2, %for.inc ], [ 0, %if.then16 ] +for.end: ; preds = %for.inc %13 = trunc nuw i8 %consistentDepth.2 to i1 - %14 = trunc nuw i8 %consistentWidth.1.ph to i1 + %14 = trunc nuw i8 %consistentWidth.2 to i1 %15 = select i1 %13, i1 %14, i1 false br i1 %15, label %land.lhs.true23, label %if.end84 @@ -570,7 +569,7 @@ if.then81: ; preds = %if.end78 tail call void @_ZN6cineon21EndianSwapImageBufferENS_8DataSizeEPvi(i32 noundef %size, ptr noundef %data, i32 noundef %mul67) br label %return -if.end84: ; preds = %if.then, %for.end, %land.lhs.true44, %land.lhs.true42, %lor.lhs.false38, %land.lhs.true23 +if.end84: ; preds = %if.then, %if.then16, %for.end, %land.lhs.true44, %land.lhs.true42, %lor.lhs.false38, %land.lhs.true23 %codec = getelementptr inbounds nuw i8, ptr %this, i64 2064 %28 = load ptr, ptr %codec, align 8 %cmp85 = icmp eq ptr %28, null diff --git a/bench/openspiel/optimized/json.cc.ll b/bench/openspiel/optimized/json.cc.ll index 61c445b857f..14b183bcc38 100644 --- a/bench/openspiel/optimized/json.cc.ll +++ b/bench/openspiel/optimized/json.cc.ll @@ -3694,14 +3694,14 @@ _ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i: ; preds = %_ZN %9 = icmp sgt i64 %8, 0 br i1 %9, label %.lr.ph, label %_ZN4absl7debian211string_viewC2EPKc.exit23 -.lr.ph: ; preds = %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i, %40 - %10 = phi i64 [ %43, %40 ], [ %8, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ] - %11 = phi ptr [ %42, %40 ], [ %7, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ] - %.036 = phi i8 [ %.1, %40 ], [ 0, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ] - %.02135 = phi ptr [ %41, %40 ], [ %7, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ] +.lr.ph: ; preds = %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i, %39 + %10 = phi i64 [ %42, %39 ], [ %8, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ] + %11 = phi ptr [ %41, %39 ], [ %7, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ] + %.036 = phi i8 [ %.1, %39 ], [ 0, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ] + %.02135 = phi ptr [ %40, %39 ], [ %7, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ] %12 = load i8, ptr %.02135, align 1 %13 = sext i8 %12 to i32 - %14 = trunc i8 %.036 to i1 + %14 = trunc nuw i8 %.036 to i1 switch i8 %12, label %32 [ i8 92, label %15 i8 34, label %20 @@ -3714,7 +3714,7 @@ _ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i: ; preds = %_ZN invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext 92) to label %18 unwind label %.loopexit -.loopexit: ; preds = %switch.lookup, %.invoke, %16, %39 +.loopexit: ; preds = %switch.lookup, %.invoke, %16 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %17 @@ -3731,15 +3731,15 @@ _ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i: ; preds = %_ZN 18: ; preds = %16, %15 %19 = xor i8 %.036, 1 - br label %40 + br label %39 20: ; preds = %.lr.ph br i1 %14, label %.invoke, label %22 -.invoke: ; preds = %switch.hole_check, %33, %20 - %21 = phi i8 [ 34, %20 ], [ %12, %33 ], [ %12, %switch.hole_check ] +.invoke: ; preds = %switch.hole_check, %33, %32, %20 + %21 = phi i8 [ 34, %20 ], [ %12, %33 ], [ %12, %32 ], [ %12, %switch.hole_check ] invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext %21) - to label %40 unwind label %.loopexit + to label %39 unwind label %.loopexit 22: ; preds = %20 %23 = ptrtoint ptr %.02135 to i64 @@ -3764,7 +3764,7 @@ _ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i: ; preds = %_ZN br label %48 32: ; preds = %.lr.ph - br i1 %14, label %33, label %39 + br i1 %14, label %33, label %.invoke 33: ; preds = %32 %34 = add nsw i32 %13, -98 @@ -3783,24 +3783,20 @@ switch.lookup: ; preds = %switch.hole_check %switch.gep = getelementptr inbounds nuw [10 x ptr], ptr @switch.table._ZN10open_spiel4json12_GLOBAL__N_111ParseStringB5cxx11EPN4absl7debian211string_viewE, i64 0, i64 %37 %switch.load = load ptr, ptr %switch.gep, align 8 %38 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull %switch.load) - to label %40 unwind label %.loopexit - -39: ; preds = %32 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %2, i8 noundef signext %12) - to label %40 unwind label %.loopexit - -40: ; preds = %switch.lookup, %.invoke, %18, %39 - %.1 = phi i8 [ %.036, %39 ], [ %19, %18 ], [ 0, %.invoke ], [ 0, %switch.lookup ] - %41 = getelementptr inbounds nuw i8, ptr %.02135, i64 1 - %42 = load ptr, ptr %1, align 8 - %43 = load i64, ptr %.sroa.22.0..sroa_idx.i, align 8 - %44 = getelementptr inbounds i8, ptr %42, i64 %43 - %45 = icmp ult ptr %41, %44 - br i1 %45, label %.lr.ph, label %_ZN4absl7debian211string_viewC2EPKc.exit23, !llvm.loop !38 - -_ZN4absl7debian211string_viewC2EPKc.exit23: ; preds = %40, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i - %.lcssa30 = phi ptr [ %7, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ], [ %42, %40 ] - %.lcssa = phi i64 [ %8, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ], [ %43, %40 ] + to label %39 unwind label %.loopexit + +39: ; preds = %switch.lookup, %.invoke, %18 + %.1 = phi i8 [ %19, %18 ], [ 0, %.invoke ], [ 0, %switch.lookup ] + %40 = getelementptr inbounds nuw i8, ptr %.02135, i64 1 + %41 = load ptr, ptr %1, align 8 + %42 = load i64, ptr %.sroa.22.0..sroa_idx.i, align 8 + %.1 = getelementptr inbounds i8, ptr %41, i64 %42 + %41 = icmp ult ptr %40, %43 + br i1 %41, label %.lr.ph, label %_ZN4absl7debian211string_viewC2EPKc.exit23, !llvm.loop !38 + +_ZN4absl7debian211string_viewC2EPKc.exit23:; preds = %39, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i + %45 = phi ptr [ %7, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ], [ %41, %39 ] + %.lcssa = phi i64 [ %8, %_ZN4absl7debian210StartsWithENS0_11string_viewES1_.exit.thread.i ], [ %42, %39 ] invoke fastcc void @_ZN10open_spiel4json12_GLOBAL__N_110ParseErrorEN4absl7debian211string_viewES4_(ptr nonnull @.str.41, i64 17, ptr %.lcssa30, i64 %.lcssa) to label %46 unwind label %.loopexit.split-lp diff --git a/bench/openspiel/optimized/tensor_game.cc.ll b/bench/openspiel/optimized/tensor_game.cc.ll index 827cea45440..d1f50034d4e 100644 --- a/bench/openspiel/optimized/tensor_game.cc.ll +++ b/bench/openspiel/optimized/tensor_game.cc.ll @@ -1980,21 +1980,21 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.ex %105 = getelementptr inbounds nuw i8, ptr %35, i64 8 %106 = load ptr, ptr %105, align 8 %107 = load ptr, ptr %35, align 8 - %108 = ptrtoint ptr %106 to i64 - %109 = ptrtoint ptr %107 to i64 - %110 = sub i64 %108, %109 - %111 = ashr exact i64 %110, 3 %.not.i36 = icmp eq ptr %106, %107 br i1 %.not.i36, label %._crit_edge14.thread.i, label %.preheader1.lr.ph.i .preheader1.lr.ph.i: ; preds = %"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIdSaIdEES2_IS4_SaIS4_EEEEZN10open_spiel11tensor_game16CreateTensorGameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESJ_RKS2_IS2_ISH_SaISH_EESaISL_EERKS8_E3$_1EbT_ST_T0_.exit.thread" - %.not43.i = icmp eq ptr %.8.val.fr.i, %35 + %.not43.i = ptrtoint ptr %106 to i64 + %109 = ptrtoint ptr %107 to i64 + %110 = sub i64 %108, %109 + %111 = ashr exact i64 %110, 3 + %.not47.i = icmp eq ptr %.8.val.fr.i, %35 %112 = icmp ugt i64 %41, 1 + %umax77.i = call i64 @llvm.umax.i64(i64 %111, i64 1) br i1 %112, label %.preheader1.lr.ph.split.us.i, label %.preheader1.lr.ph.split.i .preheader1.lr.ph.split.us.i: ; preds = %.preheader1.lr.ph.i - %umax72.i = call i64 @llvm.umax.i64(i64 %111, i64 1) - br i1 %.not43.i, label %._crit_edge14.thread.i, label %.preheader1.us.us.i + br i1 %.not47.i, label %._crit_edge14.thread.i, label %.preheader1.us.us.i .preheader1.us.us.i: ; preds = %.preheader1.lr.ph.split.us.i, %.loopexit.us.us.i %indvars.iv62.i = phi i64 [ %indvars.iv.next63.i, %.loopexit.us.us.i ], [ 0, %.preheader1.lr.ph.split.us.i ] @@ -2016,7 +2016,7 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.ex 119: ; preds = %._crit_edge.us.us.i, %115, %113 %.135.us.us.i = phi double [ %.03410.us.us.i, %113 ], [ %133, %._crit_edge.us.us.i ], [ %.03410.us.us.i, %115 ] - %.133.us.us.i = phi i8 [ %.03211.us.us.i, %113 ], [ %.03211.us.us.i, %._crit_edge.us.us.i ], [ %spec.select.us.us.i, %115 ] + %.133.us.us.i = phi i8 [ 0, %113 ], [ %.03211.us.us.i, %._crit_edge.us.us.i ], [ %spec.select.us.us.i, %115 ] %120 = trunc nuw i8 %.03112.us.us.i to i1 br i1 %120, label %.preheader.us.us.i, label %.loopexit.us.us.i @@ -2035,9 +2035,9 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.ex br i1 %127, label %.loopexit.us.us.i, label %121 .loopexit.us.us.i: ; preds = %122, %121, %119 - %.1.us.us.i = phi i8 [ %.03112.us.us.i, %119 ], [ 0, %122 ], [ %.03112.us.us.i, %121 ] + %.1.us.us.i = phi i8 [ 0, %119 ], [ 0, %122 ], [ %.03112.us.us.i, %121 ] %indvars.iv.next63.i = add nuw nsw i64 %indvars.iv62.i, 1 - %exitcond65.not.i = icmp eq i64 %indvars.iv.next63.i, %umax72.i + %exitcond65.not.i = icmp eq i64 %indvars.iv.next63.i, %umax77.i br i1 %exitcond65.not.i, label %._crit_edge14.i.loopexit, label %.preheader1.us.us.i, !llvm.loop !41 128: ; preds = %128, %.preheader1.us.us.i @@ -2062,11 +2062,7 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.ex br i1 %136, label %119, label %113 .preheader1.lr.ph.split.i: ; preds = %.preheader1.lr.ph.i - br i1 %.not43.i, label %._crit_edge14.thread.i, label %.preheader1.us20.preheader.i - -.preheader1.us20.preheader.i: ; preds = %.preheader1.lr.ph.split.i - %umax.i = call i64 @llvm.umax.i64(i64 %111, i64 1) - br label %._crit_edge.us32.i + br i1 %.not47.i, label %._crit_edge14.thread.i, label %._crit_edge.us32.i 137: ; preds = %._crit_edge.us32.i %138 = trunc nuw i8 %.03211.us22.i to i1 @@ -2081,15 +2077,15 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.ex .preheader.us26.i: ; preds = %._crit_edge.us32.i, %139, %137 %.135.us27.i = phi double [ %.03410.us23.i, %137 ], [ %143, %._crit_edge.us32.i ], [ %.03410.us23.i, %139 ] - %.133.us28.i = phi i8 [ %.03211.us22.i, %137 ], [ %.03211.us22.i, %._crit_edge.us32.i ], [ %spec.select.us25.i, %139 ] + %.133.us28.i = phi i8 [ 0, %137 ], [ %.03211.us22.i, %._crit_edge.us32.i ], [ %spec.select.us25.i, %139 ] %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %umax.i + %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %umax77.i br i1 %exitcond.not.i, label %._crit_edge14.i, label %._crit_edge.us32.i, !llvm.loop !41 -._crit_edge.us32.i: ; preds = %.preheader.us26.i, %.preheader1.us20.preheader.i - %indvars.iv.i = phi i64 [ 0, %.preheader1.us20.preheader.i ], [ %indvars.iv.next.i, %.preheader.us26.i ] - %.03211.us22.i = phi i8 [ 1, %.preheader1.us20.preheader.i ], [ %.133.us28.i, %.preheader.us26.i ] - %.03410.us23.i = phi double [ 0.000000e+00, %.preheader1.us20.preheader.i ], [ %.135.us27.i, %.preheader.us26.i ] +._crit_edge.us32.i: ; preds = %.preheader1.lr.ph.split.i, %.preheader.us32.i + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %.preheader.us26.i ], [ 0, %.preheader1.lr.ph.split.i ] + %.03211.us22.i = phi i8 [ %.133.us28.i, %.preheader.us26.i ], [ 1, %.preheader1.lr.ph.split.i ] + %.03410.us23.i = phi double [ %.135.us27.i, %.preheader.us26.i ], [ 0.000000e+00, %.preheader1.lr.ph.split.i ] %.phi.trans.insert.i = getelementptr inbounds nuw double, ptr %107, i64 %indvars.iv.i %.pre.i = load double, ptr %.phi.trans.insert.i, align 8 %143 = fadd double %.pre.i, 0.000000e+00 @@ -2108,8 +2104,8 @@ _ZNSt6vectorINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESaIS5_EED2Ev.ex %147 = trunc nuw i8 %.032.lcssa.i to i1 br i1 %147, label %._crit_edge14.thread.i, label %_ZN10open_spiel11tensor_game12_GLOBAL__N_114GetUtilityTypeERKSt6vectorIS2_IdSaIdEESaIS4_EE.exit -._crit_edge14.thread.i: ; preds = %.preheader1.lr.ph.split.us.i, %._crit_edge14.i, %.preheader1.lr.ph.split.i, %"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIdSaIdEES2_IS4_SaIS4_EEEEZN10open_spiel11tensor_game16CreateTensorGameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESJ_RKS2_IS2_ISH_SaISH_EESaISL_EERKS8_E3$_1EbT_ST_T0_.exit.thread" - %.034.lcssa78.i = phi double [ %.034.lcssa.i, %._crit_edge14.i ], [ 0.000000e+00, %"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIdSaIdEES2_IS4_SaIS4_EEEEZN10open_spiel11tensor_game16CreateTensorGameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESJ_RKS2_IS2_ISH_SaISH_EESaISL_EERKS8_E3$_1EbT_ST_T0_.exit.thread" ], [ 0.000000e+00, %.preheader1.lr.ph.split.i ], [ 0.000000e+00, %.preheader1.lr.ph.split.us.i ] +._crit_edge14.thread.i: ; preds = %.preheader1.lr.ph.split.i, %.preheader1.lr.ph.split.us.i, %._crit_edge14.i, %"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIdSaIdEES2_IS4_SaIS4_EEEEZN10open_spiel11tensor_game16CreateTensorGameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESJ_RKS2_IS2_ISH_SaISH_EESaISL_EERKS8_E3$_1EbT_ST_T0_.exit.thread" + %.034.lcssa78.i = phi double [ %.034.lcssa.i, %._crit_edge14.i ], [ 0.000000e+00, %"_ZSt6all_ofIN9__gnu_cxx17__normal_iteratorIPKSt6vectorIdSaIdEES2_IS4_SaIS4_EEEEZN10open_spiel11tensor_game16CreateTensorGameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESJ_RKS2_IS2_ISH_SaISH_EESaISL_EERKS8_E3$_1EbT_ST_T0_.exit.thread" ], [ 0.000000e+00, %.preheader1.lr.ph.split.us.i ], [ 0.000000e+00, %.preheader1.lr.ph.split.i ] %148 = call double @llvm.fabs.f64(double %.034.lcssa78.i) %149 = fcmp ugt double %148, 0x3EB0C6F7A0000000 %.mux.i = zext i1 %149 to i32 diff --git a/bench/php/optimized/zend_dump.ll b/bench/php/optimized/zend_dump.ll index 8dfe5f5f048..d13f75e0dcb 100644 --- a/bench/php/optimized/zend_dump.ll +++ b/bench/php/optimized/zend_dump.ll @@ -1675,13 +1675,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %22 22: ; preds = %17, %19 - %.396 = phi i8 [ %.093, %19 ], [ 0, %17 ] %23 = load ptr, ptr @stderr, align 8 %24 = tail call i64 @fwrite(ptr nonnull @.str.131, i64 3, i64 1, ptr %23) #9 br label %25 25: ; preds = %22, %15 - %.295 = phi i8 [ %.396, %22 ], [ %.093, %15 ] + %.295 = phi i8 [ 0, %22 ], [ %.093, %15 ] %26 = and i32 %0, 1024 %.not117 = icmp eq i32 %26, 0 br i1 %.not117, label %35, label %27 @@ -1696,13 +1695,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %32 32: ; preds = %27, %29 - %.598 = phi i8 [ %.295, %29 ], [ 0, %27 ] %33 = load ptr, ptr @stderr, align 8 %34 = tail call i64 @fwrite(ptr nonnull @.str.132, i64 3, i64 1, ptr %33) #9 br label %35 35: ; preds = %32, %25 - %.497 = phi i8 [ %.598, %32 ], [ %.295, %25 ] + %.497 = phi i8 [ 0, %32 ], [ %.295, %25 ] %36 = and i32 %3, 2 %.not118 = icmp eq i32 %36, 0 br i1 %.not118, label %56, label %37 @@ -1722,13 +1720,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %44 44: ; preds = %39, %41 - %.8101 = phi i8 [ %.497, %41 ], [ 0, %39 ] %45 = load ptr, ptr @stderr, align 8 %46 = tail call i64 @fwrite(ptr nonnull @.str.133, i64 3, i64 1, ptr %45) #9 br label %47 47: ; preds = %44, %37 - %.7100 = phi i8 [ %.8101, %44 ], [ %.497, %37 ] + %.7100 = phi i8 [ 0, %44 ], [ %.497, %37 ] %.not120 = icmp sgt i32 %0, -1 br i1 %.not120, label %56, label %48 @@ -1742,13 +1739,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %53 53: ; preds = %48, %50 - %.9102 = phi i8 [ %.7100, %50 ], [ 0, %48 ] %54 = load ptr, ptr @stderr, align 8 %55 = tail call i64 @fwrite(ptr nonnull @.str.134, i64 3, i64 1, ptr %54) #9 br label %56 56: ; preds = %47, %53, %35 - %.699 = phi i8 [ %.9102, %53 ], [ %.7100, %47 ], [ %.497, %35 ] + %.699 = phi i8 [ 0, %53 ], [ %.7100, %47 ], [ %.497, %35 ] %57 = and i32 %0, 16777216 %.not121 = icmp eq i32 %57, 0 br i1 %.not121, label %75, label %58 @@ -1818,13 +1814,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %93 93: ; preds = %88, %90 - %.11104 = phi i8 [ %.699, %90 ], [ 0, %88 ] %94 = load ptr, ptr @stderr, align 8 %95 = tail call i64 @fwrite(ptr nonnull @.str.138, i64 4, i64 1, ptr %94) #9 br label %96 96: ; preds = %93, %86 - %.10103 = phi i8 [ %.11104, %93 ], [ %.699, %86 ] + %.10103 = phi i8 [ 0, %93 ], [ %.699, %86 ] %97 = and i32 %0, 8 %.not124 = icmp eq i32 %97, 0 %98 = and i32 %0, 12 @@ -1841,7 +1836,6 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %104 104: ; preds = %99, %101 - %.12105 = phi i8 [ %.10103, %101 ], [ 0, %99 ] %105 = load ptr, ptr @stderr, align 8 %106 = tail call i64 @fwrite(ptr nonnull @.str.139, i64 4, i64 1, ptr %105) #9 br label %126 @@ -1861,7 +1855,6 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %114 114: ; preds = %109, %111 - %.14107 = phi i8 [ %.10103, %111 ], [ 0, %109 ] %115 = load ptr, ptr @stderr, align 8 %116 = tail call i64 @fwrite(ptr nonnull @.str.140, i64 5, i64 1, ptr %115) #9 br label %126 @@ -1879,13 +1872,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %123 123: ; preds = %118, %120 - %.15108 = phi i8 [ %.10103, %120 ], [ 0, %118 ] %124 = load ptr, ptr @stderr, align 8 %125 = tail call i64 @fwrite(ptr nonnull @.str.141, i64 4, i64 1, ptr %124) #9 br label %126 126: ; preds = %114, %123, %117, %104 - %.13106 = phi i8 [ %.12105, %104 ], [ %.14107, %114 ], [ %.15108, %123 ], [ %.10103, %117 ] + %.13106 = phi i8 [ 0, %104 ], [ 0, %114 ], [ 0, %123 ], [ %.10103, %117 ] %127 = and i32 %0, 16 %.not126 = icmp eq i32 %127, 0 br i1 %.not126, label %136, label %128 @@ -1900,13 +1892,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %133 133: ; preds = %128, %130 - %.17110 = phi i8 [ %.13106, %130 ], [ 0, %128 ] %134 = load ptr, ptr @stderr, align 8 %135 = tail call i64 @fwrite(ptr nonnull @.str.142, i64 4, i64 1, ptr %134) #9 br label %136 136: ; preds = %133, %126 - %.16109 = phi i8 [ %.17110, %133 ], [ %.13106, %126 ] + %.16109 = phi i8 [ 0, %133 ], [ %.13106, %126 ] %137 = and i32 %0, 32 %.not127 = icmp eq i32 %137, 0 br i1 %.not127, label %146, label %138 @@ -1921,13 +1912,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %143 143: ; preds = %138, %140 - %.19 = phi i8 [ %.16109, %140 ], [ 0, %138 ] %144 = load ptr, ptr @stderr, align 8 %145 = tail call i64 @fwrite(ptr nonnull @.str.143, i64 6, i64 1, ptr %144) #9 br label %146 146: ; preds = %143, %136 - %.18111 = phi i8 [ %.19, %143 ], [ %.16109, %136 ] + %.18111 = phi i8 [ 0, %143 ], [ %.16109, %136 ] %147 = and i32 %0, 64 %.not128 = icmp eq i32 %147, 0 br i1 %.not128, label %156, label %148 @@ -1942,13 +1932,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %153 153: ; preds = %148, %150 - %.21 = phi i8 [ %.18111, %150 ], [ 0, %148 ] %154 = load ptr, ptr @stderr, align 8 %155 = tail call i64 @fwrite(ptr nonnull @.str.144, i64 6, i64 1, ptr %154) #9 br label %156 156: ; preds = %153, %146 - %.20 = phi i8 [ %.21, %153 ], [ %.18111, %146 ] + %.20 = phi i8 [ 0, %153 ], [ %.18111, %146 ] %157 = and i32 %0, 128 %.not129 = icmp eq i32 %157, 0 br i1 %.not129, label %340, label %158 @@ -1963,7 +1952,6 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %163 163: ; preds = %158, %160 - %.23 = phi i8 [ %.20, %160 ], [ 0, %158 ] %164 = and i32 %0, 134217728 %.not130 = icmp eq i32 %164, 0 br i1 %.not130, label %167, label %165 @@ -2037,13 +2025,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %195 195: ; preds = %190, %192 - %.392 = phi i8 [ %.089, %192 ], [ 0, %190 ] %196 = load ptr, ptr @stderr, align 8 %197 = tail call i64 @fwrite(ptr nonnull @.str.150, i64 6, i64 1, ptr %196) #9 br label %198 198: ; preds = %195, %188 - %.291 = phi i8 [ %.392, %195 ], [ %.089, %188 ] + %.291 = phi i8 [ 0, %195 ], [ %.089, %188 ] br i1 %.not132, label %199, label %207 199: ; preds = %198 @@ -2151,13 +2138,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %255 255: ; preds = %250, %252 - %.5 = phi i8 [ %.2, %252 ], [ 0, %250 ] %256 = load ptr, ptr @stderr, align 8 %257 = tail call i64 @fwrite(ptr nonnull @.str.140, i64 5, i64 1, ptr %256) #9 br label %258 258: ; preds = %255, %248 - %.4 = phi i8 [ %.5, %255 ], [ %.2, %248 ] + %.4 = phi i8 [ 0, %255 ], [ %.2, %248 ] %259 = and i32 %0, 8192 %.not146 = icmp eq i32 %259, 0 br i1 %.not146, label %268, label %260 @@ -2172,13 +2158,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %265 265: ; preds = %260, %262 - %.7 = phi i8 [ %.4, %262 ], [ 0, %260 ] %266 = load ptr, ptr @stderr, align 8 %267 = tail call i64 @fwrite(ptr nonnull @.str.141, i64 4, i64 1, ptr %266) #9 br label %268 268: ; preds = %265, %258 - %.6 = phi i8 [ %.7, %265 ], [ %.4, %258 ] + %.6 = phi i8 [ 0, %265 ], [ %.4, %258 ] %269 = and i32 %0, 16384 %.not147 = icmp eq i32 %269, 0 br i1 %.not147, label %278, label %270 @@ -2193,13 +2178,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %275 275: ; preds = %270, %272 - %.9 = phi i8 [ %.6, %272 ], [ 0, %270 ] %276 = load ptr, ptr @stderr, align 8 %277 = tail call i64 @fwrite(ptr nonnull @.str.142, i64 4, i64 1, ptr %276) #9 br label %278 278: ; preds = %275, %268 - %.8 = phi i8 [ %.9, %275 ], [ %.6, %268 ] + %.8 = phi i8 [ 0, %275 ], [ %.6, %268 ] %279 = and i32 %0, 32768 %.not148 = icmp eq i32 %279, 0 br i1 %.not148, label %288, label %280 @@ -2214,13 +2198,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %285 285: ; preds = %280, %282 - %.11 = phi i8 [ %.8, %282 ], [ 0, %280 ] %286 = load ptr, ptr @stderr, align 8 %287 = tail call i64 @fwrite(ptr nonnull @.str.143, i64 6, i64 1, ptr %286) #9 br label %288 288: ; preds = %285, %278 - %.10 = phi i8 [ %.11, %285 ], [ %.8, %278 ] + %.10 = phi i8 [ 0, %285 ], [ %.8, %278 ] %289 = and i32 %0, 65536 %.not149 = icmp eq i32 %289, 0 br i1 %.not149, label %298, label %290 @@ -2235,13 +2218,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %295 295: ; preds = %290, %292 - %.13 = phi i8 [ %.10, %292 ], [ 0, %290 ] %296 = load ptr, ptr @stderr, align 8 %297 = tail call i64 @fwrite(ptr nonnull @.str.144, i64 6, i64 1, ptr %296) #9 br label %298 298: ; preds = %295, %288 - %.12 = phi i8 [ %.13, %295 ], [ %.10, %288 ] + %.12 = phi i8 [ 0, %295 ], [ %.10, %288 ] %299 = and i32 %0, 131072 %.not150 = icmp eq i32 %299, 0 br i1 %.not150, label %308, label %300 @@ -2256,13 +2238,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %305 305: ; preds = %300, %302 - %.15 = phi i8 [ %.12, %302 ], [ 0, %300 ] %306 = load ptr, ptr @stderr, align 8 %307 = tail call i64 @fwrite(ptr nonnull @.str.153, i64 5, i64 1, ptr %306) #9 br label %308 308: ; preds = %305, %298 - %.14 = phi i8 [ %.15, %305 ], [ %.12, %298 ] + %.14 = phi i8 [ 0, %305 ], [ %.12, %298 ] %309 = and i32 %0, 262144 %.not151 = icmp eq i32 %309, 0 br i1 %.not151, label %318, label %310 @@ -2277,13 +2258,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %315 315: ; preds = %310, %312 - %.17 = phi i8 [ %.14, %312 ], [ 0, %310 ] %316 = load ptr, ptr @stderr, align 8 %317 = tail call i64 @fwrite(ptr nonnull @.str.156, i64 6, i64 1, ptr %316) #9 br label %318 318: ; preds = %315, %308 - %.16 = phi i8 [ %.17, %315 ], [ %.14, %308 ] + %.16 = phi i8 [ 0, %315 ], [ %.14, %308 ] %319 = and i32 %0, 524288 %.not152 = icmp eq i32 %319, 0 br i1 %.not152, label %328, label %320 @@ -2298,13 +2278,12 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %325 325: ; preds = %320, %322 - %.18 = phi i8 [ %.16, %322 ], [ 0, %320 ] %326 = load ptr, ptr @stderr, align 8 %327 = tail call i64 @fwrite(ptr nonnull @.str.157, i64 8, i64 1, ptr %326) #9 br label %328 328: ; preds = %318, %325, %240 - %.1 = phi i8 [ 0, %240 ], [ %.18, %325 ], [ %.16, %318 ] + %.1 = phi i8 [ 0, %240 ], [ 0, %325 ], [ %.16, %318 ] %329 = and i32 %0, 1048576 %.not153 = icmp eq i32 %329, 0 br i1 %.not153, label %338, label %330 @@ -2329,7 +2308,7 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %340 340: ; preds = %233, %338, %156 - %.22 = phi i8 [ %.23, %338 ], [ %.23, %233 ], [ %.20, %156 ] + %.22 = phi i8 [ 0, %338 ], [ 0, %233 ], [ %.20, %156 ] %341 = and i32 %0, 256 %.not155 = icmp eq i32 %341, 0 br i1 %.not155, label %355, label %342 @@ -2344,7 +2323,6 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %347 347: ; preds = %342, %344 - %.25 = phi i8 [ %.22, %344 ], [ 0, %342 ] %348 = load ptr, ptr @stderr, align 8 %349 = tail call i64 @fwrite(ptr nonnull @.str.156, i64 6, i64 1, ptr %348) #9 %.not156 = icmp eq ptr %1, null @@ -2361,7 +2339,7 @@ define internal fastcc void @zend_dump_type_info(i32 noundef %0, ptr noundef rea br label %355 355: ; preds = %.sink.split, %347, %340 - %.24 = phi i8 [ %.25, %347 ], [ %.22, %340 ], [ %.25, %.sink.split ] + %.24 = phi i8 [ 0, %347 ], [ %.22, %340 ], [ 0, %.sink.split ] %356 = and i32 %0, 512 %.not158 = icmp eq i32 %356, 0 br i1 %.not158, label %365, label %357 diff --git a/bench/protobuf/optimized/field_mask_util.cc.ll b/bench/protobuf/optimized/field_mask_util.cc.ll index 2af55222e7c..58407774e3f 100644 --- a/bench/protobuf/optimized/field_mask_util.cc.ll +++ b/bench/protobuf/optimized/field_mask_util.cc.ll @@ -236,12 +236,11 @@ if.else15: ; preds = %if.end for.inc.sink.split: ; preds = %if.else15, %if.then11 %narrow.sink = phi i8 [ %narrow, %if.then11 ], [ %0, %if.else15 ] - %after_underscore.1.ph = phi i8 [ 0, %if.then11 ], [ %after_underscore.019, %if.else15 ] tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %output, i8 noundef signext %narrow.sink) br label %for.inc for.inc: ; preds = %for.inc.sink.split, %if.else15 - %after_underscore.1 = phi i8 [ 1, %if.else15 ], [ %after_underscore.1.ph, %for.inc.sink.split ] + %after_underscore.1 = phi i8 [ 1, %if.else15 ], [ 0, %for.inc.sink.split ] %incdec.ptr = getelementptr inbounds nuw i8, ptr %__begin2.018, i64 1 %cmp.not = icmp eq ptr %incdec.ptr, %add.ptr.i br i1 %cmp.not, label %for.end.loopexit, label %for.body @@ -359,12 +358,11 @@ if.else15.i: ; preds = %if.end.i for.inc.sink.split.i: ; preds = %if.else15.i, %if.then11.i %narrow.sink.i = phi i8 [ %narrow.i, %if.then11.i ], [ %8, %if.else15.i ] - %after_underscore.1.ph.i = phi i8 [ 0, %if.then11.i ], [ %after_underscore.019.i, %if.else15.i ] invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9push_backEc(ptr noundef nonnull align 8 dereferenceable(32) %camelcase_path, i8 noundef signext %narrow.sink.i) to label %for.inc.i unwind label %lpad.loopexit for.inc.i: ; preds = %for.inc.sink.split.i, %if.else15.i - %after_underscore.1.i = phi i8 [ 1, %if.else15.i ], [ %after_underscore.1.ph.i, %for.inc.sink.split.i ] + %after_underscore.1.i = phi i8 [ 1, %if.else15.i ], [ 0, %for.inc.sink.split.i ] %incdec.ptr.i = getelementptr inbounds nuw i8, ptr %__begin2.018.i, i64 1 %cmp.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr.i.i br i1 %cmp.not.i, label %invoke.cont, label %for.body.i diff --git a/bench/protobuf/optimized/unparser.cc.ll b/bench/protobuf/optimized/unparser.cc.ll index ec203803d2d..6c4bcad4395 100644 --- a/bench/protobuf/optimized/unparser.cc.ll +++ b/bench/protobuf/optimized/unparser.cc.ll @@ -9678,7 +9678,6 @@ if.end.i: ; preds = %if.end37 to label %invoke.cont38 unwind label %lpad18.loopexit.split-lp.loopexit invoke.cont38: ; preds = %if.end37, %if.end.i - %first.3 = phi i8 [ 0, %if.end37 ], [ %first.0176, %if.end.i ] %28 = load i8, ptr %options_.i.i, align 8 %tobool.i.i = trunc i8 %28 to i1 br i1 %tobool.i.i, label %if.then.i.i64, label %_ZN6google8protobuf13json_internal10JsonWriter10WhitespaceESt17basic_string_viewIcSt11char_traitsIcEE.exit.i @@ -10286,7 +10285,7 @@ invoke.cont73: ; preds = %invoke.cont69 br label %cleanup86 cleanup86: ; preds = %invoke.cont73, %cleanup53, %cleanup26, %invoke.cont34 - %first.2 = phi i8 [ %first.0176, %invoke.cont34 ], [ %first.3, %cleanup53 ], [ %first.0176, %cleanup26 ], [ %first.3, %invoke.cont73 ] + %first.2 = phi i8 [ %first.0176, %invoke.cont34 ], [ 0, %cleanup53 ], [ %first.0176, %cleanup26 ], [ 0, %invoke.cont73 ] %cleanup.dest.slot.3 = phi i1 [ false, %invoke.cont34 ], [ true, %cleanup53 ], [ true, %cleanup26 ], [ %cmp.i115, %invoke.cont73 ] %88 = load i64, ptr %is_empty, align 8 %and.i.i.i.i.i = and i64 %88, 1 @@ -10744,7 +10743,6 @@ if.end.i: ; preds = %if.end10 br label %_ZN6google8protobuf13json_internal10JsonWriter10WriteCommaERb.exit _ZN6google8protobuf13json_internal10JsonWriter10WriteCommaERb.exit: ; preds = %if.end10, %if.end.i - %first.2 = phi i8 [ %first.0533, %if.end.i ], [ 0, %if.end10 ] %33 = load i8, ptr %options_.i.i, align 8 %tobool.i.i = trunc i8 %33 to i1 br i1 %tobool.i.i, label %if.then.i.i19, label %_ZN6google8protobuf13json_internal10JsonWriter10WhitespaceESt17basic_string_viewIcSt11char_traitsIcEE.exit.i @@ -11587,7 +11585,7 @@ cleanup19: ; preds = %sw.epilog.i, %invok br i1 %cmp.i23, label %for.inc, label %return for.inc: ; preds = %cleanup.thread.thread, %cleanup.thread, %cleanup19, %do.end - %first.1 = phi i8 [ %first.0533, %do.end ], [ %first.2, %cleanup19 ], [ %first.0533, %cleanup.thread ], [ %first.0533, %cleanup.thread.thread ] + %first.1 = phi i8 [ %first.0533, %do.end ], [ 0, %cleanup19 ], [ %first.0533, %cleanup.thread ], [ %first.0533, %cleanup.thread.thread ] %inc = add nuw i64 %storemerge534, 1 %exitcond.not = icmp eq i64 %inc, %retval.0.i br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !479 @@ -18479,7 +18477,6 @@ if.end.i: ; preds = %if.end37 to label %invoke.cont38 unwind label %lpad18.loopexit.split-lp.loopexit invoke.cont38: ; preds = %if.end37, %if.end.i - %first.3 = phi i8 [ 0, %if.end37 ], [ %first.0154, %if.end.i ] %26 = load i8, ptr %options_.i.i, align 8 %tobool.i.i = trunc i8 %26 to i1 br i1 %tobool.i.i, label %if.then.i.i57, label %_ZN6google8protobuf13json_internal10JsonWriter10WhitespaceESt17basic_string_viewIcSt11char_traitsIcEE.exit.i @@ -18989,7 +18986,7 @@ invoke.cont73: ; preds = %invoke.cont69 br label %cleanup86 cleanup86: ; preds = %invoke.cont73, %cleanup53, %cleanup26, %invoke.cont34 - %first.2 = phi i8 [ %first.0154, %invoke.cont34 ], [ %first.3, %cleanup53 ], [ %first.0154, %cleanup26 ], [ %first.3, %invoke.cont73 ] + %first.2 = phi i8 [ %first.0154, %invoke.cont34 ], [ 0, %cleanup53 ], [ %first.0154, %cleanup26 ], [ 0, %invoke.cont73 ] %cleanup.dest.slot.3 = phi i1 [ false, %invoke.cont34 ], [ true, %cleanup53 ], [ true, %cleanup26 ], [ %cmp.i96, %invoke.cont73 ] %84 = load i64, ptr %is_empty, align 8 %and.i.i.i.i.i = and i64 %84, 1 @@ -19559,7 +19556,6 @@ if.end.i: ; preds = %if.end10 br label %_ZN6google8protobuf13json_internal10JsonWriter10WriteCommaERb.exit _ZN6google8protobuf13json_internal10JsonWriter10WriteCommaERb.exit: ; preds = %if.end10, %if.end.i - %first.2 = phi i8 [ %first.0544, %if.end.i ], [ 0, %if.end10 ] %46 = load i8, ptr %options_.i.i, align 8 %tobool.i.i = trunc i8 %46 to i1 br i1 %tobool.i.i, label %if.then.i.i22, label %_ZN6google8protobuf13json_internal10JsonWriter10WhitespaceESt17basic_string_viewIcSt11char_traitsIcEE.exit.i @@ -20322,7 +20318,7 @@ cleanup19: ; preds = %sw.epilog.i, %invok br i1 %cmp.i28, label %for.inc, label %return for.inc: ; preds = %cleanup19, %do.end - %first.1 = phi i8 [ %first.0544, %do.end ], [ %first.2, %cleanup19 ] + %first.1 = phi i8 [ %first.0544, %do.end ], [ 0, %cleanup19 ] %inc = add nuw i64 %storemerge545, 1 %exitcond.not = icmp eq i64 %inc, %call2.i br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !712 diff --git a/bench/quantlib/optimized/linesearchbasedmethod.ll b/bench/quantlib/optimized/linesearchbasedmethod.ll index 580b8f2909f..e121e0cc6d2 100644 --- a/bench/quantlib/optimized/linesearchbasedmethod.ll +++ b/bench/quantlib/optimized/linesearchbasedmethod.ll @@ -951,7 +951,7 @@ _ZNKSt14default_deleteIA_dEclIdEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5v do.cond: ; preds = %_ZN8QuantLib5ArrayC2ERKS0_.exit.i.i, %_ZNKSt14default_deleteIA_dEclIdEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i.i.i %inc = add i64 %iterationNumber_.0, 1 - br label %do.body, !llvm.loop !57 + br label %do.body do.end: ; preds = %invoke.cont61 %94 = load i64, ptr %n_.i38316, align 8, !tbaa !42 @@ -1193,20 +1193,20 @@ lpad23: ; preds = %invoke.cont24, %inv %cleanup.isactive.0 = phi i1 [ false, %invoke.cont24 ], [ true, %invoke.cont22 ] %7 = landingpad { ptr, i32 } cleanup - %8 = load ptr, ptr %ref.tmp20, align 8, !tbaa !58 + %8 = load ptr, ptr %ref.tmp20, align 8, !tbaa !57 %9 = getelementptr inbounds nuw i8, ptr %ref.tmp20, i64 16 %cmp.i.i.i = icmp eq ptr %8, %9 br i1 %cmp.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %if.then.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i: ; preds = %lpad23 %_M_string_length.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp20, i64 8 - %10 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !61 + %10 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !60 %cmp3.i.i.i = icmp ult i64 %10, 16 call void @llvm.assume(i1 %cmp3.i.i.i) br label %ehcleanup if.then.i.i: ; preds = %lpad23 - %11 = load i64, ptr %9, align 8, !tbaa !62 + %11 = load i64, ptr %9, align 8, !tbaa !61 %add.i.i.i = add i64 %11, 1 call void @_ZdlPvm(ptr noundef %8, i64 noundef %add.i.i.i) #23 br label %ehcleanup @@ -1215,20 +1215,20 @@ ehcleanup: ; preds = %if.then.i.i, %_ZNKS %.pn = phi { ptr, i32 } [ %6, %lpad21 ], [ %7, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i ], [ %7, %if.then.i.i ] %cleanup.isactive.3 = phi i1 [ true, %lpad21 ], [ %cleanup.isactive.0, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i ], [ %cleanup.isactive.0, %if.then.i.i ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp20) #19 - %12 = load ptr, ptr %ref.tmp16, align 8, !tbaa !58 + %12 = load ptr, ptr %ref.tmp16, align 8, !tbaa !57 %13 = getelementptr inbounds nuw i8, ptr %ref.tmp16, i64 16 %cmp.i.i.i23 = icmp eq ptr %12, %13 br i1 %cmp.i.i.i23, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i26, label %if.then.i.i24 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i26: ; preds = %ehcleanup %_M_string_length.i.i.i27 = getelementptr inbounds nuw i8, ptr %ref.tmp16, i64 8 - %14 = load i64, ptr %_M_string_length.i.i.i27, align 8, !tbaa !61 + %14 = load i64, ptr %_M_string_length.i.i.i27, align 8, !tbaa !60 %cmp3.i.i.i28 = icmp ult i64 %14, 16 call void @llvm.assume(i1 %cmp3.i.i.i28) br label %ehcleanup26 if.then.i.i24: ; preds = %ehcleanup - %15 = load i64, ptr %13, align 8, !tbaa !62 + %15 = load i64, ptr %13, align 8, !tbaa !61 %add.i.i.i25 = add i64 %15, 1 call void @_ZdlPvm(ptr noundef %12, i64 noundef %add.i.i.i25) #23 br label %ehcleanup26 @@ -1236,7 +1236,7 @@ if.then.i.i24: ; preds = %ehcleanup ehcleanup26: ; preds = %if.then.i.i24, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i26 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp17) #19 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp16) #19 - %16 = load ptr, ptr %ref.tmp, align 8, !tbaa !58 + %16 = load ptr, ptr %ref.tmp, align 8, !tbaa !57 %17 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 16 %cmp.i.i.i30 = icmp eq ptr %16, %17 br i1 %cmp.i.i.i30, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i33, label %ehcleanup30 @@ -1246,27 +1246,27 @@ ehcleanup26.thread: ; preds = %invoke.cont15 cleanup call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp17) #19 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp16) #19 - %19 = load ptr, ptr %ref.tmp, align 8, !tbaa !58 + %19 = load ptr, ptr %ref.tmp, align 8, !tbaa !57 %20 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 16 %cmp.i.i.i3043 = icmp eq ptr %19, %20 br i1 %cmp.i.i.i3043, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i33.thread, label %ehcleanup30.thread52 ehcleanup30.thread52: ; preds = %ehcleanup26.thread - %21 = load i64, ptr %20, align 8, !tbaa !62 + %21 = load i64, ptr %20, align 8, !tbaa !61 %add.i.i.i3255 = add i64 %21, 1 call void @_ZdlPvm(ptr noundef %19, i64 noundef %add.i.i.i3255) #23 br label %cleanup.action.sink.split _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i33.thread: ; preds = %ehcleanup26.thread %_M_string_length.i.i.i3450 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 8 - %22 = load i64, ptr %_M_string_length.i.i.i3450, align 8, !tbaa !61 + %22 = load i64, ptr %_M_string_length.i.i.i3450, align 8, !tbaa !60 %cmp3.i.i.i3551 = icmp ult i64 %22, 16 call void @llvm.assume(i1 %cmp3.i.i.i3551) br label %cleanup.action.sink.split _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i33: ; preds = %ehcleanup26 %_M_string_length.i.i.i34 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 8 - %23 = load i64, ptr %_M_string_length.i.i.i34, align 8, !tbaa !61 + %23 = load i64, ptr %_M_string_length.i.i.i34, align 8, !tbaa !60 %cmp3.i.i.i35 = icmp ult i64 %23, 16 call void @llvm.assume(i1 %cmp3.i.i.i35) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp13) #19 @@ -1274,7 +1274,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.threa br i1 %cleanup.isactive.3, label %cleanup.action, label %ehcleanup34 ehcleanup30: ; preds = %ehcleanup26 - %24 = load i64, ptr %17, align 8, !tbaa !62 + %24 = load i64, ptr %17, align 8, !tbaa !61 %add.i.i.i32 = add i64 %24, 1 call void @_ZdlPvm(ptr noundef %16, i64 noundef %add.i.i.i32) #23 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp13) #19 @@ -1318,7 +1318,7 @@ for.body.i: ; preds = %for.body.i.preheade %incdec.ptr.i = getelementptr inbounds nuw i8, ptr %__first1.addr.06.i, i64 8 %incdec.ptr1.i = getelementptr inbounds nuw i8, ptr %__first2.addr.07.i, i64 8 %cmp.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZSt13inner_productIPKdS1_dET1_T_S3_T0_S2_.exit, label %for.body.i, !llvm.loop !63 + br i1 %cmp.not.i, label %_ZSt13inner_productIPKdS1_dET1_T_S3_T0_S2_.exit, label %for.body.i, !llvm.loop !62 _ZSt13inner_productIPKdS1_dET1_T_S3_T0_S2_.exit: ; preds = %for.body.i, %do.end %__init.addr.0.lcssa.i = phi double [ 0.000000e+00, %do.end ], [ %29, %for.body.i ] @@ -1413,20 +1413,20 @@ lpad23: ; preds = %invoke.cont24, %inv %cleanup.isactive.0 = phi i1 [ false, %invoke.cont24 ], [ true, %invoke.cont22 ] %7 = landingpad { ptr, i32 } cleanup - %8 = load ptr, ptr %ref.tmp20, align 8, !tbaa !58 + %8 = load ptr, ptr %ref.tmp20, align 8, !tbaa !57 %9 = getelementptr inbounds nuw i8, ptr %ref.tmp20, i64 16 %cmp.i.i.i = icmp eq ptr %8, %9 br i1 %cmp.i.i.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i, label %if.then.i.i _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i: ; preds = %lpad23 %_M_string_length.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp20, i64 8 - %10 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !61 + %10 = load i64, ptr %_M_string_length.i.i.i, align 8, !tbaa !60 %cmp3.i.i.i = icmp ult i64 %10, 16 call void @llvm.assume(i1 %cmp3.i.i.i) br label %ehcleanup if.then.i.i: ; preds = %lpad23 - %11 = load i64, ptr %9, align 8, !tbaa !62 + %11 = load i64, ptr %9, align 8, !tbaa !61 %add.i.i.i = add i64 %11, 1 call void @_ZdlPvm(ptr noundef %8, i64 noundef %add.i.i.i) #23 br label %ehcleanup @@ -1435,20 +1435,20 @@ ehcleanup: ; preds = %if.then.i.i, %_ZNKS %.pn = phi { ptr, i32 } [ %6, %lpad21 ], [ %7, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i ], [ %7, %if.then.i.i ] %cleanup.isactive.3 = phi i1 [ true, %lpad21 ], [ %cleanup.isactive.0, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i ], [ %cleanup.isactive.0, %if.then.i.i ] call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp20) #19 - %12 = load ptr, ptr %ref.tmp16, align 8, !tbaa !58 + %12 = load ptr, ptr %ref.tmp16, align 8, !tbaa !57 %13 = getelementptr inbounds nuw i8, ptr %ref.tmp16, i64 16 %cmp.i.i.i24 = icmp eq ptr %12, %13 br i1 %cmp.i.i.i24, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i27, label %if.then.i.i25 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i27: ; preds = %ehcleanup %_M_string_length.i.i.i28 = getelementptr inbounds nuw i8, ptr %ref.tmp16, i64 8 - %14 = load i64, ptr %_M_string_length.i.i.i28, align 8, !tbaa !61 + %14 = load i64, ptr %_M_string_length.i.i.i28, align 8, !tbaa !60 %cmp3.i.i.i29 = icmp ult i64 %14, 16 call void @llvm.assume(i1 %cmp3.i.i.i29) br label %ehcleanup26 if.then.i.i25: ; preds = %ehcleanup - %15 = load i64, ptr %13, align 8, !tbaa !62 + %15 = load i64, ptr %13, align 8, !tbaa !61 %add.i.i.i26 = add i64 %15, 1 call void @_ZdlPvm(ptr noundef %12, i64 noundef %add.i.i.i26) #23 br label %ehcleanup26 @@ -1456,7 +1456,7 @@ if.then.i.i25: ; preds = %ehcleanup ehcleanup26: ; preds = %if.then.i.i25, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i27 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp17) #19 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp16) #19 - %16 = load ptr, ptr %ref.tmp, align 8, !tbaa !58 + %16 = load ptr, ptr %ref.tmp, align 8, !tbaa !57 %17 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 16 %cmp.i.i.i31 = icmp eq ptr %16, %17 br i1 %cmp.i.i.i31, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i34, label %ehcleanup30 @@ -1466,27 +1466,27 @@ ehcleanup26.thread: ; preds = %invoke.cont15 cleanup call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp17) #19 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %ref.tmp16) #19 - %19 = load ptr, ptr %ref.tmp, align 8, !tbaa !58 + %19 = load ptr, ptr %ref.tmp, align 8, !tbaa !57 %20 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 16 %cmp.i.i.i3147 = icmp eq ptr %19, %20 br i1 %cmp.i.i.i3147, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i34.thread, label %ehcleanup30.thread56 ehcleanup30.thread56: ; preds = %ehcleanup26.thread - %21 = load i64, ptr %20, align 8, !tbaa !62 + %21 = load i64, ptr %20, align 8, !tbaa !61 %add.i.i.i3359 = add i64 %21, 1 call void @_ZdlPvm(ptr noundef %19, i64 noundef %add.i.i.i3359) #23 br label %cleanup.action.sink.split _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i34.thread: ; preds = %ehcleanup26.thread %_M_string_length.i.i.i3554 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 8 - %22 = load i64, ptr %_M_string_length.i.i.i3554, align 8, !tbaa !61 + %22 = load i64, ptr %_M_string_length.i.i.i3554, align 8, !tbaa !60 %cmp3.i.i.i3655 = icmp ult i64 %22, 16 call void @llvm.assume(i1 %cmp3.i.i.i3655) br label %cleanup.action.sink.split _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.thread.i.i34: ; preds = %ehcleanup26 %_M_string_length.i.i.i35 = getelementptr inbounds nuw i8, ptr %ref.tmp, i64 8 - %23 = load i64, ptr %_M_string_length.i.i.i35, align 8, !tbaa !61 + %23 = load i64, ptr %_M_string_length.i.i.i35, align 8, !tbaa !60 %cmp3.i.i.i36 = icmp ult i64 %23, 16 call void @llvm.assume(i1 %cmp3.i.i.i36) call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp13) #19 @@ -1494,7 +1494,7 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE11_M_is_localEv.exit.threa br i1 %cleanup.isactive.3, label %cleanup.action, label %ehcleanup34 ehcleanup30: ; preds = %ehcleanup26 - %24 = load i64, ptr %17, align 8, !tbaa !62 + %24 = load i64, ptr %17, align 8, !tbaa !61 %add.i.i.i33 = add i64 %24, 1 call void @_ZdlPvm(ptr noundef %16, i64 noundef %add.i.i.i33) #23 call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %ref.tmp13) #19 @@ -1553,7 +1553,7 @@ for.body.i: ; preds = %for.body.i.preheade %incdec.ptr1.i = getelementptr inbounds nuw i8, ptr %__first2.addr.08.i, i64 8 %incdec.ptr2.i = getelementptr inbounds nuw i8, ptr %__result.addr.09.i, i64 8 %cmp.not.i41 = icmp eq ptr %incdec.ptr.i, %add.ptr.i - br i1 %cmp.not.i41, label %_ZSt9transformIPKdS1_PdSt5minusIvEET1_T_S6_T0_S5_T2_.exit, label %for.body.i, !llvm.loop !64 + br i1 %cmp.not.i41, label %_ZSt9transformIPKdS1_PdSt5minusIvEET1_T_S6_T0_S5_T2_.exit, label %for.body.i, !llvm.loop !63 _ZSt9transformIPKdS1_PdSt5minusIvEET1_T_S6_T0_S5_T2_.exit: ; preds = %for.body.i, %_ZN8QuantLib5ArrayC2Em.exit.thread ret void @@ -1702,7 +1702,7 @@ define linkonce_odr void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC entry: %__dnew.i = alloca i64, align 8 %0 = getelementptr inbounds nuw i8, ptr %this, i64 16 - store ptr %0, ptr %this, align 8, !tbaa !65 + store ptr %0, ptr %this, align 8, !tbaa !64 %cmp = icmp eq ptr %__s, null br i1 %cmp, label %if.then, label %if.end @@ -1719,9 +1719,9 @@ if.end: ; preds = %entry if.then.i: ; preds = %if.end %call2.i5 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_createERmm(ptr noundef nonnull align 8 dereferenceable(32) %this, ptr noundef nonnull align 8 dereferenceable(8) %__dnew.i, i64 noundef 0) - store ptr %call2.i5, ptr %this, align 8, !tbaa !58 + store ptr %call2.i5, ptr %this, align 8, !tbaa !57 %1 = load i64, ptr %__dnew.i, align 8, !tbaa !34 - store i64 %1, ptr %0, align 8, !tbaa !62 + store i64 %1, ptr %0, align 8, !tbaa !61 br label %if.end.i if.end.i: ; preds = %if.end, %if.then.i @@ -1732,8 +1732,8 @@ if.end.i: ; preds = %if.end, %if.then.i ] if.then.i.i.i: ; preds = %if.end.i - %3 = load i8, ptr %__s, align 1, !tbaa !62 - store i8 %3, ptr %2, align 1, !tbaa !62 + %3 = load i8, ptr %__s, align 1, !tbaa !61 + store i8 %3, ptr %2, align 1, !tbaa !61 br label %invoke.cont4 if.end.i.i.i.i: ; preds = %if.end.i @@ -1743,10 +1743,10 @@ if.end.i.i.i.i: ; preds = %if.end.i invoke.cont4: ; preds = %if.end.i.i.i.i, %if.then.i.i.i, %if.end.i %4 = load i64, ptr %__dnew.i, align 8, !tbaa !34 %_M_string_length.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 8 - store i64 %4, ptr %_M_string_length.i.i.i, align 8, !tbaa !61 - %5 = load ptr, ptr %this, align 8, !tbaa !58 + store i64 %4, ptr %_M_string_length.i.i.i, align 8, !tbaa !60 + %5 = load ptr, ptr %this, align 8, !tbaa !57 %arrayidx.i.i = getelementptr inbounds nuw i8, ptr %5, i64 %4 - store i8 0, ptr %arrayidx.i.i, align 1, !tbaa !62 + store i8 0, ptr %arrayidx.i.i, align 1, !tbaa !61 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__dnew.i) #19 ret void } @@ -1988,12 +1988,11 @@ attributes #23 = { builtin nounwind } !54 = !{!"branch_weights", !"expected", i32 1717128, i32 2145766520} !55 = !{!13, !22, i64 56} !56 = !{!13, !22, i64 64} -!57 = distinct !{!57, !50} -!58 = !{!59, !8, i64 0} -!59 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !60, i64 0, !21, i64 8, !9, i64 16} -!60 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !8, i64 0} -!61 = !{!59, !21, i64 8} -!62 = !{!9, !9, i64 0} +!57 = !{!58, !8, i64 0} +!58 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE", !59, i64 0, !21, i64 8, !9, i64 16} +!59 = !{!"_ZTSNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderE", !8, i64 0} +!60 = !{!58, !21, i64 8} +!61 = !{!9, !9, i64 0} +!62 = distinct !{!62, !50} !63 = distinct !{!63, !50} -!64 = distinct !{!64, !50} -!65 = !{!60, !8, i64 0} +!64 = !{!59, !8, i64 0} diff --git a/bench/rand-rs/optimized/41f1i7a67rmtb216.ll b/bench/rand-rs/optimized/41f1i7a67rmtb216.ll index a7419c592ac..ae180b5c206 100644 --- a/bench/rand-rs/optimized/41f1i7a67rmtb216.ll +++ b/bench/rand-rs/optimized/41f1i7a67rmtb216.ll @@ -39,8 +39,7 @@ define hidden noundef ptr @_ZN3std2io5Write9write_all17hd57ff41459b8f21aE(ptr no 11: ; preds = %9 %12 = load i64, ptr %7, align 8, !noundef !5 %13 = icmp eq i64 %12, 0 - %14 = inttoptr i64 %12 to ptr - br i1 %13, label %32, label %30 + br i1 %13, label %31, label %29 15: ; preds = %9 %.val = load ptr, ptr %7, align 8, !nonnull !5, !noundef !5 @@ -78,7 +77,7 @@ default.unreachable: ; preds = %15 30: ; preds = %11 %31 = icmp ugt i64 %12, %.sroa.4.028 - br i1 %31, label %33, label %34 + br i1 %31, label %33, label %33 32: ; preds = %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit, %24, %20, %18, %11 %.1 = phi ptr [ @anon.b569a6c0cf3ee771e10e8d9c0cacbecc.1, %11 ], [ %.val, %18 ], [ %.val, %20 ], [ %.val, %24 ], [ %.val, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ] @@ -86,42 +85,29 @@ default.unreachable: ; preds = %15 br label %.loopexit 33: ; preds = %30 - invoke void @_ZN4core5slice5index26slice_start_index_len_fail17h0187bf4d120fc375E(i64 noundef %12, i64 noundef %.sroa.4.028, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.b569a6c0cf3ee771e10e8d9c0cacbecc.3) #6 - to label %39 unwind label %37 - -34: ; preds = %30 - %35 = sub nuw i64 %.sroa.4.028, %12 - %36 = getelementptr inbounds i8, ptr %.sroa.0.029, i64 %12 - %.not = icmp eq i64 %10, 0 - br i1 %.not, label %40, label %.thread - -37: ; preds = %33 - %38 = landingpad { ptr, i32 } - cleanup - %.not16 = icmp eq i64 %10, 0 - br i1 %.not16, label %45, label %46 - -39: ; preds = %33 + call void @_ZN4core5slice5index26slice_start_index_len_fail17h0187bf4d120fc375E(i64 noundef %12, i64 noundef %.sroa.4.028, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.b569a6c0cf3ee771e10e8d9c0cacbecc.3) #6 unreachable -_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit: ; preds = %15 - %.mask20.i = and i64 %16, -4294967296 +_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit: ; preds = %29 + %.mask20.i = sub nuw i64 %.sroa.4.028, %12 + %35 = getelementptr inbounds i8, ptr %.sroa.0.029, i64 %12 + br label %36 + +_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit: ; preds = %14 + %.mask20.i = and i64 %15, -4294967296 %switch.i = icmp eq i64 %.mask20.i, 150323855360 br i1 %switch.i, label %.thread, label %32 -40: ; preds = %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h68505999b3aa004dE.exit", %34 - %.sroa.0.123 = phi ptr [ %.sroa.0.122, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h68505999b3aa004dE.exit" ], [ %36, %34 ] - %.sroa.4.121 = phi i64 [ %.sroa.4.120, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h68505999b3aa004dE.exit" ], [ %35, %34 ] +40: ; preds = %33, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h68505999b3aa004dE.exit" + %.sroa.0.123 = phi ptr [ %.sroa.0.029, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h68505999b3aa004dE.exit" ], [ %35, %33 ] + %.sroa.4.121 = phi i64 [ %.sroa.4.028, %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h68505999b3aa004dE.exit" ], [ %34, %33 ] call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) %41 = icmp eq i64 %.sroa.4.121, 0 br i1 %41, label %.loopexit, label %9 -.thread: ; preds = %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit, %24, %20, %18, %34 - %42 = phi ptr [ %14, %34 ], [ %.val, %18 ], [ %.val, %20 ], [ %.val, %24 ], [ %.val, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ] - %.sroa.0.122 = phi ptr [ %36, %34 ], [ %.sroa.0.029, %18 ], [ %.sroa.0.029, %20 ], [ %.sroa.0.029, %24 ], [ %.sroa.0.029, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ] - %.sroa.4.120 = phi i64 [ %35, %34 ], [ %.sroa.4.028, %18 ], [ %.sroa.4.028, %20 ], [ %.sroa.4.028, %24 ], [ %.sroa.4.028, %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit ] +.thread: ; preds = %_ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit, %24, %20, %18 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %4), !noalias !7 - call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h7f10a35b020fec2aE.llvm.5924959188710931181(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noundef nonnull %42), !noalias !7 + call void @_ZN3std2io5error14repr_bitpacked11decode_repr17h7f10a35b020fec2aE.llvm.5924959188710931181(ptr noalias noundef nonnull sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16) %4, ptr noundef nonnull %.val), !noalias !7 %43 = load i8, ptr %4, align 8, !range !14, !alias.scope !15, !noalias !7, !noundef !5 %switch.not.i.i.i.i = icmp eq i8 %43, 3 br i1 %switch.not.i.i.i.i, label %44, label %"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h68505999b3aa004dE.exit" @@ -133,19 +119,6 @@ _ZN3std2io5error5Error14is_interrupted17h943f3f95534b9a0eE.exit: ; preds = %15 "_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h68505999b3aa004dE.exit": ; preds = %.thread, %44 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !7 br label %40 - -45: ; preds = %46, %37 - resume { ptr, i32 } %38 - -46: ; preds = %37 - invoke void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h68505999b3aa004dE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %7) #7 - to label %45 unwind label %47 - -47: ; preds = %46 - %48 = landingpad { ptr, i32 } - filter [0 x ptr] zeroinitializer - call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #8 - unreachable } ; Function Attrs: nonlazybind uwtable @@ -271,9 +244,6 @@ declare void @llvm.lifetime.end.p0(i64 immarg, ptr captures(none)) #4 ; Function Attrs: nonlazybind uwtable declare hidden void @"_ZN4core3ptr68drop_in_place$LT$alloc..boxed..Box$LT$std..io..error..Custom$GT$$GT$17ha76973ebf254caa3E.llvm.5924959188710931181"(ptr noalias noundef align 8 dereferenceable(8)) unnamed_addr #0 -; Function Attrs: nonlazybind uwtable -declare hidden void @"_ZN4core3ptr42drop_in_place$LT$std..io..error..Error$GT$17h68505999b3aa004dE"(ptr noalias noundef align 8 dereferenceable(8)) unnamed_addr #0 - ; Function Attrs: inlinehint nonlazybind uwtable declare hidden void @_ZN3std2io5error14repr_bitpacked11decode_repr17h7f10a35b020fec2aE.llvm.5924959188710931181(ptr noalias noundef sret({ i8, [15 x i8] }) align 8 captures(none) dereferenceable(16), ptr noundef nonnull) unnamed_addr #5 diff --git a/bench/rayon-rs/optimized/1kw8d85q77j78ldq.ll b/bench/rayon-rs/optimized/1kw8d85q77j78ldq.ll index 06b823cc022..391b06b95a6 100644 --- a/bench/rayon-rs/optimized/1kw8d85q77j78ldq.ll +++ b/bench/rayon-rs/optimized/1kw8d85q77j78ldq.ll @@ -148,7 +148,7 @@ _ZN4core3ops8function6FnOnce9call_once17h464f8eed5ebbeffeE.exit: ; preds = %22, unreachable "_ZN4core3ptr40drop_in_place$LT$std..thread..Thread$GT$17he65898e30c55f790E.exit84": ; preds = %.thread98, %152, %.noexc70 - %.2 = phi i8 [ %.4, %.noexc70 ], [ %.3101, %152 ], [ %.3101, %.thread98 ] + %.2 = phi i1 [ false, %.noexc70 ], [ true, %152 ], [ true, %.thread98 ] %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn, %.noexc70 ], [ %.pn.pn.pn.pn102, %152 ], [ %.pn.pn.pn.pn102, %.thread98 ] call void @llvm.experimental.noalias.scope.decl(metadata !11) call void @llvm.experimental.noalias.scope.decl(metadata !14) @@ -200,8 +200,7 @@ _ZN4core3ops8function6FnOnce9call_once17h464f8eed5ebbeffeE.exit: ; preds = %22, unreachable .noexc70: ; preds = %72, %"_ZN4core3ptr80drop_in_place$LT$alloc..sync..Arc$LT$std..thread..Packet$LT$$LP$$RP$$GT$$GT$$GT$17hc6e90a3f351adae0E.exit82" - %64 = trunc nuw i8 %.4 to i1 - br i1 %64, label %.noexc70..thread98_crit_edge, label %"_ZN4core3ptr40drop_in_place$LT$std..thread..Thread$GT$17he65898e30c55f790E.exit84" + br i1 %.4, label %.noexc70..thread98_crit_edge, label %"_ZN4core3ptr40drop_in_place$LT$std..thread..Thread$GT$17he65898e30c55f790E.exit84" .noexc70..thread98_crit_edge: ; preds = %.noexc70 %.pre = load ptr, ptr %16, align 8, !alias.scope !30 @@ -221,7 +220,7 @@ _ZN4core3ops8function6FnOnce9call_once17h464f8eed5ebbeffeE.exit: ; preds = %22, unreachable "_ZN4core3ptr80drop_in_place$LT$alloc..sync..Arc$LT$std..thread..Packet$LT$$LP$$RP$$GT$$GT$$GT$17hc6e90a3f351adae0E.exit82": ; preds = %104, %.body, %135, %"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17ha9001a46134deedaE.exit80.thread", %148 - %.4 = phi i8 [ 1, %148 ], [ 1, %"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17ha9001a46134deedaE.exit80.thread" ], [ 0, %135 ], [ 0, %.body ], [ 0, %104 ] + %.4 = phi i1 [ true, %149 ], [ true, %"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17ha9001a46134deedaE.exit80.thread" ], [ false, %135 ], [ false, %.body ], [ false, %104 ] %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn107, %148 ], [ %.pn.pn107, %"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17ha9001a46134deedaE.exit80.thread" ], [ %136, %135 ], [ %108, %.body ], [ %105, %104 ] call void @llvm.experimental.noalias.scope.decl(metadata !39) call void @llvm.experimental.noalias.scope.decl(metadata !42) @@ -455,7 +454,7 @@ _ZN4core3ops8function6FnOnce9call_once17h464f8eed5ebbeffeE.exit: ; preds = %22, invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17hc21795b16235830eE"(ptr noalias noundef nonnull align 8 dereferenceable(8) %13) to label %"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17ha9001a46134deedaE.exit80.thread" unwind label %133 -"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17ha9001a46134deedaE.exit80.thread": ; preds = %141, %137, %144, %.thread103 +"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17ha9001a46134deedaE.exit80.thread": ; preds = %73, %144, %137, %141 %.pn.pn107 = phi { ptr, i32 } [ %74, %.thread103 ], [ %138, %144 ], [ %138, %137 ], [ %138, %141 ] call void @llvm.experimental.noalias.scope.decl(metadata !97) call void @llvm.experimental.noalias.scope.decl(metadata !100) @@ -472,7 +471,6 @@ _ZN4core3ops8function6FnOnce9call_once17h464f8eed5ebbeffeE.exit: ; preds = %22, .thread98: ; preds = %.noexc70..thread98_crit_edge, %60 %149 = phi ptr [ %.pre, %.noexc70..thread98_crit_edge ], [ %31, %60 ] %.pn.pn.pn.pn102 = phi { ptr, i32 } [ %.pn.pn.pn, %.noexc70..thread98_crit_edge ], [ %61, %60 ] - %.3101 = phi i8 [ %.4, %.noexc70..thread98_crit_edge ], [ 1, %60 ] call void @llvm.experimental.noalias.scope.decl(metadata !104) call void @llvm.experimental.noalias.scope.decl(metadata !105) call void @llvm.experimental.noalias.scope.decl(metadata !106) @@ -493,8 +491,7 @@ _ZN4core3ops8function6FnOnce9call_once17h464f8eed5ebbeffeE.exit: ; preds = %22, to label %.thread92.thread unwind label %133 "_ZN4core3ptr103drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..thread..scoped..ScopeData$GT$$GT$$GT$17hb3b397642cdb3d69E.exit": ; preds = %"_ZN4core3ptr40drop_in_place$LT$std..thread..Thread$GT$17he65898e30c55f790E.exit84", %53 - %154 = trunc nuw i8 %.2 to i1 - br i1 %154, label %"_ZN4core3ptr103drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..thread..scoped..ScopeData$GT$$GT$$GT$17hb3b397642cdb3d69E.exit.thread", label %"_ZN4core3ptr144drop_in_place$LT$$LT$rayon_core..registry..DefaultSpawn$u20$as$u20$rayon_core..registry..ThreadSpawn$GT$..spawn..$u7b$$u7b$closure$u7d$$u7d$$GT$17h1ae2b47a0ded9c1aE.exit" + br i1 %.2, label %"_ZN4core3ptr103drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..thread..scoped..ScopeData$GT$$GT$$GT$17hb3b397642cdb3d69E.exit.thread", label %"_ZN4core3ptr144drop_in_place$LT$$LT$rayon_core..registry..DefaultSpawn$u20$as$u20$rayon_core..registry..ThreadSpawn$GT$..spawn..$u7b$$u7b$closure$u7d$$u7d$$GT$17h1ae2b47a0ded9c1aE.exit" .thread92.thread: ; preds = %36, %.thread95, %153 %.pn59123 = phi { ptr, i32 } [ %37, %36 ], [ %lpad.thr_comm, %.thread95 ], [ %lpad.thr_comm.split-lp, %153 ] diff --git a/bench/re2/optimized/prog.cc.ll b/bench/re2/optimized/prog.cc.ll index 6a11b732dcc..234a2cdd543 100644 --- a/bench/re2/optimized/prog.cc.ll +++ b/bench/re2/optimized/prog.cc.ll @@ -2370,6 +2370,8 @@ if.then54: ; preds = %invoke.cont2 %and = and i32 %27, 3 %tobool57.not = icmp eq i32 %and, 0 %brmerge = select i1 %tobool57.not, i1 true, i1 %marked_line_boundaries.0241 + %not.tobool57.not = xor i1 %tobool57.not, true + %marked_line_boundaries.0.mux = select i1 %not.tobool57.not, i1 true, i1 %marked_line_boundaries.0241 br i1 %brmerge, label %if.end63, label %if.then60 if.then60: ; preds = %if.then54 @@ -2455,10 +2457,12 @@ invoke.cont61.if.end63_crit_edge: ; preds = %invoke.cont61 if.end63: ; preds = %invoke.cont61.if.end63_crit_edge, %if.then54 %34 = phi i32 [ %27, %if.then54 ], [ %.pre, %invoke.cont61.if.end63_crit_edge ] - %marked_line_boundaries.2 = phi i1 [ %marked_line_boundaries.0241, %if.then54 ], [ true, %invoke.cont61.if.end63_crit_edge ] + %marked_line_boundaries.2 = phi i1 [ %marked_line_boundaries.0.mux, %if.then54 ], [ true, %invoke.cont61.if.end63_crit_edge ] %and66 = and i32 %34, 48 %tobool67.not = icmp eq i32 %and66, 0 %brmerge220 = select i1 %tobool67.not, i1 true, i1 %marked_word_boundaries.0240 + %not.tobool67.not = xor i1 %tobool67.not, true + %marked_word_boundaries.0.mux = select i1 %not.tobool67.not, i1 true, i1 %marked_word_boundaries.0240 br i1 %brmerge220, label %for.inc111, label %if.then70 if.then70: ; preds = %if.end63 @@ -2722,7 +2726,7 @@ for.inc106: ; preds = %invoke.cont.i.i38.i br i1 %cmp75.not, label %for.inc111, label %for.body76 for.inc111: ; preds = %for.inc106, %if.end63, %invoke.cont34, %invoke.cont2, %if.end49 - %marked_word_boundaries.1 = phi i1 [ %marked_word_boundaries.0240, %if.end49 ], [ %marked_word_boundaries.0240, %if.end63 ], [ %marked_word_boundaries.0240, %invoke.cont2 ], [ %marked_word_boundaries.0240, %invoke.cont34 ], [ true, %for.inc106 ] + %marked_word_boundaries.1 = phi i1 [ %marked_word_boundaries.0240, %if.end49 ], [ %marked_word_boundaries.0.mux, %if.end63 ], [ %marked_word_boundaries.0240, %invoke.cont2 ], [ %marked_word_boundaries.0240, %invoke.cont34 ], [ true, %for.inc106 ] %marked_line_boundaries.1 = phi i1 [ %marked_line_boundaries.0241, %if.end49 ], [ %marked_line_boundaries.2, %if.end63 ], [ %marked_line_boundaries.0241, %invoke.cont2 ], [ %marked_line_boundaries.0241, %invoke.cont34 ], [ %marked_line_boundaries.2, %for.inc106 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %66 = load i32, ptr %size_.i, align 8 diff --git a/bench/recastnavigation/optimized/catch_amalgamated.cpp.ll b/bench/recastnavigation/optimized/catch_amalgamated.cpp.ll index a11dc8fb900..a4cf74d050a 100644 --- a/bench/recastnavigation/optimized/catch_amalgamated.cpp.ll +++ b/bench/recastnavigation/optimized/catch_amalgamated.cpp.ll @@ -10266,9 +10266,8 @@ _ZNK5Catch8TextFlow6Column5beginEv.exit: ; preds = %._ZNK5Catch8TextFlo br i1 %.not3.i8, label %.lr.ph, label %._crit_edge .lr.ph: ; preds = %_ZNK5Catch8TextFlow6Column5beginEv.exit - %17 = load i64, ptr %6, align 8, !noalias !111 - call void @_ZNK5Catch8TextFlow6Column14const_iterator18addIndentAndSuffixB5cxx11Emm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull readonly align 8 dereferenceable(33) %3, i64 noundef %13, i64 noundef %17) - br label %22 + call void @_ZNK5Catch8TextFlow6Column14const_iterator18addIndentAndSuffixB5cxx11Emm(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull readonly align 8 dereferenceable(33) %3, i64 noundef %13, i64 noundef %7) + br label %21 .critedge: ; preds = %24 %18 = load i64, ptr %6, align 8, !noalias !111 @@ -31908,7 +31907,7 @@ define dso_local void @_ZNK5Catch5Clara6Parser13writeToStreamERSo(ptr noundef no br label %32 32: ; preds = %30, %28, %24 - %.1 = phi i8 [ 0, %30 ], [ %.085, %28 ], [ %.085, %24 ] + %.1 = phi i8 [ 0, %30 ], [ 0, %28 ], [ %.085, %24 ] %33 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_c(ptr noundef nonnull align 8 dereferenceable(8) %1, i8 noundef signext 60) %34 = getelementptr inbounds nuw i8, ptr %.sroa.076.083, i64 32 %35 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsIcSt11char_traitsIcESaIcEERSt13basic_ostreamIT_T0_ES7_RKNSt7__cxx1112basic_stringIS4_S5_T1_EE(ptr noundef nonnull align 8 dereferenceable(8) %33, ptr noundef nonnull align 8 dereferenceable(32) %34) diff --git a/bench/redis/optimized/redis-benchmark.ll b/bench/redis/optimized/redis-benchmark.ll index 587dd3ba9aa..ce6cb5b78ee 100644 --- a/bench/redis/optimized/redis-benchmark.ll +++ b/bench/redis/optimized/redis-benchmark.ll @@ -19644,8 +19644,7 @@ if.end3: ; preds = %if.end %appendonly = getelementptr inbounds nuw i8, ptr %call, i64 8 br label %for.body -for.body: ; preds = %if.end3, %for.inc - %cmp6 = phi i1 [ true, %if.end3 ], [ false, %for.inc ] +for.body: ; preds = %sw.bb, %if.end3 %i.051 = phi i1 [ false, %if.end3 ], [ true, %for.inc ] %reply.050 = phi ptr [ null, %if.end3 ], [ %0, %for.inc ] %call7 = call i32 @redisGetReply(ptr noundef nonnull %call1, ptr noundef nonnull %r) #22 @@ -19688,16 +19687,10 @@ if.end24: ; preds = %lor.lhs.false21 sw.bb: ; preds = %if.end24 store ptr %call30, ptr %call, align 8 - br label %for.inc + br label %for.body, !llvm.loop !24 sw.bb29: ; preds = %if.end24 store ptr %call30, ptr %appendonly, align 8 - br label %for.inc - -for.inc: ; preds = %sw.bb, %sw.bb29 - br i1 %cmp6, label %for.body, label %for.end, !llvm.loop !24 - -for.end: ; preds = %for.inc call void @freeReplyObject(ptr noundef nonnull %0) #22 call void @redisFree(ptr noundef nonnull %call1) #22 br label %return diff --git a/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll b/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll index afd74aacf7d..fe12cc875b0 100644 --- a/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll +++ b/bench/regex-rs/optimized/3ixfkxlmcuecmmus.ll @@ -925,8 +925,8 @@ define hidden noundef zeroext i1 @"_ZN90_$LT$core..ops..control_flow..ControlFlo .sink.split: ; preds = %2 %6 = trunc nuw i8 %4 to i1 %trunc = trunc nuw i8 %3 to i1 - %7 = icmp eq i8 %3, 0 - %spec.select = select i1 %trunc, i1 %6, i1 %7 + %7 = xor i1 %trunc, true + %spec.select = select i1 %not.trunc, i1 true, i1 %6 tail call void @llvm.assume(i1 %spec.select) br label %8 @@ -3565,7 +3565,7 @@ common.resume: ; preds = %.body, %215, %.body br label %.thread702 "_ZN4core3ptr60drop_in_place$LT$regex_automata..nfa..thompson..nfa..NFA$GT$17h0f2aa052becc43c4E.exit27.i": ; preds = %.thread92.i, %713, %708, %706, %"_ZN4core3ptr60drop_in_place$LT$regex_automata..nfa..thompson..nfa..NFA$GT$17h0f2aa052becc43c4E.exit.i116", %670, %651 - %.2.i114 = phi i8 [ %.4.i, %706 ], [ 1, %670 ], [ 1, %651 ], [ 1, %"_ZN4core3ptr60drop_in_place$LT$regex_automata..nfa..thompson..nfa..NFA$GT$17h0f2aa052becc43c4E.exit.i116" ], [ %.4.i, %713 ], [ %.4.i, %708 ], [ %.58496.i, %.thread92.i ] + %.2.i114 = phi i8 [ 0, %706 ], [ 1, %670 ], [ 1, %651 ], [ 1, %"_ZN4core3ptr60drop_in_place$LT$regex_automata..nfa..thompson..nfa..NFA$GT$17h0f2aa052becc43c4E.exit.i116" ], [ %.4.i, %713 ], [ %.4.i, %708 ], [ 1, %.thread92.i ] %.pn.pn.i = phi { ptr, i32 } [ %676, %706 ], [ %671, %670 ], [ %652, %651 ], [ %684, %"_ZN4core3ptr60drop_in_place$LT$regex_automata..nfa..thompson..nfa..NFA$GT$17h0f2aa052becc43c4E.exit.i116" ], [ %676, %713 ], [ %676, %708 ], [ %.pn8695.i, %.thread92.i ] call void @llvm.experimental.noalias.scope.decl(metadata !756) call void @llvm.experimental.noalias.scope.decl(metadata !759) @@ -3813,7 +3813,6 @@ _ZN14regex_automata4meta8wrappers13ReverseHybrid3new17h21395026bfdd64e2E.exit.i: to label %"_ZN4core3ptr60drop_in_place$LT$regex_automata..nfa..thompson..nfa..NFA$GT$17h0f2aa052becc43c4E.exit27.i" unwind label %697, !noalias !749 .thread92.i: ; preds = %706, %"_ZN4core3ptr60drop_in_place$LT$regex_automata..nfa..thompson..nfa..NFA$GT$17h0f2aa052becc43c4E.exit.i116" - %.58496.i = phi i8 [ %.4.i, %706 ], [ 1, %"_ZN4core3ptr60drop_in_place$LT$regex_automata..nfa..thompson..nfa..NFA$GT$17h0f2aa052becc43c4E.exit.i116" ] %.pn8695.i = phi { ptr, i32 } [ %676, %706 ], [ %684, %"_ZN4core3ptr60drop_in_place$LT$regex_automata..nfa..thompson..nfa..NFA$GT$17h0f2aa052becc43c4E.exit.i116" ] invoke void @"_ZN4core3ptr73drop_in_place$LT$regex_automata..nfa..thompson..error..BuildErrorKind$GT$17hb4b43ecdc339d16bE.llvm.17425413886787028408"(ptr noalias noundef nonnull align 8 dereferenceable(128) %13) to label %"_ZN4core3ptr60drop_in_place$LT$regex_automata..nfa..thompson..nfa..NFA$GT$17h0f2aa052becc43c4E.exit27.i" unwind label %697, !noalias !739 diff --git a/bench/ripgrep-rs/optimized/4uyvhmw63hdvr2we.ll b/bench/ripgrep-rs/optimized/4uyvhmw63hdvr2we.ll index b83b392dc38..430c228cce4 100644 --- a/bench/ripgrep-rs/optimized/4uyvhmw63hdvr2we.ll +++ b/bench/ripgrep-rs/optimized/4uyvhmw63hdvr2we.ll @@ -1228,7 +1228,7 @@ _ZN4core3ops8function6FnOnce9call_once17hd7e01c9f08bd6f5eE.exit.i: ; preds = %32 unreachable 58: ; preds = %.thread95.i, %69 - %.2.i = phi i8 [ %.398.i, %.thread95.i ], [ %.4.i, %69 ] + %.2.i = phi i1 [ true, %.thread95.i ], [ false, %69 ] %.pn.pn.pn.pn.pn.i = phi { ptr, i32 } [ %.pn.pn.pn.pn99.i, %.thread95.i ], [ %.pn.pn.pn.i, %69 ] invoke void @"_ZN4core3ptr40drop_in_place$LT$std..thread..Thread$GT$17h8012192ea27e3a84E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %21) #19 to label %.thread89.i unwind label %149, !noalias !128 @@ -1269,8 +1269,7 @@ _ZN4core3ops8function6FnOnce9call_once17hd7e01c9f08bd6f5eE.exit.i: ; preds = %32 unreachable 69: ; preds = %.body.thread.i - %70 = trunc nuw i8 %.4.i to i1 - br i1 %70, label %.thread95.i, label %58 + br i1 %.4.i, label %.thread95.i, label %58 71: ; preds = %"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17h5caabcaf93431a08E.exit.i" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %62, ptr noundef nonnull align 8 dereferenceable(48) %10, i64 48, i1 false), !noalias !128 @@ -1286,7 +1285,7 @@ _ZN4core3ops8function6FnOnce9call_once17hd7e01c9f08bd6f5eE.exit.i: ; preds = %32 unreachable .body.thread.i: ; preds = %.thread131.i, %151, %.body.i, %118 - %.4.i = phi i8 [ 1, %.thread131.i ], [ 0, %151 ], [ 0, %.body.i ], [ 0, %118 ] + %.4.i = phi i1 [ true, %.thread131.i ], [ false, %151 ], [ false, %.body.i ], [ false, %118 ] %.pn.pn.pn.i = phi { ptr, i32 } [ %.pn.pn104.i, %.thread131.i ], [ %152, %151 ], [ %122, %.body.i ], [ %119, %118 ] invoke void @"_ZN4core3ptr80drop_in_place$LT$alloc..sync..Arc$LT$std..thread..Packet$LT$$LP$$RP$$GT$$GT$$GT$17h0923e89642c56df3E.llvm.10610586572795991558"(ptr noalias noundef nonnull align 8 dereferenceable(8) %19) #19 to label %69 unwind label %149, !noalias !128 @@ -1546,7 +1545,6 @@ _ZN4core3ops8function6FnOnce9call_once17hd7e01c9f08bd6f5eE.exit.i: ; preds = %32 .thread95.i: ; preds = %69, %65 %.pn.pn.pn.pn99.i = phi { ptr, i32 } [ %.pn.pn.pn.i, %69 ], [ %66, %65 ] - %.398.i = phi i8 [ %.4.i, %69 ], [ 1, %65 ] invoke void @"_ZN4core3ptr40drop_in_place$LT$std..thread..Thread$GT$17h8012192ea27e3a84E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %20) #19 to label %58 unwind label %149, !noalias !128 @@ -1557,8 +1555,7 @@ _ZN4core3ops8function6FnOnce9call_once17hd7e01c9f08bd6f5eE.exit.i: ; preds = %32 to label %.thread89.thread.i unwind label %149, !noalias !128 .thread89.i: ; preds = %58 - %156 = trunc nuw i8 %.2.i to i1 - br i1 %156, label %.thread89.thread134.i, label %.critedge + br i1 %.2.i, label %.thread89.thread132.i, label %.critedge .thread89.thread.i: ; preds = %155, %44, %.thread92.i %.pn63120.i = phi { ptr, i32 } [ %45, %44 ], [ %lpad.thr_comm.i, %.thread92.i ], [ %lpad.thr_comm.split-lp.i, %155 ] diff --git a/bench/ripgrep-rs/optimized/wnx0txtc665thu4.ll b/bench/ripgrep-rs/optimized/wnx0txtc665thu4.ll index e38a4e78d62..09ac903117e 100644 --- a/bench/ripgrep-rs/optimized/wnx0txtc665thu4.ll +++ b/bench/ripgrep-rs/optimized/wnx0txtc665thu4.ll @@ -344,7 +344,7 @@ _ZN4core3ops8function6FnOnce9call_once17h20318f7d23f82dc8E.exit: ; preds = %22, unreachable 50: ; preds = %.thread100, %.noexc75 - %.2 = phi i8 [ %.3103, %.thread100 ], [ %.4, %.noexc75 ] + %.2 = phi i1 [ true, %.thread100 ], [ false, %.noexc75 ] %.pn.pn.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn.pn.pn104, %.thread100 ], [ %.pn.pn.pn, %.noexc75 ] invoke void @"_ZN4core3ptr40drop_in_place$LT$std..thread..Thread$GT$17h57e58f336e8b6a17E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %17) #13 to label %"_ZN4core3ptr103drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..thread..scoped..ScopeData$GT$$GT$$GT$17h12e4a00688b0b4fcE.exit" unwind label %125 @@ -385,8 +385,7 @@ _ZN4core3ops8function6FnOnce9call_once17h20318f7d23f82dc8E.exit: ; preds = %22, unreachable .noexc75: ; preds = %69, %"_ZN4core3ptr103drop_in_place$LT$alloc..sync..Arc$LT$std..thread..Packet$LT$grep_cli..process..CommandError$GT$$GT$$GT$17h44acdd074a8daf41E.llvm.4197299253797082252.exit86" - %61 = trunc nuw i8 %.4 to i1 - br i1 %61, label %.thread100, label %50 + br i1 %.4, label %.thread100, label %50 62: ; preds = %"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17hdfd13dc67a91b771E.exit" call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(48) %54, ptr noundef nonnull align 8 dereferenceable(48) %6, i64 48, i1 false) @@ -402,7 +401,7 @@ _ZN4core3ops8function6FnOnce9call_once17h20318f7d23f82dc8E.exit: ; preds = %22, unreachable "_ZN4core3ptr103drop_in_place$LT$alloc..sync..Arc$LT$std..thread..Packet$LT$grep_cli..process..CommandError$GT$$GT$$GT$17h44acdd074a8daf41E.llvm.4197299253797082252.exit86": ; preds = %101, %.body, %127, %"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17hea7b474043cdefbdE.exit84.thread", %140 - %.4 = phi i8 [ 1, %140 ], [ 1, %"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17hea7b474043cdefbdE.exit84.thread" ], [ 0, %127 ], [ 0, %.body ], [ 0, %101 ] + %.4 = phi i1 [ true, %141 ], [ true, %"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17hea7b474043cdefbdE.exit84.thread" ], [ false, %127 ], [ false, %.body ], [ false, %101 ] %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn109, %140 ], [ %.pn.pn109, %"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17hea7b474043cdefbdE.exit84.thread" ], [ %128, %127 ], [ %105, %.body ], [ %102, %101 ] call void @llvm.experimental.noalias.scope.decl(metadata !66) call void @llvm.experimental.noalias.scope.decl(metadata !69) @@ -625,7 +624,7 @@ _ZN4core3ops8function6FnOnce9call_once17h20318f7d23f82dc8E.exit: ; preds = %22, invoke void @"_ZN5alloc4sync16Arc$LT$T$C$A$GT$9drop_slow17h0e2f6db7bc9851a7E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %13) to label %"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17hea7b474043cdefbdE.exit84.thread" unwind label %125 -"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17hea7b474043cdefbdE.exit84.thread": ; preds = %133, %129, %136, %.thread105 +"_ZN4core3ptr129drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..sync..mutex..Mutex$LT$alloc..vec..Vec$LT$u8$GT$$GT$$GT$$GT$$GT$17hea7b474043cdefbdE.exit84.thread": ; preds = %70, %136, %129, %133 %.pn.pn109 = phi { ptr, i32 } [ %71, %.thread105 ], [ %130, %136 ], [ %130, %129 ], [ %130, %133 ] call void @llvm.experimental.noalias.scope.decl(metadata !111) call void @llvm.experimental.noalias.scope.decl(metadata !114) @@ -641,7 +640,6 @@ _ZN4core3ops8function6FnOnce9call_once17h20318f7d23f82dc8E.exit: ; preds = %22, .thread100: ; preds = %57, %.noexc75 %.pn.pn.pn.pn104 = phi { ptr, i32 } [ %.pn.pn.pn, %.noexc75 ], [ %58, %57 ] - %.3103 = phi i8 [ %.4, %.noexc75 ], [ 1, %57 ] invoke void @"_ZN4core3ptr40drop_in_place$LT$std..thread..Thread$GT$17h57e58f336e8b6a17E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %16) #13 to label %50 unwind label %125 @@ -652,8 +650,7 @@ _ZN4core3ops8function6FnOnce9call_once17h20318f7d23f82dc8E.exit: ; preds = %22, to label %.thread94.thread unwind label %125 "_ZN4core3ptr103drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..thread..scoped..ScopeData$GT$$GT$$GT$17h12e4a00688b0b4fcE.exit": ; preds = %50 - %142 = trunc nuw i8 %.2 to i1 - br i1 %142, label %"_ZN4core3ptr103drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..thread..scoped..ScopeData$GT$$GT$$GT$17h12e4a00688b0b4fcE.exit.thread", label %"_ZN4core3ptr88drop_in_place$LT$grep_cli..process..StderrReader..async..$u7b$$u7b$closure$u7d$$u7d$$GT$17hc8c553b0413624deE.exit" + br i1 %.2, label %"_ZN4core3ptr103drop_in_place$LT$core..option..Option$LT$alloc..sync..Arc$LT$std..thread..scoped..ScopeData$GT$$GT$$GT$17h12e4a00688b0b4fcE.exit.thread", label %"_ZN4core3ptr88drop_in_place$LT$grep_cli..process..StderrReader..async..$u7b$$u7b$closure$u7d$$u7d$$GT$17hc8c553b0413624deE.exit" .thread94.thread: ; preds = %36, %.thread97, %141 %.pn62125 = phi { ptr, i32 } [ %37, %36 ], [ %lpad.thr_comm, %.thread97 ], [ %lpad.thr_comm.split-lp, %141 ] diff --git a/bench/rocksdb/optimized/compaction_picker.cc.ll b/bench/rocksdb/optimized/compaction_picker.cc.ll index 5fcee55d4cc..a30c8a1fb8b 100644 --- a/bench/rocksdb/optimized/compaction_picker.cc.ll +++ b/bench/rocksdb/optimized/compaction_picker.cc.ll @@ -2796,8 +2796,10 @@ land.lhs.true75: ; preds = %invoke.cont73 %sub.ptr.rhs.cast.i.i122 = ptrtoint ptr %26 to i64 %sub.ptr.sub.i.i123 = sub i64 %sub.ptr.lhs.cast.i.i121, %sub.ptr.rhs.cast.i.i122 %cmp80 = icmp eq i64 %sub.ptr.sub.i.i117, %sub.ptr.sub.i.i123 - %spec.select = zext i1 %cmp80 to i8 - br label %if.end84 + call void @_ZN7rocksdb20CompactionInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %expanded_output_level_inputs) #30 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %new_limit) #30 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %new_start) #30 + br i1 %cmp80, label %if.then110, label %if.then86 lpad64: ; preds = %if.then60 %27 = landingpad { ptr, i32 } @@ -2816,16 +2818,13 @@ ehcleanup: ; preds = %lpad68, %lpad64 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %new_start) #30 br label %ehcleanup128 -if.end84: ; preds = %for.body.i103, %invoke.cont73, %land.lhs.true75 - %expand_inputs.1 = phi i8 [ 0, %invoke.cont73 ], [ %spec.select, %land.lhs.true75 ], [ 0, %for.body.i103 ] +if.end84: ; preds = %for.body.i103, %invoke.cont73 call void @_ZN7rocksdb20CompactionInputFilesD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %expanded_output_level_inputs) #30 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %new_limit) #30 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %new_start) #30 - %tobool85 = trunc nuw i8 %expand_inputs.1 to i1 - br i1 %tobool85, label %if.end108, label %if.then86 + br label %if.then86 -if.then86: ; preds = %for.body.i84, %land.lhs.true53, %invoke.cont43, %land.lhs.true, %if.end84 - %expand_inputs.0185 = phi i8 [ %expand_inputs.1, %if.end84 ], [ 0, %land.lhs.true ], [ 0, %invoke.cont43 ], [ 0, %land.lhs.true53 ], [ 0, %for.body.i84 ] +if.then86: ; preds = %for.body.i84, %if.end84, %land.lhs.true53, %invoke.cont43, %land.lhs.true, %land.lhs.true75 invoke void @_ZNK7rocksdb18VersionStorageInfo28GetCleanInputsWithinIntervalEiPKNS_11InternalKeyES3_PSt6vectorIPNS_12FileMetaDataESaIS6_EEiPi(ptr noundef nonnull align 16 dereferenceable(4112) %vstorage, i32 noundef %0, ptr noundef nonnull %all_start, ptr noundef nonnull %all_limit, ptr noundef nonnull %files.i63, i32 noundef %base_index, ptr noundef null) to label %invoke.cont88 unwind label %lpad32 @@ -2847,7 +2846,7 @@ invoke.cont90: ; preds = %invoke.cont88 %sub.ptr.rhs.cast.i.i134 = ptrtoint ptr %32 to i64 %sub.ptr.sub.i.i135 = sub i64 %sub.ptr.lhs.cast.i.i133, %sub.ptr.rhs.cast.i.i134 %cmp96 = icmp ugt i64 %sub.ptr.sub.i.i129, %sub.ptr.sub.i.i135 - br i1 %cmp96, label %land.lhs.true97, label %if.end108 + br i1 %cmp96, label %land.lhs.true97, label %if.end127 land.lhs.true97: ; preds = %invoke.cont90 %ignore_max_compaction_bytes_for_input98 = getelementptr inbounds nuw i8, ptr %mutable_cf_options, i64 136 @@ -2856,7 +2855,7 @@ land.lhs.true97: ; preds = %invoke.cont90 %add101 = add i64 %call91, %call23 %cmp102 = icmp ult i64 %add101, %8 %or.cond58 = select i1 %tobool99, i1 true, i1 %cmp102 - br i1 %or.cond58, label %land.lhs.true103, label %if.end108 + br i1 %or.cond58, label %land.lhs.true103, label %if.end127 land.lhs.true103: ; preds = %land.lhs.true97 %cmp4.not.i138 = icmp eq ptr %29, %30 @@ -2879,16 +2878,10 @@ for.body.i145: ; preds = %for.cond.i150, %for %being_compacted.i148 = getelementptr inbounds nuw i8, ptr %34, i64 180 %35 = load i8, ptr %being_compacted.i148, align 4 %tobool.i149 = trunc i8 %35 to i1 - br i1 %tobool.i149, label %if.end108, label %for.cond.i150 - -if.end108: ; preds = %for.body.i145, %land.lhs.true97, %invoke.cont90, %if.end84 - %expand_inputs.2 = phi i8 [ %expand_inputs.1, %if.end84 ], [ %expand_inputs.0185, %invoke.cont90 ], [ %expand_inputs.0185, %land.lhs.true97 ], [ %expand_inputs.0185, %for.body.i145 ] - %expanded_inputs_size.0 = phi i64 [ %call42, %if.end84 ], [ %call91, %invoke.cont90 ], [ %call91, %land.lhs.true97 ], [ %call91, %for.body.i145 ] - %tobool109 = trunc nuw i8 %expand_inputs.2 to i1 - br i1 %tobool109, label %if.then110, label %if.end127 + br i1 %tobool.i149, label %if.end127, label %for.cond.i150 -if.then110: ; preds = %for.cond.i150, %land.lhs.true103, %if.end108 - %expanded_inputs_size.0190 = phi i64 [ %expanded_inputs_size.0, %if.end108 ], [ %call91, %land.lhs.true103 ], [ %call91, %for.cond.i150 ] +if.then110: ; preds = %for.cond.i150, %land.lhs.true103, %land.lhs.true75 + %expanded_inputs_size.0190 = phi i64 [ %call42, %land.lhs.true75 ], [ %call91, %land.lhs.true103 ], [ %call91, %for.cond.i150 ] %ioptions_ = getelementptr inbounds nuw i8, ptr %this, i64 8 %36 = load ptr, ptr %ioptions_, align 8 %logger = getelementptr inbounds nuw i8, ptr %36, i64 544 @@ -2921,7 +2914,7 @@ invoke.cont122: ; preds = %if.then110 %call126 = invoke noundef nonnull align 8 dereferenceable(24) ptr @_ZNSt6vectorIPN7rocksdb12FileMetaDataESaIS2_EEaSERKS4_(ptr noundef nonnull align 8 dereferenceable(24) %files24, ptr noundef nonnull align 8 dereferenceable(24) %files.i63) to label %if.end127 unwind label %lpad32 -if.end127: ; preds = %invoke.cont122, %if.end108 +if.end127: ; preds = %for.body.i145, %land.lhs.true97, %invoke.cont90, %invoke.cont122 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %all_limit) #30 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %all_start) #30 %atomic_compaction_unit_boundaries.i = getelementptr inbounds nuw i8, ptr %expanded_inputs, i64 32 diff --git a/bench/rocksdb/optimized/sst_dump_tool.cc.ll b/bench/rocksdb/optimized/sst_dump_tool.cc.ll index 6c386e77dcd..223fa15090b 100644 --- a/bench/rocksdb/optimized/sst_dump_tool.cc.ll +++ b/bench/rocksdb/optimized/sst_dump_tool.cc.ll @@ -1701,10 +1701,12 @@ if.then464: ; preds = %land.lhs.true462 unreachable if.end467: ; preds = %land.lhs.true462, %if.end460 + %use_from_as_prefix.0.lcssa19192110 = phi i8 [ 1, %land.lhs.true462 ], [ 0, %if.end460 ] + %has_from.0.lcssa19442098 = phi i8 [ 0, %land.lhs.true462 ], [ %has_from.0.lcssa1944, %if.end460 ] br i1 %input_key_hex.0.lcssa1946, label %if.then469, label %if.end484 if.then469: ; preds = %if.end467 - %brmerge688 = or i8 %has_from.0.lcssa1944, %use_from_as_prefix.0.lcssa1919 + %brmerge688 = or i8 %has_from.0.lcssa19442098, %use_from_as_prefix.0.lcssa19192110 %brmerge = trunc nuw i8 %brmerge688 to i1 br i1 %brmerge, label %if.then473, label %if.end477 @@ -1734,7 +1736,7 @@ if.end484: ; preds = %entry, %if.end477, %verify_checksum.0.lcssa195220942147 = phi i1 [ %verify_checksum.0.lcssa1952, %if.end477 ], [ %verify_checksum.0.lcssa1952, %invoke.cont481 ], [ %verify_checksum.0.lcssa1952, %if.end467 ], [ false, %entry ] %output_hex.0.lcssa195020952146 = phi i1 [ %output_hex.0.lcssa1950, %if.end477 ], [ %output_hex.0.lcssa1950, %invoke.cont481 ], [ %output_hex.0.lcssa1950, %if.end467 ], [ false, %entry ] %decode_blob_index.0.lcssa194820962145 = phi i1 [ %decode_blob_index.0.lcssa1948, %if.end477 ], [ %decode_blob_index.0.lcssa1948, %invoke.cont481 ], [ %decode_blob_index.0.lcssa1948, %if.end467 ], [ false, %entry ] - %has_from.0.lcssa194420982144 = phi i8 [ %has_from.0.lcssa1944, %if.end477 ], [ %has_from.0.lcssa1944, %invoke.cont481 ], [ %has_from.0.lcssa1944, %if.end467 ], [ 0, %entry ] + %has_from.0.lcssa194420982144 = phi i8 [ %has_from.0.lcssa19442098, %if.end477 ], [ %has_from.0.lcssa19442098, %invoke.cont481 ], [ %has_from.0.lcssa19442098, %if.end467 ], [ 0, %entry ] %has_to.0.lcssa194220992143 = phi i1 [ false, %if.end477 ], [ true, %invoke.cont481 ], [ %has_to.0.lcssa1942, %if.end467 ], [ false, %entry ] %compression_use_zstd_finalize_dict.0.lcssa194021002142 = phi i1 [ %compression_use_zstd_finalize_dict.0.lcssa1940, %if.end477 ], [ %compression_use_zstd_finalize_dict.0.lcssa1940, %invoke.cont481 ], [ %compression_use_zstd_finalize_dict.0.lcssa1940, %if.end467 ], [ true, %entry ] %compression_max_dict_buffer_bytes.0.lcssa193821012141 = phi i64 [ %compression_max_dict_buffer_bytes.0.lcssa1938, %if.end477 ], [ %compression_max_dict_buffer_bytes.0.lcssa1938, %invoke.cont481 ], [ %compression_max_dict_buffer_bytes.0.lcssa1938, %if.end467 ], [ 0, %entry ] @@ -1746,7 +1748,7 @@ if.end484: ; preds = %entry, %if.end477, %set_block_size.0.lcssa192521072135 = phi i64 [ %set_block_size.0.lcssa1925, %if.end477 ], [ %set_block_size.0.lcssa1925, %invoke.cont481 ], [ %set_block_size.0.lcssa1925, %if.end467 ], [ 16384, %entry ] %show_summary.0.lcssa192321082134 = phi i1 [ %show_summary.0.lcssa1923, %if.end477 ], [ %show_summary.0.lcssa1923, %invoke.cont481 ], [ %show_summary.0.lcssa1923, %if.end467 ], [ false, %entry ] %show_properties.0.lcssa192121092133 = phi i1 [ %show_properties.0.lcssa1921, %if.end477 ], [ %show_properties.0.lcssa1921, %invoke.cont481 ], [ %show_properties.0.lcssa1921, %if.end467 ], [ false, %entry ] - %use_from_as_prefix.0.lcssa191921102132 = phi i8 [ %use_from_as_prefix.0.lcssa1919, %if.end477 ], [ %use_from_as_prefix.0.lcssa1919, %invoke.cont481 ], [ %use_from_as_prefix.0.lcssa1919, %if.end467 ], [ 0, %entry ] + %use_from_as_prefix.0.lcssa191921102132 = phi i8 [ %use_from_as_prefix.0.lcssa19192110, %if.end477 ], [ %use_from_as_prefix.0.lcssa19192110, %invoke.cont481 ], [ %use_from_as_prefix.0.lcssa19192110, %if.end467 ], [ 0, %entry ] %tobool46121112131 = phi i1 [ %tobool461, %if.end477 ], [ %tobool461, %invoke.cont481 ], [ %tobool461, %if.end467 ], [ false, %entry ] %97 = load ptr, ptr %dir_or_file, align 8 %cmp485 = icmp eq ptr %97, null diff --git a/bench/ruby/optimized/ractor.ll b/bench/ruby/optimized/ractor.ll index 1b3c068ba2f..1b7eb562312 100644 --- a/bench/ruby/optimized/ractor.ll +++ b/bench/ruby/optimized/ractor.ll @@ -7410,7 +7410,7 @@ define internal noundef i32 @ractor_selector_release_i(i64 noundef %0, i64 nound } ; Function Attrs: nounwind sspstrong uwtable -define internal fastcc zeroext i1 @ractor_deregister_take(ptr noundef %0, ptr noundef readnone %1) unnamed_addr #0 { +define internal fastcc noundef zeroext i1 @ractor_deregister_take(ptr noundef %0, ptr noundef readnone %1) unnamed_addr #0 { %3 = getelementptr inbounds nuw i8, ptr %0, i64 120 %4 = getelementptr inbounds nuw i8, ptr %0, i64 40 tail call void @rb_native_mutex_lock(ptr noundef nonnull %4) #20 @@ -7465,60 +7465,61 @@ define internal fastcc zeroext i1 @ractor_deregister_take(ptr noundef %0, ptr no ._crit_edge: ; preds = %28 %32 = trunc nuw i8 %.2 to i1 - %33 = icmp sgt i32 %29, 0 - %or.cond = and i1 %33, %32 - br i1 %or.cond, label %.lr.ph.i, label %ractor_queue_compact.exit - -.lr.ph.i: ; preds = %._crit_edge - %34 = getelementptr inbounds nuw i8, ptr %0, i64 128 - %35 = getelementptr inbounds nuw i8, ptr %0, i64 136 - %36 = getelementptr inbounds nuw i8, ptr %0, i64 144 - %37 = getelementptr inbounds nuw i8, ptr %0, i64 140 - br label %38 - -38: ; preds = %ractor_queue_advance.exit.i, %.lr.ph.i - %39 = phi i32 [ %29, %.lr.ph.i ], [ %57, %ractor_queue_advance.exit.i ] - %40 = load ptr, ptr %3, align 8 - %41 = load i32, ptr %34, align 8 + br i1 %32, label %33, label %ractor_queue_compact.exit + +33: ; preds = %._crit_edge + %34 = icmp sgt i32 %29, 0 + br i1 %34, label %.lr.ph.i, label %ractor_queue_compact.exit + +.lr.ph.i:; preds = %33 + %36 = getelementptr inbounds nuw i8, ptr %0, i64 128 + %37 = getelementptr inbounds nuw i8, ptr %0, i64 136 + %37 = getelementptr inbounds nuw i8, ptr %0, i64 144 + %38 = getelementptr inbounds nuw i8, ptr %0, i64 140 + br label %39 + +39:; preds = %ractor_queue_advance.exit.i, %.lr.ph.i + %41 = phi i32 [ %29, %.lr.ph.i ], [ %58, %ractor_queue_advance.exit.i ] + %41 = load ptr, ptr %3, align 8 %42 = load i32, ptr %35, align 8 - %43 = srem i32 %41, %42 - %44 = sext i32 %43 to i64 - %45 = getelementptr %struct.rb_ractor_basket, ptr %40, i64 %44 - %.val.i = load i32, ptr %45, align 8 - %46 = icmp eq i32 %.val.i, 5 - br i1 %46, label %47, label %ractor_queue_compact.exit - -47: ; preds = %38 - %48 = load i32, ptr %36, align 8 - %49 = icmp eq i32 %48, 0 - br i1 %49, label %50, label %56 - -50: ; preds = %47 - %51 = add nsw i32 %39, -1 - store i32 %51, ptr %8, align 4 - %52 = add i32 %41, 1 - %53 = srem i32 %52, %42 - store i32 %53, ptr %34, align 8 - %54 = load i32, ptr %37, align 4 - %55 = add i32 %54, 1 - store i32 %55, ptr %37, align 4 + %43 = load i32, ptr %36, align 8 + %44 = srem i32 %42, %43 + %45 = sext i32 %44 to i64 + %.val.i = getelementptr %struct.rb_ractor_basket, ptr %41, i64 %45 + %46 = load i32, ptr %.val.i, align 8 + %47 = icmp eq i32 %.val.i, 5 + br i1 %47, label %48, label %ractor_queue_compact.exit + +48:; preds = %39 + %49 = load i32, ptr %37, align 8 + %50 = icmp eq i32 %49, 0 + br i1 %50, label %51, label %57 + +51:; preds = %48 + %52 = add nsw i32 %41, -1 + store i32 %52, ptr %8, align 4 + %53 = add i32 %42, 1 + %54 = srem i32 %53, %43 + store i32 %54, ptr %35, align 8 + %55 = load i32, ptr %38, align 4 + %56 = add i32 %55, 1 + store i32 %56, ptr %38, align 4 br label %ractor_queue_advance.exit.i -56: ; preds = %47 - store i32 5, ptr %45, align 8 +56: ; preds = %48 + store i32 5, ptr %46, align 8 %.pre.i = load i32, ptr %8, align 4 br label %ractor_queue_advance.exit.i -ractor_queue_advance.exit.i: ; preds = %56, %50 - %57 = phi i32 [ %51, %50 ], [ %.pre.i, %56 ] +ractor_queue_advance.exit.i: ; preds = %56, %51 + %57 = phi i32 [ %52, %51 ], [ %.pre.i, %56 ] %58 = icmp sgt i32 %57, 0 - br i1 %58, label %38, label %ractor_queue_compact.exit, !llvm.loop !10 + br i1 %58, label %39, label %ractor_queue_compact.exit, !llvm.loop !10 -ractor_queue_compact.exit: ; preds = %ractor_queue_advance.exit.i, %38, %.preheader, %2, %._crit_edge - %.0 = phi i8 [ %.2, %._crit_edge ], [ 0, %2 ], [ 0, %.preheader ], [ %.2, %38 ], [ %.2, %ractor_queue_advance.exit.i ] +ractor_queue_compact.exit: ; preds = %ractor_queue_advance.exit.i, %39, %.preheader, %33, %._crit_edge, %2 + %.0 = phi i1 [ false, %2 ], [ false, %._crit_edge ], [ true, %33 ], [ false, %.preheader ], [ true, %39 ], [ true, %ractor_queue_advance.exit.i ] tail call void @rb_native_mutex_unlock(ptr noundef nonnull %4) #20 - %59 = trunc nuw i8 %.0 to i1 - ret i1 %59 + ret i1 %.0 } ; Function Attrs: mustprogress nofree nounwind willreturn memory(read) diff --git a/bench/rustfmt-rs/optimized/2tgwtv970e5remme.ll b/bench/rustfmt-rs/optimized/2tgwtv970e5remme.ll index ddb5a73d9dd..a464ea0d876 100644 --- a/bench/rustfmt-rs/optimized/2tgwtv970e5remme.ll +++ b/bench/rustfmt-rs/optimized/2tgwtv970e5remme.ll @@ -5707,7 +5707,7 @@ define internal fastcc noundef zeroext i1 @_ZN15rustfmt_nightly5utils24is_attrib br i1 %35, label %._crit_edge.i.i.i.i, label %38 ._crit_edge.i.i.i.i: ; preds = %47, %.lr.ph.i.i.i.i, %30 - %.064.lcssa.i.i.i.i = phi i8 [ 0, %30 ], [ %.3.i.i.i.i, %47 ], [ %.06448.i.i.i.i, %.lr.ph.i.i.i.i ] + %.064.lcssa.i.i.i.i = phi i8 [ 0, %30 ], [ %.3.i.i.i.i, %47 ], [ 1, %.lr.ph.i.i.i.i ] %.062.lcssa.i.i.i.i = phi i64 [ 0, %30 ], [ %48, %47 ], [ %.06249.i.i.i.i, %.lr.ph.i.i.i.i ] %36 = add i64 %.062.lcssa.i.i.i.i, 17 %37 = icmp ult i64 %36, %21 @@ -5772,7 +5772,7 @@ define internal fastcc noundef zeroext i1 @_ZN15rustfmt_nightly5utils24is_attrib br i1 %63, label %._crit_edge58.i.i.i.i, label %72 ._crit_edge58.i.i.i.i: ; preds = %80, %.lr.ph57.i.i.i.i, %._crit_edge.i.i.i.i - %.165.lcssa.i.i.i.i = phi i8 [ %.064.lcssa.i.i.i.i, %._crit_edge.i.i.i.i ], [ %.5.i.i.i.i, %80 ], [ %.16554.i.i.i.i, %.lr.ph57.i.i.i.i ] + %.165.lcssa.i.i.i.i = phi i8 [ %.064.lcssa.i.i.i.i, %._crit_edge.i.i.i.i ], [ %.5.i.i.i.i, %80 ], [ 1, %.lr.ph57.i.i.i.i ] %64 = add i64 %21, -17 %65 = getelementptr inbounds i8, ptr %20, i64 %64 %.0.copyload.i81.i.i.i.i = load <16 x i8>, ptr %65, align 1, !alias.scope !667, !noalias !671 @@ -5798,7 +5798,7 @@ define internal fastcc noundef zeroext i1 @_ZN15rustfmt_nightly5utils24is_attrib br i1 %79, label %80, label %83 80: ; preds = %83, %72 - %.5.i.i.i.i = phi i8 [ %.16554.i.i.i.i, %72 ], [ %85, %83 ] + %.5.i.i.i.i = phi i8 [ 0, %72 ], [ %85, %83 ] %81 = add i64 %.16355.i.i.i.i, 16 %.reass.i.i.i.i = add i64 %.16355.i.i.i.i, 33 %82 = icmp ult i64 %.reass.i.i.i.i, %21 @@ -27769,8 +27769,6 @@ default.unreachable566: ; preds = %4 %.sroa.2.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.2.0.copyload = load i64, ptr %.sroa.2.0..sroa_idx, align 8 %trunc193 = trunc nuw i8 %92 to i1 - %anon.435283188f88f97391414eebf75b8265.229.anon.435283188f88f97391414eebf75b8265.23.llvm.11825479963814566850 = select i1 %trunc193, ptr @anon.435283188f88f97391414eebf75b8265.23.llvm.11825479963814566850, ptr @anon.435283188f88f97391414eebf75b8265.229 - %. = select i1 %trunc193, i64 0, i64 3 %trunc194 = trunc nuw i8 %94 to i1 br i1 %trunc194, label %.split, label %.split175 @@ -28181,7 +28179,7 @@ _ZN15rustfmt_nightly5utils13rewrite_ident17h7391328317c55cbbE.exit: ; preds = %2 231: ; preds = %_ZN15rustfmt_nightly5utils13rewrite_ident17h7391328317c55cbbE.exit %232 = getelementptr inbounds nuw i8, ptr %3, i64 16 %233 = load i64, ptr %232, align 8, !noundef !10 - %234 = add nuw nsw i64 %., 2 + %234 = select i1 %trunc193, i64 2, i64 5 %235 = add i64 %234, %216 %236 = add i64 %235, %222 %.not547 = icmp ult i64 %233, %236 @@ -28430,7 +28428,7 @@ _ZN15rustfmt_nightly5utils5mk_sp17h98cfa70ea005048dE.exit: ; preds = %265 _ZN15rustfmt_nightly5utils5mk_sp17h98cfa70ea005048dE.exit242: ; preds = %329 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %73) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %73, ptr noundef nonnull align 8 dereferenceable(32) %3, i64 32, i1 false) - invoke void @_ZN15rustfmt_nightly7comment34combine_strs_with_missing_comments17h70fdefcabeb70061E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %74, ptr noundef nonnull align 8 %2, ptr noalias noundef nonnull readonly align 1 %anon.435283188f88f97391414eebf75b8265.229.anon.435283188f88f97391414eebf75b8265.23.llvm.11825479963814566850, i64 noundef %., ptr noalias noundef nonnull readonly align 1 %215, i64 noundef %216, i64 %330, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %73, i1 noundef zeroext true) + invoke void @_ZN15rustfmt_nightly7comment34combine_strs_with_missing_comments17h70fdefcabeb70061E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %74, ptr noundef nonnull align 8 %2, ptr noalias noundef nonnull readonly align 1 @anon.435283188f88f97391414eebf75b8265.229, i64 noundef 3, ptr noalias noundef nonnull readonly align 1 %215, i64 noundef %216, i64 %330, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %73, i1 noundef zeroext true) to label %331 unwind label %292 331: ; preds = %_ZN15rustfmt_nightly5utils5mk_sp17h98cfa70ea005048dE.exit242 diff --git a/bench/rustfmt-rs/optimized/4gk399kploc9gcsb.ll b/bench/rustfmt-rs/optimized/4gk399kploc9gcsb.ll index 75a810f5819..815da4082aa 100644 --- a/bench/rustfmt-rs/optimized/4gk399kploc9gcsb.ll +++ b/bench/rustfmt-rs/optimized/4gk399kploc9gcsb.ll @@ -4885,20 +4885,16 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 unreachable 37: ; preds = %.thread.i - br i1 %.358.i, label %183, label %.thread98.i + br i1 %.3.ph.i, label %183, label %.thread98.i .thread105.i: ; preds = %36, %35 - %lpad.thr_comm103.i = landingpad { ptr, i32 } - cleanup - br label %183 - -.thread65.i: ; preds = %61, %60, %59, %43, %42, %39 %lpad.thr_comm.i = landingpad { ptr, i32 } cleanup - br label %.thread.i + br label %184 -38: ; preds = %172, %170 - %lpad.thr_comm.split-lp.i = landingpad { ptr, i32 } +38: ; preds = %172, %170, %61, %60, %59, %43, %42, %39 + %lpad.thr_comm.split-lp.i = phi i1 [ true, %61 ], [ true, %43 ], [ true, %42 ], [ true, %39 ], [ true, %59 ], [ true, %60 ], [ false, %170 ], [ false, %172 ] + %38 = landingpad { ptr, i32 } cleanup br label %.thread.i @@ -4912,21 +4908,21 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %21), !noalias !885 store ptr %23, ptr %21, align 8, !noalias !885 invoke void @_ZN15rustfmt_nightly6config12ConfigSetter9emit_mode17hcff2943ed538d312E(ptr noalias noundef nonnull align 8 dereferenceable(8) %21, i8 noundef 1) - to label %42 unwind label %.thread65.i, !noalias !887 + to label %42 unwind label %37, !noalias !887 42: ; preds = %39 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %21), !noalias !885 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %20), !noalias !885 store ptr %23, ptr %20, align 8, !noalias !885 invoke void @_ZN15rustfmt_nightly6config12ConfigSetter7verbose17h05d5c8bdb54c4c25E(ptr noalias noundef nonnull align 8 dereferenceable(8) %20, i8 noundef 2) - to label %43 unwind label %.thread65.i, !noalias !887 + to label %43 unwind label %37, !noalias !887 43: ; preds = %42 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %20), !noalias !885 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %19), !noalias !885 store ptr %23, ptr %19, align 8, !noalias !885 invoke void @_ZN15rustfmt_nightly6config12ConfigSetter17show_parse_errors17h161215ccdfbe8ca7E(ptr noalias noundef nonnull align 8 dereferenceable(8) %19, i1 noundef zeroext false) - to label %44 unwind label %.thread65.i, !noalias !887 + to label %44 unwind label %37, !noalias !887 44: ; preds = %43 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %19), !noalias !885 @@ -4955,14 +4951,14 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 59: ; preds = %53 invoke void @_ZN5alloc7raw_vec17capacity_overflow17he455155709b0987cE() #47 - to label %.noexc32.i unwind label %.thread65.i, !noalias !887 + to label %.noexc32.i unwind label %37, !noalias !887 .noexc32.i: ; preds = %59 unreachable 60: ; preds = %55 invoke void @_ZN5alloc5alloc18handle_alloc_error17hb78d9ab02c2055b6E(i64 noundef 1, i64 noundef %51) #47 - to label %.noexc33.i unwind label %.thread65.i, !noalias !887 + to label %.noexc33.i unwind label %37, !noalias !887 .noexc33.i: ; preds = %60 unreachable @@ -4971,7 +4967,7 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %18), !noalias !885 store ptr %23, ptr %18, align 8, !noalias !885 invoke void @_ZN15rustfmt_nightly6config12ConfigSetter20error_on_unformatted17h33ea71072707eb35E(ptr noalias noundef nonnull align 8 dereferenceable(8) %18, i1 noundef zeroext true) - to label %62 unwind label %.thread65.i, !noalias !887 + to label %62 unwind label %37, !noalias !887 62: ; preds = %61 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %18), !noalias !885 @@ -5337,18 +5333,18 @@ define hidden void @_ZN3std9panicking3try7do_call17h3aad330829aeb9b5E.llvm.39253 invoke fastcc void @"_ZN4core3ptr43drop_in_place$LT$rustfmt_nightly..Input$GT$17hdf46b4e3b14324b0E"(ptr noalias noundef align 8 dereferenceable(32) %16) #49 to label %.thread.i unwind label %93, !noalias !887 -.thread.i: ; preds = %181, %71, %65, %38, %.thread65.i - %.358.i = phi i1 [ false, %38 ], [ true, %.thread65.i ], [ false, %181 ], [ false, %65 ], [ false, %71 ] - %.pn2657.i = phi { ptr, i32 } [ %lpad.thr_comm.split-lp.i, %38 ], [ %lpad.thr_comm.i, %.thread65.i ], [ %182, %181 ], [ %66, %65 ], [ %.pn.i, %71 ] +.thread.i: ; preds = %181, %71, %65, %38 + %.358.i = phi { ptr, i32 } [ %66, %65 ], [ %182, %181 ], [ %38, %37 ], [ %.pn.i, %71 ] + %.pn2657.i = phi i1 [ false, %65 ], [ false, %181 ], [ %lpad.thr_comm.split-lp.i, %38 ], [ false, %71 ] invoke void @"_ZN4core3ptr46drop_in_place$LT$alloc..vec..Vec$LT$u8$GT$$GT$17h27f30dfd67318ac1E"(ptr noalias noundef nonnull align 8 dereferenceable(24) %22) #49 to label %37 unwind label %93, !noalias !887 .thread98.i: ; preds = %183, %.body.thread.i, %147, %37 - %.pn28101.i = phi { ptr, i32 } [ %.pn28102.i, %183 ], [ %.pn2657.i, %37 ], [ %eh.lpad-body78.i, %.body.thread.i ], [ %130, %147 ] + %.pn28101.i = phi { ptr, i32 } [ %.pn28102.i, %183 ], [ %.pn26.ph.i, %37 ], [ %130, %147 ], [ %eh.lpad-body78.i, %.body.thread.i ] resume { ptr, i32 } %.pn28101.i 183: ; preds = %.thread105.i, %37 - %.pn28102.i = phi { ptr, i32 } [ %.pn2657.i, %37 ], [ %lpad.thr_comm103.i, %.thread105.i ] + %.pn28102.i = phi { ptr, i32 } [ %.pn26.ph.i, %37 ], [ %lpad.thr_comm.i, %.thread105.i ] invoke void @"_ZN4core3ptr52drop_in_place$LT$rustfmt_nightly..config..Config$GT$17hdec1a3ed2649d61aE"(ptr noalias noundef nonnull align 8 dereferenceable(872) %23) #49 to label %.thread98.i unwind label %93, !noalias !887 diff --git a/bench/sentencepiece/optimized/model_interface.cc.ll b/bench/sentencepiece/optimized/model_interface.cc.ll index 66da870857b..2127906bd99 100644 --- a/bench/sentencepiece/optimized/model_interface.cc.ll +++ b/bench/sentencepiece/optimized/model_interface.cc.ll @@ -1821,7 +1821,7 @@ _ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE12emplace_backIJR %107 = phi ptr [ null, %.lr.ph ], [ %152, %.thread149 ] %108 = phi ptr [ null, %.lr.ph ], [ %153, %.thread149 ] %109 = phi ptr [ null, %.lr.ph ], [ %154, %.thread149 ] - %.2175 = phi i8 [ 0, %.lr.ph ], [ %156, %.thread149 ] + %.2175 = phi i1 [ false, %.lr.ph ], [ %156, %.thread149 ] %.1143171 = phi ptr [ %2, %.lr.ph ], [ %160, %.thread149 ] %110 = phi ptr [ null, %.lr.ph ], [ %155, %.thread149 ] %111 = load i8, ptr %.1143171, align 1 @@ -1849,10 +1849,9 @@ _ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77: ; preds = %1 _ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77.thread: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i74 %124 = icmp ne ptr %.1143171, %2 - %125 = trunc nuw i8 %.2175 to i1 - %brmerge35.demorgan = and i1 %4, %125 - %or.cond = select i1 %124, i1 %brmerge35.demorgan, i1 false - br i1 %or.cond, label %.thread149, label %126 + %125 = and i1 %.2175, %124 + %brmerge35.demorgan = and i1 %125, %4 + br i1 %brmerge35.demorgan, label %.thread150, label %126 126: ; preds = %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77.thread %.not.i78 = icmp eq ptr %107, %108 @@ -1879,7 +1878,7 @@ _ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77.thread: ; pre br label %.thread149 132: ; preds = %.thread153, %126 - %spec.select = phi i8 [ 0, %.thread153 ], [ 1, %126 ] + %spec.select = phi i1 [ false, %.thread153 ], [ true, %126 ] %133 = ptrtoint ptr %107 to i64 %134 = ptrtoint ptr %110 to i64 %135 = sub i64 %133, %134 @@ -1940,12 +1939,12 @@ _ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE12emplace_backIJR store ptr %151, ptr %10, align 8 br label %.thread149 -.thread149: ; preds = %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77, %.thread155, %129, %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE12emplace_backIJRPKciEEERS3_DpOT_.exit93, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77.thread +.thread149: ; preds = %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77.thread, %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE12emplace_backIJRPKciEEERS3_DpOT_.exit93, %129, %.thread155 %152 = phi ptr [ %128, %.thread155 ], [ %131, %129 ], [ %149, %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE12emplace_backIJRPKciEEERS3_DpOT_.exit93 ], [ %107, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77.thread ], [ %107, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77 ] %153 = phi ptr [ %108, %.thread155 ], [ %108, %129 ], [ %151, %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE12emplace_backIJRPKciEEERS3_DpOT_.exit93 ], [ %108, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77.thread ], [ %108, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77 ] %154 = phi ptr [ %109, %.thread155 ], [ %108, %129 ], [ %151, %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE12emplace_backIJRPKciEEERS3_DpOT_.exit93 ], [ %109, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77.thread ], [ %109, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77 ] %155 = phi ptr [ %110, %.thread155 ], [ %110, %129 ], [ %144, %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE12emplace_backIJRPKciEEERS3_DpOT_.exit93 ], [ %110, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77.thread ], [ %110, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77 ] - %156 = phi i8 [ 0, %.thread155 ], [ 1, %129 ], [ %spec.select, %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE12emplace_backIJRPKciEEERS3_DpOT_.exit93 ], [ %.2175, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77.thread ], [ 0, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77 ] + %156 = phi i1 [ false, %.thread155 ], [ true, %129 ], [ %spec.select, %_ZNSt6vectorISt17basic_string_viewIcSt11char_traitsIcEESaIS3_EE12emplace_backIJRPKciEEERS3_DpOT_.exit93 ], [ true, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77.thread ], [ false, %_ZSteqIcSt11char_traitsIcEEbSt17basic_string_viewIT_T0_ES5_.exit77 ] %157 = getelementptr inbounds i8, ptr %152, i64 -16 %158 = load i64, ptr %157, align 8 %159 = add i64 %158, %120 diff --git a/bench/sentencepiece/optimized/unigram_model.cc.ll b/bench/sentencepiece/optimized/unigram_model.cc.ll index 64de012d128..56b58582e27 100644 --- a/bench/sentencepiece/optimized/unigram_model.cc.ll +++ b/bench/sentencepiece/optimized/unigram_model.cc.ll @@ -4057,6 +4057,8 @@ _ZNSt6vectorIPN13sentencepiece7unigram12_GLOBAL__N_110HypothesisESaIS4_EE9push_b %626 = add i64 %624, %625 %627 = icmp ult i64 %626, 1000000000 %brmerge = select i1 %627, i1 true, i1 %.094.ph + %not. = xor i1 %627, true + %.094.mux = select i1 %not., i1 true, i1 %.094.ph br i1 %brmerge, label %.critedge113, label %628 628: ; preds = %._crit_edge810 @@ -4139,7 +4141,7 @@ _ZNSt6vectorIPN13sentencepiece7unigram12_GLOBAL__N_110HypothesisESaIS4_EE9push_b br label %_ZNSt14priority_queueIPN13sentencepiece7unigram12_GLOBAL__N_110HypothesisESt6vectorIS4_SaIS4_EEZNS1_7Lattice5NBestEmbfE20HypothesisComparatorED2Ev.exit274 .critedge113: ; preds = %662, %._crit_edge810, %630 - %.195 = phi i1 [ %.094.ph, %._crit_edge810 ], [ true, %630 ], [ true, %662 ] + %.195 = phi i1 [ %.094.mux, %._crit_edge810 ], [ true, %630 ], [ true, %662 ] %.val125 = load ptr, ptr %162, align 8 %669 = ptrtoint ptr %.val125 to i64 %670 = ptrtoint ptr %.val124 to i64 @@ -6478,7 +6480,7 @@ _ZNSt6vectorIN5Darts15DoubleArrayImplIvvivE16result_pair_typeESaIS3_EEC2EmRKS4_. br label %129 129: ; preds = %125, %121, %82 - %.141 = phi i8 [ %.04070, %82 ], [ %.04070, %121 ], [ %spec.select, %125 ] + %.141 = phi i8 [ %.04070, %82 ], [ 1, %121 ], [ %spec.select, %125 ] %130 = add nuw i64 %.03971, 1 %exitcond.not = icmp eq i64 %130, %52 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph, !llvm.loop !40 diff --git a/bench/spike/optimized/disasm.ll b/bench/spike/optimized/disasm.ll index 0e1a83f9944..7a06f98a280 100644 --- a/bench/spike/optimized/disasm.ll +++ b/bench/spike/optimized/disasm.ll @@ -3123,6 +3123,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc.exit: ; preds = %95, %96 = load ptr, ptr %0, align 8 %97 = getelementptr inbounds i8, ptr %96, i64 %86 store i8 0, ptr %97, align 1 + %.pre = load i64, ptr %63, align 8 br label %99 .loopexit36: ; preds = %95, %118 @@ -3141,15 +3142,15 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc.exit: ; preds = %95, br label %135 99: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc.exit, %81 - %100 = load ptr, ptr %6, align 8 - %101 = load i64, ptr %63, align 8 + %100 = phi i64 [ %.pre, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEPKc.exit ], [ %79, %81 ] + %101 = load ptr, ptr %6, align 8 %102 = load i64, ptr %34, align 8 %103 = sub i64 9223372036854775807, %102 - %104 = icmp ult i64 %103, %101 + %104 = icmp ult i64 %103, %100 br i1 %104, label %.invoke, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i.i22 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE15_M_check_lengthEmmPKc.exit.i.i.i22: ; preds = %99 - %105 = add i64 %102, %101 + %105 = add i64 %102, %100 %106 = load ptr, ptr %0, align 8 %107 = icmp eq ptr %106, %41 br i1 %107, label %108, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i.i.i.i23 @@ -3166,25 +3167,25 @@ _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i.i.i.i23 br i1 %.not.i.i.i.i24, label %118, label %112 112: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i.i.i.i23 - %.not8.i.i.i.i25 = icmp eq i64 %101, 0 + %.not8.i.i.i.i25 = icmp eq i64 %100, 0 br i1 %.not8.i.i.i.i25, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_.exit29, label %113 113: ; preds = %112 %114 = getelementptr inbounds i8, ptr %106, i64 %102 - %cond.i.i.i.i26 = icmp eq i64 %101, 1 + %cond.i.i.i.i26 = icmp eq i64 %100, 1 br i1 %cond.i.i.i.i26, label %115, label %117 115: ; preds = %113 - %116 = load i8, ptr %100, align 1 + %116 = load i8, ptr %101, align 1 store i8 %116, ptr %114, align 1 br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_.exit29 117: ; preds = %113 - call void @llvm.memcpy.p0.p0.i64(ptr align 1 %114, ptr align 1 %100, i64 %101, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr align 1 %114, ptr align 1 %101, i64 %100, i1 false) br label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_.exit29 118: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE8capacityEv.exit.i.i.i.i23 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %102, i64 noundef 0, ptr noundef %100, i64 noundef %101) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE9_M_mutateEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %102, i64 noundef 0, ptr noundef %101, i64 noundef %100) to label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_.exit29 unwind label %.loopexit36 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLERKS4_.exit29: ; preds = %118, %112, %115, %117 diff --git a/bench/spike/optimized/remote_bitbang.ll b/bench/spike/optimized/remote_bitbang.ll index c0e0ff645e0..db0997c4714 100644 --- a/bench/spike/optimized/remote_bitbang.ll +++ b/bench/spike/optimized/remote_bitbang.ll @@ -279,10 +279,10 @@ define void @_ZN16remote_bitbang_t16execute_commandsEv(ptr noundef nonnull align %.pre = load i64, ptr %7, align 8 br label %11 -11: ; preds = %81, %1 - %12 = phi i64 [ %.pre, %1 ], [ %83, %81 ] - %.028 = phi i1 [ %5, %1 ], [ %.12938, %81 ] - %.0 = phi i32 [ 0, %1 ], [ %.141, %81 ] +11: ; preds = %.thread51, %1 + %12 = phi i64 [ %.pre, %1 ], [ %83, %.thread51 ] + %.028 = phi i1 [ %5, %1 ], [ %.129385056, %.thread51 ] + %.0 = phi i32 [ 0, %1 ], [ %.141, %.thread51 ] %13 = load i64, ptr %6, align 8 %14 = icmp slt i64 %13, %12 br i1 %14, label %.lr.ph, label %.thread @@ -434,17 +434,13 @@ define void @_ZN16remote_bitbang_t16execute_commandsEv(ptr noundef nonnull align ._crit_edge60: ; preds = %63, %._crit_edge %80 = icmp ugt i32 %53, 65536 - br i1 %80, label %.loopexit, label %.thread + %brmerge = select i1 %80, i1 true, i1 %.4 + %brmerge60 = or i1 %.lcssa.ph, %brmerge + br i1 %brmerge60, label %.loopexit, label %.thread51 -.thread: ; preds = %11, %._crit_edge60 - %.141 = phi i32 [ %53, %._crit_edge60 ], [ %.0, %11 ] - %.11940 = phi i1 [ %.4, %._crit_edge60 ], [ false, %11 ] - %.12639 = phi i1 [ %.227.ph, %._crit_edge60 ], [ false, %11 ] - %.12938 = phi i1 [ false, %._crit_edge60 ], [ %.028, %11 ] - %brmerge = or i1 %.11940, %.12639 - br i1 %brmerge, label %.loopexit, label %81 - -81: ; preds = %.thread +.thread: ; preds = %._crit_edge60, %11 + %.141 = phi i32 [ %.0, %11 ], [ %53, %._crit_edge60 ] + %.11940 = phi i1 [ %.028, %11 ], [ false, %._crit_edge80 ] store i64 0, ptr %6, align 8 %82 = load i32, ptr %10, align 4 %83 = tail call i64 @read(i32 noundef %82, ptr noundef nonnull %8, i64 noundef 65536) @@ -454,7 +450,7 @@ define void @_ZN16remote_bitbang_t16execute_commandsEv(ptr noundef nonnull align i64 0, label %93 ] -84: ; preds = %81 +84: ; preds = %.thread51 %85 = tail call ptr @__errno_location() #11 %86 = load i32, ptr %85, align 4 %87 = icmp eq i32 %86, 11 @@ -468,7 +464,7 @@ define void @_ZN16remote_bitbang_t16execute_commandsEv(ptr noundef nonnull align tail call void @abort() #13 unreachable -93: ; preds = %81 +93: ; preds = %.thread51 %94 = load ptr, ptr @stderr, align 8 %95 = tail call i64 @fwrite(ptr nonnull @.str.11, i64 28, i64 1, ptr %94) #14 %96 = load i32, ptr %10, align 4 @@ -476,7 +472,7 @@ define void @_ZN16remote_bitbang_t16execute_commandsEv(ptr noundef nonnull align store i32 0, ptr %10, align 4 br label %.loopexit -.loopexit: ; preds = %.thread, %._crit_edge60, %84, %93 +.loopexit: ; preds = %._crit_edge60, %84, %93 ret void } diff --git a/bench/tinyrenderer/optimized/tgaimage.cpp.ll b/bench/tinyrenderer/optimized/tgaimage.cpp.ll index 355534d5fcb..25ee1944ef8 100644 --- a/bench/tinyrenderer/optimized/tgaimage.cpp.ll +++ b/bench/tinyrenderer/optimized/tgaimage.cpp.ll @@ -915,15 +915,13 @@ define dso_local noundef zeroext i1 @_ZNK8TGAImage15unload_rle_dataERSt14basic_o .preheader: ; preds = %.preheader.lr.ph, %39 %indvars.iv82 = phi i64 [ %indvars.iv.next83, %39 ], [ 1, %.preheader.lr.ph ] - %.03856 = phi i8 [ %.2, %39 ], [ 1, %.preheader.lr.ph ] - %36 = icmp eq i64 %indvars.iv82, 1 - %.2 = select i1 %36, i8 0, i8 %.03856 - %37 = trunc nuw i8 %.2 to i1 + %.03856 = phi i1 [ false, %39 ], [ true, %.preheader.lr.ph ] + %36 = icmp ne i64 %indvars.iv82, 1 + %.2 = and i1 %36, %.03856 br i1 %37, label %.split.us, label %39 .split.us: ; preds = %..critedge_crit_edge.us, %.preheader %.us-phi.in = phi i64 [ %indvars.iv82, %.preheader ], [ %indvars.iv79, %..critedge_crit_edge.us ] - %.us-phi62 = phi i8 [ %.2, %.preheader ], [ %.2.us, %..critedge_crit_edge.us ] %.us-phi = trunc i64 %.us-phi.in to i8 %38 = add nsw i8 %.us-phi, -1 br label %.loopexit @@ -941,11 +939,14 @@ define dso_local noundef zeroext i1 @_ZNK8TGAImage15unload_rle_dataERSt14basic_o %45 = trunc nuw nsw i64 %indvars.iv79 to i8 br label %.loopexit -.loopexit: ; preds = %19, %39, %.loopexit.loopexit87.split.loop.exit96, %11, %.split.us - %.140 = phi i8 [ %38, %.split.us ], [ 1, %11 ], [ %45, %.loopexit.loopexit87.split.loop.exit96 ], [ %42, %39 ], [ %indvars, %19 ] - %.1 = phi i8 [ %.us-phi62, %.split.us ], [ 1, %11 ], [ %.2.us, %.loopexit.loopexit87.split.loop.exit96 ], [ %.2, %39 ], [ %.2.us, %19 ] - %46 = trunc nuw i8 %.1 to i1 - %.v = select i1 %46, i8 -1, i8 127 +.loopexit: ; preds = %19 + %.140 = trunc nuw i8 %.2.us to i1 + br label %.loopexit + +.loopexit:; preds = %39, %.loopexit, %.loopexit.loopexit85.split.loop.exit92, %11, %.split.us + %.140 = phi i8 [ %38, %.split.us ], [ 1, %11 ], [ %45, %.loopexit.loopexit85.split.loop.exit92 ], [ %indvars, %.loopexit.loopexit97 ], [ %42, %39 ] + %.1 = phi i1 [ true, %.split.us ], [ true, %11 ], [ false, %.loopexit.loopexit85.split.loop.exit92 ], [ %46, %.loopexit.loopexit97 ], [ false, %39 ] + %.v = select i1 %.1, i8 -1, i8 127 %47 = add i8 %.v, %.140 %48 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo3putEc(ptr noundef nonnull align 8 dereferenceable(8) %1, i8 noundef signext %47) %49 = load ptr, ptr %1, align 8 @@ -962,7 +963,7 @@ define dso_local noundef zeroext i1 @_ZNK8TGAImage15unload_rle_dataERSt14basic_o %58 = getelementptr inbounds i8, ptr %57, i64 %14 %59 = load i8, ptr %8, align 8 %60 = zext i8 %59 to i64 - %61 = select i1 %46, i64 %55, i64 1 + %61 = select i1 %.1, i64 %55, i64 1 %62 = mul nuw nsw i64 %61, %60 %63 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSo5writeEPKcl(ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef %58, i64 noundef %62) %64 = load ptr, ptr %1, align 8 diff --git a/bench/tokenizers-rs/optimized/10h1ju7dwsvagf79.ll b/bench/tokenizers-rs/optimized/10h1ju7dwsvagf79.ll index 00ac513c94b..6114ac450b8 100644 --- a/bench/tokenizers-rs/optimized/10h1ju7dwsvagf79.ll +++ b/bench/tokenizers-rs/optimized/10h1ju7dwsvagf79.ll @@ -778,9 +778,10 @@ define internal fastcc void @"_ZN4core3ptr273drop_in_place$LT$hashbrown..scopegu 5: ; preds = %23, %0 %.sroa.0.08.i.i = phi i64 [ 0, %0 ], [ %spec.select6.i.i, %23 ] - %6 = icmp ult i64 %.sroa.0.08.i.i, %.0.val - %7 = zext i1 %6 to i64 - %spec.select6.i.i = add nuw i64 %.sroa.0.08.i.i, %7 + %6 = icmp uge i64 %.sroa.0.08.i.i, %.0.val + %7 = xor i1 %6, true + %spec.select6.i.i = zext i1 %not..i.i to i64 + %spec.select6.i.i = add nuw i64 %.sroa.0.07.i.i, %7 %8 = load ptr, ptr %.8.val, align 8, !nonnull !4, !noundef !4 %9 = getelementptr inbounds i8, ptr %8, i64 %.sroa.0.08.i.i %10 = load i8, ptr %9, align 1, !noundef !4 @@ -812,9 +813,9 @@ define internal fastcc void @"_ZN4core3ptr273drop_in_place$LT$hashbrown..scopegu br label %23 23: ; preds = %"_ZN9hashbrown3raw15Bucket$LT$T$GT$4drop17heaf4ecfdc3cf4deeE.llvm.11083375685992158394.exit.i.i", %5 - %.not.i.i.i = icmp ule i64 %spec.select6.i.i, %.0.val - %or.cond.not.i.i = select i1 %6, i1 %.not.i.i.i, i1 false - br i1 %or.cond.not.i.i, label %5, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aac95527af6ef67E.exit" + %.not.i.i.i = icmp ugt i64 %spec.select6.i.i, %.0.val + %or.cond.not.i.i = select i1 %6, i1 true, i1 %.not.i.i.i + br i1 %or.cond.not.i.i, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aac95527af6ef67E.exit", label %5 "_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h7aac95527af6ef67E.exit": ; preds = %23 ret void @@ -831,9 +832,10 @@ define internal fastcc void @"_ZN4core3ptr273drop_in_place$LT$hashbrown..scopegu 5: ; preds = %23, %0 %.sroa.0.08.i.i = phi i64 [ 0, %0 ], [ %spec.select6.i.i, %23 ] - %6 = icmp ult i64 %.sroa.0.08.i.i, %.0.val - %7 = zext i1 %6 to i64 - %spec.select6.i.i = add nuw i64 %.sroa.0.08.i.i, %7 + %6 = icmp uge i64 %.sroa.0.08.i.i, %.0.val + %7 = xor i1 %6, true + %spec.select6.i.i = zext i1 %not..i.i to i64 + %spec.select6.i.i = add nuw i64 %.sroa.0.07.i.i, %7 %8 = load ptr, ptr %.8.val, align 8, !nonnull !4, !noundef !4 %9 = getelementptr inbounds i8, ptr %8, i64 %.sroa.0.08.i.i %10 = load i8, ptr %9, align 1, !noundef !4 @@ -865,9 +867,9 @@ define internal fastcc void @"_ZN4core3ptr273drop_in_place$LT$hashbrown..scopegu br label %23 23: ; preds = %"_ZN9hashbrown3raw15Bucket$LT$T$GT$4drop17hdc6dfc1a75044724E.llvm.11083375685992158394.exit.i.i", %5 - %.not.i.i.i = icmp ule i64 %spec.select6.i.i, %.0.val - %or.cond.not.i.i = select i1 %6, i1 %.not.i.i.i, i1 false - br i1 %or.cond.not.i.i, label %5, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4876a049e7331229E.exit" + %.not.i.i.i = icmp ugt i64 %spec.select6.i.i, %.0.val + %or.cond.not.i.i = select i1 %6, i1 true, i1 %.not.i.i.i + br i1 %or.cond.not.i.i, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4876a049e7331229E.exit", label %5 "_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4876a049e7331229E.exit": ; preds = %23 ret void @@ -884,9 +886,10 @@ define internal fastcc void @"_ZN4core3ptr273drop_in_place$LT$hashbrown..scopegu 5: ; preds = %23, %0 %.sroa.0.08.i.i = phi i64 [ 0, %0 ], [ %spec.select6.i.i, %23 ] - %6 = icmp ult i64 %.sroa.0.08.i.i, %.0.val - %7 = zext i1 %6 to i64 - %spec.select6.i.i = add nuw i64 %.sroa.0.08.i.i, %7 + %6 = icmp uge i64 %.sroa.0.08.i.i, %.0.val + %7 = xor i1 %6, true + %spec.select6.i.i = zext i1 %not..i.i to i64 + %spec.select6.i.i = add nuw i64 %.sroa.0.07.i.i, %7 %8 = load ptr, ptr %.8.val, align 8, !nonnull !4, !noundef !4 %9 = getelementptr inbounds i8, ptr %8, i64 %.sroa.0.08.i.i %10 = load i8, ptr %9, align 1, !noundef !4 @@ -918,9 +921,9 @@ define internal fastcc void @"_ZN4core3ptr273drop_in_place$LT$hashbrown..scopegu br label %23 23: ; preds = %"_ZN9hashbrown3raw15Bucket$LT$T$GT$4drop17h2507339dd8619ad1E.llvm.11083375685992158394.exit.i.i", %5 - %.not.i.i.i = icmp ule i64 %spec.select6.i.i, %.0.val - %or.cond.not.i.i = select i1 %6, i1 %.not.i.i.i, i1 false - br i1 %or.cond.not.i.i, label %5, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h8eeaa011f9783a52E.exit" + %.not.i.i.i = icmp ugt i64 %spec.select6.i.i, %.0.val + %or.cond.not.i.i = select i1 %6, i1 true, i1 %.not.i.i.i + br i1 %or.cond.not.i.i, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h8eeaa011f9783a52E.exit", label %5 "_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h8eeaa011f9783a52E.exit": ; preds = %23 ret void @@ -994,9 +997,10 @@ define internal fastcc void @"_ZN4core3ptr327drop_in_place$LT$hashbrown..scopegu 2: ; preds = %13, %0 %.sroa.0.08.i.i = phi i64 [ 0, %0 ], [ %spec.select6.i.i, %13 ] - %3 = icmp ult i64 %.sroa.0.08.i.i, %.0.val - %4 = zext i1 %3 to i64 - %spec.select6.i.i = add nuw i64 %.sroa.0.08.i.i, %4 + %3 = icmp uge i64 %.sroa.0.08.i.i, %.0.val + %4 = xor i1 %3, true + %spec.select6.i.i = zext i1 %not..i.i to i64 + %spec.select6.i.i = add nuw i64 %.sroa.0.07.i.i, %4 %5 = load ptr, ptr %.8.val, align 8, !nonnull !4, !noundef !4 %6 = getelementptr inbounds i8, ptr %5, i64 %.sroa.0.08.i.i %7 = load i8, ptr %6, align 1, !noundef !4 @@ -1011,9 +1015,9 @@ define internal fastcc void @"_ZN4core3ptr327drop_in_place$LT$hashbrown..scopegu br label %13 13: ; preds = %9, %2 - %.not.i.i.i = icmp ule i64 %spec.select6.i.i, %.0.val - %or.cond.not.i.i = select i1 %3, i1 %.not.i.i.i, i1 false - br i1 %or.cond.not.i.i, label %2, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4ea62c1c91326db0E.exit" + %.not.i.i.i = icmp ugt i64 %spec.select6.i.i, %.0.val + %or.cond.not.i.i = select i1 %3, i1 true, i1 %.not.i.i.i + br i1 %or.cond.not.i.i, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4ea62c1c91326db0E.exit", label %2 "_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h4ea62c1c91326db0E.exit": ; preds = %13 ret void @@ -1030,9 +1034,10 @@ define internal fastcc void @"_ZN4core3ptr359drop_in_place$LT$hashbrown..scopegu 5: ; preds = %30, %0 %.sroa.0.08.i.i = phi i64 [ 0, %0 ], [ %spec.select6.i.i, %30 ] - %6 = icmp ult i64 %.sroa.0.08.i.i, %.0.val - %7 = zext i1 %6 to i64 - %spec.select6.i.i = add nuw i64 %.sroa.0.08.i.i, %7 + %6 = icmp uge i64 %.sroa.0.08.i.i, %.0.val + %7 = xor i1 %6, true + %spec.select6.i.i = zext i1 %not..i.i to i64 + %spec.select6.i.i = add nuw i64 %.sroa.0.07.i.i, %7 %8 = load ptr, ptr %.8.val, align 8, !nonnull !4, !noundef !4 %9 = getelementptr inbounds i8, ptr %8, i64 %.sroa.0.08.i.i %10 = load i8, ptr %9, align 1, !noundef !4 @@ -1085,9 +1090,9 @@ define internal fastcc void @"_ZN4core3ptr359drop_in_place$LT$hashbrown..scopegu br label %30 30: ; preds = %"_ZN9hashbrown3raw15Bucket$LT$T$GT$4drop17hd9f30cc18f81a544E.llvm.11083375685992158394.exit.i.i", %5 - %.not.i.i.i = icmp ule i64 %spec.select6.i.i, %.0.val - %or.cond.not.i.i = select i1 %6, i1 %.not.i.i.i, i1 false - br i1 %or.cond.not.i.i, label %5, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2007aeba1c462fc5E.exit" + %.not.i.i.i = icmp ugt i64 %spec.select6.i.i, %.0.val + %or.cond.not.i.i = select i1 %6, i1 true, i1 %.not.i.i.i + br i1 %or.cond.not.i.i, label %"_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2007aeba1c462fc5E.exit", label %5 "_ZN88_$LT$hashbrown..scopeguard..ScopeGuard$LT$T$C$F$GT$$u20$as$u20$core..ops..drop..Drop$GT$4drop17h2007aeba1c462fc5E.exit": ; preds = %30 ret void diff --git a/bench/tomlplusplus/optimized/toml.cpp.ll b/bench/tomlplusplus/optimized/toml.cpp.ll index 945962eae22..2e718365acc 100644 --- a/bench/tomlplusplus/optimized/toml.cpp.ll +++ b/bench/tomlplusplus/optimized/toml.cpp.ll @@ -24756,8 +24756,8 @@ _ZN12_GLOBAL__N_15to_svERKNS_14utf8_codepointE.exit100: ; preds = %if.then.i94, br label %_ZN12_GLOBAL__N_15to_svERKNS_14utf8_codepointE.exit117.invoke if.end255: ; preds = %if.else198, %if.else198, %if.then221, %if.else164, %if.else131, %if.then219, %if.then223 - %seen_decimal.1 = phi i8 [ %seen_decimal.0.ph, %if.else198 ], [ %seen_decimal.0.ph, %if.then219 ], [ %seen_decimal.0.ph, %if.then223 ], [ 1, %if.else131 ], [ 1, %if.else164 ], [ %seen_decimal.0.ph, %if.then221 ], [ %seen_decimal.0.ph, %if.else198 ] - %seen_exponent.1 = phi i8 [ %seen_exponent.0.ph, %if.else198 ], [ %seen_exponent.0.ph, %if.then219 ], [ %seen_exponent.0.ph, %if.then223 ], [ %seen_exponent.0.ph, %if.else131 ], [ 1, %if.else164 ], [ %seen_exponent.0.ph, %if.then221 ], [ %seen_exponent.0.ph, %if.else198 ] + %seen_decimal.1 = phi i8 [ %seen_decimal.0.ph, %if.else198 ], [ 1, %if.then219 ], [ 0, %if.then223 ], [ 1, %if.else131 ], [ 1, %if.else164 ], [ 0, %if.then221 ], [ %seen_decimal.0.ph, %if.else198 ] + %seen_exponent.1 = phi i8 [ 1, %if.else198 ], [ %seen_exponent.0.ph, %if.then219 ], [ %seen_exponent.0.ph, %if.then223 ], [ 0, %if.else131 ], [ 1, %if.else164 ], [ %seen_exponent.0.ph, %if.then221 ], [ 1, %if.else198 ] %first_integer_part.1 = phi i8 [ %first_integer_part.0.ph, %if.else198 ], [ %first_integer_part.0.ph, %if.then219 ], [ %33, %if.then223 ], [ %first_integer_part.0.ph, %if.else131 ], [ %first_integer_part.0.ph, %if.else164 ], [ %first_integer_part.0.ph, %if.then221 ], [ %first_integer_part.0.ph, %if.else198 ] %bytes257 = getelementptr inbounds nuw i8, ptr %7, i64 4 %36 = load i8, ptr %bytes257, align 4 @@ -28782,7 +28782,7 @@ lpad.loopexit.split-lp101.loopexit.loopexit: ; preds = %do.body276, %sw.bb8 cleanup br label %ehcleanup -lpad.loopexit.split-lp101.loopexit.loopexit.split-lp: ; preds = %if.then46, %invoke.cont47, %sw.bb327, %do.body367, %if.then397, %if.then401, %if.then440, %if.else446, %do.body455, %sw.bb330 +lpad.loopexit.split-lp101.loopexit.loopexit.split-lp: ; preds = %if.then46, %invoke.cont47, %do.body367, %if.then397, %if.then440, %if.else446, %do.body455, %sw.bb330, %if.then401 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup br label %ehcleanup @@ -29280,17 +29280,13 @@ if.then320: ; preds = %land.lhs.true316 do.end326: ; preds = %do.end313, %land.lhs.true316 switch i64 %consecutive_delimiters.0, label %sw.default353 [ - i64 1, label %sw.bb327 + i64 1, label %if.then401 i64 2, label %sw.bb330 i64 3, label %cleanup i64 4, label %sw.bb337 i64 5, label %sw.bb341 ] -sw.bb327: ; preds = %do.end326 - %call329 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %string_buffer, i8 noundef signext 34) - to label %do.cond462thread-pre-split unwind label %lpad.loopexit.split-lp101.loopexit.loopexit.split-lp - sw.bb330: ; preds = %do.end326 %call3.i81 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKcm(ptr noundef nonnull align 8 dereferenceable(32) %string_buffer, ptr noundef nonnull @.str.22, i64 noundef 2) to label %do.cond462thread-pre-split unwind label %lpad.loopexit.split-lp101.loopexit.loopexit.split-lp @@ -29343,8 +29339,9 @@ invoke.cont398: ; preds = %if.then397 %tobool400 = trunc nuw i8 %skipping_whitespace.0.ph to i1 br i1 %tobool400, label %do.cond462thread-pre-split, label %if.then401 -if.then401: ; preds = %invoke.cont398 - %call403 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %string_buffer, i8 noundef signext 10) +if.then401: ; preds = %invoke.cont398, %do.end326 + %call403 = phi i8 [ 34, %do.end326 ], [ 10, %invoke.cont398 ] + %54 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %string_buffer, i8 noundef signext %53) to label %do.cond462thread-pre-split unwind label %lpad.loopexit.split-lp101.loopexit.loopexit.split-lp if.end405: ; preds = %if.end391 @@ -29445,15 +29442,15 @@ if.else446: ; preds = %if.end433 to label %do.body455 unwind label %lpad.loopexit.split-lp101.loopexit.loopexit.split-lp do.body455: ; preds = %switch.early.test, %switch.early.test, %switch.early.test, %_ZN4toml2v34impl24is_horizontal_whitespaceEDi.exit, %sw.bb.i.i, %sw.bb.i.i, %if.end3.i.i, %if.end3.i.i, %if.end3.i.i, %lor.lhs.false, %lor.lhs.false, %if.then440, %if.else446 - %skipping_whitespace.2 = phi i8 [ %skipping_whitespace.0.ph, %switch.early.test ], [ 0, %if.then440 ], [ %skipping_whitespace.0.ph, %if.else446 ], [ %skipping_whitespace.0.ph, %sw.bb.i.i ], [ %skipping_whitespace.0.ph, %lor.lhs.false ], [ %skipping_whitespace.0.ph, %lor.lhs.false ], [ %skipping_whitespace.0.ph, %if.end3.i.i ], [ %skipping_whitespace.0.ph, %if.end3.i.i ], [ %skipping_whitespace.0.ph, %if.end3.i.i ], [ %skipping_whitespace.0.ph, %sw.bb.i.i ], [ %skipping_whitespace.0.ph, %_ZN4toml2v34impl24is_horizontal_whitespaceEDi.exit ], [ %skipping_whitespace.0.ph, %switch.early.test ], [ %skipping_whitespace.0.ph, %switch.early.test ] + %skipping_whitespace.2 = phi i8 [ 1, %switch.early.test ], [ 0, %if.then440 ], [ %skipping_whitespace.0.ph, %if.else446 ], [ 1, %sw.bb.i.i ], [ 1, %lor.lhs.false ], [ 1, %lor.lhs.false ], [ 1, %if.end3.i.i ], [ 1, %if.end3.i.i ], [ 1, %if.end3.i.i ], [ 1, %sw.bb.i.i ], [ 1, %_ZN4toml2v34impl24is_horizontal_whitespaceEDi.exit ], [ 1, %switch.early.test ], [ 1, %switch.early.test ] %59 = load ptr, ptr %cp, align 8 %cmp457 = icmp ne ptr %59, null tail call void @llvm.assume(i1 %cmp457) invoke void @_ZN4toml2v34impl7impl_ex6parser7advanceEv(ptr noundef nonnull align 8 dereferenceable(3496) %this) to label %do.cond462thread-pre-split unwind label %lpad.loopexit.split-lp101.loopexit.loopexit.split-lp -do.cond462thread-pre-split: ; preds = %if.then401, %invoke.cont398, %do.body455, %invoke.cont49, %if.end262, %sw.bb327, %sw.bb330 - %skipping_whitespace.1.ph = phi i8 [ 0, %sw.bb330 ], [ 0, %sw.bb327 ], [ %skipping_whitespace.0.ph, %if.end262 ], [ 1, %invoke.cont49 ], [ %skipping_whitespace.2, %do.body455 ], [ %skipping_whitespace.0.ph, %if.then401 ], [ %skipping_whitespace.0.ph, %invoke.cont398 ] +do.cond462thread-pre-split: ; preds = %if.then401, %invoke.cont398, %do.body455, %invoke.cont49, %if.end262, %sw.bb330 + %skipping_whitespace.1.ph = phi i8 [ 0, %sw.bb330 ], [ %skipping_whitespace.0.ph, %if.end262 ], [ 1, %invoke.cont49 ], [ %skipping_whitespace.2, %do.body455 ], [ 1, %invoke.cont398 ], [ 0, %if.then401 ] %.pr = load ptr, ptr %cp, align 8 %60 = icmp eq ptr %.pr, null br i1 %60, label %do.body468, label %do.body39.outer.backedge diff --git a/bench/tree-sitter-rs/optimized/3uq0p4iqk1x8h2ls.ll b/bench/tree-sitter-rs/optimized/3uq0p4iqk1x8h2ls.ll index ad5a0be9013..c1f43883b78 100644 --- a/bench/tree-sitter-rs/optimized/3uq0p4iqk1x8h2ls.ll +++ b/bench/tree-sitter-rs/optimized/3uq0p4iqk1x8h2ls.ll @@ -1192,7 +1192,7 @@ define hidden { i64, ptr } @"_ZN9once_cell6unsync17OnceCell$LT$T$GT$15get_or_try %8 = load i64, ptr %0, align 8, !range !203, !noundef !4 %trunc = trunc nuw i64 %8 to i1 %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 - br i1 %trunc, label %56, label %10 + br i1 %trunc, label %50, label %10 10: ; preds = %2 %.sroa.0.0.copyload = load ptr, ptr %1, align 8, !nonnull !4, !noundef !4 @@ -1260,9 +1260,8 @@ define hidden { i64, ptr } @"_ZN9once_cell6unsync17OnceCell$LT$T$GT$15get_or_try call void @_ZN4core9panicking16panic_in_cleanup17h55eb1d85cadde1a1E() #22, !noalias !320 unreachable -common.resume: ; preds = %27, %47 - %common.resume.op = phi { ptr, i32 } [ %48, %47 ], [ %28, %27 ] - resume { ptr, i32 } %common.resume.op +common.resume: ; preds = %27 + resume { ptr, i32 } %28 "_ZN18tree_sitter_loader6Loader15language_for_id28_$u7b$$u7b$closure$u7d$$u7d$17hb8728e6eb644fdc9E.exit": ; preds = %29, %32, %36 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !326 @@ -1275,7 +1274,8 @@ common.resume: ; preds = %27, %47 40: ; preds = %"_ZN18tree_sitter_loader6Loader15language_for_id28_$u7b$$u7b$closure$u7d$$u7d$17hb8728e6eb644fdc9E.exit" %41 = icmp ne ptr %.fca.1.extract, null - br label %.sink.split + call void @llvm.assume(i1 %42) + br label %50 42: ; preds = %"_ZN18tree_sitter_loader6Loader15language_for_id28_$u7b$$u7b$closure$u7d$$u7d$17hb8728e6eb644fdc9E.exit" call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %7) @@ -1284,39 +1284,15 @@ common.resume: ; preds = %27, %47 br i1 %trunc.i.i, label %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit", label %44 44: ; preds = %42 - %45 = icmp eq i64 %43, 0 - br i1 %45, label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$tree_sitter..Language$GT$$GT$17h5b67fa6ac2dd2723E.exit.i.i", label %46 - -46: ; preds = %44 - invoke void @"_ZN63_$LT$tree_sitter..Language$u20$as$u20$core..ops..drop..Drop$GT$4drop17h16817d4e8c1c3e09E"(ptr noalias noundef nonnull align 8 dereferenceable(8) %9) - to label %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$tree_sitter..Language$GT$$GT$17h5b67fa6ac2dd2723E.exit.i.i" unwind label %47, !noalias !339 - -47: ; preds = %46 - %48 = landingpad { ptr, i32 } - cleanup store i64 1, ptr %0, align 8, !noalias !339 store ptr %.fca.1.extract, ptr %9, align 8, !noalias !339 - br label %common.resume - -"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$tree_sitter..Language$GT$$GT$17h5b67fa6ac2dd2723E.exit.i.i": ; preds = %46, %44 - store i64 1, ptr %0, align 8, !noalias !339 - store ptr %.fca.1.extract, ptr %9, align 8, !noalias !339 - br label %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit" + call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) + br label %50 -"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit": ; preds = %42, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$tree_sitter..Language$GT$$GT$17h5b67fa6ac2dd2723E.exit.i.i" - %49 = phi i64 [ %43, %42 ], [ 1, %"_ZN4core3ptr70drop_in_place$LT$core..option..Option$LT$tree_sitter..Language$GT$$GT$17h5b67fa6ac2dd2723E.exit.i.i" ] +"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit": ; preds = %43 store i64 %43, ptr %7, align 8 %.fca.1.gep = getelementptr inbounds nuw i8, ptr %7, i64 8 store ptr %.fca.1.extract, ptr %.fca.1.gep, align 8 - %50 = icmp eq i64 %43, 0 - br i1 %50, label %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit", label %51 - -"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit": ; preds = %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit" - call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) - %trunc16 = trunc nuw i64 %49 to i1 - br label %.sink.split - -51: ; preds = %"_ZN9once_cell6unsync17OnceCell$LT$T$GT$3set17h826f7d00fd8cb77eE.exit" call fastcc void @"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE"(ptr noalias noundef align 8 dereferenceable(16) %7) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %7) call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %6) @@ -1332,19 +1308,12 @@ common.resume: ; preds = %27, %47 call void @_ZN4core9panicking9panic_fmt17h784f20a50eaab275E(ptr noalias noundef nonnull align 8 captures(none) dereferenceable(48) %6, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.5797861c9b37489455df470e033f6d21.36) #23 unreachable -.sink.split: ; preds = %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit", %40 - %.sink = phi i1 [ %41, %40 ], [ %trunc16, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" ] - %.sroa.4.0.ph = phi ptr [ %.fca.1.extract, %40 ], [ %9, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" ] - %.sroa.0.0.ph = phi i64 [ 1, %40 ], [ 0, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" ] - call void @llvm.assume(i1 %.sink) - br label %56 - -56: ; preds = %.sink.split, %2 - %.sroa.4.0 = phi ptr [ %9, %2 ], [ %.sroa.4.0.ph, %.sink.split ] - %.sroa.0.0 = phi i64 [ 0, %2 ], [ %.sroa.0.0.ph, %.sink.split ] - %57 = insertvalue { i64, ptr } poison, i64 %.sroa.0.0, 0 - %58 = insertvalue { i64, ptr } %57, ptr %.sroa.4.0, 1 - ret { i64, ptr } %58 +.sink.split: ; preds = %41, %2, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" + %.sink = phi ptr [ %9, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" ], [ %9, %2 ], [ %.fca.1.extract, %41 ] + %.sroa.4.0.ph = phi i64 [ 0, %"_ZN4core3ptr81drop_in_place$LT$core..result..Result$LT$$LP$$RP$$C$tree_sitter..Language$GT$$GT$17hf9ec18240b0bb68cE.exit" ], [ 0, %2 ], [ 1, %41 ] + %.sroa.0.0.ph = insertvalue { i64, ptr } poison, i64 %.sroa.4.0.ph, 0 + %52 = insertvalue { i64, ptr } %51, ptr %.sink, 1 + ret { i64, ptr } %52 } ; Function Attrs: nonlazybind uwtable diff --git a/bench/tree-sitter-rs/optimized/43qizak8uz8ar6lc.ll b/bench/tree-sitter-rs/optimized/43qizak8uz8ar6lc.ll index b37d09040f1..fc6efc1a55e 100644 --- a/bench/tree-sitter-rs/optimized/43qizak8uz8ar6lc.ll +++ b/bench/tree-sitter-rs/optimized/43qizak8uz8ar6lc.ll @@ -3505,8 +3505,8 @@ default.unreachable8: ; preds = %3 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(56) %.sroa.4.0..sroa_idx.i.i, ptr noundef nonnull align 8 dereferenceable(56) %6, i64 56, i1 false), !alias.scope !1047, !noalias !1048 br label %"_ZN3std4sync4mpmc4list16Channel$LT$T$GT$4send17hf135496243160190E.exit" -common.resume: ; preds = %38, %41, %26 - %common.resume.op = phi { ptr, i32 } [ %lpad.thr_comm.i, %26 ], [ %39, %41 ], [ %39, %38 ] +common.resume: ; preds = %41, %26 + %common.resume.op = phi { ptr, i32 } [ %lpad.thr_comm.i, %26 ], [ %40, %39 ] resume { ptr, i32 } %common.resume.op 26: ; preds = %19, %16 @@ -3562,18 +3562,14 @@ thread-pre-split: ; preds = %15, %29 37: ; preds = %35 invoke void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.ffc34ad9ea0ca27223c3df7e39c916b2.14.llvm.10393017446704266758, i64 noundef 40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.ffc34ad9ea0ca27223c3df7e39c916b2.16.llvm.10393017446704266758) #64 - to label %40 unwind label %38, !noalias !1062 + to label %38 unwind label %39, !noalias !1062 38: ; preds = %37 - %39 = landingpad { ptr, i32 } - cleanup - %.not1.i.i = icmp eq i64 %36, 0 - br i1 %.not1.i.i, label %41, label %common.resume - -40: ; preds = %37 unreachable 41: ; preds = %38 + %40 = landingpad { ptr, i32 } + cleanup invoke void @"_ZN4core3ptr169drop_in_place$LT$std..sync..mpmc..error..SendTimeoutError$LT$std..io..buffered..bufreader..BufReader$LT$tiny_http..util..refined_tcp_stream..RefinedTcpStream$GT$$GT$$GT$17ha0e6dfdb76291da3E.llvm.10393017446704266758"(ptr noalias noundef nonnull align 8 dereferenceable(64) %4) #65 to label %common.resume unwind label %42, !noalias !1060 @@ -3602,21 +3598,17 @@ define hidden void @"_ZN3std4sync4mpmc15Sender$LT$T$GT$4send28_$u7b$$u7b$closure 4: ; preds = %2 invoke void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.ffc34ad9ea0ca27223c3df7e39c916b2.14.llvm.10393017446704266758, i64 noundef 40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.ffc34ad9ea0ca27223c3df7e39c916b2.16.llvm.10393017446704266758) #64 - to label %7 unwind label %5 + to label %5 unwind label %7 5: ; preds = %4 - %6 = landingpad { ptr, i32 } - cleanup - %.not1 = icmp eq i64 %3, 0 - br i1 %.not1, label %9, label %8 - -7: ; preds = %4 unreachable -8: ; preds = %9, %5 - resume { ptr, i32 } %6 +8: ; preds = %9 + resume { ptr, i32 } %8 -9: ; preds = %5 +9: ; preds = %4 + %8 = landingpad { ptr, i32 } + cleanup invoke void @"_ZN4core3ptr169drop_in_place$LT$std..sync..mpmc..error..SendTimeoutError$LT$std..io..buffered..bufreader..BufReader$LT$tiny_http..util..refined_tcp_stream..RefinedTcpStream$GT$$GT$$GT$17ha0e6dfdb76291da3E.llvm.10393017446704266758"(ptr noalias noundef nonnull align 8 dereferenceable(64) %1) #65 to label %8 unwind label %10 @@ -14034,21 +14026,17 @@ define hidden void @"_ZN4core6result19Result$LT$T$C$E$GT$7map_err17h846a612a03e3 10: ; preds = %8 invoke void @_ZN4core9panicking5panic17hb837a5ebbbe5b188E(ptr noalias noundef nonnull readonly align 1 @anon.ffc34ad9ea0ca27223c3df7e39c916b2.14.llvm.10393017446704266758, i64 noundef 40, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.ffc34ad9ea0ca27223c3df7e39c916b2.16.llvm.10393017446704266758) #64 - to label %13 unwind label %11, !noalias !3607 + to label %11 unwind label %13, !noalias !3607 11: ; preds = %10 - %12 = landingpad { ptr, i32 } - cleanup - %.not1.i = icmp eq i64 %9, 0 - br i1 %.not1.i, label %15, label %14 - -13: ; preds = %10 unreachable -14: ; preds = %15, %11 - resume { ptr, i32 } %12 +14: ; preds = %15 + resume { ptr, i32 } %14 15: ; preds = %11 + %14 = landingpad { ptr, i32 } + cleanup invoke void @"_ZN4core3ptr169drop_in_place$LT$std..sync..mpmc..error..SendTimeoutError$LT$std..io..buffered..bufreader..BufReader$LT$tiny_http..util..refined_tcp_stream..RefinedTcpStream$GT$$GT$$GT$17ha0e6dfdb76291da3E.llvm.10393017446704266758"(ptr noalias noundef nonnull align 8 dereferenceable(64) %3) #65 to label %14 unwind label %16, !noalias !3605 @@ -25868,8 +25856,8 @@ define hidden noundef zeroext i1 @"_ZN90_$LT$core..ops..control_flow..ControlFlo .sink.split: ; preds = %2 %6 = trunc nuw i8 %4 to i1 %trunc = trunc nuw i8 %3 to i1 - %7 = icmp eq i8 %3, 0 - %spec.select = select i1 %trunc, i1 %6, i1 %7 + %7 = xor i1 %trunc, true + %spec.select = select i1 %not.trunc, i1 true, i1 %6 tail call void @llvm.assume(i1 %spec.select) br label %8 diff --git a/bench/turborepo-rs/optimized/5igqf1t5fs8xc2cjkk89us33f.ll b/bench/turborepo-rs/optimized/5igqf1t5fs8xc2cjkk89us33f.ll index d6298c981c0..2a5269561dd 100644 --- a/bench/turborepo-rs/optimized/5igqf1t5fs8xc2cjkk89us33f.ll +++ b/bench/turborepo-rs/optimized/5igqf1t5fs8xc2cjkk89us33f.ll @@ -5514,16 +5514,17 @@ _RNvMNtCs8mTrBI1stz4_15turborepo_vt1004gridNtB2_4Grid15current_row_mut.exit.i: ; 22: ; preds = %22, %_RNvMNtCs8mTrBI1stz4_15turborepo_vt1004gridNtB2_4Grid15current_row_mut.exit.i %.sroa.0.09.i = phi i16 [ 0, %_RNvMNtCs8mTrBI1stz4_15turborepo_vt1004gridNtB2_4Grid15current_row_mut.exit.i ], [ %spec.select7.i, %22 ] - %23 = icmp ult i16 %.sroa.0.09.i, %.sroa.0.0.sroa.speculated.i.i - %24 = zext i1 %23 to i16 - %spec.select7.i = add nuw i16 %.sroa.0.09.i, %24 + %23 = icmp uge i16 %.sroa.0.09.i, %.sroa.0.0.sroa.speculated.i.i + %24 = xor i1 %23, true + %spec.select7.i = zext i1 %24 to i16 + %spec.select7.i = add nuw i16 %.sroa.0.08.i, %24 call void @llvm.lifetime.start.p0(i64 9, ptr nonnull %3), !noalias !1111 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(9) %3, ptr noundef nonnull readonly align 1 dereferenceable(9) %1, i64 9, i1 false), !noalias !1103 call void @_RNvMNtCs8mTrBI1stz4_15turborepo_vt1003rowNtB2_3Row5erase(ptr noalias noundef nonnull align 8 dereferenceable(32) %20, i16 noundef %.sroa.0.09.i, ptr noalias noundef nonnull align 1 captures(none) dereferenceable(9) %3), !noalias !1111 call void @llvm.lifetime.end.p0(i64 9, ptr nonnull %3), !noalias !1111 - %.not.i.i = icmp ule i16 %spec.select7.i, %.sroa.0.0.sroa.speculated.i.i - %or.cond.not.i = select i1 %23, i1 %.not.i.i, i1 false - br i1 %or.cond.not.i, label %22, label %_RNvMNtCs8mTrBI1stz4_15turborepo_vt1004gridNtB2_4Grid18erase_row_backward.exit + %.not.i.i = icmp ugt i16 %spec.select7.i, %.sroa.0.0.sroa.speculated.i.i + %or.cond.not.i = select i1 %23, i1 true, i1 %.not.i.i + br i1 %or.cond.not.i, label %_RNvMNtCs8mTrBI1stz4_15turborepo_vt1004gridNtB2_4Grid18erase_row_backward.exit, label %22 _RNvMNtCs8mTrBI1stz4_15turborepo_vt1004gridNtB2_4Grid18erase_row_backward.exit: ; preds = %22 ret void @@ -5675,16 +5676,17 @@ _RNvMNtCs8mTrBI1stz4_15turborepo_vt1004gridNtB2_4Grid15current_row_mut.exit: ; p 18: ; preds = %_RNvMNtCs8mTrBI1stz4_15turborepo_vt1004gridNtB2_4Grid15current_row_mut.exit, %18 %.sroa.0.09 = phi i16 [ 0, %_RNvMNtCs8mTrBI1stz4_15turborepo_vt1004gridNtB2_4Grid15current_row_mut.exit ], [ %spec.select7, %18 ] - %19 = icmp ult i16 %.sroa.0.09, %.sroa.0.0.sroa.speculated.i - %20 = zext i1 %19 to i16 - %spec.select7 = add nuw i16 %.sroa.0.09, %20 + %19 = icmp uge i16 %.sroa.0.09, %.sroa.0.0.sroa.speculated.i + %20 = xor i1 %19, true + %spec.select7 = zext i1 %20 to i16 + %spec.select7 = add nuw i16 %.sroa.0.08, %20 call void @llvm.lifetime.start.p0(i64 9, ptr nonnull %3) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(9) %3, ptr noundef nonnull align 1 dereferenceable(9) %1, i64 9, i1 false) call void @_RNvMNtCs8mTrBI1stz4_15turborepo_vt1003rowNtB2_3Row5erase(ptr noalias noundef nonnull align 8 dereferenceable(32) %16, i16 noundef %.sroa.0.09, ptr noalias noundef nonnull align 1 captures(none) dereferenceable(9) %3) call void @llvm.lifetime.end.p0(i64 9, ptr nonnull %3) - %.not.i = icmp ule i16 %spec.select7, %.sroa.0.0.sroa.speculated.i - %or.cond.not = select i1 %19, i1 %.not.i, i1 false - br i1 %or.cond.not, label %18, label %21 + %.not.i = icmp ugt i16 %spec.select7, %.sroa.0.0.sroa.speculated.i + %or.cond.not = select i1 %19, i1 true, i1 %.not.i + br i1 %or.cond.not, label %21, label %18 21: ; preds = %18 ret void diff --git a/bench/typst-rs/optimized/1ewejz0ibz9296z1.ll b/bench/typst-rs/optimized/1ewejz0ibz9296z1.ll index 5067c500ea8..9a8d56e7a50 100644 --- a/bench/typst-rs/optimized/1ewejz0ibz9296z1.ll +++ b/bench/typst-rs/optimized/1ewejz0ibz9296z1.ll @@ -1269,10 +1269,11 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec 278: ; preds = %278, %276 %.sroa.0.012.i.i.i.i = phi i64 [ 0, %276 ], [ %spec.select8.i.i.i.i, %278 ] - %279 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, %268 - %280 = zext i1 %279 to i64 - %spec.select8.i.i.i.i = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %280 - %281 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, 12 + %279 = icmp samesign uge i64 %.sroa.0.012.i.i.i.i, %268 + %280 = xor i1 %279, true + %spec.select8.i.i.i.i = zext i1 %not..i.i.i.i to i64 + %281 = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %280 + %281 = icmp samesign ult i64 %.sroa.0.011.i.i.i.i, 12 tail call void @llvm.assume(i1 %281) %282 = getelementptr inbounds nuw ptr, ptr %269, i64 %.sroa.0.012.i.i.i.i %283 = load ptr, ptr %282, align 8, !alias.scope !196, !noalias !199, !nonnull !4, !noundef !4 @@ -1281,9 +1282,9 @@ define hidden void @"_ZN5alloc11collections5btree4node210Handle$LT$alloc..collec %285 = trunc nuw nsw i64 %.sroa.0.012.i.i.i.i to i16 %286 = getelementptr inbounds nuw i8, ptr %283, i64 184 store i16 %285, ptr %286, align 8, !noalias !199 - %.not.i.i.i.i.i.i = icmp samesign ule i64 %spec.select8.i.i.i.i, %268 - %or.cond.i.not.i.i.i = select i1 %279, i1 %.not.i.i.i.i.i.i, i1 false - br i1 %or.cond.i.not.i.i.i, label %278, label %290 + %.not.i.i.i.i.i.i = icmp samesign ugt i64 %spec.select8.i.i.i.i, %268 + %or.cond.i.not.i.i.i = select i1 %279, i1 true, i1 %.not.i.i.i.i.i.i + br i1 %or.cond.i.not.i.i.i, label %290, label %278 287: ; preds = %255 %288 = landingpad { ptr, i32 } @@ -1838,10 +1839,11 @@ _ZN5alloc11collections5btree4node12slice_insert17h81c02a9f0638eae2E.exit.i.i: ; 190: ; preds = %190, %188 %.sroa.0.012.i.i.i.i = phi i64 [ 0, %188 ], [ %spec.select8.i.i.i.i, %190 ] - %191 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, %180 - %192 = zext i1 %191 to i64 - %spec.select8.i.i.i.i = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %192 - %193 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, 12 + %191 = icmp samesign uge i64 %.sroa.0.012.i.i.i.i, %180 + %192 = xor i1 %191, true + %spec.select8.i.i.i.i = zext i1 %not..i.i.i.i to i64 + %193 = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %192 + %193 = icmp samesign ult i64 %.sroa.0.011.i.i.i.i, 12 tail call void @llvm.assume(i1 %193) %194 = getelementptr inbounds nuw ptr, ptr %181, i64 %.sroa.0.012.i.i.i.i %195 = load ptr, ptr %194, align 8, !alias.scope !313, !noalias !316, !nonnull !4, !noundef !4 @@ -1849,9 +1851,9 @@ _ZN5alloc11collections5btree4node12slice_insert17h81c02a9f0638eae2E.exit.i.i: ; %196 = trunc nuw nsw i64 %.sroa.0.012.i.i.i.i to i16 %197 = getelementptr inbounds nuw i8, ptr %195, i64 140 store i16 %196, ptr %197, align 4, !noalias !316 - %.not.i.i.i.i.i.i = icmp samesign ule i64 %spec.select8.i.i.i.i, %180 - %or.cond.i.not.i.i.i = select i1 %191, i1 %.not.i.i.i.i.i.i, i1 false - br i1 %or.cond.i.not.i.i.i, label %190, label %"_ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h0e0716c86665e83eE.exit.i" + %.not.i.i.i.i.i.i = icmp samesign ugt i64 %spec.select8.i.i.i.i, %180 + %or.cond.i.not.i.i.i = select i1 %191, i1 true, i1 %.not.i.i.i.i.i.i + br i1 %or.cond.i.not.i.i.i, label %"_ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17h0e0716c86665e83eE.exit.i", label %190 198: ; preds = %165, %163 %.pn.i.i = phi { ptr, i32 } [ %166, %165 ], [ %164, %163 ] @@ -2436,10 +2438,11 @@ _ZN5alloc11collections5btree4node12slice_insert17h712840b1c15c7621E.exit.i.i: ; 160: ; preds = %160, %158 %.sroa.0.012.i.i.i.i = phi i64 [ 0, %158 ], [ %spec.select8.i.i.i.i, %160 ] - %161 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, %150 - %162 = zext i1 %161 to i64 - %spec.select8.i.i.i.i = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %162 - %163 = icmp samesign ult i64 %.sroa.0.012.i.i.i.i, 12 + %161 = icmp samesign uge i64 %.sroa.0.012.i.i.i.i, %150 + %162 = xor i1 %161, true + %spec.select8.i.i.i.i = zext i1 %not..i.i.i.i to i64 + %163 = add nuw nsw i64 %.sroa.0.012.i.i.i.i, %162 + %163 = icmp samesign ult i64 %.sroa.0.011.i.i.i.i, 12 tail call void @llvm.assume(i1 %163) %164 = getelementptr inbounds nuw ptr, ptr %151, i64 %.sroa.0.012.i.i.i.i %165 = load ptr, ptr %164, align 8, !alias.scope !434, !noalias !437, !nonnull !4, !noundef !4 @@ -2447,9 +2450,9 @@ _ZN5alloc11collections5btree4node12slice_insert17h712840b1c15c7621E.exit.i.i: ; %166 = trunc nuw nsw i64 %.sroa.0.012.i.i.i.i to i16 %167 = getelementptr inbounds nuw i8, ptr %165, i64 448 store i16 %166, ptr %167, align 8, !noalias !437 - %.not.i.i.i.i.i.i = icmp samesign ule i64 %spec.select8.i.i.i.i, %150 - %or.cond.i.not.i.i.i = select i1 %161, i1 %.not.i.i.i.i.i.i, i1 false - br i1 %or.cond.i.not.i.i.i, label %160, label %"_ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17he73eaee6e10befebE.exit.i" + %.not.i.i.i.i.i.i = icmp samesign ugt i64 %spec.select8.i.i.i.i, %150 + %or.cond.i.not.i.i.i = select i1 %161, i1 true, i1 %.not.i.i.i.i.i.i + br i1 %or.cond.i.not.i.i.i, label %"_ZN5alloc11collections5btree4node212Handle$LT$alloc..collections..btree..node..NodeRef$LT$alloc..collections..btree..node..marker..Mut$C$K$C$V$C$alloc..collections..btree..node..marker..Internal$GT$$C$alloc..collections..btree..node..marker..KV$GT$5split17he73eaee6e10befebE.exit.i", label %160 168: ; preds = %138, %136 %.pn.i.i = phi { ptr, i32 } [ %139, %138 ], [ %137, %136 ] diff --git a/bench/vcpkg/optimized/commands.depend-info.cpp.ll b/bench/vcpkg/optimized/commands.depend-info.cpp.ll index 54b4afe5561..ade3767c1b1 100644 --- a/bench/vcpkg/optimized/commands.depend-info.cpp.ll +++ b/bench/vcpkg/optimized/commands.depend-info.cpp.ll @@ -1156,13 +1156,11 @@ _ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_ 78: ; preds = %75 %79 = trunc nuw i8 %.sroa.0194.0 to i1 - br i1 %79, label %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit, label %.thread + %.not = icmp ne i8 %.sroa.23.0, 2 + %or.cond.not = and i1 %.not, %79 + br i1 %or.cond.not, label %.noexc, label %.thread _ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit: ; preds = %78 - %.not = icmp eq i8 %.sroa.23.0, 2 - br i1 %.not, label %.thread, label %.noexc - -.noexc: ; preds = %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit %.sroa.018.0.copyload = load i64, ptr @_ZN5vcpkg30msgCmdDependInfoFormatConflictE, align 8 call void @_ZN5vcpkg12error_prefixEv(ptr dead_on_unwind nonnull writable sret(%"struct.vcpkg::LocalizedString") align 8 %14) invoke void @_ZN5vcpkg3msg9format_toIJEJEEEvRNS_15LocalizedStringENS0_8MessageTIJDpT_EEEDpNS0_6TagArgINS_8identityIS5_E4typeET0_EE(ptr noundef nonnull align 8 dereferenceable(32) %14, i64 %.sroa.018.0.copyload) @@ -1180,9 +1178,9 @@ _ZN5vcpkg3msg12format_errorIJEJEEENS_15LocalizedStringENS0_8MessageTIJDpT_EEEDpN call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #20 br label %175 -.thread: ; preds = %78, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i, %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit, %75 - %.sroa.0194.2.ph = phi i8 [ 1, %78 ], [ %.sroa.0194.0, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i ], [ %.sroa.0194.0, %75 ], [ %.sroa.0194.0, %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit ] - %.sroa.23.2.ph = phi i8 [ 2, %78 ], [ %.sroa.23.0, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i ], [ %.sroa.23.0, %75 ], [ 2, %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit ] +.thread: ; preds = %78, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i, %75 + %.sroa.0194.2.ph = phi i8 [ 1, %78 ], [ %.sroa.0194.0, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i ], [ %.sroa.0194.0, %75 ] + %.sroa.23.2.ph = phi i8 [ 2, %78 ], [ %.sroa.23.0, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i ], [ %.sroa.23.0, %75 ] %.pr = load ptr, ptr %69, align 8 %.not10.i.i.i.i63 = icmp eq ptr %.pr, null br i1 %.not10.i.i.i.i63, label %.thread259, label %.lr.ph.i.i.i.i64 @@ -1216,13 +1214,11 @@ _ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_ 89: ; preds = %86 %90 = trunc nuw i8 %.sroa.0194.2.ph to i1 - br i1 %90, label %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit84, label %.thread259 - -_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit84: ; preds = %89 - %.not282 = icmp eq i8 %.sroa.23.2.ph, 3 - br i1 %.not282, label %.thread259, label %.noexc85 + %.not282 = icmp ne i8 %.sroa.23.2.ph, 3 + %or.cond288.not = and i1 %.not282, %90 + br i1 %or.cond288.not, label %.noexc85, label %.thread259 -.noexc85: ; preds = %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit84 +.noexc85: ; preds = %89 %.sroa.017.0.copyload = load i64, ptr @_ZN5vcpkg30msgCmdDependInfoFormatConflictE, align 8 call void @_ZN5vcpkg12error_prefixEv(ptr dead_on_unwind nonnull writable sret(%"struct.vcpkg::LocalizedString") align 8 %15) invoke void @_ZN5vcpkg3msg9format_toIJEJEEEvRNS_15LocalizedStringENS0_8MessageTIJDpT_EEEDpNS0_6TagArgINS_8identityIS5_E4typeET0_EE(ptr noundef nonnull align 8 dereferenceable(32) %15, i64 %.sroa.017.0.copyload) @@ -1240,9 +1236,9 @@ _ZN5vcpkg3msg12format_errorIJEJEEENS_15LocalizedStringENS0_8MessageTIJDpT_EEEDpN call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %15) #20 br label %175 -.thread259: ; preds = %_ZNKSt3mapIN5vcpkg13StringLiteralENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIvESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread, %89, %.thread, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i75, %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit84, %86 - %.sroa.0194.3 = phi i8 [ %.sroa.0194.2.ph, %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit84 ], [ %.sroa.0194.2.ph, %86 ], [ %.sroa.0194.2.ph, %.thread ], [ %.sroa.0194.2.ph, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i75 ], [ 1, %89 ], [ %.sroa.0194.0, %_ZNKSt3mapIN5vcpkg13StringLiteralENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIvESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread ] - %.sroa.23.3 = phi i8 [ 3, %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit84 ], [ %.sroa.23.2.ph, %86 ], [ %.sroa.23.2.ph, %.thread ], [ %.sroa.23.2.ph, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i75 ], [ 3, %89 ], [ %.sroa.23.0, %_ZNKSt3mapIN5vcpkg13StringLiteralENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIvESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread ] +.thread259: ; preds = %_ZNKSt3mapIN5vcpkg13StringLiteralENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIvESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread, %89, %.thread, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i75, %86 + %.sroa.0194.3 = phi i8 [ %.sroa.0194.2.ph, %86 ], [ %.sroa.0194.2.ph, %.thread ], [ %.sroa.0194.2.ph, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i75 ], [ 1, %89 ], [ %.sroa.0194.0, %_ZNKSt3mapIN5vcpkg13StringLiteralENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIvESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread ] + %.sroa.23.3 = phi i8 [ %.sroa.23.2.ph, %86 ], [ %.sroa.23.2.ph, %.thread ], [ %.sroa.23.2.ph, %_ZNKSt8_Rb_treeIN5vcpkg13StringLiteralES1_St9_IdentityIS1_ESt4lessIvESaIS1_EE14_M_lower_boundEPKSt13_Rb_tree_nodeIS1_EPKSt18_Rb_tree_node_baseRKS1_.exit.i.i.i75 ], [ 3, %89 ], [ %.sroa.23.0, %_ZNKSt3mapIN5vcpkg13StringLiteralENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIvESaISt4pairIKS1_S7_EEE4findERSB_.exit.thread ] %94 = load ptr, ptr %28, align 8 %.not10.i.i.i89 = icmp eq ptr %94, null br i1 %.not10.i.i.i89, label %_ZNKSt3mapIN5vcpkg13StringLiteralENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIvESaISt4pairIKS1_S7_EEE4findERSB_.exit107.thread, label %.lr.ph.i.i.i90 @@ -1314,13 +1310,11 @@ _ZNKSt3mapIN5vcpkg13StringLiteralENSt7__cxx1112basic_stringIcSt11char_traitsIcES 124: ; preds = %119 %125 = trunc nuw i8 %.sroa.0194.3 to i1 - br i1 %125, label %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit112, label %_ZN5vcpkg7details15OptionalStorageINS_18DependInfoSortModeELb1EE7emplaceIJS2_EEERS2_DpOT_.exit - -_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit112: ; preds = %124 - %.not284 = icmp eq i8 %.sroa.23.3, 1 - br i1 %.not284, label %_ZN5vcpkg7details15OptionalStorageINS_18DependInfoSortModeELb1EE7emplaceIJS2_EEERS2_DpOT_.exit, label %126 + %.not284 = icmp ne i8 %.sroa.23.3, 1 + %or.cond290.not = and i1 %.not284, %125 + br i1 %or.cond290.not, label %126, label %_ZN5vcpkg7details15OptionalStorageINS_18DependInfoSortModeELb1EE7emplaceIJS2_EEERS2_DpOT_.exit -126: ; preds = %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit112 +126: ; preds = %124 %.sroa.08.0.copyload = load i64, ptr @_ZN5vcpkg25msgCmdDependInfoXtreeTreeE, align 8 invoke void @_ZN5vcpkg3msg12format_errorIJEJEEENS_15LocalizedStringENS0_8MessageTIJDpT_EEEDpNS0_6TagArgINS_8identityIS4_E4typeET0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.vcpkg::LocalizedString") align 8 %22, i64 %.sroa.08.0.copyload) to label %.critedge56 unwind label %127 @@ -1335,10 +1329,10 @@ _ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8Optio invoke void @_ZN5vcpkg3msg12format_errorIJEJEEENS_15LocalizedStringENS0_8MessageTIJDpT_EEEDpNS0_6TagArgINS_8identityIS4_E4typeET0_EE(ptr dead_on_unwind nonnull writable sret(%"struct.vcpkg::LocalizedString") align 8 %23, i64 %.sroa.07.0.copyload) to label %.critedge56 unwind label %127 -_ZN5vcpkg7details15OptionalStorageINS_18DependInfoSortModeELb1EE7emplaceIJS2_EEERS2_DpOT_.exit: ; preds = %124, %114, %109, %100, %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit112 - %.sroa.0173.1 = phi i32 [ 1, %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit112 ], [ 0, %100 ], [ 1, %109 ], [ 2, %114 ], [ 1, %124 ] - %.sroa.0194.5 = phi i8 [ %.sroa.0194.3, %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit112 ], [ %.sroa.0194.3, %100 ], [ %.sroa.0194.3, %109 ], [ %.sroa.0194.3, %114 ], [ 1, %124 ] - %.sroa.23.5 = phi i8 [ 1, %_ZN12_GLOBAL__N_120emplace_inconsistentIN5vcpkg16DependInfoFormatEEEbRNS1_8OptionalIT_EERKS4_.exit112 ], [ %.sroa.23.3, %100 ], [ %.sroa.23.3, %109 ], [ %.sroa.23.3, %114 ], [ 1, %124 ] +_ZN5vcpkg7details15OptionalStorageINS_18DependInfoSortModeELb1EE7emplaceIJS2_EEERS2_DpOT_.exit: ; preds = %124, %114, %109, %100 + %.sroa.0173.1 = phi i32 [ 0, %100 ], [ 1, %109 ], [ 2, %114 ], [ 1, %124 ] + %.sroa.0194.5 = phi i8 [ %.sroa.0194.3, %100 ], [ %.sroa.0194.3, %109 ], [ %.sroa.0194.3, %114 ], [ 1, %124 ] + %.sroa.23.5 = phi i8 [ %.sroa.23.3, %100 ], [ %.sroa.23.3, %109 ], [ %.sroa.23.3, %114 ], [ 1, %124 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #20 br label %_ZNKSt3mapIN5vcpkg13StringLiteralENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4lessIvESaISt4pairIKS1_S7_EEE4findERSB_.exit107.thread diff --git a/bench/velox/optimized/JsonPathTokenizer.cpp.ll b/bench/velox/optimized/JsonPathTokenizer.cpp.ll index 0e789756f60..31d16d5b3a2 100644 --- a/bench/velox/optimized/JsonPathTokenizer.cpp.ll +++ b/bench/velox/optimized/JsonPathTokenizer.cpp.ll @@ -335,8 +335,8 @@ land.rhs: ; preds = %entry, %if.end61 br i1 %tobool, label %if.then, label %lor.rhs lor.rhs: ; preds = %land.rhs - switch i8 %5, label %if.else52 [ - i8 34, label %while.end + switch i8 %5, label %if.else52.invoke [ + i8 34, label %lor.lhs.false i8 92, label %if.end61 ] @@ -350,24 +350,20 @@ invoke.cont22: ; preds = %if.then store i8 0, ptr %agg.result, align 8 br label %cleanup -lpad: ; preds = %if.else52, %if.end +lpad: ; preds = %if.else52.invoke %6 = landingpad { ptr, i32 } cleanup call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %token) #16 resume { ptr, i32 } %6 -if.end: ; preds = %if.then, %if.then +if.end: ; preds = %lor.rhs, %if.then, %if.then %call30 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEmc(ptr noundef nonnull align 8 dereferenceable(32) %token, i64 noundef 1, i8 noundef signext %5) to label %if.end61 unwind label %lpad -if.else52: ; preds = %lor.rhs - %call58 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEmc(ptr noundef nonnull align 8 dereferenceable(32) %token, i64 noundef 1, i8 noundef signext %5) - to label %if.end61 unwind label %lpad - -if.end61: ; preds = %lor.rhs, %if.else52, %if.end - %escaped.1 = phi i8 [ 0, %if.end ], [ %escaped.025, %if.else52 ], [ 1, %lor.rhs ] - %7 = load i64, ptr %this, align 8 - %inc = add i64 %7, 1 +if.else52: ; preds = %if.end, %lor.rhs + %call58 = phi i8 [ 1, %lor.rhs ], [ 0, %if.else52.invoke ] + %8 = load i64, ptr %this, align 8 + %inc = add i64 %8, 1 store i64 %inc, ptr %this, align 8 %8 = load ptr, ptr %e_.i, align 8 %9 = load ptr, ptr %path_, align 8 @@ -377,12 +373,11 @@ if.end61: ; preds = %lor.rhs, %if.else52 %cmp = icmp ult i64 %inc, %sub.ptr.sub.i br i1 %cmp, label %land.rhs, label %while.end, !llvm.loop !12 -while.end: ; preds = %if.end61, %lor.rhs - %escaped.0.lcssa.ph = phi i8 [ %escaped.1, %if.end61 ], [ %escaped.025, %lor.rhs ] - %10 = trunc nuw i8 %escaped.0.lcssa.ph to i1 - br i1 %10, label %invoke.cont71, label %lor.lhs.false +while.end: ; preds = %if.end61 + %escaped.0.lcssa.ph = trunc nuw i8 %escaped.1 to i1 + br i1 %escaped.0.lcssa.ph, label %invoke.cont71, label %lor.lhs.false -lor.lhs.false: ; preds = %entry, %while.end +lor.lhs.false: ; preds = %lor.rhs, %entry, %while.end %call64 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %token) #16 br i1 %call64, label %invoke.cont71, label %lor.lhs.false65 diff --git a/bench/velox/optimized/Tokenizer.cpp.ll b/bench/velox/optimized/Tokenizer.cpp.ll index 8e2455e1330..50d7ef5ac39 100644 --- a/bench/velox/optimized/Tokenizer.cpp.ll +++ b/bench/velox/optimized/Tokenizer.cpp.ll @@ -719,7 +719,7 @@ entry: %conv.i36 = sext i32 %0 to i64 %call.i37 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(72) %this) #21 %cmp.i38 = icmp ugt i64 %call.i37, %conv.i36 - br i1 %cmp.i38, label %land.rhs.lr.ph, label %if.end26 + br i1 %cmp.i38, label %land.rhs.lr.ph, label %while.end.if.end26_crit_edge land.rhs.lr.ph: ; preds = %entry %separators_ = getelementptr inbounds nuw i8, ptr %this, i64 32 @@ -739,7 +739,7 @@ lor.rhs: ; preds = %land.rhs %quote = getelementptr inbounds nuw i8, ptr %3, i64 4 %4 = load i8, ptr %quote, align 1 %cmp.not = icmp eq i8 %2, %4 - br i1 %cmp.not, label %while.end, label %if.else + br i1 %cmp.not, label %if.end26, label %if.else if.then: ; preds = %land.rhs switch i8 %2, label %sw.default [ @@ -747,7 +747,7 @@ if.then: ; preds = %land.rhs i8 92, label %sw.bb ] -sw.bb: ; preds = %if.then, %if.then +sw.bb: ; preds = %if.then, %if.then, %if.else %5 = load i32, ptr %index_.i, align 8 %conv.i10 = sext i32 %5 to i64 %call.i11 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(72) %this, i64 noundef %conv.i10) #21 @@ -755,7 +755,7 @@ sw.bb: ; preds = %if.then, %if.then %call9 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %token, i8 noundef signext %6) to label %if.end22 unwind label %lpad.loopexit -lpad.loopexit: ; preds = %sw.bb, %if.else18 +lpad.loopexit: ; preds = %sw.bb %lpad.loopexit30 = landingpad { ptr, i32 } cleanup br label %lpad.body @@ -782,42 +782,37 @@ if.else: ; preds = %lor.rhs %9 = load ptr, ptr %separators_, align 8 %10 = load i8, ptr %9, align 1 %cmp16 = icmp eq i8 %8, %10 - br i1 %cmp16, label %if.end22, label %if.else18 - -if.else18: ; preds = %if.else - %11 = load i32, ptr %index_.i, align 8 - %conv.i16 = sext i32 %11 to i64 - %call.i17 = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(72) %this, i64 noundef %conv.i16) #21 - %12 = load i8, ptr %call.i17, align 1 - %call21 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEpLEc(ptr noundef nonnull align 8 dereferenceable(32) %token, i8 noundef signext %12) - to label %if.end22 unwind label %lpad.loopexit + br i1 %cmp16, label %if.end22, label %sw.bb -if.end22: ; preds = %if.else, %sw.bb, %if.else18 - %escaped.1 = phi i8 [ %escaped.039, %if.else18 ], [ 0, %sw.bb ], [ 1, %if.else ] - %13 = load i32, ptr %index_.i, align 8 - %inc.i = add nsw i32 %13, 1 +if.else18: ; preds = %sw.bb, %if.else + %11 = phi i8 [ 1, %if.else ], [ 0, %sw.bb ] + %conv.i16 = load i32, ptr %index_.i, align 8 + %call.i17 = add nsw i32 %conv.i16, 1 store i32 %inc.i, ptr %index_.i, align 8 %conv.i = sext i32 %inc.i to i64 %call.i = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(72) %this) #21 %cmp.i = icmp ugt i64 %call.i, %conv.i br i1 %cmp.i, label %land.rhs, label %while.end, !llvm.loop !15 -while.end: ; preds = %lor.rhs, %if.end22 - %escaped.0.lcssa.ph = phi i8 [ %escaped.039, %lor.rhs ], [ %escaped.1, %if.end22 ] - %14 = trunc nuw i8 %escaped.0.lcssa.ph to i1 - br i1 %14, label %if.then24, label %if.end26 +while.end: ; preds = %if.end22 + %escaped.0.lcssa.ph = trunc nuw i8 %escaped.1 to i1 + br i1 %escaped.0.lcssa.ph, label %if.then24, label %while.end.if.end26_crit_edge + +while.end.if.end26_crit_edge: ; preds = %entry, %while.end + %separators_27.phi.trans.insert = getelementptr inbounds nuw i8, ptr %this, i64 32 + %.pre = load ptr, ptr %separators_27.phi.trans.insert, align 8 + %quote29.phi.trans.insert = getelementptr inbounds nuw i8, ptr %.pre, i64 4 + %.pre45 = load i8, ptr %quote29.phi.trans.insert, align 1 + br label %if.end26 if.then24: ; preds = %while.end call void @llvm.trap() unreachable -if.end26: ; preds = %entry, %while.end - %separators_27 = getelementptr inbounds nuw i8, ptr %this, i64 32 - %15 = load ptr, ptr %separators_27, align 8 - %quote29 = getelementptr inbounds nuw i8, ptr %15, i64 4 - %16 = load i8, ptr %quote29, align 1 - %17 = load i32, ptr %index_.i, align 8 - %conv.i.i.i = sext i32 %17 to i64 +if.end26: ; preds = %lor.rhs, %while.end.if.end26_crit_edge + %separators_27 = phi i8 [ %.pre45, %while.end.if.end26_crit_edge ], [ %2, %lor.rhs ] + %15 = load i32, ptr %index_.i, align 8 + %quote29 = sext i32 %15 to i64 %call.i.i.i = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(72) %this) #21 %cmp.i.i.i = icmp ugt i64 %call.i.i.i, %conv.i.i.i br i1 %cmp.i.i.i, label %lor.lhs.false.i.i, label %if.then.i @@ -827,7 +822,7 @@ lor.lhs.false.i.i: ; preds = %if.end26 %conv.i2.i.i = sext i32 %18 to i64 %call.i3.i.i = call noundef nonnull align 1 dereferenceable(1) ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEixEm(ptr noundef nonnull align 8 dereferenceable(72) %this, i64 noundef %conv.i2.i.i) #21 %19 = load i8, ptr %call.i3.i.i, align 1 - %cmp.not.i.i = icmp eq i8 %19, %16 + %cmp.not.i.i = icmp eq i8 %19, %14 br i1 %cmp.not.i.i, label %invoke.cont30, label %if.then.i if.then.i: ; preds = %lor.lhs.false.i.i, %if.end26 diff --git a/bench/wireshark/optimized/qcustomplot.cpp.ll b/bench/wireshark/optimized/qcustomplot.cpp.ll index 35d568bdc6c..53a4507a939 100644 --- a/bench/wireshark/optimized/qcustomplot.cpp.ll +++ b/bench/wireshark/optimized/qcustomplot.cpp.ll @@ -101216,7 +101216,7 @@ _ZNK16QCPDataContainerI12QCPGraphDataE7findEndEdb.exit: ; preds = %_ZSt7advanceI br label %97 97: ; preds = %96, %92, %90 - %.2 = phi i8 [ %.0163, %92 ], [ 1, %96 ], [ %.0163, %90 ] + %.2 = phi i8 [ %.0163, %92 ], [ 1, %96 ], [ 1, %90 ] %98 = load double, ptr %77, align 8 %99 = fcmp ogt double %.fca.1.load.i, %98 br i1 %99, label %102, label %100 @@ -101237,7 +101237,7 @@ _ZNK16QCPDataContainerI12QCPGraphDataE7findEndEdb.exit: ; preds = %_ZSt7advanceI br label %107 107: ; preds = %100, %102, %106, %79 - %.157 = phi i8 [ %.056162, %79 ], [ %.056162, %102 ], [ 1, %106 ], [ %.056162, %100 ] + %.157 = phi i8 [ %.056162, %79 ], [ %.056162, %102 ], [ 1, %106 ], [ 1, %100 ] %.1 = phi i8 [ %.0163, %79 ], [ %.2, %102 ], [ %.2, %106 ], [ %.2, %100 ] %108 = getelementptr i8, ptr %.sroa.0107.0161, i64 16 %.not142 = icmp eq ptr %108, %.sroa.027.0 @@ -108831,7 +108831,7 @@ _ZN10QCPPainter6setPenERK4QPen.exit: ; preds = %.noexc, %27 70: ; preds = %64 %71 = load double, ptr %66, align 8 %72 = call noundef zeroext i1 @_Z6qIsNaNd(double noundef %71) #53 - %brmerge = or i1 %72, %.06177 + %brmerge = or i1 %.06177, %72 br i1 %brmerge, label %99, label %73 73: ; preds = %70 @@ -113031,7 +113031,6 @@ define linkonce_odr { double, double } @_ZN16QCPDataContainerI12QCPCurveDataE8ke 36: ; preds = %35, %33 %37 = phi double [ %31, %35 ], [ %25, %33 ] - %.3 = phi i8 [ 1, %35 ], [ %.1110, %33 ] %38 = fcmp ogt double %31, %24 br i1 %38, label %41, label %39 @@ -113046,8 +113045,8 @@ define linkonce_odr { double, double } @_ZN16QCPDataContainerI12QCPCurveDataE8ke 42: ; preds = %39, %41, %23 %43 = phi double [ %24, %23 ], [ %31, %41 ], [ %24, %39 ] %44 = phi double [ %25, %23 ], [ %37, %41 ], [ %37, %39 ] - %.148 = phi i8 [ %.047109, %23 ], [ 1, %41 ], [ %.047109, %39 ] - %.2 = phi i8 [ %.1110, %23 ], [ %.3, %41 ], [ %.3, %39 ] + %.148 = phi i8 [ %.047109, %23 ], [ 1, %41 ], [ 1, %39 ] + %.2 = phi i8 [ %.1110, %23 ], [ 1, %41 ], [ 1, %39 ] %45 = getelementptr i8, ptr %.sroa.0.2108, i64 24 %.not86 = icmp eq ptr %45, %19 br i1 %.not86, label %.loopexit, label %23, !llvm.loop !964 @@ -113403,7 +113402,7 @@ define linkonce_odr { double, double } @_ZN16QCPDataContainerI12QCPCurveDataE10v br label %91 91: ; preds = %90, %86, %84 - %.2 = phi i8 [ %.0163, %86 ], [ 1, %90 ], [ %.0163, %84 ] + %.2 = phi i8 [ %.0163, %86 ], [ 1, %90 ], [ 1, %84 ] %92 = load double, ptr %70, align 8 %93 = fcmp ogt double %.fca.1.load.i, %92 br i1 %93, label %96, label %94 @@ -113424,7 +113423,7 @@ define linkonce_odr { double, double } @_ZN16QCPDataContainerI12QCPCurveDataE10v br label %101 101: ; preds = %94, %96, %100, %72 - %.157 = phi i8 [ %.056162, %72 ], [ %.056162, %96 ], [ 1, %100 ], [ %.056162, %94 ] + %.157 = phi i8 [ %.056162, %72 ], [ %.056162, %96 ], [ 1, %100 ], [ 1, %94 ] %.1 = phi i8 [ %.0163, %72 ], [ %.2, %96 ], [ %.2, %100 ], [ %.2, %94 ] %102 = getelementptr i8, ptr %.sroa.0108.0161, i64 24 %.not141 = icmp eq ptr %102, %33 @@ -116184,7 +116183,7 @@ _ZN10QCPPainter6setPenERK4QPen.exit: ; preds = %.noexc, %27 70: ; preds = %64 %71 = load double, ptr %66, align 8 %72 = call noundef zeroext i1 @_Z6qIsNaNd(double noundef %71) #53 - %brmerge = or i1 %72, %.06177 + %brmerge = or i1 %.06177, %72 br i1 %brmerge, label %99, label %73 73: ; preds = %70 @@ -130188,7 +130187,7 @@ _ZNK21QCPStatisticalBoxData10valueRangeEv.exit: ; preds = %_ZN8QCPRange6expand br label %84 84: ; preds = %83, %79, %77 - %.2 = phi i8 [ %.0179, %79 ], [ 1, %83 ], [ %.0179, %77 ] + %.2 = phi i8 [ %.0179, %79 ], [ 1, %83 ], [ 1, %77 ] %85 = load double, ptr %42, align 8 %86 = fcmp ogt double %.fca.1.load.i, %85 br i1 %86, label %89, label %87 @@ -130209,7 +130208,7 @@ _ZNK21QCPStatisticalBoxData10valueRangeEv.exit: ; preds = %_ZN8QCPRange6expand br label %94 94: ; preds = %87, %89, %93, %44 - %.157 = phi i8 [ %.056178, %44 ], [ %.056178, %89 ], [ 1, %93 ], [ %.056178, %87 ] + %.157 = phi i8 [ %.056178, %44 ], [ %.056178, %89 ], [ 1, %93 ], [ 1, %87 ] %.1 = phi i8 [ %.0179, %44 ], [ %.2, %89 ], [ %.2, %93 ], [ %.2, %87 ] %95 = getelementptr i8, ptr %.sroa.0118.0177, i64 72 %.not153 = icmp eq ptr %95, %.sroa.027.0 @@ -139282,7 +139281,7 @@ _ZNK16QCPDataContainerI16QCPFinancialDataE7findEndEdb.exit: ; preds = %_ZSt7adva br label %100 100: ; preds = %99, %95, %93 - %.2 = phi i8 [ %.0164, %95 ], [ 1, %99 ], [ %.0164, %93 ] + %.2 = phi i8 [ %.0164, %95 ], [ 1, %99 ], [ 1, %93 ] %101 = load double, ptr %78, align 8 %102 = fcmp ogt double %.fca.1.load.i, %101 br i1 %102, label %105, label %103 @@ -139303,7 +139302,7 @@ _ZNK16QCPDataContainerI16QCPFinancialDataE7findEndEdb.exit: ; preds = %_ZSt7adva br label %110 110: ; preds = %103, %105, %109, %80 - %.157 = phi i8 [ %.056163, %80 ], [ %.056163, %105 ], [ 1, %109 ], [ %.056163, %103 ] + %.157 = phi i8 [ %.056163, %80 ], [ %.056163, %105 ], [ 1, %109 ], [ 1, %103 ] %.1 = phi i8 [ %.0164, %80 ], [ %.2, %105 ], [ %.2, %109 ], [ %.2, %103 ] %111 = getelementptr i8, ptr %.sroa.0108.0162, i64 40 %.not143 = icmp eq ptr %111, %.sroa.027.0 @@ -148265,7 +148264,6 @@ _ZNK8QPointerI20QCPAbstractPlottableEptEv.exit: ; preds = %26 br label %61 61: ; preds = %60, %58 - %.2 = phi i8 [ 1, %60 ], [ %.078, %58 ] %62 = load double, ptr %25, align 8 %63 = fcmp ogt double %49, %62 br i1 %63, label %66, label %64 @@ -148309,7 +148307,7 @@ _ZNK8QPointerI20QCPAbstractPlottableEptEv.exit61: ; preds = %26 br label %82 82: ; preds = %67, %79, %81 - %.255 = phi i8 [ 1, %81 ], [ %.05377, %79 ], [ %.05377, %67 ] + %.255 = phi i8 [ 1, %81 ], [ 1, %79 ], [ %.05377, %67 ] %83 = load double, ptr %.sroa.0.076, align 8 %84 = call noundef zeroext i1 @_Z6qIsNaNd(double noundef %83) #53 %85 = select i1 %84, double 0.000000e+00, double %83 @@ -148336,8 +148334,8 @@ _ZNK8QPointerI20QCPAbstractPlottableEptEv.exit61: ; preds = %26 br label %96 96: ; preds = %82, %51, %64, %66, %93, %95, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit61, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit - %.154 = phi i8 [ %.05377, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit ], [ 1, %66 ], [ %.05377, %64 ], [ %.05377, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit61 ], [ %.255, %95 ], [ %.255, %93 ], [ %.05377, %51 ], [ %.255, %82 ] - %.1 = phi i8 [ %.078, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit ], [ %.2, %66 ], [ %.2, %64 ], [ %.078, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit61 ], [ 1, %95 ], [ %.078, %93 ], [ %.078, %51 ], [ %.078, %82 ] + %.154 = phi i8 [ %.05377, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit ], [ 1, %66 ], [ 1, %64 ], [ %.05377, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit61 ], [ %.255, %95 ], [ %.255, %93 ], [ %.05377, %51 ], [ %.255, %82 ] + %.1 = phi i8 [ %.078, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit ], [ 1, %66 ], [ 1, %64 ], [ %.078, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit61 ], [ 1, %95 ], [ 1, %93 ], [ %.078, %51 ], [ %.078, %82 ] %97 = getelementptr i8, ptr %.sroa.0.076, i64 16 %98 = load ptr, ptr %15, align 8 %99 = getelementptr inbounds nuw i8, ptr %98, i64 8 @@ -148372,13 +148370,9 @@ _ZNK8QPointerI20QCPAbstractPlottableEptEv.exit61: ; preds = %26 br label %.thread .thread: ; preds = %14, %106, %110, %111, %107 - %.356 = phi i8 [ 1, %111 ], [ %.154, %110 ], [ %.154, %107 ], [ %.154, %106 ], [ 0, %14 ] - %.3 = phi i8 [ %.1, %111 ], [ %.1, %110 ], [ 1, %107 ], [ %.1, %106 ], [ 0, %14 ] - %114 = trunc nuw i8 %.3 to i1 - %115 = and i8 %.356, 1 - %116 = select i1 %114, i8 %115, i8 0 - store i8 %116, ptr %1, align 1 - br label %117 + %.356 = phi i8 [ 1, %111 ], [ 0, %110 ], [ 1, %107 ], [ 1, %106 ], [ 0, %14 ] + store i8 %.356, ptr %1, align 1 + br label %114 117: ; preds = %.thread, %_ZNK8QPointerI20QCPAbstractPlottableEcvPS0_Ev.exit.thread %.fca.0.load = load double, ptr %4, align 8 @@ -148581,7 +148575,7 @@ _ZNK8QPointerI20QCPAbstractPlottableEptEv.exit82: ; preds = %97 br label %137 137: ; preds = %122, %134, %136 - %.268 = phi i8 [ 1, %136 ], [ %.066107, %134 ], [ %.066107, %122 ] + %.268 = phi i8 [ 1, %136 ], [ 1, %134 ], [ %.066107, %122 ] %138 = load double, ptr %.sroa.0.0106, align 8 %139 = call noundef zeroext i1 @_Z6qIsNaNd(double noundef %138) #53 %140 = select i1 %139, double 0.000000e+00, double %138 @@ -148633,7 +148627,6 @@ _ZNK8QPointerI20QCPAbstractPlottableEptEv.exit83: ; preds = %97 br label %161 161: ; preds = %160, %158 - %.2 = phi i8 [ 1, %160 ], [ %.0108, %158 ] %162 = load double, ptr %70, align 8 %163 = fcmp ogt double %120, %162 br i1 %163, label %166, label %164 @@ -148647,8 +148640,8 @@ _ZNK8QPointerI20QCPAbstractPlottableEptEv.exit83: ; preds = %97 br label %167 167: ; preds = %151, %137, %148, %150, %164, %166, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit83, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit82, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit81 - %.167 = phi i8 [ %.066107, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit81 ], [ %.066107, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit82 ], [ %.268, %150 ], [ %.268, %148 ], [ %.066107, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit83 ], [ 1, %166 ], [ %.066107, %164 ], [ %.268, %137 ], [ %.066107, %151 ] - %.1 = phi i8 [ %.0108, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit81 ], [ %.0108, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit82 ], [ 1, %150 ], [ %.0108, %148 ], [ %.0108, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit83 ], [ %.2, %166 ], [ %.2, %164 ], [ %.0108, %137 ], [ %.0108, %151 ] + %.167 = phi i8 [ %.066107, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit81 ], [ %.066107, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit82 ], [ %.268, %150 ], [ %.268, %148 ], [ %.066107, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit83 ], [ 1, %166 ], [ 1, %164 ], [ %.268, %137 ], [ %.066107, %151 ] + %.1 = phi i8 [ %.0108, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit81 ], [ %.0108, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit82 ], [ 1, %150 ], [ 1, %148 ], [ %.0108, %_ZNK8QPointerI20QCPAbstractPlottableEptEv.exit83 ], [ 1, %166 ], [ 1, %164 ], [ %.0108, %137 ], [ %.0108, %151 ] %168 = getelementptr i8, ptr %.sroa.0.0106, i64 16 %.not104 = icmp eq ptr %168, %.sroa.036.0 br i1 %.not104, label %._crit_edge, label %71, !llvm.loop !1240 @@ -148677,12 +148670,8 @@ _ZNK8QPointerI20QCPAbstractPlottableEptEv.exit83: ; preds = %97 br label %.thread .thread: ; preds = %65, %171, %175, %176, %172 - %.369 = phi i8 [ 1, %176 ], [ %.167, %175 ], [ %.167, %172 ], [ %.167, %171 ], [ 0, %65 ] - %.3 = phi i8 [ %.1, %176 ], [ %.1, %175 ], [ 1, %172 ], [ %.1, %171 ], [ 0, %65 ] - %179 = trunc nuw i8 %.3 to i1 - %180 = and i8 %.369, 1 - %181 = select i1 %179, i8 %180, i8 0 - store i8 %181, ptr %1, align 1 + %.369 = phi i8 [ 1, %176 ], [ 0, %175 ], [ 1, %172 ], [ 1, %171 ], [ 0, %65 ] + store i8 %.369, ptr %1, align 1 br label %182 182: ; preds = %.thread, %_ZNK8QPointerI20QCPAbstractPlottableEcvPS0_Ev.exit.thread @@ -177375,7 +177364,7 @@ define void @_ZNK13QCPPolarGraph12drawPolylineEP10QCPPainterRK5QListI7QPointFE(p 47: ; preds = %41 %48 = load double, ptr %43, align 8 %49 = call noundef zeroext i1 @_Z6qIsNaNd(double noundef %48) #53 - %brmerge = or i1 %49, %.05365 + %brmerge = or i1 %.05365, %49 br i1 %brmerge, label %76, label %50 50: ; preds = %47 diff --git a/bench/wireshark/optimized/sequence_diagram.cpp.ll b/bench/wireshark/optimized/sequence_diagram.cpp.ll index 7583bc17a23..fe75a4f98e8 100644 --- a/bench/wireshark/optimized/sequence_diagram.cpp.ll +++ b/bench/wireshark/optimized/sequence_diagram.cpp.ll @@ -3744,12 +3744,11 @@ _ZNK9QMultiMapId11WSCPSeqDataE10constBeginEv.exit.._crit_edge_crit_edge: ; preds br label %13 13: ; preds = %.lr.ph, %26 - %.019 = phi i8 [ 0, %.lr.ph ], [ %.1, %26 ] - %.sroa.012.018 = phi ptr [ %.sroa.0.0.i.i, %.lr.ph ], [ %27, %26 ] + %.019 = phi i1 [ false, %.lr.ph ], [ true, %26 ] + %.sroa.012.018 = phi ptr [ %.sroa.0.0.i.i, %.lr.ph ], [ %26, %26 ] %14 = getelementptr inbounds nuw i8, ptr %.sroa.012.018, i64 32 %15 = load double, ptr %14, align 8 - %16 = trunc nuw i8 %.019 to i1 - br i1 %16, label %18, label %17 + br i1 %.019, label %17, label %16 17: ; preds = %13 store double %15, ptr %12, align 8 @@ -3776,18 +3775,17 @@ _ZNK9QMultiMapId11WSCPSeqDataE10constBeginEv.exit.._crit_edge_crit_edge: ; preds 26: ; preds = %21, %25, %22, %17 %.fca.0.load21 = phi double [ %15, %21 ], [ %19, %25 ], [ %19, %22 ], [ %15, %17 ] - %.1 = phi i8 [ %.019, %21 ], [ %.019, %25 ], [ %.019, %22 ], [ 1, %17 ] - %27 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %.sroa.012.018) #26 - %28 = load ptr, ptr %6, align 8 - %.not.i.i10 = icmp eq ptr %28, null - %29 = getelementptr inbounds nuw i8, ptr %28, i64 16 - %.sroa.0.0.i.i11 = select i1 %.not.i.i10, ptr null, ptr %29 - %.not = icmp eq ptr %27, %.sroa.0.0.i.i11 + %.1 = call noundef ptr @_ZSt18_Rb_tree_incrementPKSt18_Rb_tree_node_base(ptr noundef nonnull %.sroa.012.018) #26 + %27 = load ptr, ptr %6, align 8 + %28 = icmp eq ptr %27, null + %.not.i.i10 = getelementptr inbounds nuw i8, ptr %27, i64 16 + %29 = select i1 %28, ptr null, ptr %28 + %.sroa.0.0.i.i11 = icmp eq ptr %26, %29 br i1 %.not, label %._crit_edge, label %13, !llvm.loop !57 ._crit_edge: ; preds = %26, %_ZNK9QMultiMapId11WSCPSeqDataE10constBeginEv.exit.._crit_edge_crit_edge %.fca.0.load = phi double [ %.fca.0.load.pre, %_ZNK9QMultiMapId11WSCPSeqDataE10constBeginEv.exit.._crit_edge_crit_edge ], [ %.fca.0.load21, %26 ] - %.0.lcssa = phi i8 [ 0, %_ZNK9QMultiMapId11WSCPSeqDataE10constBeginEv.exit.._crit_edge_crit_edge ], [ %.1, %26 ] + %.0.lcssa = phi i8 [ 0, %_ZNK9QMultiMapId11WSCPSeqDataE10constBeginEv.exit.._crit_edge_crit_edge ], [ 1, %26 ] store i8 %.0.lcssa, ptr %1, align 1 %.fca.0.insert = insertvalue { double, double } poison, double %.fca.0.load, 0 %.fca.1.gep = getelementptr inbounds nuw i8, ptr %4, i64 8 diff --git a/bench/yoga/optimized/LayoutResults.cpp.ll b/bench/yoga/optimized/LayoutResults.cpp.ll index 2bbd3ec5663..9fb2bef424d 100644 --- a/bench/yoga/optimized/LayoutResults.cpp.ll +++ b/bench/yoga/optimized/LayoutResults.cpp.ll @@ -328,8 +328,13 @@ _ZNK8facebook4yoga17CachedMeasurementeqES1_.exit: ; preds = %land.rhs40, %if.the %36 = select i1 %cmp36, i1 %isEqual.3.v.i, i1 false br i1 %36, label %land.rhs40, label %for.end, !llvm.loop !7 -for.end: ; preds = %if.end.i.i, %if.end.i.i14, %if.end.i.i29, %if.end.i.i47, %if.end.i.i65, %_ZNK8facebook4yoga17CachedMeasurementeqES1_.exit, %lor.rhs.i, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit, %_ZN8facebook4yoga13inexactEqualsILm2EfEEbRKSt5arrayIT0_XT_EES6_.exit, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit41, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit59, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit77, %land.lhs.true14, %land.lhs.true17, %land.lhs.true22, %land.lhs.true25, %land.lhs.true28 - %tobool.lcssa = phi i1 [ false, %land.lhs.true28 ], [ false, %land.lhs.true25 ], [ false, %land.lhs.true22 ], [ false, %land.lhs.true17 ], [ false, %land.lhs.true14 ], [ false, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit77 ], [ false, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit59 ], [ false, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit41 ], [ false, %_ZN8facebook4yoga13inexactEqualsILm2EfEEbRKSt5arrayIT0_XT_EES6_.exit ], [ false, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit ], [ false, %lor.rhs.i ], [ %isEqual.3.v.i, %_ZNK8facebook4yoga17CachedMeasurementeqES1_.exit ], [ false, %if.end.i.i65 ], [ false, %if.end.i.i47 ], [ false, %if.end.i.i29 ], [ false, %if.end.i.i14 ], [ false, %if.end.i.i ] +for.end: ; preds = %_ZNK8facebook4yoga17CachedMeasurementeqES1_.exit + %tobool.lcssa = zext i1 %isEqual.3.v.i to i8 + br label %for.end + +for.end: ; preds = %if.end.i.i, %if.end.i.i14, %if.end.i.i29, %if.end.i.i47, %if.end.i.i65, %lor.rhs.i, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit, %_ZN8facebook4yoga13inexactEqualsILm2EfEEbRKSt5arrayIT0_XT_EES6_.exit, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit41, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit59, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit77, %land.lhs.true14, %land.lhs.true17, %land.lhs.true22, %land.lhs.true25, %land.lhs.true28, %for.end.loopexit + %isEqual.0.lcssa = phi i8 [ %frombool49, %for.end.loopexit ], [ 0, %land.lhs.true28 ], [ 0, %land.lhs.true25 ], [ 0, %land.lhs.true22 ], [ 0, %land.lhs.true17 ], [ 0, %land.lhs.true14 ], [ 0, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit77 ], [ 0, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit59 ], [ 0, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit41 ], [ 0, %_ZN8facebook4yoga13inexactEqualsILm2EfEEbRKSt5arrayIT0_XT_EES6_.exit ], [ 0, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit ], [ 0, %lor.rhs.i ], [ 0, %if.end.i.i65 ], [ 0, %if.end.i.i47 ], [ 0, %if.end.i.i29 ], [ 0, %if.end.i.i14 ], [ 0, %if.end.i.i ] + %tobool.lcssa = phi i1 [ %isEqual.3.v.i, %for.end.loopexit ], [ false, %land.lhs.true28 ], [ false, %land.lhs.true25 ], [ false, %land.lhs.true22 ], [ false, %land.lhs.true17 ], [ false, %land.lhs.true14 ], [ false, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit77 ], [ false, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit59 ], [ false, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit41 ], [ false, %_ZN8facebook4yoga13inexactEqualsILm2EfEEbRKSt5arrayIT0_XT_EES6_.exit ], [ false, %_ZN8facebook4yoga13inexactEqualsILm4EfEEbRKSt5arrayIT0_XT_EES6_.exit ], [ false, %lor.rhs.i ], [ false, %if.end.i.i65 ], [ false, %if.end.i.i47 ], [ false, %if.end.i.i29 ], [ false, %if.end.i.i14 ], [ false, %if.end.i.i ] %measuredDimensions_ = getelementptr inbounds nuw i8, ptr %this, i64 248 %37 = load float, ptr %measuredDimensions_, align 4 %cmp.i92 = fcmp uno float %37, 0.000000e+00 @@ -340,8 +345,7 @@ lor.lhs.false: ; preds = %for.end %38 = load float, ptr %measuredDimensions_52, align 8 %cmp.i94 = fcmp ord float %38, 0.000000e+00 %brmerge.not = select i1 %cmp.i94, i1 %tobool.lcssa, i1 false - %not.cmp.i94 = xor i1 %cmp.i94, true - %narrow = select i1 %not.cmp.i94, i1 %tobool.lcssa, i1 false + %not.cmp.i94 = select i1 %cmp.i94, i8 0, i8 %isEqual.0.lcssa br i1 %brmerge.not, label %land.rhs56, label %if.end if.then: ; preds = %for.end @@ -355,10 +359,11 @@ if.then.land.rhs56_crit_edge: ; preds = %if.then land.rhs56: ; preds = %if.then.land.rhs56_crit_edge, %lor.lhs.false %39 = phi float [ %.pre, %if.then.land.rhs56_crit_edge ], [ %38, %lor.lhs.false ] %cmp61 = fcmp oeq float %37, %39 + %40 = zext i1 %cmp61 to i8 br label %if.end if.end: ; preds = %lor.lhs.false, %if.then, %land.rhs56 - %isEqual.1.shrunk = phi i1 [ %narrow, %lor.lhs.false ], [ false, %if.then ], [ %cmp61, %land.rhs56 ] + %isEqual.1.shrunk = phi i8 [ %not.cmp.i94, %lor.lhs.false ], [ 0, %if.then ], [ %40, %land.rhs56 ] %arrayidx.i.i97 = getelementptr inbounds nuw i8, ptr %this, i64 252 %40 = load float, ptr %arrayidx.i.i97, align 4 %cmp.i98 = fcmp uno float %40, 0.000000e+00 @@ -369,13 +374,18 @@ if.end: ; preds = %lor.lhs.false, %if. br i1 %or.cond, label %if.end81, label %if.then71 if.then71: ; preds = %if.end - %cmp78 = fcmp oeq float %40, %41 - %spec.select = select i1 %isEqual.1.shrunk, i1 %cmp78, i1 false + %cmp78 = trunc nuw i8 %isEqual.1 to i1 + br i1 %cmp78, label %land.rhs73, label %if.end81 + +land.rhs73: ; preds = %if.then71 + %cmp78 = fcmp oeq float %41, %42 + %43 = zext i1 %cmp78 to i8 br label %if.end81 -if.end81: ; preds = %if.then71, %if.end - %isEqual.2.shrunk = phi i1 [ %isEqual.1.shrunk, %if.end ], [ %spec.select, %if.then71 ] - ret i1 %isEqual.2.shrunk +if.end81: ; preds = %if.end, %if.then71, %land.rhs73 + %isEqual.2.shrunk = phi i8 [ 0, %if.then71 ], [ %43, %land.rhs73 ], [ %isEqual.1.shrunk, %if.end ] + %tobool82 = trunc nuw i8 %isEqual.2.shrunk to i1 + ret i1 %tobool82 } ; Function Attrs: mustprogress uwtable diff --git a/bench/yosys/optimized/glift.ll b/bench/yosys/optimized/glift.ll index 521aa3ae8ea..51ff28c8263 100644 --- a/bench/yosys/optimized/glift.ll +++ b/bench/yosys/optimized/glift.ll @@ -809,10 +809,12 @@ define internal void @_ZN12_GLOBAL__N_19GliftPass7executeESt6vectorINSt7__cxx111 unreachable 79: ; preds = %77, %75, %._crit_edge - %.mask = and i8 %.0.lcssa.ph, 1 - %.mask70 = and i8 %.050.lcssa.ph, 1 - %80 = trunc nuw i8 %.052.lcssa.ph to i1 - %.mask71 = and i8 %.052.lcssa.ph, 1 + %.mask = phi i8 [ 0, %77 ], [ 0, %75 ], [ 1, %._crit_edge ] + %.mask70 = phi i8 [ 0, %77 ], [ 1, %75 ], [ %.050.lcssa.ph, %._crit_edge ] + %80 = phi i8 [ 1, %77 ], [ %.052.lcssa.ph, %75 ], [ %.052.lcssa.ph, %._crit_edge ] + %.mask71 = and i8 %.050.lcssa378, 1 + %80 = trunc nuw i8 %.052.lcssa376 to i1 + %.mask71 = and i8 %.052.lcssa376, 1 %narrow = add nuw nsw i8 %.mask70, %.mask71 %narrow72 = add nuw nsw i8 %narrow, %.mask %.not = icmp eq i8 %narrow72, 1 diff --git a/bench/zed-rs/optimized/79csf9u0488pypzcoup4hx6r6.ll b/bench/zed-rs/optimized/79csf9u0488pypzcoup4hx6r6.ll index 20c2e317e02..89f0686c421 100644 --- a/bench/zed-rs/optimized/79csf9u0488pypzcoup4hx6r6.ll +++ b/bench/zed-rs/optimized/79csf9u0488pypzcoup4hx6r6.ll @@ -1502,6 +1502,8 @@ _ZN10async_task5utils14abort_on_panic17h4a0219b774d3a9d2E.exit: ; preds = %196 %.sroa.016.0.v = select i1 %212, i64 -11, i64 -4 %.sroa.016.0 = and i64 %.sroa.016.0.v, %.sroa.017.1 %brmerge = select i1 %212, i1 true, i1 %.sroa.013.0 + %not. = xor i1 %212, true + %.sroa.013.0.mux = select i1 %not., i1 true, i1 %.sroa.013.0 br i1 %brmerge, label %221, label %213 213: ; preds = %.preheader @@ -1531,7 +1533,7 @@ _ZN10async_task5utils14abort_on_panic17h4a0219b774d3a9d2E.exit: ; preds = %196 br label %221 221: ; preds = %.preheader, %220 - %.sroa.013.1 = phi i1 [ %.sroa.013.0, %.preheader ], [ true, %220 ] + %.sroa.013.1 = phi i1 [ %.sroa.013.0.mux, %.preheader ], [ true, %220 ] %222 = cmpxchg weak ptr %17, i64 %.sroa.017.1, i64 %.sroa.016.0 acq_rel acquire, align 8 %223 = extractvalue { i64, i1 } %222, 1 %224 = extractvalue { i64, i1 } %222, 0 @@ -2424,6 +2426,8 @@ _ZN10async_task5utils14abort_on_panic17h7d284d1daf7efd38E.exit: ; preds = %193 %.sroa.019.0.v = select i1 %207, i64 -11, i64 -4 %.sroa.019.0 = and i64 %.sroa.019.0.v, %.sroa.020.1 %brmerge = select i1 %207, i1 true, i1 %.sroa.015.0 + %not. = xor i1 %207, true + %.sroa.015.0.mux = select i1 %not., i1 true, i1 %.sroa.015.0 br i1 %brmerge, label %214, label %208 208: ; preds = %205 @@ -2448,7 +2452,7 @@ _ZN10async_task5utils14abort_on_panic17h7d284d1daf7efd38E.exit: ; preds = %193 br label %214 214: ; preds = %205, %213 - %.sroa.015.1 = phi i1 [ %.sroa.015.0, %205 ], [ true, %213 ] + %.sroa.015.1 = phi i1 [ %.sroa.015.0.mux, %205 ], [ true, %213 ] %215 = cmpxchg weak ptr %15, i64 %.sroa.020.1, i64 %.sroa.019.0 acq_rel acquire, align 8 %216 = extractvalue { i64, i1 } %215, 1 %217 = extractvalue { i64, i1 } %215, 0 @@ -3361,6 +3365,8 @@ _ZN10async_task5utils14abort_on_panic17h6a8c7c8fbe075f4cE.exit: ; preds = %194 %.sroa.016.0.v = select i1 %210, i64 -11, i64 -4 %.sroa.016.0 = and i64 %.sroa.016.0.v, %.sroa.017.1 %brmerge = select i1 %210, i1 true, i1 %.sroa.013.0 + %not. = xor i1 %210, true + %.sroa.013.0.mux = select i1 %not., i1 true, i1 %.sroa.013.0 br i1 %brmerge, label %218, label %211 211: ; preds = %.preheader @@ -3393,7 +3399,7 @@ _ZN10async_task5utils14abort_on_panic17h6a8c7c8fbe075f4cE.exit: ; preds = %194 br label %218 218: ; preds = %.preheader, %217 - %.sroa.013.1 = phi i1 [ %.sroa.013.0, %.preheader ], [ true, %217 ] + %.sroa.013.1 = phi i1 [ %.sroa.013.0.mux, %.preheader ], [ true, %217 ] %219 = cmpxchg weak ptr %17, i64 %.sroa.017.1, i64 %.sroa.016.0 acq_rel acquire, align 8 %220 = extractvalue { i64, i1 } %219, 1 %221 = extractvalue { i64, i1 } %219, 0 @@ -4295,6 +4301,8 @@ _ZN10async_task5utils14abort_on_panic17ha68758a6f765ff2eE.exit: ; preds = %191 %.sroa.019.0.v = select i1 %205, i64 -11, i64 -4 %.sroa.019.0 = and i64 %.sroa.019.0.v, %.sroa.020.1 %brmerge = select i1 %205, i1 true, i1 %.sroa.015.0 + %not. = xor i1 %205, true + %.sroa.015.0.mux = select i1 %not., i1 true, i1 %.sroa.015.0 br i1 %brmerge, label %211, label %206 206: ; preds = %203 @@ -4322,7 +4330,7 @@ _ZN10async_task5utils14abort_on_panic17ha68758a6f765ff2eE.exit: ; preds = %191 br label %211 211: ; preds = %203, %210 - %.sroa.015.1 = phi i1 [ %.sroa.015.0, %203 ], [ true, %210 ] + %.sroa.015.1 = phi i1 [ %.sroa.015.0.mux, %203 ], [ true, %210 ] %212 = cmpxchg weak ptr %15, i64 %.sroa.020.1, i64 %.sroa.019.0 acq_rel acquire, align 8 %213 = extractvalue { i64, i1 } %212, 1 %214 = extractvalue { i64, i1 } %212, 0 diff --git a/bench/zed-rs/optimized/eyvf9tmamhxt9pgqpi4erssy8.ll b/bench/zed-rs/optimized/eyvf9tmamhxt9pgqpi4erssy8.ll index 2eb348c0dcd..593d7a1f01d 100644 --- a/bench/zed-rs/optimized/eyvf9tmamhxt9pgqpi4erssy8.ll +++ b/bench/zed-rs/optimized/eyvf9tmamhxt9pgqpi4erssy8.ll @@ -1827,6 +1827,8 @@ _ZN10async_task5utils14abort_on_panic17he2a83aa053d4ba9dE.exit: ; preds = %149 %.sroa.020.0.v = select i1 %164, i64 -11, i64 -4 %.sroa.020.0 = and i64 %.sroa.020.0.v, %.sroa.021.1 %brmerge = select i1 %164, i1 true, i1 %.sroa.017.0 + %not. = xor i1 %164, true + %.sroa.017.0.mux = select i1 %not., i1 true, i1 %.sroa.017.0 br i1 %brmerge, label %176, label %165 165: ; preds = %162 @@ -1861,7 +1863,7 @@ _ZN10async_task5utils14abort_on_panic17he2a83aa053d4ba9dE.exit: ; preds = %149 br label %176 176: ; preds = %162, %175 - %.sroa.017.1 = phi i1 [ %.sroa.017.0, %162 ], [ true, %175 ] + %.sroa.017.1 = phi i1 [ %.sroa.017.0.mux, %162 ], [ true, %175 ] %177 = cmpxchg weak ptr %13, i64 %.sroa.021.1, i64 %.sroa.020.0 acq_rel acquire, align 8 %178 = extractvalue { i64, i1 } %177, 1 %179 = extractvalue { i64, i1 } %177, 0 @@ -2514,6 +2516,8 @@ _ZN10async_task5utils14abort_on_panic17h36beb269c3574999E.exit: ; preds = %116 %.sroa.020.0.v = select i1 %130, i64 -11, i64 -4 %.sroa.020.0 = and i64 %.sroa.020.0.v, %.sroa.021.1 %brmerge = select i1 %130, i1 true, i1 %.sroa.017.0 + %not. = xor i1 %130, true + %.sroa.017.0.mux = select i1 %not., i1 true, i1 %.sroa.017.0 br i1 %brmerge, label %142, label %131 131: ; preds = %.preheader @@ -2552,7 +2556,7 @@ _ZN10async_task5utils14abort_on_panic17h36beb269c3574999E.exit: ; preds = %116 br label %142 142: ; preds = %.preheader, %141 - %.sroa.017.1 = phi i1 [ %.sroa.017.0, %.preheader ], [ true, %141 ] + %.sroa.017.1 = phi i1 [ %.sroa.017.0.mux, %.preheader ], [ true, %141 ] %143 = cmpxchg weak ptr %13, i64 %.sroa.021.1, i64 %.sroa.020.0 acq_rel acquire, align 8 %144 = extractvalue { i64, i1 } %143, 1 %145 = extractvalue { i64, i1 } %143, 0 @@ -3232,6 +3236,8 @@ _ZN10async_task5utils14abort_on_panic17h5fbcefa69baa9e79E.exit: ; preds = %123 %.sroa.025.0.v = select i1 %137, i64 -11, i64 -4 %.sroa.025.0 = and i64 %.sroa.025.0.v, %.sroa.026.1 %brmerge = select i1 %137, i1 true, i1 %.sroa.021.0 + %not. = xor i1 %137, true + %.sroa.021.0.mux = select i1 %not., i1 true, i1 %.sroa.021.0 br i1 %brmerge, label %149, label %138 138: ; preds = %.preheader @@ -3270,7 +3276,7 @@ _ZN10async_task5utils14abort_on_panic17h5fbcefa69baa9e79E.exit: ; preds = %123 br label %149 149: ; preds = %.preheader, %148 - %.sroa.021.1 = phi i1 [ %.sroa.021.0, %.preheader ], [ true, %148 ] + %.sroa.021.1 = phi i1 [ %.sroa.021.0.mux, %.preheader ], [ true, %148 ] %150 = cmpxchg weak ptr %13, i64 %.sroa.026.1, i64 %.sroa.025.0 acq_rel acquire, align 8 %151 = extractvalue { i64, i1 } %150, 1 %152 = extractvalue { i64, i1 } %150, 0 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..ed6276ce6f5 100755 --- a/scripts/setup_pre_commit_patch.sh +++ b/scripts/setup_pre_commit_patch.sh @@ -2,7 +2,7 @@ set -euo pipefail shopt -s inherit_errexit -export GITHUB_PATCH_ID="/llvm-project/commit/" +export GITHUB_PATCH_ID=llvm/llvm-project/pull/124480 export COMPTIME_MODE=0 # Please rebase manually