diff --git a/bench/abc/optimized/bmcBmc3.ll b/bench/abc/optimized/bmcBmc3.ll index 49f46dd316c..5a99a6cd3dc 100644 --- a/bench/abc/optimized/bmcBmc3.ll +++ b/bench/abc/optimized/bmcBmc3.ll @@ -3603,7 +3603,7 @@ Aig_ManObj.exit: ; preds = %73, %76 br i1 %exitcond.not, label %85, label %69, !llvm.loop !165 85: ; preds = %83 - %86 = load i32, ptr %.0.i, align 4, !tbaa !28 + %86 = load i32, ptr %67, align 4, !tbaa !28 %87 = and i32 %86, 65535 br label %128 diff --git a/bench/abseil-cpp/optimized/cord.ll b/bench/abseil-cpp/optimized/cord.ll index d6914678836..390902153c5 100644 --- a/bench/abseil-cpp/optimized/cord.ll +++ b/bench/abseil-cpp/optimized/cord.ll @@ -1575,7 +1575,7 @@ _ZN4absl4Cord9InlineRep8set_dataEPKcm.exit: ; preds = %19, %26, %43 br i1 %.not.i34, label %47, label %_ZN4absl13cord_internal7CordRep5UnrefEPS1_.exit, !prof !59 47: ; preds = %_ZN4absl4Cord9InlineRep8set_dataEPKcm.exit - tail call void @_ZN4absl13cord_internal7CordRep7DestroyEPS1_(ptr noundef nonnull %.0.i) + tail call void @_ZN4absl13cord_internal7CordRep7DestroyEPS1_(ptr noundef nonnull %8) br label %_ZN4absl13cord_internal7CordRep5UnrefEPS1_.exit .critedge: ; preds = %10 @@ -1735,7 +1735,7 @@ _ZN4absl4Cord9InlineRep7SetTreeEPNS_13cord_internal7CordRepERKNS2_16CordzUpdateS br i1 %.not.i44, label %114, label %_ZN4absl13cord_internal7CordRep5UnrefEPS1_.exit45, !prof !59 114: ; preds = %_ZN4absl4Cord9InlineRep7SetTreeEPNS_13cord_internal7CordRepERKNS2_16CordzUpdateScopeE.exit - invoke void @_ZN4absl13cord_internal7CordRep7DestroyEPS1_(ptr noundef nonnull %.0.i) + invoke void @_ZN4absl13cord_internal7CordRep7DestroyEPS1_(ptr noundef nonnull %8) to label %_ZN4absl13cord_internal7CordRep5UnrefEPS1_.exit45 unwind label %104 _ZN4absl13cord_internal7CordRep5UnrefEPS1_.exit45: ; preds = %_ZN4absl4Cord9InlineRep7SetTreeEPNS_13cord_internal7CordRepERKNS2_16CordzUpdateScopeE.exit, %114 @@ -3190,7 +3190,7 @@ _ZN4absl4Cord13ChunkIteratorppEv.exit: ; preds = %178, %_ZNK4absl13co br i1 %.not.i.i45, label %267, label %_ZN4absl13cord_internal13RemoveCrcNodeEPNS0_7CordRepE.exit46, !prof !59 267: ; preds = %262 - tail call void @_ZN4absl13cord_internal7CordRep7DestroyEPS1_(ptr noundef nonnull %.0.i.i42) + tail call void @_ZN4absl13cord_internal7CordRep7DestroyEPS1_(ptr noundef nonnull %84) br label %_ZN4absl13cord_internal13RemoveCrcNodeEPNS0_7CordRepE.exit46 _ZN4absl13cord_internal13RemoveCrcNodeEPNS0_7CordRepE.exit46: ; preds = %248, %260, %262, %267 diff --git a/bench/actix-rs/optimized/14bh10sj718x2c7a.ll b/bench/actix-rs/optimized/14bh10sj718x2c7a.ll index 475bc9a0b2e..a1ac8dcaad2 100644 --- a/bench/actix-rs/optimized/14bh10sj718x2c7a.ll +++ b/bench/actix-rs/optimized/14bh10sj718x2c7a.ll @@ -788,7 +788,6 @@ define hidden noundef ptr @"_ZN19brotli_decompressor6writer89DecompressorWriterC 23: ; preds = %20 %24 = load ptr, ptr %0, align 8, !noundef !7 %25 = icmp eq ptr %24, null - %. = select i1 %25, ptr null, ptr %0 br i1 %25, label %26, label %27 26: ; preds = %23 @@ -817,7 +816,7 @@ define hidden noundef ptr @"_ZN19brotli_decompressor6writer89DecompressorWriterC %.sroa.0.014.i = phi ptr [ %63, %61 ], [ %.val, %.lr.ph.i.preheader ] %.sroa.4.013.i = phi i64 [ %62, %61 ], [ %28, %.lr.ph.i.preheader ] call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5), !noalias !152 - call void @"_ZN63_$LT$actix_http..encoding..Writer$u20$as$u20$std..io..Write$GT$5write17h3cfee56205ee2b27E"(ptr noalias noundef nonnull sret({ i64, [1 x i64] }) align 8 captures(none) dereferenceable(16) %5, ptr noalias noundef nonnull align 8 dereferenceable(32) %., ptr noalias noundef nonnull readonly align 1 %.sroa.0.014.i, i64 noundef %.sroa.4.013.i), !noalias !157 + call void @"_ZN63_$LT$actix_http..encoding..Writer$u20$as$u20$std..io..Write$GT$5write17h3cfee56205ee2b27E"(ptr noalias noundef nonnull sret({ i64, [1 x i64] }) align 8 captures(none) dereferenceable(16) %5, ptr noalias noundef nonnull align 8 dereferenceable(32) %0, ptr noalias noundef nonnull readonly align 1 %.sroa.0.014.i, i64 noundef %.sroa.4.013.i), !noalias !157 %32 = load i64, ptr %5, align 8, !range !147, !noalias !152, !noundef !7 %trunc2.i = trunc nuw i64 %32 to i1 br i1 %trunc2.i, label %.lr.ph.i34, label %.loopexit @@ -894,7 +893,7 @@ default.unreachable102: ; preds = %.loopexit45 call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %4), !noalias !152 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5), !noalias !152 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5), !noalias !152 - call void @"_ZN63_$LT$actix_http..encoding..Writer$u20$as$u20$std..io..Write$GT$5write17h3cfee56205ee2b27E"(ptr noalias noundef nonnull sret({ i64, [1 x i64] }) align 8 captures(none) dereferenceable(16) %5, ptr noalias noundef nonnull align 8 dereferenceable(32) %., ptr noalias noundef nonnull readonly align 1 %.sroa.0.014.i, i64 noundef %.sroa.4.013.i), !noalias !157 + call void @"_ZN63_$LT$actix_http..encoding..Writer$u20$as$u20$std..io..Write$GT$5write17h3cfee56205ee2b27E"(ptr noalias noundef nonnull sret({ i64, [1 x i64] }) align 8 captures(none) dereferenceable(16) %5, ptr noalias noundef nonnull align 8 dereferenceable(32) %0, ptr noalias noundef nonnull readonly align 1 %.sroa.0.014.i, i64 noundef %.sroa.4.013.i), !noalias !157 %55 = load i64, ptr %5, align 8, !range !147, !noalias !152, !noundef !7 %trunc.i37 = trunc nuw i64 %55 to i1 br i1 %trunc.i37, label %.lr.ph.i34, label %.loopexit diff --git a/bench/actix-rs/optimized/3tnlvci61w0nl5yv.ll b/bench/actix-rs/optimized/3tnlvci61w0nl5yv.ll index 3c4aad905c5..fe11f754ee7 100644 --- a/bench/actix-rs/optimized/3tnlvci61w0nl5yv.ll +++ b/bench/actix-rs/optimized/3tnlvci61w0nl5yv.ll @@ -5421,7 +5421,6 @@ _ZN5alloc6string6String9from_utf817h11549ca97a8af181E.exit: ; preds = %51 %rhsc = load i8, ptr %146, align 1 %rhsc.fr = freeze i8 %rhsc %.not = icmp eq i8 %rhsc.fr, 42 - %spec.select.i = select i1 %.not, ptr %137, ptr null br i1 %.not, label %147, label %204 147: ; preds = %145 @@ -5529,7 +5528,7 @@ _ZN5alloc6string6String9from_utf817h11549ca97a8af181E.exit: ; preds = %51 %182 = extractvalue { i64, ptr } %179, 1 %183 = icmp ne ptr %182, null call void @llvm.assume(i1 %183) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %182, ptr nonnull align 1 %spec.select.i, i64 %.pre.i, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %182, ptr nonnull align 1 %137, i64 %.pre.i, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(120) %125, ptr noundef nonnull align 8 dereferenceable(120) %31, i64 120, i1 false) store i64 %181, ptr %124, align 8 store ptr %182, ptr %.sroa.035.sroa.4.0..sroa_idx, align 8 diff --git a/bench/actix-rs/optimized/5dylu5g0crehei80.ll b/bench/actix-rs/optimized/5dylu5g0crehei80.ll index 4114f288a25..3a868c38ba8 100644 --- a/bench/actix-rs/optimized/5dylu5g0crehei80.ll +++ b/bench/actix-rs/optimized/5dylu5g0crehei80.ll @@ -11172,7 +11172,6 @@ _ZN4http6header5value11HeaderValue8from_str17h65e04d006e83ee0aE.exit.i: ; preds .backedge.i: ; preds = %.backedge.i.backedge, %2066 %2069 = load ptr, ptr %2067, align 8, !alias.scope !1291, !noalias !1172, !noundef !7 %2070 = icmp eq ptr %2069, null - %.08.i.i.i = select i1 %2070, ptr null, ptr %2067 br i1 %2070, label %2080, label %2071 2071: ; preds = %.backedge.i @@ -11180,7 +11179,7 @@ _ZN4http6header5value11HeaderValue8from_str17h65e04d006e83ee0aE.exit.i: ; preds br label %2072 2072: ; preds = %.noexc136.i, %2071 - %2073 = invoke { ptr, ptr } @"_ZN88_$LT$actix_http..header..map..Iter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h2be41437fadd738aE"(ptr noalias noundef nonnull align 8 dereferenceable(72) %.08.i.i.i) + %2073 = invoke { ptr, ptr } @"_ZN88_$LT$actix_http..header..map..Iter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h2be41437fadd738aE"(ptr noalias noundef nonnull align 8 dereferenceable(72) %2067) to label %.noexc135.i unwind label %.loopexit.i, !noalias !1176 .noexc135.i: ; preds = %2072 diff --git a/bench/actix-rs/optimized/7zeo7o16a1wcxcn.ll b/bench/actix-rs/optimized/7zeo7o16a1wcxcn.ll index e03e6316269..e0a9726c733 100644 --- a/bench/actix-rs/optimized/7zeo7o16a1wcxcn.ll +++ b/bench/actix-rs/optimized/7zeo7o16a1wcxcn.ll @@ -1041,7 +1041,6 @@ _ZN11actix_files5named9NamedFile4etag17ha3bbef69975ebe76E.exit: ; preds = %.noex %.sroa.04.0 = phi i64 [ undef, %_ZN11actix_files5named9NamedFile4etag17ha3bbef69975ebe76E.exit ], [ %160, %.noexc187 ], [ undef, %154 ] %163 = load i64, ptr %110, align 8, !range !19, !noundef !5 %164 = icmp eq i64 %163, -9223372036854775808 - %. = select i1 %164, ptr null, ptr %110 call void @llvm.experimental.noalias.scope.decl(metadata !148) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %59), !noalias !151 call void @llvm.experimental.noalias.scope.decl(metadata !153) @@ -1151,7 +1150,7 @@ _ZN10actix_http12http_message11HttpMessage10get_header17h1fd6e1d02da0dcb5E.exit. br label %182 196: ; preds = %193 - %197 = invoke noundef zeroext i1 @_ZN9actix_web4http6header6entity9EntityTag9strong_eq17ha9455c29e1bd0816E(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %.sroa.0.0.i189, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) dereferenceable_or_null(32) %.) + %197 = invoke noundef zeroext i1 @_ZN9actix_web4http6header6entity9EntityTag9strong_eq17ha9455c29e1bd0816E(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %.sroa.0.0.i189, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) dereferenceable_or_null(32) %110) to label %198 unwind label %185 198: ; preds = %196 @@ -1206,7 +1205,6 @@ _ZN10actix_http12http_message11HttpMessage10get_header17h1fd6e1d02da0dcb5E.exit. %.0121 = phi i1 [ true, %208 ], [ %.2123, %276 ], [ false, %250 ] %212 = load i64, ptr %110, align 8, !range !19, !noundef !5 %213 = icmp eq i64 %212, -9223372036854775808 - %.180 = select i1 %213, ptr null, ptr %110 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %55), !noalias !197 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %53), !noalias !197 %214 = load ptr, ptr %166, align 8, !noalias !201, !nonnull !5, !noundef !5 @@ -1307,7 +1305,7 @@ _ZN10actix_http12http_message11HttpMessage10get_header17h9356a48683cc36f6E.exit. br i1 %240, label %229, label %241 241: ; preds = %239 - %242 = invoke noundef zeroext i1 @_ZN9actix_web4http6header6entity9EntityTag7weak_eq17hc3912bf7eede4fdfE(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %.sroa.0.0.i198, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) dereferenceable_or_null(32) %.180) + %242 = invoke noundef zeroext i1 @_ZN9actix_web4http6header6entity9EntityTag7weak_eq17hc3912bf7eede4fdfE(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %.sroa.0.0.i198, ptr noalias noundef nonnull readonly align 8 dereferenceable(32) dereferenceable_or_null(32) %110) to label %243 unwind label %231 243: ; preds = %241 diff --git a/bench/actix-rs/optimized/n3tsoobypc9yljt.ll b/bench/actix-rs/optimized/n3tsoobypc9yljt.ll index aa7ae1d11ea..3a4b8b458c5 100644 --- a/bench/actix-rs/optimized/n3tsoobypc9yljt.ll +++ b/bench/actix-rs/optimized/n3tsoobypc9yljt.ll @@ -1879,12 +1879,13 @@ define hidden void @"_ZN93_$LT$bitflags..iter..IterNames$LT$B$GT$$u20$as$u20$cor .lr.ph.split: ; preds = %.lr.ph.split.preheader, %.backedge %.014 = phi ptr [ %.0, %.backedge ], [ %12, %.lr.ph.split.preheader ] - %13 = phi i64 [ %14, %.backedge ], [ %.promoted, %.lr.ph.split.preheader ] - %14 = add nuw i64 %13, 1 - %15 = getelementptr inbounds nuw i8, ptr %.014, i64 8 - %16 = load i64, ptr %15, align 8, !noundef !7 - %17 = icmp eq i64 %16, 0 - br i1 %17, label %.backedge, label %21 + %13 = phi ptr [ %19, %.backedge ], [ %12, %.lr.ph.split.preheader ] + %14 = phi i64 [ %15, %.backedge ], [ %.promoted, %.lr.ph.split.preheader ] + %15 = add nuw i64 %14, 1 + %16 = getelementptr inbounds nuw i8, ptr %.015, i64 8 + %17 = load i64, ptr %16, align 8, !noundef !7 + %18 = icmp eq i64 %17, 0 + br i1 %18, label %.backedge, label %22 ._crit_edge: ; preds = %.backedge store i64 %4, ptr %5, align 8 @@ -1895,10 +1896,10 @@ define hidden void @"_ZN93_$LT$bitflags..iter..IterNames$LT$B$GT$$u20$as$u20$cor br label %31 .backedge: ; preds = %.lr.ph.split, %21 - %.not = icmp ult i64 %14, %4 - %19 = getelementptr inbounds { { ptr, i64 }, i8, [7 x i8] }, ptr %6, i64 %14 + %.not = icmp ult i64 %15, %4 + %19 = getelementptr inbounds { { ptr, i64 }, i8, [7 x i8] }, ptr %6, i64 %15 %.0 = select i1 %.not, ptr %19, ptr null - %exitcond.not = icmp eq i64 %14, %4 + %exitcond.not = icmp eq i64 %15, %4 br i1 %exitcond.not, label %._crit_edge, label %.lr.ph.split 20: ; preds = %.lr.ph @@ -1916,14 +1917,14 @@ define hidden void @"_ZN93_$LT$bitflags..iter..IterNames$LT$B$GT$$u20$as$u20$cor br i1 %or.cond, label %.backedge, label %27 27: ; preds = %21 - store i64 %14, ptr %5, align 8 + store i64 %15, ptr %5, align 8 %28 = xor i8 %23, -1 %29 = and i8 %8, %28 store i8 %29, ptr %7, align 1, !alias.scope !509 - %30 = load ptr, ptr %.014, align 8, !nonnull !7, !align !512, !noundef !7 + %30 = load ptr, ptr %13, align 8, !nonnull !7, !align !512, !noundef !7 store ptr %30, ptr %0, align 8 %.sroa.4.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 - store i64 %16, ptr %.sroa.4.0..sroa_idx, align 8 + store i64 %17, ptr %.sroa.4.0..sroa_idx, align 8 %.sroa.5.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 store i8 %23, ptr %.sroa.5.0..sroa_idx, align 8 br label %31 diff --git a/bench/assimp/optimized/X3DImporter.ll b/bench/assimp/optimized/X3DImporter.ll index 6152f4bc364..90239891fdc 100644 --- a/bench/assimp/optimized/X3DImporter.ll +++ b/bench/assimp/optimized/X3DImporter.ll @@ -7539,7 +7539,7 @@ _ZN4pugi4impl19get_buffer_encodingENS_12xml_encodingEPKvm.exit: ; preds = %18, % br i1 %.not.i, label %_ZN4pugi4impl12auto_deleterIvED2Ev.exit, label %28 28: ; preds = %27 - invoke void %24(ptr noundef nonnull %23) + invoke void %24(ptr noundef nonnull %3) to label %_ZN4pugi4impl12auto_deleterIvED2Ev.exit unwind label %29 29: ; preds = %28 @@ -7601,7 +7601,7 @@ _ZN4pugi4impl12auto_deleterIvED2Ev.exit: ; preds = %27, %28 br i1 %.not.i29, label %_ZN4pugi4impl12auto_deleterIvED2Ev.exit30, label %48 48: ; preds = %45 - invoke void %24(ptr noundef nonnull %23) + invoke void %24(ptr noundef nonnull %3) to label %_ZN4pugi4impl12auto_deleterIvED2Ev.exit30 unwind label %49 49: ; preds = %48 diff --git a/bench/assimp/optimized/glTF2Importer.ll b/bench/assimp/optimized/glTF2Importer.ll index 97a46785001..02e7e02ceac 100644 --- a/bench/assimp/optimized/glTF2Importer.ll +++ b/bench/assimp/optimized/glTF2Importer.ll @@ -15955,7 +15955,7 @@ _ZN5glTF28Accessor14GetMaxByteSizeEv.exit.i101.i: ; preds = %_ZNK10glTFCommon3Re 859: ; preds = %882, %.lr.ph.i104.i %.051109.i105.i = phi i64 [ 0, %.lr.ph.i104.i ], [ %886, %882 ] - %860 = load ptr, ptr %spec.select, align 8 + %860 = load ptr, ptr %308, align 8 %861 = getelementptr inbounds nuw i32, ptr %860, i64 %.051109.i105.i %862 = load i32, ptr %861, align 4 %863 = zext i32 %862 to i64 @@ -16545,7 +16545,7 @@ _ZN5glTF28Accessor14GetMaxByteSizeEv.exit.i165.i: ; preds = %_ZNK10glTFCommon3Re 1124: ; preds = %1147, %.lr.ph.i168.i %.051109.i169.i = phi i64 [ 0, %.lr.ph.i168.i ], [ %1151, %1147 ] - %1125 = load ptr, ptr %spec.select, align 8 + %1125 = load ptr, ptr %308, align 8 %1126 = getelementptr inbounds nuw i32, ptr %1125, i64 %.051109.i169.i %1127 = load i32, ptr %1126, align 4 %1128 = zext i32 %1127 to i64 @@ -73110,10 +73110,10 @@ define linkonce_odr hidden void @_ZN9rapidjson22GenericSchemaValidatorINS_21Gene %3 = icmp eq ptr %1, null %4 = getelementptr inbounds i8, ptr %1, i64 -8 %5 = select i1 %3, ptr null, ptr %4 - %6 = load ptr, ptr %5, align 8 + %6 = load ptr, ptr %4, align 8 %7 = load ptr, ptr %6, align 8 - tail call void %7(ptr noundef nonnull align 8 dereferenceable(220) %5) #37 - tail call void @free(ptr noundef nonnull %5) #37 + tail call void %7(ptr noundef nonnull align 8 dereferenceable(220) %4) #37 + tail call void @free(ptr noundef %5) #37 ret void } diff --git a/bench/boost/optimized/absolute_uri_rule.ll b/bench/boost/optimized/absolute_uri_rule.ll index 2aa09c493ff..0aa68dcdb92 100644 --- a/bench/boost/optimized/absolute_uri_rule.ll +++ b/bench/boost/optimized/absolute_uri_rule.ll @@ -273,23 +273,16 @@ _ZN5boost6system6resultINS_4urls6detail16hier_part_rule_t10value_typeENS0_10erro store ptr %61, ptr %2, align 8, !tbaa !15, !noalias !59 call void @llvm.lifetime.start.p0(i64 56, ptr nonnull %5) #6, !noalias !59 call void @_ZNK5boost4urls22implementation_defined12query_rule_t5parseERPKcS4_(ptr dead_on_unwind nonnull writable sret(%"class.boost::system::result.90") align 8 %5, ptr noundef nonnull align 1 dereferenceable(1) @_ZN5boost4urlsL10query_ruleE, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef %3) #6, !noalias !59 - %62 = getelementptr inbounds nuw i8, ptr %5, i64 48 - %63 = load i32, ptr %62, align 8, !tbaa !60, !noalias !59 - %64 = icmp eq i32 %63, 1 - %spec.select.i.i.i.i = select i1 %64, ptr %5, ptr null - call void @_ZNK5boost4urls19params_encoded_base6bufferEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::urls::pct_string_view") align 8 %13, ptr noundef nonnull align 8 dereferenceable(48) %spec.select.i.i.i.i) #6 - %65 = load i32, ptr %62, align 8, !tbaa !60, !noalias !59 - %66 = icmp eq i32 %65, 1 - %spec.select.i.i7.i.i = select i1 %66, ptr %5, ptr null - %67 = call noundef i64 @_ZNK5boost4urls19params_encoded_base4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %spec.select.i.i7.i.i) #6 + call void @_ZNK5boost4urls19params_encoded_base6bufferEv(ptr dead_on_unwind nonnull writable sret(%"class.boost::urls::pct_string_view") align 8 %13, ptr noundef nonnull align 8 dereferenceable(48) %5) #6 + %63 = call noundef i64 @_ZNK5boost4urls19params_encoded_base4sizeEv(ptr noundef nonnull align 8 dereferenceable(48) %5) #6 %.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %13, i64 24 - store i64 %67, ptr %.sroa.5.0..sroa_idx.i.i, align 8, !alias.scope !59 + store i64 %62, ptr %.sroa.5.0..sroa_idx.i.i, align 8, !alias.scope !59 %.sroa.6.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %13, i64 32 store i8 1, ptr %.sroa.6.0..sroa_idx.i.i, align 8, !alias.scope !59 %68 = getelementptr inbounds nuw i8, ptr %13, i64 40 - store i32 1, ptr %68, align 8, !tbaa !62, !alias.scope !59 + store i32 1, ptr %68, align 8, !tbaa !60, !alias.scope !59 call void @llvm.lifetime.end.p0(i64 56, ptr nonnull %5) #6, !noalias !59 - call void @_ZN5boost4urls6detail8url_impl11apply_queryENS0_15pct_string_viewEm(ptr noundef nonnull align 8 dereferenceable(171) %8, ptr noundef nonnull byval(%"class.boost::urls::pct_string_view") align 8 %13, i64 noundef %67) #6 + call void @_ZN5boost4urls6detail8url_impl11apply_queryENS0_15pct_string_viewEm(ptr noundef nonnull align 8 dereferenceable(171) %8, ptr noundef nonnull byval(%"class.boost::urls::pct_string_view") align 8 %13, i64 noundef %62) #6 br label %_ZN5boost4urls7grammar5parseINS0_6detail17query_part_rule_tEEENS_6system6resultINT_10value_typeENS5_10error_codeEEERPKcSC_RKS7_.exit _ZN5boost4urls7grammar5parseINS0_6detail17query_part_rule_tEEENS_6system6resultINT_10value_typeENS5_10error_codeEEERPKcSC_RKS7_.exit: ; preds = %58, %55, %60 @@ -425,7 +418,5 @@ attributes #6 = { nounwind } !57 = distinct !{!57, !58, !"_ZNK5boost4urls6detail17query_part_rule_t5parseERPKcS4_: argument 0"} !58 = distinct !{!58, !"_ZNK5boost4urls6detail17query_part_rule_t5parseERPKcS4_"} !59 = !{!57, !54} -!60 = !{!61, !29, i64 48} -!61 = !{!"_ZTSN5boost8variant26detail17variant_base_implILb1ELb1EJNS_4urls19params_encoded_viewENS_6system10error_codeEEEE", !6, i64 0, !29, i64 48} -!62 = !{!63, !29, i64 40} -!63 = !{!"_ZTSN5boost8variant26detail17variant_base_implILb1ELb1EJNS_4urls6detail17query_part_rule_t10value_typeENS_6system10error_codeEEEE", !6, i64 0, !29, i64 40} +!60 = !{!61, !29, i64 40} +!61 = !{!"_ZTSN5boost8variant26detail17variant_base_implILb1ELb1EJNS_4urls6detail17query_part_rule_t10value_typeENS_6system10error_codeEEEE", !6, i64 0, !29, i64 40} diff --git a/bench/boost/optimized/host_rule.ll b/bench/boost/optimized/host_rule.ll index 66aca0a4acc..0e0ab901a7c 100644 --- a/bench/boost/optimized/host_rule.ll +++ b/bench/boost/optimized/host_rule.ll @@ -260,21 +260,18 @@ _ZNKR5boost6system6resultINS_4urls6detail17ip_literal_rule_t10value_typeENS0_10e 64: ; preds = %47 store ptr %48, ptr %2, align 8, !tbaa !3 - %65 = load i32, ptr %44, align 8, !tbaa !21 - %66 = icmp eq i32 %65, 1 - %spec.select.i.i36 = select i1 %66, ptr %7, ptr null - %67 = call i32 @_ZNK5boost4urls12ipv4_address8to_bytesEv(ptr noundef nonnull align 4 dereferenceable(4) %spec.select.i.i36) #10 - %68 = load ptr, ptr %2, align 8, !tbaa !3 - %69 = ptrtoint ptr %68 to i64 - %70 = ptrtoint ptr %12 to i64 - %71 = sub i64 %69, %70 + %65 = call i32 @_ZNK5boost4urls12ipv4_address8to_bytesEv(ptr noundef nonnull align 4 dereferenceable(4) %7) #10 + %66 = load ptr, ptr %2, align 8, !tbaa !3 + %spec.select.i.i36 = ptrtoint ptr %66 to i64 + %spec.select.i.i36 = ptrtoint ptr %12 to i64 + %68 = sub i64 %67, %68 store i32 2, ptr %0, align 8 %.sroa.1573.0..sroa_idx80 = getelementptr inbounds nuw i8, ptr %0, i64 8 store ptr %12, ptr %.sroa.1573.0..sroa_idx80, align 8 %.sroa.21.0..sroa_idx90 = getelementptr inbounds nuw i8, ptr %0, i64 16 - store i64 %71, ptr %.sroa.21.0..sroa_idx90, align 8 + store i64 %69, ptr %.sroa.21.0..sroa_idx90, align 8 %.sroa.26.0..sroa_idx100 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %.sroa.26.sroa.0.0.insert.ext133 = zext i32 %67 to i64 + %.sroa.26.sroa.0.0.insert.ext133 = zext i32 %65 to i64 store i64 %.sroa.26.sroa.0.0.insert.ext133, ptr %.sroa.26.0..sroa_idx100, align 8 %.sroa.28.0..sroa_idx110 = getelementptr inbounds nuw i8, ptr %0, i64 32 %72 = getelementptr inbounds nuw i8, ptr %0, i64 64 diff --git a/bench/c3c/optimized/sema_expr.ll b/bench/c3c/optimized/sema_expr.ll index c22b60e9d16..142c555d30a 100644 --- a/bench/c3c/optimized/sema_expr.ll +++ b/bench/c3c/optimized/sema_expr.ll @@ -8898,11 +8898,11 @@ sema_analyse_expr.exit153: ; preds = %sema_analyse_expr_l br i1 %566, label %567, label %.thread161 567: ; preds = %565 - %568 = tail call zeroext i1 @sema_analyse_expr(ptr noundef %.tr.ph, ptr noundef nonnull %543) + %568 = tail call zeroext i1 @sema_analyse_expr(ptr noundef %.tr.ph, ptr noundef nonnull %542) br i1 %568, label %569, label %sema_expr_analyse_slice.exit 569: ; preds = %567 - %570 = tail call zeroext i1 @cast_to_index(ptr noundef %.tr.ph, ptr noundef %538) #12 + %570 = tail call zeroext i1 @cast_to_index(ptr noundef %.tr.ph, ptr noundef nonnull %538) #12 br i1 %570, label %572, label %sema_expr_analyse_slice.exit .thread161: ; preds = %565 @@ -8910,11 +8910,11 @@ sema_analyse_expr.exit153: ; preds = %sema_analyse_expr_l br i1 %571, label %.critedge.i130, label %sema_expr_analyse_slice.exit 572: ; preds = %569 - %573 = tail call zeroext i1 @cast_to_index(ptr noundef %.tr.ph, ptr noundef nonnull %543) #12 + %573 = tail call zeroext i1 @cast_to_index(ptr noundef %.tr.ph, ptr noundef nonnull %542) #12 br i1 %573, label %574, label %sema_expr_analyse_slice.exit 574: ; preds = %572 - %575 = load ptr, ptr %543, align 8 + %575 = load ptr, ptr %542, align 8 %576 = load ptr, ptr %538, align 8 %.not130.i = icmp eq ptr %575, %576 br i1 %.not130.i, label %.critedge.i130, label %577 @@ -8934,7 +8934,7 @@ sema_analyse_expr.exit153: ; preds = %sema_analyse_expr_l br i1 %582, label %583, label %sema_expr_analyse_slice.exit 583: ; preds = %581 - %584 = tail call zeroext i1 @cast_implicit(ptr noundef %.tr.ph, ptr noundef nonnull %543, ptr noundef nonnull %578) #12 + %584 = tail call zeroext i1 @cast_implicit(ptr noundef %.tr.ph, ptr noundef nonnull %542, ptr noundef nonnull %578) #12 br i1 %584, label %.critedge.i130, label %sema_expr_analyse_slice.exit .critedge.i130: ; preds = %.thread161, %583, %574 @@ -9002,11 +9002,11 @@ sema_analyse_expr.exit153: ; preds = %sema_analyse_expr_l br i1 %.not132.i, label %614, label %612 612: ; preds = %611 - %613 = call fastcc zeroext i1 @sema_slice_len_is_in_range(ptr noundef nonnull %545, ptr noundef %543, i1 noundef zeroext %588, ptr noundef %5) + %613 = call fastcc zeroext i1 @sema_slice_len_is_in_range(ptr noundef nonnull %545, ptr noundef %542, i1 noundef zeroext %588, ptr noundef %5) br i1 %613, label %616, label %sema_expr_analyse_slice.exit 614: ; preds = %611 - %615 = call fastcc zeroext i1 @sema_slice_index_is_in_range(ptr noundef nonnull %545, ptr noundef nonnull %543, i1 noundef zeroext true, i1 noundef zeroext %588, ptr noundef %5) + %615 = call fastcc zeroext i1 @sema_slice_index_is_in_range(ptr noundef nonnull %545, ptr noundef nonnull %542, i1 noundef zeroext true, i1 noundef zeroext %588, ptr noundef %5) br i1 %615, label %616, label %sema_expr_analyse_slice.exit 616: ; preds = %614, %612, %610 diff --git a/bench/casadi/optimized/serializer.ll b/bench/casadi/optimized/serializer.ll index f8a39617d79..d5119c4e2db 100644 --- a/bench/casadi/optimized/serializer.ll +++ b/bench/casadi/optimized/serializer.ll @@ -2441,24 +2441,21 @@ _ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv.exit: ; preds %31 = getelementptr inbounds nuw i8, ptr %3, i64 8 store i64 0, ptr %31, align 8, !tbaa !30 store i8 0, ptr %30, align 8, !tbaa !31 - %32 = icmp eq ptr %29, null - %33 = getelementptr inbounds i8, ptr %29, i64 -16 - %34 = select i1 %32, ptr null, ptr %33 - %35 = getelementptr inbounds nuw i8, ptr %34, i64 96 - %36 = getelementptr inbounds nuw i8, ptr %34, i64 104 - %37 = load i64, ptr %36, align 8, !tbaa !30 - %38 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %35, i64 noundef 0, i64 noundef %37, ptr noundef nonnull %30, i64 noundef 0) - to label %.noexc8 unwind label %56 + %32 = getelementptr inbounds nuw i8, ptr %29, i64 80 + %33 = getelementptr inbounds nuw i8, ptr %29, i64 88 + %34 = load i64, ptr %33, align 8, !tbaa !30 + %35 = invoke noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE10_M_replaceEmmPKcm(ptr noundef nonnull align 8 dereferenceable(32) %32, i64 noundef 0, i64 noundef %34, ptr noundef nonnull %30, i64 noundef 0) + to label %.noexc8 unwind label %53 .noexc8: ; preds = %_ZNKSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strEv.exit - %39 = getelementptr inbounds nuw i8, ptr %34, i64 24 - %40 = getelementptr inbounds nuw i8, ptr %34, i64 88 + %39 = getelementptr inbounds nuw i8, ptr %29, i64 8 + %40 = getelementptr inbounds nuw i8, ptr %29, i64 72 %41 = load i32, ptr %40, align 8, !tbaa !78 %42 = and i32 %41, 3 %.not.i.i.i = icmp eq i32 %42, 0 - %43 = load i64, ptr %36, align 8 + %43 = load i64, ptr %33, align 8 %.0.i.i.i = select i1 %.not.i.i.i, i64 0, i64 %43 - %44 = load ptr, ptr %35, align 8, !tbaa !26 + %44 = load ptr, ptr %32, align 8, !tbaa !26 invoke void @_ZNSt7__cxx1115basic_stringbufIcSt11char_traitsIcESaIcEE7_M_syncEPcmm(ptr noundef nonnull align 8 dereferenceable(104) %39, ptr noundef %44, i64 noundef 0, i64 noundef %.0.i.i.i) to label %_ZNSt7__cxx1118basic_stringstreamIcSt11char_traitsIcESaIcEE3strERKNS_12basic_stringIcS2_S3_EE.exit unwind label %56 diff --git a/bench/casadi/optimized/sx_instantiator.ll b/bench/casadi/optimized/sx_instantiator.ll index 56f4daa509a..035071e97a9 100644 --- a/bench/casadi/optimized/sx_instantiator.ll +++ b/bench/casadi/optimized/sx_instantiator.ll @@ -37021,26 +37021,22 @@ define weak_odr void @_ZN6casadi6MatrixINS_6SXElemEE6_rank1ERKS2_S4_S4_S4_(ptr d 14: ; preds = %5 %15 = getelementptr inbounds nuw i8, ptr %2, i64 16 %16 = load ptr, ptr %15, align 8, !tbaa !15 - %17 = getelementptr inbounds nuw i8, ptr %2, i64 24 - %18 = load ptr, ptr %17, align 8, !tbaa !15 - %19 = icmp eq ptr %16, %18 - %spec.select.i8 = select i1 %19, ptr null, ptr %16 - invoke void @_ZN6casadi6SXElemC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %spec.select.i8) - to label %20 unwind label %32 + invoke void @_ZN6casadi6SXElemC1ERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 8 dereferenceable(8) %16) + to label %17 unwind label %29 20: ; preds = %14 %21 = getelementptr inbounds nuw i8, ptr %3, i64 16 %22 = load ptr, ptr %21, align 8, !tbaa !15 %23 = getelementptr inbounds nuw i8, ptr %3, i64 24 + %21 = load ptr, ptr %20, align 8, !tbaa !15 + %22 = icmp eq ptr %19, %21 + %spec.select.i9 = select i1 %22, ptr null, ptr %19 + %23 = getelementptr inbounds nuw i8, ptr %4, i64 16 %24 = load ptr, ptr %23, align 8, !tbaa !15 - %25 = icmp eq ptr %22, %24 - %spec.select.i9 = select i1 %25, ptr null, ptr %22 - %26 = getelementptr inbounds nuw i8, ptr %4, i64 16 - %27 = load ptr, ptr %26, align 8, !tbaa !15 - %28 = getelementptr inbounds nuw i8, ptr %4, i64 24 - %29 = load ptr, ptr %28, align 8, !tbaa !15 - %30 = icmp eq ptr %27, %29 - %spec.select.i10 = select i1 %30, ptr null, ptr %27 + %25 = getelementptr inbounds nuw i8, ptr %4, i64 24 + %spec.select.i9 = load ptr, ptr %25, align 8, !tbaa !15 + %26 = icmp eq ptr %24, %26 + %27 = select i1 %27, ptr null, ptr %24 invoke void @_ZN6casadi12casadi_rank1INS_6SXElemEEEvPT_PKxS2_PKS2_S7_(ptr noundef %spec.select.i, ptr noundef %13, ptr noundef nonnull %6, ptr noundef %spec.select.i9, ptr noundef %spec.select.i10) to label %31 unwind label %34 diff --git a/bench/cmake/optimized/huf_compress.ll b/bench/cmake/optimized/huf_compress.ll index 90d0cb502f1..0f9ee018edd 100644 --- a/bench/cmake/optimized/huf_compress.ll +++ b/bench/cmake/optimized/huf_compress.ll @@ -430,10 +430,11 @@ define dso_local range(i64 -66, 13) i64 @HUF_buildCTable_wksp(ptr noundef captur 18: ; preds = %16 %19 = icmp eq i32 %3, 0 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(4096) %13, i8 0, i64 4096, i1 false) %20 = getelementptr inbounds nuw i8, ptr %.0.i, i64 4096 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(768) %20, i8 0, i64 768, i1 false) %21 = add nuw nsw i32 %2, 1 %wide.trip.count.i = zext nneg i32 %21 to i64 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(4864) %.0.i, i8 0, i64 4864, i1 false) br label %22 22: ; preds = %22, %18 @@ -3071,9 +3072,9 @@ HUF_validateCTable.exit.thread.thread: ; preds = %HUF_validateCTable. .thread212: ; preds = %HUF_validateCTable.exit.thread.thread, %66, %HUF_validateCTable.exit.thread %87 = load i32, ptr %13, align 4, !tbaa !12 %88 = getelementptr inbounds nuw i8, ptr %.0.i, i64 1024 - %89 = call i32 @HUF_optimalTableLog(i32 noundef %spec.store.select, i64 noundef %3, i32 noundef %87, ptr noundef nonnull %56, i64 noundef 4864, ptr noundef nonnull %88, ptr noundef nonnull %.0.i, i32 noundef %11) + %89 = call i32 @HUF_optimalTableLog(i32 noundef %spec.store.select, i64 noundef %3, i32 noundef %87, ptr noundef nonnull %56, i64 noundef 4864, ptr noundef nonnull %88, ptr noundef nonnull %19, i32 noundef %11) %90 = load i32, ptr %13, align 4, !tbaa !12 - %91 = call i64 @HUF_buildCTable_wksp(ptr noundef nonnull %88, ptr noundef nonnull %.0.i, i32 noundef %90, i32 noundef %89, ptr noundef nonnull %56, i64 noundef 4864) + %91 = call i64 @HUF_buildCTable_wksp(ptr noundef nonnull %88, ptr noundef nonnull %19, i32 noundef %90, i32 noundef %89, ptr noundef nonnull %56, i64 noundef 4864) %92 = icmp ult i64 %91, -119 br i1 %92, label %93, label %.thread diff --git a/bench/coreutils-rs/optimized/1e5pt7vtfxa4ahz7.ll b/bench/coreutils-rs/optimized/1e5pt7vtfxa4ahz7.ll index 947e996b23f..1cb79c6d12d 100644 --- a/bench/coreutils-rs/optimized/1e5pt7vtfxa4ahz7.ll +++ b/bench/coreutils-rs/optimized/1e5pt7vtfxa4ahz7.ll @@ -2261,7 +2261,7 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17hba0a0c4fb0911f70E.exit: ; invoke fastcc void @"_ZN4core3ptr67drop_in_place$LT$core..option..Option$LT$std..path..PathBuf$GT$$GT$17h7fbdfdef2aca020bE"(ptr noalias noundef align 8 dereferenceable(24) %21) #10 to label %.thread unwind label %143 -106: ; preds = %131, %128, %103 +106: ; preds = %131, %127, %103 %107 = landingpad { ptr, i32 } cleanup br label %105 @@ -2298,9 +2298,9 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17hba0a0c4fb0911f70E.exit: ; %.sroa.523.0..sroa_idx = getelementptr inbounds nuw i8, ptr %19, i64 16 store ptr %114, ptr %.sroa.523.0..sroa_idx, align 8 %121 = icmp eq i64 %109, -9223372036854775808 - %.sroa.0.0.i = select i1 %121, ptr null, ptr %112 %122 = icmp eq i64 %97, -9223372036854775808 - %.not = icmp eq ptr %.sroa.0.0.i, null + %.not = icmp eq ptr %112, null + %.not = select i1 %121, i1 true, i1 %.not136 %or.cond = or i1 %.not, %122 br i1 %or.cond, label %123, label %125 @@ -2317,8 +2317,7 @@ _ZN12clap_builder6parser5error12MatchesError6unwrap17hba0a0c4fb0911f70E.exit: ; 125: ; preds = %120 %..val2.i.cast = ptrtoint ptr %114 to i64 - %.sroa.3.0.i = select i1 %121, i64 undef, i64 %..val2.i.cast - %126 = invoke noundef zeroext i1 @_ZN3std4path4Path12_starts_with17h7927dcae5848385cE(ptr noalias noundef nonnull readonly align 1 %100, i64 noundef %104, ptr noalias noundef nonnull readonly align 1 %.sroa.0.0.i, i64 noundef %.sroa.3.0.i) + %.sroa.3.0.i = invoke noundef zeroext i1 @_ZN3std4path4Path12_starts_with17h7927dcae5848385cE(ptr noalias noundef nonnull readonly align 1 %100, i64 noundef %104, ptr noalias noundef nonnull readonly align 1 %112, i64 noundef %..val2.i.cast) to label %_ZN3std4path4Path11starts_with17h5491bb8ddbc81f59E.exit unwind label %118 _ZN3std4path4Path11starts_with17h5491bb8ddbc81f59E.exit: ; preds = %125 @@ -2328,14 +2327,11 @@ _ZN3std4path4Path11starts_with17h5491bb8ddbc81f59E.exit: ; preds = %125 store i64 -9223372036854775808, ptr %0, align 8 %.sroa.535.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 24 store i64 -9223372036854775808, ptr %.sroa.535.0..sroa_idx, align 8 - br i1 %121, label %"_ZN4core3ptr67drop_in_place$LT$core..option..Option$LT$std..path..PathBuf$GT$$GT$17h7fbdfdef2aca020bE.exit", label %128 - -128: ; preds = %127 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %7), !noalias !711 invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h128f125934f4fbe1E.llvm.9586570785940372809"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %7, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %19) to label %.noexc85 unwind label %106 -.noexc85: ; preds = %128 +.noexc85: ; preds = %127 %129 = getelementptr inbounds nuw i8, ptr %7, i64 8 %130 = load i64, ptr %129, align 8, !range !4, !noalias !711, !noundef !5 %.not.i.i.i.i.i.i.i = icmp eq i64 %130, 0 @@ -2352,7 +2348,7 @@ _ZN3std4path4Path11starts_with17h5491bb8ddbc81f59E.exit: ; preds = %125 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7), !noalias !711 br label %"_ZN4core3ptr67drop_in_place$LT$core..option..Option$LT$std..path..PathBuf$GT$$GT$17h7fbdfdef2aca020bE.exit" -"_ZN4core3ptr67drop_in_place$LT$core..option..Option$LT$std..path..PathBuf$GT$$GT$17h7fbdfdef2aca020bE.exit": ; preds = %"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h9a9d20dfc8bf4f3fE.exit.i", %127, %115 +"_ZN4core3ptr67drop_in_place$LT$core..option..Option$LT$std..path..PathBuf$GT$$GT$17h7fbdfdef2aca020bE.exit": ; preds = %"_ZN4core3ptr39drop_in_place$LT$std..path..PathBuf$GT$17h9a9d20dfc8bf4f3fE.exit.i", %115 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %19) call void @llvm.experimental.noalias.scope.decl(metadata !726) %135 = load i64, ptr %21, align 8, !range !4, !alias.scope !726, !noundef !5 diff --git a/bench/coreutils-rs/optimized/2i3dvgzkmy2gn6v1.ll b/bench/coreutils-rs/optimized/2i3dvgzkmy2gn6v1.ll index 1f0b2e8b7f2..7bbd5d91086 100644 --- a/bench/coreutils-rs/optimized/2i3dvgzkmy2gn6v1.ll +++ b/bench/coreutils-rs/optimized/2i3dvgzkmy2gn6v1.ll @@ -569,7 +569,7 @@ define hidden { ptr, ptr } @"_ZN106_$LT$itertools..merge_join..MergeBy$LT$I$C$J$ %8 = load ptr, ptr %7, align 8, !alias.scope !85, !noundef !4 %9 = icmp eq ptr %8, null %10 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %11 = load ptr, ptr %10, align 8, !nonnull !4 + %11 = load ptr, ptr %10, align 8, !alias.scope !85, !nonnull !4 %12 = icmp eq ptr %8, %11 %or.cond = select i1 %9, i1 true, i1 %12 br i1 %or.cond, label %"_ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..adapters..fuse..FuseImpl$LT$I$GT$$GT$4next17h8726aa220fcf0071E.exit", label %13 @@ -600,7 +600,7 @@ define hidden { ptr, ptr } @"_ZN106_$LT$itertools..merge_join..MergeBy$LT$I$C$J$ %25 = load ptr, ptr %24, align 8, !alias.scope !101, !noundef !4 %26 = icmp eq ptr %25, null %27 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %28 = load ptr, ptr %27, align 8, !nonnull !4 + %28 = load ptr, ptr %27, align 8, !alias.scope !101, !nonnull !4 %29 = icmp eq ptr %25, %28 %or.cond34 = select i1 %26, i1 true, i1 %29 br i1 %or.cond34, label %"_ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..adapters..fuse..FuseImpl$LT$I$GT$$GT$4next17h6c759468556d4a47E.exit.thread", label %30 @@ -703,7 +703,7 @@ define hidden { ptr, ptr } @"_ZN106_$LT$itertools..merge_join..MergeBy$LT$I$C$J$ %8 = load ptr, ptr %7, align 8, !alias.scope !129, !noundef !4 %9 = icmp eq ptr %8, null %10 = getelementptr inbounds nuw i8, ptr %0, i64 32 - %11 = load ptr, ptr %10, align 8, !nonnull !4 + %11 = load ptr, ptr %10, align 8, !alias.scope !129, !nonnull !4 %12 = icmp eq ptr %8, %11 %or.cond = select i1 %9, i1 true, i1 %12 br i1 %or.cond, label %"_ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..adapters..fuse..FuseImpl$LT$I$GT$$GT$4next17ha8913137507c2e2bE.exit", label %13 @@ -734,7 +734,7 @@ define hidden { ptr, ptr } @"_ZN106_$LT$itertools..merge_join..MergeBy$LT$I$C$J$ %25 = load ptr, ptr %24, align 8, !alias.scope !145, !noundef !4 %26 = icmp eq ptr %25, null %27 = getelementptr inbounds nuw i8, ptr %0, i64 72 - %28 = load ptr, ptr %27, align 8, !nonnull !4 + %28 = load ptr, ptr %27, align 8, !alias.scope !145, !nonnull !4 %29 = icmp eq ptr %25, %28 %or.cond34 = select i1 %26, i1 true, i1 %29 br i1 %or.cond34, label %"_ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..adapters..fuse..FuseImpl$LT$I$GT$$GT$4next17h19b5b282ae7b2555E.exit.thread", label %30 @@ -834,16 +834,15 @@ define hidden { i64, i32 } @"_ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT tail call void @llvm.experimental.noalias.scope.decl(metadata !173) %5 = getelementptr inbounds nuw i8, ptr %0, i64 8 %6 = load ptr, ptr %5, align 8, !alias.scope !176, !nonnull !4, !noundef !4 - %7 = load ptr, ptr %0, align 8, !alias.scope !176, !nonnull !4, !noundef !4 - %8 = ptrtoint ptr %7 to i64 + %7 = ptrtoint ptr %2 to i64 tail call void @llvm.experimental.noalias.scope.decl(metadata !179) - %9 = icmp eq ptr %7, %6 + %9 = icmp eq ptr %2, %6 br i1 %9, label %"_ZN87_$LT$core..str..iter..CharIndices$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hbf461ba4ba35c2afE.llvm.687266931824691263.exit", label %10 10: ; preds = %4 - %11 = getelementptr inbounds nuw i8, ptr %7, i64 1 + %11 = getelementptr inbounds nuw i8, ptr %2, i64 1 store ptr %11, ptr %0, align 8, !alias.scope !182 - %12 = load i8, ptr %7, align 1, !noalias !185, !noundef !4 + %12 = load i8, ptr %2, align 1, !noalias !185, !noundef !4 %13 = icmp sgt i8 %12, -1 br i1 %13, label %24, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf3d62cf49803c472E.llvm.687266931824691263.exit13.i.i" @@ -852,12 +851,12 @@ define hidden { i64, i32 } @"_ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT %15 = zext nneg i8 %14 to i32 %16 = icmp ne ptr %11, %6 tail call void @llvm.assume(i1 %16) - %17 = getelementptr inbounds nuw i8, ptr %7, i64 2 + %17 = getelementptr inbounds nuw i8, ptr %2, i64 2 store ptr %17, ptr %0, align 8, !alias.scope !186 %18 = load i8, ptr %11, align 1, !noalias !185, !noundef !4 %19 = shl nuw nsw i32 %15, 6 - %20 = and i8 %18, 63 - %21 = zext nneg i8 %20 to i32 + %110 = and i8 %18, 63 + %21 = zext nneg i8 %110 to i32 %22 = or disjoint i32 %19, %21 %23 = icmp samesign ugt i8 %12, -33 br i1 %23, label %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf3d62cf49803c472E.llvm.687266931824691263.exit15.i.i", label %.thread8.i @@ -869,12 +868,12 @@ define hidden { i64, i32 } @"_ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT "_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf3d62cf49803c472E.llvm.687266931824691263.exit15.i.i": ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf3d62cf49803c472E.llvm.687266931824691263.exit13.i.i" %26 = icmp ne ptr %17, %6 tail call void @llvm.assume(i1 %26) - %27 = getelementptr inbounds nuw i8, ptr %7, i64 3 + %27 = getelementptr inbounds nuw i8, ptr %2, i64 3 store ptr %27, ptr %0, align 8, !alias.scope !189 %28 = load i8, ptr %17, align 1, !noalias !185, !noundef !4 %29 = shl nuw nsw i32 %21, 6 - %30 = and i8 %28, 63 - %31 = zext nneg i8 %30 to i32 + %210 = and i8 %28, 63 + %31 = zext nneg i8 %210 to i32 %32 = or disjoint i32 %29, %31 %33 = shl nuw nsw i32 %15, 12 %34 = or disjoint i32 %32, %33 @@ -884,11 +883,11 @@ define hidden { i64, i32 } @"_ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT 36: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf3d62cf49803c472E.llvm.687266931824691263.exit15.i.i" %37 = icmp ne ptr %27, %6 tail call void @llvm.assume(i1 %37) - %38 = getelementptr inbounds nuw i8, ptr %7, i64 4 + %38 = getelementptr inbounds nuw i8, ptr %2, i64 4 store ptr %38, ptr %0, align 8, !alias.scope !192 %39 = load i8, ptr %27, align 1, !noalias !185, !noundef !4 - %40 = shl nuw nsw i32 %15, 18 - %41 = and i32 %40, 1835008 + %310 = shl nuw nsw i32 %15, 18 + %41 = and i32 %310, 1835008 %42 = shl nuw nsw i32 %32, 6 %43 = and i8 %39, 63 %44 = zext nneg i8 %43 to i32 @@ -901,16 +900,16 @@ define hidden { i64, i32 } @"_ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT %48 = phi ptr [ %38, %36 ], [ %11, %24 ], [ %27, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf3d62cf49803c472E.llvm.687266931824691263.exit15.i.i" ], [ %17, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf3d62cf49803c472E.llvm.687266931824691263.exit13.i.i" ] %.sroa.4.0.i.ph10.i = phi i32 [ %46, %36 ], [ %25, %24 ], [ %34, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf3d62cf49803c472E.llvm.687266931824691263.exit15.i.i" ], [ %22, %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf3d62cf49803c472E.llvm.687266931824691263.exit13.i.i" ] %49 = getelementptr inbounds nuw i8, ptr %0, i64 16 - %50 = load i64, ptr %49, align 8, !alias.scope !173, !noundef !4 + %410 = load i64, ptr %49, align 8, !alias.scope !173, !noundef !4 %51 = ptrtoint ptr %48 to i64 - %52 = sub i64 %51, %8 - %53 = add i64 %52, %50 + %52 = sub i64 %51, %7 + %53 = add i64 %52, %410 store i64 %53, ptr %49, align 8, !alias.scope !173 br label %"_ZN87_$LT$core..str..iter..CharIndices$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hbf461ba4ba35c2afE.llvm.687266931824691263.exit" "_ZN87_$LT$core..str..iter..CharIndices$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hbf461ba4ba35c2afE.llvm.687266931824691263.exit": ; preds = %.thread8.i, %36, %4, %1 %.sroa.2.0 = phi i32 [ 1114112, %1 ], [ %.sroa.4.0.i.ph10.i, %.thread8.i ], [ 1114112, %36 ], [ 1114112, %4 ] - %.sroa.0.0 = phi i64 [ undef, %1 ], [ %50, %.thread8.i ], [ undef, %36 ], [ undef, %4 ] + %.sroa.0.0 = phi i64 [ undef, %1 ], [ %410, %.thread8.i ], [ undef, %36 ], [ undef, %4 ] %54 = insertvalue { i64, i32 } poison, i64 %.sroa.0.0, 0 %55 = insertvalue { i64, i32 } %54, i32 %.sroa.2.0, 1 ret { i64, i32 } %55 diff --git a/bench/coreutils-rs/optimized/l1lqbqyvia1m667.ll b/bench/coreutils-rs/optimized/l1lqbqyvia1m667.ll index 5917bdcb37e..c11229c675f 100644 --- a/bench/coreutils-rs/optimized/l1lqbqyvia1m667.ll +++ b/bench/coreutils-rs/optimized/l1lqbqyvia1m667.ll @@ -4928,7 +4928,6 @@ common.resume: ; preds = %.noexc, %71, %185, store i64 %171, ptr %.sroa.0.sroa.8.0..sroa_idx, align 8, !alias.scope !810 %172 = icmp eq ptr %168, null %173 = getelementptr inbounds i8, ptr %168, i64 -80 - %.sroa.0.0.i = select i1 %172, ptr null, ptr %173 br i1 %172, label %.thread, label %196 .thread: ; preds = %169, %._crit_edge, %91 @@ -5895,7 +5894,7 @@ default.unreachable.i.i.i: ; preds = %.noexc82 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %39) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %39, ptr noundef nonnull align 8 dereferenceable(24) %42, i64 24, i1 false) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %38) - invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hf54273bb14505f61E"(ptr noalias noundef nonnull sret({ { { i64, ptr, {} }, i64 } }) align 8 captures(none) dereferenceable(24) %38, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %.sroa.0.0.i) + invoke void @"_ZN60_$LT$alloc..string..String$u20$as$u20$core..clone..Clone$GT$5clone17hf54273bb14505f61E"(ptr noalias noundef nonnull sret({ { { i64, ptr, {} }, i64 } }) align 8 captures(none) dereferenceable(24) %38, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %173) to label %467 unwind label %465 453: ; preds = %"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$12contains_key17h6c3c3b8c43db4bb8E.exit119.thread" diff --git a/bench/delta-rs/optimized/11f8x98axanecwnw.ll b/bench/delta-rs/optimized/11f8x98axanecwnw.ll index fc940bab91f..5ac6ad63a12 100644 --- a/bench/delta-rs/optimized/11f8x98axanecwnw.ll +++ b/bench/delta-rs/optimized/11f8x98axanecwnw.ll @@ -67801,7 +67801,6 @@ define void @_ZN14deltalake_core12data_catalog5unity19UnityCatalogBuilder8from_e %trunc18 = trunc nuw i64 %133 to i1 %134 = load ptr, ptr %56, align 8, !nonnull !4, !align !418 %135 = load i64, ptr %57, align 8 - %.sroa.014.0 = select i1 %trunc18, ptr null, ptr %134 %.sroa.416.0 = select i1 %trunc18, i64 undef, i64 %135 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %22) %or.cond = select i1 %trunc, i1 true, i1 %trunc18 @@ -68015,7 +68014,7 @@ default.unreachable.i: ; preds = %172 %202 = extractvalue { i64, ptr } %175, 1 %203 = icmp ne ptr %202, null call void @llvm.assume(i1 %203) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %202, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14304 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %202, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14304 call void @llvm.experimental.noalias.scope.decl(metadata !14309) %204 = load i64, ptr %92, align 8, !range !266, !alias.scope !14312, !noalias !14296, !noundef !4 %205 = icmp eq i64 %204, -9223372036854775808 @@ -68064,7 +68063,7 @@ default.unreachable.i: ; preds = %172 %217 = extractvalue { i64, ptr } %177, 1 %218 = icmp ne ptr %217, null call void @llvm.assume(i1 %218) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %217, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14322 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %217, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14322 call void @llvm.experimental.noalias.scope.decl(metadata !14327) %219 = load i64, ptr %92, align 8, !range !266, !alias.scope !14330, !noalias !14296, !noundef !4 %220 = icmp eq i64 %219, -9223372036854775808 @@ -68113,7 +68112,7 @@ default.unreachable.i: ; preds = %172 %232 = extractvalue { i64, ptr } %179, 1 %233 = icmp ne ptr %232, null call void @llvm.assume(i1 %233) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %232, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14340 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %232, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14340 call void @llvm.experimental.noalias.scope.decl(metadata !14345) %234 = load i64, ptr %87, align 8, !range !266, !alias.scope !14348, !noalias !14296, !noundef !4 %235 = icmp eq i64 %234, -9223372036854775808 @@ -68162,7 +68161,7 @@ default.unreachable.i: ; preds = %172 %247 = extractvalue { i64, ptr } %181, 1 %248 = icmp ne ptr %247, null call void @llvm.assume(i1 %248) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %247, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14358 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %247, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14358 call void @llvm.experimental.noalias.scope.decl(metadata !14363) %249 = load i64, ptr %87, align 8, !range !266, !alias.scope !14366, !noalias !14296, !noundef !4 %250 = icmp eq i64 %249, -9223372036854775808 @@ -68211,7 +68210,7 @@ default.unreachable.i: ; preds = %172 %262 = extractvalue { i64, ptr } %183, 1 %263 = icmp ne ptr %262, null call void @llvm.assume(i1 %263) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %262, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14376 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %262, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14376 call void @llvm.experimental.noalias.scope.decl(metadata !14381) %264 = load i64, ptr %84, align 8, !range !266, !alias.scope !14384, !noalias !14296, !noundef !4 %265 = icmp eq i64 %264, -9223372036854775808 @@ -68260,7 +68259,7 @@ default.unreachable.i: ; preds = %172 %277 = extractvalue { i64, ptr } %185, 1 %278 = icmp ne ptr %277, null call void @llvm.assume(i1 %278) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %277, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14394 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %277, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14394 call void @llvm.experimental.noalias.scope.decl(metadata !14399) %279 = load i64, ptr %81, align 8, !range !266, !alias.scope !14402, !noalias !14296, !noundef !4 %280 = icmp eq i64 %279, -9223372036854775808 @@ -68309,7 +68308,7 @@ default.unreachable.i: ; preds = %172 %292 = extractvalue { i64, ptr } %187, 1 %293 = icmp ne ptr %292, null call void @llvm.assume(i1 %293) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %292, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14412 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %292, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14412 call void @llvm.experimental.noalias.scope.decl(metadata !14417) %294 = load i64, ptr %78, align 8, !range !266, !alias.scope !14420, !noalias !14296, !noundef !4 %295 = icmp eq i64 %294, -9223372036854775808 @@ -68358,7 +68357,7 @@ default.unreachable.i: ; preds = %172 %307 = extractvalue { i64, ptr } %189, 1 %308 = icmp ne ptr %307, null call void @llvm.assume(i1 %308) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %307, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14430 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %307, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14430 call void @llvm.experimental.noalias.scope.decl(metadata !14435) %309 = load i64, ptr %75, align 8, !range !266, !alias.scope !14438, !noalias !14296, !noundef !4 %310 = icmp eq i64 %309, -9223372036854775808 @@ -68407,7 +68406,7 @@ default.unreachable.i: ; preds = %172 %322 = extractvalue { i64, ptr } %191, 1 %323 = icmp ne ptr %322, null call void @llvm.assume(i1 %323) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %322, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14448 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %322, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14448 call void @llvm.experimental.noalias.scope.decl(metadata !14453) %324 = load i64, ptr %72, align 8, !range !266, !alias.scope !14456, !noalias !14296, !noundef !4 %325 = icmp eq i64 %324, -9223372036854775808 @@ -68456,7 +68455,7 @@ default.unreachable.i: ; preds = %172 %337 = extractvalue { i64, ptr } %193, 1 %338 = icmp ne ptr %337, null call void @llvm.assume(i1 %338) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %337, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14466 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %337, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14466 call void @llvm.experimental.noalias.scope.decl(metadata !14471) %339 = load i64, ptr %69, align 8, !range !266, !alias.scope !14474, !noalias !14296, !noundef !4 %340 = icmp eq i64 %339, -9223372036854775808 @@ -68505,7 +68504,7 @@ default.unreachable.i: ; preds = %172 %352 = extractvalue { i64, ptr } %195, 1 %353 = icmp ne ptr %352, null call void @llvm.assume(i1 %353) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %352, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14484 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %352, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14484 call void @llvm.experimental.noalias.scope.decl(metadata !14489) %354 = load i64, ptr %66, align 8, !range !266, !alias.scope !14492, !noalias !14296, !noundef !4 %355 = icmp eq i64 %354, -9223372036854775808 @@ -68554,7 +68553,7 @@ default.unreachable.i: ; preds = %172 %367 = extractvalue { i64, ptr } %197, 1 %368 = icmp ne ptr %367, null call void @llvm.assume(i1 %368) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %367, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14502 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %367, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14502 call void @llvm.experimental.noalias.scope.decl(metadata !14507) %369 = load i64, ptr %63, align 8, !range !266, !alias.scope !14510, !noalias !14296, !noundef !4 %370 = icmp eq i64 %369, -9223372036854775808 @@ -68603,7 +68602,7 @@ default.unreachable.i: ; preds = %172 %382 = extractvalue { i64, ptr } %199, 1 %383 = icmp ne ptr %382, null call void @llvm.assume(i1 %383) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %382, ptr nonnull readonly align 1 %.sroa.014.0, i64 %.sroa.416.0, i1 false), !noalias !14520 + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %382, ptr nonnull readonly align 1 %134, i64 %.sroa.416.0, i1 false), !noalias !14520 store i64 %381, ptr %17, align 8, !alias.scope !14521, !noalias !14522 store ptr %382, ptr %.sroa.42.0..sroa_idx.i.i74.i, align 8, !alias.scope !14521, !noalias !14522 store i64 %.sroa.416.0, ptr %.sroa.5.0..sroa_idx.i.i75.i, align 8, !alias.scope !14521, !noalias !14522 diff --git a/bench/delta-rs/optimized/43y2svfstmvqcl15.ll b/bench/delta-rs/optimized/43y2svfstmvqcl15.ll index 109eb351e7f..b5e984e0faa 100644 --- a/bench/delta-rs/optimized/43y2svfstmvqcl15.ll +++ b/bench/delta-rs/optimized/43y2svfstmvqcl15.ll @@ -3074,7 +3074,7 @@ _ZN4core4iter8adapters7flatten17and_then_or_clear17h614136aade4c0f95E.exit.threa call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(96) %.sroa.5.sroa.5.i.i.i.i, ptr noundef nonnull align 8 dereferenceable(96) %.sroa.5.i.i.i.i.i.i.i.i, i64 96, i1 false), !noalias !431 call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %.sroa.5.i.i.i.i.i.i.i.i) call void @llvm.experimental.noalias.scope.decl(metadata !432) - %34 = load i64, ptr %.0.i.i, align 8, !range !53, !alias.scope !435, !noalias !436, !noundef !5 + %34 = load i64, ptr %1, align 8, !range !53, !alias.scope !435, !noalias !436, !noundef !5 %35 = icmp eq i64 %34, 0 br i1 %35, label %"_ZN4core3ptr140drop_in_place$LT$core..option..Option$LT$core..result..IntoIter$LT$deltalake_core..kernel..snapshot..log_data..FileStatsAccessor$GT$$GT$$GT$17h5cdc1d6a3e7dd4f1E.exit.i.i.i.i", label %36 @@ -46029,8 +46029,7 @@ define internal fastcc void @_ZN4core4iter8adapters7flatten17and_then_or_clear17 %17 = load ptr, ptr %16, align 8, !alias.scope !7623, !noalias !7624, !nonnull !5, !align !111, !noundef !5 %18 = getelementptr inbounds nuw i8, ptr %1, i64 40 %19 = load ptr, ptr %18, align 8, !alias.scope !7623, !noalias !7624, !nonnull !5, !align !111, !noundef !5 - %.val.i.i.i = load ptr, ptr %1, align 8, !alias.scope !7623, !noalias !7624, !nonnull !5, !noundef !5 - %20 = atomicrmw add ptr %.val.i.i.i, i64 1 monotonic, align 8, !noalias !7626 + %.val.i.i.i = atomicrmw add ptr %4, i64 1 monotonic, align 8, !noalias !7626 %21 = icmp slt i64 %20, 0 br i1 %21, label %22, label %"_ZN68_$LT$alloc..sync..Arc$LT$T$C$A$GT$$u20$as$u20$core..clone..Clone$GT$5clone17he62948af9ea8ce8eE.exit.i.i.i" @@ -46075,7 +46074,7 @@ _ZN4core3ops8function6FnOnce9call_once17hdd9982cf6277d4ddE.exit: ; preds = %"_ZN %.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %3, i64 32 store ptr %24, ptr %.sroa.5.0..sroa_idx.i.i, align 8, !alias.scope !7619, !noalias !7618 %.sroa.62.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %3, i64 40 - store ptr %.val.i.i.i, ptr %.sroa.62.0..sroa_idx.i.i, align 8, !alias.scope !7619, !noalias !7618 + store ptr %4, ptr %.sroa.62.0..sroa_idx.i.i, align 8, !alias.scope !7619, !noalias !7618 %.sroa.7.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %3, i64 48 store ptr %26, ptr %.sroa.7.0..sroa_idx.i.i, align 8, !alias.scope !7619, !noalias !7618 %.sroa.8.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %3, i64 56 @@ -107797,7 +107796,7 @@ common.resume: ; preds = %171, %"_ZN63_$LT$al "_ZN4core3ptr99drop_in_place$LT$$u5b$alloc..sync..Arc$LT$dyn$u20$arrow_array..array..Array$GT$$u3b$$u20$1$u5d$$GT$17h74b33551bce52cb6E.exit": ; preds = %132, %137, %125 %.pn = phi { ptr, i32 } [ %126, %125 ], [ %133, %137 ], [ %133, %132 ] - invoke fastcc void @"_ZN4core3ptr95drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$datafusion_expr..accumulator..Accumulator$GT$$GT$17h2f0605b0406d06daE"(ptr nonnull %.sroa.02.0, ptr nonnull %.sroa.64.0) #41 + invoke fastcc void @"_ZN4core3ptr95drop_in_place$LT$alloc..boxed..Box$LT$dyn$u20$datafusion_expr..accumulator..Accumulator$GT$$GT$17h2f0605b0406d06daE"(ptr nonnull %113, ptr nonnull %.sroa.64.0) #41 to label %.body unwind label %95 125: ; preds = %153 @@ -107813,7 +107812,7 @@ common.resume: ; preds = %171, %"_ZN63_$LT$al store ptr %.val79, ptr %129, align 8 %130 = getelementptr inbounds nuw i8, ptr %.sroa.64.0, i64 32 %131 = load ptr, ptr %130, align 8, !invariant.load !5, !nonnull !5 - invoke void %131(ptr noalias noundef nonnull sret({ i64, [12 x i64] }) align 8 captures(none) dereferenceable(104) %15, ptr noundef nonnull align 1 %.sroa.02.0, ptr noalias noundef nonnull readonly align 8 %14, i64 noundef 1) + invoke void %131(ptr noalias noundef nonnull sret({ i64, [12 x i64] }) align 8 captures(none) dereferenceable(104) %15, ptr noundef nonnull align 1 %113, ptr noalias noundef nonnull readonly align 8 %14, i64 noundef 1) to label %138 unwind label %132 132: ; preds = %"_ZN4core3ptr131drop_in_place$LT$core..result..Result$LT$datafusion_common..scalar..ScalarValue$C$datafusion_common..error..DataFusionError$GT$$GT$17he3bf45609161351aE.exit.i", %142, %141, %127 @@ -107850,7 +107849,7 @@ common.resume: ; preds = %171, %"_ZN63_$LT$al %143 = getelementptr i8, ptr %.sroa.64.0, i64 40 %.val80 = load ptr, ptr %143, align 8 call void @llvm.lifetime.start.p0(i64 112, ptr nonnull %8), !noalias !16385 - invoke void %.val80(ptr noalias noundef nonnull sret({ i64, [13 x i64] }) align 16 captures(none) dereferenceable(112) %8, ptr noundef nonnull align 1 %.sroa.02.0) + invoke void %.val80(ptr noalias noundef nonnull sret({ i64, [13 x i64] }) align 16 captures(none) dereferenceable(112) %8, ptr noundef nonnull align 1 %113) to label %.noexc92 unwind label %132 .noexc92: ; preds = %142 @@ -107909,7 +107908,7 @@ common.resume: ; preds = %171, %"_ZN63_$LT$al "_ZN4core3ptr99drop_in_place$LT$$u5b$alloc..sync..Arc$LT$dyn$u20$arrow_array..array..Array$GT$$u3b$$u20$1$u5d$$GT$17h74b33551bce52cb6E.exit95": ; preds = %149, %153 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %14) %154 = load ptr, ptr %.sroa.64.0, align 8, !invariant.load !5, !nonnull !5 - invoke void %154(ptr noundef nonnull align 1 %.sroa.02.0) + invoke void %154(ptr noundef nonnull align 1 %113) to label %163 unwind label %155 155: ; preds = %"_ZN4core3ptr99drop_in_place$LT$$u5b$alloc..sync..Arc$LT$dyn$u20$arrow_array..array..Array$GT$$u3b$$u20$1$u5d$$GT$17h74b33551bce52cb6E.exit95" diff --git a/bench/diesel-rs/optimized/6cb7zukciz78xvw.ll b/bench/diesel-rs/optimized/6cb7zukciz78xvw.ll index d72d57bc7d2..862dd2e5b3b 100644 --- a/bench/diesel-rs/optimized/6cb7zukciz78xvw.ll +++ b/bench/diesel-rs/optimized/6cb7zukciz78xvw.ll @@ -871,15 +871,11 @@ define hidden void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$ %.val19.i.i.i = phi i64 [ %35, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha058c56977deebd9E.exit.i.i.i" ], [ %.sroa.54.0.copyload, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$9size_hint17h563987331b6289d7E.exit.i.i.i" ] %.sroa.01.023.i.i.i = phi i64 [ %33, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha058c56977deebd9E.exit.i.i.i" ], [ 0, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$9size_hint17h563987331b6289d7E.exit.i.i.i" ] %22 = phi ptr [ %spec.select, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha058c56977deebd9E.exit.i.i.i" ], [ %.sroa.0.0.copyload, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$9size_hint17h563987331b6289d7E.exit.i.i.i" ] - %23 = phi ptr [ %32, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha058c56977deebd9E.exit.i.i.i" ], [ %.sroa.61.0.copyload, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$9size_hint17h563987331b6289d7E.exit.i.i.i" ] - %24 = icmp eq ptr %22, %.sroa.5.0.copyload - %spec.select6 = select i1 %24, ptr null, ptr %22 - %25 = icmp ne ptr %spec.select6, null - tail call void @llvm.assume(i1 %25) - %26 = icmp eq ptr %23, null - %27 = icmp eq ptr %23, %.sroa.8.0.copyload - %28 = select i1 %26, i1 true, i1 %27 - br i1 %28, label %.lr.ph.i.i.i.cont, label %.lr.ph.i.i.i.else + %23 = phi ptr [ %30, %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha058c56977deebd9E.exit.i.i.i" ], [ %.sroa.61.0.copyload, %"_ZN111_$LT$core..iter..adapters..zip..Zip$LT$A$C$B$GT$$u20$as$u20$core..iter..adapters..zip..ZipImpl$LT$A$C$B$GT$$GT$9size_hint17h563987331b6289d7E.exit.i.i.i" ] + %24 = icmp eq ptr %23, null + %spec.select6 = icmp eq ptr %23, %.sroa.8.0.copyload + %25 = select i1 %24, i1 true, i1 %spec.select6 + br i1 %25, label %.lr.ph.i.i.i.cont, label %.lr.ph.i.i.i.else .lr.ph.i.i.i.else: ; preds = %.lr.ph.i.i.i %.else.val = load i8, ptr %23, align 1, !noalias !283 @@ -890,13 +886,14 @@ define hidden void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F$GT$$u20$ %30 = icmp ne i8 %29, 21 tail call void @llvm.assume(i1 %30) call void @llvm.lifetime.start.p0(i64 40, ptr nonnull %.sroa.0.i.i.i.i), !noalias !284 - invoke void @_ZN6diesel5mysql10connection4bind8BindData10for_output17h32203300903517ceE(ptr noalias noundef nonnull sret({ ptr, i64, i64, i32, i32, { i8, i8 }, i8, [5 x i8] }) align 8 captures(none) dereferenceable(40) %.sroa.0.i.i.i.i, i8 noundef %29, ptr noalias noundef nonnull readonly align 8 dereferenceable(128) %spec.select6) + invoke void @_ZN6diesel5mysql10connection4bind8BindData10for_output17h32203300903517ceE(ptr noalias noundef nonnull sret({ ptr, i64, i64, i32, i32, { i8, i8 }, i8, [5 x i8] }) align 8 captures(none) dereferenceable(40) %.sroa.0.i.i.i.i, i8 noundef %29, ptr noalias noundef nonnull readonly align 8 dereferenceable(128) %22) to label %"_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha058c56977deebd9E.exit.i.i.i" unwind label %19, !noalias !288 "_ZN4core4iter8adapters3map8map_fold28_$u7b$$u7b$closure$u7d$$u7d$17ha058c56977deebd9E.exit.i.i.i": ; preds = %.lr.ph.i.i.i.cont - %31 = getelementptr inbounds nuw i8, ptr %23, i64 1 - %32 = select i1 %28, ptr null, ptr %31 - %spec.select.idx = select i1 %24, i64 0, i64 128 + %31 = icmp eq ptr %22, %.sroa.5.0.copyload + %32 = getelementptr inbounds nuw i8, ptr %23, i64 1 + %spec.select.idx = select i1 %26, ptr null, ptr %29 + %spec.select.idx = select i1 %.not, i64 0, i64 128 %spec.select = getelementptr inbounds nuw i8, ptr %22, i64 %spec.select.idx %33 = add nuw nsw i64 %.sroa.01.023.i.i.i, 1 %34 = getelementptr inbounds { ptr, i64, i64, i32, i32, { i8, i8 }, i8, [5 x i8] }, ptr %.sroa.85.0.copyload, i64 %.val19.i.i.i diff --git a/bench/duckdb/optimized/huf_compress.ll b/bench/duckdb/optimized/huf_compress.ll index 2a2fbe8e550..2ba9811db8a 100644 --- a/bench/duckdb/optimized/huf_compress.ll +++ b/bench/duckdb/optimized/huf_compress.ll @@ -459,10 +459,11 @@ define noundef range(i64 -66, 13) i64 @_ZN11duckdb_zstd20HUF_buildCTable_wkspEPm 18: ; preds = %16 %19 = icmp eq i32 %3, 0 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(4096) %13, i8 0, i64 4096, i1 false) %20 = getelementptr inbounds nuw i8, ptr %.0.i, i64 4096 + tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 2 dereferenceable(768) %20, i8 0, i64 768, i1 false) %21 = add nuw nsw i32 %2, 1 %wide.trip.count.i = zext nneg i32 %21 to i64 - tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 4 dereferenceable(4864) %.0.i, i8 0, i64 4864, i1 false) br label %22 22: ; preds = %22, %18 @@ -3072,7 +3073,7 @@ define internal fastcc noundef i64 @_ZN11duckdb_zstdL21HUF_compress_internalEPvm 69: ; preds = %66 %70 = load i32, ptr %13, align 4, !tbaa !11 - %71 = call noundef i32 @_ZN11duckdb_zstd18HUF_validateCTableEPKmPKjj(ptr noundef %9, ptr noundef nonnull %.0.i, i32 noundef %70) + %71 = call noundef i32 @_ZN11duckdb_zstd18HUF_validateCTableEPKmPKjj(ptr noundef %9, ptr noundef nonnull %19, i32 noundef %70) %.not171 = icmp eq i32 %71, 0 br i1 %.not171, label %72, label %.thread222 @@ -3096,9 +3097,9 @@ define internal fastcc noundef i64 @_ZN11duckdb_zstdL21HUF_compress_internalEPvm .thread198: ; preds = %.thread222, %65, %73 %76 = load i32, ptr %13, align 4, !tbaa !11 %77 = getelementptr inbounds nuw i8, ptr %.0.i, i64 1024 - %78 = call noundef i32 @_ZN11duckdb_zstd19HUF_optimalTableLogEjmjPvmPmPKji(i32 noundef %spec.store.select, i64 noundef %3, i32 noundef %76, ptr noundef nonnull %55, i64 noundef 4864, ptr noundef nonnull %77, ptr noundef nonnull %.0.i, i32 noundef %11) + %78 = call noundef i32 @_ZN11duckdb_zstd19HUF_optimalTableLogEjmjPvmPmPKji(i32 noundef %spec.store.select, i64 noundef %3, i32 noundef %76, ptr noundef nonnull %55, i64 noundef 4864, ptr noundef nonnull %77, ptr noundef nonnull %19, i32 noundef %11) %79 = load i32, ptr %13, align 4, !tbaa !11 - %80 = call noundef i64 @_ZN11duckdb_zstd20HUF_buildCTable_wkspEPmPKjjjPvm(ptr noundef nonnull %77, ptr noundef nonnull %.0.i, i32 noundef %79, i32 noundef %78, ptr noundef nonnull %55, i64 noundef 4864) + %80 = call noundef i64 @_ZN11duckdb_zstd20HUF_buildCTable_wkspEPmPKjjjPvm(ptr noundef nonnull %77, ptr noundef nonnull %19, i32 noundef %79, i32 noundef %78, ptr noundef nonnull %55, i64 noundef 4864) %81 = icmp ult i64 %80, -119 br i1 %81, label %82, label %.thread diff --git a/bench/eastl/optimized/TestVariant.ll b/bench/eastl/optimized/TestVariant.ll index bc502249fff..48488eca05a 100644 --- a/bench/eastl/optimized/TestVariant.ll +++ b/bench/eastl/optimized/TestVariant.ll @@ -580,7 +580,7 @@ if.then.i.i.i.i: ; preds = %invoke.cont82 %mul.i.i.i.i = shl nuw i64 %retval.0.i.i.i.i, 1 %cond.i.i.i.i.i = call noundef i64 @llvm.umax.i64(i64 %add.i.i.i, i64 %mul.i.i.i.i) %cond.i3.i.i.i.i = call noundef i64 @llvm.umax.i64(i64 %cond.i.i.i.i.i, i64 %cond.i.i.i.i) - invoke void @_ZN5eastl12basic_stringIcNS_9allocatorEE12set_capacityEm(ptr noundef nonnull align 8 dereferenceable(24) %spec.select.i.i87, i64 noundef %cond.i3.i.i.i.i) + invoke void @_ZN5eastl12basic_stringIcNS_9allocatorEE12set_capacityEm(ptr noundef nonnull align 8 dereferenceable(24) %mStorage.i52, i64 noundef %cond.i3.i.i.i.i) to label %.noexc89 unwind label %lpad65 .noexc89: ; preds = %if.then.i.i.i.i @@ -592,7 +592,7 @@ _ZN5eastl28CharStringUninitializedFillNEPcmc.exit.i.i.i: ; preds = %.noexc89, %i %44 = phi i64 [ %.pre23.i.i.i, %.noexc89 ], [ %40, %invoke.cont82 ] %45 = phi i8 [ %.pre.i.i.i, %.noexc89 ], [ %43, %invoke.cont82 ] %tobool.i.i13.i.i.i = icmp slt i8 %45, 0 - %46 = load ptr, ptr %spec.select.i.i87, align 8 + %46 = load ptr, ptr %mStorage.i52, align 8 %add.ptr.i.i.i.i.i = getelementptr inbounds i8, ptr %46, i64 %44 %conv.i.i.i15.i.i.i = zext nneg i8 %45 to i64 %sub.i.i.i16.i.i.i = sub nsw i64 23, %conv.i.i.i15.i.i.i @@ -632,7 +632,7 @@ invoke.cont85: ; preds = %cond.false.i.i.i.i, land.rhs.i109: ; preds = %invoke.cont85 %spec.select.i.i93 = select i1 %cmp.not.i.i91, ptr %mStorage.i52, ptr null - %52 = load ptr, ptr %spec.select.i.i93, align 8 + %52 = load ptr, ptr %mStorage.i52, align 8 %spec.select.i.i.i110 = select i1 %tobool.i.i.i.i103, ptr %52, ptr %spec.select.i.i93 %lhsc = load i8, ptr %spec.select.i.i.i110, align 1 %cmp4.i112 = icmp eq i8 %lhsc, 97 @@ -890,7 +890,7 @@ invoke.cont24: ; preds = %invoke.cont20 land.rhs.i: ; preds = %invoke.cont24 %spec.select.i.i19 = select i1 %cmp.not.i.i17, ptr %mStorage.i9, ptr null - %10 = load ptr, ptr %spec.select.i.i19, align 8 + %10 = load ptr, ptr %mStorage.i9, align 8 %spec.select.i.i.i = select i1 %tobool.i.i.i.i, ptr %10, ptr %spec.select.i.i19 %bcmp.i = call i32 @bcmp(ptr noundef nonnull dereferenceable(6) %spec.select.i.i.i, ptr noundef nonnull dereferenceable(6) @.str.15, i64 6) %cmp4.i = icmp eq i32 %bcmp.i, 0 diff --git a/bench/folly/optimized/SimpleLoopController.ll b/bench/folly/optimized/SimpleLoopController.ll index 1e58e1cfbf3..09f564196b3 100644 --- a/bench/folly/optimized/SimpleLoopController.ll +++ b/bench/folly/optimized/SimpleLoopController.ll @@ -873,14 +873,12 @@ define linkonce_odr void @_ZNSt19_Sp_counted_deleterIPN5folly16HHWheelTimerBaseI define linkonce_odr void @_ZNSt19_Sp_counted_deleterIPN5folly16HHWheelTimerBaseINSt6chrono8durationIlSt5ratioILl1ELl1000EEEEEENS0_18DelayedDestruction10DestructorESaIvELN9__gnu_cxx12_Lock_policyE2EE10_M_disposeEv(ptr noundef nonnull align 8 dereferenceable(24) %0) unnamed_addr #0 comdat align 2 personality ptr @__gxx_personality_v0 { %2 = getelementptr inbounds nuw i8, ptr %0, i64 16 %3 = load ptr, ptr %2, align 8, !tbaa !157 - %4 = icmp eq ptr %3, null - %5 = getelementptr inbounds nuw i8, ptr %3, i64 200 - %spec.select = select i1 %4, ptr null, ptr %5 - %6 = load ptr, ptr %spec.select, align 8, !tbaa !112 - %7 = getelementptr inbounds nuw i8, ptr %6, i64 24 - %8 = load ptr, ptr %7, align 8 - invoke void %8(ptr noundef nonnull align 8 dereferenceable(13) %spec.select) - to label %_ZNK5folly18DelayedDestruction10DestructorclEPS0_.exit unwind label %9 + %4 = getelementptr inbounds nuw i8, ptr %3, i64 200 + %5 = load ptr, ptr %4, align 8, !tbaa !112 + %spec.select = getelementptr inbounds nuw i8, ptr %5, i64 24 + %6 = load ptr, ptr %spec.select, align 8 + invoke void %7(ptr noundef nonnull align 8 dereferenceable(13) %4) + to label %_ZNK5folly18DelayedDestruction10DestructorclEPS0_.exit unwind label %8 _ZNK5folly18DelayedDestruction10DestructorclEPS0_.exit: ; preds = %1 ret void diff --git a/bench/grpc/optimized/rbac_filter.ll b/bench/grpc/optimized/rbac_filter.ll index fa21ff7968c..bffa1a06024 100644 --- a/bench/grpc/optimized/rbac_filter.ll +++ b/bench/grpc/optimized/rbac_filter.ll @@ -340,26 +340,18 @@ if.else: ; preds = %_ZNK9grpc_core21Ser %index_ = getelementptr inbounds nuw i8, ptr %this, i64 24 %16 = load i64, ptr %index_, align 8 %authorization_engines_.i = getelementptr inbounds nuw i8, ptr %6, i64 8 - %_M_finish.i.i = getelementptr inbounds nuw i8, ptr %6, i64 16 - %17 = load ptr, ptr %_M_finish.i.i, align 8 - %18 = load ptr, ptr %authorization_engines_.i, align 8 - %sub.ptr.lhs.cast.i.i = ptrtoint ptr %17 to i64 - %sub.ptr.rhs.cast.i.i = ptrtoint ptr %18 to i64 - %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast.i.i - %sub.ptr.div.i.i = sdiv exact i64 %sub.ptr.sub.i.i, 112 - %cmp.not.i15 = icmp ult i64 %16, %sub.ptr.div.i.i - %add.ptr.i.i16 = getelementptr inbounds %"class.grpc_core::GrpcAuthorizationEngine", ptr %18, i64 %16 - %spec.select.i = select i1 %cmp.not.i15, ptr %add.ptr.i.i16, ptr null + %_M_finish.i.i = load ptr, ptr %authorization_engines_.i, align 8 + %17 = getelementptr inbounds %"class.grpc_core::GrpcAuthorizationEngine", ptr %_M_finish.i.i, i64 %16 %add.ptr.i.i.i.i.i17 = getelementptr inbounds nuw i8, ptr %call_args, i64 8 %19 = load ptr, ptr %add.ptr.i.i.i.i.i17, align 8 %per_channel_evaluate_args_ = getelementptr inbounds nuw i8, ptr %this, i64 40 store ptr %19, ptr %ref.tmp14, align 8 %channel_args_.i = getelementptr inbounds nuw i8, ptr %ref.tmp14, i64 8 store ptr %per_channel_evaluate_args_, ptr %channel_args_.i, align 8 - %vtable = load ptr, ptr %spec.select.i, align 8 + %vtable = load ptr, ptr %17, align 8 %vfn = getelementptr inbounds nuw i8, ptr %vtable, i64 16 %20 = load ptr, ptr %vfn, align 8 - call void %20(ptr nonnull sret(%"struct.grpc_core::AuthorizationEngine::Decision") align 8 %ref.tmp13, ptr noundef nonnull align 8 dereferenceable(112) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp14) + call void %20(ptr nonnull sret(%"struct.grpc_core::AuthorizationEngine::Decision") align 8 %ref.tmp13, ptr noundef nonnull align 8 dereferenceable(112) %17, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp14) %21 = load i32, ptr %ref.tmp13, align 8 %cmp16 = icmp eq i32 %21, 1 %matching_policy_name.i = getelementptr inbounds nuw i8, ptr %ref.tmp13, i64 8 @@ -484,7 +476,7 @@ _ZN9grpc_core8Activity7currentEv.exit.i.i.i.i: ; preds = %.noexc.i.i, %if.end %vtable.i.i.i.i = load ptr, ptr %42, align 8 %vfn.i.i.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i.i.i, i64 24 %43 = load ptr, ptr %vfn.i.i.i.i, align 8 - invoke void %43(ptr noundef nonnull align 8 dereferenceable(8) %42, i16 noundef zeroext %40) + invoke void %42(ptr noundef nonnull align 8 dereferenceable(8) %42, i16 noundef zeroext %40) to label %_ZN9grpc_core37ClientInitialMetadataOutstandingTokenD2Ev.exit.i unwind label %terminate.lpad.i.i terminate.lpad.i.i: ; preds = %_ZN9grpc_core8Activity7currentEv.exit.i.i.i.i, %39 diff --git a/bench/grpc/optimized/xds_lb_policy_registry.ll b/bench/grpc/optimized/xds_lb_policy_registry.ll index f32f8efae42..a6ae25ba587 100644 --- a/bench/grpc/optimized/xds_lb_policy_registry.ll +++ b/bench/grpc/optimized/xds_lb_policy_registry.ll @@ -1192,14 +1192,7 @@ for.body.lr.ph: ; preds = %envoy_config_cluste %_M_engaged.i.i = getelementptr inbounds nuw i8, ptr %extension, i64 104 %value = getelementptr inbounds nuw i8, ptr %extension, i64 16 %_M_index.i.i.i = getelementptr inbounds nuw i8, ptr %extension, i64 72 - %_M_parent.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 16 - %add.ptr.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 8 - %agg.tmp2.sroa.2.0..sroa_idx.i.i.i.i = getelementptr inbounds nuw i8, ptr %extension, i64 8 - %value.sroa.gep = getelementptr inbounds nuw i8, ptr %extension, i64 24 - %_M_index.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp47, i64 48 - %_M_end_of_storage.i = getelementptr inbounds nuw i8, ptr %agg.result, i64 16 - %_M_finish.i = getelementptr inbounds nuw i8, ptr %agg.result, i64 8 - %_M_parent.i.i.i45 = getelementptr inbounds nuw i8, ptr %ref.tmp48, i64 16 + %_M_parent.i.i.i = getelementptr inbounds nuw i8, ptr %extension, i64 8 %12 = getelementptr inbounds nuw i8, ptr %agg.tmp.i, i64 8 %second.i = getelementptr inbounds nuw i8, ptr %ref.tmp94, i64 32 %_M_index.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp94, i64 80 @@ -1210,10 +1203,17 @@ for.body.lr.ph: ; preds = %envoy_config_cluste %_M_right.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp92, i64 32 %_M_node_count.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp92, i64 40 %_M_index.i.i.i.i.i.i.i.i.i.i55 = getelementptr inbounds nuw i8, ptr %ref.tmp89, i64 48 - %_M_index.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp47, i64 48 + %_M_index.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %agg.result, i64 16 + %_M_finish.i120 = getelementptr inbounds nuw i8, ptr %agg.result, i64 8 + %_M_parent.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 16 + %add.ptr.i.i.i = getelementptr inbounds nuw i8, ptr %this, i64 8 + %value.sroa.gep = getelementptr inbounds nuw i8, ptr %extension, i64 24 + %_M_index.i.i.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp47, i64 48 + %_M_parent.i.i.i45 = getelementptr inbounds nuw i8, ptr %ref.tmp48, i64 16 %_M_index.i.i.i.i.i65 = getelementptr inbounds nuw i8, ptr %ref.tmp89, i64 48 %_M_index.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp94, i64 80 %second.i74 = getelementptr inbounds nuw i8, ptr %ref.tmp94, i64 32 + %_M_index.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %ref.tmp47, i64 48 br label %for.body for.cond: ; preds = %_ZN9grpc_core16ValidationErrors11ScopedFieldD2Ev.exit82 @@ -1309,7 +1309,7 @@ if.then35: ; preds = %if.end31 while.body.lr.ph.i.i.i: ; preds = %if.then35 %agg.tmp2.sroa.0.0.copyload.i.i.i.i = load i64, ptr %extension, align 8 - %agg.tmp2.sroa.2.0.copyload.i.i.i.i = load ptr, ptr %agg.tmp2.sroa.2.0..sroa_idx.i.i.i.i, align 8 + %agg.tmp2.sroa.2.0.copyload.i.i.i.i = load ptr, ptr %agg.tmp82.sroa.2.0.type84.sroa_idx, align 8 br label %while.body.i.i.i while.body.i.i.i: ; preds = %_ZNKSt4lessISt17basic_string_viewIcSt11char_traitsIcEEEclERKS3_S6_.exit.i.i.i, %while.body.lr.ph.i.i.i @@ -1347,7 +1347,7 @@ _ZNKSt4lessISt17basic_string_viewIcSt11char_traitsIcEEEclERKS3_S6_.exit.i.i.i: ; _ZNKSt8_Rb_treeISt17basic_string_viewIcSt11char_traitsIcEESt4pairIKS3_St10unique_ptrIN9grpc_core19XdsLbPolicyRegistry13ConfigFactoryESt14default_deleteIS9_EEESt10_Select1stISD_ESt4lessIS3_ESaISD_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISD_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i: ; preds = %_ZNKSt4lessISt17basic_string_viewIcSt11char_traitsIcEEEclERKS3_S6_.exit.i.i.i %cmp.i.i.i = icmp eq ptr %__y.addr.1.i.i.i, %add.ptr.i.i.i - br i1 %cmp.i.i.i, label %if.end73, label %lor.lhs.false.i.i + br i1 %cmp.i.i.i, label %cleanup, label %lor.lhs.false.i.i lor.lhs.false.i.i: ; preds = %_ZNKSt8_Rb_treeISt17basic_string_viewIcSt11char_traitsIcEESt4pairIKS3_St10unique_ptrIN9grpc_core19XdsLbPolicyRegistry13ConfigFactoryESt14default_deleteIS9_EEESt10_Select1stISD_ESt4lessIS3_ESaISD_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISD_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i %_M_storage.i.i.i3.i.i = getelementptr inbounds nuw i8, ptr %__y.addr.1.i.i.i, i64 32 @@ -1373,7 +1373,7 @@ if.then.i.i.i.i.i: ; preds = %_ZNSt11char_traitsI invoke.cont38: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i, %if.then.i.i.i.i.i %__ret.0.i.i.i.i.i = phi i32 [ %retval.0.i3.i.i.i.i.i, %if.then.i.i.i.i.i ], [ %call.i.i.i.i.i.i, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i ] %cmp.i.i.i.i = icmp slt i32 %__ret.0.i.i.i.i.i, 0 - br i1 %cmp.i.i.i.i, label %if.end73, label %if.then45 + br i1 %cmp.i.i.i.i, label %cleanup, label %if.then45 if.then45: ; preds = %invoke.cont38 %second = getelementptr inbounds nuw i8, ptr %__y.addr.1.i.i.i, i64 48 @@ -1396,12 +1396,12 @@ invoke.cont53: ; preds = %if.then45 call5.i.i.i.i.noexc: ; preds = %invoke.cont53 store ptr %call5.i.i.i.i92, ptr %agg.result, align 8 %add.ptr.i = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i92, i64 56 - store ptr %add.ptr.i, ptr %_M_end_of_storage.i, align 8 + store ptr %add.ptr.i, ptr %_M_end_of_storage.i106, align 8 invoke void @_ZNSt8__detail9__variant17_Copy_assign_baseILb0EJSt9monostatebN9grpc_core12experimental4Json11NumberValueENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt3mapISC_S5_St4lessISC_ESaISt4pairIKSC_S5_EEESt6vectorIS5_SaIS5_EEEEC2ERKSO_(ptr noundef nonnull align 8 dereferenceable(56) %call5.i.i.i.i92, ptr noundef nonnull align 8 dereferenceable(56) %ref.tmp47) to label %for.inc.i.i.i.i.i unwind label %lpad.i.i.i.i.i for.inc.i.i.i.i.i: ; preds = %call5.i.i.i.i.noexc - store ptr %add.ptr.i, ptr %_M_finish.i, align 8 + store ptr %add.ptr.i, ptr %_M_finish.i120, align 8 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp.i.i.i.i) %29 = load i8, ptr %_M_index.i.i.i.i.i, align 8 %cmp.i.i.i.not.i.i = icmp eq i8 %29, -1 @@ -1488,11 +1488,7 @@ lpad57.body: ; preds = %lpad.i.body.thread, call void @_ZNSt3mapINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN9grpc_core12experimental4JsonESt4lessIS5_ESaISt4pairIKS5_S8_EEED2Ev(ptr noundef nonnull align 8 dereferenceable(48) %ref.tmp48) #19 br label %ehcleanup174 -if.end73: ; preds = %_ZNKSt8_Rb_treeISt17basic_string_viewIcSt11char_traitsIcEESt4pairIKS3_St10unique_ptrIN9grpc_core19XdsLbPolicyRegistry13ConfigFactoryESt14default_deleteIS9_EEESt10_Select1stISD_ESt4lessIS3_ESaISD_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISD_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i, %invoke.cont38 - %cmp.i.i47.not = icmp eq i8 %25, 1 - br i1 %cmp.i.i47.not, label %land.lhs.true, label %cleanup - -land.lhs.true: ; preds = %if.end31, %if.end73 +if.end73: ; preds = %if.end31 %44 = load atomic i64, ptr @_ZN9grpc_core17CoreConfiguration7config_E acquire, align 8 %atomic-temp.i.0.i.i = inttoptr i64 %44 to ptr %cmp.not.i = icmp eq i64 %44, 0 @@ -1506,7 +1502,7 @@ invoke.cont78: ; preds = %land.lhs.true, %if. %retval.0.i49 = phi ptr [ %atomic-temp.i.0.i.i, %land.lhs.true ], [ %call1.i50, %if.end.i ] %lb_policy_registry_.i = getelementptr inbounds nuw i8, ptr %retval.0.i49, i64 656 %agg.tmp82.sroa.0.0.copyload = load i64, ptr %extension, align 8 - %agg.tmp82.sroa.2.0.copyload = load ptr, ptr %agg.tmp2.sroa.2.0..sroa_idx.i.i.i.i, align 8 + %agg.tmp82.sroa.2.0.copyload = load ptr, ptr %agg.tmp82.sroa.2.0.type84.sroa_idx, align 8 %call86 = invoke noundef zeroext i1 @_ZNK9grpc_core27LoadBalancingPolicyRegistry25LoadBalancingPolicyExistsESt17basic_string_viewIcSt11char_traitsIcEEPb(ptr noundef nonnull align 8 dereferenceable(48) %lb_policy_registry_.i, i64 %agg.tmp82.sroa.0.0.copyload, ptr %agg.tmp82.sroa.2.0.copyload, ptr noundef null) to label %invoke.cont85 unwind label %lpad37 @@ -1517,7 +1513,7 @@ if.then87: ; preds = %invoke.cont85 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp100) #19 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %agg.tmp.i) %agg.tmp3.sroa.0.0.copyload.i = load i64, ptr %extension, align 8 - %agg.tmp3.sroa.2.0.copyload.i = load ptr, ptr %agg.tmp2.sroa.2.0..sroa_idx.i.i.i.i, align 8 + %agg.tmp3.sroa.2.0.copyload.i = load ptr, ptr %agg.tmp82.sroa.2.0.type84.sroa_idx, align 8 %call.i51 = call { i64, ptr } @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE17_S_to_string_viewESt17basic_string_viewIcS2_E(i64 %agg.tmp3.sroa.0.0.copyload.i, ptr %agg.tmp3.sroa.2.0.copyload.i) #19 %45 = extractvalue { i64, ptr } %call.i51, 0 %46 = extractvalue { i64, ptr } %call.i51, 1 @@ -1639,12 +1635,12 @@ lpad4.i: ; preds = %_ZNSt8_Rb_treeINSt7 call5.i.i.i.i.noexc122: ; preds = %_ZNSt8_Rb_treeINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_N9grpc_core12experimental4JsonEESt10_Select1stISB_ESt4lessIS5_ESaISB_EE17_M_insert_unique_IRKSB_NSH_11_Alloc_nodeEEESt17_Rb_tree_iteratorISB_ESt23_Rb_tree_const_iteratorISB_EOT_RT0_.exit.i store ptr %call5.i.i.i.i123, ptr %agg.result, align 8 %add.ptr.i105 = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i123, i64 56 - store ptr %add.ptr.i105, ptr %_M_end_of_storage.i, align 8 + store ptr %add.ptr.i105, ptr %_M_end_of_storage.i106, align 8 invoke void @_ZNSt8__detail9__variant17_Copy_assign_baseILb0EJSt9monostatebN9grpc_core12experimental4Json11NumberValueENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt3mapISC_S5_St4lessISC_ESaISt4pairIKSC_S5_EEESt6vectorIS5_SaIS5_EEEEC2ERKSO_(ptr noundef nonnull align 8 dereferenceable(56) %call5.i.i.i.i123, ptr noundef nonnull align 8 dereferenceable(56) %ref.tmp89) to label %for.inc.i.i.i.i.i116 unwind label %lpad.i.i.i.i.i110 for.inc.i.i.i.i.i116: ; preds = %call5.i.i.i.i.noexc122 - store ptr %add.ptr.i105, ptr %_M_finish.i, align 8 + store ptr %add.ptr.i105, ptr %_M_finish.i120, align 8 call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %ref.tmp.i.i.i.i64) %61 = load i8, ptr %_M_index.i.i.i.i.i65, align 8 %cmp.i.i.i.not.i.i66 = icmp eq i8 %61, -1 @@ -1765,8 +1761,8 @@ ehcleanup152: ; preds = %ehcleanup137, %lpad call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp100) #19 br label %ehcleanup174 -cleanup: ; preds = %if.end31, %if.then35, %_ZN9grpc_core12experimental4JsonD2Ev.exit, %if.end73, %invoke.cont85, %_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN9grpc_core12experimental4JsonEED2Ev.exit, %if.then30 - %cleanup.dest.slot.1 = phi i32 [ 1, %_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN9grpc_core12experimental4JsonEED2Ev.exit ], [ 1, %if.then30 ], [ 0, %invoke.cont85 ], [ 0, %if.end73 ], [ 1, %_ZN9grpc_core12experimental4JsonD2Ev.exit ], [ 0, %if.then35 ], [ 0, %if.end31 ] +cleanup: ; preds = %invoke.cont38, %_ZNKSt8_Rb_treeISt17basic_string_viewIcSt11char_traitsIcEESt4pairIKS3_St10unique_ptrIN9grpc_core19XdsLbPolicyRegistry13ConfigFactoryESt14default_deleteIS9_EEESt10_Select1stISD_ESt4lessIS3_ESaISD_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISD_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i, %if.then35, %if.end31, %_ZN9grpc_core12experimental4JsonD2Ev.exit, %invoke.cont85, %_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN9grpc_core12experimental4JsonEED2Ev.exit, %if.then30 + %cleanup.dest.slot.1 = phi i32 [ 1, %_ZNSt4pairIKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEN9grpc_core12experimental4JsonEED2Ev.exit ], [ 1, %if.then30 ], [ 0, %invoke.cont85 ], [ 1, %_ZN9grpc_core12experimental4JsonD2Ev.exit ], [ 0, %if.end31 ], [ 0, %if.then35 ], [ 0, %_ZNKSt8_Rb_treeISt17basic_string_viewIcSt11char_traitsIcEESt4pairIKS3_St10unique_ptrIN9grpc_core19XdsLbPolicyRegistry13ConfigFactoryESt14default_deleteIS9_EEESt10_Select1stISD_ESt4lessIS3_ESaISD_EE14_M_lower_boundEPKSt13_Rb_tree_nodeISD_EPKSt18_Rb_tree_node_baseRS5_.exit.i.i ], [ 0, %invoke.cont38 ] %78 = load i8, ptr %_M_engaged.i.i, align 8 %tobool.i.i.i.i = trunc i8 %78 to i1 br i1 %tobool.i.i.i.i, label %if.then.i.i.i.i, label %_ZNSt8optionalIN9grpc_core12XdsExtensionEED2Ev.exit diff --git a/bench/grpc/optimized/xds_server_config_fetcher.ll b/bench/grpc/optimized/xds_server_config_fetcher.ll index 21e0d4d65a4..d7dc1e9043a 100644 --- a/bench/grpc/optimized/xds_server_config_fetcher.ll +++ b/bench/grpc/optimized/xds_server_config_fetcher.ll @@ -3892,7 +3892,6 @@ for.body24.i: ; preds = %for.body16.i, %invo %_M_index.i.i.i.i = getelementptr inbounds nuw i8, ptr %79, i64 192 %80 = load i8, ptr %_M_index.i.i.i.i, align 8 %cmp.i.i.not.i = icmp eq i8 %80, 0 - %spec.select.i.i.i = select i1 %cmp.i.i.not.i, ptr %http_connection_manager.i, ptr null br i1 %cmp.i.i.not.i, label %if.then.i87, label %if.end.i if.then.i87: ; preds = %for.body24.i @@ -3903,7 +3902,7 @@ if.then.i87: ; preds = %for.body24.i while.body.i.i198.i: ; preds = %if.then.i87, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i.i %__x.025.i.i.i = phi ptr [ %__x.0.i.i.i, %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i.i ], [ %__x.023.i.i.i, %if.then.i87 ] %_M_storage.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %__x.025.i.i.i, i64 32 - %call.i.i.i.i199.i = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i.i) + %call.i.i.i.i199.i = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %http_connection_manager.i, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i.i) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i.i.i unwind label %terminate.lpad.i.i.i.i.i terminate.lpad.i.i.i.i.i: ; preds = %while.body.i.i198.i @@ -3938,7 +3937,7 @@ if.end12.i.i.i: ; preds = %if.else.i.i210.i, % %__y.0.lcssa31.i.i.i = phi ptr [ %__y.0.lcssa30.i.i.i, %if.else.i.i210.i ], [ %__x.025.i.i.i, %while.end.i.i.i ] %__j.sroa.0.0.i.i.i = phi ptr [ %call.i.i.i211.i, %if.else.i.i210.i ], [ %__x.025.i.i.i, %while.end.i.i.i ] %_M_storage.i.i.i.i.i202.i = getelementptr inbounds nuw i8, ptr %__j.sroa.0.0.i.i.i, i64 32 - %call.i.i4.i.i.i = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i.i202.i, ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i.i) + %call.i.i4.i.i.i = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i.i202.i, ptr noundef nonnull align 8 dereferenceable(32) %http_connection_manager.i) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit7.i.i.i unwind label %terminate.lpad.i.i5.i.i.i terminate.lpad.i.i5.i.i.i: ; preds = %if.end12.i.i.i @@ -3959,7 +3958,7 @@ if.then.i207.i: ; preds = %_ZNKSt4lessINSt7__c lor.rhs.i223.i: ; preds = %if.then.i207.i %_M_storage.i.i.i.i224.i = getelementptr inbounds nuw i8, ptr %retval.sroa.4.0.i.ph.i.i, i64 32 - %call.i.i.i225.i = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i.i, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i224.i) + %call.i.i.i225.i = invoke noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %http_connection_manager.i, ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i224.i) to label %_ZNKSt4lessINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEclERKS5_S8_.exit.i227.i unwind label %terminate.lpad.i.i.i226.i terminate.lpad.i.i.i226.i: ; preds = %lor.rhs.i223.i @@ -3980,7 +3979,7 @@ lor.end.i.i: ; preds = %_ZNKSt4lessINSt7__c call5.i.i.i.i.i.i.noexc231.i: ; preds = %lor.end.i.i %_M_storage.i.i.i.i.i229.i = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i.i.i232.i, i64 32 - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i.i229.i, ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i.i) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %_M_storage.i.i.i.i.i229.i, ptr noundef nonnull align 8 dereferenceable(32) %http_connection_manager.i) to label %call5.i.noexc.i unwind label %lpad.i.i.i.i.i lpad.i.i.i.i.i: ; preds = %call5.i.i.i.i.i.i.noexc231.i diff --git a/bench/hermes/optimized/Callable.ll b/bench/hermes/optimized/Callable.ll index 3c50808bef7..b65e371065b 100644 --- a/bench/hermes/optimized/Callable.ll +++ b/bench/hermes/optimized/Callable.ll @@ -2856,7 +2856,7 @@ entry: br label %while.cond while.cond: ; preds = %while.cond, %entry - %self.0 = phi ptr [ %0, %entry ], [ %2, %while.cond ] + %self.0 = phi ptr [ %0, %entry ], [ %cond.i.i.i.i.i, %while.cond ] %target_.i = getelementptr inbounds nuw i8, ptr %self.0, i64 24 %agg.tmp.sroa.0.0.copyload.i.i.i = load i32, ptr %target_.i, align 4 %cmp.i.not.i.i.i.i.i = icmp eq i32 %agg.tmp.sroa.0.0.copyload.i.i.i, 0 @@ -2864,10 +2864,11 @@ while.cond: ; preds = %while.cond, %entry %add.i.i.i.i.i.i = add i64 %conv.i.i.i.i.i.i, %1 %2 = inttoptr i64 %add.i.i.i.i.i.i to ptr %cond.i.i.i.i.i = select i1 %cmp.i.not.i.i.i.i.i, ptr null, ptr %2 - %bf.load.i.i.i.i.i.i.i.i.i.i = load i32, ptr %cond.i.i.i.i.i, align 4 + %bf.load.i.i.i.i.i.i.i.i.i.i = load i32, ptr %2, align 4 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i.i.i.i, -16777216 - %cmp.i.i.i.i.i.i.i.i.not = icmp eq i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i, 1140850688 - br i1 %cmp.i.i.i.i.i.i.i.i.not, label %while.cond, label %while.end, !llvm.loop !17 + %cmp.i.i.i.i.i.i.i.i.not = icmp ne i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i, 1140850688 + %tobool.not = or i1 %cmp.i.not.i.i.i.i.i, %cmp.i.i.i.i.i.i.i.i.not + br i1 %tobool.not, label %while.end, label %while.cond, !llvm.loop !17 while.end: ; preds = %while.cond %3 = ptrtoint ptr %cond.i.i.i.i.i to i64 @@ -3272,7 +3273,7 @@ if.end: ; preds = %entry for.cond: ; preds = %_ZSt20uninitialized_copy_nIPN6hermes2vm17GCHermesValueBaseINS1_11HermesValueEEEjSt16reverse_iteratorIPNS1_17PinnedHermesValueEEET1_T_T0_SA_.exit, %if.end %totalArgCount.0 = phi i32 [ %conv.i.i, %if.end ], [ %add, %_ZSt20uninitialized_copy_nIPN6hermes2vm17GCHermesValueBaseINS1_11HermesValueEEEjSt16reverse_iteratorIPNS1_17PinnedHermesValueEEET1_T_T0_SA_.exit ] - %self.addr.0 = phi ptr [ %self, %if.end ], [ %10, %_ZSt20uninitialized_copy_nIPN6hermes2vm17GCHermesValueBaseINS1_11HermesValueEEEjSt16reverse_iteratorIPNS1_17PinnedHermesValueEEET1_T_T0_SA_.exit ] + %self.addr.0 = phi ptr [ %self, %if.end ], [ %cond.i.i.i.i.i, %_ZSt20uninitialized_copy_nIPN6hermes2vm17GCHermesValueBaseINS1_11HermesValueEEEjSt16reverse_iteratorIPNS1_17PinnedHermesValueEEET1_T_T0_SA_.exit ] %argStorage_.i = getelementptr inbounds nuw i8, ptr %self.addr.0, i64 28 %agg.tmp.sroa.0.0.copyload.i.i.i = load i32, ptr %argStorage_.i, align 4 %conv.i.i.i.i = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i to i64 @@ -3327,13 +3328,16 @@ for.body.i.i.i.i.i: ; preds = %if.end17, %for.body _ZSt20uninitialized_copy_nIPN6hermes2vm17GCHermesValueBaseINS1_11HermesValueEEEjSt16reverse_iteratorIPNS1_17PinnedHermesValueEEET1_T_T0_SA_.exit: ; preds = %for.body.i.i.i.i.i, %if.end17 %target_.i = getelementptr inbounds nuw i8, ptr %self.addr.0, i64 24 %agg.tmp.sroa.0.0.copyload.i.i.i57 = load i32, ptr %target_.i, align 4 + %cmp.i.not.i.i.i.i.i = icmp eq i32 %agg.tmp.sroa.0.0.copyload.i.i.i57, 0 %conv.i.i.i.i.i.i = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i57 to i64 %add.i.i.i.i.i.i = add i64 %conv.i.i.i.i.i.i, %4 %10 = inttoptr i64 %add.i.i.i.i.i.i to ptr + %cond.i.i.i.i.i = select i1 %cmp.i.not.i.i.i.i.i, ptr null, ptr %10 %bf.load.i.i.i.i.i.i.i.i.i.i = load i32, ptr %10, align 4 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i.i.i.i, -16777216 - %cmp.i.i.i.i.i.i.i.i.not = icmp eq i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i, 1140850688 - br i1 %cmp.i.i.i.i.i.i.i.i.not, label %for.cond, label %for.end, !llvm.loop !38 + %cmp.i.i.i.i.i.i.i.i.not = icmp ne i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i, 1140850688 + %tobool.not = or i1 %cmp.i.not.i.i.i.i.i, %cmp.i.i.i.i.i.i.i.i.not + br i1 %tobool.not, label %for.end, label %for.cond, !llvm.loop !38 for.end: ; preds = %_ZSt20uninitialized_copy_nIPN6hermes2vm17GCHermesValueBaseINS1_11HermesValueEEEjSt16reverse_iteratorIPNS1_17PinnedHermesValueEEET1_T_T0_SA_.exit %target_.i.le = getelementptr inbounds nuw i8, ptr %self.addr.0, i64 24 diff --git a/bench/hermes/optimized/HermesInternal.ll b/bench/hermes/optimized/HermesInternal.ll index 3712941aae6..5931362a288 100644 --- a/bench/hermes/optimized/HermesInternal.ll +++ b/bench/hermes/optimized/HermesInternal.ll @@ -1379,19 +1379,21 @@ while.body.lr.ph.i: ; preds = %_ZN6hermes2vm13Muta br label %while.body.i while.body.i: ; preds = %while.body.i, %while.body.lr.ph.i - %callable.012.i = phi ptr [ %17, %while.body.lr.ph.i ], [ %19, %while.body.i ] + %callable.012.i = phi ptr [ %17, %while.body.lr.ph.i ], [ %cond.i.i.i.i.i.i, %while.body.i ] %target_.i.i = getelementptr inbounds nuw i8, ptr %callable.012.i, i64 24 %agg.tmp.sroa.0.0.copyload.i.i.i.i = load i32, ptr %target_.i.i, align 4 + %cmp.i.not.i.i.i.i.i.i = icmp eq i32 %agg.tmp.sroa.0.0.copyload.i.i.i.i, 0 %conv.i.i.i.i.i.i.i = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i.i to i64 %add.i.i.i.i.i.i.i = add i64 %conv.i.i.i.i.i.i.i, %18 %19 = inttoptr i64 %add.i.i.i.i.i.i.i to ptr + %cond.i.i.i.i.i.i = select i1 %cmp.i.not.i.i.i.i.i.i, ptr null, ptr %19 %bf.load.i.i.i.i.i.i.i.i.i.i.i = load i32, ptr %19, align 4 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i.i.i.i.i, -16777216 %cmp.i.i.i.i.i.i.i.i.not.i = icmp eq i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i.i, 1140850688 br i1 %cmp.i.i.i.i.i.i.i.i.not.i, label %while.body.i, label %while.end.i, !llvm.loop !24 while.end.i: ; preds = %while.body.i, %_ZN6hermes2vm13MutableHandleINS0_11HermesValueEEC2ERNS0_15HandleRootOwnerES2_.exit - %callable.0.lcssa.i = phi ptr [ %17, %_ZN6hermes2vm13MutableHandleINS0_11HermesValueEEC2ERNS0_15HandleRootOwnerES2_.exit ], [ %19, %while.body.i ] + %callable.0.lcssa.i = phi ptr [ %17, %_ZN6hermes2vm13MutableHandleINS0_11HermesValueEEC2ERNS0_15HandleRootOwnerES2_.exit ], [ %cond.i.i.i.i.i.i, %while.body.i ] %bf.load.i.i.i.i.i.i.i.i.i.i.lcssa.i = phi i32 [ %bf.load.i.i.i.i.i.i.i.i.i.i9.i, %_ZN6hermes2vm13MutableHandleINS0_11HermesValueEEC2ERNS0_15HandleRootOwnerES2_.exit ], [ %bf.load.i.i.i.i.i.i.i.i.i.i.i, %while.body.i ] %20 = add i32 %bf.load.i.i.i.i.i.i.i.i.i.i.lcssa.i, -1291845632 %21 = icmp ult i32 %20, -67108864 diff --git a/bench/hermes/optimized/Inlining.ll b/bench/hermes/optimized/Inlining.ll index 3112885fd05..e5387832d2c 100644 --- a/bench/hermes/optimized/Inlining.ll +++ b/bench/hermes/optimized/Inlining.ll @@ -205,7 +205,7 @@ for.end.i: ; preds = %for.cond.i, %if.end br i1 %26, label %_ZN6hermesL12canBeInlinedEPNS_8FunctionES1_.exit.thread, label %if.end16.i if.end16.i: ; preds = %for.end.i - call fastcc void @_ZN6hermesL8orderDFSEPNS_8FunctionE(ptr noalias align 8 %ref.tmp.i, ptr noundef nonnull readonly %16) + call fastcc void @_ZN6hermesL8orderDFSEPNS_8FunctionE(ptr noalias align 8 %ref.tmp.i, ptr noundef nonnull readonly %sub.ptr.i.i.i) %27 = load ptr, ptr %ref.tmp.i, align 8 %28 = load i32, ptr %Size.i17.i, align 8 %conv.i18.i = zext i32 %28 to i64 @@ -778,8 +778,8 @@ for.end.i39: ; preds = %_ZN4llvh12DenseMapB %87 = load ptr, ptr %scopeDesc_.i.i, align 8 %parent_.i.i = getelementptr inbounds nuw i8, ptr %87, i64 40 %88 = load ptr, ptr %parent_.i.i, align 8 - call fastcc void @_ZN6hermesL15cloneScopesIntoEPNS_8FunctionEPNS_9ScopeDescES3_RN4llvh8DenseMapIPNS_5ValueES7_NS4_12DenseMapInfoIS7_EENS4_6detail12DenseMapPairIS7_S7_EEEE(ptr noundef nonnull %16, ptr noundef %87, ptr noundef %88, ptr noundef nonnull align 8 dereferenceable(20) %operandMap.i) - call fastcc void @_ZN6hermesL8orderDFSEPNS_8FunctionE(ptr noalias align 8 %order.i, ptr noundef nonnull %16) + call fastcc void @_ZN6hermesL15cloneScopesIntoEPNS_8FunctionEPNS_9ScopeDescES3_RN4llvh8DenseMapIPNS_5ValueES7_NS4_12DenseMapInfoIS7_EENS4_6detail12DenseMapPairIS7_S7_EEEE(ptr noundef nonnull %sub.ptr.i.i.i, ptr noundef %87, ptr noundef %88, ptr noundef nonnull align 8 dereferenceable(20) %operandMap.i) + call fastcc void @_ZN6hermesL8orderDFSEPNS_8FunctionE(ptr noalias align 8 %order.i, ptr noundef nonnull %sub.ptr.i.i.i) %89 = load ptr, ptr %order.i, align 8 %90 = load i32, ptr %Size.i137.i, align 8 %conv.i138.i = zext i32 %90 to i64 @@ -3016,15 +3016,13 @@ _ZN4llvh12DenseMapBaseINS_8DenseMapIPN6hermes5ValueES4_NS_12DenseMapInfoIS4_EENS %retval.0.i.i393.i = phi ptr [ %TheBucket.addr.0.i, %_ZN4llvh12DenseMapBaseINS_8DenseMapIPN6hermes5ValueES4_NS_12DenseMapInfoIS4_EENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_E20InsertIntoBucketImplIS4_EEPS9_RKS4_RKT_SD_.exit ], [ %add.ptr21.i.i.i.i374.i, %if.end.i.i.i.i366.i ], [ %add.ptr.i.i.i.i391.i, %if.end13.i.i.i.i382.i ] %second.i394.i = getelementptr inbounds nuw i8, ptr %retval.0.i.i393.i, i64 8 %334 = load ptr, ptr %second.i394.i, align 8 - %335 = icmp eq ptr %334, null %sub.ptr.i.i403.i = getelementptr inbounds i8, ptr %334, i64 -16 - %336 = select i1 %335, ptr null, ptr %sub.ptr.i.i403.i - %337 = load i32, ptr %Size.i.i.i.i.i.i, align 8 - %cmp174.not703.i = icmp eq i32 %337, 0 + %336 = load i32, ptr %Size.i.i.i.i.i.i, align 8 + %337 = icmp eq i32 %335, 0 br i1 %cmp174.not703.i, label %for.inc181.i, label %for.body175.preheader.i for.body175.preheader.i: ; preds = %_ZN4llvh12DenseMapBaseINS_8DenseMapIPN6hermes5ValueES4_NS_12DenseMapInfoIS4_EENS_6detail12DenseMapPairIS4_S4_EEEES4_S4_S6_S9_EixEOS4_.exit402.i - %338 = zext i32 %337 to i64 + %338 = zext i32 %335 to i64 br label %for.body175.i for.body175.i: ; preds = %for.body175.i, %for.body175.preheader.i @@ -3033,7 +3031,7 @@ for.body175.i: ; preds = %for.body175.i, %for %arrayidx.i217.i = getelementptr inbounds nuw ptr, ptr %339, i64 %indvars.iv.i %340 = load ptr, ptr %arrayidx.i217.i, align 8 %341 = trunc nuw i64 %indvars.iv.i to i32 - call void @_ZN6hermes11Instruction10setOperandEPNS_5ValueEj(ptr noundef nonnull align 8 dereferenceable(132) %336, ptr noundef %340, i32 noundef %341) #11 + call void @_ZN6hermes11Instruction10setOperandEPNS_5ValueEj(ptr noundef nonnull align 8 dereferenceable(132) %sub.ptr.i.i403.i, ptr noundef %340, i32 noundef %341) #11 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %cmp174.not.i = icmp eq i64 %indvars.iv.next.i, %338 br i1 %cmp174.not.i, label %for.inc181.i, label %for.body175.i, !llvm.loop !9 diff --git a/bench/hermes/optimized/JSONParser.ll b/bench/hermes/optimized/JSONParser.ll index 5e1ca0eade4..32822cd3f0a 100644 --- a/bench/hermes/optimized/JSONParser.ll +++ b/bench/hermes/optimized/JSONParser.ll @@ -2002,24 +2002,18 @@ declare void @_ZN4llvh14FoldingSetBase6anchorEv(ptr noundef nonnull align 8 dere ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZNK4llvh10FoldingSetIN6hermes6parser10JSONStringEE14GetNodeProfileEPNS_14FoldingSetBase4NodeERNS_16FoldingSetNodeIDE(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %N, ptr noundef nonnull align 8 dereferenceable(144) %ID) unnamed_addr #1 comdat align 2 { entry: - %0 = icmp eq ptr %N, null - %sub.ptr = getelementptr inbounds i8, ptr %N, i64 -8 - %1 = select i1 %0, ptr null, ptr %sub.ptr - %value_.i.i = getelementptr inbounds nuw i8, ptr %1, i64 16 - %2 = load ptr, ptr %value_.i.i, align 8 - tail call void @_ZN4llvh16FoldingSetNodeID10AddPointerEPKv(ptr noundef nonnull align 8 dereferenceable(144) %ID, ptr noundef %2) #18 + %0 = getelementptr inbounds nuw i8, ptr %N, i64 8 + %sub.ptr = load ptr, ptr %0, align 8 + tail call void @_ZN4llvh16FoldingSetNodeID10AddPointerEPKv(ptr noundef nonnull align 8 dereferenceable(144) %ID, ptr noundef %sub.ptr) #18 ret void } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden noundef zeroext i1 @_ZNK4llvh10FoldingSetIN6hermes6parser10JSONStringEE10NodeEqualsEPNS_14FoldingSetBase4NodeERKNS_16FoldingSetNodeIDEjRS8_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %N, ptr noundef nonnull align 8 dereferenceable(144) %ID, i32 noundef %IDHash, ptr noundef nonnull align 8 dereferenceable(144) %TempID) unnamed_addr #1 comdat align 2 { entry: - %0 = icmp eq ptr %N, null - %sub.ptr = getelementptr inbounds i8, ptr %N, i64 -8 - %1 = select i1 %0, ptr null, ptr %sub.ptr - %value_.i.i.i = getelementptr inbounds nuw i8, ptr %1, i64 16 - %2 = load ptr, ptr %value_.i.i.i, align 8 - tail call void @_ZN4llvh16FoldingSetNodeID10AddPointerEPKv(ptr noundef nonnull align 8 dereferenceable(144) %TempID, ptr noundef %2) #18 + %0 = getelementptr inbounds nuw i8, ptr %N, i64 8 + %sub.ptr = load ptr, ptr %0, align 8 + tail call void @_ZN4llvh16FoldingSetNodeID10AddPointerEPKv(ptr noundef nonnull align 8 dereferenceable(144) %TempID, ptr noundef %sub.ptr) #18 %call.i = tail call noundef zeroext i1 @_ZNK4llvh16FoldingSetNodeIDeqERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %TempID, ptr noundef nonnull align 8 dereferenceable(144) %ID) #18 ret i1 %call.i } @@ -2027,12 +2021,9 @@ entry: ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden noundef i32 @_ZNK4llvh10FoldingSetIN6hermes6parser10JSONStringEE15ComputeNodeHashEPNS_14FoldingSetBase4NodeERNS_16FoldingSetNodeIDE(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %N, ptr noundef nonnull align 8 dereferenceable(144) %TempID) unnamed_addr #1 comdat align 2 { entry: - %0 = icmp eq ptr %N, null - %sub.ptr = getelementptr inbounds i8, ptr %N, i64 -8 - %1 = select i1 %0, ptr null, ptr %sub.ptr - %value_.i.i.i = getelementptr inbounds nuw i8, ptr %1, i64 16 - %2 = load ptr, ptr %value_.i.i.i, align 8 - tail call void @_ZN4llvh16FoldingSetNodeID10AddPointerEPKv(ptr noundef nonnull align 8 dereferenceable(144) %TempID, ptr noundef %2) #18 + %0 = getelementptr inbounds nuw i8, ptr %N, i64 8 + %sub.ptr = load ptr, ptr %0, align 8 + tail call void @_ZN4llvh16FoldingSetNodeID10AddPointerEPKv(ptr noundef nonnull align 8 dereferenceable(144) %TempID, ptr noundef %sub.ptr) #18 %call.i = tail call noundef i32 @_ZNK4llvh16FoldingSetNodeID11ComputeHashEv(ptr noundef nonnull align 8 dereferenceable(144) %TempID) #18 ret i32 %call.i } @@ -2046,24 +2037,18 @@ declare noundef i32 @_ZNK4llvh16FoldingSetNodeID11ComputeHashEv(ptr noundef nonn ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZNK4llvh10FoldingSetIN6hermes6parser10JSONNumberEE14GetNodeProfileEPNS_14FoldingSetBase4NodeERNS_16FoldingSetNodeIDE(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %N, ptr noundef nonnull align 8 dereferenceable(144) %ID) unnamed_addr #1 comdat align 2 { entry: - %0 = icmp eq ptr %N, null - %sub.ptr = getelementptr inbounds i8, ptr %N, i64 -8 - %1 = select i1 %0, ptr null, ptr %sub.ptr - %value_.i.i = getelementptr inbounds nuw i8, ptr %1, i64 16 - %2 = load i64, ptr %value_.i.i, align 8 - tail call void @_ZN4llvh16FoldingSetNodeID10AddIntegerEm(ptr noundef nonnull align 8 dereferenceable(144) %ID, i64 noundef %2) #18 + %0 = getelementptr inbounds nuw i8, ptr %N, i64 8 + %sub.ptr = load i64, ptr %0, align 8 + tail call void @_ZN4llvh16FoldingSetNodeID10AddIntegerEm(ptr noundef nonnull align 8 dereferenceable(144) %ID, i64 noundef %sub.ptr) #18 ret void } ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden noundef zeroext i1 @_ZNK4llvh10FoldingSetIN6hermes6parser10JSONNumberEE10NodeEqualsEPNS_14FoldingSetBase4NodeERKNS_16FoldingSetNodeIDEjRS8_(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %N, ptr noundef nonnull align 8 dereferenceable(144) %ID, i32 noundef %IDHash, ptr noundef nonnull align 8 dereferenceable(144) %TempID) unnamed_addr #1 comdat align 2 { entry: - %0 = icmp eq ptr %N, null - %sub.ptr = getelementptr inbounds i8, ptr %N, i64 -8 - %1 = select i1 %0, ptr null, ptr %sub.ptr - %value_.i.i.i = getelementptr inbounds nuw i8, ptr %1, i64 16 - %2 = load i64, ptr %value_.i.i.i, align 8 - tail call void @_ZN4llvh16FoldingSetNodeID10AddIntegerEm(ptr noundef nonnull align 8 dereferenceable(144) %TempID, i64 noundef %2) #18 + %0 = getelementptr inbounds nuw i8, ptr %N, i64 8 + %sub.ptr = load i64, ptr %0, align 8 + tail call void @_ZN4llvh16FoldingSetNodeID10AddIntegerEm(ptr noundef nonnull align 8 dereferenceable(144) %TempID, i64 noundef %sub.ptr) #18 %call.i = tail call noundef zeroext i1 @_ZNK4llvh16FoldingSetNodeIDeqERKS0_(ptr noundef nonnull align 8 dereferenceable(144) %TempID, ptr noundef nonnull align 8 dereferenceable(144) %ID) #18 ret i1 %call.i } @@ -2071,12 +2056,9 @@ entry: ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden noundef i32 @_ZNK4llvh10FoldingSetIN6hermes6parser10JSONNumberEE15ComputeNodeHashEPNS_14FoldingSetBase4NodeERNS_16FoldingSetNodeIDE(ptr noundef nonnull align 8 dereferenceable(24) %this, ptr noundef %N, ptr noundef nonnull align 8 dereferenceable(144) %TempID) unnamed_addr #1 comdat align 2 { entry: - %0 = icmp eq ptr %N, null - %sub.ptr = getelementptr inbounds i8, ptr %N, i64 -8 - %1 = select i1 %0, ptr null, ptr %sub.ptr - %value_.i.i.i = getelementptr inbounds nuw i8, ptr %1, i64 16 - %2 = load i64, ptr %value_.i.i.i, align 8 - tail call void @_ZN4llvh16FoldingSetNodeID10AddIntegerEm(ptr noundef nonnull align 8 dereferenceable(144) %TempID, i64 noundef %2) #18 + %0 = getelementptr inbounds nuw i8, ptr %N, i64 8 + %sub.ptr = load i64, ptr %0, align 8 + tail call void @_ZN4llvh16FoldingSetNodeID10AddIntegerEm(ptr noundef nonnull align 8 dereferenceable(144) %TempID, i64 noundef %sub.ptr) #18 %call.i = tail call noundef i32 @_ZNK4llvh16FoldingSetNodeID11ComputeHashEv(ptr noundef nonnull align 8 dereferenceable(144) %TempID) #18 ret i32 %call.i } diff --git a/bench/hermes/optimized/Operations.ll b/bench/hermes/optimized/Operations.ll index db3fadbc3e2..4dcd81ed3ba 100644 --- a/bench/hermes/optimized/Operations.ll +++ b/bench/hermes/optimized/Operations.ll @@ -7337,19 +7337,21 @@ while.body.lr.ph.i: ; preds = %while.cond.preheade br label %while.body.i while.body.i: ; preds = %while.body.i, %while.body.lr.ph.i - %callable.addr.043.i = phi ptr [ %0, %while.body.lr.ph.i ], [ %4, %while.body.i ] + %callable.addr.043.i = phi ptr [ %0, %while.body.lr.ph.i ], [ %cond.i.i.i.i.i.i, %while.body.i ] %target_.i.i = getelementptr inbounds nuw i8, ptr %callable.addr.043.i, i64 24 %agg.tmp.sroa.0.0.copyload.i.i.i.i = load i32, ptr %target_.i.i, align 4 + %cmp.i.not.i.i.i.i.i.i = icmp eq i32 %agg.tmp.sroa.0.0.copyload.i.i.i.i, 0 %conv.i.i.i.i.i.i.i = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i.i to i64 %add.i.i.i.i.i.i.i = add i64 %conv.i.i.i.i.i.i.i, %3 %4 = inttoptr i64 %add.i.i.i.i.i.i.i to ptr + %cond.i.i.i.i.i.i = select i1 %cmp.i.not.i.i.i.i.i.i, ptr null, ptr %4 %bf.load.i.i.i.i.i.i.i.i.i.i.i1 = load i32, ptr %4, align 4 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i.i.i.i.i1, -16777216 %cmp.i.i.i.i.i.i.i.i.not.i = icmp eq i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i.i, 1140850688 br i1 %cmp.i.i.i.i.i.i.i.i.not.i, label %while.body.i, label %while.end.i, !llvm.loop !58 while.end.i: ; preds = %while.body.i, %while.cond.preheader.i - %callable.addr.0.lcssa.i = phi ptr [ %0, %while.cond.preheader.i ], [ %4, %while.body.i ] + %callable.addr.0.lcssa.i = phi ptr [ %0, %while.cond.preheader.i ], [ %cond.i.i.i.i.i.i, %while.body.i ] %bf.load.i.i.i.i.i.i.i.i.i.i.lcssa.i = phi i32 [ %bf.load.i.i.i.i.i.i.i.i.i.i.i, %while.cond.preheader.i ], [ %bf.load.i.i.i.i.i.i.i.i.i.i.i1, %while.body.i ] %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i.lcssa.i = phi i32 [ %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i41.i, %while.cond.preheader.i ], [ %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i.i, %while.body.i ] %5 = add i32 %bf.load.i.i.i.i.i.i.i.i.i.i.lcssa.i, -1291845632 @@ -7417,19 +7419,21 @@ while.body.lr.ph: ; preds = %while.cond.preheade br label %while.body while.body: ; preds = %while.body.lr.ph, %while.body - %callable.addr.043 = phi ptr [ %callable, %while.body.lr.ph ], [ %1, %while.body ] + %callable.addr.043 = phi ptr [ %callable, %while.body.lr.ph ], [ %cond.i.i.i.i.i, %while.body ] %target_.i = getelementptr inbounds nuw i8, ptr %callable.addr.043, i64 24 %agg.tmp.sroa.0.0.copyload.i.i.i = load i32, ptr %target_.i, align 4 + %cmp.i.not.i.i.i.i.i = icmp eq i32 %agg.tmp.sroa.0.0.copyload.i.i.i, 0 %conv.i.i.i.i.i.i = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i to i64 %add.i.i.i.i.i.i = add i64 %conv.i.i.i.i.i.i, %0 %1 = inttoptr i64 %add.i.i.i.i.i.i to ptr + %cond.i.i.i.i.i = select i1 %cmp.i.not.i.i.i.i.i, ptr null, ptr %1 %bf.load.i.i.i.i.i.i.i.i.i.i = load i32, ptr %1, align 4 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i.i.i.i, -16777216 %cmp.i.i.i.i.i.i.i.i.not = icmp eq i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i, 1140850688 br i1 %cmp.i.i.i.i.i.i.i.i.not, label %while.body, label %while.end, !llvm.loop !58 while.end: ; preds = %while.body, %while.cond.preheader - %callable.addr.0.lcssa = phi ptr [ %callable, %while.cond.preheader ], [ %1, %while.body ] + %callable.addr.0.lcssa = phi ptr [ %callable, %while.cond.preheader ], [ %cond.i.i.i.i.i, %while.body ] %bf.load.i.i.i.i.i.i.i.i.i.i.lcssa = phi i32 [ %bf.load.i.i.i.i.i.i.i.i.i.i40, %while.cond.preheader ], [ %bf.load.i.i.i.i.i.i.i.i.i.i, %while.body ] %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i.lcssa = phi i32 [ %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i41, %while.cond.preheader ], [ %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i, %while.body ] %2 = add i32 %bf.load.i.i.i.i.i.i.i.i.i.i.lcssa, -1291845632 @@ -7509,7 +7513,7 @@ while.body.lr.ph: ; preds = %if.end br label %while.body while.body: ; preds = %while.body.lr.ph, %while.body - %ctor.092 = phi ptr [ %0, %while.body.lr.ph ], [ %4, %while.body ] + %ctor.092 = phi ptr [ %0, %while.body.lr.ph ], [ %cond.i.i.i.i.i, %while.body ] %target_.i = getelementptr inbounds nuw i8, ptr %ctor.092, i64 24 %agg.tmp.sroa.0.0.copyload.i.i.i = load i32, ptr %target_.i, align 4 %cmp.i.not.i.i.i.i.i = icmp eq i32 %agg.tmp.sroa.0.0.copyload.i.i.i, 0 @@ -7517,7 +7521,7 @@ while.body: ; preds = %while.body.lr.ph, % %add.i.i.i.i.i.i = add i64 %conv.i.i.i.i.i.i, %3 %4 = inttoptr i64 %add.i.i.i.i.i.i to ptr %cond.i.i.i.i.i = select i1 %cmp.i.not.i.i.i.i.i, ptr null, ptr %4 - %bf.load.i.i.i.i.i.i.i.i.i.i = load i32, ptr %cond.i.i.i.i.i, align 4 + %bf.load.i.i.i.i.i.i.i.i.i.i = load i32, ptr %4, align 4 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i.i.i.i, -16777216 %cmp.i.i.i.i.i.i.i.i.not = icmp eq i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i, 1140850688 br i1 %cmp.i.i.i.i.i.i.i.i.not, label %while.body, label %while.end.loopexit, !llvm.loop !59 @@ -8234,7 +8238,7 @@ if.end2.lr.ph: ; preds = %while.body.preheade br label %if.end2 if.end2: ; preds = %if.end2.lr.ph, %if.end9 - %obj.addr.020 = phi ptr [ %obj, %if.end2.lr.ph ], [ %3, %if.end9 ] + %obj.addr.020 = phi ptr [ %obj, %if.end2.lr.ph ], [ %cond.i.i.i.i.i, %if.end9 ] %flags_.i = getelementptr inbounds nuw i8, ptr %obj.addr.020, i64 4 %bf.load.i10 = load i32, ptr %flags_.i, align 4 %1 = and i32 %bf.load.i10, 128 @@ -8268,9 +8272,11 @@ if.then7: ; preds = %if.end5 if.end9: ; preds = %if.end5 %call.i = tail call noundef nonnull align 4 dereferenceable(8) ptr @_ZN6hermes2vm6detail5slotsEPNS0_8JSObjectE(ptr noundef nonnull %obj.addr.020) #17 %agg.tmp.sroa.0.0.copyload.i.i.i = load i32, ptr %call.i, align 4 + %cmp.i.not.i.i.i.i.i = icmp eq i32 %agg.tmp.sroa.0.0.copyload.i.i.i, 0 %conv.i.i.i.i.i.i = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i to i64 %add.i.i.i.i.i.i = add i64 %conv.i.i.i.i.i.i, %0 %3 = inttoptr i64 %add.i.i.i.i.i.i to ptr + %cond.i.i.i.i.i = select i1 %cmp.i.not.i.i.i.i.i, ptr null, ptr %3 %bf.load.i.i.i.i.i.i.i.i.i = load i32, ptr %3, align 4 %bf.lshr.i.i.mask.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i.i.i, -16777216 %cmp.i.i.i.i.i.i.i = icmp eq i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i, 536870912 @@ -8388,7 +8394,7 @@ if.end2.lr.ph.i: ; preds = %while.body.preheade br label %if.end2.i if.end2.i: ; preds = %if.end9.i, %if.end2.lr.ph.i - %obj.addr.020.i = phi ptr [ %12, %if.end2.lr.ph.i ], [ %17, %if.end9.i ] + %obj.addr.020.i = phi ptr [ %12, %if.end2.lr.ph.i ], [ %cond.i.i.i.i.i.i, %if.end9.i ] %flags_.i.i = getelementptr inbounds nuw i8, ptr %obj.addr.020.i, i64 4 %bf.load.i10.i = load i32, ptr %flags_.i.i, align 4 %14 = and i32 %bf.load.i10.i, 128 @@ -8422,9 +8428,11 @@ if.then7.i: ; preds = %if.end5.i if.end9.i: ; preds = %if.end5.i %call.i.i = tail call noundef nonnull align 4 dereferenceable(8) ptr @_ZN6hermes2vm6detail5slotsEPNS0_8JSObjectE(ptr noundef nonnull %obj.addr.020.i) #17 %agg.tmp.sroa.0.0.copyload.i.i.i.i = load i32, ptr %call.i.i, align 4 + %cmp.i.not.i.i.i.i.i.i = icmp eq i32 %agg.tmp.sroa.0.0.copyload.i.i.i.i, 0 %conv.i.i.i.i.i.i.i = zext i32 %agg.tmp.sroa.0.0.copyload.i.i.i.i to i64 %add.i.i.i.i.i.i.i = add i64 %conv.i.i.i.i.i.i.i, %13 %17 = inttoptr i64 %add.i.i.i.i.i.i.i to ptr + %cond.i.i.i.i.i.i = select i1 %cmp.i.not.i.i.i.i.i.i, ptr null, ptr %17 %bf.load.i.i.i.i.i.i.i.i.i.i12 = load i32, ptr %17, align 4 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i = and i32 %bf.load.i.i.i.i.i.i.i.i.i.i12, -16777216 %cmp.i.i.i.i.i.i.i.i = icmp eq i32 %bf.lshr.i.i.mask.i.i.i.i.i.i.i.i, 536870912 diff --git a/bench/hermes/optimized/PassManager.ll b/bench/hermes/optimized/PassManager.ll index a266148c5a8..3f3f33ca523 100644 --- a/bench/hermes/optimized/PassManager.ll +++ b/bench/hermes/optimized/PassManager.ll @@ -364,14 +364,10 @@ if.end: ; preds = %entry for.body: ; preds = %if.end, %for.body %__begin1.sroa.0.07 = phi ptr [ %incdec.ptr.i, %for.body ], [ %1, %if.end ] %3 = load ptr, ptr %__begin1.sroa.0.07, align 8 - %kind.i.i.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %3, i64 8 - %4 = load i32, ptr %kind.i.i.i.i.i.i.i.i, align 8 - %cmp.i.i.i.i.i.i.i = icmp eq i32 %4, 0 - %spec.select.i = select i1 %cmp.i.i.i.i.i.i.i, ptr %3, ptr null - %vtable = load ptr, ptr %spec.select.i, align 8 + %kind.i.i.i.i.i.i.i.i = load ptr, ptr %3, align 8 %vfn = getelementptr inbounds nuw i8, ptr %vtable, i64 16 %5 = load ptr, ptr %vfn, align 8 - %call11 = tail call noundef zeroext i1 %5(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i, ptr noundef nonnull %F) #14 + %call11 = tail call noundef zeroext i1 %4(ptr noundef nonnull align 8 dereferenceable(32) %3, ptr noundef nonnull %F) #14 %incdec.ptr.i = getelementptr inbounds nuw i8, ptr %__begin1.sroa.0.07, i64 8 %cmp.i3.not = icmp eq ptr %incdec.ptr.i, %2 br i1 %cmp.i3.not, label %for.end, label %for.body @@ -439,13 +435,11 @@ for.inc: ; preds = %for.body23, %do.end if.end33: ; preds = %cond.end %cmp.i.i.i.i.i.i.i18 = icmp eq i32 %3, 1 - %spec.select.i19 = select i1 %cmp.i.i.i.i.i.i.i18, ptr %2, ptr null - %tobool36 = icmp ne ptr %spec.select.i19, null - call void @llvm.assume(i1 %tobool36) - %vtable41 = load ptr, ptr %spec.select.i19, align 8 + call void @llvm.assume(i1 %cmp.i.i.i.i.i.i.i18) + %tobool36 = load ptr, ptr %2, align 8 %vfn42 = getelementptr inbounds nuw i8, ptr %vtable41, i64 16 %6 = load ptr, ptr %vfn42, align 8 - %call43 = call noundef zeroext i1 %6(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i19, ptr noundef %M) #14 + %call43 = call noundef zeroext i1 %6(ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef %M) #14 br label %for.inc45 for.inc45: ; preds = %for.inc, %do.end, %if.end33 diff --git a/bench/hermes/optimized/RegAlloc.ll b/bench/hermes/optimized/RegAlloc.ll index db025fe01e9..a77e6253a6c 100644 --- a/bench/hermes/optimized/RegAlloc.ll +++ b/bench/hermes/optimized/RegAlloc.ll @@ -2222,7 +2222,6 @@ for.body83: ; preds = %if.end78, %for.inc9 %65 = add i8 %64, -109 %66 = icmp ult i8 %65, -107 %sub.ptr.i.i.i139 = getelementptr inbounds i8, ptr %call84, i64 -16 - %spec.select.i140 = select i1 %66, ptr null, ptr %sub.ptr.i.i.i139 br i1 %66, label %for.inc97, label %if.end88 if.end88: ; preds = %for.body83 @@ -2265,7 +2264,7 @@ if.end13.i.i157: ; preds = %if.end9.i.i153 br i1 %cmp.i.i.i163, label %if.end94, label %if.end9.i.i153, !llvm.loop !19 if.end94: ; preds = %if.end13.i.i157, %if.end.i.i143 - %call95 = call noundef i32 @_ZN6hermes17RegisterAllocator20getInstructionNumberEPNS_11InstructionE(ptr noundef nonnull align 8 dereferenceable(1952) %this, ptr noundef nonnull %spec.select.i140) + %call95 = call noundef i32 @_ZN6hermes17RegisterAllocator20getInstructionNumberEPNS_11InstructionE(ptr noundef nonnull align 8 dereferenceable(1952) %this, ptr noundef nonnull %sub.ptr.i.i.i139) %rem.i166 = and i32 %call95, 63 %sh_prom.i167 = zext nneg i32 %rem.i166 to i64 %shl.i168 = shl nuw i64 1, %sh_prom.i167 @@ -10390,7 +10389,7 @@ if.end13.i.i.i: ; preds = %if.end9.i.i.i br i1 %cmp.i.i.i.i98, label %if.end74, label %if.end9.i.i.i, !llvm.loop !25 if.end74: ; preds = %if.end13.i.i.i, %if.end.i.i.i - %call75 = call noundef i32 @_ZN6hermes17RegisterAllocator20getInstructionNumberEPNS_11InstructionE(ptr noundef nonnull align 8 dereferenceable(1952) %this, ptr noundef nonnull %spec.select.i) + %call75 = call noundef i32 @_ZN6hermes17RegisterAllocator20getInstructionNumberEPNS_11InstructionE(ptr noundef nonnull align 8 dereferenceable(1952) %this, ptr noundef nonnull %sub.ptr.i.i.i) %add76 = add i32 %call75, 1 %cmp78 = icmp ult i32 %add76, %add77 br i1 %cmp78, label %if.then79, label %for.inc89 diff --git a/bench/icu/optimized/locid.ll b/bench/icu/optimized/locid.ll index 43505696c65..9d7eade2ace 100644 --- a/bench/icu/optimized/locid.ll +++ b/bench/icu/optimized/locid.ll @@ -7466,7 +7466,6 @@ lor.lhs.false: ; preds = %if.end cond.end.thread: ; preds = %lor.lhs.false %2 = load ptr, ptr %this, align 8 %spec.select216 = select i1 %checkLanguage, ptr %2, ptr @.str.190 - %cond24217 = select i1 %checkRegion, ptr %1, ptr null br label %for.body.lr.ph land.lhs.true6: ; preds = %lor.lhs.false @@ -7478,18 +7477,17 @@ land.lhs.true6: ; preds = %lor.lhs.false cond.end: ; preds = %land.lhs.true6 %4 = load ptr, ptr %this, align 8 %spec.select = select i1 %checkLanguage, ptr %4, ptr @.str.190 - %cond24 = select i1 %checkRegion, ptr %1, ptr null - %cmp25194 = icmp sgt i32 %3, 0 - br i1 %cmp25194, label %for.body.lr.ph, label %return + %cond24 = icmp sgt i32 %3, 0 + br i1 %cmp25195, label %for.body.lr.ph, label %return for.body.lr.ph: ; preds = %cond.end.thread, %cond.end - %cond24221 = phi ptr [ %cond24217, %cond.end.thread ], [ %cond24, %cond.end ] - %spec.select220 = phi ptr [ %spec.select216, %cond.end.thread ], [ %spec.select, %cond.end ] + %cond24221 = phi ptr [ %spec.select217, %cond.end.thread ], [ %spec.select, %cond.end ] %cond219 = phi i32 [ 1, %cond.end.thread ], [ %3, %cond.end ] %variants28 = getelementptr inbounds nuw i8, ptr %this, i64 32 %len.i = getelementptr inbounds nuw i8, ptr %typeKey, i64 56 %5 = getelementptr inbounds nuw i8, ptr %agg.tmp.i, i64 8 - %tobool.not.i.i = icmp eq ptr %cond24221, null + %tobool.not.i.i = icmp ne ptr %1, null + %tobool.not.i.i.not = select i1 %checkRegion, i1 %tobool.not.i.i174, i1 false %6 = getelementptr inbounds nuw i8, ptr %agg.tmp4.i, i64 8 %7 = getelementptr inbounds nuw i8, ptr %agg.tmp9.i, i64 8 %data = getelementptr inbounds nuw i8, ptr %this, i64 72 @@ -7538,10 +7536,10 @@ if.end36: ; preds = %land.lhs.true32, %i to label %call3.i.i.noexc unwind label %lpad.loopexit call3.i.i.noexc: ; preds = %.noexc - br i1 %tobool.not.i.i, label %if.end.i, label %_ZN6icu_7512_GLOBAL__N_113AliasReplacer8notEmptyEPKc.exit.i + br i1 %tobool.not.i.i.not, label %_ZN6icu_7512_GLOBAL__N_113AliasReplacer8notEmptyEPKc.exit.i, label %if.end.i _ZN6icu_7512_GLOBAL__N_113AliasReplacer8notEmptyEPKc.exit.i: ; preds = %call3.i.i.noexc - %12 = load i8, ptr %cond24221, align 1 + %12 = load i8, ptr %1, align 1 %cmp.i.not.i = icmp eq i8 %12, 0 br i1 %cmp.i.not.i, label %if.end.i, label %if.then.i @@ -7550,7 +7548,7 @@ if.then.i: ; preds = %_ZN6icu_7512_GLOBAL to label %call3.i.noexc unwind label %lpad.loopexit call3.i.noexc: ; preds = %if.then.i - invoke void @_ZN6icu_7511StringPieceC1EPKc(ptr noundef nonnull align 8 dereferenceable(12) %agg.tmp4.i, ptr noundef nonnull %cond24221) + invoke void @_ZN6icu_7511StringPieceC1EPKc(ptr noundef nonnull align 8 dereferenceable(12) %agg.tmp4.i, ptr noundef nonnull %1) to label %.noexc23 unwind label %lpad.loopexit .noexc23: ; preds = %call3.i.noexc @@ -7817,7 +7815,7 @@ _ZN6icu_7512_GLOBAL__N_113AliasReplacer8notEmptyEPKc.exit.thread.i47: ; preds = %replacedVariant.1120134153 = phi ptr [ null, %_ZN6icu_7512_GLOBAL__N_113AliasReplacer15deleteOrReplaceEPKcS3_S3_.exit.thread ], [ %replacedVariant.1.ph, %_ZN6icu_7512_GLOBAL__N_113AliasReplacer15deleteOrReplaceEPKcS3_S3_.exit ] %cond59.in.sroa.speculated138151 = phi ptr [ null, %_ZN6icu_7512_GLOBAL__N_113AliasReplacer15deleteOrReplaceEPKcS3_S3_.exit.thread ], [ %spec.select173, %_ZN6icu_7512_GLOBAL__N_113AliasReplacer15deleteOrReplaceEPKcS3_S3_.exit ] %40 = phi ptr [ %33, %_ZN6icu_7512_GLOBAL__N_113AliasReplacer15deleteOrReplaceEPKcS3_S3_.exit.thread ], [ %32, %_ZN6icu_7512_GLOBAL__N_113AliasReplacer15deleteOrReplaceEPKcS3_S3_.exit ] - %cond84.i = select i1 %tobool.not.i.i, ptr %38, ptr null + %cond84.i = select i1 %tobool.not.i.i.not, ptr null, ptr %38 br label %_ZN6icu_7512_GLOBAL__N_113AliasReplacer15deleteOrReplaceEPKcS3_S3_.exit48 _ZN6icu_7512_GLOBAL__N_113AliasReplacer8notEmptyEPKc.exit.i41: ; preds = %_ZN6icu_7512_GLOBAL__N_113AliasReplacer15deleteOrReplaceEPKcS3_S3_.exit @@ -7826,7 +7824,7 @@ _ZN6icu_7512_GLOBAL__N_113AliasReplacer8notEmptyEPKc.exit.i41: ; preds = %_ZN6ic %cmp.i.not.i43 = icmp eq i8 %.fr.i42, 0 %cmp.i44 = icmp eq ptr %37, null %cond.i45 = select i1 %cmp.i44, ptr %replacedRegion.3.ph, ptr %37 - %cond8.i = select i1 %tobool.not.i.i, ptr %37, ptr null + %cond8.i = select i1 %tobool.not.i.i.not, ptr null, ptr %37 %spec.select.i46 = select i1 %cmp.i.not.i43, ptr %cond8.i, ptr %cond.i45 br label %_ZN6icu_7512_GLOBAL__N_113AliasReplacer15deleteOrReplaceEPKcS3_S3_.exit48 diff --git a/bench/icu/optimized/normalizer2impl.ll b/bench/icu/optimized/normalizer2impl.ll index 2c8e8c1390f..cfe4bebf769 100644 --- a/bench/icu/optimized/normalizer2impl.ll +++ b/bench/icu/optimized/normalizer2impl.ll @@ -6221,14 +6221,10 @@ entry: %minCompNoMaybeCP = getelementptr inbounds nuw i8, ptr %this, i64 10 %0 = load i16, ptr %minCompNoMaybeCP, align 2 %cmp = icmp eq ptr %limit, null - br i1 %cmp, label %if.then, label %if.end14 - -if.then: ; preds = %entry - %tobool.not = icmp ne i8 %doCompose, 0 - br label %while.cond.i + br i1 %cmp, label %while.cond.i, label %if.end14 -while.cond.i: ; preds = %while.cond.i, %if.then - %src.addr.0.i = phi ptr [ %src, %if.then ], [ %incdec.ptr.i, %while.cond.i ] +while.cond.i: ; preds = %entry, %while.cond.i + %src.addr.0.i = phi ptr [ %incdec.ptr.i, %while.cond.i ], [ %src, %entry ] %incdec.ptr.i = getelementptr inbounds nuw i8, ptr %src.addr.0.i, i64 2 %1 = load i16, ptr %src.addr.0.i, align 2 %cmp.i = icmp ugt i16 %0, %1 @@ -6237,6 +6233,7 @@ while.cond.i: ; preds = %while.cond.i, %if.t br i1 %2, label %while.cond.i, label %while.end.i, !llvm.loop !16 while.end.i: ; preds = %while.cond.i + %tobool.not = icmp ne i8 %doCompose, 0 %cmp5.i = icmp ne ptr %src.addr.0.i, %src %or.cond.i = and i1 %tobool.not, %cmp5.i br i1 %or.cond.i, label %if.then7.i, label %_ZNK6icu_7515Normalizer2Impl30copyLowPrefixFromNulTerminatedEPKDsiPNS_16ReorderingBufferER10UErrorCode.exit diff --git a/bench/icu/optimized/tznames_impl.ll b/bench/icu/optimized/tznames_impl.ll index 770a0b436bd..b3375e3c108 100644 --- a/bench/icu/optimized/tznames_impl.ll +++ b/bench/icu/optimized/tznames_impl.ll @@ -3424,14 +3424,14 @@ cleanup.action56: ; preds = %delete.notnull5.i, %senum.sroa.0.2 = phi ptr [ null, %delete.notnull5.i ], [ %call45, %new.cont53 ] %10 = load ptr, ptr %agg.tmp, align 8 %isnull.i31 = icmp eq ptr %10, null - br i1 %isnull.i31, label %if.end65, label %delete.notnull.i32 + br i1 %isnull.i31, label %_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit59, label %delete.notnull.i32 delete.notnull.i32: ; preds = %cleanup.action56 %vtable.i33 = load ptr, ptr %10, align 8 %vfn.i34 = getelementptr inbounds nuw i8, ptr %vtable.i33, i64 8 %11 = load ptr, ptr %vfn.i34, align 8 call void %11(ptr noundef nonnull align 8 dereferenceable(40) %10) #21 - br label %if.end65 + br label %_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit59 lpad51: ; preds = %new.notnull47 %12 = landingpad { ptr, i32 } @@ -3460,20 +3460,19 @@ delete.end.i48: ; preds = %if.end65.critedge store i32 7, ptr %status, align 4 br label %delete.notnull.i55 -if.end65: ; preds = %delete.notnull.i32, %cleanup.action56 - %16 = load i32, ptr %status, align 4 - %cmp.i52 = icmp sgt i32 %16, 0 - br i1 %cmp.i52, label %_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit59, label %return - -delete.notnull.i55: ; preds = %for.inc, %invoke.cont17, %if.end65.critedge, %delete.end.i48 +delete.notnull.i55: ; preds = %for.inc, %delete.end.i48, %if.end65.critedge, %invoke.cont17 %vtable.i56 = load ptr, ptr %call5, align 8 %vfn.i57 = getelementptr inbounds nuw i8, ptr %vtable.i56, i64 8 %17 = load ptr, ptr %vfn.i57, align 8 - tail call void %17(ptr noundef nonnull align 8 dereferenceable(40) %call5) #21 + tail call void %16(ptr noundef nonnull align 8 dereferenceable(40) %call5) #21 br label %return -_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit59: ; preds = %if.end65 - %isnull.i60 = icmp eq ptr %senum.sroa.0.2, null +_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit59: ; preds = %cleanup.action56, %delete.notnull.i32 + %isnull.i60 = load i32, ptr %status, align 4 + %cmp.i52 = icmp slt i32 %17, 1 + %spec.select96 = select i1 %cmp.i52, ptr %senum.sroa.0.2, ptr null + %isnull.i6097 = icmp eq ptr %senum.sroa.0.2, null + %isnull.i60 = or i1 %isnull.i6097, %cmp.i52 br i1 %isnull.i60, label %return, label %delete.notnull.i61 delete.notnull.i61: ; preds = %_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit59 @@ -3501,8 +3500,8 @@ delete.notnull.i66: ; preds = %ehcleanup, %ehclean tail call void %19(ptr noundef nonnull align 8 dereferenceable(40) %call5) #21 br label %eh.resume -return: ; preds = %delete.notnull.i55, %if.end65, %new.cont15, %if.then.i, %delete.notnull.i61, %_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit59, %if.then2, %new.notnull, %entry - %retval.0 = phi ptr [ null, %entry ], [ null, %if.then2 ], [ %call3, %new.notnull ], [ null, %_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit59 ], [ null, %delete.notnull.i61 ], [ null, %if.then.i ], [ null, %new.cont15 ], [ null, %delete.notnull.i55 ], [ %senum.sroa.0.2, %if.end65 ] +return: ; preds = %if.then.i, %new.cont15, %delete.notnull.i55, %delete.notnull.i61, %_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit59, %if.then2, %new.notnull, %entry + %retval.0 = phi ptr [ null, %entry ], [ null, %if.then2 ], [ %call3, %new.notnull ], [ %spec.select96, %_ZN6icu_7512LocalPointerINS_7UVectorEED2Ev.exit59 ], [ %spec.select96, %delete.notnull.i61 ], [ null, %delete.notnull.i55 ], [ null, %new.cont15 ], [ null, %if.then.i ] ret ptr %retval.0 eh.resume: ; preds = %delete.notnull.i66, %ehcleanup.thread, %lpad10, %lpad diff --git a/bench/image-rs/optimized/4srzh4wujeew249y.ll b/bench/image-rs/optimized/4srzh4wujeew249y.ll index 55c54d21037..076b24a47ef 100644 --- a/bench/image-rs/optimized/4srzh4wujeew249y.ll +++ b/bench/image-rs/optimized/4srzh4wujeew249y.ll @@ -1809,7 +1809,6 @@ define hidden void @"_ZN12jpeg_decoder7decoder16Decoder$LT$R$GT$11decode_scan17h %488 = getelementptr inbounds [0 x { i64, [211 x i64] }], ptr %.val383, i64 0, i64 %485 %489 = load i64, ptr %488, align 8, !range !136, !noundef !14 %490 = icmp eq i64 %489, -9223372036854775808 - %.376 = select i1 %490, ptr null, ptr %488 br i1 %388, label %491, label %.invoke2449, !prof !29 491: ; preds = %487 @@ -1955,7 +1954,7 @@ define hidden void @"_ZN12jpeg_decoder7decoder16Decoder$LT$R$GT$11decode_scan17h .lr.ph.split.i: ; preds = %.lr.ph.i, %566 %.0147262.i = phi i8 [ %.1.i, %566 ], [ %phi.call.i, %.lr.ph.i ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21), !noalias !253 - invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder14decode_fast_ac17ha1d8016056690302E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %21, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(16) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %.376) + invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder14decode_fast_ac17ha1d8016056690302E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %21, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(16) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %488) to label %.noexc513 unwind label %.loopexit.split-lp893.loopexit .noexc513: ; preds = %.lr.ph.split.i @@ -2000,7 +1999,7 @@ define hidden void @"_ZN12jpeg_decoder7decoder16Decoder$LT$R$GT$11decode_scan17h 550: ; preds = %543 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20), !noalias !253 - invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h0a6048139c410f8aE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %20, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(16) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %.376) + invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h0a6048139c410f8aE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %20, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(16) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %488) to label %.noexc514 unwind label %.loopexit.split-lp893.loopexit .noexc514: ; preds = %550 @@ -2220,7 +2219,6 @@ _ZN12jpeg_decoder7decoder12decode_block17h34354babc26b43d2E.exit.thread: ; preds %640 = getelementptr inbounds [0 x { i64, [211 x i64] }], ptr %.val385, i64 0, i64 %637 %641 = load i64, ptr %640, align 8, !range !136, !noundef !14 %642 = icmp eq i64 %641, -9223372036854775808 - %.377 = select i1 %642, ptr null, ptr %640 call void @llvm.experimental.noalias.scope.decl(metadata !290) call void @llvm.experimental.noalias.scope.decl(metadata !293) br i1 %95, label %643, label %650 @@ -2316,7 +2314,7 @@ _ZN12jpeg_decoder7decoder12decode_block17h34354babc26b43d2E.exit.thread: ; preds %.13 = phi i16 [ %.14, %731 ], [ 0, %.lr.ph.i526 ] %.0120211.i = phi i8 [ %732, %731 ], [ %94, %.lr.ph.i526 ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15), !noalias !307 - invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h0a6048139c410f8aE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(16) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %.377) + invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h0a6048139c410f8aE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(16) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %640) to label %.noexc534 unwind label %.loopexit.split-lp893.loopexit.split-lp.loopexit .noexc534: ; preds = %.lr.ph.split.i527 @@ -4354,7 +4352,6 @@ define hidden void @"_ZN12jpeg_decoder7decoder16Decoder$LT$R$GT$11decode_scan17h %488 = getelementptr inbounds [0 x { i64, [211 x i64] }], ptr %.val383, i64 0, i64 %485 %489 = load i64, ptr %488, align 8, !range !136, !noundef !14 %490 = icmp eq i64 %489, -9223372036854775808 - %.376 = select i1 %490, ptr null, ptr %488 br i1 %388, label %491, label %.invoke2447, !prof !29 491: ; preds = %487 @@ -4500,7 +4497,7 @@ define hidden void @"_ZN12jpeg_decoder7decoder16Decoder$LT$R$GT$11decode_scan17h .lr.ph.split.i: ; preds = %.lr.ph.i, %566 %.0147262.i = phi i8 [ %.1.i, %566 ], [ %phi.call.i, %.lr.ph.i ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21), !noalias !493 - invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder14decode_fast_ac17h1874ebc6a5a02a0eE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %21, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(48) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %.376) + invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder14decode_fast_ac17h1874ebc6a5a02a0eE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %21, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(48) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %488) to label %.noexc511 unwind label %.loopexit.split-lp891.loopexit .noexc511: ; preds = %.lr.ph.split.i @@ -4545,7 +4542,7 @@ define hidden void @"_ZN12jpeg_decoder7decoder16Decoder$LT$R$GT$11decode_scan17h 550: ; preds = %543 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20), !noalias !493 - invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h78c3b4fa3ae3f119E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %20, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(48) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %.376) + invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h78c3b4fa3ae3f119E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %20, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(48) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %488) to label %.noexc512 unwind label %.loopexit.split-lp891.loopexit .noexc512: ; preds = %550 @@ -4765,7 +4762,6 @@ _ZN12jpeg_decoder7decoder12decode_block17h64c72aeb45474cfaE.exit.thread: ; preds %640 = getelementptr inbounds [0 x { i64, [211 x i64] }], ptr %.val385, i64 0, i64 %637 %641 = load i64, ptr %640, align 8, !range !136, !noundef !14 %642 = icmp eq i64 %641, -9223372036854775808 - %.377 = select i1 %642, ptr null, ptr %640 call void @llvm.experimental.noalias.scope.decl(metadata !530) call void @llvm.experimental.noalias.scope.decl(metadata !533) br i1 %95, label %643, label %650 @@ -4861,7 +4857,7 @@ _ZN12jpeg_decoder7decoder12decode_block17h64c72aeb45474cfaE.exit.thread: ; preds %.13 = phi i16 [ %.14, %731 ], [ 0, %.lr.ph.i524 ] %.0120211.i = phi i8 [ %732, %731 ], [ %94, %.lr.ph.i524 ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15), !noalias !547 - invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h78c3b4fa3ae3f119E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(48) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %.377) + invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h78c3b4fa3ae3f119E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(48) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %640) to label %.noexc532 unwind label %.loopexit.split-lp891.loopexit.split-lp.loopexit .noexc532: ; preds = %.lr.ph.split.i525 @@ -6896,7 +6892,6 @@ define hidden void @"_ZN12jpeg_decoder7decoder16Decoder$LT$R$GT$11decode_scan17h %488 = getelementptr inbounds [0 x { i64, [211 x i64] }], ptr %.val383, i64 0, i64 %485 %489 = load i64, ptr %488, align 8, !range !136, !noundef !14 %490 = icmp eq i64 %489, -9223372036854775808 - %.376 = select i1 %490, ptr null, ptr %488 br i1 %388, label %491, label %.invoke2447, !prof !29 491: ; preds = %487 @@ -7042,7 +7037,7 @@ define hidden void @"_ZN12jpeg_decoder7decoder16Decoder$LT$R$GT$11decode_scan17h .lr.ph.split.i: ; preds = %.lr.ph.i, %566 %.0147262.i = phi i8 [ %.1.i, %566 ], [ %phi.call.i, %.lr.ph.i ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %21), !noalias !731 - invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder14decode_fast_ac17h7a529e3741f9c637E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %21, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(24) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %.376) + invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder14decode_fast_ac17h7a529e3741f9c637E(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %21, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(24) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %488) to label %.noexc511 unwind label %.loopexit.split-lp891.loopexit .noexc511: ; preds = %.lr.ph.split.i @@ -7087,7 +7082,7 @@ define hidden void @"_ZN12jpeg_decoder7decoder16Decoder$LT$R$GT$11decode_scan17h 550: ; preds = %543 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %20), !noalias !731 - invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h1d62562d7e2ca6aaE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %20, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(24) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %.376) + invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h1d62562d7e2ca6aaE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %20, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(24) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %488) to label %.noexc512 unwind label %.loopexit.split-lp891.loopexit .noexc512: ; preds = %550 @@ -7307,7 +7302,6 @@ _ZN12jpeg_decoder7decoder12decode_block17h3f49e6a20d32686aE.exit.thread: ; preds %640 = getelementptr inbounds [0 x { i64, [211 x i64] }], ptr %.val385, i64 0, i64 %637 %641 = load i64, ptr %640, align 8, !range !136, !noundef !14 %642 = icmp eq i64 %641, -9223372036854775808 - %.377 = select i1 %642, ptr null, ptr %640 call void @llvm.experimental.noalias.scope.decl(metadata !768) call void @llvm.experimental.noalias.scope.decl(metadata !771) br i1 %95, label %643, label %650 @@ -7403,7 +7397,7 @@ _ZN12jpeg_decoder7decoder12decode_block17h3f49e6a20d32686aE.exit.thread: ; preds %.13 = phi i16 [ %.14, %731 ], [ 0, %.lr.ph.i524 ] %.0120211.i = phi i8 [ %732, %731 ], [ %94, %.lr.ph.i524 ] call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %15), !noalias !785 - invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h1d62562d7e2ca6aaE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(24) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %.377) + invoke void @_ZN12jpeg_decoder7huffman14HuffmanDecoder6decode17h1d62562d7e2ca6aaE(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull align 8 dereferenceable(16) %58, ptr noalias noundef nonnull align 8 dereferenceable(24) %277, ptr noalias noundef nonnull readonly align 8 dereferenceable(1696) dereferenceable_or_null(1696) %640) to label %.noexc532 unwind label %.loopexit.split-lp891.loopexit.split-lp.loopexit .noexc532: ; preds = %.lr.ph.split.i525 diff --git a/bench/libevent/optimized/bufferevent.ll b/bench/libevent/optimized/bufferevent.ll index 0c9e3bd907c..17e7977c042 100644 --- a/bench/libevent/optimized/bufferevent.ll +++ b/bench/libevent/optimized/bufferevent.ll @@ -937,77 +937,86 @@ define range(i32 -1, 1) i32 @bufferevent_enable_locking_(ptr noundef %0, ptr nou %9 = getelementptr inbounds nuw i8, ptr %8, i64 64 %10 = load ptr, ptr %9, align 8 %.not12.i = icmp eq ptr %10, null - br i1 %.not12.i, label %.thread46, label %11 + br i1 %.not12.i, label %11, label %12 11: ; preds = %6 - %12 = call i32 %10(ptr noundef nonnull %0, i32 noundef 2, ptr noundef nonnull %3) #7 - %.fr = freeze i32 %12 - %13 = icmp slt i32 %.fr, 0 + %12 = load ptr, ptr %3, align 8 + br label %.thread46 + +12: ; preds = %6 + %13 = call i32 %10(ptr noundef nonnull %0, i32 noundef 2, ptr noundef nonnull %3) #7 + %.fr = freeze i32 %13 + %14 = icmp slt i32 %.fr, 0 %.pre = load ptr, ptr %4, align 8 %.not13.i = icmp eq ptr %.pre, null br i1 %.not13.i, label %bufferevent_get_underlying.exit, label %14 -14: ; preds = %11 +14: ; preds = %12 %15 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @evthread_lock_fns_, i64 32), align 8 - %16 = call i32 %15(i32 noundef 0, ptr noundef nonnull %.pre) #7 - br i1 %13, label %.thread46, label %18 + %16 = call i32 %16(i32 noundef 0, ptr noundef nonnull %.pre) #7 + %18 = load ptr, ptr %3, align 8 + br i1 %14, label %.thread46, label %22 -bufferevent_get_underlying.exit: ; preds = %11 - br i1 %13, label %.thread46, label %18 +bufferevent_get_underlying.exit: ; preds = %12 + %19 = load ptr, ptr %3, align 8 + br i1 %14, label %.thread46, label %22 -.thread46: ; preds = %bufferevent_get_underlying.exit, %14, %6 +.thread46: ; preds = %bufferevent_get_underlying.exit, %11, %15 + %20 = phi ptr [ %11, %bufferevent_get_underlying.exit.thread ], [ %19, %bufferevent_get_underlying.exit ], [ %18, %15 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7 %17 = icmp eq ptr %1, null br i1 %17, label %.thread, label %39 18: ; preds = %14, %bufferevent_get_underlying.exit - %19 = load ptr, ptr %3, align 8 + %19 = phi ptr [ %19, %bufferevent_get_underlying.exit ], [ %18, %15 ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) #7 %20 = icmp eq ptr %1, null %21 = icmp ne ptr %19, null %or.cond = select i1 %20, i1 %21, i1 false - br i1 %or.cond, label %22, label %29 - -22: ; preds = %18 - %23 = getelementptr inbounds nuw i8, ptr %19, i64 448 - %24 = load ptr, ptr %23, align 8 - %.not32 = icmp eq ptr %24, null - br i1 %.not32, label %.thread, label %25 + br i1 %or.cond, label %26, label %33 25: ; preds = %22 - store ptr %24, ptr %4, align 8 - %26 = getelementptr inbounds nuw i8, ptr %0, i64 384 - %27 = load i8, ptr %26, align 8 - %28 = and i8 %27, -2 - store i8 %28, ptr %26, align 8 - br label %45 + %27 = getelementptr inbounds nuw i8, ptr %23, i64 448 + %26 = load ptr, ptr %27, align 8 + %27 = icmp eq ptr %26, null + br i1 %27, label %.thread, label %29 -29: ; preds = %18 - br i1 %20, label %.thread, label %39 - -.thread: ; preds = %.thread46, %22, %29 - %30 = phi i1 [ %21, %22 ], [ %21, %29 ], [ false, %.thread46 ] - %31 = phi ptr [ %19, %22 ], [ %19, %29 ], [ null, %.thread46 ] - %32 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @evthread_lock_fns_, i64 8), align 8 - %.not34 = icmp eq ptr %32, null - br i1 %.not34, label %.thread37, label %33 - -33: ; preds = %.thread - %34 = call ptr %32(i32 noundef 1) #7 - %.not35 = icmp eq ptr %34, null - br i1 %.not35, label %.thread37, label %35 - -35: ; preds = %33 - store ptr %34, ptr %4, align 8 - %36 = getelementptr inbounds nuw i8, ptr %0, i64 384 - %37 = load i8, ptr %36, align 8 - %38 = or i8 %37, 1 - store i8 %38, ptr %36, align 8 +29: ; preds = %26 + store ptr %28, ptr %4, align 8 + %30 = getelementptr inbounds nuw i8, ptr %0, i64 384 + %31 = load i8, ptr %30, align 8 + %30 = and i8 %31, -2 + store i8 %32, ptr %30, align 8 br label %45 -39: ; preds = %.thread46, %29 - %40 = phi ptr [ null, %.thread46 ], [ %19, %29 ] - %41 = phi i1 [ false, %.thread46 ], [ %21, %29 ] +33:; preds = %22 + br i1 %24, label %.thread, label %44 + +.thread:; preds = %.thread46, %26, %33 + %.not35 = phi i1 [ %25, %26 ], [ %25, %33 ], [ false, %.thread46 ] + %35 = phi ptr [ %23, %26 ], [ %23, %33 ], [ null, %.thread46 ] + %36 = phi ptr [ %23, %26 ], [ %23, %33 ], [ %20, %.thread46 ] + %37 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @evthread_lock_fns_, i64 8), align 8 + %.not34 = icmp eq ptr %37, null + br i1 %.not34, label %.thread37, label %38 + +38:; preds = %.thread + %39 = call ptr %37(i32 noundef 1) #7 + %.not35 = icmp eq ptr %39, null + br i1 %.not35, label %.thread37, label %40 + +40: ; preds = %38 + store ptr %39, ptr %4, align 8 + %41 = getelementptr inbounds nuw i8, ptr %0, i64 384 + %42 = load i8, ptr %41, align 8 + %43 = or i8 %42, 1 + store i8 %43, ptr %41, align 8 + br label %51 + +39: ; preds = %.thread46, %33 + %40 = phi ptr [ %20, %.thread46 ], [ %19, %33 ] + %41 = phi ptr [ null, %.thread46 ], [ %23, %33 ] + %47 = phi i1 [ false, %.thread46 ], [ %25, %33 ] store ptr %1, ptr %4, align 8 %42 = getelementptr inbounds nuw i8, ptr %0, i64 384 %43 = load i8, ptr %42, align 8 @@ -1015,30 +1024,31 @@ bufferevent_get_underlying.exit: ; preds = %11 store i8 %44, ptr %42, align 8 br label %45 -45: ; preds = %35, %39, %25 - %46 = phi i1 [ %21, %25 ], [ %41, %39 ], [ %30, %35 ] - %47 = phi ptr [ %19, %25 ], [ %40, %39 ], [ %31, %35 ] - %.026 = phi ptr [ %24, %25 ], [ %1, %39 ], [ %34, %35 ] - %48 = getelementptr inbounds nuw i8, ptr %0, i64 256 - %49 = load ptr, ptr %48, align 8 - %50 = call i32 @evbuffer_enable_locking(ptr noundef %49, ptr noundef nonnull %.026) #7 - %51 = getelementptr inbounds nuw i8, ptr %0, i64 264 - %52 = load ptr, ptr %51, align 8 - %53 = call i32 @evbuffer_enable_locking(ptr noundef %52, ptr noundef nonnull %.026) #7 - br i1 %46, label %54, label %.thread37 - -54: ; preds = %45 - %55 = getelementptr inbounds nuw i8, ptr %47, i64 448 +45: ; preds = %40, %39, %29 + %46 = phi i1 [ %21, %29 ], [ %47, %39 ], [ %34, %40 ] + %47 = phi ptr [ %19, %29 ], [ %46, %39 ], [ %35, %40 ] + %.026 = phi ptr [ %23, %29 ], [ %45, %39 ], [ %36, %40 ] + %48 = phi ptr [ %28, %29 ], [ %1, %44 ], [ %39, %40 ] + %49 = getelementptr inbounds nuw i8, ptr %0, i64 256 %56 = load ptr, ptr %55, align 8 - %.not36 = icmp eq ptr %56, null - br i1 %.not36, label %57, label %.thread37 - -57: ; preds = %54 - %58 = call i32 @bufferevent_enable_locking_(ptr noundef nonnull %47, ptr noundef nonnull %.026) + %.not36 = call i32 @evbuffer_enable_locking(ptr noundef %56, ptr noundef nonnull %48) #7 + %58 = getelementptr inbounds nuw i8, ptr %0, i64 264 + %59 = load ptr, ptr %58, align 8 + %60 = call i32 @evbuffer_enable_locking(ptr noundef %59, ptr noundef nonnull %48) #7 + br i1 %52, label %61, label %.thread37 + +61: ; preds = %51 + %62 = getelementptr inbounds nuw i8, ptr %53, i64 448 + %63 = load ptr, ptr %62, align 8 + %.not36 = icmp eq ptr %63, null + br i1 %.not36, label %64, label %.thread37 + +64: ; preds = %61 + %65 = call i32 @bufferevent_enable_locking_(ptr noundef nonnull %54, ptr noundef nonnull %.026) br label %.thread37 -.thread37: ; preds = %.thread, %45, %54, %57, %33, %2 - %.0 = phi i32 [ -1, %2 ], [ -1, %33 ], [ 0, %57 ], [ 0, %54 ], [ 0, %45 ], [ -1, %.thread ] +.thread37: ; preds = %.thread, %45, %61, %64, %38, %2 + %.0 = phi i32 [ -1, %2 ], [ -1, %38 ], [ 0, %64 ], [ 0, %61 ], [ 0, %45 ], [ -1, %.thread ] ret i32 %.0 } @@ -2514,7 +2524,7 @@ bufferevent_get_underlying.exit: ; preds = %20, %22 br label %bufferevent_decref.exit bufferevent_decref.exit: ; preds = %66, %69 - %72 = call range(i32 0, 2) i32 @bufferevent_decref_and_unlock_(ptr noundef nonnull %26) + %72 = call range(i32 0, 2) i32 @bufferevent_decref_and_unlock_(ptr noundef nonnull %25) br label %73 73: ; preds = %bufferevent_decref.exit, %60 diff --git a/bench/libquic/optimized/process_metrics_linux.ll b/bench/libquic/optimized/process_metrics_linux.ll index ff53a370642..b0ef233a77c 100644 --- a/bench/libquic/optimized/process_metrics_linux.ll +++ b/bench/libquic/optimized/process_metrics_linux.ll @@ -1708,30 +1708,26 @@ sub_0: ; preds = %._crit_edge.i, %30 br i1 %.not21, label %.tail, label %.tail15 .tail: ; preds = %sub_0 - %.not.i12 = icmp eq i64 %33, 0 - %gep20.sroa.gep = getelementptr inbounds nuw i8, ptr %gep20, i64 1 - %.0.i13.sroa.sel = select i1 %.not.i12, ptr inttoptr (i64 1 to ptr), ptr %gep20.sroa.gep - %35 = load i8, ptr %.0.i13.sroa.sel, align 1 - %36 = icmp eq i8 %35, 0 - br i1 %36, label %18, label %sub_117, !llvm.loop !59 + %.not.i12 = getelementptr inbounds nuw i8, ptr %gep20, i64 1 + %gep20.sroa.gep = load i8, ptr %35, align 1 + %.0.i13.sroa.sel = icmp eq i8 %gep20.sroa.gep, 0 + br i1 %.0.i13.sroa.sel, label %18, label %sub_117, !llvm.loop !59 sub_117: ; preds = %.tail %gep20.sroa.gep24 = getelementptr inbounds nuw i8, ptr %gep20, i64 1 - %.0.i13.sroa.sel25 = select i1 %.not.i12, ptr inttoptr (i64 1 to ptr), ptr %gep20.sroa.gep24 - %37 = load i8, ptr %.0.i13.sroa.sel25, align 1 - %.not23 = icmp eq i8 %37, 46 + %.0.i13.sroa.sel25 = load i8, ptr %gep20.sroa.gep24, align 1 + %37 = icmp eq i8 %.0.i13.sroa.sel25, 46 br i1 %.not23, label %sub_2, label %.tail15 sub_2: ; preds = %sub_117 %gep20.sroa.gep26 = getelementptr inbounds nuw i8, ptr %gep20, i64 2 - %.0.i13.sroa.sel27 = select i1 %.not.i12, ptr inttoptr (i64 2 to ptr), ptr %gep20.sroa.gep26 - %38 = load i8, ptr %.0.i13.sroa.sel27, align 1 - %39 = icmp ne i8 %38, 0 - %40 = zext i1 %39 to i32 + %.0.i13.sroa.sel27 = load i8, ptr %gep20.sroa.gep26, align 1 + %38 = icmp ne i8 %.0.i13.sroa.sel27, 0 + %39 = zext i1 %38 to i32 br label %.tail15 .tail15: ; preds = %sub_0, %sub_117, %sub_2 - %.not11 = phi i32 [ 1, %sub_117 ], [ %40, %sub_2 ], [ 1, %sub_0 ] + %.not11 = phi i32 [ 1, %sub_117 ], [ %43, %sub_2 ], [ 1, %sub_0 ] %spec.select = add nuw nsw i32 %.not11, %.07.ph br label %.outer, !llvm.loop !59 diff --git a/bench/linux/optimized/keyctl.ll b/bench/linux/optimized/keyctl.ll index 2eaae939e62..275949280b0 100644 --- a/bench/linux/optimized/keyctl.ll +++ b/bench/linux/optimized/keyctl.ll @@ -1608,26 +1608,24 @@ define internal fastcc range(i64 -9223372036854775808, 2147483648) i64 @keyctl_i %6 = getelementptr inbounds nuw i8, ptr %5, i64 1784 %7 = load ptr, ptr %6, align 8 %8 = icmp eq ptr %1, null - br i1 %8, label %.thread12, label %9 + br i1 %8, label %.thread, label %9 9: ; preds = %3 %10 = getelementptr inbounds nuw i8, ptr %1, i64 24 %11 = load i64, ptr %10, align 8 - %.fr = freeze i64 %11 - %12 = icmp eq i64 %.fr, 0 - %spec.select = select i1 %12, ptr null, ptr %1 - %13 = icmp ugt i64 %.fr, 1048575 - br i1 %13, label %81, label %.thread12 - -.thread12: ; preds = %3, %9 - %14 = phi ptr [ %spec.select, %9 ], [ null, %3 ] - %15 = phi i64 [ %.fr, %9 ], [ 0, %3 ] + %.fr = icmp eq i64 %11, 0 + %12 = icmp ugt i64 %11, 1048575 + br i1 %12, label %81, label %.thread + +.thread:; preds = %3, %9 + %14 = phi i1 [ %12, %9 ], [ true, %3 ] + %15 = phi i64 [ %11, %9 ], [ 0, %3 ] %16 = getelementptr inbounds nuw i8, ptr %7, i64 120 %17 = load ptr, ptr %16, align 8 %18 = icmp eq ptr %17, null br i1 %18, label %81, label %19 -19: ; preds = %.thread12 +19: ; preds = %.thread %20 = getelementptr inbounds nuw i8, ptr %17, i64 176 %21 = load ptr, ptr %20, align 8 %22 = getelementptr inbounds nuw i8, ptr %21, i64 16 @@ -1638,7 +1636,7 @@ define internal fastcc range(i64 -9223372036854775808, 2147483648) i64 @keyctl_i br i1 %26, label %27, label %81 27: ; preds = %19 - %28 = icmp eq ptr %14, null + %28 = or i1 %8, %14 br i1 %28, label %36, label %29 29: ; preds = %27 @@ -1647,12 +1645,12 @@ define internal fastcc range(i64 -9223372036854775808, 2147483648) i64 @keyctl_i br i1 %31, label %81, label %32 32: ; preds = %29 - %33 = tail call i64 @_copy_from_iter(ptr noundef nonnull %30, i64 noundef %15, ptr noundef nonnull %14) #11 + %33 = tail call i64 @_copy_from_iter(ptr noundef nonnull %30, i64 noundef %15, ptr noundef nonnull %1) #11 %34 = icmp eq i64 %33, %15 br i1 %34, label %36, label %35, !prof !13 35: ; preds = %32 - tail call void @iov_iter_revert(ptr noundef nonnull %14, i64 noundef %33) #11 + tail call void @iov_iter_revert(ptr noundef nonnull %1, i64 noundef %33) #11 br label %.thread16 36: ; preds = %32, %27 @@ -1740,8 +1738,8 @@ define internal fastcc range(i64 -9223372036854775808, 2147483648) i64 @keyctl_i tail call void @kvfree_sensitive(ptr noundef %79, i64 noundef %15) #11 br label %81 -81: ; preds = %.thread16, %29, %19, %.thread12, %9 - %82 = phi i64 [ -22, %9 ], [ -1, %19 ], [ %80, %.thread16 ], [ -12, %29 ], [ -1, %.thread12 ] +81: ; preds = %.thread16, %29, %19, %.thread, %9 + %82 = phi i64 [ -22, %9 ], [ -1, %19 ], [ %80, %.thread16 ], [ -12, %29 ], [ -1, %.thread ] ret i64 %82 } diff --git a/bench/linux/optimized/swnode.ll b/bench/linux/optimized/swnode.ll index 69ff328e600..dcbb27f1dea 100644 --- a/bench/linux/optimized/swnode.ll +++ b/bench/linux/optimized/swnode.ll @@ -1099,56 +1099,57 @@ define dso_local ptr @fwnode_create_software_node(ptr noundef %0, ptr noundef %1 .thread10: ; preds = %4, %5 %10 = phi ptr [ %9, %5 ], [ null, %4 ] - %11 = tail call ptr @property_entries_dup(ptr noundef %0) - %12 = icmp ugt ptr %11, inttoptr (i64 -4096 to ptr) - br i1 %12, label %19, label %13 - -13: ; preds = %.thread10 - %14 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @kmalloc_caches, i64 40), align 8 - %15 = tail call noalias align 8 dereferenceable_or_null(24) ptr @kmalloc_trace(ptr noundef %14, i32 noundef 3520, i64 noundef 24) #14 - %16 = icmp eq ptr %15, null - br i1 %16, label %.thread11, label %17 + %11 = phi ptr [ %9, %5 ], [ inttoptr (i64 -64 to ptr), %4 ] + %12 = tail call ptr @property_entries_dup(ptr noundef %0) + %13 = icmp ugt ptr %12, inttoptr (i64 -4096 to ptr) + br i1 %13, label %20, label %14 + +14: ; preds = %.thread10 + %15 = load ptr, ptr getelementptr inbounds nuw (i8, ptr @kmalloc_caches, i64 40), align 8 + %16 = tail call noalias align 8 dereferenceable_or_null(24) ptr @kmalloc_trace(ptr noundef %15, i32 noundef 3520, i64 noundef 24) #14 + %17 = icmp eq ptr %16, null + br i1 %17, label %.thread11, label %18 -.thread11: ; preds = %13 - tail call void @property_entries_free(ptr noundef %11) - br label %31 +13: ; preds = %14 + tail call void @property_entries_free(ptr noundef %12) + br label %32 -17: ; preds = %13 - %18 = getelementptr inbounds nuw i8, ptr %15, i64 16 - store ptr %11, ptr %18, align 8 - br label %19 +.thread11: ; preds = %14 + %19 = getelementptr inbounds nuw i8, ptr %16, i64 16 + store ptr %12, ptr %19, align 8 + br label %20 -19: ; preds = %17, %.thread10 - %20 = phi ptr [ %15, %17 ], [ %11, %.thread10 ] - %21 = icmp ugt ptr %20, inttoptr (i64 -4096 to ptr) - br i1 %21, label %31, label %22 +17: ; preds = %18, %.thread10 + %18 = phi ptr [ %16, %18 ], [ %12, %.thread10 ] + %22 = icmp ugt ptr %21, inttoptr (i64 -4096 to ptr) + br i1 %22, label %32, label %19 -22: ; preds = %19 +19: ; preds = %17 br i1 %.not12, label %.split, label %.split2 -.split2: ; preds = %22 +.split2: ; preds = %23 %23 = getelementptr inbounds nuw i8, ptr %10, i64 128 %24 = load ptr, ptr %23, align 8 br label %.split -.split: ; preds = %22, %.split2 - %.sink13 = phi ptr [ %24, %.split2 ], [ null, %22 ] - %.sink = phi ptr [ %10, %.split2 ], [ null, %22 ] - %25 = getelementptr inbounds nuw i8, ptr %20, i64 8 +.split: ; preds = %23, %.split2 + %.sink13 = phi ptr [ %24, %.split2 ], [ null, %23 ] + %.sink = phi ptr [ %11, %.split2 ], [ null, %23 ] + %25 = getelementptr inbounds nuw i8, ptr %21, i64 8 store ptr %.sink13, ptr %25, align 8 - %26 = tail call fastcc ptr @swnode_register(ptr noundef nonnull %20, ptr noundef %.sink, i32 noundef 1) + %26 = tail call fastcc ptr @swnode_register(ptr noundef nonnull %21, ptr noundef %.sink, i32 noundef 1) %27 = icmp ugt ptr %26, inttoptr (i64 -4096 to ptr) br i1 %27, label %28, label %31 28: ; preds = %.split - %29 = getelementptr inbounds nuw i8, ptr %20, i64 16 + %29 = getelementptr inbounds nuw i8, ptr %21, i64 16 %30 = load ptr, ptr %29, align 8 tail call void @property_entries_free(ptr noundef %30) - tail call void @kfree(ptr noundef nonnull %20) #12 + tail call void @kfree(ptr noundef nonnull %21) #12 br label %31 -31: ; preds = %.thread11, %28, %.split, %19, %5, %2 - %32 = phi ptr [ %26, %28 ], [ %26, %.split ], [ %1, %2 ], [ inttoptr (i64 -22 to ptr), %5 ], [ %20, %19 ], [ inttoptr (i64 -12 to ptr), %.thread11 ] +31: ; preds = %.thread11, %28, %.split, %17, %5, %2 + %32 = phi ptr [ %26, %28 ], [ %26, %.split ], [ %1, %2 ], [ inttoptr (i64 -22 to ptr), %5 ], [ %21, %17 ], [ inttoptr (i64 -12 to ptr), %.thread11 ] ret ptr %32 } diff --git a/bench/logos-rs/optimized/l82l31q4dxfnso7.ll b/bench/logos-rs/optimized/l82l31q4dxfnso7.ll index b5b00eaea5d..e8ecb53f57a 100644 --- a/bench/logos-rs/optimized/l82l31q4dxfnso7.ll +++ b/bench/logos-rs/optimized/l82l31q4dxfnso7.ll @@ -1889,8 +1889,8 @@ define hidden i32 @"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$5merge17h6b98e2f1 %43 = icmp eq ptr %.sroa.0.0.i15, null br i1 %43, label %.thread, label %.thread25 -44: ; preds = %114, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$11find_merged17hcac140a7a7ec195cE.exit", %3, %119, %117, %96, %.thread25, %51 - %.sroa.0.0 = phi i32 [ %54, %51 ], [ %73, %.thread25 ], [ %1, %119 ], [ %1, %117 ], [ %113, %96 ], [ %1, %3 ], [ %23, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$11find_merged17hcac140a7a7ec195cE.exit" ], [ %2, %114 ] +44: ; preds = %114, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$11find_merged17hcac140a7a7ec195cE.exit", %3, %119, %117, %94, %.thread25, %51 + %.sroa.0.0 = phi i32 [ %54, %51 ], [ %73, %.thread25 ], [ %1, %119 ], [ %1, %117 ], [ %113, %94 ], [ %1, %3 ], [ %23, %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$11find_merged17hcac140a7a7ec195cE.exit" ], [ %2, %114 ] ret i32 %.sroa.0.0 45: ; preds = %"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$3get17hef54d88c40d84d54E.exit18" @@ -1978,15 +1978,12 @@ define hidden i32 @"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$5merge17h6b98e2f1 %91 = load i64, ptr %.sroa.0.0.i15, align 8 %92 = and i64 %91, -2 %.not13 = icmp eq i64 %92, -9223372036854775806 - br i1 %.not13, label %96, label %93 + %93 = and i64 %40, -2 + %.not14 = icmp eq i64 %93, -9223372036854775806 + %or.cond = select i1 %.not13, i1 true, i1 %.not14 + br i1 %or.cond, label %94, label %112 93: ; preds = %90 - %94 = load i64, ptr %38, align 8 - %95 = and i64 %94, -2 - %.not14 = icmp eq i64 %95, -9223372036854775806 - br i1 %.not14, label %96, label %114 - -96: ; preds = %93, %90 call void @llvm.lifetime.start.p0(i64 88, ptr nonnull %4) %97 = load i64, ptr %27, align 8 %98 = call i32 @_ZN13logos_codegen5graph6NodeId3new17h1ea5a5ec269458a5E(i64 %97) @@ -2011,7 +2008,7 @@ define hidden i32 @"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$5merge17h6b98e2f1 %113 = call fastcc i32 @"_ZN13logos_codegen5graph17Graph$LT$Leaf$GT$15merge_unchecked17hced68f017f069d4eE"(ptr nonnull align 8 %0, i32 %1, i32 %2, i32 %112) br label %44 -114: ; preds = %93 +114: ; preds = %90 %115 = call i8 @"_ZN80_$LT$logos_codegen..leaf..Leaf$u20$as$u20$logos_codegen..graph..Disambiguate$GT$3cmp17hf7332b0b5d8bbf93E"(ptr nonnull align 8 %.sroa.0.0.i15, ptr nonnull align 8 %38) switch i8 %115, label %116 [ i8 -1, label %44 diff --git a/bench/luau/optimized/TypePath.ll b/bench/luau/optimized/TypePath.ll index a3787782e82..ed3de450ed5 100644 --- a/bench/luau/optimized/TypePath.ll +++ b/bench/luau/optimized/TypePath.ll @@ -4419,16 +4419,16 @@ define internal void @"_ZN4LuauL8fnVisitRIRZNS_L8traverseERNS_12_GLOBAL__N_114Tr %19 = load i32, ptr %.val, align 8 %.not.i.i = icmp eq i32 %19, 0 %20 = getelementptr inbounds nuw i8, ptr %.val, i64 8 - br i1 %.not.i.i, label %21, label %252 + %21 = load ptr, ptr %20, align 8 + %.not.i.i.i.i = icmp eq ptr %21, null + br i1 %.not.i.i, label %22, label %252 21: ; preds = %18 - %22 = load ptr, ptr %20, align 8 - %.not.i.i.i.i = icmp eq ptr %22, null br i1 %.not.i.i.i.i, label %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit.thread.i.i, label %23 23: ; preds = %21 - %24 = load i32, ptr %22, align 8 - %25 = getelementptr inbounds nuw i8, ptr %22, i64 8 + %24 = load i32, ptr %21, align 8 + %25 = getelementptr inbounds nuw i8, ptr %21, i64 8 switch i32 %24, label %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit.thread.i.i [ i32 13, label %_ZN4Luau3getINS_9UnionTypeEEEPKT_PKNS_4TypeE.exit.i.i i32 14, label %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit.i.i @@ -4955,26 +4955,22 @@ _ZN4Luau12TypeIteratorINS_16IntersectionTypeEED2Ev.exit84.i.i: ; preds = %247, % br label %common.resume.i.i 252: ; preds = %18 - %253 = icmp eq i32 %19, 1 - %254 = select i1 %253, ptr %20, ptr null - %255 = load ptr, ptr %254, align 8 - %.not.i.i85.i.i = icmp eq ptr %255, null - br i1 %.not.i.i85.i.i, label %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit.thread.i.i, label %256 - -256: ; preds = %252 - %257 = load i32, ptr %255, align 8 - %258 = icmp eq i32 %257, 4 - br i1 %258, label %_ZN4Luau3getINS_8TypePackEEEPKT_PKNS_11TypePackVarE.exit.i.i, label %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit.thread.i.i - -_ZN4Luau3getINS_8TypePackEEEPKT_PKNS_11TypePackVarE.exit.i.i: ; preds = %256 - call void @_ZN4Luau5beginEPKNS_11TypePackVarE(ptr dead_on_unwind nonnull writable sret(%"struct.Luau::TypePackIterator") align 8 %11, ptr noundef nonnull %255) - %259 = load i64, ptr %2, align 8 - %.not111.i.i = icmp eq i64 %259, 0 + br i1 %.not.i.i.i.i, label %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit.thread.i.i, label %253 + +253: ; preds = %252 + %.not.i.i85.i.i = load i32, ptr %21, align 8 + %255 = icmp eq i32 %.not.i.i85.i.i, 4 + br i1 %255, label %_ZN4Luau3getINS_8TypePackEEEPKT_PKNS_11TypePackVarE.exit.i.i, label %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit.thread.i.i + +_ZN4Luau3getINS_8TypePackEEEPKT_PKNS_11TypePackVarE.exit.i.i:; preds = %253 + call void @_ZN4Luau5beginEPKNS_11TypePackVarE(ptr dead_on_unwind nonnull writable sret(%"struct.Luau::TypePackIterator") align 8 %11, ptr noundef nonnull %21) + %256 = load i64, ptr %2, align 8 + %.not111.i.i = icmp eq i64 %256, 0 br i1 %.not111.i.i, label %.critedge.i.i, label %.lr.ph.i.i .lr.ph.i.i: ; preds = %_ZN4Luau3getINS_8TypePackEEEPKT_PKNS_11TypePackVarE.exit.i.i, %262 %.0109.i.i = phi i64 [ %264, %262 ], [ 0, %_ZN4Luau3getINS_8TypePackEEEPKT_PKNS_11TypePackVarE.exit.i.i ] - %260 = load ptr, ptr %254, align 8 + %260 = load ptr, ptr %20, align 8 call void @_ZN4Luau3endEPKNS_11TypePackVarE(ptr dead_on_unwind nonnull writable sret(%"struct.Luau::TypePackIterator") align 8 %12, ptr noundef %260) %261 = call noundef zeroext i1 @_ZN4Luau16TypePackIteratorneERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %12) br i1 %261, label %262, label %.critedge.i.i @@ -4987,7 +4983,7 @@ _ZN4Luau3getINS_8TypePackEEEPKT_PKNS_11TypePackVarE.exit.i.i: ; preds = %256 br i1 %266, label %.lr.ph.i.i, label %.critedge.i.i, !llvm.loop !15 .critedge.i.i: ; preds = %262, %.lr.ph.i.i, %_ZN4Luau3getINS_8TypePackEEEPKT_PKNS_11TypePackVarE.exit.i.i - %267 = load ptr, ptr %254, align 8 + %267 = load ptr, ptr %20, align 8 call void @_ZN4Luau3endEPKNS_11TypePackVarE(ptr dead_on_unwind nonnull writable sret(%"struct.Luau::TypePackIterator") align 8 %13, ptr noundef %267) %268 = call noundef zeroext i1 @_ZN4Luau16TypePackIteratorneERKS0_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull align 8 dereferenceable(32) %13) br i1 %268, label %269, label %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit.thread.i.i @@ -5008,7 +5004,7 @@ _ZN4Luau3getINS_8TypePackEEEPKT_PKNS_11TypePackVarE.exit.i.i: ; preds = %256 %276 = sext i32 %275 to i64 %277 = getelementptr inbounds [2 x ptr], ptr @_ZN4Luau7VariantIJPKNS_4TypeEPKNS_11TypePackVarEEE9tableDtorE, i64 0, i64 %276 %278 = load ptr, ptr %277, align 8 - invoke void %278(ptr noundef nonnull %20) + invoke void %275(ptr noundef nonnull %20) to label %.noexc.i88.i.i unwind label %290 .noexc.i88.i.i: ; preds = %274 @@ -5017,7 +5013,7 @@ _ZN4Luau3getINS_8TypePackEEEPKT_PKNS_11TypePackVarE.exit.i.i: ; preds = %256 %280 = sext i32 %279 to i64 %281 = getelementptr inbounds [2 x ptr], ptr @_ZN4Luau7VariantIJPKNS_4TypeEPKNS_11TypePackVarEEE9tableMoveE, i64 0, i64 %280 %282 = load ptr, ptr %281, align 8 - invoke void %282(ptr noundef nonnull %20, ptr noundef nonnull %273) + invoke void %279(ptr noundef nonnull %20, ptr noundef nonnull %273) to label %.noexc._ZN4Luau7VariantIJPKNS_4TypeEPKNS_11TypePackVarEEEaSEOS7_.exit_crit_edge.i89.i.i unwind label %290 .noexc._ZN4Luau7VariantIJPKNS_4TypeEPKNS_11TypePackVarEEEaSEOS7_.exit_crit_edge.i89.i.i: ; preds = %.noexc.i88.i.i @@ -5029,7 +5025,7 @@ _ZN4Luau7VariantIJPKNS_4TypeEPKNS_11TypePackVarEEEaSEOS7_.exit.i91.i.i: ; preds %284 = phi i64 [ %283, %.noexc._ZN4Luau7VariantIJPKNS_4TypeEPKNS_11TypePackVarEEEaSEOS7_.exit_crit_edge.i89.i.i ], [ 0, %269 ] %285 = getelementptr inbounds [2 x ptr], ptr @_ZN4Luau7VariantIJPKNS_4TypeEPKNS_11TypePackVarEEE9tableDtorE, i64 0, i64 %284 %286 = load ptr, ptr %285, align 8 - invoke void %286(ptr noundef nonnull %273) + invoke void %283(ptr noundef nonnull %273) to label %_ZN4Luau12_GLOBAL__N_114TraversalState13updateCurrentEPKNS_4TypeE.exit92.i.i unwind label %287 287: ; preds = %_ZN4Luau7VariantIJPKNS_4TypeEPKNS_11TypePackVarEEEaSEOS7_.exit.i91.i.i @@ -5046,7 +5042,7 @@ _ZN4Luau7VariantIJPKNS_4TypeEPKNS_11TypePackVarEEEaSEOS7_.exit.i91.i.i: ; preds %293 = sext i32 %292 to i64 %294 = getelementptr inbounds [2 x ptr], ptr @_ZN4Luau7VariantIJPKNS_4TypeEPKNS_11TypePackVarEEE9tableDtorE, i64 0, i64 %293 %295 = load ptr, ptr %294, align 8 - invoke void %295(ptr noundef nonnull %273) + invoke void %292(ptr noundef nonnull %273) to label %common.resume.i.i unwind label %296 296: ; preds = %290 @@ -5064,7 +5060,7 @@ _ZN4Luau12_GLOBAL__N_114TraversalState13updateCurrentEPKNS_4TypeE.exit92.i.i: ; call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4) br label %"_ZZN4LuauL8traverseERNS_12_GLOBAL__N_114TraversalStateERKNS_8TypePath4PathEENK3$_0clIRKNS3_5IndexEEEDaOT_.exit" -_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit.thread.i.i: ; preds = %.critedge.i.i, %256, %252, %_ZN4Luau12TypeIteratorINS_16IntersectionTypeEED2Ev.exit84.i.i, %_ZN4Luau12TypeIteratorINS_9UnionTypeEED2Ev.exit52.i.i, %23, %21 +_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit.thread.i.i: ; preds = %.critedge.i.i, %253, %252, %_ZN4Luau12TypeIteratorINS_16IntersectionTypeEED2Ev.exit84.i.i, %_ZN4Luau12TypeIteratorINS_9UnionTypeEED2Ev.exit52.i.i, %23, %21 br label %"_ZZN4LuauL8traverseERNS_12_GLOBAL__N_114TraversalStateERKNS_8TypePath4PathEENK3$_0clIRKNS3_5IndexEEEDaOT_.exit" "_ZZN4LuauL8traverseERNS_12_GLOBAL__N_114TraversalStateERKNS_8TypePath4PathEENK3$_0clIRKNS3_5IndexEEEDaOT_.exit": ; preds = %3, %_ZN4Luau12TypeIteratorINS_9UnionTypeEED2Ev.exit52.i.i, %_ZN4Luau12TypeIteratorINS_16IntersectionTypeEED2Ev.exit84.i.i, %_ZN4Luau12_GLOBAL__N_114TraversalState13updateCurrentEPKNS_4TypeE.exit92.i.i, %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit.thread.i.i diff --git a/bench/luau/optimized/Unifier2.ll b/bench/luau/optimized/Unifier2.ll index 23002506672..deceb5aaf45 100644 --- a/bench/luau/optimized/Unifier2.ll +++ b/bench/luau/optimized/Unifier2.ll @@ -2514,21 +2514,16 @@ _ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit: ; preds = %273 br i1 %.not.i.i156300316328350354358360, label %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit175.thread, label %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit175 _ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit.thread: ; preds = %273 - br i1 %.not.i.i156300316328350354358360, label %_ZN4Luau4get2INS_12NegationTypeES1_PKNS_4TypeEEENS_7TryPairIPKT_PKT0_EET1_SD_.exit, label %.thread267 + br i1 %.not.i.i156300316328350354358360, label %.critedge2, label %.thread267 .thread267: ; preds = %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit.thread %277 = load i32, ptr %68, align 8 %278 = icmp eq i32 %277, 10 %279 = getelementptr inbounds nuw i8, ptr %68, i64 8 - br i1 %278, label %292, label %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i.thread + br i1 %278, label %292, label %.critedge2 _ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit175.thread: ; preds = %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit - br i1 %275, label %288, label %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i.thread297 - -_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i.thread297: ; preds = %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit175.thread - %280 = icmp eq i32 %274, 18 - %281 = select i1 %280, ptr %276, ptr null - br label %_ZN4Luau4get2INS_12NegationTypeES1_PKNS_4TypeEEENS_7TryPairIPKT_PKT0_EET1_SD_.exit + br i1 %275, label %288, label %.critedge2 _ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit175: ; preds = %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit %282 = load i32, ptr %68, align 8 @@ -2560,37 +2555,19 @@ _ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit175: ; preds = %_ZN4Luau3g _ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i: ; preds = %291 %296 = icmp eq i32 %274, 18 - %297 = select i1 %296, ptr %276, ptr null - br label %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i.thread - -_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i.thread: ; preds = %.thread267, %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i - %298 = phi i32 [ %282, %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i ], [ %277, %.thread267 ] - %299 = phi ptr [ %297, %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i ], [ null, %.thread267 ] - %300 = icmp eq i32 %298, 18 - %301 = getelementptr inbounds nuw i8, ptr %68, i64 8 - %302 = select i1 %300, ptr %301, ptr null - br label %_ZN4Luau4get2INS_12NegationTypeES1_PKNS_4TypeEEENS_7TryPairIPKT_PKT0_EET1_SD_.exit - -_ZN4Luau4get2INS_12NegationTypeES1_PKNS_4TypeEEENS_7TryPairIPKT_PKT0_EET1_SD_.exit: ; preds = %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit.thread, %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i.thread297, %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i.thread - %303 = phi ptr [ %299, %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i.thread ], [ %281, %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i.thread297 ], [ null, %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit.thread ] - %304 = phi ptr [ %302, %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i.thread ], [ null, %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i.thread297 ], [ null, %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit.thread ] - %.not.i177 = icmp eq ptr %303, null - %.not11.i = icmp eq ptr %304, null - %..i = select i1 %.not11.i, ptr null, ptr %303 - %.8.i = select i1 %.not.i177, ptr null, ptr %304 - %305 = icmp ne ptr %..i, null - %306 = icmp ne ptr %.8.i, null - %or.cond28 = select i1 %305, i1 %306, i1 false - br i1 %or.cond28, label %307, label %.critedge2 - -307: ; preds = %_ZN4Luau4get2INS_12NegationTypeES1_PKNS_4TypeEEENS_7TryPairIPKT_PKT0_EET1_SD_.exit - %308 = load ptr, ptr %..i, align 8 - %309 = load ptr, ptr %.8.i, align 8 - %310 = call noundef zeroext i1 @_ZN4Luau8Unifier25unifyEPKNS_4TypeES3_(ptr noundef nonnull align 8 dereferenceable(336) %0, ptr noundef %308, ptr noundef %309) + %297 = icmp eq i32 %280, 18 + %or.cond28 = select i1 %295, i1 %294, i1 false + br i1 %or.cond28, label %296, label %.critedge2 + +296: ; preds = %_ZN4Luau3getINS_12NegationTypeEEEPKT_PKNS_4TypeE.exit.i + %297 = getelementptr inbounds nuw i8, ptr %68, i64 8 + %300 = load ptr, ptr %276, align 8 + %301 = load ptr, ptr %297, align 8 + %302 = call noundef zeroext i1 @_ZN4Luau8Unifier25unifyEPKNS_4TypeES3_(ptr noundef nonnull align 8 dereferenceable(336) %0, ptr noundef %298, ptr noundef %299) br label %.critedge2 -.critedge2: ; preds = %96, %.thread240, %133, %_ZN4Luau4get2INS_12NegationTypeES1_PKNS_4TypeEEENS_7TryPairIPKT_PKT0_EET1_SD_.exit, %_ZN4Luau3getINS_9TableTypeEEEPKT_PKNS_4TypeE.exit, %_ZN4Luau3getINS_9NeverTypeEEEPKT_PKNS_4TypeE.exit167, %128, %126, %.loopexit, %307, %292, %288, %285, %271, %268, %264, %260, %257, %214, %199, %193, %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit163.thread, %.thread263, %_ZN4Luau3getINS_9UnionTypeEEEPKT_PKNS_4TypeE.exit160.thread273, %178, %167 - %.0 = phi i1 [ %168, %167 ], [ %179, %178 ], [ %184, %_ZN4Luau3getINS_9UnionTypeEEEPKT_PKNS_4TypeE.exit160.thread273 ], [ %186, %.thread263 ], [ %189, %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit163.thread ], [ %195, %193 ], [ %213, %199 ], [ %228, %214 ], [ %258, %257 ], [ %261, %260 ], [ true, %264 ], [ true, %268 ], [ %272, %271 ], [ %286, %285 ], [ %290, %288 ], [ %295, %292 ], [ %310, %307 ], [ true, %.loopexit ], [ true, %126 ], [ true, %128 ], [ true, %_ZN4Luau3getINS_9NeverTypeEEEPKT_PKNS_4TypeE.exit167 ], [ true, %_ZN4Luau3getINS_9TableTypeEEEPKT_PKNS_4TypeE.exit ], [ true, %_ZN4Luau4get2INS_12NegationTypeES1_PKNS_4TypeEEENS_7TryPairIPKT_PKT0_EET1_SD_.exit ], [ true, %133 ], [ true, %.thread240 ], [ true, %96 ] +.critedge2: ; preds = %96, %.thread267, %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit175.thread, %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit.thread, %.thread240, %133, %_ZN4Luau4get2INS_12NegationTypeES1_PKNS_4TypeEEENS_7TryPairIPKT_PKT0_EET1_SD_.exit, %_ZN4Luau3getINS_9TableTypeEEEPKT_PKNS_4TypeE.exit, %_ZN4Luau3getINS_9NeverTypeEEEPKT_PKNS_4TypeE.exit167, %128, %126, %.loopexit, %296, %292, %288, %285, %271, %268, %264, %260, %257, %214, %199, %193, %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit163.thread, %.thread263, %_ZN4Luau3getINS_9UnionTypeEEEPKT_PKNS_4TypeE.exit160.thread273, %178, %167 + %.0 = phi i1 [ %168, %167 ], [ %179, %178 ], [ %184, %_ZN4Luau3getINS_9UnionTypeEEEPKT_PKNS_4TypeE.exit160.thread273 ], [ %186, %.thread263 ], [ %189, %_ZN4Luau3getINS_16IntersectionTypeEEEPKT_PKNS_4TypeE.exit163.thread ], [ %195, %193 ], [ %213, %199 ], [ %228, %214 ], [ %258, %257 ], [ %261, %260 ], [ true, %264 ], [ true, %268 ], [ %272, %271 ], [ %286, %285 ], [ %290, %288 ], [ %295, %292 ], [ %300, %296 ], [ true, %.loopexit ], [ true, %126 ], [ true, %128 ], [ true, %_ZN4Luau3getINS_9NeverTypeEEEPKT_PKNS_4TypeE.exit167 ], [ true, %_ZN4Luau3getINS_9TableTypeEEEPKT_PKNS_4TypeE.exit ], [ true, %_ZN4Luau4get2INS_12NegationTypeES1_PKNS_4TypeEEENS_7TryPairIPKT_PKT0_EET1_SD_.exit ], [ true, %133 ], [ true, %.thread240 ], [ true, %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit.thread ], [ true, %_ZN4Luau3getINS_13MetatableTypeEEEPKT_PKNS_4TypeE.exit175.thread ], [ true, %.thread267 ], [ true, %96 ] ret i1 %.0 } diff --git a/bench/memcached/optimized/testapp.ll b/bench/memcached/optimized/testapp.ll index ed832e454ba..b6fa4e02c31 100644 --- a/bench/memcached/optimized/testapp.ll +++ b/bench/memcached/optimized/testapp.ll @@ -6084,13 +6084,12 @@ define internal fastcc void @test_binary_get_impl(ptr noundef readonly captures( %6 = alloca %union.anon.12, align 8 call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %3) #21 call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %4) #21 - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) #21 + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) store i32 269352960, ptr %5, align 4, !tbaa !9 %7 = icmp ne i8 %1, 29 %8 = icmp ne i8 %1, 35 %or.cond.not = and i1 %7, %8 %spec.store.select = select i1 %or.cond.not, i64 0, i64 4 - %. = select i1 %or.cond.not, ptr null, ptr %5 %9 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #24 %10 = or disjoint i64 %spec.store.select, 24 %11 = add i64 %9, %10 @@ -6127,7 +6126,7 @@ define internal fastcc void @test_binary_get_impl(ptr noundef readonly captures( 25: ; preds = %14, %14 %26 = getelementptr inbounds nuw i8, ptr %3, i64 24 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %26, ptr nonnull readonly align 4 %., i64 range(i64 0, 5) %spec.store.select, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %26, ptr nonnull readonly align 4 %5, i64 range(i64 0, 5) %spec.store.select, i1 false) br label %ext_command.exit ext_command.exit: ; preds = %14, %25 @@ -6320,7 +6319,7 @@ safe_recv_packet.exit41: ; preds = %safe_send.exit37, % ] 114: ; preds = %109, %109 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %102, ptr nonnull readonly align 4 %., i64 range(i64 0, 5) %spec.store.select, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %102, ptr nonnull readonly align 4 %5, i64 range(i64 0, 5) %spec.store.select, i1 false) br label %ext_command.exit45 ext_command.exit45: ; preds = %109, %114 @@ -6399,7 +6398,7 @@ safe_recv_packet.exit55: ; preds = %139, %141 br i1 %exitcond66.not, label %149, label %139, !llvm.loop !81 149: ; preds = %safe_recv_packet.exit55 - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) #21 + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %5) call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %4) #21 call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %3) #21 ret void @@ -6414,7 +6413,7 @@ define internal fastcc void @test_binary_getq_impl(ptr noundef readonly captures call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %3) #21 call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %4) #21 call void @llvm.lifetime.start.p0(i64 1024, ptr nonnull %5) #21 - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) #21 + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %6) store i32 269352960, ptr %6, align 4, !tbaa !9 %7 = icmp ne i8 %1, 30 %8 = icmp ne i8 %1, 36 @@ -6453,7 +6452,6 @@ storage_command.exit: ; preds = %2 store i32 0, ptr %23, align 4, !tbaa !6 %24 = getelementptr inbounds nuw i8, ptr %3, i64 32 call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %24, ptr nonnull readonly align 1 %0, i64 %9, i1 false) - %. = select i1 %or.cond.not, ptr null, ptr %6 %25 = or disjoint i64 %spec.store.select, 24 %26 = or disjoint i64 %spec.store.select, 48 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false) @@ -6478,7 +6476,7 @@ storage_command.exit: ; preds = %2 36: ; preds = %storage_command.exit, %storage_command.exit %37 = getelementptr inbounds nuw i8, ptr %4, i64 24 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %37, ptr nonnull readonly align 4 %., i64 range(i64 0, 5) %spec.store.select, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %37, ptr nonnull readonly align 4 %6, i64 range(i64 0, 5) %spec.store.select, i1 false) br label %ext_command.exit ext_command.exit: ; preds = %storage_command.exit, %36 @@ -6514,7 +6512,7 @@ ext_command.exit: ; preds = %storage_command.exi 48: ; preds = %44, %44 %49 = getelementptr inbounds nuw i8, ptr %4, i64 24 - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %49, ptr nonnull readonly align 4 %., i64 range(i64 0, 5) %spec.store.select, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 8 %49, ptr nonnull readonly align 4 %6, i64 range(i64 0, 5) %spec.store.select, i1 false) br label %ext_command.exit27 ext_command.exit27: ; preds = %44, %48 @@ -6604,7 +6602,7 @@ safe_recv_packet.exit: ; preds = %safe_send.exit, %70 safe_recv_packet.exit32: ; preds = %safe_recv_packet.exit, %82 call fastcc void @validate_response_header(ptr noundef %5, i8 noundef zeroext %1, i16 noundef zeroext 0) - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) #21 + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %5) #21 call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %4) #21 call void @llvm.lifetime.end.p0(i64 1024, ptr nonnull %3) #21 diff --git a/bench/meshlab/optimized/edit_paint.ll b/bench/meshlab/optimized/edit_paint.ll index c5ba7b6cfe4..684fb616eda 100644 --- a/bench/meshlab/optimized/edit_paint.ll +++ b/bench/meshlab/optimized/edit_paint.ll @@ -16127,45 +16127,41 @@ define void @_ZN15EditPaintPlugin6updateEv(ptr noundef nonnull readonly align 8 11: ; preds = %8 %12 = getelementptr inbounds nuw i8, ptr %.pre16, i64 56 %13 = load ptr, ptr %12, align 8 - %14 = icmp eq ptr %13, null - %15 = getelementptr inbounds nuw i8, ptr %13, i64 48 - %spec.select.i5 = select i1 %14, ptr null, ptr %15 - %16 = tail call noundef ptr @_ZN12MeshDocument2mmEv(ptr noundef nonnull align 8 dereferenceable(192) %spec.select.i5) - %17 = load ptr, ptr %4, align 8 - %18 = getelementptr inbounds nuw i8, ptr %17, i64 56 + %14 = getelementptr inbounds nuw i8, ptr %13, i64 48 + %15 = tail call noundef ptr @_ZN12MeshDocument2mmEv(ptr noundef nonnull align 8 dereferenceable(192) %14) + %spec.select.i5 = load ptr, ptr %4, align 8 + %16 = getelementptr inbounds nuw i8, ptr %spec.select.i5, i64 56 + %17 = load ptr, ptr %17, align 8 + %18 = getelementptr inbounds nuw i8, ptr %17, i64 240 %19 = load ptr, ptr %18, align 8 - %20 = getelementptr inbounds nuw i8, ptr %19, i64 240 - %21 = load ptr, ptr %20, align 8 call void @llvm.lifetime.start.p0(i64 7, ptr nonnull %3) - %.not.i = icmp eq ptr %21, null + %.not.i = icmp eq ptr %20, null br i1 %.not.i, label %_ZN15EditPaintPlugin17updateColorBufferER9MeshModelP26MLSceneGLSharedDataContext.exit, label %22 22: ; preds = %11 call void @llvm.memset.p0.i64(ptr noundef nonnull align 1 dereferenceable(7) %3, i8 0, i64 7, i1 false) %23 = getelementptr inbounds nuw i8, ptr %3, i64 3 store i8 1, ptr %23, align 1 - %24 = getelementptr inbounds nuw i8, ptr %16, i64 1224 + %24 = getelementptr inbounds nuw i8, ptr %15, i64 1224 %25 = load i32, ptr %24, align 8 - call void @_ZN26MLSceneGLSharedDataContext21meshAttributesUpdatedEibRKN3vcg20GLMeshAttributesInfo13RenderingAttsINS1_9ATT_NAMESEEE(ptr noundef nonnull align 8 dereferenceable(168) %21, i32 noundef %25, i1 noundef zeroext false, ptr noundef nonnull align 1 dereferenceable(7) %3) + call void @_ZN26MLSceneGLSharedDataContext21meshAttributesUpdatedEibRKN3vcg20GLMeshAttributesInfo13RenderingAttsINS1_9ATT_NAMESEEE(ptr noundef nonnull align 8 dereferenceable(168) %20, i32 noundef %25, i1 noundef zeroext false, ptr noundef nonnull align 1 dereferenceable(7) %3) %.pre = load ptr, ptr %4, align 8 %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %.pre, i64 56 %.pre9 = load ptr, ptr %.phi.trans.insert, align 8 br label %_ZN15EditPaintPlugin17updateColorBufferER9MeshModelP26MLSceneGLSharedDataContext.exit _ZN15EditPaintPlugin17updateColorBufferER9MeshModelP26MLSceneGLSharedDataContext.exit: ; preds = %11, %22 - %26 = phi ptr [ %19, %11 ], [ %.pre9, %22 ] + %26 = phi ptr [ %18, %11 ], [ %.pre9, %22 ] call void @llvm.lifetime.end.p0(i64 7, ptr nonnull %3) - %27 = icmp eq ptr %26, null - %28 = getelementptr inbounds nuw i8, ptr %26, i64 48 - %spec.select.i6 = select i1 %27, ptr null, ptr %28 - %29 = call noundef ptr @_ZN12MeshDocument2mmEv(ptr noundef nonnull align 8 dereferenceable(192) %spec.select.i6) - %30 = load ptr, ptr %4, align 8 - %31 = getelementptr inbounds nuw i8, ptr %30, i64 56 + %27 = getelementptr inbounds nuw i8, ptr %26, i64 48 + %28 = call noundef ptr @_ZN12MeshDocument2mmEv(ptr noundef nonnull align 8 dereferenceable(192) %26) + %spec.select.i6 = load ptr, ptr %4, align 8 + %29 = getelementptr inbounds nuw i8, ptr %spec.select.i6, i64 56 + %30 = load ptr, ptr %29, align 8 + %31 = getelementptr inbounds nuw i8, ptr %30, i64 240 %32 = load ptr, ptr %31, align 8 - %33 = getelementptr inbounds nuw i8, ptr %32, i64 240 - %34 = load ptr, ptr %33, align 8 call void @llvm.lifetime.start.p0(i64 7, ptr nonnull %2) - %.not.i7 = icmp eq ptr %34, null + %.not.i7 = icmp eq ptr %32, null br i1 %.not.i7, label %_ZN15EditPaintPlugin21updateGeometryBuffersER9MeshModelP26MLSceneGLSharedDataContext.exit, label %35 35: ; preds = %_ZN15EditPaintPlugin17updateColorBufferER9MeshModelP26MLSceneGLSharedDataContext.exit @@ -16176,9 +16172,9 @@ _ZN15EditPaintPlugin17updateColorBufferER9MeshModelP26MLSceneGLSharedDataContext store i8 1, ptr %37, align 1 %38 = getelementptr inbounds nuw i8, ptr %2, i64 2 store i8 1, ptr %38, align 1 - %39 = getelementptr inbounds nuw i8, ptr %29, i64 1224 + %39 = getelementptr inbounds nuw i8, ptr %27, i64 1224 %40 = load i32, ptr %39, align 8 - call void @_ZN26MLSceneGLSharedDataContext21meshAttributesUpdatedEibRKN3vcg20GLMeshAttributesInfo13RenderingAttsINS1_9ATT_NAMESEEE(ptr noundef nonnull align 8 dereferenceable(168) %34, i32 noundef %40, i1 noundef zeroext false, ptr noundef nonnull align 1 dereferenceable(7) %2) + call void @_ZN26MLSceneGLSharedDataContext21meshAttributesUpdatedEibRKN3vcg20GLMeshAttributesInfo13RenderingAttsINS1_9ATT_NAMESEEE(ptr noundef nonnull align 8 dereferenceable(168) %32, i32 noundef %40, i1 noundef zeroext false, ptr noundef nonnull align 1 dereferenceable(7) %2) %.pre10 = load ptr, ptr %4, align 8 %.phi.trans.insert11 = getelementptr inbounds nuw i8, ptr %.pre10, i64 56 %.pre12 = load ptr, ptr %.phi.trans.insert11, align 8 @@ -16188,7 +16184,7 @@ _ZN15EditPaintPlugin17updateColorBufferER9MeshModelP26MLSceneGLSharedDataContext _ZN15EditPaintPlugin21updateGeometryBuffersER9MeshModelP26MLSceneGLSharedDataContext.exit: ; preds = %_ZN15EditPaintPlugin17updateColorBufferER9MeshModelP26MLSceneGLSharedDataContext.exit, %35 %41 = phi ptr [ null, %_ZN15EditPaintPlugin17updateColorBufferER9MeshModelP26MLSceneGLSharedDataContext.exit ], [ %.pre14, %35 ] - %42 = phi ptr [ %32, %_ZN15EditPaintPlugin17updateColorBufferER9MeshModelP26MLSceneGLSharedDataContext.exit ], [ %.pre12, %35 ] + %42 = phi ptr [ %30, %_ZN15EditPaintPlugin17updateColorBufferER9MeshModelP26MLSceneGLSharedDataContext.exit ], [ %.pre12, %35 ] call void @llvm.lifetime.end.p0(i64 7, ptr nonnull %2) %43 = getelementptr inbounds nuw i8, ptr %42, i64 48 %44 = call noundef ptr @_ZN12MeshDocument2mmEv(ptr noundef nonnull align 8 dereferenceable(192) %43) diff --git a/bench/meshlab/optimized/filter_dock_dialog.ll b/bench/meshlab/optimized/filter_dock_dialog.ll index faf61a52ee6..11988d1a6dc 100644 --- a/bench/meshlab/optimized/filter_dock_dialog.ll +++ b/bench/meshlab/optimized/filter_dock_dialog.ll @@ -774,10 +774,8 @@ _ZN7QStringD2Ev.exit52: ; preds = %95, %_ZN9QtPrivate8 %spec.select.i = select i1 %.not.i55, ptr null, ptr %134 store ptr %spec.select.i, ptr %63, align 8 %135 = load ptr, ptr %132, align 8 - %.not.i56 = icmp eq ptr %135, null %136 = getelementptr inbounds nuw i8, ptr %135, i64 48 - %spec.select.i57 = select i1 %.not.i56, ptr null, ptr %136 - %137 = invoke noundef ptr @_ZN12MeshDocument2mmEv(ptr noundef nonnull align 8 dereferenceable(192) %spec.select.i57) + %spec.select.i57 = invoke noundef ptr @_ZN12MeshDocument2mmEv(ptr noundef nonnull align 8 dereferenceable(192) %136) to label %138 unwind label %122 138: ; preds = %131 diff --git a/bench/minetest/optimized/nodedef.ll b/bench/minetest/optimized/nodedef.ll index bbe599c3cb9..69dffd99d3d 100644 --- a/bench/minetest/optimized/nodedef.ll +++ b/bench/minetest/optimized/nodedef.ll @@ -23106,19 +23106,17 @@ _ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_.exit: ; preds = %if.e br label %_ZN11StreamProxylsEPFRSoS0_E.exit _ZN11StreamProxylsEPFRSoS0_E.exit: ; preds = %_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_.exit, %_ZN9LogStreamlsIRA72_KcEER11StreamProxyOT_.exit, %_ZTW10infostream.exit - %9 = icmp eq ptr %gamedef, null %sub.ptr = getelementptr inbounds i8, ptr %gamedef, i64 -16 - %10 = select i1 %9, ptr null, ptr %sub.ptr - %call.i21 = tail call noundef ptr @_ZN6Client16getTextureSourceEv(ptr noundef nonnull align 8 dereferenceable(1746) %10) - %vtable = load ptr, ptr %10, align 8, !tbaa !37 + %10 = tail call noundef ptr @_ZN6Client16getTextureSourceEv(ptr noundef nonnull align 8 dereferenceable(1746) %sub.ptr) + %call.i21 = load ptr, ptr %sub.ptr, align 8, !tbaa !37 %vfn = getelementptr inbounds nuw i8, ptr %vtable, i64 88 %11 = load ptr, ptr %vfn, align 8 - %call4 = tail call noundef ptr %11(ptr noundef nonnull align 8 dereferenceable(1746) %10) - %call5 = tail call noundef ptr @_ZN6Client15getSceneManagerEv(ptr noundef nonnull align 8 dereferenceable(1746) %10) + %call4 = tail call noundef ptr %9(ptr noundef nonnull align 8 dereferenceable(1746) %sub.ptr) + %call5 = tail call noundef ptr @_ZN6Client15getSceneManagerEv(ptr noundef nonnull align 8 dereferenceable(1746) %sub.ptr) %vtable6 = load ptr, ptr %call5, align 8, !tbaa !37 %vfn7 = getelementptr inbounds nuw i8, ptr %vtable6, i64 184 %12 = load ptr, ptr %vfn7, align 8 - %call8 = tail call noundef ptr %12(ptr noundef nonnull align 8 dereferenceable(8) %call5) + %call8 = tail call noundef ptr %10(ptr noundef nonnull align 8 dereferenceable(8) %call5) call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %tsettings) #36 call void @_ZN15TextureSettings12readSettingsEv(ptr noundef nonnull align 4 dereferenceable(16) %tsettings) %_M_finish.i = getelementptr inbounds nuw i8, ptr %this, i64 8 @@ -23144,9 +23142,9 @@ for.body: ; preds = %for.body, %for.body %indvars.iv = phi i64 [ 0, %for.body.preheader ], [ %indvars.iv.next, %for.body ] %15 = load ptr, ptr %this, align 8, !tbaa !367 %add.ptr.i = getelementptr inbounds nuw %struct.ContentFeatures, ptr %15, i64 %indvars.iv - call void @_ZN15ContentFeatures14updateTexturesEP14ITextureSourceP13IShaderSourcePN3irr5scene16IMeshManipulatorEP6ClientRK15TextureSettings(ptr noundef nonnull align 8 dereferenceable(3706) %add.ptr.i, ptr noundef %call.i21, ptr noundef %call4, ptr noundef %call8, ptr noundef nonnull %10, ptr noundef nonnull align 4 dereferenceable(16) %tsettings) + call void @_ZN15ContentFeatures14updateTexturesEP14ITextureSourceP13IShaderSourcePN3irr5scene16IMeshManipulatorEP6ClientRK15TextureSettings(ptr noundef nonnull align 8 dereferenceable(3706) %add.ptr.i, ptr noundef %call.i21, ptr noundef %call4, ptr noundef %call8, ptr noundef nonnull %sub.ptr, ptr noundef nonnull align 4 dereferenceable(16) %tsettings) %16 = trunc i64 %indvars.iv to i32 - tail call void @_ZN6Client25showUpdateProgressTextureEPvjj(ptr noundef nonnull align 8 dereferenceable(1746) %10, ptr noundef %progress_callback_args, i32 noundef %16, i32 noundef %conv) + tail call void @_ZN6Client25showUpdateProgressTextureEPvjj(ptr noundef nonnull align 8 dereferenceable(1746) %sub.ptr, ptr noundef %progress_callback_args, i32 noundef %16, i32 noundef %conv) %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 %for.cond.cleanup, label %for.body, !llvm.loop !455 diff --git a/bench/mitsuba3/optimized/appender.ll b/bench/mitsuba3/optimized/appender.ll index ffad1e6365d..f22e1c2ae70 100644 --- a/bench/mitsuba3/optimized/appender.ll +++ b/bench/mitsuba3/optimized/appender.ll @@ -258,7 +258,7 @@ define void @_ZN7mitsuba14StreamAppender8read_logEv(ptr dead_on_unwind noalias w %6 = icmp eq ptr %5, null %7 = getelementptr inbounds i8, ptr %5, i64 -16 %8 = select i1 %6, ptr null, ptr %7 - %9 = load ptr, ptr %8, align 8 + %9 = load ptr, ptr %7, align 8 %10 = getelementptr i8, ptr %9, i64 -24 %11 = load i64, ptr %10, align 8 %12 = getelementptr inbounds i8, ptr %8, i64 %11 @@ -267,7 +267,7 @@ define void @_ZN7mitsuba14StreamAppender8read_logEv(ptr dead_on_unwind noalias w %15 = icmp eq i32 %14, 0 br i1 %15, label %18, label %68 -16: ; preds = %38, %36, %66, %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeB8ne190000Em.exit, %23, %21, %18 +16: ; preds = %38, %35, %66, %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeB8ne190000Em.exit, %22, %20, %18 %17 = landingpad { ptr, i32 } cleanup br label %.body @@ -278,45 +278,44 @@ define void @_ZN7mitsuba14StreamAppender8read_logEv(ptr dead_on_unwind noalias w resume { ptr, i32 } %eh.lpad-body 18: ; preds = %2 - %19 = getelementptr inbounds nuw i8, ptr %8, i64 16 - %20 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %19) - to label %21 unwind label %16 - -21: ; preds = %18 - %22 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3__113basic_istreamIcNS_11char_traitsIcEEE5seekgExNS_8ios_base7seekdirE(ptr noundef nonnull align 8 dereferenceable(16) %8, i64 noundef 0, i32 noundef 2) - to label %23 unwind label %16 - -23: ; preds = %21 - %24 = invoke { i64, i64 } @_ZNSt3__113basic_istreamIcNS_11char_traitsIcEEE5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %8) - to label %25 unwind label %16 - -25: ; preds = %23 - %26 = extractvalue { i64, i64 } %24, 1 - %27 = load ptr, ptr %8, align 8 - %28 = getelementptr i8, ptr %27, i64 -24 - %29 = load i64, ptr %28, align 8 - %30 = getelementptr inbounds i8, ptr %8, i64 %29 - %31 = getelementptr inbounds nuw i8, ptr %30, i64 32 - %32 = load i32, ptr %31, align 8 - %33 = and i32 %32, 5 - %34 = icmp ne i32 %33, 0 - %35 = icmp eq i64 %26, 0 - %or.cond = or i1 %35, %34 - br i1 %or.cond, label %68, label %36 - -36: ; preds = %25 - invoke void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %26, i8 noundef signext 0) + %19 = invoke noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt3__113basic_ostreamIcNS_11char_traitsIcEEE5flushEv(ptr noundef nonnull align 8 dereferenceable(8) %5) + to label %20 unwind label %16 + +20: ; preds = %18 + %21 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3__113basic_istreamIcNS_11char_traitsIcEEE5seekgExNS_8ios_base7seekdirE(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef 0, i32 noundef 2) + to label %22 unwind label %16 + +22: ; preds = %20 + %23 = invoke { i64, i64 } @_ZNSt3__113basic_istreamIcNS_11char_traitsIcEEE5tellgEv(ptr noundef nonnull align 8 dereferenceable(16) %7) + to label %24 unwind label %16 + +24: ; preds = %22 + %25 = extractvalue { i64, i64 } %23, 1 + %26 = load ptr, ptr %7, align 8 + %27 = getelementptr i8, ptr %26, i64 -24 + %28 = load i64, ptr %27, align 8 + %29 = getelementptr inbounds i8, ptr %7, i64 %28 + %30 = getelementptr inbounds nuw i8, ptr %29, i64 32 + %31 = load i32, ptr %30, align 8 + %32 = and i32 %31, 5 + %33 = icmp ne i32 %32, 0 + %34 = icmp eq i64 %25, 0 + %35 = or i1 %34, %33 + br i1 %35, label %67, label %35 + +35: ; preds = %24 + invoke void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeEmc(ptr noundef nonnull align 8 dereferenceable(24) %0, i64 noundef %25, i8 noundef signext 0) to label %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeB8ne190000Em.exit unwind label %16 -_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeB8ne190000Em.exit: ; preds = %36 - %37 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3__113basic_istreamIcNS_11char_traitsIcEEE5seekgExNS_8ios_base7seekdirE(ptr noundef nonnull align 8 dereferenceable(16) %8, i64 noundef 0, i32 noundef 0) +_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeB8ne190000Em.exit: ; preds = %35 + %37 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3__113basic_istreamIcNS_11char_traitsIcEEE5seekgExNS_8ios_base7seekdirE(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef 0, i32 noundef 0) to label %38 unwind label %16 38: ; preds = %_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeB8ne190000Em.exit - %39 = load ptr, ptr %8, align 8 + %39 = load ptr, ptr %7, align 8 %40 = getelementptr i8, ptr %39, i64 -24 %41 = load i64, ptr %40, align 8 - %42 = getelementptr inbounds i8, ptr %8, i64 %41 + %42 = getelementptr inbounds i8, ptr %7, i64 %41 %43 = getelementptr inbounds nuw i8, ptr %42, i64 40 %44 = load ptr, ptr %43, align 8 %45 = load i8, ptr %0, align 8 @@ -356,10 +355,10 @@ _ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEE6resizeB8ne190000 66: ; preds = %.noexc call void @_ZNSt3__112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEED1Ev(ptr noundef nonnull align 8 dereferenceable(24) %3) #17 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3) - %67 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3__113basic_istreamIcNS_11char_traitsIcEEE5seekgExNS_8ios_base7seekdirE(ptr noundef nonnull align 8 dereferenceable(16) %8, i64 noundef 0, i32 noundef 2) + %67 = invoke noundef nonnull align 8 dereferenceable(16) ptr @_ZNSt3__113basic_istreamIcNS_11char_traitsIcEEE5seekgExNS_8ios_base7seekdirE(ptr noundef nonnull align 8 dereferenceable(16) %7, i64 noundef 0, i32 noundef 2) to label %68 unwind label %16 -68: ; preds = %2, %25, %66 +68: ; preds = %2, %24, %66 ret void } diff --git a/bench/node/optimized/libnode.NodeTracing.ll b/bench/node/optimized/libnode.NodeTracing.ll index c669f4f6b30..cd3b8e1c4cb 100644 --- a/bench/node/optimized/libnode.NodeTracing.ll +++ b/bench/node/optimized/libnode.NodeTracing.ll @@ -198,15 +198,12 @@ _ZN4node9inspector8protocol15DictionaryValue4castEPNS1_5ValueE.exit: ; preds = % tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %m_value.i.i.i) #13 %m_includedCategories.i = getelementptr inbounds nuw i8, ptr %call1, i64 48 store ptr null, ptr %m_includedCategories.i, align 8 - %1 = load i32, ptr %m_type.i, align 8 - %cmp.not.i = icmp eq i32 %1, 6 - %spec.select.i = select i1 %cmp.not.i, ptr %value, ptr null tail call void @_ZN4node9inspector8protocol12ErrorSupport4pushEv(ptr noundef nonnull align 8 dereferenceable(48) %errors) #13 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #13 %call.i = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #13 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #13 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef nonnull @.str.4, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.4, i64 10)) - %call4 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #13 + %call4 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #13 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #13 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #13 %tobool5.not = icmp eq ptr %call4, null @@ -218,7 +215,7 @@ cond.true.i: ; preds = %_ZN4node9inspector8 %vtable.i = load ptr, ptr %call4, align 8, !noalias !5 %vfn.i = getelementptr inbounds nuw i8, ptr %vtable.i, i64 56 %2 = load ptr, ptr %vfn.i, align 8 - %call.i13 = call noundef zeroext i1 %2(ptr noundef nonnull align 8 dereferenceable(12) %call4, ptr noundef nonnull align 8 %agg.tmp) #13 + %call.i13 = call noundef zeroext i1 %1(ptr noundef nonnull align 8 dereferenceable(12) %call4, ptr noundef nonnull align 8 %agg.tmp) #13 br i1 %call.i13, label %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit, label %if.then.i if.then.i: ; preds = %cond.true.i @@ -236,7 +233,7 @@ if.end8: ; preds = %_ZN4node9inspector8 %call.i15 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp9) #13 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp9, ptr noundef %call.i15, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp10) #13 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp9, ptr noundef nonnull @.str.5, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.5, i64 18)) - %call11 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp9) #13 + %call11 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp9) #13 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp9) #13 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp10) #13 call void @_ZN4node9inspector8protocol12ErrorSupport7setNameEPKc(ptr noundef nonnull align 8 dereferenceable(48) %errors, ptr noundef nonnull @.str.5) #13 @@ -328,7 +325,7 @@ _ZNKSt14default_deleteIN4node9inspector8protocol11NodeTracing11TraceConfigEEclEP %vtable.i.i = load ptr, ptr %call1, align 8 %vfn.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i, i64 24 %12 = load ptr, ptr %vfn.i.i, align 8 - call void %12(ptr noundef nonnull align 8 dereferenceable(56) %call1) #13 + call void %11(ptr noundef nonnull align 8 dereferenceable(56) %call1) #13 br label %return return: ; preds = %_ZNKSt14default_deleteIN4node9inspector8protocol11NodeTracing11TraceConfigEEclEPS4_.exit.i, %cleanup.thread, %if.then diff --git a/bench/node/optimized/libnode.NodeWorker.ll b/bench/node/optimized/libnode.NodeWorker.ll index 09bf7fd2271..e599c88d2c8 100644 --- a/bench/node/optimized/libnode.NodeWorker.ll +++ b/bench/node/optimized/libnode.NodeWorker.ll @@ -217,15 +217,12 @@ _ZN4node9inspector8protocol15DictionaryValue4castEPNS1_5ValueE.exit: ; preds = % tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %m_title.i) #11 %m_url.i = getelementptr inbounds nuw i8, ptr %call1, i64 104 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %m_url.i) #11 - %1 = load i32, ptr %m_type.i, align 8 - %cmp.not.i = icmp eq i32 %1, 6 - %spec.select.i = select i1 %cmp.not.i, ptr %value, ptr null tail call void @_ZN4node9inspector8protocol12ErrorSupport4pushEv(ptr noundef nonnull align 8 dereferenceable(48) %errors) #11 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 %call.i = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef nonnull @.str.1, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.1, i64 8)) - %call4 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 + %call4 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 call void @_ZN4node9inspector8protocol12ErrorSupport7setNameEPKc(ptr noundef nonnull align 8 dereferenceable(48) %errors, ptr noundef nonnull @.str.1) #11 @@ -237,7 +234,7 @@ cond.true.i: ; preds = %_ZN4node9inspector8 %vtable.i = load ptr, ptr %call4, align 8, !noalias !5 %vfn.i = getelementptr inbounds nuw i8, ptr %vtable.i, i64 56 %2 = load ptr, ptr %vfn.i, align 8 - %call.i19 = call noundef zeroext i1 %2(ptr noundef nonnull align 8 dereferenceable(12) %call4, ptr noundef nonnull align 8 %ref.tmp5) #11 + %call.i19 = call noundef zeroext i1 %1(ptr noundef nonnull align 8 dereferenceable(12) %call4, ptr noundef nonnull align 8 %ref.tmp5) #11 br i1 %call.i19, label %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit, label %if.then.i if.then.i: ; preds = %cond.true.i, %_ZN4node9inspector8protocol15DictionaryValue4castEPNS1_5ValueE.exit @@ -251,7 +248,7 @@ _ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11cha %call.i20 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8, ptr noundef %call.i20, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8, ptr noundef nonnull @.str.2, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.2, i64 4)) - %call10 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 + %call10 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) #11 call void @_ZN4node9inspector8protocol12ErrorSupport7setNameEPKc(ptr noundef nonnull align 8 dereferenceable(48) %errors, ptr noundef nonnull @.str.2) #11 @@ -263,7 +260,7 @@ cond.true.i24: ; preds = %_ZN4node9inspector8 %vtable.i25 = load ptr, ptr %call10, align 8, !noalias !8 %vfn.i26 = getelementptr inbounds nuw i8, ptr %vtable.i25, i64 56 %3 = load ptr, ptr %vfn.i26, align 8 - %call.i27 = call noundef zeroext i1 %3(ptr noundef nonnull align 8 dereferenceable(12) %call10, ptr noundef nonnull align 8 %ref.tmp11) #11 + %call.i27 = call noundef zeroext i1 %2(ptr noundef nonnull align 8 dereferenceable(12) %call10, ptr noundef nonnull align 8 %ref.tmp11) #11 br i1 %call.i27, label %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit29, label %if.then.i28 if.then.i28: ; preds = %cond.true.i24, %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit @@ -277,7 +274,7 @@ _ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11cha %call.i30 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14, ptr noundef %call.i30, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp15) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14, ptr noundef nonnull @.str.3, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.3, i64 5)) - %call16 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14) #11 + %call16 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14) #11 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp15) #11 call void @_ZN4node9inspector8protocol12ErrorSupport7setNameEPKc(ptr noundef nonnull align 8 dereferenceable(48) %errors, ptr noundef nonnull @.str.3) #11 @@ -289,7 +286,7 @@ cond.true.i34: ; preds = %_ZN4node9inspector8 %vtable.i35 = load ptr, ptr %call16, align 8, !noalias !11 %vfn.i36 = getelementptr inbounds nuw i8, ptr %vtable.i35, i64 56 %4 = load ptr, ptr %vfn.i36, align 8 - %call.i37 = call noundef zeroext i1 %4(ptr noundef nonnull align 8 dereferenceable(12) %call16, ptr noundef nonnull align 8 %ref.tmp17) #11 + %call.i37 = call noundef zeroext i1 %3(ptr noundef nonnull align 8 dereferenceable(12) %call16, ptr noundef nonnull align 8 %ref.tmp17) #11 br i1 %call.i37, label %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit39, label %if.then.i38 if.then.i38: ; preds = %cond.true.i34, %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit29 @@ -303,7 +300,7 @@ _ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11cha %call.i40 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20, ptr noundef %call.i40, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp21) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20, ptr noundef nonnull @.str.4, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.4, i64 3)) - %call22 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20) #11 + %call22 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp20) #11 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp21) #11 call void @_ZN4node9inspector8protocol12ErrorSupport7setNameEPKc(ptr noundef nonnull align 8 dereferenceable(48) %errors, ptr noundef nonnull @.str.4) #11 @@ -315,7 +312,7 @@ cond.true.i44: ; preds = %_ZN4node9inspector8 %vtable.i45 = load ptr, ptr %call22, align 8, !noalias !14 %vfn.i46 = getelementptr inbounds nuw i8, ptr %vtable.i45, i64 56 %5 = load ptr, ptr %vfn.i46, align 8 - %call.i47 = call noundef zeroext i1 %5(ptr noundef nonnull align 8 dereferenceable(12) %call22, ptr noundef nonnull align 8 %ref.tmp23) #11 + %call.i47 = call noundef zeroext i1 %4(ptr noundef nonnull align 8 dereferenceable(12) %call22, ptr noundef nonnull align 8 %ref.tmp23) #11 br i1 %call.i47, label %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit49, label %if.then.i48 if.then.i48: ; preds = %cond.true.i44, %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit39 @@ -339,7 +336,7 @@ _ZNKSt14default_deleteIN4node9inspector8protocol10NodeWorker10WorkerInfoEEclEPS4 %vtable.i.i = load ptr, ptr %call1, align 8 %vfn.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i, i64 24 %7 = load ptr, ptr %vfn.i.i, align 8 - call void %7(ptr noundef nonnull align 8 dereferenceable(136) %call1) #11 + call void %6(ptr noundef nonnull align 8 dereferenceable(136) %call1) #11 br label %return return: ; preds = %_ZNKSt14default_deleteIN4node9inspector8protocol10NodeWorker10WorkerInfoEEclEPS4_.exit.i, %cleanup.thread, %if.then @@ -577,15 +574,12 @@ _ZN4node9inspector8protocol15DictionaryValue4castEPNS1_5ValueE.exit: ; preds = % store ptr null, ptr %m_workerInfo.i, align 8 %m_waitingForDebugger.i = getelementptr inbounds nuw i8, ptr %call1, i64 48 store i8 0, ptr %m_waitingForDebugger.i, align 8 - %1 = load i32, ptr %m_type.i, align 8 - %cmp.not.i = icmp eq i32 %1, 6 - %spec.select.i = select i1 %cmp.not.i, ptr %value, ptr null tail call void @_ZN4node9inspector8protocol12ErrorSupport4pushEv(ptr noundef nonnull align 8 dereferenceable(48) %errors) #11 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 %call.i = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef nonnull @.str.5, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.5, i64 9)) - %call4 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 + %call4 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 call void @_ZN4node9inspector8protocol12ErrorSupport7setNameEPKc(ptr noundef nonnull align 8 dereferenceable(48) %errors, ptr noundef nonnull @.str.5) #11 @@ -597,7 +591,7 @@ cond.true.i: ; preds = %_ZN4node9inspector8 %vtable.i = load ptr, ptr %call4, align 8, !noalias !44 %vfn.i = getelementptr inbounds nuw i8, ptr %vtable.i, i64 56 %2 = load ptr, ptr %vfn.i, align 8 - %call.i15 = call noundef zeroext i1 %2(ptr noundef nonnull align 8 dereferenceable(12) %call4, ptr noundef nonnull align 8 %ref.tmp5) #11 + %call.i15 = call noundef zeroext i1 %1(ptr noundef nonnull align 8 dereferenceable(12) %call4, ptr noundef nonnull align 8 %ref.tmp5) #11 br i1 %call.i15, label %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit, label %if.then.i if.then.i: ; preds = %cond.true.i, %_ZN4node9inspector8protocol15DictionaryValue4castEPNS1_5ValueE.exit @@ -611,7 +605,7 @@ _ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11cha %call.i16 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8, ptr noundef %call.i16, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8, ptr noundef nonnull @.str.6, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.6, i64 10)) - %call10 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 + %call10 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) #11 call void @_ZN4node9inspector8protocol12ErrorSupport7setNameEPKc(ptr noundef nonnull align 8 dereferenceable(48) %errors, ptr noundef nonnull @.str.6) #11 @@ -626,7 +620,7 @@ _ZNKSt14default_deleteIN4node9inspector8protocol10NodeWorker10WorkerInfoEEclEPS4 %vtable.i.i.i.i.i = load ptr, ptr %4, align 8 %vfn.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i.i.i.i, i64 24 %5 = load ptr, ptr %vfn.i.i.i.i.i, align 8 - call void %5(ptr noundef nonnull align 8 dereferenceable(136) %4) #11 + call void %4(ptr noundef nonnull align 8 dereferenceable(136) %4) #11 br label %_ZNSt10unique_ptrIN4node9inspector8protocol10NodeWorker10WorkerInfoESt14default_deleteIS4_EED2Ev.exit _ZNSt10unique_ptrIN4node9inspector8protocol10NodeWorker10WorkerInfoESt14default_deleteIS4_EED2Ev.exit: ; preds = %_ZNKSt14default_deleteIN4node9inspector8protocol10NodeWorker10WorkerInfoEEclEPS4_.exit.i.i.i.i, %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit @@ -634,7 +628,7 @@ _ZNSt10unique_ptrIN4node9inspector8protocol10NodeWorker10WorkerInfoESt14default_ %call.i20 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14, ptr noundef %call.i20, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp15) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14, ptr noundef nonnull @.str.7, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.7, i64 18)) - %call16 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14) #11 + %call16 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp14) #11 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp15) #11 call void @_ZN4node9inspector8protocol12ErrorSupport7setNameEPKc(ptr noundef nonnull align 8 dereferenceable(48) %errors, ptr noundef nonnull @.str.7) #11 @@ -647,7 +641,7 @@ cond.true.i24: ; preds = %_ZNSt10unique_ptrIN %vtable.i25 = load ptr, ptr %call16, align 8 %vfn.i26 = getelementptr inbounds nuw i8, ptr %vtable.i25, i64 32 %6 = load ptr, ptr %vfn.i26, align 8 - %call.i27 = call noundef zeroext i1 %6(ptr noundef nonnull align 8 dereferenceable(12) %call16, ptr noundef nonnull %result.i) #11 + %call.i27 = call noundef zeroext i1 %5(ptr noundef nonnull align 8 dereferenceable(12) %call16, ptr noundef nonnull %result.i) #11 br i1 %call.i27, label %_ZN4node9inspector8protocol16ValueConversionsIbE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit, label %if.then.i28 if.then.i28: ; preds = %cond.true.i24, %_ZNSt10unique_ptrIN4node9inspector8protocol10NodeWorker10WorkerInfoESt14default_deleteIS4_EED2Ev.exit @@ -673,7 +667,7 @@ _ZNKSt14default_deleteIN4node9inspector8protocol10NodeWorker28AttachedToWorkerNo %vtable.i.i30 = load ptr, ptr %call1, align 8 %vfn.i.i31 = getelementptr inbounds nuw i8, ptr %vtable.i.i30, i64 24 %9 = load ptr, ptr %vfn.i.i31, align 8 - call void %9(ptr noundef nonnull align 8 dereferenceable(49) %call1) #11 + call void %8(ptr noundef nonnull align 8 dereferenceable(49) %call1) #11 br label %return return: ; preds = %_ZNKSt14default_deleteIN4node9inspector8protocol10NodeWorker28AttachedToWorkerNotificationEEclEPS4_.exit.i, %cleanup.thread, %if.then @@ -831,15 +825,12 @@ _ZN4node9inspector8protocol15DictionaryValue4castEPNS1_5ValueE.exit: ; preds = % store ptr getelementptr inbounds nuw (i8, ptr @_ZTVN4node9inspector8protocol10NodeWorker30DetachedFromWorkerNotificationE, i64 16), ptr %call1, align 8 %m_sessionId.i = getelementptr inbounds nuw i8, ptr %call1, i64 8 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %m_sessionId.i) #11 - %1 = load i32, ptr %m_type.i, align 8 - %cmp.not.i = icmp eq i32 %1, 6 - %spec.select.i = select i1 %cmp.not.i, ptr %value, ptr null tail call void @_ZN4node9inspector8protocol12ErrorSupport4pushEv(ptr noundef nonnull align 8 dereferenceable(48) %errors) #11 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 %call.i = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef nonnull @.str.5, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.5, i64 9)) - %call4 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 + %call4 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 call void @_ZN4node9inspector8protocol12ErrorSupport7setNameEPKc(ptr noundef nonnull align 8 dereferenceable(48) %errors, ptr noundef nonnull @.str.5) #11 @@ -851,7 +842,7 @@ cond.true.i: ; preds = %_ZN4node9inspector8 %vtable.i = load ptr, ptr %call4, align 8, !noalias !62 %vfn.i = getelementptr inbounds nuw i8, ptr %vtable.i, i64 56 %2 = load ptr, ptr %vfn.i, align 8 - %call.i9 = call noundef zeroext i1 %2(ptr noundef nonnull align 8 dereferenceable(12) %call4, ptr noundef nonnull align 8 %ref.tmp5) #11 + %call.i9 = call noundef zeroext i1 %1(ptr noundef nonnull align 8 dereferenceable(12) %call4, ptr noundef nonnull align 8 %ref.tmp5) #11 br i1 %call.i9, label %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit, label %if.then.i if.then.i: ; preds = %cond.true.i, %_ZN4node9inspector8protocol15DictionaryValue4castEPNS1_5ValueE.exit @@ -875,7 +866,7 @@ _ZNKSt14default_deleteIN4node9inspector8protocol10NodeWorker30DetachedFromWorker %vtable.i.i = load ptr, ptr %call1, align 8 %vfn.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i, i64 24 %4 = load ptr, ptr %vfn.i.i, align 8 - call void %4(ptr noundef nonnull align 8 dereferenceable(40) %call1) #11 + call void %3(ptr noundef nonnull align 8 dereferenceable(40) %call1) #11 br label %return return: ; preds = %_ZNKSt14default_deleteIN4node9inspector8protocol10NodeWorker30DetachedFromWorkerNotificationEEclEPS4_.exit.i, %cleanup.thread, %if.then @@ -978,15 +969,12 @@ _ZN4node9inspector8protocol15DictionaryValue4castEPNS1_5ValueE.exit: ; preds = % tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %m_sessionId.i) #11 %m_message.i = getelementptr inbounds nuw i8, ptr %call1, i64 40 tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) %m_message.i) #11 - %1 = load i32, ptr %m_type.i, align 8 - %cmp.not.i = icmp eq i32 %1, 6 - %spec.select.i = select i1 %cmp.not.i, ptr %value, ptr null tail call void @_ZN4node9inspector8protocol12ErrorSupport4pushEv(ptr noundef nonnull align 8 dereferenceable(48) %errors) #11 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 %call.i = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef %call.i, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp, ptr noundef nonnull @.str.5, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.5, i64 9)) - %call4 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 + %call4 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp) #11 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp3) #11 call void @_ZN4node9inspector8protocol12ErrorSupport7setNameEPKc(ptr noundef nonnull align 8 dereferenceable(48) %errors, ptr noundef nonnull @.str.5) #11 @@ -998,7 +986,7 @@ cond.true.i: ; preds = %_ZN4node9inspector8 %vtable.i = load ptr, ptr %call4, align 8, !noalias !74 %vfn.i = getelementptr inbounds nuw i8, ptr %vtable.i, i64 56 %2 = load ptr, ptr %vfn.i, align 8 - %call.i12 = call noundef zeroext i1 %2(ptr noundef nonnull align 8 dereferenceable(12) %call4, ptr noundef nonnull align 8 %ref.tmp5) #11 + %call.i12 = call noundef zeroext i1 %1(ptr noundef nonnull align 8 dereferenceable(12) %call4, ptr noundef nonnull align 8 %ref.tmp5) #11 br i1 %call.i12, label %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit, label %if.then.i if.then.i: ; preds = %cond.true.i, %_ZN4node9inspector8protocol15DictionaryValue4castEPNS1_5ValueE.exit @@ -1012,7 +1000,7 @@ _ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11cha %call.i13 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8, ptr noundef %call.i13, ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8, ptr noundef nonnull @.str.8, ptr noundef nonnull getelementptr inbounds nuw (i8, ptr @.str.8, i64 7)) - %call10 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 + %call10 = call noundef ptr @_ZNK4node9inspector8protocol15DictionaryValue3getERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(96) %value, ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %ref.tmp8) #11 call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %ref.tmp9) #11 call void @_ZN4node9inspector8protocol12ErrorSupport7setNameEPKc(ptr noundef nonnull align 8 dereferenceable(48) %errors, ptr noundef nonnull @.str.8) #11 @@ -1024,7 +1012,7 @@ cond.true.i17: ; preds = %_ZN4node9inspector8 %vtable.i18 = load ptr, ptr %call10, align 8, !noalias !77 %vfn.i19 = getelementptr inbounds nuw i8, ptr %vtable.i18, i64 56 %3 = load ptr, ptr %vfn.i19, align 8 - %call.i20 = call noundef zeroext i1 %3(ptr noundef nonnull align 8 dereferenceable(12) %call10, ptr noundef nonnull align 8 %ref.tmp11) #11 + %call.i20 = call noundef zeroext i1 %2(ptr noundef nonnull align 8 dereferenceable(12) %call10, ptr noundef nonnull align 8 %ref.tmp11) #11 br i1 %call.i20, label %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit22, label %if.then.i21 if.then.i21: ; preds = %cond.true.i17, %_ZN4node9inspector8protocol16ValueConversionsINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEE9fromValueEPNS1_5ValueEPNS1_12ErrorSupportE.exit @@ -1048,7 +1036,7 @@ _ZNKSt14default_deleteIN4node9inspector8protocol10NodeWorker37ReceivedMessageFro %vtable.i.i = load ptr, ptr %call1, align 8 %vfn.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i, i64 24 %5 = load ptr, ptr %vfn.i.i, align 8 - call void %5(ptr noundef nonnull align 8 dereferenceable(72) %call1) #11 + call void %4(ptr noundef nonnull align 8 dereferenceable(72) %call1) #11 br label %return return: ; preds = %_ZNKSt14default_deleteIN4node9inspector8protocol10NodeWorker37ReceivedMessageFromWorkerNotificationEEclEPS4_.exit.i, %cleanup.thread, %if.then diff --git a/bench/node/optimized/libnode.node_file.ll b/bench/node/optimized/libnode.node_file.ll index 958d29ad201..019a5adcefa 100644 --- a/bench/node/optimized/libnode.node_file.ll +++ b/bench/node/optimized/libnode.node_file.ll @@ -41805,10 +41805,9 @@ entry: %1 = inttoptr i64 %sub.i.i.i.i to ptr %2 = icmp eq i64 %sub.i.i.i.i, 0 %sub.ptr.i = getelementptr inbounds i8, ptr %1, i64 -16 - %3 = select i1 %2, ptr null, ptr %sub.ptr.i - %4 = load atomic i64, ptr @"_ZZZN4node2fs10FileHandle10DoShutdownEPNS_12ShutdownWrapEENK3$_0clEP7uv_fs_sE28trace_event_unique_atomic683.0" seq_cst, align 8 - %5 = inttoptr i64 %4 to ptr - %tobool.not.i = icmp eq i64 %4, 0 + %3 = load atomic i64, ptr @"_ZZZN4node2fs10FileHandle10DoShutdownEPNS_12ShutdownWrapEENK3$_0clEP7uv_fs_sE28trace_event_unique_atomic683.0" seq_cst, align 8 + %4 = inttoptr i64 %3 to ptr + %5 = icmp eq i64 %3, 0 br i1 %tobool.not.i, label %if.then.i, label %if.end.i if.then.i: ; preds = %entry @@ -41820,7 +41819,7 @@ if.end.i.i: ; preds = %if.then.i %vtable.i.i = load ptr, ptr %call.i.i, align 8 %vfn.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i, i64 16 %6 = load ptr, ptr %vfn.i.i, align 8 - %call2.i.i = tail call noundef ptr %6(ptr noundef nonnull align 8 dereferenceable(8) %call.i.i, ptr noundef nonnull @.str.34) #30 + %call2.i.i = tail call noundef ptr %5(ptr noundef nonnull align 8 dereferenceable(8) %call.i.i, ptr noundef nonnull @.str.34) #30 br label %_ZN4node7tracing16TraceEventHelper23GetCategoryGroupEnabledEPKc.exit.i _ZN4node7tracing16TraceEventHelper23GetCategoryGroupEnabledEPKc.exit.i: ; preds = %if.end.i.i, %if.then.i @@ -41830,14 +41829,15 @@ _ZN4node7tracing16TraceEventHelper23GetCategoryGroupEnabledEPKc.exit.i: ; preds br label %if.end.i if.end.i: ; preds = %_ZN4node7tracing16TraceEventHelper23GetCategoryGroupEnabledEPKc.exit.i, %entry - %trace_event_unique_category_group_enabled683.0.i = phi ptr [ %5, %entry ], [ %retval.0.i.i, %_ZN4node7tracing16TraceEventHelper23GetCategoryGroupEnabledEPKc.exit.i ] + %trace_event_unique_category_group_enabled683.0.i = phi ptr [ %4, %entry ], [ %retval.0.i.i, %_ZN4node7tracing16TraceEventHelper23GetCategoryGroupEnabledEPKc.exit.i ] %8 = load i8, ptr %trace_event_unique_category_group_enabled683.0.i, align 1 %9 = and i8 %8, 5 %tobool4.not.i = icmp eq i8 %9, 0 br i1 %tobool4.not.i, label %do.end.i, label %if.then5.i if.then5.i: ; preds = %if.end.i - %10 = ptrtoint ptr %3 to i64 + %10 = ptrtoint ptr %sub.ptr.i to i64 + %10 = select i1 %2, i64 0, i64 %9 %fs_type.i = getelementptr inbounds nuw i8, ptr %req, i64 64 %11 = load i32, ptr %fs_type.i, align 8 %switch.tableidx = add i32 %11, -1 @@ -41906,22 +41906,19 @@ _ZN4node7tracingL13AddTraceEventIiEEmcPKhPKcS5_mmjS5_OT_.exit.i: ; preds = %_ZNS br label %do.end.i do.end.i: ; preds = %_ZN4node7tracingL13AddTraceEventIiEEmcPKhPKcS5_mmjS5_OT_.exit.i, %if.end.i - %stream_.i.i = getelementptr inbounds nuw i8, ptr %3, i64 8 + %stream_.i.i = getelementptr inbounds i8, ptr %1, i64 -8 %18 = load ptr, ptr %stream_.i.i, align 8 - %19 = icmp eq ptr %18, null - %sub.ptr14.i = getelementptr inbounds i8, ptr %18, i64 -56 - %20 = select i1 %19, ptr null, ptr %sub.ptr14.i call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp.i.i) - %closing_.i.i = getelementptr inbounds nuw i8, ptr %20, i64 124 + %closing_.i.i = getelementptr inbounds nuw i8, ptr %18, i64 68 store i8 0, ptr %closing_.i.i, align 4 - %closed_.i.i = getelementptr inbounds nuw i8, ptr %20, i64 125 + %closed_.i.i = getelementptr inbounds nuw i8, ptr %18, i64 69 store i8 1, ptr %closed_.i.i, align 1 - %fd_.i.i = getelementptr inbounds nuw i8, ptr %20, i64 120 + %fd_.i.i = getelementptr inbounds nuw i8, ptr %18, i64 64 store i32 -1, ptr %fd_.i.i, align 8 - %reading_.i.i = getelementptr inbounds nuw i8, ptr %20, i64 126 + %reading_.i.i = getelementptr inbounds nuw i8, ptr %18, i64 70 %21 = load i8, ptr %reading_.i.i, align 2 %tobool.i.i = trunc i8 %21 to i1 - %persistent_handle_.i.i.i = getelementptr inbounds nuw i8, ptr %20, i64 8 + %persistent_handle_.i.i.i = getelementptr inbounds i8, ptr %18, i64 -48 %22 = load ptr, ptr %persistent_handle_.i.i.i, align 8 %cmp.i.i.i = icmp ne ptr %22, null %or.cond.not.i.i = select i1 %tobool.i.i, i1 %cmp.i.i.i, i1 false @@ -41934,12 +41931,12 @@ if.then.i.i: ; preds = %do.end.i %24 = getelementptr inbounds nuw i8, ptr %ref.tmp.i.i, i64 8 %25 = extractvalue { ptr, i64 } %call3.i.i, 1 store i64 %25, ptr %24, align 8 - %listener_.i.i.i = getelementptr inbounds nuw i8, ptr %20, i64 64 + %listener_.i.i.i = getelementptr inbounds nuw i8, ptr %18, i64 8 %26 = load ptr, ptr %listener_.i.i.i, align 8 %vtable.i.i17.i = load ptr, ptr %26, align 8 %vfn.i.i18.i = getelementptr inbounds nuw i8, ptr %vtable.i.i17.i, i64 24 %27 = load ptr, ptr %vfn.i.i18.i, align 8 - call void %27(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef -4095, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp.i.i) #30 + call void %25(ptr noundef nonnull align 8 dereferenceable(24) %26, i64 noundef -4095, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp.i.i) #30 br label %"_ZZN4node2fs10FileHandle10DoShutdownEPNS_12ShutdownWrapEENK3$_0clEP7uv_fs_s.exit" "_ZZN4node2fs10FileHandle10DoShutdownEPNS_12ShutdownWrapEENK3$_0clEP7uv_fs_s.exit": ; preds = %do.end.i, %if.then.i.i @@ -41948,7 +41945,7 @@ if.then.i.i: ; preds = %do.end.i %28 = load i64, ptr %result18.i, align 8 %conv19.i = trunc i64 %28 to i32 call void @uv_fs_req_cleanup(ptr noundef %req) #30 - call void @_ZN4node9StreamReq4DoneEiPKc(ptr noundef nonnull align 8 dereferenceable(16) %3, i32 noundef %conv19.i, ptr noundef null) #30 + call void @_ZN4node9StreamReq4DoneEiPKc(ptr noundef nonnull align 8 dereferenceable(16) %sub.ptr.i, i32 noundef %conv19.i, ptr noundef null) #30 ret void } diff --git a/bench/node/optimized/libnode.node_http2.ll b/bench/node/optimized/libnode.node_http2.ll index d09e13f05ca..5a0795acf50 100644 --- a/bench/node/optimized/libnode.node_http2.ll +++ b/bench/node/optimized/libnode.node_http2.ll @@ -11278,22 +11278,19 @@ entry: %agg.tmp13 = alloca %"class.std::shared_ptr", align 8 %stream_ = getelementptr inbounds nuw i8, ptr %this, i64 8 %0 = load ptr, ptr %stream_, align 8 - %1 = icmp eq ptr %0, null - %sub.ptr = getelementptr inbounds i8, ptr %0, i64 -56 - %2 = select i1 %1, ptr null, ptr %sub.ptr - %session_.i = getelementptr inbounds nuw i8, ptr %2, i64 184 - %3 = load ptr, ptr %session_.i, align 8 - %cmp.i.i.i = icmp eq ptr %3, null + %1 = getelementptr inbounds nuw i8, ptr %0, i64 128 + %sub.ptr = load ptr, ptr %1, align 8 + %2 = icmp eq ptr %sub.ptr, null br i1 %cmp.i.i.i, label %_ZN4node5http211Http2Stream7sessionEv.exit, label %if.end.i.i.i if.end.i.i.i: ; preds = %entry - %self.i.i.i = getelementptr inbounds nuw i8, ptr %3, i64 16 + %self.i.i.i = getelementptr inbounds nuw i8, ptr %1, i64 16 %4 = load ptr, ptr %self.i.i.i, align 8 br label %_ZN4node5http211Http2Stream7sessionEv.exit _ZN4node5http211Http2Stream7sessionEv.exit: ; preds = %entry, %if.end.i.i.i %retval.0.i.i.i = phi ptr [ %4, %if.end.i.i.i ], [ null, %entry ] - %realm_.i = getelementptr inbounds nuw i8, ptr %2, i64 16 + %realm_.i = getelementptr inbounds i8, ptr %0, i64 -40 %5 = load ptr, ptr %realm_.i, align 8 %env_.i.i = getelementptr inbounds nuw i8, ptr %5, i64 176 %6 = load ptr, ptr %env_.i.i, align 8 @@ -11305,7 +11302,7 @@ _ZN4node5http211Http2Stream7sessionEv.exit: ; preds = %entry, %if.end.i.i. %vtable.i = load ptr, ptr %8, align 8 %vfn.i = getelementptr inbounds nuw i8, ptr %vtable.i, i64 64 %9 = load ptr, ptr %vfn.i, align 8 - %call2.i = call ptr %9(ptr noundef nonnull align 8 dereferenceable(872) %8) #28 + %call2.i = call ptr %7(ptr noundef nonnull align 8 dereferenceable(872) %8) #28 call void @_ZN2v87Context5EnterEv(ptr noundef nonnull align 1 dereferenceable(1) %call2.i) #28 %cmp = icmp slt i64 %nread, 0 br i1 %cmp, label %if.then, label %if.end @@ -11332,7 +11329,7 @@ _ZN4node14StreamListener31PassReadErrorToPreviousListenerEl.exit: ; preds = %if. %vtable.i23 = load ptr, ptr %10, align 8 %vfn.i24 = getelementptr inbounds nuw i8, ptr %vtable.i23, i64 24 %14 = load ptr, ptr %vfn.i24, align 8 - call void %14(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %nread, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp.i) #28 + call void %12(ptr noundef nonnull align 8 dereferenceable(24) %10, i64 noundef %nread, ptr noundef nonnull align 8 dereferenceable(16) %ref.tmp.i) #28 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp.i) br label %cleanup @@ -11366,7 +11363,7 @@ if.then.i.i.i.i: ; preds = %if.then.i.i.i %vtable.i.i.i.i = load ptr, ptr %17, align 8 %vfn.i.i.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i.i.i, i64 16 %20 = load ptr, ptr %vfn.i.i.i.i, align 8 - call void %20(ptr noundef nonnull align 8 dereferenceable(16) %17) #28 + call void %18(ptr noundef nonnull align 8 dereferenceable(16) %17) #28 br label %if.end8.sink.split.i.i.i.i if.end.i.i.i.i: ; preds = %if.then.i.i.i @@ -11392,7 +11389,7 @@ if.then7.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__ex %vtable.i.i.i.i.i.i = load ptr, ptr %17, align 8 %vfn.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %vtable.i.i.i.i.i.i, i64 16 %23 = load ptr, ptr %vfn.i.i.i.i.i.i, align 8 - call void %23(ptr noundef nonnull align 8 dereferenceable(16) %17) #28 + call void %21(ptr noundef nonnull align 8 dereferenceable(16) %17) #28 %_M_weak_count.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %17, i64 12 %24 = load i8, ptr @__libc_single_threaded, align 1 %tobool.i.not.i.i.i.i.i.i = icmp eq i8 %24, 0 @@ -11417,7 +11414,7 @@ if.end8.sink.split.i.i.i.i: ; preds = %_ZN9__gnu_cxx27__ex %vtable2.i.i.i.i.i.i = load ptr, ptr %17, align 8 %vfn3.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %vtable2.i.i.i.i.i.i, i64 24 %27 = load ptr, ptr %vfn3.i.i.i.i.i.i, align 8 - call void %27(ptr noundef nonnull align 8 dereferenceable(16) %17) #28 + call void %25(ptr noundef nonnull align 8 dereferenceable(16) %17) #28 br label %_ZNSt10shared_ptrIN2v812BackingStoreEED2Ev.exit _ZNSt10shared_ptrIN2v812BackingStoreEED2Ev.exit: ; preds = %if.then11, %_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 @@ -11483,8 +11480,7 @@ do.body58: ; preds = %do.body49 unreachable do.end63: ; preds = %do.body49 - %add.ptr = getelementptr inbounds nuw i8, ptr %2, i64 56 - %call68 = call ptr @_ZN4node10StreamBase18CallJSOnreadMethodElN2v85LocalINS1_11ArrayBufferEEEmNS0_18StreamBaseJSChecksE(ptr noundef nonnull align 8 dereferenceable(64) %add.ptr, i64 noundef %nread, ptr %ab.sroa.0.0, i64 noundef %sub.ptr.sub, i32 noundef 0) #28 + %call68 = call ptr @_ZN4node10StreamBase18CallJSOnreadMethodElN2v85LocalINS1_11ArrayBufferEEEmNS0_18StreamBaseJSChecksE(ptr noundef nonnull align 8 dereferenceable(64) %0, i64 noundef %nread, ptr %ab.sroa.0.0, i64 noundef %sub.ptr.sub, i32 noundef 0) #28 br label %cleanup cleanup: ; preds = %do.end63, %_ZN4node14StreamListener31PassReadErrorToPreviousListenerEl.exit diff --git a/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll b/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll index 5ce03e9b2c3..980ff397111 100644 --- a/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll +++ b/bench/ockam-rs/optimized/3spcfx0kj7tua4em.ll @@ -10788,11 +10788,10 @@ define hidden void @"_ZN15futures_channel7oneshot14Inner$LT$T$GT$4send17h9cb404a 17: ; preds = %12 tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %1, ptr noundef nonnull align 8 dereferenceable(24) %2, i64 24, i1 false) - %18 = getelementptr inbounds nuw i8, ptr %1, i64 24 - tail call void @_ZN4core4sync6atomic12atomic_store17h3781e4002461d244E.llvm.1425447921696267910(ptr noundef nonnull %18, i8 noundef 0, i8 noundef 4) - %19 = load atomic i8, ptr %5 seq_cst, align 8 - %20 = icmp eq i8 %19, 0 - br i1 %20, label %21, label %22 + tail call void @_ZN4core4sync6atomic12atomic_store17h3781e4002461d244E.llvm.1425447921696267910(ptr noundef nonnull %10, i8 noundef 0, i8 noundef 4) + %18 = load atomic i8, ptr %5 seq_cst, align 8 + %19 = icmp eq i8 %18, 0 + br i1 %19, label %20, label %21 21: ; preds = %22, %"_ZN4core3ptr158drop_in_place$LT$futures_channel..lock..TryLock$LT$core..option..Option$LT$core..result..Result$LT$$LP$$RP$$C$opentelemetry..trace..TraceError$GT$$GT$$GT$$GT$17h4b31f9847f4c0636E.exit25", %17 store i64 4, ptr %0, align 8 diff --git a/bench/ockam-rs/optimized/lcclztcuaxx9mqt.ll b/bench/ockam-rs/optimized/lcclztcuaxx9mqt.ll index d422476889d..44145ef751f 100644 --- a/bench/ockam-rs/optimized/lcclztcuaxx9mqt.ll +++ b/bench/ockam-rs/optimized/lcclztcuaxx9mqt.ll @@ -92235,7 +92235,6 @@ define hidden noundef range(i8 0, 3) i8 @"_ZN22aws_smithy_runtime_api6client12in %5 = getelementptr inbounds nuw i8, ptr %0, i64 344 %6 = load i64, ptr %5, align 8, !range !82, !noundef !57 %7 = icmp eq i64 %6, 2 - %. = select i1 %7, ptr null, ptr %5 %8 = getelementptr inbounds nuw i8, ptr %0, i64 1056 %9 = load i8, ptr %8, align 8, !range !108, !noundef !57 %10 = trunc nuw i8 %9 to i1 @@ -92256,7 +92255,7 @@ define hidden noundef range(i8 0, 3) i8 @"_ZN22aws_smithy_runtime_api6client12in 14: ; preds = %11 %not. = xor i1 %7, true tail call void @llvm.assume(i1 %not.) - call void @_ZN22aws_smithy_runtime_api4http7request7Request9try_clone17h6a835d633ddb8bf6E(ptr noalias noundef nonnull sret({ i64, [42 x i64] }) align 8 captures(none) dereferenceable(344) %4, ptr noundef nonnull align 8 %.) + call void @_ZN22aws_smithy_runtime_api4http7request7Request9try_clone17h6a835d633ddb8bf6E(ptr noalias noundef nonnull sret({ i64, [42 x i64] }) align 8 captures(none) dereferenceable(344) %4, ptr noundef nonnull align 8 %5) %15 = getelementptr inbounds nuw i8, ptr %0, i64 1057 store i8 2, ptr %15, align 1 %16 = load i64, ptr %0, align 8, !range !82, !alias.scope !12024, !noundef !57 diff --git a/bench/oiio/optimized/imagebuf.ll b/bench/oiio/optimized/imagebuf.ll index 185201e29d6..7d18e680db2 100644 --- a/bench/oiio/optimized/imagebuf.ll +++ b/bench/oiio/optimized/imagebuf.ll @@ -47861,13 +47861,9 @@ _ZNK18OpenImageIO_v2_6_012ImageBufImpl10pixelindexEiiib.exit: ; preds = %lor.lhs %mul25.i = mul nsw i32 %add.i, %7 %add26.i = add nuw nsw i32 %mul25.i, %sub.i %call.i.i = tail call noundef zeroext i1 @_ZNK18OpenImageIO_v2_6_012ImageBufImpl15validate_pixelsENS_6DoLockE(ptr noundef nonnull align 8 dereferenceable(664) %3, i8 1) - %deep.i.i = getelementptr inbounds nuw i8, ptr %3, i64 176 - %10 = load i8, ptr %deep.i.i, align 8 - %tobool.i.i = trunc i8 %10 to i1 %m_deepdata.i.i = getelementptr inbounds nuw i8, ptr %3, i64 488 - %cond.i.i = select i1 %tobool.i.i, ptr %m_deepdata.i.i, ptr null %conv = zext nneg i32 %add26.i to i64 - %call9 = tail call noundef i32 @_ZNK18OpenImageIO_v2_6_08DeepData7samplesEl(ptr noundef nonnull align 8 dereferenceable(20) %cond.i.i, i64 noundef %conv) + %call9 = tail call noundef i32 @_ZNK18OpenImageIO_v2_6_08DeepData7samplesEl(ptr noundef nonnull align 8 dereferenceable(20) %m_deepdata.i.i, i64 noundef %conv) br label %return return: ; preds = %if.end, %lor.lhs.false.i, %lor.lhs.false13.i, %_ZNK18OpenImageIO_v2_6_012ImageBufImpl10pixelindexEiiib.exit, %entry @@ -47947,25 +47943,17 @@ lor.lhs.false10: ; preds = %_ZNK18OpenImageIO_v if.end13: ; preds = %lor.lhs.false10 %call.i.i8 = tail call noundef zeroext i1 @_ZNK18OpenImageIO_v2_6_012ImageBufImpl15validate_pixelsENS_6DoLockE(ptr noundef nonnull align 8 dereferenceable(664) %4, i8 1) - %deep.i.i = getelementptr inbounds nuw i8, ptr %4, i64 176 - %13 = load i8, ptr %deep.i.i, align 8 - %tobool.i.i = trunc i8 %13 to i1 %m_deepdata.i.i = getelementptr inbounds nuw i8, ptr %4, i64 488 - %cond.i.i = select i1 %tobool.i.i, ptr %m_deepdata.i.i, ptr null %conv = zext nneg i32 %retval.0.i to i64 - %call15 = tail call noundef i32 @_ZNK18OpenImageIO_v2_6_08DeepData7samplesEl(ptr noundef nonnull align 8 dereferenceable(20) %cond.i.i, i64 noundef %conv) + %call15 = tail call noundef i32 @_ZNK18OpenImageIO_v2_6_08DeepData7samplesEl(ptr noundef nonnull align 8 dereferenceable(20) %m_deepdata.i.i, i64 noundef %conv) %cmp16 = icmp slt i32 %s, %call15 br i1 %cmp16, label %cond.true, label %return cond.true: ; preds = %if.end13 %14 = load ptr, ptr %add.ptr.i.i.i.i.i.i, align 8 %call.i.i10 = tail call noundef zeroext i1 @_ZNK18OpenImageIO_v2_6_012ImageBufImpl15validate_pixelsENS_6DoLockE(ptr noundef nonnull align 8 dereferenceable(664) %14, i8 1) - %deep.i.i11 = getelementptr inbounds nuw i8, ptr %14, i64 176 - %15 = load i8, ptr %deep.i.i11, align 8 - %tobool.i.i12 = trunc i8 %15 to i1 - %m_deepdata.i.i13 = getelementptr inbounds nuw i8, ptr %14, i64 488 - %cond.i.i14 = select i1 %tobool.i.i12, ptr %m_deepdata.i.i13, ptr null - %call19 = tail call noundef ptr @_ZNK18OpenImageIO_v2_6_08DeepData8data_ptrElii(ptr noundef nonnull align 8 dereferenceable(20) %cond.i.i14, i64 noundef %conv, i32 noundef %c, i32 noundef %s) + %deep.i.i11 = getelementptr inbounds nuw i8, ptr %14, i64 488 + %15 = tail call noundef ptr @_ZNK18OpenImageIO_v2_6_08DeepData8data_ptrElii(ptr noundef nonnull align 8 dereferenceable(20) %deep.i.i11, i64 noundef %conv, i32 noundef %c, i32 noundef %s) br label %return return: ; preds = %cond.true, %if.end13, %_ZNK18OpenImageIO_v2_6_012ImageBufImpl10pixelindexEiiib.exit, %lor.lhs.false10, %entry @@ -48336,13 +48324,9 @@ if.end: ; preds = %lor.lhs.false %m_deepdata = getelementptr inbounds nuw i8, ptr %6, i64 488 %conv = sext i32 %add26.i.i to i64 %call.i.i = tail call noundef zeroext i1 @_ZNK18OpenImageIO_v2_6_012ImageBufImpl15validate_pixelsENS_6DoLockE(ptr noundef nonnull align 8 dereferenceable(664) %10, i8 1) - %deep.i.i = getelementptr inbounds nuw i8, ptr %10, i64 176 - %14 = load i8, ptr %deep.i.i, align 8 - %tobool.i.i = trunc i8 %14 to i1 %m_deepdata.i.i = getelementptr inbounds nuw i8, ptr %10, i64 488 - %cond.i.i = select i1 %tobool.i.i, ptr %m_deepdata.i.i, ptr null %conv18 = sext i32 %add26.i.i24 to i64 - %call19 = tail call noundef zeroext i1 @_ZN18OpenImageIO_v2_6_08DeepData15copy_deep_pixelElRKS0_l(ptr noundef nonnull align 8 dereferenceable(20) %m_deepdata, i64 noundef %conv, ptr noundef nonnull align 8 dereferenceable(20) %cond.i.i, i64 noundef %conv18) + %call19 = tail call noundef zeroext i1 @_ZN18OpenImageIO_v2_6_08DeepData15copy_deep_pixelElRKS0_l(ptr noundef nonnull align 8 dereferenceable(20) %m_deepdata, i64 noundef %conv, ptr noundef nonnull align 8 dereferenceable(20) %m_deepdata.i.i, i64 noundef %conv18) br label %return return: ; preds = %entry, %lor.lhs.false, %if.end diff --git a/bench/openjdk/optimized/barrierSetC2.ll b/bench/openjdk/optimized/barrierSetC2.ll index 2819fd1d8e2..0aeea513785 100644 --- a/bench/openjdk/optimized/barrierSetC2.ll +++ b/bench/openjdk/optimized/barrierSetC2.ll @@ -1320,28 +1320,25 @@ _ZNK8C2Access16needs_cpu_membarEv.exit: ; preds = %55, %54, %51 br i1 %69, label %70, label %_ZNK8C2Access16needs_cpu_membarEv.exit.thread 70: ; preds = %62 - %71 = load i32, ptr %59, align 8 - %72 = icmp eq i32 %71, 21 - %..i13 = select i1 %72, ptr %43, ptr null - %73 = load ptr, ptr %..i13, align 8 - %74 = getelementptr inbounds nuw i8, ptr %73, i64 232 - %75 = load ptr, ptr %74, align 8 - %76 = call noundef ptr %75(ptr noundef nonnull align 8 dereferenceable(80) %..i13) #14 - %77 = getelementptr inbounds nuw i8, ptr %76, i64 40 - %78 = load i32, ptr %77, align 8 - %79 = and i32 %78, -2 - %80 = load i64, ptr %2, align 8 - %81 = sext i32 %79 to i64 - %82 = icmp slt i64 %80, %81 - br i1 %82, label %83, label %_ZNK8C2Access16needs_cpu_membarEv.exit.thread - -83: ; preds = %70 - %84 = load i64, ptr %3, align 8 - %85 = xor i64 %84, 51539607552 - store i64 %85, ptr %3, align 8 + %71 = load ptr, ptr %43, align 8 + %72 = getelementptr inbounds nuw i8, ptr %71, i64 232 + %..i13 = load ptr, ptr %72, align 8 + %73 = call noundef ptr %73(ptr noundef nonnull align 8 dereferenceable(80) %43) #14 + %74 = getelementptr inbounds nuw i8, ptr %73, i64 40 + %75 = load i32, ptr %74, align 8 + %76 = and i32 %75, -2 + %77 = load i64, ptr %2, align 8 + %78 = sext i32 %77 to i64 + %79 = icmp slt i64 %78, %79 + br i1 %80, label %81, label %_ZNK8C2Access16needs_cpu_membarEv.exit.thread + +81:; preds = %70 + %82 = load i64, ptr %3, align 8 + %83 = xor i64 %82, 51539607552 + store i64 %83, ptr %3, align 8 br label %_ZNK8C2Access16needs_cpu_membarEv.exit.thread -_ZNK8C2Access16needs_cpu_membarEv.exit.thread: ; preds = %55, %53, %38, %16, %_ZNK8C2Access16needs_cpu_membarEv.exit, %70, %83, %62 +_ZNK8C2Access16needs_cpu_membarEv.exit.thread: ; preds = %55, %53, %38, %16, %_ZNK8C2Access16needs_cpu_membarEv.exit, %70, %81, %62 ret void } diff --git a/bench/openjdk/optimized/loopTransform.ll b/bench/openjdk/optimized/loopTransform.ll index 91ae63e540a..4875b0c74a1 100644 --- a/bench/openjdk/optimized/loopTransform.ll +++ b/bench/openjdk/optimized/loopTransform.ll @@ -611,9 +611,7 @@ _ZN16Unique_Node_List4pushEP4Node.exit36: ; preds = %_ZN9VectorSet8test_ %210 = getelementptr inbounds nuw i8, ptr %209, i64 232 %211 = load ptr, ptr %210, align 8 %212 = tail call noundef zeroext i8 %211(ptr noundef nonnull align 8 dereferenceable(92) %193) #11 - %.not.i.i.i37 = icmp eq i8 %208, %212 - %..i.i.i = select i1 %.not.i.i.i37, ptr %200, ptr null - %213 = tail call noundef ptr @_ZNK9MultiNode8proj_outEj(ptr noundef nonnull align 8 dereferenceable(52) %..i.i.i, i32 noundef 0) #11 + %.not.i.i.i37 = tail call noundef ptr @_ZNK9MultiNode8proj_outEj(ptr noundef nonnull align 8 dereferenceable(52) %200, i32 noundef 0) #11 %214 = load ptr, ptr %56, align 8 %215 = getelementptr inbounds nuw i8, ptr %214, i64 56 %216 = load ptr, ptr %215, align 8 @@ -21947,9 +21945,7 @@ _ZNK15CountedLoopNode8loopexitEv.exit: ; preds = %127 %145 = getelementptr inbounds nuw i8, ptr %144, i64 232 %146 = load ptr, ptr %145, align 8 %147 = tail call noundef zeroext i8 %146(ptr noundef nonnull align 8 dereferenceable(92) %120) #11 - %.not.i.i.i = icmp eq i8 %143, %147 - %..i.i.i = select i1 %.not.i.i.i, ptr %135, ptr null - %148 = tail call noundef ptr @_ZNK9MultiNode16proj_out_or_nullEj(ptr noundef nonnull align 8 dereferenceable(52) %..i.i.i, i32 noundef 0) #11 + %.not.i.i.i = tail call noundef ptr @_ZNK9MultiNode16proj_out_or_nullEj(ptr noundef nonnull align 8 dereferenceable(52) %135, i32 noundef 0) #11 %149 = icmp eq ptr %148, null br i1 %149, label %_ZN13IdealLoopTree10is_countedEv.exit.thread, label %150 diff --git a/bench/pbrt-v4/optimized/integrators.ll b/bench/pbrt-v4/optimized/integrators.ll index 052d71373ca..00cc32e9b5b 100644 --- a/bench/pbrt-v4/optimized/integrators.ll +++ b/bench/pbrt-v4/optimized/integrators.ll @@ -33376,14 +33376,14 @@ if.then65: ; preds = %if.end62 br i1 %cmp1, label %cond.true68, label %invoke.cont74 cond.true68: ; preds = %if.then65 - %call71 = invoke noundef float @_ZNK4pbrt6Vertex3PDFERKNS_10IntegratorEPKS0_RS4_(ptr noundef nonnull align 8 dereferenceable(332) %arrayidx, ptr noundef nonnull align 8 dereferenceable(64) %integrator, ptr noundef %cond17, ptr noundef nonnull align 8 dereferenceable(332) %cond9) + %call71 = invoke noundef float @_ZNK4pbrt6Vertex3PDFERKNS_10IntegratorEPKS0_RS4_(ptr noundef nonnull align 8 dereferenceable(332) %arrayidx, ptr noundef nonnull align 8 dereferenceable(64) %integrator, ptr noundef %cond17, ptr noundef nonnull align 8 dereferenceable(332) %arrayidx6) to label %_ZN4pbrt16ScopedAssignmentIfED2Ev.exit unwind label %ehcleanup224.thread invoke.cont74: ; preds = %if.then65 %6 = load i64, ptr %lightSampler, align 8 store i64 %6, ptr %agg.tmp73, align 8 %infiniteLights = getelementptr inbounds nuw i8, ptr %integrator, i64 40 - %call76 = invoke noundef float @_ZN4pbrt6Vertex14PDFLightOriginERKSt6vectorINS_5LightESaIS2_EERKS0_NS_12LightSamplerE(ptr noundef nonnull align 8 dereferenceable(332) %cond9, ptr noundef nonnull align 8 dereferenceable(24) %infiniteLights, ptr noundef nonnull align 8 dereferenceable(332) %cond25, ptr noundef nonnull %agg.tmp73) + %call76 = invoke noundef float @_ZN4pbrt6Vertex14PDFLightOriginERKSt6vectorINS_5LightESaIS2_EERKS0_NS_12LightSamplerE(ptr noundef nonnull align 8 dereferenceable(332) %arrayidx6, ptr noundef nonnull align 8 dereferenceable(24) %infiniteLights, ptr noundef nonnull align 8 dereferenceable(332) %arrayidx22, ptr noundef nonnull %agg.tmp73) to label %_ZN4pbrt16ScopedAssignmentIfED2Ev.exit unwind label %ehcleanup224.thread _ZN4pbrt16ScopedAssignmentIfED2Ev.exit: ; preds = %cond.true68, %invoke.cont74 @@ -33408,11 +33408,11 @@ if.then86: ; preds = %if.end83 br i1 %cmp1, label %cond.true90, label %cond.false94 cond.true90: ; preds = %if.then86 - %call93 = invoke noundef float @_ZNK4pbrt6Vertex3PDFERKNS_10IntegratorEPKS0_RS4_(ptr noundef nonnull align 8 dereferenceable(332) %cond9, ptr noundef nonnull align 8 dereferenceable(64) %integrator, ptr noundef %arrayidx, ptr noundef nonnull align 8 dereferenceable(332) %cond25) + %call93 = invoke noundef float @_ZNK4pbrt6Vertex3PDFERKNS_10IntegratorEPKS0_RS4_(ptr noundef nonnull align 8 dereferenceable(332) %arrayidx6, ptr noundef nonnull align 8 dereferenceable(64) %integrator, ptr noundef %arrayidx, ptr noundef nonnull align 8 dereferenceable(332) %arrayidx22) to label %_ZN4pbrt16ScopedAssignmentIfED2Ev.exit193 unwind label %ehcleanup223.thread cond.false94: ; preds = %if.then86 - %call96 = invoke noundef float @_ZNK4pbrt6Vertex8PDFLightERKNS_10IntegratorERKS0_(ptr noundef nonnull align 8 dereferenceable(332) %cond9, ptr noundef nonnull align 8 dereferenceable(64) %integrator, ptr noundef nonnull align 8 dereferenceable(332) %cond25) + %call96 = invoke noundef float @_ZNK4pbrt6Vertex8PDFLightERKNS_10IntegratorERKS0_(ptr noundef nonnull align 8 dereferenceable(332) %arrayidx6, ptr noundef nonnull align 8 dereferenceable(64) %integrator, ptr noundef nonnull align 8 dereferenceable(332) %arrayidx22) to label %_ZN4pbrt16ScopedAssignmentIfED2Ev.exit193 unwind label %ehcleanup223.thread _ZN4pbrt16ScopedAssignmentIfED2Ev.exit193: ; preds = %cond.true90, %cond.false94 @@ -33432,7 +33432,7 @@ if.end103: ; preds = %_ZN4pbrt16ScopedAss br i1 %tobool54.not, label %if.end116, label %if.then106 if.then106: ; preds = %if.end103 - %call111 = invoke noundef float @_ZNK4pbrt6Vertex3PDFERKNS_10IntegratorEPKS0_RS4_(ptr noundef nonnull align 8 dereferenceable(332) %cond9, ptr noundef nonnull align 8 dereferenceable(64) %integrator, ptr noundef %cond25, ptr noundef nonnull align 8 dereferenceable(332) %cond) + %call111 = invoke noundef float @_ZNK4pbrt6Vertex3PDFERKNS_10IntegratorEPKS0_RS4_(ptr noundef nonnull align 8 dereferenceable(332) %arrayidx6, ptr noundef nonnull align 8 dereferenceable(64) %integrator, ptr noundef %cond25, ptr noundef nonnull align 8 dereferenceable(332) %arrayidx) to label %_ZN4pbrt16ScopedAssignmentIfED2Ev.exit202 unwind label %ehcleanup222.thread _ZN4pbrt16ScopedAssignmentIfED2Ev.exit202: ; preds = %if.then106 @@ -33453,7 +33453,7 @@ if.end116: ; preds = %_ZN4pbrt16ScopedAss br i1 %tobool118.not, label %invoke.cont142, label %if.then119 if.then119: ; preds = %if.end116 - %call124 = invoke noundef float @_ZNK4pbrt6Vertex3PDFERKNS_10IntegratorEPKS0_RS4_(ptr noundef nonnull align 8 dereferenceable(332) %cond, ptr noundef nonnull align 8 dereferenceable(64) %integrator, ptr noundef %cond9, ptr noundef nonnull align 8 dereferenceable(332) %cond17) + %call124 = invoke noundef float @_ZNK4pbrt6Vertex3PDFERKNS_10IntegratorEPKS0_RS4_(ptr noundef nonnull align 8 dereferenceable(332) %arrayidx, ptr noundef nonnull align 8 dereferenceable(64) %integrator, ptr noundef %cond9, ptr noundef nonnull align 8 dereferenceable(332) %arrayidx14) to label %_ZN4pbrt16ScopedAssignmentIfED2Ev.exit211 unwind label %ehcleanup222 _ZN4pbrt16ScopedAssignmentIfED2Ev.exit211: ; preds = %if.then119 diff --git a/bench/pbrt-v4/optimized/subsurface.ll b/bench/pbrt-v4/optimized/subsurface.ll index 5b847a341da..4886dc0d2c4 100644 --- a/bench/pbrt-v4/optimized/subsurface.ll +++ b/bench/pbrt-v4/optimized/subsurface.ll @@ -5659,12 +5659,9 @@ if.end: ; preds = %entry %add.i18.i.i = fadd float %mul.i14.i.i, %mul4.i17.i.i %add7.i20.i.i = fadd float %mul6.i19.i.i, %add.i18.i.i %6 = load i64, ptr %this, align 8 - %shr.i.mask.i.i = and i64 %6, -144115188075855872 - %cmp.i.i = icmp eq i64 %shr.i.mask.i.i, 1441151880758558720 %and.i.i = and i64 %6, 144115188075855871 %7 = inttoptr i64 %and.i.i to ptr - %retval.0.i = select i1 %cmp.i.i, ptr %7, ptr null - %call10 = tail call { <2 x float>, <2 x float> } @_ZNK4pbrt21NormalizedFresnelBxDF1fENS_7Vector3IfEES2_NS_13TransportModeE(ptr noundef nonnull align 4 dereferenceable(4) %retval.0.i, <2 x float> %retval.sroa.0.4.vec.insert.i.i37, float %add7.i20.i.i35, <2 x float> %retval.sroa.0.4.vec.insert.i.i, float %add7.i20.i.i, i32 noundef %mode) + %retval.0.i = tail call { <2 x float>, <2 x float> } @_ZNK4pbrt21NormalizedFresnelBxDF1fENS_7Vector3IfEES2_NS_13TransportModeE(ptr noundef nonnull align 4 dereferenceable(4) %7, <2 x float> %retval.sroa.0.4.vec.insert.i.i37, float %add7.i20.i.i35, <2 x float> %retval.sroa.0.4.vec.insert.i.i, float %add7.i20.i.i, i32 noundef %mode) %8 = extractvalue { <2 x float>, <2 x float> } %call10, 0 %9 = extractvalue { <2 x float>, <2 x float> } %call10, 1 br label %return diff --git a/bench/php/optimized/zend_file_cache.ll b/bench/php/optimized/zend_file_cache.ll index 53753701534..0b382f88f77 100644 --- a/bench/php/optimized/zend_file_cache.ll +++ b/bench/php/optimized/zend_file_cache.ll @@ -3642,13 +3642,15 @@ define internal void @zend_file_cache_serialize_class(ptr noundef captures(none) br i1 %.not11101272, label %.loopexit1258, label %.lr.ph1275 .lr.ph1275: ; preds = %628 + %.not1109 = icmp eq ptr %612, %615 + %spec.select1251 = select i1 %.not1109, ptr null, ptr %634 %636 = getelementptr inbounds nuw i8, ptr %1, i64 440 %637 = getelementptr inbounds nuw i8, ptr %1, i64 400 br label %638 638: ; preds = %.lr.ph1275, %780 %639 = phi ptr [ %635, %.lr.ph1275 ], [ %782, %780 ] - %.19011273 = phi ptr [ %634, %.lr.ph1275 ], [ %781, %780 ] + %.19011273 = phi ptr [ %spec.select1251, %.lr.ph1275 ], [ %781, %780 ] %640 = load ptr, ptr %614, align 8, !tbaa !63 %.not1209 = icmp ult ptr %639, %640 br i1 %.not1209, label %644, label %641 @@ -3681,7 +3683,7 @@ define internal void @zend_file_cache_serialize_class(ptr noundef captures(none) %.not1211 = icmp eq ptr %639, %640 %658 = getelementptr inbounds nuw i8, ptr %3, i64 %656 %spec.select1252 = select i1 %.not1211, ptr null, ptr %658 - %659 = load ptr, ptr %spec.select1252, align 8, !tbaa !189 + %659 = load ptr, ptr %658, align 8, !tbaa !189 %.not1212 = icmp eq ptr %659, null br i1 %.not1212, label %696, label %660 @@ -3732,12 +3734,12 @@ define internal void @zend_file_cache_serialize_class(ptr noundef captures(none) %685 = load i32, ptr %684, align 4, !tbaa !48 %686 = or i32 %685, 64 store i32 %686, ptr %684, align 4, !tbaa !48 - %687 = load ptr, ptr %spec.select1252, align 8, !tbaa !189 + %687 = load ptr, ptr %658, align 8, !tbaa !189 %688 = getelementptr inbounds nuw i8, ptr %687, i64 4 %689 = load i32, ptr %688, align 4, !tbaa !48 %690 = and i32 %689, -257 store i32 %690, ptr %688, align 4, !tbaa !48 - %.pre1313 = load ptr, ptr %spec.select1252, align 8, !tbaa !189 + %.pre1313 = load ptr, ptr %658, align 8, !tbaa !189 %.pre1314 = load ptr, ptr %614, align 8, !tbaa !63 %.pre1331 = ptrtoint ptr %.pre1314 to i64 br label %691 @@ -3959,13 +3961,15 @@ define internal void @zend_file_cache_serialize_class(ptr noundef captures(none) br i1 %.not11151280, label %.loopexit, label %.lr.ph1283 .lr.ph1283: ; preds = %800 + %.not1114 = icmp eq ptr %784, %787 + %spec.select1253 = select i1 %.not1114, ptr null, ptr %806 %808 = getelementptr inbounds nuw i8, ptr %1, i64 440 %809 = getelementptr inbounds nuw i8, ptr %1, i64 400 br label %810 810: ; preds = %.lr.ph1283, %._crit_edge1279 %811 = phi ptr [ %807, %.lr.ph1283 ], [ %961, %._crit_edge1279 ] - %.11281 = phi ptr [ %806, %.lr.ph1283 ], [ %960, %._crit_edge1279 ] + %.11281 = phi ptr [ %spec.select1253, %.lr.ph1283 ], [ %960, %._crit_edge1279 ] %812 = load ptr, ptr %786, align 8, !tbaa !63 %.not1194 = icmp ult ptr %811, %812 br i1 %.not1194, label %816, label %813 @@ -3998,7 +4002,7 @@ define internal void @zend_file_cache_serialize_class(ptr noundef captures(none) %.not1196 = icmp eq ptr %811, %812 %830 = getelementptr inbounds nuw i8, ptr %3, i64 %828 %spec.select1254 = select i1 %.not1196, ptr null, ptr %830 - %831 = load ptr, ptr %spec.select1254, align 8, !tbaa !197 + %831 = load ptr, ptr %830, align 8, !tbaa !197 %.not1197 = icmp eq ptr %831, null br i1 %.not1197, label %868, label %832 @@ -4049,12 +4053,12 @@ define internal void @zend_file_cache_serialize_class(ptr noundef captures(none) %857 = load i32, ptr %856, align 4, !tbaa !48 %858 = or i32 %857, 64 store i32 %858, ptr %856, align 4, !tbaa !48 - %859 = load ptr, ptr %spec.select1254, align 8, !tbaa !197 + %859 = load ptr, ptr %830, align 8, !tbaa !197 %860 = getelementptr inbounds nuw i8, ptr %859, i64 4 %861 = load i32, ptr %860, align 4, !tbaa !48 %862 = and i32 %861, -257 store i32 %862, ptr %860, align 4, !tbaa !48 - %.pre1319 = load ptr, ptr %spec.select1254, align 8, !tbaa !197 + %.pre1319 = load ptr, ptr %830, align 8, !tbaa !197 %.pre1320 = load ptr, ptr %786, align 8, !tbaa !63 %.pre1330 = ptrtoint ptr %.pre1320 to i64 br label %863 @@ -7397,7 +7401,7 @@ define internal void @zend_file_cache_serialize_class_constant(ptr noundef captu %47 = sub i64 %45, %46 %48 = inttoptr i64 %47 to ptr store ptr %48, ptr %28, align 8, !tbaa !261 - tail call void @zend_file_cache_serialize_zval(ptr noundef nonnull %spec.select, ptr noundef nonnull %1, ptr noundef %2, ptr noundef %3) + tail call void @zend_file_cache_serialize_zval(ptr noundef nonnull %27, ptr noundef nonnull %1, ptr noundef %2, ptr noundef %3) %49 = getelementptr inbounds nuw i8, ptr %spec.select, i64 16 %50 = load ptr, ptr %49, align 8, !tbaa !263 %.not104 = icmp eq ptr %50, null @@ -7517,12 +7521,12 @@ define internal void @zend_file_cache_serialize_class_constant(ptr noundef captu %.not112 = icmp eq ptr %93, %98 %114 = getelementptr inbounds nuw i8, ptr %3, i64 %112 %spec.select115 = select i1 %.not112, ptr null, ptr %114 - tail call fastcc void @zend_file_cache_serialize_hash(ptr noundef %spec.select115, ptr noundef nonnull %1, ptr noundef %2, ptr noundef %3, ptr noundef nonnull @zend_file_cache_serialize_attribute) + tail call fastcc void @zend_file_cache_serialize_hash(ptr noundef %spec.select115, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3, ptr noundef nonnull @zend_file_cache_serialize_attribute) br label %115 115: ; preds = %108, %94, %91 %116 = getelementptr inbounds nuw i8, ptr %spec.select, i64 40 - tail call fastcc void @zend_file_cache_serialize_type(ptr noundef nonnull %116, ptr noundef nonnull %1, ptr noundef %2, ptr noundef %3) + tail call fastcc void @zend_file_cache_serialize_type(ptr noundef nonnull %116, ptr noundef nonnull %1, ptr noundef %2, ptr noundef nonnull %3) br label %117 117: ; preds = %21, %115, %4 diff --git a/bench/postgres/optimized/freepage.ll b/bench/postgres/optimized/freepage.ll index 870b049ab81..0dec4cdbd96 100644 --- a/bench/postgres/optimized/freepage.ll +++ b/bench/postgres/optimized/freepage.ll @@ -2790,7 +2790,7 @@ declare void @check_stack_depth() local_unnamed_addr #4 declare void @appendStringInfoChar(ptr noundef, i8 noundef signext) local_unnamed_addr #4 -; Function Attrs: nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable +; Function Attrs: nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) uwtable define internal fastcc void @FreePageBtreeSearch(ptr noundef %0, i64 noundef %1, ptr noundef nonnull writeonly captures(none) initializes((20, 24)) %2) unnamed_addr #6 { %4 = load i64, ptr %0, align 8 %5 = getelementptr inbounds nuw i8, ptr %0, i64 8 @@ -2816,7 +2816,7 @@ define internal fastcc void @FreePageBtreeSearch(ptr noundef %0, i64 noundef %1, .lr.ph: ; preds = %.preheader, %33 %storemerge5058 = phi i32 [ %spec.select59, %33 ], [ 1, %.preheader ] - %.057 = phi ptr [ %gep, %33 ], [ %12, %.preheader ] + %.057 = phi ptr [ %42, %33 ], [ %12, %.preheader ] %16 = getelementptr inbounds nuw i8, ptr %.057, i64 8 %17 = load i64, ptr %16, align 8 %18 = getelementptr inbounds nuw i8, ptr %.057, i64 24 @@ -2865,10 +2865,12 @@ FreePageBtreeSearchInternal.exit: ; preds = %19, %21 %38 = getelementptr i8, ptr %.057, i64 32 %39 = getelementptr i8, ptr %38, i64 %.idx %40 = load i64, ptr %39, align 8 + %41 = icmp eq i64 %40, 0 %gep = getelementptr i8, ptr %invariant.gep, i64 %40 - %41 = load i32, ptr %gep, align 8 - %42 = icmp eq i32 %41, 430584521 - br i1 %42, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !19 + %41 = select i1 %41, ptr null, ptr %gep + %42 = load i32, ptr %gep, align 8 + %44 = icmp eq i32 %43, 430584521 + br i1 %44, label %.lr.ph, label %._crit_edge.loopexit, !llvm.loop !19 ._crit_edge.loopexit: ; preds = %33 %43 = add i32 %spec.select59, 1 @@ -2876,7 +2878,7 @@ FreePageBtreeSearchInternal.exit: ; preds = %19, %21 ._crit_edge: ; preds = %._crit_edge.loopexit, %.preheader %44 = phi i32 [ 2, %.preheader ], [ %43, %._crit_edge.loopexit ] - %.0.lcssa = phi ptr [ %12, %.preheader ], [ %gep, %._crit_edge.loopexit ] + %.0.lcssa = phi ptr [ %12, %.preheader ], [ %42, %._crit_edge.loopexit ] %45 = getelementptr inbounds nuw i8, ptr %.0.lcssa, i64 8 %46 = load i64, ptr %45, align 8 %47 = icmp ugt i64 %46, 253 @@ -3627,7 +3629,7 @@ attributes #2 = { nounwind uwtable "min-legal-vector-width"="0" "no-trapping-mat attributes #3 = { nofree nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #4 = { "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #5 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } -attributes #6 = { nofree norecurse nosync nounwind memory(argmem: readwrite) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } +attributes #6 = { nofree norecurse nosync nounwind memory(argmem: readwrite, inaccessiblemem: none) uwtable "min-legal-vector-width"="0" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #8 = { cold "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+x87" "tune-cpu"="generic" } attributes #9 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } diff --git a/bench/protobuf/optimized/command_line_interface.ll b/bench/protobuf/optimized/command_line_interface.ll index 4a4ff8d059e..a402995e46c 100644 --- a/bench/protobuf/optimized/command_line_interface.ll +++ b/bench/protobuf/optimized/command_line_interface.ll @@ -24051,9 +24051,7 @@ if.end26.i: ; preds = %invoke.cont16.i, %i %11 = getelementptr inbounds nuw i8, ptr %this, i64 8 %12 = load ptr, ptr %11, align 8 %13 = load ptr, ptr %12, align 8 - %14 = icmp eq ptr %13, null %add.ptr.i = getelementptr inbounds nuw i8, ptr %13, i64 16 - %spec.select.i = select i1 %14, ptr null, ptr %add.ptr.i %file_.i.i = getelementptr inbounds nuw i8, ptr %descriptor, i64 16 %15 = load ptr, ptr %file_.i.i, align 8 %name_.i.i = getelementptr inbounds nuw i8, ptr %15, i64 8 @@ -24073,10 +24071,10 @@ if.end26.i: ; preds = %invoke.cont16.i, %i %23 = getelementptr inbounds nuw i8, ptr %agg.tmp37.i, i64 8 %24 = extractvalue { i64, ptr } %call38.i, 1 store ptr %24, ptr %23, align 8 - %vtable.i = load ptr, ptr %spec.select.i, align 8 + %vtable.i = load ptr, ptr %add.ptr.i, align 8 %vfn.i = getelementptr inbounds nuw i8, ptr %vtable.i, i64 16 %25 = load ptr, ptr %vfn.i, align 8 - invoke void %25(ptr noundef nonnull align 8 dereferenceable(8) %spec.select.i, i64 %17, ptr %18, i64 %20, ptr %21, ptr noundef null, i32 noundef 1, ptr noundef nonnull byval(%"class.std::basic_string_view") align 8 %agg.tmp37.i) + invoke void %24(ptr noundef nonnull align 8 dereferenceable(8) %add.ptr.i, i64 %17, ptr %18, i64 %20, ptr %21, ptr noundef null, i32 noundef 1, ptr noundef nonnull byval(%"class.std::basic_string_view") align 8 %agg.tmp37.i) to label %invoke.cont39.i unwind label %lpad.i invoke.cont39.i: ; preds = %if.end26.i diff --git a/bench/protobuf/optimized/descriptor.ll b/bench/protobuf/optimized/descriptor.ll index 0d4a127815b..3dd3242a5fc 100644 --- a/bench/protobuf/optimized/descriptor.ll +++ b/bench/protobuf/optimized/descriptor.ll @@ -21970,13 +21970,9 @@ if.then5.i.i243: ; preds = %.noexc246 to label %invoke.cont145 unwind label %lpad114 invoke.cont145: ; preds = %if.else144, %.noexc246, %call1.i.i.noexc244, %if.then.i142, %if.then5.i.i243 - %138 = load i8, ptr %type_.i171, align 2 - %139 = and i8 %138, -2 - %switch.i145 = icmp eq i8 %139, 10 %type_descriptor_.i146 = getelementptr inbounds nuw i8, ptr %this, i64 48 %140 = load ptr, ptr %type_descriptor_.i146, align 8 - %cond.i147 = select i1 %switch.i145, ptr %140, ptr null - invoke void @_ZNK6google8protobuf10Descriptor11DebugStringEiPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_18DebugStringOptionsEb(ptr noundef nonnull align 8 dereferenceable(152) %cond.i147, i32 noundef %depth, ptr noundef %contents, ptr noundef nonnull align 1 dereferenceable(3) %debug_string_options, i1 noundef zeroext false) + invoke void @_ZNK6google8protobuf10Descriptor11DebugStringEiPNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEERKNS0_18DebugStringOptionsEb(ptr noundef nonnull align 8 dereferenceable(152) %140, i32 noundef %depth, ptr noundef %contents, ptr noundef nonnull align 1 dereferenceable(3) %debug_string_options, i1 noundef zeroext false) to label %if.end152 unwind label %lpad114 if.else149.invoke: ; preds = %if.end136, %invoke.cont137, %if.then139 @@ -41776,7 +41772,6 @@ cond.end: ; preds = %cond.false, %cond.t %9 = ptrtoint ptr %8 to i64 %and.i.i.i63 = and i64 %9, -4 %10 = inttoptr i64 %and.i.i.i63 to ptr - %cond = select i1 %cmp.i.not, ptr null, ptr %10 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp2.i) call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %full_name.i) call void @llvm.lifetime.start.p0(i64 48, ptr nonnull %ref.tmp7.i) @@ -41825,7 +41820,8 @@ cond.false6.i: ; preds = %cleanup.done.i br label %cond.end10.i cond.end10.i: ; preds = %cond.false6.i, %cond.true5.i - %cmp.i64 = icmp eq ptr %cond, null + %cmp.i64 = icmp eq i64 %and.i.i.i63, 0 + %cmp.i64 = select i1 %cmp.i.not, i1 true, i1 %cmp.i64292 br i1 %cmp.i64, label %if.then.i, label %if.else.i32.i if.then.i: ; preds = %cond.end10.i @@ -41990,7 +41986,7 @@ invoke.cont38.i: ; preds = %invoke.cont36.i br i1 %cmp.i64, label %cond.false47.i, label %cond.true44.i cond.true44.i: ; preds = %invoke.cont38.i - invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp42.i, ptr noundef nonnull align 8 dereferenceable(32) %cond) + invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %agg.tmp42.i, ptr noundef nonnull align 8 dereferenceable(32) %10) to label %cond.end51.i unwind label %lpad28.i, !noalias !693 cond.false47.i: ; preds = %invoke.cont38.i @@ -50423,7 +50419,7 @@ lor.lhs.false59: ; preds = %lor.lhs.false56 br i1 %cmp.i.i45.not, label %if.end63, label %return if.end63: ; preds = %lor.lhs.false59 - %call64 = call noundef i32 @_ZNK6google8protobuf15FieldDescriptor4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %retval.0.i) + %call64 = call noundef i32 @_ZNK6google8protobuf15FieldDescriptor4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %25) switch i32 %call64, label %sw.epilog [ i32 14, label %sw.bb i32 2, label %sw.bb66 @@ -50452,12 +50448,12 @@ sw.bb66: ; preds = %if.end63, %if.end63 br label %sw.epilog sw.epilog: ; preds = %sw.bb66, %sw.bb, %if.end63 - %call69 = call noundef i32 @_ZNK6google8protobuf15FieldDescriptor4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %retval.0.i30) + %call69 = call noundef i32 @_ZNK6google8protobuf15FieldDescriptor4typeEv(ptr noundef nonnull align 8 dereferenceable(88) %add.ptr.i.i) %cmp70 = icmp eq i32 %call69, 14 br i1 %cmp70, label %if.then71, label %return if.then71: ; preds = %sw.epilog - %call72 = call noundef ptr @_ZNK6google8protobuf15FieldDescriptor9enum_typeEv(ptr noundef nonnull align 8 dereferenceable(88) %retval.0.i30) + %call72 = call noundef ptr @_ZNK6google8protobuf15FieldDescriptor9enum_typeEv(ptr noundef nonnull align 8 dereferenceable(88) %add.ptr.i.i) %values_.i = getelementptr inbounds nuw i8, ptr %call72, i64 56 %34 = load ptr, ptr %values_.i, align 8 %number_.i51 = getelementptr inbounds nuw i8, ptr %34, i64 4 @@ -54428,7 +54424,7 @@ if.else234: ; preds = %_ZNK6google8protobu %call236 = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %112) #38 %142 = extractvalue { i64, ptr } %call236, 0 %143 = extractvalue { i64, ptr } %call236, 1 - %call237 = tail call noundef ptr @_ZNK6google8protobuf14EnumDescriptor15FindValueByNameESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(88) %cond.i, i64 %142, ptr %143) + %call237 = tail call noundef ptr @_ZNK6google8protobuf14EnumDescriptor15FindValueByNameESt17basic_string_viewIcSt11char_traitsIcEE(ptr noundef nonnull align 8 dereferenceable(88) %108, i64 %142, ptr %143) br label %if.end238 if.end238: ; preds = %cleanup.thread, %if.else234 @@ -56669,7 +56665,7 @@ lor.lhs.false.i.i.i25: ; preds = %if.then.i.i24 br i1 %cmp.i.i.i27, label %if.then.i.i.i30, label %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit33 if.then.i.i.i30: ; preds = %lor.lhs.false.i.i.i25, %if.then.i.i24 - tail call void @_ZNK6google8protobuf15FieldDescriptor20InternalTypeOnceInitEv(ptr noundef nonnull align 8 dereferenceable(88) %retval.0.i) #45 + tail call void @_ZNK6google8protobuf15FieldDescriptor20InternalTypeOnceInitEv(ptr noundef nonnull align 8 dereferenceable(88) %25) #45 %30 = atomicrmw xchg ptr %26, i32 221 release, align 4 %cmp4.i.i.i31 = icmp eq i32 %30, 94570706 br i1 %cmp4.i.i.i31, label %if.then5.i.i.i32, label %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit33 @@ -56750,7 +56746,7 @@ lor.lhs.false.i.i.i60: ; preds = %if.then.i.i59 br i1 %cmp.i.i.i62, label %if.then.i.i.i65, label %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit68 if.then.i.i.i65: ; preds = %lor.lhs.false.i.i.i60, %if.then.i.i59 - tail call void @_ZNK6google8protobuf15FieldDescriptor20InternalTypeOnceInitEv(ptr noundef nonnull align 8 dereferenceable(88) %retval.0.i54) #45 + tail call void @_ZNK6google8protobuf15FieldDescriptor20InternalTypeOnceInitEv(ptr noundef nonnull align 8 dereferenceable(88) %add.ptr.i.i) #45 %47 = atomicrmw xchg ptr %43, i32 221 release, align 4 %cmp4.i.i.i66 = icmp eq i32 %47, 94570706 br i1 %cmp4.i.i.i66, label %if.then5.i.i.i67, label %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit68 diff --git a/bench/qemu/optimized/execlog.ll b/bench/qemu/optimized/execlog.ll index 3edda6bedf4..63a645408e4 100644 --- a/bench/qemu/optimized/execlog.ll +++ b/bench/qemu/optimized/execlog.ll @@ -365,35 +365,29 @@ glib_autoptr_cleanup_GPatternSpec.exit.i: ; preds = %73, %72 %79 = getelementptr inbounds nuw i8, ptr %15, i64 8 %80 = load i32, ptr %79, align 8 %.not1337.i = icmp eq i32 %80, 0 - %spec.select38.i = select i1 %.not1337.i, ptr %15, ptr null - br label %83 + tail call void @g_array_unref(ptr noundef nonnull %16) #7 + br i1 %.not1337.i, label %84, label %registers_init.exit .loopexit.i: ; preds = %9 %81 = getelementptr inbounds nuw i8, ptr %15, i64 8 %82 = load i32, ptr %81, align 8 %.not13.i = icmp eq i32 %82, 0 - %spec.select.i = select i1 %.not13.i, ptr %15, ptr null %.not.i.i20.i = icmp eq ptr %16, null br i1 %.not.i.i20.i, label %glib_autoptr_cleanup_GArray.exit.i, label %83 -83: ; preds = %.loopexit.i, %.loopexit.thread.i - %spec.select42.i = phi ptr [ %spec.select38.i, %.loopexit.thread.i ], [ %spec.select.i, %.loopexit.i ] - %.not1340.i = phi i1 [ %.not1337.i, %.loopexit.thread.i ], [ %.not13.i, %.loopexit.i ] +83: ; preds = %.loopexit.i tail call void @g_array_unref(ptr noundef nonnull %16) #7 - br label %glib_autoptr_cleanup_GArray.exit.i + br i1 %.not13.i, label %84, label %registers_init.exit -glib_autoptr_cleanup_GArray.exit.i: ; preds = %83, %.loopexit.i - %spec.select43.i = phi ptr [ %spec.select.i, %.loopexit.i ], [ %spec.select42.i, %83 ] - %.not1341.i = phi i1 [ %.not13.i, %.loopexit.i ], [ %.not1340.i, %83 ] - %.not.i.i21.i = icmp eq ptr %spec.select43.i, null - br i1 %.not.i.i21.i, label %registers_init.exit, label %84 +glib_autoptr_cleanup_GArray.exit.i: ; preds = %.loopexit.i + br i1 %.not13.i, label %84, label %registers_init.exit -84: ; preds = %glib_autoptr_cleanup_GArray.exit.i - tail call void @g_ptr_array_unref(ptr noundef nonnull %spec.select43.i) #7 +84: ; preds = %.loopexit.thread.i, %83, %glib_autoptr_cleanup_GArray.exit.i + tail call void @g_ptr_array_unref(ptr noundef nonnull %15) #7 br label %registers_init.exit -registers_init.exit: ; preds = %glib_autoptr_cleanup_GArray.exit.i, %84 - %spec.select29.i = select i1 %.not1341.i, ptr null, ptr %15 +registers_init.exit: ; preds = %.loopexit.thread.i, %83, %glib_autoptr_cleanup_GArray.exit.i, %84 + %spec.select29.i = phi ptr [ %15, %glib_autoptr_cleanup_GArray.exit.i ], [ null, %84 ], [ %15, %83 ], [ %15, %.loopexit.thread.i ] %85 = getelementptr inbounds nuw i8, ptr %13, i64 8 store ptr %spec.select29.i, ptr %85, align 8 ret void diff --git a/bench/quantlib/optimized/ecb.ll b/bench/quantlib/optimized/ecb.ll index 0ba96d01c4f..0c2d552e9af 100644 --- a/bench/quantlib/optimized/ecb.ll +++ b/bench/quantlib/optimized/ecb.ll @@ -2917,7 +2917,9 @@ while.body21.i.i.i.i.i.i.i.i.i: ; preds = %while.cond18.prehea _ZN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseINS_6bimaps8relation15mutant_relationINS5_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS6_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEEN4mpl_2naELb1EEESaISP_EEEE9decrementERPSS_.exit.i.i.i.i.i.i.i: ; preds = %while.cond.i.i.i.i.i.i.i.i.i, %while.body21.i.i.i.i.i.i.i.i.i, %while.cond18.preheader.i.i.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i.i.i %y.0.lcssa.sink.i.i.i.i.i.i.i.i.i = phi ptr [ %37, %if.then.i.i.i.i.i.i.i.i.i ], [ %y15.025.i.i.i.i.i.i.i.i.i, %while.cond18.preheader.i.i.i.i.i.i.i.i.i ], [ %y15.0.i.i.i.i.i.i.i.i.i, %while.body21.i.i.i.i.i.i.i.i.i ], [ %y.0.i.i.i.i.i.i.i.i.i, %while.cond.i.i.i.i.i.i.i.i.i ] + %43 = icmp eq ptr %y.0.lcssa.sink.i.i.i.i.i.i.i.i.i, null %sub.ptr.i.i19.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %y.0.lcssa.sink.i.i.i.i.i.i.i.i.i, i64 -24 + %44 = select i1 %43, ptr null, ptr %sub.ptr.i.i19.i.i.i.i.i.i.i %agg.tmp15.sroa.0.0.copyload.i.pre.i.i.i.i.i.i = load ptr, ptr %sub.ptr.i.i19.i.i.i.i.i.i.i, align 8, !tbaa !18 br label %if.end14.i.i.i.i.i.i.i @@ -2925,7 +2927,7 @@ if.end14.i.i.i.i.i.i.i: ; preds = %_ZN5boost11multi_in %agg.tmp15.sroa.0.0.copyload.i.i.i.i.i.i.i = phi ptr [ %agg.tmp15.sroa.0.0.copyload.i.pre.i.i.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseINS_6bimaps8relation15mutant_relationINS5_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS6_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEEN4mpl_2naELb1EEESaISP_EEEE9decrementERPSS_.exit.i.i.i.i.i.i.i ], [ %agg.tmp3.sroa.0.0.copyload.i.i.i.i.i.i.i, %while.end.i.i.i.i.i.i.i ] %y.0.lcssa14.i.i.i.i.i.i.i = phi ptr [ %y.0.lcssa13.i.i.i.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseINS_6bimaps8relation15mutant_relationINS5_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS6_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEEN4mpl_2naELb1EEESaISP_EEEE9decrementERPSS_.exit.i.i.i.i.i.i.i ], [ %x.06.i.i.i.i.i.i.i, %while.end.i.i.i.i.i.i.i ] %not.c.0.i.i.i.i.i.i.i = phi i32 [ 0, %_ZN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseINS_6bimaps8relation15mutant_relationINS5_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS6_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEEN4mpl_2naELb1EEESaISP_EEEE9decrementERPSS_.exit.i.i.i.i.i.i.i ], [ 1, %while.end.i.i.i.i.i.i.i ] - %yy.0.i.i.i.i.i.i.i = phi ptr [ %sub.ptr.i.i19.i.i.i.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseINS_6bimaps8relation15mutant_relationINS5_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS6_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEEN4mpl_2naELb1EEESaISP_EEEE9decrementERPSS_.exit.i.i.i.i.i.i.i ], [ %x.06.i.i.i.i.i.i.i, %while.end.i.i.i.i.i.i.i ] + %yy.0.i.i.i.i.i.i.i = phi ptr [ %44, %_ZN5boost11multi_index6detail18ordered_index_nodeINS1_19null_augment_policyENS1_15index_node_baseINS_6bimaps8relation15mutant_relationINS5_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS6_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEEN4mpl_2naELb1EEESaISP_EEEE9decrementERPSS_.exit.i.i.i.i.i.i.i ], [ %x.06.i.i.i.i.i.i.i, %while.end.i.i.i.i.i.i.i ] call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %lhsUpper.i20.i.i.i.i.i.i.i) #26 call void @llvm.lifetime.start.p0(i64 3, ptr nonnull %rhsUpper.i21.i.i.i.i.i.i.i) #26 br label %for.body.i22.i.i.i.i.i.i.i @@ -2955,7 +2957,7 @@ _ZNK8QuantLib12_GLOBAL__N_18is_ilessclEN5boost17basic_string_viewIcSt11char_trai %cmp.i.i37.i.i.i.i.i.i.i = icmp slt i32 %call.i.i.i.i36.i.i.i.i.i.i.i, 0 call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %rhsUpper.i21.i.i.i.i.i.i.i) #26 call void @llvm.lifetime.end.p0(i64 3, ptr nonnull %lhsUpper.i20.i.i.i.i.i.i.i) #26 - br i1 %cmp.i.i37.i.i.i.i.i.i.i, label %if.then6.i.i.i.i.i.i, label %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE6insertERKSV_.exit + br i1 %cmp.i.i37.i.i.i.i.i.i.i, label %if.then6.i.i.i.i.i.i, label %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1A_NS1E_IS1A_NS1_15index_node_baseISV_S12_EEEEEERKSV_RS1J_T_.exit.i.i.i.i.i if.then6.i.i.i.i.i.i: ; preds = %_ZNK8QuantLib12_GLOBAL__N_18is_ilessclEN5boost17basic_string_viewIcSt11char_traitsIcEEES6_.exit38.i.i.i.i.i.i.i, %if.then.i.i.i.i.i.i.i %inf.sroa.0.0.ph.i.i.i.i.i.i = phi i32 [ 0, %if.then.i.i.i.i.i.i.i ], [ %not.c.0.i.i.i.i.i.i.i, %_ZNK8QuantLib12_GLOBAL__N_18is_ilessclEN5boost17basic_string_viewIcSt11char_traitsIcEEES6_.exit38.i.i.i.i.i.i.i ] @@ -3015,8 +3017,17 @@ if.then6.i.i.i.i.i: ; preds = %if.then14.i.i.i.i.i store ptr %add.ptr.i.i.i.i.i.i.i.i.i, ptr %agg.tmp.i.i.i.i.i.i.i, align 8, !tbaa !67, !alias.scope !69 call void @_ZN5boost11multi_index6detail23ordered_index_node_implINS1_19null_augment_policyESaIcEE9rebalanceEPS5_NS1_34ordered_index_node_compressed_baseIS3_S4_E10parent_refE(ptr noundef nonnull %add.ptr.i.i.i.i.i.i.i, ptr noundef nonnull %agg.tmp.i.i.i.i.i.i.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %agg.tmp.i.i.i.i.i.i.i) - %add.ptr.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i.i.i.i.i.i.i, i64 48 - %this.val.i.i.i.i.i = load ptr, ptr %2, align 8, !tbaa !3 + %add.ptr.i.i.i.i.i.i = load ptr, ptr %2, align 8, !tbaa !3 + br label %if.then6.i.i.i.i.i + +_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1A_NS1E_IS1A_NS1_15index_node_baseISV_S12_EEEEEERKSV_RS1J_T_.exit.i.i.i.i.i: ; preds = %_ZNK8QuantLib12_GLOBAL__N_18is_ilessclEN5boost17basic_string_viewIcSt11char_traitsIcEEES6_.exit38.i.i.i.i.i.i.i + %cmp.i.i.i.i.i = icmp eq ptr %yy.0.i.i.i.i.i.i.i, null + br i1 %cmp.i.i.i.i.i, label %if.then6.i.i.i.i.i, label %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE6insertERKSV_.exit + +if.then6.i.i.i.i.i: ; preds = %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1A_NS1E_IS1A_NS1_15index_node_baseISV_S12_EEEEEERKSV_RS1J_T_.exit.i.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1A_NS1E_IS1A_NS1_15index_node_baseISV_S12_EEEEEERKSV_RS1J_T_.exit.i.thread.i.i.i.i + %this.val.i.i.i.i.i = phi ptr [ %this.val.i.pre.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1A_NS1E_IS1A_NS1_15index_node_baseISV_S12_EEEEEERKSV_RS1J_T_.exit.i.thread.i.i.i.i ], [ %this.val5.i.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1A_NS1E_IS1A_NS1_15index_node_baseISV_S12_EEEEEERKSV_RS1J_T_.exit.i.i.i.i.i ] + %retval.0.i7.i8.i.i.i.i = phi ptr [ %call5.i.i.i.i.i.i.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1A_NS1E_IS1A_NS1_15index_node_baseISV_S12_EEEEEERKSV_RS1J_T_.exit.i.thread.i.i.i.i ], [ null, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1A_NS1E_IS1A_NS1_15index_node_baseISV_S12_EEEEEERKSV_RS1J_T_.exit.i.i.i.i.i ] + %add.ptr.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %retval.0.i7.i8.i.i.i.i, i64 48 %add.ptr.i10.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %this.val.i.i.i.i.i, i64 48 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %agg.tmp.i.i.i.i.i.i) %cmp.i11.i.i.i.i.i = icmp eq i32 %inf.sroa.0.0.ph.i.i.i.i.i, 0 @@ -3066,7 +3077,7 @@ _ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relatio %and.i29.i.i.i.i.i.i = and i64 %54, 1 %or.i30.i.i.i.i.i.i = or i64 %and.i29.i.i.i.i.i.i, %53 store i64 %or.i30.i.i.i.i.i.i, ptr %add.ptr.i.i.i.i.i.i, align 8, !tbaa !8 - %left_.i31.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %call5.i.i.i.i.i.i.i.i.i.i, i64 56 + %left_.i31.i.i.i.i.i.i = getelementptr inbounds nuw i8, ptr %retval.0.i7.i8.i.i.i.i, i64 56 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %left_.i31.i.i.i.i.i.i, i8 0, i64 16, i1 false) store ptr %add.ptr.i10.i.i.i.i.i, ptr %agg.tmp.i.i.i.i.i.i, align 8, !tbaa !67, !alias.scope !72 call void @_ZN5boost11multi_index6detail23ordered_index_node_implINS1_19null_augment_policyESaIcEE9rebalanceEPS5_NS1_34ordered_index_node_compressed_baseIS3_S4_E10parent_refE(ptr noundef nonnull %add.ptr.i.i.i.i.i.i, ptr noundef nonnull %agg.tmp.i.i.i.i.i.i) @@ -3077,9 +3088,9 @@ _ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relatio store i64 %inc.i.i.i.i, ptr %node_count.i.i.i.i, align 8, !tbaa !75 br label %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE6insertERKSV_.exit -_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE6insertERKSV_.exit: ; preds = %if.end13.i.i.i.i.i.i, %_ZNK8QuantLib12_GLOBAL__N_18is_ilessclEN5boost17basic_string_viewIcSt11char_traitsIcEEES6_.exit38.i.i.i.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESJ_XadL_ZNSN_5rightEEEEESt4lessISJ_ENS1_9nth_layerILi1ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_NSI_12_GLOBAL__N_18is_ilessEEESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISL_NS16_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1C_NS1G_IS1C_NS1_15index_node_baseISV_S14_EEEEEERKSV_RS1L_T_.exit.i.i.i.i - %retval.0.i12.i.i.i.i = phi ptr [ %call5.i.i.i.i.i.i.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESJ_XadL_ZNSN_5rightEEEEESt4lessISJ_ENS1_9nth_layerILi1ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_NSI_12_GLOBAL__N_18is_ilessEEESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISL_NS16_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1C_NS1G_IS1C_NS1_15index_node_baseISV_S14_EEEEEERKSV_RS1L_T_.exit.i.i.i.i ], [ %yy.0.i.i.i.i.i.i.i, %_ZNK8QuantLib12_GLOBAL__N_18is_ilessclEN5boost17basic_string_viewIcSt11char_traitsIcEEES6_.exit38.i.i.i.i.i.i.i ], [ %yy.0.i.i.i.i.i.i, %if.end13.i.i.i.i.i.i ] - %retval.sroa.3.0.i.i.i.i = phi i8 [ 1, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESJ_XadL_ZNSN_5rightEEEEESt4lessISJ_ENS1_9nth_layerILi1ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_NSI_12_GLOBAL__N_18is_ilessEEESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISL_NS16_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1C_NS1G_IS1C_NS1_15index_node_baseISV_S14_EEEEEERKSV_RS1L_T_.exit.i.i.i.i ], [ 0, %_ZNK8QuantLib12_GLOBAL__N_18is_ilessclEN5boost17basic_string_viewIcSt11char_traitsIcEEES6_.exit38.i.i.i.i.i.i.i ], [ 0, %if.end13.i.i.i.i.i.i ] +_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE6insertERKSV_.exit: ; preds = %if.end13.i.i.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1A_NS1E_IS1A_NS1_15index_node_baseISV_S12_EEEEEERKSV_RS1J_T_.exit.i.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESJ_XadL_ZNSN_5rightEEEEESt4lessISJ_ENS1_9nth_layerILi1ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_NSI_12_GLOBAL__N_18is_ilessEEESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISL_NS16_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1C_NS1G_IS1C_NS1_15index_node_baseISV_S14_EEEEEERKSV_RS1L_T_.exit.i.i.i.i + %retval.0.i12.i.i.i.i = phi ptr [ %retval.0.i7.i8.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESJ_XadL_ZNSN_5rightEEEEESt4lessISJ_ENS1_9nth_layerILi1ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_NSI_12_GLOBAL__N_18is_ilessEEESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISL_NS16_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1C_NS1G_IS1C_NS1_15index_node_baseISV_S14_EEEEEERKSV_RS1L_T_.exit.i.i.i.i ], [ %yy.0.i.i.i.i.i.i, %if.end13.i.i.i.i.i.i ], [ %yy.0.i.i.i.i.i.i.i, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1A_NS1E_IS1A_NS1_15index_node_baseISV_S12_EEEEEERKSV_RS1J_T_.exit.i.i.i.i.i ] + %retval.sroa.3.0.i.i.i.i = phi i8 [ 1, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESJ_XadL_ZNSN_5rightEEEEESt4lessISJ_ENS1_9nth_layerILi1ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_NSI_12_GLOBAL__N_18is_ilessEEESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISL_NS16_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1C_NS1G_IS1C_NS1_15index_node_baseISV_S14_EEEEEERKSV_RS1L_T_.exit.i.i.i.i ], [ 0, %if.end13.i.i.i.i.i.i ], [ 0, %_ZN5boost11multi_index6detail18ordered_index_implINS0_6memberINS_6bimaps8relation6detail16relation_storageINS4_4tags6taggedIKNS_17basic_string_viewIcSt11char_traitsIcEEENS5_9member_at4leftEEENS9_IKN8QuantLib5MonthENSF_5rightEEELb1EEESD_XadL_ZNSN_4leftEEEEENSI_12_GLOBAL__N_18is_ilessENS1_9nth_layerILi2ENS5_15mutant_relationISH_SM_N4mpl_2naELb1EEENS4_6detail10bimap_coreINS4_6set_ofISD_SQ_EESJ_SU_SU_SU_E12core_indicesESaISV_EEENS_3mpl6v_itemISG_NS14_7vector0ISU_EELi0EEENS1_18ordered_unique_tagENS1_19null_augment_policyEE7insert_INS1_10lvalue_tagEEEPNS1_18ordered_index_nodeIS1A_NS1E_IS1A_NS1_15index_node_baseISV_S12_EEEEEERKSV_RS1J_T_.exit.i.i.i.i.i ] %56 = ptrtoint ptr %retval.0.i12.i.i.i.i to i64 store i64 %56, ptr %agg.result, align 8 %second.i = getelementptr inbounds nuw i8, ptr %agg.result, i64 8 diff --git a/bench/quickjs/optimized/quickjs.ll b/bench/quickjs/optimized/quickjs.ll index 190b66da925..59de7947cb8 100644 --- a/bench/quickjs/optimized/quickjs.ll +++ b/bench/quickjs/optimized/quickjs.ll @@ -86086,9 +86086,8 @@ define internal fastcc range(i32 -1, 1) i32 @JS_CopyDataProperties(ptr noundef % %17 = getelementptr inbounds nuw i8, ptr %5, i64 8 %18 = load i64, ptr %17, align 8, !tbaa !121 %19 = and i64 %18, 4294967295 - %20 = icmp eq i64 %19, 4294967295 + %20 = icmp ne i64 %19, 4294967295 %21 = load ptr, ptr %5, align 8 - %spec.select = select i1 %20, ptr %21, ptr null %22 = getelementptr inbounds nuw i8, ptr %15, i64 5 %23 = load i8, ptr %22, align 1 %24 = and i8 %23, 4 @@ -86128,7 +86127,8 @@ define internal fastcc range(i32 -1, 1) i32 @JS_CopyDataProperties(ptr noundef % br i1 %.not101, label %._crit_edge, label %.lr.ph .lr.ph: ; preds = %.preheader - %.not59 = icmp eq ptr %spec.select, null + %.not59 = icmp eq ptr %21, null + %.not59 = select i1 %20, i1 true, i1 %.not5988 %.not61 = icmp samesign ult i32 %.050, 16 %41 = getelementptr inbounds nuw i8, ptr %13, i64 24 %42 = getelementptr inbounds nuw i8, ptr %13, i64 32 @@ -86153,7 +86153,7 @@ define internal fastcc range(i32 -1, 1) i32 @JS_CopyDataProperties(ptr noundef % 54: ; preds = %53 %55 = getelementptr inbounds nuw %struct.JSPropertyEnum, ptr %.pre, i64 %indvars.iv, i32 1 %56 = load i32, ptr %55, align 4, !tbaa !374 - %57 = call fastcc i32 @JS_GetOwnPropertyInternal(ptr noundef %0, ptr noundef null, ptr noundef nonnull %spec.select, i32 noundef %56) + %57 = call fastcc i32 @JS_GetOwnPropertyInternal(ptr noundef %0, ptr noundef null, ptr noundef nonnull %21, i32 noundef %56) %.not60 = icmp eq i32 %57, 0 br i1 %.not60, label %60, label %58 diff --git a/bench/redis/optimized/redis-benchmark.ll b/bench/redis/optimized/redis-benchmark.ll index 2e35eb43efd..20b03d4a0f1 100644 --- a/bench/redis/optimized/redis-benchmark.ll +++ b/bench/redis/optimized/redis-benchmark.ll @@ -3262,7 +3262,8 @@ define internal fastcc noundef ptr @getRedisConfig(ptr noundef %0, i32 noundef % br label %17 17: ; preds = %16, %14 - %18 = icmp eq i32 %15, 0 + %18 = freeze i32 %15 + %18 = icmp eq i32 %.fr, 0 %19 = load ptr, ptr %4, align 8 %20 = icmp ne ptr %19, null %or.cond = select i1 %18, i1 %20, i1 false @@ -3343,7 +3344,7 @@ define internal fastcc noundef ptr @getRedisConfig(ptr noundef %0, i32 noundef % unreachable .critedge: ; preds = %23, %37, %.thread61, %40 - %52 = phi ptr [ null, %37 ], [ %19, %.thread61 ], [ %19, %40 ], [ %19, %23 ] + %52 = phi ptr [ %19, %.thread61 ], [ %19, %40 ], [ null, %37 ], [ %19, %23 ] call void @freeReplyObject(ptr noundef %52) #20 call void @redisFree(ptr noundef nonnull %7) #20 %53 = load ptr, ptr %5, align 8, !tbaa !102 diff --git a/bench/regex-rs/optimized/6c2onrqlphpgxx0.ll b/bench/regex-rs/optimized/6c2onrqlphpgxx0.ll index 9d7e4c2f8b5..fb408b79765 100644 --- a/bench/regex-rs/optimized/6c2onrqlphpgxx0.ll +++ b/bench/regex-rs/optimized/6c2onrqlphpgxx0.ll @@ -6028,7 +6028,7 @@ define void @_ZN14regex_automata4util11interpolate12find_cap_ref17heda071453e974 br i1 %.not36.i.not, label %"_ZN4core6option15Option$LT$T$GT$6map_or17h01a332710f0e6b7aE.exit.thread.i", label %"_ZN4core6option15Option$LT$T$GT$6map_or17h603f0113f697a246E.exit.i" "_ZN4core6option15Option$LT$T$GT$6map_or17h603f0113f697a246E.exit.i": ; preds = %.preheader.i, %19 - %.02139.i = phi ptr [ %.021.i, %19 ], [ %18, %.preheader.i ] + %.02139.i = phi ptr [ %.not.i, %19 ], [ %18, %.preheader.i ] %.038.i = phi i64 [ %20, %19 ], [ 2, %.preheader.i ] %.val.i.i = load i8, ptr %.02139.i, align 1, !alias.scope !924, !noalias !919, !noundef !4 %.not33.i = icmp eq i8 %.val.i.i, 125 @@ -6036,10 +6036,8 @@ define void @_ZN14regex_automata4util11interpolate12find_cap_ref17heda071453e974 19: ; preds = %"_ZN4core6option15Option$LT$T$GT$6map_or17h603f0113f697a246E.exit.i" %20 = add nuw i64 %.038.i, 1 - %.not.i = icmp ult i64 %20, %2 - %21 = getelementptr inbounds i8, ptr %1, i64 %20 - %.021.i = select i1 %.not.i, ptr %21, ptr null - %exitcond.not.i = icmp eq i64 %20, %2 + %.not.i = getelementptr inbounds i8, ptr %1, i64 %20 + %21 = icmp eq i64 %20, %2 br i1 %exitcond.not.i, label %"_ZN4core6option15Option$LT$T$GT$6map_or17h01a332710f0e6b7aE.exit.thread.i", label %"_ZN4core6option15Option$LT$T$GT$6map_or17h603f0113f697a246E.exit.i" "_ZN4core6option15Option$LT$T$GT$6map_or17h01a332710f0e6b7aE.exit.thread.i": ; preds = %19, %.preheader.i diff --git a/bench/ring-rs/optimized/4gu90fp46fobkewp.ll b/bench/ring-rs/optimized/4gu90fp46fobkewp.ll index 15e2659a27f..0ef2007bb81 100644 --- a/bench/ring-rs/optimized/4gu90fp46fobkewp.ll +++ b/bench/ring-rs/optimized/4gu90fp46fobkewp.ll @@ -789,7 +789,6 @@ define noundef zeroext i1 @"_ZN119_$LT$ring..ec..curve25519..ed25519..verificati %29 = getelementptr inbounds nuw i8, ptr %28, i64 8 store i64 %6, ptr %29, align 8 %.not46 = icmp eq i64 %2, 32 - %. = select i1 %.not46, ptr %1, ptr null br i1 %.not46, label %30, label %77 30: ; preds = %7 @@ -844,7 +843,7 @@ _ZN4ring4limb43parse_big_endian_in_range_and_pad_consttime17h9048a00efd342339E.e call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %26) call void @llvm.lifetime.start.p0(i64 160, ptr nonnull %19), !noalias !130 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(160) %19, i8 0, i64 160, i1 false) - %47 = call noundef i32 @ring_core_0_17_8__x25519_ge_frombytes_vartime(ptr noalias noundef nonnull align 8 dereferenceable(160) %19, ptr noalias noundef nonnull readonly align 1 dereferenceable(32) %.), !noalias !134 + %47 = call noundef i32 @ring_core_0_17_8__x25519_ge_frombytes_vartime(ptr noalias noundef nonnull align 8 dereferenceable(160) %19, ptr noalias noundef nonnull readonly align 1 dereferenceable(32) %1), !noalias !134 %.not.i = icmp eq i32 %47, 1 br i1 %.not.i, label %49, label %75 @@ -867,7 +866,7 @@ _ZN4ring4limb43parse_big_endian_in_range_and_pad_consttime17h9048a00efd342339E.e %.sroa.5.0..sroa_idx.i.i = getelementptr inbounds nuw i8, ptr %18, i64 72 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(144) %.sroa.5.0..sroa_idx.i.i, i8 0, i64 144, i1 false), !alias.scope !144, !noalias !146 call void @_ZN4ring6digest7Context6update17h48da5b5e3b1c40caE(ptr noalias noundef nonnull align 8 dereferenceable(216) %18, ptr noalias noundef nonnull readonly align 1 %.fca.0.extract, i64 noundef 32), !noalias !148 - call void @_ZN4ring6digest7Context6update17h48da5b5e3b1c40caE(ptr noalias noundef nonnull align 8 dereferenceable(216) %18, ptr noalias noundef nonnull readonly align 1 %., i64 noundef 32), !noalias !149 + call void @_ZN4ring6digest7Context6update17h48da5b5e3b1c40caE(ptr noalias noundef nonnull align 8 dereferenceable(216) %18, ptr noalias noundef nonnull readonly align 1 %1, i64 noundef 32), !noalias !149 call void @_ZN4ring6digest7Context6update17h48da5b5e3b1c40caE(ptr noalias noundef nonnull align 8 dereferenceable(216) %18, ptr noalias noundef nonnull readonly align 1 %3, i64 noundef %4), !noalias !150 call void @llvm.lifetime.start.p0(i64 216, ptr nonnull %17), !noalias !135 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(216) %17, ptr noundef nonnull align 8 dereferenceable(216) %18, i64 216, i1 false), !noalias !135 @@ -1460,12 +1459,11 @@ _ZN4ring2io3der24expect_tag_and_get_value17h76e834198b369adcE.exit67: ; preds = %.sroa.6.0..sroa_idx.i60 = getelementptr inbounds nuw i8, ptr %6, i64 16 %.sroa.6.0.copyload.i61 = load i64, ptr %.sroa.6.0..sroa_idx.i60, align 8, !noalias !324 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6), !noalias !324 - %.not.i62 = icmp eq i8 %.sroa.04.0.copyload.i59, -96 - %.sroa.8.0..i63 = select i1 %.not.i62, i64 %.sroa.6.0.copyload.i61, i64 undef - %.sroa.52.0..i64 = select i1 %.not.i62, ptr %34, ptr null - %.not109110 = icmp eq ptr %.sroa.52.0..i64, null - %.not109 = select i1 %35, i1 true, i1 %.not109110 - br i1 %.not109, label %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h5bd61317eb40469aE.exit.thread", label %41 + %.not.i62 = icmp ne i8 %.sroa.04.0.copyload.i59, -96 + %.sroa.8.0..i63 = select i1 %35, i1 true, i1 %.not.i62 + %.sroa.52.0..i64 = select i1 %.sroa.8.0..i63, i64 undef, i64 %.sroa.6.0.copyload.i61 + %.not109110 = select i1 %35, i1 true, i1 %.not.i62 + br i1 %.not109110, label %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h5bd61317eb40469aE.exit.thread", label %42 _ZN9untrusted6reader6Reader4peek17hd8bdc58f301fd15eE.exit.thread: ; preds = %21, %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h5bd61317eb40469aE.exit", %_ZN9untrusted6reader6Reader4peek17hd8bdc58f301fd15eE.exit call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %5), !noalias !327 @@ -1534,13 +1532,13 @@ _ZN4ring5pkcs88Template13alg_id_value_17h742491a743eac7c7E.llvm.4505101779727634 _ZN4ring5pkcs88Template9curve_oid17hf3648da1ba6c6ccaE.exit: ; preds = %_ZN4ring5pkcs88Template13alg_id_value_17h742491a743eac7c7E.llvm.4505101779727634190.exit.i %59 = sub nuw i64 %54, %56 - %.not.i77 = icmp eq i64 %.sroa.8.0..i63, %59 + %.not.i77 = icmp eq i64 %.sroa.52.0..i63, %59 br i1 %.not.i77, label %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h5bd61317eb40469aE.exit", label %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h5bd61317eb40469aE.exit.thread" "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h5bd61317eb40469aE.exit": ; preds = %_ZN4ring5pkcs88Template9curve_oid17hf3648da1ba6c6ccaE.exit %60 = getelementptr inbounds i8, ptr %42, i64 %46 %61 = getelementptr inbounds i8, ptr %60, i64 %56 - %bcmp.i = tail call i32 @bcmp(ptr nonnull readonly align 1 %.sroa.52.0..i64, ptr nonnull readonly align 1 %61, i64 %.sroa.8.0..i63), !alias.scope !343 + %bcmp.i = tail call i32 @bcmp(ptr nonnull readonly align 1 %34, ptr nonnull readonly align 1 %61, i64 %.sroa.52.0..i63), !alias.scope !343 %62 = icmp eq i32 %bcmp.i, 0 br i1 %62, label %_ZN9untrusted6reader6Reader4peek17hd8bdc58f301fd15eE.exit.thread, label %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h5bd61317eb40469aE.exit.thread" @@ -1899,10 +1897,8 @@ _ZN4ring2io3der24expect_tag_and_get_value17h76e834198b369adcE.exit: ; preds = %1 %.sroa.6.0..sroa_idx.i = getelementptr inbounds nuw i8, ptr %7, i64 16 %.sroa.6.0.copyload.i = load i64, ptr %.sroa.6.0..sroa_idx.i, align 8, !noalias !404 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7), !noalias !404 - %.not.i = icmp eq i8 %.sroa.04.0.copyload.i, 48 - %.sroa.52.0..i = select i1 %.not.i, ptr %15, ptr null - %.not141142 = icmp eq ptr %.sroa.52.0..i, null - %.not141 = select i1 %16, i1 true, i1 %.not141142 + %.not.i = icmp ne i8 %.sroa.04.0.copyload.i, 48 + %.sroa.52.0..i = select i1 %16, i1 true, i1 %.not.i br i1 %.not141, label %22, label %20 17: ; preds = %10 @@ -1915,11 +1911,10 @@ _ZN4ring2io3der24expect_tag_and_get_value17h76e834198b369adcE.exit: ; preds = %1 20: ; preds = %_ZN4ring2io3der24expect_tag_and_get_value17h76e834198b369adcE.exit %.not.i91146 = icmp eq i64 %.sroa.6.0.copyload.i, %2 - %.not.i91 = select i1 %.not.i, i1 %.not.i91146, i1 undef br i1 %.not.i91, label %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h5bd61317eb40469aE.exit", label %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h5bd61317eb40469aE.exit.thread" "_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h5bd61317eb40469aE.exit": ; preds = %20 - %bcmp.i = tail call i32 @bcmp(ptr nonnull readonly align 1 %.sroa.52.0..i, ptr nonnull readonly align 1 %1, i64 %2), !alias.scope !407 + %bcmp.i = tail call i32 @bcmp(ptr nonnull readonly align 1 %15, ptr nonnull readonly align 1 %1, i64 %2), !alias.scope !407 %21 = icmp eq i32 %bcmp.i, 0 br i1 %21, label %25, label %"_ZN73_$LT$$u5b$A$u5d$$u20$as$u20$core..slice..cmp..SlicePartialEq$LT$B$GT$$GT$5equal17h5bd61317eb40469aE.exit.thread" diff --git a/bench/rust-analyzer-rs/optimized/1rhf3pjhhflazor1.ll b/bench/rust-analyzer-rs/optimized/1rhf3pjhhflazor1.ll index f1a1616f635..78857e2c5d7 100644 --- a/bench/rust-analyzer-rs/optimized/1rhf3pjhhflazor1.ll +++ b/bench/rust-analyzer-rs/optimized/1rhf3pjhhflazor1.ll @@ -180,7 +180,6 @@ define internal fastcc { i64, ptr } @"_ZN102_$LT$core..iter..adapters..map..Map$ tail call void @llvm.experimental.noalias.scope.decl(metadata !69) %4 = load i64, ptr %0, align 8, !range !72, !alias.scope !73, !noalias !74, !noundef !15 %5 = icmp eq i64 %4, 3 - %.0.i.i.i.i = select i1 %5, ptr null, ptr %0 br i1 %5, label %55, label %6 6: ; preds = %1 @@ -269,7 +268,7 @@ common.resume.i.i.i: ; preds = %"_ZN4core3ptr148dro 37: ; preds = %"_ZN4core3ptr56drop_in_place$LT$syntax..ast..generated..nodes..Attr$GT$17hd807769e99ba4c56E.exit.sink.split.i8.i.i.i.i.i.i.i.i.i", %28 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3), !noalias !77 - %38 = call { i64, ptr } @"_ZN98_$LT$syntax..ast..traits..AttrDocCommentIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0eed81a9b19f4689E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %.0.i.i.i.i), !noalias !74 + %38 = call { i64, ptr } @"_ZN98_$LT$syntax..ast..traits..AttrDocCommentIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0eed81a9b19f4689E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %0), !noalias !74 %39 = extractvalue { i64, ptr } %38, 0 %.not.i.i.i.i.i.i.i.i = icmp eq i64 %39, 2 br i1 %.not.i.i.i.i.i.i.i.i, label %.loopexit.i.i.i.i, label %10 @@ -363,7 +362,7 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17h47d8e1296ff1f34fE.exit.i.i.i: br i1 %68, label %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h4d77986a31f8fd4eE.exit.i.i", label %69 69: ; preds = %"_ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..adapters..fuse..FuseImpl$LT$I$GT$$GT$4next17h7ee6886b61a64814E.exit.i.i.i.i.i.i.i" - %.val9.i.i.i.i.i.i.i = load i64, ptr %..i.i.i.i.i, align 8, !range !72, !alias.scope !130, !noalias !74, !noundef !15 + %.val9.i.i.i.i.i.i.i = load i64, ptr %56, align 8, !range !72, !alias.scope !130, !noalias !74, !noundef !15 %.val10.i.i.i.i.i.i.i = load ptr, ptr %64, align 8, !alias.scope !130, !noalias !74 switch i64 %.val9.i.i.i.i.i.i.i, label %default.unreachable [ i64 3, label %"_ZN4core3ptr199drop_in_place$LT$core..option..Option$LT$core..iter..adapters..filter..Filter$LT$syntax..ast..traits..AttrDocCommentIter$C$hir_expand..attrs..inner_attributes..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h1be251b9fc0a4132E.exit.i.i.i.i.i.i.i" @@ -406,7 +405,7 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17h47d8e1296ff1f34fE.exit.i.i.i: "_ZN4core3ptr199drop_in_place$LT$core..option..Option$LT$core..iter..adapters..filter..Filter$LT$syntax..ast..traits..AttrDocCommentIter$C$hir_expand..attrs..inner_attributes..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h1be251b9fc0a4132E.exit.i.i.i.i.i.i.i": ; preds = %"_ZN4core3ptr46drop_in_place$LT$rowan..cursor..SyntaxNode$GT$17h2c85c64c9eac156dE.llvm.18266587286026290509.exit.sink.split.i.i.i.i.i.i.i.i.i.i.i.i.i.i", %76, %70, %69, %69 store i64 %65, ptr %56, align 8, !alias.scope !130, !noalias !74 store ptr %67, ptr %64, align 8, !alias.scope !130, !noalias !74 - %83 = call fastcc { i64, ptr } @_ZN4core4iter8adapters7flatten17and_then_or_clear17h29696ed02cb62cf7E(ptr noalias noundef nonnull align 8 dereferenceable(48) %..i.i.i.i.i), !noalias !74 + %83 = call fastcc { i64, ptr } @_ZN4core4iter8adapters7flatten17and_then_or_clear17h29696ed02cb62cf7E(ptr noalias noundef nonnull align 8 dereferenceable(48) %56), !noalias !74 %84 = extractvalue { i64, ptr } %83, 0 %.not.i.i.i.i.i.i.i = icmp eq i64 %84, 2 br i1 %.not.i.i.i.i.i.i.i, label %"_ZN4core3ptr148drop_in_place$LT$core..option..Option$LT$either..Either$LT$syntax..ast..generated..nodes..Attr$C$syntax..ast..generated..tokens..Comment$GT$$GT$$GT$17h5ebb22e763672b9aE.exit.i.i.i.i.i.i.i", label %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h4d77986a31f8fd4eE.exit.thread17.i.i" @@ -14380,7 +14379,7 @@ _ZN4core4iter8adapters7flatten17and_then_or_clear17haebb9ba4992078a0E.exit.threa br label %14 14: ; preds = %"_ZN4core4iter6traits8iterator8Iterator8find_map5check28_$u7b$$u7b$closure$u7d$$u7d$17h4f9c8cc50f344b10E.exit.i.i.i.i.i.i.i.i", %13 - %15 = tail call { i64, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h8972dbe7c4ead9e8E.llvm.12542172245242916373(ptr noalias noundef nonnull align 8 dereferenceable(8) %.0.i.i.i), !noalias !5200 + %15 = tail call { i64, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h8972dbe7c4ead9e8E.llvm.12542172245242916373(ptr noalias noundef nonnull align 8 dereferenceable(8) %5), !noalias !5200 %16 = extractvalue { i64, ptr } %15, 0 %17 = extractvalue { i64, ptr } %15, 1 %18 = icmp eq i64 %16, 3 @@ -22846,7 +22845,6 @@ define internal fastcc { i64, ptr } @_ZN4core4iter8adapters7flatten17and_then_or %3 = alloca { i64, [1 x i64] }, align 8 %4 = load i64, ptr %0, align 8, !range !72, !noundef !15 %5 = icmp eq i64 %4, 3 - %.0 = select i1 %5, ptr null, ptr %0 br i1 %5, label %53, label %6 6: ; preds = %1 @@ -22935,7 +22933,7 @@ common.resume: ; preds = %21, %"_ZN4core3ptr5 37: ; preds = %"_ZN4core3ptr56drop_in_place$LT$syntax..ast..generated..nodes..Attr$GT$17hd807769e99ba4c56E.exit.sink.split.i8.i.i.i.i.i", %28 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3), !noalias !7529 - %38 = call { i64, ptr } @"_ZN98_$LT$syntax..ast..traits..AttrDocCommentIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0eed81a9b19f4689E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %.0) + %38 = call { i64, ptr } @"_ZN98_$LT$syntax..ast..traits..AttrDocCommentIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0eed81a9b19f4689E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %0) %39 = extractvalue { i64, ptr } %38, 0 %.not.i.i.i.i = icmp eq i64 %39, 2 br i1 %.not.i.i.i.i, label %.loopexit, label %10 diff --git a/bench/rust-analyzer-rs/optimized/1x49zfabvca0zorz.ll b/bench/rust-analyzer-rs/optimized/1x49zfabvca0zorz.ll index 86a3c9c3380..86bafcbca79 100644 --- a/bench/rust-analyzer-rs/optimized/1x49zfabvca0zorz.ll +++ b/bench/rust-analyzer-rs/optimized/1x49zfabvca0zorz.ll @@ -643,7 +643,6 @@ define internal fastcc void @"_ZN102_$LT$core..iter..adapters..map..Map$LT$I$C$F tail call void @llvm.experimental.noalias.scope.decl(metadata !19) %5 = load i64, ptr %1, align 8, !range !22, !alias.scope !23, !noalias !24, !noundef !11 %6 = icmp eq i64 %5, 3 - %.0.i.i.i = select i1 %6, ptr null, ptr %1 br i1 %6, label %56, label %7 7: ; preds = %2 @@ -732,7 +731,7 @@ common.resume.i.i: ; preds = %"_ZN4core3ptr148dro 38: ; preds = %"_ZN4core3ptr56drop_in_place$LT$syntax..ast..generated..nodes..Attr$GT$17h783abadd2a9c20deE.exit.sink.split.i8.i.i.i.i.i.i.i.i", %29 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %4), !noalias !26 - %39 = call { i64, ptr } @"_ZN98_$LT$syntax..ast..traits..AttrDocCommentIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0eed81a9b19f4689E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %.0.i.i.i), !noalias !24 + %39 = call { i64, ptr } @"_ZN98_$LT$syntax..ast..traits..AttrDocCommentIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0eed81a9b19f4689E"(ptr noalias noundef nonnull align 8 dereferenceable(72) %1), !noalias !24 %40 = extractvalue { i64, ptr } %39, 0 %.not.i.i.i.i.i.i.i = icmp eq i64 %40, 2 br i1 %.not.i.i.i.i.i.i.i, label %.loopexit.i.i.i, label %11 @@ -826,7 +825,7 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17h42e6c120739f50b8E.exit.i.i: ; br i1 %69, label %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h26483d754877a0a9E.exit.i", label %70 70: ; preds = %"_ZN107_$LT$core..iter..adapters..fuse..Fuse$LT$I$GT$$u20$as$u20$core..iter..adapters..fuse..FuseImpl$LT$I$GT$$GT$4next17h95fe459e0a2b5a55E.exit.i.i.i.i.i.i" - %.val9.i.i.i.i.i.i = load i64, ptr %..i.i.i.i, align 8, !range !22, !alias.scope !79, !noalias !24, !noundef !11 + %.val9.i.i.i.i.i.i = load i64, ptr %57, align 8, !range !22, !alias.scope !79, !noalias !24, !noundef !11 %.val10.i.i.i.i.i.i = load ptr, ptr %65, align 8, !alias.scope !79, !noalias !24 switch i64 %.val9.i.i.i.i.i.i, label %default.unreachable [ i64 3, label %"_ZN4core3ptr199drop_in_place$LT$core..option..Option$LT$core..iter..adapters..filter..Filter$LT$syntax..ast..traits..AttrDocCommentIter$C$hir_expand..attrs..inner_attributes..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h63bb319e137b31cdE.exit.i.i.i.i.i.i" @@ -869,7 +868,7 @@ _ZN4core4iter8adapters5chain17and_then_or_clear17h42e6c120739f50b8E.exit.i.i: ; "_ZN4core3ptr199drop_in_place$LT$core..option..Option$LT$core..iter..adapters..filter..Filter$LT$syntax..ast..traits..AttrDocCommentIter$C$hir_expand..attrs..inner_attributes..$u7b$$u7b$closure$u7d$$u7d$$GT$$GT$$GT$17h63bb319e137b31cdE.exit.i.i.i.i.i.i": ; preds = %"_ZN4core3ptr46drop_in_place$LT$rowan..cursor..SyntaxNode$GT$17h8320b619ea489b84E.llvm.15963164601899926706.exit.sink.split.i.i.i.i.i.i.i.i.i.i.i.i.i", %77, %71, %70, %70 store i64 %66, ptr %57, align 8, !alias.scope !79, !noalias !24 store ptr %68, ptr %65, align 8, !alias.scope !79, !noalias !24 - %84 = call fastcc { i64, ptr } @_ZN4core4iter8adapters7flatten17and_then_or_clear17h39caf0aabba9bfb4E(ptr noalias noundef nonnull align 8 dereferenceable(48) %..i.i.i.i), !noalias !24 + %84 = call fastcc { i64, ptr } @_ZN4core4iter8adapters7flatten17and_then_or_clear17h39caf0aabba9bfb4E(ptr noalias noundef nonnull align 8 dereferenceable(48) %57), !noalias !24 %85 = extractvalue { i64, ptr } %84, 0 %.not.i.i.i.i.i.i = icmp eq i64 %85, 2 br i1 %.not.i.i.i.i.i.i, label %"_ZN4core3ptr148drop_in_place$LT$core..option..Option$LT$either..Either$LT$syntax..ast..generated..nodes..Attr$C$syntax..ast..generated..tokens..Comment$GT$$GT$$GT$17hcc294edfaeb01e6cE.exit.i.i.i.i.i.i", label %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h26483d754877a0a9E.exit.thread17.i" @@ -5142,7 +5141,6 @@ define internal fastcc { i64, ptr } @_ZN4core4iter8adapters7flatten17and_then_or %3 = alloca { i64, [1 x i64] }, align 8 %4 = load i64, ptr %0, align 8, !range !22, !noundef !11 %5 = icmp eq i64 %4, 3 - %.0 = select i1 %5, ptr null, ptr %0 br i1 %5, label %53, label %6 6: ; preds = %1 @@ -5231,7 +5229,7 @@ common.resume: ; preds = %21, %"_ZN4core3ptr5 37: ; preds = %"_ZN4core3ptr56drop_in_place$LT$syntax..ast..generated..nodes..Attr$GT$17h783abadd2a9c20deE.exit.sink.split.i8.i.i.i.i.i", %28 call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %3), !noalias !1577 - %38 = call { i64, ptr } @"_ZN98_$LT$syntax..ast..traits..AttrDocCommentIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0eed81a9b19f4689E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %.0) + %38 = call { i64, ptr } @"_ZN98_$LT$syntax..ast..traits..AttrDocCommentIter$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h0eed81a9b19f4689E"(ptr noalias noundef nonnull align 8 dereferenceable(16) %0) %39 = extractvalue { i64, ptr } %38, 0 %.not.i.i.i.i = icmp eq i64 %39, 2 br i1 %.not.i.i.i.i, label %.loopexit, label %10 diff --git a/bench/rust-analyzer-rs/optimized/wcknfmhk1hydgx3.ll b/bench/rust-analyzer-rs/optimized/wcknfmhk1hydgx3.ll index 1d544648254..eec863305c6 100644 --- a/bench/rust-analyzer-rs/optimized/wcknfmhk1hydgx3.ll +++ b/bench/rust-analyzer-rs/optimized/wcknfmhk1hydgx3.ll @@ -30264,11 +30264,10 @@ define hidden noundef nonnull ptr @_ZN6syntax3ast4make18generic_param_list17h756 %20 = load i64, ptr %17, align 8, !range !25, !alias.scope !9090, !noalias !9084, !noundef !4 %trunc.i.i.i = trunc nuw i64 %20 to i1 %21 = getelementptr inbounds nuw i8, ptr %17, i64 8 - %.0.i.i.i = select i1 %trunc.i.i.i, ptr %21, ptr null br i1 %trunc.i.i.i, label %.preheader.i.i.i, label %51 .preheader.i.i.i: ; preds = %1, %"_ZN4core4iter6traits8iterator8Iterator8find_map5check28_$u7b$$u7b$closure$u7d$$u7d$17hadf26947141250fbE.exit.i.i.i.i.i.i.i.i" - %22 = invoke { i64, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h118db53183861e4aE.llvm.18082005449963326646(ptr noalias noundef nonnull align 8 dereferenceable(8) %.0.i.i.i) + %22 = invoke { i64, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h118db53183861e4aE.llvm.18082005449963326646(ptr noalias noundef nonnull align 8 dereferenceable(8) %21) to label %.noexc unwind label %.loopexit.split-lp.loopexit .noexc: ; preds = %.preheader.i.i.i @@ -30347,11 +30346,10 @@ define hidden noundef nonnull ptr @_ZN6syntax3ast4make18generic_param_list17h756 %53 = load i64, ptr %52, align 8, !range !25, !alias.scope !9132, !noalias !9084, !noundef !4 %trunc.i.i.i.i = trunc nuw i64 %53 to i1 %54 = getelementptr inbounds nuw i8, ptr %17, i64 24 - %.0.i.i.i.i = select i1 %trunc.i.i.i.i, ptr %54, ptr null br i1 %trunc.i.i.i.i, label %.preheader.i.i.i.i, label %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd68959e69cb25e02E.exit.thread.i" .preheader.i.i.i.i: ; preds = %51, %.preheader.i.i.i.i.backedge - %55 = invoke { i64, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h118db53183861e4aE.llvm.18082005449963326646(ptr noalias noundef nonnull align 8 dereferenceable(8) %.0.i.i.i.i) + %55 = invoke { i64, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h118db53183861e4aE.llvm.18082005449963326646(ptr noalias noundef nonnull align 8 dereferenceable(8) %54) to label %.noexc9 unwind label %.loopexit .noexc9: ; preds = %.preheader.i.i.i.i @@ -30838,11 +30836,10 @@ define hidden noundef nonnull ptr @_ZN6syntax3ast4make18generic_param_list17hd34 %20 = load i64, ptr %17, align 8, !range !25, !alias.scope !9301, !noalias !9295, !noundef !4 %trunc.i.i.i = trunc nuw i64 %20 to i1 %21 = getelementptr inbounds nuw i8, ptr %17, i64 8 - %.0.i.i.i = select i1 %trunc.i.i.i, ptr %21, ptr null br i1 %trunc.i.i.i, label %.preheader.i.i.i, label %51 .preheader.i.i.i: ; preds = %1, %"_ZN4core4iter6traits8iterator8Iterator8find_map5check28_$u7b$$u7b$closure$u7d$$u7d$17hadf26947141250fbE.exit.i.i.i.i.i.i.i.i" - %22 = invoke { i64, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h118db53183861e4aE.llvm.18082005449963326646(ptr noalias noundef nonnull align 8 dereferenceable(8) %.0.i.i.i) + %22 = invoke { i64, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h118db53183861e4aE.llvm.18082005449963326646(ptr noalias noundef nonnull align 8 dereferenceable(8) %21) to label %.noexc unwind label %.loopexit.split-lp.loopexit .noexc: ; preds = %.preheader.i.i.i @@ -30920,7 +30917,6 @@ define hidden noundef nonnull ptr @_ZN6syntax3ast4make18generic_param_list17hd34 %52 = getelementptr inbounds nuw i8, ptr %17, i64 16 %53 = load ptr, ptr %52, align 8, !alias.scope !9343, !noalias !9295, !noundef !4 %54 = icmp eq ptr %53, null - %.0.i.i.i.i = select i1 %54, ptr null, ptr %52 br i1 %54, label %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd34ab079c63e7f18E.exit.thread.i", label %55 55: ; preds = %51 @@ -30966,7 +30962,7 @@ default.unreachable.i.i.i.i.i.i.i.i.i.i.i: ; preds = %.noexc9 "_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd34ab079c63e7f18E.exit.i": ; preds = %.noexc9, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd34ab079c63e7f18E.exit.i.loopexit" %.ph.i.i.i.i.i = phi i64 [ 1, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd34ab079c63e7f18E.exit.i.loopexit" ], [ 0, %.noexc9 ] - %66 = invoke { i64, ptr } @"_ZN11ide_assists5utils24generate_impl_text_inner28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h0aa08bc79e37624eE.llvm.17197147422070727095"(ptr noalias noundef nonnull align 8 dereferenceable(24) %.0.i.i.i.i, i64 noundef %.ph.i.i.i.i.i, ptr noundef %59) + %66 = invoke { i64, ptr } @"_ZN11ide_assists5utils24generate_impl_text_inner28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h0aa08bc79e37624eE.llvm.17197147422070727095"(ptr noalias noundef nonnull align 8 dereferenceable(24) %52, i64 noundef %.ph.i.i.i.i.i, ptr noundef %59) to label %.noexc11 unwind label %.loopexit.split-lp.loopexit.split-lp .noexc11: ; preds = %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hd34ab079c63e7f18E.exit.i" @@ -31587,11 +31583,10 @@ define hidden noundef nonnull ptr @_ZN6syntax3ast4make18generic_param_list17hff5 %20 = load i64, ptr %17, align 8, !range !25, !alias.scope !9559, !noalias !9553, !noundef !4 %trunc.i.i.i = trunc nuw i64 %20 to i1 %21 = getelementptr inbounds nuw i8, ptr %17, i64 8 - %.0.i.i.i = select i1 %trunc.i.i.i, ptr %21, ptr null br i1 %trunc.i.i.i, label %.preheader.i.i.i, label %51 .preheader.i.i.i: ; preds = %1, %"_ZN4core4iter6traits8iterator8Iterator8find_map5check28_$u7b$$u7b$closure$u7d$$u7d$17hadf26947141250fbE.exit.i.i.i.i.i.i.i.i" - %22 = invoke { i64, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h118db53183861e4aE.llvm.18082005449963326646(ptr noalias noundef nonnull align 8 dereferenceable(8) %.0.i.i.i) + %22 = invoke { i64, ptr } @_ZN4core4iter6traits8iterator8Iterator8try_fold17h118db53183861e4aE.llvm.18082005449963326646(ptr noalias noundef nonnull align 8 dereferenceable(8) %21) to label %.noexc unwind label %.loopexit.split-lp.loopexit .noexc: ; preds = %.preheader.i.i.i @@ -31669,7 +31664,6 @@ define hidden noundef nonnull ptr @_ZN6syntax3ast4make18generic_param_list17hff5 %52 = getelementptr inbounds nuw i8, ptr %17, i64 16 %53 = load ptr, ptr %52, align 8, !alias.scope !9601, !noalias !9553, !noundef !4 %54 = icmp eq ptr %53, null - %.0.i.i.i.i = select i1 %54, ptr null, ptr %52 br i1 %54, label %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h92b2d10a1882ddf5E.exit.thread.i", label %55 55: ; preds = %51 @@ -31715,7 +31709,7 @@ default.unreachable.i.i.i.i.i.i.i.i.i.i.i: ; preds = %.noexc9 "_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h92b2d10a1882ddf5E.exit.i": ; preds = %.noexc9, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h92b2d10a1882ddf5E.exit.i.loopexit" %.ph.i.i.i.i.i = phi i64 [ 1, %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h92b2d10a1882ddf5E.exit.i.loopexit" ], [ 0, %.noexc9 ] - %66 = invoke { i64, ptr } @"_ZN11ide_assists5utils19generate_impl_inner28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h439e6aa8800f61a3E.llvm.17197147422070727095"(ptr noalias noundef nonnull align 8 dereferenceable(24) %.0.i.i.i.i, i64 noundef %.ph.i.i.i.i.i, ptr noundef %59) + %66 = invoke { i64, ptr } @"_ZN11ide_assists5utils19generate_impl_inner28_$u7b$$u7b$closure$u7d$$u7d$28_$u7b$$u7b$closure$u7d$$u7d$17h439e6aa8800f61a3E.llvm.17197147422070727095"(ptr noalias noundef nonnull align 8 dereferenceable(24) %52, i64 noundef %.ph.i.i.i.i.i, ptr noundef %59) to label %.noexc11 unwind label %.loopexit.split-lp.loopexit.split-lp .noexc11: ; preds = %"_ZN106_$LT$core..iter..adapters..chain..Chain$LT$A$C$B$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h92b2d10a1882ddf5E.exit.i" diff --git a/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll b/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll index d54d760335d..efb2387d221 100644 --- a/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll +++ b/bench/rustfmt-rs/optimized/1mznjg1e09hdetpr.ll @@ -22508,7 +22508,6 @@ define void @_ZN15rustfmt_nightly6config10file_lines9FileLines11from_ranges17h79 store i64 %28, ptr %.sroa.0.sroa.6.0..sroa_idx.i, align 8, !alias.scope !3940, !noalias !3926 %29 = icmp eq ptr %26, null %30 = getelementptr inbounds i8, ptr %26, i64 -24 - %spec.select.i = select i1 %29, ptr null, ptr %30 br i1 %29, label %.loopexit, label %31 31: ; preds = %.noexc @@ -22549,7 +22548,7 @@ define void @_ZN15rustfmt_nightly6config10file_lines9FileLines11from_ranges17h79 44: ; preds = %53, %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h9349bd4a913c49a6E.exit.thread.i" %45 = landingpad { ptr, i32 } cleanup - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false), !noalias !3926 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false), !noalias !3926 br label %.body "_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h9349bd4a913c49a6E.exit.i": ; preds = %39 @@ -22572,7 +22571,7 @@ define void @_ZN15rustfmt_nightly6config10file_lines9FileLines11from_ranges17h79 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %6) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %6, ptr noundef nonnull align 8 dereferenceable(24) %7, i64 24, i1 false), !noalias !3926 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %5), !noalias !3945 - invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h0043d20ca4a82a70E.llvm.17249484671449717553"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %spec.select.i) + invoke void @"_ZN5alloc7raw_vec19RawVec$LT$T$C$A$GT$14current_memory17h0043d20ca4a82a70E.llvm.17249484671449717553"(ptr noalias noundef nonnull sret({ [1 x i64], i64, [1 x i64] }) align 8 captures(none) dereferenceable(24) %5, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) %30) to label %.noexc.i unwind label %44, !noalias !3926 .noexc.i: ; preds = %"_ZN94_$LT$core..slice..iter..IterMut$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17h9349bd4a913c49a6E.exit.thread.i" @@ -22658,7 +22657,7 @@ _ZN15rustfmt_nightly6config10file_lines5Range10intersects17h877172c80e61d855E.ex 83: ; preds = %53, %.noexc.i call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %5), !noalias !3945 - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false), !noalias !3926 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %30, ptr noundef nonnull align 8 dereferenceable(24) %6, i64 24, i1 false), !noalias !3926 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %7), !noalias !3926 %.pr.i = load i64, ptr %.sroa.0.sroa.6.0..sroa_idx.i, align 8, !alias.scope !3940, !noalias !3926 diff --git a/bench/rustfmt-rs/optimized/3sx1t619hmuq0zz7.ll b/bench/rustfmt-rs/optimized/3sx1t619hmuq0zz7.ll index a83ddaa79e8..62eb72f745a 100644 --- a/bench/rustfmt-rs/optimized/3sx1t619hmuq0zz7.ll +++ b/bench/rustfmt-rs/optimized/3sx1t619hmuq0zz7.ll @@ -27937,7 +27937,6 @@ define internal fastcc noundef zeroext i1 @_ZN15rustfmt_nightly6chains20ChainFor %33 = load ptr, ptr %30, align 8, !nonnull !10, !align !11 %34 = add i64 %32, -1 %35 = getelementptr inbounds [0 x { { i8, [79 x i8] }, i64, { i32, i16, i16 } }], ptr %33, i64 0, i64 %34 - %.081 = select i1 %.not, ptr null, ptr %35 br i1 %.not, label %332, label %36 36: ; preds = %5 @@ -28230,7 +28229,7 @@ _ZN15rustfmt_nightly5shape5Shape11offset_left17hac40967f303a7b96E.exit: ; preds %.sroa.13.8..sroa_idx = getelementptr inbounds nuw i8, ptr %28, i64 24 store i64 %.sroa.13.0, ptr %.sroa.13.8..sroa_idx, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %27) - invoke void @"_ZN88_$LT$rustfmt_nightly..chains..ChainItem$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17h463101396d5cfbcbE"(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %27, ptr noalias noundef nonnull readonly align 8 dereferenceable(96) %.081, ptr noundef nonnull align 8 %2, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %28) + invoke void @"_ZN88_$LT$rustfmt_nightly..chains..ChainItem$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17h463101396d5cfbcbE"(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %27, ptr noalias noundef nonnull readonly align 8 dereferenceable(96) %35, ptr noundef nonnull align 8 %2, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %28) to label %154 unwind label %.thread438 154: ; preds = %_ZN15rustfmt_nightly5shape5Shape11offset_left17hac40967f303a7b96E.exit @@ -28512,7 +28511,7 @@ _ZN4core4iter6traits8iterator8Iterator4fold17h03824509b92771cbE.exit: ; preds = %.sroa.618.sroa.7.0..sroa_idx = getelementptr inbounds nuw i8, ptr %23, i64 24 store i64 %241, ptr %.sroa.618.sroa.7.0..sroa_idx, align 8 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) - invoke void @"_ZN88_$LT$rustfmt_nightly..chains..ChainItem$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17h463101396d5cfbcbE"(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %22, ptr noalias noundef nonnull readonly align 8 dereferenceable(96) %.081, ptr noundef nonnull align 8 %2, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %23) + invoke void @"_ZN88_$LT$rustfmt_nightly..chains..ChainItem$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17h463101396d5cfbcbE"(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %22, ptr noalias noundef nonnull readonly align 8 dereferenceable(96) %35, ptr noundef nonnull align 8 %2, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %23) to label %243 unwind label %.loopexit.split-lp 242: ; preds = %220 @@ -28755,7 +28754,7 @@ _ZN15rustfmt_nightly7rewrite14RewriteContext16use_block_indent17h490227a595f2c57 store i64 %.sroa.9.0339, ptr %.sroa.9.0..sroa_idx, align 8, !noalias !4290 %.sroa.11.0..sroa_idx = getelementptr inbounds nuw i8, ptr %7, i64 24 store i64 %.sroa.11.0340, ptr %.sroa.11.0..sroa_idx, align 8, !noalias !4290 - invoke void @"_ZN88_$LT$rustfmt_nightly..chains..ChainItem$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17h463101396d5cfbcbE"(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull readonly align 8 dereferenceable(96) %.081, ptr noundef nonnull align 8 %2, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %7) + invoke void @"_ZN88_$LT$rustfmt_nightly..chains..ChainItem$u20$as$u20$rustfmt_nightly..rewrite..Rewrite$GT$7rewrite17h463101396d5cfbcbE"(ptr noalias noundef nonnull sret({ i64, [2 x i64] }) align 8 captures(none) dereferenceable(24) %15, ptr noalias noundef nonnull readonly align 8 dereferenceable(96) %35, ptr noundef nonnull align 8 %2, ptr noalias noundef nonnull align 8 captures(none) dereferenceable(32) %7) to label %314 unwind label %311, !noalias !4294 311: ; preds = %310 diff --git a/bench/taskflow/optimized/async.ll b/bench/taskflow/optimized/async.ll index a9253395af1..b2fa27ef2d3 100644 --- a/bench/taskflow/optimized/async.ll +++ b/bench/taskflow/optimized/async.ll @@ -8822,7 +8822,7 @@ if.then.i: ; preds = %_ZSt6get_ifILm0EJSt if.end.i: ; preds = %_ZSt6get_ifILm0EJSt8functionIFvvEES0_IFvRN2tf7RuntimeEEEEENSt11add_pointerINSt19variant_alternativeIXT_ESt7variantIJDpT0_EEE4typeEE4typeEPSD_.exit %_M_invoker.i = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 24 %5 = load ptr, ptr %_M_invoker.i, align 8 - invoke void %5(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i) + invoke void %5(ptr noundef nonnull align 8 dereferenceable(32) %_handle) to label %try.cont unwind label %lpad lpad: ; preds = %if.end.i, %if.then.i @@ -8851,7 +8851,7 @@ if.then.i21: ; preds = %_ZSt6get_ifILm1EJSt if.end.i19: ; preds = %_ZSt6get_ifILm1EJSt8functionIFvvEES0_IFvRN2tf7RuntimeEEEEENSt11add_pointerINSt19variant_alternativeIXT_ESt7variantIJDpT0_EEE4typeEE4typeEPSD_.exit %_M_invoker.i20 = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 24 %8 = load ptr, ptr %_M_invoker.i20, align 8 - invoke void %8(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i, ptr noundef nonnull align 8 dereferenceable(24) %rt) + invoke void %8(ptr noundef nonnull align 8 dereferenceable(32) %_handle, ptr noundef nonnull align 8 dereferenceable(24) %rt) to label %invoke.cont9 unwind label %lpad8 invoke.cont9: ; preds = %if.end.i19 @@ -8993,7 +8993,7 @@ if.then.i: ; preds = %_ZN2tf5Graph6_clear if.end.i: ; preds = %_ZN2tf5Graph6_clearEv.exit %_M_invoker.i = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 24 %8 = load ptr, ptr %_M_invoker.i, align 8 - invoke void %8(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i, ptr noundef nonnull align 8 dereferenceable(33) %sf) + invoke void %8(ptr noundef nonnull align 8 dereferenceable(32) %_handle, ptr noundef nonnull align 8 dereferenceable(33) %sf) to label %try.cont unwind label %lpad lpad: ; preds = %if.end.i, %if.then.i @@ -9130,7 +9130,7 @@ if.then.i: ; preds = %_ZSt6get_ifILm0EJSt if.end.i: ; preds = %_ZSt6get_ifILm0EJSt8functionIFivEES0_IFiRN2tf7RuntimeEEEEENSt11add_pointerINSt19variant_alternativeIXT_ESt7variantIJDpT0_EEE4typeEE4typeEPSD_.exit %_M_invoker.i = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 24 %5 = load ptr, ptr %_M_invoker.i, align 8 - %call2.i11 = invoke noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i) + %call2.i11 = invoke noundef i32 %5(ptr noundef nonnull align 8 dereferenceable(32) %_handle) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %if.end.i @@ -9202,7 +9202,7 @@ if.then.i22: ; preds = %_ZSt6get_ifILm1EJSt if.end.i20: ; preds = %_ZSt6get_ifILm1EJSt8functionIFivEES0_IFiRN2tf7RuntimeEEEEENSt11add_pointerINSt19variant_alternativeIXT_ESt7variantIJDpT0_EEE4typeEE4typeEPSD_.exit %_M_invoker.i21 = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 24 %11 = load ptr, ptr %_M_invoker.i21, align 8 - %call2.i24 = invoke noundef i32 %11(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i, ptr noundef nonnull align 8 dereferenceable(24) %rt) + %call2.i24 = invoke noundef i32 %11(ptr noundef nonnull align 8 dereferenceable(32) %_handle, ptr noundef nonnull align 8 dereferenceable(24) %rt) to label %invoke.cont15 unwind label %lpad14 invoke.cont15: ; preds = %if.end.i20 @@ -9359,7 +9359,7 @@ if.then.i: ; preds = %_ZSt6get_ifILm0EJSt if.end.i: ; preds = %_ZSt6get_ifILm0EJSt8functionIFN2tf11SmallVectorIiLj2EEEvEES0_IFS3_RNS1_7RuntimeEEEEENSt11add_pointerINSt19variant_alternativeIXT_ESt7variantIJDpT0_EEE4typeEE4typeEPSF_.exit %_M_invoker.i = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 24 %5 = load ptr, ptr %_M_invoker.i, align 8, !noalias !87 - invoke void %5(ptr nonnull sret(%"class.tf::SmallVector.140") align 8 %ref.tmp, ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i) + invoke void %5(ptr nonnull sret(%"class.tf::SmallVector.140") align 8 %ref.tmp, ptr noundef nonnull align 8 dereferenceable(32) %_handle) to label %invoke.cont unwind label %lpad invoke.cont: ; preds = %if.end.i @@ -9414,7 +9414,7 @@ if.then.i27: ; preds = %_ZSt6get_ifILm1EJSt if.end.i25: ; preds = %_ZSt6get_ifILm1EJSt8functionIFN2tf11SmallVectorIiLj2EEEvEES0_IFS3_RNS1_7RuntimeEEEEENSt11add_pointerINSt19variant_alternativeIXT_ESt7variantIJDpT0_EEE4typeEE4typeEPSF_.exit %_M_invoker.i26 = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 24 %11 = load ptr, ptr %_M_invoker.i26, align 8, !noalias !90 - invoke void %11(ptr nonnull sret(%"class.tf::SmallVector.140") align 8 %ref.tmp10, ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i, ptr noundef nonnull align 8 dereferenceable(24) %rt) + invoke void %11(ptr nonnull sret(%"class.tf::SmallVector.140") align 8 %ref.tmp10, ptr noundef nonnull align 8 dereferenceable(32) %_handle, ptr noundef nonnull align 8 dereferenceable(24) %rt) to label %invoke.cont13 unwind label %lpad12 invoke.cont13: ; preds = %if.end.i25 @@ -9559,7 +9559,7 @@ if.then.i: ; preds = %_ZSt6get_ifILm0EJSt if.end.i: ; preds = %_ZSt6get_ifILm0EJSt8functionIFvvEES0_IFvRN2tf7RuntimeEEEEENSt11add_pointerINSt19variant_alternativeIXT_ESt7variantIJDpT0_EEE4typeEE4typeEPSD_.exit %_M_invoker.i = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 24 %5 = load ptr, ptr %_M_invoker.i, align 8 - invoke void %5(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i) + invoke void %5(ptr noundef nonnull align 8 dereferenceable(32) %_handle) to label %try.cont unwind label %lpad lpad: ; preds = %if.end.i, %if.then.i @@ -9588,7 +9588,7 @@ if.then.i21: ; preds = %_ZSt6get_ifILm1EJSt if.end.i19: ; preds = %_ZSt6get_ifILm1EJSt8functionIFvvEES0_IFvRN2tf7RuntimeEEEEENSt11add_pointerINSt19variant_alternativeIXT_ESt7variantIJDpT0_EEE4typeEE4typeEPSD_.exit %_M_invoker.i20 = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 24 %8 = load ptr, ptr %_M_invoker.i20, align 8 - invoke void %8(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i, ptr noundef nonnull align 8 dereferenceable(24) %rt) + invoke void %8(ptr noundef nonnull align 8 dereferenceable(32) %_handle, ptr noundef nonnull align 8 dereferenceable(24) %rt) to label %invoke.cont9 unwind label %lpad8 invoke.cont9: ; preds = %if.end.i19 @@ -9703,7 +9703,7 @@ if.then.i: ; preds = %_ZSt6get_ifILm0EJSt if.end.i: ; preds = %_ZSt6get_ifILm0EJSt8functionIFvvEES0_IFvRN2tf7RuntimeEEEEENSt11add_pointerINSt19variant_alternativeIXT_ESt7variantIJDpT0_EEE4typeEE4typeEPSD_.exit %_M_invoker.i = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 24 %5 = load ptr, ptr %_M_invoker.i, align 8 - invoke void %5(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i) + invoke void %5(ptr noundef nonnull align 8 dereferenceable(32) %_handle) to label %try.cont unwind label %lpad lpad: ; preds = %if.end.i, %if.then.i @@ -9732,7 +9732,7 @@ if.then.i21: ; preds = %_ZSt6get_ifILm1EJSt if.end.i19: ; preds = %_ZSt6get_ifILm1EJSt8functionIFvvEES0_IFvRN2tf7RuntimeEEEEENSt11add_pointerINSt19variant_alternativeIXT_ESt7variantIJDpT0_EEE4typeEE4typeEPSD_.exit %_M_invoker.i20 = getelementptr inbounds nuw i8, ptr %spec.select.i.i, i64 24 %8 = load ptr, ptr %_M_invoker.i20, align 8 - invoke void %8(ptr noundef nonnull align 8 dereferenceable(32) %spec.select.i.i, ptr noundef nonnull align 8 dereferenceable(24) %rt) + invoke void %8(ptr noundef nonnull align 8 dereferenceable(32) %_handle, ptr noundef nonnull align 8 dereferenceable(24) %rt) to label %invoke.cont9 unwind label %lpad8 invoke.cont9: ; preds = %if.end.i19 diff --git a/bench/tokenizers-rs/optimized/1k9vblvd5jyd3qmf.ll b/bench/tokenizers-rs/optimized/1k9vblvd5jyd3qmf.ll index f78dbd5e542..a3f6b7e572f 100644 --- a/bench/tokenizers-rs/optimized/1k9vblvd5jyd3qmf.ll +++ b/bench/tokenizers-rs/optimized/1k9vblvd5jyd3qmf.ll @@ -30607,7 +30607,6 @@ _ZN10tokenizers10processors8template25TemplateProcessingBuilder8validate17hf6f89 %144 = getelementptr inbounds nuw i8, ptr %1, i64 48 %145 = load ptr, ptr %144, align 8, !alias.scope !5519, !noalias !5522, !noundef !15 %146 = icmp eq ptr %145, null - %..i.i.i = select i1 %146, ptr null, ptr %144 %147 = icmp eq i64 %.val4.i.i, 0 %or.cond.i.i.i.i = or i1 %147, %146 br i1 %or.cond.i.i.i.i, label %_ZN10tokenizers10processors8template25TemplateProcessingBuilder13default_added17hcb173d2e37986ff4E.exit, label %.split.i.i.i.i.i @@ -30627,7 +30626,7 @@ _ZN10tokenizers10processors8template25TemplateProcessingBuilder8validate17hf6f89 %.val.i.i.i.i.i.i.i.i.i = load ptr, ptr %152, align 8, !alias.scope !5531, !noalias !5537 %153 = getelementptr inbounds nuw i8, ptr %148, i64 16 %.val1.i.i.i.i.i.i.i.i.i = load i64, ptr %153, align 8, !alias.scope !5531, !noalias !5537 - %154 = invoke fastcc noundef align 8 dereferenceable_or_null(72) ptr @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$3get17h137b1f7b2e1a7e49E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) dereferenceable_or_null(48) %..i.i.i, ptr %.val.i.i.i.i.i.i.i.i.i, i64 %.val1.i.i.i.i.i.i.i.i.i) + %154 = invoke fastcc noundef align 8 dereferenceable_or_null(72) ptr @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$3get17h137b1f7b2e1a7e49E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) dereferenceable_or_null(48) %144, ptr %.val.i.i.i.i.i.i.i.i.i, i64 %.val1.i.i.i.i.i.i.i.i.i) to label %.noexc unwind label %.loopexit.split-lp.loopexit .noexc: ; preds = %151 @@ -30679,7 +30678,6 @@ _ZN10tokenizers10processors8template25TemplateProcessingBuilder13default_added17 161: ; preds = %_ZN10tokenizers10processors8template25TemplateProcessingBuilder13default_added17hcb173d2e37986ff4E.exit %162 = icmp eq ptr %.pre, null - %..i.i.i24 = select i1 %162, ptr null, ptr %.phi.trans.insert %163 = icmp eq i64 %.val4.i26.pre.i, 0 %or.cond.i.i.i.i25 = or i1 %163, %162 br i1 %or.cond.i.i.i.i25, label %_ZN10tokenizers10processors8template25TemplateProcessingBuilder13default_added17hcb173d2e37986ff4E.exit36, label %.split.i.i.i.i.i26 @@ -30699,7 +30697,7 @@ _ZN10tokenizers10processors8template25TemplateProcessingBuilder13default_added17 %.val.i.i.i.i.i.i.i.i.i29 = load ptr, ptr %168, align 8, !alias.scope !5552, !noalias !5562 %169 = getelementptr inbounds nuw i8, ptr %164, i64 16 %.val1.i.i.i.i.i.i.i.i.i30 = load i64, ptr %169, align 8, !alias.scope !5552, !noalias !5562 - %170 = invoke fastcc noundef align 8 dereferenceable_or_null(72) ptr @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$3get17h137b1f7b2e1a7e49E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) dereferenceable_or_null(48) %..i.i.i24, ptr %.val.i.i.i.i.i.i.i.i.i29, i64 %.val1.i.i.i.i.i.i.i.i.i30) + %170 = invoke fastcc noundef align 8 dereferenceable_or_null(72) ptr @"_ZN9hashbrown3map28HashMap$LT$K$C$V$C$S$C$A$GT$3get17h137b1f7b2e1a7e49E"(ptr noalias noundef nonnull readonly align 8 dereferenceable(48) dereferenceable_or_null(48) %.phi.trans.insert, ptr %.val.i.i.i.i.i.i.i.i.i29, i64 %.val1.i.i.i.i.i.i.i.i.i30) to label %.noexc35 unwind label %.loopexit .noexc35: ; preds = %167 diff --git a/bench/tree-sitter-rs/optimized/1cv8rmziqotlzxv3.ll b/bench/tree-sitter-rs/optimized/1cv8rmziqotlzxv3.ll index abfaa30288b..4f30f8e694c 100644 --- a/bench/tree-sitter-rs/optimized/1cv8rmziqotlzxv3.ll +++ b/bench/tree-sitter-rs/optimized/1cv8rmziqotlzxv3.ll @@ -677,7 +677,7 @@ define void @_ZN21tree_sitter_highlight18HighlightIterLayer8sort_key17h73811d9c1 %15 = getelementptr inbounds nuw i8, ptr %1, i64 16 %16 = load i64, ptr %15, align 8, !noundef !4 %17 = icmp ult i64 %14, %16 - br i1 %17, label %.thread44, label %26, !prof !69 + br i1 %17, label %.thread44, label %25, !prof !69 18: ; preds = %"_ZN4core6option15Option$LT$T$GT$18get_or_insert_with17h852a6b9014e2bb26E.exit" %19 = getelementptr inbounds nuw i8, ptr %1, i64 152 @@ -686,15 +686,14 @@ define void @_ZN21tree_sitter_highlight18HighlightIterLayer8sort_key17h73811d9c1 br i1 %.not.not, label %.thread39, label %27 .thread44: ; preds = %12 - %21 = load ptr, ptr %10, align 8, !nonnull !4, !align !11, !noundef !4 - %22 = getelementptr inbounds [0 x { { { [4 x i32], ptr, ptr }, {} }, i32, [1 x i32] }], ptr %21, i64 0, i64 %14 - %23 = tail call noundef i64 @_ZN11tree_sitter4Node10start_byte17h7b19fd76ffed13b5E(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %22) - %24 = getelementptr inbounds nuw i8, ptr %1, i64 152 - %25 = load i64, ptr %24, align 8, !noundef !4 - %.not.not46 = icmp eq i64 %25, 0 - br i1 %.not.not46, label %.thread41, label %35 - -26: ; preds = %12 + %21 = getelementptr inbounds [0 x { { { [4 x i32], ptr, ptr }, {} }, i32, [1 x i32] }], ptr %11, i64 0, i64 %14 + %22 = tail call noundef i64 @_ZN11tree_sitter4Node10start_byte17h7b19fd76ffed13b5E(ptr noalias noundef nonnull readonly align 8 dereferenceable(32) %21) + %23 = getelementptr inbounds nuw i8, ptr %1, i64 152 + %24 = load i64, ptr %23, align 8, !noundef !4 + %25 = icmp eq i64 %24, 0 + br i1 %.not.not46, label %.thread41, label %34 + +25: ; preds = %12 tail call void @_ZN4core9panicking18panic_bounds_check17h8331054858f0bf20E(i64 noundef %14, i64 noundef %16, ptr noalias noundef nonnull readonly align 8 dereferenceable(24) @anon.7846843607c3237cb579c64a79ba54af.16) #15 unreachable @@ -720,7 +719,7 @@ define void @_ZN21tree_sitter_highlight18HighlightIterLayer8sort_key17h73811d9c1 ret void .thread41: ; preds = %.thread44 - store i64 %23, ptr %0, align 8 + store i64 %22, ptr %0, align 8 %.sroa.416.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 store i8 1, ptr %.sroa.416.0..sroa_idx, align 8 %.sroa.518.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -730,10 +729,10 @@ define void @_ZN21tree_sitter_highlight18HighlightIterLayer8sort_key17h73811d9c1 35: ; preds = %.thread44 %36 = getelementptr inbounds nuw i8, ptr %1, i64 144 %37 = load ptr, ptr %36, align 8, !nonnull !4 - %38 = add i64 %25, -1 + %38 = add i64 %24, -1 %39 = getelementptr inbounds [0 x i64], ptr %37, i64 0, i64 %38 %40 = load i64, ptr %39, align 8, !noundef !4 - %41 = icmp ult i64 %23, %40 + %41 = icmp ult i64 %22, %40 %.sroa.49.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 8 %.sroa.510.0..sroa_idx = getelementptr inbounds nuw i8, ptr %0, i64 16 br i1 %41, label %43, label %42 @@ -745,7 +744,7 @@ define void @_ZN21tree_sitter_highlight18HighlightIterLayer8sort_key17h73811d9c1 br label %34 43: ; preds = %35 - store i64 %23, ptr %0, align 8 + store i64 %22, ptr %0, align 8 store i8 1, ptr %.sroa.49.0..sroa_idx, align 8 store i64 %5, ptr %.sroa.510.0..sroa_idx, align 8 br label %34 diff --git a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll index 1faac6d1dfd..5ccac1c7f25 100644 --- a/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll +++ b/bench/typst-rs/optimized/2i78fvbm4wocuesi.ll @@ -82600,7 +82600,6 @@ _ZN9hayagriva3csl16date_replacement17h04f12c97cee36ecdE.exit.i: ; preds = %1293, %1327 = getelementptr inbounds nuw i8, ptr %1301, i64 544 %..val2.i.i782 = load i64, ptr %1327, align 8, !alias.scope !17131, !noalias !17128 %.sroa.3.0.i.i = select i1 %1325, i64 undef, i64 %..val2.i.i782 - %.sroa.0.0.i.i = select i1 %1325, ptr null, ptr %..val.i.i781 br i1 %1325, label %.thread1381, label %1328 1328: ; preds = %"_ZN91_$LT$core..slice..iter..Iter$LT$T$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$3all17hcc4ec14b8f3d314cE.exit" @@ -82663,7 +82662,7 @@ _ZN9hayagriva3csl16date_replacement17h04f12c97cee36ecdE.exit.i: ; preds = %1293, %1349 = extractvalue { i64, ptr } %1340, 1 %1350 = icmp ne ptr %1349, null call void @llvm.assume(i1 %1350) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %1349, ptr nonnull align 1 %.sroa.0.0.i.i, i64 %.sroa.3.0.i.i, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %1349, ptr nonnull align 1 %..val.i.i781, i64 %.sroa.3.0.i.i, i1 false) store i64 %1348, ptr %755, align 8 store ptr %1349, ptr %.sroa.4415.0..sroa_idx, align 8 store i64 %.sroa.3.0.i.i, ptr %.sroa.5416.0..sroa_idx, align 8 @@ -82719,7 +82718,6 @@ _ZN9hayagriva3csl16date_replacement17h04f12c97cee36ecdE.exit.i: ; preds = %1293, %1373 = getelementptr inbounds nuw i8, ptr %1368, i64 568 %..val2.i.i790 = load i64, ptr %1373, align 8, !alias.scope !17147, !noalias !17144 %.sroa.3.0.i.i791 = select i1 %1371, i64 undef, i64 %..val2.i.i790 - %.sroa.0.0.i.i792 = select i1 %1371, ptr null, ptr %..val.i.i789 br i1 %1371, label %.thread1391, label %1374 1374: ; preds = %._crit_edge2355 @@ -82780,7 +82778,7 @@ _ZN9hayagriva3csl16date_replacement17h04f12c97cee36ecdE.exit.i: ; preds = %1293, %.val4.i = load ptr, ptr %1397, align 8, !alias.scope !17155, !nonnull !4, !noundef !4 %1398 = sub nuw i64 %.val5.i, %.sroa.3.0.i.i791 %1399 = getelementptr inbounds i8, ptr %.val4.i, i64 %1398 - %bcmp.i.i.i.i = call i32 @bcmp(ptr nonnull readonly align 1 %.sroa.0.0.i.i792, ptr nonnull readonly align 1 %1399, i64 %.sroa.3.0.i.i791), !alias.scope !17158, !noalias !17155 + %bcmp.i.i.i.i = call i32 @bcmp(ptr nonnull readonly align 1 %..val.i.i789, ptr nonnull readonly align 1 %1399, i64 %.sroa.3.0.i.i791), !alias.scope !17158, !noalias !17155 %.not = icmp eq i32 %bcmp.i.i.i.i, 0 br i1 %.not, label %.thread1391, label %"_ZN4core6option15Option$LT$T$GT$6map_or17h08d483d488f7ccdcE.exit.thread" @@ -82794,7 +82792,7 @@ _ZN9hayagriva3csl16date_replacement17h04f12c97cee36ecdE.exit.i: ; preds = %1293, %1403 = extractvalue { i64, ptr } %1400, 1 %1404 = icmp ne ptr %1403, null call void @llvm.assume(i1 %1404) - call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %1403, ptr nonnull align 1 %.sroa.0.0.i.i792, i64 %.sroa.3.0.i.i791, i1 false) + call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %1403, ptr nonnull align 1 %..val.i.i789, i64 %.sroa.3.0.i.i791, i1 false) store i64 %1402, ptr %758, align 8 store ptr %1403, ptr %.sroa.4455.0..sroa_idx, align 8 store i64 %.sroa.3.0.i.i791, ptr %.sroa.5456.0..sroa_idx, align 8 diff --git a/bench/typst-rs/optimized/49m3cs7hus53ztof.ll b/bench/typst-rs/optimized/49m3cs7hus53ztof.ll index b44057c0eeb..f8932072caa 100644 --- a/bench/typst-rs/optimized/49m3cs7hus53ztof.ll +++ b/bench/typst-rs/optimized/49m3cs7hus53ztof.ll @@ -43884,8 +43884,7 @@ define hidden void @_ZN5typst4eval3ops3add17h91d2f1a96ea0416eE(ptr noalias nound br label %"_ZN4core3ptr44drop_in_place$LT$ecow..string..EcoString$GT$17h2cca40327d577ef0E.exit254" 609: ; preds = %.noexc246 - %610 = icmp eq i128 %606, 52279098546657380840774234382173673024 - %..i.i = select i1 %610, ptr %602, ptr null + %610 = icmp ne i128 %606, 52279098546657380840774234382173673024 tail call void @llvm.experimental.noalias.scope.decl(metadata !7412) %611 = load ptr, ptr %24, align 8, !alias.scope !7412, !nonnull !16, !noundef !16 %612 = load ptr, ptr %592, align 8, !alias.scope !7412, !nonnull !16, !align !402, !noundef !16 @@ -43909,11 +43908,8 @@ define hidden void @_ZN5typst4eval3ops3add17h91d2f1a96ea0416eE(ptr noalias nound to label %627 unwind label %607 627: ; preds = %.noexc249 - %628 = icmp eq i128 %626, 52279098546657380840774234382173673024 - %..i.i248 = select i1 %628, ptr %622, ptr null - %.not = icmp eq ptr %..i.i, null - %.not122 = icmp eq ptr %..i.i248, null - %or.cond = or i1 %.not, %.not122 + %628 = icmp ne i128 %626, 52279098546657380840774234382173673024 + %..i.i248 = or i1 %610, %628 br i1 %or.cond, label %629, label %641 629: ; preds = %627 @@ -43940,8 +43936,8 @@ define hidden void @_ZN5typst4eval3ops3add17h91d2f1a96ea0416eE(ptr noalias nound to label %_ZN5typst11foundations5value7Dynamic2ty17hd246c8f7c7a190afE.exit unwind label %652 641: ; preds = %627 - %.sroa.038.0.copyload = load i16, ptr %..i.i, align 1 - %.sroa.039.0.copyload = load i16, ptr %..i.i248, align 1 + %.sroa.038.0.copyload = load i16, ptr %602, align 1 + %.sroa.039.0.copyload = load i16, ptr %622, align 1 call void @llvm.lifetime.start.p0(i64 32, ptr nonnull %23) call void @llvm.lifetime.start.p0(i64 21, ptr nonnull %.sroa.743) call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %22) diff --git a/bench/vcpkg/optimized/cgroup-parser.ll b/bench/vcpkg/optimized/cgroup-parser.ll index eb3fcecfd3a..de0fdb38a6b 100644 --- a/bench/vcpkg/optimized/cgroup-parser.ll +++ b/bench/vcpkg/optimized/cgroup-parser.ll @@ -199,7 +199,7 @@ _ZN5vcpkg10ParserBase10is_lineendEDi.exit.thread: ; preds = %33, %33, %33, %30 cleanup br label %.loopexit.split-lp -.loopexit.split-lp.loopexit.split-lp: ; preds = %81, %77, %65, %_ZN5vcpkg10ParserBase10is_lineendEDi.exit27, %_ZN5vcpkg10ParserBase10is_lineendEDi.exit +.loopexit.split-lp.loopexit.split-lp: ; preds = %81, %74, %65, %_ZN5vcpkg10ParserBase10is_lineendEDi.exit27, %_ZN5vcpkg10ParserBase10is_lineendEDi.exit %lpad.loopexit.split-lp45 = landingpad { ptr, i32 } cleanup br label %.loopexit.split-lp @@ -296,31 +296,28 @@ _ZN5vcpkg10ParserBase10is_lineendEDi.exit41: ; preds = %.lr.ph.i.i to label %71 unwind label %.loopexit.split-lp.loopexit.split-lp 71: ; preds = %65 - %72 = load i8, ptr %7, align 8 - %73 = trunc i8 %72 to i1 - %74 = select i1 %73, ptr %17, ptr null - %75 = load ptr, ptr %18, align 8 - %76 = load ptr, ptr %19, align 8 - %.not.i = icmp eq ptr %75, %76 - br i1 %.not.i, label %81, label %77 - -77: ; preds = %71 - %78 = load i64, ptr %74, align 8 + %72 = load ptr, ptr %18, align 8 + %73 = load ptr, ptr %19, align 8 + %74 = icmp eq ptr %72, %73 + br i1 %74, label %78, label %74 + +74:; preds = %71 + %75 = load i64, ptr %17, align 8 %.sroa.01.0.copyload.i.i.i = load ptr, ptr %8, align 8 %.sroa.22.0.copyload.i.i.i = load i64, ptr %15, align 8 %.sroa.0.0.copyload.i.i.i = load ptr, ptr %9, align 8 %.sroa.2.0.copyload.i.i.i = load i64, ptr %16, align 8 - invoke void @_ZN5vcpkg12ControlGroupC2ElNS_10StringViewES1_(ptr noundef nonnull align 8 dereferenceable(72) %75, i64 noundef %78, ptr %.sroa.01.0.copyload.i.i.i, i64 %.sroa.22.0.copyload.i.i.i, ptr %.sroa.0.0.copyload.i.i.i, i64 %.sroa.2.0.copyload.i.i.i) + invoke void @_ZN5vcpkg12ControlGroupC2ElNS_10StringViewES1_(ptr noundef nonnull align 8 dereferenceable(72) %72, i64 noundef %75, ptr %.sroa.01.0.copyload.i.i.i, i64 %.sroa.22.0.copyload.i.i.i, ptr %.sroa.0.0.copyload.i.i.i, i64 %.sroa.2.0.copyload.i.i.i) to label %.noexc38 unwind label %.loopexit.split-lp.loopexit.split-lp -.noexc38: ; preds = %77 +.noexc38: ; preds = %74 %79 = load ptr, ptr %18, align 8 %80 = getelementptr inbounds nuw i8, ptr %79, i64 72 store ptr %80, ptr %18, align 8 br label %_ZNSt6vectorIN5vcpkg12ControlGroupESaIS1_EE5clearEv.exit 81: ; preds = %71 - invoke void @_ZNSt6vectorIN5vcpkg12ControlGroupESaIS1_EE17_M_realloc_insertIJRlRNS0_10StringViewES7_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr %75, ptr noundef nonnull align 8 dereferenceable(8) %74, ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %9) + invoke void @_ZNSt6vectorIN5vcpkg12ControlGroupESaIS1_EE17_M_realloc_insertIJRlRNS0_10StringViewES7_EEEvN9__gnu_cxx17__normal_iteratorIPS1_S3_EEDpOT_(ptr noundef nonnull align 8 dereferenceable(24) %0, ptr %72, ptr noundef nonnull align 8 dereferenceable(8) %17, ptr noundef nonnull align 8 dereferenceable(16) %8, ptr noundef nonnull align 8 dereferenceable(16) %9) to label %_ZNSt6vectorIN5vcpkg12ControlGroupESaIS1_EE5clearEv.exit unwind label %.loopexit.split-lp.loopexit.split-lp _ZNSt6vectorIN5vcpkg12ControlGroupESaIS1_EE5clearEv.exit: ; preds = %81, %.noexc38 diff --git a/bench/vcpkg/optimized/vcpkgpaths.ll b/bench/vcpkg/optimized/vcpkgpaths.ll index 7c47d27b8a5..ec76df6dced 100644 --- a/bench/vcpkg/optimized/vcpkgpaths.ll +++ b/bench/vcpkg/optimized/vcpkgpaths.ll @@ -4790,14 +4790,9 @@ _ZN5vcpkg8OptionalINS_8LockFileEED2Ev.exit: ; preds = %_ZN5vcpkg8OptionalI 160: ; preds = %_ZN5vcpkg8OptionalINS_8LockFileEED2Ev.exit call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %17) #24 %.pre = load ptr, ptr %18, align 8 - %.phi.trans.insert = getelementptr inbounds nuw i8, ptr %.pre, i64 224 - %.pre3 = load i8, ptr %.phi.trans.insert, align 8 - %.pre3.fr = freeze i8 %.pre3 - %.pre4 = trunc i8 %.pre3.fr to i1 - call void @llvm.assume(i1 %.pre4) br label %.thread -.thread: ; preds = %1, %160 +.thread: ; preds = %160, %1 %.pn = phi ptr [ %.pre, %160 ], [ %19, %1 ] %161 = getelementptr inbounds nuw i8, ptr %.pn, i64 232 ret ptr %161 diff --git a/bench/verilator/optimized/V3Split.ll b/bench/verilator/optimized/V3Split.ll index cf980c76da1..04e022fa974 100644 --- a/bench/verilator/optimized/V3Split.ll +++ b/bench/verilator/optimized/V3Split.ll @@ -5139,19 +5139,14 @@ _ZN23SplitReorderBaseVisitor9scanBlockEP7AstNode.exit: ; preds = %_ZN23SplitReor br label %83 83: ; preds = %.lr.ph, %83 - %.02439 = phi ptr [ %.1, %.lr.ph ], [ %92, %83 ] - %84 = getelementptr inbounds nuw i8, ptr %.02439, i64 136 - %85 = load i32, ptr %84, align 8 - %86 = load i32, ptr @_ZN12VNUser3InUse12s_userCntGblE, align 4 - %87 = icmp eq i32 %85, %86 - %88 = getelementptr inbounds nuw i8, ptr %.02439, i64 128 - %89 = load i64, ptr %88, align 8 - %90 = inttoptr i64 %89 to ptr - %.sroa.0.0.i.i35 = select i1 %87, ptr %90, ptr null - call void @_ZN13V3GraphVertex12unlinkDeleteEP7V3Graph(ptr noundef nonnull align 8 dereferenceable(80) %.sroa.0.0.i.i35, ptr noundef nonnull %82) - %91 = getelementptr inbounds nuw i8, ptr %.02439, i64 8 - %92 = load ptr, ptr %91, align 8 - %.not30 = icmp eq ptr %92, null + %.02439 = phi ptr [ %.1, %.lr.ph ], [ %89, %83 ] + %84 = getelementptr inbounds nuw i8, ptr %.02439, i64 128 + %85 = load i64, ptr %84, align 8 + %86 = inttoptr i64 %85 to ptr + call void @_ZN13V3GraphVertex12unlinkDeleteEP7V3Graph(ptr noundef nonnull align 8 dereferenceable(80) %86, ptr noundef nonnull %82) + %88 = getelementptr inbounds nuw i8, ptr %.02439, i64 8 + %89 = load ptr, ptr %88, align 8 + %90 = icmp eq ptr %88, null br i1 %.not30, label %.loopexit, label %83, !llvm.loop !26 .loopexit: ; preds = %83, %60, %72, %22 @@ -5597,7 +5592,7 @@ _ZNSt10_HashtableIjSt4pairIKjP16SplitLogicVertexESaIS4_ENSt8__detail10_Select1st store ptr getelementptr inbounds nuw (i8, ptr @_ZTV11V3GraphEdge, i64 16), ptr %132, align 8 %158 = getelementptr inbounds nuw i8, ptr %132, i64 8 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(32) %158, i8 0, i64 32, i1 false) - invoke void @_ZN11V3GraphEdge4initEP7V3GraphP13V3GraphVertexS3_ib(ptr noundef nonnull align 8 dereferenceable(80) %132, ptr noundef nonnull %30, ptr noundef %157, ptr noundef nonnull %.sroa.0.0.i.i110, i32 noundef 10, i1 noundef zeroext false) + invoke void @_ZN11V3GraphEdge4initEP7V3GraphP13V3GraphVertexS3_ib(ptr noundef nonnull align 8 dereferenceable(80) %132, ptr noundef nonnull %30, ptr noundef %157, ptr noundef nonnull %94, i32 noundef 10, i1 noundef zeroext false) to label %_ZN15SplitStrictEdgeC2EP7V3GraphP13V3GraphVertexS3_.exit unwind label %160 _ZN15SplitStrictEdgeC2EP7V3GraphP13V3GraphVertexS3_.exit: ; preds = %.loopexit156 diff --git a/bench/wasmedge/optimized/executor.ll b/bench/wasmedge/optimized/executor.ll index 6808f1a3fd0..a84de65a00b 100644 --- a/bench/wasmedge/optimized/executor.ll +++ b/bench/wasmedge/optimized/executor.ll @@ -31699,35 +31699,19 @@ switch.lookup: 6: ; preds = %5 %7 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %8 = getelementptr inbounds nuw i8, ptr %1, i64 80 - %9 = load i8, ptr %8, align 8 - %10 = icmp eq i8 %9, 1 - %spec.select.i.i.i = select i1 %10, ptr %7, ptr null - %11 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %12 = getelementptr inbounds nuw i8, ptr %2, i64 80 - %13 = load i8, ptr %12, align 8 - %14 = icmp eq i8 %13, 1 - %spec.select.i.i.i13 = select i1 %14, ptr %11, ptr null - %15 = tail call noundef zeroext i1 @_ZZN8WasmEdge3AST11TypeMatcher14isRecTypeEqualEN5cxx204spanIKPKNS0_7SubTypeELm18446744073709551615EEEjS8_jjENKUlRKNS0_12FunctionTypeESB_E_clESB_SB_(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull align 8 dereferenceable(72) %spec.select.i.i.i, ptr noundef nonnull align 8 dereferenceable(72) %spec.select.i.i.i13) - br label %27 + %8 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %9 = tail call noundef zeroext i1 @_ZZN8WasmEdge3AST11TypeMatcher14isRecTypeEqualEN5cxx204spanIKPKNS0_7SubTypeELm18446744073709551615EEEjS8_jjENKUlRKNS0_12FunctionTypeESB_E_clESB_SB_(ptr noundef nonnull align 8 dereferenceable(40) %0, ptr noundef nonnull align 8 dereferenceable(72) %7, ptr noundef nonnull align 8 dereferenceable(72) %8) + br label %15 16: ; preds = %5 %17 = getelementptr inbounds nuw i8, ptr %0, i64 40 %18 = getelementptr inbounds nuw i8, ptr %1, i64 8 - %19 = getelementptr inbounds nuw i8, ptr %1, i64 80 - %20 = load i8, ptr %19, align 8 - %21 = icmp eq i8 %20, 0 - %spec.select.i.i.i14 = select i1 %21, ptr %18, ptr null - %22 = getelementptr inbounds nuw i8, ptr %2, i64 8 - %23 = getelementptr inbounds nuw i8, ptr %2, i64 80 - %24 = load i8, ptr %23, align 8 - %25 = icmp eq i8 %24, 0 - %spec.select.i.i.i15 = select i1 %25, ptr %22, ptr null - %26 = tail call noundef zeroext i1 @_ZZN8WasmEdge3AST11TypeMatcher14isRecTypeEqualEN5cxx204spanIKPKNS0_7SubTypeELm18446744073709551615EEEjS8_jjENKUlRKSt6vectorINS0_9FieldTypeESaISA_EESE_E_clESE_SE_(ptr noundef nonnull align 8 dereferenceable(40) %17, ptr noundef nonnull align 8 dereferenceable(24) %spec.select.i.i.i14, ptr noundef nonnull align 8 dereferenceable(24) %spec.select.i.i.i15) + %19 = getelementptr inbounds nuw i8, ptr %2, i64 8 + %20 = tail call noundef zeroext i1 @_ZZN8WasmEdge3AST11TypeMatcher14isRecTypeEqualEN5cxx204spanIKPKNS0_7SubTypeELm18446744073709551615EEEjS8_jjENKUlRKSt6vectorINS0_9FieldTypeESaISA_EESE_E_clESE_SE_(ptr noundef nonnull align 8 dereferenceable(40) %11, ptr noundef nonnull align 8 dereferenceable(24) %12, ptr noundef nonnull align 8 dereferenceable(24) %13) br label %27 27: ; preds = %switch.lookup, %16, %6 - %.0 = phi i1 [ %26, %16 ], [ %15, %6 ], [ false, %switch.lookup ] + %.0 = phi i1 [ %20, %16 ], [ %9, %6 ], [ false, %switch.lookup ] ret i1 %.0 } diff --git a/bench/wasmedge/optimized/serial_type.ll b/bench/wasmedge/optimized/serial_type.ll index 765abda1b03..bc71daf57ce 100644 --- a/bench/wasmedge/optimized/serial_type.ll +++ b/bench/wasmedge/optimized/serial_type.ll @@ -2216,21 +2216,17 @@ _ZNSt6vectorIhSaIhEE9push_backEOh.exit56: ; preds = %_ZNSt6vectorIhSaIhE 162: ; preds = %_ZNSt6vectorIhSaIhEE9push_backEOh.exit56 %163 = getelementptr inbounds nuw i8, ptr %2, i64 40 - %164 = getelementptr inbounds nuw i8, ptr %2, i64 112 - %165 = load i8, ptr %164, align 8 - %166 = icmp eq i8 %165, 1 - %spec.select.i.i.i = select i1 %166, ptr %163, ptr null - call void @_ZNK8WasmEdge6Loader10Serializer13serializeTypeERKNS_3AST12FunctionTypeERSt6vectorIhSaIhEE(ptr dead_on_unwind nonnull writable sret(%"class.cxx20::expected") align 4 %12, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(72) %spec.select.i.i.i, ptr noundef nonnull align 8 dereferenceable(24) %3) #17 - %167 = load i8, ptr %12, align 4 - %168 = trunc i8 %167 to i1 - br i1 %168, label %197, label %169 - -169: ; preds = %162 - %170 = getelementptr inbounds nuw i8, ptr %12, i64 4 - %171 = load i32, ptr %170, align 4, !noalias !40 + call void @_ZNK8WasmEdge6Loader10Serializer13serializeTypeERKNS_3AST12FunctionTypeERSt6vectorIhSaIhEE(ptr dead_on_unwind nonnull writable sret(%"class.cxx20::expected") align 4 %12, ptr noundef nonnull align 8 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(72) %163, ptr noundef nonnull align 8 dereferenceable(24) %3) #17 + %165 = load i8, ptr %12, align 4 + %166 = trunc i8 %165 to i1 + br i1 %166, label %194, label %166 + +166:; preds = %162 + %168 = getelementptr inbounds nuw i8, ptr %12, i64 4 + %168 = load i32, ptr %168, align 4, !noalias !40 store i8 0, ptr %0, align 4 %172 = getelementptr inbounds nuw i8, ptr %0, i64 4 - store i32 %171, ptr %172, align 4 + store i32 %168, ptr %172, align 4 br label %198 173: ; preds = %_ZNSt6vectorIhSaIhEE9push_backEOh.exit56, %_ZNSt6vectorIhSaIhEE9push_backEOh.exit56 @@ -2319,7 +2315,7 @@ _ZNK8WasmEdge6Loader10Serializer17logSerializeErrorENS_7ErrCodeENS_11ASTNodeAttr store i64 1, ptr %0, align 4 br label %198 -198: ; preds = %197, %_ZNK8WasmEdge6Loader10Serializer17logSerializeErrorENS_7ErrCodeENS_11ASTNodeAttrE.exit, %185, %169, %32 +198: ; preds = %197, %_ZNK8WasmEdge6Loader10Serializer17logSerializeErrorENS_7ErrCodeENS_11ASTNodeAttrE.exit, %185, %166, %32 ret void 199: ; preds = %.invoke, %153, %79, %56 diff --git a/bench/wasmtime-rs/optimized/4oustitdsdvnhdau.ll b/bench/wasmtime-rs/optimized/4oustitdsdvnhdau.ll index 85136f65189..2d23b34bcd8 100644 --- a/bench/wasmtime-rs/optimized/4oustitdsdvnhdau.ll +++ b/bench/wasmtime-rs/optimized/4oustitdsdvnhdau.ll @@ -101,7 +101,7 @@ define void @"_ZN4core6option15Option$LT$T$GT$11map_or_else17h760c5bd178dd46aaE" } ; Function Attrs: inlinehint nonlazybind uwtable -define nonnull align 8 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_with17h7a514ffb45ea36e2E"(ptr align 8 %0, ptr align 8 %1) unnamed_addr #1 personality ptr @rust_eh_personality { +define nonnull align 8 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_with17h7a514ffb45ea36e2E"(ptr returned align 8 %0, ptr align 8 %1) unnamed_addr #1 personality ptr @rust_eh_personality { %3 = alloca { [2 x i64], i64, [6 x i64] }, align 8 %4 = alloca { [2 x i64], i64, [6 x i64] }, align 8 %5 = getelementptr inbounds nuw i8, ptr %0, i64 16 @@ -116,10 +116,9 @@ define nonnull align 8 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_wit to label %13 unwind label %11 9: ; preds = %13, %2 - %. = phi ptr [ %15, %13 ], [ %0, %2 ] - %10 = icmp ne ptr %., null + %. = phi i1 [ %14, %13 ], [ true, %2 ] call void @llvm.assume(i1 %10) - ret ptr %. + ret ptr %0 11: ; preds = %8 %12 = landingpad { ptr, i32 } @@ -130,16 +129,15 @@ define nonnull align 8 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_wit 13: ; preds = %8 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(72) %0, ptr noundef nonnull align 8 dereferenceable(72) %4, i64 72, i1 false) %.pre = load i64, ptr %5, align 8, !range !7 - %14 = icmp eq i64 %.pre, 6 - %15 = select i1 %14, ptr null, ptr %0 + %14 = icmp ne i64 %.pre, 6 br label %9 } ; Function Attrs: inlinehint nonlazybind uwtable -define nonnull align 8 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_with17h886a0d55f47bd255E"(ptr align 8 %0, ptr align 8 %1) unnamed_addr #1 personality ptr @rust_eh_personality { +define nonnull align 8 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_with17h886a0d55f47bd255E"(ptr returned align 8 %0, ptr align 8 %1) unnamed_addr #1 personality ptr @rust_eh_personality { %3 = load i64, ptr %0, align 8, !range !8, !noundef !3 %4 = icmp eq i64 %3, 2 - br i1 %4, label %5, label %12 + br i1 %4, label %5, label %11 5: ; preds = %2 %6 = tail call { i64, i64 } @"_ZN4core4iter8adapters8peekable17Peekable$LT$I$GT$4peek28_$u7b$$u7b$closure$u7d$$u7d$17h65c9c09b741781dfE"(ptr align 8 %1) @@ -148,22 +146,20 @@ define nonnull align 8 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_wit store i64 %7, ptr %0, align 8 %9 = getelementptr inbounds nuw i8, ptr %0, i64 8 store i64 %8, ptr %9, align 8 - %10 = icmp eq i64 %7, 2 - %11 = select i1 %10, ptr null, ptr %0 - br label %12 - -12: ; preds = %5, %2 - %. = phi ptr [ %11, %5 ], [ %0, %2 ] - %13 = icmp ne ptr %., null - tail call void @llvm.assume(i1 %13) - ret ptr %. + %10 = icmp ne i64 %7, 2 + br label %11 + +11: ; preds = %5, %2 + %12 = phi i1 [ %., %5 ], [ true, %2 ] + tail call void @llvm.assume(i1 %12) + ret ptr %0 } ; Function Attrs: inlinehint nonlazybind uwtable -define nonnull align 2 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_with17he5c1c1949e166583E"(ptr align 2 %0, ptr align 8 %1) unnamed_addr #1 personality ptr @rust_eh_personality { +define nonnull align 2 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_with17he5c1c1949e166583E"(ptr returned align 2 %0, ptr align 8 %1) unnamed_addr #1 personality ptr @rust_eh_personality { %3 = load i16, ptr %0, align 2, !range !9, !noundef !3 %4 = icmp eq i16 %3, 2 - br i1 %4, label %5, label %12 + br i1 %4, label %5, label %11 5: ; preds = %2 %6 = tail call { i16, i16 } @"_ZN4core4iter8adapters8peekable17Peekable$LT$I$GT$4peek28_$u7b$$u7b$closure$u7d$$u7d$17hbbc1db69f73a8843E"(ptr align 8 %1) @@ -172,22 +168,20 @@ define nonnull align 2 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_wit store i16 %7, ptr %0, align 2 %9 = getelementptr inbounds nuw i8, ptr %0, i64 2 store i16 %8, ptr %9, align 2 - %10 = icmp eq i16 %7, 2 - %11 = select i1 %10, ptr null, ptr %0 - br label %12 - -12: ; preds = %5, %2 - %. = phi ptr [ %11, %5 ], [ %0, %2 ] - %13 = icmp ne ptr %., null - tail call void @llvm.assume(i1 %13) - ret ptr %. + %10 = icmp ne i16 %7, 2 + br label %11 + +11: ; preds = %5, %2 + %12 = phi i1 [ %., %5 ], [ true, %2 ] + tail call void @llvm.assume(i1 %12) + ret ptr %0 } ; Function Attrs: inlinehint nonlazybind uwtable -define nonnull align 2 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_with17hfcb39d7d7dff5a3fE"(ptr align 2 %0, ptr align 8 %1) unnamed_addr #1 personality ptr @rust_eh_personality { +define nonnull align 2 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_with17hfcb39d7d7dff5a3fE"(ptr returned align 2 %0, ptr align 8 %1) unnamed_addr #1 personality ptr @rust_eh_personality { %3 = load i16, ptr %0, align 2, !range !9, !noundef !3 %4 = icmp eq i16 %3, 2 - br i1 %4, label %5, label %12 + br i1 %4, label %5, label %11 5: ; preds = %2 %6 = tail call { i16, i16 } @"_ZN4core4iter8adapters8peekable17Peekable$LT$I$GT$4peek28_$u7b$$u7b$closure$u7d$$u7d$17hda580348e08d2514E"(ptr align 8 %1) @@ -196,15 +190,13 @@ define nonnull align 2 ptr @"_ZN4core6option15Option$LT$T$GT$18get_or_insert_wit store i16 %7, ptr %0, align 2 %9 = getelementptr inbounds nuw i8, ptr %0, i64 2 store i16 %8, ptr %9, align 2 - %10 = icmp eq i16 %7, 2 - %11 = select i1 %10, ptr null, ptr %0 - br label %12 - -12: ; preds = %5, %2 - %. = phi ptr [ %11, %5 ], [ %0, %2 ] - %13 = icmp ne ptr %., null - tail call void @llvm.assume(i1 %13) - ret ptr %. + %10 = icmp ne i16 %7, 2 + br label %11 + +11: ; preds = %5, %2 + %12 = phi i1 [ %., %5 ], [ true, %2 ] + tail call void @llvm.assume(i1 %12) + ret ptr %0 } ; Function Attrs: inlinehint nonlazybind uwtable diff --git a/bench/wasmtime-rs/optimized/xl3b912aq97wiv3.ll b/bench/wasmtime-rs/optimized/xl3b912aq97wiv3.ll index 7883c4ecd8c..e2869cfa240 100644 --- a/bench/wasmtime-rs/optimized/xl3b912aq97wiv3.ll +++ b/bench/wasmtime-rs/optimized/xl3b912aq97wiv3.ll @@ -777,7 +777,9 @@ _ZN4core3ops8function5FnMut8call_mut17h33940878987a20c1E.exit55.i.i: ; preds = % ; Function Attrs: inlinehint nonlazybind uwtable define internal void @"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$U$C$F$GT$$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hf0b4bd35edd4f090E"(ptr noalias noundef writeonly sret({ i64, [3 x i64] }) align 8 captures(none) dereferenceable(32) %0, ptr noalias noundef align 8 captures(none) dereferenceable(88) %1) unnamed_addr #3 personality ptr @rust_eh_personality { %3 = alloca { i64, [2 x i64] }, align 8 + %.sroa.5.i4.i = alloca [3 x i64], align 8 %4 = alloca { i64, [2 x i64] }, align 8 + %.sroa.5.i.i = alloca [3 x i64], align 8 %.sroa.5.i = alloca [3 x i64], align 8 tail call void @llvm.experimental.noalias.scope.decl(metadata !62) tail call void @llvm.experimental.noalias.scope.decl(metadata !65) @@ -804,7 +806,11 @@ define internal void @"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$ tail call void @llvm.experimental.noalias.scope.decl(metadata !74) %16 = load ptr, ptr %5, align 8, !alias.scope !77, !noalias !78, !noundef !4 %17 = icmp eq ptr %16, null - br i1 %17, label %"_ZN4core3ptr163drop_in_place$LT$core..option..Option$LT$wasmtime_cranelift..debug..transform..address_transform..AddressTransform..translate_ranges..TranslateRangesResult$GT$$GT$17h860f1e9e991283bbE.exit.i.i", label %18 + br i1 %17, label %_ZN4core3ops8function6FnOnce9call_once17h37b9991bff99944fE.exit.thread.thread.i.i, label %18 + +_ZN4core3ops8function6FnOnce9call_once17h37b9991bff99944fE.exit.thread.thread.i.i: ; preds = %15 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.5.i.i) + br label %"_ZN4core3ptr163drop_in_place$LT$core..option..Option$LT$wasmtime_cranelift..debug..transform..address_transform..AddressTransform..translate_ranges..TranslateRangesResult$GT$$GT$17h860f1e9e991283bbE.exit.i.i" 18: ; preds = %15 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %4), !noalias !82 @@ -818,6 +824,7 @@ define internal void @"_ZN114_$LT$core..iter..adapters..flatten..FlatMap$LT$I$C$ 23: ; preds = %18 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %4), !noalias !82 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.5.i.i) %24 = load ptr, ptr %19, align 8, !invariant.load !4, !noalias !83, !nonnull !4 invoke void %24(ptr noundef nonnull align 1 %16) to label %34 unwind label %25, !noalias !83 @@ -860,8 +867,10 @@ common.resume.i: ; preds = %.body.i10.i, %.body store i64 0, ptr %1, align 8, !alias.scope !86, !noalias !87 br label %common.resume.i -"_ZN4core3ptr163drop_in_place$LT$core..option..Option$LT$wasmtime_cranelift..debug..transform..address_transform..AddressTransform..translate_ranges..TranslateRangesResult$GT$$GT$17h860f1e9e991283bbE.exit.i.i": ; preds = %41, %34, %15 +"_ZN4core3ptr163drop_in_place$LT$core..option..Option$LT$wasmtime_cranelift..debug..transform..address_transform..AddressTransform..translate_ranges..TranslateRangesResult$GT$$GT$17h860f1e9e991283bbE.exit.i.i": ; preds = %41, %34, %_ZN4core3ops8function6FnOnce9call_once17h37b9991bff99944fE.exit.thread.thread.i.i store i64 0, ptr %1, align 8, !alias.scope !86, !noalias !87 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %5, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5.i.i, i64 24, i1 false), !noalias !87 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.5.i.i) br label %50 42: ; preds = %18 @@ -898,15 +907,19 @@ common.resume.i: ; preds = %.body.i10.i, %.body tail call void @llvm.experimental.noalias.scope.decl(metadata !97) %56 = load i64, ptr %55, align 8, !range !22, !alias.scope !99, !noalias !100, !noundef !4 %trunc.i4.i = trunc nuw i64 %56 to i1 - br i1 %trunc.i4.i, label %57, label %74 + %57 = getelementptr inbounds nuw i8, ptr %1, i64 40 + br i1 %trunc.i5.i, label %58, label %74 57: ; preds = %54 - %58 = getelementptr inbounds nuw i8, ptr %1, i64 40 tail call void @llvm.experimental.noalias.scope.decl(metadata !101) tail call void @llvm.experimental.noalias.scope.decl(metadata !104) - %59 = load ptr, ptr %58, align 8, !alias.scope !107, !noalias !108, !noundef !4 + %59 = load ptr, ptr %57, align 8, !alias.scope !107, !noalias !108, !noundef !4 %60 = icmp eq ptr %59, null - br i1 %60, label %"_ZN4core3ptr163drop_in_place$LT$core..option..Option$LT$wasmtime_cranelift..debug..transform..address_transform..AddressTransform..translate_ranges..TranslateRangesResult$GT$$GT$17h860f1e9e991283bbE.exit.i11.i", label %61 + br i1 %60, label %_ZN4core3ops8function6FnOnce9call_once17h37b9991bff99944fE.exit.thread.thread.i18.i, label %61 + +_ZN4core3ops8function6FnOnce9call_once17h37b9991bff99944fE.exit.thread.thread.i18.i: ; preds = %58 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.5.i4.i) + br label %"_ZN4core3ptr163drop_in_place$LT$core..option..Option$LT$wasmtime_cranelift..debug..transform..address_transform..AddressTransform..translate_ranges..TranslateRangesResult$GT$$GT$17h860f1e9e991283bbE.exit.i9.i" 61: ; preds = %57 call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %3), !noalias !111 @@ -936,6 +949,7 @@ _ZN4core3ops8function6FnOnce9call_once17h37b9991bff99944fE.exit.i19.i: ; preds = 75: ; preds = %61 call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %3), !noalias !111 + call void @llvm.lifetime.start.p0(i64 24, ptr nonnull %.sroa.5.i4.i) %76 = load ptr, ptr %63, align 8, !invariant.load !4, !noalias !112, !nonnull !4 invoke void %76(ptr noundef nonnull align 1 %59) to label %86 unwind label %77, !noalias !112 @@ -988,8 +1002,10 @@ _ZN4core3ops8function6FnOnce9call_once17h37b9991bff99944fE.exit.i19.i: ; preds = store i64 0, ptr %55, align 8, !alias.scope !99, !noalias !100 br label %common.resume.i -"_ZN4core3ptr163drop_in_place$LT$core..option..Option$LT$wasmtime_cranelift..debug..transform..address_transform..AddressTransform..translate_ranges..TranslateRangesResult$GT$$GT$17h860f1e9e991283bbE.exit.i11.i": ; preds = %93, %86, %57 +"_ZN4core3ptr163drop_in_place$LT$core..option..Option$LT$wasmtime_cranelift..debug..transform..address_transform..AddressTransform..translate_ranges..TranslateRangesResult$GT$$GT$17h860f1e9e991283bbE.exit.i11.i": ; preds = %93, %86, %_ZN4core3ops8function6FnOnce9call_once17h37b9991bff99944fE.exit.thread.thread.i18.i store i64 0, ptr %55, align 8, !alias.scope !99, !noalias !100 + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %57, ptr noundef nonnull align 8 dereferenceable(24) %.sroa.5.i4.i, i64 24, i1 false), !noalias !100 + call void @llvm.lifetime.end.p0(i64 24, ptr nonnull %.sroa.5.i4.i) br label %94 "_ZN4core3ptr163drop_in_place$LT$core..option..Option$LT$wasmtime_cranelift..debug..transform..address_transform..AddressTransform..translate_ranges..TranslateRangesResult$GT$$GT$17h860f1e9e991283bbE.exit.i": ; preds = %52 diff --git a/bench/wireshark/optimized/packet-dof.ll b/bench/wireshark/optimized/packet-dof.ll index 1aaae8733df..233e04505d7 100644 --- a/bench/wireshark/optimized/packet-dof.ll +++ b/bench/wireshark/optimized/packet-dof.ll @@ -7463,15 +7463,13 @@ DOFObjectID_GetBaseSize.exit.i87: ; preds = %.thread.i.i.i.i.i92 %170 = call fastcc ptr @DOFObjectID_Create_Unmarshal(ptr noundef nonnull %3, ptr noundef %167) %.not.i96 = icmp eq ptr %170, null %171 = load i32, ptr %3, align 4 - %.not6.i = icmp eq i32 %171, %168 - %spec.select.i = select i1 %.not6.i, ptr %170, ptr null + %.not6.i = icmp ne i32 %171, %168 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %3) #27 - %.not39121 = icmp eq ptr %spec.select.i, null - %.not39 = select i1 %.not.i96, i1 true, i1 %.not39121 + %.not39121 = select i1 %.not.i96, i1 true, i1 %.not6.i br i1 %.not39, label %174, label %172 172: ; preds = %.loopexit145 - %173 = tail call fastcc i32 @ObjectID_ToStringLength(ptr noundef %spec.select.i, ptr noundef %1) + %173 = tail call fastcc i32 @ObjectID_ToStringLength(ptr noundef %170, ptr noundef %1) br label %189 174: ; preds = %.loopexit145 @@ -8095,18 +8093,16 @@ DOFObjectID_GetAttributeAtIndex.exit: ; preds = %.lr.ph.i124, %.lr.p %241 = call fastcc ptr @DOFObjectID_Create_Unmarshal(ptr noundef nonnull %4, ptr noundef %.sroa.4.0.i) %.not.i130 = icmp eq ptr %241, null %242 = load i32, ptr %4, align 4 - %.not6.i = icmp eq i32 %242, %240 - %spec.select.i = select i1 %.not6.i, ptr %241, ptr null + %.not6.i = icmp ne i32 %242, %240 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %4) #27 - %.not96161 = icmp eq ptr %spec.select.i, null - %.not96 = select i1 %.not.i130, i1 true, i1 %.not96161 + %.not96161 = select i1 %.not.i130, i1 true, i1 %.not6.i br i1 %.not96, label %247, label %243 243: ; preds = %218 tail call void @increment_dissection_depth(ptr noundef %2) %244 = zext i32 %237 to i64 %245 = getelementptr i8, ptr %1, i64 %244 - %246 = tail call fastcc i32 @ObjectID_ToString(ptr noundef %spec.select.i, ptr noundef %245, ptr noundef %2) + %246 = tail call fastcc i32 @ObjectID_ToString(ptr noundef %241, ptr noundef %245, ptr noundef %2) tail call void @decrement_dissection_depth(ptr noundef %2) br label %251 diff --git a/bench/z3/optimized/api_params.ll b/bench/z3/optimized/api_params.ll index 90179c75407..0c11a557bd0 100644 --- a/bench/z3/optimized/api_params.ll +++ b/bench/z3/optimized/api_params.ll @@ -930,11 +930,9 @@ invoke.cont15: ; preds = %catch invoke.cont9: ; preds = %entry, %if.then %m_error_code.i = getelementptr inbounds nuw i8, ptr %c, i64 1560 store i32 0, ptr %m_error_code.i, align 8 - %cmp.i = icmp eq ptr %d, null %m_descrs.i = getelementptr inbounds nuw i8, ptr %d, i64 24 - %spec.select.i = select i1 %cmp.i, ptr null, ptr %m_descrs.i %m_params = getelementptr inbounds nuw i8, ptr %p, i64 24 - invoke void @_ZN10params_ref8validateERK12param_descrs(ptr noundef nonnull align 8 dereferenceable(8) %m_params, ptr noundef nonnull align 8 dereferenceable(8) %spec.select.i) + invoke void @_ZN10params_ref8validateERK12param_descrs(ptr noundef nonnull align 8 dereferenceable(8) %m_params, ptr noundef nonnull align 8 dereferenceable(8) %m_descrs.i) to label %invoke.cont11 unwind label %lpad1 invoke.cont11: ; preds = %invoke.cont9 @@ -1191,11 +1189,9 @@ invoke.cont21: ; preds = %catch invoke.cont9: ; preds = %if.then, %entry %m_error_code.i = getelementptr inbounds nuw i8, ptr %c, i64 1560 store i32 0, ptr %m_error_code.i, align 8 - %cmp.i = icmp eq ptr %p, null %m_descrs.i = getelementptr inbounds nuw i8, ptr %p, i64 24 - %spec.select.i = select i1 %cmp.i, ptr null, ptr %m_descrs.i store ptr %n, ptr %ref.tmp, align 8 - %call12 = invoke noundef i32 @_ZNK12param_descrs8get_kindERK6symbol(ptr noundef nonnull align 8 dereferenceable(8) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) + %call12 = invoke noundef i32 @_ZNK12param_descrs8get_kindERK6symbol(ptr noundef nonnull align 8 dereferenceable(8) %m_descrs.i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) to label %invoke.cont11 unwind label %lpad1 invoke.cont11: ; preds = %invoke.cont9 @@ -1305,10 +1301,8 @@ invoke.cont14: ; preds = %catch invoke.cont7: ; preds = %entry, %if.then %m_error_code.i = getelementptr inbounds nuw i8, ptr %c, i64 1560 store i32 0, ptr %m_error_code.i, align 8 - %cmp.i = icmp eq ptr %p, null %m_descrs.i = getelementptr inbounds nuw i8, ptr %p, i64 24 - %spec.select.i = select i1 %cmp.i, ptr null, ptr %m_descrs.i - %call10 = invoke noundef i32 @_ZNK12param_descrs4sizeEv(ptr noundef nonnull align 8 dereferenceable(8) %spec.select.i) + %spec.select.i = invoke noundef i32 @_ZNK12param_descrs4sizeEv(ptr noundef nonnull align 8 dereferenceable(8) %m_descrs.i) to label %invoke.cont9 unwind label %lpad1 invoke.cont9: ; preds = %invoke.cont7 @@ -1396,10 +1390,8 @@ invoke.cont33: ; preds = %catch invoke.cont7: ; preds = %entry, %if.then %m_error_code.i = getelementptr inbounds nuw i8, ptr %c, i64 1560 store i32 0, ptr %m_error_code.i, align 8 - %cmp.i = icmp eq ptr %p, null %m_descrs.i = getelementptr inbounds nuw i8, ptr %p, i64 24 - %spec.select.i = select i1 %cmp.i, ptr null, ptr %m_descrs.i - %call10 = invoke noundef i32 @_ZNK12param_descrs4sizeEv(ptr noundef nonnull align 8 dereferenceable(8) %spec.select.i) + %spec.select.i = invoke noundef i32 @_ZNK12param_descrs4sizeEv(ptr noundef nonnull align 8 dereferenceable(8) %m_descrs.i) to label %invoke.cont9 unwind label %lpad1 invoke.cont9: ; preds = %invoke.cont7 @@ -1415,7 +1407,7 @@ invoke.cont14: ; preds = %if.then11 br label %cleanup invoke.cont19: ; preds = %invoke.cont9 - %call22 = invoke ptr @_ZNK12param_descrs14get_param_nameEj(ptr noundef nonnull align 8 dereferenceable(8) %spec.select.i, i32 noundef %i) + %call22 = invoke ptr @_ZNK12param_descrs14get_param_nameEj(ptr noundef nonnull align 8 dereferenceable(8) %m_descrs.i, i32 noundef %i) to label %cleanup unwind label %lpad1 cleanup: ; preds = %invoke.cont19, %invoke.cont14 @@ -1506,11 +1498,9 @@ invoke.cont30: ; preds = %catch invoke.cont9: ; preds = %if.then, %entry %m_error_code.i = getelementptr inbounds nuw i8, ptr %c, i64 1560 store i32 0, ptr %m_error_code.i, align 8 - %cmp.i = icmp eq ptr %p, null %m_descrs.i = getelementptr inbounds nuw i8, ptr %p, i64 24 - %spec.select.i = select i1 %cmp.i, ptr null, ptr %m_descrs.i store ptr %s, ptr %ref.tmp, align 8 - %call12 = invoke noundef ptr @_ZNK12param_descrs9get_descrERK6symbol(ptr noundef nonnull align 8 dereferenceable(8) %spec.select.i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) + %call12 = invoke noundef ptr @_ZNK12param_descrs9get_descrERK6symbol(ptr noundef nonnull align 8 dereferenceable(8) %m_descrs.i, ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp) to label %invoke.cont11 unwind label %lpad1 invoke.cont11: ; preds = %invoke.cont9 @@ -1598,10 +1588,8 @@ invoke.cont7: ; preds = %if.end to label %invoke.cont11 unwind label %lpad8.loopexit.split-lp invoke.cont11: ; preds = %invoke.cont7 - %cmp.i = icmp eq ptr %p, null %m_descrs.i = getelementptr inbounds nuw i8, ptr %p, i64 24 - %spec.select.i = select i1 %cmp.i, ptr null, ptr %m_descrs.i - %call14 = invoke noundef i32 @_ZNK12param_descrs4sizeEv(ptr noundef nonnull align 8 dereferenceable(8) %spec.select.i) + %spec.select.i = invoke noundef i32 @_ZNK12param_descrs4sizeEv(ptr noundef nonnull align 8 dereferenceable(8) %m_descrs.i) to label %for.cond.preheader unwind label %lpad8.loopexit.split-lp for.cond.preheader: ; preds = %invoke.cont11 @@ -1630,7 +1618,7 @@ lpad8.loopexit.split-lp: ; preds = %invoke.cont7, %invo br label %ehcleanup invoke.cont20: ; preds = %for.body, %if.then16 - %call23 = invoke ptr @_ZNK12param_descrs14get_param_nameEj(ptr noundef nonnull align 8 dereferenceable(8) %spec.select.i, i32 noundef %i.028) + %call23 = invoke ptr @_ZNK12param_descrs14get_param_nameEj(ptr noundef nonnull align 8 dereferenceable(8) %m_descrs.i, i32 noundef %i.028) to label %invoke.cont22 unwind label %lpad8.loopexit invoke.cont22: ; preds = %invoke.cont20 diff --git a/bench/z3/optimized/dl_sieve_relation.ll b/bench/z3/optimized/dl_sieve_relation.ll index 99ac31df96b..ae65e9c6446 100644 --- a/bench/z3/optimized/dl_sieve_relation.ll +++ b/bench/z3/optimized/dl_sieve_relation.ll @@ -5153,7 +5153,7 @@ land.end: ; preds = %if.end.land.end_cri br i1 %cmp.i91, label %cond.true29, label %cond.end32 cond.true29: ; preds = %land.end - %m_inner.i = getelementptr inbounds nuw i8, ptr %tgt.cond, i64 64 + %m_inner.i = getelementptr inbounds nuw i8, ptr %tgt, i64 64 %8 = load ptr, ptr %m_inner.i, align 8 br i1 %cmp.i3893, label %cond.true34, label %cond.end37 @@ -5196,7 +5196,7 @@ cond.true40: ; preds = %cond.end37.thread, %cond106110124135 = phi ptr [ %cond106110125, %cond.true34 ], [ %tgt.cond, %cond.end37 ], [ %.cond, %cond.end37.thread ] %cond22107108126133 = phi ptr [ %src, %cond.true34 ], [ null, %cond.end37 ], [ null, %cond.end37.thread ] %cond-lvalue128131 = phi ptr [ %cond-lvalue129, %cond.true34 ], [ %8, %cond.end37 ], [ %tgt, %cond.end37.thread ] - %m_inner.i43 = getelementptr inbounds nuw i8, ptr %12, i64 64 + %m_inner.i43 = getelementptr inbounds nuw i8, ptr %delta, i64 64 %13 = load ptr, ptr %m_inner.i43, align 8 br label %cond.end43 @@ -5332,16 +5332,15 @@ if.else: ; preds = %cond.end43 br i1 %cmp.i92105112122136, label %land.lhs.true63, label %lor.lhs.false65 land.lhs.true63: ; preds = %if.else - %m_ignored_cols.i = getelementptr inbounds nuw i8, ptr %cond106110124134, i64 56 + %m_ignored_cols.i = getelementptr inbounds nuw i8, ptr %tgt, i64 56 %36 = load ptr, ptr %m_ignored_cols.i, align 8 %cmp.i.i71 = icmp eq ptr %36, null br i1 %cmp.i.i71, label %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread, label %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit land.lhs.true63.thread: ; preds = %cond.true29.thread, %cond.end37 %37 = phi ptr [ %delta., %cond.end37 ], [ null, %cond.true29.thread ] - %cond106111242249 = phi ptr [ %tgt.cond, %cond.end37 ], [ %tgt, %cond.true29.thread ] %38 = phi ptr [ %8, %cond.end37 ], [ %9, %cond.true29.thread ] - %m_ignored_cols.i219 = getelementptr inbounds nuw i8, ptr %cond106111242249, i64 56 + %m_ignored_cols.i219 = getelementptr inbounds nuw i8, ptr %tgt, i64 56 %39 = load ptr, ptr %m_ignored_cols.i219, align 8 %cmp.i.i71220 = icmp eq ptr %39, null br i1 %cmp.i.i71220, label %lor.lhs.false69, label %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit @@ -5353,8 +5352,7 @@ _ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit: ; preds = %land.lhs.true %40 = phi ptr [ %39, %land.lhs.true63.thread ], [ %36, %land.lhs.true63 ] %cond44167175229 = phi ptr [ %delta, %land.lhs.true63.thread ], [ %cond44, %land.lhs.true63 ] %cond-lvalue128130165177227 = phi ptr [ %38, %land.lhs.true63.thread ], [ %cond-lvalue128130, %land.lhs.true63 ] - %cond22107108126132163179225 = phi ptr [ null, %land.lhs.true63.thread ], [ %cond22107108126132, %land.lhs.true63 ] - %cmp.i3894104114120138160182223 = phi i1 [ false, %land.lhs.true63.thread ], [ %cmp.i3894104114120138, %land.lhs.true63 ] + %cond22107108126132163179225 = phi i1 [ false, %land.lhs.true63.thread ], [ %cmp.i3894104114120138, %land.lhs.true63 ] %41 = phi ptr [ %37, %land.lhs.true63.thread ], [ %14, %land.lhs.true63 ] %cond-lvalue38142159184221 = phi ptr [ %src, %land.lhs.true63.thread ], [ %cond-lvalue38142, %land.lhs.true63 ] %arrayidx.i.i72 = getelementptr inbounds i8, ptr %40, i64 -4 @@ -5365,19 +5363,17 @@ _ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit: ; preds = %land.lhs.true lor.lhs.false65: ; preds = %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit, %if.else %cond-lvalue38142159183 = phi ptr [ %cond-lvalue38142159184221, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit ], [ %cond-lvalue38142, %if.else ] %43 = phi ptr [ %41, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit ], [ %14, %if.else ] - %cmp.i3894104114120138160181 = phi i1 [ %cmp.i3894104114120138160182223, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit ], [ %cmp.i3894104114120138, %if.else ] - %cond22107108126132163178 = phi ptr [ %cond22107108126132163179225, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit ], [ %cond22107108126132, %if.else ] - %cond-lvalue128130165176 = phi ptr [ %cond-lvalue128130165177227, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit ], [ %cond-lvalue128130, %if.else ] - %cond44167174 = phi ptr [ %cond44167175229, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit ], [ %cond44, %if.else ] - br i1 %cmp.i3894104114120138160181, label %land.lhs.true67, label %lor.lhs.false69 + %cmp.i3894104114120138160181 = phi i1 [ %cmp.i3894104114120138160177210, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit ], [ %cmp.i3894104114120138, %if.else ] + %cond22107108126132163178 = phi ptr [ %cond-lvalue128130163175212, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit ], [ %cond-lvalue128130, %if.else ] + %cond-lvalue128130165176 = phi ptr [ %cond44165173214, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit ], [ %cond44, %if.else ] + br i1 %cmp.i3894104114120138160176, label %land.lhs.true67, label %lor.lhs.false69 land.lhs.true67: ; preds = %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread, %lor.lhs.false65 - %cond44167174196 = phi ptr [ %cond44, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %cond44167174, %lor.lhs.false65 ] - %cond-lvalue128130165176195 = phi ptr [ %cond-lvalue128130, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %cond-lvalue128130165176, %lor.lhs.false65 ] - %cond22107108126132163178194 = phi ptr [ %cond22107108126132, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %cond22107108126132163178, %lor.lhs.false65 ] + %cond44167174196 = phi ptr [ %cond44, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %cond44165172, %lor.lhs.false65 ] + %cond-lvalue128130165176195 = phi ptr [ %cond-lvalue128130, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %cond-lvalue128130163174, %lor.lhs.false65 ] %44 = phi ptr [ %14, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %43, %lor.lhs.false65 ] %cond-lvalue38142159183193 = phi ptr [ %cond-lvalue38142, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %cond-lvalue38142159183, %lor.lhs.false65 ] - %m_ignored_cols.i73 = getelementptr inbounds nuw i8, ptr %cond22107108126132163178194, i64 56 + %m_ignored_cols.i73 = getelementptr inbounds nuw i8, ptr %src, i64 56 %45 = load ptr, ptr %m_ignored_cols.i73, align 8 %cmp.i.i74 = icmp eq ptr %45, null br i1 %cmp.i.i74, label %lor.lhs.false69, label %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit78 @@ -5389,15 +5385,15 @@ _ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit78: ; preds = %land.lhs.tr br i1 %cmp3.i.i77, label %lor.lhs.false69, label %return lor.lhs.false69: ; preds = %land.lhs.true63.thread, %cond.end37.thread, %land.lhs.true67, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit78, %lor.lhs.false65 - %cond44167174192 = phi ptr [ %cond44167174196, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit78 ], [ %cond44167174, %lor.lhs.false65 ], [ %cond44, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %cond44167174196, %land.lhs.true67 ], [ %delta, %cond.end37.thread ], [ %delta, %land.lhs.true63.thread ] - %cond-lvalue128130165176191 = phi ptr [ %cond-lvalue128130165176195, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit78 ], [ %cond-lvalue128130165176, %lor.lhs.false65 ], [ %cond-lvalue128130, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %cond-lvalue128130165176195, %land.lhs.true67 ], [ %tgt, %cond.end37.thread ], [ %38, %land.lhs.true63.thread ] + %cond44167174192 = phi ptr [ %cond44167174196, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit78 ], [ %cond44165172, %lor.lhs.false65 ], [ %cond44, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %cond44167174196, %land.lhs.true67 ], [ %delta, %cond.end37.thread ], [ %delta, %land.lhs.true63.thread ] + %cond-lvalue128130165176191 = phi ptr [ %cond-lvalue128130165176195, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit78 ], [ %cond-lvalue128130163174, %lor.lhs.false65 ], [ %cond-lvalue128130, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %cond-lvalue128130165176195, %land.lhs.true67 ], [ %tgt, %cond.end37.thread ], [ %38, %land.lhs.true63.thread ] %47 = phi ptr [ %44, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit78 ], [ %43, %lor.lhs.false65 ], [ %14, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %44, %land.lhs.true67 ], [ %delta., %cond.end37.thread ], [ %37, %land.lhs.true63.thread ] %cond-lvalue38142159183190 = phi ptr [ %cond-lvalue38142159183193, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit78 ], [ %cond-lvalue38142159183, %lor.lhs.false65 ], [ %cond-lvalue38142, %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit.thread ], [ %cond-lvalue38142159183193, %land.lhs.true67 ], [ %src, %cond.end37.thread ], [ %src, %land.lhs.true63.thread ] %tobool70.not = icmp eq ptr %47, null br i1 %tobool70.not, label %if.end75, label %land.lhs.true71 land.lhs.true71: ; preds = %lor.lhs.false69 - %m_ignored_cols.i79 = getelementptr inbounds nuw i8, ptr %47, i64 56 + %m_ignored_cols.i79 = getelementptr inbounds nuw i8, ptr %delta, i64 56 %48 = load ptr, ptr %m_ignored_cols.i79, align 8 %cmp.i.i80 = icmp eq ptr %48, null br i1 %cmp.i.i80, label %if.end75, label %_ZNK7datalog14sieve_relation17no_sieved_columnsEv.exit84 @@ -7952,49 +7948,40 @@ entry: %3 = load i32, ptr %m_special_type.i12, align 8 %cmp.i13 = icmp eq i32 %3, 4 %tobool.not = icmp eq ptr %delta, null - br i1 %tobool.not, label %land.end.thread, label %land.end - -land.end.thread: ; preds = %entry - %cond1419 = select i1 %cmp.i13, ptr %src, ptr null - br label %6 + br i1 %tobool.not, label %land.end, label %land.end land.end: ; preds = %entry %m_plugin.i14 = getelementptr inbounds nuw i8, ptr %delta, i64 8 %4 = load ptr, ptr %m_plugin.i14, align 8 %m_special_type.i15 = getelementptr inbounds nuw i8, ptr %4, i64 32 %5 = load i32, ptr %m_special_type.i15, align 8 - %.fr = freeze i32 %5 - %cmp.i16 = icmp eq i32 %.fr, 4 - %cond14 = select i1 %cmp.i13, ptr %src, ptr null - %spec.select = select i1 %cmp.i16, ptr %delta, ptr null - br label %6 - -6: ; preds = %land.end, %land.end.thread - %cond1421 = phi ptr [ %cond1419, %land.end.thread ], [ %cond14, %land.end ] - %7 = phi i1 [ false, %land.end.thread ], [ %cmp.i16, %land.end ] - %8 = phi ptr [ null, %land.end.thread ], [ %spec.select, %land.end ] + %.fr = icmp eq i32 %5, 4 + br label %land.end + +land.end:; preds = %land.rhs, %entry + %6 = phi i1 [ false, %entry ], [ %.fr, %land.rhs ] br i1 %cmp.i, label %cond.true21, label %cond.end24 -cond.true21: ; preds = %6 +cond.true21: ; preds = %land.end %m_inner.i = getelementptr inbounds nuw i8, ptr %tgt, i64 64 %9 = load ptr, ptr %m_inner.i, align 8 br label %cond.end24 -cond.end24: ; preds = %6, %cond.true21 - %cond-lvalue = phi ptr [ %9, %cond.true21 ], [ %tgt, %6 ] +cond.end24: ; preds = %land.end, %cond.true21 + %cond-lvalue = phi ptr [ %9, %cond.true21 ], [ %tgt, %land.end ] br i1 %cmp.i13, label %cond.true26, label %cond.end29 cond.true26: ; preds = %cond.end24 - %m_inner.i17 = getelementptr inbounds nuw i8, ptr %cond1421, i64 64 + %m_inner.i17 = getelementptr inbounds nuw i8, ptr %src, i64 64 %10 = load ptr, ptr %m_inner.i17, align 8 br label %cond.end29 cond.end29: ; preds = %cond.end24, %cond.true26 %cond-lvalue30 = phi ptr [ %10, %cond.true26 ], [ %src, %cond.end24 ] - br i1 %7, label %cond.true32, label %cond.end35 + br i1 %6, label %cond.true32, label %cond.end35 cond.true32: ; preds = %cond.end29 - %m_inner.i18 = getelementptr inbounds nuw i8, ptr %8, i64 64 + %m_inner.i18 = getelementptr inbounds nuw i8, ptr %delta, i64 64 %11 = load ptr, ptr %m_inner.i18, align 8 br label %cond.end35 @@ -8005,7 +7992,7 @@ cond.end35: ; preds = %cond.end29, %cond.t %vtable = load ptr, ptr %12, align 8 %vfn = getelementptr inbounds nuw i8, ptr %vtable, i64 16 %13 = load ptr, ptr %vfn, align 8 - tail call void %13(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(28) %cond-lvalue, ptr noundef nonnull align 8 dereferenceable(28) %cond-lvalue30, ptr noundef %cond36) + tail call void %11(ptr noundef nonnull align 8 dereferenceable(8) %12, ptr noundef nonnull align 8 dereferenceable(28) %cond-lvalue, ptr noundef nonnull align 8 dereferenceable(28) %cond-lvalue30, ptr noundef %cond36) ret void } diff --git a/bench/z3/optimized/smt_context.ll b/bench/z3/optimized/smt_context.ll index 6219eb60840..54ef2935970 100644 --- a/bench/z3/optimized/smt_context.ll +++ b/bench/z3/optimized/smt_context.ll @@ -31285,11 +31285,8 @@ land.lhs.true14: ; preds = %land.lhs.true if.end17: ; preds = %land.lhs.true14, %land.lhs.true, %sw.bb8 %m_th_var_list.i = getelementptr inbounds nuw i8, ptr %0, i64 64 %bf.load.i.i = load i32, ptr %m_th_var_list.i, align 8 - %cmp.i = icmp ugt i32 %bf.load.i.i, -257 - %cond.i = select i1 %cmp.i, ptr null, ptr %m_th_var_list.i - %bf.load.i21 = load i32, ptr %cond.i, align 8 - %bf.load.i21.fr = freeze i32 %bf.load.i21 - %bf.shl.i = shl i32 %bf.load.i21.fr, 24 + %cmp.i = freeze i32 %bf.load.i.i + %cond.i = shl i32 %cmp.i, 24 %bf.ashr.i = ashr exact i32 %bf.shl.i, 24 %m_parents.i.i = getelementptr inbounds nuw i8, ptr %0, i64 56 %11 = load ptr, ptr %m_parents.i.i, align 8 @@ -31430,7 +31427,7 @@ for.end: ; preds = %for.inc, %for.inc.u %idxprom.i.i.i = zext i32 %bf.ashr.i to i64 %arrayidx.i.i.i = getelementptr inbounds nuw ptr, ptr %30, i64 %idxprom.i.i.i %.then.val.i.i = load ptr, ptr %arrayidx.i.i.i, align 8 - %bf.load.i35 = load i32, ptr %cond.i, align 8 + %bf.load.i35 = load i32, ptr %m_th_var_list.i, align 8 %bf.ashr.i36 = ashr i32 %bf.load.i35, 8 %vtable = load ptr, ptr %.then.val.i.i, align 8 %vfn = getelementptr inbounds nuw i8, ptr %vtable, i64 160 diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..49f1e56e888 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/128111 export COMPTIME_MODE=0 # Please rebase manually