diff --git a/bench/arrow/optimized/row_internal.cc.ll b/bench/arrow/optimized/row_internal.cc.ll index 794cdccf800..2162a73a656 100644 --- a/bench/arrow/optimized/row_internal.cc.ll +++ b/bench/arrow/optimized/row_internal.cc.ll @@ -495,9 +495,9 @@ land.lhs.true: ; preds = %for.body46 %44 = load i32, ptr %fixed_length, align 4 %45 = tail call range(i32 1, 33) i32 @llvm.ctpop.i32(i32 %44) %or.cond = icmp ult i32 %45, 2 - br i1 %or.cond, label %if.end, label %lor.lhs.false.i + br i1 %or.cond, label %if.end, label %_ZN5arrow7compute16RowTableMetadata21padding_for_alignmentEjiRKNS0_17KeyColumnMetadataE.exit -lor.lhs.false.i: ; preds = %land.lhs.true +_ZN5arrow7compute16RowTableMetadata21padding_for_alignmentEjiRKNS0_17KeyColumnMetadataE.exit: ; preds = %land.lhs.true %46 = load i32, ptr %string_alignment, align 4 %sub.i.i = sub nsw i32 0, %offset_within_row.0120 %sub4.i.i = add nsw i32 %46, -1 @@ -505,8 +505,8 @@ lor.lhs.false.i: ; preds = %land.lhs.true %add = add i32 %and.i.i, %offset_within_row.0120 br label %if.end -if.end: ; preds = %lor.lhs.false.i, %land.lhs.true, %for.body46 - %offset_within_row.1 = phi i32 [ %add, %lor.lhs.false.i ], [ %offset_within_row.0120, %land.lhs.true ], [ %offset_within_row.0120, %for.body46 ] +if.end: ; preds = %_ZN5arrow7compute16RowTableMetadata21padding_for_alignmentEjiRKNS0_17KeyColumnMetadataE.exit, %land.lhs.true, %for.body46 + %offset_within_row.1 = phi i32 [ %add, %_ZN5arrow7compute16RowTableMetadata21padding_for_alignmentEjiRKNS0_17KeyColumnMetadataE.exit ], [ %offset_within_row.0120, %land.lhs.true ], [ %offset_within_row.0120, %for.body46 ] %47 = load ptr, ptr %column_offsets, align 8 %add.ptr.i106 = getelementptr inbounds i32, ptr %47, i64 %indvars.iv131 store i32 %offset_within_row.1, ptr %add.ptr.i106, align 4 diff --git a/bench/chibicc/optimized/tokenize.ll b/bench/chibicc/optimized/tokenize.ll index 25f0256f334..8235df85de9 100644 --- a/bench/chibicc/optimized/tokenize.ll +++ b/bench/chibicc/optimized/tokenize.ll @@ -1756,8 +1756,7 @@ for.body: ; preds = %entry, %for.cond br i1 %cmp.i, label %if.then, label %for.cond if.then: ; preds = %for.body - %call4 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #29 - %conv5 = trunc i64 %call4 to i32 + %conv5 = trunc i64 %call.i to i32 br label %return for.end: ; preds = %for.cond diff --git a/bench/cjson/optimized/cJSON.c.ll b/bench/cjson/optimized/cJSON.c.ll index d54cd1f3829..bd032a18768 100644 --- a/bench/cjson/optimized/cJSON.c.ll +++ b/bench/cjson/optimized/cJSON.c.ll @@ -285,30 +285,29 @@ define ptr @cJSON_SetValuestring(ptr noundef %0, ptr noundef readonly %1) local_ br i1 %19, label %cJSON_strdup.exit.thread, label %20 20: ; preds = %18 - %21 = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %1) #32 - %22 = add i64 %21, 1 - %23 = load ptr, ptr @global_hooks, align 8 - %24 = tail call ptr %23(i64 noundef %22) #31 - %25 = icmp eq ptr %24, null - br i1 %25, label %cJSON_strdup.exit.thread, label %26 - -26: ; preds = %20 - tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %24, ptr nonnull readonly align 1 %1, i64 %22, i1 false) - %27 = load ptr, ptr %9, align 8 - %.not23 = icmp eq ptr %27, null - br i1 %.not23, label %30, label %28 - -28: ; preds = %26 - %29 = load ptr, ptr getelementptr inbounds (i8, ptr @global_hooks, i64 8), align 8 - tail call void %29(ptr noundef nonnull %27) #31 - br label %30 - -30: ; preds = %28, %26 - store ptr %24, ptr %9, align 8 + %21 = add i64 %13, 1 + %22 = load ptr, ptr @global_hooks, align 8 + %23 = tail call ptr %22(i64 noundef %21) #31 + %24 = icmp eq ptr %23, null + br i1 %24, label %cJSON_strdup.exit.thread, label %25 + +25: ; preds = %20 + tail call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %23, ptr nonnull readonly align 1 %1, i64 %21, i1 false) + %26 = load ptr, ptr %9, align 8 + %.not23 = icmp eq ptr %26, null + br i1 %.not23, label %29, label %27 + +27: ; preds = %25 + %28 = load ptr, ptr getelementptr inbounds (i8, ptr @global_hooks, i64 8), align 8 + tail call void %28(ptr noundef nonnull %26) #31 + br label %29 + +29: ; preds = %27, %25 + store ptr %23, ptr %9, align 8 br label %cJSON_strdup.exit.thread -cJSON_strdup.exit.thread: ; preds = %20, %18, %8, %2, %4, %30, %15 - %.0 = phi ptr [ %17, %15 ], [ %24, %30 ], [ null, %4 ], [ null, %2 ], [ null, %8 ], [ null, %18 ], [ null, %20 ] +cJSON_strdup.exit.thread: ; preds = %20, %18, %8, %2, %4, %29, %15 + %.0 = phi ptr [ %17, %15 ], [ %23, %29 ], [ null, %4 ], [ null, %2 ], [ null, %8 ], [ null, %18 ], [ null, %20 ] ret ptr %.0 } diff --git a/bench/clamav/optimized/sigtool.c.ll b/bench/clamav/optimized/sigtool.c.ll index 744e351c4a3..ba978a3172d 100644 --- a/bench/clamav/optimized/sigtool.c.ll +++ b/bench/clamav/optimized/sigtool.c.ll @@ -2171,7 +2171,7 @@ define internal fastcc range(i32 -1, 51) i32 @build(ptr noundef nonnull %0) unna 27: ; preds = %23 tail call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.157) #25 - br label %512 + br label %513 28: ; preds = %23, %1 %29 = tail call ptr @optget(ptr noundef nonnull %0, ptr noundef nonnull @.str.158) #25 @@ -2194,7 +2194,7 @@ define internal fastcc range(i32 -1, 51) i32 @build(ptr noundef nonnull %0) unna 39: ; preds = %36 tail call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.160) #25 - br label %512 + br label %513 40: ; preds = %36 %41 = tail call ptr @optget(ptr noundef nonnull %0, ptr noundef nonnull @.str.23) #25 @@ -2240,7 +2240,7 @@ getdbname.exit: ; preds = %49, %51 62: ; preds = %getdbname.exit call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.163) #25 - br label %512 + br label %513 63: ; preds = %getdbname.exit %64 = call i32 @cl_load(ptr noundef nonnull @.str.134, ptr noundef nonnull %61, ptr noundef nonnull %7, i32 noundef 24602) #25 @@ -2251,7 +2251,7 @@ getdbname.exit: ; preds = %49, %51 %66 = call ptr @cl_strerror(i32 noundef %64) #25 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.164, ptr noundef %66) #25 %67 = call i32 @cl_engine_free(ptr noundef nonnull %61) #25 - br label %512 + br label %513 68: ; preds = %63 %69 = call i32 @cl_engine_free(ptr noundef nonnull %61) #25 @@ -2279,7 +2279,7 @@ getdbname.exit: ; preds = %49, %51 77: ; preds = %73 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.166) #25 - br label %512 + br label %513 .lr.ph: ; preds = %.preheader394, %96 %78 = phi ptr [ %97, %96 ], [ %76, %.preheader394 ] @@ -2306,7 +2306,7 @@ getdbname.exit: ; preds = %49, %51 88: ; preds = %83 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.168) #25 %89 = call i32 @closedir(ptr noundef nonnull %74) - br label %512 + br label %513 90: ; preds = %83 %91 = call noalias ptr @strdup(ptr noundef nonnull %81) #25 @@ -2332,7 +2332,7 @@ getdbname.exit: ; preds = %49, %51 ._crit_edge409: ; preds = %.lr.ph408, %.preheader393 call void @free(ptr noundef nonnull %87) #25 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.168) #25 - br label %512 + br label %513 96: ; preds = %90, %80, %.lr.ph %.3292 = phi ptr [ %.2291404, %80 ], [ %.2291404, %.lr.ph ], [ %87, %90 ] @@ -2368,7 +2368,7 @@ getdbname.exit: ; preds = %49, %51 .thread563: ; preds = %.thread, %105 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.170) #25 - br label %512 + br label %513 106: ; preds = %105 %107 = add i32 %.3, 1 @@ -2380,7 +2380,7 @@ getdbname.exit: ; preds = %49, %51 111: ; preds = %106 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.168) #25 - br label %512 + br label %513 112: ; preds = %106 %113 = call noalias dereferenceable_or_null(9) ptr @strdup(ptr noundef nonnull @.str.169) #25 @@ -2402,7 +2402,7 @@ getdbname.exit: ; preds = %49, %51 118: ; preds = %.preheader390 call void @free(ptr noundef nonnull %110) #25 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.168) #25 - br label %512 + br label %513 119: ; preds = %112 %120 = call i32 @countlines(ptr noundef nonnull @.str.169) #25 @@ -2495,7 +2495,7 @@ getdbname.exit: ; preds = %49, %51 ._crit_edge415: ; preds = %.lr.ph414, %148 call void @free(ptr noundef %.1290) #25 - br label %512 + br label %513 151: ; preds = %138, %144, %71 %.0289 = phi ptr [ %.1290, %144 ], [ %.1290, %138 ], [ null, %71 ] @@ -2553,7 +2553,7 @@ getdbname.exit: ; preds = %49, %51 ._crit_edge420: ; preds = %.lr.ph419, %170 call void @free(ptr noundef %.0289) #25 - br label %512 + br label %513 173: ; preds = %151 %174 = call ptr @freshdbdir() #25 @@ -2649,7 +2649,7 @@ getdbname.exit: ; preds = %49, %51 ._crit_edge460: ; preds = %.lr.ph459, %210 call void @free(ptr noundef %.0289) #25 - br label %512 + br label %513 213: ; preds = %202, %207, %.critedge %.0299 = phi i32 [ %197, %.critedge ], [ 0, %202 ], [ 0, %207 ] @@ -2687,8 +2687,7 @@ getdbname.exit: ; preds = %49, %51 %238 = getelementptr inbounds i8, ptr %11, i64 %237 %239 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %238, ptr noundef nonnull dereferenceable(1) @.str.193, i32 noundef %236) #25 %240 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %11) #31 - %strlen = call i64 @strlen(ptr nonnull dereferenceable(1) %11) - %endptr = getelementptr inbounds i8, ptr %11, i64 %strlen + %endptr = getelementptr inbounds i8, ptr %11, i64 %240 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(5) %endptr, ptr noundef nonnull align 1 dereferenceable(5) @.str.195, i64 5, i1 false) %241 = call ptr @getenv(ptr noundef nonnull @.str.196) #25 %.not357 = icmp eq ptr %241, null @@ -2709,7 +2708,7 @@ getdbname.exit: ; preds = %49, %51 248: ; preds = %245 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.199) #25 call void @free(ptr noundef %.0289) #25 - br label %512 + br label %513 249: ; preds = %245, %242 %250 = call ptr @strcat(ptr noundef nonnull dereferenceable(1) %11, ptr noundef nonnull dereferenceable(1) %13) #25 @@ -2929,7 +2928,7 @@ getdbname.exit: ; preds = %49, %51 ._crit_edge456: ; preds = %.lr.ph455, %329 call void @free(ptr noundef %.0289) #25 - br label %512 + br label %513 332: ; preds = %327, %.loopexit.i %333 = call i32 @fclose(ptr noundef nonnull %262) @@ -2964,7 +2963,7 @@ getdbname.exit: ; preds = %49, %51 ._crit_edge452: ; preds = %.lr.ph451, %337 call void @free(ptr noundef %.0289) #25 - br label %512 + br label %513 340: ; preds = %332 %341 = call ptr @gzopen(ptr noundef nonnull %336, ptr noundef nonnull @.str.203) #25 @@ -2991,7 +2990,7 @@ getdbname.exit: ; preds = %49, %51 ._crit_edge448: ; preds = %.lr.ph447, %343 call void @free(ptr noundef %.0289) #25 - br label %512 + br label %513 346: ; preds = %340 %347 = call i32 @tar_addfile(i32 noundef -1, ptr noundef nonnull %341, ptr noundef nonnull @.str.159) #25 @@ -3020,7 +3019,7 @@ getdbname.exit: ; preds = %49, %51 ._crit_edge444: ; preds = %.lr.ph443, %349 call void @free(ptr noundef %.0289) #25 - br label %512 + br label %513 354: ; preds = %346 %or.cond5 = or i1 %.not331, %.not332 @@ -3055,7 +3054,7 @@ getdbname.exit: ; preds = %49, %51 ._crit_edge424: ; preds = %.lr.ph423, %359 call void @free(ptr noundef %.0289) #25 - br label %512 + br label %513 364: ; preds = %356, %355 br i1 %.not54.i, label %.loopexit389, label %.lr.ph427.preheader @@ -3094,7 +3093,7 @@ getdbname.exit: ; preds = %49, %51 376: ; preds = %373 call void @free(ptr noundef nonnull %.0289) #25 - br label %512 + br label %513 .loopexit389: ; preds = %365, %364, %354 %or.cond7 = or i1 %.not332, %57 @@ -3134,7 +3133,7 @@ getdbname.exit: ; preds = %49, %51 ._crit_edge432: ; preds = %.lr.ph431, %383 call void @free(ptr noundef %.0289) #25 - br label %512 + br label %513 388: ; preds = %.preheader388, %380 %indvars.iv.next515 = add nuw nsw i64 %indvars.iv514, 1 @@ -3170,7 +3169,7 @@ getdbname.exit: ; preds = %49, %51 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.208, ptr noundef %336) #25 %396 = call i32 @unlink(ptr noundef %336) #25 call void @free(ptr noundef %336) #25 - br label %512 + br label %513 397: ; preds = %._crit_edge436 %398 = call ptr @cli_hashstream(ptr noundef nonnull %394, ptr noundef nonnull %10, i32 noundef 1) #25 @@ -3182,7 +3181,7 @@ getdbname.exit: ; preds = %49, %51 %400 = call i32 @fclose(ptr noundef nonnull %394) %401 = call i32 @unlink(ptr noundef %336) #25 call void @free(ptr noundef %336) #25 - br label %512 + br label %513 402: ; preds = %397 call void @rewind(ptr noundef nonnull %394) @@ -3209,7 +3208,7 @@ getdbname.exit: ; preds = %49, %51 %415 = call i32 @fclose(ptr noundef nonnull %394) %416 = call i32 @unlink(ptr noundef %336) #25 call void @free(ptr noundef %336) #25 - br label %512 + br label %513 417: ; preds = %409 %418 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %11) #31 @@ -3235,183 +3234,183 @@ getdbname.exit: ; preds = %49, %51 br i1 %431, label %.lr.ph438, label %._crit_edge439 .lr.ph438: ; preds = %424, %.lr.ph438 - %strlen375 = call i64 @strlen(ptr nonnull dereferenceable(1) %11) - %endptr376 = getelementptr inbounds i8, ptr %11, i64 %strlen375 + %432 = phi i64 [ %433, %.lr.ph438 ], [ %430, %424 ] + %endptr376 = getelementptr inbounds i8, ptr %11, i64 %432 store i16 32, ptr %endptr376, align 1 - %432 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %11) #31 - %433 = icmp ult i64 %432, 512 - br i1 %433, label %.lr.ph438, label %._crit_edge439 + %433 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %11) #31 + %434 = icmp ult i64 %433, 512 + br i1 %434, label %.lr.ph438, label %._crit_edge439 ._crit_edge439: ; preds = %.lr.ph438, %424 - %434 = call ptr @optget(ptr noundef nonnull %0, ptr noundef nonnull @.str.23) #25 - %435 = getelementptr inbounds i8, ptr %434, i64 16 - %436 = load ptr, ptr %435, align 8 - %437 = call noalias ptr @fopen(ptr noundef %436, ptr noundef nonnull @.str.214) - %.not364 = icmp eq ptr %437, null - br i1 %.not364, label %438, label %441 - -438: ; preds = %._crit_edge439 - call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.215, ptr noundef %436) #25 - %439 = call i32 @fclose(ptr noundef nonnull %394) - %440 = call i32 @unlink(ptr noundef %336) #25 + %435 = call ptr @optget(ptr noundef nonnull %0, ptr noundef nonnull @.str.23) #25 + %436 = getelementptr inbounds i8, ptr %435, i64 16 + %437 = load ptr, ptr %436, align 8 + %438 = call noalias ptr @fopen(ptr noundef %437, ptr noundef nonnull @.str.214) + %.not364 = icmp eq ptr %438, null + br i1 %.not364, label %439, label %442 + +439: ; preds = %._crit_edge439 + call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.215, ptr noundef %437) #25 + %440 = call i32 @fclose(ptr noundef nonnull %394) + %441 = call i32 @unlink(ptr noundef %336) #25 call void @free(ptr noundef %336) #25 - br label %512 + br label %513 -441: ; preds = %._crit_edge439 - %442 = call i64 @fwrite(ptr noundef nonnull %11, i64 noundef 1, i64 noundef 512, ptr noundef nonnull %437) - %.not365 = icmp eq i64 %442, 512 - br i1 %.not365, label %.preheader, label %443 +442: ; preds = %._crit_edge439 + %443 = call i64 @fwrite(ptr noundef nonnull %11, i64 noundef 1, i64 noundef 512, ptr noundef nonnull %438) + %.not365 = icmp eq i64 %443, 512 + br i1 %.not365, label %.preheader, label %444 -443: ; preds = %441 - call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.216, ptr noundef %436) #25 - %444 = call i32 @fclose(ptr noundef nonnull %394) - %445 = call i32 @unlink(ptr noundef %336) #25 +444: ; preds = %442 + call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.216, ptr noundef %437) #25 + %445 = call i32 @fclose(ptr noundef nonnull %394) + %446 = call i32 @unlink(ptr noundef %336) #25 call void @free(ptr noundef %336) #25 - %446 = call i32 @fclose(ptr noundef nonnull %437) - %447 = call i32 @unlink(ptr noundef %436) #25 - br label %512 - -.preheader: ; preds = %441, %449 - %448 = call i64 @fread(ptr noundef nonnull %10, i64 noundef 1, i64 noundef 8192, ptr noundef nonnull %394) - %.not366 = icmp eq i64 %448, 0 - br i1 %.not366, label %456, label %449 - -449: ; preds = %.preheader - %450 = call i64 @fwrite(ptr noundef nonnull %10, i64 noundef 1, i64 noundef %448, ptr noundef nonnull %437) - %.not374 = icmp eq i64 %450, %448 - br i1 %.not374, label %.preheader, label %451 - -451: ; preds = %449 - call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.216, ptr noundef %436) #25 - %452 = call i32 @fclose(ptr noundef nonnull %394) - %453 = call i32 @unlink(ptr noundef %336) #25 + %447 = call i32 @fclose(ptr noundef nonnull %438) + %448 = call i32 @unlink(ptr noundef %437) #25 + br label %513 + +.preheader: ; preds = %442, %450 + %449 = call i64 @fread(ptr noundef nonnull %10, i64 noundef 1, i64 noundef 8192, ptr noundef nonnull %394) + %.not366 = icmp eq i64 %449, 0 + br i1 %.not366, label %457, label %450 + +450: ; preds = %.preheader + %451 = call i64 @fwrite(ptr noundef nonnull %10, i64 noundef 1, i64 noundef %449, ptr noundef nonnull %438) + %.not374 = icmp eq i64 %451, %449 + br i1 %.not374, label %.preheader, label %452 + +452: ; preds = %450 + call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.216, ptr noundef %437) #25 + %453 = call i32 @fclose(ptr noundef nonnull %394) + %454 = call i32 @unlink(ptr noundef %336) #25 call void @free(ptr noundef %336) #25 - %454 = call i32 @fclose(ptr noundef nonnull %437) - %455 = call i32 @unlink(ptr noundef %436) #25 - br label %512 - -456: ; preds = %.preheader - %457 = call i32 @fclose(ptr noundef nonnull %394) - %458 = call i32 @fclose(ptr noundef nonnull %437) - %459 = call i32 @unlink(ptr noundef %336) #25 - %460 = icmp eq i32 %459, -1 - br i1 %460, label %461, label %464 - -461: ; preds = %456 + %455 = call i32 @fclose(ptr noundef nonnull %438) + %456 = call i32 @unlink(ptr noundef %437) #25 + br label %513 + +457: ; preds = %.preheader + %458 = call i32 @fclose(ptr noundef nonnull %394) + %459 = call i32 @fclose(ptr noundef nonnull %438) + %460 = call i32 @unlink(ptr noundef %336) #25 + %461 = icmp eq i32 %460, -1 + br i1 %461, label %462, label %465 + +462: ; preds = %457 call void (i32, ptr, ...) @mprintf(i32 noundef 4, ptr noundef nonnull @.str.217, ptr noundef %336) #25 - %462 = call i32 @unlink(ptr noundef %336) #25 + %463 = call i32 @unlink(ptr noundef %336) #25 call void @free(ptr noundef %336) #25 - %463 = call i32 @unlink(ptr noundef %436) #25 - br label %512 + %464 = call i32 @unlink(ptr noundef %437) #25 + br label %513 -464: ; preds = %456 +465: ; preds = %457 call void @free(ptr noundef %336) #25 - call void (i32, ptr, ...) @mprintf(i32 noundef 0, ptr noundef nonnull @.str.218, ptr noundef %436) #25 - %465 = call ptr @optget(ptr noundef nonnull %0, ptr noundef nonnull @.str.156) #25 - %466 = getelementptr inbounds i8, ptr %465, i64 32 - %467 = load i32, ptr %466, align 8 - %.not367 = icmp eq i32 %467, 0 - br i1 %.not367, label %468, label %512 - -468: ; preds = %464 - br i1 %.not354, label %473, label %469 - -469: ; preds = %468 - %470 = call ptr @optget(ptr noundef nonnull %0, ptr noundef nonnull @.str.219) #25 - %471 = getelementptr inbounds i8, ptr %470, i64 32 - %472 = load i32, ptr %471, align 8 - %.not368 = icmp eq i32 %472, 0 - br i1 %.not368, label %474, label %473 - -473: ; preds = %469, %468 + call void (i32, ptr, ...) @mprintf(i32 noundef 0, ptr noundef nonnull @.str.218, ptr noundef %437) #25 + %466 = call ptr @optget(ptr noundef nonnull %0, ptr noundef nonnull @.str.156) #25 + %467 = getelementptr inbounds i8, ptr %466, i64 32 + %468 = load i32, ptr %467, align 8 + %.not367 = icmp eq i32 %468, 0 + br i1 %.not367, label %469, label %513 + +469: ; preds = %465 + br i1 %.not354, label %474, label %470 + +470: ; preds = %469 + %471 = call ptr @optget(ptr noundef nonnull %0, ptr noundef nonnull @.str.219) #25 + %472 = getelementptr inbounds i8, ptr %471, i64 32 + %473 = load i32, ptr %472, align 8 + %.not368 = icmp eq i32 %473, 0 + br i1 %.not368, label %475, label %474 + +474: ; preds = %470, %469 call void (i32, ptr, ...) @mprintf(i32 noundef 0, ptr noundef nonnull @.str.220) #25 - br label %512 + br label %513 -474: ; preds = %469 - %475 = call ptr @createTempDir(ptr noundef nonnull %0) - %.not369 = icmp eq ptr %475, null - br i1 %.not369, label %512, label %476 +475: ; preds = %470 + %476 = call ptr @createTempDir(ptr noundef nonnull %0) + %.not369 = icmp eq ptr %476, null + br i1 %.not369, label %513, label %477 -476: ; preds = %474 - %477 = call i32 @cl_cvdunpack(ptr noundef nonnull %14, ptr noundef nonnull %475, i1 noundef zeroext true) #25 - %.not370 = icmp eq i32 %477, 0 - br i1 %.not370, label %480, label %478 +477: ; preds = %475 + %478 = call i32 @cl_cvdunpack(ptr noundef nonnull %14, ptr noundef nonnull %476, i1 noundef zeroext true) #25 + %.not370 = icmp eq i32 %478, 0 + br i1 %.not370, label %481, label %479 -478: ; preds = %476 +479: ; preds = %477 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.221, ptr noundef nonnull %14) #25 - call void @removeTempDir(ptr noundef nonnull %0, ptr noundef nonnull %475) - call void @free(ptr noundef nonnull %475) #25 - %479 = call i32 @unlink(ptr noundef %436) #25 - br label %512 - -480: ; preds = %476 - %481 = call ptr @strncpy(ptr noundef nonnull dereferenceable(1) %14, ptr noundef nonnull dereferenceable(1) %475, i64 noundef 512) #25 - %482 = getelementptr inbounds i8, ptr %14, i64 511 - store i8 0, ptr %482, align 1 - call void @free(ptr noundef nonnull %475) #25 - %483 = call ptr @createTempDir(ptr noundef nonnull %0) - %.not371 = icmp eq ptr %483, null - br i1 %.not371, label %512, label %484 - -484: ; preds = %480 - %485 = call i32 @cl_cvdunpack(ptr noundef %436, ptr noundef nonnull %483, i1 noundef zeroext true) #25 - %.not372 = icmp eq i32 %485, 0 - br i1 %.not372, label %489, label %486 - -486: ; preds = %484 - call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.221, ptr noundef %436) #25 - call void @removeTempDir(ptr noundef nonnull %0, ptr noundef nonnull %483) - call void @free(ptr noundef nonnull %483) #25 - %487 = call i32 @cli_rmdirs(ptr noundef nonnull %14) #25 - %488 = call i32 @unlink(ptr noundef %436) #25 - br label %512 - -489: ; preds = %484 - %490 = load i32, ptr %8, align 4 - %491 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %15, i64 noundef 50, ptr noundef nonnull @.str.222, ptr noundef nonnull %17, i32 noundef %490) #25 - %492 = call fastcc i32 @diffdirs(ptr noundef %14, ptr noundef %483, ptr noundef %15) - call void @removeTempDir(ptr noundef nonnull %0, ptr noundef nonnull %483) - call void @free(ptr noundef nonnull %483) #25 - %493 = icmp eq i32 %492, -1 - br i1 %493, label %494, label %497 - -494: ; preds = %489 - %495 = call i32 @cli_rmdirs(ptr noundef nonnull %14) #25 - %496 = call i32 @unlink(ptr noundef %436) #25 - br label %512 - -497: ; preds = %489 - %498 = call fastcc i32 @verifydiff(ptr noundef %0, ptr noundef nonnull %15, ptr noundef null, ptr noundef nonnull %14) - %499 = call i32 @cli_rmdirs(ptr noundef nonnull %14) #25 - %500 = icmp eq i32 %498, -1 - br i1 %500, label %501, label %507 - -501: ; preds = %497 - %502 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %16, i64 noundef 57, ptr noundef nonnull @.str.223, ptr noundef nonnull %15) #25 - %503 = call i32 @rename(ptr noundef nonnull %15, ptr noundef nonnull %16) #25 - %.not373 = icmp eq i32 %503, 0 - br i1 %.not373, label %506, label %504 - -504: ; preds = %501 - %505 = call i32 @unlink(ptr noundef nonnull %15) #25 + call void @removeTempDir(ptr noundef nonnull %0, ptr noundef nonnull %476) + call void @free(ptr noundef nonnull %476) #25 + %480 = call i32 @unlink(ptr noundef %437) #25 + br label %513 + +481: ; preds = %477 + %482 = call ptr @strncpy(ptr noundef nonnull dereferenceable(1) %14, ptr noundef nonnull dereferenceable(1) %476, i64 noundef 512) #25 + %483 = getelementptr inbounds i8, ptr %14, i64 511 + store i8 0, ptr %483, align 1 + call void @free(ptr noundef nonnull %476) #25 + %484 = call ptr @createTempDir(ptr noundef nonnull %0) + %.not371 = icmp eq ptr %484, null + br i1 %.not371, label %513, label %485 + +485: ; preds = %481 + %486 = call i32 @cl_cvdunpack(ptr noundef %437, ptr noundef nonnull %484, i1 noundef zeroext true) #25 + %.not372 = icmp eq i32 %486, 0 + br i1 %.not372, label %490, label %487 + +487: ; preds = %485 + call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.221, ptr noundef %437) #25 + call void @removeTempDir(ptr noundef nonnull %0, ptr noundef nonnull %484) + call void @free(ptr noundef nonnull %484) #25 + %488 = call i32 @cli_rmdirs(ptr noundef nonnull %14) #25 + %489 = call i32 @unlink(ptr noundef %437) #25 + br label %513 + +490: ; preds = %485 + %491 = load i32, ptr %8, align 4 + %492 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %15, i64 noundef 50, ptr noundef nonnull @.str.222, ptr noundef nonnull %17, i32 noundef %491) #25 + %493 = call fastcc i32 @diffdirs(ptr noundef %14, ptr noundef %484, ptr noundef %15) + call void @removeTempDir(ptr noundef nonnull %0, ptr noundef nonnull %484) + call void @free(ptr noundef nonnull %484) #25 + %494 = icmp eq i32 %493, -1 + br i1 %494, label %495, label %498 + +495: ; preds = %490 + %496 = call i32 @cli_rmdirs(ptr noundef nonnull %14) #25 + %497 = call i32 @unlink(ptr noundef %437) #25 + br label %513 + +498: ; preds = %490 + %499 = call fastcc i32 @verifydiff(ptr noundef %0, ptr noundef nonnull %15, ptr noundef null, ptr noundef nonnull %14) + %500 = call i32 @cli_rmdirs(ptr noundef nonnull %14) #25 + %501 = icmp eq i32 %499, -1 + br i1 %501, label %502, label %508 + +502: ; preds = %498 + %503 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %16, i64 noundef 57, ptr noundef nonnull @.str.223, ptr noundef nonnull %15) #25 + %504 = call i32 @rename(ptr noundef nonnull %15, ptr noundef nonnull %16) #25 + %.not373 = icmp eq i32 %504, 0 + br i1 %.not373, label %507, label %505 + +505: ; preds = %502 + %506 = call i32 @unlink(ptr noundef nonnull %15) #25 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.224) #25 - br label %512 + br label %513 -506: ; preds = %501 +507: ; preds = %502 call void (i32, ptr, ...) @mprintf(i32 noundef 5, ptr noundef nonnull @.str.225, ptr noundef nonnull %16) #25 - br label %512 - -507: ; preds = %497 - %508 = call ptr @optget(ptr noundef nonnull %0, ptr noundef nonnull @.str.155) #25 - %509 = getelementptr inbounds i8, ptr %508, i64 16 - %510 = load ptr, ptr %509, align 8 - %511 = call zeroext i1 @script2cdiff(ptr noundef nonnull %15, ptr noundef nonnull %13, ptr noundef %510) #25 - %not. = xor i1 %511, true + br label %513 + +508: ; preds = %498 + %509 = call ptr @optget(ptr noundef nonnull %0, ptr noundef nonnull @.str.155) #25 + %510 = getelementptr inbounds i8, ptr %509, i64 16 + %511 = load ptr, ptr %510, align 8 + %512 = call zeroext i1 @script2cdiff(ptr noundef nonnull %15, ptr noundef nonnull %13, ptr noundef %511) #25 + %not. = xor i1 %512, true %. = sext i1 %not. to i32 - br label %512 + br label %513 -512: ; preds = %506, %504, %507, %480, %474, %464, %494, %486, %478, %473, %461, %451, %443, %438, %414, %399, %395, %._crit_edge432, %376, %._crit_edge424, %._crit_edge444, %._crit_edge448, %._crit_edge452, %._crit_edge456, %248, %._crit_edge460, %._crit_edge420, %._crit_edge415, %118, %111, %.thread563, %._crit_edge409, %88, %77, %65, %62, %39, %27 - %.0 = phi i32 [ -1, %39 ], [ -1, %65 ], [ -1, %77 ], [ -1, %._crit_edge409 ], [ -1, %88 ], [ -1, %._crit_edge415 ], [ -1, %._crit_edge456 ], [ -1, %._crit_edge448 ], [ -1, %._crit_edge444 ], [ -1, %376 ], [ -1, %._crit_edge432 ], [ -1, %443 ], [ -1, %451 ], [ -1, %461 ], [ 0, %473 ], [ -1, %478 ], [ -1, %486 ], [ -1, %494 ], [ -1, %438 ], [ -1, %414 ], [ -1, %399 ], [ -1, %395 ], [ -1, %._crit_edge424 ], [ -1, %._crit_edge452 ], [ -1, %248 ], [ -1, %._crit_edge460 ], [ -1, %._crit_edge420 ], [ -1, %118 ], [ -1, %111 ], [ -1, %.thread563 ], [ 50, %62 ], [ -1, %27 ], [ 0, %464 ], [ -1, %474 ], [ -1, %480 ], [ -1, %504 ], [ -1, %506 ], [ %., %507 ] +513: ; preds = %507, %505, %508, %481, %475, %465, %495, %487, %479, %474, %462, %452, %444, %439, %414, %399, %395, %._crit_edge432, %376, %._crit_edge424, %._crit_edge444, %._crit_edge448, %._crit_edge452, %._crit_edge456, %248, %._crit_edge460, %._crit_edge420, %._crit_edge415, %118, %111, %.thread563, %._crit_edge409, %88, %77, %65, %62, %39, %27 + %.0 = phi i32 [ -1, %39 ], [ -1, %65 ], [ -1, %77 ], [ -1, %._crit_edge409 ], [ -1, %88 ], [ -1, %._crit_edge415 ], [ -1, %._crit_edge456 ], [ -1, %._crit_edge448 ], [ -1, %._crit_edge444 ], [ -1, %376 ], [ -1, %._crit_edge432 ], [ -1, %444 ], [ -1, %452 ], [ -1, %462 ], [ 0, %474 ], [ -1, %479 ], [ -1, %487 ], [ -1, %495 ], [ -1, %439 ], [ -1, %414 ], [ -1, %399 ], [ -1, %395 ], [ -1, %._crit_edge424 ], [ -1, %._crit_edge452 ], [ -1, %248 ], [ -1, %._crit_edge460 ], [ -1, %._crit_edge420 ], [ -1, %118 ], [ -1, %111 ], [ -1, %.thread563 ], [ 50, %62 ], [ -1, %27 ], [ 0, %465 ], [ -1, %475 ], [ -1, %481 ], [ -1, %505 ], [ -1, %507 ], [ %., %508 ] ret i32 %.0 } diff --git a/bench/cmake/optimized/archive_read_open_filename.c.ll b/bench/cmake/optimized/archive_read_open_filename.c.ll index 4371e3870e8..2b81f718e0c 100644 --- a/bench/cmake/optimized/archive_read_open_filename.c.ll +++ b/bench/cmake/optimized/archive_read_open_filename.c.ll @@ -540,72 +540,71 @@ define dso_local i32 @archive_read_open_filename_w(ptr noundef %0, ptr noundef % 9: ; preds = %3 tail call void (ptr, i32, ptr, ...) @archive_set_error(ptr noundef %0, i32 noundef 12, ptr noundef nonnull @.str.1) #14 - br label %41 + br label %40 10: ; preds = %3 store i32 -1, ptr %8, align 8 %11 = getelementptr inbounds i8, ptr %8, i64 8 store i64 %2, ptr %11, align 8 %12 = icmp eq ptr %1, null - br i1 %12, label %31, label %13 + br i1 %12, label %30, label %13 13: ; preds = %10 %14 = load i32, ptr %1, align 4 %15 = icmp eq i32 %14, 0 - br i1 %15, label %31, label %16 + br i1 %15, label %30, label %16 16: ; preds = %13 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %4, i8 0, i64 24, i1 false) - %17 = tail call i64 @wcslen(ptr noundef nonnull %1) #15 - %18 = call i32 @archive_string_append_from_wcs(ptr noundef nonnull %4, ptr noundef nonnull %1, i64 noundef %17) #14 - %.not28 = icmp eq i32 %18, 0 - br i1 %.not28, label %26, label %19 - -19: ; preds = %16 - %20 = tail call ptr @__errno_location() #17 - %21 = load i32, ptr %20, align 4 - %22 = icmp eq i32 %21, 12 - br i1 %22, label %23, label %24 - -23: ; preds = %19 + %17 = call i32 @archive_string_append_from_wcs(ptr noundef nonnull %4, ptr noundef nonnull %1, i64 noundef %5) #14 + %.not28 = icmp eq i32 %17, 0 + br i1 %.not28, label %25, label %18 + +18: ; preds = %16 + %19 = tail call ptr @__errno_location() #17 + %20 = load i32, ptr %19, align 4 + %21 = icmp eq i32 %20, 12 + br i1 %21, label %22, label %23 + +22: ; preds = %18 call void (ptr, i32, ptr, ...) @archive_set_error(ptr noundef %0, i32 noundef 12, ptr noundef nonnull @.str.2) #14 - br label %25 + br label %24 -24: ; preds = %19 +23: ; preds = %18 call void (ptr, i32, ptr, ...) @archive_set_error(ptr noundef %0, i32 noundef 22, ptr noundef nonnull @.str.3) #14 - br label %25 + br label %24 -25: ; preds = %24, %23 +24: ; preds = %23, %22 call void @archive_string_free(ptr noundef nonnull %4) #14 call void @free(ptr noundef nonnull %8) #14 - br label %41 - -26: ; preds = %16 - %27 = getelementptr inbounds i8, ptr %8, i64 32 - store i32 1, ptr %27, align 8 - %28 = getelementptr inbounds i8, ptr %8, i64 36 - %29 = load ptr, ptr %4, align 8 - %30 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %28, ptr noundef nonnull dereferenceable(1) %29) #14 + br label %40 + +25: ; preds = %16 + %26 = getelementptr inbounds i8, ptr %8, i64 32 + store i32 1, ptr %26, align 8 + %27 = getelementptr inbounds i8, ptr %8, i64 36 + %28 = load ptr, ptr %4, align 8 + %29 = call ptr @strcpy(ptr noundef nonnull dereferenceable(1) %27, ptr noundef nonnull dereferenceable(1) %28) #14 call void @archive_string_free(ptr noundef nonnull %4) #14 - br label %31 - -31: ; preds = %10, %13, %26 - %32 = call i32 @archive_read_append_callback_data(ptr noundef %0, ptr noundef nonnull %8) #14 - %.not29 = icmp eq i32 %32, 0 - br i1 %.not29, label %33, label %41 - -33: ; preds = %31 - %34 = call i32 @archive_read_set_open_callback(ptr noundef %0, ptr noundef nonnull @file_open) #14 - %35 = call i32 @archive_read_set_read_callback(ptr noundef %0, ptr noundef nonnull @file_read) #14 - %36 = call i32 @archive_read_set_skip_callback(ptr noundef %0, ptr noundef nonnull @file_skip) #14 - %37 = call i32 @archive_read_set_close_callback(ptr noundef %0, ptr noundef nonnull @file_close) #14 - %38 = call i32 @archive_read_set_switch_callback(ptr noundef %0, ptr noundef nonnull @file_switch) #14 - %39 = call i32 @archive_read_set_seek_callback(ptr noundef %0, ptr noundef nonnull @file_seek) #14 - %40 = call i32 @archive_read_open1(ptr noundef %0) #14 - br label %41 - -41: ; preds = %31, %33, %25, %9 - %.0 = phi i32 [ %40, %33 ], [ -30, %25 ], [ -30, %9 ], [ -30, %31 ] + br label %30 + +30: ; preds = %10, %13, %25 + %31 = call i32 @archive_read_append_callback_data(ptr noundef %0, ptr noundef nonnull %8) #14 + %.not29 = icmp eq i32 %31, 0 + br i1 %.not29, label %32, label %40 + +32: ; preds = %30 + %33 = call i32 @archive_read_set_open_callback(ptr noundef %0, ptr noundef nonnull @file_open) #14 + %34 = call i32 @archive_read_set_read_callback(ptr noundef %0, ptr noundef nonnull @file_read) #14 + %35 = call i32 @archive_read_set_skip_callback(ptr noundef %0, ptr noundef nonnull @file_skip) #14 + %36 = call i32 @archive_read_set_close_callback(ptr noundef %0, ptr noundef nonnull @file_close) #14 + %37 = call i32 @archive_read_set_switch_callback(ptr noundef %0, ptr noundef nonnull @file_switch) #14 + %38 = call i32 @archive_read_set_seek_callback(ptr noundef %0, ptr noundef nonnull @file_seek) #14 + %39 = call i32 @archive_read_open1(ptr noundef %0) #14 + br label %40 + +40: ; preds = %30, %32, %24, %9 + %.0 = phi i32 [ %39, %32 ], [ -30, %24 ], [ -30, %9 ], [ -30, %30 ] ret i32 %.0 } diff --git a/bench/cmake/optimized/cmPolicies.cxx.ll b/bench/cmake/optimized/cmPolicies.cxx.ll index 938c2d31e01..5e7b7f3a796 100644 --- a/bench/cmake/optimized/cmPolicies.cxx.ll +++ b/bench/cmake/optimized/cmPolicies.cxx.ll @@ -481,8 +481,8 @@ define dso_local noundef zeroext i1 @_ZN10cmPolicies18ApplyPolicyVersionEP10cmMa store i32 0, ptr %8, align 4 store i32 0, ptr %9, align 4 store i32 0, ptr %10, align 4 - %21 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #17 - %22 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %21, ptr noundef nonnull @.str, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef nonnull %10) #17 + %21 = tail call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #16 + %22 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %21, ptr noundef nonnull @.str, ptr noundef nonnull %7, ptr noundef nonnull %8, ptr noundef nonnull %9, ptr noundef nonnull %10) #16 %23 = icmp slt i32 %22, 2 br i1 %23, label %24, label %36 @@ -494,7 +494,7 @@ define dso_local noundef zeroext i1 @_ZN10cmPolicies18ApplyPolicyVersionEP10cmMa %25 = getelementptr inbounds i8, ptr %6, i64 16 store ptr null, ptr %25, align 8, !alias.scope !5, !noalias !8 %26 = getelementptr inbounds i8, ptr %6, i64 24 - %27 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #17, !noalias !8 + %27 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #16, !noalias !8 %28 = extractvalue { i64, ptr } %27, 0 %29 = extractvalue { i64, ptr } %27, 1 store i64 %28, ptr %26, align 8, !alias.scope !11, !noalias !8 @@ -514,13 +514,13 @@ define dso_local noundef zeroext i1 @_ZN10cmPolicies18ApplyPolicyVersionEP10cmMa to label %33 unwind label %34 33: ; preds = %24 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #16 br label %145 34: ; preds = %24 %35 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #16 br label %146 36: ; preds = %4 @@ -536,7 +536,7 @@ define dso_local noundef zeroext i1 @_ZN10cmPolicies18ApplyPolicyVersionEP10cmMa br i1 %or.cond, label %43, label %52 43: ; preds = %39, %36 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #17 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #16 %44 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %12) to label %.noexc unwind label %48 @@ -551,7 +551,7 @@ define dso_local noundef zeroext i1 @_ZN10cmPolicies18ApplyPolicyVersionEP10cmMa 45: ; preds = %.noexc33 %46 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #16 br label %.body _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; preds = %.noexc33 @@ -559,8 +559,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr to label %47 unwind label %50 47: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #17 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #16 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #16 br label %145 48: ; preds = %.noexc, %43 @@ -571,12 +571,12 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr 50: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit %51 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #16 br label %.body .body: ; preds = %48, %45, %50 %.pn = phi { ptr, i32 } [ %51, %50 ], [ %49, %48 ], [ %46, %45 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #17 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #16 br label %146 52: ; preds = %39 @@ -646,7 +646,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr %92 = getelementptr inbounds i8, ptr %5, i64 16 store ptr null, ptr %92, align 8, !alias.scope !17, !noalias !20 %93 = getelementptr inbounds i8, ptr %5, i64 24 - %94 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #17, !noalias !20 + %94 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %1) #16, !noalias !20 %95 = extractvalue { i64, ptr } %94, 0 %96 = extractvalue { i64, ptr } %94, 1 store i64 %95, ptr %93, align 8, !alias.scope !23, !noalias !20 @@ -672,20 +672,20 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr to label %102 unwind label %103 102: ; preds = %91 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #16 br label %145 103: ; preds = %91 %104 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #16 br label %146 105: ; preds = %87, %83, %79, %75 %106 = load i32, ptr %7, align 4 %107 = load i32, ptr %8, align 4 %108 = load i32, ptr %9, align 4 - %109 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #17 + %109 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #16 br i1 %109, label %143, label %110 110: ; preds = %105 @@ -693,8 +693,8 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr store i32 0, ptr %16, align 4 store i32 0, ptr %17, align 4 store i32 0, ptr %18, align 4 - %111 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #17 - %112 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %111, ptr noundef nonnull @.str, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %18) #17 + %111 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #16 + %112 = call i32 (ptr, ptr, ...) @__isoc99_sscanf(ptr noundef %111, ptr noundef nonnull @.str, ptr noundef nonnull %15, ptr noundef nonnull %16, ptr noundef nonnull %17, ptr noundef nonnull %18) #16 %113 = icmp slt i32 %112, 2 br i1 %113, label %114, label %118 @@ -704,13 +704,13 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr to label %115 unwind label %116 115: ; preds = %114 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #16 br label %145 116: ; preds = %114 %117 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %19) #16 br label %146 118: ; preds = %110 @@ -760,13 +760,13 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr to label %140 unwind label %141 140: ; preds = %139 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #16 br label %145 141: ; preds = %139 %142 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #16 br label %146 143: ; preds = %132, %135, %._crit_edge, %127, %105 @@ -816,14 +816,14 @@ declare noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIc define linkonce_odr dso_local void @_Z8cmStrCatIRA35_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA57_S0_EES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(35) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(57) %3) local_unnamed_addr #3 comdat personality ptr @__gxx_personality_v0 { _ZZ8cmStrCatIRA35_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA57_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESM_.exit20: %4 = alloca [3 x %"struct.std::pair"], align 8 - %5 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #17 + %5 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #16 store i64 %5, ptr %4, align 8, !alias.scope !32 %.sroa.2.0..sroa_idx.i = getelementptr inbounds i8, ptr %4, i64 8 store ptr %1, ptr %.sroa.2.0..sroa_idx.i, align 8, !alias.scope !32 %6 = getelementptr inbounds i8, ptr %4, i64 16 store ptr null, ptr %6, align 8, !alias.scope !32 %7 = getelementptr inbounds i8, ptr %4, i64 24 - %8 = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #17 + %8 = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #16 %9 = extractvalue { i64, ptr } %8, 0 %10 = extractvalue { i64, ptr } %8, 1 store i64 %9, ptr %7, align 8, !alias.scope !35 @@ -832,7 +832,7 @@ _ZZ8cmStrCatIRA35_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA57_ %11 = getelementptr inbounds i8, ptr %4, i64 40 store ptr null, ptr %11, align 8, !alias.scope !35 %12 = getelementptr inbounds i8, ptr %4, i64 48 - %13 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #17 + %13 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #16 store i64 %13, ptr %12, align 8, !alias.scope !38 %.sroa.2.0..sroa_idx.i16 = getelementptr inbounds i8, ptr %4, i64 56 store ptr %3, ptr %.sroa.2.0..sroa_idx.i16, align 8, !alias.scope !38 @@ -846,14 +846,14 @@ _ZZ8cmStrCatIRA35_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA57_ define linkonce_odr dso_local void @_Z8cmStrCatIRA23_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA4_S0_SA_RA43_S0_EES8_OT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(23) %1, ptr noundef nonnull align 8 dereferenceable(32) %2, ptr noundef nonnull align 1 dereferenceable(4) %3, ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull align 1 dereferenceable(43) %5) local_unnamed_addr #3 comdat personality ptr @__gxx_personality_v0 { _ZZ8cmStrCatIRA23_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA4_S0_SA_RA43_S0_EES8_OT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11ESO_.exit40: %6 = alloca [5 x %"struct.std::pair"], align 8 - %7 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #17 + %7 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #16 store i64 %7, ptr %6, align 8, !alias.scope !41 %.sroa.2.0..sroa_idx.i = getelementptr inbounds i8, ptr %6, i64 8 store ptr %1, ptr %.sroa.2.0..sroa_idx.i, align 8, !alias.scope !41 %8 = getelementptr inbounds i8, ptr %6, i64 16 store ptr null, ptr %8, align 8, !alias.scope !41 %9 = getelementptr inbounds i8, ptr %6, i64 24 - %10 = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #17 + %10 = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %2) #16 %11 = extractvalue { i64, ptr } %10, 0 %12 = extractvalue { i64, ptr } %10, 1 store i64 %11, ptr %9, align 8, !alias.scope !44 @@ -862,14 +862,14 @@ _ZZ8cmStrCatIRA23_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA4_S %13 = getelementptr inbounds i8, ptr %6, i64 40 store ptr null, ptr %13, align 8, !alias.scope !44 %14 = getelementptr inbounds i8, ptr %6, i64 48 - %15 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #17 + %15 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #16 store i64 %15, ptr %14, align 8, !alias.scope !47 %.sroa.2.0..sroa_idx.i18 = getelementptr inbounds i8, ptr %6, i64 56 store ptr %3, ptr %.sroa.2.0..sroa_idx.i18, align 8, !alias.scope !47 %16 = getelementptr inbounds i8, ptr %6, i64 64 store ptr null, ptr %16, align 8, !alias.scope !47 %17 = getelementptr inbounds i8, ptr %6, i64 72 - %18 = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #17 + %18 = tail call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #16 %19 = extractvalue { i64, ptr } %18, 0 %20 = extractvalue { i64, ptr } %18, 1 store i64 %19, ptr %17, align 8, !alias.scope !50 @@ -878,7 +878,7 @@ _ZZ8cmStrCatIRA23_KcRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEJRA4_S %21 = getelementptr inbounds i8, ptr %6, i64 88 store ptr null, ptr %21, align 8, !alias.scope !50 %22 = getelementptr inbounds i8, ptr %6, i64 96 - %23 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #17 + %23 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #16 store i64 %23, ptr %22, align 8, !alias.scope !53 %.sroa.2.0..sroa_idx.i36 = getelementptr inbounds i8, ptr %6, i64 104 store ptr %5, ptr %.sroa.2.0..sroa_idx.i36, align 8, !alias.scope !53 @@ -940,7 +940,7 @@ define dso_local noundef zeroext i1 @_ZN10cmPolicies18ApplyPolicyVersionEP10cmMa to label %38 unwind label %82 38: ; preds = %36 - %39 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %37) #17 + %39 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5c_strEv(ptr noundef nonnull align 8 dereferenceable(32) %37) #16 %40 = invoke noundef i32 @_ZN5cmsys11SystemTools7StrucmpEPKcS2_(ptr noundef %39, ptr noundef nonnull @.str.12) to label %41 unwind label %82 @@ -965,7 +965,7 @@ define dso_local noundef zeroext i1 @_ZN10cmPolicies18ApplyPolicyVersionEP10cmMa %51 = load ptr, ptr %43, align 8 %52 = getelementptr inbounds i8, ptr %51, i64 16 %53 = load ptr, ptr %52, align 8 - call void %53(ptr noundef nonnull align 8 dereferenceable(16) %43) #17 + call void %53(ptr noundef nonnull align 8 dereferenceable(16) %43) #16 br label %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i.i.i 54: ; preds = %44 @@ -991,7 +991,7 @@ define dso_local noundef zeroext i1 @_ZN10cmPolicies18ApplyPolicyVersionEP10cmMa %63 = load ptr, ptr %43, align 8 %64 = getelementptr inbounds i8, ptr %63, i64 16 %65 = load ptr, ptr %64, align 8 - call void %65(ptr noundef nonnull align 8 dereferenceable(16) %43) #17 + call void %65(ptr noundef nonnull align 8 dereferenceable(16) %43) #16 %66 = getelementptr inbounds i8, ptr %43, i64 12 %67 = load i8, ptr @__libc_single_threaded, align 1 %.not.i.i.i.i.i.i.i.i = icmp eq i8 %67, 0 @@ -1016,14 +1016,14 @@ _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_cold %75 = load ptr, ptr %43, align 8 %76 = getelementptr inbounds i8, ptr %75, i64 24 %77 = load ptr, ptr %76, align 8 - call void %77(ptr noundef nonnull align 8 dereferenceable(16) %43) #17 + call void %77(ptr noundef nonnull align 8 dereferenceable(16) %43) #16 br i1 %.not142, label %.thread104, label %.thread104.thread _ZN19cmListFileBacktraceD2Ev.exit: ; preds = %73, %60, %41 br i1 %.not142, label %.thread104, label %.thread104.thread .thread104.thread: ; preds = %27, %34, %30, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i.i.i, %_ZN19cmListFileBacktraceD2Ev.exit - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #17 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #16 %78 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %12) to label %.noexc unwind label %84 @@ -1038,7 +1038,7 @@ _ZN19cmListFileBacktraceD2Ev.exit: ; preds = %73, %60, %41 79: ; preds = %.noexc60 %80 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #16 br label %.body _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; preds = %.noexc60 @@ -1046,14 +1046,14 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr to label %81 unwind label %86 81: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #17 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #16 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #16 br label %.thread104 82: ; preds = %38, %36 %83 = landingpad { ptr, i32 } cleanup - call void @_ZN19cmListFileBacktraceD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #17 + call void @_ZN19cmListFileBacktraceD2Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #16 br label %_ZNSt6vectorIN10cmPolicies8PolicyIDESaIS1_EED2Ev.exit95 84: ; preds = %.noexc, %.thread104.thread @@ -1064,12 +1064,12 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr 86: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit %87 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #16 br label %.body .body: ; preds = %84, %79, %86 %.pn = phi { ptr, i32 } [ %87, %86 ], [ %85, %84 ], [ %80, %79 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #17 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %13) #16 br label %_ZNSt6vectorIN10cmPolicies8PolicyIDESaIS1_EED2Ev.exit95 .thread104: ; preds = %5, %27, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i.i.i, %81, %_ZN19cmListFileBacktraceD2Ev.exit @@ -2341,7 +2341,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr _ZL17isPolicyNewerThanN10cmPolicies8PolicyIDEjjj.exit.thread: ; preds = %693, %692, %691, %690, %689, %688, %687, %686, %685, %684, %683, %682, %681, %680, %679, %678, %677, %676, %675, %674, %673, %672, %671, %670, %669, %668, %667, %666, %665, %664, %663, %662, %661, %660, %659, %658, %657, %656, %655, %654, %653, %652, %651, %650, %649, %648, %647, %646, %645, %644, %643, %642, %641, %640, %639, %638, %637, %636, %635, %634, %633, %632, %631, %630, %629, %628, %627, %626, %625, %624, %623, %622, %621, %620, %619, %618, %617, %616, %615, %614, %613, %612, %611, %610, %609, %608, %607, %606, %605, %604, %603, %602, %601, %600, %599, %598, %597, %596, %595, %594, %593, %592, %591, %590, %589, %588, %587, %586, %585, %584, %583, %582, %581, %580, %579, %578, %577, %576, %575, %574, %573, %572, %571, %570, %569, %568, %567, %566, %565, %564, %563, %562, %561, %560, %559, %558, %557, %556, %555, %554, %553, %552, %551, %550, %549, %548, %547, %546, %545, %544, %543, %542, %541, %540, %539, %538, %537, %536, %535, %534, %533, %532, %531 %694 = call fastcc noundef ptr @_ZL10idToStringN10cmPolicies8PolicyIDE(i32 noundef %.046176) - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #17 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #16 %695 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %14) to label %.noexc61 unwind label %736 @@ -2354,7 +2354,7 @@ _ZL17isPolicyNewerThanN10cmPolicies8PolicyIDEjjj.exit.thread: ; preds = %693, %6 br i1 %696, label %697, label %700 697: ; preds = %.noexc62 - invoke void @_ZSt19__throw_logic_errorPKc(ptr noundef nonnull @.str.410) #18 + invoke void @_ZSt19__throw_logic_errorPKc(ptr noundef nonnull @.str.410) #17 to label %698 unwind label %.loopexit.split-lp 698: ; preds = %697 @@ -2372,11 +2372,11 @@ _ZL17isPolicyNewerThanN10cmPolicies8PolicyIDEjjj.exit.thread: ; preds = %693, %6 699: ; preds = %.loopexit.split-lp, %.loopexit %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #16 br label %.body63 700: ; preds = %.noexc62 - %701 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %694) #17 + %701 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %694) #16 %702 = getelementptr inbounds i8, ptr %694, i64 %701 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %14, ptr noundef nonnull %694, ptr noundef nonnull %702) to label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit65 unwind label %.loopexit @@ -2388,7 +2388,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit65: ; store i64 21, ptr %7, align 8, !alias.scope !56, !noalias !59 store ptr @.str.30, ptr %.sroa.2.0..sroa_idx.i.i.i, align 8, !alias.scope !56, !noalias !59 store ptr null, ptr %201, align 8, !alias.scope !56, !noalias !59 - %703 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %14) #17, !noalias !59 + %703 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %14) #16, !noalias !59 %704 = extractvalue { i64, ptr } %703, 0 %705 = extractvalue { i64, ptr } %703, 1 store i64 %704, ptr %202, align 8, !alias.scope !62, !noalias !59 @@ -2403,7 +2403,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit65: ; to label %707 unwind label %.loopexit144 707: ; preds = %.noexc66 - %708 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(ptr noundef nonnull align 8 dereferenceable(32) %706, ptr noundef nonnull @.str.31) #17 + %708 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(ptr noundef nonnull align 8 dereferenceable(32) %706, ptr noundef nonnull @.str.31) #16 %709 = icmp ne i32 %708, 0 br i1 %709, label %710, label %733 @@ -2418,17 +2418,17 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit65: ; br label %732 710: ; preds = %707 - %711 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(ptr noundef nonnull align 8 dereferenceable(32) %706, ptr noundef nonnull @.str.32) #17 + %711 = call noundef i32 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE7compareEPKc(ptr noundef nonnull align 8 dereferenceable(32) %706, ptr noundef nonnull @.str.32) #16 %712 = icmp eq i32 %711, 0 br i1 %712, label %733, label %713 713: ; preds = %710 - %714 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %706) #17 + %714 = call noundef zeroext i1 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE5emptyEv(ptr noundef nonnull align 8 dereferenceable(32) %706) #16 br i1 %714, label %733, label %715 715: ; preds = %713 call void @llvm.lifetime.start.p0(i64 96, ptr nonnull %6) - %716 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #17, !noalias !65 + %716 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %8) #16, !noalias !65 %717 = extractvalue { i64, ptr } %716, 0 %718 = extractvalue { i64, ptr } %716, 1 store i64 %717, ptr %6, align 8, !alias.scope !68, !noalias !65 @@ -2443,7 +2443,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit65: ; %721 = getelementptr inbounds i8, ptr %6, i64 40 store ptr null, ptr %721, align 8, !alias.scope !71, !noalias !65 %722 = getelementptr inbounds i8, ptr %6, i64 48 - %723 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %706) #17, !noalias !65 + %723 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %706) #16, !noalias !65 %724 = extractvalue { i64, ptr } %723, 0 %725 = extractvalue { i64, ptr } %723, 1 store i64 %724, ptr %722, align 8, !alias.scope !74, !noalias !65 @@ -2468,34 +2468,34 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit65: ; 730: ; preds = %729 %731 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #16 br label %732 732: ; preds = %.loopexit144, %.loopexit.split-lp145, %730 %.pn.i = phi { ptr, i32 } [ %731, %730 ], [ %lpad.loopexit146, %.loopexit144 ], [ %lpad.loopexit.split-lp147, %.loopexit.split-lp145 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #16 br label %.body67 733: ; preds = %707, %710, %713 %.0.ph = phi i32 [ 1, %713 ], [ 0, %710 ], [ 2, %707 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #16 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) %734 = invoke noundef zeroext i1 @_ZN10cmMakefile9SetPolicyEN10cmPolicies8PolicyIDENS0_12PolicyStatusE(ptr noundef nonnull align 8 dereferenceable(3520) %0, i32 noundef %.046176, i32 noundef %.0.ph) to label %735 unwind label %738 735: ; preds = %733 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #17 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #16 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #16 br i1 %734, label %740, label %_ZNSt6vectorIN10cmPolicies8PolicyIDESaIS1_EED2Ev.exit .critedge: ; preds = %729 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #17 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #16 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %8) #16 call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %8) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %9) - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #17 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #16 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #16 br label %_ZNSt6vectorIN10cmPolicies8PolicyIDESaIS1_EED2Ev.exit 736: ; preds = %.noexc61, %_ZL17isPolicyNewerThanN10cmPolicies8PolicyIDEjjj.exit.thread @@ -2510,12 +2510,12 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit65: ; .body67: ; preds = %732, %738 %eh.lpad-body68 = phi { ptr, i32 } [ %739, %738 ], [ %.pn.i, %732 ] - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %14) #16 br label %.body63 .body63: ; preds = %736, %699, %.body67 %.pn48 = phi { ptr, i32 } [ %eh.lpad-body68, %.body67 ], [ %737, %736 ], [ %lpad.phi, %699 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #17 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %15) #16 br label %_ZNSt6vectorIN10cmPolicies8PolicyIDESaIS1_EED2Ev.exit95 740: ; preds = %735 @@ -2525,7 +2525,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit65: ; 742: ; preds = %740 %743 = call noundef ptr @_ZNK10cmMakefile8GetStateEv(ptr noundef nonnull align 8 dereferenceable(3520) %0) - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #17 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #16 %744 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %16) to label %.noexc69 unwind label %759 @@ -2540,7 +2540,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit65: ; 745: ; preds = %.noexc70 %746 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %16) #16 br label %.body71 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit73: ; preds = %.noexc70 @@ -2549,12 +2549,12 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit73: ; 748: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit73 %.not143 = icmp eq ptr %747, null - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #17 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #16 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #16 br i1 %.not143, label %749, label %772 749: ; preds = %748 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #17 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #16 %750 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %18) to label %.noexc74 unwind label %763 @@ -2569,11 +2569,11 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit73: ; 751: ; preds = %.noexc75 %752 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %18) #16 br label %.body76 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit78: ; preds = %.noexc75 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #17 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #16 %753 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %20) to label %.noexc79 unwind label %765 @@ -2588,11 +2588,11 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit78: ; 754: ; preds = %.noexc80 %755 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %20) #16 br label %.body81 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit83: ; preds = %.noexc80 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #17 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #16 %756 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %22) to label %.noexc84 unwind label %767 @@ -2607,7 +2607,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit83: ; 757: ; preds = %.noexc85 %758 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %22) #16 br label %.body86 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit88: ; preds = %.noexc85 @@ -2615,12 +2615,12 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit88: ; to label %_ZN10cmMakefile18AddCacheDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_N12cmStateEnums14CacheEntryTypeEb.exit unwind label %769 _ZN10cmMakefile18AddCacheDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEES7_S7_N12cmStateEnums14CacheEntryTypeEb.exit: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit88 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #17 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #17 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #17 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #17 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #17 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #16 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #16 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #16 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #16 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #16 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #16 br label %772 759: ; preds = %.noexc69, %742 @@ -2631,12 +2631,12 @@ _ZN10cmMakefile18AddCacheDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traits 761: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit73 %762 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %16) #16 br label %.body71 .body71: ; preds = %759, %745, %761 %.pn50 = phi { ptr, i32 } [ %762, %761 ], [ %760, %759 ], [ %746, %745 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #17 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %17) #16 br label %_ZNSt6vectorIN10cmPolicies8PolicyIDESaIS1_EED2Ev.exit95 763: ; preds = %.noexc74, %749 @@ -2657,24 +2657,24 @@ _ZN10cmMakefile18AddCacheDefinitionERKNSt7__cxx1112basic_stringIcSt11char_traits 769: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit88 %770 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %22) #16 br label %.body86 .body86: ; preds = %767, %757, %769 %.pn52 = phi { ptr, i32 } [ %770, %769 ], [ %768, %767 ], [ %758, %757 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #17 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #17 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %23) #16 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %20) #16 br label %.body81 .body81: ; preds = %765, %754, %.body86 %.pn52.pn = phi { ptr, i32 } [ %.pn52, %.body86 ], [ %766, %765 ], [ %755, %754 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #17 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #17 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %21) #16 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %18) #16 br label %.body76 .body76: ; preds = %763, %751, %.body81 %.pn52.pn.pn = phi { ptr, i32 } [ %.pn52.pn, %.body81 ], [ %764, %763 ], [ %752, %751 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #17 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %19) #16 br label %_ZNSt6vectorIN10cmPolicies8PolicyIDESaIS1_EED2Ev.exit95 _ZL17isPolicyNewerThanN10cmPolicies8PolicyIDEjjj.exit.thread108: ; preds = %693, %692, %691, %690, %689, %688, %687, %686, %685, %684, %683, %682, %681, %680, %679, %678, %677, %676, %675, %674, %673, %672, %671, %670, %669, %668, %667, %666, %665, %664, %663, %662, %661, %660, %659, %658, %657, %656, %655, %654, %653, %652, %651, %650, %649, %648, %647, %646, %645, %644, %643, %642, %641, %640, %639, %638, %637, %636, %635, %634, %633, %632, %631, %630, %629, %628, %627, %626, %625, %624, %623, %622, %621, %620, %619, %618, %617, %616, %615, %614, %613, %612, %611, %610, %609, %608, %607, %606, %605, %604, %603, %602, %601, %600, %599, %598, %597, %596, %595, %594, %593, %592, %591, %590, %589, %588, %587, %586, %585, %584, %583, %582, %581, %580, %579, %578, %577, %576, %575, %574, %573, %572, %571, %570, %569, %568, %567, %566, %565, %564, %563, %562, %561, %560, %559, %558, %557, %556, %555, %554, %553, %552, %551, %550, %549, %548, %547, %546, %545, %544, %543, %542, %541, %540, %539, %538, %537, %536, %535, %534, %533, %532, %531, %530 @@ -2726,7 +2726,7 @@ define linkonce_odr dso_local void @_ZN19cmListFileBacktraceD2Ev(ptr noundef non %11 = load ptr, ptr %3, align 8 %12 = getelementptr inbounds i8, ptr %11, i64 16 %13 = load ptr, ptr %12, align 8 - tail call void %13(ptr noundef nonnull align 8 dereferenceable(16) %3) #17 + tail call void %13(ptr noundef nonnull align 8 dereferenceable(16) %3) #16 br label %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i.i 14: ; preds = %4 @@ -2752,7 +2752,7 @@ define linkonce_odr dso_local void @_ZN19cmListFileBacktraceD2Ev(ptr noundef non %23 = load ptr, ptr %3, align 8 %24 = getelementptr inbounds i8, ptr %23, i64 16 %25 = load ptr, ptr %24, align 8 - tail call void %25(ptr noundef nonnull align 8 dereferenceable(16) %3) #17 + tail call void %25(ptr noundef nonnull align 8 dereferenceable(16) %3) #16 %26 = getelementptr inbounds i8, ptr %3, i64 12 %27 = load i8, ptr @__libc_single_threaded, align 1 %.not.i.i.i.i.i.i.i = icmp eq i8 %27, 0 @@ -2777,7 +2777,7 @@ _ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_cold %35 = load ptr, ptr %3, align 8 %36 = getelementptr inbounds i8, ptr %35, i64 24 %37 = load ptr, ptr %36, align 8 - tail call void %37(ptr noundef nonnull align 8 dereferenceable(16) %3) #17 + tail call void %37(ptr noundef nonnull align 8 dereferenceable(16) %3) #16 br label %_ZN12cmConstStackI17cmListFileContext19cmListFileBacktraceED2Ev.exit _ZN12cmConstStackI17cmListFileContext19cmListFileBacktraceED2Ev.exit: ; preds = %1, %20, %33, %_ZNSt16_Sp_counted_baseILN9__gnu_cxx12_Lock_policyE2EE24_M_release_last_use_coldEv.exit.sink.split.i.i.i.i.i @@ -2815,72 +2815,55 @@ declare ptr @_ZNK7cmState24GetInitializedCacheValueERKNSt7__cxx1112basic_stringI define dso_local noundef zeroext i1 @_ZN10cmPolicies11GetPolicyIDEPKcRNS_8PolicyIDE(ptr noundef %0, ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) %1) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { %3 = alloca i64, align 8 call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %3) - %4 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #19 + %4 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #18 %.not.i = icmp eq i64 %4, 7 - br i1 %.not.i, label %5, label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit - -5: ; preds = %2 - %6 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #17 - %7 = icmp eq i64 %6, 0 - br i1 %7, label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit, label %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i - -_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i: ; preds = %5 - %.sroa.speculated.i.i.i.i.i = tail call i64 @llvm.umin.i64(i64 %6, i64 3) - %bcmp.i.i.i = tail call i32 @bcmp(ptr %0, ptr nonnull @.str.203, i64 %.sroa.speculated.i.i.i.i.i) - %8 = icmp eq i32 %bcmp.i.i.i, 0 - %9 = icmp ugt i64 %6, 2 - %or.cond.i = and i1 %9, %8 - br i1 %or.cond.i, label %10, label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit - -10: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i - %.not.i.i.i = icmp ult i64 %6, 4 - br i1 %.not.i.i.i, label %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.preheader.i.preheader, label %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i12.i - -_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i12.i: ; preds = %10 - %11 = getelementptr i8, ptr %0, i64 %6 - %12 = getelementptr i8, ptr %11, i64 -4 - %bcmp.i.i13.i = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(4) %12, ptr noundef nonnull dereferenceable(4) @.str.204, i64 4) - %13 = icmp eq i32 %bcmp.i.i13.i, 0 - br i1 %13, label %_Z18cmHasLiteralPrefixILm4EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.thread17.sink.split.i, label %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.preheader.i.preheader - -_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.preheader.i.preheader: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i12.i, %10 - br label %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.preheader.i - -_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.i: ; preds = %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.preheader.i + br i1 %.not.i, label %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i, label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit + +_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i: ; preds = %2 + %bcmp.i.i.i = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(3) %0, ptr noundef nonnull dereferenceable(3) @.str.203, i64 3) + %5 = icmp eq i32 %bcmp.i.i.i, 0 + br i1 %5, label %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.i, label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit + +_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.i: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i + %6 = getelementptr i8, ptr %0, i64 3 + %bcmp.i.i13.i = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(4) %6, ptr noundef nonnull dereferenceable(4) @.str.204, i64 4) + %7 = icmp eq i32 %bcmp.i.i13.i, 0 + br i1 %7, label %_Z18cmHasLiteralPrefixILm4EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.thread.sink.split.i, label %.preheader.i + +8: ; preds = %.preheader.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, 7 - br i1 %exitcond.not.i, label %17, label %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.preheader.i, !llvm.loop !82 - -_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.preheader.i: ; preds = %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.preheader.i.preheader, %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.i - %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.i ], [ 3, %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.preheader.i.preheader ] - %14 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv.i - %15 = load i8, ptr %14, align 1 - %16 = sext i8 %15 to i32 - %isdigittmp.i = add nsw i32 %16, -48 + br i1 %exitcond.not.i, label %12, label %.preheader.i, !llvm.loop !82 + +.preheader.i: ; preds = %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.i, %8 + %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %8 ], [ 3, %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.i ] + %9 = getelementptr inbounds i8, ptr %0, i64 %indvars.iv.i + %10 = load i8, ptr %9, align 1 + %11 = sext i8 %10 to i32 + %isdigittmp.i = add nsw i32 %11, -48 %isdigit.i = icmp ult i32 %isdigittmp.i, 10 - br i1 %isdigit.i, label %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.i, label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit + br i1 %isdigit.i, label %8, label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit -17: ; preds = %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.i - %18 = getelementptr inbounds i8, ptr %0, i64 3 - %19 = call noundef zeroext i1 @_Z11cmStrToLongPKcPl(ptr noundef nonnull %18, ptr noundef nonnull %3) - br i1 %19, label %20, label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit +12: ; preds = %8 + %13 = call noundef zeroext i1 @_Z11cmStrToLongPKcPl(ptr noundef nonnull %6, ptr noundef nonnull %3) + br i1 %13, label %14, label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit -20: ; preds = %17 - %21 = load i64, ptr %3, align 8 - %22 = icmp sgt i64 %21, 162 - br i1 %22, label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit, label %23 +14: ; preds = %12 + %15 = load i64, ptr %3, align 8 + %16 = icmp sgt i64 %15, 162 + br i1 %16, label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit, label %17 -23: ; preds = %20 - %24 = trunc i64 %21 to i32 - br label %_Z18cmHasLiteralPrefixILm4EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.thread17.sink.split.i +17: ; preds = %14 + %18 = trunc i64 %15 to i32 + br label %_Z18cmHasLiteralPrefixILm4EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.thread.sink.split.i -_Z18cmHasLiteralPrefixILm4EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.thread17.sink.split.i: ; preds = %23, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i12.i - %.sink.i = phi i32 [ %24, %23 ], [ 0, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i12.i ] +_Z18cmHasLiteralPrefixILm4EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.thread.sink.split.i: ; preds = %17, %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.i + %.sink.i = phi i32 [ %18, %17 ], [ 0, %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.i ] store i32 %.sink.i, ptr %1, align 4 br label %_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit -_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit: ; preds = %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.preheader.i, %2, %5, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i, %17, %20, %_Z18cmHasLiteralPrefixILm4EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.thread17.sink.split.i - %.010.i = phi i1 [ false, %2 ], [ false, %17 ], [ false, %20 ], [ false, %5 ], [ false, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i ], [ true, %_Z18cmHasLiteralPrefixILm4EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.thread17.sink.split.i ], [ false, %_Z18cmHasLiteralSuffixILm5EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.preheader.i ] +_ZL10stringToIdPKcRN10cmPolicies8PolicyIDE.exit: ; preds = %.preheader.i, %2, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i, %12, %14, %_Z18cmHasLiteralPrefixILm4EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.thread.sink.split.i + %.010.i = phi i1 [ false, %2 ], [ false, %12 ], [ false, %14 ], [ false, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i.i.i.i ], [ true, %_Z18cmHasLiteralPrefixILm4EEbSt17basic_string_viewIcSt11char_traitsIcEERAT__Kc.exit.thread.sink.split.i ], [ false, %.preheader.i ] call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %3) ret i1 %.010.i } @@ -2897,7 +2880,7 @@ define dso_local void @_ZN10cmPolicies16GetPolicyWarningB5cxx11ENS_8PolicyIDE(pt %6 = getelementptr inbounds i8, ptr %3, i64 16 store ptr null, ptr %6, align 8, !alias.scope !83, !noalias !86 %7 = getelementptr inbounds i8, ptr %3, i64 24 - %8 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %4) #17, !noalias !86 + %8 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %4) #16, !noalias !86 store i64 %8, ptr %7, align 8, !alias.scope !89, !noalias !86 %.sroa.2.0..sroa_idx.i11.i = getelementptr inbounds i8, ptr %3, i64 32 store ptr %4, ptr %.sroa.2.0..sroa_idx.i11.i, align 8, !alias.scope !89, !noalias !86 @@ -2910,7 +2893,7 @@ define dso_local void @_ZN10cmPolicies16GetPolicyWarningB5cxx11ENS_8PolicyIDE(pt %11 = getelementptr inbounds i8, ptr %3, i64 64 store ptr null, ptr %11, align 8, !alias.scope !92, !noalias !86 %12 = getelementptr inbounds i8, ptr %3, i64 72 - %13 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #17, !noalias !86 + %13 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #16, !noalias !86 store i64 %13, ptr %12, align 8, !alias.scope !95, !noalias !86 %.sroa.2.0..sroa_idx.i29.i = getelementptr inbounds i8, ptr %3, i64 80 store ptr %5, ptr %.sroa.2.0..sroa_idx.i29.i, align 8, !alias.scope !95, !noalias !86 @@ -2966,7 +2949,7 @@ define dso_local void @_ZN10cmPolicies26GetPolicyDeprecatedWarningB5cxx11ENS_8Po %5 = getelementptr inbounds i8, ptr %3, i64 16 store ptr null, ptr %5, align 8, !alias.scope !107, !noalias !110 %6 = getelementptr inbounds i8, ptr %3, i64 24 - %7 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %4) #17, !noalias !110 + %7 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %4) #16, !noalias !110 store i64 %7, ptr %6, align 8, !alias.scope !113, !noalias !110 %.sroa.2.0..sroa_idx.i7.i = getelementptr inbounds i8, ptr %3, i64 32 store ptr %4, ptr %.sroa.2.0..sroa_idx.i7.i, align 8, !alias.scope !113, !noalias !110 @@ -3006,7 +2989,7 @@ define dso_local void @_ZN10cmPolicies22GetRequiredPolicyErrorB5cxx11ENS_8Policy define linkonce_odr dso_local void @_Z8cmStrCatIRA8_KcPS0_JRA21_S0_S3_RA28_S0_S3_RA156_S0_S3_RA73_S0_S3_RA75_S0_EENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_(ptr dead_on_unwind noalias writable sret(%"class.std::__cxx11::basic_string") align 8 %0, ptr noundef nonnull align 1 dereferenceable(8) %1, ptr noundef nonnull align 8 dereferenceable(8) %2, ptr noundef nonnull align 1 dereferenceable(21) %3, ptr noundef nonnull align 8 dereferenceable(8) %4, ptr noundef nonnull align 1 dereferenceable(28) %5, ptr noundef nonnull align 8 dereferenceable(8) %6, ptr noundef nonnull align 1 dereferenceable(156) %7, ptr noundef nonnull align 8 dereferenceable(8) %8, ptr noundef nonnull align 1 dereferenceable(73) %9, ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef nonnull align 1 dereferenceable(75) %11) local_unnamed_addr #3 comdat personality ptr @__gxx_personality_v0 { _ZZ8cmStrCatIRA8_KcPS0_JRA21_S0_S3_RA28_S0_S3_RA156_S0_S3_RA73_S0_S3_RA75_S0_EENSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEOT_OT0_DpOT1_ENKUlRK10cmAlphaNumE_clB5cxx11EST_.exit100: %12 = alloca [11 x %"struct.std::pair"], align 8 - %13 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #17 + %13 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #16 store i64 %13, ptr %12, align 8, !alias.scope !119 %.sroa.2.0..sroa_idx.i = getelementptr inbounds i8, ptr %12, i64 8 store ptr %1, ptr %.sroa.2.0..sroa_idx.i, align 8, !alias.scope !119 @@ -3014,14 +2997,14 @@ _ZZ8cmStrCatIRA8_KcPS0_JRA21_S0_S3_RA28_S0_S3_RA156_S0_S3_RA73_S0_S3_RA75_S0_EEN store ptr null, ptr %14, align 8, !alias.scope !119 %15 = getelementptr inbounds i8, ptr %12, i64 24 %16 = load ptr, ptr %2, align 8 - %17 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %16) #17 + %17 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %16) #16 store i64 %17, ptr %15, align 8, !alias.scope !122 %.sroa.2.0..sroa_idx.i15 = getelementptr inbounds i8, ptr %12, i64 32 store ptr %16, ptr %.sroa.2.0..sroa_idx.i15, align 8, !alias.scope !122 %18 = getelementptr inbounds i8, ptr %12, i64 40 store ptr null, ptr %18, align 8, !alias.scope !122 %19 = getelementptr inbounds i8, ptr %12, i64 48 - %20 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #17 + %20 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %3) #16 store i64 %20, ptr %19, align 8, !alias.scope !125 %.sroa.2.0..sroa_idx.i24 = getelementptr inbounds i8, ptr %12, i64 56 store ptr %3, ptr %.sroa.2.0..sroa_idx.i24, align 8, !alias.scope !125 @@ -3029,14 +3012,14 @@ _ZZ8cmStrCatIRA8_KcPS0_JRA21_S0_S3_RA28_S0_S3_RA156_S0_S3_RA73_S0_S3_RA75_S0_EEN store ptr null, ptr %21, align 8, !alias.scope !125 %22 = getelementptr inbounds i8, ptr %12, i64 72 %23 = load ptr, ptr %4, align 8 - %24 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %23) #17 + %24 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %23) #16 store i64 %24, ptr %22, align 8, !alias.scope !128 %.sroa.2.0..sroa_idx.i33 = getelementptr inbounds i8, ptr %12, i64 80 store ptr %23, ptr %.sroa.2.0..sroa_idx.i33, align 8, !alias.scope !128 %25 = getelementptr inbounds i8, ptr %12, i64 88 store ptr null, ptr %25, align 8, !alias.scope !128 %26 = getelementptr inbounds i8, ptr %12, i64 96 - %27 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #17 + %27 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %5) #16 store i64 %27, ptr %26, align 8, !alias.scope !131 %.sroa.2.0..sroa_idx.i42 = getelementptr inbounds i8, ptr %12, i64 104 store ptr %5, ptr %.sroa.2.0..sroa_idx.i42, align 8, !alias.scope !131 @@ -3044,14 +3027,14 @@ _ZZ8cmStrCatIRA8_KcPS0_JRA21_S0_S3_RA28_S0_S3_RA156_S0_S3_RA73_S0_S3_RA75_S0_EEN store ptr null, ptr %28, align 8, !alias.scope !131 %29 = getelementptr inbounds i8, ptr %12, i64 120 %30 = load ptr, ptr %6, align 8 - %31 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %30) #17 + %31 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %30) #16 store i64 %31, ptr %29, align 8, !alias.scope !134 %.sroa.2.0..sroa_idx.i51 = getelementptr inbounds i8, ptr %12, i64 128 store ptr %30, ptr %.sroa.2.0..sroa_idx.i51, align 8, !alias.scope !134 %32 = getelementptr inbounds i8, ptr %12, i64 136 store ptr null, ptr %32, align 8, !alias.scope !134 %33 = getelementptr inbounds i8, ptr %12, i64 144 - %34 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #17 + %34 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %7) #16 store i64 %34, ptr %33, align 8, !alias.scope !137 %.sroa.2.0..sroa_idx.i60 = getelementptr inbounds i8, ptr %12, i64 152 store ptr %7, ptr %.sroa.2.0..sroa_idx.i60, align 8, !alias.scope !137 @@ -3059,14 +3042,14 @@ _ZZ8cmStrCatIRA8_KcPS0_JRA21_S0_S3_RA28_S0_S3_RA156_S0_S3_RA73_S0_S3_RA75_S0_EEN store ptr null, ptr %35, align 8, !alias.scope !137 %36 = getelementptr inbounds i8, ptr %12, i64 168 %37 = load ptr, ptr %8, align 8 - %38 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %37) #17 + %38 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %37) #16 store i64 %38, ptr %36, align 8, !alias.scope !140 %.sroa.2.0..sroa_idx.i69 = getelementptr inbounds i8, ptr %12, i64 176 store ptr %37, ptr %.sroa.2.0..sroa_idx.i69, align 8, !alias.scope !140 %39 = getelementptr inbounds i8, ptr %12, i64 184 store ptr null, ptr %39, align 8, !alias.scope !140 %40 = getelementptr inbounds i8, ptr %12, i64 192 - %41 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #17 + %41 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %9) #16 store i64 %41, ptr %40, align 8, !alias.scope !143 %.sroa.2.0..sroa_idx.i78 = getelementptr inbounds i8, ptr %12, i64 200 store ptr %9, ptr %.sroa.2.0..sroa_idx.i78, align 8, !alias.scope !143 @@ -3074,14 +3057,14 @@ _ZZ8cmStrCatIRA8_KcPS0_JRA21_S0_S3_RA28_S0_S3_RA156_S0_S3_RA73_S0_S3_RA75_S0_EEN store ptr null, ptr %42, align 8, !alias.scope !143 %43 = getelementptr inbounds i8, ptr %12, i64 216 %44 = load ptr, ptr %10, align 8 - %45 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %44) #17 + %45 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %44) #16 store i64 %45, ptr %43, align 8, !alias.scope !146 %.sroa.2.0..sroa_idx.i87 = getelementptr inbounds i8, ptr %12, i64 224 store ptr %44, ptr %.sroa.2.0..sroa_idx.i87, align 8, !alias.scope !146 %46 = getelementptr inbounds i8, ptr %12, i64 232 store ptr null, ptr %46, align 8, !alias.scope !146 %47 = getelementptr inbounds i8, ptr %12, i64 240 - %48 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %11) #17 + %48 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %11) #16 store i64 %48, ptr %47, align 8, !alias.scope !149 %.sroa.2.0..sroa_idx.i96 = getelementptr inbounds i8, ptr %12, i64 248 store ptr %11, ptr %.sroa.2.0..sroa_idx.i96, align 8, !alias.scope !149 @@ -3113,7 +3096,7 @@ define dso_local void @_ZN10cmPolicies28GetRequiredAlwaysPolicyErrorB5cxx11ENS_8 %4 = alloca %"class.std::__cxx11::basic_string", align 8 %5 = alloca %"class.std::allocator", align 1 %6 = tail call fastcc noundef ptr @_ZL10idToStringN10cmPolicies8PolicyIDE(i32 noundef %1) - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #17 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #16 %7 = invoke noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %4) to label %.noexc unwind label %38 @@ -3126,7 +3109,7 @@ define dso_local void @_ZN10cmPolicies28GetRequiredAlwaysPolicyErrorB5cxx11ENS_8 br i1 %8, label %9, label %13 9: ; preds = %.noexc5 - invoke void @_ZSt19__throw_logic_errorPKc(ptr noundef nonnull @.str.410) #18 + invoke void @_ZSt19__throw_logic_errorPKc(ptr noundef nonnull @.str.410) #17 to label %10 unwind label %11 10: ; preds = %9 @@ -3135,17 +3118,17 @@ define dso_local void @_ZN10cmPolicies28GetRequiredAlwaysPolicyErrorB5cxx11ENS_8 11: ; preds = %13, %9 %12 = landingpad { ptr, i32 } cleanup - call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #17 + call void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1) %4) #16 br label %.body 13: ; preds = %.noexc5 - %14 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %6) #17 + %14 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %6) #16 %15 = getelementptr inbounds i8, ptr %6, i64 %14 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %4, ptr noundef nonnull %6, ptr noundef nonnull %15) to label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit unwind label %11 _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; preds = %13 - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #17 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #16 %16 = call fastcc noundef ptr @_ZL11idToVersionN10cmPolicies8PolicyIDE(i32 noundef %1) call void @llvm.lifetime.start.p0(i64 168, ptr nonnull %3) store i64 7, ptr %3, align 8, !alias.scope !152, !noalias !155 @@ -3154,7 +3137,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr %17 = getelementptr inbounds i8, ptr %3, i64 16 store ptr null, ptr %17, align 8, !alias.scope !152, !noalias !155 %18 = getelementptr inbounds i8, ptr %3, i64 24 - %19 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #17, !noalias !155 + %19 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #16, !noalias !155 %20 = extractvalue { i64, ptr } %19, 0 %21 = extractvalue { i64, ptr } %19, 1 store i64 %20, ptr %18, align 8, !alias.scope !158, !noalias !155 @@ -3169,7 +3152,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr %24 = getelementptr inbounds i8, ptr %3, i64 64 store ptr null, ptr %24, align 8, !alias.scope !161, !noalias !155 %25 = getelementptr inbounds i8, ptr %3, i64 72 - %26 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %16) #17, !noalias !155 + %26 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %16) #16, !noalias !155 store i64 %26, ptr %25, align 8, !alias.scope !164, !noalias !155 %.sroa.2.0..sroa_idx.i29.i = getelementptr inbounds i8, ptr %3, i64 80 store ptr %16, ptr %.sroa.2.0..sroa_idx.i29.i, align 8, !alias.scope !164, !noalias !155 @@ -3182,7 +3165,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr %29 = getelementptr inbounds i8, ptr %3, i64 112 store ptr null, ptr %29, align 8, !alias.scope !167, !noalias !155 %30 = getelementptr inbounds i8, ptr %3, i64 120 - %31 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #17, !noalias !155 + %31 = call { i64, ptr } @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEcvSt17basic_string_viewIcS2_EEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #16, !noalias !155 %32 = extractvalue { i64, ptr } %31, 0 %33 = extractvalue { i64, ptr } %31, 1 store i64 %32, ptr %30, align 8, !alias.scope !170, !noalias !155 @@ -3201,7 +3184,7 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr 37: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit call void @llvm.lifetime.end.p0(i64 168, ptr nonnull %3) - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #16 ret void 38: ; preds = %.noexc, %2 @@ -3211,13 +3194,13 @@ _ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; pr .body: ; preds = %11, %38 %eh.lpad-body = phi { ptr, i32 } [ %39, %38 ], [ %12, %11 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #17 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %5) #16 br label %42 40: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit %41 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #16 br label %42 42: ; preds = %40, %.body @@ -3403,8 +3386,8 @@ _ZNKSt6bitsetILm489EE4noneEv.exit: ; preds = %2 ; Function Attrs: noreturn nounwind uwtable define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) local_unnamed_addr #9 comdat { - %2 = tail call ptr @__cxa_begin_catch(ptr %0) #17 - tail call void @_ZSt9terminatev() #20 + %2 = tail call ptr @__cxa_begin_catch(ptr %0) #16 + tail call void @_ZSt9terminatev() #19 unreachable } @@ -3463,7 +3446,7 @@ define linkonce_odr dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traits %16 = landingpad { ptr, i32 } catch ptr null %17 = extractvalue { ptr, i32 } %16, 0 - tail call void @__clang_call_terminate(ptr %17) #20 + tail call void @__clang_call_terminate(ptr %17) #19 unreachable 18: ; preds = %13, %10 @@ -3472,7 +3455,7 @@ define linkonce_odr dso_local void @_ZNSt7__cxx1112basic_stringIcSt11char_traits to label %20 unwind label %22 20: ; preds = %18 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %19, ptr noundef %1, ptr noundef %2) #17 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_S_copy_charsEPcPKcS7_(ptr noundef %19, ptr noundef %1, ptr noundef %2) #16 store ptr null, ptr %5, align 8 %21 = load i64, ptr %4, align 8 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_set_lengthEm(ptr noundef nonnull align 8 dereferenceable(32) %0, i64 noundef %21) @@ -3484,7 +3467,7 @@ _ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_ 22: ; preds = %20, %18 %23 = landingpad { ptr, i32 } cleanup - call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #17 + call void @_ZZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tagEN6_GuardD2Ev(ptr noundef nonnull align 8 dereferenceable(8) %5) #16 resume { ptr, i32 } %23 } @@ -3518,7 +3501,7 @@ define linkonce_odr dso_local void @_ZZNSt7__cxx1112basic_stringIcSt11char_trait %6 = landingpad { ptr, i32 } catch ptr null %7 = extractvalue { ptr, i32 } %6, 0 - tail call void @__clang_call_terminate(ptr %7) #20 + tail call void @__clang_call_terminate(ptr %7) #19 unreachable } @@ -3530,9 +3513,9 @@ declare void @_ZNSaIcED2Ev(ptr noundef nonnull align 1 dereferenceable(1)) unnam ; Function Attrs: uwtable define internal void @_GLOBAL__sub_I_cmPolicies.cxx() #13 section ".text.startup" { tail call void @_ZN5cmsys18SystemToolsManagerC1Ev(ptr noundef nonnull align 1 dereferenceable(1) @_ZN5cmsysL26SystemToolsManagerInstanceE) - %1 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN5cmsys18SystemToolsManagerD1Ev, ptr nonnull @_ZN5cmsysL26SystemToolsManagerInstanceE, ptr nonnull @__dso_handle) #17 - tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) @_ZL18cmPropertySentinalB5cxx11) #17 - %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev, ptr nonnull @_ZL18cmPropertySentinalB5cxx11, ptr nonnull @__dso_handle) #17 + %1 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN5cmsys18SystemToolsManagerD1Ev, ptr nonnull @_ZN5cmsysL26SystemToolsManagerInstanceE, ptr nonnull @__dso_handle) #16 + tail call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1Ev(ptr noundef nonnull align 8 dereferenceable(32) @_ZL18cmPropertySentinalB5cxx11) #16 + %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev, ptr nonnull @_ZL18cmPropertySentinalB5cxx11, ptr nonnull @__dso_handle) #16 ret void } @@ -3542,11 +3525,8 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #14 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #14 -; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umin.i64(i64, i64) #15 - ; Function Attrs: nofree nounwind willreturn memory(argmem: read) -declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #16 +declare i32 @bcmp(ptr nocapture, ptr nocapture, i64) local_unnamed_addr #15 attributes #0 = { "frame-pointer"="all" "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 #1 = { nounwind "frame-pointer"="all" "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" } @@ -3563,12 +3543,11 @@ attributes #11 = { mustprogress nofree nounwind willreturn memory(argmem: read) attributes #12 = { noreturn "frame-pointer"="all" "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 #13 = { uwtable "frame-pointer"="all" "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 #14 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #15 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #16 = { nofree nounwind willreturn memory(argmem: read) } -attributes #17 = { nounwind } -attributes #18 = { noreturn } -attributes #19 = { nounwind willreturn memory(read) } -attributes #20 = { noreturn nounwind } +attributes #15 = { nofree nounwind willreturn memory(argmem: read) } +attributes #16 = { nounwind } +attributes #17 = { noreturn } +attributes #18 = { nounwind willreturn memory(read) } +attributes #19 = { noreturn nounwind } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/cpython/optimized/obmalloc.ll b/bench/cpython/optimized/obmalloc.ll index 188e660a9ac..ef88f519ffc 100644 --- a/bench/cpython/optimized/obmalloc.ll +++ b/bench/cpython/optimized/obmalloc.ll @@ -6315,15 +6315,11 @@ entry: %0 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %alignment) %cmp.i = icmp ult i64 %0, 2 %or.cond14 = select i1 %or.cond8.not16, i1 %cmp.i, i1 false - br i1 %or.cond14, label %if.end6, label %return + br i1 %or.cond14, label %if.end.i.i, label %return -if.end6: ; preds = %entry +if.end.i.i: ; preds = %entry %1 = tail call align 8 ptr @llvm.threadlocal.address.p0(ptr align 8 @_mi_heap_default) %2 = load ptr, ptr %1, align 8 - %or.cond.not.i.i = icmp eq i64 %0, 1 - br i1 %or.cond.not.i.i, label %if.end.i.i, label %mi_malloc_aligned.exit - -if.end.i.i: ; preds = %if.end6 %3 = tail call range(i64 0, 65) i64 @llvm.ctpop.i64(i64 %size) %cmp.i10.i.i = icmp ult i64 %3, 2 %cmp5.not.i.i = icmp uge i64 %size, %alignment @@ -6361,8 +6357,8 @@ if.else.i.i: ; preds = %if.end.i.i %call.i.i.i = tail call fastcc noalias ptr @mi_heap_malloc_zero_aligned_at(ptr noundef %2, i64 noundef %size, i64 noundef %alignment, i64 noundef 0, i1 noundef zeroext false) br label %mi_malloc_aligned.exit -mi_malloc_aligned.exit: ; preds = %if.end6, %if.then.i.i.i.i.i, %if.else.i.i - %retval.0.i.i = phi ptr [ %call.i.i.i, %if.else.i.i ], [ null, %if.end6 ], [ %call.i.i.i.i.i, %if.then.i.i.i.i.i ] +mi_malloc_aligned.exit: ; preds = %if.then.i.i.i.i.i, %if.else.i.i + %retval.0.i.i = phi ptr [ %call.i.i.i, %if.else.i.i ], [ %call.i.i.i.i.i, %if.then.i.i.i.i.i ] %cmp8 = icmp eq ptr %retval.0.i.i, null %cmp9 = icmp ne i64 %size, 0 %or.cond = and i1 %cmp9, %cmp8 diff --git a/bench/fmt/optimized/core-test.cc.ll b/bench/fmt/optimized/core-test.cc.ll index ec2adb77cc3..dea5cd211d6 100644 --- a/bench/fmt/optimized/core-test.cc.ll +++ b/bench/fmt/optimized/core-test.cc.ll @@ -7571,7 +7571,7 @@ _ZNSt10unique_ptrINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt14defaul ; Function Attrs: mustprogress uwtable define hidden void @_ZN28string_view_test_length_Test8TestBodyEv(ptr nocapture nonnull readnone align 8 %this) unnamed_addr #4 align 2 personality ptr @__gxx_personality_v0 { -entry: +_ZN7testing8internal8EqHelper7CompareImmTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit: %gtest_ar = alloca %"class.testing::AssertionResult", align 8 %ref.tmp7 = alloca %"class.testing::Message", align 8 %ref.tmp9 = alloca %"class.testing::internal::AssertHelper", align 8 @@ -7588,7 +7588,7 @@ lpad: ; preds = %if.else cleanup br label %eh.resume -if.else: ; preds = %entry +if.else: ; preds = %_ZN7testing8internal8EqHelper7CompareImmTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit invoke void @_ZN7testing7MessageC1Ev(ptr noundef nonnull align 8 dereferenceable(8) %ref.tmp7) to label %invoke.cont8 unwind label %lpad @@ -7656,7 +7656,7 @@ _ZN7testing7MessageD2Ev.exit15: ; preds = %ehcleanup, %_ZNKSt1 store ptr null, ptr %ref.tmp7, align 8 br label %eh.resume -if.end: ; preds = %entry, %_ZN7testing7MessageD2Ev.exit +if.end: ; preds = %_ZN7testing8internal8EqHelper7CompareImmTnPNSt9enable_ifIXoontsr3std11is_integralIT_EE5valuentsr3std10is_pointerIT0_EE5valueEvE4typeELPv0EEENS_15AssertionResultEPKcSC_RKS4_RKS5_.exit, %_ZN7testing7MessageD2Ev.exit %message_.i = getelementptr inbounds i8, ptr %gtest_ar, i64 8 %9 = load ptr, ptr %message_.i, align 8 %cmp.not.i.i16 = icmp eq ptr %9, null diff --git a/bench/git/optimized/fast-import.ll b/bench/git/optimized/fast-import.ll index f1447f7777e..eb2329f6599 100644 --- a/bench/git/optimized/fast-import.ll +++ b/bench/git/optimized/fast-import.ll @@ -7991,7 +7991,7 @@ define internal fastcc ptr @new_branch(ptr noundef %name) unnamed_addr #0 { entry: %call = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %name) #25 %cmp.not2.i = icmp eq i64 %call, 0 - br i1 %cmp.not2.i, label %hc_str.exit, label %while.body.i + br i1 %cmp.not2.i, label %hc_str.exit.i, label %while.body.i while.body.i: ; preds = %entry, %while.body.i %r.05.i = phi i32 [ %add.i, %while.body.i ], [ 0, %entry ] @@ -8004,39 +8004,31 @@ while.body.i: ; preds = %entry, %while.body. %conv.i = sext i8 %0 to i32 %add.i = add i32 %mul.i, %conv.i %cmp.not.i = icmp eq i64 %dec.i, 0 - br i1 %cmp.not.i, label %hc_str.exit.loopexit, label %while.body.i, !llvm.loop !9 + br i1 %cmp.not.i, label %while.body.i.i, label %while.body.i, !llvm.loop !9 -hc_str.exit.loopexit: ; preds = %while.body.i - %1 = urem i32 %add.i, 1039 - %2 = zext nneg i32 %1 to i64 - br label %hc_str.exit - -hc_str.exit: ; preds = %hc_str.exit.loopexit, %entry - %r.0.lcssa.i = phi i64 [ 0, %entry ], [ %2, %hc_str.exit.loopexit ] - %call.i = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %name) #25 - %cmp.not2.i.i = icmp eq i64 %call.i, 0 - br i1 %cmp.not2.i.i, label %hc_str.exit.i, label %while.body.i.i - -while.body.i.i: ; preds = %hc_str.exit, %while.body.i.i - %r.05.i.i = phi i32 [ %add.i.i, %while.body.i.i ], [ 0, %hc_str.exit ] - %len.addr.04.i.i = phi i64 [ %dec.i.i, %while.body.i.i ], [ %call.i, %hc_str.exit ] - %s.addr.03.i.i = phi ptr [ %incdec.ptr.i.i, %while.body.i.i ], [ %name, %hc_str.exit ] +while.body.i.i: ; preds = %while.body.i, %while.body.i.i + %r.05.i.i = phi i32 [ %add.i.i, %while.body.i.i ], [ 0, %while.body.i ] + %len.addr.04.i.i = phi i64 [ %dec.i.i, %while.body.i.i ], [ %call, %while.body.i ] + %s.addr.03.i.i = phi ptr [ %incdec.ptr.i.i, %while.body.i.i ], [ %name, %while.body.i ] %dec.i.i = add i64 %len.addr.04.i.i, -1 %mul.i.i = mul i32 %r.05.i.i, 31 %incdec.ptr.i.i = getelementptr inbounds i8, ptr %s.addr.03.i.i, i64 1 - %3 = load i8, ptr %s.addr.03.i.i, align 1 - %conv.i.i = sext i8 %3 to i32 + %1 = load i8, ptr %s.addr.03.i.i, align 1 + %conv.i.i = sext i8 %1 to i32 %add.i.i = add i32 %mul.i.i, %conv.i.i %cmp.not.i.i = icmp eq i64 %dec.i.i, 0 br i1 %cmp.not.i.i, label %hc_str.exit.loopexit.i, label %while.body.i.i, !llvm.loop !9 hc_str.exit.loopexit.i: ; preds = %while.body.i.i - %4 = urem i32 %add.i.i, 1039 + %2 = urem i32 %add.i.i, 1039 + %3 = zext nneg i32 %2 to i64 + %4 = urem i32 %add.i, 1039 %5 = zext nneg i32 %4 to i64 br label %hc_str.exit.i -hc_str.exit.i: ; preds = %hc_str.exit.loopexit.i, %hc_str.exit - %r.0.lcssa.i.i = phi i64 [ 0, %hc_str.exit ], [ %5, %hc_str.exit.loopexit.i ] +hc_str.exit.i: ; preds = %entry, %hc_str.exit.loopexit.i + %r.0.lcssa.i18 = phi i64 [ %5, %hc_str.exit.loopexit.i ], [ 0, %entry ] + %r.0.lcssa.i.i = phi i64 [ %3, %hc_str.exit.loopexit.i ], [ 0, %entry ] %6 = load ptr, ptr @branch_table, align 8 %arrayidx.i = getelementptr inbounds ptr, ptr %6, i64 %r.0.lcssa.i.i br label %for.cond.i @@ -8073,7 +8065,7 @@ if.end7: ; preds = %if.end %name10 = getelementptr inbounds i8, ptr %call8, i64 16 store ptr %call9, ptr %name10, align 8 %8 = load ptr, ptr @branch_table, align 8 - %arrayidx = getelementptr inbounds ptr, ptr %8, i64 %r.0.lcssa.i + %arrayidx = getelementptr inbounds ptr, ptr %8, i64 %r.0.lcssa.i18 %9 = load ptr, ptr %arrayidx, align 8 store ptr %9, ptr %call8, align 8 %versions = getelementptr inbounds i8, ptr %call8, i64 40 diff --git a/bench/git/optimized/fetch.ll b/bench/git/optimized/fetch.ll index 022e6702926..24dea7e8f9c 100644 --- a/bench/git/optimized/fetch.ll +++ b/bench/git/optimized/fetch.ll @@ -6566,14 +6566,13 @@ entry: %buf = getelementptr inbounds i8, ptr %haystack, i64 16 %0 = load ptr, ptr %buf, align 8 %call.i.i = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %0) #19 - %call.i.i.i = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %needle) #19 - %cmp.i.i.i = icmp ult i64 %call.i.i, %call.i.i.i + %cmp.i.i.i = icmp ult i64 %call.i.i, %call br i1 %cmp.i.i.i, label %if.else, label %ends_with.exit ends_with.exit: ; preds = %entry - %sub.i.i.i = sub nuw i64 %call.i.i, %call.i.i.i + %sub.i.i.i = sub nuw i64 %call.i.i, %call %add.ptr.i.i.i = getelementptr inbounds i8, ptr %0, i64 %sub.i.i.i - %bcmp.i.i.i = tail call i32 @bcmp(ptr readonly %add.ptr.i.i.i, ptr readonly %needle, i64 %call.i.i.i) + %bcmp.i.i.i = tail call i32 @bcmp(ptr readonly %add.ptr.i.i.i, ptr readonly %needle, i64 %call) %tobool.not.i.i.i.not = icmp eq i32 %bcmp.i.i.i, 0 br i1 %tobool.not.i.i.i.not, label %if.then, label %if.else diff --git a/bench/glslang/optimized/GlslangToSpv.cpp.ll b/bench/glslang/optimized/GlslangToSpv.cpp.ll index 4c5a5fb1263..aeb0fa7c103 100644 --- a/bench/glslang/optimized/GlslangToSpv.cpp.ll +++ b/bench/glslang/optimized/GlslangToSpv.cpp.ll @@ -9105,7 +9105,7 @@ _ZNK7glslang10TSourceLoc11getFilenameEv.exit: ; preds = %18, %30 %74 = load ptr, ptr %73, align 8 %75 = call noundef i32 %74(ptr noundef nonnull align 8 dereferenceable(184) %1) #20 %76 = icmp eq i32 %75, 23 - br i1 %76, label %487, label %77 + br i1 %76, label %485, label %77 77: ; preds = %71 %78 = call fastcc noundef i32 @_ZN12_GLOBAL__N_122TGlslangToSpvTraverser11getSymbolIdEPKN7glslang13TIntermSymbolE(ptr noundef nonnull align 8 dereferenceable(3528) %0, ptr noundef nonnull %1) @@ -9693,7 +9693,7 @@ _ZNK3spv7Builder9getTypeIdEj.exit: ; preds = %.loopexit, %393 407: ; preds = %.critedge, %405, %340 %408 = load i8, ptr %15, align 2 %409 = trunc i8 %408 to i1 - br i1 %409, label %410, label %487 + br i1 %409, label %410, label %485 410: ; preds = %407 %411 = getelementptr inbounds i8, ptr %0, i64 1576 @@ -9701,7 +9701,7 @@ _ZNK3spv7Builder9getTypeIdEj.exit: ; preds = %.loopexit, %393 %413 = getelementptr inbounds i8, ptr %412, i64 824 %414 = load i8, ptr %413, align 8 %415 = trunc i8 %414 to i1 - br i1 %415, label %416, label %487 + br i1 %415, label %416, label %485 416: ; preds = %410 %417 = load ptr, ptr %1, align 8 @@ -9718,7 +9718,7 @@ _ZNK3spv7Builder9getTypeIdEj.exit: ; preds = %.loopexit, %393 %428 = and i32 %427, 127 %.off.i38 = add nsw i32 %428, -5 %switch.i39 = icmp ult i32 %.off.i38, 2 - br i1 %switch.i39, label %429, label %487 + br i1 %switch.i39, label %429, label %485 429: ; preds = %416 %430 = load ptr, ptr %411, align 8 @@ -9732,115 +9732,107 @@ _ZNK3spv7Builder9getTypeIdEj.exit: ; preds = %.loopexit, %393 %438 = getelementptr inbounds i8, ptr %434, i64 16 %439 = load i64, ptr %438, align 8 %440 = icmp ugt i64 %439, %437 - br i1 %440, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE8_M_checkEmPKc.exit.i.i, label %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit.thread + br i1 %440, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE8_M_checkEmPKc.exit.i.i, label %446 _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE8_M_checkEmPKc.exit.i.i: ; preds = %429 - %441 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %436) #20 - %.sroa.speculated.i.i = call i64 @llvm.umin.i64(i64 %441, i64 %437) - %442 = icmp eq i64 %.sroa.speculated.i.i, 0 - br i1 %442, label %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit, label %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i + %441 = icmp eq i64 %437, 0 + br i1 %441, label %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit, label %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i _ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE8_M_checkEmPKc.exit.i.i - %443 = sub nuw i64 %439, %437 - %444 = getelementptr inbounds i8, ptr %434, i64 8 - %445 = load ptr, ptr %444, align 8 - %446 = getelementptr inbounds i8, ptr %445, i64 %443 - %bcmp.i = call i32 @bcmp(ptr %446, ptr %436, i64 %.sroa.speculated.i.i) + %442 = sub nuw i64 %439, %437 + %443 = getelementptr inbounds i8, ptr %434, i64 8 + %444 = load ptr, ptr %443, align 8 + %445 = getelementptr inbounds i8, ptr %444, i64 %442 + %bcmp.i = call i32 @bcmp(ptr %445, ptr %436, i64 %437) %.not.i.i40 = icmp eq i32 %bcmp.i, 0 - %447 = icmp eq i64 %437, %441 - %or.cond = and i1 %447, %.not.i.i40 - br i1 %or.cond, label %466, label %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit.thread - -_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit: ; preds = %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE8_M_checkEmPKc.exit.i.i - %.old = icmp eq i64 %437, %441 - br i1 %.old, label %466, label %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit.thread - -_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit.thread: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i, %429, %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit - %448 = load ptr, ptr %1, align 8 - %449 = getelementptr inbounds i8, ptr %448, i64 400 - %450 = load ptr, ptr %449, align 8 - %451 = call noundef nonnull align 8 dereferenceable(40) ptr %450(ptr noundef nonnull align 8 dereferenceable(264) %1) #20 - %452 = getelementptr inbounds i8, ptr %451, i64 8 - %453 = load ptr, ptr %452, align 8 + br i1 %.not.i.i40, label %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit, label %446 + +446: ; preds = %429, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i + %447 = load ptr, ptr %1, align 8 + %448 = getelementptr inbounds i8, ptr %447, i64 400 + %449 = load ptr, ptr %448, align 8 + %450 = call noundef nonnull align 8 dereferenceable(40) ptr %449(ptr noundef nonnull align 8 dereferenceable(264) %1) #20 + %451 = getelementptr inbounds i8, ptr %450, i64 8 + %452 = load ptr, ptr %451, align 8 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #20 - %454 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef %454, ptr noundef nonnull align 1 dereferenceable(1) %11) #20 - %455 = icmp eq ptr %453, null - br i1 %455, label %456, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit + %453 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %10) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %10, ptr noundef %453, ptr noundef nonnull align 1 dereferenceable(1) %11) #20 + %454 = icmp eq ptr %452, null + br i1 %454, label %455, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit -456: ; preds = %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit.thread +455: ; preds = %446 call void @_ZSt19__throw_logic_errorPKc(ptr noundef nonnull @.str.37) #21 unreachable -_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; preds = %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit.thread - %457 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %453) #20 - %458 = getelementptr inbounds i8, ptr %453, i64 %457 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull %453, ptr noundef nonnull %458) +_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit: ; preds = %446 + %456 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %452) #20 + %457 = getelementptr inbounds i8, ptr %452, i64 %456 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull %452, ptr noundef nonnull %457) call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %11) #20 - %459 = load ptr, ptr %411, align 8 - %460 = getelementptr inbounds i8, ptr %459, i64 760 - %461 = load ptr, ptr %460, align 8, !noalias !59 + %458 = load ptr, ptr %411, align 8 + %459 = getelementptr inbounds i8, ptr %458, i64 760 + %460 = load ptr, ptr %459, align 8, !noalias !59 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1ERKS4_(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef nonnull align 8 dereferenceable(32) %10) #20 - %462 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef %461) #20 - %463 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %12) #20 + %461 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6appendEPKc(ptr noundef nonnull align 8 dereferenceable(32) %12, ptr noundef %460) #20 + %462 = call noundef nonnull align 8 dereferenceable(32) ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEaSEOS4_(ptr noundef nonnull align 8 dereferenceable(32) %10, ptr noundef nonnull align 8 dereferenceable(32) %12) #20 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %12) #20 - %464 = getelementptr inbounds i8, ptr %0, i64 3080 - %465 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail9_Map_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS6_PKN7glslang13TIntermSymbolEESaISD_ENS_10_Select1stESt8equal_toIS6_ESt4hashIS6_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb1ELb0ELb1EEELb1EEixERS8_(ptr noundef nonnull align 1 dereferenceable(1) %464, ptr noundef nonnull align 8 dereferenceable(32) %10) - store ptr %1, ptr %465, align 8 + %463 = getelementptr inbounds i8, ptr %0, i64 3080 + %464 = call noundef nonnull align 8 dereferenceable(8) ptr @_ZNSt8__detail9_Map_baseINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS6_PKN7glslang13TIntermSymbolEESaISD_ENS_10_Select1stESt8equal_toIS6_ESt4hashIS6_ENS_18_Mod_range_hashingENS_20_Default_ranged_hashENS_20_Prime_rehash_policyENS_17_Hashtable_traitsILb1ELb0ELb1EEELb1EEixERS8_(ptr noundef nonnull align 1 dereferenceable(1) %463, ptr noundef nonnull align 8 dereferenceable(32) %10) + store ptr %1, ptr %464, align 8 br label %.sink.split -466: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i, %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit - %467 = load ptr, ptr %1, align 8 - %468 = getelementptr inbounds i8, ptr %467, i64 400 - %469 = load ptr, ptr %468, align 8 - %470 = call noundef nonnull align 8 dereferenceable(40) ptr %469(ptr noundef nonnull align 8 dereferenceable(264) %1) #20 - %471 = getelementptr inbounds i8, ptr %470, i64 8 - %472 = load ptr, ptr %471, align 8 +_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i.i, %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE8_M_checkEmPKc.exit.i.i + %465 = load ptr, ptr %1, align 8 + %466 = getelementptr inbounds i8, ptr %465, i64 400 + %467 = load ptr, ptr %466, align 8 + %468 = call noundef nonnull align 8 dereferenceable(40) ptr %467(ptr noundef nonnull align 8 dereferenceable(264) %1) #20 + %469 = getelementptr inbounds i8, ptr %468, i64 8 + %470 = load ptr, ptr %469, align 8 call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #20 - %473 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %13) #20 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef %473, ptr noundef nonnull align 1 dereferenceable(1) %14) #20 - %474 = icmp eq ptr %472, null - br i1 %474, label %475, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit41 + %471 = call noundef ptr @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE13_M_local_dataEv(ptr noundef nonnull align 8 dereferenceable(32) %13) #20 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_Alloc_hiderC1EPcRKS3_(ptr noundef nonnull align 8 dereferenceable(8) %13, ptr noundef %471, ptr noundef nonnull align 1 dereferenceable(1) %14) #20 + %472 = icmp eq ptr %470, null + br i1 %472, label %473, label %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit41 -475: ; preds = %466 +473: ; preds = %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit call void @_ZSt19__throw_logic_errorPKc(ptr noundef nonnull @.str.37) #21 unreachable -_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit41: ; preds = %466 - %476 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %472) #20 - %477 = getelementptr inbounds i8, ptr %472, i64 %476 - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull %472, ptr noundef nonnull %477) +_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit41: ; preds = %_ZNK7glslang13TIntermediate20hasCounterBufferNameERKNSt7__cxx1112basic_stringIcSt11char_traitsIcENS_14pool_allocatorIcEEEE.exit + %474 = call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %470) #20 + %475 = getelementptr inbounds i8, ptr %470, i64 %474 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE12_M_constructIPKcEEvT_S8_St20forward_iterator_tag(ptr noundef nonnull align 8 dereferenceable(32) %13, ptr noundef nonnull %470, ptr noundef nonnull %475) call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %14) #20 - %478 = getelementptr inbounds i8, ptr %0, i64 3080 - %479 = call ptr @_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PKN7glslang13TIntermSymbolEESaISC_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE4findERS7_(ptr noundef nonnull align 8 dereferenceable(56) %478, ptr noundef nonnull align 8 dereferenceable(32) %13) - %.not65 = icmp eq ptr %479, null - br i1 %.not65, label %.sink.split, label %480 + %476 = getelementptr inbounds i8, ptr %0, i64 3080 + %477 = call ptr @_ZNSt10_HashtableINSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESt4pairIKS5_PKN7glslang13TIntermSymbolEESaISC_ENSt8__detail10_Select1stESt8equal_toIS5_ESt4hashIS5_ENSE_18_Mod_range_hashingENSE_20_Default_ranged_hashENSE_20_Prime_rehash_policyENSE_17_Hashtable_traitsILb1ELb0ELb1EEEE4findERS7_(ptr noundef nonnull align 8 dereferenceable(56) %476, ptr noundef nonnull align 8 dereferenceable(32) %13) + %.not65 = icmp eq ptr %477, null + br i1 %.not65, label %.sink.split, label %478 -480: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit41 - %481 = getelementptr inbounds i8, ptr %479, i64 40 - %482 = load ptr, ptr %481, align 8 - %483 = call fastcc noundef i32 @_ZN12_GLOBAL__N_122TGlslangToSpvTraverser11getSymbolIdEPKN7glslang13TIntermSymbolE(ptr noundef nonnull align 8 dereferenceable(3528) %0, ptr noundef %482) - %.not29 = icmp eq i32 %483, 0 - br i1 %.not29, label %.sink.split, label %484 +478: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit41 + %479 = getelementptr inbounds i8, ptr %477, i64 40 + %480 = load ptr, ptr %479, align 8 + %481 = call fastcc noundef i32 @_ZN12_GLOBAL__N_122TGlslangToSpvTraverser11getSymbolIdEPKN7glslang13TIntermSymbolE(ptr noundef nonnull align 8 dereferenceable(3528) %0, ptr noundef %480) + %.not29 = icmp eq i32 %481, 0 + br i1 %.not29, label %.sink.split, label %482 -484: ; preds = %480 - %485 = call fastcc noundef i32 @_ZN12_GLOBAL__N_122TGlslangToSpvTraverser11getSymbolIdEPKN7glslang13TIntermSymbolE(ptr noundef nonnull align 8 dereferenceable(3528) %0, ptr noundef nonnull %1) - %.not30 = icmp eq i32 %485, 0 - br i1 %.not30, label %.sink.split, label %486 +482: ; preds = %478 + %483 = call fastcc noundef i32 @_ZN12_GLOBAL__N_122TGlslangToSpvTraverser11getSymbolIdEPKN7glslang13TIntermSymbolE(ptr noundef nonnull align 8 dereferenceable(3528) %0, ptr noundef nonnull %1) + %.not30 = icmp eq i32 %483, 0 + br i1 %.not30, label %.sink.split, label %484 -486: ; preds = %484 +484: ; preds = %482 call void @_ZN3spv7Builder12addExtensionEPKc(ptr noundef nonnull align 8 dereferenceable(1416) %34, ptr noundef nonnull @.str.49) - call void @_ZN3spv7Builder15addDecorationIdEjNS_10DecorationEj(ptr noundef nonnull align 8 dereferenceable(1416) %34, i32 noundef %483, i32 noundef 5634, i32 noundef %485) #20 + call void @_ZN3spv7Builder15addDecorationIdEjNS_10DecorationEj(ptr noundef nonnull align 8 dereferenceable(1416) %34, i32 noundef %481, i32 noundef 5634, i32 noundef %483) #20 br label %.sink.split -.sink.split: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit41, %484, %486, %480, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit - %.sink = phi ptr [ %10, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit ], [ %13, %480 ], [ %13, %486 ], [ %13, %484 ], [ %13, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit41 ] +.sink.split: ; preds = %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit41, %482, %484, %478, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit + %.sink = phi ptr [ %10, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit ], [ %13, %478 ], [ %13, %484 ], [ %13, %482 ], [ %13, %_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC2IS3_EEPKcRKS3_.exit41 ] call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %.sink) #20 - br label %487 + br label %485 -487: ; preds = %.sink.split, %407, %416, %410, %71 - %488 = and i8 %36, 1 - store i8 %488, ptr %35, align 8 +485: ; preds = %.sink.split, %407, %416, %410, %71 + %486 = and i8 %36, 1 + store i8 %486, ptr %35, align 8 ret void } diff --git a/bench/glslang/optimized/ParseHelper.cpp.ll b/bench/glslang/optimized/ParseHelper.cpp.ll index 74723a49d8d..bb5c4e2ff3f 100644 --- a/bench/glslang/optimized/ParseHelper.cpp.ll +++ b/bench/glslang/optimized/ParseHelper.cpp.ll @@ -32031,24 +32031,22 @@ define linkonce_odr noundef zeroext i1 @_ZN7glslang10StartsWithERKNSt7__cxx1112b %4 = getelementptr inbounds i8, ptr %0, i64 16 %5 = load i64, ptr %4, align 8 %spec.select.i.i = tail call noundef i64 @llvm.umin.i64(i64 %3, i64 %5) - %6 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #22 - %.sroa.speculated.i = tail call i64 @llvm.umin.i64(i64 %6, i64 %spec.select.i.i) - %7 = icmp eq i64 %.sroa.speculated.i, 0 - br i1 %7, label %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.thread.i, label %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i + %6 = icmp eq i64 %spec.select.i.i, 0 + br i1 %6, label %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.thread.i, label %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i _ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i: ; preds = %2 - %8 = getelementptr inbounds i8, ptr %0, i64 8 - %9 = load ptr, ptr %8, align 8 - %bcmp = tail call i32 @bcmp(ptr %9, ptr %1, i64 %.sroa.speculated.i) + %7 = getelementptr inbounds i8, ptr %0, i64 8 + %8 = load ptr, ptr %7, align 8 + %bcmp = tail call i32 @bcmp(ptr %8, ptr %1, i64 %spec.select.i.i) %.not.i = icmp eq i32 %bcmp, 0 br i1 %.not.i, label %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.thread.i, label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc.exit _ZNSt11char_traitsIcE7compareEPKcS2_m.exit.thread.i: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i, %2 - %10 = icmp eq i64 %spec.select.i.i, %6 + %9 = icmp ule i64 %3, %5 br label %_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc.exit _ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcEN7glslang14pool_allocatorIcEEE7compareEmmPKc.exit: ; preds = %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.thread.i - %.0.i = phi i1 [ false, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i ], [ %10, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.thread.i ] + %.0.i = phi i1 [ false, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.i ], [ %9, %_ZNSt11char_traitsIcE7compareEPKcS2_m.exit.thread.i ] ret i1 %.0.i } diff --git a/bench/graphviz/optimized/arrows.c.ll b/bench/graphviz/optimized/arrows.c.ll index 4662f80f078..c8a80903689 100644 --- a/bench/graphviz/optimized/arrows.c.ll +++ b/bench/graphviz/optimized/arrows.c.ll @@ -193,7 +193,7 @@ define internal fastcc void @arrow_match_name(ptr noundef %0, ptr nocapture noun br i1 %.not, label %.loopexit, label %.lr.ph .lr.ph: ; preds = %2, %.thread23 - %4 = phi i32 [ %52, %.thread23 ], [ 0, %2 ] + %4 = phi i32 [ %50, %.thread23 ], [ 0, %2 ] %.033 = phi i32 [ %.1, %.thread23 ], [ 0, %2 ] %.01432 = phi ptr [ %.0.i, %.thread23 ], [ %0, %2 ] %5 = tail call i32 @strncmp(ptr noundef nonnull readonly dereferenceable(1) %.01432, ptr noundef nonnull readonly dereferenceable(9) @.str.7, i64 noundef 8) #12 @@ -209,106 +209,104 @@ arrow_match_name_frag.exit.i: ; preds = %.lr.ph %.1.i = phi ptr [ %.011.i19.i, %arrow_match_name_frag.exit20.i ], [ %.01432, %.lr.ph ] br label %.lr.ph.i16.i -.lr.ph.i16.i: ; preds = %18, %.preheader.i - %8 = phi ptr [ %20, %18 ], [ @.str.8, %.preheader.i ] - %.016.i17.i = phi ptr [ %19, %18 ], [ @Arrowmods, %.preheader.i ] - %9 = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %8) #12 +.lr.ph.i16.i: ; preds = %17, %.preheader.i + %8 = phi ptr [ %19, %17 ], [ @.str.8, %.preheader.i ] + %.015.i17.i = phi ptr [ %18, %17 ], [ @Arrowmods, %.preheader.i ] + %9 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %8) #12 %10 = tail call i32 @strncmp(ptr noundef readonly %.1.i, ptr noundef nonnull readonly %8, i64 noundef %9) #12 %11 = icmp eq i32 %10, 0 - br i1 %11, label %12, label %18 + br i1 %11, label %12, label %17 12: ; preds = %.lr.ph.i16.i - %13 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %8) #12 - %14 = getelementptr inbounds i8, ptr %.016.i17.i, i64 8 - %15 = load i32, ptr %14, align 8 - %16 = or i32 %15, %.131.i - %17 = getelementptr inbounds i8, ptr %.1.i, i64 %13 + %13 = getelementptr inbounds i8, ptr %.015.i17.i, i64 8 + %14 = load i32, ptr %13, align 8 + %15 = or i32 %14, %.131.i + %16 = getelementptr inbounds i8, ptr %.1.i, i64 %9 br label %arrow_match_name_frag.exit20.i -18: ; preds = %.lr.ph.i16.i - %19 = getelementptr inbounds i8, ptr %.016.i17.i, i64 16 - %20 = load ptr, ptr %19, align 8 - %.not.i18.i = icmp eq ptr %20, null +17: ; preds = %.lr.ph.i16.i + %18 = getelementptr inbounds i8, ptr %.015.i17.i, i64 16 + %19 = load ptr, ptr %18, align 8 + %.not.i18.i = icmp eq ptr %19, null br i1 %.not.i18.i, label %arrow_match_name_frag.exit20.i, label %.lr.ph.i16.i -arrow_match_name_frag.exit20.i: ; preds = %18, %12 - %.4.i = phi i32 [ %16, %12 ], [ %.131.i, %18 ] - %.011.i19.i = phi ptr [ %17, %12 ], [ %.1.i, %18 ] +arrow_match_name_frag.exit20.i: ; preds = %17, %12 + %.4.i = phi i32 [ %15, %12 ], [ %.131.i, %17 ] + %.011.i19.i = phi ptr [ %16, %12 ], [ %.1.i, %17 ] %.not.i = icmp eq ptr %.1.i, %.011.i19.i br i1 %.not.i, label %.lr.ph.i21.i, label %.preheader.i -.lr.ph.i21.i: ; preds = %arrow_match_name_frag.exit20.i, %31 - %21 = phi ptr [ %33, %31 ], [ @.str.13, %arrow_match_name_frag.exit20.i ] - %.016.i22.i = phi ptr [ %32, %31 ], [ @Arrownames, %arrow_match_name_frag.exit20.i ] - %22 = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %21) #12 - %23 = tail call i32 @strncmp(ptr noundef readonly %.1.i, ptr noundef nonnull readonly %21, i64 noundef %22) #12 - %24 = icmp eq i32 %23, 0 - br i1 %24, label %25, label %31 - -25: ; preds = %.lr.ph.i21.i - %26 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %21) #12 - %27 = getelementptr inbounds i8, ptr %.016.i22.i, i64 8 - %28 = load i32, ptr %27, align 8 - %29 = or i32 %28, %.4.i - %30 = getelementptr inbounds i8, ptr %.1.i, i64 %26 +.lr.ph.i21.i: ; preds = %arrow_match_name_frag.exit20.i, %29 + %20 = phi ptr [ %31, %29 ], [ @.str.13, %arrow_match_name_frag.exit20.i ] + %.015.i22.i = phi ptr [ %30, %29 ], [ @Arrownames, %arrow_match_name_frag.exit20.i ] + %21 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %20) #12 + %22 = tail call i32 @strncmp(ptr noundef readonly %.1.i, ptr noundef nonnull readonly %20, i64 noundef %21) #12 + %23 = icmp eq i32 %22, 0 + br i1 %23, label %24, label %29 + +24: ; preds = %.lr.ph.i21.i + %25 = getelementptr inbounds i8, ptr %.015.i22.i, i64 8 + %26 = load i32, ptr %25, align 8 + %27 = or i32 %26, %.4.i + %28 = getelementptr inbounds i8, ptr %.1.i, i64 %21 br label %arrow_match_shape.exit -31: ; preds = %.lr.ph.i21.i - %32 = getelementptr inbounds i8, ptr %.016.i22.i, i64 16 - %33 = load ptr, ptr %32, align 8 - %.not.i23.i = icmp eq ptr %33, null +29: ; preds = %.lr.ph.i21.i + %30 = getelementptr inbounds i8, ptr %.015.i22.i, i64 16 + %31 = load ptr, ptr %30, align 8 + %.not.i23.i = icmp eq ptr %31, null br i1 %.not.i23.i, label %arrow_match_shape.exit, label %.lr.ph.i21.i -arrow_match_shape.exit: ; preds = %31, %arrow_match_name_frag.exit.i, %25 - %.030.i = phi i32 [ 49, %arrow_match_name_frag.exit.i ], [ %29, %25 ], [ %.4.i, %31 ] - %.0.i = phi ptr [ %7, %arrow_match_name_frag.exit.i ], [ %30, %25 ], [ %.1.i, %31 ] +arrow_match_shape.exit: ; preds = %29, %arrow_match_name_frag.exit.i, %24 + %.030.i = phi i32 [ 49, %arrow_match_name_frag.exit.i ], [ %27, %24 ], [ %.4.i, %29 ] + %.0.i = phi ptr [ %7, %arrow_match_name_frag.exit.i ], [ %28, %24 ], [ %.1.i, %29 ] %.not14.i = icmp ne i32 %.030.i, 0 - %34 = and i32 %.030.i, 15 - %.not15.i = icmp eq i32 %34, 0 + %32 = and i32 %.030.i, 15 + %.not15.i = icmp eq i32 %32, 0 %or.cond.i = and i1 %.not14.i, %.not15.i - %35 = zext i1 %or.cond.i to i32 - %spec.select.i = or disjoint i32 %.030.i, %35 - %36 = icmp eq i32 %spec.select.i, 0 - br i1 %36, label %37, label %39 + %33 = zext i1 %or.cond.i to i32 + %spec.select.i = or disjoint i32 %.030.i, %33 + %34 = icmp eq i32 %spec.select.i, 0 + br i1 %34, label %35, label %37 -37: ; preds = %arrow_match_shape.exit - %38 = tail call i32 (i32, ptr, ...) @agerr(i32 noundef 0, ptr noundef nonnull @.str.6, ptr noundef nonnull %.01432) #11 +35: ; preds = %arrow_match_shape.exit + %36 = tail call i32 (i32, ptr, ...) @agerr(i32 noundef 0, ptr noundef nonnull @.str.6, ptr noundef nonnull %.01432) #11 br label %.loopexit -39: ; preds = %arrow_match_shape.exit - %40 = icmp eq i32 %spec.select.i, 8 - %41 = icmp eq i32 %.033, 3 - %or.cond = select i1 %40, i1 %41, i1 false - br i1 %or.cond, label %.thread23, label %42 - -42: ; preds = %39 - %43 = icmp eq i32 %.033, 0 - %or.cond3 = select i1 %40, i1 %43, i1 false - br i1 %or.cond3, label %44, label %47 - -44: ; preds = %42 - %45 = load i8, ptr %.0.i, align 1 - %46 = icmp eq i8 %45, 0 - br i1 %46, label %.thread23, label %47 - -47: ; preds = %42, %44 - %48 = add nsw i32 %.033, 1 - %49 = shl nsw i32 %.033, 3 - %50 = shl i32 %spec.select.i, %49 - %51 = or i32 %4, %50 - store i32 %51, ptr %1, align 4 +37: ; preds = %arrow_match_shape.exit + %38 = icmp eq i32 %spec.select.i, 8 + %39 = icmp eq i32 %.033, 3 + %or.cond = select i1 %38, i1 %39, i1 false + br i1 %or.cond, label %.thread23, label %40 + +40: ; preds = %37 + %41 = icmp eq i32 %.033, 0 + %or.cond3 = select i1 %38, i1 %41, i1 false + br i1 %or.cond3, label %42, label %45 + +42: ; preds = %40 + %43 = load i8, ptr %.0.i, align 1 + %44 = icmp eq i8 %43, 0 + br i1 %44, label %.thread23, label %45 + +45: ; preds = %40, %42 + %46 = add nsw i32 %.033, 1 + %47 = shl nsw i32 %.033, 3 + %48 = shl i32 %spec.select.i, %47 + %49 = or i32 %4, %48 + store i32 %49, ptr %1, align 4 br label %.thread23 -.thread23: ; preds = %44, %39, %47 - %52 = phi i32 [ %51, %47 ], [ %4, %39 ], [ %4, %44 ] - %.1 = phi i32 [ %48, %47 ], [ 3, %39 ], [ 0, %44 ] - %53 = load i8, ptr %.0.i, align 1 - %54 = icmp ne i8 %53, 0 - %55 = icmp slt i32 %.1, 4 - %56 = select i1 %54, i1 %55, i1 false - br i1 %56, label %.lr.ph, label %.loopexit +.thread23: ; preds = %42, %37, %45 + %50 = phi i32 [ %49, %45 ], [ %4, %37 ], [ %4, %42 ] + %.1 = phi i32 [ %46, %45 ], [ 3, %37 ], [ 0, %42 ] + %51 = load i8, ptr %.0.i, align 1 + %52 = icmp ne i8 %51, 0 + %53 = icmp slt i32 %.1, 4 + %54 = select i1 %52, i1 %53, i1 false + br i1 %54, label %.lr.ph, label %.loopexit -.loopexit: ; preds = %.thread23, %2, %37 +.loopexit: ; preds = %.thread23, %2, %35 ret void } diff --git a/bench/hwloc/optimized/lstopo-lstopo-text.ll b/bench/hwloc/optimized/lstopo-lstopo-text.ll index ed8b7bc456a..c11ea260057 100644 --- a/bench/hwloc/optimized/lstopo-lstopo-text.ll +++ b/bench/hwloc/optimized/lstopo-lstopo-text.ll @@ -1730,55 +1730,55 @@ output_memattr_obj.exit77: ; preds = %96, %99 %119 = load ptr, ptr %118, align 8 %120 = call i32 @hwloc_bitmap_isincluded(ptr noundef readonly %114, ptr noundef %119) #17 %.not13.i.i = icmp eq i32 %120, 0 - br i1 %.not13.i.i, label %output_memattr_initiator.exit, label %.lr.ph.split.us.i.i + br i1 %.not13.i.i, label %output_memattr_initiator.exit, label %hwloc_get_child_covering_cpuset.exit.preheader.i.i -.lr.ph.split.us.i.i: ; preds = %116 +hwloc_get_child_covering_cpuset.exit.preheader.i.i: ; preds = %116 %121 = getelementptr inbounds i8, ptr %117, i64 120 - %.01.i.us23.i.i = load ptr, ptr %121, align 8 - %.not112.i.us24.i.i = icmp eq ptr %.01.i.us23.i.i, null - br i1 %.not112.i.us24.i.i, label %hwloc_get_obj_covering_cpuset.exit.thread36.i, label %.lr.ph.i.preheader.us.i.i - -.lr.ph.i.us.i.i: ; preds = %.lr.ph.i.preheader.us.i.i, %126 - %.03.i.us.i.i = phi ptr [ %.0.i.us.i.i, %126 ], [ %.01.i.us26.i.i, %.lr.ph.i.preheader.us.i.i ] - %122 = getelementptr inbounds i8, ptr %.03.i.us.i.i, i64 184 - %123 = load ptr, ptr %122, align 8 - %.not12.i.us.i.i = icmp eq ptr %123, null - br i1 %.not12.i.us.i.i, label %126, label %124 - -124: ; preds = %.lr.ph.i.us.i.i - %125 = call i32 @hwloc_bitmap_isincluded(ptr noundef readonly %114, ptr noundef nonnull %123) #17 - %.not13.i.us.i.i = icmp eq i32 %125, 0 - br i1 %.not13.i.us.i.i, label %126, label %hwloc_get_child_covering_cpuset.exit.loopexit.us.i.i - -126: ; preds = %124, %.lr.ph.i.us.i.i - %127 = getelementptr inbounds i8, ptr %.03.i.us.i.i, i64 88 - %.0.i.us.i.i = load ptr, ptr %127, align 8 - %.not11.i.us.i.i = icmp eq ptr %.0.i.us.i.i, null - br i1 %.not11.i.us.i.i, label %hwloc_get_obj_covering_cpuset.exit.i, label %.lr.ph.i.us.i.i, !llvm.loop !26 - -.lr.ph.i.preheader.us.i.i: ; preds = %.lr.ph.split.us.i.i, %hwloc_get_child_covering_cpuset.exit.loopexit.us.i.i - %.01.i.us26.i.i = phi ptr [ %.01.i.us.i.i, %hwloc_get_child_covering_cpuset.exit.loopexit.us.i.i ], [ %.01.i.us23.i.i, %.lr.ph.split.us.i.i ] - %.01120.us25.i.i = phi ptr [ %.03.i.us.i.i, %hwloc_get_child_covering_cpuset.exit.loopexit.us.i.i ], [ %117, %.lr.ph.split.us.i.i ] - br label %.lr.ph.i.us.i.i - -hwloc_get_child_covering_cpuset.exit.loopexit.us.i.i: ; preds = %124 - %128 = getelementptr inbounds i8, ptr %.03.i.us.i.i, i64 120 - %.01.i.us.i.i = load ptr, ptr %128, align 8 - %.not112.i.us.i.i = icmp eq ptr %.01.i.us.i.i, null - br i1 %.not112.i.us.i.i, label %hwloc_get_obj_covering_cpuset.exit.thread36.i, label %.lr.ph.i.preheader.us.i.i - -hwloc_get_obj_covering_cpuset.exit.i: ; preds = %126 - %.not.i78 = icmp eq ptr %.01120.us25.i.i, null + %.01.i20.i.i = load ptr, ptr %121, align 8 + %.not112.i21.i.i = icmp eq ptr %.01.i20.i.i, null + br i1 %.not112.i21.i.i, label %hwloc_get_obj_covering_cpuset.exit.thread36.i, label %.lr.ph.i.preheader.i.i + +hwloc_get_child_covering_cpuset.exit.loopexit.i.i: ; preds = %125 + %122 = getelementptr inbounds i8, ptr %.03.i.i.i, i64 120 + %.01.i.i.i = load ptr, ptr %122, align 8 + %.not112.i.i.i = icmp eq ptr %.01.i.i.i, null + br i1 %.not112.i.i.i, label %hwloc_get_obj_covering_cpuset.exit.thread36.i, label %.lr.ph.i.preheader.i.i + +.lr.ph.i.preheader.i.i: ; preds = %hwloc_get_child_covering_cpuset.exit.preheader.i.i, %hwloc_get_child_covering_cpuset.exit.loopexit.i.i + %.01.i23.i.i = phi ptr [ %.01.i.i.i, %hwloc_get_child_covering_cpuset.exit.loopexit.i.i ], [ %.01.i20.i.i, %hwloc_get_child_covering_cpuset.exit.preheader.i.i ] + %.01122.i.i = phi ptr [ %.03.i.i.i, %hwloc_get_child_covering_cpuset.exit.loopexit.i.i ], [ %117, %hwloc_get_child_covering_cpuset.exit.preheader.i.i ] + br label %.lr.ph.i.i.i + +.lr.ph.i.i.i: ; preds = %127, %.lr.ph.i.preheader.i.i + %.03.i.i.i = phi ptr [ %.0.i.i.i, %127 ], [ %.01.i23.i.i, %.lr.ph.i.preheader.i.i ] + %123 = getelementptr inbounds i8, ptr %.03.i.i.i, i64 184 + %124 = load ptr, ptr %123, align 8 + %.not12.i.i.i = icmp eq ptr %124, null + br i1 %.not12.i.i.i, label %127, label %125 + +125: ; preds = %.lr.ph.i.i.i + %126 = call i32 @hwloc_bitmap_isincluded(ptr noundef readonly %114, ptr noundef nonnull %124) #17 + %.not13.i.i.i = icmp eq i32 %126, 0 + br i1 %.not13.i.i.i, label %127, label %hwloc_get_child_covering_cpuset.exit.loopexit.i.i + +127: ; preds = %125, %.lr.ph.i.i.i + %128 = getelementptr inbounds i8, ptr %.03.i.i.i, i64 88 + %.0.i.i.i = load ptr, ptr %128, align 8 + %.not11.i.i.i = icmp eq ptr %.0.i.i.i, null + br i1 %.not11.i.i.i, label %hwloc_get_obj_covering_cpuset.exit.i, label %.lr.ph.i.i.i, !llvm.loop !26 + +hwloc_get_obj_covering_cpuset.exit.i: ; preds = %127 + %.not.i78 = icmp eq ptr %.01122.i.i, null br i1 %.not.i78, label %output_memattr_initiator.exit, label %hwloc_get_obj_covering_cpuset.exit.hwloc_get_obj_covering_cpuset.exit.thread36_crit_edge.i hwloc_get_obj_covering_cpuset.exit.hwloc_get_obj_covering_cpuset.exit.thread36_crit_edge.i: ; preds = %hwloc_get_obj_covering_cpuset.exit.i - %.phi.trans.insert.i = getelementptr inbounds i8, ptr %.01120.us25.i.i, i64 184 + %.phi.trans.insert.i = getelementptr inbounds i8, ptr %.01122.i.i, i64 184 %.pre.i = load ptr, ptr %.phi.trans.insert.i, align 8 br label %hwloc_get_obj_covering_cpuset.exit.thread36.i -hwloc_get_obj_covering_cpuset.exit.thread36.i: ; preds = %hwloc_get_child_covering_cpuset.exit.loopexit.us.i.i, %hwloc_get_obj_covering_cpuset.exit.hwloc_get_obj_covering_cpuset.exit.thread36_crit_edge.i, %.lr.ph.split.us.i.i - %129 = phi ptr [ %.pre.i, %hwloc_get_obj_covering_cpuset.exit.hwloc_get_obj_covering_cpuset.exit.thread36_crit_edge.i ], [ %119, %.lr.ph.split.us.i.i ], [ %123, %hwloc_get_child_covering_cpuset.exit.loopexit.us.i.i ] - %.0.i39.i = phi ptr [ %.01120.us25.i.i, %hwloc_get_obj_covering_cpuset.exit.hwloc_get_obj_covering_cpuset.exit.thread36_crit_edge.i ], [ %117, %.lr.ph.split.us.i.i ], [ %.03.i.us.i.i, %hwloc_get_child_covering_cpuset.exit.loopexit.us.i.i ] +hwloc_get_obj_covering_cpuset.exit.thread36.i: ; preds = %hwloc_get_child_covering_cpuset.exit.loopexit.i.i, %hwloc_get_obj_covering_cpuset.exit.hwloc_get_obj_covering_cpuset.exit.thread36_crit_edge.i, %hwloc_get_child_covering_cpuset.exit.preheader.i.i + %129 = phi ptr [ %.pre.i, %hwloc_get_obj_covering_cpuset.exit.hwloc_get_obj_covering_cpuset.exit.thread36_crit_edge.i ], [ %119, %hwloc_get_child_covering_cpuset.exit.preheader.i.i ], [ %124, %hwloc_get_child_covering_cpuset.exit.loopexit.i.i ] + %.0.i39.i = phi ptr [ %.01122.i.i, %hwloc_get_obj_covering_cpuset.exit.hwloc_get_obj_covering_cpuset.exit.thread36_crit_edge.i ], [ %117, %hwloc_get_child_covering_cpuset.exit.preheader.i.i ], [ %.03.i.i.i, %hwloc_get_child_covering_cpuset.exit.loopexit.i.i ] %130 = call i32 @hwloc_bitmap_isequal(ptr noundef %129, ptr noundef %114) #17 %.not23.i = icmp eq i32 %130, 0 br i1 %.not23.i, label %output_memattr_initiator.exit, label %.preheader.i diff --git a/bench/hwloc/optimized/lstopo-lstopo.ll b/bench/hwloc/optimized/lstopo-lstopo.ll index be892c48aaf..438de015d5e 100644 --- a/bench/hwloc/optimized/lstopo-lstopo.ll +++ b/bench/hwloc/optimized/lstopo-lstopo.ll @@ -6415,47 +6415,42 @@ define internal fastcc ptr @hwloc_get_obj_covering_cpuset(ptr noundef readonly % br i1 %.not13, label %hwloc_get_child_covering_cpuset.exit.thread, label %hwloc_get_child_covering_cpuset.exit.preheader hwloc_get_child_covering_cpuset.exit.preheader: ; preds = %4 - %9 = tail call i32 @hwloc_bitmap_iszero(ptr noundef readonly %1) #28 - %.not.i = icmp eq i32 %9, 0 - br i1 %.not.i, label %.lr.ph.split.us, label %hwloc_get_child_covering_cpuset.exit.thread - -.lr.ph.split.us: ; preds = %hwloc_get_child_covering_cpuset.exit.preheader - %10 = getelementptr inbounds i8, ptr %5, i64 120 - %.01.i.us23 = load ptr, ptr %10, align 8 - %.not112.i.us24 = icmp eq ptr %.01.i.us23, null - br i1 %.not112.i.us24, label %hwloc_get_child_covering_cpuset.exit.thread, label %.lr.ph.i.preheader.us - -.lr.ph.i.us: ; preds = %.lr.ph.i.preheader.us, %15 - %.03.i.us = phi ptr [ %.0.i.us, %15 ], [ %.01.i.us26, %.lr.ph.i.preheader.us ] - %11 = getelementptr inbounds i8, ptr %.03.i.us, i64 184 + %9 = getelementptr inbounds i8, ptr %5, i64 120 + %.01.i20 = load ptr, ptr %9, align 8 + %.not112.i21 = icmp eq ptr %.01.i20, null + br i1 %.not112.i21, label %hwloc_get_child_covering_cpuset.exit.thread, label %.lr.ph.i.preheader + +hwloc_get_child_covering_cpuset.exit.loopexit: ; preds = %13 + %10 = getelementptr inbounds i8, ptr %.03.i, i64 120 + %.01.i = load ptr, ptr %10, align 8 + %.not112.i = icmp eq ptr %.01.i, null + br i1 %.not112.i, label %hwloc_get_child_covering_cpuset.exit.thread, label %.lr.ph.i.preheader + +.lr.ph.i.preheader: ; preds = %hwloc_get_child_covering_cpuset.exit.preheader, %hwloc_get_child_covering_cpuset.exit.loopexit + %.01.i23 = phi ptr [ %.01.i, %hwloc_get_child_covering_cpuset.exit.loopexit ], [ %.01.i20, %hwloc_get_child_covering_cpuset.exit.preheader ] + %.01122 = phi ptr [ %.03.i, %hwloc_get_child_covering_cpuset.exit.loopexit ], [ %5, %hwloc_get_child_covering_cpuset.exit.preheader ] + br label %.lr.ph.i + +.lr.ph.i: ; preds = %.lr.ph.i.preheader, %15 + %.03.i = phi ptr [ %.0.i, %15 ], [ %.01.i23, %.lr.ph.i.preheader ] + %11 = getelementptr inbounds i8, ptr %.03.i, i64 184 %12 = load ptr, ptr %11, align 8 - %.not12.i.us = icmp eq ptr %12, null - br i1 %.not12.i.us, label %15, label %13 + %.not12.i = icmp eq ptr %12, null + br i1 %.not12.i, label %15, label %13 -13: ; preds = %.lr.ph.i.us +13: ; preds = %.lr.ph.i %14 = tail call i32 @hwloc_bitmap_isincluded(ptr noundef readonly %1, ptr noundef nonnull %12) #28 - %.not13.i.us = icmp eq i32 %14, 0 - br i1 %.not13.i.us, label %15, label %hwloc_get_child_covering_cpuset.exit.loopexit.us - -15: ; preds = %13, %.lr.ph.i.us - %16 = getelementptr inbounds i8, ptr %.03.i.us, i64 88 - %.0.i.us = load ptr, ptr %16, align 8 - %.not11.i.us = icmp eq ptr %.0.i.us, null - br i1 %.not11.i.us, label %hwloc_get_child_covering_cpuset.exit.thread, label %.lr.ph.i.us, !llvm.loop !66 - -.lr.ph.i.preheader.us: ; preds = %.lr.ph.split.us, %hwloc_get_child_covering_cpuset.exit.loopexit.us - %.01.i.us26 = phi ptr [ %.01.i.us, %hwloc_get_child_covering_cpuset.exit.loopexit.us ], [ %.01.i.us23, %.lr.ph.split.us ] - %.01120.us25 = phi ptr [ %.03.i.us, %hwloc_get_child_covering_cpuset.exit.loopexit.us ], [ %5, %.lr.ph.split.us ] - br label %.lr.ph.i.us - -hwloc_get_child_covering_cpuset.exit.loopexit.us: ; preds = %13 - %17 = getelementptr inbounds i8, ptr %.03.i.us, i64 120 - %.01.i.us = load ptr, ptr %17, align 8 - %.not112.i.us = icmp eq ptr %.01.i.us, null - br i1 %.not112.i.us, label %hwloc_get_child_covering_cpuset.exit.thread, label %.lr.ph.i.preheader.us - -hwloc_get_child_covering_cpuset.exit.thread: ; preds = %hwloc_get_child_covering_cpuset.exit.loopexit.us, %15, %hwloc_get_child_covering_cpuset.exit.preheader, %.lr.ph.split.us, %2, %4 - %.0 = phi ptr [ null, %4 ], [ null, %2 ], [ %5, %hwloc_get_child_covering_cpuset.exit.preheader ], [ %5, %.lr.ph.split.us ], [ %.01120.us25, %15 ], [ %.03.i.us, %hwloc_get_child_covering_cpuset.exit.loopexit.us ] + %.not13.i = icmp eq i32 %14, 0 + br i1 %.not13.i, label %15, label %hwloc_get_child_covering_cpuset.exit.loopexit + +15: ; preds = %13, %.lr.ph.i + %16 = getelementptr inbounds i8, ptr %.03.i, i64 88 + %.0.i = load ptr, ptr %16, align 8 + %.not11.i = icmp eq ptr %.0.i, null + br i1 %.not11.i, label %hwloc_get_child_covering_cpuset.exit.thread, label %.lr.ph.i, !llvm.loop !66 + +hwloc_get_child_covering_cpuset.exit.thread: ; preds = %hwloc_get_child_covering_cpuset.exit.loopexit, %15, %hwloc_get_child_covering_cpuset.exit.preheader, %2, %4 + %.0 = phi ptr [ null, %4 ], [ null, %2 ], [ %5, %hwloc_get_child_covering_cpuset.exit.preheader ], [ %.01122, %15 ], [ %.03.i, %hwloc_get_child_covering_cpuset.exit.loopexit ] ret ptr %.0 } diff --git a/bench/hwloc/optimized/topology-linux.ll b/bench/hwloc/optimized/topology-linux.ll index 1a5b33d9968..70dec8ddbe6 100644 --- a/bench/hwloc/optimized/topology-linux.ll +++ b/bench/hwloc/optimized/topology-linux.ll @@ -4591,7 +4591,7 @@ hwloc__get_soc_info.exit: ; preds = %hwloc_checkat.exit. 287: ; preds = %284 call fastcc void @hwloc_linuxfs_look_cpu(ptr noundef %0, ptr noundef nonnull %1) - br label %1668 + br label %1662 288: ; preds = %284 %289 = call i32 @hwloc_topology_get_type_filter(ptr noundef %85, i32 noundef 15, ptr noundef nonnull %79) #26 @@ -7547,7 +7547,7 @@ hwloc_linuxfs_lookup_dma_class.exit: ; preds = %hwloc_linuxfs_looku %1504 = load i32, ptr %82, align 4 %1505 = icmp ne i32 %1504, 1 %or.cond7 = select i1 %1503, i1 %1505, i1 false - br i1 %or.cond7, label %1506, label %1668 + br i1 %or.cond7, label %1506, label %1662 1506: ; preds = %.thread call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %6) @@ -7568,7 +7568,7 @@ hwloc_linuxfs_lookup_dma_class.exit: ; preds = %hwloc_linuxfs_looku br label %1520 1520: ; preds = %hwloc__get_firmware_dmi_memory_info_one.exit.i, %1506 - %.0.i279 = phi i32 [ 0, %1506 ], [ %1666, %hwloc__get_firmware_dmi_memory_info_one.exit.i ] + %.0.i279 = phi i32 [ 0, %1506 ], [ %1660, %hwloc__get_firmware_dmi_memory_info_one.exit.i ] %1521 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %6, i64 noundef 128, ptr noundef nonnull @.str.541, i32 noundef %.0.i279) #26 %1522 = load i32, ptr %1507, align 8 %1523 = icmp sgt i32 %1522, -1 @@ -7628,7 +7628,7 @@ hwloc_fopen.exit.i282: ; preds = %hwloc_openat.exit.i %1552 = zext i8 %1551 to i32 br label %1558 -1553: ; preds = %1609 +1553: ; preds = %1603 %1554 = add i32 %.060139.i.i, %.061145.i.i %1555 = zext i32 %1554 to i64 %1556 = call i32 @fseek(ptr noundef nonnull %1529, i64 noundef %1555, i32 noundef 0) @@ -7647,20 +7647,20 @@ hwloc_fopen.exit.i282: ; preds = %hwloc_openat.exit.i br i1 %or.cond.i.i287, label %.loopexit.i.i, label %.lr.ph.i.i288 .lr.ph.i.i288: ; preds = %1558, %check_dmi_entry.exit.thread.i.i - %1561 = phi i64 [ %1606, %check_dmi_entry.exit.thread.i.i ], [ 0, %1558 ] + %1561 = phi i64 [ %1600, %check_dmi_entry.exit.thread.i.i ], [ 0, %1558 ] %.1141.i.i = phi i32 [ %.3.i.i, %check_dmi_entry.exit.thread.i.i ], [ %.0147.i.i, %1558 ] - %.159140.i.i = phi i32 [ %1605, %check_dmi_entry.exit.thread.i.i ], [ %.058146.i.i, %1558 ] - %.060139.i.i = phi i32 [ %1604, %check_dmi_entry.exit.thread.i.i ], [ 0, %1558 ] + %.159140.i.i = phi i32 [ %1599, %check_dmi_entry.exit.thread.i.i ], [ %.058146.i.i, %1558 ] + %.060139.i.i = phi i32 [ %1598, %check_dmi_entry.exit.thread.i.i ], [ 0, %1558 ] %1562 = getelementptr inbounds i8, ptr %4, i64 %1561 %1563 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1562) #29 %1564 = trunc i64 %1563 to i32 %1565 = add i32 %.060139.i.i, %1564 %1566 = icmp eq i32 %1565, 255 - br i1 %1566, label %1609, label %1567 + br i1 %1566, label %1603, label %1567 1567: ; preds = %.lr.ph.i.i288 %1568 = icmp eq i32 %.159140.i.i, %1542 - br i1 %1568, label %1569, label %1573 + br i1 %1568, label %1569, label %1572 1569: ; preds = %1567 %1570 = load i8, ptr %1562, align 1 @@ -7669,330 +7669,324 @@ hwloc_fopen.exit.i282: ; preds = %hwloc_openat.exit.i check_dmi_entry.exit.i.i: ; preds = %1569 %1571 = call i64 @strspn(ptr noundef nonnull readonly %1562, ptr noundef nonnull @.str.22) #29 - %1572 = call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %1562) #29 - %.not131.i.i = icmp eq i64 %1571, %1572 + %.not131.i.i = icmp eq i64 %1571, %1563 br i1 %.not131.i.i, label %check_dmi_entry.exit.thread.i.i, label %check_dmi_entry.exit.thread.sink.split.i.i -1573: ; preds = %1567 - %1574 = icmp eq i32 %.159140.i.i, %1544 - br i1 %1574, label %1575, label %1579 +1572: ; preds = %1567 + %1573 = icmp eq i32 %.159140.i.i, %1544 + br i1 %1573, label %1574, label %1577 -1575: ; preds = %1573 - %1576 = load i8, ptr %1562, align 1 - %.not.i79.i.i = icmp eq i8 %1576, 0 +1574: ; preds = %1572 + %1575 = load i8, ptr %1562, align 1 + %.not.i79.i.i = icmp eq i8 %1575, 0 br i1 %.not.i79.i.i, label %check_dmi_entry.exit.thread.i.i, label %check_dmi_entry.exit82.i.i -check_dmi_entry.exit82.i.i: ; preds = %1575 - %1577 = call i64 @strspn(ptr noundef nonnull readonly %1562, ptr noundef nonnull @.str.22) #29 - %1578 = call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %1562) #29 - %.not130.i.i = icmp eq i64 %1577, %1578 +check_dmi_entry.exit82.i.i: ; preds = %1574 + %1576 = call i64 @strspn(ptr noundef nonnull readonly %1562, ptr noundef nonnull @.str.22) #29 + %.not130.i.i = icmp eq i64 %1576, %1563 br i1 %.not130.i.i, label %check_dmi_entry.exit.thread.i.i, label %check_dmi_entry.exit.thread.sink.split.i.i -1579: ; preds = %1573 - %1580 = icmp eq i32 %.159140.i.i, %1546 - br i1 %1580, label %1581, label %1585 +1577: ; preds = %1572 + %1578 = icmp eq i32 %.159140.i.i, %1546 + br i1 %1578, label %1579, label %1582 -1581: ; preds = %1579 - %1582 = load i8, ptr %1562, align 1 - %.not.i83.i.i = icmp eq i8 %1582, 0 +1579: ; preds = %1577 + %1580 = load i8, ptr %1562, align 1 + %.not.i83.i.i = icmp eq i8 %1580, 0 br i1 %.not.i83.i.i, label %check_dmi_entry.exit.thread.i.i, label %check_dmi_entry.exit86.i.i -check_dmi_entry.exit86.i.i: ; preds = %1581 - %1583 = call i64 @strspn(ptr noundef nonnull readonly %1562, ptr noundef nonnull @.str.22) #29 - %1584 = call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %1562) #29 - %.not129.i.i = icmp eq i64 %1583, %1584 +check_dmi_entry.exit86.i.i: ; preds = %1579 + %1581 = call i64 @strspn(ptr noundef nonnull readonly %1562, ptr noundef nonnull @.str.22) #29 + %.not129.i.i = icmp eq i64 %1581, %1563 br i1 %.not129.i.i, label %check_dmi_entry.exit.thread.i.i, label %check_dmi_entry.exit.thread.sink.split.i.i -1585: ; preds = %1579 - %1586 = icmp eq i32 %.159140.i.i, %1548 - br i1 %1586, label %1587, label %1591 +1582: ; preds = %1577 + %1583 = icmp eq i32 %.159140.i.i, %1548 + br i1 %1583, label %1584, label %1587 -1587: ; preds = %1585 - %1588 = load i8, ptr %1562, align 1 - %.not.i87.i.i = icmp eq i8 %1588, 0 +1584: ; preds = %1582 + %1585 = load i8, ptr %1562, align 1 + %.not.i87.i.i = icmp eq i8 %1585, 0 br i1 %.not.i87.i.i, label %check_dmi_entry.exit.thread.i.i, label %check_dmi_entry.exit90.i.i -check_dmi_entry.exit90.i.i: ; preds = %1587 - %1589 = call i64 @strspn(ptr noundef nonnull readonly %1562, ptr noundef nonnull @.str.22) #29 - %1590 = call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %1562) #29 - %.not128.i.i = icmp eq i64 %1589, %1590 +check_dmi_entry.exit90.i.i: ; preds = %1584 + %1586 = call i64 @strspn(ptr noundef nonnull readonly %1562, ptr noundef nonnull @.str.22) #29 + %.not128.i.i = icmp eq i64 %1586, %1563 br i1 %.not128.i.i, label %check_dmi_entry.exit.thread.i.i, label %check_dmi_entry.exit.thread.sink.split.i.i -1591: ; preds = %1585 - %1592 = icmp eq i32 %.159140.i.i, %1550 - br i1 %1592, label %1593, label %1597 +1587: ; preds = %1582 + %1588 = icmp eq i32 %.159140.i.i, %1550 + br i1 %1588, label %1589, label %1592 -1593: ; preds = %1591 - %1594 = load i8, ptr %1562, align 1 - %.not.i91.i.i = icmp eq i8 %1594, 0 +1589: ; preds = %1587 + %1590 = load i8, ptr %1562, align 1 + %.not.i91.i.i = icmp eq i8 %1590, 0 br i1 %.not.i91.i.i, label %check_dmi_entry.exit.thread.i.i, label %check_dmi_entry.exit94.i.i -check_dmi_entry.exit94.i.i: ; preds = %1593 - %1595 = call i64 @strspn(ptr noundef nonnull readonly %1562, ptr noundef nonnull @.str.22) #29 - %1596 = call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %1562) #29 - %.not127.i.i = icmp eq i64 %1595, %1596 +check_dmi_entry.exit94.i.i: ; preds = %1589 + %1591 = call i64 @strspn(ptr noundef nonnull readonly %1562, ptr noundef nonnull @.str.22) #29 + %.not127.i.i = icmp eq i64 %1591, %1563 br i1 %.not127.i.i, label %check_dmi_entry.exit.thread.i.i, label %check_dmi_entry.exit.thread.sink.split.i.i -1597: ; preds = %1591 - %1598 = icmp eq i32 %.159140.i.i, %1552 - br i1 %1598, label %1599, label %.loopexit.i.i +1592: ; preds = %1587 + %1593 = icmp eq i32 %.159140.i.i, %1552 + br i1 %1593, label %1594, label %.loopexit.i.i -1599: ; preds = %1597 - %1600 = load i8, ptr %1562, align 1 - %.not.i95.i.i = icmp eq i8 %1600, 0 +1594: ; preds = %1592 + %1595 = load i8, ptr %1562, align 1 + %.not.i95.i.i = icmp eq i8 %1595, 0 br i1 %.not.i95.i.i, label %check_dmi_entry.exit.thread.i.i, label %check_dmi_entry.exit98.i.i -check_dmi_entry.exit98.i.i: ; preds = %1599 - %1601 = call i64 @strspn(ptr noundef nonnull readonly %1562, ptr noundef nonnull @.str.22) #29 - %1602 = call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %1562) #29 - %.not126.i.i = icmp eq i64 %1601, %1602 +check_dmi_entry.exit98.i.i: ; preds = %1594 + %1596 = call i64 @strspn(ptr noundef nonnull readonly %1562, ptr noundef nonnull @.str.22) #29 + %.not126.i.i = icmp eq i64 %1596, %1563 br i1 %.not126.i.i, label %check_dmi_entry.exit.thread.i.i, label %check_dmi_entry.exit.thread.sink.split.i.i check_dmi_entry.exit.thread.sink.split.i.i: ; preds = %check_dmi_entry.exit98.i.i, %check_dmi_entry.exit94.i.i, %check_dmi_entry.exit90.i.i, %check_dmi_entry.exit86.i.i, %check_dmi_entry.exit82.i.i, %check_dmi_entry.exit.i.i %.str.462.sink.i.i = phi ptr [ @.str.460, %check_dmi_entry.exit.i.i ], [ @.str.462, %check_dmi_entry.exit82.i.i ], [ @.str.542, %check_dmi_entry.exit86.i.i ], [ @.str.543, %check_dmi_entry.exit90.i.i ], [ @.str.544, %check_dmi_entry.exit94.i.i ], [ @.str.545, %check_dmi_entry.exit98.i.i ] %.3.ph.i.i = phi i32 [ 1, %check_dmi_entry.exit.i.i ], [ 1, %check_dmi_entry.exit82.i.i ], [ 1, %check_dmi_entry.exit86.i.i ], [ 1, %check_dmi_entry.exit90.i.i ], [ %.1141.i.i, %check_dmi_entry.exit94.i.i ], [ %.1141.i.i, %check_dmi_entry.exit98.i.i ] - %1603 = call i32 @hwloc__add_info(ptr noundef nonnull %5, ptr noundef nonnull %.str.462.sink.i.i, ptr noundef nonnull %1562) #26 + %1597 = call i32 @hwloc__add_info(ptr noundef nonnull %5, ptr noundef nonnull %.str.462.sink.i.i, ptr noundef nonnull %1562) #26 br label %check_dmi_entry.exit.thread.i.i -check_dmi_entry.exit.thread.i.i: ; preds = %check_dmi_entry.exit.thread.sink.split.i.i, %check_dmi_entry.exit98.i.i, %1599, %check_dmi_entry.exit94.i.i, %1593, %check_dmi_entry.exit90.i.i, %1587, %check_dmi_entry.exit86.i.i, %1581, %check_dmi_entry.exit82.i.i, %1575, %check_dmi_entry.exit.i.i, %1569 - %.3.i.i = phi i32 [ %.1141.i.i, %check_dmi_entry.exit.i.i ], [ %.1141.i.i, %check_dmi_entry.exit82.i.i ], [ %.1141.i.i, %check_dmi_entry.exit86.i.i ], [ %.1141.i.i, %check_dmi_entry.exit90.i.i ], [ %.1141.i.i, %check_dmi_entry.exit94.i.i ], [ %.1141.i.i, %check_dmi_entry.exit98.i.i ], [ %.1141.i.i, %1569 ], [ %.1141.i.i, %1575 ], [ %.1141.i.i, %1581 ], [ %.1141.i.i, %1587 ], [ %.1141.i.i, %1593 ], [ %.1141.i.i, %1599 ], [ %.3.ph.i.i, %check_dmi_entry.exit.thread.sink.split.i.i ] - %1604 = add i32 %1565, 1 - %1605 = add nuw nsw i32 %.159140.i.i, 1 - %1606 = zext i32 %1604 to i64 - %1607 = getelementptr inbounds [256 x i8], ptr %4, i64 0, i64 %1606 - %1608 = load i8, ptr %1607, align 1 - %.not65.i.i290 = icmp eq i8 %1608, 0 +check_dmi_entry.exit.thread.i.i: ; preds = %check_dmi_entry.exit.thread.sink.split.i.i, %check_dmi_entry.exit98.i.i, %1594, %check_dmi_entry.exit94.i.i, %1589, %check_dmi_entry.exit90.i.i, %1584, %check_dmi_entry.exit86.i.i, %1579, %check_dmi_entry.exit82.i.i, %1574, %check_dmi_entry.exit.i.i, %1569 + %.3.i.i = phi i32 [ %.1141.i.i, %check_dmi_entry.exit.i.i ], [ %.1141.i.i, %check_dmi_entry.exit82.i.i ], [ %.1141.i.i, %check_dmi_entry.exit86.i.i ], [ %.1141.i.i, %check_dmi_entry.exit90.i.i ], [ %.1141.i.i, %check_dmi_entry.exit94.i.i ], [ %.1141.i.i, %check_dmi_entry.exit98.i.i ], [ %.1141.i.i, %1569 ], [ %.1141.i.i, %1574 ], [ %.1141.i.i, %1579 ], [ %.1141.i.i, %1584 ], [ %.1141.i.i, %1589 ], [ %.1141.i.i, %1594 ], [ %.3.ph.i.i, %check_dmi_entry.exit.thread.sink.split.i.i ] + %1598 = add i32 %1565, 1 + %1599 = add nuw nsw i32 %.159140.i.i, 1 + %1600 = zext i32 %1598 to i64 + %1601 = getelementptr inbounds [256 x i8], ptr %4, i64 0, i64 %1600 + %1602 = load i8, ptr %1601, align 1 + %.not65.i.i290 = icmp eq i8 %1602, 0 br i1 %.not65.i.i290, label %.loopexit.i.i, label %.lr.ph.i.i288 -1609: ; preds = %.lr.ph.i.i288 +1603: ; preds = %.lr.ph.i.i288 %.not72.i.i291 = icmp eq i32 %.060139.i.i, 0 - br i1 %.not72.i.i291, label %1610, label %1553 + br i1 %.not72.i.i291, label %1604, label %1553 -1610: ; preds = %1609 - %1611 = call i32 @hwloc_hide_errors() #26 - %1612 = icmp slt i32 %1611, 2 - br i1 %1612, label %1613, label %.loopexit.i.i +1604: ; preds = %1603 + %1605 = call i32 @hwloc_hide_errors() #26 + %1606 = icmp slt i32 %1605, 2 + br i1 %1606, label %1607, label %.loopexit.i.i -1613: ; preds = %1610 - %1614 = load ptr, ptr @stderr, align 8 - %1615 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1614, ptr noundef nonnull @.str.546, i32 noundef %.159140.i.i, ptr noundef nonnull %6) #32 +1607: ; preds = %1604 + %1608 = load ptr, ptr @stderr, align 8 + %1609 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %1608, ptr noundef nonnull @.str.546, i32 noundef %.159140.i.i, ptr noundef nonnull %6) #32 br label %.loopexit.i.i -.loopexit.i.i: ; preds = %1558, %1553, %check_dmi_entry.exit.thread.i.i, %1597, %1613, %1610 - %.2.i.i = phi i32 [ %.1141.i.i, %1613 ], [ %.1141.i.i, %1610 ], [ %.3.i.i, %check_dmi_entry.exit.thread.i.i ], [ %.1141.i.i, %1597 ], [ %.0147.i.i, %1558 ], [ %.1141.i.i, %1553 ] +.loopexit.i.i: ; preds = %1558, %1553, %check_dmi_entry.exit.thread.i.i, %1592, %1607, %1604 + %.2.i.i = phi i32 [ %.1141.i.i, %1607 ], [ %.1141.i.i, %1604 ], [ %.3.i.i, %check_dmi_entry.exit.thread.i.i ], [ %.1141.i.i, %1592 ], [ %.0147.i.i, %1558 ], [ %.1141.i.i, %1553 ] %.not73.i.i = icmp eq i32 %.2.i.i, 0 - br i1 %.not73.i.i, label %.loopexit.thread.i.i, label %1616 + br i1 %.not73.i.i, label %.loopexit.thread.i.i, label %1610 -1616: ; preds = %.loopexit.i.i - %1617 = load i8, ptr %1515, align 1 - %1618 = add i8 %1617, -1 - %or.cond.i.i.i = icmp ult i8 %1618, 16 +1610: ; preds = %.loopexit.i.i + %1611 = load i8, ptr %1515, align 1 + %1612 = add i8 %1611, -1 + %or.cond.i.i.i = icmp ult i8 %1612, 16 br i1 %or.cond.i.i.i, label %dmi_memory_device_form_factor.exit.i.i, label %dmi_memory_device_form_factor.exit.thread.i.i -dmi_memory_device_form_factor.exit.i.i: ; preds = %1616 - %1619 = zext nneg i8 %1617 to i64 - %1620 = add nuw nsw i64 %1619, 4294967295 - %1621 = and i64 %1620, 4294967295 - %1622 = getelementptr inbounds [16 x ptr], ptr @dmi_memory_device_form_factor.form_factor, i64 0, i64 %1621 - %1623 = load ptr, ptr %1622, align 8 - %1624 = call i32 @hwloc__add_info(ptr noundef nonnull %5, ptr noundef nonnull @.str.547, ptr noundef nonnull %1623) #26 +dmi_memory_device_form_factor.exit.i.i: ; preds = %1610 + %1613 = zext nneg i8 %1611 to i64 + %1614 = add nuw nsw i64 %1613, 4294967295 + %1615 = and i64 %1614, 4294967295 + %1616 = getelementptr inbounds [16 x ptr], ptr @dmi_memory_device_form_factor.form_factor, i64 0, i64 %1615 + %1617 = load ptr, ptr %1616, align 8 + %1618 = call i32 @hwloc__add_info(ptr noundef nonnull %5, ptr noundef nonnull @.str.547, ptr noundef nonnull %1617) #26 br label %dmi_memory_device_form_factor.exit.thread.i.i -dmi_memory_device_form_factor.exit.thread.i.i: ; preds = %dmi_memory_device_form_factor.exit.i.i, %1616 - %1625 = load i8, ptr %1516, align 1 - %1626 = add i8 %1625, -1 - %or.cond.i100.i.i = icmp ult i8 %1626, 36 +dmi_memory_device_form_factor.exit.thread.i.i: ; preds = %dmi_memory_device_form_factor.exit.i.i, %1610 + %1619 = load i8, ptr %1516, align 1 + %1620 = add i8 %1619, -1 + %or.cond.i100.i.i = icmp ult i8 %1620, 36 br i1 %or.cond.i100.i.i, label %dmi_memory_device_type.exit.i.i, label %dmi_memory_device_type.exit.thread.i.i dmi_memory_device_type.exit.i.i: ; preds = %dmi_memory_device_form_factor.exit.thread.i.i - %1627 = zext nneg i8 %1625 to i64 - %1628 = add nuw nsw i64 %1627, 4294967295 - %1629 = and i64 %1628, 4294967295 - %1630 = getelementptr inbounds [36 x ptr], ptr @dmi_memory_device_type.type, i64 0, i64 %1629 - %1631 = load ptr, ptr %1630, align 8 - %1632 = call i32 @hwloc__add_info(ptr noundef nonnull %5, ptr noundef nonnull @.str.548, ptr noundef nonnull %1631) #26 + %1621 = zext nneg i8 %1619 to i64 + %1622 = add nuw nsw i64 %1621, 4294967295 + %1623 = and i64 %1622, 4294967295 + %1624 = getelementptr inbounds [36 x ptr], ptr @dmi_memory_device_type.type, i64 0, i64 %1623 + %1625 = load ptr, ptr %1624, align 8 + %1626 = call i32 @hwloc__add_info(ptr noundef nonnull %5, ptr noundef nonnull @.str.548, ptr noundef nonnull %1625) #26 br label %dmi_memory_device_type.exit.thread.i.i dmi_memory_device_type.exit.thread.i.i: ; preds = %dmi_memory_device_type.exit.i.i, %dmi_memory_device_form_factor.exit.thread.i.i - %1633 = load i16, ptr %1517, align 1 - %1634 = icmp eq i16 %1633, -1 - br i1 %1634, label %dmi_memory_device_size.exit.i.i, label %1635 - -1635: ; preds = %dmi_memory_device_type.exit.thread.i.i - %1636 = icmp ugt i8 %1534, 31 - %1637 = icmp eq i16 %1633, 32767 - %or.cond.i102.i.i = and i1 %1636, %1637 - br i1 %or.cond.i102.i.i, label %1638, label %1643 - -1638: ; preds = %1635 - %1639 = load i32, ptr %1518, align 1 - %1640 = and i32 %1639, 2147483647 - %1641 = zext nneg i32 %1640 to i64 - %1642 = shl nuw nsw i64 %1641, 10 - br label %1647 - -1643: ; preds = %1635 - %1644 = and i16 %1633, 32767 - %1645 = zext nneg i16 %1644 to i64 - %1646 = shl nuw nsw i64 %1645, 10 - %.not16.i.i.i = icmp slt i16 %1633, 0 - %spec.select.i.i.i = select i1 %.not16.i.i.i, i64 %1645, i64 %1646 - br label %1647 - -1647: ; preds = %1643, %1638 - %.014.i.i.i = phi i64 [ %1642, %1638 ], [ %spec.select.i.i.i, %1643 ] - %1648 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %4, i64 noundef 256, ptr noundef nonnull @.str.428, i64 noundef %.014.i.i.i) #26 - %1649 = call i32 @hwloc__add_info(ptr noundef nonnull %5, ptr noundef nonnull @.str.429, ptr noundef nonnull %4) #26 + %1627 = load i16, ptr %1517, align 1 + %1628 = icmp eq i16 %1627, -1 + br i1 %1628, label %dmi_memory_device_size.exit.i.i, label %1629 + +1629: ; preds = %dmi_memory_device_type.exit.thread.i.i + %1630 = icmp ugt i8 %1534, 31 + %1631 = icmp eq i16 %1627, 32767 + %or.cond.i102.i.i = and i1 %1630, %1631 + br i1 %or.cond.i102.i.i, label %1632, label %1637 + +1632: ; preds = %1629 + %1633 = load i32, ptr %1518, align 1 + %1634 = and i32 %1633, 2147483647 + %1635 = zext nneg i32 %1634 to i64 + %1636 = shl nuw nsw i64 %1635, 10 + br label %1641 + +1637: ; preds = %1629 + %1638 = and i16 %1627, 32767 + %1639 = zext nneg i16 %1638 to i64 + %1640 = shl nuw nsw i64 %1639, 10 + %.not16.i.i.i = icmp slt i16 %1627, 0 + %spec.select.i.i.i = select i1 %.not16.i.i.i, i64 %1639, i64 %1640 + br label %1641 + +1641: ; preds = %1637, %1632 + %.014.i.i.i = phi i64 [ %1636, %1632 ], [ %spec.select.i.i.i, %1637 ] + %1642 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %4, i64 noundef 256, ptr noundef nonnull @.str.428, i64 noundef %.014.i.i.i) #26 + %1643 = call i32 @hwloc__add_info(ptr noundef nonnull %5, ptr noundef nonnull @.str.429, ptr noundef nonnull %4) #26 br label %dmi_memory_device_size.exit.i.i -dmi_memory_device_size.exit.i.i: ; preds = %1647, %dmi_memory_device_type.exit.thread.i.i - %1650 = icmp eq i8 %1534, 27 - br i1 %1650, label %dmi_memory_device_rank.exit.thread.i.i, label %1651 +dmi_memory_device_size.exit.i.i: ; preds = %1641, %dmi_memory_device_type.exit.thread.i.i + %1644 = icmp eq i8 %1534, 27 + br i1 %1644, label %dmi_memory_device_rank.exit.thread.i.i, label %1645 -1651: ; preds = %dmi_memory_device_size.exit.i.i - %1652 = load i8, ptr %1519, align 1 - %.not.i104.i.i = icmp eq i8 %1652, 0 - br i1 %.not.i104.i.i, label %dmi_memory_device_rank.exit.thread.i.i, label %1653 +1645: ; preds = %dmi_memory_device_size.exit.i.i + %1646 = load i8, ptr %1519, align 1 + %.not.i104.i.i = icmp eq i8 %1646, 0 + br i1 %.not.i104.i.i, label %dmi_memory_device_rank.exit.thread.i.i, label %1647 -1653: ; preds = %1651 - %1654 = and i8 %1652, 15 - %1655 = zext nneg i8 %1654 to i32 - %1656 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %4, i64 noundef 256, ptr noundef nonnull @.str.306, i32 noundef %1655) #26 - %1657 = call i32 @hwloc__add_info(ptr noundef nonnull %5, ptr noundef nonnull @.str.549, ptr noundef nonnull %4) #26 +1647: ; preds = %1645 + %1648 = and i8 %1646, 15 + %1649 = zext nneg i8 %1648 to i32 + %1650 = call i32 (ptr, i64, ptr, ...) @snprintf(ptr noundef nonnull dereferenceable(1) %4, i64 noundef 256, ptr noundef nonnull @.str.306, i32 noundef %1649) #26 + %1651 = call i32 @hwloc__add_info(ptr noundef nonnull %5, ptr noundef nonnull @.str.549, ptr noundef nonnull %4) #26 br label %dmi_memory_device_rank.exit.thread.i.i -dmi_memory_device_rank.exit.thread.i.i: ; preds = %1653, %1651, %dmi_memory_device_size.exit.i.i - %1658 = call ptr @hwloc_alloc_setup_object(ptr noundef %85, i32 noundef 17, i32 noundef %.0.i279) #26 - %.not78.i.i289 = icmp eq ptr %1658, null - br i1 %.not78.i.i289, label %.loopexit.thread.i.i, label %1659 - -1659: ; preds = %dmi_memory_device_rank.exit.thread.i.i - %1660 = call noalias dereferenceable_or_null(13) ptr @strdup(ptr noundef nonnull @.str.550) #26 - %1661 = getelementptr inbounds i8, ptr %1658, i64 8 - store ptr %1660, ptr %1661, align 8 - %1662 = getelementptr inbounds i8, ptr %1658, i64 216 - %1663 = call i32 @hwloc__move_infos(ptr noundef nonnull %1662, ptr noundef nonnull %5) #26 - %1664 = call ptr @hwloc_get_obj_by_depth(ptr noundef readonly %85, i32 noundef 0, i32 noundef 0) #29 - call void @hwloc_insert_object_by_parent(ptr noundef %85, ptr noundef %1664, ptr noundef nonnull %1658) #26 +dmi_memory_device_rank.exit.thread.i.i: ; preds = %1647, %1645, %dmi_memory_device_size.exit.i.i + %1652 = call ptr @hwloc_alloc_setup_object(ptr noundef %85, i32 noundef 17, i32 noundef %.0.i279) #26 + %.not78.i.i289 = icmp eq ptr %1652, null + br i1 %.not78.i.i289, label %.loopexit.thread.i.i, label %1653 + +1653: ; preds = %dmi_memory_device_rank.exit.thread.i.i + %1654 = call noalias dereferenceable_or_null(13) ptr @strdup(ptr noundef nonnull @.str.550) #26 + %1655 = getelementptr inbounds i8, ptr %1652, i64 8 + store ptr %1654, ptr %1655, align 8 + %1656 = getelementptr inbounds i8, ptr %1652, i64 216 + %1657 = call i32 @hwloc__move_infos(ptr noundef nonnull %1656, ptr noundef nonnull %5) #26 + %1658 = call ptr @hwloc_get_obj_by_depth(ptr noundef readonly %85, i32 noundef 0, i32 noundef 0) #29 + call void @hwloc_insert_object_by_parent(ptr noundef %85, ptr noundef %1658, ptr noundef nonnull %1652) #26 br label %hwloc__get_firmware_dmi_memory_info_one.exit.i .loopexit.thread.i.i: ; preds = %dmi_memory_device_rank.exit.thread.i.i, %.loopexit.i.i, %1536 call void @hwloc__free_infos(ptr noundef nonnull %5) #26 br label %hwloc__get_firmware_dmi_memory_info_one.exit.i -hwloc__get_firmware_dmi_memory_info_one.exit.i: ; preds = %.loopexit.thread.i.i, %1659 +hwloc__get_firmware_dmi_memory_info_one.exit.i: ; preds = %.loopexit.thread.i.i, %1653 call void @llvm.lifetime.end.p0(i64 256, ptr nonnull %4) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %5) - %1665 = call i32 @fclose(ptr noundef nonnull %1529) - %1666 = add i32 %.0.i279, 1 + %1659 = call i32 @fclose(ptr noundef nonnull %1529) + %1660 = add i32 %.0.i279, 1 br label %1520 hwloc_fopen.exit.thread.sink.split.i: ; preds = %1533, %1530 - %1667 = call i32 @fclose(ptr noundef nonnull %1529) + %1661 = call i32 @fclose(ptr noundef nonnull %1529) br label %hwloc__get_firmware_dmi_memory_info.exit hwloc__get_firmware_dmi_memory_info.exit: ; preds = %hwloc_openat.exit.i.i.i280, %hwloc_fopen.exit.i282, %hwloc_fopen.exit.thread.sink.split.i call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %6) call void @llvm.lifetime.end.p0(i64 32, ptr nonnull %7) - br label %1668 - -1668: ; preds = %.thread, %hwloc__get_firmware_dmi_memory_info.exit, %287 - %1669 = load i32, ptr %86, align 4 - %.not59 = icmp eq i32 %1669, 0 - br i1 %.not59, label %1700, label %1670 - -1670: ; preds = %1668 - %1671 = getelementptr inbounds i8, ptr %85, i64 24 - %1672 = load ptr, ptr %1671, align 8 - %1673 = load ptr, ptr %1672, align 8 - %1674 = load ptr, ptr %1673, align 8 + br label %1662 + +1662: ; preds = %.thread, %hwloc__get_firmware_dmi_memory_info.exit, %287 + %1663 = load i32, ptr %86, align 4 + %.not59 = icmp eq i32 %1663, 0 + br i1 %.not59, label %1694, label %1664 + +1664: ; preds = %1662 + %1665 = getelementptr inbounds i8, ptr %85, i64 24 + %1666 = load ptr, ptr %1665, align 8 + %1667 = load ptr, ptr %1666, align 8 + %1668 = load ptr, ptr %1667, align 8 call void @llvm.lifetime.start.p0(i64 128, ptr nonnull %3) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(28) %3, ptr noundef nonnull align 1 dereferenceable(28) @.str.598, i64 28, i1 false) #26 - %1675 = getelementptr inbounds i8, ptr %0, i64 88 - %1676 = load i32, ptr %1675, align 8 - %1677 = icmp sgt i32 %1676, -1 - br i1 %1677, label %.preheader.i.i.i.i299, label %hwloc_checkat.exit.thread.i.i.i294 - -.preheader.i.i.i.i299: ; preds = %1670, %.preheader.i.i.i.i299 - %.1.i.i.i.i300 = phi ptr [ %1680, %.preheader.i.i.i.i299 ], [ %3, %1670 ] - %1678 = load i8, ptr %.1.i.i.i.i300, align 1 - %1679 = icmp eq i8 %1678, 47 - %1680 = getelementptr inbounds i8, ptr %.1.i.i.i.i300, i64 1 - br i1 %1679, label %.preheader.i.i.i.i299, label %hwloc_checkat.exit.thread.i.i.i294, !llvm.loop !4 - -hwloc_checkat.exit.thread.i.i.i294: ; preds = %.preheader.i.i.i.i299, %1670 - %.0.i11.i.i.i295 = phi ptr [ %3, %1670 ], [ %.1.i.i.i.i300, %.preheader.i.i.i.i299 ] - %1681 = call i32 (i32, ptr, i32, ...) @openat(i32 noundef %1676, ptr noundef nonnull %.0.i11.i.i.i295, i32 noundef 65536) #26 - %1682 = icmp slt i32 %1681, 0 - br i1 %1682, label %hwloc_opendir.exit.thread.i, label %hwloc_opendir.exit.i296 + %1669 = getelementptr inbounds i8, ptr %0, i64 88 + %1670 = load i32, ptr %1669, align 8 + %1671 = icmp sgt i32 %1670, -1 + br i1 %1671, label %.preheader.i.i.i.i299, label %hwloc_checkat.exit.thread.i.i.i294 + +.preheader.i.i.i.i299: ; preds = %1664, %.preheader.i.i.i.i299 + %.1.i.i.i.i300 = phi ptr [ %1674, %.preheader.i.i.i.i299 ], [ %3, %1664 ] + %1672 = load i8, ptr %.1.i.i.i.i300, align 1 + %1673 = icmp eq i8 %1672, 47 + %1674 = getelementptr inbounds i8, ptr %.1.i.i.i.i300, i64 1 + br i1 %1673, label %.preheader.i.i.i.i299, label %hwloc_checkat.exit.thread.i.i.i294, !llvm.loop !4 + +hwloc_checkat.exit.thread.i.i.i294: ; preds = %.preheader.i.i.i.i299, %1664 + %.0.i11.i.i.i295 = phi ptr [ %3, %1664 ], [ %.1.i.i.i.i300, %.preheader.i.i.i.i299 ] + %1675 = call i32 (i32, ptr, i32, ...) @openat(i32 noundef %1670, ptr noundef nonnull %.0.i11.i.i.i295, i32 noundef 65536) #26 + %1676 = icmp slt i32 %1675, 0 + br i1 %1676, label %hwloc_opendir.exit.thread.i, label %hwloc_opendir.exit.i296 hwloc_opendir.exit.i296: ; preds = %hwloc_checkat.exit.thread.i.i.i294 - %1683 = call ptr @fdopendir(i32 noundef %1681) #26 - %.not.i297 = icmp eq ptr %1683, null - br i1 %.not.i297, label %hwloc_opendir.exit.thread.i, label %1692 + %1677 = call ptr @fdopendir(i32 noundef %1675) #26 + %.not.i297 = icmp eq ptr %1677, null + br i1 %.not.i297, label %hwloc_opendir.exit.thread.i, label %1686 hwloc_opendir.exit.thread.i: ; preds = %hwloc_opendir.exit.i296, %hwloc_checkat.exit.thread.i.i.i294 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 16 dereferenceable(18) %3, ptr noundef nonnull align 1 dereferenceable(18) @.str.599, i64 18, i1 false) #26 - %1684 = load i32, ptr %1675, align 8 - %1685 = icmp sgt i32 %1684, -1 - br i1 %1685, label %.preheader.i.i.i67.i, label %hwloc_checkat.exit.thread.i.i64.i + %1678 = load i32, ptr %1669, align 8 + %1679 = icmp sgt i32 %1678, -1 + br i1 %1679, label %.preheader.i.i.i67.i, label %hwloc_checkat.exit.thread.i.i64.i .preheader.i.i.i67.i: ; preds = %hwloc_opendir.exit.thread.i, %.preheader.i.i.i67.i - %.1.i.i.i68.i = phi ptr [ %1688, %.preheader.i.i.i67.i ], [ %3, %hwloc_opendir.exit.thread.i ] - %1686 = load i8, ptr %.1.i.i.i68.i, align 1 - %1687 = icmp eq i8 %1686, 47 - %1688 = getelementptr inbounds i8, ptr %.1.i.i.i68.i, i64 1 - br i1 %1687, label %.preheader.i.i.i67.i, label %hwloc_checkat.exit.thread.i.i64.i, !llvm.loop !4 + %.1.i.i.i68.i = phi ptr [ %1682, %.preheader.i.i.i67.i ], [ %3, %hwloc_opendir.exit.thread.i ] + %1680 = load i8, ptr %.1.i.i.i68.i, align 1 + %1681 = icmp eq i8 %1680, 47 + %1682 = getelementptr inbounds i8, ptr %.1.i.i.i68.i, i64 1 + br i1 %1681, label %.preheader.i.i.i67.i, label %hwloc_checkat.exit.thread.i.i64.i, !llvm.loop !4 hwloc_checkat.exit.thread.i.i64.i: ; preds = %.preheader.i.i.i67.i, %hwloc_opendir.exit.thread.i %.0.i11.i.i65.i = phi ptr [ %3, %hwloc_opendir.exit.thread.i ], [ %.1.i.i.i68.i, %.preheader.i.i.i67.i ] - %1689 = call i32 (i32, ptr, i32, ...) @openat(i32 noundef %1684, ptr noundef nonnull %.0.i11.i.i65.i, i32 noundef 65536) #26 - %1690 = icmp slt i32 %1689, 0 - br i1 %1690, label %hwloc__get_dmi_id_info.exit, label %hwloc_opendir.exit69.i + %1683 = call i32 (i32, ptr, i32, ...) @openat(i32 noundef %1678, ptr noundef nonnull %.0.i11.i.i65.i, i32 noundef 65536) #26 + %1684 = icmp slt i32 %1683, 0 + br i1 %1684, label %hwloc__get_dmi_id_info.exit, label %hwloc_opendir.exit69.i hwloc_opendir.exit69.i: ; preds = %hwloc_checkat.exit.thread.i.i64.i - %1691 = call ptr @fdopendir(i32 noundef %1689) #26 - %.not62.i = icmp eq ptr %1691, null - br i1 %.not62.i, label %hwloc__get_dmi_id_info.exit, label %1692 + %1685 = call ptr @fdopendir(i32 noundef %1683) #26 + %.not62.i = icmp eq ptr %1685, null + br i1 %.not62.i, label %hwloc__get_dmi_id_info.exit, label %1686 -1692: ; preds = %hwloc_opendir.exit69.i, %hwloc_opendir.exit.i296 +1686: ; preds = %hwloc_opendir.exit69.i, %hwloc_opendir.exit.i296 %.059.i = phi i32 [ 27, %hwloc_opendir.exit.i296 ], [ 17, %hwloc_opendir.exit69.i ] - %.0.i298 = phi ptr [ %1683, %hwloc_opendir.exit.i296 ], [ %1691, %hwloc_opendir.exit69.i ] - %1693 = call i32 @closedir(ptr noundef nonnull %.0.i298) - %1694 = add nuw nsw i32 %.059.i, 1 - %1695 = zext nneg i32 %.059.i to i64 - %1696 = getelementptr inbounds [128 x i8], ptr %3, i64 0, i64 %1695 - store i8 47, ptr %1696, align 1 - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.600, ptr noundef nonnull @.str.601) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.602, ptr noundef nonnull @.str.603) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.604, ptr noundef nonnull @.str.605) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.606, ptr noundef nonnull @.str.607) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.608, ptr noundef nonnull @.str.609) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.610, ptr noundef nonnull @.str.611) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.612, ptr noundef nonnull @.str.613) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.615) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.616, ptr noundef nonnull @.str.617) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.618, ptr noundef nonnull @.str.619) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.620, ptr noundef nonnull @.str.621) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.622, ptr noundef nonnull @.str.623) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.624, ptr noundef nonnull @.str.625) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.626, ptr noundef nonnull @.str.627) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.628, ptr noundef nonnull @.str.629) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.630, ptr noundef nonnull @.str.631) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.632, ptr noundef nonnull @.str.633) - call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1674, ptr noundef %3, i32 noundef %1694, ptr noundef nonnull @.str.634, ptr noundef nonnull @.str.635) + %.0.i298 = phi ptr [ %1677, %hwloc_opendir.exit.i296 ], [ %1685, %hwloc_opendir.exit69.i ] + %1687 = call i32 @closedir(ptr noundef nonnull %.0.i298) + %1688 = add nuw nsw i32 %.059.i, 1 + %1689 = zext nneg i32 %.059.i to i64 + %1690 = getelementptr inbounds [128 x i8], ptr %3, i64 0, i64 %1689 + store i8 47, ptr %1690, align 1 + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.600, ptr noundef nonnull @.str.601) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.602, ptr noundef nonnull @.str.603) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.604, ptr noundef nonnull @.str.605) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.606, ptr noundef nonnull @.str.607) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.608, ptr noundef nonnull @.str.609) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.610, ptr noundef nonnull @.str.611) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.612, ptr noundef nonnull @.str.613) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.614, ptr noundef nonnull @.str.615) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.616, ptr noundef nonnull @.str.617) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.618, ptr noundef nonnull @.str.619) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.620, ptr noundef nonnull @.str.621) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.622, ptr noundef nonnull @.str.623) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.624, ptr noundef nonnull @.str.625) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.626, ptr noundef nonnull @.str.627) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.628, ptr noundef nonnull @.str.629) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.630, ptr noundef nonnull @.str.631) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.632, ptr noundef nonnull @.str.633) + call fastcc void @hwloc__get_dmi_id_one_info(ptr noundef nonnull readonly %83, ptr noundef %1668, ptr noundef %3, i32 noundef %1688, ptr noundef nonnull @.str.634, ptr noundef nonnull @.str.635) br label %hwloc__get_dmi_id_info.exit -hwloc__get_dmi_id_info.exit: ; preds = %hwloc_checkat.exit.thread.i.i64.i, %hwloc_opendir.exit69.i, %1692 +hwloc__get_dmi_id_info.exit: ; preds = %hwloc_checkat.exit.thread.i.i64.i, %hwloc_opendir.exit69.i, %1686 call void @llvm.lifetime.end.p0(i64 128, ptr nonnull %3) - %1697 = getelementptr inbounds i8, ptr %85, i64 688 - %1698 = call i32 @hwloc__add_info(ptr noundef nonnull %1697, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.56) #26 - %1699 = getelementptr inbounds i8, ptr %0, i64 140 - call void @hwloc_add_uname_info(ptr noundef %85, ptr noundef nonnull %1699) #26 + %1691 = getelementptr inbounds i8, ptr %85, i64 688 + %1692 = call i32 @hwloc__add_info(ptr noundef nonnull %1691, ptr noundef nonnull @.str.55, ptr noundef nonnull @.str.56) #26 + %1693 = getelementptr inbounds i8, ptr %0, i64 140 + call void @hwloc_add_uname_info(ptr noundef %85, ptr noundef nonnull %1693) #26 store i32 0, ptr %86, align 4 - br label %1700 + br label %1694 -1700: ; preds = %hwloc__get_dmi_id_info.exit, %1668 +1694: ; preds = %hwloc__get_dmi_id_info.exit, %1662 ret i32 0 } diff --git a/bench/icu/optimized/locmap.ll b/bench/icu/optimized/locmap.ll index 09b8e96f134..51b3c124dae 100644 --- a/bench/icu/optimized/locmap.ll +++ b/bench/icu/optimized/locmap.ll @@ -1212,7 +1212,8 @@ lor.lhs.false2: ; preds = %entry lor.lhs.false3: ; preds = %lor.lhs.false2 %call4 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %posixID) #15 - %cmp5 = icmp ult i64 %call4, 2 + %call.fr.i = freeze i64 %call4 + %cmp5 = icmp ult i64 %call.fr.i, 2 br i1 %cmp5, label %return, label %while.body while.body: ; preds = %lor.lhs.false3, %if.end21 @@ -1250,8 +1251,6 @@ if.end21: ; preds = %if.else, %if.end9 br i1 %cmp6, label %while.body, label %while.end, !llvm.loop !7 while.end: ; preds = %while.body, %if.end21 - %call.i = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %posixID) #15 - %call.fr.i = freeze i64 %call.i %conv.i = trunc i64 %call.fr.i to i32 br label %for.body diff --git a/bench/icu/optimized/pkg_icu.ll b/bench/icu/optimized/pkg_icu.ll index ea50a771c1c..d8093fb6692 100644 --- a/bench/icu/optimized/pkg_icu.ll +++ b/bench/icu/optimized/pkg_icu.ll @@ -56,11 +56,9 @@ if.end9: ; preds = %if.then3, %if.end %listPkg.0 = phi ptr [ %listPkgIn, %if.end ], [ %call4, %if.then3 ] %strlen = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %listname) %strchr = getelementptr inbounds i8, ptr %listname, i64 %strlen - %strlen.i = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %listname) - %strchr.i = getelementptr inbounds i8, ptr %listname, i64 %strlen.i - %cmp5.i = icmp sgt i64 %strlen.i, 4 - %add.ptr.i = getelementptr inbounds i8, ptr %strchr.i, i64 -4 - br i1 %cmp5.i, label %for.body.us.i, label %if.else76 + %cmp5.i = icmp sgt i64 %strlen, 4 + %add.ptr.i = getelementptr inbounds i8, ptr %strchr, i64 -4 + br i1 %cmp5.i, label %for.body.us.i, label %if.else83 for.body.us.i: ; preds = %if.end9, %for.inc.us.i %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %for.inc.us.i ], [ 0, %if.end9 ] @@ -73,7 +71,7 @@ for.body.us.i: ; preds = %if.end9, %for.inc.u for.inc.us.i: ; preds = %for.body.us.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, 3 - br i1 %exitcond.not.i, label %if.else76, label %for.body.us.i, !llvm.loop !4 + br i1 %exitcond.not.i, label %land.lhs.true78, label %for.body.us.i, !llvm.loop !4 if.then12: ; preds = %for.body.us.i %call13 = tail call noalias ptr @fopen(ptr noundef nonnull %listname, ptr noundef nonnull @.str.2) @@ -263,13 +261,8 @@ while.end74: ; preds = %while.cond.backedge %call75 = call i32 @fclose(ptr noundef nonnull %call13) br label %return -if.else76: ; preds = %for.inc.us.i, %if.end9 - %cmp77 = icmp sgt i64 %strlen, 4 - br i1 %cmp77, label %land.lhs.true78, label %if.else83 - -land.lhs.true78: ; preds = %if.else76 - %add.ptr79 = getelementptr inbounds i8, ptr %strchr, i64 -4 - %bcmp = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(4) %add.ptr79, ptr noundef nonnull dereferenceable(4) @.str.5, i64 4) +land.lhs.true78: ; preds = %for.inc.us.i + %bcmp = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(4) %add.ptr.i, ptr noundef nonnull dereferenceable(4) @.str.5, i64 4) %cmp81 = icmp eq i32 %bcmp, 0 br i1 %cmp81, label %if.then82, label %if.else83 @@ -279,7 +272,7 @@ if.then82: ; preds = %land.lhs.true78 tail call void @_ZN6icu_757Package11readPackageEPKc(ptr noundef nonnull align 8 dereferenceable(201237) %listPkg.0, ptr noundef nonnull %listname) br label %return -if.else83: ; preds = %land.lhs.true78, %if.else76 +if.else83: ; preds = %if.end9, %land.lhs.true78 %tobool84.not = icmp eq i8 %readContents, 0 br i1 %tobool84.not, label %if.else86, label %if.then85 diff --git a/bench/icu/optimized/uloc_tag.ll b/bench/icu/optimized/uloc_tag.ll index 22f3d717fb9..eaa4a1d2fbb 100644 --- a/bench/icu/optimized/uloc_tag.ll +++ b/bench/icu/optimized/uloc_tag.ll @@ -2399,8 +2399,8 @@ declare void @_ZN6icu_7520CheckedArrayByteSinkC1EPci(ptr noundef nonnull align 8 ; Function Attrs: mustprogress uwtable define void @ulocimp_toLanguageTag_75(ptr noundef %localeID, ptr noundef nonnull align 8 dereferenceable(8) %sink, i8 noundef signext %strict, ptr noundef %status) local_unnamed_addr #1 personality ptr @__gxx_personality_v0 { entry: - %buf.i176 = alloca [157 x i8], align 16 - %tmpStatus.i177 = alloca i32, align 4 + %buf.i175 = alloca [157 x i8], align 16 + %tmpStatus.i176 = alloca i32, align 4 %attrBuf.i = alloca [100 x i8], align 16 %attrBufLength.i = alloca i32, align 4 %attrPool.i = alloca %"class.icu_75::MemoryPool", align 8 @@ -2452,63 +2452,63 @@ if.then: ; preds = %invoke.cont2 store i32 %1, ptr %status, align 4 br label %cleanup92 -lpad.loopexit: ; preds = %for.body.i.i.i.i200 - %lpad.loopexit236 = landingpad { ptr, i32 } +lpad.loopexit: ; preds = %for.body.i.i.i.i199 + %lpad.loopexit235 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 -lpad.loopexit.split-lp.loopexit: ; preds = %for.body.i190 - %lpad.loopexit238 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit: ; preds = %for.body.i189 + %lpad.loopexit237 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 -lpad.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then38.i, %if.then53.i, %.noexc223, %.noexc224, %.noexc225, %if.end62.i, %.noexc227 - %lpad.loopexit242 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then38.i, %if.then53.i, %.noexc222, %.noexc223, %.noexc224, %if.end62.i, %.noexc226 + %lpad.loopexit241 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %while.body94.i - %lpad.loopexit245 = landingpad { ptr, i32 } + %lpad.loopexit244 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %while.body82.i, %.noexc141 - %lpad.loopexit248 = landingpad { ptr, i32 } + %lpad.loopexit247 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body.i.i.i.i - %lpad.loopexit251 = landingpad { ptr, i32 } + %lpad.loopexit250 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body.i121 - %lpad.loopexit254 = landingpad { ptr, i32 } + %lpad.loopexit253 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %if.then52.i, %if.then45.i, %for.end.i124 - %lpad.loopexit257 = landingpad { ptr, i32 } + %lpad.loopexit256 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body.i.i.i95 - %lpad.loopexit261 = landingpad { ptr, i32 } + %lpad.loopexit260 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body.i.i.i53 - %lpad.loopexit266 = landingpad { ptr, i32 } + %lpad.loopexit265 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit: ; preds = %for.body.i.i.i - %lpad.loopexit269 = landingpad { ptr, i32 } + %lpad.loopexit268 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 -lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then10.i.invoke, %entry, %if.end, %if.then10, %if.end.i, %if.end.i44, %if.else.i60, %.noexc70, %if.end.i75, %if.else.i84, %for.end.i92, %if.end.i114, %if.end.i180 - %lpad.loopexit.split-lp270 = landingpad { ptr, i32 } +lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp: ; preds = %if.then10.i.invoke, %entry, %if.end, %if.then10, %if.end.i, %if.end.i44, %if.else.i60, %.noexc70, %if.end.i75, %if.else.i84, %for.end.i92, %if.end.i114, %if.end.i179 + %lpad.loopexit.split-lp269 = landingpad { ptr, i32 } cleanup br label %ehcleanup95 @@ -2791,14 +2791,14 @@ invoke.cont76.thread: ; preds = %invoke.cont76.threa br label %invoke.cont79 invoke.cont76: ; preds = %if.then10.i.invoke - %.pr230 = load i32, ptr %status, align 4 + %.pr229 = load i32, ptr %status, align 4 call void @llvm.lifetime.end.p0(i64 12, ptr nonnull %buf.i) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %tmpStatus.i) %31 = load ptr, ptr %canonical, align 8 call void @llvm.lifetime.start.p0(i64 6, ptr nonnull %buf.i41) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %tmpStatus.i42) store i32 0, ptr %tmpStatus.i42, align 4 - %cmp.i.i43 = icmp slt i32 %.pr230, 1 + %cmp.i.i43 = icmp slt i32 %.pr229, 1 br i1 %cmp.i.i43, label %if.end.i44, label %invoke.cont79 if.end.i44: ; preds = %invoke.cont76 @@ -2867,14 +2867,14 @@ invoke.cont79.thread: ; preds = %if.then14.i50, %if. br label %invoke.cont82 invoke.cont79: ; preds = %if.then14.i50, %if.end8.i47, %if.then4.i63, %invoke.cont76, %invoke.cont76.thread, %.noexc70 - %.pr232 = load i32, ptr %status, align 4 + %.pr231 = load i32, ptr %status, align 4 call void @llvm.lifetime.end.p0(i64 6, ptr nonnull %buf.i41) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %tmpStatus.i42) %36 = load ptr, ptr %canonical, align 8 call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %buf.i72) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %tmpStatus.i73) store i32 0, ptr %tmpStatus.i73, align 4 - %cmp.i.i74 = icmp slt i32 %.pr232, 1 + %cmp.i.i74 = icmp slt i32 %.pr231, 1 br i1 %cmp.i.i74, label %if.end.i75, label %invoke.cont82 if.end.i75: ; preds = %invoke.cont79 @@ -2980,14 +2980,14 @@ invoke.cont82.thread: ; preds = %if.then14.i81, %if. br label %invoke.cont85 invoke.cont82: ; preds = %if.then14.i81, %if.end8.i78, %if.then4.i102, %invoke.cont79, %invoke.cont79.thread, %for.end.i92 - %.pr234 = load i32, ptr %status, align 4 + %.pr233 = load i32, ptr %status, align 4 call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %buf.i72) call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %tmpStatus.i73) %43 = load ptr, ptr %canonical, align 8 call void @llvm.lifetime.start.p0(i64 157, ptr nonnull %buf.i111) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %tmpStatus.i112) store i32 0, ptr %tmpStatus.i112, align 4 - %cmp.i.i113 = icmp slt i32 %.pr234, 1 + %cmp.i.i113 = icmp slt i32 %.pr233, 1 br i1 %cmp.i.i113, label %if.end.i114, label %invoke.cont85 if.end.i114: ; preds = %invoke.cont82 @@ -3442,56 +3442,56 @@ for.body.lr.ph.i: ; preds = %while.cond47.i %71 = load ptr, ptr %buf.i146, align 8 %72 = sext i32 %i.0.i to i64 %wide.trip.count421.i = sext i32 %70 to i64 - %arrayidx.i.i.i304 = getelementptr inbounds i8, ptr %71, i64 %72 - %73 = load i8, ptr %arrayidx.i.i.i304, align 1 - %cmp53.not.i305 = icmp eq i8 %73, 45 - br i1 %cmp53.not.i305, label %if.else61.i, label %if.then54.i + %arrayidx.i.i.i303 = getelementptr inbounds i8, ptr %71, i64 %72 + %73 = load i8, ptr %arrayidx.i.i.i303, align 1 + %cmp53.not.i304 = icmp eq i8 %73, 45 + br i1 %cmp53.not.i304, label %if.else61.i, label %if.then54.i -for.body.i171: ; preds = %if.then57.i - %arrayidx.i.i.i = getelementptr inbounds i8, ptr %71, i64 %indvars.iv.next.i174 +for.body.i170: ; preds = %if.then57.i + %arrayidx.i.i.i = getelementptr inbounds i8, ptr %71, i64 %indvars.iv.next.i173 %74 = load i8, ptr %arrayidx.i.i.i, align 1 %cmp53.not.i = icmp eq i8 %74, 45 br i1 %cmp53.not.i, label %if.else61.i.loopexit, label %if.then54.i, !llvm.loop !22 -if.then54.i: ; preds = %for.body.lr.ph.i, %for.body.i171 - %75 = phi i8 [ %74, %for.body.i171 ], [ %73, %for.body.lr.ph.i ] - %indvars.iv.i172307 = phi i64 [ %indvars.iv.next.i174, %for.body.i171 ], [ %72, %for.body.lr.ph.i ] - %indvars.iv416.i306 = phi i64 [ %indvars.iv.next417.i, %for.body.i171 ], [ 0, %for.body.lr.ph.i ] - %exitcond.not.i = icmp eq i64 %indvars.iv416.i306, 100 +if.then54.i: ; preds = %for.body.lr.ph.i, %for.body.i170 + %75 = phi i8 [ %74, %for.body.i170 ], [ %73, %for.body.lr.ph.i ] + %indvars.iv.i171306 = phi i64 [ %indvars.iv.next.i173, %for.body.i170 ], [ %72, %for.body.lr.ph.i ] + %indvars.iv416.i305 = phi i64 [ %indvars.iv.next417.i, %for.body.i170 ], [ 0, %for.body.lr.ph.i ] + %exitcond.not.i = icmp eq i64 %indvars.iv416.i305, 100 br i1 %exitcond.not.i, label %cleanup.thread299.i, label %if.then57.i if.then57.i: ; preds = %if.then54.i - %indvars.iv.next417.i = add nuw nsw i64 %indvars.iv416.i306, 1 + %indvars.iv.next417.i = add nuw nsw i64 %indvars.iv416.i305, 1 %76 = trunc nuw nsw i64 %indvars.iv.next417.i to i32 store i32 %76, ptr %attrBufLength.i, align 4 - %arrayidx.i173 = getelementptr inbounds [100 x i8], ptr %attrBuf.i, i64 0, i64 %indvars.iv416.i306 - store i8 %75, ptr %arrayidx.i173, align 1 - %indvars.iv.next.i174 = add nsw i64 %indvars.iv.i172307, 1 - %exitcond422.not.i = icmp eq i64 %indvars.iv.next.i174, %wide.trip.count421.i - br i1 %exitcond422.not.i, label %for.end.i175, label %for.body.i171, !llvm.loop !22 + %arrayidx.i172 = getelementptr inbounds [100 x i8], ptr %attrBuf.i, i64 0, i64 %indvars.iv416.i305 + store i8 %75, ptr %arrayidx.i172, align 1 + %indvars.iv.next.i173 = add nsw i64 %indvars.iv.i171306, 1 + %exitcond422.not.i = icmp eq i64 %indvars.iv.next.i173, %wide.trip.count421.i + br i1 %exitcond422.not.i, label %for.end.i174, label %for.body.i170, !llvm.loop !22 cleanup.thread299.i: ; preds = %if.then54.i store i32 1, ptr %status, align 4 call void @_ZN6icu_7515MaybeStackArrayIcLi40EED1Ev(ptr noundef nonnull align 8 dereferenceable(53) %buf.i146) #14 br label %cleanup284.i -if.else61.i.loopexit: ; preds = %for.body.i171 - %77 = trunc nsw i64 %indvars.iv.next.i174 to i32 +if.else61.i.loopexit: ; preds = %for.body.i170 + %77 = trunc nsw i64 %indvars.iv.next.i173 to i32 br label %if.else61.i if.else61.i: ; preds = %if.else61.i.loopexit, %for.body.lr.ph.i %.lcssa = phi i32 [ 0, %for.body.lr.ph.i ], [ %76, %if.else61.i.loopexit ] - %indvars.iv.i172.lcssa = phi i32 [ %i.0.i, %for.body.lr.ph.i ], [ %77, %if.else61.i.loopexit ] - %inc62.i = add nsw i32 %indvars.iv.i172.lcssa, 1 - br label %for.end.i175 + %indvars.iv.i171.lcssa = phi i32 [ %i.0.i, %for.body.lr.ph.i ], [ %77, %if.else61.i.loopexit ] + %inc62.i = add nsw i32 %indvars.iv.i171.lcssa, 1 + br label %for.end.i174 -for.end.i175: ; preds = %if.then57.i, %if.else61.i +for.end.i174: ; preds = %if.then57.i, %if.else61.i %78 = phi i32 [ %.lcssa, %if.else61.i ], [ %76, %if.then57.i ] %i.2.i = phi i32 [ %inc62.i, %if.else61.i ], [ %70, %if.then57.i ] %cmp65.i = icmp sgt i32 %78, 0 br i1 %cmp65.i, label %if.then66.i, label %if.else74.i -if.then66.i: ; preds = %for.end.i175 +if.then66.i: ; preds = %for.end.i174 %cmp68.i = icmp ult i32 %78, 100 br i1 %cmp68.i, label %if.then69.i, label %if.else72.i @@ -3505,8 +3505,8 @@ if.else72.i: ; preds = %if.then66.i store i32 -124, ptr %status, align 4 br label %if.end78.i -if.else74.i: ; preds = %for.end.i175, %while.cond47.i - %i.2426.i = phi i32 [ %i.2.i, %for.end.i175 ], [ %i.0.i, %while.cond47.i ] +if.else74.i: ; preds = %for.end.i174, %while.cond47.i + %i.2426.i = phi i32 [ %i.2.i, %for.end.i174 ], [ %i.0.i, %while.cond47.i ] %cmp75.not.i = icmp slt i32 %i.2426.i, %70 br i1 %cmp75.not.i, label %if.end78.i, label %if.end181.i @@ -3515,7 +3515,7 @@ if.end78.i: ; preds = %if.else74.i, %if.el %79 = load i32, ptr %capacity.i.i.i, align 8 %80 = load i32, ptr %attrPool.i, align 8 %cmp.i117.i = icmp eq i32 %80, %79 - br i1 %cmp.i117.i, label %land.lhs.true.i.i, label %if.end.i.i163 + br i1 %cmp.i117.i, label %land.lhs.true.i.i, label %if.end.i.i162 land.lhs.true.i.i: ; preds = %if.end78.i %cmp3.i.i = icmp eq i32 %79, 8 @@ -3525,8 +3525,8 @@ land.lhs.true.i.i: ; preds = %if.end78.i br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.then82.i if.then.i.i.i: ; preds = %land.lhs.true.i.i - %conv.i.i.i169 = zext nneg i32 %cond.i.i to i64 - %mul.i.i.i = shl nuw nsw i64 %conv.i.i.i169, 3 + %conv.i.i.i168 = zext nneg i32 %cond.i.i to i64 + %mul.i.i.i = shl nuw nsw i64 %conv.i.i.i168, 3 %call.i.i120.i = invoke noalias ptr @uprv_malloc_75(i64 noundef %mul.i.i.i) #15 to label %call.i.i.noexc.i unwind label %lpad24.loopexit.i @@ -3550,8 +3550,8 @@ if.then5.i.i.i: ; preds = %if.then3.i.i.i if.end14.i.i.i: ; preds = %if.then5.i.i.i, %if.then3.i.i.i %83 = load i8, ptr %needToRelease.i.i.i, align 4 - %tobool.not.i.i.i.i170 = icmp eq i8 %83, 0 - br i1 %tobool.not.i.i.i.i170, label %_ZN6icu_7515MaybeStackArrayIP18AttributeListEntryLi8EE6resizeEii.exit.i.i, label %if.then.i.i.i.i + %tobool.not.i.i.i.i169 = icmp eq i8 %83, 0 + br i1 %tobool.not.i.i.i.i169, label %_ZN6icu_7515MaybeStackArrayIP18AttributeListEntryLi8EE6resizeEii.exit.i.i, label %if.then.i.i.i.i if.then.i.i.i.i: ; preds = %if.end14.i.i.i %84 = load ptr, ptr %fPool.i.i, align 8 @@ -3562,14 +3562,14 @@ _ZN6icu_7515MaybeStackArrayIP18AttributeListEntryLi8EE6resizeEii.exit.i.i: ; pre store ptr %call.i.i120.i, ptr %fPool.i.i, align 8 store i32 %cond.i.i, ptr %capacity.i.i.i, align 8 store i8 1, ptr %needToRelease.i.i.i, align 4 - br label %if.end.i.i163 + br label %if.end.i.i162 -if.end.i.i163: ; preds = %_ZN6icu_7515MaybeStackArrayIP18AttributeListEntryLi8EE6resizeEii.exit.i.i, %if.end78.i +if.end.i.i162: ; preds = %_ZN6icu_7515MaybeStackArrayIP18AttributeListEntryLi8EE6resizeEii.exit.i.i, %if.end78.i %call7.i.i = call noundef ptr @_ZN6icu_757UMemorynwEm(i64 noundef 16) #14 %new.isnull.i.i = icmp eq ptr %call7.i.i, null br i1 %new.isnull.i.i, label %invoke.cont79.thread281.i, label %if.end83.i -invoke.cont79.thread281.i: ; preds = %if.end.i.i163 +invoke.cont79.thread281.i: ; preds = %if.end.i.i162 %85 = load i32, ptr %attrPool.i, align 8 %inc.i282.i = add nsw i32 %85, 1 store i32 %inc.i282.i, ptr %attrPool.i, align 8 @@ -3583,7 +3583,7 @@ if.then82.i: ; preds = %call.i.i.noexc.i, % store i32 7, ptr %status, align 4 br label %if.end181.i -if.end83.i: ; preds = %if.end.i.i163 +if.end83.i: ; preds = %if.end.i.i162 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %call7.i.i, i8 0, i64 16, i1 false) %87 = load i32, ptr %attrPool.i, align 8 %inc.i.i = add nsw i32 %87, 1 @@ -3622,12 +3622,12 @@ if.end.i124.preheader.i: ; preds = %if.end92.i if.end.i124.i: ; preds = %if.end18.i.i %92 = load ptr, ptr %93, align 8 - %call.i.i165 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) %92) #17 - %cmp7.i.i166 = icmp slt i32 %call.i.i165, 0 - br i1 %cmp7.i.i166, label %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.sink.split.i, label %if.end15.i.i, !llvm.loop !23 + %call.i.i164 = call i32 @strcmp(ptr noundef nonnull dereferenceable(1) %90, ptr noundef nonnull dereferenceable(1) %92) #17 + %cmp7.i.i165 = icmp slt i32 %call.i.i164, 0 + br i1 %cmp7.i.i165, label %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.sink.split.i, label %if.end15.i.i, !llvm.loop !23 if.end15.i.i: ; preds = %if.end.i124.preheader.i, %if.end.i124.i - %call.i369.i = phi i32 [ %call.i.i165, %if.end.i124.i ], [ %call.i366.i, %if.end.i124.preheader.i ] + %call.i369.i = phi i32 [ %call.i.i164, %if.end.i124.i ], [ %call.i366.i, %if.end.i124.preheader.i ] %cur.023.i368.i = phi ptr [ %93, %if.end.i124.i ], [ %firstAttr.3.i, %if.end.i124.preheader.i ] %cmp16.i.i = icmp eq i32 %call.i369.i, 0 br i1 %cmp16.i.i, label %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.i, label %if.end18.i.i @@ -3635,8 +3635,8 @@ if.end15.i.i: ; preds = %if.end.i124.prehead if.end18.i.i: ; preds = %if.end15.i.i %next19.i.i = getelementptr inbounds i8, ptr %cur.023.i368.i, i64 8 %93 = load ptr, ptr %next19.i.i, align 8 - %cmp2.i.i164 = icmp eq ptr %93, null - br i1 %cmp2.i.i164, label %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.sink.split.i, label %if.end.i124.i, !llvm.loop !23 + %cmp2.i.i163 = icmp eq ptr %93, null + br i1 %cmp2.i.i163, label %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.sink.split.i, label %if.end.i124.i, !llvm.loop !23 _ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.sink.split.i: ; preds = %if.end18.i.i, %if.end.i124.i %next19.i.i.le = getelementptr inbounds i8, ptr %cur.023.i368.i, i64 8 @@ -3644,10 +3644,10 @@ _ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.sink.split.i: br label %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.i _ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.i: ; preds = %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.sink.split.i, %if.end.i124.preheader.i, %if.end92.i - %.sink.i167 = phi ptr [ null, %if.end92.i ], [ %firstAttr.3.i, %if.end.i124.preheader.i ], [ %93, %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.sink.split.i ] + %.sink.i166 = phi ptr [ null, %if.end92.i ], [ %firstAttr.3.i, %if.end.i124.preheader.i ], [ %93, %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.sink.split.i ] %firstAttr.6.ph.i = phi ptr [ %call7.i.i, %if.end92.i ], [ %call7.i.i, %if.end.i124.preheader.i ], [ %firstAttr.3.i, %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.sink.split.i ] - %next.i.i168 = getelementptr inbounds i8, ptr %call7.i.i, i64 8 - store ptr %.sink.i167, ptr %next.i.i168, align 8 + %next.i.i167 = getelementptr inbounds i8, ptr %call7.i.i, i64 8 + store ptr %.sink.i166, ptr %next.i.i167, align 8 br label %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.i _ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.i: ; preds = %if.end15.i.i, %_ZL19_addAttributeToListPP18AttributeListEntryS0_.exit.sink.split.i @@ -3717,7 +3717,7 @@ invoke.cont136.i: ; preds = %if.end134.i if.else140.i: ; preds = %if.else103.i %99 = load i8, ptr %call19.i, align 1 %cmp142.i = icmp eq i8 %99, 120 - br i1 %cmp142.i, label %if.then143.i, label %if.else153.i + br i1 %cmp142.i, label %if.then143.i, label %if.end.i128.i if.then143.i: ; preds = %if.else140.i %100 = load ptr, ptr %buf.i146, align 8 @@ -3731,19 +3731,9 @@ invoke.cont145.i: ; preds = %if.then143.i if.then148.i: ; preds = %invoke.cont145.i br i1 %tobool35.not.i, label %cleanup.thread.i, label %cleanup.i, !llvm.loop !21 -if.else153.i: ; preds = %if.else140.i - %cmp.i127.i = icmp slt i32 %conv.i157, 0 - br i1 %cmp.i127.i, label %if.then.i132.i, label %if.end.i128.i - -if.then.i132.i: ; preds = %if.else153.i - %call.i133.i = call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %call19.i) #17 - %conv.i134.i = trunc i64 %call.i133.i to i32 - br label %if.end.i128.i - -if.end.i128.i: ; preds = %if.then.i132.i, %if.else153.i - %len.addr.0.i.i159 = phi i32 [ %conv.i134.i, %if.then.i132.i ], [ %conv.i157, %if.else153.i ] - %cmp1.i.i160 = icmp eq i32 %len.addr.0.i.i159, 1 - br i1 %cmp1.i.i160, label %land.lhs.true.i131.i, label %if.then162.i +if.end.i128.i: ; preds = %if.else140.i + %cmp1.i.i159 = icmp eq i32 %conv.i157, 1 + br i1 %cmp1.i.i159, label %land.lhs.true.i131.i, label %if.then162.i land.lhs.true.i131.i: ; preds = %if.end.i128.i %call2.i135.i = invoke signext i8 @uprv_isASCIILetter_75(i8 noundef signext %99) @@ -3751,14 +3741,14 @@ land.lhs.true.i131.i: ; preds = %if.end.i128.i call2.i.noexc.i: ; preds = %land.lhs.true.i131.i %tobool.not.i.i = icmp ne i8 %call2.i135.i, 0 - %.pre.i.i161 = load i8, ptr %call19.i, align 1 - %101 = add i8 %.pre.i.i161, -48 - %or.cond.i.i162 = icmp ult i8 %101, 10 - %or.cond6.i.i = select i1 %tobool.not.i.i, i1 true, i1 %or.cond.i.i162 + %.pre.i.i160 = load i8, ptr %call19.i, align 1 + %101 = add i8 %.pre.i.i160, -48 + %or.cond.i.i161 = icmp ult i8 %101, 10 + %or.cond6.i.i = select i1 %tobool.not.i.i, i1 true, i1 %or.cond.i.i161 br i1 %or.cond6.i.i, label %land.lhs.true8.i.i, label %if.then162.i land.lhs.true8.i.i: ; preds = %call2.i.noexc.i - %call9.i136.i = invoke signext i8 @uprv_asciitolower_75(i8 noundef signext %.pre.i.i161) + %call9.i136.i = invoke signext i8 @uprv_asciitolower_75(i8 noundef signext %.pre.i.i160) to label %call9.i.noexc.i unwind label %lpad24.loopexit.split-lp.i call9.i.noexc.i: ; preds = %land.lhs.true8.i.i @@ -4339,157 +4329,157 @@ invoke.cont88: ; preds = %if.then.i.i.i264.i, call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %sink23.i) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %ref.tmp.i) %184 = load ptr, ptr %canonical, align 8 - call void @llvm.lifetime.start.p0(i64 157, ptr nonnull %buf.i176) - call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %tmpStatus.i177) - store i32 0, ptr %tmpStatus.i177, align 4 + call void @llvm.lifetime.start.p0(i64 157, ptr nonnull %buf.i175) + call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %tmpStatus.i176) + store i32 0, ptr %tmpStatus.i176, align 4 %185 = load i32, ptr %status, align 4 - %cmp.i.i178 = icmp slt i32 %185, 1 - br i1 %cmp.i.i178, label %if.end.i180, label %_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit + %cmp.i.i177 = icmp slt i32 %185, 1 + br i1 %cmp.i.i177, label %if.end.i179, label %_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit -if.end.i180: ; preds = %invoke.cont88 - %call1.i218 = invoke i32 @uloc_getVariant_75(ptr noundef %184, ptr noundef nonnull %buf.i176, i32 noundef 157, ptr noundef nonnull %tmpStatus.i177) - to label %call1.i.noexc217 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp +if.end.i179: ; preds = %invoke.cont88 + %call1.i217 = invoke i32 @uloc_getVariant_75(ptr noundef %184, ptr noundef nonnull %buf.i175, i32 noundef 157, ptr noundef nonnull %tmpStatus.i176) + to label %call1.i.noexc216 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp -call1.i.noexc217: ; preds = %if.end.i180 - %186 = load i32, ptr %tmpStatus.i177, align 4 +call1.i.noexc216: ; preds = %if.end.i179 + %186 = load i32, ptr %tmpStatus.i176, align 4 %cmp.i29.i = icmp sgt i32 %186, 0 - %cmp.i181 = icmp eq i32 %186, -124 - %or.cond.i182 = or i1 %cmp.i29.i, %cmp.i181 - br i1 %or.cond.i182, label %if.then4.i215, label %if.end8.i183 - -if.then4.i215: ; preds = %call1.i.noexc217 - %tobool5.not.i216 = icmp eq i8 %strict, 0 - br i1 %tobool5.not.i216, label %_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit, label %if.end74.sink.split.i - -if.end8.i183: ; preds = %call1.i.noexc217 - %cmp9.i184 = icmp sgt i32 %call1.i218, 0 - br i1 %cmp9.i184, label %while.body.i185, label %_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit - -while.body.i185: ; preds = %if.end8.i183, %if.end73.i - %firstValue.040.i = phi i8 [ %firstValue.3.i, %if.end73.i ], [ 1, %if.end8.i183 ] - %pPriv.039.i = phi ptr [ %pPriv.1.i, %if.end73.i ], [ null, %if.end8.i183 ] - %p.037.i = phi ptr [ %incdec.ptr.i209, %if.end73.i ], [ %buf.i176, %if.end8.i183 ] + %cmp.i180 = icmp eq i32 %186, -124 + %or.cond.i181 = or i1 %cmp.i29.i, %cmp.i180 + br i1 %or.cond.i181, label %if.then4.i214, label %if.end8.i182 + +if.then4.i214: ; preds = %call1.i.noexc216 + %tobool5.not.i215 = icmp eq i8 %strict, 0 + br i1 %tobool5.not.i215, label %_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit, label %if.end74.sink.split.i + +if.end8.i182: ; preds = %call1.i.noexc216 + %cmp9.i183 = icmp sgt i32 %call1.i217, 0 + br i1 %cmp9.i183, label %while.body.i184, label %_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit + +while.body.i184: ; preds = %if.end8.i182, %if.end73.i + %firstValue.040.i = phi i8 [ %firstValue.3.i, %if.end73.i ], [ 1, %if.end8.i182 ] + %pPriv.039.i = phi ptr [ %pPriv.1.i, %if.end73.i ], [ null, %if.end8.i182 ] + %p.037.i = phi ptr [ %incdec.ptr.i208, %if.end73.i ], [ %buf.i175, %if.end8.i182 ] %187 = load i8, ptr %p.037.i, align 1 switch i8 %187, label %if.else69.i [ - i8 0, label %if.end24.i187 - i8 45, label %if.else.i186 - i8 95, label %if.else.i186 + i8 0, label %if.end24.i186 + i8 45, label %if.else.i185 + i8 95, label %if.else.i185 ] -if.else.i186: ; preds = %while.body.i185, %while.body.i185 +if.else.i185: ; preds = %while.body.i184, %while.body.i184 store i8 0, ptr %p.037.i, align 1 - br label %if.end24.i187 + br label %if.end24.i186 -if.end24.i187: ; preds = %if.else.i186, %while.body.i185 - %bNext.1.i188 = phi i8 [ 1, %if.else.i186 ], [ %187, %while.body.i185 ] +if.end24.i186: ; preds = %if.else.i185, %while.body.i184 + %bNext.1.i187 = phi i8 [ 1, %if.else.i185 ], [ %187, %while.body.i184 ] %cmp25.not.i = icmp eq ptr %pPriv.039.i, null - br i1 %cmp25.not.i, label %if.end73.i, label %for.cond.preheader.i189 + br i1 %cmp25.not.i, label %if.end73.i, label %for.cond.preheader.i188 -for.cond.preheader.i189: ; preds = %if.end24.i187 +for.cond.preheader.i188: ; preds = %if.end24.i186 %188 = load i8, ptr %pPriv.039.i, align 1 %cmp28.not34.i = icmp eq i8 %188, 0 - br i1 %cmp28.not34.i, label %for.end.i194, label %for.body.i190 + br i1 %cmp28.not34.i, label %for.end.i193, label %for.body.i189 -for.body.i190: ; preds = %for.cond.preheader.i189, %call31.i.noexc - %indvars.iv.i191 = phi i64 [ %indvars.iv.next.i192, %call31.i.noexc ], [ 0, %for.cond.preheader.i189 ] - %189 = phi i8 [ %190, %call31.i.noexc ], [ %188, %for.cond.preheader.i189 ] - %call31.i219 = invoke signext i8 @uprv_asciitolower_75(i8 noundef signext %189) +for.body.i189: ; preds = %for.cond.preheader.i188, %call31.i.noexc + %indvars.iv.i190 = phi i64 [ %indvars.iv.next.i191, %call31.i.noexc ], [ 0, %for.cond.preheader.i188 ] + %189 = phi i8 [ %190, %call31.i.noexc ], [ %188, %for.cond.preheader.i188 ] + %call31.i218 = invoke signext i8 @uprv_asciitolower_75(i8 noundef signext %189) to label %call31.i.noexc unwind label %lpad.loopexit.split-lp.loopexit -call31.i.noexc: ; preds = %for.body.i190 - %add.ptr36.i = getelementptr inbounds i8, ptr %pPriv.039.i, i64 %indvars.iv.i191 - store i8 %call31.i219, ptr %add.ptr36.i, align 1 - %indvars.iv.next.i192 = add nuw nsw i64 %indvars.iv.i191, 1 - %add.ptr.i193 = getelementptr inbounds i8, ptr %pPriv.039.i, i64 %indvars.iv.next.i192 - %190 = load i8, ptr %add.ptr.i193, align 1 +call31.i.noexc: ; preds = %for.body.i189 + %add.ptr36.i = getelementptr inbounds i8, ptr %pPriv.039.i, i64 %indvars.iv.i190 + store i8 %call31.i218, ptr %add.ptr36.i, align 1 + %indvars.iv.next.i191 = add nuw nsw i64 %indvars.iv.i190, 1 + %add.ptr.i192 = getelementptr inbounds i8, ptr %pPriv.039.i, i64 %indvars.iv.next.i191 + %190 = load i8, ptr %add.ptr.i192, align 1 %cmp28.not.i = icmp eq i8 %190, 0 - br i1 %cmp28.not.i, label %for.end.i194, label %for.body.i190, !llvm.loop !30 - -for.end.i194: ; preds = %call31.i.noexc, %for.cond.preheader.i189 - %call.i.i.i195 = call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %pPriv.039.i) #17 - %conv.i.i.i196 = trunc i64 %call.i.i.i195 to i32 - %191 = add i32 %conv.i.i.i196, -1 - %or.cond.i.i.i197 = icmp ult i32 %191, 8 - br i1 %or.cond.i.i.i197, label %land.lhs.true3.i.i.i198, label %if.else45.i - -land.lhs.true3.i.i.i198: ; preds = %for.end.i194 - %wide.trip.count.i.i.i.i199 = and i64 %call.i.i.i195, 4294967295 - br label %for.body.i.i.i.i200 - -for.body.i.i.i.i200: ; preds = %for.inc.i.i.i.i204, %land.lhs.true3.i.i.i198 - %indvars.iv.i.i.i.i201 = phi i64 [ 0, %land.lhs.true3.i.i.i198 ], [ %indvars.iv.next.i.i.i.i205, %for.inc.i.i.i.i204 ] - %add.ptr.i.i.i.i202 = getelementptr inbounds i8, ptr %pPriv.039.i, i64 %indvars.iv.i.i.i.i201 - %192 = load i8, ptr %add.ptr.i.i.i.i202, align 1 - %call.i.i.i.i221 = invoke signext i8 @uprv_isASCIILetter_75(i8 noundef signext %192) - to label %call.i.i.i.i.noexc220 unwind label %lpad.loopexit - -call.i.i.i.i.noexc220: ; preds = %for.body.i.i.i.i200 - %tobool.not.i.i.i.i203 = icmp eq i8 %call.i.i.i.i221, 0 - br i1 %tobool.not.i.i.i.i203, label %land.lhs.true.i.i.i.i213, label %for.inc.i.i.i.i204 - -land.lhs.true.i.i.i.i213: ; preds = %call.i.i.i.i.noexc220 - %193 = load i8, ptr %add.ptr.i.i.i.i202, align 1 + br i1 %cmp28.not.i, label %for.end.i193, label %for.body.i189, !llvm.loop !30 + +for.end.i193: ; preds = %call31.i.noexc, %for.cond.preheader.i188 + %call.i.i.i194 = call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %pPriv.039.i) #17 + %conv.i.i.i195 = trunc i64 %call.i.i.i194 to i32 + %191 = add i32 %conv.i.i.i195, -1 + %or.cond.i.i.i196 = icmp ult i32 %191, 8 + br i1 %or.cond.i.i.i196, label %land.lhs.true3.i.i.i197, label %if.else45.i + +land.lhs.true3.i.i.i197: ; preds = %for.end.i193 + %wide.trip.count.i.i.i.i198 = and i64 %call.i.i.i194, 4294967295 + br label %for.body.i.i.i.i199 + +for.body.i.i.i.i199: ; preds = %for.inc.i.i.i.i203, %land.lhs.true3.i.i.i197 + %indvars.iv.i.i.i.i200 = phi i64 [ 0, %land.lhs.true3.i.i.i197 ], [ %indvars.iv.next.i.i.i.i204, %for.inc.i.i.i.i203 ] + %add.ptr.i.i.i.i201 = getelementptr inbounds i8, ptr %pPriv.039.i, i64 %indvars.iv.i.i.i.i200 + %192 = load i8, ptr %add.ptr.i.i.i.i201, align 1 + %call.i.i.i.i220 = invoke signext i8 @uprv_isASCIILetter_75(i8 noundef signext %192) + to label %call.i.i.i.i.noexc219 unwind label %lpad.loopexit + +call.i.i.i.i.noexc219: ; preds = %for.body.i.i.i.i199 + %tobool.not.i.i.i.i202 = icmp eq i8 %call.i.i.i.i220, 0 + br i1 %tobool.not.i.i.i.i202, label %land.lhs.true.i.i.i.i212, label %for.inc.i.i.i.i203 + +land.lhs.true.i.i.i.i212: ; preds = %call.i.i.i.i.noexc219 + %193 = load i8, ptr %add.ptr.i.i.i.i201, align 1 %194 = add i8 %193, -48 - %or.cond.i.i.i.i214 = icmp ult i8 %194, 10 - br i1 %or.cond.i.i.i.i214, label %for.inc.i.i.i.i204, label %if.else45.i + %or.cond.i.i.i.i213 = icmp ult i8 %194, 10 + br i1 %or.cond.i.i.i.i213, label %for.inc.i.i.i.i203, label %if.else45.i -for.inc.i.i.i.i204: ; preds = %land.lhs.true.i.i.i.i213, %call.i.i.i.i.noexc220 - %indvars.iv.next.i.i.i.i205 = add nuw nsw i64 %indvars.iv.i.i.i.i201, 1 - %exitcond.not.i.i.i.i206 = icmp eq i64 %indvars.iv.next.i.i.i.i205, %wide.trip.count.i.i.i.i199 - br i1 %exitcond.not.i.i.i.i206, label %if.then36.i, label %for.body.i.i.i.i200, !llvm.loop !8 +for.inc.i.i.i.i203: ; preds = %land.lhs.true.i.i.i.i212, %call.i.i.i.i.noexc219 + %indvars.iv.next.i.i.i.i204 = add nuw nsw i64 %indvars.iv.i.i.i.i200, 1 + %exitcond.not.i.i.i.i205 = icmp eq i64 %indvars.iv.next.i.i.i.i204, %wide.trip.count.i.i.i.i198 + br i1 %exitcond.not.i.i.i.i205, label %if.then36.i, label %for.body.i.i.i.i199, !llvm.loop !8 -if.then36.i: ; preds = %for.inc.i.i.i.i204 +if.then36.i: ; preds = %for.inc.i.i.i.i203 %tobool37.not.i = icmp eq i8 %firstValue.040.i, 0 br i1 %tobool37.not.i, label %if.end62.i, label %if.then38.i if.then38.i: ; preds = %if.then36.i - %call39.i207222 = invoke fastcc noundef signext i8 @_ZL16_isVariantSubtagPKci(ptr noundef nonnull %pPriv.039.i, i32 noundef -1) - to label %call39.i207.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit + %call39.i206221 = invoke fastcc noundef signext i8 @_ZL16_isVariantSubtagPKci(ptr noundef nonnull %pPriv.039.i, i32 noundef -1) + to label %call39.i206.noexc unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit -call39.i207.noexc: ; preds = %if.then38.i - %tobool40.not.not.i = icmp eq i8 %call39.i207222, 0 +call39.i206.noexc: ; preds = %if.then38.i + %tobool40.not.not.i = icmp eq i8 %call39.i206221, 0 br i1 %tobool40.not.not.i, label %if.then53.i, label %if.end73.i -if.else45.i: ; preds = %for.end.i194, %land.lhs.true.i.i.i.i213 +if.else45.i: ; preds = %for.end.i193, %land.lhs.true.i.i.i.i212 %tobool46.not.i = icmp eq i8 %strict, 0 br i1 %tobool46.not.i, label %_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit, label %if.end74.sink.split.i -if.then53.i: ; preds = %call39.i207.noexc - %vtable.i211 = load ptr, ptr %sink, align 8 - %vfn.i212 = getelementptr inbounds i8, ptr %vtable.i211, i64 16 - %195 = load ptr, ptr %vfn.i212, align 8 +if.then53.i: ; preds = %call39.i206.noexc + %vtable.i210 = load ptr, ptr %sink, align 8 + %vfn.i211 = getelementptr inbounds i8, ptr %vtable.i210, i64 16 + %195 = load ptr, ptr %vfn.i211, align 8 invoke void %195(ptr noundef nonnull align 8 dereferenceable(8) %sink, ptr noundef nonnull @.str.2, i32 noundef 1) - to label %.noexc223 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit + to label %.noexc222 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit -.noexc223: ; preds = %if.then53.i +.noexc222: ; preds = %if.then53.i %vtable54.i = load ptr, ptr %sink, align 8 %vfn55.i = getelementptr inbounds i8, ptr %vtable54.i, i64 16 %196 = load ptr, ptr %vfn55.i, align 8 invoke void %196(ptr noundef nonnull align 8 dereferenceable(8) %sink, ptr noundef nonnull @_ZL14PRIVATEUSE_KEY, i32 noundef 1) - to label %.noexc224 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit + to label %.noexc223 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit -.noexc224: ; preds = %.noexc223 +.noexc223: ; preds = %.noexc222 %vtable56.i = load ptr, ptr %sink, align 8 %vfn57.i = getelementptr inbounds i8, ptr %vtable56.i, i64 16 %197 = load ptr, ptr %vfn57.i, align 8 invoke void %197(ptr noundef nonnull align 8 dereferenceable(8) %sink, ptr noundef nonnull @.str.2, i32 noundef 1) - to label %.noexc225 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit + to label %.noexc224 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit -.noexc225: ; preds = %.noexc224 +.noexc224: ; preds = %.noexc223 %vtable58.i = load ptr, ptr %sink, align 8 %vfn59.i = getelementptr inbounds i8, ptr %vtable58.i, i64 16 %198 = load ptr, ptr %vfn59.i, align 8 invoke void %198(ptr noundef nonnull align 8 dereferenceable(8) %sink, ptr noundef nonnull @_ZL22PRIVUSE_VARIANT_PREFIX, i32 noundef 8) to label %if.end62.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit -if.end62.i: ; preds = %.noexc225, %if.then36.i +if.end62.i: ; preds = %.noexc224, %if.then36.i %vtable.c.i = load ptr, ptr %sink, align 8 %vfn.c.i = getelementptr inbounds i8, ptr %vtable.c.i, i64 16 %199 = load ptr, ptr %vfn.c.i, align 8 invoke void %199(ptr noundef nonnull align 8 dereferenceable(8) %sink, ptr noundef nonnull @.str.2, i32 noundef 1) - to label %.noexc227 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit + to label %.noexc226 unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit -.noexc227: ; preds = %if.end62.i +.noexc226: ; preds = %if.end62.i %call63.i = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %pPriv.039.i) #17 %conv64.i = trunc i64 %call63.i to i32 %vtable65.i = load ptr, ptr %sink, align 8 @@ -4498,26 +4488,26 @@ if.end62.i: ; preds = %.noexc225, %if.then invoke void %200(ptr noundef nonnull align 8 dereferenceable(8) %sink, ptr noundef nonnull %pPriv.039.i, i32 noundef %conv64.i) to label %if.end73.i unwind label %lpad.loopexit.split-lp.loopexit.split-lp.loopexit -if.else69.i: ; preds = %while.body.i185 +if.else69.i: ; preds = %while.body.i184 %cmp70.i = icmp eq ptr %pPriv.039.i, null %spec.select28.i = select i1 %cmp70.i, ptr %p.037.i, ptr %pPriv.039.i br label %if.end73.i -if.end73.i: ; preds = %.noexc227, %if.else69.i, %call39.i207.noexc, %if.end24.i187 - %pPriv.1.i = phi ptr [ null, %call39.i207.noexc ], [ null, %if.end24.i187 ], [ %spec.select28.i, %if.else69.i ], [ null, %.noexc227 ] - %bNext.2.i208 = phi i8 [ %bNext.1.i188, %call39.i207.noexc ], [ %bNext.1.i188, %if.end24.i187 ], [ 1, %if.else69.i ], [ %bNext.1.i188, %.noexc227 ] - %firstValue.3.i = phi i8 [ %firstValue.040.i, %call39.i207.noexc ], [ %firstValue.040.i, %if.end24.i187 ], [ %firstValue.040.i, %if.else69.i ], [ 0, %.noexc227 ] - %incdec.ptr.i209 = getelementptr inbounds i8, ptr %p.037.i, i64 1 - %tobool12.not.i210 = icmp eq i8 %bNext.2.i208, 0 - br i1 %tobool12.not.i210, label %_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit, label %while.body.i185, !llvm.loop !31 +if.end73.i: ; preds = %.noexc226, %if.else69.i, %call39.i206.noexc, %if.end24.i186 + %pPriv.1.i = phi ptr [ null, %call39.i206.noexc ], [ null, %if.end24.i186 ], [ %spec.select28.i, %if.else69.i ], [ null, %.noexc226 ] + %bNext.2.i207 = phi i8 [ %bNext.1.i187, %call39.i206.noexc ], [ %bNext.1.i187, %if.end24.i186 ], [ 1, %if.else69.i ], [ %bNext.1.i187, %.noexc226 ] + %firstValue.3.i = phi i8 [ %firstValue.040.i, %call39.i206.noexc ], [ %firstValue.040.i, %if.end24.i186 ], [ %firstValue.040.i, %if.else69.i ], [ 0, %.noexc226 ] + %incdec.ptr.i208 = getelementptr inbounds i8, ptr %p.037.i, i64 1 + %tobool12.not.i209 = icmp eq i8 %bNext.2.i207, 0 + br i1 %tobool12.not.i209, label %_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit, label %while.body.i184, !llvm.loop !31 -if.end74.sink.split.i: ; preds = %if.else45.i, %if.then4.i215 +if.end74.sink.split.i: ; preds = %if.else45.i, %if.then4.i214 store i32 1, ptr %status, align 4 br label %_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit -_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit: ; preds = %if.end73.i, %invoke.cont88, %if.then4.i215, %if.end8.i183, %if.else45.i, %if.end74.sink.split.i - call void @llvm.lifetime.end.p0(i64 157, ptr nonnull %buf.i176) - call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %tmpStatus.i177) +_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit: ; preds = %if.end73.i, %invoke.cont88, %if.then4.i214, %if.end8.i182, %if.else45.i, %if.end74.sink.split.i + call void @llvm.lifetime.end.p0(i64 157, ptr nonnull %buf.i175) + call void @llvm.lifetime.end.p0(i64 4, ptr nonnull %tmpStatus.i176) br label %cleanup92 cleanup92: ; preds = %_ZL30_appendPrivateuseToLanguageTagPKcRN6icu_758ByteSinkEaaP10UErrorCode.exit, %cleanup.critedge, %if.then @@ -4525,7 +4515,7 @@ cleanup92: ; preds = %_ZL30_appendPrivate ret void ehcleanup95: ; preds = %lpad.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit, %lpad.loopexit.split-lp.loopexit, %ehcleanup292.i, %ehcleanup72, %lpad1 - %.pn26 = phi { ptr, i32 } [ %.pn.pn, %ehcleanup72 ], [ %2, %lpad1 ], [ %.pn89.pn.pn.i, %ehcleanup292.i ], [ %lpad.loopexit236, %lpad.loopexit ], [ %lpad.loopexit238, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit242, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit245, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit248, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit251, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit254, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit257, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit261, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit266, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit269, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp270, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] + %.pn26 = phi { ptr, i32 } [ %.pn.pn, %ehcleanup72 ], [ %2, %lpad1 ], [ %.pn89.pn.pn.i, %ehcleanup292.i ], [ %lpad.loopexit235, %lpad.loopexit ], [ %lpad.loopexit237, %lpad.loopexit.split-lp.loopexit ], [ %lpad.loopexit241, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit244, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit247, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit250, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit253, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit256, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit260, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit265, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit268, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit ], [ %lpad.loopexit.split-lp269, %lpad.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp.loopexit.split-lp ] call void @_ZN6icu_7515MaybeStackArrayIcLi40EED1Ev(ptr noundef nonnull align 8 dereferenceable(53) %canonical) #14 resume { ptr, i32 } %.pn26 } diff --git a/bench/linux/optimized/power_supply_core.ll b/bench/linux/optimized/power_supply_core.ll index 9aecf9de8d6..697a1898a8d 100644 --- a/bench/linux/optimized/power_supply_core.ll +++ b/bench/linux/optimized/power_supply_core.ll @@ -489,103 +489,99 @@ define internal noundef range(i32 0, 2) i32 @__power_supply_get_supplier_propert br i1 %or.cond.not, label %77, label %power_supply_battery_info_get_prop.exit.thread 77: ; preds = %.loopexit - %78 = tail call zeroext i1 @power_supply_battery_info_has_prop(ptr noundef nonnull %74, i32 noundef %50) - br i1 %78, label %79, label %power_supply_battery_info_get_prop.exit.thread - -79: ; preds = %77 switch i32 %50, label %power_supply_battery_info_get_prop.exit.thread [ i32 6, label %power_supply_battery_info_get_prop.exit.thread12 - i32 41, label %80 - i32 22, label %82 - i32 11, label %84 - i32 10, label %86 - i32 67, label %88 - i32 68, label %90 - i32 30, label %92 - i32 32, label %94 - i32 58, label %96 - i32 59, label %98 - i32 55, label %100 - i32 56, label %102 - i32 54, label %104 - i32 53, label %106 + i32 41, label %78 + i32 22, label %80 + i32 11, label %82 + i32 10, label %84 + i32 67, label %86 + i32 68, label %88 + i32 30, label %90 + i32 32, label %92 + i32 58, label %94 + i32 59, label %96 + i32 55, label %98 + i32 56, label %100 + i32 54, label %102 + i32 53, label %104 ] -80: ; preds = %79 - %81 = getelementptr inbounds i8, ptr %74, i64 4 +78: ; preds = %77 + %79 = getelementptr inbounds i8, ptr %74, i64 4 br label %power_supply_battery_info_get_prop.exit.thread12 -82: ; preds = %79 - %83 = getelementptr inbounds i8, ptr %74, i64 8 +80: ; preds = %77 + %81 = getelementptr inbounds i8, ptr %74, i64 8 br label %power_supply_battery_info_get_prop.exit.thread12 -84: ; preds = %79 - %85 = getelementptr inbounds i8, ptr %74, i64 12 +82: ; preds = %77 + %83 = getelementptr inbounds i8, ptr %74, i64 12 br label %power_supply_battery_info_get_prop.exit.thread12 -86: ; preds = %79 - %87 = getelementptr inbounds i8, ptr %74, i64 16 +84: ; preds = %77 + %85 = getelementptr inbounds i8, ptr %74, i64 16 br label %power_supply_battery_info_get_prop.exit.thread12 -88: ; preds = %79 - %89 = getelementptr inbounds i8, ptr %74, i64 24 +86: ; preds = %77 + %87 = getelementptr inbounds i8, ptr %74, i64 24 br label %power_supply_battery_info_get_prop.exit.thread12 -90: ; preds = %79 - %91 = getelementptr inbounds i8, ptr %74, i64 32 +88: ; preds = %77 + %89 = getelementptr inbounds i8, ptr %74, i64 32 br label %power_supply_battery_info_get_prop.exit.thread12 -92: ; preds = %79 - %93 = getelementptr inbounds i8, ptr %74, i64 44 +90: ; preds = %77 + %91 = getelementptr inbounds i8, ptr %74, i64 44 br label %power_supply_battery_info_get_prop.exit.thread12 -94: ; preds = %79 - %95 = getelementptr inbounds i8, ptr %74, i64 48 +92: ; preds = %77 + %93 = getelementptr inbounds i8, ptr %74, i64 48 br label %power_supply_battery_info_get_prop.exit.thread12 -96: ; preds = %79 - %97 = getelementptr inbounds i8, ptr %74, i64 172 +94: ; preds = %77 + %95 = getelementptr inbounds i8, ptr %74, i64 172 br label %power_supply_battery_info_get_prop.exit.thread12 -98: ; preds = %79 - %99 = getelementptr inbounds i8, ptr %74, i64 176 +96: ; preds = %77 + %97 = getelementptr inbounds i8, ptr %74, i64 176 br label %power_supply_battery_info_get_prop.exit.thread12 -100: ; preds = %79 - %101 = getelementptr inbounds i8, ptr %74, i64 180 +98: ; preds = %77 + %99 = getelementptr inbounds i8, ptr %74, i64 180 br label %power_supply_battery_info_get_prop.exit.thread12 -102: ; preds = %79 - %103 = getelementptr inbounds i8, ptr %74, i64 184 +100: ; preds = %77 + %101 = getelementptr inbounds i8, ptr %74, i64 184 br label %power_supply_battery_info_get_prop.exit.thread12 -104: ; preds = %79 - %105 = getelementptr inbounds i8, ptr %74, i64 188 +102: ; preds = %77 + %103 = getelementptr inbounds i8, ptr %74, i64 188 br label %power_supply_battery_info_get_prop.exit.thread12 -106: ; preds = %79 - %107 = getelementptr inbounds i8, ptr %74, i64 192 +104: ; preds = %77 + %105 = getelementptr inbounds i8, ptr %74, i64 192 br label %power_supply_battery_info_get_prop.exit.thread12 -power_supply_battery_info_get_prop.exit.thread12: ; preds = %79, %80, %82, %84, %86, %88, %90, %92, %94, %96, %98, %100, %102, %104, %106 - %108 = phi ptr [ %107, %106 ], [ %105, %104 ], [ %103, %102 ], [ %101, %100 ], [ %99, %98 ], [ %97, %96 ], [ %95, %94 ], [ %93, %92 ], [ %91, %90 ], [ %89, %88 ], [ %87, %86 ], [ %85, %84 ], [ %83, %82 ], [ %81, %80 ], [ %74, %79 ] - %109 = load i32, ptr %108, align 4 - store i32 %109, ptr %52, align 8 - br label %114 +power_supply_battery_info_get_prop.exit.thread12: ; preds = %77, %78, %80, %82, %84, %86, %88, %90, %92, %94, %96, %98, %100, %102, %104 + %106 = phi ptr [ %105, %104 ], [ %103, %102 ], [ %101, %100 ], [ %99, %98 ], [ %97, %96 ], [ %95, %94 ], [ %93, %92 ], [ %91, %90 ], [ %89, %88 ], [ %87, %86 ], [ %85, %84 ], [ %83, %82 ], [ %81, %80 ], [ %79, %78 ], [ %74, %77 ] + %107 = load i32, ptr %106, align 4 + store i32 %107, ptr %52, align 8 + br label %112 power_supply_battery_info_get_prop.exit: ; preds = %69, %60 - %110 = getelementptr inbounds i8, ptr %57, i64 48 - %111 = load ptr, ptr %110, align 8 - %112 = tail call i32 %111(ptr noundef %4, i32 noundef %50, ptr noundef %52) #17 - %113 = icmp eq i32 %112, 0 - br i1 %113, label %114, label %power_supply_battery_info_get_prop.exit.thread - -power_supply_battery_info_get_prop.exit.thread: ; preds = %21, %39, %79, %77, %.loopexit16, %.loopexit, %power_supply_battery_info_get_prop.exit, %35, %31, %17, %13, %9 - br label %114 - -114: ; preds = %power_supply_battery_info_get_prop.exit.thread12, %power_supply_battery_info_get_prop.exit.thread, %power_supply_battery_info_get_prop.exit - %115 = phi i32 [ 0, %power_supply_battery_info_get_prop.exit.thread ], [ 1, %power_supply_battery_info_get_prop.exit ], [ 1, %power_supply_battery_info_get_prop.exit.thread12 ] - ret i32 %115 + %108 = getelementptr inbounds i8, ptr %57, i64 48 + %109 = load ptr, ptr %108, align 8 + %110 = tail call i32 %109(ptr noundef %4, i32 noundef %50, ptr noundef %52) #17 + %111 = icmp eq i32 %110, 0 + br i1 %111, label %112, label %power_supply_battery_info_get_prop.exit.thread + +power_supply_battery_info_get_prop.exit.thread: ; preds = %21, %39, %77, %.loopexit16, %.loopexit, %power_supply_battery_info_get_prop.exit, %35, %31, %17, %13, %9 + br label %112 + +112: ; preds = %power_supply_battery_info_get_prop.exit.thread12, %power_supply_battery_info_get_prop.exit.thread, %power_supply_battery_info_get_prop.exit + %113 = phi i32 [ 0, %power_supply_battery_info_get_prop.exit.thread ], [ 1, %power_supply_battery_info_get_prop.exit ], [ 1, %power_supply_battery_info_get_prop.exit.thread12 ] + ret i32 %113 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid @@ -1719,93 +1715,89 @@ define dso_local i32 @power_supply_get_property(ptr noundef %0, i32 noundef %1, br i1 %or.cond.not, label %36, label %power_supply_battery_info_get_prop.exit 36: ; preds = %.critedge - %37 = tail call zeroext i1 @power_supply_battery_info_has_prop(ptr noundef nonnull %33, i32 noundef %1) - br i1 %37, label %38, label %power_supply_battery_info_get_prop.exit - -38: ; preds = %36 switch i32 %1, label %power_supply_battery_info_get_prop.exit [ - i32 6, label %67 - i32 41, label %39 - i32 22, label %41 - i32 11, label %43 - i32 10, label %45 - i32 67, label %47 - i32 68, label %49 - i32 30, label %51 - i32 32, label %53 - i32 58, label %55 - i32 59, label %57 - i32 55, label %59 - i32 56, label %61 - i32 54, label %63 - i32 53, label %65 + i32 6, label %65 + i32 41, label %37 + i32 22, label %39 + i32 11, label %41 + i32 10, label %43 + i32 67, label %45 + i32 68, label %47 + i32 30, label %49 + i32 32, label %51 + i32 58, label %53 + i32 59, label %55 + i32 55, label %57 + i32 56, label %59 + i32 54, label %61 + i32 53, label %63 ] -39: ; preds = %38 - %40 = getelementptr inbounds i8, ptr %33, i64 4 - br label %67 +37: ; preds = %36 + %38 = getelementptr inbounds i8, ptr %33, i64 4 + br label %65 -41: ; preds = %38 - %42 = getelementptr inbounds i8, ptr %33, i64 8 - br label %67 +39: ; preds = %36 + %40 = getelementptr inbounds i8, ptr %33, i64 8 + br label %65 -43: ; preds = %38 - %44 = getelementptr inbounds i8, ptr %33, i64 12 - br label %67 +41: ; preds = %36 + %42 = getelementptr inbounds i8, ptr %33, i64 12 + br label %65 -45: ; preds = %38 - %46 = getelementptr inbounds i8, ptr %33, i64 16 - br label %67 +43: ; preds = %36 + %44 = getelementptr inbounds i8, ptr %33, i64 16 + br label %65 -47: ; preds = %38 - %48 = getelementptr inbounds i8, ptr %33, i64 24 - br label %67 +45: ; preds = %36 + %46 = getelementptr inbounds i8, ptr %33, i64 24 + br label %65 -49: ; preds = %38 - %50 = getelementptr inbounds i8, ptr %33, i64 32 - br label %67 +47: ; preds = %36 + %48 = getelementptr inbounds i8, ptr %33, i64 32 + br label %65 -51: ; preds = %38 - %52 = getelementptr inbounds i8, ptr %33, i64 44 - br label %67 +49: ; preds = %36 + %50 = getelementptr inbounds i8, ptr %33, i64 44 + br label %65 -53: ; preds = %38 - %54 = getelementptr inbounds i8, ptr %33, i64 48 - br label %67 +51: ; preds = %36 + %52 = getelementptr inbounds i8, ptr %33, i64 48 + br label %65 -55: ; preds = %38 - %56 = getelementptr inbounds i8, ptr %33, i64 172 - br label %67 +53: ; preds = %36 + %54 = getelementptr inbounds i8, ptr %33, i64 172 + br label %65 -57: ; preds = %38 - %58 = getelementptr inbounds i8, ptr %33, i64 176 - br label %67 +55: ; preds = %36 + %56 = getelementptr inbounds i8, ptr %33, i64 176 + br label %65 -59: ; preds = %38 - %60 = getelementptr inbounds i8, ptr %33, i64 180 - br label %67 +57: ; preds = %36 + %58 = getelementptr inbounds i8, ptr %33, i64 180 + br label %65 -61: ; preds = %38 - %62 = getelementptr inbounds i8, ptr %33, i64 184 - br label %67 +59: ; preds = %36 + %60 = getelementptr inbounds i8, ptr %33, i64 184 + br label %65 -63: ; preds = %38 - %64 = getelementptr inbounds i8, ptr %33, i64 188 - br label %67 +61: ; preds = %36 + %62 = getelementptr inbounds i8, ptr %33, i64 188 + br label %65 -65: ; preds = %38 - %66 = getelementptr inbounds i8, ptr %33, i64 192 - br label %67 +63: ; preds = %36 + %64 = getelementptr inbounds i8, ptr %33, i64 192 + br label %65 -67: ; preds = %65, %63, %61, %59, %57, %55, %53, %51, %49, %47, %45, %43, %41, %39, %38 - %68 = phi ptr [ %66, %65 ], [ %64, %63 ], [ %62, %61 ], [ %60, %59 ], [ %58, %57 ], [ %56, %55 ], [ %54, %53 ], [ %52, %51 ], [ %50, %49 ], [ %48, %47 ], [ %46, %45 ], [ %44, %43 ], [ %42, %41 ], [ %40, %39 ], [ %33, %38 ] - %69 = load i32, ptr %68, align 4 - store i32 %69, ptr %2, align 8 +65: ; preds = %63, %61, %59, %57, %55, %53, %51, %49, %47, %45, %43, %41, %39, %37, %36 + %66 = phi ptr [ %64, %63 ], [ %62, %61 ], [ %60, %59 ], [ %58, %57 ], [ %56, %55 ], [ %54, %53 ], [ %52, %51 ], [ %50, %49 ], [ %48, %47 ], [ %46, %45 ], [ %44, %43 ], [ %42, %41 ], [ %40, %39 ], [ %38, %37 ], [ %33, %36 ] + %67 = load i32, ptr %66, align 4 + store i32 %67, ptr %2, align 8 br label %power_supply_battery_info_get_prop.exit -power_supply_battery_info_get_prop.exit: ; preds = %67, %38, %36, %.critedge, %.loopexit, %7 - %70 = phi i32 [ %31, %.loopexit ], [ %11, %7 ], [ -22, %.critedge ], [ -22, %36 ], [ -22, %38 ], [ 0, %67 ] - ret i32 %70 +power_supply_battery_info_get_prop.exit: ; preds = %65, %36, %.critedge, %.loopexit, %7 + %68 = phi i32 [ %31, %.loopexit ], [ %11, %7 ], [ -22, %.critedge ], [ -22, %36 ], [ 0, %65 ] + ret i32 %68 } ; Function Attrs: fn_ret_thunk_extern nounwind null_pointer_is_valid diff --git a/bench/llvm/optimized/ExprMutationAnalyzer.cpp.ll b/bench/llvm/optimized/ExprMutationAnalyzer.cpp.ll index 7a2a2bd0b14..e6a9764d2ca 100644 --- a/bench/llvm/optimized/ExprMutationAnalyzer.cpp.ll +++ b/bench/llvm/optimized/ExprMutationAnalyzer.cpp.ll @@ -32095,39 +32095,39 @@ _ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.i: ; _ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.thread.i: ; preds = %.lr.ph, %_ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.i, %.lr.ph.i, %_ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.i.preheader %.0.lcssa.i = phi ptr [ %7, %_ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.i.preheader ], [ %33, %.lr.ph.i ], [ %33, %_ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.i ], [ %33, %.lr.ph ] + %.lcssa.i = phi ptr [ %20, %_ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.i.preheader ], [ null, %.lr.ph ], [ %34, %_ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.i ], [ %34, %.lr.ph.i ] %.not9.i = icmp eq ptr %.0.lcssa.i, %7 br i1 %.not9.i, label %"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_3clIZNS_L16canExprResolveToES2_S2_E3$_2EEDaS2_T_.exit", label %35 35: ; preds = %_ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.thread.i - %36 = call noundef ptr @_ZN5clang4Expr12IgnoreParensEv(ptr noundef nonnull readonly align 8 dereferenceable(16) %.0.lcssa.i) #19 - %37 = icmp eq ptr %36, %1 - br i1 %37, label %"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_3clIZNS_L16canExprResolveToES2_S2_E3$_2EEDaS2_T_.exit", label %38 - -38: ; preds = %35 - %39 = load i8, ptr %36, align 8 - %.not.i.i10.i = icmp eq i8 %39, 79 - br i1 %.not.i.i10.i, label %40, label %48 - -40: ; preds = %38 - %41 = load i32, ptr %36, align 8 - %42 = lshr i32 %41, 18 - %43 = and i32 %42, 127 - %.off.i.i.i = add nsw i32 %43, -7 + %36 = icmp eq ptr %.lcssa.i, %1 + br i1 %36, label %"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_3clIZNS_L16canExprResolveToES2_S2_E3$_2EEDaS2_T_.exit", label %37 + +37: ; preds = %35 + %38 = load i8, ptr %.lcssa.i, align 8 + %.not.i.i10.i = icmp eq i8 %38, 79 + br i1 %.not.i.i10.i, label %39, label %47 + +39: ; preds = %37 + %40 = load i32, ptr %.lcssa.i, align 8 + %41 = lshr i32 %40, 18 + %42 = and i32 %41, 127 + %.off.i.i.i = add nsw i32 %42, -7 %switch.i.i.i = icmp ult i32 %.off.i.i.i, 2 - br i1 %switch.i.i.i, label %44, label %48 + br i1 %switch.i.i.i, label %43, label %47 -44: ; preds = %40 - %45 = getelementptr inbounds nuw i8, ptr %36, i64 16 - %46 = load ptr, ptr %45, align 8 - %47 = icmp eq ptr %46, %1 - br i1 %47, label %"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_3clIZNS_L16canExprResolveToES2_S2_E3$_2EEDaS2_T_.exit", label %48 +43: ; preds = %39 + %44 = getelementptr inbounds nuw i8, ptr %.lcssa.i, i64 16 + %45 = load ptr, ptr %44, align 8 + %46 = icmp eq ptr %45, %1 + br i1 %46, label %"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_3clIZNS_L16canExprResolveToES2_S2_E3$_2EEDaS2_T_.exit", label %47 -48: ; preds = %44, %40, %38 +47: ; preds = %43, %39, %37 br label %"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_3clIZNS_L16canExprResolveToES2_S2_E3$_2EEDaS2_T_.exit" -"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_3clIZNS_L16canExprResolveToES2_S2_E3$_2EEDaS2_T_.exit": ; preds = %.lr.ph.i.preheader, %48, %44, %35, %_ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.thread.i, %19, %"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_0clIZNS_L16canExprResolveToES2_S2_E3$_1EEDaS2_T_.exit.thread" - %49 = phi i1 [ true, %"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_0clIZNS_L16canExprResolveToES2_S2_E3$_1EEDaS2_T_.exit.thread" ], [ false, %_ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.thread.i ], [ false, %48 ], [ true, %35 ], [ true, %44 ], [ false, %19 ], [ false, %.lr.ph.i.preheader ] - ret i1 %49 +"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_3clIZNS_L16canExprResolveToES2_S2_E3$_2EEDaS2_T_.exit": ; preds = %.lr.ph.i.preheader, %47, %43, %35, %_ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.thread.i, %19, %"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_0clIZNS_L16canExprResolveToES2_S2_E3$_1EEDaS2_T_.exit.thread" + %48 = phi i1 [ true, %"_ZZN5clangL16canExprResolveToEPKNS_4ExprES2_ENK3$_0clIZNS_L16canExprResolveToES2_S2_E3$_1EEDaS2_T_.exit.thread" ], [ false, %_ZN4llvm16dyn_cast_or_nullIN5clang14BinaryOperatorEKNS1_4ExprEEEDaPT0_.exit.thread.i ], [ false, %47 ], [ true, %35 ], [ true, %43 ], [ false, %19 ], [ false, %.lr.ph.i.preheader ] + ret i1 %48 } ; Function Attrs: mustprogress nofree nounwind willreturn memory(read) uwtable diff --git a/bench/llvm/optimized/StackAddrEscapeChecker.cpp.ll b/bench/llvm/optimized/StackAddrEscapeChecker.cpp.ll index 828902027e6..dc69b7f55d2 100644 --- a/bench/llvm/optimized/StackAddrEscapeChecker.cpp.ll +++ b/bench/llvm/optimized/StackAddrEscapeChecker.cpp.ll @@ -1752,7 +1752,7 @@ define internal fastcc i64 @_ZN12_GLOBAL__N_122StackAddrEscapeChecker7genNameERN _ZN4llvm11raw_ostreamlsEPKc.exit: ; preds = %20, %22 %25 = getelementptr inbounds nuw i8, ptr %9, i64 16 %26 = load i32, ptr %25, align 8 - switch i32 %26, label %109 [ + switch i32 %26, label %108 [ i32 14, label %27 i32 9, label %66 i32 11, label %85 @@ -1825,7 +1825,7 @@ _ZNK5clang19CompoundLiteralExpr11getBeginLocEv.exit: ; preds = %_ZN4llvm11raw_os _ZN4llvm11raw_ostreamlsEPKc.exit75: ; preds = %60, %62 %65 = tail call i64 @_ZNK5clang4Stmt14getSourceRangeEv(ptr noundef nonnull align 8 dereferenceable(8) %29) #21 - br label %204 + br label %203 66: ; preds = %_ZN4llvm11raw_ostreamlsEPKc.exit %67 = getelementptr inbounds nuw i8, ptr %9, i64 64 @@ -1856,7 +1856,7 @@ _ZN4llvm11raw_ostreamlsEPKc.exit79: ; preds = %77, %79 %82 = tail call noundef i32 @_ZNK5clang13SourceManager22getExpansionLineNumberENS_14SourceLocationEPb(ptr noundef nonnull align 8 dereferenceable(696) %11, i32 %69, ptr noundef null) #17 %83 = zext i32 %82 to i64 %84 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEm(ptr noundef nonnull align 8 dereferenceable(48) %.0.i.i78, i64 noundef %83) #17 - br label %204 + br label %203 85: ; preds = %_ZN4llvm11raw_ostreamlsEPKc.exit %86 = getelementptr inbounds nuw i8, ptr %9, i64 56 @@ -1868,188 +1868,187 @@ _ZN4llvm11raw_ostreamlsEPKc.exit79: ; preds = %77, %79 %92 = load ptr, ptr %91, align 8 %93 = tail call i64 %92(ptr noundef nonnull align 8 dereferenceable(33) %89) #21 %.sroa.0.0.extract.trunc.i = trunc i64 %93 to i32 - %94 = tail call i64 %92(ptr noundef nonnull align 8 dereferenceable(128) %89) #21 - %95 = load ptr, ptr %12, align 8 - %96 = load ptr, ptr %14, align 8 + %94 = load ptr, ptr %12, align 8 + %95 = load ptr, ptr %14, align 8 + %96 = ptrtoint ptr %94 to i64 %97 = ptrtoint ptr %95 to i64 - %98 = ptrtoint ptr %96 to i64 - %99 = sub i64 %97, %98 - %100 = icmp ult i64 %99, 39 - br i1 %100, label %101, label %103 + %98 = sub i64 %96, %97 + %99 = icmp ult i64 %98, 39 + br i1 %99, label %100, label %102 -101: ; preds = %85 - %102 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.14, i64 noundef 39) #17 +100: ; preds = %85 + %101 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.14, i64 noundef 39) #17 br label %_ZN4llvm11raw_ostreamlsEPKc.exit83 -103: ; preds = %85 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %96, ptr noundef nonnull align 1 dereferenceable(39) @.str.14, i64 39, i1 false) - %104 = load ptr, ptr %14, align 8 - %105 = getelementptr inbounds i8, ptr %104, i64 39 - store ptr %105, ptr %14, align 8 +102: ; preds = %85 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(39) %95, ptr noundef nonnull align 1 dereferenceable(39) @.str.14, i64 39, i1 false) + %103 = load ptr, ptr %14, align 8 + %104 = getelementptr inbounds i8, ptr %103, i64 39 + store ptr %104, ptr %14, align 8 br label %_ZN4llvm11raw_ostreamlsEPKc.exit83 -_ZN4llvm11raw_ostreamlsEPKc.exit83: ; preds = %101, %103 - %.0.i.i82 = phi ptr [ %102, %101 ], [ %0, %103 ] - %106 = tail call noundef i32 @_ZNK5clang13SourceManager22getExpansionLineNumberENS_14SourceLocationEPb(ptr noundef nonnull align 8 dereferenceable(696) %11, i32 %.sroa.0.0.extract.trunc.i, ptr noundef null) #17 - %107 = zext i32 %106 to i64 - %108 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEm(ptr noundef nonnull align 8 dereferenceable(48) %.0.i.i82, i64 noundef %107) #17 - br label %204 - -109: ; preds = %_ZN4llvm11raw_ostreamlsEPKc.exit - %110 = and i32 %26, -2 - %.not115 = icmp eq i32 %110, 22 - br i1 %.not115, label %111, label %142 - -111: ; preds = %109 - %112 = load ptr, ptr %12, align 8 - %113 = load ptr, ptr %14, align 8 +_ZN4llvm11raw_ostreamlsEPKc.exit83: ; preds = %100, %102 + %.0.i.i82 = phi ptr [ %101, %100 ], [ %0, %102 ] + %105 = tail call noundef i32 @_ZNK5clang13SourceManager22getExpansionLineNumberENS_14SourceLocationEPb(ptr noundef nonnull align 8 dereferenceable(696) %11, i32 %.sroa.0.0.extract.trunc.i, ptr noundef null) #17 + %106 = zext i32 %105 to i64 + %107 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEm(ptr noundef nonnull align 8 dereferenceable(48) %.0.i.i82, i64 noundef %106) #17 + br label %203 + +108: ; preds = %_ZN4llvm11raw_ostreamlsEPKc.exit + %109 = and i32 %26, -2 + %.not115 = icmp eq i32 %109, 22 + br i1 %.not115, label %110, label %141 + +110: ; preds = %108 + %111 = load ptr, ptr %12, align 8 + %112 = load ptr, ptr %14, align 8 + %113 = ptrtoint ptr %111 to i64 %114 = ptrtoint ptr %112 to i64 - %115 = ptrtoint ptr %113 to i64 - %116 = sub i64 %114, %115 - %117 = icmp ult i64 %116, 45 - br i1 %117, label %118, label %120 + %115 = sub i64 %113, %114 + %116 = icmp ult i64 %115, 45 + br i1 %116, label %117, label %119 -118: ; preds = %111 - %119 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.15, i64 noundef 45) #17 +117: ; preds = %110 + %118 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.15, i64 noundef 45) #17 br label %_ZN4llvm11raw_ostreamlsEPKc.exit87 -120: ; preds = %111 - tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(45) %113, ptr noundef nonnull align 1 dereferenceable(45) @.str.15, i64 45, i1 false) - %121 = load ptr, ptr %14, align 8 - %122 = getelementptr inbounds i8, ptr %121, i64 45 - store ptr %122, ptr %14, align 8 +119: ; preds = %110 + tail call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(45) %112, ptr noundef nonnull align 1 dereferenceable(45) @.str.15, i64 45, i1 false) + %120 = load ptr, ptr %14, align 8 + %121 = getelementptr inbounds i8, ptr %120, i64 45 + store ptr %121, ptr %14, align 8 br label %_ZN4llvm11raw_ostreamlsEPKc.exit87 -_ZN4llvm11raw_ostreamlsEPKc.exit87: ; preds = %118, %120 - %.0.i.i86 = phi ptr [ %119, %118 ], [ %0, %120 ] +_ZN4llvm11raw_ostreamlsEPKc.exit87: ; preds = %117, %119 + %.0.i.i86 = phi ptr [ %118, %117 ], [ %0, %119 ] call void @_ZNK5clang4ento9MemRegion9getStringB5cxx11Ev(ptr dead_on_unwind nonnull writable sret(%"class.std::__cxx11::basic_string") align 8 %4, ptr noundef nonnull align 8 dereferenceable(48) %9) #17 - %123 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #17 - %124 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #17 - %125 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(48) %.0.i.i86, ptr noundef %123, i64 noundef %124) #17 - %126 = getelementptr inbounds nuw i8, ptr %125, i64 32 - %127 = load ptr, ptr %126, align 8 - %128 = getelementptr inbounds nuw i8, ptr %125, i64 24 - %129 = load ptr, ptr %128, align 8 - %.not.i88 = icmp ult ptr %127, %129 - br i1 %.not.i88, label %132, label %130 + %122 = call noundef ptr @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE4dataEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #17 + %123 = call noundef i64 @_ZNKSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEE6lengthEv(ptr noundef nonnull align 8 dereferenceable(32) %4) #17 + %124 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEPKcm(ptr noundef nonnull align 8 dereferenceable(48) %.0.i.i86, ptr noundef %122, i64 noundef %123) #17 + %125 = getelementptr inbounds nuw i8, ptr %124, i64 32 + %126 = load ptr, ptr %125, align 8 + %127 = getelementptr inbounds nuw i8, ptr %124, i64 24 + %128 = load ptr, ptr %127, align 8 + %.not.i88 = icmp ult ptr %126, %128 + br i1 %.not.i88, label %131, label %129 -130: ; preds = %_ZN4llvm11raw_ostreamlsEPKc.exit87 - %131 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEh(ptr noundef nonnull align 8 dereferenceable(48) %125, i8 noundef zeroext 39) #17 +129: ; preds = %_ZN4llvm11raw_ostreamlsEPKc.exit87 + %130 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEh(ptr noundef nonnull align 8 dereferenceable(48) %124, i8 noundef zeroext 39) #17 br label %_ZN4llvm11raw_ostreamlsEc.exit -132: ; preds = %_ZN4llvm11raw_ostreamlsEPKc.exit87 - %133 = getelementptr inbounds i8, ptr %127, i64 1 - store ptr %133, ptr %126, align 8 - store i8 39, ptr %127, align 1 +131: ; preds = %_ZN4llvm11raw_ostreamlsEPKc.exit87 + %132 = getelementptr inbounds i8, ptr %126, i64 1 + store ptr %132, ptr %125, align 8 + store i8 39, ptr %126, align 1 br label %_ZN4llvm11raw_ostreamlsEc.exit -_ZN4llvm11raw_ostreamlsEc.exit: ; preds = %130, %132 +_ZN4llvm11raw_ostreamlsEc.exit: ; preds = %129, %131 call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %4) #17 - %134 = load ptr, ptr %9, align 8 - %135 = getelementptr inbounds i8, ptr %134, i64 112 - %136 = load ptr, ptr %135, align 8 - %137 = call noundef ptr %136(ptr noundef nonnull align 8 dereferenceable(56) %9) #17 - %138 = load ptr, ptr %137, align 8 - %139 = getelementptr inbounds i8, ptr %138, i64 16 - %140 = load ptr, ptr %139, align 8 - %141 = call i64 %140(ptr noundef nonnull align 8 dereferenceable(100) %137) #21 - br label %204 + %133 = load ptr, ptr %9, align 8 + %134 = getelementptr inbounds i8, ptr %133, i64 112 + %135 = load ptr, ptr %134, align 8 + %136 = call noundef ptr %135(ptr noundef nonnull align 8 dereferenceable(56) %9) #17 + %137 = load ptr, ptr %136, align 8 + %138 = getelementptr inbounds i8, ptr %137, i64 16 + %139 = load ptr, ptr %138, align 8 + %140 = call i64 %139(ptr noundef nonnull align 8 dereferenceable(100) %136) #21 + br label %203 -142: ; preds = %109 +141: ; preds = %108 %.not116 = icmp eq i32 %26, 18 - br i1 %.not116, label %143, label %185 - -143: ; preds = %142 - %144 = load ptr, ptr %9, align 8 - %145 = getelementptr inbounds i8, ptr %144, i64 104 - %146 = load ptr, ptr %145, align 8 - %147 = tail call i64 %146(ptr noundef nonnull align 8 dereferenceable(72) %9) #17 - %148 = and i64 %147, -16 - %149 = inttoptr i64 %148 to ptr - %150 = load ptr, ptr %149, align 16 - %151 = ptrtoint ptr %150 to i64 - %152 = and i64 %151, -16 - store i64 %152, ptr %5, align 8 - %153 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.16) - %154 = getelementptr inbounds nuw i8, ptr %2, i64 17256 - %155 = getelementptr inbounds nuw i8, ptr %6, i64 32 - store i8 1, ptr %155, align 8 - %156 = getelementptr inbounds nuw i8, ptr %6, i64 33 - store i8 1, ptr %156, align 1 - call void @_ZNK5clang8QualType5printERN4llvm11raw_ostreamERKNS_14PrintingPolicyERKNS1_5TwineEj(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(16) %154, ptr noundef nonnull align 8 dereferenceable(34) %6, i32 noundef 0) #17 - %157 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.17) - %158 = getelementptr inbounds nuw i8, ptr %9, i64 64 - %159 = load ptr, ptr %158, align 8 - %160 = getelementptr inbounds nuw i8, ptr %159, i64 40 - %161 = load i64, ptr %160, align 8 - %162 = and i64 %161, 7 - %163 = icmp ne i64 %162, 0 - %164 = and i64 %161, -8 - %.not69117 = icmp eq i64 %164, 0 - %.not69 = or i1 %163, %.not69117 - br i1 %.not69, label %_ZN4llvm11raw_ostreamlsEc.exit93, label %165 - -165: ; preds = %143 - %166 = inttoptr i64 %164 to ptr - %167 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.18) - %168 = getelementptr inbounds nuw i8, ptr %166, i64 16 - %169 = load ptr, ptr %168, align 8 - %170 = getelementptr inbounds i8, ptr %169, i64 16 - %171 = load i64, ptr %169, align 8 - %172 = and i64 %171, 4294967295 - %173 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsENS_9StringRefE(ptr noundef nonnull align 8 dereferenceable(48) %167, ptr nonnull %170, i64 %172) - %174 = getelementptr inbounds nuw i8, ptr %173, i64 32 - %175 = load ptr, ptr %174, align 8 - %176 = getelementptr inbounds nuw i8, ptr %173, i64 24 - %177 = load ptr, ptr %176, align 8 - %.not.i91 = icmp ult ptr %175, %177 - br i1 %.not.i91, label %180, label %178 - -178: ; preds = %165 - %179 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEh(ptr noundef nonnull align 8 dereferenceable(48) %173, i8 noundef zeroext 39) #17 + br i1 %.not116, label %142, label %184 + +142: ; preds = %141 + %143 = load ptr, ptr %9, align 8 + %144 = getelementptr inbounds i8, ptr %143, i64 104 + %145 = load ptr, ptr %144, align 8 + %146 = tail call i64 %145(ptr noundef nonnull align 8 dereferenceable(72) %9) #17 + %147 = and i64 %146, -16 + %148 = inttoptr i64 %147 to ptr + %149 = load ptr, ptr %148, align 16 + %150 = ptrtoint ptr %149 to i64 + %151 = and i64 %150, -16 + store i64 %151, ptr %5, align 8 + %152 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.16) + %153 = getelementptr inbounds nuw i8, ptr %2, i64 17256 + %154 = getelementptr inbounds nuw i8, ptr %6, i64 32 + store i8 1, ptr %154, align 8 + %155 = getelementptr inbounds nuw i8, ptr %6, i64 33 + store i8 1, ptr %155, align 1 + call void @_ZNK5clang8QualType5printERN4llvm11raw_ostreamERKNS_14PrintingPolicyERKNS1_5TwineEj(ptr noundef nonnull align 8 dereferenceable(8) %5, ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(16) %153, ptr noundef nonnull align 8 dereferenceable(34) %6, i32 noundef 0) #17 + %156 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.17) + %157 = getelementptr inbounds nuw i8, ptr %9, i64 64 + %158 = load ptr, ptr %157, align 8 + %159 = getelementptr inbounds nuw i8, ptr %158, i64 40 + %160 = load i64, ptr %159, align 8 + %161 = and i64 %160, 7 + %162 = icmp ne i64 %161, 0 + %163 = and i64 %160, -8 + %.not69117 = icmp eq i64 %163, 0 + %.not69 = or i1 %162, %.not69117 + br i1 %.not69, label %_ZN4llvm11raw_ostreamlsEc.exit93, label %164 + +164: ; preds = %142 + %165 = inttoptr i64 %163 to ptr + %166 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.18) + %167 = getelementptr inbounds nuw i8, ptr %165, i64 16 + %168 = load ptr, ptr %167, align 8 + %169 = getelementptr inbounds i8, ptr %168, i64 16 + %170 = load i64, ptr %168, align 8 + %171 = and i64 %170, 4294967295 + %172 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsENS_9StringRefE(ptr noundef nonnull align 8 dereferenceable(48) %166, ptr nonnull %169, i64 %171) + %173 = getelementptr inbounds nuw i8, ptr %172, i64 32 + %174 = load ptr, ptr %173, align 8 + %175 = getelementptr inbounds nuw i8, ptr %172, i64 24 + %176 = load ptr, ptr %175, align 8 + %.not.i91 = icmp ult ptr %174, %176 + br i1 %.not.i91, label %179, label %177 + +177: ; preds = %164 + %178 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostream5writeEh(ptr noundef nonnull align 8 dereferenceable(48) %172, i8 noundef zeroext 39) #17 br label %_ZN4llvm11raw_ostreamlsEc.exit93 -180: ; preds = %165 - %181 = getelementptr inbounds i8, ptr %175, i64 1 - store ptr %181, ptr %174, align 8 - store i8 39, ptr %175, align 1 +179: ; preds = %164 + %180 = getelementptr inbounds i8, ptr %174, i64 1 + store ptr %180, ptr %173, align 8 + store i8 39, ptr %174, align 1 br label %_ZN4llvm11raw_ostreamlsEc.exit93 -_ZN4llvm11raw_ostreamlsEc.exit93: ; preds = %180, %178, %143 - %182 = getelementptr inbounds nuw i8, ptr %9, i64 56 - %183 = load ptr, ptr %182, align 8 - %184 = call i64 @_ZNK5clang4Stmt14getSourceRangeEv(ptr noundef nonnull align 8 dereferenceable(8) %183) #21 - br label %204 - -185: ; preds = %142 - %186 = icmp eq i32 %26, 17 - tail call void @llvm.assume(i1 %186) - %187 = load ptr, ptr %9, align 8 - %188 = getelementptr inbounds i8, ptr %187, i64 104 - %189 = load ptr, ptr %188, align 8 - %190 = tail call i64 %189(ptr noundef nonnull align 8 dereferenceable(64) %9) #17 - %191 = and i64 %190, -16 - %192 = inttoptr i64 %191 to ptr - %193 = load ptr, ptr %192, align 16 - %194 = ptrtoint ptr %193 to i64 - %195 = and i64 %194, -16 - store i64 %195, ptr %7, align 8 - %196 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.16) - %197 = getelementptr inbounds nuw i8, ptr %2, i64 17256 - %198 = getelementptr inbounds nuw i8, ptr %8, i64 32 - store i8 1, ptr %198, align 8 - %199 = getelementptr inbounds nuw i8, ptr %8, i64 33 - store i8 1, ptr %199, align 1 - call void @_ZNK5clang8QualType5printERN4llvm11raw_ostreamERKNS_14PrintingPolicyERKNS1_5TwineEj(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(16) %197, ptr noundef nonnull align 8 dereferenceable(34) %8, i32 noundef 0) #17 - %200 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.19) - %201 = getelementptr inbounds nuw i8, ptr %9, i64 56 - %202 = load ptr, ptr %201, align 8 - %203 = call i64 @_ZNK5clang4Stmt14getSourceRangeEv(ptr noundef nonnull align 8 dereferenceable(8) %202) #21 - br label %204 - -204: ; preds = %_ZN4llvm11raw_ostreamlsEPKc.exit79, %_ZN4llvm11raw_ostreamlsEc.exit, %185, %_ZN4llvm11raw_ostreamlsEc.exit93, %_ZN4llvm11raw_ostreamlsEPKc.exit83, %_ZN4llvm11raw_ostreamlsEPKc.exit75 - %.sroa.097.0.in = phi i64 [ %203, %185 ], [ %184, %_ZN4llvm11raw_ostreamlsEc.exit93 ], [ %141, %_ZN4llvm11raw_ostreamlsEc.exit ], [ %94, %_ZN4llvm11raw_ostreamlsEPKc.exit83 ], [ %70, %_ZN4llvm11raw_ostreamlsEPKc.exit79 ], [ %65, %_ZN4llvm11raw_ostreamlsEPKc.exit75 ] - ret i64 %.sroa.097.0.in +_ZN4llvm11raw_ostreamlsEc.exit93: ; preds = %179, %177, %142 + %181 = getelementptr inbounds nuw i8, ptr %9, i64 56 + %182 = load ptr, ptr %181, align 8 + %183 = call i64 @_ZNK5clang4Stmt14getSourceRangeEv(ptr noundef nonnull align 8 dereferenceable(8) %182) #21 + br label %203 + +184: ; preds = %141 + %185 = icmp eq i32 %26, 17 + tail call void @llvm.assume(i1 %185) + %186 = load ptr, ptr %9, align 8 + %187 = getelementptr inbounds i8, ptr %186, i64 104 + %188 = load ptr, ptr %187, align 8 + %189 = tail call i64 %188(ptr noundef nonnull align 8 dereferenceable(64) %9) #17 + %190 = and i64 %189, -16 + %191 = inttoptr i64 %190 to ptr + %192 = load ptr, ptr %191, align 16 + %193 = ptrtoint ptr %192 to i64 + %194 = and i64 %193, -16 + store i64 %194, ptr %7, align 8 + %195 = tail call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.16) + %196 = getelementptr inbounds nuw i8, ptr %2, i64 17256 + %197 = getelementptr inbounds nuw i8, ptr %8, i64 32 + store i8 1, ptr %197, align 8 + %198 = getelementptr inbounds nuw i8, ptr %8, i64 33 + store i8 1, ptr %198, align 1 + call void @_ZNK5clang8QualType5printERN4llvm11raw_ostreamERKNS_14PrintingPolicyERKNS1_5TwineEj(ptr noundef nonnull align 8 dereferenceable(8) %7, ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull align 8 dereferenceable(16) %196, ptr noundef nonnull align 8 dereferenceable(34) %8, i32 noundef 0) #17 + %199 = call noundef nonnull align 8 dereferenceable(48) ptr @_ZN4llvm11raw_ostreamlsEPKc(ptr noundef nonnull align 8 dereferenceable(48) %0, ptr noundef nonnull @.str.19) + %200 = getelementptr inbounds nuw i8, ptr %9, i64 56 + %201 = load ptr, ptr %200, align 8 + %202 = call i64 @_ZNK5clang4Stmt14getSourceRangeEv(ptr noundef nonnull align 8 dereferenceable(8) %201) #21 + br label %203 + +203: ; preds = %_ZN4llvm11raw_ostreamlsEPKc.exit79, %_ZN4llvm11raw_ostreamlsEc.exit, %184, %_ZN4llvm11raw_ostreamlsEc.exit93, %_ZN4llvm11raw_ostreamlsEPKc.exit83, %_ZN4llvm11raw_ostreamlsEPKc.exit75 + %.sroa.8.0.in.in = phi i64 [ %202, %184 ], [ %183, %_ZN4llvm11raw_ostreamlsEc.exit93 ], [ %140, %_ZN4llvm11raw_ostreamlsEc.exit ], [ %93, %_ZN4llvm11raw_ostreamlsEPKc.exit83 ], [ %70, %_ZN4llvm11raw_ostreamlsEPKc.exit79 ], [ %65, %_ZN4llvm11raw_ostreamlsEPKc.exit75 ] + ret i64 %.sroa.8.0.in.in } ; Function Attrs: mustprogress nofree nounwind willreturn memory(read) diff --git a/bench/luau/optimized/main.cpp.ll b/bench/luau/optimized/main.cpp.ll index 95dddfdafd5..8233eb87441 100644 --- a/bench/luau/optimized/main.cpp.ll +++ b/bench/luau/optimized/main.cpp.ll @@ -12064,8 +12064,8 @@ define internal fastcc noundef zeroext i1 @_ZN7doctest12_GLOBAL__N_19parseFlagEi br label %.lr.ph.split.us.i.i .lr.ph.split.us.i.i: ; preds = %.loopexit.us.i.i, %.lr.ph.i.i - %indvars.iv46.i.i = phi i64 [ %indvars.iv.next47.i.i, %.loopexit.us.i.i ], [ %5, %.lr.ph.i.i ] - %gep.us.i.i = getelementptr ptr, ptr %invariant.gep.i.i, i64 %indvars.iv46.i.i + %indvars.iv50.i.i = phi i64 [ %indvars.iv.next51.i.i, %.loopexit.us.i.i ], [ %5, %.lr.ph.i.i ] + %gep.us.i.i = getelementptr ptr, ptr %invariant.gep.i.i, i64 %indvars.iv50.i.i %6 = load ptr, ptr %gep.us.i.i, align 8 %7 = tail call noundef ptr @strstr(ptr noundef nonnull dereferenceable(1) %6, ptr noundef nonnull readonly dereferenceable(1) %2) #51 %.not.us.i.i = icmp eq ptr %7, null @@ -12094,13 +12094,13 @@ define internal fastcc noundef zeroext i1 @_ZN7doctest12_GLOBAL__N_19parseFlagEi br i1 %16, label %_ZN7doctest6StringD2Ev.exit, label %.loopexit.us.i.i .loopexit.us.i.i: ; preds = %12, %.critedge.us.i.i, %8, %.lr.ph.split.us.i.i - %indvars.iv.next47.i.i = add nsw i64 %indvars.iv46.i.i, -1 - %17 = icmp sgt i64 %indvars.iv46.i.i, 1 + %indvars.iv.next51.i.i = add nsw i64 %indvars.iv50.i.i, -1 + %17 = icmp sgt i64 %indvars.iv50.i.i, 1 br i1 %17, label %.lr.ph.split.us.i.i, label %.lr.ph.split.us.i, !llvm.loop !79 .lr.ph.split.us.i: ; preds = %.loopexit.us.i.i, %.loopexit.us.i - %indvars.iv46.i = phi i64 [ %indvars.iv.next47.i, %.loopexit.us.i ], [ %5, %.loopexit.us.i.i ] - %gep.us.i = getelementptr ptr, ptr %invariant.gep.i.i, i64 %indvars.iv46.i + %indvars.iv50.i = phi i64 [ %indvars.iv.next51.i, %.loopexit.us.i ], [ %5, %.loopexit.us.i.i ] + %gep.us.i = getelementptr ptr, ptr %invariant.gep.i.i, i64 %indvars.iv50.i %18 = load ptr, ptr %gep.us.i, align 8 %19 = tail call noundef ptr @strstr(ptr noundef nonnull dereferenceable(1) %18, ptr noundef nonnull readonly dereferenceable(1) %2) #51 %.not.us.i = icmp eq ptr %19, null @@ -12129,8 +12129,8 @@ define internal fastcc noundef zeroext i1 @_ZN7doctest12_GLOBAL__N_19parseFlagEi br i1 %28, label %_ZN7doctest6StringD2Ev.exit, label %.loopexit.us.i .loopexit.us.i: ; preds = %24, %.critedge.us.i, %20, %.lr.ph.split.us.i - %indvars.iv.next47.i = add nsw i64 %indvars.iv46.i, -1 - %29 = icmp sgt i64 %indvars.iv46.i, 1 + %indvars.iv.next51.i = add nsw i64 %indvars.iv50.i, -1 + %29 = icmp sgt i64 %indvars.iv50.i, 1 br i1 %29, label %.lr.ph.split.us.i, label %_ZN7doctest6StringD2Ev.exit, !llvm.loop !79 _ZN7doctest6StringD2Ev.exit: ; preds = %.critedge.us.i.i, %.critedge.us.i, %.loopexit.us.i, %3 @@ -15518,8 +15518,8 @@ _ZL12skipFastFlagPKc.exit.thread: ; preds = %.lr.ph, %_ZL12skipF br label %.lr.ph.split.us.i.i .lr.ph.split.us.i.i: ; preds = %.loopexit.us.i.i, %.lr.ph.i.i - %indvars.iv46.i.i = phi i64 [ %indvars.iv.next47.i.i, %.loopexit.us.i.i ], [ %87, %.lr.ph.i.i ] - %gep.us.i.i = getelementptr ptr, ptr %invariant.gep.i.i, i64 %indvars.iv46.i.i + %indvars.iv50.i.i = phi i64 [ %indvars.iv.next51.i.i, %.loopexit.us.i.i ], [ %87, %.lr.ph.i.i ] + %gep.us.i.i = getelementptr ptr, ptr %invariant.gep.i.i, i64 %indvars.iv50.i.i %88 = load ptr, ptr %gep.us.i.i, align 8 %89 = call noundef ptr @strstr(ptr noundef nonnull dereferenceable(1) %88, ptr noundef nonnull readonly dereferenceable(1) @.str.220) #51 %.not.us.i.i = icmp eq ptr %89, null @@ -15547,13 +15547,13 @@ _ZL12skipFastFlagPKc.exit.thread: ; preds = %.lr.ph, %_ZL12skipF br i1 %97, label %_ZN7doctest6StringD2Ev.exit, label %.loopexit.us.i.i .loopexit.us.i.i: ; preds = %93, %.critedge.us.i.i, %90, %.lr.ph.split.us.i.i - %indvars.iv.next47.i.i = add nsw i64 %indvars.iv46.i.i, -1 - %98 = icmp sgt i64 %indvars.iv46.i.i, 1 + %indvars.iv.next51.i.i = add nsw i64 %indvars.iv50.i.i, -1 + %98 = icmp sgt i64 %indvars.iv50.i.i, 1 br i1 %98, label %.lr.ph.split.us.i.i, label %.lr.ph.split.us.i, !llvm.loop !79 .lr.ph.split.us.i: ; preds = %.loopexit.us.i.i, %.loopexit.us.i - %indvars.iv46.i = phi i64 [ %indvars.iv.next47.i, %.loopexit.us.i ], [ %87, %.loopexit.us.i.i ] - %gep.us.i = getelementptr ptr, ptr %invariant.gep.i.i, i64 %indvars.iv46.i + %indvars.iv50.i = phi i64 [ %indvars.iv.next51.i, %.loopexit.us.i ], [ %87, %.loopexit.us.i.i ] + %gep.us.i = getelementptr ptr, ptr %invariant.gep.i.i, i64 %indvars.iv50.i %99 = load ptr, ptr %gep.us.i, align 8 %100 = call noundef ptr @strstr(ptr noundef nonnull dereferenceable(1) %99, ptr noundef nonnull readonly dereferenceable(1) @.str.220) #51 %.not.us.i = icmp eq ptr %100, null @@ -15581,8 +15581,8 @@ _ZL12skipFastFlagPKc.exit.thread: ; preds = %.lr.ph, %_ZL12skipF br i1 %108, label %_ZN7doctest6StringD2Ev.exit, label %.loopexit.us.i .loopexit.us.i: ; preds = %104, %.critedge.us.i, %101, %.lr.ph.split.us.i - %indvars.iv.next47.i = add nsw i64 %indvars.iv46.i, -1 - %109 = icmp sgt i64 %indvars.iv46.i, 1 + %indvars.iv.next51.i = add nsw i64 %indvars.iv50.i, -1 + %109 = icmp sgt i64 %indvars.iv50.i, 1 br i1 %109, label %.lr.ph.split.us.i, label %_ZN7doctest6StringD2Ev.exit68, !llvm.loop !79 _ZN7doctest6StringD2Ev.exit: ; preds = %.critedge.us.i.i, %.critedge.us.i @@ -17131,8 +17131,8 @@ define internal fastcc noundef zeroext i1 @_ZN7doctest12_GLOBAL__N_115parseOptio br i1 %.not31, label %.lr.ph.split.us, label %.lr.ph.split .lr.ph.split.us: ; preds = %.lr.ph, %.loopexit.us - %indvars.iv46 = phi i64 [ %indvars.iv.next47, %.loopexit.us ], [ %7, %.lr.ph ] - %gep.us = getelementptr ptr, ptr %invariant.gep, i64 %indvars.iv46 + %indvars.iv50 = phi i64 [ %indvars.iv.next51, %.loopexit.us ], [ %7, %.lr.ph ] + %gep.us = getelementptr ptr, ptr %invariant.gep, i64 %indvars.iv50 %8 = load ptr, ptr %gep.us, align 8 %9 = tail call noundef ptr @strstr(ptr noundef nonnull dereferenceable(1) %8, ptr noundef nonnull dereferenceable(1) %2) #51 %.not.us = icmp eq ptr %9, null @@ -17161,8 +17161,8 @@ define internal fastcc noundef zeroext i1 @_ZN7doctest12_GLOBAL__N_115parseOptio br i1 %18, label %_ZN7doctest6StringD2Ev.exit, label %.loopexit.us .loopexit.us: ; preds = %14, %.critedge.us, %10, %.lr.ph.split.us - %indvars.iv.next47 = add nsw i64 %indvars.iv46, -1 - %19 = icmp sgt i64 %indvars.iv46, 1 + %indvars.iv.next51 = add nsw i64 %indvars.iv50, -1 + %19 = icmp sgt i64 %indvars.iv50, 1 br i1 %19, label %.lr.ph.split.us, label %_ZN7doctest6StringD2Ev.exit, !llvm.loop !79 .lr.ph.split: ; preds = %.lr.ph, %.loopexit @@ -17171,20 +17171,20 @@ define internal fastcc noundef zeroext i1 @_ZN7doctest12_GLOBAL__N_115parseOptio %20 = load ptr, ptr %gep, align 8 %21 = tail call noundef ptr @strstr(ptr noundef nonnull dereferenceable(1) %20, ptr noundef nonnull dereferenceable(1) %2) #51 %.not = icmp eq ptr %21, null - br i1 %.not, label %.loopexit, label %.preheader43 + br i1 %.not, label %.loopexit, label %.preheader45 -.preheader43: ; preds = %.lr.ph.split, %22 +.preheader45: ; preds = %.lr.ph.split, %22 %.026 = phi ptr [ %23, %22 ], [ %20, %.lr.ph.split ] %.not32 = icmp eq ptr %.026, %21 br i1 %.not32, label %.critedge, label %22 -22: ; preds = %.preheader43 +22: ; preds = %.preheader45 %23 = getelementptr inbounds i8, ptr %.026, i64 1 %24 = load i8, ptr %.026, align 1 %.not33 = icmp eq i8 %24, 45 - br i1 %.not33, label %.preheader43, label %.loopexit, !llvm.loop !78 + br i1 %.not33, label %.preheader45, label %.loopexit, !llvm.loop !78 -.critedge: ; preds = %.preheader43 +.critedge: ; preds = %.preheader45 %25 = load i8, ptr %20, align 1 %26 = icmp eq i8 %25, 45 br i1 %26, label %27, label %.loopexit @@ -17198,67 +17198,65 @@ define internal fastcc noundef zeroext i1 @_ZN7doctest12_GLOBAL__N_115parseOptio br i1 %.not34, label %.loopexit, label %32 32: ; preds = %27 - %33 = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %29) #51 - %34 = trunc i64 %33 to i32 - %35 = icmp ult i32 %34, 24 - br i1 %35, label %36, label %42 + %33 = trunc i64 %30 to i32 + %34 = icmp ult i32 %33, 24 + br i1 %34, label %35, label %41 -36: ; preds = %32 - %37 = and i64 %33, 31 - %38 = getelementptr inbounds [24 x i8], ptr %5, i64 0, i64 %37 - store i8 0, ptr %38, align 1 - %39 = trunc i64 %33 to i8 - %40 = sub nuw nsw i8 23, %39 - %41 = getelementptr inbounds i8, ptr %5, i64 23 - store i8 %40, ptr %41, align 1 +35: ; preds = %32 + %36 = and i64 %30, 31 + %37 = getelementptr inbounds [24 x i8], ptr %5, i64 0, i64 %36 + store i8 0, ptr %37, align 1 + %38 = trunc i64 %30 to i8 + %39 = sub nuw nsw i8 23, %38 + %40 = getelementptr inbounds i8, ptr %5, i64 23 + store i8 %39, ptr %40, align 1 br label %_ZN7doctest6StringC2EPKc.exit -42: ; preds = %32 - %43 = getelementptr inbounds i8, ptr %5, i64 23 - store i8 -128, ptr %43, align 1 - %44 = getelementptr inbounds i8, ptr %5, i64 8 - store i32 %34, ptr %44, align 8 - %45 = add i32 %34, 1 - %46 = getelementptr inbounds i8, ptr %5, i64 12 - store i32 %45, ptr %46, align 4 - %47 = zext i32 %45 to i64 - %48 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %47) #50 - store ptr %48, ptr %5, align 8 - %49 = and i64 %33, 4294967295 - %50 = getelementptr inbounds i8, ptr %48, i64 %49 - store i8 0, ptr %50, align 1 +41: ; preds = %32 + %42 = getelementptr inbounds i8, ptr %5, i64 23 + store i8 -128, ptr %42, align 1 + %43 = getelementptr inbounds i8, ptr %5, i64 8 + store i32 %33, ptr %43, align 8 + %44 = add i32 %33, 1 + %45 = getelementptr inbounds i8, ptr %5, i64 12 + store i32 %44, ptr %45, align 4 + %46 = zext i32 %44 to i64 + %47 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %46) #50 + store ptr %47, ptr %5, align 8 + %48 = getelementptr inbounds i8, ptr %47, i64 %31 + store i8 0, ptr %48, align 1 br label %_ZN7doctest6StringC2EPKc.exit -_ZN7doctest6StringC2EPKc.exit: ; preds = %36, %42 - %.pre-phi.i.i = phi i64 [ %37, %36 ], [ %49, %42 ] - %.0.i.i.i = phi ptr [ %5, %36 ], [ %48, %42 ] +_ZN7doctest6StringC2EPKc.exit: ; preds = %35, %41 + %.pre-phi.i.i = phi i64 [ %36, %35 ], [ %31, %41 ] + %.0.i.i.i = phi ptr [ %5, %35 ], [ %47, %41 ] call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %.0.i.i.i, ptr nonnull readonly align 1 %29, i64 %.pre-phi.i.i, i1 false) - %51 = getelementptr inbounds i8, ptr %3, i64 23 - %52 = load i8, ptr %51, align 1 - %53 = icmp sgt i8 %52, -1 - br i1 %53, label %_ZN7doctest6StringaSEOS0_.exit, label %54 + %49 = getelementptr inbounds i8, ptr %3, i64 23 + %50 = load i8, ptr %49, align 1 + %51 = icmp sgt i8 %50, -1 + br i1 %51, label %_ZN7doctest6StringaSEOS0_.exit, label %52 -54: ; preds = %_ZN7doctest6StringC2EPKc.exit - %55 = load ptr, ptr %3, align 8 - %56 = icmp eq ptr %55, null - br i1 %56, label %_ZN7doctest6StringaSEOS0_.exit, label %57 +52: ; preds = %_ZN7doctest6StringC2EPKc.exit + %53 = load ptr, ptr %3, align 8 + %54 = icmp eq ptr %53, null + br i1 %54, label %_ZN7doctest6StringaSEOS0_.exit, label %55 -57: ; preds = %54 - tail call void @_ZdaPv(ptr noundef nonnull %55) #48 +55: ; preds = %52 + tail call void @_ZdaPv(ptr noundef nonnull %53) #48 br label %_ZN7doctest6StringaSEOS0_.exit -_ZN7doctest6StringaSEOS0_.exit: ; preds = %57, %54, %_ZN7doctest6StringC2EPKc.exit +_ZN7doctest6StringaSEOS0_.exit: ; preds = %55, %52, %_ZN7doctest6StringC2EPKc.exit call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(24) %3, ptr noundef nonnull align 8 dereferenceable(24) %5, i64 24, i1 false) br label %_ZN7doctest6StringD2Ev.exit .loopexit: ; preds = %22, %.lr.ph.split, %27, %.critedge %indvars.iv.next = add nsw i64 %indvars.iv, -1 - %58 = icmp sgt i64 %indvars.iv, 1 - br i1 %58, label %.lr.ph.split, label %_ZN7doctest6StringD2Ev.exit, !llvm.loop !79 + %56 = icmp sgt i64 %indvars.iv, 1 + br i1 %56, label %.lr.ph.split, label %_ZN7doctest6StringD2Ev.exit, !llvm.loop !79 _ZN7doctest6StringD2Ev.exit: ; preds = %.loopexit, %.critedge.us, %.loopexit.us, %_ZN7doctest6StringaSEOS0_.exit, %4 - %59 = phi i1 [ true, %_ZN7doctest6StringaSEOS0_.exit ], [ false, %4 ], [ true, %.critedge.us ], [ false, %.loopexit.us ], [ false, %.loopexit ] - ret i1 %59 + %57 = phi i1 [ true, %_ZN7doctest6StringaSEOS0_.exit ], [ false, %4 ], [ true, %.critedge.us ], [ false, %.loopexit.us ], [ false, %.loopexit ] + ret i1 %57 } ; Function Attrs: mustprogress nofree nounwind willreturn memory(read) diff --git a/bench/nlohmann_json/optimized/unit.cpp.ll b/bench/nlohmann_json/optimized/unit.cpp.ll index dcd2cfb7b53..49df6ad3e7c 100644 --- a/bench/nlohmann_json/optimized/unit.cpp.ll +++ b/bench/nlohmann_json/optimized/unit.cpp.ll @@ -15701,16 +15701,15 @@ if.then17: ; preds = %land.lhs.true11 br i1 %tobool23.not, label %for.inc, label %if.then24 if.then24: ; preds = %if.then17 - %call.i = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %add.ptr) #47 - %conv.i = trunc i64 %call.i to i32 + %conv.i = trunc i64 %call21 to i32 %cmp.i.i.i = icmp ult i32 %conv.i, 24 br i1 %cmp.i.i.i, label %if.then.i.i.i, label %if.else.i.i.i if.then.i.i.i: ; preds = %if.then24 - %idxprom.i.i.i = and i64 %call.i, 31 + %idxprom.i.i.i = and i64 %call21, 31 %arrayidx.i.i.i = getelementptr inbounds [24 x i8], ptr %ref.tmp, i64 0, i64 %idxprom.i.i.i store i8 0, ptr %arrayidx.i.i.i, align 1 - %8 = trunc i64 %call.i to i8 + %8 = trunc i64 %call21 to i8 %conv.i.i.i.i = sub nuw nsw i8 23, %8 %arrayidx.i.i.i.i = getelementptr inbounds i8, ptr %ref.tmp, i64 23 store i8 %conv.i.i.i.i, ptr %arrayidx.i.i.i.i, align 1 @@ -15727,13 +15726,12 @@ if.else.i.i.i: ; preds = %if.then24 %conv.i.i.i = zext i32 %add.i.i.i to i64 %call.i.i.i = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %conv.i.i.i) #46 store ptr %call.i.i.i, ptr %ref.tmp, align 8 - %idxprom5.i.i.i = and i64 %call.i, 4294967295 - %arrayidx6.i.i.i = getelementptr inbounds i8, ptr %call.i.i.i, i64 %idxprom5.i.i.i + %arrayidx6.i.i.i = getelementptr inbounds i8, ptr %call.i.i.i, i64 %7 store i8 0, ptr %arrayidx6.i.i.i, align 1 br label %_ZN7doctest6StringC2EPKc.exit _ZN7doctest6StringC2EPKc.exit: ; preds = %if.then.i.i.i, %if.else.i.i.i - %conv.pre-phi.i.i = phi i64 [ %idxprom.i.i.i, %if.then.i.i.i ], [ %idxprom5.i.i.i, %if.else.i.i.i ] + %conv.pre-phi.i.i = phi i64 [ %idxprom.i.i.i, %if.then.i.i.i ], [ %7, %if.else.i.i.i ] %retval.0.i.i.i = phi ptr [ %ref.tmp, %if.then.i.i.i ], [ %call.i.i.i, %if.else.i.i.i ] call void @llvm.memcpy.p0.p0.i64(ptr nonnull align 1 %retval.0.i.i.i, ptr nonnull readonly align 1 %add.ptr, i64 %conv.pre-phi.i.i, i1 false) %arrayidx.i.i = getelementptr inbounds i8, ptr %value, i64 23 diff --git a/bench/openexr/optimized/internal_dwa.c.ll b/bench/openexr/optimized/internal_dwa.c.ll index d9489d1bb6c..6042ee775a6 100644 --- a/bench/openexr/optimized/internal_dwa.c.ll +++ b/bench/openexr/optimized/internal_dwa.c.ll @@ -521,13 +521,12 @@ Classifier_match.exit.i: ; preds = %if.end3.i.i, %if.th if.then7.i: ; preds = %Classifier_match.exit.i %call.i24.i = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %18) #18 %add1.i.i = add i64 %nOut.042.i, 3 - %add12.i = add i64 %call.i24.i, %add1.i.i - %cmp13.i = icmp ult i64 %2, %add12.i + %add8.i = add i64 %add1.i.i, %call.i24.i + %cmp13.i = icmp ult i64 %2, %add8.i br i1 %cmp13.i, label %return, label %if.end16.i if.end16.i: ; preds = %if.then7.i - %call.i25.i = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %18) #18 - %add.i.i = add i64 %call.i25.i, 1 + %add.i.i = add i64 %call.i24.i, 1 tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %curp.039.i, ptr align 1 %18, i64 %add.i.i, i1 false) %add.ptr.i26.i = getelementptr inbounds i8, ptr %curp.039.i, i64 %add.i.i %_cscIdx.i.i = getelementptr inbounds i8, ptr %arrayidx5.i, i64 16 @@ -550,7 +549,6 @@ if.end16.i: ; preds = %if.then7.i %arrayidx20.i.i = getelementptr inbounds i8, ptr %add.ptr.i26.i, i64 1 store i8 %conv19.i.i, ptr %arrayidx20.i.i, align 1 %add.ptr21.i.i = getelementptr inbounds i8, ptr %add.ptr.i26.i, i64 2 - %add20.i = add i64 %call.i25.i, %add1.i.i %.pre.i = load i64, ptr %_channelRuleCount, align 8 br label %for.inc22.i @@ -562,7 +560,7 @@ for.inc.i: ; preds = %Classifier_match.ex for.inc22.i: ; preds = %for.inc.i, %if.end16.i, %for.cond2.preheader.i %25 = phi i64 [ %.pre.i, %if.end16.i ], [ %10, %for.cond2.preheader.i ], [ %10, %for.inc.i ] %curp.1.i = phi ptr [ %add.ptr21.i.i, %if.end16.i ], [ %curp.039.i, %for.cond2.preheader.i ], [ %curp.039.i, %for.inc.i ] - %nOut.1.i = phi i64 [ %add20.i, %if.end16.i ], [ %nOut.042.i, %for.cond2.preheader.i ], [ %nOut.042.i, %for.inc.i ] + %nOut.1.i = phi i64 [ %add8.i, %if.end16.i ], [ %nOut.042.i, %for.cond2.preheader.i ], [ %nOut.042.i, %for.inc.i ] %inc23.i = add nuw i64 %i.040.i, 1 %cmp1.i = icmp ult i64 %inc23.i, %25 br i1 %cmp1.i, label %for.cond2.preheaderthread-pre-split.i, label %for.end24.i, !llvm.loop !11 diff --git a/bench/openmpi/optimized/os_dirpath.ll b/bench/openmpi/optimized/os_dirpath.ll index 76fa6c0fb71..8c50f7b5fea 100644 --- a/bench/openmpi/optimized/os_dirpath.ll +++ b/bench/openmpi/optimized/os_dirpath.ll @@ -15,7 +15,7 @@ target triple = "x86_64-pc-linux-gnu" define range(i32 -17, 1) i32 @opal_os_dirpath_create(ptr noundef %0, i32 noundef %1) local_unnamed_addr #0 { %3 = alloca %struct.stat, align 8 %4 = icmp eq ptr %0, null - br i1 %4, label %73, label %5 + br i1 %4, label %75, label %5 5: ; preds = %2 %6 = call i32 @stat(ptr noundef nonnull %0, ptr noundef nonnull %3) #11 @@ -27,13 +27,13 @@ define range(i32 -17, 1) i32 @opal_os_dirpath_create(ptr noundef %0, i32 noundef %10 = load i32, ptr %9, align 8 %11 = and i32 %10, %1 %12 = icmp eq i32 %1, %11 - br i1 %12, label %73, label %13 + br i1 %12, label %75, label %13 13: ; preds = %8 %14 = or i32 %10, %1 %15 = tail call i32 @chmod(ptr noundef nonnull %0, i32 noundef %14) #11 %16 = icmp eq i32 %15, 0 - br i1 %16, label %73, label %17 + br i1 %16, label %75, label %17 17: ; preds = %13 %18 = load ptr, ptr @opal_show_help, align 8 @@ -41,12 +41,12 @@ define range(i32 -17, 1) i32 @opal_os_dirpath_create(ptr noundef %0, i32 noundef %20 = load i32, ptr %19, align 4 %21 = tail call ptr @strerror(i32 noundef %20) #11 %22 = tail call i32 (ptr, ptr, i32, ...) %18(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1, ptr noundef nonnull %0, i32 noundef %1, ptr noundef %21) #11 - br label %73 + br label %75 23: ; preds = %5 %24 = tail call i32 @mkdir(ptr noundef nonnull %0, i32 noundef %1) #11 %25 = icmp eq i32 %24, 0 - br i1 %25, label %73, label %26 + br i1 %25, label %75, label %26 26: ; preds = %23 %27 = tail call noalias ptr @opal_argv_split(ptr noundef nonnull %0, i32 noundef 47) #11 @@ -55,7 +55,6 @@ define range(i32 -17, 1) i32 @opal_os_dirpath_create(ptr noundef %0, i32 noundef %30 = tail call noalias ptr @malloc(i64 noundef %29) #14 store i8 0, ptr %30, align 1 %31 = tail call i32 @opal_argv_count(ptr noundef %27) #11 - %invariant.gep = getelementptr i8, ptr %30, i64 -1 %32 = icmp sgt i32 %31, 0 br i1 %32, label %.lr.ph, label %._crit_edge @@ -66,95 +65,94 @@ define range(i32 -17, 1) i32 @opal_os_dirpath_create(ptr noundef %0, i32 noundef %wide.trip.count = zext nneg i32 %31 to i64 br label %36 -36: ; preds = %.lr.ph, %72 - %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %72 ] +36: ; preds = %.lr.ph, %74 + %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %74 ] %37 = icmp eq i64 %indvars.iv, 0 br i1 %37, label %38, label %42 38: ; preds = %36 %39 = load i8, ptr %0, align 1 %40 = icmp eq i8 %39, 47 - br i1 %40, label %41, label %48 + br i1 %40, label %41, label %50 41: ; preds = %38 %strlen52 = tail call i64 @strlen(ptr nonnull dereferenceable(1) %30) %endptr53 = getelementptr inbounds i8, ptr %30, i64 %strlen52 store i16 47, ptr %endptr53, align 1 - br label %48 + br label %50 42: ; preds = %36 %43 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %30) #13 - %gep = getelementptr i8, ptr %invariant.gep, i64 %43 - %44 = load i8, ptr %gep, align 1 - %.not = icmp eq i8 %44, 47 - br i1 %.not, label %46, label %45 - -45: ; preds = %42 - %strlen = tail call i64 @strlen(ptr nonnull dereferenceable(1) %30) - %endptr = getelementptr inbounds i8, ptr %30, i64 %strlen - store i16 47, ptr %endptr, align 1 - br label %46 - -46: ; preds = %45, %42 - %47 = getelementptr inbounds ptr, ptr %27, i64 %indvars.iv + %44 = getelementptr i8, ptr %30, i64 %43 + %45 = getelementptr i8, ptr %44, i64 -1 + %46 = load i8, ptr %45, align 1 + %.not = icmp eq i8 %46, 47 + br i1 %.not, label %48, label %47 + +47: ; preds = %42 + store i16 47, ptr %44, align 1 br label %48 -48: ; preds = %38, %41, %46 - %.sink.in = phi ptr [ %47, %46 ], [ %27, %41 ], [ %27, %38 ] +48: ; preds = %47, %42 + %49 = getelementptr inbounds ptr, ptr %27, i64 %indvars.iv + br label %50 + +50: ; preds = %38, %41, %48 + %.sink.in = phi ptr [ %49, %48 ], [ %27, %41 ], [ %27, %38 ] %.sink = load ptr, ptr %.sink.in, align 8 - %49 = tail call ptr @strcat(ptr noundef nonnull dereferenceable(1) %30, ptr noundef nonnull dereferenceable(1) %.sink) #11 - %50 = tail call i32 @mkdir(ptr noundef nonnull %30, i32 noundef %1) #11 - %51 = tail call ptr @__errno_location() #12 - %52 = load i32, ptr %51, align 4 - %53 = call i32 @stat(ptr noundef nonnull %30, ptr noundef nonnull %3) #11 - %.not54 = icmp eq i32 %53, 0 - br i1 %.not54, label %58, label %54 - -54: ; preds = %48 - %55 = load ptr, ptr @opal_show_help, align 8 - %56 = tail call ptr @strerror(i32 noundef %52) #11 - %57 = tail call i32 (ptr, ptr, i32, ...) %55(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, i32 noundef 1, ptr noundef nonnull %30, ptr noundef %56) #11 + %51 = tail call ptr @strcat(ptr noundef nonnull dereferenceable(1) %30, ptr noundef nonnull dereferenceable(1) %.sink) #11 + %52 = tail call i32 @mkdir(ptr noundef nonnull %30, i32 noundef %1) #11 + %53 = tail call ptr @__errno_location() #12 + %54 = load i32, ptr %53, align 4 + %55 = call i32 @stat(ptr noundef nonnull %30, ptr noundef nonnull %3) #11 + %.not54 = icmp eq i32 %55, 0 + br i1 %.not54, label %60, label %56 + +56: ; preds = %50 + %57 = load ptr, ptr @opal_show_help, align 8 + %58 = tail call ptr @strerror(i32 noundef %54) #11 + %59 = tail call i32 (ptr, ptr, i32, ...) %57(ptr noundef nonnull @.str, ptr noundef nonnull @.str.2, i32 noundef 1, ptr noundef nonnull %30, ptr noundef %58) #11 tail call void @opal_argv_free(ptr noundef nonnull %27) #11 tail call void @free(ptr noundef %30) #11 - br label %73 - -58: ; preds = %48 - %59 = icmp eq i64 %indvars.iv, %35 - br i1 %59, label %60, label %72 - -60: ; preds = %58 - %61 = load i32, ptr %34, align 8 - %62 = and i32 %61, %1 - %.not55 = icmp eq i32 %1, %62 - br i1 %.not55, label %72, label %63 - -63: ; preds = %60 - %64 = or i32 %61, %1 - %65 = tail call i32 @chmod(ptr noundef nonnull %30, i32 noundef %64) #11 - %66 = icmp slt i32 %65, 0 - br i1 %66, label %67, label %72 - -67: ; preds = %63 - %68 = load ptr, ptr @opal_show_help, align 8 - %69 = load i32, ptr %51, align 4 - %70 = tail call ptr @strerror(i32 noundef %69) #11 - %71 = tail call i32 (ptr, ptr, i32, ...) %68(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1, ptr noundef nonnull %30, i32 noundef %1, ptr noundef %70) #11 + br label %75 + +60: ; preds = %50 + %61 = icmp eq i64 %indvars.iv, %35 + br i1 %61, label %62, label %74 + +62: ; preds = %60 + %63 = load i32, ptr %34, align 8 + %64 = and i32 %63, %1 + %.not55 = icmp eq i32 %1, %64 + br i1 %.not55, label %74, label %65 + +65: ; preds = %62 + %66 = or i32 %63, %1 + %67 = tail call i32 @chmod(ptr noundef nonnull %30, i32 noundef %66) #11 + %68 = icmp slt i32 %67, 0 + br i1 %68, label %69, label %74 + +69: ; preds = %65 + %70 = load ptr, ptr @opal_show_help, align 8 + %71 = load i32, ptr %53, align 4 + %72 = tail call ptr @strerror(i32 noundef %71) #11 + %73 = tail call i32 (ptr, ptr, i32, ...) %70(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1, ptr noundef nonnull %30, i32 noundef %1, ptr noundef %72) #11 tail call void @opal_argv_free(ptr noundef nonnull %27) #11 tail call void @free(ptr noundef %30) #11 - br label %73 + br label %75 -72: ; preds = %63, %60, %58 +74: ; preds = %65, %62, %60 %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 %._crit_edge, label %36, !llvm.loop !4 -._crit_edge: ; preds = %72, %26 +._crit_edge: ; preds = %74, %26 tail call void @opal_argv_free(ptr noundef %27) #11 tail call void @free(ptr noundef %30) #11 - br label %73 + br label %75 -73: ; preds = %23, %13, %8, %2, %._crit_edge, %67, %54, %17 - %.0 = phi i32 [ -17, %17 ], [ -1, %54 ], [ -17, %67 ], [ 0, %._crit_edge ], [ -5, %2 ], [ 0, %8 ], [ 0, %13 ], [ 0, %23 ] +75: ; preds = %23, %13, %8, %2, %._crit_edge, %69, %56, %17 + %.0 = phi i32 [ -17, %17 ], [ -1, %56 ], [ -17, %69 ], [ 0, %._crit_edge ], [ -5, %2 ], [ 0, %8 ], [ 0, %13 ], [ 0, %23 ] ret i32 %.0 } diff --git a/bench/openmpi/optimized/pmix_os_dirpath.ll b/bench/openmpi/optimized/pmix_os_dirpath.ll index d9d9535f98e..14142db3c17 100644 --- a/bench/openmpi/optimized/pmix_os_dirpath.ll +++ b/bench/openmpi/optimized/pmix_os_dirpath.ll @@ -21,12 +21,12 @@ target triple = "x86_64-pc-linux-gnu" ; Function Attrs: nounwind uwtable define range(i32 -27, 1) i32 @pmix_os_dirpath_create(ptr noundef %0, i32 noundef %1) local_unnamed_addr #0 { %3 = icmp eq ptr %0, null - br i1 %3, label %42, label %4 + br i1 %3, label %44, label %4 4: ; preds = %2 %5 = tail call i32 @mkdir(ptr noundef nonnull %0, i32 noundef %1) #10 %6 = icmp eq i32 %5, 0 - br i1 %6, label %42, label %7 + br i1 %6, label %44, label %7 7: ; preds = %4 %8 = tail call ptr @__errno_location() #11 @@ -43,7 +43,7 @@ define range(i32 -27, 1) i32 @pmix_os_dirpath_create(ptr noundef %0, i32 noundef 12: ; preds = %7 %13 = tail call ptr @strerror(i32 noundef %9) #10 %14 = tail call i32 (ptr, ptr, i32, ...) @pmix_show_help(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1, ptr noundef nonnull %0, ptr noundef %13) #10 - br label %42 + br label %44 15: ; preds = %7, %10 %16 = tail call ptr @PMIx_Argv_split(ptr noundef nonnull %0, i32 noundef 47) #10 @@ -52,7 +52,6 @@ define range(i32 -27, 1) i32 @pmix_os_dirpath_create(ptr noundef %0, i32 noundef %19 = tail call noalias ptr @malloc(i64 noundef %18) #13 store i8 0, ptr %19, align 1 %20 = tail call i32 @PMIx_Argv_count(ptr noundef %16) #10 - %invariant.gep = getelementptr i8, ptr %19, i64 -1 %21 = icmp sgt i32 %20, 0 br i1 %21, label %.lr.ph.preheader, label %._crit_edge @@ -60,71 +59,70 @@ define range(i32 -27, 1) i32 @pmix_os_dirpath_create(ptr noundef %0, i32 noundef %wide.trip.count = zext nneg i32 %20 to i64 br label %.lr.ph -.lr.ph: ; preds = %.lr.ph.preheader, %41 - %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %41 ] +.lr.ph: ; preds = %.lr.ph.preheader, %43 + %indvars.iv = phi i64 [ 0, %.lr.ph.preheader ], [ %indvars.iv.next, %43 ] %22 = icmp eq i64 %indvars.iv, 0 br i1 %22, label %23, label %27 23: ; preds = %.lr.ph %24 = load i8, ptr %0, align 1 %25 = icmp eq i8 %24, 47 - br i1 %25, label %26, label %33 + br i1 %25, label %26, label %35 26: ; preds = %23 %strlen41 = tail call i64 @strlen(ptr nonnull dereferenceable(1) %19) %endptr42 = getelementptr inbounds i8, ptr %19, i64 %strlen41 store i16 47, ptr %endptr42, align 1 - br label %33 + br label %35 27: ; preds = %.lr.ph %28 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %19) #12 - %gep = getelementptr i8, ptr %invariant.gep, i64 %28 - %29 = load i8, ptr %gep, align 1 - %.not40 = icmp eq i8 %29, 47 - br i1 %.not40, label %31, label %30 - -30: ; preds = %27 - %strlen = tail call i64 @strlen(ptr nonnull dereferenceable(1) %19) - %endptr = getelementptr inbounds i8, ptr %19, i64 %strlen - store i16 47, ptr %endptr, align 1 - br label %31 - -31: ; preds = %30, %27 - %32 = getelementptr inbounds ptr, ptr %16, i64 %indvars.iv + %29 = getelementptr i8, ptr %19, i64 %28 + %30 = getelementptr i8, ptr %29, i64 -1 + %31 = load i8, ptr %30, align 1 + %.not40 = icmp eq i8 %31, 47 + br i1 %.not40, label %33, label %32 + +32: ; preds = %27 + store i16 47, ptr %29, align 1 br label %33 -33: ; preds = %23, %26, %31 - %.sink.in = phi ptr [ %32, %31 ], [ %16, %26 ], [ %16, %23 ] - %.sink = load ptr, ptr %.sink.in, align 8 - %34 = tail call ptr @strcat(ptr noundef nonnull dereferenceable(1) %19, ptr noundef nonnull dereferenceable(1) %.sink) #10 - %35 = tail call i32 @mkdir(ptr noundef nonnull %19, i32 noundef %1) #10 - %.not43 = icmp eq i32 %35, 0 - br i1 %.not43, label %41, label %36 +33: ; preds = %32, %27 + %34 = getelementptr inbounds ptr, ptr %16, i64 %indvars.iv + br label %35 -36: ; preds = %33 - %37 = load i32, ptr %8, align 4 - %.not44 = icmp eq i32 %37, 17 - br i1 %.not44, label %41, label %38 - -38: ; preds = %36 - %39 = tail call ptr @strerror(i32 noundef %37) #10 - %40 = tail call i32 (ptr, ptr, i32, ...) @pmix_show_help(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1, ptr noundef nonnull %19, ptr noundef %39) #10 +35: ; preds = %23, %26, %33 + %.sink.in = phi ptr [ %34, %33 ], [ %16, %26 ], [ %16, %23 ] + %.sink = load ptr, ptr %.sink.in, align 8 + %36 = tail call ptr @strcat(ptr noundef nonnull dereferenceable(1) %19, ptr noundef nonnull dereferenceable(1) %.sink) #10 + %37 = tail call i32 @mkdir(ptr noundef nonnull %19, i32 noundef %1) #10 + %.not43 = icmp eq i32 %37, 0 + br i1 %.not43, label %43, label %38 + +38: ; preds = %35 + %39 = load i32, ptr %8, align 4 + %.not44 = icmp eq i32 %39, 17 + br i1 %.not44, label %43, label %40 + +40: ; preds = %38 + %41 = tail call ptr @strerror(i32 noundef %39) #10 + %42 = tail call i32 (ptr, ptr, i32, ...) @pmix_show_help(ptr noundef nonnull @.str, ptr noundef nonnull @.str.1, i32 noundef 1, ptr noundef nonnull %19, ptr noundef %41) #10 tail call void @PMIx_Argv_free(ptr noundef nonnull %16) #10 tail call void @free(ptr noundef %19) #10 - br label %42 + br label %44 -41: ; preds = %33, %36 +43: ; preds = %35, %38 %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 %._crit_edge, label %.lr.ph, !llvm.loop !4 -._crit_edge: ; preds = %41, %15 +._crit_edge: ; preds = %43, %15 tail call void @PMIx_Argv_free(ptr noundef %16) #10 tail call void @free(ptr noundef %19) #10 - br label %42 + br label %44 -42: ; preds = %4, %2, %._crit_edge, %38, %12 - %.0 = phi i32 [ -2, %38 ], [ 0, %._crit_edge ], [ -2, %12 ], [ -27, %2 ], [ 0, %4 ] +44: ; preds = %4, %2, %._crit_edge, %40, %12 + %.0 = phi i32 [ -2, %40 ], [ 0, %._crit_edge ], [ -2, %12 ], [ -27, %2 ], [ 0, %4 ] ret i32 %.0 } diff --git a/bench/postgres/optimized/pgc.ll b/bench/postgres/optimized/pgc.ll index 30a889b7855..2d7ef6c5ba5 100644 --- a/bench/postgres/optimized/pgc.ll +++ b/bench/postgres/optimized/pgc.ll @@ -4250,8 +4250,7 @@ sub_1: ; preds = %sub_0 br i1 %65, label %.loopexit.thread, label %.tail.thread .tail.thread: ; preds = %sub_1, %sub_0, %.tail, %56 - %strlen32 = call i64 @strlen(ptr nonnull dereferenceable(1) %1) - %endptr33 = getelementptr inbounds i8, ptr %1, i64 %strlen32 + %endptr33 = getelementptr inbounds i8, ptr %1, i64 %57 call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %endptr33, ptr noundef nonnull align 1 dereferenceable(3) @.str.52, i64 3, i1 false) %66 = call noalias ptr @fopen(ptr noundef nonnull %1, ptr noundef nonnull @.str.51) store ptr %66, ptr @base_yyin, align 8 @@ -4277,7 +4276,6 @@ sub_1: ; preds = %sub_0 .thread35: ; preds = %37, %.critedge, %.thread, %67 %76 = phi ptr [ null, %.critedge ], [ %.pre, %.thread ], [ null, %67 ], [ null, %37 ] - %invariant.gep = getelementptr i8, ptr %1, i64 -2 %.02151 = load ptr, ptr @include_paths, align 8 %77 = icmp eq ptr %76, null %78 = icmp ne ptr %.02151, null @@ -4311,69 +4309,67 @@ sub_1: ; preds = %sub_0 sub_043: ; preds = %91 %94 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %1) #30 - %gep = getelementptr i8, ptr %invariant.gep, i64 %94 - %95 = load i8, ptr %gep, align 1 - %.not57 = icmp eq i8 %95, 46 + %95 = getelementptr i8, ptr %1, i64 %94 + %96 = getelementptr i8, ptr %95, i64 -2 + %97 = load i8, ptr %96, align 1 + %.not57 = icmp eq i8 %97, 46 br i1 %.not57, label %sub_144, label %thread-pre-split sub_144: ; preds = %sub_043 - %96 = getelementptr inbounds i8, ptr %gep, i64 1 - %97 = load i8, ptr %96, align 1 - %.not58 = icmp eq i8 %97, 104 + %98 = getelementptr i8, ptr %95, i64 -1 + %99 = load i8, ptr %98, align 1 + %.not58 = icmp eq i8 %99, 104 br i1 %.not58, label %.tail42, label %thread-pre-split .tail42: ; preds = %sub_144 - %98 = getelementptr inbounds i8, ptr %gep, i64 2 - %99 = load i8, ptr %98, align 1 - %100 = icmp eq i8 %99, 0 - br i1 %100, label %thread-pre-split.thread, label %thread-pre-split + %100 = load i8, ptr %95, align 1 + %101 = icmp eq i8 %100, 0 + br i1 %101, label %thread-pre-split.thread, label %thread-pre-split thread-pre-split: ; preds = %sub_144, %sub_043, %.tail42 - %strlen = call i64 @strlen(ptr nonnull dereferenceable(1) %1) - %endptr = getelementptr inbounds i8, ptr %1, i64 %strlen - call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %endptr, ptr noundef nonnull align 1 dereferenceable(3) @.str.52, i64 3, i1 false) - %101 = call noalias ptr @fopen(ptr noundef nonnull %1, ptr noundef nonnull @.str.51) - store ptr %101, ptr @base_yyin, align 8 - %.not28 = icmp eq ptr %101, null + call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 1 dereferenceable(3) %95, ptr noundef nonnull align 1 dereferenceable(3) @.str.52, i64 3, i1 false) + %102 = call noalias ptr @fopen(ptr noundef nonnull %1, ptr noundef nonnull @.str.51) + store ptr %102, ptr @base_yyin, align 8 + %.not28 = icmp eq ptr %102, null br i1 %.not28, label %thread-pre-split.thread, label %.thread36 .thread36: ; preds = %91, %thread-pre-split - %102 = phi ptr [ %101, %thread-pre-split ], [ %93, %91 ] + %103 = phi ptr [ %102, %thread-pre-split ], [ %93, %91 ] %.b29 = load i1, ptr @include_next, align 1 - br i1 %.b29, label %103, label %.thread40 + br i1 %.b29, label %104, label %.thread40 -103: ; preds = %.thread36 - %104 = call i32 @fclose(ptr noundef nonnull %102) +104: ; preds = %.thread36 + %105 = call i32 @fclose(ptr noundef nonnull %103) store ptr null, ptr @base_yyin, align 8 store i1 false, ptr @include_next, align 1 br label %thread-pre-split.thread -thread-pre-split.thread: ; preds = %.tail42, %thread-pre-split, %103, %87 - %105 = phi ptr [ null, %thread-pre-split ], [ null, %103 ], [ %.pre60, %87 ], [ null, %.tail42 ] - %106 = getelementptr inbounds i8, ptr %.02152, i64 8 - %.021 = load ptr, ptr %106, align 8 - %107 = icmp eq ptr %105, null - %108 = icmp ne ptr %.021, null - %109 = select i1 %107, i1 %108, i1 false - br i1 %109, label %.lr.ph53, label %.loopexit, !llvm.loop !39 +thread-pre-split.thread: ; preds = %.tail42, %thread-pre-split, %104, %87 + %106 = phi ptr [ null, %thread-pre-split ], [ null, %104 ], [ %.pre60, %87 ], [ null, %.tail42 ] + %107 = getelementptr inbounds i8, ptr %.02152, i64 8 + %.021 = load ptr, ptr %107, align 8 + %108 = icmp eq ptr %106, null + %109 = icmp ne ptr %.021, null + %110 = select i1 %108, i1 %109, i1 false + br i1 %110, label %.lr.ph53, label %.loopexit, !llvm.loop !39 .loopexit: ; preds = %thread-pre-split.thread, %.thread35, %.tail.thread - %110 = phi ptr [ %66, %.tail.thread ], [ %76, %.thread35 ], [ %105, %thread-pre-split.thread ] - %.not34 = icmp eq ptr %110, null + %111 = phi ptr [ %66, %.tail.thread ], [ %76, %.thread35 ], [ %106, %thread-pre-split.thread ] + %.not34 = icmp eq ptr %111, null br i1 %.not34, label %.loopexit.thread, label %.thread40 .loopexit.thread: ; preds = %.tail, %.loopexit - %111 = load ptr, ptr @base_yytext, align 8 - %112 = load i32, ptr @base_yylineno, align 4 - call void (i32, ptr, ...) @mmfatal(i32 noundef 2, ptr noundef nonnull @.str.55, ptr noundef %111, i32 noundef %112) #29 + %112 = load ptr, ptr @base_yytext, align 8 + %113 = load i32, ptr @base_yylineno, align 4 + call void (i32, ptr, ...) @mmfatal(i32 noundef 2, ptr noundef nonnull @.str.55, ptr noundef %112, i32 noundef %113) #29 unreachable .thread40: ; preds = %.thread36, %49, %.loopexit - %113 = call ptr @mm_strdup(ptr noundef nonnull %1) #31 - store ptr %113, ptr @input_filename, align 8 - %114 = load ptr, ptr @base_yyin, align 8 - %115 = call ptr @base_yy_create_buffer(ptr noundef %114, i32 noundef 16384) - call void @base_yy_switch_to_buffer(ptr noundef nonnull %115) + %114 = call ptr @mm_strdup(ptr noundef nonnull %1) #31 + store ptr %114, ptr @input_filename, align 8 + %115 = load ptr, ptr @base_yyin, align 8 + %116 = call ptr @base_yy_create_buffer(ptr noundef %115, i32 noundef 16384) + call void @base_yy_switch_to_buffer(ptr noundef nonnull %116) store i32 1, ptr @base_yylineno, align 4 call void @output_line_number() #31 store i32 33, ptr @yy_start, align 4 diff --git a/bench/protobuf/optimized/extension_set.cc.ll b/bench/protobuf/optimized/extension_set.cc.ll index 37ed4046bd6..46a53f34525 100644 --- a/bench/protobuf/optimized/extension_set.cc.ll +++ b/bench/protobuf/optimized/extension_set.cc.ll @@ -1210,10 +1210,7 @@ _ZNK6google8protobuf8internal12ExtensionSet3HasEi.exit: ; preds = %entry br i1 %bf.cast.i, label %land.end, label %land.rhs land.rhs: ; preds = %_ZNK6google8protobuf8internal12ExtensionSet3HasEi.exit - %call2 = tail call noundef ptr @_ZNK6google8protobuf8internal12ExtensionSet10FindOrNullEi(ptr noundef nonnull align 8 dereferenceable(24) %this, i32 noundef %number) - %is_lazy = getelementptr inbounds i8, ptr %call2, i64 10 - %bf.load = load i8, ptr %is_lazy, align 2 - %0 = and i8 %bf.load, 16 + %0 = and i8 %bf.load.i, 16 %bf.cast = icmp ne i8 %0, 0 br label %land.end diff --git a/bench/redis/optimized/replication.ll b/bench/redis/optimized/replication.ll index 149c4a234b4..52bc287d4cd 100644 --- a/bench/redis/optimized/replication.ll +++ b/bench/redis/optimized/replication.ll @@ -2177,30 +2177,22 @@ land.lhs.true: ; preds = %entry if.then: ; preds = %land.lhs.true %4 = load i8, ptr %2, align 1 %cmp4.not = icmp eq i8 %4, 63 - br i1 %cmp4.not, label %do.body24, label %if.then6 + br i1 %cmp4.not, label %do.body24, label %land.lhs.true9 -if.then6: ; preds = %if.then - %call7 = tail call i32 @strcasecmp(ptr noundef nonnull %2, ptr noundef nonnull getelementptr inbounds (i8, ptr @server, i64 4356)) #23 - %tobool8.not = icmp eq i32 %call7, 0 - br i1 %tobool8.not, label %do.body16, label %land.lhs.true9 - -land.lhs.true9: ; preds = %if.then6 - %call10 = tail call i32 @strcasecmp(ptr noundef nonnull %2, ptr noundef nonnull getelementptr inbounds (i8, ptr @server, i64 4397)) #23 - %tobool11.not = icmp eq i32 %call10, 0 +land.lhs.true9: ; preds = %if.then + %tobool11.not = icmp eq i32 %call1, 0 + %5 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 3696), align 8 + %cmp17 = icmp sgt i32 %5, 2 br i1 %tobool11.not, label %do.body16, label %do.body do.body: ; preds = %land.lhs.true9 - %5 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 3696), align 8 - %cmp13 = icmp sgt i32 %5, 2 - br i1 %cmp13, label %return, label %if.end + br i1 %cmp17, label %return, label %if.end if.end: ; preds = %do.body tail call void (i32, ptr, ...) @_serverLog(i32 noundef 2, ptr noundef nonnull @.str.34, ptr noundef nonnull %2, ptr noundef nonnull getelementptr inbounds (i8, ptr @server, i64 4356), ptr noundef nonnull getelementptr inbounds (i8, ptr @server, i64 4397)) #22 br label %return -do.body16: ; preds = %if.then6, %land.lhs.true9 - %6 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 3696), align 8 - %cmp17 = icmp sgt i32 %6, 2 +do.body16: ; preds = %land.lhs.true9 br i1 %cmp17, label %return, label %if.end20 if.end20: ; preds = %do.body16 @@ -2208,8 +2200,8 @@ if.end20: ; preds = %do.body16 br label %return do.body24: ; preds = %if.then - %7 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 3696), align 8 - %cmp25 = icmp sgt i32 %7, 2 + %6 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 3696), align 8 + %cmp25 = icmp sgt i32 %6, 2 br i1 %cmp25, label %return, label %if.end28 if.end28: ; preds = %do.body24 @@ -2218,26 +2210,26 @@ if.end28: ; preds = %do.body24 br label %return if.end32: ; preds = %land.lhs.true, %entry - %8 = load ptr, ptr getelementptr inbounds (i8, ptr @server, i64 4480), align 8 - %tobool33.not = icmp eq ptr %8, null + %7 = load ptr, ptr getelementptr inbounds (i8, ptr @server, i64 4480), align 8 + %tobool33.not = icmp eq ptr %7, null br i1 %tobool33.not, label %do.body42, label %lor.lhs.false34 lor.lhs.false34: ; preds = %if.end32 - %offset = getelementptr inbounds i8, ptr %8, i64 32 - %9 = load i64, ptr %offset, align 8 - %cmp35 = icmp slt i64 %psync_offset, %9 + %offset = getelementptr inbounds i8, ptr %7, i64 32 + %8 = load i64, ptr %offset, align 8 + %cmp35 = icmp slt i64 %psync_offset, %8 br i1 %cmp35, label %do.body42, label %lor.lhs.false37 lor.lhs.false37: ; preds = %lor.lhs.false34 - %histlen = getelementptr inbounds i8, ptr %8, i64 24 - %10 = load i64, ptr %histlen, align 8 - %add = add nsw i64 %10, %9 + %histlen = getelementptr inbounds i8, ptr %7, i64 24 + %9 = load i64, ptr %histlen, align 8 + %add = add nsw i64 %9, %8 %cmp39 = icmp sgt i64 %psync_offset, %add br i1 %cmp39, label %do.body42, label %if.end60 do.body42: ; preds = %if.end32, %lor.lhs.false34, %lor.lhs.false37 - %11 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 3696), align 8 - %cmp43 = icmp sgt i32 %11, 2 + %10 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 3696), align 8 + %cmp43 = icmp sgt i32 %10, 2 br i1 %cmp43, label %do.end48, label %if.end46 if.end46: ; preds = %do.body42 @@ -2247,10 +2239,10 @@ if.end46: ; preds = %do.body42 br label %do.end48 do.end48: ; preds = %do.body42, %if.end46 - %12 = phi i32 [ %11, %do.body42 ], [ %.pre, %if.end46 ] - %13 = load i64, ptr getelementptr inbounds (i8, ptr @server, i64 4440), align 8 - %cmp49 = icmp sle i64 %psync_offset, %13 - %cmp53 = icmp sgt i32 %12, 3 + %11 = phi i32 [ %10, %do.body42 ], [ %.pre, %if.end46 ] + %12 = load i64, ptr getelementptr inbounds (i8, ptr @server, i64 4440), align 8 + %cmp49 = icmp sle i64 %psync_offset, %12 + %cmp53 = icmp sgt i32 %11, 3 %or.cond28 = select i1 %cmp49, i1 true, i1 %cmp53 br i1 %or.cond28, label %return, label %if.end56 @@ -2261,8 +2253,8 @@ if.end56: ; preds = %do.end48 if.end60: ; preds = %lor.lhs.false37 %flags = getelementptr inbounds i8, ptr %c, i64 8 - %14 = load i64, ptr %flags, align 8 - %or = or i64 %14, 1 + %13 = load i64, ptr %flags, align 8 + %or = or i64 %13, 1 store i64 %or, ptr %flags, align 8 %replstate = getelementptr inbounds i8, ptr %c, i64 260 store i32 9, ptr %replstate, align 4 @@ -2271,11 +2263,11 @@ if.end60: ; preds = %lor.lhs.false37 store i64 %atomic-load, ptr %repl_ack_time, align 8 %repl_start_cmd_stream_on_ack = getelementptr inbounds i8, ptr %c, i64 264 store i32 0, ptr %repl_start_cmd_stream_on_ack, align 8 - %15 = load ptr, ptr getelementptr inbounds (i8, ptr @server, i64 1464), align 8 - %call61 = tail call ptr @listAddNodeTail(ptr noundef %15, ptr noundef nonnull %c) #22 + %14 = load ptr, ptr getelementptr inbounds (i8, ptr @server, i64 1464), align 8 + %call61 = tail call ptr @listAddNodeTail(ptr noundef %14, ptr noundef nonnull %c) #22 %slave_capa = getelementptr inbounds i8, ptr %c, i64 416 - %16 = load i32, ptr %slave_capa, align 8 - %and = and i32 %16, 2 + %15 = load i32, ptr %slave_capa, align 8 + %and = and i32 %15, 2 %tobool62.not = icmp eq i32 %and, 0 br i1 %tobool62.not, label %if.else65, label %if.then63 @@ -2290,12 +2282,12 @@ if.else65: ; preds = %if.end60 if.end68: ; preds = %if.else65, %if.then63 %buflen.0 = phi i32 [ %call64, %if.then63 ], [ 11, %if.else65 ] %conn = getelementptr inbounds i8, ptr %c, i64 16 - %17 = load ptr, ptr %conn, align 8 + %16 = load ptr, ptr %conn, align 8 %conv70 = sext i32 %buflen.0 to i64 - %18 = load ptr, ptr %17, align 8 - %write.i = getelementptr inbounds i8, ptr %18, i64 128 - %19 = load ptr, ptr %write.i, align 8 - %call.i = call i32 %19(ptr noundef nonnull %17, ptr noundef nonnull %buf, i64 noundef %conv70) #22 + %17 = load ptr, ptr %16, align 8 + %write.i = getelementptr inbounds i8, ptr %17, i64 128 + %18 = load ptr, ptr %write.i, align 8 + %call.i = call i32 %18(ptr noundef nonnull %16, ptr noundef nonnull %buf, i64 noundef %conv70) #22 %cmp72.not = icmp eq i32 %call.i, %buflen.0 br i1 %cmp72.not, label %if.end75, label %if.then74 @@ -2305,8 +2297,8 @@ if.then74: ; preds = %if.end68 if.end75: ; preds = %if.end68 %call76 = call i64 @addReplyReplicationBacklog(ptr noundef nonnull %c, i64 noundef %psync_offset) - %20 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 3696), align 8 - %cmp78 = icmp sgt i32 %20, 2 + %19 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 3696), align 8 + %cmp78 = icmp sgt i32 %19, 2 br i1 %cmp78, label %do.end83, label %if.end81 if.end81: ; preds = %if.end75 @@ -2316,16 +2308,16 @@ if.end81: ; preds = %if.end75 do.end83: ; preds = %if.end75, %if.end81 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %li.i) - %21 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 4512), align 8 - %tobool.not.i = icmp eq i32 %21, 0 - %22 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 4516), align 4 - %tobool1.not.i = icmp eq i32 %22, 0 + %20 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 4512), align 8 + %tobool.not.i = icmp eq i32 %20, 0 + %21 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 4516), align 4 + %tobool1.not.i = icmp eq i32 %21, 0 %or.cond.i = select i1 %tobool.not.i, i1 true, i1 %tobool1.not.i br i1 %or.cond.i, label %refreshGoodSlavesCount.exit, label %if.end.i if.end.i: ; preds = %do.end83 - %23 = load ptr, ptr getelementptr inbounds (i8, ptr @server, i64 1464), align 8 - call void @listRewind(ptr noundef %23, ptr noundef nonnull %li.i) #22 + %22 = load ptr, ptr getelementptr inbounds (i8, ptr @server, i64 1464), align 8 + call void @listRewind(ptr noundef %22, ptr noundef nonnull %li.i) #22 %call3.i = call ptr @listNext(ptr noundef nonnull %li.i) #22 %tobool2.not4.i = icmp eq ptr %call3.i, null br i1 %tobool2.not4.i, label %while.end.i, label %while.body.i @@ -2334,19 +2326,19 @@ while.body.i: ; preds = %if.end.i, %if.end6. %call6.i = phi ptr [ %call.i29, %if.end6.i ], [ %call3.i, %if.end.i ] %good.05.i = phi i32 [ %good.1.i, %if.end6.i ], [ 0, %if.end.i ] %value.i = getelementptr inbounds i8, ptr %call6.i, i64 16 - %24 = load ptr, ptr %value.i, align 8 + %23 = load ptr, ptr %value.i, align 8 %atomic-load.i = load atomic i64, ptr getelementptr inbounds (i8, ptr @server, i64 5072) seq_cst, align 8 - %replstate.i = getelementptr inbounds i8, ptr %24, i64 260 - %25 = load i32, ptr %replstate.i, align 4 - %cmp.i = icmp eq i32 %25, 9 + %replstate.i = getelementptr inbounds i8, ptr %23, i64 260 + %24 = load i32, ptr %replstate.i, align 4 + %cmp.i = icmp eq i32 %24, 9 br i1 %cmp.i, label %land.lhs.true.i, label %if.end6.i land.lhs.true.i: ; preds = %while.body.i - %repl_ack_time.i = getelementptr inbounds i8, ptr %24, i64 336 - %26 = load i64, ptr %repl_ack_time.i, align 8 - %sub.i = sub nsw i64 %atomic-load.i, %26 - %27 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 4516), align 4 - %conv.i = sext i32 %27 to i64 + %repl_ack_time.i = getelementptr inbounds i8, ptr %23, i64 336 + %25 = load i64, ptr %repl_ack_time.i, align 8 + %sub.i = sub nsw i64 %atomic-load.i, %25 + %26 = load i32, ptr getelementptr inbounds (i8, ptr @server, i64 4516), align 4 + %conv.i = sext i32 %26 to i64 %cmp3.not.i = icmp sle i64 %sub.i, %conv.i %inc.i = zext i1 %cmp3.not.i to i32 %spec.select.i = add nsw i32 %good.05.i, %inc.i diff --git a/bench/slurm/optimized/env.ll b/bench/slurm/optimized/env.ll index 85edcfa7100..677c0b4ec88 100644 --- a/bench/slurm/optimized/env.ll +++ b/bench/slurm/optimized/env.ll @@ -5349,8 +5349,7 @@ _bracket_cnt.exit: ; preds = %249 br i1 %264, label %.loopexit, label %265 265: ; preds = %260 - %strlen = call i64 @strlen(ptr nonnull dereferenceable(1) %.pre115.pre) - %endptr = getelementptr inbounds i8, ptr %.pre115.pre, i64 %strlen + %endptr = getelementptr inbounds i8, ptr %.pre115.pre, i64 %261 store i16 10, ptr %endptr, align 1 %266 = load ptr, ptr %9, align 8 %267 = call ptr @strcat(ptr noundef nonnull dereferenceable(1) %266, ptr noundef nonnull dereferenceable(1) %259) #18 @@ -5609,8 +5608,7 @@ _strip_cr_nl.exit19: ; preds = %.lr.ph.i15, %80, %7 br i1 %84, label %.loopexit, label %85 85: ; preds = %_strip_cr_nl.exit19 - %strlen = call i64 @strlen(ptr nonnull dereferenceable(1) %61) - %endptr = getelementptr inbounds i8, ptr %61, i64 %strlen + %endptr = getelementptr inbounds i8, ptr %61, i64 %81 store i16 10, ptr %endptr, align 1 %86 = call ptr @strcat(ptr noundef nonnull dereferenceable(1) %61, ptr noundef nonnull dereferenceable(1) %73) #18 br label %.preheader.backedge diff --git a/bench/slurm/optimized/xstring.ll b/bench/slurm/optimized/xstring.ll index 4e2f86eca96..0772e04e4fa 100644 --- a/bench/slurm/optimized/xstring.ll +++ b/bench/slurm/optimized/xstring.ll @@ -73,58 +73,57 @@ define void @_xstrcat(ptr noundef %0, ptr noundef readonly %1) #0 { ; Function Attrs: nounwind uwtable define void @_xstrcatat(ptr noundef %0, ptr nocapture noundef %1, ptr noundef readonly %2) #0 { %.not = icmp eq ptr %2, null - br i1 %.not, label %27, label %4 + br i1 %.not, label %26, label %4 4: ; preds = %3 %5 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %2) #21 %6 = load ptr, ptr %0, align 8 %.not28 = icmp eq ptr %6, null - br i1 %.not28, label %xstrdup.exit, label %10 + br i1 %.not28, label %xstrdup.exit, label %9 xstrdup.exit: ; preds = %4 - %7 = tail call i64 @strlen(ptr noundef nonnull readonly dereferenceable(1) %2) #21 - %8 = add i64 %7, 1 - %9 = tail call ptr @slurm_xcalloc(i64 noundef 1, i64 noundef %8, i1 noundef zeroext true, i1 noundef zeroext false, ptr noundef nonnull @.str.13, i32 noundef 490, ptr noundef nonnull @__func__.xstrdup) #22 - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %9, ptr nonnull readonly align 1 %2, i64 %8, i1 false) - store ptr %9, ptr %0, align 8 + %7 = add i64 %5, 1 + %8 = tail call ptr @slurm_xcalloc(i64 noundef 1, i64 noundef %7, i1 noundef zeroext true, i1 noundef zeroext false, ptr noundef nonnull @.str.13, i32 noundef 490, ptr noundef nonnull @__func__.xstrdup) #22 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %8, ptr nonnull readonly align 1 %2, i64 %7, i1 false) + store ptr %8, ptr %0, align 8 br label %.sink.split -10: ; preds = %4 - %11 = load ptr, ptr %1, align 8 - %.not29 = icmp eq ptr %11, null - br i1 %.not29, label %12, label %15 - -12: ; preds = %10 - %13 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6) #21 - %14 = getelementptr inbounds i8, ptr %6, i64 %13 - store ptr %14, ptr %1, align 8 - br label %19 - -15: ; preds = %10 - %16 = ptrtoint ptr %11 to i64 - %17 = ptrtoint ptr %6 to i64 - %18 = sub i64 %16, %17 - br label %19 - -19: ; preds = %15, %12 - %.0 = phi i64 [ %18, %15 ], [ %13, %12 ] - %20 = trunc i64 %.0 to i32 - %21 = trunc i64 %5 to i32 - tail call fastcc void @_makespace(ptr noundef nonnull %0, i32 noundef %20, i32 noundef %21) - %22 = load ptr, ptr %0, align 8 - %23 = getelementptr inbounds i8, ptr %22, i64 %.0 - tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %23, ptr nonnull align 1 %2, i64 %5, i1 false) - %24 = load ptr, ptr %0, align 8 - %25 = getelementptr inbounds i8, ptr %24, i64 %.0 +9: ; preds = %4 + %10 = load ptr, ptr %1, align 8 + %.not29 = icmp eq ptr %10, null + br i1 %.not29, label %11, label %14 + +11: ; preds = %9 + %12 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %6) #21 + %13 = getelementptr inbounds i8, ptr %6, i64 %12 + store ptr %13, ptr %1, align 8 + br label %18 + +14: ; preds = %9 + %15 = ptrtoint ptr %10 to i64 + %16 = ptrtoint ptr %6 to i64 + %17 = sub i64 %15, %16 + br label %18 + +18: ; preds = %14, %11 + %.0 = phi i64 [ %17, %14 ], [ %12, %11 ] + %19 = trunc i64 %.0 to i32 + %20 = trunc i64 %5 to i32 + tail call fastcc void @_makespace(ptr noundef nonnull %0, i32 noundef %19, i32 noundef %20) + %21 = load ptr, ptr %0, align 8 + %22 = getelementptr inbounds i8, ptr %21, i64 %.0 + tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %22, ptr nonnull align 1 %2, i64 %5, i1 false) + %23 = load ptr, ptr %0, align 8 + %24 = getelementptr inbounds i8, ptr %23, i64 %.0 br label %.sink.split -.sink.split: ; preds = %xstrdup.exit, %19 - %.sink30 = phi ptr [ %25, %19 ], [ %9, %xstrdup.exit ] - %26 = getelementptr inbounds i8, ptr %.sink30, i64 %5 - store ptr %26, ptr %1, align 8 - br label %27 +.sink.split: ; preds = %xstrdup.exit, %18 + %.sink30 = phi ptr [ %24, %18 ], [ %8, %xstrdup.exit ] + %25 = getelementptr inbounds i8, ptr %.sink30, i64 %5 + store ptr %25, ptr %1, align 8 + br label %26 -27: ; preds = %.sink.split, %3 +26: ; preds = %.sink.split, %3 ret void } diff --git a/bench/zxing/optimized/HRI.cpp.ll b/bench/zxing/optimized/HRI.cpp.ll index 8a6cbad4e0c..824c5c38e59 100644 --- a/bench/zxing/optimized/HRI.cpp.ll +++ b/bench/zxing/optimized/HRI.cpp.ll @@ -309,7 +309,7 @@ define linkonce_odr noundef i32 @_ZNK5ZXing6AiInfo6aiSizeEv(ptr noundef nonnull %7 = sext i8 %6 to i32 %8 = tail call ptr @memchr(ptr nonnull dereferenceable(1) @.str.1, i32 %7, i64 8) %9 = icmp eq ptr %8, null - br i1 %9, label %10, label %22 + br i1 %9, label %10, label %21 10: ; preds = %4, %1 %11 = tail call noundef i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #12 @@ -319,21 +319,20 @@ define linkonce_odr noundef i32 @_ZNK5ZXing6AiInfo6aiSizeEv(ptr noundef nonnull 13: ; preds = %10 %14 = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(3) %0, ptr noundef nonnull dereferenceable(3) @.str.2, i64 3) %15 = icmp eq i32 %14, 0 - br i1 %15, label %22, label %16 + br i1 %15, label %21, label %16 16: ; preds = %13 %17 = tail call i32 @bcmp(ptr noundef nonnull dereferenceable(3) %0, ptr noundef nonnull dereferenceable(3) @.str.3, i64 3) %18 = icmp eq i32 %17, 0 - br i1 %18, label %22, label %19 + br i1 %18, label %21, label %19 19: ; preds = %16, %10 - %20 = tail call i64 @strlen(ptr noundef nonnull dereferenceable(1) %0) #14 - %21 = trunc i64 %20 to i32 - br label %22 + %20 = trunc i64 %11 to i32 + br label %21 -22: ; preds = %19, %16, %13, %4 - %23 = phi i32 [ %21, %19 ], [ 4, %4 ], [ 4, %13 ], [ 4, %16 ] - ret i32 %23 +21: ; preds = %19, %16, %13, %4 + %22 = phi i32 [ %20, %19 ], [ 4, %4 ], [ 4, %13 ], [ 4, %16 ] + ret i32 %22 } ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) @@ -486,7 +485,6 @@ attributes #10 = { nounwind } attributes #11 = { optsize } attributes #12 = { nounwind optsize } attributes #13 = { builtin nounwind optsize } -attributes #14 = { nounwind optsize willreturn memory(read) } !llvm.module.flags = !{!0, !1, !2} diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index 820278fb20a..04c018d6790 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/110929 # Please rebase manually # git fetch origin