diff --git a/bench/abc/optimized/giaUtil.c.ll b/bench/abc/optimized/giaUtil.c.ll index 19dad7fe26c..474a0d57be8 100644 --- a/bench/abc/optimized/giaUtil.c.ll +++ b/bench/abc/optimized/giaUtil.c.ll @@ -14304,61 +14304,57 @@ Vec_StrPush.exit: ; preds = %.lr.ph.i.preheader, define void @Gia_ManDumpSuppFile(ptr nocapture noundef readonly %0, ptr noundef %1) local_unnamed_addr #15 { %3 = tail call noalias ptr @fopen(ptr noundef %1, ptr noundef nonnull @.str.46) %4 = icmp eq ptr %3, null - br i1 %4, label %5, label %7 + br i1 %4, label %5, label %.lr.ph.i 5: ; preds = %2 %6 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.47, ptr noundef %1) - br label %30 - -7: ; preds = %2 - %8 = getelementptr inbounds i8, ptr %0, i64 4 - %9 = load i32, ptr %8, align 4 - %10 = icmp sgt i32 %9, 0 - %11 = getelementptr i8, ptr %0, i64 8 - %12 = load ptr, ptr %11, align 8 - br i1 %10, label %.lr.ph.i, label %Vec_StrCountEntry.exit22 + br label %29 -.lr.ph.i: ; preds = %7 - %wide.trip.count.i = zext nneg i32 %9 to i64 - br label %13 +.lr.ph.i: ; preds = %2 + %7 = getelementptr inbounds i8, ptr %0, i64 4 + %8 = load i32, ptr %7, align 4 + %9 = icmp sgt i32 %8, 0 + tail call void @llvm.assume(i1 %9) + %10 = getelementptr i8, ptr %0, i64 8 + %11 = load ptr, ptr %10, align 8 + %wide.trip.count.i = zext nneg i32 %8 to i64 + br label %12 -13: ; preds = %13, %.lr.ph.i - %indvars.iv.i = phi i64 [ 0, %.lr.ph.i ], [ %indvars.iv.next.i, %13 ] - %.09.i = phi i32 [ 0, %.lr.ph.i ], [ %18, %13 ] - %14 = getelementptr inbounds i8, ptr %12, i64 %indvars.iv.i - %15 = load i8, ptr %14, align 1 - %16 = icmp eq i8 %15, 10 - %17 = zext i1 %16 to i32 - %18 = add nuw nsw i32 %.09.i, %17 +12: ; preds = %12, %.lr.ph.i + %indvars.iv.i = phi i64 [ 0, %.lr.ph.i ], [ %indvars.iv.next.i, %12 ] + %.09.i = phi i32 [ 0, %.lr.ph.i ], [ %17, %12 ] + %13 = getelementptr inbounds i8, ptr %11, i64 %indvars.iv.i + %14 = load i8, ptr %13, align 1 + %15 = icmp eq i8 %14, 10 + %16 = zext i1 %15 to i32 + %17 = add nuw nsw i32 %.09.i, %16 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i - br i1 %exitcond.not.i, label %.lr.ph.i16, label %13, !llvm.loop !141 - -.lr.ph.i16: ; preds = %13, %.lr.ph.i16 - %indvars.iv.i18 = phi i64 [ %indvars.iv.next.i20, %.lr.ph.i16 ], [ 0, %13 ] - %.09.i19 = phi i32 [ %23, %.lr.ph.i16 ], [ 0, %13 ] - %19 = getelementptr inbounds i8, ptr %12, i64 %indvars.iv.i18 - %20 = load i8, ptr %19, align 1 - %21 = icmp eq i8 %20, 10 - %22 = zext i1 %21 to i32 - %23 = add nuw nsw i32 %.09.i19, %22 + br i1 %exitcond.not.i, label %Vec_StrCountEntry.exit, label %12, !llvm.loop !141 + +Vec_StrCountEntry.exit: ; preds = %12, %Vec_StrCountEntry.exit + %indvars.iv.i18 = phi i64 [ %indvars.iv.next.i20, %Vec_StrCountEntry.exit ], [ 0, %12 ] + %.09.i19 = phi i32 [ %22, %Vec_StrCountEntry.exit ], [ 0, %12 ] + %18 = getelementptr inbounds i8, ptr %11, i64 %indvars.iv.i18 + %19 = load i8, ptr %18, align 1 + %20 = icmp eq i8 %19, 10 + %21 = zext i1 %20 to i32 + %22 = add nuw nsw i32 %.09.i19, %21 %indvars.iv.next.i20 = add nuw nsw i64 %indvars.iv.i18, 1 %exitcond.not.i21 = icmp eq i64 %indvars.iv.next.i20, %wide.trip.count.i - br i1 %exitcond.not.i21, label %Vec_StrCountEntry.exit22, label %.lr.ph.i16, !llvm.loop !141 - -Vec_StrCountEntry.exit22: ; preds = %.lr.ph.i16, %7 - %.0.lcssa.i24 = phi i32 [ 0, %7 ], [ %18, %.lr.ph.i16 ] - %.0.lcssa.i15 = phi i32 [ 0, %7 ], [ %23, %.lr.ph.i16 ] - %24 = sdiv i32 %9, %.0.lcssa.i15 - %25 = add nsw i32 %24, -1 - %26 = add nsw i32 %9, -1 - %27 = sext i32 %26 to i64 - %28 = tail call i64 @fwrite(ptr noundef %12, i64 noundef 1, i64 noundef %27, ptr noundef nonnull %3) - %29 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.61, ptr noundef %1, i32 noundef %.0.lcssa.i24, i32 noundef %25) - br label %30 + br i1 %exitcond.not.i21, label %Vec_StrCountEntry.exit22, label %Vec_StrCountEntry.exit, !llvm.loop !141 + +Vec_StrCountEntry.exit22: ; preds = %Vec_StrCountEntry.exit + %23 = udiv i32 %8, %22 + %24 = add nsw i32 %23, -1 + %25 = add nsw i32 %8, -1 + %26 = zext nneg i32 %25 to i64 + %27 = tail call i64 @fwrite(ptr noundef nonnull %11, i64 noundef 1, i64 noundef %26, ptr noundef nonnull %3) + %28 = tail call i32 (ptr, ...) @printf(ptr noundef nonnull dereferenceable(1) @.str.61, ptr noundef %1, i32 noundef %17, i32 noundef %24) + br label %29 -30: ; preds = %Vec_StrCountEntry.exit22, %5 - %31 = tail call i32 @fclose(ptr noundef %3) +29: ; preds = %Vec_StrCountEntry.exit22, %5 + %30 = tail call i32 @fclose(ptr noundef %3) ret void } diff --git a/bench/assimp/optimized/o3dgcArithmeticCodec.cpp.ll b/bench/assimp/optimized/o3dgcArithmeticCodec.cpp.ll index 8841234965c..ebb72bd7feb 100644 --- a/bench/assimp/optimized/o3dgcArithmeticCodec.cpp.ll +++ b/bench/assimp/optimized/o3dgcArithmeticCodec.cpp.ll @@ -946,8 +946,8 @@ if.end54: ; preds = %do.body.i, %if.end4 ret i32 %s.2 } -; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define hidden void @_ZN5o3dgc16Arithmetic_Codec6encodeEjRNS_19Adaptive_Data_ModelE(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, i32 noundef %data, ptr nocapture noundef nonnull align 8 dereferenceable(52) %M) local_unnamed_addr #0 align 2 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: write) uwtable +define hidden void @_ZN5o3dgc16Arithmetic_Codec6encodeEjRNS_19Adaptive_Data_ModelE(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, i32 noundef %data, ptr nocapture noundef nonnull align 8 dereferenceable(52) %M) local_unnamed_addr #3 align 2 { entry: %base = getelementptr inbounds i8, ptr %this, i64 24 %0 = load i32, ptr %base, align 8 @@ -1078,11 +1078,12 @@ if.then.i: ; preds = %if.then31 store i32 0, ptr %total_count.i, align 8 %data_symbols.i = getelementptr inbounds i8, ptr %M, i64 36 %21 = load i32, ptr %data_symbols.i, align 4 - %cmp322.not.i = icmp eq i32 %21, 0 - br i1 %cmp322.not.i, label %_ZN5o3dgc19Adaptive_Data_Model6updateEb.exit, label %for.body.i18 + %cmp322.not.i = icmp ne i32 %21, 0 + tail call void @llvm.assume(i1 %cmp322.not.i) + br label %for.body.i18 -for.body.i18: ; preds = %if.then.i, %for.body.i18 - %indvars.iv.i = phi i64 [ %indvars.iv.next.i, %for.body.i18 ], [ 0, %if.then.i ] +for.body.i18: ; preds = %for.body.i18, %if.then.i + %indvars.iv.i = phi i64 [ 0, %if.then.i ], [ %indvars.iv.next.i, %for.body.i18 ] %22 = load ptr, ptr %symbol_count, align 8 %arrayidx.i = getelementptr inbounds i32, ptr %22, i64 %indvars.iv.i %23 = load i32, ptr %arrayidx.i, align 4 @@ -1129,8 +1130,8 @@ _ZN5o3dgc19Adaptive_Data_Model6updateEb.exit.loopexit: ; preds = %for.body16.i %35 = add i32 %34, 48 br label %_ZN5o3dgc19Adaptive_Data_Model6updateEb.exit -_ZN5o3dgc19Adaptive_Data_Model6updateEb.exit: ; preds = %if.then.i, %_ZN5o3dgc19Adaptive_Data_Model6updateEb.exit.loopexit, %if.end.i - %add70.i = phi i32 [ %35, %_ZN5o3dgc19Adaptive_Data_Model6updateEb.exit.loopexit ], [ 48, %if.end.i ], [ 48, %if.then.i ] +_ZN5o3dgc19Adaptive_Data_Model6updateEb.exit: ; preds = %_ZN5o3dgc19Adaptive_Data_Model6updateEb.exit.loopexit, %if.end.i + %add70.i = phi i32 [ %35, %_ZN5o3dgc19Adaptive_Data_Model6updateEb.exit.loopexit ], [ 48, %if.end.i ] %36 = load i32, ptr %update_cycle.i, align 4 %mul66.i = mul i32 %36, 5 %shr67.i = lshr i32 %mul66.i, 2 @@ -1143,8 +1144,8 @@ if.end32: ; preds = %_ZN5o3dgc19Adaptive ret void } -; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define hidden void @_ZN5o3dgc19Adaptive_Data_Model6updateEb(ptr nocapture noundef nonnull align 8 dereferenceable(52) %this, i1 noundef zeroext %from_encoder) local_unnamed_addr #0 align 2 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: write) uwtable +define hidden void @_ZN5o3dgc19Adaptive_Data_Model6updateEb(ptr nocapture noundef nonnull align 8 dereferenceable(52) %this, i1 noundef zeroext %from_encoder) local_unnamed_addr #3 align 2 { entry: %update_cycle = getelementptr inbounds i8, ptr %this, i64 28 %0 = load i32, ptr %update_cycle, align 4 @@ -1159,15 +1160,13 @@ if.then: ; preds = %entry store i32 0, ptr %total_count, align 8 %data_symbols = getelementptr inbounds i8, ptr %this, i64 36 %2 = load i32, ptr %data_symbols, align 4 - %cmp322.not = icmp eq i32 %2, 0 - br i1 %cmp322.not, label %if.end, label %for.body.lr.ph - -for.body.lr.ph: ; preds = %if.then + %cmp322.not = icmp ne i32 %2, 0 + tail call void @llvm.assume(i1 %cmp322.not) %symbol_count = getelementptr inbounds i8, ptr %this, i64 8 br label %for.body -for.body: ; preds = %for.body.lr.ph, %for.body - %indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %for.body ] +for.body: ; preds = %if.then, %for.body + %indvars.iv = phi i64 [ 0, %if.then ], [ %indvars.iv.next, %for.body ] %3 = load ptr, ptr %symbol_count, align 8 %arrayidx = getelementptr inbounds i32, ptr %3, i64 %indvars.iv %4 = load i32, ptr %arrayidx, align 4 @@ -1183,8 +1182,8 @@ for.body: ; preds = %for.body.lr.ph, %fo %cmp3 = icmp ult i64 %indvars.iv.next, %7 br i1 %cmp3, label %for.body, label %if.end, !llvm.loop !10 -if.end: ; preds = %for.body, %if.then, %entry - %8 = phi i32 [ 0, %if.then ], [ %add, %entry ], [ %add9, %for.body ] +if.end: ; preds = %for.body, %entry + %8 = phi i32 [ %add, %entry ], [ %add9, %for.body ] %div = udiv i32 -2147483648, %8 br i1 %from_encoder, label %if.then12, label %lor.lhs.false @@ -1326,8 +1325,8 @@ if.end64: ; preds = %while.body56, %for. ret void } -; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define hidden noundef i32 @_ZN5o3dgc16Arithmetic_Codec6decodeERNS_19Adaptive_Data_ModelE(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, ptr nocapture noundef nonnull align 8 dereferenceable(52) %M) local_unnamed_addr #0 align 2 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: write) uwtable +define hidden noundef i32 @_ZN5o3dgc16Arithmetic_Codec6decodeERNS_19Adaptive_Data_ModelE(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, ptr nocapture noundef nonnull align 8 dereferenceable(52) %M) local_unnamed_addr #3 align 2 { entry: %length = getelementptr inbounds i8, ptr %this, i64 32 %0 = load i32, ptr %length, align 8 @@ -1482,7 +1481,7 @@ if.end59: ; preds = %if.then58, %if.end5 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable -define hidden void @_ZN5o3dgc16Arithmetic_CodecC2Ev(ptr nocapture noundef nonnull writeonly align 8 dereferenceable(44) %this) unnamed_addr #3 align 2 { +define hidden void @_ZN5o3dgc16Arithmetic_CodecC2Ev(ptr nocapture noundef nonnull writeonly align 8 dereferenceable(44) %this) unnamed_addr #4 align 2 { entry: %buffer_size = getelementptr inbounds i8, ptr %this, i64 36 store i32 0, ptr %buffer_size, align 4 @@ -1493,7 +1492,7 @@ entry: } ; Function Attrs: mustprogress uwtable -define hidden void @_ZN5o3dgc16Arithmetic_CodecC2EjPh(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, i32 noundef %max_code_bytes, ptr noundef %user_buffer) unnamed_addr #4 align 2 { +define hidden void @_ZN5o3dgc16Arithmetic_CodecC2EjPh(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, i32 noundef %max_code_bytes, ptr noundef %user_buffer) unnamed_addr #5 align 2 { entry: %buffer_size = getelementptr inbounds i8, ptr %this, i64 36 store i32 0, ptr %buffer_size, align 4 @@ -1505,13 +1504,13 @@ entry: } ; Function Attrs: mustprogress uwtable -define hidden void @_ZN5o3dgc16Arithmetic_Codec10set_bufferEjPh(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, i32 noundef %max_code_bytes, ptr noundef %user_buffer) local_unnamed_addr #4 align 2 { +define hidden void @_ZN5o3dgc16Arithmetic_Codec10set_bufferEjPh(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, i32 noundef %max_code_bytes, ptr noundef %user_buffer) local_unnamed_addr #5 align 2 { entry: %tobool.not = icmp eq i32 %max_code_bytes, 0 br i1 %tobool.not, label %if.then, label %if.end if.then: ; preds = %entry - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str) #16 unreachable if.end: ; preds = %entry @@ -1521,7 +1520,7 @@ if.end: ; preds = %entry br i1 %cmp.not, label %if.end3, label %if.then2 if.then2: ; preds = %if.end - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.1) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.1) #16 unreachable if.end3: ; preds = %if.end @@ -1538,7 +1537,7 @@ if.then5: ; preds = %if.end3 br i1 %isnull, label %delete.end, label %delete.notnull delete.notnull: ; preds = %if.then5 - tail call void @_ZdaPv(ptr noundef nonnull %1) #15 + tail call void @_ZdaPv(ptr noundef nonnull %1) #17 br label %delete.end delete.end: ; preds = %delete.notnull, %if.then5 @@ -1558,7 +1557,7 @@ if.end11: ; preds = %if.end7 br i1 %isnull14, label %delete.end16, label %delete.notnull15 delete.notnull15: ; preds = %if.end11 - tail call void @_ZdaPv(ptr noundef nonnull %3) #15 + tail call void @_ZdaPv(ptr noundef nonnull %3) #17 %.pre = load i32, ptr %buffer_size8, align 4 br label %delete.end16 @@ -1566,7 +1565,7 @@ delete.end16: ; preds = %delete.notnull15, % %4 = phi i32 [ %.pre, %delete.notnull15 ], [ %max_code_bytes, %if.end11 ] %add = add i32 %4, 16 %conv = zext i32 %add to i64 - %call = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %conv) #16 + %call = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %conv) #18 store ptr %call, ptr %new_buffer13, align 8 store ptr %call, ptr %this, align 8 br label %return @@ -1576,7 +1575,7 @@ return: ; preds = %if.end7, %delete.en } ; Function Attrs: mustprogress nounwind uwtable -define hidden void @_ZN5o3dgc16Arithmetic_CodecD2Ev(ptr nocapture noundef nonnull readonly align 8 dereferenceable(44) %this) unnamed_addr #5 align 2 { +define hidden void @_ZN5o3dgc16Arithmetic_CodecD2Ev(ptr nocapture noundef nonnull readonly align 8 dereferenceable(44) %this) unnamed_addr #6 align 2 { entry: %new_buffer = getelementptr inbounds i8, ptr %this, i64 8 %0 = load ptr, ptr %new_buffer, align 8 @@ -1584,7 +1583,7 @@ entry: br i1 %isnull, label %delete.end, label %delete.notnull delete.notnull: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #15 + tail call void @_ZdaPv(ptr noundef nonnull %0) #17 br label %delete.end delete.end: ; preds = %delete.notnull, %entry @@ -1592,27 +1591,27 @@ delete.end: ; preds = %delete.notnull, %en } ; Function Attrs: nobuiltin nounwind -declare void @_ZdaPv(ptr noundef) local_unnamed_addr #6 +declare void @_ZdaPv(ptr noundef) local_unnamed_addr #7 ; Function Attrs: cold mustprogress nofree noreturn nounwind uwtable -define internal fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr nocapture noundef readonly %msg) unnamed_addr #7 { +define internal fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr nocapture noundef readonly %msg) unnamed_addr #8 { entry: %0 = load ptr, ptr @stderr, align 8 - %1 = tail call i64 @fwrite(ptr nonnull @.str.14, i64 31, i64 1, ptr %0) #17 + %1 = tail call i64 @fwrite(ptr nonnull @.str.14, i64 31, i64 1, ptr %0) #19 %2 = load ptr, ptr @stderr, align 8 - %call1 = tail call i32 @fputs(ptr noundef %msg, ptr noundef %2) #17 + %call1 = tail call i32 @fputs(ptr noundef %msg, ptr noundef %2) #19 %3 = load ptr, ptr @stderr, align 8 - %4 = tail call i64 @fwrite(ptr nonnull @.str.15, i64 24, i64 1, ptr %3) #17 + %4 = tail call i64 @fwrite(ptr nonnull @.str.15, i64 24, i64 1, ptr %3) #19 %call3 = tail call i32 @getchar() - tail call void @exit(i32 noundef 1) #18 + tail call void @exit(i32 noundef 1) #20 unreachable } ; Function Attrs: nobuiltin allocsize(0) -declare noundef nonnull ptr @_Znam(i64 noundef) local_unnamed_addr #8 +declare noundef nonnull ptr @_Znam(i64 noundef) local_unnamed_addr #9 ; Function Attrs: mustprogress nofree nounwind uwtable -define hidden void @_ZN5o3dgc16Arithmetic_Codec13start_encoderEv(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this) local_unnamed_addr #9 align 2 { +define hidden void @_ZN5o3dgc16Arithmetic_Codec13start_encoderEv(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this) local_unnamed_addr #10 align 2 { entry: %mode = getelementptr inbounds i8, ptr %this, i64 40 %0 = load i32, ptr %mode, align 8 @@ -1620,7 +1619,7 @@ entry: br i1 %cmp.not, label %if.end, label %if.then if.then: ; preds = %entry - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.2) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.2) #16 unreachable if.end: ; preds = %entry @@ -1630,7 +1629,7 @@ if.end: ; preds = %entry br i1 %cmp2, label %if.then3, label %if.end4 if.then3: ; preds = %if.end - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.3) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.3) #16 unreachable if.end4: ; preds = %if.end @@ -1646,7 +1645,7 @@ if.end4: ; preds = %if.end } ; Function Attrs: mustprogress nofree nounwind uwtable -define hidden void @_ZN5o3dgc16Arithmetic_Codec13start_decoderEv(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this) local_unnamed_addr #9 align 2 { +define hidden void @_ZN5o3dgc16Arithmetic_Codec13start_decoderEv(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this) local_unnamed_addr #10 align 2 { entry: %mode = getelementptr inbounds i8, ptr %this, i64 40 %0 = load i32, ptr %mode, align 8 @@ -1654,7 +1653,7 @@ entry: br i1 %cmp.not, label %if.end, label %if.then if.then: ; preds = %entry - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.4) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.4) #16 unreachable if.end: ; preds = %entry @@ -1664,7 +1663,7 @@ if.end: ; preds = %entry br i1 %cmp2, label %if.then3, label %if.end4 if.then3: ; preds = %if.end - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.3) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.3) #16 unreachable if.end4: ; preds = %if.end @@ -1697,7 +1696,7 @@ if.end4: ; preds = %if.end } ; Function Attrs: mustprogress nofree nounwind uwtable -define hidden void @_ZN5o3dgc16Arithmetic_Codec14read_from_fileEP8_IO_FILE(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, ptr nocapture noundef %code_file) local_unnamed_addr #9 align 2 { +define hidden void @_ZN5o3dgc16Arithmetic_Codec14read_from_fileEP8_IO_FILE(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, ptr nocapture noundef %code_file) local_unnamed_addr #10 align 2 { entry: br label %do.body @@ -1709,7 +1708,7 @@ do.body: ; preds = %if.end, %entry br i1 %cmp, label %if.then, label %if.end if.then: ; preds = %do.body - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.5) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.5) #16 unreachable if.end: ; preds = %do.body @@ -1728,7 +1727,7 @@ do.end: ; preds = %if.end br i1 %cmp3, label %if.then4, label %if.end5 if.then4: ; preds = %do.end - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.6) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.6) #16 unreachable if.end5: ; preds = %do.end @@ -1739,7 +1738,7 @@ if.end5: ; preds = %do.end br i1 %cmp8.not, label %if.end10, label %if.then9 if.then9: ; preds = %if.end5 - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.5) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.5) #16 unreachable if.end10: ; preds = %if.end5 @@ -1749,7 +1748,7 @@ if.end10: ; preds = %if.end5 br i1 %cmp.not.i, label %if.end.i, label %if.then.i if.then.i: ; preds = %if.end10 - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.4) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.4) #16 unreachable if.end.i: ; preds = %if.end10 @@ -1758,7 +1757,7 @@ if.end.i: ; preds = %if.end10 br i1 %cmp2.i, label %if.then3.i, label %_ZN5o3dgc16Arithmetic_Codec13start_decoderEv.exit if.then3.i: ; preds = %if.end.i - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.3) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.3) #16 unreachable _ZN5o3dgc16Arithmetic_Codec13start_decoderEv.exit: ; preds = %if.end.i @@ -1791,13 +1790,13 @@ _ZN5o3dgc16Arithmetic_Codec13start_decoderEv.exit: ; preds = %if.end.i } ; Function Attrs: nofree nounwind -declare noundef i32 @getc(ptr nocapture noundef) local_unnamed_addr #10 +declare noundef i32 @getc(ptr nocapture noundef) local_unnamed_addr #11 ; Function Attrs: nofree nounwind -declare noundef i64 @fread(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) local_unnamed_addr #10 +declare noundef i64 @fread(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) local_unnamed_addr #11 ; Function Attrs: mustprogress nofree nounwind uwtable -define hidden noundef i32 @_ZN5o3dgc16Arithmetic_Codec12stop_encoderEv(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this) local_unnamed_addr #9 align 2 { +define hidden noundef i32 @_ZN5o3dgc16Arithmetic_Codec12stop_encoderEv(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this) local_unnamed_addr #10 align 2 { entry: %mode = getelementptr inbounds i8, ptr %this, i64 40 %0 = load i32, ptr %mode, align 8 @@ -1805,7 +1804,7 @@ entry: br i1 %cmp.not, label %if.end, label %if.then if.then: ; preds = %entry - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.7) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.7) #16 unreachable if.end: ; preds = %entry @@ -1882,7 +1881,7 @@ _ZN5o3dgc16Arithmetic_Codec19renorm_enc_intervalEv.exit: ; preds = %do.body.i br i1 %cmp15, label %if.then16, label %if.end17 if.then16: ; preds = %_ZN5o3dgc16Arithmetic_Codec19renorm_enc_intervalEv.exit - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.6) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.6) #16 unreachable if.end17: ; preds = %_ZN5o3dgc16Arithmetic_Codec19renorm_enc_intervalEv.exit @@ -1890,7 +1889,7 @@ if.end17: ; preds = %_ZN5o3dgc16Arithmet } ; Function Attrs: mustprogress nofree nounwind uwtable -define hidden noundef i32 @_ZN5o3dgc16Arithmetic_Codec13write_to_fileEP8_IO_FILE(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, ptr nocapture noundef %code_file) local_unnamed_addr #9 align 2 { +define hidden noundef i32 @_ZN5o3dgc16Arithmetic_Codec13write_to_fileEP8_IO_FILE(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this, ptr nocapture noundef %code_file) local_unnamed_addr #10 align 2 { entry: %call = tail call noundef i32 @_ZN5o3dgc16Arithmetic_Codec12stop_encoderEv(ptr noundef nonnull align 8 dereferenceable(44) %this) br label %do.body @@ -1907,7 +1906,7 @@ do.body: ; preds = %if.end5, %entry br i1 %cmp3, label %if.then4, label %if.end5 if.then4: ; preds = %do.body - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.8) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.8) #16 unreachable if.end5: ; preds = %do.body @@ -1923,7 +1922,7 @@ do.end: ; preds = %if.end5 br i1 %cmp8.not, label %if.end10, label %if.then9 if.then9: ; preds = %do.end - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.8) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.8) #16 unreachable if.end10: ; preds = %do.end @@ -1932,13 +1931,13 @@ if.end10: ; preds = %do.end } ; Function Attrs: nofree nounwind -declare noundef i32 @putc(i32 noundef, ptr nocapture noundef) local_unnamed_addr #10 +declare noundef i32 @putc(i32 noundef, ptr nocapture noundef) local_unnamed_addr #11 ; Function Attrs: nofree nounwind -declare noundef i64 @fwrite(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) local_unnamed_addr #10 +declare noundef i64 @fwrite(ptr nocapture noundef, i64 noundef, i64 noundef, ptr nocapture noundef) local_unnamed_addr #11 ; Function Attrs: mustprogress nofree nounwind uwtable -define hidden void @_ZN5o3dgc16Arithmetic_Codec12stop_decoderEv(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this) local_unnamed_addr #9 align 2 { +define hidden void @_ZN5o3dgc16Arithmetic_Codec12stop_decoderEv(ptr nocapture noundef nonnull align 8 dereferenceable(44) %this) local_unnamed_addr #10 align 2 { entry: %mode = getelementptr inbounds i8, ptr %this, i64 40 %0 = load i32, ptr %mode, align 8 @@ -1946,7 +1945,7 @@ entry: br i1 %cmp.not, label %if.end, label %if.then if.then: ; preds = %entry - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.9) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.9) #16 unreachable if.end: ; preds = %entry @@ -1955,14 +1954,14 @@ if.end: ; preds = %entry } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable -define hidden void @_ZN5o3dgc16Static_Bit_ModelC2Ev(ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) %this) unnamed_addr #3 align 2 { +define hidden void @_ZN5o3dgc16Static_Bit_ModelC2Ev(ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) %this) unnamed_addr #4 align 2 { entry: store i32 4096, ptr %this, align 4 ret void } ; Function Attrs: mustprogress nofree nounwind uwtable -define hidden void @_ZN5o3dgc16Static_Bit_Model17set_probability_0Ed(ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) %this, double noundef %p0) local_unnamed_addr #9 align 2 { +define hidden void @_ZN5o3dgc16Static_Bit_Model17set_probability_0Ed(ptr nocapture noundef nonnull writeonly align 4 dereferenceable(4) %this, double noundef %p0) local_unnamed_addr #10 align 2 { entry: %cmp = fcmp olt double %p0, 1.000000e-04 %cmp2 = fcmp ogt double %p0, 9.999000e-01 @@ -1970,7 +1969,7 @@ entry: br i1 %or.cond, label %if.then, label %if.end if.then: ; preds = %entry - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.10) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.10) #16 unreachable if.end: ; preds = %entry @@ -1981,7 +1980,7 @@ if.end: ; preds = %entry } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable -define hidden void @_ZN5o3dgc18Adaptive_Bit_ModelC2Ev(ptr nocapture noundef nonnull writeonly align 4 dereferenceable(20) %this) unnamed_addr #3 align 2 { +define hidden void @_ZN5o3dgc18Adaptive_Bit_ModelC2Ev(ptr nocapture noundef nonnull writeonly align 4 dereferenceable(20) %this) unnamed_addr #4 align 2 { entry: %bit_0_count.i = getelementptr inbounds i8, ptr %this, i64 12 store i32 1, ptr %bit_0_count.i, align 4 @@ -1996,7 +1995,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable -define hidden void @_ZN5o3dgc18Adaptive_Bit_Model5resetEv(ptr nocapture noundef nonnull writeonly align 4 dereferenceable(20) %this) local_unnamed_addr #3 align 2 { +define hidden void @_ZN5o3dgc18Adaptive_Bit_Model5resetEv(ptr nocapture noundef nonnull writeonly align 4 dereferenceable(20) %this) local_unnamed_addr #4 align 2 { entry: %bit_0_count = getelementptr inbounds i8, ptr %this, i64 12 store i32 1, ptr %bit_0_count, align 4 @@ -2011,7 +2010,7 @@ entry: } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable -define hidden void @_ZN5o3dgc17Static_Data_ModelC2Ev(ptr nocapture noundef nonnull writeonly align 8 dereferenceable(32) %this) unnamed_addr #3 align 2 { +define hidden void @_ZN5o3dgc17Static_Data_ModelC2Ev(ptr nocapture noundef nonnull writeonly align 8 dereferenceable(32) %this) unnamed_addr #4 align 2 { entry: %data_symbols = getelementptr inbounds i8, ptr %this, i64 16 store i32 0, ptr %data_symbols, align 8 @@ -2020,14 +2019,14 @@ entry: } ; Function Attrs: mustprogress nounwind uwtable -define hidden void @_ZN5o3dgc17Static_Data_ModelD2Ev(ptr nocapture noundef nonnull readonly align 8 dereferenceable(32) %this) unnamed_addr #5 align 2 { +define hidden void @_ZN5o3dgc17Static_Data_ModelD2Ev(ptr nocapture noundef nonnull readonly align 8 dereferenceable(32) %this) unnamed_addr #6 align 2 { entry: %0 = load ptr, ptr %this, align 8 %isnull = icmp eq ptr %0, null br i1 %isnull, label %delete.end, label %delete.notnull delete.notnull: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #15 + tail call void @_ZdaPv(ptr noundef nonnull %0) #17 br label %delete.end delete.end: ; preds = %delete.notnull, %entry @@ -2035,14 +2034,14 @@ delete.end: ; preds = %delete.notnull, %en } ; Function Attrs: mustprogress uwtable -define hidden void @_ZN5o3dgc17Static_Data_Model16set_distributionEjPKd(ptr nocapture noundef nonnull align 8 dereferenceable(32) %this, i32 noundef %number_of_symbols, ptr noundef readonly %probability) local_unnamed_addr #4 align 2 { +define hidden void @_ZN5o3dgc17Static_Data_Model16set_distributionEjPKd(ptr nocapture noundef nonnull align 8 dereferenceable(32) %this, i32 noundef %number_of_symbols, ptr noundef readonly %probability) local_unnamed_addr #5 align 2 { entry: %0 = add i32 %number_of_symbols, -2049 %or.cond = icmp ult i32 %0, -2047 br i1 %or.cond, label %if.then, label %if.end if.then: ; preds = %entry - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.11) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.11) #16 unreachable if.end: ; preds = %entry @@ -2061,7 +2060,7 @@ if.then4: ; preds = %if.end br i1 %isnull, label %delete.end, label %delete.notnull delete.notnull: ; preds = %if.then4 - tail call void @_ZdaPv(ptr noundef nonnull %2) #15 + tail call void @_ZdaPv(ptr noundef nonnull %2) #17 %.pre = load i32, ptr %data_symbols, align 8 br label %delete.end @@ -2089,7 +2088,7 @@ while.end: ; preds = %while.cond %add17 = add i32 %add16, %shl12 %conv = zext i32 %add17 to i64 %4 = shl nuw nsw i64 %conv, 2 - %call = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %4) #16 + %call = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %4) #18 store ptr %call, ptr %this, align 8 %idx.ext = zext i32 %3 to i64 %add.ptr = getelementptr inbounds i32, ptr %call, i64 %idx.ext @@ -2106,7 +2105,7 @@ if.end29: ; preds = %delete.end store i32 0, ptr %table_size23, align 8 %5 = shl nuw nsw i32 %3, 2 %6 = zext nneg i32 %5 to i64 - %call26 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %6) #16 + %call26 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %6) #18 store ptr %call26, ptr %this, align 8 %cmp3327.not = icmp eq i32 %3, 0 br i1 %cmp3327.not, label %for.end, label %for.body.lr.ph @@ -2186,7 +2185,7 @@ for.body: ; preds = %for.body.lr.ph, %fo br i1 %or.cond1, label %if.then39, label %if.end40 if.then39: ; preds = %for.body, %for.body.lr.ph.split.us - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.12) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.12) #16 unreachable if.end40: ; preds = %for.body @@ -2269,7 +2268,7 @@ if.end80: ; preds = %while.body72, %if.t br i1 %or.cond2, label %if.then84, label %if.end85 if.then84: ; preds = %if.end80 - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.13) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.13) #16 unreachable if.end85: ; preds = %if.end80 @@ -2277,7 +2276,7 @@ if.end85: ; preds = %if.end80 } ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable -define hidden void @_ZN5o3dgc19Adaptive_Data_ModelC2Ev(ptr nocapture noundef nonnull writeonly align 8 dereferenceable(52) %this) unnamed_addr #3 align 2 { +define hidden void @_ZN5o3dgc19Adaptive_Data_ModelC2Ev(ptr nocapture noundef nonnull writeonly align 8 dereferenceable(52) %this) unnamed_addr #4 align 2 { entry: %data_symbols = getelementptr inbounds i8, ptr %this, i64 36 store i32 0, ptr %data_symbols, align 4 @@ -2286,7 +2285,7 @@ entry: } ; Function Attrs: mustprogress uwtable -define hidden void @_ZN5o3dgc19Adaptive_Data_ModelC2Ej(ptr nocapture noundef nonnull align 8 dereferenceable(52) %this, i32 noundef %number_of_symbols) unnamed_addr #4 align 2 { +define hidden void @_ZN5o3dgc19Adaptive_Data_ModelC2Ej(ptr nocapture noundef nonnull align 8 dereferenceable(52) %this, i32 noundef %number_of_symbols) unnamed_addr #5 align 2 { entry: %data_symbols = getelementptr inbounds i8, ptr %this, i64 36 store i32 0, ptr %data_symbols, align 4 @@ -2296,14 +2295,14 @@ entry: } ; Function Attrs: mustprogress uwtable -define hidden void @_ZN5o3dgc19Adaptive_Data_Model12set_alphabetEj(ptr nocapture noundef nonnull align 8 dereferenceable(52) %this, i32 noundef %number_of_symbols) local_unnamed_addr #4 align 2 { +define hidden void @_ZN5o3dgc19Adaptive_Data_Model12set_alphabetEj(ptr nocapture noundef nonnull align 8 dereferenceable(52) %this, i32 noundef %number_of_symbols) local_unnamed_addr #5 align 2 { entry: %0 = add i32 %number_of_symbols, -2049 %or.cond = icmp ult i32 %0, -2047 br i1 %or.cond, label %if.then, label %if.end if.then: ; preds = %entry - tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.11) #14 + tail call fastcc void @_ZN5o3dgcL8AC_ErrorEPKc(ptr noundef nonnull @.str.11) #16 unreachable if.end: ; preds = %entry @@ -2322,7 +2321,7 @@ if.then4: ; preds = %if.end br i1 %isnull, label %delete.end, label %delete.notnull delete.notnull: ; preds = %if.then4 - tail call void @_ZdaPv(ptr noundef nonnull %2) #15 + tail call void @_ZdaPv(ptr noundef nonnull %2) #17 %.pre = load i32, ptr %data_symbols, align 4 br label %delete.end @@ -2351,7 +2350,7 @@ if.end35.thread: ; preds = %while.cond %add17 = add i32 %add16, %shl12 %conv = zext i32 %add17 to i64 %3 = shl nuw nsw i64 %conv, 2 - %call = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %3) #16 + %call = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %3) #18 store ptr %call, ptr %this, align 8 %idx.ext = zext i32 %mul to i64 %add.ptr = getelementptr inbounds i32, ptr %call, i64 %idx.ext @@ -2372,7 +2371,7 @@ if.end35: ; preds = %delete.end store i32 0, ptr %table_size24, align 4 %mul26 = shl nuw nsw i32 %.pr, 3 %4 = zext nneg i32 %mul26 to i64 - %call28 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %4) #16 + %call28 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %4) #18 store ptr %call28, ptr %this, align 8 %idx.ext33 = zext nneg i32 %.pr to i64 %add.ptr34 = getelementptr inbounds i32, ptr %call28, i64 %idx.ext33 @@ -2416,22 +2415,22 @@ _ZN5o3dgc19Adaptive_Data_Model5resetEv.exit: ; preds = %if.end35, %for.end. } ; Function Attrs: mustprogress nounwind uwtable -define hidden void @_ZN5o3dgc19Adaptive_Data_ModelD2Ev(ptr nocapture noundef nonnull readonly align 8 dereferenceable(52) %this) unnamed_addr #5 align 2 { +define hidden void @_ZN5o3dgc19Adaptive_Data_ModelD2Ev(ptr nocapture noundef nonnull readonly align 8 dereferenceable(52) %this) unnamed_addr #6 align 2 { entry: %0 = load ptr, ptr %this, align 8 %isnull = icmp eq ptr %0, null br i1 %isnull, label %delete.end, label %delete.notnull delete.notnull: ; preds = %entry - tail call void @_ZdaPv(ptr noundef nonnull %0) #15 + tail call void @_ZdaPv(ptr noundef nonnull %0) #17 br label %delete.end delete.end: ; preds = %delete.notnull, %entry ret void } -; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) uwtable -define hidden void @_ZN5o3dgc19Adaptive_Data_Model5resetEv(ptr nocapture noundef nonnull align 8 dereferenceable(52) %this) local_unnamed_addr #0 align 2 { +; Function Attrs: mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: write) uwtable +define hidden void @_ZN5o3dgc19Adaptive_Data_Model5resetEv(ptr nocapture noundef nonnull align 8 dereferenceable(52) %this) local_unnamed_addr #3 align 2 { entry: %data_symbols = getelementptr inbounds i8, ptr %this, i64 36 %0 = load i32, ptr %data_symbols, align 4 @@ -2472,39 +2471,44 @@ return: ; preds = %entry, %for.end } ; Function Attrs: nofree nounwind -declare noundef i32 @fputs(ptr nocapture noundef readonly, ptr nocapture noundef) local_unnamed_addr #10 +declare noundef i32 @fputs(ptr nocapture noundef readonly, ptr nocapture noundef) local_unnamed_addr #11 ; Function Attrs: nofree nounwind -declare noundef i32 @getchar() local_unnamed_addr #10 +declare noundef i32 @getchar() local_unnamed_addr #11 ; Function Attrs: nofree noreturn nounwind -declare void @exit(i32 noundef) local_unnamed_addr #11 +declare void @exit(i32 noundef) local_unnamed_addr #12 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umin.i32(i32, i32) #12 +declare i32 @llvm.umin.i32(i32, i32) #13 + +; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) +declare void @llvm.assume(i1 noundef) #14 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) -declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #13 +declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #15 attributes #0 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) 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 #1 = { mustprogress nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) 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 #2 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) 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 #3 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) 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 #4 = { mustprogress 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 #5 = { mustprogress nounwind 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 #6 = { nobuiltin 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" } -attributes #7 = { cold mustprogress nofree noreturn nounwind 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 #8 = { nobuiltin allocsize(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 #9 = { mustprogress nofree nounwind 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 #10 = { nofree 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" } -attributes #11 = { nofree noreturn 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" } -attributes #12 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #13 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #14 = { noreturn } -attributes #15 = { builtin nounwind } -attributes #16 = { builtin allocsize(0) } -attributes #17 = { cold } -attributes #18 = { cold noreturn nounwind } +attributes #3 = { mustprogress nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: write) 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 #4 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) 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 #5 = { mustprogress 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 #6 = { mustprogress nounwind 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 #7 = { nobuiltin 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" } +attributes #8 = { cold mustprogress nofree noreturn nounwind 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 #9 = { nobuiltin allocsize(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 #10 = { mustprogress nofree nounwind 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 #11 = { nofree 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" } +attributes #12 = { nofree noreturn 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" } +attributes #13 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #14 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #15 = { nocallback nofree nounwind willreturn memory(argmem: write) } +attributes #16 = { noreturn } +attributes #17 = { builtin nounwind } +attributes #18 = { builtin allocsize(0) } +attributes #19 = { cold } +attributes #20 = { cold noreturn nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/libjpeg-turbo/optimized/jquant2.c.ll b/bench/libjpeg-turbo/optimized/jquant2.c.ll index f8029ca01d5..73b91dbf13a 100644 --- a/bench/libjpeg-turbo/optimized/jquant2.c.ll +++ b/bench/libjpeg-turbo/optimized/jquant2.c.ll @@ -27,14 +27,14 @@ define void @jinit_2pass_quantizer(ptr noundef %0) local_unnamed_addr #0 { store i32 %7, ptr %9, align 4 %10 = load ptr, ptr %0, align 8 %11 = load ptr, ptr %10, align 8 - tail call void %11(ptr noundef nonnull %0) #8 + tail call void %11(ptr noundef nonnull %0) #9 br label %12 12: ; preds = %4, %1 %13 = getelementptr inbounds i8, ptr %0, i64 8 %14 = load ptr, ptr %13, align 8 %15 = load ptr, ptr %14, align 8 - %16 = tail call ptr %15(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 96) #8 + %16 = tail call ptr %15(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 96) #9 %17 = getelementptr inbounds i8, ptr %0, i64 624 store ptr %16, ptr %17, align 8 store ptr @start_pass_2_quant, ptr %16, align 8 @@ -69,13 +69,13 @@ define void @jinit_2pass_quantizer(ptr noundef %0) local_unnamed_addr #0 { store i32 47, ptr %34, align 8 %35 = load ptr, ptr %0, align 8 %36 = load ptr, ptr %35, align 8 - tail call void %36(ptr noundef nonnull %0) #8 + tail call void %36(ptr noundef nonnull %0) #9 br label %37 37: ; preds = %32, %27 %38 = load ptr, ptr %13, align 8 %39 = load ptr, ptr %38, align 8 - %40 = tail call ptr %39(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 256) #8 + %40 = tail call ptr %39(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 256) #9 %41 = getelementptr inbounds i8, ptr %16, i64 56 store ptr %40, ptr %41, align 8 br label %42 @@ -85,7 +85,7 @@ define void @jinit_2pass_quantizer(ptr noundef %0) local_unnamed_addr #0 { %43 = load ptr, ptr %13, align 8 %44 = getelementptr inbounds i8, ptr %43, i64 8 %45 = load ptr, ptr %44, align 8 - %46 = tail call ptr %45(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 4096) #8 + %46 = tail call ptr %45(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 4096) #9 %47 = load ptr, ptr %41, align 8 %48 = getelementptr inbounds ptr, ptr %47, i64 %indvars.iv store ptr %46, ptr %48, align 8 @@ -122,14 +122,14 @@ define void @jinit_2pass_quantizer(ptr noundef %0) local_unnamed_addr #0 { store i32 %.sink, ptr %62, align 4 %63 = load ptr, ptr %0, align 8 %64 = load ptr, ptr %63, align 8 - tail call void %64(ptr noundef nonnull %0) #8 + tail call void %64(ptr noundef nonnull %0) #9 br label %65 65: ; preds = %.sink.split, %57 %66 = load ptr, ptr %13, align 8 %67 = getelementptr inbounds i8, ptr %66, i64 16 %68 = load ptr, ptr %67, align 8 - %69 = tail call ptr %68(ptr noundef nonnull %0, i32 noundef 1, i32 noundef %55, i32 noundef 3) #8 + %69 = tail call ptr %68(ptr noundef nonnull %0, i32 noundef 1, i32 noundef %55, i32 noundef 3) #9 %70 = getelementptr inbounds i8, ptr %16, i64 40 store ptr %69, ptr %70, align 8 %71 = getelementptr inbounds i8, ptr %16, i64 48 @@ -157,12 +157,12 @@ define void @jinit_2pass_quantizer(ptr noundef %0) local_unnamed_addr #0 { %83 = add i32 %82, 2 %84 = zext i32 %83 to i64 %85 = mul nuw nsw i64 %84, 6 - %86 = tail call ptr %80(ptr noundef nonnull %0, i32 noundef 1, i64 noundef %85) #8 + %86 = tail call ptr %80(ptr noundef nonnull %0, i32 noundef 1, i64 noundef %85) #9 store ptr %86, ptr %19, align 8 %87 = load ptr, ptr %17, align 8 %88 = load ptr, ptr %13, align 8 %89 = load ptr, ptr %88, align 8 - %90 = tail call ptr %89(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 2044) #8 + %90 = tail call ptr %89(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 2044) #9 %91 = getelementptr inbounds i8, ptr %90, i64 1020 %92 = getelementptr inbounds i8, ptr %87, i64 88 store ptr %91, ptr %92, align 8 @@ -265,7 +265,7 @@ define internal void @start_pass_2_quant(ptr noundef %0, i32 noundef %1) #0 { store i32 %.sink, ptr %24, align 4 %25 = load ptr, ptr %0, align 8 %26 = load ptr, ptr %25, align 8 - tail call void %26(ptr noundef nonnull %0) #8 + tail call void %26(ptr noundef nonnull %0) #9 br label %27 27: ; preds = %.sink.split, %19 @@ -289,13 +289,13 @@ define internal void @start_pass_2_quant(ptr noundef %0, i32 noundef %1) #0 { %41 = load ptr, ptr %40, align 8 %42 = getelementptr inbounds i8, ptr %41, i64 8 %43 = load ptr, ptr %42, align 8 - %44 = tail call ptr %43(ptr noundef nonnull %0, i32 noundef 1, i64 noundef %35) #8 + %44 = tail call ptr %43(ptr noundef nonnull %0, i32 noundef 1, i64 noundef %35) #9 store ptr %44, ptr %36, align 8 br label %45 45: ; preds = %39, %30 %46 = phi ptr [ %44, %39 ], [ %37, %30 ] - tail call void @jzero_far(ptr noundef %46, i64 noundef %35) #8 + tail call void @jzero_far(ptr noundef %46, i64 noundef %35) #9 %47 = getelementptr inbounds i8, ptr %4, i64 88 %48 = load ptr, ptr %47, align 8 %49 = icmp eq ptr %48, null @@ -306,7 +306,7 @@ define internal void @start_pass_2_quant(ptr noundef %0, i32 noundef %1) #0 { %52 = getelementptr inbounds i8, ptr %0, i64 8 %53 = load ptr, ptr %52, align 8 %54 = load ptr, ptr %53, align 8 - %55 = tail call ptr %54(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 2044) #8 + %55 = tail call ptr %54(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 2044) #9 %56 = getelementptr inbounds i8, ptr %55, i64 1020 %57 = getelementptr inbounds i8, ptr %51, i64 88 store ptr %56, ptr %57, align 8 @@ -369,7 +369,7 @@ define internal void @start_pass_2_quant(ptr noundef %0, i32 noundef %1) #0 { %indvars.iv = phi i64 [ %indvars.iv.next, %.preheader ], [ 0, %74 ] %77 = getelementptr inbounds ptr, ptr %6, i64 %indvars.iv %78 = load ptr, ptr %77, align 8 - tail call void @jzero_far(ptr noundef %78, i64 noundef 4096) #8 + tail call void @jzero_far(ptr noundef %78, i64 noundef 4096) #9 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 32 br i1 %exitcond.not, label %79, label %.preheader, !llvm.loop !9 @@ -465,7 +465,7 @@ define internal void @finish_pass1(ptr noundef %0) #0 { %11 = load ptr, ptr %10, align 8 %12 = sext i32 %8 to i64 %13 = mul nsw i64 %12, 40 - %14 = tail call ptr %11(ptr noundef %0, i32 noundef 1, i64 noundef %13) #8 + %14 = tail call ptr %11(ptr noundef %0, i32 noundef 1, i64 noundef %13) #9 store i32 0, ptr %14, align 8 %15 = getelementptr inbounds i8, ptr %14, i64 4 store i32 31, ptr %15, align 4 @@ -519,7 +519,7 @@ define internal void @finish_pass1(ptr noundef %0) #0 { br i1 %exitcond.not.i.i.i, label %find_biggest_color_pop.exit.i.i, label %.lr.ph.i.i.i, !llvm.loop !12 .lr.ph.i84.i.i: ; preds = %23, %.lr.ph.i84.i.i - %indvars.iv42.i = phi i64 [ %indvars.iv.next43.i, %.lr.ph.i84.i.i ], [ 0, %23 ] + %indvars.iv49.i = phi i64 [ %indvars.iv.next50.i, %.lr.ph.i84.i.i ], [ 0, %23 ] %.018.i.i.i = phi ptr [ %spec.select14.i.i.i, %.lr.ph.i84.i.i ], [ null, %23 ] %.0917.i.i.i = phi i64 [ %spec.select.i85.i.i, %.lr.ph.i84.i.i ], [ 0, %23 ] %.01215.i.i.i = phi ptr [ %37, %.lr.ph.i84.i.i ], [ %14, %23 ] @@ -528,9 +528,9 @@ define internal void @finish_pass1(ptr noundef %0) #0 { %36 = icmp sgt i64 %35, %.0917.i.i.i %spec.select.i85.i.i = tail call i64 @llvm.smax.i64(i64 %35, i64 %.0917.i.i.i) %spec.select14.i.i.i = select i1 %36, ptr %.01215.i.i.i, ptr %.018.i.i.i - %indvars.iv.next43.i = add nuw nsw i64 %indvars.iv42.i, 1 + %indvars.iv.next50.i = add nuw nsw i64 %indvars.iv49.i, 1 %37 = getelementptr inbounds i8, ptr %.01215.i.i.i, i64 40 - %exitcond.not.i86.i.i = icmp eq i64 %indvars.iv.i.i, %indvars.iv.next43.i + %exitcond.not.i86.i.i = icmp eq i64 %indvars.iv.i.i, %indvars.iv.next50.i br i1 %exitcond.not.i86.i.i, label %find_biggest_color_pop.exit.i.i, label %.lr.ph.i84.i.i, !llvm.loop !13 find_biggest_color_pop.exit.i.i: ; preds = %32, %.lr.ph.i84.i.i @@ -659,13 +659,13 @@ median_cut.exit.i: ; preds = %101, %find_biggest_ br i1 %105, label %.lr.ph.i, label %select_colors.exit .lr.ph.i: ; preds = %median_cut.exit.i, %1 - %.0.lcssa.i50.i = phi i32 [ %.0.lcssa.i.i, %median_cut.exit.i ], [ 1, %1 ] - %wide.trip.count.i = zext nneg i32 %.0.lcssa.i50.i to i64 + %.0.lcssa.i57.i = phi i32 [ %.0.lcssa.i.i, %median_cut.exit.i ], [ 1, %1 ] + %wide.trip.count.i = zext nneg i32 %.0.lcssa.i57.i to i64 br label %106 106: ; preds = %compute_color.exit.i, %.lr.ph.i - %indvars.iv45.i = phi i64 [ 0, %.lr.ph.i ], [ %indvars.iv.next46.i, %compute_color.exit.i ] - %107 = getelementptr inbounds %struct.box, ptr %14, i64 %indvars.iv45.i + %indvars.iv52.i = phi i64 [ 0, %.lr.ph.i ], [ %indvars.iv.next53.i, %compute_color.exit.i ] + %107 = getelementptr inbounds %struct.box, ptr %14, i64 %indvars.iv52.i %108 = load ptr, ptr %2, align 8 %109 = getelementptr inbounds i8, ptr %108, i64 56 %110 = load ptr, ptr %109, align 8 @@ -676,153 +676,163 @@ median_cut.exit.i: ; preds = %101, %find_biggest_ %115 = load i32, ptr %114, align 8 %116 = getelementptr inbounds i8, ptr %107, i64 12 %117 = load i32, ptr %116, align 4 - %118 = getelementptr inbounds i8, ptr %107, i64 20 - %119 = load i32, ptr %118, align 4 - %.not95.i.i = icmp sgt i32 %111, %113 - br i1 %.not95.i.i, label %compute_color.exit.i, label %.preheader.lr.ph.i.i - -.preheader.lr.ph.i.i: ; preds = %106 - %120 = getelementptr inbounds i8, ptr %107, i64 16 - %121 = load i32, ptr %120, align 8 + %118 = getelementptr inbounds i8, ptr %107, i64 16 + %119 = load i32, ptr %118, align 8 + %120 = getelementptr inbounds i8, ptr %107, i64 20 + %121 = load i32, ptr %120, align 4 + %.not95.i.i = icmp sle i32 %111, %113 + tail call void @llvm.assume(i1 %.not95.i.i) %.not6780.i.i = icmp sgt i32 %115, %117 - %122 = sext i32 %121 to i64 - %.not6870.i.i = icmp sgt i32 %121, %119 - %or.cond.i.i = select i1 %.not6780.i.i, i1 true, i1 %.not6870.i.i - br i1 %or.cond.i.i, label %compute_color.exit.i, label %.preheader.preheader.i.i - -.preheader.preheader.i.i: ; preds = %.preheader.lr.ph.i.i - %123 = add i32 %119, 1 - %124 = sext i32 %115 to i64 - %125 = add i32 %117, 1 - %126 = sext i32 %111 to i64 - %127 = add i32 %113, 1 + %122 = sext i32 %119 to i64 + br i1 %.not6780.i.i, label %.preheader.us.i.i, label %.preheader.lr.ph.split.i.i + +.preheader.us.i.i: ; preds = %106, %.preheader.us.i.i + %.06396.us.i.i = phi i32 [ %123, %.preheader.us.i.i ], [ %111, %106 ] + %123 = add nsw i32 %.06396.us.i.i, 1 + %.not.us.not.i.i = icmp slt i32 %.06396.us.i.i, %113 + tail call void @llvm.assume(i1 %.not.us.not.i.i) + br label %.preheader.us.i.i + +.preheader.lr.ph.split.i.i: ; preds = %106 + %.not6870.i.i = icmp sgt i32 %119, %121 + br i1 %.not6870.i.i, label %.preheader.us110.i.i, label %.preheader.preheader.i.i + +.preheader.preheader.i.i: ; preds = %.preheader.lr.ph.split.i.i + %124 = add i32 %121, 1 + %125 = sext i32 %115 to i64 + %126 = add i32 %117, 1 + %127 = sext i32 %111 to i64 + %128 = add i32 %113, 1 br label %.preheader.i.i +.preheader.us110.i.i: ; preds = %.preheader.lr.ph.split.i.i, %.preheader.us110.i.i + %.06396.us115.i.i = phi i32 [ %129, %.preheader.us110.i.i ], [ %111, %.preheader.lr.ph.split.i.i ] + %129 = add nsw i32 %.06396.us115.i.i, 1 + %.not.us116.not.i.i = icmp slt i32 %.06396.us115.i.i, %113 + tail call void @llvm.assume(i1 %.not.us116.not.i.i) + br label %.preheader.us110.i.i + .preheader.i.i: ; preds = %._crit_edge87.split.i.i, %.preheader.preheader.i.i - %indvars.iv133.i.i = phi i64 [ %126, %.preheader.preheader.i.i ], [ %indvars.iv.next134.i.i, %._crit_edge87.split.i.i ] + %indvars.iv131.i.i = phi i64 [ %127, %.preheader.preheader.i.i ], [ %indvars.iv.next132.i.i, %._crit_edge87.split.i.i ] %.0100.i.i = phi i64 [ 0, %.preheader.preheader.i.i ], [ %.3.i.i, %._crit_edge87.split.i.i ] %.05099.i.i = phi i64 [ 0, %.preheader.preheader.i.i ], [ %.353.i.i, %._crit_edge87.split.i.i ] %.05498.i.i = phi i64 [ 0, %.preheader.preheader.i.i ], [ %.357.i.i, %._crit_edge87.split.i.i ] %.05897.i.i = phi i64 [ 0, %.preheader.preheader.i.i ], [ %.361.i.i, %._crit_edge87.split.i.i ] - %128 = getelementptr inbounds ptr, ptr %110, i64 %indvars.iv133.i.i - %129 = load ptr, ptr %128, align 8 - %130 = trunc nsw i64 %indvars.iv133.i.i to i32 - %131 = shl i32 %130, 3 - %132 = or disjoint i32 %131, 4 - %133 = sext i32 %132 to i64 + %130 = getelementptr inbounds ptr, ptr %110, i64 %indvars.iv131.i.i + %131 = load ptr, ptr %130, align 8 + %132 = trunc nsw i64 %indvars.iv131.i.i to i32 + %133 = shl i32 %132, 3 + %134 = or disjoint i32 %133, 4 + %135 = sext i32 %134 to i64 br label %.lr.ph.i29.i .lr.ph.i29.i: ; preds = %._crit_edge.i.i, %.preheader.i.i - %indvars.iv128.i.i = phi i64 [ %124, %.preheader.i.i ], [ %indvars.iv.next129.i.i, %._crit_edge.i.i ] + %indvars.iv126.i.i = phi i64 [ %125, %.preheader.i.i ], [ %indvars.iv.next127.i.i, %._crit_edge.i.i ] %.185.i.i = phi i64 [ %.0100.i.i, %.preheader.i.i ], [ %.3.i.i, %._crit_edge.i.i ] %.15184.i.i = phi i64 [ %.05099.i.i, %.preheader.i.i ], [ %.353.i.i, %._crit_edge.i.i ] %.15583.i.i = phi i64 [ %.05498.i.i, %.preheader.i.i ], [ %.357.i.i, %._crit_edge.i.i ] %.15982.i.i = phi i64 [ %.05897.i.i, %.preheader.i.i ], [ %.361.i.i, %._crit_edge.i.i ] - %134 = getelementptr inbounds [32 x i16], ptr %129, i64 %indvars.iv128.i.i, i64 %122 - %135 = trunc nsw i64 %indvars.iv128.i.i to i32 - %136 = shl i32 %135, 2 - %137 = or disjoint i32 %136, 2 - %138 = sext i32 %137 to i64 - br label %139 - -139: ; preds = %155, %.lr.ph.i29.i - %indvars.iv.i30.i = phi i64 [ %122, %.lr.ph.i29.i ], [ %indvars.iv.next.i31.i, %155 ] - %.276.i.i = phi i64 [ %.185.i.i, %.lr.ph.i29.i ], [ %.3.i.i, %155 ] - %.25275.i.i = phi i64 [ %.15184.i.i, %.lr.ph.i29.i ], [ %.353.i.i, %155 ] - %.25674.i.i = phi i64 [ %.15583.i.i, %.lr.ph.i29.i ], [ %.357.i.i, %155 ] - %.26073.i.i = phi i64 [ %.15982.i.i, %.lr.ph.i29.i ], [ %.361.i.i, %155 ] - %.06272.i.i = phi ptr [ %134, %.lr.ph.i29.i ], [ %140, %155 ] - %140 = getelementptr inbounds i8, ptr %.06272.i.i, i64 2 - %141 = load i16, ptr %.06272.i.i, align 2 - %.not69.i.i = icmp eq i16 %141, 0 - br i1 %.not69.i.i, label %155, label %142 - -142: ; preds = %139 - %143 = zext i16 %141 to i64 - %144 = add nsw i64 %.26073.i.i, %143 - %145 = mul nsw i64 %143, %133 - %146 = add nsw i64 %145, %.25674.i.i - %147 = mul nsw i64 %143, %138 - %148 = add nsw i64 %147, %.25275.i.i - %149 = trunc nsw i64 %indvars.iv.i30.i to i32 - %150 = shl i32 %149, 3 - %151 = or disjoint i32 %150, 4 - %152 = sext i32 %151 to i64 - %153 = mul nsw i64 %143, %152 - %154 = add nsw i64 %153, %.276.i.i - br label %155 - -155: ; preds = %142, %139 - %.361.i.i = phi i64 [ %144, %142 ], [ %.26073.i.i, %139 ] - %.357.i.i = phi i64 [ %146, %142 ], [ %.25674.i.i, %139 ] - %.353.i.i = phi i64 [ %148, %142 ], [ %.25275.i.i, %139 ] - %.3.i.i = phi i64 [ %154, %142 ], [ %.276.i.i, %139 ] + %136 = getelementptr inbounds [32 x i16], ptr %131, i64 %indvars.iv126.i.i, i64 %122 + %137 = trunc nsw i64 %indvars.iv126.i.i to i32 + %138 = shl i32 %137, 2 + %139 = or disjoint i32 %138, 2 + %140 = sext i32 %139 to i64 + br label %141 + +141: ; preds = %157, %.lr.ph.i29.i + %indvars.iv.i30.i = phi i64 [ %122, %.lr.ph.i29.i ], [ %indvars.iv.next.i31.i, %157 ] + %.276.i.i = phi i64 [ %.185.i.i, %.lr.ph.i29.i ], [ %.3.i.i, %157 ] + %.25275.i.i = phi i64 [ %.15184.i.i, %.lr.ph.i29.i ], [ %.353.i.i, %157 ] + %.25674.i.i = phi i64 [ %.15583.i.i, %.lr.ph.i29.i ], [ %.357.i.i, %157 ] + %.26073.i.i = phi i64 [ %.15982.i.i, %.lr.ph.i29.i ], [ %.361.i.i, %157 ] + %.06272.i.i = phi ptr [ %136, %.lr.ph.i29.i ], [ %142, %157 ] + %142 = getelementptr inbounds i8, ptr %.06272.i.i, i64 2 + %143 = load i16, ptr %.06272.i.i, align 2 + %.not69.i.i = icmp eq i16 %143, 0 + br i1 %.not69.i.i, label %157, label %144 + +144: ; preds = %141 + %145 = zext i16 %143 to i64 + %146 = add nsw i64 %.26073.i.i, %145 + %147 = mul nsw i64 %145, %135 + %148 = add nsw i64 %147, %.25674.i.i + %149 = mul nsw i64 %145, %140 + %150 = add nsw i64 %149, %.25275.i.i + %151 = trunc nsw i64 %indvars.iv.i30.i to i32 + %152 = shl i32 %151, 3 + %153 = or disjoint i32 %152, 4 + %154 = sext i32 %153 to i64 + %155 = mul nsw i64 %145, %154 + %156 = add nsw i64 %155, %.276.i.i + br label %157 + +157: ; preds = %144, %141 + %.361.i.i = phi i64 [ %146, %144 ], [ %.26073.i.i, %141 ] + %.357.i.i = phi i64 [ %148, %144 ], [ %.25674.i.i, %141 ] + %.353.i.i = phi i64 [ %150, %144 ], [ %.25275.i.i, %141 ] + %.3.i.i = phi i64 [ %156, %144 ], [ %.276.i.i, %141 ] %indvars.iv.next.i31.i = add nsw i64 %indvars.iv.i30.i, 1 %lftr.wideiv.i.i = trunc i64 %indvars.iv.next.i31.i to i32 - %exitcond.not.i32.i = icmp eq i32 %123, %lftr.wideiv.i.i - br i1 %exitcond.not.i32.i, label %._crit_edge.i.i, label %139, !llvm.loop !15 + %exitcond.not.i32.i = icmp eq i32 %124, %lftr.wideiv.i.i + br i1 %exitcond.not.i32.i, label %._crit_edge.i.i, label %141, !llvm.loop !15 -._crit_edge.i.i: ; preds = %155 - %indvars.iv.next129.i.i = add nsw i64 %indvars.iv128.i.i, 1 - %lftr.wideiv131.i.i = trunc i64 %indvars.iv.next129.i.i to i32 - %exitcond132.not.i.i = icmp eq i32 %125, %lftr.wideiv131.i.i - br i1 %exitcond132.not.i.i, label %._crit_edge87.split.i.i, label %.lr.ph.i29.i, !llvm.loop !16 +._crit_edge.i.i: ; preds = %157 + %indvars.iv.next127.i.i = add nsw i64 %indvars.iv126.i.i, 1 + %lftr.wideiv129.i.i = trunc i64 %indvars.iv.next127.i.i to i32 + %exitcond130.not.i.i = icmp eq i32 %126, %lftr.wideiv129.i.i + br i1 %exitcond130.not.i.i, label %._crit_edge87.split.i.i, label %.lr.ph.i29.i, !llvm.loop !16 ._crit_edge87.split.i.i: ; preds = %._crit_edge.i.i - %indvars.iv.next134.i.i = add nsw i64 %indvars.iv133.i.i, 1 - %lftr.wideiv136.i.i = trunc i64 %indvars.iv.next134.i.i to i32 - %exitcond137.not.i.i = icmp eq i32 %127, %lftr.wideiv136.i.i - br i1 %exitcond137.not.i.i, label %compute_color.exit.i, label %.preheader.i.i, !llvm.loop !17 - -compute_color.exit.i: ; preds = %._crit_edge87.split.i.i, %.preheader.lr.ph.i.i, %106 - %.058.lcssa.i.i = phi i64 [ 0, %106 ], [ 0, %.preheader.lr.ph.i.i ], [ %.361.i.i, %._crit_edge87.split.i.i ] - %.054.lcssa.i.i = phi i64 [ 0, %106 ], [ 0, %.preheader.lr.ph.i.i ], [ %.357.i.i, %._crit_edge87.split.i.i ] - %.050.lcssa.i.i = phi i64 [ 0, %106 ], [ 0, %.preheader.lr.ph.i.i ], [ %.353.i.i, %._crit_edge87.split.i.i ] - %.0.lcssa.i33.i = phi i64 [ 0, %106 ], [ 0, %.preheader.lr.ph.i.i ], [ %.3.i.i, %._crit_edge87.split.i.i ] - %156 = ashr i64 %.058.lcssa.i.i, 1 - %157 = add nsw i64 %.054.lcssa.i.i, %156 - %158 = sdiv i64 %157, %.058.lcssa.i.i - %159 = trunc i64 %158 to i8 - %160 = load ptr, ptr %6, align 8 - %161 = load ptr, ptr %160, align 8 - %162 = getelementptr inbounds i8, ptr %161, i64 %indvars.iv45.i - store i8 %159, ptr %162, align 1 - %163 = add nsw i64 %.050.lcssa.i.i, %156 - %164 = sdiv i64 %163, %.058.lcssa.i.i - %165 = trunc i64 %164 to i8 - %166 = load ptr, ptr %6, align 8 - %167 = getelementptr inbounds i8, ptr %166, i64 8 - %168 = load ptr, ptr %167, align 8 - %169 = getelementptr inbounds i8, ptr %168, i64 %indvars.iv45.i - store i8 %165, ptr %169, align 1 - %170 = add nsw i64 %.0.lcssa.i33.i, %156 - %171 = sdiv i64 %170, %.058.lcssa.i.i - %172 = trunc i64 %171 to i8 - %173 = load ptr, ptr %6, align 8 - %174 = getelementptr inbounds i8, ptr %173, i64 16 - %175 = load ptr, ptr %174, align 8 - %176 = getelementptr inbounds i8, ptr %175, i64 %indvars.iv45.i - store i8 %172, ptr %176, align 1 - %indvars.iv.next46.i = add nuw nsw i64 %indvars.iv45.i, 1 - %exitcond.not.i = icmp eq i64 %indvars.iv.next46.i, %wide.trip.count.i + %indvars.iv.next132.i.i = add nsw i64 %indvars.iv131.i.i, 1 + %lftr.wideiv134.i.i = trunc i64 %indvars.iv.next132.i.i to i32 + %exitcond135.not.i.i = icmp eq i32 %128, %lftr.wideiv134.i.i + br i1 %exitcond135.not.i.i, label %compute_color.exit.i, label %.preheader.i.i, !llvm.loop !17 + +compute_color.exit.i: ; preds = %._crit_edge87.split.i.i + %158 = ashr i64 %.361.i.i, 1 + %159 = add nsw i64 %.357.i.i, %158 + %160 = sdiv i64 %159, %.361.i.i + %161 = trunc i64 %160 to i8 + %162 = load ptr, ptr %6, align 8 + %163 = load ptr, ptr %162, align 8 + %164 = getelementptr inbounds i8, ptr %163, i64 %indvars.iv52.i + store i8 %161, ptr %164, align 1 + %165 = add nsw i64 %.353.i.i, %158 + %166 = sdiv i64 %165, %.361.i.i + %167 = trunc i64 %166 to i8 + %168 = load ptr, ptr %6, align 8 + %169 = getelementptr inbounds i8, ptr %168, i64 8 + %170 = load ptr, ptr %169, align 8 + %171 = getelementptr inbounds i8, ptr %170, i64 %indvars.iv52.i + store i8 %167, ptr %171, align 1 + %172 = add nsw i64 %.3.i.i, %158 + %173 = sdiv i64 %172, %.361.i.i + %174 = trunc i64 %173 to i8 + %175 = load ptr, ptr %6, align 8 + %176 = getelementptr inbounds i8, ptr %175, i64 16 + %177 = load ptr, ptr %176, align 8 + %178 = getelementptr inbounds i8, ptr %177, i64 %indvars.iv52.i + store i8 %174, ptr %178, align 1 + %indvars.iv.next53.i = add nuw nsw i64 %indvars.iv52.i, 1 + %exitcond.not.i = icmp eq i64 %indvars.iv.next53.i, %wide.trip.count.i br i1 %exitcond.not.i, label %select_colors.exit, label %106, !llvm.loop !18 select_colors.exit: ; preds = %compute_color.exit.i, %median_cut.exit.i - %.0.lcssa.i49.i = phi i32 [ %.0.lcssa.i.i, %median_cut.exit.i ], [ %.0.lcssa.i50.i, %compute_color.exit.i ] - %177 = getelementptr inbounds i8, ptr %0, i64 156 - store i32 %.0.lcssa.i49.i, ptr %177, align 4 - %178 = load ptr, ptr %0, align 8 - %179 = getelementptr inbounds i8, ptr %178, i64 40 - store i32 96, ptr %179, align 8 + %.0.lcssa.i56.i = phi i32 [ %.0.lcssa.i.i, %median_cut.exit.i ], [ %.0.lcssa.i57.i, %compute_color.exit.i ] + %179 = getelementptr inbounds i8, ptr %0, i64 156 + store i32 %.0.lcssa.i56.i, ptr %179, align 4 %180 = load ptr, ptr %0, align 8 - %181 = getelementptr inbounds i8, ptr %180, i64 44 - store i32 %.0.lcssa.i49.i, ptr %181, align 4 + %181 = getelementptr inbounds i8, ptr %180, i64 40 + store i32 96, ptr %181, align 8 %182 = load ptr, ptr %0, align 8 - %183 = getelementptr inbounds i8, ptr %182, i64 8 - %184 = load ptr, ptr %183, align 8 - tail call void %184(ptr noundef nonnull %0, i32 noundef 1) #8 - %185 = getelementptr inbounds i8, ptr %3, i64 64 - store i32 1, ptr %185, align 8 + %183 = getelementptr inbounds i8, ptr %182, i64 44 + store i32 %.0.lcssa.i56.i, ptr %183, align 4 + %184 = load ptr, ptr %0, align 8 + %185 = getelementptr inbounds i8, ptr %184, i64 8 + %186 = load ptr, ptr %185, align 8 + tail call void %186(ptr noundef nonnull %0, i32 noundef 1) #9 + %187 = getelementptr inbounds i8, ptr %3, i64 64 + store i32 1, ptr %187, align 8 ret void } @@ -2098,6 +2108,9 @@ declare i32 @llvm.smax.i32(i32, i32) #6 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i64 @llvm.smax.i64(i64, i64) #6 +; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) +declare void @llvm.assume(i1 noundef) #8 + attributes #0 = { nounwind 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 #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) 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 #2 = { nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) 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" } @@ -2106,7 +2119,8 @@ attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect attributes #5 = { nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) 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 #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #7 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #8 = { nounwind } +attributes #8 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #9 = { nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/memcached/optimized/memcached-slab_automove.ll b/bench/memcached/optimized/memcached-slab_automove.ll index 93417b0d6d6..945ab3c64ea 100644 --- a/bench/memcached/optimized/memcached-slab_automove.ll +++ b/bench/memcached/optimized/memcached-slab_automove.ll @@ -14,14 +14,14 @@ entry: %0 = load i32, ptr %slab_automove_window, align 8 %slab_automove_ratio = getelementptr inbounds i8, ptr %settings, i64 152 %1 = load double, ptr %slab_automove_ratio, align 8 - %call = tail call noalias dereferenceable_or_null(6168) ptr @calloc(i64 noundef 1, i64 noundef 6168) #7 + %call = tail call noalias dereferenceable_or_null(6168) ptr @calloc(i64 noundef 1, i64 noundef 6168) #8 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry %mul = shl i32 %0, 6 %conv = zext i32 %mul to i64 - %call1 = tail call noalias ptr @calloc(i64 noundef %conv, i64 noundef 32) #7 + %call1 = tail call noalias ptr @calloc(i64 noundef %conv, i64 noundef 32) #8 store ptr %call1, ptr %call, align 8 %window_size2 = getelementptr inbounds i8, ptr %call, i64 8 store i32 %0, ptr %window_size2, align 8 @@ -31,14 +31,14 @@ if.end: ; preds = %entry br i1 %cmp5, label %if.then7, label %if.end8 if.then7: ; preds = %if.end - tail call void @free(ptr noundef nonnull %call) #8 + tail call void @free(ptr noundef nonnull %call) #9 br label %return if.end8: ; preds = %if.end %iam_before = getelementptr inbounds i8, ptr %call, i64 24 - tail call void @fill_item_stats_automove(ptr noundef nonnull %iam_before) #8 + tail call void @fill_item_stats_automove(ptr noundef nonnull %iam_before) #9 %sam_before = getelementptr inbounds i8, ptr %call, i64 3096 - tail call void @fill_slab_stats_automove(ptr noundef nonnull %sam_before) #8 + tail call void @fill_slab_stats_automove(ptr noundef nonnull %sam_before) #9 br label %return return: ; preds = %entry, %if.end8, %if.then7 @@ -60,8 +60,8 @@ declare void @fill_slab_stats_automove(ptr noundef) local_unnamed_addr #3 define dso_local void @slab_automove_free(ptr nocapture noundef %arg) local_unnamed_addr #4 { entry: %0 = load ptr, ptr %arg, align 8 - tail call void @free(ptr noundef %0) #8 - tail call void @free(ptr noundef %arg) #8 + tail call void @free(ptr noundef %0) #9 + tail call void @free(ptr noundef %arg) #9 ret void } @@ -71,9 +71,9 @@ entry: store i32 -1, ptr %src, align 4 store i32 -1, ptr %dst, align 4 %iam_after = getelementptr inbounds i8, ptr %arg, i64 1560 - tail call void @fill_item_stats_automove(ptr noundef nonnull %iam_after) #8 + tail call void @fill_item_stats_automove(ptr noundef nonnull %iam_after) #9 %sam_after = getelementptr inbounds i8, ptr %arg, i64 4632 - tail call void @fill_slab_stats_automove(ptr noundef nonnull %sam_after) #8 + tail call void @fill_slab_stats_automove(ptr noundef nonnull %sam_after) #9 %iam_before = getelementptr inbounds i8, ptr %arg, i64 24 br label %for.body @@ -174,19 +174,17 @@ if.end50: ; preds = %if.then48, %if.end3 %idxprom57 = sext i32 %mul to i64 %arrayidx58 = getelementptr inbounds %struct.window_data, ptr %14, i64 %idxprom57 %15 = load i32, ptr %window_size, align 8 - %cmp9.not.i = icmp eq i32 %15, 0 - br i1 %cmp9.not.i, label %window_sum.exit, label %for.body.lr.ph.i - -for.body.lr.ph.i: ; preds = %if.end50 + %cmp9.not.i = icmp ne i32 %15, 0 + tail call void @llvm.assume(i1 %cmp9.not.i) %wide.trip.count.i = zext i32 %15 to i64 br label %for.body.i -for.body.i: ; preds = %for.body.i, %for.body.lr.ph.i - %indvars.iv.i = phi i64 [ 0, %for.body.lr.ph.i ], [ %indvars.iv.next.i, %for.body.i ] - %16 = phi i64 [ 0, %for.body.lr.ph.i ], [ %add7.i, %for.body.i ] - %17 = phi float [ 0.000000e+00, %for.body.lr.ph.i ], [ %add5.i, %for.body.i ] - %18 = phi i64 [ 0, %for.body.lr.ph.i ], [ %add3.i, %for.body.i ] - %19 = phi i64 [ 0, %for.body.lr.ph.i ], [ %add.i, %for.body.i ] +for.body.i: ; preds = %for.body.i, %if.end50 + %indvars.iv.i = phi i64 [ 0, %if.end50 ], [ %indvars.iv.next.i, %for.body.i ] + %16 = phi i64 [ 0, %if.end50 ], [ %add7.i, %for.body.i ] + %17 = phi float [ 0.000000e+00, %if.end50 ], [ %add5.i, %for.body.i ] + %18 = phi i64 [ 0, %if.end50 ], [ %add3.i, %for.body.i ] + %19 = phi i64 [ 0, %if.end50 ], [ %add.i, %for.body.i ] %arrayidx.i = getelementptr inbounds %struct.window_data, ptr %arrayidx58, i64 %indvars.iv.i %20 = load i64, ptr %arrayidx.i, align 8 %add.i = add i64 %20, %19 @@ -205,36 +203,29 @@ for.body.i: ; preds = %for.body.i, %for.bo window_sum.exit.loopexit: ; preds = %for.body.i %24 = icmp eq i64 %add3.i, 0 - %25 = udiv i64 %add.i, %wide.trip.count.i - br label %window_sum.exit - -window_sum.exit: ; preds = %if.end50, %window_sum.exit.loopexit - %w_sum.sroa.4.1 = phi i1 [ %24, %window_sum.exit.loopexit ], [ true, %if.end50 ] - %w_sum.sroa.7.1 = phi float [ %add5.i, %window_sum.exit.loopexit ], [ 0.000000e+00, %if.end50 ] - %w_sum.sroa.1074.1 = phi i64 [ %add7.i, %window_sum.exit.loopexit ], [ 0, %if.end50 ] - %div64 = phi i64 [ %25, %window_sum.exit.loopexit ], [ poison, %if.end50 ] + %div64 = udiv i64 %add.i, %wide.trip.count.i %free_chunks = getelementptr inbounds i8, ptr %arrayidx41, i64 8 - %26 = load i64, ptr %free_chunks, align 8 - %conv68 = sitofp i64 %26 to double - %27 = load i32, ptr %arrayidx41, align 8 - %conv72 = uitofp i32 %27 to double + %25 = load i64, ptr %free_chunks, align 8 + %conv68 = sitofp i64 %25 to double + %26 = load i32, ptr %arrayidx41, align 8 + %conv72 = uitofp i32 %26 to double %mul73 = fmul double %conv72, 2.500000e+00 %cmp74 = fcmp olt double %mul73, %conv68 - %or.cond1 = select i1 %cmp74, i1 %w_sum.sroa.4.1, i1 false + %or.cond1 = select i1 %cmp74, i1 %24, i1 false br i1 %or.cond1, label %if.then80, label %if.end82 -if.then80: ; preds = %window_sum.exit +if.then80: ; preds = %window_sum.exit.loopexit store i32 %5, ptr %src, align 4 store i32 0, ptr %dst, align 4 br label %for.end115 -if.end82: ; preds = %window_sum.exit +if.end82: ; preds = %window_sum.exit.loopexit %cmp83 = icmp ugt i64 %div64, %oldest_age.092 br i1 %cmp83, label %land.lhs.true, label %if.end92 land.lhs.true: ; preds = %if.end82 - %28 = load i64, ptr %total_pages, align 8 - %cmp89 = icmp sgt i64 %28, 2 + %27 = load i64, ptr %total_pages, align 8 + %cmp89 = icmp sgt i64 %27, 2 %spec.select = select i1 %cmp89, i64 %div64, i64 %oldest_age.092 %spec.select73 = select i1 %cmp89, i32 %5, i32 %oldest.093 br label %if.end92 @@ -248,12 +239,12 @@ if.end92: ; preds = %land.lhs.true, %if. land.lhs.true95: ; preds = %if.end92 %div9872 = lshr i32 %15, 1 %conv99 = zext nneg i32 %div9872 to i64 - %cmp100 = icmp ugt i64 %w_sum.sroa.1074.1, %conv99 + %cmp100 = icmp ugt i64 %add7.i, %conv99 br i1 %cmp100, label %if.then109, label %lor.lhs.false lor.lhs.false: ; preds = %land.lhs.true95 %conv104 = uitofp i32 %15 to float - %div105 = fdiv float %w_sum.sroa.7.1, %conv104 + %div105 = fdiv float %add5.i, %conv104 %cmp107 = fcmp ogt float %div105, 2.500000e-01 br i1 %cmp107, label %if.then109, label %for.inc113 @@ -282,17 +273,17 @@ for.end115: ; preds = %for.inc113, %if.the br i1 %or.cond, label %land.lhs.true129, label %if.end145 land.lhs.true129: ; preds = %for.end115 - %29 = load i32, ptr %window_cur, align 4 - %30 = load i32, ptr %window_size, align 8 - %cmp132 = icmp ugt i32 %29, %30 + %28 = load i32, ptr %window_cur, align 4 + %29 = load i32, ptr %window_size, align 8 + %cmp132 = icmp ugt i32 %28, %29 br i1 %cmp132, label %if.then134, label %if.end145 if.then134: ; preds = %land.lhs.true129 %conv135 = uitofp i64 %youngest_age.086 to double %conv136 = uitofp i64 %oldest_age.081 to double %max_age_ratio = getelementptr inbounds i8, ptr %arg, i64 16 - %31 = load double, ptr %max_age_ratio, align 8 - %mul137 = fmul double %31, %conv136 + %30 = load double, ptr %max_age_ratio, align 8 + %mul137 = fmul double %30, %conv136 %cmp138 = fcmp ogt double %mul137, %conv135 %brmerge.not = select i1 %cmp138, i1 %youngest_evicting.084, i1 false br i1 %brmerge.not, label %if.then143, label %if.end145 @@ -312,6 +303,9 @@ declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #5 ; Function Attrs: mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) declare void @llvm.memcpy.p0.p0.i64(ptr noalias nocapture writeonly, ptr noalias nocapture readonly, i64, i1 immarg) #6 +; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) +declare void @llvm.assume(i1 noundef) #7 + attributes #0 = { nounwind 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 #1 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #2 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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" } @@ -319,8 +313,9 @@ attributes #3 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect attributes #4 = { mustprogress nounwind willreturn 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 #5 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } -attributes #7 = { nounwind allocsize(0,1) } -attributes #8 = { nounwind } +attributes #7 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #8 = { nounwind allocsize(0,1) } +attributes #9 = { nounwind } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/memcached/optimized/memcached-slab_automove_extstore.ll b/bench/memcached/optimized/memcached-slab_automove_extstore.ll index a3b1f6b71b3..bca23cac0eb 100644 --- a/bench/memcached/optimized/memcached-slab_automove_extstore.ll +++ b/bench/memcached/optimized/memcached-slab_automove_extstore.ll @@ -17,14 +17,14 @@ entry: %0 = load i32, ptr %slab_automove_window, align 8 %slab_automove_ratio = getelementptr inbounds i8, ptr %settings, i64 152 %1 = load double, ptr %slab_automove_ratio, align 8 - %call = tail call noalias dereferenceable_or_null(6200) ptr @calloc(i64 noundef 1, i64 noundef 6200) #9 + %call = tail call noalias dereferenceable_or_null(6200) ptr @calloc(i64 noundef 1, i64 noundef 6200) #10 %cmp = icmp eq ptr %call, null br i1 %cmp, label %return, label %if.end if.end: ; preds = %entry %mul = shl i32 %0, 6 %conv = zext i32 %mul to i64 - %call1 = tail call noalias ptr @calloc(i64 noundef %conv, i64 noundef 32) #9 + %call1 = tail call noalias ptr @calloc(i64 noundef %conv, i64 noundef 32) #10 store ptr %call1, ptr %call, align 8 %window_size2 = getelementptr inbounds i8, ptr %call, i64 16 store i32 %0, ptr %window_size2, align 8 @@ -44,14 +44,14 @@ if.end: ; preds = %entry br i1 %cmp6, label %if.end12, label %if.end13 if.end12: ; preds = %if.end - tail call void @free(ptr noundef nonnull %call) #10 + tail call void @free(ptr noundef nonnull %call) #11 br label %return if.end13: ; preds = %if.end %iam_before = getelementptr inbounds i8, ptr %call, i64 56 - tail call void @fill_item_stats_automove(ptr noundef nonnull %iam_before) #10 + tail call void @fill_item_stats_automove(ptr noundef nonnull %iam_before) #11 %sam_before = getelementptr inbounds i8, ptr %call, i64 3128 - tail call void @fill_slab_stats_automove(ptr noundef nonnull %sam_before) #10 + tail call void @fill_slab_stats_automove(ptr noundef nonnull %sam_before) #11 br label %return return: ; preds = %entry, %if.end13, %if.end12 @@ -73,8 +73,8 @@ declare void @fill_slab_stats_automove(ptr noundef) local_unnamed_addr #3 define dso_local void @slab_automove_extstore_free(ptr nocapture noundef %arg) local_unnamed_addr #4 { entry: %0 = load ptr, ptr %arg, align 8 - tail call void @free(ptr noundef %0) #10 - tail call void @free(ptr noundef %arg) #10 + tail call void @free(ptr noundef %0) #11 + tail call void @free(ptr noundef %arg) #11 ret void } @@ -87,7 +87,7 @@ entry: call void @llvm.lifetime.start.p0(i64 1, ptr nonnull %mem_limit_reached.i) %global_pool_watermark.i = getelementptr inbounds i8, ptr %arg, i64 52 %0 = load i32, ptr %global_pool_watermark.i, align 4 - %call.i = call i32 @global_page_pool_size(ptr noundef nonnull %mem_limit_reached.i) #10 + %call.i = call i32 @global_page_pool_size(ptr noundef nonnull %mem_limit_reached.i) #11 %1 = load i8, ptr %mem_limit_reached.i, align 1 %tobool.i = trunc i8 %1 to i1 br i1 %tobool.i, label %if.end.i, label %global_pool_check.exit @@ -102,9 +102,9 @@ global_pool_check.exit: ; preds = %entry, %if.end.i %retval.0.i = phi i1 [ false, %entry ], [ %cmp.i, %if.end.i ] call void @llvm.lifetime.end.p0(i64 1, ptr nonnull %mem_limit_reached.i) %iam_after = getelementptr inbounds i8, ptr %arg, i64 1592 - call void @fill_item_stats_automove(ptr noundef nonnull %iam_after) #10 + call void @fill_item_stats_automove(ptr noundef nonnull %iam_after) #11 %sam_after = getelementptr inbounds i8, ptr %arg, i64 4664 - call void @fill_slab_stats_automove(ptr noundef nonnull %sam_after) #10 + call void @fill_slab_stats_automove(ptr noundef nonnull %sam_after) #11 %window_cur = getelementptr inbounds i8, ptr %arg, i64 20 %2 = load i32, ptr %window_cur, align 4 %inc = add i32 %2, 1 @@ -223,18 +223,16 @@ if.end49: ; preds = %if.then48, %if.end4 %idxprom55 = sext i32 %mul.i70 to i64 %arrayidx56 = getelementptr inbounds %struct.window_data, ptr %23, i64 %idxprom55 %24 = load i32, ptr %window_size.i, align 8 - %cmp11.not.i = icmp eq i32 %24, 0 - br i1 %cmp11.not.i, label %window_sum.exit, label %for.body.lr.ph.i - -for.body.lr.ph.i: ; preds = %if.end49 + %cmp11.not.i = icmp ne i32 %24, 0 + call void @llvm.assume(i1 %cmp11.not.i) %wide.trip.count.i = zext i32 %24 to i64 br label %for.body.i71 -for.body.i71: ; preds = %for.body.i71, %for.body.lr.ph.i - %indvars.iv.i72 = phi i64 [ 0, %for.body.lr.ph.i ], [ %indvars.iv.next.i75, %for.body.i71 ] - %25 = phi i32 [ 0, %for.body.lr.ph.i ], [ %add7.i, %for.body.i71 ] - %26 = phi i64 [ 0, %for.body.lr.ph.i ], [ %add3.i, %for.body.i71 ] - %27 = phi i64 [ 0, %for.body.lr.ph.i ], [ %add.i74, %for.body.i71 ] +for.body.i71: ; preds = %for.body.i71, %if.end49 + %indvars.iv.i72 = phi i64 [ 0, %if.end49 ], [ %indvars.iv.next.i75, %for.body.i71 ] + %25 = phi i32 [ 0, %if.end49 ], [ %add7.i, %for.body.i71 ] + %26 = phi i64 [ 0, %if.end49 ], [ %add3.i, %for.body.i71 ] + %27 = phi i64 [ 0, %if.end49 ], [ %add.i74, %for.body.i71 ] %arrayidx.i73 = getelementptr inbounds %struct.window_data, ptr %arrayidx56, i64 %indvars.iv.i72 %28 = load i64, ptr %arrayidx.i73, align 8 %add.i74 = add i64 %28, %27 @@ -250,23 +248,17 @@ for.body.i71: ; preds = %for.body.i71, %for. window_sum.exit.loopexit: ; preds = %for.body.i71 %31 = icmp eq i64 %add3.i, 0 - %32 = udiv i64 %add.i74, %wide.trip.count.i - br label %window_sum.exit - -window_sum.exit: ; preds = %if.end49, %window_sum.exit.loopexit - %w_sum.sroa.4.1 = phi i1 [ %31, %window_sum.exit.loopexit ], [ true, %if.end49 ] - %w_sum.sroa.9.1 = phi i32 [ %add7.i, %window_sum.exit.loopexit ], [ 0, %if.end49 ] - %div = phi i64 [ %32, %window_sum.exit.loopexit ], [ poison, %if.end49 ] - %33 = load i64, ptr %free_chunks, align 8 - %conv66 = sitofp i64 %33 to double - %34 = load i32, ptr %arrayidx6, align 8 - %conv71 = uitofp i32 %34 to double + %div = udiv i64 %add.i74, %wide.trip.count.i + %32 = load i64, ptr %free_chunks, align 8 + %conv66 = sitofp i64 %32 to double + %33 = load i32, ptr %arrayidx6, align 8 + %conv71 = uitofp i32 %33 to double %mul72 = fmul double %conv71, 2.500000e+00 %cmp73 = fcmp olt double %mul72, %conv66 - %or.cond = select i1 %cmp73, i1 %w_sum.sroa.4.1, i1 false + %or.cond = select i1 %cmp73, i1 %31, i1 false br i1 %or.cond, label %if.then78, label %if.end90 -if.then78: ; preds = %window_sum.exit +if.then78: ; preds = %window_sum.exit.loopexit br i1 %cmp2, label %land.lhs.true82, label %if.end90.thread if.end90.thread: ; preds = %if.then78 @@ -275,7 +267,7 @@ if.end90.thread: ; preds = %if.then78 br label %for.inc land.lhs.true82: ; preds = %if.then78 - %cmp85.not = icmp ult i32 %w_sum.sroa.9.1, %24 + %cmp85.not = icmp ult i32 %add7.i, %24 br i1 %cmp85.not, label %if.end90, label %if.then87 if.then87: ; preds = %land.lhs.true82 @@ -283,15 +275,15 @@ if.then87: ; preds = %land.lhs.true82 store i32 0, ptr %dst, align 4 br label %if.end90 -if.end90: ; preds = %if.then87, %land.lhs.true82, %window_sum.exit - %too_free.1 = phi i1 [ true, %if.then87 ], [ %too_free.085, %land.lhs.true82 ], [ %too_free.085, %window_sum.exit ] +if.end90: ; preds = %if.then87, %land.lhs.true82, %window_sum.exit.loopexit + %too_free.1 = phi i1 [ true, %if.then87 ], [ %too_free.085, %land.lhs.true82 ], [ %too_free.085, %window_sum.exit.loopexit ] %cmp93 = icmp ugt i64 %div, %oldest_age.086 %or.cond67 = select i1 %cmp2, i1 %cmp93, i1 false br i1 %or.cond67, label %land.lhs.true95, label %for.inc land.lhs.true95: ; preds = %if.end90 - %35 = load i64, ptr %total_pages, align 8 - %cmp100 = icmp sgt i64 %35, 2 + %34 = load i64, ptr %total_pages, align 8 + %cmp100 = icmp sgt i64 %34, 2 %spec.select = select i1 %cmp100, i64 %div, i64 %oldest_age.086 %spec.select68 = select i1 %cmp100, i32 %11, i32 %oldest.087 br label %for.inc @@ -307,9 +299,9 @@ for.inc: ; preds = %if.end90.thread, %l for.end: ; preds = %for.inc call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1536) %iam_before, ptr noundef nonnull align 8 dereferenceable(1536) %iam_after, i64 1536, i1 false) call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(1536) %sam_before, ptr noundef nonnull align 8 dereferenceable(1536) %sam_after, i64 1536, i1 false) - %36 = load i32, ptr %window_cur, align 4 - %37 = load i32, ptr %window_size.i, align 8 - %cmp116 = icmp ult i32 %36, %37 + %35 = load i32, ptr %window_cur, align 4 + %36 = load i32, ptr %window_size.i, align 8 + %cmp116 = icmp ult i32 %35, %36 br i1 %cmp116, label %return, label %if.end119 if.end119: ; preds = %for.end @@ -345,6 +337,9 @@ declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #8 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #8 +; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) +declare void @llvm.assume(i1 noundef) #9 + attributes #0 = { nounwind 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 #1 = { mustprogress nofree nounwind willreturn allockind("alloc,zeroed") allocsize(0,1) memory(inaccessiblemem: readwrite) "alloc-family"="malloc" "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 #2 = { mustprogress nounwind willreturn allockind("free") memory(argmem: readwrite, inaccessiblemem: readwrite) "alloc-family"="malloc" "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" } @@ -354,8 +349,9 @@ attributes #5 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #6 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #7 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #8 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #9 = { nounwind allocsize(0,1) } -attributes #10 = { nounwind } +attributes #9 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #10 = { nounwind allocsize(0,1) } +attributes #11 = { nounwind } !llvm.module.flags = !{!0, !1, !2, !3, !4} diff --git a/bench/ncnn/optimized/cpu.cpp.ll b/bench/ncnn/optimized/cpu.cpp.ll index e7ae13c816f..0c1233cd92e 100644 --- a/bench/ncnn/optimized/cpu.cpp.ll +++ b/bench/ncnn/optimized/cpu.cpp.ll @@ -193,7 +193,7 @@ define internal fastcc void @_ZL30try_initialize_global_cpu_infov() unnamed_addr br i1 %.not.i.i, label %_ZL12get_cpucountv.exit.i, label %.preheader.i.i .preheader.i.i: ; preds = %9 - %11 = tail call i32 @feof(ptr noundef nonnull %10) #21 + %11 = tail call i32 @feof(ptr noundef nonnull %10) #22 %.not911.i.i = icmp eq i32 %11, 0 br i1 %.not911.i.i, label %.lr.ph.i.i, label %._crit_edge.i.i @@ -208,7 +208,7 @@ define internal fastcc void @_ZL30try_initialize_global_cpu_infov() unnamed_addr %14 = icmp eq i32 %bcmp.i.i, 0 %15 = zext i1 %14 to i32 %spec.select.i.i = add nuw nsw i32 %.0812.i.i, %15 - %16 = call i32 @feof(ptr noundef nonnull %10) #21 + %16 = call i32 @feof(ptr noundef nonnull %10) #22 %.not9.i.i = icmp eq i32 %16, 0 br i1 %.not9.i.i, label %.lr.ph.i.i, label %._crit_edge.i.i, !llvm.loop !6 @@ -232,7 +232,7 @@ _ZL12get_cpucountv.exit.i: ; preds = %._crit_edge.i.i, %9 %.sroa.7.049.i.i = phi ptr [ %.sroa.7.1.i.i, %.loopexit.i.i ], [ null, %_ZL12get_cpucountv.exit.i ] call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %6) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %7) - %18 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %6, ptr noundef nonnull dereferenceable(1) @.str.9, i32 noundef %.01352.i.i) #21 + %18 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %6, ptr noundef nonnull dereferenceable(1) @.str.9, i32 noundef %.01352.i.i) #22 %19 = call noalias ptr @fopen(ptr noundef nonnull %6, ptr noundef nonnull @.str.7) %.not.i.i.i = icmp eq ptr %19, null br i1 %.not.i.i.i, label %.thread.i.i, label %20 @@ -286,7 +286,7 @@ _ZL12get_cpucountv.exit.i: ; preds = %._crit_edge.i.i, %9 %32 = ptrtoint ptr %.sroa.12.050.i.i to i64 %33 = ptrtoint ptr %.sroa.0.051.i.i to i64 %34 = sub i64 %32, %33 - call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.051.i.i, i64 noundef %34) #22 + call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.051.i.i, i64 noundef %34) #23 br label %common.resume.i common.resume.i: ; preds = %_ZNSt6vectorIiSaIiEED2Ev.exit.i13.i, %31, %30 @@ -318,7 +318,7 @@ common.resume.i: ; preds = %_ZNSt6vectorIiSaIiE br i1 %42, label %43, label %_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i.i.i 43: ; preds = %41 - invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.11) #23 + invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.11) #24 to label %.noexc17.i.i unwind label %.loopexit.split-lp.i.i .noexc17.i.i: ; preds = %43 @@ -335,7 +335,7 @@ _ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i.i.i: ; preds = %41 48: ; preds = %_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i.i.i %49 = shl nuw nsw i64 %47, 2 - %50 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %49) #24 + %50 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %49) #25 to label %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.i.i.i.i unwind label %.loopexit32.i.i _ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.i.i.i.i: ; preds = %48, %_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i.i.i @@ -355,7 +355,7 @@ _ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16.i.i.i.i: ; preds = %54, %_ br i1 %.not.i17.i.i.i.i, label %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i.i, label %56 56: ; preds = %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16.i.i.i.i - call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.051.i.i, i64 noundef %28) #22 + call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.051.i.i, i64 noundef %28) #23 br label %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i.i _ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i.i.i: ; preds = %56, %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16.i.i.i.i @@ -388,7 +388,7 @@ _ZNSt6vectorIiSaIiEE9push_backERKi.exit.i.i: ; preds = %_ZNSt6vectorIiSaIiE %63 = ptrtoint ptr %.sroa.12.1.i.i to i64 %64 = ptrtoint ptr %.sroa.0.1.i.i to i64 %65 = sub i64 %63, %64 - call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.1.i.i, i64 noundef %65) #22 + call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.1.i.i, i64 noundef %65) #23 %.pr.i = load i32, ptr @_ZL10g_cpucount, align 4 br label %_ZL21get_physical_cpucountv.exit.i @@ -427,7 +427,7 @@ _ZN4ncnn6CpuSet6enableEi.exit.i.i: ; preds = %69, %.lr.ph.i17.i br i1 %76, label %.noexc.i.i, label %_ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit.i.i.i .noexc.i.i: ; preds = %._crit_edge.i6.i - call void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.12) #23 + call void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.12) #24 unreachable _ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit.i.i.i: ; preds = %._crit_edge.i6.i @@ -436,7 +436,7 @@ _ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit.i.i.i: ; preds = %._crit_edg .noexc47.i.i: ; preds = %_ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit.i.i.i %77 = shl nuw nsw i64 %wide.trip.count.i.i, 2 - %78 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %77) #24 + %78 = call noalias noundef nonnull ptr @_Znwm(i64 noundef %77) #25 store i32 0, ptr %78, align 4 %79 = icmp eq i32 %66, 1 br i1 %79, label %.lr.ph24.i.i.preheader, label %_ZSt6fill_nIPimiET_S1_T0_RKT1_.exit.loopexit.i.i.i.i.i.i.i @@ -459,24 +459,24 @@ _ZSt6fill_nIPimiET_S1_T0_RKT1_.exit.loopexit.i.i.i.i.i.i.i: ; preds = %.noexc47. call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %5) %82 = trunc nuw nsw i64 %indvars.iv31.i.i to i32 - %83 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) @.str.13, i32 noundef %82) #21 + %83 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) @.str.13, i32 noundef %82) #22 %84 = call noalias ptr @fopen(ptr noundef nonnull %2, ptr noundef nonnull @.str.7) %.not.i.i7.i = icmp eq ptr %84, null br i1 %.not.i.i7.i, label %86, label %.preheader45.i.i.i .preheader45.i.i.i: ; preds = %.lr.ph24.i.i - %85 = call i32 @feof(ptr noundef nonnull %84) #21 + %85 = call i32 @feof(ptr noundef nonnull %84) #22 %.not4246.i.i.i = icmp eq i32 %85, 0 br i1 %.not4246.i.i.i, label %.lr.ph.i.i.i, label %._crit_edge.i.i.i 86: ; preds = %.lr.ph24.i.i - %87 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) @.str.14, i32 noundef %82) #21 + %87 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) @.str.14, i32 noundef %82) #22 %88 = call noalias ptr @fopen(ptr noundef nonnull %2, ptr noundef nonnull @.str.7) %.not36.i.i.i = icmp eq ptr %88, null br i1 %.not36.i.i.i, label %96, label %.preheader.i.i.i .preheader.i.i.i: ; preds = %86 - %89 = call i32 @feof(ptr noundef nonnull %88) #21 + %89 = call i32 @feof(ptr noundef nonnull %88) #22 %.not3750.i.i.i = icmp eq i32 %89, 0 br i1 %.not3750.i.i.i, label %.lr.ph52.i.i.i, label %._crit_edge53.thread.i.i.i @@ -497,7 +497,7 @@ _ZSt6fill_nIPimiET_S1_T0_RKT1_.exit.loopexit.i.i.i.i.i.i.i: ; preds = %.noexc47. 92: ; preds = %.noexc48.i.i %93 = load i32, ptr %3, align 4 %spec.select.i.i.i = call i32 @llvm.smax.i32(i32 %93, i32 %.02751.i.i.i) - %94 = call i32 @feof(ptr noundef nonnull %88) #21 + %94 = call i32 @feof(ptr noundef nonnull %88) #22 %.not37.i.i.i = icmp eq i32 %94, 0 br i1 %.not37.i.i.i, label %.lr.ph52.i.i.i, label %._crit_edge53.i.i.i, !llvm.loop !10 @@ -508,7 +508,7 @@ _ZSt6fill_nIPimiET_S1_T0_RKT1_.exit.loopexit.i.i.i.i.i.i.i: ; preds = %.noexc47. br i1 %.not39.i.i.i, label %96, label %113 96: ; preds = %._crit_edge53.i.i.i, %._crit_edge53.thread.i.i.i, %86 - %97 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) @.str.16, i32 noundef %82) #21 + %97 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %2, ptr noundef nonnull dereferenceable(1) @.str.16, i32 noundef %82) #22 %98 = call noalias ptr @fopen(ptr noundef nonnull %2, ptr noundef nonnull @.str.7) %.not40.i.i.i = icmp eq ptr %98, null br i1 %.not40.i.i.i, label %113, label %99 @@ -524,7 +524,7 @@ _ZSt6fill_nIPimiET_S1_T0_RKT1_.exit.loopexit.i.i.i.i.i.i.i: ; preds = %.noexc47. 101: ; preds = %.noexc49.i.i %102 = load ptr, ptr @stderr, align 8 - %103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %102, ptr noundef nonnull @.str.18, i32 noundef %100) #25 + %103 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %102, ptr noundef nonnull @.str.18, i32 noundef %100) #26 %104 = load ptr, ptr @stderr, align 8 %fputc.i.i.i = call i32 @fputc(i32 10, ptr %104) br label %105 @@ -547,7 +547,7 @@ _ZSt6fill_nIPimiET_S1_T0_RKT1_.exit.loopexit.i.i.i.i.i.i.i: ; preds = %.noexc47. 109: ; preds = %.noexc50.i.i %110 = load i32, ptr %5, align 4 %spec.select44.i.i.i = call i32 @llvm.smax.i32(i32 %110, i32 %.02447.i.i.i) - %111 = call i32 @feof(ptr noundef nonnull %84) #21 + %111 = call i32 @feof(ptr noundef nonnull %84) #22 %.not42.i.i.i = icmp eq i32 %111, 0 br i1 %.not42.i.i.i, label %.lr.ph.i.i.i, label %._crit_edge.i.i.i, !llvm.loop !11 @@ -601,13 +601,13 @@ _ZSt6fill_nIPimiET_S1_T0_RKT1_.exit.loopexit.i.i.i.i.i.i.i: ; preds = %.noexc47. %indvars.iv34.i.i = phi i64 [ %indvars.iv.next35.i.i, %_ZN4ncnn6CpuSet6enableEi.exit53.i.i ], [ 0, %.preheader.i10.i ] call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %1) %122 = trunc nuw nsw i64 %indvars.iv34.i.i to i32 - %123 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %1, ptr noundef nonnull dereferenceable(1) @.str.19, i32 noundef %122) #21 + %123 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %1, ptr noundef nonnull dereferenceable(1) @.str.19, i32 noundef %122) #22 %124 = call noalias ptr @fopen(ptr noundef nonnull %1, ptr noundef nonnull @.str.7) %.not.i51.i.i = icmp eq ptr %124, null br i1 %.not.i51.i.i, label %125, label %128 125: ; preds = %.lr.ph29.i.i - %126 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %1, ptr noundef nonnull dereferenceable(1) @.str.20, i32 noundef %122) #21 + %126 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %1, ptr noundef nonnull dereferenceable(1) @.str.20, i32 noundef %122) #22 %127 = call noalias ptr @fopen(ptr noundef nonnull %1, ptr noundef nonnull @.str.7) %.not16.i.i.i = icmp eq ptr %127, null br i1 %.not16.i.i.i, label %.thread.i11.i, label %128 @@ -617,7 +617,7 @@ _ZSt6fill_nIPimiET_S1_T0_RKT1_.exit.loopexit.i.i.i.i.i.i.i: ; preds = %.noexc47. br label %129 129: ; preds = %131, %128 - %130 = call i32 @feof(ptr noundef nonnull %.013.i.i.i) #21 + %130 = call i32 @feof(ptr noundef nonnull %.013.i.i.i) #22 %.not17.i.i.i = icmp eq i32 %130, 0 br i1 %.not17.i.i.i, label %131, label %134 @@ -670,18 +670,18 @@ _ZN4ncnn6CpuSet6enableEi.exit53.i.i: ; preds = %_ZN4ncnn6CpuSet6ena br label %.loopexit.thread.i.i .loopexit.thread.i.i: ; preds = %_ZN4ncnn6CpuSet6enableEi.exit53.i.i, %.loopexit.i12.i, %.preheader.i10.i - call void @_ZdlPvm(ptr noundef nonnull %78, i64 noundef %77) #22 + call void @_ZdlPvm(ptr noundef nonnull %78, i64 noundef %77) #23 br label %_ZL35initialize_cpu_thread_affinity_maskRN4ncnn6CpuSetES1_S1_.exit.i _ZNSt6vectorIiSaIiEED2Ev.exit.i13.i: ; preds = %.loopexit.split-lp.loopexit.split-lp.i.i, %.loopexit.split-lp.loopexit.i.i, %.loopexit10.i.i %lpad.phi.i14.i = phi { ptr, i32 } [ %lpad.loopexit.i15.i, %.loopexit10.i.i ], [ %lpad.loopexit11.i.i, %.loopexit.split-lp.loopexit.i.i ], [ %lpad.loopexit.split-lp12.i.i, %.loopexit.split-lp.loopexit.split-lp.i.i ] - call void @_ZdlPvm(ptr noundef nonnull %78, i64 noundef %77) #22 + call void @_ZdlPvm(ptr noundef nonnull %78, i64 noundef %77) #23 br label %common.resume.i _ZL35initialize_cpu_thread_affinity_maskRN4ncnn6CpuSetES1_S1_.exit.i: ; preds = %.loopexit.thread.i.i, %_ZNSt6vectorIiSaIiEE17_S_check_init_lenEmRKS0_.exit.i.i.i call fastcc void @_ZL13get_elf_hwcapj(i32 noundef 16) call fastcc void @_ZL13get_elf_hwcapj(i32 noundef 26) - %152 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 0) #26, !srcloc !15 + %152 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 0) #27, !srcloc !15 %153 = extractvalue { i32, i32, i32, i32 } %152, 0 %154 = icmp slt i32 %153, 1 br i1 %154, label %_ZL23get_cpu_support_x86_avxv.exit.thread.i, label %_ZL9x86_cpuidiPj.exit6.i.i @@ -691,14 +691,14 @@ _ZL23get_cpu_support_x86_avxv.exit.thread.i: ; preds = %_ZL35initialize_cpu br label %_ZL23get_cpu_support_x86_fmav.exit.i _ZL9x86_cpuidiPj.exit6.i.i: ; preds = %_ZL35initialize_cpu_thread_affinity_maskRN4ncnn6CpuSetES1_S1_.exit.i - %155 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 1) #26 + %155 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 1) #27 %156 = extractvalue { i32, i32, i32, i32 } %155, 2 %157 = and i32 %156, 469762048 %or.cond5.not.i.i = icmp eq i32 %157, 469762048 br i1 %or.cond5.not.i.i, label %_ZL23get_cpu_support_x86_avxv.exit.i, label %_ZL23get_cpu_support_x86_avxv.exit.thread95.i _ZL23get_cpu_support_x86_avxv.exit.i: ; preds = %_ZL9x86_cpuidiPj.exit6.i.i - %158 = call noundef i32 asm ".byte 0x0f, 0x01, 0xd0", "={ax},{cx},~{edx},~{dirflag},~{fpsr},~{flags}"(i32 0) #26, !srcloc !16 + %158 = call noundef i32 asm ".byte 0x0f, 0x01, 0xd0", "={ax},{cx},~{edx},~{dirflag},~{fpsr},~{flags}"(i32 0) #27, !srcloc !16 %159 = and i32 %158, 6 %.not4.i.i = icmp eq i32 %159, 6 %..i.i = zext i1 %.not4.i.i to i32 @@ -720,13 +720,13 @@ _ZL23get_cpu_support_x86_fmav.exit.i: ; preds = %_ZL9x86_cpuidiPj.ex %163 = phi i1 [ true, %_ZL23get_cpu_support_x86_avxv.exit.i ], [ false, %_ZL9x86_cpuidiPj.exit6.i20.i ], [ true, %_ZL23get_cpu_support_x86_avxv.exit.thread.i ], [ %161, %_ZL23get_cpu_support_x86_avxv.exit.thread95.i ] %.0.i22.i = phi i32 [ 0, %_ZL23get_cpu_support_x86_avxv.exit.i ], [ %spec.select.i24.i, %_ZL9x86_cpuidiPj.exit6.i20.i ], [ 0, %_ZL23get_cpu_support_x86_avxv.exit.thread.i ], [ 0, %_ZL23get_cpu_support_x86_avxv.exit.thread95.i ] store i32 %.0.i22.i, ptr @_ZL21g_cpu_support_x86_fma, align 4 - %164 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -2147483648) #26, !srcloc !15 + %164 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -2147483648) #27, !srcloc !15 %165 = extractvalue { i32, i32, i32, i32 } %164, 0 %166 = icmp ult i32 %165, -2147483647 br i1 %166, label %_ZL23get_cpu_support_x86_xopv.exit.i, label %_ZL9x86_cpuidiPj.exit1.i.i _ZL9x86_cpuidiPj.exit1.i.i: ; preds = %_ZL23get_cpu_support_x86_fmav.exit.i - %167 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -2147483647) #26, !srcloc !17 + %167 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 -2147483647) #27, !srcloc !17 %168 = extractvalue { i32, i32, i32, i32 } %167, 2 %169 = and i32 %168, 2048 br label %_ZL23get_cpu_support_x86_xopv.exit.i @@ -737,7 +737,7 @@ _ZL23get_cpu_support_x86_xopv.exit.i: ; preds = %_ZL9x86_cpuidiPj.ex br i1 %154, label %_ZL24get_cpu_support_x86_f16cv.exit.i, label %_ZL9x86_cpuidiPj.exit2.i.i _ZL9x86_cpuidiPj.exit2.i.i: ; preds = %_ZL23get_cpu_support_x86_xopv.exit.i - %170 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 1) #26, !srcloc !17 + %170 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 1) #27, !srcloc !17 %171 = extractvalue { i32, i32, i32, i32 } %170, 2 %172 = and i32 %171, 536870912 br label %_ZL24get_cpu_support_x86_f16cv.exit.i @@ -748,23 +748,23 @@ _ZL24get_cpu_support_x86_f16cv.exit.i: ; preds = %_ZL9x86_cpuidiPj.ex br i1 %163, label %_ZL31get_cpu_support_x86_avx512_bf16v.exit.i, label %_ZL9x86_cpuidiPj.exit6.i27.i _ZL9x86_cpuidiPj.exit6.i27.i: ; preds = %_ZL24get_cpu_support_x86_f16cv.exit.i - %173 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 1) #26 + %173 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,~{dirflag},~{fpsr},~{flags}"(i32 1) #27 %174 = extractvalue { i32, i32, i32, i32 } %173, 2 %175 = and i32 %174, 469762048 %or.cond5.not.i28.i = icmp eq i32 %175, 469762048 br i1 %or.cond5.not.i28.i, label %176, label %_ZL9x86_cpuidiPj.exit7.i41.i 176: ; preds = %_ZL9x86_cpuidiPj.exit6.i27.i - %177 = call noundef i32 asm ".byte 0x0f, 0x01, 0xd0", "={ax},{cx},~{edx},~{dirflag},~{fpsr},~{flags}"(i32 0) #26, !srcloc !16 + %177 = call noundef i32 asm ".byte 0x0f, 0x01, 0xd0", "={ax},{cx},~{edx},~{dirflag},~{fpsr},~{flags}"(i32 0) #27, !srcloc !16 %178 = and i32 %177, 6 %.not4.i30.i = icmp eq i32 %178, 6 br i1 %.not4.i30.i, label %179, label %186 179: ; preds = %176 - %180 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #26, !srcloc !18 + %180 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #27, !srcloc !18 %181 = extractvalue { i32, i32, i32, i32 } %180, 1 %182 = and i32 %181, 32 - %183 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 1) #26, !srcloc !18 + %183 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 1) #27, !srcloc !18 %184 = extractvalue { i32, i32, i32, i32 } %183, 0 %185 = and i32 %184, 16 br label %186 @@ -779,7 +779,7 @@ _ZL9x86_cpuidiPj.exit6.i27.i: ; preds = %_ZL24get_cpu_suppor br i1 %or.cond19.i.i, label %188, label %195 188: ; preds = %186 - %189 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #26 + %189 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #27 %190 = extractvalue { i32, i32, i32, i32 } %189, 1 %191 = and i32 %190, 1342373888 %or.cond13.not.i.i = icmp eq i32 %191, 1342373888 @@ -797,7 +797,7 @@ _ZL9x86_cpuidiPj.exit6.i27.i: ; preds = %_ZL24get_cpu_suppor br i1 %.not4.i30.i, label %196, label %200 196: ; preds = %195 - %197 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 1) #26, !srcloc !18 + %197 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 1) #27, !srcloc !18 %198 = extractvalue { i32, i32, i32, i32 } %197, 0 %199 = and i32 %198, 32 br label %200 @@ -824,7 +824,7 @@ _ZL9x86_cpuidiPj.exit7.i41.i: ; preds = %_ZL9x86_cpuidiPj.ex br i1 %or.cond19.i.i, label %201, label %_ZL31get_cpu_support_x86_avx512_fp16v.exit.i 201: ; preds = %200 - %202 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #26, !srcloc !18 + %202 = call { i32, i32, i32, i32 } asm " xchgq %rbx,${1:q}\0A cpuid\0A xchgq %rbx,${1:q}", "={ax},=r,={cx},={dx},0,2,~{dirflag},~{fpsr},~{flags}"(i32 7, i32 0) #27, !srcloc !18 %203 = extractvalue { i32, i32, i32, i32 } %202, 3 %204 = and i32 %203, 8388608 br label %_ZL31get_cpu_support_x86_avx512_fp16v.exit.i @@ -893,7 +893,7 @@ _ZL27get_big_cpu_data_cache_sizei.exit.i.i: ; preds = %_ZNK4ncnn6CpuSet10i br i1 %225, label %226, label %_ZL24get_cpu_level2_cachesizev.exit.i 226: ; preds = %_ZL27get_big_cpu_data_cache_sizei.exit.i.i - %227 = call i64 @sysconf(i32 noundef 191) #21 + %227 = call i64 @sysconf(i32 noundef 191) #22 %228 = trunc i64 %227 to i32 %229 = icmp slt i32 %228, 1 br i1 %229, label %230, label %_ZL24get_cpu_level2_cachesizev.exit.i @@ -974,7 +974,7 @@ _ZL27get_big_cpu_data_cache_sizei.exit.i59.i: ; preds = %_ZNK4ncnn6CpuSet10i br i1 %254, label %255, label %_ZL26initialize_global_cpu_infov.exit 255: ; preds = %_ZL27get_big_cpu_data_cache_sizei.exit.i59.i - %256 = call i64 @sysconf(i32 noundef 194) #21 + %256 = call i64 @sysconf(i32 noundef 194) #22 %257 = trunc i64 %256 to i32 br label %_ZL26initialize_global_cpu_infov.exit @@ -1218,7 +1218,7 @@ define hidden noundef nonnull align 8 dereferenceable(128) ptr @_ZN4ncnn28get_cp 3: ; preds = %1 %4 = load ptr, ptr @stderr, align 8 - %5 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4, ptr noundef nonnull @.str, i32 noundef %0) #25 + %5 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %4, ptr noundef nonnull @.str, i32 noundef %0) #26 %6 = load ptr, ptr @stderr, align 8 %fputc = tail call i32 @fputc(i32 10, ptr %6) br label %8 @@ -1379,7 +1379,7 @@ define hidden noundef range(i32 -1, 1) i32 @_ZN4ncnn17set_cpu_powersaveEi(i32 no 2: ; preds = %1 %3 = load ptr, ptr @stderr, align 8 - %4 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3, ptr noundef nonnull @.str, i32 noundef %0) #25 + %4 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3, ptr noundef nonnull @.str, i32 noundef %0) #26 %5 = load ptr, ptr @stderr, align 8 %fputc = tail call i32 @fputc(i32 10, ptr %5) br label %15 @@ -1390,16 +1390,16 @@ switch.lookup: ; preds = %1 %switch.gep = getelementptr inbounds [3 x ptr], ptr @switch.table._ZN4ncnn17set_cpu_powersaveEi, i64 0, i64 %6 %switch.load = load ptr, ptr %switch.gep, align 8 tail call fastcc void @_ZL30try_initialize_global_cpu_infov() - %7 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #21 + %7 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #22 %8 = trunc i64 %7 to i32 - %9 = tail call i64 (i64, ...) @syscall(i64 noundef 203, i32 noundef %8, i64 noundef 128, ptr noundef nonnull %switch.load) #21 + %9 = tail call i64 (i64, ...) @syscall(i64 noundef 203, i32 noundef %8, i64 noundef 128, ptr noundef nonnull %switch.load) #22 %10 = trunc i64 %9 to i32 %.not.i.i = icmp eq i32 %10, 0 br i1 %.not.i.i, label %14, label %_ZN4ncnn23set_cpu_thread_affinityERKNS_6CpuSetE.exit _ZN4ncnn23set_cpu_thread_affinityERKNS_6CpuSetE.exit: ; preds = %switch.lookup %11 = load ptr, ptr @stderr, align 8 - %12 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11, ptr noundef nonnull @.str.34, i32 noundef %10) #25 + %12 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %11, ptr noundef nonnull @.str.34, i32 noundef %10) #26 %13 = load ptr, ptr @stderr, align 8 %fputc.i.i = tail call i32 @fputc(i32 10, ptr %13) br label %15 @@ -1419,16 +1419,16 @@ declare noundef i32 @fprintf(ptr nocapture noundef, ptr nocapture noundef readon ; Function Attrs: mustprogress uwtable define hidden noundef range(i32 -1, 1) i32 @_ZN4ncnn23set_cpu_thread_affinityERKNS_6CpuSetE(ptr noundef nonnull align 8 dereferenceable(128) %0) local_unnamed_addr #4 { tail call fastcc void @_ZL30try_initialize_global_cpu_infov() - %2 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #21 + %2 = tail call i64 (i64, ...) @syscall(i64 noundef 186) #22 %3 = trunc i64 %2 to i32 - %4 = tail call i64 (i64, ...) @syscall(i64 noundef 203, i32 noundef %3, i64 noundef 128, ptr noundef nonnull %0) #21 + %4 = tail call i64 (i64, ...) @syscall(i64 noundef 203, i32 noundef %3, i64 noundef 128, ptr noundef nonnull %0) #22 %5 = trunc i64 %4 to i32 %.not.i = icmp eq i32 %5, 0 br i1 %.not.i, label %9, label %_ZL18set_sched_affinityRKN4ncnn6CpuSetE.exit _ZL18set_sched_affinityRKN4ncnn6CpuSetE.exit: ; preds = %1 %6 = load ptr, ptr @stderr, align 8 - %7 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6, ptr noundef nonnull @.str.34, i32 noundef %5) #25 + %7 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %6, ptr noundef nonnull @.str.34, i32 noundef %5) #26 %8 = load ptr, ptr @stderr, align 8 %fputc.i = tail call i32 @fputc(i32 10, ptr %8) br label %9 @@ -1482,7 +1482,7 @@ define hidden void @_ZN4ncnn17set_kmp_blocktimeEi(i32 noundef %0) local_unnamed_ ; Function Attrs: mustprogress nounwind uwtable define linkonce_odr hidden void @_ZN4ncnn18ThreadLocalStorageD2Ev(ptr noundef nonnull align 4 dereferenceable(4) %0) unnamed_addr #7 comdat align 2 { %2 = load i32, ptr %0, align 4 - %3 = tail call i32 @pthread_key_delete(i32 noundef %2) #21 + %3 = tail call i32 @pthread_key_delete(i32 noundef %2) #22 ret void } @@ -1501,7 +1501,7 @@ define hidden noundef range(i32 -1, 1) i32 @_ZN4ncnn19set_flush_denormalsEi(i32 2: ; preds = %1 %3 = load ptr, ptr @stderr, align 8 - %4 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3, ptr noundef nonnull @.str.5, i32 noundef %0) #25 + %4 = tail call i32 (ptr, ptr, ...) @fprintf(ptr noundef %3, ptr noundef nonnull @.str.5, i32 noundef %0) #26 %5 = load ptr, ptr @stderr, align 8 %fputc = tail call i32 @fputc(i32 10, ptr %5) br label %6 @@ -1525,13 +1525,13 @@ define internal fastcc void @_ZL13get_elf_hwcapj(i32 noundef range(i32 16, 27) % 5: ; preds = %1 %6 = load ptr, ptr @stderr, align 8 - %7 = tail call i64 @fwrite(ptr nonnull @.str.22, i64 28, i64 1, ptr %6) #27 + %7 = tail call i64 @fwrite(ptr nonnull @.str.22, i64 28, i64 1, ptr %6) #28 %8 = load ptr, ptr @stderr, align 8 %fputc.i = tail call i32 @fputc(i32 10, ptr %8) br label %_ZL33get_elf_hwcap_from_proc_self_auxvj.exit 9: ; preds = %14, %.preheader.i - %10 = tail call i32 @feof(ptr noundef nonnull %3) #21 + %10 = tail call i32 @feof(ptr noundef nonnull %3) #22 %.not11.i = icmp eq i32 %10, 0 br i1 %.not11.i, label %11, label %20 @@ -1613,7 +1613,7 @@ define internal fastcc noundef range(i32 -2147483648, 2147482625) i32 @_ZL19get_ %8 = alloca i32, align 4 %9 = alloca %"class.ncnn::CpuSet", align 8 %10 = alloca [256 x i8], align 16 - %11 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.23, i32 noundef %0, i32 noundef 0) #21 + %11 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.23, i32 noundef %0, i32 noundef 0) #22 %12 = call noalias ptr @fopen(ptr noundef nonnull %5, ptr noundef nonnull @.str.7) %.not132 = icmp eq ptr %12, null br i1 %.not132, label %.thread, label %.lr.ph @@ -1631,7 +1631,7 @@ define internal fastcc noundef range(i32 -2147483648, 2147482625) i32 @_ZL19get_ br i1 %or.cond90, label %17, label %24 17: ; preds = %.lr.ph - %18 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.24, i32 noundef %0, i32 noundef %.064133) #21 + %18 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.24, i32 noundef %0, i32 noundef %.064133) #22 %19 = call noalias ptr @fopen(ptr noundef nonnull %5, ptr noundef nonnull @.str.7) %.not76 = icmp eq ptr %19, null br i1 %.not76, label %.thread, label %20 @@ -1652,14 +1652,14 @@ define internal fastcc noundef range(i32 -2147483648, 2147482625) i32 @_ZL19get_ 24: ; preds = %23, %20, %.lr.ph %25 = add nuw nsw i32 %.064133, 1 - %26 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.23, i32 noundef %0, i32 noundef %25) #21 + %26 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.23, i32 noundef %0, i32 noundef %25) #22 %27 = call noalias ptr @fopen(ptr noundef nonnull %5, ptr noundef nonnull @.str.7) %.not = icmp eq ptr %27, null br i1 %.not, label %.thread, label %.lr.ph, !llvm.loop !21 28: ; preds = %23 store i32 0, ptr %8, align 4 - %29 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.28, i32 noundef %0, i32 noundef %.064133) #21 + %29 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.28, i32 noundef %0, i32 noundef %.064133) #22 %30 = call noalias ptr @fopen(ptr noundef nonnull %5, ptr noundef nonnull @.str.7) %.not81 = icmp eq ptr %30, null br i1 %.not81, label %.thread, label %31 @@ -1672,14 +1672,14 @@ define internal fastcc noundef range(i32 -2147483648, 2147482625) i32 @_ZL19get_ 34: ; preds = %31 %35 = load ptr, ptr @stderr, align 8 - %36 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35, ptr noundef nonnull @.str.30, i32 noundef %32) #25 + %36 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %35, ptr noundef nonnull @.str.30, i32 noundef %32) #26 %37 = load ptr, ptr @stderr, align 8 %fputc89 = call i32 @fputc(i32 10, ptr %37) br label %.thread 38: ; preds = %31 call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(128) %9, i8 0, i64 128, i1 false) - %39 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.31, i32 noundef %0, i32 noundef %.064133) #21 + %39 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %5, ptr noundef nonnull dereferenceable(1) @.str.31, i32 noundef %0, i32 noundef %.064133) #22 %40 = call noalias ptr @fopen(ptr noundef nonnull %5, ptr noundef nonnull @.str.7) %.not83 = icmp eq ptr %40, null br i1 %.not83, label %.thread, label %41 @@ -1692,13 +1692,13 @@ define internal fastcc noundef range(i32 -2147483648, 2147482625) i32 @_ZL19get_ 44: ; preds = %41 %45 = load ptr, ptr @stderr, align 8 - %46 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %45, ptr noundef nonnull @.str.33, i32 noundef %42) #25 + %46 = call i32 (ptr, ptr, ...) @fprintf(ptr noundef %45, ptr noundef nonnull @.str.33, i32 noundef %42) #26 %47 = load ptr, ptr @stderr, align 8 %fputc = call i32 @fputc(i32 10, ptr %47) br label %.thread 48: ; preds = %41 - %49 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %10) #28 + %49 = call i64 @strlen(ptr noundef nonnull dereferenceable(1) %10) #29 %50 = trunc i64 %49 to i32 %51 = load i8, ptr %10, align 16 %52 = icmp eq i8 %51, 48 @@ -1816,7 +1816,8 @@ _ZNK4ncnn6CpuSet11num_enabledEv.exit: ; preds = %_ZNK4ncnn6CpuSet10i .preheader119: ; preds = %_ZNK4ncnn6CpuSet11num_enabledEv.exit %104 = load i32, ptr @_ZL10g_cpucount, align 4 %105 = icmp sgt i32 %104, 0 - br i1 %105, label %.lr.ph147, label %_ZNSt6vectorIiSaIiEED2Ev.exit100 + call void @llvm.assume(i1 %105) + br label %.lr.ph147 106: ; preds = %_ZNK4ncnn6CpuSet11num_enabledEv.exit %107 = load i32, ptr %8, align 4 @@ -1846,7 +1847,7 @@ _ZNK4ncnn6CpuSet10is_enabledEi.exit: ; preds = %.lr.ph147 call void @llvm.lifetime.start.p0(i64 256, ptr nonnull %3) call void @llvm.lifetime.start.p0(i64 4, ptr nonnull %4) %117 = trunc nuw nsw i64 %indvars.iv163 to i32 - %118 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.9, i32 noundef %117) #21 + %118 = call i32 (ptr, ptr, ...) @sprintf(ptr noundef nonnull dereferenceable(1) %3, ptr noundef nonnull dereferenceable(1) @.str.9, i32 noundef %117) #22 %119 = call noalias ptr @fopen(ptr noundef nonnull %3, ptr noundef nonnull @.str.7) %.not.i = icmp eq ptr %119, null br i1 %.not.i, label %.thread112, label %120 @@ -1900,7 +1901,7 @@ _ZNK4ncnn6CpuSet10is_enabledEi.exit: ; preds = %.lr.ph147 %132 = ptrtoint ptr %.sroa.12.0143 to i64 %133 = ptrtoint ptr %.sroa.0.0144 to i64 %134 = sub i64 %132, %133 - call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.0144, i64 noundef %134) #22 + call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.0144, i64 noundef %134) #23 br label %_ZNSt6vectorIiSaIiEED2Ev.exit _ZNSt6vectorIiSaIiEED2Ev.exit: ; preds = %130, %131 @@ -1931,7 +1932,7 @@ _ZNSt6vectorIiSaIiEED2Ev.exit: ; preds = %130, %131 br i1 %142, label %143, label %_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i 143: ; preds = %141 - invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.11) #23 + invoke void @_ZSt20__throw_length_errorPKc(ptr noundef nonnull @.str.11) #24 to label %.noexc97 unwind label %.loopexit.split-lp .noexc97: ; preds = %143 @@ -1948,7 +1949,7 @@ _ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i: ; preds = %141 148: ; preds = %_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i %149 = shl nuw nsw i64 %147, 2 - %150 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %149) #24 + %150 = invoke noalias noundef nonnull ptr @_Znwm(i64 noundef %149) #25 to label %_ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.i.i unwind label %.loopexit _ZNSt12_Vector_baseIiSaIiEE11_M_allocateEm.exit.i.i: ; preds = %148, %_ZNKSt6vectorIiSaIiEE12_M_check_lenEmPKc.exit.i.i @@ -1968,7 +1969,7 @@ _ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16.i.i: ; preds = %154, %_ZNS br i1 %.not.i17.i.i, label %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i, label %156 156: ; preds = %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16.i.i - call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.0144, i64 noundef %128) #22 + call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.0144, i64 noundef %128) #23 br label %_ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i _ZNSt6vectorIiSaIiEE17_M_realloc_insertIJRKiEEEvN9__gnu_cxx17__normal_iteratorIPiS1_EEDpOT_.exit.i: ; preds = %156, %_ZNSt6vectorIiSaIiEE11_S_relocateEPiS2_S2_RS0_.exit16.i.i @@ -2002,13 +2003,12 @@ _ZNK4ncnn6CpuSet10is_enabledEi.exit.thread: ; preds = %.lr.ph140, %.lr.ph1 %163 = ptrtoint ptr %.sroa.12.1 to i64 %164 = ptrtoint ptr %.sroa.0.1 to i64 %165 = sub i64 %163, %164 - call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.1, i64 noundef %165) #22 + call void @_ZdlPvm(ptr noundef nonnull %.sroa.0.1, i64 noundef %165) #23 br label %_ZNSt6vectorIiSaIiEED2Ev.exit100 -_ZNSt6vectorIiSaIiEED2Ev.exit100: ; preds = %.preheader119, %._crit_edge, %162 - %.063.lcssa170 = phi i32 [ %.1, %._crit_edge ], [ %.1, %162 ], [ 0, %.preheader119 ] +_ZNSt6vectorIiSaIiEED2Ev.exit100: ; preds = %._crit_edge, %162 %166 = load i32, ptr %8, align 4 - %167 = sdiv i32 %166, %.063.lcssa170 + %167 = sdiv i32 %166, %.1 %168 = add nsw i32 %167, 3 %169 = sdiv i32 %168, 4 %170 = shl nsw i32 %169, 12 @@ -2036,8 +2036,8 @@ define internal void @_GLOBAL__sub_I_cpu.cpp() #17 section ".text.startup" { tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(128) @_ZL23g_cpu_affinity_mask_all, i8 0, i64 128, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(128) @_ZL26g_cpu_affinity_mask_little, i8 0, i64 128, i1 false) tail call void @llvm.memset.p0.i64(ptr noundef nonnull align 8 dereferenceable(128) @_ZL23g_cpu_affinity_mask_big, i8 0, i64 128, i1 false) - %1 = tail call i32 @pthread_key_create(ptr noundef nonnull @_ZN4ncnnL19tls_flush_denormalsE, ptr noundef null) #21 - %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN4ncnn18ThreadLocalStorageD2Ev, ptr nonnull @_ZN4ncnnL19tls_flush_denormalsE, ptr nonnull @__dso_handle) #21 + %1 = tail call i32 @pthread_key_create(ptr noundef nonnull @_ZN4ncnnL19tls_flush_denormalsE, ptr noundef null) #22 + %2 = tail call i32 @__cxa_atexit(ptr nonnull @_ZN4ncnn18ThreadLocalStorageD2Ev, ptr nonnull @_ZN4ncnnL19tls_flush_denormalsE, ptr nonnull @__dso_handle) #22 ret void } @@ -2068,6 +2068,9 @@ declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #20 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smin.i32(i32, i32) #18 +; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) +declare void @llvm.assume(i1 noundef) #21 + attributes #0 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: write) uwtable "approx-func-fp-math"="true" "frame-pointer"="all" "min-legal-vector-width"="0" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "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" "unsafe-fp-math"="true" } attributes #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(argmem: readwrite) uwtable "approx-func-fp-math"="true" "frame-pointer"="all" "min-legal-vector-width"="0" "no-infs-fp-math"="true" "no-nans-fp-math"="true" "no-signed-zeros-fp-math"="true" "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" "unsafe-fp-math"="true" } attributes #2 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: write) } @@ -2089,14 +2092,15 @@ attributes #17 = { nounwind uwtable "approx-func-fp-math"="true" "frame-pointer" attributes #18 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #19 = { nofree nounwind willreturn memory(argmem: read) } attributes #20 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #21 = { nounwind } -attributes #22 = { builtin nounwind } -attributes #23 = { noreturn } -attributes #24 = { builtin allocsize(0) } -attributes #25 = { cold nounwind } -attributes #26 = { nounwind memory(none) } -attributes #27 = { cold } -attributes #28 = { nounwind willreturn memory(read) } +attributes #21 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #22 = { nounwind } +attributes #23 = { builtin nounwind } +attributes #24 = { noreturn } +attributes #25 = { builtin allocsize(0) } +attributes #26 = { cold nounwind } +attributes #27 = { nounwind memory(none) } +attributes #28 = { cold } +attributes #29 = { nounwind willreturn memory(read) } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/opencv/optimized/cuda_gpu_mat.cpp.ll b/bench/opencv/optimized/cuda_gpu_mat.cpp.ll index 1a0a1c656c4..639dd1edf5f 100644 --- a/bench/opencv/optimized/cuda_gpu_mat.cpp.ll +++ b/bench/opencv/optimized/cuda_gpu_mat.cpp.ll @@ -273,12 +273,12 @@ define void @_ZN2cv4cuda6GpuMatC2ERKS1_NS_5RangeES4_(ptr nocapture noundef nonnu br i1 %or.cond, label %42, label %49 42: ; preds = %39, %37 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str, ptr noundef nonnull align 1 dereferenceable(1) %8) to label %43 unwind label %45 43: ; preds = %42 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @__func__._ZN2cv4cuda6GpuMatC2ERKS1_NS_5RangeES4_, ptr noundef nonnull @.str.1, i32 noundef 117) #12 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @__func__._ZN2cv4cuda6GpuMatC2ERKS1_NS_5RangeES4_, ptr noundef nonnull @.str.1, i32 noundef 117) #13 to label %44 unwind label %47 44: ; preds = %43 @@ -292,7 +292,7 @@ define void @_ZN2cv4cuda6GpuMatC2ERKS1_NS_5RangeES4_(ptr nocapture noundef nonnu 47: ; preds = %43 %48 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #12 br label %118 49: ; preds = %39 @@ -333,12 +333,12 @@ define void @_ZN2cv4cuda6GpuMatC2ERKS1_NS_5RangeES4_(ptr nocapture noundef nonnu br i1 %or.cond32, label %70, label %77 70: ; preds = %67, %65 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #12 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.2, ptr noundef nonnull align 1 dereferenceable(1) %10) to label %71 unwind label %73 71: ; preds = %70 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @__func__._ZN2cv4cuda6GpuMatC2ERKS1_NS_5RangeES4_, ptr noundef nonnull @.str.1, i32 noundef 129) #12 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @__func__._ZN2cv4cuda6GpuMatC2ERKS1_NS_5RangeES4_, ptr noundef nonnull @.str.1, i32 noundef 129) #13 to label %72 unwind label %75 72: ; preds = %71 @@ -352,7 +352,7 @@ define void @_ZN2cv4cuda6GpuMatC2ERKS1_NS_5RangeES4_(ptr nocapture noundef nonnu 75: ; preds = %71 %76 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #12 br label %118 77: ; preds = %67 @@ -433,7 +433,7 @@ define void @_ZN2cv4cuda6GpuMatC2ERKS1_NS_5RangeES4_(ptr nocapture noundef nonnu 118: ; preds = %73, %75, %45, %47 %.sink = phi ptr [ %8, %47 ], [ %8, %45 ], [ %10, %75 ], [ %10, %73 ] %.pn26.pn = phi { ptr, i32 } [ %48, %47 ], [ %46, %45 ], [ %76, %75 ], [ %74, %73 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %.sink) #11 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %.sink) #12 resume { ptr, i32 } %.pn26.pn } @@ -536,12 +536,12 @@ define void @_ZN2cv4cuda6GpuMatC2ERKS1_NS_5Rect_IiEE(ptr nocapture noundef nonnu br i1 %.not, label %58, label %66 58: ; preds = %54, %47, %4 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.3, ptr noundef nonnull align 1 dereferenceable(1) %8) to label %59 unwind label %61 59: ; preds = %58 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @__func__._ZN2cv4cuda6GpuMatC2ERKS1_NS_5RangeES4_, ptr noundef nonnull @.str.1, i32 noundef 155) #12 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @__func__._ZN2cv4cuda6GpuMatC2ERKS1_NS_5RangeES4_, ptr noundef nonnull @.str.1, i32 noundef 155) #13 to label %60 unwind label %63 60: ; preds = %59 @@ -555,12 +555,12 @@ define void @_ZN2cv4cuda6GpuMatC2ERKS1_NS_5Rect_IiEE(ptr nocapture noundef nonnu 63: ; preds = %59 %64 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #12 br label %65 65: ; preds = %63, %61 %.pn = phi { ptr, i32 } [ %64, %63 ], [ %62, %61 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12 resume { ptr, i32 } %.pn 66: ; preds = %54 @@ -715,12 +715,12 @@ _ZN2cv4cuda6GpuMatC2ERKS1_.exit: ; preds = %4, %38 br i1 %.not61, label %62, label %69 62: ; preds = %59 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #11 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #12 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.4, ptr noundef nonnull align 1 dereferenceable(1) %6) to label %63 unwind label %65 63: ; preds = %62 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -13, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @__func__._ZNK2cv4cuda6GpuMat7reshapeEii, ptr noundef nonnull @.str.1, i32 noundef 183) #12 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -13, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @__func__._ZNK2cv4cuda6GpuMat7reshapeEii, ptr noundef nonnull @.str.1, i32 noundef 183) #13 to label %64 unwind label %67 64: ; preds = %63 @@ -734,7 +734,7 @@ _ZN2cv4cuda6GpuMatC2ERKS1_.exit: ; preds = %4, %38 67: ; preds = %63 %68 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #11 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #12 br label %112 69: ; preds = %59 @@ -742,12 +742,12 @@ _ZN2cv4cuda6GpuMatC2ERKS1_.exit: ; preds = %4, %38 br i1 %70, label %71, label %78 71: ; preds = %69 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #11 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.5, ptr noundef nonnull align 1 dereferenceable(1) %8) to label %72 unwind label %74 72: ; preds = %71 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -211, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @__func__._ZNK2cv4cuda6GpuMat7reshapeEii, ptr noundef nonnull @.str.1, i32 noundef 186) #12 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -211, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @__func__._ZNK2cv4cuda6GpuMat7reshapeEii, ptr noundef nonnull @.str.1, i32 noundef 186) #13 to label %73 unwind label %76 73: ; preds = %72 @@ -761,7 +761,7 @@ _ZN2cv4cuda6GpuMatC2ERKS1_.exit: ; preds = %4, %38 76: ; preds = %72 %77 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #11 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #12 br label %112 78: ; preds = %69 @@ -771,12 +771,12 @@ _ZN2cv4cuda6GpuMatC2ERKS1_.exit: ; preds = %4, %38 br i1 %.not49, label %88, label %81 81: ; preds = %78 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #11 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #12 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.6, ptr noundef nonnull align 1 dereferenceable(1) %10) to label %82 unwind label %84 82: ; preds = %81 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -5, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @__func__._ZNK2cv4cuda6GpuMat7reshapeEii, ptr noundef nonnull @.str.1, i32 noundef 191) #12 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -5, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @__func__._ZNK2cv4cuda6GpuMat7reshapeEii, ptr noundef nonnull @.str.1, i32 noundef 191) #13 to label %83 unwind label %86 83: ; preds = %82 @@ -790,7 +790,7 @@ _ZN2cv4cuda6GpuMatC2ERKS1_.exit: ; preds = %4, %38 86: ; preds = %82 %87 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #11 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #12 br label %112 88: ; preds = %78 @@ -813,12 +813,12 @@ _ZN2cv4cuda6GpuMatC2ERKS1_.exit: ; preds = %4, %38 br i1 %.not50, label %106, label %99 99: ; preds = %96 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #11 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #12 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.7, ptr noundef nonnull align 1 dereferenceable(1) %12) to label %100 unwind label %102 100: ; preds = %99 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -15, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @__func__._ZNK2cv4cuda6GpuMat7reshapeEii, ptr noundef nonnull @.str.1, i32 noundef 200) #12 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -15, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @__func__._ZNK2cv4cuda6GpuMat7reshapeEii, ptr noundef nonnull @.str.1, i32 noundef 200) #13 to label %101 unwind label %104 101: ; preds = %100 @@ -832,7 +832,7 @@ _ZN2cv4cuda6GpuMatC2ERKS1_.exit: ; preds = %4, %38 104: ; preds = %100 %105 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #11 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #12 br label %112 106: ; preds = %96 @@ -848,7 +848,7 @@ _ZN2cv4cuda6GpuMatC2ERKS1_.exit: ; preds = %4, %38 112: ; preds = %102, %104, %84, %86, %74, %76, %65, %67 %.sink = phi ptr [ %6, %67 ], [ %6, %65 ], [ %8, %76 ], [ %8, %74 ], [ %10, %86 ], [ %10, %84 ], [ %12, %104 ], [ %12, %102 ] %.pn55.pn = phi { ptr, i32 } [ %68, %67 ], [ %66, %65 ], [ %77, %76 ], [ %75, %74 ], [ %87, %86 ], [ %85, %84 ], [ %105, %104 ], [ %103, %102 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %.sink) #11 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %.sink) #12 resume { ptr, i32 } %.pn55.pn } @@ -1100,11 +1100,11 @@ common.resume: ; preds = %105, %31 31: ; preds = %25 %32 = landingpad { ptr, i32 } cleanup - call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %7) #11 + call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %7) #12 br label %common.resume _ZN12_GLOBAL__N_120createContinuousImplIN2cv3MatEEEviiiRT_.exit: ; preds = %25 - call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %7) #11 + call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %7) #12 call void @llvm.lifetime.end.p0(i64 96, ptr nonnull %7) br label %111 @@ -1136,7 +1136,7 @@ _ZN12_GLOBAL__N_120createContinuousImplIN2cv3MatEEEviiiRT_.exit: ; preds = %25 br i1 %.not16.i19, label %50, label %.critedge.i18 .critedge.i18: ; preds = %44, %39, %33 - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable 50: ; preds = %44 @@ -1235,7 +1235,7 @@ _ZN12_GLOBAL__N_120createContinuousImplIN2cv4cuda6GpuMatEEEviiiRT_.exit: ; preds %103 = landingpad { ptr, i32 } catch ptr null %104 = extractvalue { ptr, i32 } %103, 0 - call void @__clang_call_terminate(ptr %104) #13 + call void @__clang_call_terminate(ptr %104) #14 unreachable 105: ; preds = %95 @@ -1248,7 +1248,7 @@ _ZN12_GLOBAL__N_120createContinuousImplIN2cv4cuda6GpuMatEEEviiiRT_.exit: ; preds %108 = landingpad { ptr, i32 } catch ptr null %109 = extractvalue { ptr, i32 } %108, 0 - call void @__clang_call_terminate(ptr %109) #13 + call void @__clang_call_terminate(ptr %109) #14 unreachable _ZN12_GLOBAL__N_120createContinuousImplIN2cv4cuda7HostMemEEEviiiRT_.exit: ; preds = %101 @@ -1276,10 +1276,10 @@ declare void @_ZNK2cv12_OutputArray6createEiiiibNS0_9DepthMaskE(ptr noundef nonn ; Function Attrs: mustprogress uwtable define void @_ZN2cv4cuda18ensureSizeIsEnoughEiiiRKNS_12_OutputArrayE(i32 noundef %0, i32 noundef %1, i32 noundef %2, ptr noundef nonnull align 8 dereferenceable(24) %3) local_unnamed_addr #0 { %5 = tail call noundef i32 @_ZNK2cv11_InputArray4kindEv(ptr noundef nonnull align 8 dereferenceable(24) %3) - switch i32 %5, label %152 [ + switch i32 %5, label %149 [ i32 65536, label %6 - i32 589824, label %57 - i32 524288, label %104 + i32 589824, label %54 + i32 524288, label %101 ] 6: ; preds = %4 @@ -1299,219 +1299,213 @@ define void @_ZN2cv4cuda18ensureSizeIsEnoughEiiiRKNS_12_OutputArrayE(i32 noundef %15 = getelementptr inbounds i8, ptr %7, i64 24 %16 = load ptr, ptr %15, align 8 %.not33.i = icmp eq ptr %14, %16 - br i1 %.not33.i, label %18, label %17 + br i1 %.not33.i, label %_ZNK2cv3Mat8elemSizeEv.exit.i, label %17 17: ; preds = %12, %9, %6 tail call void @_ZN2cv3Mat6createEiii(ptr noundef nonnull align 8 dereferenceable(96) %7, i32 noundef %0, i32 noundef %1, i32 noundef %2) br label %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv3MatEEEviiiRT_.exit -18: ; preds = %12 - %19 = getelementptr inbounds i8, ptr %7, i64 4 - %20 = load i32, ptr %19, align 4 - %21 = icmp sgt i32 %20, 0 - br i1 %21, label %22, label %_ZNK2cv3Mat8elemSizeEv.exit.i - -22: ; preds = %18 - %23 = getelementptr inbounds i8, ptr %7, i64 72 - %24 = load ptr, ptr %23, align 8 - %25 = zext nneg i32 %20 to i64 - %26 = getelementptr i64, ptr %24, i64 %25 - %27 = getelementptr i8, ptr %26, i64 -8 - %28 = load i64, ptr %27, align 8 - br label %_ZNK2cv3Mat8elemSizeEv.exit.i - -_ZNK2cv3Mat8elemSizeEv.exit.i: ; preds = %22, %18 - %29 = phi i64 [ %28, %22 ], [ 0, %18 ] - %30 = getelementptr inbounds i8, ptr %7, i64 32 - %31 = load ptr, ptr %30, align 8 - %32 = ptrtoint ptr %31 to i64 - %33 = ptrtoint ptr %14 to i64 - %34 = sub i64 %32, %33 - %35 = getelementptr inbounds i8, ptr %7, i64 12 - %36 = load i32, ptr %35, align 4 - %37 = sext i32 %36 to i64 - %38 = mul i64 %29, %37 - %39 = sub i64 %34, %38 - %40 = getelementptr inbounds i8, ptr %7, i64 80 - %41 = load i64, ptr %40, align 8 - %42 = udiv i64 %39, %41 - %43 = trunc i64 %42 to i32 - %44 = add i32 %43, 1 - %45 = getelementptr inbounds i8, ptr %7, i64 8 - %46 = load i32, ptr %45, align 8 - %.sroa.speculated37.i = tail call i32 @llvm.smax.i32(i32 %44, i32 %46) - %47 = add nsw i32 %.sroa.speculated37.i, -1 - %48 = sext i32 %47 to i64 - %49 = mul i64 %41, %48 - %50 = sub i64 %34, %49 - %51 = udiv i64 %50, %29 - %52 = trunc i64 %51 to i32 - %.sroa.speculated.i = tail call i32 @llvm.smax.i32(i32 %36, i32 %52) - %53 = icmp slt i32 %.sroa.speculated37.i, %0 - %54 = icmp slt i32 %.sroa.speculated.i, %1 - %or.cond.i = select i1 %53, i1 true, i1 %54 - br i1 %or.cond.i, label %55, label %56 - -55: ; preds = %_ZNK2cv3Mat8elemSizeEv.exit.i +_ZNK2cv3Mat8elemSizeEv.exit.i: ; preds = %12 + %18 = getelementptr inbounds i8, ptr %7, i64 4 + %19 = load i32, ptr %18, align 4 + %20 = icmp sgt i32 %19, 0 + tail call void @llvm.assume(i1 %20) + %21 = getelementptr inbounds i8, ptr %7, i64 72 + %22 = load ptr, ptr %21, align 8 + %23 = zext nneg i32 %19 to i64 + %24 = getelementptr i64, ptr %22, i64 %23 + %25 = getelementptr i8, ptr %24, i64 -8 + %26 = load i64, ptr %25, align 8 + %27 = getelementptr inbounds i8, ptr %7, i64 32 + %28 = load ptr, ptr %27, align 8 + %29 = ptrtoint ptr %28 to i64 + %30 = ptrtoint ptr %14 to i64 + %31 = sub i64 %29, %30 + %32 = getelementptr inbounds i8, ptr %7, i64 12 + %33 = load i32, ptr %32, align 4 + %34 = sext i32 %33 to i64 + %35 = mul i64 %26, %34 + %36 = sub i64 %31, %35 + %37 = getelementptr inbounds i8, ptr %7, i64 80 + %38 = load i64, ptr %37, align 8 + %39 = udiv i64 %36, %38 + %40 = trunc i64 %39 to i32 + %41 = add i32 %40, 1 + %42 = getelementptr inbounds i8, ptr %7, i64 8 + %43 = load i32, ptr %42, align 8 + %.sroa.speculated37.i = tail call i32 @llvm.smax.i32(i32 %41, i32 %43) + %44 = add nsw i32 %.sroa.speculated37.i, -1 + %45 = sext i32 %44 to i64 + %46 = mul i64 %38, %45 + %47 = sub i64 %31, %46 + %48 = udiv i64 %47, %26 + %49 = trunc i64 %48 to i32 + %.sroa.speculated.i = tail call i32 @llvm.smax.i32(i32 %33, i32 %49) + %50 = icmp slt i32 %.sroa.speculated37.i, %0 + %51 = icmp slt i32 %.sroa.speculated.i, %1 + %or.cond.i = select i1 %50, i1 true, i1 %51 + br i1 %or.cond.i, label %52, label %53 + +52: ; preds = %_ZNK2cv3Mat8elemSizeEv.exit.i tail call void @_ZN2cv3Mat6createEiii(ptr noundef nonnull align 8 dereferenceable(96) %7, i32 noundef %0, i32 noundef %1, i32 noundef %2) br label %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv3MatEEEviiiRT_.exit -56: ; preds = %_ZNK2cv3Mat8elemSizeEv.exit.i - store i32 %1, ptr %35, align 4 - store i32 %0, ptr %45, align 8 +53: ; preds = %_ZNK2cv3Mat8elemSizeEv.exit.i + store i32 %1, ptr %32, align 4 + store i32 %0, ptr %42, align 8 br label %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv3MatEEEviiiRT_.exit -57: ; preds = %4 - %58 = tail call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK2cv12_OutputArray12getGpuMatRefEv(ptr noundef nonnull align 8 dereferenceable(24) %3) - %59 = getelementptr inbounds i8, ptr %58, i64 24 - %60 = load ptr, ptr %59, align 8 - %61 = icmp eq ptr %60, null - br i1 %61, label %67, label %62 - -62: ; preds = %57 - %63 = load i32, ptr %58, align 8 - %64 = and i32 %63, 4095 - %.not.i16 = icmp eq i32 %64, %2 - %65 = getelementptr inbounds i8, ptr %58, i64 40 - %66 = load ptr, ptr %65, align 8 - %.not33.i17 = icmp eq ptr %60, %66 +54: ; preds = %4 + %55 = tail call noundef nonnull align 8 dereferenceable(64) ptr @_ZNK2cv12_OutputArray12getGpuMatRefEv(ptr noundef nonnull align 8 dereferenceable(24) %3) + %56 = getelementptr inbounds i8, ptr %55, i64 24 + %57 = load ptr, ptr %56, align 8 + %58 = icmp eq ptr %57, null + br i1 %58, label %64, label %59 + +59: ; preds = %54 + %60 = load i32, ptr %55, align 8 + %61 = and i32 %60, 4095 + %.not.i16 = icmp eq i32 %61, %2 + %62 = getelementptr inbounds i8, ptr %55, i64 40 + %63 = load ptr, ptr %62, align 8 + %.not33.i17 = icmp eq ptr %57, %63 %or.cond42.i = select i1 %.not.i16, i1 %.not33.i17, i1 false - br i1 %or.cond42.i, label %68, label %67 + br i1 %or.cond42.i, label %65, label %64 -67: ; preds = %62, %57 - tail call fastcc void @_ZL13throw_no_cudav() #12 +64: ; preds = %59, %54 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable -68: ; preds = %62 - %69 = lshr i32 %63, 3 - %70 = and i32 %69, 511 - %71 = add nuw nsw i32 %70, 1 - %72 = shl i32 %63, 2 - %73 = and i32 %72, 28 - %74 = lshr i32 675553809, %73 - %75 = and i32 %74, 15 - %76 = mul nuw nsw i32 %75, %71 - %77 = zext nneg i32 %76 to i64 - %78 = getelementptr inbounds i8, ptr %58, i64 48 - %79 = load ptr, ptr %78, align 8 - %80 = ptrtoint ptr %79 to i64 - %81 = ptrtoint ptr %60 to i64 - %82 = sub i64 %80, %81 - %83 = getelementptr inbounds i8, ptr %58, i64 8 - %84 = load i32, ptr %83, align 8 - %85 = sext i32 %84 to i64 - %86 = mul nsw i64 %85, %77 - %87 = sub i64 %82, %86 - %88 = getelementptr inbounds i8, ptr %58, i64 16 - %89 = load i64, ptr %88, align 8 - %90 = udiv i64 %87, %89 - %91 = trunc i64 %90 to i32 - %92 = add i32 %91, 1 - %93 = getelementptr inbounds i8, ptr %58, i64 4 - %94 = load i32, ptr %93, align 4 - %.sroa.speculated38.i = tail call i32 @llvm.smax.i32(i32 %92, i32 %94) - %95 = add nsw i32 %.sroa.speculated38.i, -1 - %96 = sext i32 %95 to i64 - %97 = mul i64 %89, %96 - %98 = sub i64 %82, %97 - %99 = udiv i64 %98, %77 - %100 = trunc i64 %99 to i32 - %.sroa.speculated.i18 = tail call i32 @llvm.smax.i32(i32 %84, i32 %100) - %101 = icmp slt i32 %.sroa.speculated38.i, %0 - %102 = icmp slt i32 %.sroa.speculated.i18, %1 - %or.cond.i19 = select i1 %101, i1 true, i1 %102 - br i1 %or.cond.i19, label %103, label %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv4cuda6GpuMatEEEviiiRT_.exit - -103: ; preds = %68 - tail call fastcc void @_ZL13throw_no_cudav() #12 +65: ; preds = %59 + %66 = lshr i32 %60, 3 + %67 = and i32 %66, 511 + %68 = add nuw nsw i32 %67, 1 + %69 = shl i32 %60, 2 + %70 = and i32 %69, 28 + %71 = lshr i32 675553809, %70 + %72 = and i32 %71, 15 + %73 = mul nuw nsw i32 %72, %68 + %74 = zext nneg i32 %73 to i64 + %75 = getelementptr inbounds i8, ptr %55, i64 48 + %76 = load ptr, ptr %75, align 8 + %77 = ptrtoint ptr %76 to i64 + %78 = ptrtoint ptr %57 to i64 + %79 = sub i64 %77, %78 + %80 = getelementptr inbounds i8, ptr %55, i64 8 + %81 = load i32, ptr %80, align 8 + %82 = sext i32 %81 to i64 + %83 = mul nsw i64 %82, %74 + %84 = sub i64 %79, %83 + %85 = getelementptr inbounds i8, ptr %55, i64 16 + %86 = load i64, ptr %85, align 8 + %87 = udiv i64 %84, %86 + %88 = trunc i64 %87 to i32 + %89 = add i32 %88, 1 + %90 = getelementptr inbounds i8, ptr %55, i64 4 + %91 = load i32, ptr %90, align 4 + %.sroa.speculated38.i = tail call i32 @llvm.smax.i32(i32 %89, i32 %91) + %92 = add nsw i32 %.sroa.speculated38.i, -1 + %93 = sext i32 %92 to i64 + %94 = mul i64 %86, %93 + %95 = sub i64 %79, %94 + %96 = udiv i64 %95, %74 + %97 = trunc i64 %96 to i32 + %.sroa.speculated.i18 = tail call i32 @llvm.smax.i32(i32 %81, i32 %97) + %98 = icmp slt i32 %.sroa.speculated38.i, %0 + %99 = icmp slt i32 %.sroa.speculated.i18, %1 + %or.cond.i19 = select i1 %98, i1 true, i1 %99 + br i1 %or.cond.i19, label %100, label %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv4cuda6GpuMatEEEviiiRT_.exit + +100: ; preds = %65 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable -_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv4cuda6GpuMatEEEviiiRT_.exit: ; preds = %68 - store i32 %1, ptr %83, align 8 - store i32 %0, ptr %93, align 4 +_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv4cuda6GpuMatEEEviiiRT_.exit: ; preds = %65 + store i32 %1, ptr %80, align 8 + store i32 %0, ptr %90, align 4 br label %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv3MatEEEviiiRT_.exit -104: ; preds = %4 - %105 = tail call noundef nonnull align 8 dereferenceable(60) ptr @_ZNK2cv12_OutputArray13getHostMemRefEv(ptr noundef nonnull align 8 dereferenceable(24) %3) - %106 = getelementptr inbounds i8, ptr %105, i64 24 - %107 = load ptr, ptr %106, align 8 - %108 = icmp eq ptr %107, null - br i1 %108, label %114, label %109 - -109: ; preds = %104 - %110 = load i32, ptr %105, align 8 - %111 = and i32 %110, 4095 - %.not.i20 = icmp eq i32 %111, %2 - %112 = getelementptr inbounds i8, ptr %105, i64 40 - %113 = load ptr, ptr %112, align 8 - %.not33.i21 = icmp eq ptr %107, %113 +101: ; preds = %4 + %102 = tail call noundef nonnull align 8 dereferenceable(60) ptr @_ZNK2cv12_OutputArray13getHostMemRefEv(ptr noundef nonnull align 8 dereferenceable(24) %3) + %103 = getelementptr inbounds i8, ptr %102, i64 24 + %104 = load ptr, ptr %103, align 8 + %105 = icmp eq ptr %104, null + br i1 %105, label %111, label %106 + +106: ; preds = %101 + %107 = load i32, ptr %102, align 8 + %108 = and i32 %107, 4095 + %.not.i20 = icmp eq i32 %108, %2 + %109 = getelementptr inbounds i8, ptr %102, i64 40 + %110 = load ptr, ptr %109, align 8 + %.not33.i21 = icmp eq ptr %104, %110 %or.cond41.i = select i1 %.not.i20, i1 %.not33.i21, i1 false - br i1 %or.cond41.i, label %115, label %114 + br i1 %or.cond41.i, label %112, label %111 -114: ; preds = %109, %104 - tail call void @_ZN2cv4cuda7HostMem6createEiii(ptr noundef nonnull align 8 dereferenceable(60) %105, i32 noundef %0, i32 noundef %1, i32 noundef %2) +111: ; preds = %106, %101 + tail call void @_ZN2cv4cuda7HostMem6createEiii(ptr noundef nonnull align 8 dereferenceable(60) %102, i32 noundef %0, i32 noundef %1, i32 noundef %2) br label %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv3MatEEEviiiRT_.exit -115: ; preds = %109 - %116 = lshr i32 %110, 3 - %117 = and i32 %116, 511 - %118 = add nuw nsw i32 %117, 1 - %119 = shl i32 %110, 2 - %120 = and i32 %119, 28 - %121 = lshr i32 675553809, %120 - %122 = and i32 %121, 15 - %123 = mul nuw nsw i32 %122, %118 - %124 = zext nneg i32 %123 to i64 - %125 = getelementptr inbounds i8, ptr %105, i64 48 - %126 = load ptr, ptr %125, align 8 - %127 = ptrtoint ptr %126 to i64 - %128 = ptrtoint ptr %107 to i64 - %129 = sub i64 %127, %128 - %130 = getelementptr inbounds i8, ptr %105, i64 8 - %131 = load i32, ptr %130, align 8 - %132 = sext i32 %131 to i64 - %133 = mul nsw i64 %132, %124 - %134 = sub i64 %129, %133 - %135 = getelementptr inbounds i8, ptr %105, i64 16 - %136 = load i64, ptr %135, align 8 - %137 = udiv i64 %134, %136 - %138 = trunc i64 %137 to i32 - %139 = add i32 %138, 1 - %140 = getelementptr inbounds i8, ptr %105, i64 4 - %141 = load i32, ptr %140, align 4 - %.sroa.speculated37.i22 = tail call i32 @llvm.smax.i32(i32 %139, i32 %141) - %142 = add nsw i32 %.sroa.speculated37.i22, -1 - %143 = sext i32 %142 to i64 - %144 = mul i64 %136, %143 - %145 = sub i64 %129, %144 - %146 = udiv i64 %145, %124 - %147 = trunc i64 %146 to i32 - %.sroa.speculated.i23 = tail call i32 @llvm.smax.i32(i32 %131, i32 %147) - %148 = icmp slt i32 %.sroa.speculated37.i22, %0 - %149 = icmp slt i32 %.sroa.speculated.i23, %1 - %or.cond.i24 = select i1 %148, i1 true, i1 %149 - br i1 %or.cond.i24, label %150, label %151 - -150: ; preds = %115 - tail call void @_ZN2cv4cuda7HostMem6createEiii(ptr noundef nonnull align 8 dereferenceable(60) %105, i32 noundef %0, i32 noundef %1, i32 noundef %2) +112: ; preds = %106 + %113 = lshr i32 %107, 3 + %114 = and i32 %113, 511 + %115 = add nuw nsw i32 %114, 1 + %116 = shl i32 %107, 2 + %117 = and i32 %116, 28 + %118 = lshr i32 675553809, %117 + %119 = and i32 %118, 15 + %120 = mul nuw nsw i32 %119, %115 + %121 = zext nneg i32 %120 to i64 + %122 = getelementptr inbounds i8, ptr %102, i64 48 + %123 = load ptr, ptr %122, align 8 + %124 = ptrtoint ptr %123 to i64 + %125 = ptrtoint ptr %104 to i64 + %126 = sub i64 %124, %125 + %127 = getelementptr inbounds i8, ptr %102, i64 8 + %128 = load i32, ptr %127, align 8 + %129 = sext i32 %128 to i64 + %130 = mul nsw i64 %129, %121 + %131 = sub i64 %126, %130 + %132 = getelementptr inbounds i8, ptr %102, i64 16 + %133 = load i64, ptr %132, align 8 + %134 = udiv i64 %131, %133 + %135 = trunc i64 %134 to i32 + %136 = add i32 %135, 1 + %137 = getelementptr inbounds i8, ptr %102, i64 4 + %138 = load i32, ptr %137, align 4 + %.sroa.speculated37.i22 = tail call i32 @llvm.smax.i32(i32 %136, i32 %138) + %139 = add nsw i32 %.sroa.speculated37.i22, -1 + %140 = sext i32 %139 to i64 + %141 = mul i64 %133, %140 + %142 = sub i64 %126, %141 + %143 = udiv i64 %142, %121 + %144 = trunc i64 %143 to i32 + %.sroa.speculated.i23 = tail call i32 @llvm.smax.i32(i32 %128, i32 %144) + %145 = icmp slt i32 %.sroa.speculated37.i22, %0 + %146 = icmp slt i32 %.sroa.speculated.i23, %1 + %or.cond.i24 = select i1 %145, i1 true, i1 %146 + br i1 %or.cond.i24, label %147, label %148 + +147: ; preds = %112 + tail call void @_ZN2cv4cuda7HostMem6createEiii(ptr noundef nonnull align 8 dereferenceable(60) %102, i32 noundef %0, i32 noundef %1, i32 noundef %2) br label %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv3MatEEEviiiRT_.exit -151: ; preds = %115 - store i32 %1, ptr %130, align 8 - store i32 %0, ptr %140, align 4 +148: ; preds = %112 + store i32 %1, ptr %127, align 8 + store i32 %0, ptr %137, align 4 br label %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv3MatEEEviiiRT_.exit -152: ; preds = %4 +149: ; preds = %4 tail call void @_ZNK2cv12_OutputArray6createEiiiibNS0_9DepthMaskE(ptr noundef nonnull align 8 dereferenceable(24) %3, i32 noundef %0, i32 noundef %1, i32 noundef %2, i32 noundef -1, i1 noundef zeroext false, i32 noundef 0) br label %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv3MatEEEviiiRT_.exit -_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv3MatEEEviiiRT_.exit: ; preds = %151, %150, %114, %56, %55, %17, %152, %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv4cuda6GpuMatEEEviiiRT_.exit +_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv3MatEEEviiiRT_.exit: ; preds = %148, %147, %111, %53, %52, %17, %149, %_ZN12_GLOBAL__N_122ensureSizeIsEnoughImplIN2cv4cuda6GpuMatEEEviiiRT_.exit ret void } ; Function Attrs: mustprogress noreturn uwtable define void @_ZN2cv4cuda11getInputMatERKNS_11_InputArrayERNS0_6StreamE(ptr dead_on_unwind noalias nocapture readnone sret(%"class.cv::cuda::GpuMat") align 8 %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1, ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %2) local_unnamed_addr #6 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } @@ -1519,12 +1513,12 @@ define void @_ZN2cv4cuda11getInputMatERKNS_11_InputArrayERNS0_6StreamE(ptr dead_ define internal fastcc void @_ZL13throw_no_cudav() unnamed_addr #6 personality ptr @__gxx_personality_v0 { %1 = alloca %"class.std::__cxx11::basic_string", align 8 %2 = alloca %"class.std::allocator", align 1 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #11 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #12 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull @.str.8, ptr noundef nonnull align 1 dereferenceable(1) %2) to label %3 unwind label %5 3: ; preds = %0 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -216, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull @__func__._ZL13throw_no_cudav, ptr noundef nonnull @.str.9, i32 noundef 106) #12 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -216, ptr noundef nonnull align 8 dereferenceable(32) %1, ptr noundef nonnull @__func__._ZL13throw_no_cudav, ptr noundef nonnull @.str.9, i32 noundef 106) #13 to label %4 unwind label %7 4: ; preds = %3 @@ -1538,36 +1532,36 @@ define internal fastcc void @_ZL13throw_no_cudav() unnamed_addr #6 personality p 7: ; preds = %3 %8 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #11 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %1) #12 br label %9 9: ; preds = %7, %5 %.pn = phi { ptr, i32 } [ %8, %7 ], [ %6, %5 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #11 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %2) #12 resume { ptr, i32 } %.pn } ; Function Attrs: mustprogress noreturn uwtable define void @_ZN2cv4cuda12getOutputMatERKNS_12_OutputArrayEiiiRNS0_6StreamE(ptr dead_on_unwind noalias nocapture readnone sret(%"class.cv::cuda::GpuMat") align 8 %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %5) local_unnamed_addr #6 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define void @_ZN2cv4cuda10syncOutputERKNS0_6GpuMatERKNS_12_OutputArrayERNS0_6StreamE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1, ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %2) local_unnamed_addr #6 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define void @_ZN2cv4cuda6GpuMat19setDefaultAllocatorEPNS1_9AllocatorE(ptr nocapture noundef readnone %0) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define void @_ZN2cv4cuda6GpuMat6createEiii(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, i32 noundef %1, i32 noundef %2, i32 noundef %3) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } @@ -1578,67 +1572,67 @@ define void @_ZN2cv4cuda6GpuMat7releaseEv(ptr nocapture noundef nonnull readnone ; Function Attrs: mustprogress noreturn uwtable define void @_ZN2cv4cuda6GpuMat6uploadERKNS_11_InputArrayE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define void @_ZN2cv4cuda6GpuMat6uploadERKNS_11_InputArrayERNS0_6StreamE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1, ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %2) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define void @_ZNK2cv4cuda6GpuMat8downloadERKNS_12_OutputArrayE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define void @_ZNK2cv4cuda6GpuMat8downloadERKNS_12_OutputArrayERNS0_6StreamE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1, ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %2) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define void @_ZNK2cv4cuda6GpuMat6copyToERKNS_12_OutputArrayE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define void @_ZNK2cv4cuda6GpuMat6copyToERKNS_12_OutputArrayERNS0_6StreamE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1, ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %2) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define void @_ZNK2cv4cuda6GpuMat6copyToERKNS_12_OutputArrayERKNS_11_InputArrayERNS0_6StreamE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %2, ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %3) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define noalias noundef nonnull align 8 dereferenceable(64) ptr @_ZN2cv4cuda6GpuMat5setToENS_7Scalar_IdEERNS0_6StreamE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef readnone %1, ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %2) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define noalias noundef nonnull align 8 dereferenceable(64) ptr @_ZN2cv4cuda6GpuMat5setToENS_7Scalar_IdEERKNS_11_InputArrayERNS0_6StreamE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef readnone %1, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %2, ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %3) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define void @_ZNK2cv4cuda6GpuMat9convertToERKNS_12_OutputArrayEiRNS0_6StreamE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1, i32 noundef %2, ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %3) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } ; Function Attrs: mustprogress noreturn uwtable define void @_ZNK2cv4cuda6GpuMat9convertToERKNS_12_OutputArrayEiddRNS0_6StreamE(ptr nocapture noundef nonnull readnone align 8 dereferenceable(64) %0, ptr nocapture noundef nonnull readnone align 8 dereferenceable(24) %1, i32 noundef %2, double noundef %3, double noundef %4, ptr nocapture noundef nonnull readnone align 8 dereferenceable(16) %5) local_unnamed_addr #6 align 2 { - tail call fastcc void @_ZL13throw_no_cudav() #12 + tail call fastcc void @_ZL13throw_no_cudav() #13 unreachable } @@ -1766,7 +1760,7 @@ _ZN2cv4cuda7HostMemC2ERKS1_.exit: ; preds = %4, %30 %59 = landingpad { ptr, i32 } catch ptr null %60 = extractvalue { ptr, i32 } %59, 0 - call void @__clang_call_terminate(ptr %60) #13 + call void @__clang_call_terminate(ptr %60) #14 unreachable _ZN2cv4cuda7HostMemD2Ev.exit: ; preds = %_ZN2cv4cuda7HostMemC2ERKS1_.exit, %2 @@ -1777,8 +1771,8 @@ declare void @_ZN2cv4cuda7HostMem7releaseEv(ptr noundef nonnull align 8 derefere ; Function Attrs: noreturn nounwind uwtable define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) local_unnamed_addr #7 comdat { - %2 = tail call ptr @__cxa_begin_catch(ptr %0) #11 - tail call void @_ZSt9terminatev() #13 + %2 = tail call ptr @__cxa_begin_catch(ptr %0) #12 + tail call void @_ZSt9terminatev() #14 unreachable } @@ -1799,6 +1793,9 @@ declare i32 @llvm.smax.i32(i32, i32) #10 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smin.i32(i32, i32) #10 +; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) +declare void @llvm.assume(i1 noundef) #11 + attributes #0 = { mustprogress 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,+sse3,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } attributes #2 = { mustprogress nofree norecurse nosync nounwind willreturn memory(none) 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,+sse3,+x87" "tune-cpu"="generic" } @@ -1810,9 +1807,10 @@ attributes #7 = { noreturn nounwind uwtable "frame-pointer"="all" "no-trapping-m attributes #8 = { cold nofree noreturn } attributes #9 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #11 = { nounwind } -attributes #12 = { noreturn } -attributes #13 = { noreturn nounwind } +attributes #11 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #12 = { nounwind } +attributes #13 = { noreturn } +attributes #14 = { noreturn nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/opencv/optimized/denoising.cpp.ll b/bench/opencv/optimized/denoising.cpp.ll index 5d77811001e..96d0acd1b43 100644 --- a/bench/opencv/optimized/denoising.cpp.ll +++ b/bench/opencv/optimized/denoising.cpp.ll @@ -9904,9 +9904,7 @@ _ZN2cv7Array3dIiEC2Eiii.exit106: ; preds = %30 %.2 = phi i32 [ %195, %.loopexit ], [ 0, %68 ] %196 = load i32, ptr %9, align 8 %197 = icmp sgt i32 %196, 0 - br i1 %197, label %.lr.ph157, label %._crit_edge158.split.us - -.lr.ph157: ; preds = %.preheader131.preheader + call void @llvm.assume(i1 %197) %198 = load i32, ptr %46, align 8 %invariant.op = add i32 %64, %198 %199 = load ptr, ptr %48, align 8 @@ -9923,12 +9921,12 @@ _ZN2cv7Array3dIiEC2Eiii.exit106: ; preds = %30 %invariant.gep215 = getelementptr %"class.cv::Vec.34", ptr %199, i64 %207 br label %.lr.ph144.us -.lr.ph144.us: ; preds = %._crit_edge145.us, %.lr.ph157 - %indvars.iv196 = phi i64 [ %indvars.iv.next197, %._crit_edge145.us ], [ 0, %.lr.ph157 ] - %.lcssa150166.us = phi i32 [ %237, %._crit_edge145.us ], [ 0, %.lr.ph157 ] - %.lcssa148163.us = phi i32 [ %235, %._crit_edge145.us ], [ 0, %.lr.ph157 ] - %.lcssa152155.us = phi i32 [ %232, %._crit_edge145.us ], [ 0, %.lr.ph157 ] - %.lcssa141153154.us = phi i32 [ %236, %._crit_edge145.us ], [ 0, %.lr.ph157 ] +.lr.ph144.us: ; preds = %._crit_edge145.us, %.preheader131.preheader + %indvars.iv196 = phi i64 [ %indvars.iv.next197, %._crit_edge145.us ], [ 0, %.preheader131.preheader ] + %.lcssa150166.us = phi i32 [ %237, %._crit_edge145.us ], [ 0, %.preheader131.preheader ] + %.lcssa148163.us = phi i32 [ %235, %._crit_edge145.us ], [ 0, %.preheader131.preheader ] + %.lcssa152155.us = phi i32 [ %232, %._crit_edge145.us ], [ 0, %.preheader131.preheader ] + %.lcssa141153154.us = phi i32 [ %236, %._crit_edge145.us ], [ 0, %.preheader131.preheader ] %209 = trunc nuw nsw i64 %indvars.iv196 to i32 %.reass.us = add i32 %invariant.op, %209 %210 = sext i32 %.reass.us to i64 @@ -9973,17 +9971,13 @@ _ZN2cv7Array3dIiEC2Eiii.exit106: ; preds = %30 %exitcond200.not = icmp eq i64 %indvars.iv.next197, %wide.trip.count199 br i1 %exitcond200.not, label %._crit_edge158.split.us, label %.lr.ph144.us, !llvm.loop !122 -._crit_edge158.split.us: ; preds = %._crit_edge145.us, %.preheader131.preheader - %.sroa.4.1 = phi i32 [ 0, %.preheader131.preheader ], [ %235, %._crit_edge145.us ] - %.sroa.3.1 = phi i32 [ 0, %.preheader131.preheader ], [ %237, %._crit_edge145.us ] - %.lcssa141153.lcssa = phi i32 [ 0, %.preheader131.preheader ], [ %236, %._crit_edge145.us ] - %.lcssa152.lcssa = phi i32 [ 0, %.preheader131.preheader ], [ %232, %._crit_edge145.us ] - %238 = sdiv i32 %.lcssa141153.lcssa, 2 - %239 = add i32 %238, %.lcssa152.lcssa - %240 = udiv i32 %239, %.lcssa141153.lcssa - %241 = sdiv i32 %.sroa.3.1, 2 - %242 = add i32 %241, %.sroa.4.1 - %243 = udiv i32 %242, %.sroa.3.1 +._crit_edge158.split.us: ; preds = %._crit_edge145.us + %238 = sdiv i32 %236, 2 + %239 = add i32 %238, %232 + %240 = udiv i32 %239, %236 + %241 = sdiv i32 %237, 2 + %242 = add i32 %241, %235 + %243 = udiv i32 %242, %237 %244 = call i32 @llvm.smax.i32(i32 %240, i32 0) %245 = call i32 @llvm.umin.i32(i32 %244, i32 255) %.sroa.0.0.insert.ext = trunc nuw nsw i32 %245 to i16 @@ -18759,9 +18753,7 @@ _ZN2cv7Array3dIiEC2Eiii.exit106: ; preds = %30 %.2 = phi i32 [ %197, %.loopexit ], [ 0, %68 ] %198 = load i32, ptr %9, align 8 %199 = icmp sgt i32 %198, 0 - br i1 %199, label %.lr.ph160, label %._crit_edge161.split.us - -.lr.ph160: ; preds = %.preheader134.preheader + call void @llvm.assume(i1 %199) %200 = load i32, ptr %46, align 8 %invariant.op = add i32 %64, %200 %201 = load ptr, ptr %48, align 8 @@ -18778,12 +18770,12 @@ _ZN2cv7Array3dIiEC2Eiii.exit106: ; preds = %30 %invariant.gep218 = getelementptr %"class.cv::Vec.34", ptr %201, i64 %209 br label %.lr.ph147.us -.lr.ph147.us: ; preds = %._crit_edge148.us, %.lr.ph160 - %indvars.iv199 = phi i64 [ %indvars.iv.next200, %._crit_edge148.us ], [ 0, %.lr.ph160 ] - %.lcssa153169.us = phi i32 [ %239, %._crit_edge148.us ], [ 0, %.lr.ph160 ] - %.lcssa151166.us = phi i32 [ %237, %._crit_edge148.us ], [ 0, %.lr.ph160 ] - %.lcssa155158.us = phi i32 [ %234, %._crit_edge148.us ], [ 0, %.lr.ph160 ] - %.lcssa144156157.us = phi i32 [ %238, %._crit_edge148.us ], [ 0, %.lr.ph160 ] +.lr.ph147.us: ; preds = %._crit_edge148.us, %.preheader134.preheader + %indvars.iv199 = phi i64 [ %indvars.iv.next200, %._crit_edge148.us ], [ 0, %.preheader134.preheader ] + %.lcssa153169.us = phi i32 [ %239, %._crit_edge148.us ], [ 0, %.preheader134.preheader ] + %.lcssa151166.us = phi i32 [ %237, %._crit_edge148.us ], [ 0, %.preheader134.preheader ] + %.lcssa155158.us = phi i32 [ %234, %._crit_edge148.us ], [ 0, %.preheader134.preheader ] + %.lcssa144156157.us = phi i32 [ %238, %._crit_edge148.us ], [ 0, %.preheader134.preheader ] %211 = trunc nuw nsw i64 %indvars.iv199 to i32 %.reass.us = add i32 %invariant.op, %211 %212 = sext i32 %.reass.us to i64 @@ -18828,17 +18820,13 @@ _ZN2cv7Array3dIiEC2Eiii.exit106: ; preds = %30 %exitcond203.not = icmp eq i64 %indvars.iv.next200, %wide.trip.count202 br i1 %exitcond203.not, label %._crit_edge161.split.us, label %.lr.ph147.us, !llvm.loop !459 -._crit_edge161.split.us: ; preds = %._crit_edge148.us, %.preheader134.preheader - %.sroa.4.1 = phi i32 [ 0, %.preheader134.preheader ], [ %237, %._crit_edge148.us ] - %.sroa.3.1 = phi i32 [ 0, %.preheader134.preheader ], [ %239, %._crit_edge148.us ] - %.lcssa144156.lcssa = phi i32 [ 0, %.preheader134.preheader ], [ %238, %._crit_edge148.us ] - %.lcssa155.lcssa = phi i32 [ 0, %.preheader134.preheader ], [ %234, %._crit_edge148.us ] - %240 = sdiv i32 %.lcssa144156.lcssa, 2 - %241 = add i32 %240, %.lcssa155.lcssa - %242 = udiv i32 %241, %.lcssa144156.lcssa - %243 = sdiv i32 %.sroa.3.1, 2 - %244 = add i32 %243, %.sroa.4.1 - %245 = udiv i32 %244, %.sroa.3.1 +._crit_edge161.split.us: ; preds = %._crit_edge148.us + %240 = sdiv i32 %238, 2 + %241 = add i32 %240, %234 + %242 = udiv i32 %241, %238 + %243 = sdiv i32 %239, 2 + %244 = add i32 %243, %237 + %245 = udiv i32 %244, %239 %246 = call i32 @llvm.smax.i32(i32 %242, i32 0) %247 = call i32 @llvm.umin.i32(i32 %246, i32 255) %.sroa.0.0.insert.ext = trunc nuw nsw i32 %247 to i16 @@ -27446,9 +27434,7 @@ _ZN2cv7Array3dIiEC2Eiii.exit106: ; preds = %30 %.2 = phi i32 [ %197, %.loopexit ], [ 0, %68 ] %198 = load i32, ptr %9, align 8 %199 = icmp sgt i32 %198, 0 - br i1 %199, label %.lr.ph160, label %._crit_edge161.split.us - -.lr.ph160: ; preds = %.preheader134.preheader + call void @llvm.assume(i1 %199) %200 = load i32, ptr %46, align 8 %invariant.op = add i32 %64, %200 %201 = load ptr, ptr %48, align 8 @@ -27465,12 +27451,12 @@ _ZN2cv7Array3dIiEC2Eiii.exit106: ; preds = %30 %invariant.gep218 = getelementptr %"class.cv::Vec.60", ptr %201, i64 %209 br label %.lr.ph147.us -.lr.ph147.us: ; preds = %._crit_edge148.us, %.lr.ph160 - %indvars.iv199 = phi i64 [ %indvars.iv.next200, %._crit_edge148.us ], [ 0, %.lr.ph160 ] - %.lcssa153169.us = phi i64 [ %241, %._crit_edge148.us ], [ 0, %.lr.ph160 ] - %.lcssa151166.us = phi i64 [ %239, %._crit_edge148.us ], [ 0, %.lr.ph160 ] - %.lcssa155158.us = phi i64 [ %235, %._crit_edge148.us ], [ 0, %.lr.ph160 ] - %.lcssa144156157.us = phi i64 [ %240, %._crit_edge148.us ], [ 0, %.lr.ph160 ] +.lr.ph147.us: ; preds = %._crit_edge148.us, %.preheader134.preheader + %indvars.iv199 = phi i64 [ %indvars.iv.next200, %._crit_edge148.us ], [ 0, %.preheader134.preheader ] + %.lcssa153169.us = phi i64 [ %241, %._crit_edge148.us ], [ 0, %.preheader134.preheader ] + %.lcssa151166.us = phi i64 [ %239, %._crit_edge148.us ], [ 0, %.preheader134.preheader ] + %.lcssa155158.us = phi i64 [ %235, %._crit_edge148.us ], [ 0, %.preheader134.preheader ] + %.lcssa144156157.us = phi i64 [ %240, %._crit_edge148.us ], [ 0, %.preheader134.preheader ] %211 = trunc nuw nsw i64 %indvars.iv199 to i32 %.reass.us = add i32 %invariant.op, %211 %212 = sext i32 %.reass.us to i64 @@ -27517,17 +27503,13 @@ _ZN2cv7Array3dIiEC2Eiii.exit106: ; preds = %30 %exitcond203.not = icmp eq i64 %indvars.iv.next200, %wide.trip.count202 br i1 %exitcond203.not, label %._crit_edge161.split.us, label %.lr.ph147.us, !llvm.loop !788 -._crit_edge161.split.us: ; preds = %._crit_edge148.us, %.preheader134.preheader - %.sroa.4.1 = phi i64 [ 0, %.preheader134.preheader ], [ %239, %._crit_edge148.us ] - %.sroa.3.1 = phi i64 [ 0, %.preheader134.preheader ], [ %241, %._crit_edge148.us ] - %.lcssa144156.lcssa = phi i64 [ 0, %.preheader134.preheader ], [ %240, %._crit_edge148.us ] - %.lcssa155.lcssa = phi i64 [ 0, %.preheader134.preheader ], [ %235, %._crit_edge148.us ] - %242 = sdiv i64 %.lcssa144156.lcssa, 2 - %243 = add i64 %242, %.lcssa155.lcssa - %244 = udiv i64 %243, %.lcssa144156.lcssa - %245 = sdiv i64 %.sroa.3.1, 2 - %246 = add i64 %245, %.sroa.4.1 - %247 = udiv i64 %246, %.sroa.3.1 +._crit_edge161.split.us: ; preds = %._crit_edge148.us + %242 = sdiv i64 %240, 2 + %243 = add i64 %242, %235 + %244 = udiv i64 %243, %240 + %245 = sdiv i64 %241, 2 + %246 = add i64 %245, %239 + %247 = udiv i64 %246, %241 %248 = call i64 @llvm.smax.i64(i64 %244, i64 0) %249 = call i64 @llvm.umin.i64(i64 %248, i64 65535) %.sroa.0.0.insert.ext = trunc nuw nsw i64 %249 to i32 @@ -37978,9 +37960,7 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %.2106 = phi i32 [ %229, %.loopexit ], [ 0, %83 ] %230 = load i32, ptr %10, align 4 %231 = icmp sgt i32 %230, 0 - br i1 %231, label %.lr.ph244, label %._crit_edge - -.lr.ph244: ; preds = %.preheader196.preheader + call void @llvm.assume(i1 %231) %232 = load ptr, ptr %65, align 8 %233 = load i32, ptr %12, align 8 %234 = icmp sgt i32 %233, 0 @@ -37992,9 +37972,7 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %factor.op.mul = mul i32 %237, %238 %239 = load i32, ptr %68, align 8 %240 = load ptr, ptr %69, align 8 - br i1 %234, label %.lr.ph223.us.preheader, label %._crit_edge - -.lr.ph223.us.preheader: ; preds = %.lr.ph244 + call void @llvm.assume(i1 %234) %241 = add nsw i32 %81, %235 %242 = sext i32 %241 to i64 %243 = sext i32 %238 to i64 @@ -38002,12 +37980,12 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %wide.trip.count289 = zext nneg i32 %233 to i64 br label %.lr.ph223.us -.lr.ph223.us: ; preds = %.lr.ph223.us.preheader, %._crit_edge224.split.us.us - %indvars.iv291 = phi i64 [ 0, %.lr.ph223.us.preheader ], [ %indvars.iv.next292, %._crit_edge224.split.us.us ] - %.lcssa215231.lcssa.us250.us = phi i32 [ 0, %.lr.ph223.us.preheader ], [ %281, %._crit_edge224.split.us.us ] - %.lcssa213228.lcssa.us247.us = phi i32 [ 0, %.lr.ph223.us.preheader ], [ %279, %._crit_edge224.split.us.us ] - %.lcssa217.lcssa238242.us = phi i32 [ 0, %.lr.ph223.us.preheader ], [ %276, %._crit_edge224.split.us.us ] - %.lcssa208218.lcssa240241.us = phi i32 [ 0, %.lr.ph223.us.preheader ], [ %280, %._crit_edge224.split.us.us ] +.lr.ph223.us: ; preds = %.preheader196.preheader, %._crit_edge224.split.us.us + %indvars.iv291 = phi i64 [ 0, %.preheader196.preheader ], [ %indvars.iv.next292, %._crit_edge224.split.us.us ] + %.lcssa215231.lcssa.us250.us = phi i32 [ 0, %.preheader196.preheader ], [ %281, %._crit_edge224.split.us.us ] + %.lcssa213228.lcssa.us247.us = phi i32 [ 0, %.preheader196.preheader ], [ %279, %._crit_edge224.split.us.us ] + %.lcssa217.lcssa238242.us = phi i32 [ 0, %.preheader196.preheader ], [ %276, %._crit_edge224.split.us.us ] + %.lcssa208218.lcssa240241.us = phi i32 [ 0, %.preheader196.preheader ], [ %280, %._crit_edge224.split.us.us ] %244 = getelementptr inbounds %"class.cv::Mat", ptr %232, i64 %indvars.iv291 %245 = getelementptr inbounds i8, ptr %244, i64 16 %246 = load ptr, ptr %245, align 8 @@ -38076,17 +38054,13 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %exitcond295.not = icmp eq i64 %indvars.iv.next292, %wide.trip.count294 br i1 %exitcond295.not, label %._crit_edge, label %.lr.ph223.us, !llvm.loop !1212 -._crit_edge: ; preds = %._crit_edge224.split.us.us, %.lr.ph244, %.preheader196.preheader - %.sroa.4.1 = phi i32 [ 0, %.preheader196.preheader ], [ 0, %.lr.ph244 ], [ %279, %._crit_edge224.split.us.us ] - %.sroa.3.1 = phi i32 [ 0, %.preheader196.preheader ], [ 0, %.lr.ph244 ], [ %281, %._crit_edge224.split.us.us ] - %.lcssa208218.lcssa240.lcssa = phi i32 [ 0, %.preheader196.preheader ], [ 0, %.lr.ph244 ], [ %280, %._crit_edge224.split.us.us ] - %.lcssa217.lcssa238.lcssa = phi i32 [ 0, %.preheader196.preheader ], [ 0, %.lr.ph244 ], [ %276, %._crit_edge224.split.us.us ] - %282 = sdiv i32 %.lcssa208218.lcssa240.lcssa, 2 - %283 = add i32 %282, %.lcssa217.lcssa238.lcssa - %284 = udiv i32 %283, %.lcssa208218.lcssa240.lcssa - %285 = sdiv i32 %.sroa.3.1, 2 - %286 = add i32 %285, %.sroa.4.1 - %287 = udiv i32 %286, %.sroa.3.1 +._crit_edge: ; preds = %._crit_edge224.split.us.us + %282 = sdiv i32 %280, 2 + %283 = add i32 %282, %276 + %284 = udiv i32 %283, %280 + %285 = sdiv i32 %281, 2 + %286 = add i32 %285, %279 + %287 = udiv i32 %286, %281 %288 = call i32 @llvm.smax.i32(i32 %284, i32 0) %289 = call i32 @llvm.umin.i32(i32 %288, i32 255) %.sroa.0.0.insert.ext = trunc nuw nsw i32 %289 to i16 @@ -49822,9 +49796,7 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %.2106 = phi i32 [ %231, %.loopexit ], [ 0, %83 ] %232 = load i32, ptr %10, align 4 %233 = icmp sgt i32 %232, 0 - br i1 %233, label %.lr.ph247, label %._crit_edge - -.lr.ph247: ; preds = %.preheader199.preheader + call void @llvm.assume(i1 %233) %234 = load ptr, ptr %65, align 8 %235 = load i32, ptr %12, align 8 %236 = icmp sgt i32 %235, 0 @@ -49836,9 +49808,7 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %factor.op.mul = mul i32 %239, %240 %241 = load i32, ptr %68, align 8 %242 = load ptr, ptr %69, align 8 - br i1 %236, label %.lr.ph226.us.preheader, label %._crit_edge - -.lr.ph226.us.preheader: ; preds = %.lr.ph247 + call void @llvm.assume(i1 %236) %243 = add nsw i32 %81, %237 %244 = sext i32 %243 to i64 %245 = sext i32 %240 to i64 @@ -49846,12 +49816,12 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %wide.trip.count292 = zext nneg i32 %235 to i64 br label %.lr.ph226.us -.lr.ph226.us: ; preds = %.lr.ph226.us.preheader, %._crit_edge227.split.us.us - %indvars.iv294 = phi i64 [ 0, %.lr.ph226.us.preheader ], [ %indvars.iv.next295, %._crit_edge227.split.us.us ] - %.lcssa218234.lcssa.us253.us = phi i32 [ 0, %.lr.ph226.us.preheader ], [ %283, %._crit_edge227.split.us.us ] - %.lcssa216231.lcssa.us250.us = phi i32 [ 0, %.lr.ph226.us.preheader ], [ %281, %._crit_edge227.split.us.us ] - %.lcssa220.lcssa241245.us = phi i32 [ 0, %.lr.ph226.us.preheader ], [ %278, %._crit_edge227.split.us.us ] - %.lcssa211221.lcssa243244.us = phi i32 [ 0, %.lr.ph226.us.preheader ], [ %282, %._crit_edge227.split.us.us ] +.lr.ph226.us: ; preds = %.preheader199.preheader, %._crit_edge227.split.us.us + %indvars.iv294 = phi i64 [ 0, %.preheader199.preheader ], [ %indvars.iv.next295, %._crit_edge227.split.us.us ] + %.lcssa218234.lcssa.us253.us = phi i32 [ 0, %.preheader199.preheader ], [ %283, %._crit_edge227.split.us.us ] + %.lcssa216231.lcssa.us250.us = phi i32 [ 0, %.preheader199.preheader ], [ %281, %._crit_edge227.split.us.us ] + %.lcssa220.lcssa241245.us = phi i32 [ 0, %.preheader199.preheader ], [ %278, %._crit_edge227.split.us.us ] + %.lcssa211221.lcssa243244.us = phi i32 [ 0, %.preheader199.preheader ], [ %282, %._crit_edge227.split.us.us ] %246 = getelementptr inbounds %"class.cv::Mat", ptr %234, i64 %indvars.iv294 %247 = getelementptr inbounds i8, ptr %246, i64 16 %248 = load ptr, ptr %247, align 8 @@ -49920,17 +49890,13 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %exitcond298.not = icmp eq i64 %indvars.iv.next295, %wide.trip.count297 br i1 %exitcond298.not, label %._crit_edge, label %.lr.ph226.us, !llvm.loop !1715 -._crit_edge: ; preds = %._crit_edge227.split.us.us, %.lr.ph247, %.preheader199.preheader - %.sroa.4.1 = phi i32 [ 0, %.preheader199.preheader ], [ 0, %.lr.ph247 ], [ %281, %._crit_edge227.split.us.us ] - %.sroa.3.1 = phi i32 [ 0, %.preheader199.preheader ], [ 0, %.lr.ph247 ], [ %283, %._crit_edge227.split.us.us ] - %.lcssa211221.lcssa243.lcssa = phi i32 [ 0, %.preheader199.preheader ], [ 0, %.lr.ph247 ], [ %282, %._crit_edge227.split.us.us ] - %.lcssa220.lcssa241.lcssa = phi i32 [ 0, %.preheader199.preheader ], [ 0, %.lr.ph247 ], [ %278, %._crit_edge227.split.us.us ] - %284 = sdiv i32 %.lcssa211221.lcssa243.lcssa, 2 - %285 = add i32 %284, %.lcssa220.lcssa241.lcssa - %286 = udiv i32 %285, %.lcssa211221.lcssa243.lcssa - %287 = sdiv i32 %.sroa.3.1, 2 - %288 = add i32 %287, %.sroa.4.1 - %289 = udiv i32 %288, %.sroa.3.1 +._crit_edge: ; preds = %._crit_edge227.split.us.us + %284 = sdiv i32 %282, 2 + %285 = add i32 %284, %278 + %286 = udiv i32 %285, %282 + %287 = sdiv i32 %283, 2 + %288 = add i32 %287, %281 + %289 = udiv i32 %288, %283 %290 = call i32 @llvm.smax.i32(i32 %286, i32 0) %291 = call i32 @llvm.umin.i32(i32 %290, i32 255) %.sroa.0.0.insert.ext = trunc nuw nsw i32 %291 to i16 @@ -61696,9 +61662,7 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %.2106 = phi i32 [ %231, %.loopexit ], [ 0, %83 ] %232 = load i32, ptr %10, align 4 %233 = icmp sgt i32 %232, 0 - br i1 %233, label %.lr.ph247, label %._crit_edge - -.lr.ph247: ; preds = %.preheader199.preheader + call void @llvm.assume(i1 %233) %234 = load ptr, ptr %65, align 8 %235 = load i32, ptr %12, align 8 %236 = icmp sgt i32 %235, 0 @@ -61710,9 +61674,7 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %factor.op.mul = mul i32 %239, %240 %241 = load i32, ptr %68, align 8 %242 = load ptr, ptr %69, align 8 - br i1 %236, label %.lr.ph226.us.preheader, label %._crit_edge - -.lr.ph226.us.preheader: ; preds = %.lr.ph247 + call void @llvm.assume(i1 %236) %243 = add nsw i32 %81, %237 %244 = sext i32 %243 to i64 %245 = sext i32 %240 to i64 @@ -61720,12 +61682,12 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %wide.trip.count292 = zext nneg i32 %235 to i64 br label %.lr.ph226.us -.lr.ph226.us: ; preds = %.lr.ph226.us.preheader, %._crit_edge227.split.us.us - %indvars.iv294 = phi i64 [ 0, %.lr.ph226.us.preheader ], [ %indvars.iv.next295, %._crit_edge227.split.us.us ] - %.lcssa218234.lcssa.us253.us = phi i64 [ 0, %.lr.ph226.us.preheader ], [ %285, %._crit_edge227.split.us.us ] - %.lcssa216231.lcssa.us250.us = phi i64 [ 0, %.lr.ph226.us.preheader ], [ %283, %._crit_edge227.split.us.us ] - %.lcssa220.lcssa241245.us = phi i64 [ 0, %.lr.ph226.us.preheader ], [ %279, %._crit_edge227.split.us.us ] - %.lcssa211221.lcssa243244.us = phi i64 [ 0, %.lr.ph226.us.preheader ], [ %284, %._crit_edge227.split.us.us ] +.lr.ph226.us: ; preds = %.preheader199.preheader, %._crit_edge227.split.us.us + %indvars.iv294 = phi i64 [ 0, %.preheader199.preheader ], [ %indvars.iv.next295, %._crit_edge227.split.us.us ] + %.lcssa218234.lcssa.us253.us = phi i64 [ 0, %.preheader199.preheader ], [ %285, %._crit_edge227.split.us.us ] + %.lcssa216231.lcssa.us250.us = phi i64 [ 0, %.preheader199.preheader ], [ %283, %._crit_edge227.split.us.us ] + %.lcssa220.lcssa241245.us = phi i64 [ 0, %.preheader199.preheader ], [ %279, %._crit_edge227.split.us.us ] + %.lcssa211221.lcssa243244.us = phi i64 [ 0, %.preheader199.preheader ], [ %284, %._crit_edge227.split.us.us ] %246 = getelementptr inbounds %"class.cv::Mat", ptr %234, i64 %indvars.iv294 %247 = getelementptr inbounds i8, ptr %246, i64 16 %248 = load ptr, ptr %247, align 8 @@ -61796,17 +61758,13 @@ _ZN2cv7Array2dIiED2Ev.exit135: ; preds = %._crit_edge.us, %_Z %exitcond298.not = icmp eq i64 %indvars.iv.next295, %wide.trip.count297 br i1 %exitcond298.not, label %._crit_edge, label %.lr.ph226.us, !llvm.loop !2218 -._crit_edge: ; preds = %._crit_edge227.split.us.us, %.lr.ph247, %.preheader199.preheader - %.sroa.4.1 = phi i64 [ 0, %.preheader199.preheader ], [ 0, %.lr.ph247 ], [ %283, %._crit_edge227.split.us.us ] - %.sroa.3.1 = phi i64 [ 0, %.preheader199.preheader ], [ 0, %.lr.ph247 ], [ %285, %._crit_edge227.split.us.us ] - %.lcssa211221.lcssa243.lcssa = phi i64 [ 0, %.preheader199.preheader ], [ 0, %.lr.ph247 ], [ %284, %._crit_edge227.split.us.us ] - %.lcssa220.lcssa241.lcssa = phi i64 [ 0, %.preheader199.preheader ], [ 0, %.lr.ph247 ], [ %279, %._crit_edge227.split.us.us ] - %286 = sdiv i64 %.lcssa211221.lcssa243.lcssa, 2 - %287 = add i64 %286, %.lcssa220.lcssa241.lcssa - %288 = udiv i64 %287, %.lcssa211221.lcssa243.lcssa - %289 = sdiv i64 %.sroa.3.1, 2 - %290 = add i64 %289, %.sroa.4.1 - %291 = udiv i64 %290, %.sroa.3.1 +._crit_edge: ; preds = %._crit_edge227.split.us.us + %286 = sdiv i64 %284, 2 + %287 = add i64 %286, %279 + %288 = udiv i64 %287, %284 + %289 = sdiv i64 %285, 2 + %290 = add i64 %289, %283 + %291 = udiv i64 %290, %285 %292 = call i64 @llvm.smax.i64(i64 %288, i64 0) %293 = call i64 @llvm.umin.i64(i64 %292, i64 65535) %.sroa.0.0.insert.ext = trunc nuw nsw i64 %293 to i32 diff --git a/bench/opencv/optimized/dnn_utils.cpp.ll b/bench/opencv/optimized/dnn_utils.cpp.ll index 261878c95d5..70a1cc2e482 100644 --- a/bench/opencv/optimized/dnn_utils.cpp.ll +++ b/bench/opencv/optimized/dnn_utils.cpp.ll @@ -464,121 +464,117 @@ declare void @_ZN2cv3MatC1EiiiPvm(ptr noundef nonnull align 8 dereferenceable(96 ; Function Attrs: mustprogress uwtable define hidden void @_ZN2cv3dnn14dnn4_v2024052118getChannelFromBlobERNS_4UMatERKNS_11_InputArrayEiiiii(ptr noundef nonnull align 8 dereferenceable(80) %0, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef %2, i32 noundef %3, i32 noundef %4, i32 noundef %5, i32 noundef %6) local_unnamed_addr #6 personality ptr @__gxx_personality_v0 { - %8 = alloca %"class.cv::UMat", align 8 - %9 = alloca [1 x i32], align 4 +_ZNK2cv4UMat8elemSizeEv.exit: + %7 = alloca %"class.cv::UMat", align 8 + %8 = alloca [1 x i32], align 4 + %9 = alloca %"class.cv::UMat", align 8 %10 = alloca %"class.cv::UMat", align 8 - %11 = alloca %"class.cv::UMat", align 8 - %12 = alloca %"class.cv::Rect_", align 4 - %13 = alloca %"class.cv::UMat", align 8 - call void @_ZNK2cv11_InputArray7getUMatEi(ptr dead_on_unwind nonnull writable sret(%"class.cv::UMat") align 8 %8, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -1) - %14 = getelementptr inbounds i8, ptr %8, i64 4 - %15 = load i32, ptr %14, align 4 - %16 = icmp sgt i32 %15, 0 - br i1 %16, label %.lr.ph, label %._crit_edge - -.lr.ph: ; preds = %7 - %17 = getelementptr inbounds i8, ptr %8, i64 56 - %18 = load ptr, ptr %17, align 8 - %19 = getelementptr inbounds i8, ptr %18, i64 8 + %11 = alloca %"class.cv::Rect_", align 4 + %12 = alloca %"class.cv::UMat", align 8 + call void @_ZNK2cv11_InputArray7getUMatEi(ptr dead_on_unwind nonnull writable sret(%"class.cv::UMat") align 8 %7, ptr noundef nonnull align 8 dereferenceable(24) %1, i32 noundef -1) + %13 = sext i32 %2 to i64 + %14 = getelementptr inbounds i8, ptr %7, i64 56 + %15 = load ptr, ptr %14, align 8 + %16 = load i64, ptr %15, align 8 + %17 = mul i64 %16, %13 + %18 = sext i32 %3 to i64 + %19 = getelementptr inbounds i8, ptr %15, i64 8 %20 = load i64, ptr %19, align 8 - %21 = sext i32 %3 to i64 - %22 = mul i64 %20, %21 - %23 = load i64, ptr %18, align 8 - %24 = sext i32 %2 to i64 - %25 = mul i64 %23, %24 - %26 = add i64 %22, %25 - %27 = zext nneg i32 %15 to i64 - %28 = getelementptr i64, ptr %18, i64 %27 - %29 = getelementptr i8, ptr %28, i64 -8 - %30 = load i64, ptr %29, align 8 - %31 = udiv i64 %26, %30 - %32 = trunc i64 %31 to i32 - %33 = getelementptr inbounds i8, ptr %8, i64 48 - %34 = load ptr, ptr %33, align 8 - %wide.trip.count = zext nneg i32 %15 to i64 - br label %35 - -35: ; preds = %.lr.ph, %35 - %indvars.iv = phi i64 [ 0, %.lr.ph ], [ %indvars.iv.next, %35 ] - %.01523 = phi i32 [ 1, %.lr.ph ], [ %38, %35 ] - %36 = getelementptr inbounds i32, ptr %34, i64 %indvars.iv - %37 = load i32, ptr %36, align 4 - %38 = mul nsw i32 %37, %.01523 + %21 = mul i64 %20, %18 + %22 = add i64 %21, %17 + %23 = getelementptr inbounds i8, ptr %7, i64 4 + %24 = load i32, ptr %23, align 4 + %25 = icmp sgt i32 %24, 0 + call void @llvm.assume(i1 %25) + %26 = zext nneg i32 %24 to i64 + %27 = getelementptr i64, ptr %15, i64 %26 + %28 = getelementptr i8, ptr %27, i64 -8 + %29 = load i64, ptr %28, align 8 + %30 = udiv i64 %22, %29 + %31 = getelementptr inbounds i8, ptr %7, i64 48 + %32 = load ptr, ptr %31, align 8 + br label %33 + +33: ; preds = %_ZNK2cv4UMat8elemSizeEv.exit, %33 + %indvars.iv = phi i64 [ 0, %_ZNK2cv4UMat8elemSizeEv.exit ], [ %indvars.iv.next, %33 ] + %.01523 = phi i32 [ 1, %_ZNK2cv4UMat8elemSizeEv.exit ], [ %36, %33 ] + %34 = getelementptr inbounds i32, ptr %32, i64 %indvars.iv + %35 = load i32, ptr %34, align 4 + %36 = mul nsw i32 %35, %.01523 %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 %35, !llvm.loop !18 - -39: ; preds = %._crit_edge - %40 = landingpad { ptr, i32 } - cleanup - br label %61 - -._crit_edge: ; preds = %35, %7 - %41 = phi i32 [ poison, %7 ], [ %32, %35 ] - %.015.lcssa = phi i32 [ 1, %7 ], [ %38, %35 ] - store i32 %.015.lcssa, ptr %9, align 4 - invoke void @_ZNK2cv4UMat7reshapeEiiPKi(ptr dead_on_unwind nonnull writable sret(%"class.cv::UMat") align 8 %10, ptr noundef nonnull align 8 dereferenceable(80) %8, i32 noundef 1, i32 noundef 1, ptr noundef nonnull %9) - to label %42 unwind label %39 - -42: ; preds = %._crit_edge - %43 = mul nsw i32 %5, %4 - store i32 0, ptr %12, align 4 - %44 = getelementptr inbounds i8, ptr %12, i64 4 - store i32 %41, ptr %44, align 4 - %45 = getelementptr inbounds i8, ptr %12, i64 8 - store i32 1, ptr %45, align 4 - %46 = getelementptr inbounds i8, ptr %12, i64 12 - store i32 %43, ptr %46, align 4 - invoke void @_ZN2cv4UMatC1ERKS0_RKNS_5Rect_IiEE(ptr noundef nonnull align 8 dereferenceable(80) %11, ptr noundef nonnull align 8 dereferenceable(80) %10, ptr noundef nonnull align 4 dereferenceable(16) %12) - to label %_ZNK2cv4UMatclERKNS_5Rect_IiEE.exit unwind label %53 - -_ZNK2cv4UMatclERKNS_5Rect_IiEE.exit: ; preds = %42 - %47 = lshr i32 %6, 3 - %48 = and i32 %47, 511 - %49 = add nuw nsw i32 %48, 1 - invoke void @_ZNK2cv4UMat7reshapeEii(ptr dead_on_unwind nonnull writable sret(%"class.cv::UMat") align 8 %13, ptr noundef nonnull align 8 dereferenceable(80) %11, i32 noundef %49, i32 noundef %4) - to label %50 unwind label %55 - -50: ; preds = %_ZNK2cv4UMatclERKNS_5Rect_IiEE.exit - %51 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZN2cv4UMataSEOS0_(ptr noundef nonnull align 8 dereferenceable(80) %0, ptr noundef nonnull align 8 dereferenceable(80) %13) - to label %52 unwind label %57 - -52: ; preds = %50 - call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %13) #19 - call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %11) #19 - call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %10) #19 - call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %8) #19 - ret void + %exitcond.not = icmp eq i64 %indvars.iv.next, %26 + br i1 %exitcond.not, label %39, label %33, !llvm.loop !18 -53: ; preds = %42 - %54 = landingpad { ptr, i32 } +37: ; preds = %39 + %38 = landingpad { ptr, i32 } cleanup br label %60 -55: ; preds = %_ZNK2cv4UMatclERKNS_5Rect_IiEE.exit - %56 = landingpad { ptr, i32 } +39: ; preds = %33 + store i32 %36, ptr %8, align 4 + invoke void @_ZNK2cv4UMat7reshapeEiiPKi(ptr dead_on_unwind nonnull writable sret(%"class.cv::UMat") align 8 %9, ptr noundef nonnull align 8 dereferenceable(80) %7, i32 noundef 1, i32 noundef 1, ptr noundef nonnull %8) + to label %40 unwind label %37 + +40: ; preds = %39 + %41 = trunc i64 %30 to i32 + %42 = mul nsw i32 %5, %4 + store i32 0, ptr %11, align 4 + %43 = getelementptr inbounds i8, ptr %11, i64 4 + store i32 %41, ptr %43, align 4 + %44 = getelementptr inbounds i8, ptr %11, i64 8 + store i32 1, ptr %44, align 4 + %45 = getelementptr inbounds i8, ptr %11, i64 12 + store i32 %42, ptr %45, align 4 + invoke void @_ZN2cv4UMatC1ERKS0_RKNS_5Rect_IiEE(ptr noundef nonnull align 8 dereferenceable(80) %10, ptr noundef nonnull align 8 dereferenceable(80) %9, ptr noundef nonnull align 4 dereferenceable(16) %11) + to label %_ZNK2cv4UMatclERKNS_5Rect_IiEE.exit unwind label %52 + +_ZNK2cv4UMatclERKNS_5Rect_IiEE.exit: ; preds = %40 + %46 = lshr i32 %6, 3 + %47 = and i32 %46, 511 + %48 = add nuw nsw i32 %47, 1 + invoke void @_ZNK2cv4UMat7reshapeEii(ptr dead_on_unwind nonnull writable sret(%"class.cv::UMat") align 8 %12, ptr noundef nonnull align 8 dereferenceable(80) %10, i32 noundef %48, i32 noundef %4) + to label %49 unwind label %54 + +49: ; preds = %_ZNK2cv4UMatclERKNS_5Rect_IiEE.exit + %50 = invoke noundef nonnull align 8 dereferenceable(80) ptr @_ZN2cv4UMataSEOS0_(ptr noundef nonnull align 8 dereferenceable(80) %0, ptr noundef nonnull align 8 dereferenceable(80) %12) + to label %51 unwind label %56 + +51: ; preds = %49 + call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %12) #19 + call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %10) #19 + call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %9) #19 + call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %7) #19 + ret void + +52: ; preds = %40 + %53 = landingpad { ptr, i32 } cleanup br label %59 -57: ; preds = %50 - %58 = landingpad { ptr, i32 } +54: ; preds = %_ZNK2cv4UMatclERKNS_5Rect_IiEE.exit + %55 = landingpad { ptr, i32 } cleanup - call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %13) #19 - br label %59 + br label %58 -59: ; preds = %57, %55 - %.pn = phi { ptr, i32 } [ %58, %57 ], [ %56, %55 ] - call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %11) #19 - br label %60 +56: ; preds = %49 + %57 = landingpad { ptr, i32 } + cleanup + call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %12) #19 + br label %58 -60: ; preds = %59, %53 - %.pn.pn = phi { ptr, i32 } [ %.pn, %59 ], [ %54, %53 ] +58: ; preds = %56, %54 + %.pn = phi { ptr, i32 } [ %57, %56 ], [ %55, %54 ] call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %10) #19 - br label %61 + br label %59 + +59: ; preds = %58, %52 + %.pn.pn = phi { ptr, i32 } [ %.pn, %58 ], [ %53, %52 ] + call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %9) #19 + br label %60 -61: ; preds = %60, %39 - %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %60 ], [ %40, %39 ] - call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %8) #19 +60: ; preds = %59, %37 + %.pn.pn.pn = phi { ptr, i32 } [ %.pn.pn, %59 ], [ %38, %37 ] + call void @_ZN2cv4UMatD1Ev(ptr noundef nonnull align 8 dereferenceable(80) %7) #19 resume { ptr, i32 } %.pn.pn.pn } diff --git a/bench/opencv/optimized/merge.dispatch.cpp.ll b/bench/opencv/optimized/merge.dispatch.cpp.ll index 92b27a09d46..085b88744e9 100644 --- a/bench/opencv/optimized/merge.dispatch.cpp.ll +++ b/bench/opencv/optimized/merge.dispatch.cpp.ll @@ -269,7 +269,7 @@ _ZN2cv3hal12cpu_baselineL6merge_IhEEvPPKT_PS3_ii.exit: ; preds = %._crit_edge.us %92 = landingpad { ptr, i32 } catch ptr null %93 = extractvalue { ptr, i32 } %92, 0 - call void @__clang_call_terminate(ptr %93) #11 + call void @__clang_call_terminate(ptr %93) #12 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv3hal12cpu_baselineL6merge_IhEEvPPKT_PS3_ii.exit, %90 @@ -298,7 +298,7 @@ define linkonce_odr hidden void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr nound %7 = landingpad { ptr, i32 } catch ptr null %8 = extractvalue { ptr, i32 } %7, 0 - tail call void @__clang_call_terminate(ptr %8) #11 + tail call void @__clang_call_terminate(ptr %8) #12 unreachable } @@ -503,7 +503,7 @@ _ZN2cv3hal12cpu_baselineL6merge_ItEEvPPKT_PS3_ii.exit: ; preds = %._crit_edge.us %92 = landingpad { ptr, i32 } catch ptr null %93 = extractvalue { ptr, i32 } %92, 0 - call void @__clang_call_terminate(ptr %93) #11 + call void @__clang_call_terminate(ptr %93) #12 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv3hal12cpu_baselineL6merge_ItEEvPPKT_PS3_ii.exit, %90 @@ -711,7 +711,7 @@ _ZN2cv3hal12cpu_baselineL6merge_IiEEvPPKT_PS3_ii.exit: ; preds = %._crit_edge.us %92 = landingpad { ptr, i32 } catch ptr null %93 = extractvalue { ptr, i32 } %92, 0 - call void @__clang_call_terminate(ptr %93) #11 + call void @__clang_call_terminate(ptr %93) #12 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv3hal12cpu_baselineL6merge_IiEEvPPKT_PS3_ii.exit, %90 @@ -919,7 +919,7 @@ _ZN2cv3hal12cpu_baselineL6merge_IlEEvPPKT_PS3_ii.exit: ; preds = %._crit_edge.us %92 = landingpad { ptr, i32 } catch ptr null %93 = extractvalue { ptr, i32 } %92, 0 - call void @__clang_call_terminate(ptr %93) #11 + call void @__clang_call_terminate(ptr %93) #12 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv3hal12cpu_baselineL6merge_IlEEvPPKT_PS3_ii.exit, %90 @@ -947,7 +947,7 @@ define void @_ZN2cv3hal7merge8uEPPKhPhii(ptr nocapture noundef readonly %0, ptr %11 = landingpad { ptr, i32 } catch ptr null %12 = extractvalue { ptr, i32 } %11, 0 - call void @__clang_call_terminate(ptr %12) #11 + call void @__clang_call_terminate(ptr %12) #12 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 @@ -956,7 +956,7 @@ _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 13: ; preds = %4 %14 = landingpad { ptr, i32 } cleanup - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #12 + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #13 resume { ptr, i32 } %14 } @@ -987,7 +987,7 @@ define void @_ZN2cv3hal8merge16uEPPKtPtii(ptr nocapture noundef readonly %0, ptr %11 = landingpad { ptr, i32 } catch ptr null %12 = extractvalue { ptr, i32 } %11, 0 - call void @__clang_call_terminate(ptr %12) #11 + call void @__clang_call_terminate(ptr %12) #12 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 @@ -996,7 +996,7 @@ _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 13: ; preds = %4 %14 = landingpad { ptr, i32 } cleanup - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #12 + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #13 resume { ptr, i32 } %14 } @@ -1021,7 +1021,7 @@ define void @_ZN2cv3hal8merge32sEPPKiPiii(ptr nocapture noundef readonly %0, ptr %11 = landingpad { ptr, i32 } catch ptr null %12 = extractvalue { ptr, i32 } %11, 0 - call void @__clang_call_terminate(ptr %12) #11 + call void @__clang_call_terminate(ptr %12) #12 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 @@ -1030,7 +1030,7 @@ _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 13: ; preds = %4 %14 = landingpad { ptr, i32 } cleanup - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #12 + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #13 resume { ptr, i32 } %14 } @@ -1055,7 +1055,7 @@ define void @_ZN2cv3hal8merge64sEPPKlPlii(ptr nocapture noundef readonly %0, ptr %11 = landingpad { ptr, i32 } catch ptr null %12 = extractvalue { ptr, i32 } %11, 0 - call void @__clang_call_terminate(ptr %12) #11 + call void @__clang_call_terminate(ptr %12) #12 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 @@ -1064,7 +1064,7 @@ _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 13: ; preds = %4 %14 = landingpad { ptr, i32 } cleanup - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #12 + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #13 resume { ptr, i32 } %14 } @@ -1091,12 +1091,12 @@ define void @_ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE(ptr noundef %0, i64 no br i1 %or.cond, label %28, label %20 20: ; preds = %3 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #12 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #13 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.15, ptr noundef nonnull align 1 dereferenceable(1) %6) to label %21 unwind label %23 21: ; preds = %20 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @__func__._ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE, ptr noundef nonnull @.str.6, i32 noundef 120) #13 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @__func__._ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE, ptr noundef nonnull @.str.6, i32 noundef 120) #14 to label %22 unwind label %25 22: ; preds = %21 @@ -1110,13 +1110,13 @@ define void @_ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE(ptr noundef %0, i64 no 25: ; preds = %21 %26 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #12 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #13 br label %27 27: ; preds = %25, %23 %.pn = phi { ptr, i32 } [ %26, %25 ], [ %24, %23 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #12 - br label %238 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #13 + br label %235 28: ; preds = %3 %29 = invoke noundef zeroext i1 @_ZNK2cv3Mat5emptyEv(ptr noundef nonnull align 8 dereferenceable(96) %0) @@ -1128,15 +1128,15 @@ define void @_ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE(ptr noundef %0, i64 no 31: ; preds = %93, %90, %87, %80, %28 %32 = landingpad { ptr, i32 } cleanup - br label %238 + br label %235 33: ; preds = %30 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #13 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @.str.16, ptr noundef nonnull align 1 dereferenceable(1) %8) to label %34 unwind label %36 34: ; preds = %33 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @__func__._ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE, ptr noundef nonnull @.str.6, i32 noundef 121) #13 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %7, ptr noundef nonnull @__func__._ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE, ptr noundef nonnull @.str.6, i32 noundef 121) #14 to label %35 unwind label %38 35: ; preds = %34 @@ -1150,13 +1150,13 @@ define void @_ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE(ptr noundef %0, i64 no 38: ; preds = %34 %39 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #12 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %7) #13 br label %40 40: ; preds = %38, %36 %.pn129 = phi { ptr, i32 } [ %39, %38 ], [ %37, %36 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #12 - br label %238 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %8) #13 + br label %235 41: ; preds = %30 %42 = load i32, ptr %0, align 8 @@ -1170,7 +1170,7 @@ define void @_ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE(ptr noundef %0, i64 no %.0110165 = phi i64 [ 0, %41 ], [ %69, %61 ] %46 = getelementptr inbounds %"class.cv::Mat", ptr %0, i64 %.0110165 %47 = getelementptr inbounds i8, ptr %46, i64 64 - %48 = call noundef zeroext i1 @_ZNK2cv7MatSizeeqERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %44) #12 + %48 = call noundef zeroext i1 @_ZNK2cv7MatSizeeqERKS0_(ptr noundef nonnull align 8 dereferenceable(8) %47, ptr noundef nonnull align 8 dereferenceable(8) %44) #13 br i1 %48, label %49, label %53 49: ; preds = %45 @@ -1180,12 +1180,12 @@ define void @_ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE(ptr noundef %0, i64 no br i1 %52, label %61, label %53 53: ; preds = %49, %45 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #12 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #13 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %10) to label %54 unwind label %56 54: ; preds = %53 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @__func__._ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE, ptr noundef nonnull @.str.6, i32 noundef 130) #13 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %9, ptr noundef nonnull @__func__._ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE, ptr noundef nonnull @.str.6, i32 noundef 130) #14 to label %55 unwind label %58 55: ; preds = %54 @@ -1199,13 +1199,13 @@ define void @_ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE(ptr noundef %0, i64 no 58: ; preds = %54 %59 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #12 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %9) #13 br label %60 60: ; preds = %58, %56 %.pn127 = phi { ptr, i32 } [ %59, %58 ], [ %57, %56 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #12 - br label %238 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %10) #13 + br label %235 61: ; preds = %49 %62 = and i32 %50, 4088 @@ -1225,12 +1225,12 @@ define void @_ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE(ptr noundef %0, i64 no br i1 %or.cond3, label %80, label %72 72: ; preds = %70 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #12 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #13 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @.str.18, ptr noundef nonnull align 1 dereferenceable(1) %12) to label %73 unwind label %75 73: ; preds = %72 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @__func__._ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE, ptr noundef nonnull @.str.6, i32 noundef 135) #13 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %11, ptr noundef nonnull @__func__._ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE, ptr noundef nonnull @.str.6, i32 noundef 135) #14 to label %74 unwind label %77 74: ; preds = %73 @@ -1244,13 +1244,13 @@ define void @_ZN2cv5mergeEPKNS_3MatEmRKNS_12_OutputArrayE(ptr noundef %0, i64 no 77: ; preds = %73 %78 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #12 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %11) #13 br label %79 79: ; preds = %77, %75 %.pn120 = phi { ptr, i32 } [ %78, %77 ], [ %76, %75 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #12 - br label %238 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %12) #13 + br label %235 80: ; preds = %70 %81 = getelementptr inbounds i8, ptr %0, i64 4 @@ -1293,7 +1293,7 @@ _ZNK2cv11_InputArray6getMatEi.exit: ; preds = %90, %93 invoke void @_ZNK2cv3Mat6copyToERKNS_12_OutputArrayE(ptr noundef nonnull align 8 dereferenceable(96) %0, ptr noundef nonnull align 8 dereferenceable(24) %14) to label %_ZN2cv10AutoBufferIiLm264EED2Ev.exit137 unwind label %100 -98: ; preds = %175, %108 +98: ; preds = %172, %108 %99 = landingpad { ptr, i32 } cleanup br label %_ZN2cv10AutoBufferIiLm264EED2Ev.exit @@ -1304,7 +1304,7 @@ _ZNK2cv11_InputArray6getMatEi.exit: ; preds = %90, %93 br label %_ZN2cv10AutoBufferIiLm264EED2Ev.exit 102: ; preds = %_ZNK2cv11_InputArray6getMatEi.exit - br i1 %64, label %146, label %103 + br i1 %64, label %_ZNK2cv3Mat8elemSizeEv.exit, label %103 103: ; preds = %102 %104 = shl nuw nsw i32 %68, 1 @@ -1318,7 +1318,7 @@ _ZNK2cv11_InputArray6getMatEi.exit: ; preds = %90, %93 108: ; preds = %103 %109 = shl nuw nsw i64 %105, 2 - %110 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %109) #14 + %110 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %109) #15 to label %.noexc134 unwind label %98 .noexc134: ; preds = %108 @@ -1368,7 +1368,7 @@ _ZN2cv10AutoBufferIiLm264EEC2Em.exit: ; preds = %_ZN2cv10AutoBufferI br i1 %130, label %132, label %131 131: ; preds = %129 - call void @_ZdaPv(ptr noundef nonnull %128) #15 + call void @_ZdaPv(ptr noundef nonnull %128) #16 br label %132 132: ; preds = %131, %129 @@ -1399,7 +1399,7 @@ _ZN2cv10AutoBufferIiLm264EEC2Em.exit: ; preds = %_ZN2cv10AutoBufferI br i1 %143, label %145, label %144 144: ; preds = %142 - call void @_ZdaPv(ptr noundef nonnull %141) #15 + call void @_ZdaPv(ptr noundef nonnull %141) #16 br label %145 145: ; preds = %144, %142 @@ -1407,172 +1407,166 @@ _ZN2cv10AutoBufferIiLm264EEC2Em.exit: ; preds = %_ZN2cv10AutoBufferI store i64 264, ptr %107, align 8 br label %_ZN2cv10AutoBufferIiLm264EED2Ev.exit137 -146: ; preds = %102 - %147 = zext nneg i32 %43 to i64 - %148 = getelementptr inbounds [8 x ptr], ptr @_ZZN2cvL12getMergeFuncEiE8mergeTab, i64 0, i64 %147 - %149 = load ptr, ptr %148, align 8 - %150 = getelementptr inbounds i8, ptr %13, i64 4 - %151 = load i32, ptr %150, align 4 - %152 = icmp sgt i32 %151, 0 - br i1 %152, label %153, label %_ZNK2cv3Mat8elemSizeEv.exit - -153: ; preds = %146 - %154 = getelementptr inbounds i8, ptr %13, i64 72 - %155 = load ptr, ptr %154, align 8 - %156 = zext nneg i32 %151 to i64 - %157 = getelementptr i64, ptr %155, i64 %156 - %158 = getelementptr i8, ptr %157, i64 -8 - %159 = load i64, ptr %158, align 8 - br label %_ZNK2cv3Mat8elemSizeEv.exit - -_ZNK2cv3Mat8elemSizeEv.exit: ; preds = %146, %153 - %160 = phi i64 [ %159, %153 ], [ 0, %146 ] - %161 = load i32, ptr %13, align 8 - %162 = shl i32 %161, 2 - %163 = and i32 %162, 28 - %164 = lshr i32 675553809, %163 - %165 = and i32 %164, 15 - %166 = zext nneg i32 %165 to i64 - %167 = add i64 %160, 1023 - %168 = udiv i64 %167, %160 - %sext = shl i64 %168, 32 - %169 = ashr exact i64 %sext, 32 - %170 = add nuw nsw i32 %68, 1 - %171 = shl nuw nsw i32 %170, 4 - %narrow = add nuw nsw i32 %171, 16 - %172 = zext nneg i32 %narrow to i64 - %173 = getelementptr inbounds i8, ptr %16, i64 16 - store ptr %173, ptr %16, align 8 - %174 = getelementptr inbounds i8, ptr %16, i64 8 +_ZNK2cv3Mat8elemSizeEv.exit: ; preds = %102 + %146 = zext nneg i32 %43 to i64 + %147 = getelementptr inbounds [8 x ptr], ptr @_ZZN2cvL12getMergeFuncEiE8mergeTab, i64 0, i64 %146 + %148 = load ptr, ptr %147, align 8 + %149 = getelementptr inbounds i8, ptr %13, i64 4 + %150 = load i32, ptr %149, align 4 + %151 = icmp sgt i32 %150, 0 + call void @llvm.assume(i1 %151) + %152 = getelementptr inbounds i8, ptr %13, i64 72 + %153 = load ptr, ptr %152, align 8 + %154 = zext nneg i32 %150 to i64 + %155 = getelementptr i64, ptr %153, i64 %154 + %156 = getelementptr i8, ptr %155, i64 -8 + %157 = load i64, ptr %156, align 8 + %158 = load i32, ptr %13, align 8 + %159 = shl i32 %158, 2 + %160 = and i32 %159, 28 + %161 = lshr i32 675553809, %160 + %162 = and i32 %161, 15 + %163 = zext nneg i32 %162 to i64 + %164 = add i64 %157, 1023 + %165 = udiv i64 %164, %157 + %sext = shl i64 %165, 32 + %166 = ashr exact i64 %sext, 32 + %167 = add nuw nsw i32 %68, 1 + %168 = shl nuw nsw i32 %167, 4 + %narrow = add nuw nsw i32 %168, 16 + %169 = zext nneg i32 %narrow to i64 + %170 = getelementptr inbounds i8, ptr %16, i64 16 + store ptr %170, ptr %16, align 8 + %171 = getelementptr inbounds i8, ptr %16, i64 8 %.not.i.i138 = icmp ugt i32 %68, 62 - store i64 %172, ptr %174, align 8 - br i1 %.not.i.i138, label %175, label %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit + store i64 %169, ptr %171, align 8 + br i1 %.not.i.i138, label %172, label %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit -175: ; preds = %_ZNK2cv3Mat8elemSizeEv.exit - %176 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %172) #14 +172: ; preds = %_ZNK2cv3Mat8elemSizeEv.exit + %173 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %169) #15 to label %.noexc139 unwind label %98 -.noexc139: ; preds = %175 - store ptr %176, ptr %16, align 8 +.noexc139: ; preds = %172 + store ptr %173, ptr %16, align 8 br label %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit _ZN2cv10AutoBufferIhLm1032EEC2Em.exit: ; preds = %.noexc139, %_ZNK2cv3Mat8elemSizeEv.exit - %177 = phi ptr [ %176, %.noexc139 ], [ %173, %_ZNK2cv3Mat8elemSizeEv.exit ] - %178 = zext nneg i32 %68 to i64 - %179 = getelementptr inbounds ptr, ptr %177, i64 %178 - %180 = getelementptr inbounds i8, ptr %179, i64 8 - %181 = ptrtoint ptr %180 to i64 - %182 = add i64 %181, 15 - %183 = and i64 %182, -16 - store ptr %13, ptr %177, align 8 + %174 = phi ptr [ %173, %.noexc139 ], [ %170, %_ZNK2cv3Mat8elemSizeEv.exit ] + %175 = zext nneg i32 %68 to i64 + %176 = getelementptr inbounds ptr, ptr %174, i64 %175 + %177 = getelementptr inbounds i8, ptr %176, i64 8 + %178 = ptrtoint ptr %177 to i64 + %179 = add i64 %178, 15 + %180 = and i64 %179, -16 + store ptr %13, ptr %174, align 8 %umax187 = call i32 @llvm.umax.i32(i32 %68, i32 1) %wide.trip.count188 = zext i32 %umax187 to i64 - br label %184 + br label %181 -184: ; preds = %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit, %184 - %indvars.iv184 = phi i64 [ 0, %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit ], [ %indvars.iv.next185, %184 ] - %185 = getelementptr inbounds %"class.cv::Mat", ptr %0, i64 %indvars.iv184 +181: ; preds = %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit, %181 + %indvars.iv184 = phi i64 [ 0, %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit ], [ %indvars.iv.next185, %181 ] + %182 = getelementptr inbounds %"class.cv::Mat", ptr %0, i64 %indvars.iv184 %indvars.iv.next185 = add nuw nsw i64 %indvars.iv184, 1 - %186 = getelementptr inbounds ptr, ptr %177, i64 %indvars.iv.next185 - store ptr %185, ptr %186, align 8 + %183 = getelementptr inbounds ptr, ptr %174, i64 %indvars.iv.next185 + store ptr %182, ptr %183, align 8 %exitcond189.not = icmp eq i64 %indvars.iv.next185, %wide.trip.count188 - br i1 %exitcond189.not, label %192, label %184, !llvm.loop !35 + br i1 %exitcond189.not, label %189, label %181, !llvm.loop !35 .loopexit.split-lp.loopexit.split: ; preds = %.preheader %lpad.loopexit160 = landingpad { ptr, i32 } cleanup br label %.loopexit.split-lp -.loopexit.split-lp.loopexit.split-lp: ; preds = %192 +.loopexit.split-lp.loopexit.split-lp: ; preds = %189 %lpad.loopexit.split-lp161 = landingpad { ptr, i32 } cleanup br label %.loopexit.split-lp .loopexit.split-lp: ; preds = %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit.split.us, %.loopexit.split-lp.loopexit.split, %.loopexit159.split.us %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit.us, %.loopexit159.split.us ], [ %lpad.loopexit.split-lp161, %.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit160, %.loopexit.split-lp.loopexit.split ], [ %lpad.loopexit160.us, %.loopexit.split-lp.loopexit.split.us ] - %187 = load ptr, ptr %16, align 8 - %.not.i.i140 = icmp eq ptr %187, %173 - br i1 %.not.i.i140, label %_ZN2cv10AutoBufferIiLm264EED2Ev.exit, label %188 + %184 = load ptr, ptr %16, align 8 + %.not.i.i140 = icmp eq ptr %184, %170 + br i1 %.not.i.i140, label %_ZN2cv10AutoBufferIiLm264EED2Ev.exit, label %185 -188: ; preds = %.loopexit.split-lp - %189 = icmp eq ptr %187, null - br i1 %189, label %191, label %190 +185: ; preds = %.loopexit.split-lp + %186 = icmp eq ptr %184, null + br i1 %186, label %188, label %187 -190: ; preds = %188 - call void @_ZdaPv(ptr noundef nonnull %187) #15 - br label %191 +187: ; preds = %185 + call void @_ZdaPv(ptr noundef nonnull %184) #16 + br label %188 -191: ; preds = %190, %188 - store ptr %173, ptr %16, align 8 - store i64 1032, ptr %174, align 8 +188: ; preds = %187, %185 + store ptr %170, ptr %16, align 8 + store i64 1032, ptr %171, align 8 br label %_ZN2cv10AutoBufferIiLm264EED2Ev.exit -192: ; preds = %184 - %193 = inttoptr i64 %183 to ptr - invoke void @_ZN2cv15NAryMatIteratorC1EPPKNS_3MatEPPhi(ptr noundef nonnull align 8 dereferenceable(64) %17, ptr noundef nonnull %177, ptr noundef %193, i32 noundef %170) - to label %194 unwind label %.loopexit.split-lp.loopexit.split-lp +189: ; preds = %181 + %190 = inttoptr i64 %180 to ptr + invoke void @_ZN2cv15NAryMatIteratorC1EPPKNS_3MatEPPhi(ptr noundef nonnull align 8 dereferenceable(64) %17, ptr noundef nonnull %174, ptr noundef %190, i32 noundef %167) + to label %191 unwind label %.loopexit.split-lp.loopexit.split-lp -194: ; preds = %192 - %195 = getelementptr inbounds i8, ptr %17, i64 40 - %196 = load i64, ptr %195, align 8 - %.fr = freeze i64 %196 +191: ; preds = %189 + %192 = getelementptr inbounds i8, ptr %17, i64 40 + %193 = load i64, ptr %192, align 8 + %.fr = freeze i64 %193 %sext124 = shl i64 %.fr, 32 - %197 = ashr exact i64 %sext124, 32 - %198 = udiv i32 536870911, %68 - %199 = zext nneg i32 %198 to i64 - %200 = icmp ult i32 %68, 5 - %..i.val = call i64 @llvm.umin.i64(i64 %169, i64 %197) - %201 = select i1 %200, i64 %197, i64 %..i.val - %.sroa.speculated147 = call i64 @llvm.umin.i64(i64 %201, i64 %199) - %202 = getelementptr inbounds i8, ptr %17, i64 32 + %194 = ashr exact i64 %sext124, 32 + %195 = udiv i32 536870911, %68 + %196 = zext nneg i32 %195 to i64 + %197 = icmp ult i32 %68, 5 + %..i.val = call i64 @llvm.umin.i64(i64 %166, i64 %194) + %198 = select i1 %197, i64 %194, i64 %..i.val + %.sroa.speculated147 = call i64 @llvm.umin.i64(i64 %198, i64 %196) + %199 = getelementptr inbounds i8, ptr %17, i64 32 %.not = icmp eq i64 %sext124, 0 - %203 = getelementptr inbounds i8, ptr %193, i64 8 + %200 = getelementptr inbounds i8, ptr %190, i64 8 br i1 %.not, label %.split, label %.split.us -.split.us: ; preds = %194, %._crit_edge.us - %.2112.us = phi i64 [ %221, %._crit_edge.us ], [ 0, %194 ] - %204 = load i64, ptr %202, align 8 - %205 = icmp ult i64 %.2112.us, %204 - br i1 %205, label %.preheader.us, label %.split175.us +.split.us: ; preds = %191, %._crit_edge.us + %.2112.us = phi i64 [ %218, %._crit_edge.us ], [ 0, %191 ] + %201 = load i64, ptr %199, align 8 + %202 = icmp ult i64 %.2112.us, %201 + br i1 %202, label %.preheader.us, label %.split175.us .preheader.us: ; preds = %.split.us, %.loopexit.us - %.098173.us = phi i64 [ %210, %.loopexit.us ], [ 0, %.split.us ] - %206 = sub nuw i64 %197, %.098173.us - %.sroa.speculated.us = call i64 @llvm.umin.i64(i64 %.sroa.speculated147, i64 %206) - %207 = load ptr, ptr %193, align 16 - %208 = trunc nuw nsw i64 %.sroa.speculated.us to i32 - invoke void %149(ptr noundef nonnull %203, ptr noundef %207, i32 noundef %208, i32 noundef %68) - to label %209 unwind label %.loopexit159.split.us - -209: ; preds = %.preheader.us - %210 = add i64 %.098173.us, %.sroa.speculated147 - %211 = icmp ult i64 %210, %197 - br i1 %211, label %212, label %._crit_edge.us - -212: ; preds = %209 - %213 = mul i64 %.sroa.speculated.us, %160 - %214 = load ptr, ptr %193, align 16 - %215 = getelementptr inbounds i8, ptr %214, i64 %213 - store ptr %215, ptr %193, align 16 - %216 = mul nuw nsw i64 %.sroa.speculated.us, %166 - br label %217 - -.loopexit.us: ; preds = %217 + %.098173.us = phi i64 [ %207, %.loopexit.us ], [ 0, %.split.us ] + %203 = sub nuw i64 %194, %.098173.us + %.sroa.speculated.us = call i64 @llvm.umin.i64(i64 %.sroa.speculated147, i64 %203) + %204 = load ptr, ptr %190, align 16 + %205 = trunc nuw nsw i64 %.sroa.speculated.us to i32 + invoke void %148(ptr noundef nonnull %200, ptr noundef %204, i32 noundef %205, i32 noundef %68) + to label %206 unwind label %.loopexit159.split.us + +206: ; preds = %.preheader.us + %207 = add i64 %.098173.us, %.sroa.speculated147 + %208 = icmp ult i64 %207, %194 + br i1 %208, label %209, label %._crit_edge.us + +209: ; preds = %206 + %210 = mul i64 %.sroa.speculated.us, %157 + %211 = load ptr, ptr %190, align 16 + %212 = getelementptr inbounds i8, ptr %211, i64 %210 + store ptr %212, ptr %190, align 16 + %213 = mul nuw nsw i64 %.sroa.speculated.us, %163 + br label %214 + +.loopexit.us: ; preds = %214 br label %.preheader.us, !llvm.loop !36 -217: ; preds = %217, %212 - %indvars.iv190 = phi i64 [ %indvars.iv.next191, %217 ], [ 0, %212 ] +214: ; preds = %214, %209 + %indvars.iv190 = phi i64 [ %indvars.iv.next191, %214 ], [ 0, %209 ] %indvars.iv.next191 = add nuw nsw i64 %indvars.iv190, 1 - %218 = getelementptr inbounds ptr, ptr %193, i64 %indvars.iv.next191 - %219 = load ptr, ptr %218, align 8 - %220 = getelementptr inbounds i8, ptr %219, i64 %216 - store ptr %220, ptr %218, align 8 + %215 = getelementptr inbounds ptr, ptr %190, i64 %indvars.iv.next191 + %216 = load ptr, ptr %215, align 8 + %217 = getelementptr inbounds i8, ptr %216, i64 %213 + store ptr %217, ptr %215, align 8 %exitcond194.not = icmp eq i64 %indvars.iv.next191, %wide.trip.count188 - br i1 %exitcond194.not, label %.loopexit.us, label %217, !llvm.loop !37 + br i1 %exitcond194.not, label %.loopexit.us, label %214, !llvm.loop !37 -._crit_edge.us: ; preds = %209 - %221 = add nuw i64 %.2112.us, 1 - %222 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN2cv15NAryMatIteratorppEv(ptr noundef nonnull align 8 dereferenceable(64) %17) +._crit_edge.us: ; preds = %206 + %218 = add nuw i64 %.2112.us, 1 + %219 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN2cv15NAryMatIteratorppEv(ptr noundef nonnull align 8 dereferenceable(64) %17) to label %.split.us unwind label %.loopexit.split-lp.loopexit.split.us, !llvm.loop !38 .loopexit.split-lp.loopexit.split.us: ; preds = %._crit_edge.us @@ -1585,64 +1579,64 @@ _ZN2cv10AutoBufferIhLm1032EEC2Em.exit: ; preds = %.noexc139, %_ZNK2cv cleanup br label %.loopexit.split-lp -.split: ; preds = %194, %.preheader - %.2112 = phi i64 [ %225, %.preheader ], [ 0, %194 ] - %223 = load i64, ptr %202, align 8 - %224 = icmp ult i64 %.2112, %223 - br i1 %224, label %.preheader, label %.split175.us +.split: ; preds = %191, %.preheader + %.2112 = phi i64 [ %222, %.preheader ], [ 0, %191 ] + %220 = load i64, ptr %199, align 8 + %221 = icmp ult i64 %.2112, %220 + br i1 %221, label %.preheader, label %.split175.us .preheader: ; preds = %.split - %225 = add nuw i64 %.2112, 1 - %226 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN2cv15NAryMatIteratorppEv(ptr noundef nonnull align 8 dereferenceable(64) %17) + %222 = add nuw i64 %.2112, 1 + %223 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN2cv15NAryMatIteratorppEv(ptr noundef nonnull align 8 dereferenceable(64) %17) to label %.split unwind label %.loopexit.split-lp.loopexit.split, !llvm.loop !38 .split175.us: ; preds = %.split.us, %.split - %227 = load ptr, ptr %16, align 8 - %.not.i.i143 = icmp eq ptr %227, %173 - br i1 %.not.i.i143, label %_ZN2cv10AutoBufferIiLm264EED2Ev.exit137, label %228 + %224 = load ptr, ptr %16, align 8 + %.not.i.i143 = icmp eq ptr %224, %170 + br i1 %.not.i.i143, label %_ZN2cv10AutoBufferIiLm264EED2Ev.exit137, label %225 -228: ; preds = %.split175.us - %229 = icmp eq ptr %227, null - br i1 %229, label %231, label %230 +225: ; preds = %.split175.us + %226 = icmp eq ptr %224, null + br i1 %226, label %228, label %227 -230: ; preds = %228 - call void @_ZdaPv(ptr noundef nonnull %227) #15 - br label %231 +227: ; preds = %225 + call void @_ZdaPv(ptr noundef nonnull %224) #16 + br label %228 -231: ; preds = %230, %228 - store ptr %173, ptr %16, align 8 - store i64 1032, ptr %174, align 8 +228: ; preds = %227, %225 + store ptr %170, ptr %16, align 8 + store i64 1032, ptr %171, align 8 br label %_ZN2cv10AutoBufferIiLm264EED2Ev.exit137 -_ZN2cv10AutoBufferIiLm264EED2Ev.exit137: ; preds = %231, %.split175.us, %145, %140, %95 - call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %13) #12 - %232 = getelementptr inbounds i8, ptr %4, i64 8 - %233 = load i32, ptr %232, align 8 - %.not.i = icmp eq i32 %233, 0 - br i1 %.not.i, label %_ZN2cv5utils5trace7details6RegionD2Ev.exit, label %234 +_ZN2cv10AutoBufferIiLm264EED2Ev.exit137: ; preds = %228, %.split175.us, %145, %140, %95 + call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %13) #13 + %229 = getelementptr inbounds i8, ptr %4, i64 8 + %230 = load i32, ptr %229, align 8 + %.not.i = icmp eq i32 %230, 0 + br i1 %.not.i, label %_ZN2cv5utils5trace7details6RegionD2Ev.exit, label %231 -234: ; preds = %_ZN2cv10AutoBufferIiLm264EED2Ev.exit137 +231: ; preds = %_ZN2cv10AutoBufferIiLm264EED2Ev.exit137 invoke void @_ZN2cv5utils5trace7details6Region7destroyEv(ptr noundef nonnull align 8 dereferenceable(12) %4) - to label %_ZN2cv5utils5trace7details6RegionD2Ev.exit unwind label %235 + to label %_ZN2cv5utils5trace7details6RegionD2Ev.exit unwind label %232 -235: ; preds = %234 - %236 = landingpad { ptr, i32 } +232: ; preds = %231 + %233 = landingpad { ptr, i32 } catch ptr null - %237 = extractvalue { ptr, i32 } %236, 0 - call void @__clang_call_terminate(ptr %237) #11 + %234 = extractvalue { ptr, i32 } %233, 0 + call void @__clang_call_terminate(ptr %234) #12 unreachable -_ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv10AutoBufferIiLm264EED2Ev.exit137, %234 +_ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv10AutoBufferIiLm264EED2Ev.exit137, %231 ret void -_ZN2cv10AutoBufferIiLm264EED2Ev.exit: ; preds = %191, %.loopexit.split-lp, %132, %126, %100, %98 - %.pn125 = phi { ptr, i32 } [ %101, %100 ], [ %99, %98 ], [ %127, %126 ], [ %127, %132 ], [ %lpad.phi, %.loopexit.split-lp ], [ %lpad.phi, %191 ] - call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %13) #12 - br label %238 +_ZN2cv10AutoBufferIiLm264EED2Ev.exit: ; preds = %188, %.loopexit.split-lp, %132, %126, %100, %98 + %.pn125 = phi { ptr, i32 } [ %101, %100 ], [ %99, %98 ], [ %127, %126 ], [ %127, %132 ], [ %lpad.phi, %.loopexit.split-lp ], [ %lpad.phi, %188 ] + call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %13) #13 + br label %235 -238: ; preds = %_ZN2cv10AutoBufferIiLm264EED2Ev.exit, %79, %60, %40, %31, %27 +235: ; preds = %_ZN2cv10AutoBufferIiLm264EED2Ev.exit, %79, %60, %40, %31, %27 %.pn129.pn = phi { ptr, i32 } [ %.pn129, %40 ], [ %.pn127, %60 ], [ %.pn125, %_ZN2cv10AutoBufferIiLm264EED2Ev.exit ], [ %32, %31 ], [ %.pn120, %79 ], [ %.pn, %27 ] - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %4) #12 + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %4) #13 resume { ptr, i32 } %.pn129.pn } @@ -1702,7 +1696,7 @@ define void @_ZN2cv5mergeERKNS_11_InputArrayERKNS_12_OutputArrayE(ptr noundef no .lr.ph.i.i.i.i: ; preds = %14, %.lr.ph.i.i.i.i %.05.i.i.i.i = phi ptr [ %17, %.lr.ph.i.i.i.i ], [ %15, %14 ] - call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %.05.i.i.i.i) #12 + call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %.05.i.i.i.i) #13 %17 = getelementptr inbounds i8, ptr %.05.i.i.i.i, i64 96 %.not.i.i.i.i = icmp eq ptr %17, %16 br i1 %.not.i.i.i.i, label %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i, label %.lr.ph.i.i.i.i, !llvm.loop !39 @@ -1717,7 +1711,7 @@ _ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i: ; preds = %_ZSt8_DestroyIPN2c br i1 %.not.i.i.i, label %_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit, label %19 19: ; preds = %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i - call void @_ZdlPv(ptr noundef nonnull %18) #15 + call void @_ZdlPv(ptr noundef nonnull %18) #16 br label %_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit _ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit: ; preds = %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i, %19 @@ -1734,7 +1728,7 @@ _ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit: ; preds = %_ZSt8_DestroyIPN2cv %24 = landingpad { ptr, i32 } catch ptr null %25 = extractvalue { ptr, i32 } %24, 0 - call void @__clang_call_terminate(ptr %25) #11 + call void @__clang_call_terminate(ptr %25) #12 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit, %22 @@ -1743,8 +1737,8 @@ _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZNSt6vectorIN2cv3M 26: ; preds = %5, %2 %27 = landingpad { ptr, i32 } cleanup - call void @_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #12 - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %3) #12 + call void @_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %4) #13 + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %3) #13 resume { ptr, i32 } %27 } @@ -1760,7 +1754,7 @@ define linkonce_odr hidden void @_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev(ptr noundef .lr.ph.i.i.i: ; preds = %1, %.lr.ph.i.i.i %.05.i.i.i = phi ptr [ %5, %.lr.ph.i.i.i ], [ %2, %1 ] - tail call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %.05.i.i.i) #12 + tail call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %.05.i.i.i) #13 %5 = getelementptr inbounds i8, ptr %.05.i.i.i, i64 96 %.not.i.i.i = icmp eq ptr %5, %4 br i1 %.not.i.i.i, label %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exitthread-pre-split, label %.lr.ph.i.i.i, !llvm.loop !39 @@ -1775,7 +1769,7 @@ _ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit: ; preds = %_ZSt8_DestroyIPN2cv br i1 %.not.i.i, label %_ZNSt12_Vector_baseIN2cv3MatESaIS1_EED2Ev.exit, label %7 7: ; preds = %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit - tail call void @_ZdlPv(ptr noundef nonnull %6) #15 + tail call void @_ZdlPv(ptr noundef nonnull %6) #16 br label %_ZNSt12_Vector_baseIN2cv3MatESaIS1_EED2Ev.exit _ZNSt12_Vector_baseIN2cv3MatESaIS1_EED2Ev.exit: ; preds = %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit, %7 @@ -1786,8 +1780,8 @@ declare void @_ZN2cv5utils5trace7details6Region7destroyEv(ptr noundef nonnull al ; Function Attrs: noreturn nounwind uwtable define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) local_unnamed_addr #5 comdat { - %2 = tail call ptr @__cxa_begin_catch(ptr %0) #12 - tail call void @_ZSt9terminatev() #11 + %2 = tail call ptr @__cxa_begin_catch(ptr %0) #13 + tail call void @_ZSt9terminatev() #12 unreachable } @@ -1814,11 +1808,14 @@ declare void @_ZdlPv(ptr noundef) local_unnamed_addr #8 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #9 +; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) +declare void @llvm.assume(i1 noundef) #10 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umin.i64(i64, i64) #10 +declare i64 @llvm.umin.i64(i64, i64) #11 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i32 @llvm.umax.i32(i32, i32) #10 +declare i32 @llvm.umax.i32(i32, i32) #11 attributes #0 = { mustprogress 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,+sse3,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } @@ -1830,12 +1827,13 @@ attributes #6 = { cold nofree noreturn } attributes #7 = { nobuiltin allocsize(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,+sse3,+x87" "tune-cpu"="generic" } attributes #8 = { nobuiltin 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,+sse3,+x87" "tune-cpu"="generic" } attributes #9 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #10 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #11 = { noreturn nounwind } -attributes #12 = { nounwind } -attributes #13 = { noreturn } -attributes #14 = { builtin allocsize(0) } -attributes #15 = { builtin nounwind } +attributes #10 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #11 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #12 = { noreturn nounwind } +attributes #13 = { nounwind } +attributes #14 = { noreturn } +attributes #15 = { builtin allocsize(0) } +attributes #16 = { builtin nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/opencv/optimized/split.dispatch.cpp.ll b/bench/opencv/optimized/split.dispatch.cpp.ll index 4e9bf80d7a7..41b84cc0eaf 100644 --- a/bench/opencv/optimized/split.dispatch.cpp.ll +++ b/bench/opencv/optimized/split.dispatch.cpp.ll @@ -274,7 +274,7 @@ _ZN2cv3hal12cpu_baselineL6split_IhEEvPKT_PPS3_ii.exit: ; preds = %._crit_edge.us %95 = landingpad { ptr, i32 } catch ptr null %96 = extractvalue { ptr, i32 } %95, 0 - call void @__clang_call_terminate(ptr %96) #12 + call void @__clang_call_terminate(ptr %96) #13 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv3hal12cpu_baselineL6split_IhEEvPKT_PPS3_ii.exit, %93 @@ -303,7 +303,7 @@ define linkonce_odr hidden void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr nound %7 = landingpad { ptr, i32 } catch ptr null %8 = extractvalue { ptr, i32 } %7, 0 - tail call void @__clang_call_terminate(ptr %8) #12 + tail call void @__clang_call_terminate(ptr %8) #13 unreachable } @@ -518,7 +518,7 @@ _ZN2cv3hal12cpu_baselineL6split_ItEEvPKT_PPS3_ii.exit: ; preds = %._crit_edge.us %96 = landingpad { ptr, i32 } catch ptr null %97 = extractvalue { ptr, i32 } %96, 0 - call void @__clang_call_terminate(ptr %97) #12 + call void @__clang_call_terminate(ptr %97) #13 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv3hal12cpu_baselineL6split_ItEEvPKT_PPS3_ii.exit, %94 @@ -736,7 +736,7 @@ _ZN2cv3hal12cpu_baselineL6split_IiEEvPKT_PPS3_ii.exit: ; preds = %._crit_edge.us %96 = landingpad { ptr, i32 } catch ptr null %97 = extractvalue { ptr, i32 } %96, 0 - call void @__clang_call_terminate(ptr %97) #12 + call void @__clang_call_terminate(ptr %97) #13 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv3hal12cpu_baselineL6split_IiEEvPKT_PPS3_ii.exit, %94 @@ -954,7 +954,7 @@ _ZN2cv3hal12cpu_baselineL6split_IlEEvPKT_PPS3_ii.exit: ; preds = %._crit_edge.us %96 = landingpad { ptr, i32 } catch ptr null %97 = extractvalue { ptr, i32 } %96, 0 - call void @__clang_call_terminate(ptr %97) #12 + call void @__clang_call_terminate(ptr %97) #13 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv3hal12cpu_baselineL6split_IlEEvPKT_PPS3_ii.exit, %94 @@ -982,7 +982,7 @@ define void @_ZN2cv3hal7split8uEPKhPPhii(ptr nocapture noundef readonly %0, ptr %11 = landingpad { ptr, i32 } catch ptr null %12 = extractvalue { ptr, i32 } %11, 0 - call void @__clang_call_terminate(ptr %12) #12 + call void @__clang_call_terminate(ptr %12) #13 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 @@ -991,7 +991,7 @@ _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 13: ; preds = %4 %14 = landingpad { ptr, i32 } cleanup - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #13 + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #14 resume { ptr, i32 } %14 } @@ -1022,7 +1022,7 @@ define void @_ZN2cv3hal8split16uEPKtPPtii(ptr nocapture noundef readonly %0, ptr %11 = landingpad { ptr, i32 } catch ptr null %12 = extractvalue { ptr, i32 } %11, 0 - call void @__clang_call_terminate(ptr %12) #12 + call void @__clang_call_terminate(ptr %12) #13 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 @@ -1031,7 +1031,7 @@ _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 13: ; preds = %4 %14 = landingpad { ptr, i32 } cleanup - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #13 + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #14 resume { ptr, i32 } %14 } @@ -1056,7 +1056,7 @@ define void @_ZN2cv3hal8split32sEPKiPPiii(ptr nocapture noundef readonly %0, ptr %11 = landingpad { ptr, i32 } catch ptr null %12 = extractvalue { ptr, i32 } %11, 0 - call void @__clang_call_terminate(ptr %12) #12 + call void @__clang_call_terminate(ptr %12) #13 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 @@ -1065,7 +1065,7 @@ _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 13: ; preds = %4 %14 = landingpad { ptr, i32 } cleanup - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #13 + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #14 resume { ptr, i32 } %14 } @@ -1090,7 +1090,7 @@ define void @_ZN2cv3hal8split64sEPKlPPlii(ptr nocapture noundef readonly %0, ptr %11 = landingpad { ptr, i32 } catch ptr null %12 = extractvalue { ptr, i32 } %11, 0 - call void @__clang_call_terminate(ptr %12) #12 + call void @__clang_call_terminate(ptr %12) #13 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 @@ -1099,7 +1099,7 @@ _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %6, %9 13: ; preds = %4 %14 = landingpad { ptr, i32 } cleanup - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #13 + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %5) #14 resume { ptr, i32 } %14 } @@ -1138,7 +1138,7 @@ define void @_ZN2cv5splitERKNS_3MatEPS0_(ptr noundef nonnull align 8 dereference cleanup br label %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit -.loopexit.split-lp96: ; preds = %52 +.loopexit.split-lp96: ; preds = %49 %lpad.loopexit.split-lp = landingpad { ptr, i32 } cleanup br label %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit @@ -1159,166 +1159,160 @@ define void @_ZN2cv5splitERKNS_3MatEPS0_(ptr noundef nonnull align 8 dereference 24: ; preds = %20 %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 %25, label %20, !llvm.loop !29 - -25: ; preds = %24 - %26 = zext nneg i32 %8 to i64 - %27 = getelementptr inbounds [8 x ptr], ptr @_ZZN2cvL12getSplitFuncEiE8splitTab, i64 0, i64 %26 - %28 = load ptr, ptr %27, align 8 - %29 = load i32, ptr %13, align 4 - %30 = icmp sgt i32 %29, 0 - br i1 %30, label %31, label %_ZNK2cv3Mat8elemSizeEv.exit - -31: ; preds = %25 - %32 = getelementptr inbounds i8, ptr %0, i64 72 - %33 = load ptr, ptr %32, align 8 - %34 = zext nneg i32 %29 to i64 - %35 = getelementptr i64, ptr %33, i64 %34 - %36 = getelementptr i8, ptr %35, i64 -8 - %37 = load i64, ptr %36, align 8 - br label %_ZNK2cv3Mat8elemSizeEv.exit - -_ZNK2cv3Mat8elemSizeEv.exit: ; preds = %25, %31 - %38 = phi i64 [ %37, %31 ], [ 0, %25 ] - %39 = load i32, ptr %0, align 8 - %40 = shl i32 %39, 2 - %41 = and i32 %40, 28 - %42 = lshr i32 675553809, %41 - %43 = and i32 %42, 15 - %44 = zext nneg i32 %43 to i64 - %45 = add i64 %38, 1023 - %46 = udiv i64 %45, %38 - %47 = add nuw nsw i32 %10, 2 - %48 = shl nuw nsw i32 %47, 4 - %narrow = add nuw nsw i32 %48, 16 - %49 = zext nneg i32 %narrow to i64 - %50 = getelementptr inbounds i8, ptr %5, i64 16 - store ptr %50, ptr %5, align 8 - %51 = getelementptr inbounds i8, ptr %5, i64 8 + br i1 %exitcond.not, label %_ZNK2cv3Mat8elemSizeEv.exit, label %20, !llvm.loop !29 + +_ZNK2cv3Mat8elemSizeEv.exit: ; preds = %24 + %25 = zext nneg i32 %8 to i64 + %26 = getelementptr inbounds [8 x ptr], ptr @_ZZN2cvL12getSplitFuncEiE8splitTab, i64 0, i64 %25 + %27 = load ptr, ptr %26, align 8 + %28 = load i32, ptr %13, align 4 + %29 = icmp sgt i32 %28, 0 + call void @llvm.assume(i1 %29) + %30 = getelementptr inbounds i8, ptr %0, i64 72 + %31 = load ptr, ptr %30, align 8 + %32 = zext nneg i32 %28 to i64 + %33 = getelementptr i64, ptr %31, i64 %32 + %34 = getelementptr i8, ptr %33, i64 -8 + %35 = load i64, ptr %34, align 8 + %36 = load i32, ptr %0, align 8 + %37 = shl i32 %36, 2 + %38 = and i32 %37, 28 + %39 = lshr i32 675553809, %38 + %40 = and i32 %39, 15 + %41 = zext nneg i32 %40 to i64 + %42 = add i64 %35, 1023 + %43 = udiv i64 %42, %35 + %44 = add nuw nsw i32 %10, 2 + %45 = shl nuw nsw i32 %44, 4 + %narrow = add nuw nsw i32 %45, 16 + %46 = zext nneg i32 %narrow to i64 + %47 = getelementptr inbounds i8, ptr %5, i64 16 + store ptr %47, ptr %5, align 8 + %48 = getelementptr inbounds i8, ptr %5, i64 8 %.not.i.i = icmp ugt i32 %10, 61 - store i64 %49, ptr %51, align 8 - br i1 %.not.i.i, label %52, label %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit + store i64 %46, ptr %48, align 8 + br i1 %.not.i.i, label %49, label %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit -52: ; preds = %_ZNK2cv3Mat8elemSizeEv.exit - %53 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %49) #14 +49: ; preds = %_ZNK2cv3Mat8elemSizeEv.exit + %50 = invoke noalias noundef nonnull ptr @_Znam(i64 noundef %46) #15 to label %.noexc unwind label %.loopexit.split-lp96 -.noexc: ; preds = %52 - store ptr %53, ptr %5, align 8 +.noexc: ; preds = %49 + store ptr %50, ptr %5, align 8 br label %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit _ZN2cv10AutoBufferIhLm1032EEC2Em.exit: ; preds = %.noexc, %_ZNK2cv3Mat8elemSizeEv.exit - %54 = phi ptr [ %53, %.noexc ], [ %50, %_ZNK2cv3Mat8elemSizeEv.exit ] - %55 = getelementptr inbounds ptr, ptr %54, i64 %wide.trip.count - %56 = getelementptr inbounds i8, ptr %55, i64 8 - %57 = ptrtoint ptr %56 to i64 - %58 = add i64 %57, 15 - %59 = and i64 %58, -16 - store ptr %0, ptr %54, align 8 - br label %60 - -60: ; preds = %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit, %60 - %indvars.iv109 = phi i64 [ 0, %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit ], [ %indvars.iv.next110, %60 ] - %61 = getelementptr inbounds %"class.cv::Mat", ptr %1, i64 %indvars.iv109 + %51 = phi ptr [ %50, %.noexc ], [ %47, %_ZNK2cv3Mat8elemSizeEv.exit ] + %52 = getelementptr inbounds ptr, ptr %51, i64 %wide.trip.count + %53 = getelementptr inbounds i8, ptr %52, i64 8 + %54 = ptrtoint ptr %53 to i64 + %55 = add i64 %54, 15 + %56 = and i64 %55, -16 + store ptr %0, ptr %51, align 8 + br label %57 + +57: ; preds = %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit, %57 + %indvars.iv109 = phi i64 [ 0, %_ZN2cv10AutoBufferIhLm1032EEC2Em.exit ], [ %indvars.iv.next110, %57 ] + %58 = getelementptr inbounds %"class.cv::Mat", ptr %1, i64 %indvars.iv109 %indvars.iv.next110 = add nuw nsw i64 %indvars.iv109, 1 - %62 = getelementptr inbounds ptr, ptr %54, i64 %indvars.iv.next110 - store ptr %61, ptr %62, align 8 + %59 = getelementptr inbounds ptr, ptr %51, i64 %indvars.iv.next110 + store ptr %58, ptr %59, align 8 %exitcond113.not = icmp eq i64 %indvars.iv.next110, %wide.trip.count - br i1 %exitcond113.not, label %68, label %60, !llvm.loop !30 + br i1 %exitcond113.not, label %65, label %57, !llvm.loop !30 .loopexit.split-lp.loopexit.split: ; preds = %.preheader %lpad.loopexit91 = landingpad { ptr, i32 } cleanup br label %.loopexit.split-lp -.loopexit.split-lp.loopexit.split-lp: ; preds = %68 +.loopexit.split-lp.loopexit.split-lp: ; preds = %65 %lpad.loopexit.split-lp92 = landingpad { ptr, i32 } cleanup br label %.loopexit.split-lp .loopexit.split-lp: ; preds = %.loopexit.split-lp.loopexit.split-lp, %.loopexit.split-lp.loopexit.split.us, %.loopexit.split-lp.loopexit.split, %.loopexit90.split.us %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit.us, %.loopexit90.split.us ], [ %lpad.loopexit.split-lp92, %.loopexit.split-lp.loopexit.split-lp ], [ %lpad.loopexit91, %.loopexit.split-lp.loopexit.split ], [ %lpad.loopexit91.us, %.loopexit.split-lp.loopexit.split.us ] - %63 = load ptr, ptr %5, align 8 - %.not.i.i70 = icmp eq ptr %63, %50 - br i1 %.not.i.i70, label %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit, label %64 + %60 = load ptr, ptr %5, align 8 + %.not.i.i70 = icmp eq ptr %60, %47 + br i1 %.not.i.i70, label %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit, label %61 -64: ; preds = %.loopexit.split-lp - %65 = icmp eq ptr %63, null - br i1 %65, label %67, label %66 +61: ; preds = %.loopexit.split-lp + %62 = icmp eq ptr %60, null + br i1 %62, label %64, label %63 -66: ; preds = %64 - call void @_ZdaPv(ptr noundef nonnull %63) #15 - br label %67 +63: ; preds = %61 + call void @_ZdaPv(ptr noundef nonnull %60) #16 + br label %64 -67: ; preds = %66, %64 - store ptr %50, ptr %5, align 8 - store i64 1032, ptr %51, align 8 +64: ; preds = %63, %61 + store ptr %47, ptr %5, align 8 + store i64 1032, ptr %48, align 8 br label %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit -68: ; preds = %60 - %69 = inttoptr i64 %59 to ptr - invoke void @_ZN2cv15NAryMatIteratorC1EPPKNS_3MatEPPhi(ptr noundef nonnull align 8 dereferenceable(64) %6, ptr noundef nonnull %54, ptr noundef %69, i32 noundef %47) - to label %70 unwind label %.loopexit.split-lp.loopexit.split-lp - -70: ; preds = %68 - %71 = getelementptr inbounds i8, ptr %6, i64 40 - %72 = load i64, ptr %71, align 8 - %.fr106 = freeze i64 %72 - %73 = udiv i32 536870911, %11 - %74 = zext nneg i32 %73 to i64 - %75 = icmp ult i32 %10, 4 - %..i.val = call i64 @llvm.umin.i64(i64 %46, i64 %.fr106) - %76 = select i1 %75, i64 %.fr106, i64 %..i.val - %.sroa.speculated77 = call i64 @llvm.umin.i64(i64 %76, i64 %74) - %77 = getelementptr inbounds i8, ptr %6, i64 32 +65: ; preds = %57 + %66 = inttoptr i64 %56 to ptr + invoke void @_ZN2cv15NAryMatIteratorC1EPPKNS_3MatEPPhi(ptr noundef nonnull align 8 dereferenceable(64) %6, ptr noundef nonnull %51, ptr noundef %66, i32 noundef %44) + to label %67 unwind label %.loopexit.split-lp.loopexit.split-lp + +67: ; preds = %65 + %68 = getelementptr inbounds i8, ptr %6, i64 40 + %69 = load i64, ptr %68, align 8 + %.fr106 = freeze i64 %69 + %70 = udiv i32 536870911, %11 + %71 = zext nneg i32 %70 to i64 + %72 = icmp ult i32 %10, 4 + %..i.val = call i64 @llvm.umin.i64(i64 %43, i64 %.fr106) + %73 = select i1 %72, i64 %.fr106, i64 %..i.val + %.sroa.speculated77 = call i64 @llvm.umin.i64(i64 %73, i64 %71) + %74 = getelementptr inbounds i8, ptr %6, i64 32 %.not = icmp eq i64 %.fr106, 0 - %78 = getelementptr inbounds i8, ptr %69, i64 8 + %75 = getelementptr inbounds i8, ptr %66, i64 8 br i1 %.not, label %.split, label %.split.us -.split.us: ; preds = %70, %._crit_edge.us - %.059.us = phi i64 [ %96, %._crit_edge.us ], [ 0, %70 ] - %79 = load i64, ptr %77, align 8 - %80 = icmp ult i64 %.059.us, %79 - br i1 %80, label %.preheader.us, label %.split104.us +.split.us: ; preds = %67, %._crit_edge.us + %.059.us = phi i64 [ %93, %._crit_edge.us ], [ 0, %67 ] + %76 = load i64, ptr %74, align 8 + %77 = icmp ult i64 %.059.us, %76 + br i1 %77, label %.preheader.us, label %.split104.us .preheader.us: ; preds = %.split.us, %.loopexit.us - %.058102.us = phi i64 [ %85, %.loopexit.us ], [ 0, %.split.us ] - %81 = sub nuw i64 %.fr106, %.058102.us - %.sroa.speculated.us = call i64 @llvm.umin.i64(i64 %.sroa.speculated77, i64 %81) - %82 = load ptr, ptr %69, align 16 - %83 = trunc nuw nsw i64 %.sroa.speculated.us to i32 - invoke void %28(ptr noundef %82, ptr noundef nonnull %78, i32 noundef %83, i32 noundef %11) - to label %84 unwind label %.loopexit90.split.us - -84: ; preds = %.preheader.us - %85 = add i64 %.058102.us, %.sroa.speculated77 - %86 = icmp ult i64 %85, %.fr106 - br i1 %86, label %87, label %._crit_edge.us - -87: ; preds = %84 - %88 = mul i64 %.sroa.speculated.us, %38 - %89 = load ptr, ptr %69, align 16 - %90 = getelementptr inbounds i8, ptr %89, i64 %88 - store ptr %90, ptr %69, align 16 - %91 = mul nuw nsw i64 %.sroa.speculated.us, %44 - br label %92 - -92: ; preds = %92, %87 - %indvars.iv114 = phi i64 [ %indvars.iv.next115, %92 ], [ 0, %87 ] + %.058102.us = phi i64 [ %82, %.loopexit.us ], [ 0, %.split.us ] + %78 = sub nuw i64 %.fr106, %.058102.us + %.sroa.speculated.us = call i64 @llvm.umin.i64(i64 %.sroa.speculated77, i64 %78) + %79 = load ptr, ptr %66, align 16 + %80 = trunc nuw nsw i64 %.sroa.speculated.us to i32 + invoke void %27(ptr noundef %79, ptr noundef nonnull %75, i32 noundef %80, i32 noundef %11) + to label %81 unwind label %.loopexit90.split.us + +81: ; preds = %.preheader.us + %82 = add i64 %.058102.us, %.sroa.speculated77 + %83 = icmp ult i64 %82, %.fr106 + br i1 %83, label %84, label %._crit_edge.us + +84: ; preds = %81 + %85 = mul i64 %.sroa.speculated.us, %35 + %86 = load ptr, ptr %66, align 16 + %87 = getelementptr inbounds i8, ptr %86, i64 %85 + store ptr %87, ptr %66, align 16 + %88 = mul nuw nsw i64 %.sroa.speculated.us, %41 + br label %89 + +89: ; preds = %89, %84 + %indvars.iv114 = phi i64 [ %indvars.iv.next115, %89 ], [ 0, %84 ] %indvars.iv.next115 = add nuw nsw i64 %indvars.iv114, 1 - %93 = getelementptr inbounds ptr, ptr %69, i64 %indvars.iv.next115 - %94 = load ptr, ptr %93, align 8 - %95 = getelementptr inbounds i8, ptr %94, i64 %91 - store ptr %95, ptr %93, align 8 + %90 = getelementptr inbounds ptr, ptr %66, i64 %indvars.iv.next115 + %91 = load ptr, ptr %90, align 8 + %92 = getelementptr inbounds i8, ptr %91, i64 %88 + store ptr %92, ptr %90, align 8 %exitcond118.not = icmp eq i64 %indvars.iv.next115, %wide.trip.count - br i1 %exitcond118.not, label %.loopexit.us, label %92, !llvm.loop !31 + br i1 %exitcond118.not, label %.loopexit.us, label %89, !llvm.loop !31 -.loopexit.us: ; preds = %92 +.loopexit.us: ; preds = %89 br label %.preheader.us, !llvm.loop !32 -._crit_edge.us: ; preds = %84 - %96 = add nuw i64 %.059.us, 1 - %97 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN2cv15NAryMatIteratorppEv(ptr noundef nonnull align 8 dereferenceable(64) %6) +._crit_edge.us: ; preds = %81 + %93 = add nuw i64 %.059.us, 1 + %94 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN2cv15NAryMatIteratorppEv(ptr noundef nonnull align 8 dereferenceable(64) %6) to label %.split.us unwind label %.loopexit.split-lp.loopexit.split.us, !llvm.loop !33 .loopexit.split-lp.loopexit.split.us: ; preds = %._crit_edge.us @@ -1331,58 +1325,58 @@ _ZN2cv10AutoBufferIhLm1032EEC2Em.exit: ; preds = %.noexc, %_ZNK2cv3Ma cleanup br label %.loopexit.split-lp -.split: ; preds = %70, %.preheader - %.059 = phi i64 [ %100, %.preheader ], [ 0, %70 ] - %98 = load i64, ptr %77, align 8 - %99 = icmp ult i64 %.059, %98 - br i1 %99, label %.preheader, label %.split104.us +.split: ; preds = %67, %.preheader + %.059 = phi i64 [ %97, %.preheader ], [ 0, %67 ] + %95 = load i64, ptr %74, align 8 + %96 = icmp ult i64 %.059, %95 + br i1 %96, label %.preheader, label %.split104.us .preheader: ; preds = %.split - %100 = add nuw i64 %.059, 1 - %101 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN2cv15NAryMatIteratorppEv(ptr noundef nonnull align 8 dereferenceable(64) %6) + %97 = add nuw i64 %.059, 1 + %98 = invoke noundef nonnull align 8 dereferenceable(64) ptr @_ZN2cv15NAryMatIteratorppEv(ptr noundef nonnull align 8 dereferenceable(64) %6) to label %.split unwind label %.loopexit.split-lp.loopexit.split, !llvm.loop !33 .split104.us: ; preds = %.split.us, %.split - %102 = load ptr, ptr %5, align 8 - %.not.i.i73 = icmp eq ptr %102, %50 - br i1 %.not.i.i73, label %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit74, label %103 + %99 = load ptr, ptr %5, align 8 + %.not.i.i73 = icmp eq ptr %99, %47 + br i1 %.not.i.i73, label %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit74, label %100 -103: ; preds = %.split104.us - %104 = icmp eq ptr %102, null - br i1 %104, label %106, label %105 +100: ; preds = %.split104.us + %101 = icmp eq ptr %99, null + br i1 %101, label %103, label %102 -105: ; preds = %103 - call void @_ZdaPv(ptr noundef nonnull %102) #15 - br label %106 +102: ; preds = %100 + call void @_ZdaPv(ptr noundef nonnull %99) #16 + br label %103 -106: ; preds = %105, %103 - store ptr %50, ptr %5, align 8 - store i64 1032, ptr %51, align 8 +103: ; preds = %102, %100 + store ptr %47, ptr %5, align 8 + store i64 1032, ptr %48, align 8 br label %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit74 -_ZN2cv10AutoBufferIhLm1032EED2Ev.exit74: ; preds = %106, %.split104.us, %15 - %107 = getelementptr inbounds i8, ptr %3, i64 8 - %108 = load i32, ptr %107, align 8 - %.not.i = icmp eq i32 %108, 0 - br i1 %.not.i, label %_ZN2cv5utils5trace7details6RegionD2Ev.exit, label %109 +_ZN2cv10AutoBufferIhLm1032EED2Ev.exit74: ; preds = %103, %.split104.us, %15 + %104 = getelementptr inbounds i8, ptr %3, i64 8 + %105 = load i32, ptr %104, align 8 + %.not.i = icmp eq i32 %105, 0 + br i1 %.not.i, label %_ZN2cv5utils5trace7details6RegionD2Ev.exit, label %106 -109: ; preds = %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit74 +106: ; preds = %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit74 invoke void @_ZN2cv5utils5trace7details6Region7destroyEv(ptr noundef nonnull align 8 dereferenceable(12) %3) - to label %_ZN2cv5utils5trace7details6RegionD2Ev.exit unwind label %110 + to label %_ZN2cv5utils5trace7details6RegionD2Ev.exit unwind label %107 -110: ; preds = %109 - %111 = landingpad { ptr, i32 } +107: ; preds = %106 + %108 = landingpad { ptr, i32 } catch ptr null - %112 = extractvalue { ptr, i32 } %111, 0 - call void @__clang_call_terminate(ptr %112) #12 + %109 = extractvalue { ptr, i32 } %108, 0 + call void @__clang_call_terminate(ptr %109) #13 unreachable -_ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit74, %109 +_ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZN2cv10AutoBufferIhLm1032EED2Ev.exit74, %106 ret void -_ZN2cv10AutoBufferIhLm1032EED2Ev.exit: ; preds = %.loopexit95, %.loopexit.split-lp96, %67, %.loopexit.split-lp, %18 - %.pn68 = phi { ptr, i32 } [ %19, %18 ], [ %lpad.phi, %.loopexit.split-lp ], [ %lpad.phi, %67 ], [ %lpad.loopexit97, %.loopexit95 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp96 ] - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %3) #13 +_ZN2cv10AutoBufferIhLm1032EED2Ev.exit: ; preds = %.loopexit95, %.loopexit.split-lp96, %64, %.loopexit.split-lp, %18 + %.pn68 = phi { ptr, i32 } [ %19, %18 ], [ %lpad.phi, %.loopexit.split-lp ], [ %lpad.phi, %64 ], [ %lpad.loopexit97, %.loopexit95 ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp96 ] + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %3) #14 resume { ptr, i32 } %.pn68 } @@ -1478,12 +1472,12 @@ _ZNK2cv11_InputArray6getMatEi.exit: ; preds = %10, %13 br i1 %30, label %39, label %31 31: ; preds = %27 - call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #13 + call void @_ZNSaIcEC1Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #14 invoke void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEC1EPKcRKS3_(ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @.str.17, ptr noundef nonnull align 1 dereferenceable(1) %6) to label %32 unwind label %34 32: ; preds = %31 - invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @__func__._ZN2cv5splitERKNS_3MatEPS0_, ptr noundef nonnull @.str.6, i32 noundef 229) #16 + invoke void @_ZN2cv5errorEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEPKcS9_i(i32 noundef -215, ptr noundef nonnull align 8 dereferenceable(32) %5, ptr noundef nonnull @__func__._ZN2cv5splitERKNS_3MatEPS0_, ptr noundef nonnull @.str.6, i32 noundef 229) #17 to label %33 unwind label %36 33: ; preds = %32 @@ -1497,12 +1491,12 @@ _ZNK2cv11_InputArray6getMatEi.exit: ; preds = %10, %13 36: ; preds = %32 %37 = landingpad { ptr, i32 } cleanup - call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #13 + call void @_ZNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEED1Ev(ptr noundef nonnull align 8 dereferenceable(32) %5) #14 br label %38 38: ; preds = %36, %34 %.pn = phi { ptr, i32 } [ %37, %36 ], [ %35, %34 ] - call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #13 + call void @_ZNSaIcED1Ev(ptr noundef nonnull align 1 dereferenceable(1) %6) #14 br label %70 39: ; preds = %21, %24, %27 @@ -1550,7 +1544,7 @@ _ZNK2cv11_InputArray6getMatEi.exit: ; preds = %10, %13 .lr.ph.i.i.i.i: ; preds = %55, %.lr.ph.i.i.i.i %.05.i.i.i.i = phi ptr [ %59, %.lr.ph.i.i.i.i ], [ %56, %55 ] - call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %.05.i.i.i.i) #13 + call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %.05.i.i.i.i) #14 %59 = getelementptr inbounds i8, ptr %.05.i.i.i.i, i64 96 %.not.i.i.i.i = icmp eq ptr %59, %58 br i1 %.not.i.i.i.i, label %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exitthread-pre-split.i, label %.lr.ph.i.i.i.i, !llvm.loop !38 @@ -1565,11 +1559,11 @@ _ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i: ; preds = %_ZSt8_DestroyIPN2c br i1 %.not.i.i.i, label %_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit, label %61 61: ; preds = %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i - call void @_ZdlPv(ptr noundef nonnull %60) #15 + call void @_ZdlPv(ptr noundef nonnull %60) #16 br label %_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit _ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit: ; preds = %61, %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit.i, %16 - call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %4) #13 + call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %4) #14 %62 = getelementptr inbounds i8, ptr %3, i64 8 %63 = load i32, ptr %62, align 8 %.not.i = icmp eq i32 %63, 0 @@ -1583,7 +1577,7 @@ _ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit: ; preds = %61, %_ZSt8_DestroyI %66 = landingpad { ptr, i32 } catch ptr null %67 = extractvalue { ptr, i32 } %66, 0 - call void @__clang_call_terminate(ptr %67) #12 + call void @__clang_call_terminate(ptr %67) #13 unreachable _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev.exit, %64 @@ -1592,17 +1586,17 @@ _ZN2cv5utils5trace7details6RegionD2Ev.exit: ; preds = %_ZNSt6vectorIN2cv3M 68: ; preds = %53, %52 %69 = landingpad { ptr, i32 } cleanup - call void @_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #13 + call void @_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev(ptr noundef nonnull align 8 dereferenceable(24) %7) #14 br label %70 70: ; preds = %.loopexit, %.loopexit.split-lp, %68, %38 %.pn21 = phi { ptr, i32 } [ %69, %68 ], [ %.pn, %38 ], [ %lpad.loopexit, %.loopexit ], [ %lpad.loopexit.split-lp, %.loopexit.split-lp ] - call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %4) #13 + call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %4) #14 br label %71 71: ; preds = %70, %17 %.pn21.pn = phi { ptr, i32 } [ %.pn21, %70 ], [ %18, %17 ] - call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %3) #13 + call void @_ZN2cv5utils5trace7details6RegionD2Ev(ptr noundef nonnull align 8 dereferenceable(12) %3) #14 resume { ptr, i32 } %.pn21.pn } @@ -1632,7 +1626,7 @@ define linkonce_odr hidden void @_ZNSt6vectorIN2cv3MatESaIS1_EED2Ev(ptr noundef .lr.ph.i.i.i: ; preds = %1, %.lr.ph.i.i.i %.05.i.i.i = phi ptr [ %5, %.lr.ph.i.i.i ], [ %2, %1 ] - tail call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %.05.i.i.i) #13 + tail call void @_ZN2cv3MatD1Ev(ptr noundef nonnull align 8 dereferenceable(96) %.05.i.i.i) #14 %5 = getelementptr inbounds i8, ptr %.05.i.i.i, i64 96 %.not.i.i.i = icmp eq ptr %5, %4 br i1 %.not.i.i.i, label %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exitthread-pre-split, label %.lr.ph.i.i.i, !llvm.loop !38 @@ -1647,7 +1641,7 @@ _ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit: ; preds = %_ZSt8_DestroyIPN2cv br i1 %.not.i.i, label %_ZNSt12_Vector_baseIN2cv3MatESaIS1_EED2Ev.exit, label %7 7: ; preds = %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit - tail call void @_ZdlPv(ptr noundef nonnull %6) #15 + tail call void @_ZdlPv(ptr noundef nonnull %6) #16 br label %_ZNSt12_Vector_baseIN2cv3MatESaIS1_EED2Ev.exit _ZNSt12_Vector_baseIN2cv3MatESaIS1_EED2Ev.exit: ; preds = %_ZSt8_DestroyIPN2cv3MatES1_EvT_S3_RSaIT0_E.exit, %7 @@ -1661,8 +1655,8 @@ declare void @_ZN2cv5utils5trace7details6Region7destroyEv(ptr noundef nonnull al ; Function Attrs: noreturn nounwind uwtable define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) local_unnamed_addr #5 comdat { - %2 = tail call ptr @__cxa_begin_catch(ptr %0) #13 - tail call void @_ZSt9terminatev() #12 + %2 = tail call ptr @__cxa_begin_catch(ptr %0) #14 + tail call void @_ZSt9terminatev() #13 unreachable } @@ -1692,8 +1686,11 @@ declare void @_ZdlPv(ptr noundef) local_unnamed_addr #9 ; Function Attrs: nocallback nofree nounwind willreturn memory(argmem: write) declare void @llvm.memset.p0.i64(ptr nocapture writeonly, i8, i64, i1 immarg) #10 +; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) +declare void @llvm.assume(i1 noundef) #11 + ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) -declare i64 @llvm.umin.i64(i64, i64) #11 +declare i64 @llvm.umin.i64(i64, i64) #12 attributes #0 = { mustprogress 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,+sse3,+x87" "tune-cpu"="generic" } attributes #1 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protector-buffer-size"="8" "target-cpu"="x86-64" "target-features"="+cmov,+cx8,+fxsr,+mmx,+sse,+sse2,+sse3,+x87" "tune-cpu"="generic" } @@ -1706,12 +1703,13 @@ attributes #7 = { mustprogress nocallback nofree nounwind willreturn memory(argm attributes #8 = { nobuiltin allocsize(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,+sse3,+x87" "tune-cpu"="generic" } attributes #9 = { nobuiltin 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,+sse3,+x87" "tune-cpu"="generic" } attributes #10 = { nocallback nofree nounwind willreturn memory(argmem: write) } -attributes #11 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #12 = { noreturn nounwind } -attributes #13 = { nounwind } -attributes #14 = { builtin allocsize(0) } -attributes #15 = { builtin nounwind } -attributes #16 = { noreturn } +attributes #11 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #12 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } +attributes #13 = { noreturn nounwind } +attributes #14 = { nounwind } +attributes #15 = { builtin allocsize(0) } +attributes #16 = { builtin nounwind } +attributes #17 = { noreturn } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/openjdk/optimized/jquant2.ll b/bench/openjdk/optimized/jquant2.ll index 789142d5f0c..e0ecbe4c59e 100644 --- a/bench/openjdk/optimized/jquant2.ll +++ b/bench/openjdk/optimized/jquant2.ll @@ -10,7 +10,7 @@ define hidden void @jI2Quant(ptr noundef %0) local_unnamed_addr #0 { %2 = getelementptr inbounds i8, ptr %0, i64 8 %3 = load ptr, ptr %2, align 8 %4 = load ptr, ptr %3, align 8 - %5 = tail call ptr %4(ptr noundef %0, i32 noundef 1, i64 noundef 88) #8 + %5 = tail call ptr %4(ptr noundef %0, i32 noundef 1, i64 noundef 88) #9 %6 = getelementptr inbounds i8, ptr %0, i64 624 store ptr %5, ptr %6, align 8 store ptr @start_pass_2_quant, ptr %5, align 8 @@ -31,13 +31,13 @@ define hidden void @jI2Quant(ptr noundef %0) local_unnamed_addr #0 { store i32 47, ptr %14, align 8 %15 = load ptr, ptr %0, align 8 %16 = load ptr, ptr %15, align 8 - tail call void %16(ptr noundef nonnull %0) #8 + tail call void %16(ptr noundef nonnull %0) #9 br label %17 17: ; preds = %12, %1 %18 = load ptr, ptr %2, align 8 %19 = load ptr, ptr %18, align 8 - %20 = tail call ptr %19(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 256) #8 + %20 = tail call ptr %19(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 256) #9 %21 = getelementptr inbounds i8, ptr %5, i64 48 store ptr %20, ptr %21, align 8 br label %22 @@ -47,7 +47,7 @@ define hidden void @jI2Quant(ptr noundef %0) local_unnamed_addr #0 { %23 = load ptr, ptr %2, align 8 %24 = getelementptr inbounds i8, ptr %23, i64 8 %25 = load ptr, ptr %24, align 8 - %26 = tail call ptr %25(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 4096) #8 + %26 = tail call ptr %25(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 4096) #9 %27 = load ptr, ptr %21, align 8 %28 = getelementptr inbounds ptr, ptr %27, i64 %indvars.iv store ptr %26, ptr %28, align 8 @@ -84,14 +84,14 @@ define hidden void @jI2Quant(ptr noundef %0) local_unnamed_addr #0 { store i32 %.sink, ptr %42, align 4 %43 = load ptr, ptr %0, align 8 %44 = load ptr, ptr %43, align 8 - tail call void %44(ptr noundef nonnull %0) #8 + tail call void %44(ptr noundef nonnull %0) #9 br label %45 45: ; preds = %.sink.split, %37 %46 = load ptr, ptr %2, align 8 %47 = getelementptr inbounds i8, ptr %46, i64 16 %48 = load ptr, ptr %47, align 8 - %49 = tail call ptr %48(ptr noundef nonnull %0, i32 noundef 1, i32 noundef %35, i32 noundef 3) #8 + %49 = tail call ptr %48(ptr noundef nonnull %0, i32 noundef 1, i32 noundef %35, i32 noundef 3) #9 %50 = getelementptr inbounds i8, ptr %5, i64 32 store ptr %49, ptr %50, align 8 %51 = getelementptr inbounds i8, ptr %5, i64 40 @@ -119,12 +119,12 @@ define hidden void @jI2Quant(ptr noundef %0) local_unnamed_addr #0 { %63 = add i32 %62, 2 %64 = zext i32 %63 to i64 %65 = mul nuw nsw i64 %64, 6 - %66 = tail call ptr %60(ptr noundef nonnull %0, i32 noundef 1, i64 noundef %65) #8 + %66 = tail call ptr %60(ptr noundef nonnull %0, i32 noundef 1, i64 noundef %65) #9 store ptr %66, ptr %8, align 8 %67 = load ptr, ptr %6, align 8 %68 = load ptr, ptr %2, align 8 %69 = load ptr, ptr %68, align 8 - %70 = tail call ptr %69(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 2044) #8 + %70 = tail call ptr %69(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 2044) #9 %71 = getelementptr inbounds i8, ptr %70, i64 1020 %72 = getelementptr inbounds i8, ptr %67, i64 80 store ptr %71, ptr %72, align 8 @@ -227,7 +227,7 @@ define internal void @start_pass_2_quant(ptr noundef %0, i32 noundef %1) #0 { store i32 %.sink, ptr %24, align 4 %25 = load ptr, ptr %0, align 8 %26 = load ptr, ptr %25, align 8 - tail call void %26(ptr noundef nonnull %0) #8 + tail call void %26(ptr noundef nonnull %0) #9 br label %27 27: ; preds = %.sink.split, %19 @@ -251,13 +251,13 @@ define internal void @start_pass_2_quant(ptr noundef %0, i32 noundef %1) #0 { %41 = load ptr, ptr %40, align 8 %42 = getelementptr inbounds i8, ptr %41, i64 8 %43 = load ptr, ptr %42, align 8 - %44 = tail call ptr %43(ptr noundef nonnull %0, i32 noundef 1, i64 noundef %35) #8 + %44 = tail call ptr %43(ptr noundef nonnull %0, i32 noundef 1, i64 noundef %35) #9 store ptr %44, ptr %36, align 8 br label %45 45: ; preds = %39, %30 %46 = phi ptr [ %44, %39 ], [ %37, %30 ] - tail call void @jZeroFar(ptr noundef %46, i64 noundef %35) #8 + tail call void @jZeroFar(ptr noundef %46, i64 noundef %35) #9 %47 = getelementptr inbounds i8, ptr %4, i64 80 %48 = load ptr, ptr %47, align 8 %49 = icmp eq ptr %48, null @@ -268,7 +268,7 @@ define internal void @start_pass_2_quant(ptr noundef %0, i32 noundef %1) #0 { %52 = getelementptr inbounds i8, ptr %0, i64 8 %53 = load ptr, ptr %52, align 8 %54 = load ptr, ptr %53, align 8 - %55 = tail call ptr %54(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 2044) #8 + %55 = tail call ptr %54(ptr noundef nonnull %0, i32 noundef 1, i64 noundef 2044) #9 %56 = getelementptr inbounds i8, ptr %55, i64 1020 %57 = getelementptr inbounds i8, ptr %51, i64 80 store ptr %56, ptr %57, align 8 @@ -331,7 +331,7 @@ define internal void @start_pass_2_quant(ptr noundef %0, i32 noundef %1) #0 { %indvars.iv = phi i64 [ %indvars.iv.next, %.preheader ], [ 0, %74 ] %77 = getelementptr inbounds ptr, ptr %6, i64 %indvars.iv %78 = load ptr, ptr %77, align 8 - tail call void @jZeroFar(ptr noundef %78, i64 noundef 4096) #8 + tail call void @jZeroFar(ptr noundef %78, i64 noundef 4096) #9 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 32 br i1 %exitcond.not, label %79, label %.preheader, !llvm.loop !11 @@ -427,7 +427,7 @@ define internal void @finish_pass1(ptr noundef %0) #0 { %11 = load ptr, ptr %10, align 8 %12 = sext i32 %8 to i64 %13 = mul nsw i64 %12, 40 - %14 = tail call ptr %11(ptr noundef %0, i32 noundef 1, i64 noundef %13) #8 + %14 = tail call ptr %11(ptr noundef %0, i32 noundef 1, i64 noundef %13) #9 store i32 0, ptr %14, align 8 %15 = getelementptr inbounds i8, ptr %14, i64 4 store i32 31, ptr %15, align 4 @@ -483,7 +483,7 @@ define internal void @finish_pass1(ptr noundef %0) #0 { br i1 %exitcond.not.i.i.i, label %find_biggest_color_pop.exit.i.i, label %.lr.ph.i.i.i, !llvm.loop !14 .lr.ph.i67.i.i: ; preds = %23, %.lr.ph.i67.i.i - %indvars.iv42.i = phi i64 [ %indvars.iv.next43.i, %.lr.ph.i67.i.i ], [ 0, %23 ] + %indvars.iv49.i = phi i64 [ %indvars.iv.next50.i, %.lr.ph.i67.i.i ], [ 0, %23 ] %.018.i.i.i = phi ptr [ %spec.select14.i.i.i, %.lr.ph.i67.i.i ], [ null, %23 ] %.0917.i.i.i = phi i32 [ %spec.select.i68.i.i, %.lr.ph.i67.i.i ], [ 0, %23 ] %.01215.i.i.i = phi ptr [ %37, %.lr.ph.i67.i.i ], [ %14, %23 ] @@ -492,9 +492,9 @@ define internal void @finish_pass1(ptr noundef %0) #0 { %36 = icmp sgt i32 %35, %.0917.i.i.i %spec.select.i68.i.i = tail call i32 @llvm.smax.i32(i32 %35, i32 %.0917.i.i.i) %spec.select14.i.i.i = select i1 %36, ptr %.01215.i.i.i, ptr %.018.i.i.i - %indvars.iv.next43.i = add nuw nsw i64 %indvars.iv42.i, 1 + %indvars.iv.next50.i = add nuw nsw i64 %indvars.iv49.i, 1 %37 = getelementptr inbounds i8, ptr %.01215.i.i.i, i64 40 - %exitcond.not.i69.i.i = icmp eq i64 %indvars.iv.i.i, %indvars.iv.next43.i + %exitcond.not.i69.i.i = icmp eq i64 %indvars.iv.i.i, %indvars.iv.next50.i br i1 %exitcond.not.i69.i.i, label %find_biggest_color_pop.exit.i.i, label %.lr.ph.i67.i.i, !llvm.loop !15 find_biggest_color_pop.exit.i.i: ; preds = %32, %.lr.ph.i67.i.i @@ -593,13 +593,13 @@ median_cut.exit.i: ; preds = %76, %find_biggest_c br i1 %82, label %.lr.ph.i, label %select_colors.exit .lr.ph.i: ; preds = %median_cut.exit.i, %1 - %.0.lcssa.i50.i = phi i32 [ %.0.lcssa.i.i, %median_cut.exit.i ], [ 1, %1 ] - %wide.trip.count.i = zext nneg i32 %.0.lcssa.i50.i to i64 + %.0.lcssa.i57.i = phi i32 [ %.0.lcssa.i.i, %median_cut.exit.i ], [ 1, %1 ] + %wide.trip.count.i = zext nneg i32 %.0.lcssa.i57.i to i64 br label %83 83: ; preds = %compute_color.exit.i, %.lr.ph.i - %indvars.iv45.i = phi i64 [ 0, %.lr.ph.i ], [ %indvars.iv.next46.i, %compute_color.exit.i ] - %84 = getelementptr inbounds %struct.box, ptr %14, i64 %indvars.iv45.i + %indvars.iv52.i = phi i64 [ 0, %.lr.ph.i ], [ %indvars.iv.next53.i, %compute_color.exit.i ] + %84 = getelementptr inbounds %struct.box, ptr %14, i64 %indvars.iv52.i %85 = load ptr, ptr %2, align 8 %86 = getelementptr inbounds i8, ptr %85, i64 48 %87 = load ptr, ptr %86, align 8 @@ -610,153 +610,163 @@ median_cut.exit.i: ; preds = %76, %find_biggest_c %92 = load i32, ptr %91, align 8 %93 = getelementptr inbounds i8, ptr %84, i64 12 %94 = load i32, ptr %93, align 4 - %95 = getelementptr inbounds i8, ptr %84, i64 20 - %96 = load i32, ptr %95, align 4 - %.not95.i.i = icmp sgt i32 %88, %90 - br i1 %.not95.i.i, label %compute_color.exit.i, label %.preheader.lr.ph.i.i - -.preheader.lr.ph.i.i: ; preds = %83 - %97 = getelementptr inbounds i8, ptr %84, i64 16 - %98 = load i32, ptr %97, align 8 + %95 = getelementptr inbounds i8, ptr %84, i64 16 + %96 = load i32, ptr %95, align 8 + %97 = getelementptr inbounds i8, ptr %84, i64 20 + %98 = load i32, ptr %97, align 4 + %.not95.i.i = icmp sle i32 %88, %90 + tail call void @llvm.assume(i1 %.not95.i.i) %.not6780.i.i = icmp sgt i32 %92, %94 - %99 = sext i32 %98 to i64 - %.not6870.i.i = icmp sgt i32 %98, %96 - %or.cond.i.i = select i1 %.not6780.i.i, i1 true, i1 %.not6870.i.i - br i1 %or.cond.i.i, label %compute_color.exit.i, label %.preheader.preheader.i.i - -.preheader.preheader.i.i: ; preds = %.preheader.lr.ph.i.i - %100 = add i32 %96, 1 - %101 = sext i32 %92 to i64 - %102 = add i32 %94, 1 - %103 = sext i32 %88 to i64 - %104 = add i32 %90, 1 + %99 = sext i32 %96 to i64 + br i1 %.not6780.i.i, label %.preheader.us.i.i, label %.preheader.lr.ph.split.i.i + +.preheader.us.i.i: ; preds = %83, %.preheader.us.i.i + %.06396.us.i.i = phi i32 [ %100, %.preheader.us.i.i ], [ %88, %83 ] + %100 = add nsw i32 %.06396.us.i.i, 1 + %.not.us.not.i.i = icmp slt i32 %.06396.us.i.i, %90 + tail call void @llvm.assume(i1 %.not.us.not.i.i) + br label %.preheader.us.i.i + +.preheader.lr.ph.split.i.i: ; preds = %83 + %.not6870.i.i = icmp sgt i32 %96, %98 + br i1 %.not6870.i.i, label %.preheader.us110.i.i, label %.preheader.preheader.i.i + +.preheader.preheader.i.i: ; preds = %.preheader.lr.ph.split.i.i + %101 = add i32 %98, 1 + %102 = sext i32 %92 to i64 + %103 = add i32 %94, 1 + %104 = sext i32 %88 to i64 + %105 = add i32 %90, 1 br label %.preheader.i.i +.preheader.us110.i.i: ; preds = %.preheader.lr.ph.split.i.i, %.preheader.us110.i.i + %.06396.us115.i.i = phi i32 [ %106, %.preheader.us110.i.i ], [ %88, %.preheader.lr.ph.split.i.i ] + %106 = add nsw i32 %.06396.us115.i.i, 1 + %.not.us116.not.i.i = icmp slt i32 %.06396.us115.i.i, %90 + tail call void @llvm.assume(i1 %.not.us116.not.i.i) + br label %.preheader.us110.i.i + .preheader.i.i: ; preds = %._crit_edge87.split.i.i, %.preheader.preheader.i.i - %indvars.iv133.i.i = phi i64 [ %103, %.preheader.preheader.i.i ], [ %indvars.iv.next134.i.i, %._crit_edge87.split.i.i ] + %indvars.iv131.i.i = phi i64 [ %104, %.preheader.preheader.i.i ], [ %indvars.iv.next132.i.i, %._crit_edge87.split.i.i ] %.0100.i.i = phi i64 [ 0, %.preheader.preheader.i.i ], [ %.3.i.i, %._crit_edge87.split.i.i ] %.05099.i.i = phi i64 [ 0, %.preheader.preheader.i.i ], [ %.353.i.i, %._crit_edge87.split.i.i ] %.05498.i.i = phi i64 [ 0, %.preheader.preheader.i.i ], [ %.357.i.i, %._crit_edge87.split.i.i ] %.05897.i.i = phi i64 [ 0, %.preheader.preheader.i.i ], [ %.361.i.i, %._crit_edge87.split.i.i ] - %105 = getelementptr inbounds ptr, ptr %87, i64 %indvars.iv133.i.i - %106 = load ptr, ptr %105, align 8 - %107 = trunc nsw i64 %indvars.iv133.i.i to i32 - %108 = shl i32 %107, 3 - %109 = or disjoint i32 %108, 4 - %110 = sext i32 %109 to i64 + %107 = getelementptr inbounds ptr, ptr %87, i64 %indvars.iv131.i.i + %108 = load ptr, ptr %107, align 8 + %109 = trunc nsw i64 %indvars.iv131.i.i to i32 + %110 = shl i32 %109, 3 + %111 = or disjoint i32 %110, 4 + %112 = sext i32 %111 to i64 br label %.lr.ph.i29.i .lr.ph.i29.i: ; preds = %._crit_edge.i.i, %.preheader.i.i - %indvars.iv128.i.i = phi i64 [ %101, %.preheader.i.i ], [ %indvars.iv.next129.i.i, %._crit_edge.i.i ] + %indvars.iv126.i.i = phi i64 [ %102, %.preheader.i.i ], [ %indvars.iv.next127.i.i, %._crit_edge.i.i ] %.185.i.i = phi i64 [ %.0100.i.i, %.preheader.i.i ], [ %.3.i.i, %._crit_edge.i.i ] %.15184.i.i = phi i64 [ %.05099.i.i, %.preheader.i.i ], [ %.353.i.i, %._crit_edge.i.i ] %.15583.i.i = phi i64 [ %.05498.i.i, %.preheader.i.i ], [ %.357.i.i, %._crit_edge.i.i ] %.15982.i.i = phi i64 [ %.05897.i.i, %.preheader.i.i ], [ %.361.i.i, %._crit_edge.i.i ] - %111 = getelementptr inbounds [32 x i16], ptr %106, i64 %indvars.iv128.i.i, i64 %99 - %112 = trunc nsw i64 %indvars.iv128.i.i to i32 - %113 = shl i32 %112, 2 - %114 = or disjoint i32 %113, 2 - %115 = sext i32 %114 to i64 - br label %116 - -116: ; preds = %132, %.lr.ph.i29.i - %indvars.iv.i30.i = phi i64 [ %99, %.lr.ph.i29.i ], [ %indvars.iv.next.i31.i, %132 ] - %.276.i.i = phi i64 [ %.185.i.i, %.lr.ph.i29.i ], [ %.3.i.i, %132 ] - %.25275.i.i = phi i64 [ %.15184.i.i, %.lr.ph.i29.i ], [ %.353.i.i, %132 ] - %.25674.i.i = phi i64 [ %.15583.i.i, %.lr.ph.i29.i ], [ %.357.i.i, %132 ] - %.26073.i.i = phi i64 [ %.15982.i.i, %.lr.ph.i29.i ], [ %.361.i.i, %132 ] - %.06272.i.i = phi ptr [ %111, %.lr.ph.i29.i ], [ %117, %132 ] - %117 = getelementptr inbounds i8, ptr %.06272.i.i, i64 2 - %118 = load i16, ptr %.06272.i.i, align 2 - %.not69.i.i = icmp eq i16 %118, 0 - br i1 %.not69.i.i, label %132, label %119 - -119: ; preds = %116 - %120 = zext i16 %118 to i64 - %121 = add nsw i64 %.26073.i.i, %120 - %122 = mul nsw i64 %120, %110 - %123 = add nsw i64 %122, %.25674.i.i - %124 = mul nsw i64 %120, %115 - %125 = add nsw i64 %124, %.25275.i.i - %126 = trunc nsw i64 %indvars.iv.i30.i to i32 - %127 = shl i32 %126, 3 - %128 = or disjoint i32 %127, 4 - %129 = sext i32 %128 to i64 - %130 = mul nsw i64 %120, %129 - %131 = add nsw i64 %130, %.276.i.i - br label %132 - -132: ; preds = %119, %116 - %.361.i.i = phi i64 [ %121, %119 ], [ %.26073.i.i, %116 ] - %.357.i.i = phi i64 [ %123, %119 ], [ %.25674.i.i, %116 ] - %.353.i.i = phi i64 [ %125, %119 ], [ %.25275.i.i, %116 ] - %.3.i.i = phi i64 [ %131, %119 ], [ %.276.i.i, %116 ] + %113 = getelementptr inbounds [32 x i16], ptr %108, i64 %indvars.iv126.i.i, i64 %99 + %114 = trunc nsw i64 %indvars.iv126.i.i to i32 + %115 = shl i32 %114, 2 + %116 = or disjoint i32 %115, 2 + %117 = sext i32 %116 to i64 + br label %118 + +118: ; preds = %134, %.lr.ph.i29.i + %indvars.iv.i30.i = phi i64 [ %99, %.lr.ph.i29.i ], [ %indvars.iv.next.i31.i, %134 ] + %.276.i.i = phi i64 [ %.185.i.i, %.lr.ph.i29.i ], [ %.3.i.i, %134 ] + %.25275.i.i = phi i64 [ %.15184.i.i, %.lr.ph.i29.i ], [ %.353.i.i, %134 ] + %.25674.i.i = phi i64 [ %.15583.i.i, %.lr.ph.i29.i ], [ %.357.i.i, %134 ] + %.26073.i.i = phi i64 [ %.15982.i.i, %.lr.ph.i29.i ], [ %.361.i.i, %134 ] + %.06272.i.i = phi ptr [ %113, %.lr.ph.i29.i ], [ %119, %134 ] + %119 = getelementptr inbounds i8, ptr %.06272.i.i, i64 2 + %120 = load i16, ptr %.06272.i.i, align 2 + %.not69.i.i = icmp eq i16 %120, 0 + br i1 %.not69.i.i, label %134, label %121 + +121: ; preds = %118 + %122 = zext i16 %120 to i64 + %123 = add nsw i64 %.26073.i.i, %122 + %124 = mul nsw i64 %122, %112 + %125 = add nsw i64 %124, %.25674.i.i + %126 = mul nsw i64 %122, %117 + %127 = add nsw i64 %126, %.25275.i.i + %128 = trunc nsw i64 %indvars.iv.i30.i to i32 + %129 = shl i32 %128, 3 + %130 = or disjoint i32 %129, 4 + %131 = sext i32 %130 to i64 + %132 = mul nsw i64 %122, %131 + %133 = add nsw i64 %132, %.276.i.i + br label %134 + +134: ; preds = %121, %118 + %.361.i.i = phi i64 [ %123, %121 ], [ %.26073.i.i, %118 ] + %.357.i.i = phi i64 [ %125, %121 ], [ %.25674.i.i, %118 ] + %.353.i.i = phi i64 [ %127, %121 ], [ %.25275.i.i, %118 ] + %.3.i.i = phi i64 [ %133, %121 ], [ %.276.i.i, %118 ] %indvars.iv.next.i31.i = add nsw i64 %indvars.iv.i30.i, 1 %lftr.wideiv.i.i = trunc i64 %indvars.iv.next.i31.i to i32 - %exitcond.not.i32.i = icmp eq i32 %100, %lftr.wideiv.i.i - br i1 %exitcond.not.i32.i, label %._crit_edge.i.i, label %116, !llvm.loop !17 + %exitcond.not.i32.i = icmp eq i32 %101, %lftr.wideiv.i.i + br i1 %exitcond.not.i32.i, label %._crit_edge.i.i, label %118, !llvm.loop !17 -._crit_edge.i.i: ; preds = %132 - %indvars.iv.next129.i.i = add nsw i64 %indvars.iv128.i.i, 1 - %lftr.wideiv131.i.i = trunc i64 %indvars.iv.next129.i.i to i32 - %exitcond132.not.i.i = icmp eq i32 %102, %lftr.wideiv131.i.i - br i1 %exitcond132.not.i.i, label %._crit_edge87.split.i.i, label %.lr.ph.i29.i, !llvm.loop !18 +._crit_edge.i.i: ; preds = %134 + %indvars.iv.next127.i.i = add nsw i64 %indvars.iv126.i.i, 1 + %lftr.wideiv129.i.i = trunc i64 %indvars.iv.next127.i.i to i32 + %exitcond130.not.i.i = icmp eq i32 %103, %lftr.wideiv129.i.i + br i1 %exitcond130.not.i.i, label %._crit_edge87.split.i.i, label %.lr.ph.i29.i, !llvm.loop !18 ._crit_edge87.split.i.i: ; preds = %._crit_edge.i.i - %indvars.iv.next134.i.i = add nsw i64 %indvars.iv133.i.i, 1 - %lftr.wideiv136.i.i = trunc i64 %indvars.iv.next134.i.i to i32 - %exitcond137.not.i.i = icmp eq i32 %104, %lftr.wideiv136.i.i - br i1 %exitcond137.not.i.i, label %compute_color.exit.i, label %.preheader.i.i, !llvm.loop !19 - -compute_color.exit.i: ; preds = %._crit_edge87.split.i.i, %.preheader.lr.ph.i.i, %83 - %.058.lcssa.i.i = phi i64 [ 0, %83 ], [ 0, %.preheader.lr.ph.i.i ], [ %.361.i.i, %._crit_edge87.split.i.i ] - %.054.lcssa.i.i = phi i64 [ 0, %83 ], [ 0, %.preheader.lr.ph.i.i ], [ %.357.i.i, %._crit_edge87.split.i.i ] - %.050.lcssa.i.i = phi i64 [ 0, %83 ], [ 0, %.preheader.lr.ph.i.i ], [ %.353.i.i, %._crit_edge87.split.i.i ] - %.0.lcssa.i33.i = phi i64 [ 0, %83 ], [ 0, %.preheader.lr.ph.i.i ], [ %.3.i.i, %._crit_edge87.split.i.i ] - %133 = ashr i64 %.058.lcssa.i.i, 1 - %134 = add nsw i64 %.054.lcssa.i.i, %133 - %135 = sdiv i64 %134, %.058.lcssa.i.i - %136 = trunc i64 %135 to i8 - %137 = load ptr, ptr %6, align 8 - %138 = load ptr, ptr %137, align 8 - %139 = getelementptr inbounds i8, ptr %138, i64 %indvars.iv45.i - store i8 %136, ptr %139, align 1 - %140 = add nsw i64 %.050.lcssa.i.i, %133 - %141 = sdiv i64 %140, %.058.lcssa.i.i - %142 = trunc i64 %141 to i8 - %143 = load ptr, ptr %6, align 8 - %144 = getelementptr inbounds i8, ptr %143, i64 8 - %145 = load ptr, ptr %144, align 8 - %146 = getelementptr inbounds i8, ptr %145, i64 %indvars.iv45.i - store i8 %142, ptr %146, align 1 - %147 = add nsw i64 %.0.lcssa.i33.i, %133 - %148 = sdiv i64 %147, %.058.lcssa.i.i - %149 = trunc i64 %148 to i8 - %150 = load ptr, ptr %6, align 8 - %151 = getelementptr inbounds i8, ptr %150, i64 16 - %152 = load ptr, ptr %151, align 8 - %153 = getelementptr inbounds i8, ptr %152, i64 %indvars.iv45.i - store i8 %149, ptr %153, align 1 - %indvars.iv.next46.i = add nuw nsw i64 %indvars.iv45.i, 1 - %exitcond.not.i = icmp eq i64 %indvars.iv.next46.i, %wide.trip.count.i + %indvars.iv.next132.i.i = add nsw i64 %indvars.iv131.i.i, 1 + %lftr.wideiv134.i.i = trunc i64 %indvars.iv.next132.i.i to i32 + %exitcond135.not.i.i = icmp eq i32 %105, %lftr.wideiv134.i.i + br i1 %exitcond135.not.i.i, label %compute_color.exit.i, label %.preheader.i.i, !llvm.loop !19 + +compute_color.exit.i: ; preds = %._crit_edge87.split.i.i + %135 = ashr i64 %.361.i.i, 1 + %136 = add nsw i64 %.357.i.i, %135 + %137 = sdiv i64 %136, %.361.i.i + %138 = trunc i64 %137 to i8 + %139 = load ptr, ptr %6, align 8 + %140 = load ptr, ptr %139, align 8 + %141 = getelementptr inbounds i8, ptr %140, i64 %indvars.iv52.i + store i8 %138, ptr %141, align 1 + %142 = add nsw i64 %.353.i.i, %135 + %143 = sdiv i64 %142, %.361.i.i + %144 = trunc i64 %143 to i8 + %145 = load ptr, ptr %6, align 8 + %146 = getelementptr inbounds i8, ptr %145, i64 8 + %147 = load ptr, ptr %146, align 8 + %148 = getelementptr inbounds i8, ptr %147, i64 %indvars.iv52.i + store i8 %144, ptr %148, align 1 + %149 = add nsw i64 %.3.i.i, %135 + %150 = sdiv i64 %149, %.361.i.i + %151 = trunc i64 %150 to i8 + %152 = load ptr, ptr %6, align 8 + %153 = getelementptr inbounds i8, ptr %152, i64 16 + %154 = load ptr, ptr %153, align 8 + %155 = getelementptr inbounds i8, ptr %154, i64 %indvars.iv52.i + store i8 %151, ptr %155, align 1 + %indvars.iv.next53.i = add nuw nsw i64 %indvars.iv52.i, 1 + %exitcond.not.i = icmp eq i64 %indvars.iv.next53.i, %wide.trip.count.i br i1 %exitcond.not.i, label %select_colors.exit, label %83, !llvm.loop !20 select_colors.exit: ; preds = %compute_color.exit.i, %median_cut.exit.i - %.0.lcssa.i49.i = phi i32 [ %.0.lcssa.i.i, %median_cut.exit.i ], [ %.0.lcssa.i50.i, %compute_color.exit.i ] - %154 = getelementptr inbounds i8, ptr %0, i64 156 - store i32 %.0.lcssa.i49.i, ptr %154, align 4 - %155 = load ptr, ptr %0, align 8 - %156 = getelementptr inbounds i8, ptr %155, i64 40 - store i32 96, ptr %156, align 8 + %.0.lcssa.i56.i = phi i32 [ %.0.lcssa.i.i, %median_cut.exit.i ], [ %.0.lcssa.i57.i, %compute_color.exit.i ] + %156 = getelementptr inbounds i8, ptr %0, i64 156 + store i32 %.0.lcssa.i56.i, ptr %156, align 4 %157 = load ptr, ptr %0, align 8 - %158 = getelementptr inbounds i8, ptr %157, i64 44 - store i32 %.0.lcssa.i49.i, ptr %158, align 4 + %158 = getelementptr inbounds i8, ptr %157, i64 40 + store i32 96, ptr %158, align 8 %159 = load ptr, ptr %0, align 8 - %160 = getelementptr inbounds i8, ptr %159, i64 8 - %161 = load ptr, ptr %160, align 8 - tail call void %161(ptr noundef nonnull %0, i32 noundef 1) #8 - %162 = getelementptr inbounds i8, ptr %3, i64 56 - store i32 1, ptr %162, align 8 + %160 = getelementptr inbounds i8, ptr %159, i64 44 + store i32 %.0.lcssa.i56.i, ptr %160, align 4 + %161 = load ptr, ptr %0, align 8 + %162 = getelementptr inbounds i8, ptr %161, i64 8 + %163 = load ptr, ptr %162, align 8 + tail call void %163(ptr noundef nonnull %0, i32 noundef 1) #9 + %164 = getelementptr inbounds i8, ptr %3, i64 56 + store i32 1, ptr %164, align 8 ret void } @@ -1894,6 +1904,9 @@ declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #7 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smax.i32(i32, i32) #6 +; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) +declare void @llvm.assume(i1 noundef) #8 + attributes #0 = { nounwind 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 #1 = { mustprogress nofree norecurse nosync nounwind willreturn memory(write, argmem: readwrite, inaccessiblemem: none) 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 #2 = { nofree norecurse nosync nounwind memory(readwrite, inaccessiblemem: none) 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" } @@ -1902,7 +1915,8 @@ attributes #4 = { "frame-pointer"="all" "no-trapping-math"="true" "stack-protect attributes #5 = { nofree norecurse nosync nounwind memory(read, argmem: readwrite, inaccessiblemem: none) 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 #6 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } attributes #7 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #8 = { nounwind } +attributes #8 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #9 = { nounwind } !llvm.module.flags = !{!0, !1, !2, !3, !4, !5} diff --git a/bench/protobuf/optimized/dynamic_message.cc.ll b/bench/protobuf/optimized/dynamic_message.cc.ll index 4888826701c..acfbe9e6bd2 100644 --- a/bench/protobuf/optimized/dynamic_message.cc.ll +++ b/bench/protobuf/optimized/dynamic_message.cc.ll @@ -762,8 +762,8 @@ _ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit: ; preds = %co %28 = phi i32 [ %23, %cond.end ], [ %.pre, %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i ] %has_bits_offset = getelementptr inbounds i8, ptr %call12, i64 4 store i32 -1, ptr %has_bits_offset, align 4 - %cmp24153 = icmp sgt i32 %28, 0 - br i1 %cmp24153, label %for.body.lr.ph, label %if.end57 + %cmp24155 = icmp sgt i32 %28, 0 + br i1 %cmp24155, label %for.body.lr.ph, label %if.end57 for.body.lr.ph: ; preds = %_ZNSt10unique_ptrIA_jSt14default_deleteIS0_EE5resetIPjvEEvT_.exit %fields_.i = getelementptr inbounds i8, ptr %type, i64 56 @@ -772,7 +772,7 @@ for.body.lr.ph: ; preds = %_ZNSt10unique_ptrIA for.body: ; preds = %for.body.lr.ph, %for.inc46 %indvars.iv = phi i64 [ 0, %for.body.lr.ph ], [ %indvars.iv.next, %for.inc46 ] - %max_hasbit.0155 = phi i32 [ 0, %for.body.lr.ph ], [ %max_hasbit.1, %for.inc46 ] + %max_hasbit.0157 = phi i32 [ 0, %for.body.lr.ph ], [ %max_hasbit.1, %for.inc46 ] %29 = load ptr, ptr %fields_.i, align 8 %add.ptr.i = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %29, i64 %indvars.iv %call26 = tail call noundef zeroext i1 @_ZN6google8protobuf8internal3cpp9HasHasbitEPKNS0_15FieldDescriptorE(ptr noundef %add.ptr.i) @@ -791,8 +791,8 @@ if.then30: ; preds = %if.then27 %33 = shl nsw i64 %conv33, 2 %34 = select i1 %32, i64 -1, i64 %33 %call34 = tail call noalias noundef nonnull ptr @_Znam(i64 noundef %34) #22 - %cmp37151 = icmp sgt i32 %31, 0 - br i1 %cmp37151, label %for.body38.preheader, label %for.end + %cmp37153 = icmp sgt i32 %31, 0 + br i1 %cmp37153, label %for.body38.preheader, label %for.end for.body38.preheader: ; preds = %if.then30 %35 = zext nneg i32 %31 to i64 @@ -811,14 +811,14 @@ _ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5v br label %if.end40 if.end40: ; preds = %_ZNKSt14default_deleteIA_jEclIjEENSt9enable_ifIXsr14is_convertibleIPA_T_PS0_EE5valueEvE4typeEPS4_.exit.i.i82, %for.end, %if.then27 - %inc41 = add nsw i32 %max_hasbit.0155, 1 + %inc41 = add nsw i32 %max_hasbit.0157, 1 %38 = load ptr, ptr %has_bits_indices39, align 8 %arrayidx.i = getelementptr inbounds i32, ptr %38, i64 %indvars.iv - store i32 %max_hasbit.0155, ptr %arrayidx.i, align 4 + store i32 %max_hasbit.0157, ptr %arrayidx.i, align 4 br label %for.inc46 for.inc46: ; preds = %for.body, %if.end40 - %max_hasbit.1 = phi i32 [ %inc41, %if.end40 ], [ %max_hasbit.0155, %for.body ] + %max_hasbit.1 = phi i32 [ %inc41, %if.end40 ], [ %max_hasbit.0157, %for.body ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %39 = load i32, ptr %field_count_.i, align 4 %40 = sext i32 %39 to i64 @@ -872,8 +872,8 @@ if.end75: ; preds = %if.end66, %if.then6 %size.2 = phi i32 [ %mul.i.i87, %if.then69 ], [ %size.1, %if.end66 ] %46 = getelementptr inbounds i8, ptr %call12, i64 12 store i32 %.sink, ptr %46, align 4 - %cmp79156 = icmp sgt i32 %42, 0 - br i1 %cmp79156, label %for.body80.lr.ph, label %for.cond96.preheader + %cmp79158 = icmp sgt i32 %42, 0 + br i1 %cmp79158, label %for.body80.lr.ph, label %for.cond96.preheader for.body80.lr.ph: ; preds = %if.end75 %fields_.i89 = getelementptr inbounds i8, ptr %type, i64 56 @@ -881,14 +881,14 @@ for.body80.lr.ph: ; preds = %if.end75 for.cond96.preheader: ; preds = %for.inc92, %if.end75 %size.3.lcssa = phi i32 [ %size.2, %if.end75 ], [ %size.4, %for.inc92 ] - %.lcssa149 = phi i32 [ %42, %if.end75 ], [ %82, %for.inc92 ] + %.lcssa149 = phi i32 [ %42, %if.end75 ], [ %81, %for.inc92 ] %47 = load i32, ptr %real_oneof_decl_count_.i, align 4 - %cmp98161 = icmp sgt i32 %47, 0 - br i1 %cmp98161, label %for.body99.preheader, label %for.end108.thread + %cmp98163 = icmp sgt i32 %47, 0 + br i1 %cmp98163, label %for.body99.preheader, label %for.end108.thread for.end108.thread: ; preds = %for.cond96.preheader - %weak_field_map_offset192 = getelementptr inbounds i8, ptr %call12, i64 72 - store i32 -1, ptr %weak_field_map_offset192, align 8 + %weak_field_map_offset194 = getelementptr inbounds i8, ptr %call12, i64 72 + store i32 -1, ptr %weak_field_map_offset194, align 8 store i32 %size.3.lcssa, ptr %call12, align 8 br label %for.end131 @@ -899,11 +899,11 @@ for.body99.preheader: ; preds = %for.cond96.preheade br label %for.body99 for.body80: ; preds = %for.body80.lr.ph, %for.inc92 - %49 = phi i32 [ %42, %for.body80.lr.ph ], [ %82, %for.inc92 ] - %indvars.iv173 = phi i64 [ 0, %for.body80.lr.ph ], [ %indvars.iv.next174, %for.inc92 ] - %size.3158 = phi i32 [ %size.2, %for.body80.lr.ph ], [ %size.4, %for.inc92 ] + %49 = phi i32 [ %42, %for.body80.lr.ph ], [ %81, %for.inc92 ] + %indvars.iv175 = phi i64 [ 0, %for.body80.lr.ph ], [ %indvars.iv.next176, %for.inc92 ] + %size.3160 = phi i32 [ %size.2, %for.body80.lr.ph ], [ %size.4, %for.inc92 ] %50 = load ptr, ptr %fields_.i89, align 8 - %add.ptr.i91 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %50, i64 %indvars.iv173 + %add.ptr.i91 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %50, i64 %indvars.iv175 %51 = getelementptr i8, ptr %add.ptr.i91, i64 1 %call81.val = load i8, ptr %51, align 1 %52 = getelementptr i8, ptr %add.ptr.i91, i64 40 @@ -1062,54 +1062,50 @@ _ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i: ; preds = %if.then5.i %idxprom.i18.i = zext i8 %75 to i64 %arrayidx.i19.i = getelementptr inbounds [19 x i32], ptr @_ZN6google8protobuf15FieldDescriptor17kTypeToCppTypeMapE, i64 0, i64 %idxprom.i18.i %76 = load i32, ptr %arrayidx.i19.i, align 4 - %switch.tableidx = add i32 %76, -1 - %77 = icmp ult i32 %switch.tableidx, 10 - br i1 %77, label %switch.lookup, label %if.end.i - -if.end.i: ; preds = %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i - br label %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit - -switch.lookup: ; preds = %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i - %78 = zext nneg i32 %switch.tableidx to i64 - %switch.gep = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %78 + %switch.tableidx = add nsw i32 %76, -1 + %77 = sext i32 %switch.tableidx to i64 + %switch.gep = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %77 %switch.load = load i32, ptr %switch.gep, align 4 - %79 = zext nneg i32 %switch.tableidx to i64 - %switch.gep199 = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %79 - %switch.load200 = load i32, ptr %switch.gep199, align 4 + %78 = sext i32 %switch.tableidx to i64 + %switch.gep201 = getelementptr inbounds [10 x i32], ptr @switch.table._ZN6google8protobuf21DynamicMessageFactory18GetPrototypeNoLockEPKNS0_10DescriptorE.2, i64 0, i64 %78 + %switch.load202 = load i32, ptr %switch.gep201, align 4 br label %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit -_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit: ; preds = %switch.lookup, %_ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %sw.bb12.i, %if.end.i - %retval.0.i148 = phi i32 [ 0, %if.end.i ], [ %spec.select.i, %_ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i ], [ 24, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 24, %sw.bb12.i ], [ %switch.load, %switch.lookup ] - %80 = phi i32 [ 0, %if.end.i ], [ 8, %_ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %sw.bb12.i ], [ %switch.load200, %switch.lookup ] - %sub.i.i = add i32 %size.3158, -1 - %add.i.i = add i32 %sub.i.i, %80 - %81 = srem i32 %add.i.i, %80 - %mul.i = sub nsw i32 %add.i.i, %81 - %arrayidx89 = getelementptr inbounds i32, ptr %call20, i64 %indvars.iv173 +if.end.i: ; preds = %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i + unreachable + +_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit: ; preds = %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i, %_ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i, %sw.bb12.i + %retval.0.i148 = phi i32 [ %spec.select.i, %_ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i ], [ 24, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 16, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 24, %sw.bb12.i ], [ %switch.load, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i ] + %79 = phi i32 [ 8, %_ZN6google8protobuf12_GLOBAL__N_115IsMapFieldInApiEPKNS0_15FieldDescriptorE.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor4typeEv.exit.i.i.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit.i ], [ 8, %sw.bb12.i ], [ %switch.load202, %_ZNK6google8protobuf15FieldDescriptor8cpp_typeEv.exit23.i ] + %sub.i.i = add i32 %size.3160, -1 + %add.i.i = add i32 %sub.i.i, %79 + %80 = srem i32 %add.i.i, %79 + %mul.i = sub nsw i32 %add.i.i, %80 + %arrayidx89 = getelementptr inbounds i32, ptr %call20, i64 %indvars.iv175 store i32 %mul.i, ptr %arrayidx89, align 4 %add90 = add nsw i32 %mul.i, %retval.0.i148 - %.pre188 = load i32, ptr %field_count_.i, align 4 + %.pre190 = load i32, ptr %field_count_.i, align 4 br label %for.inc92 for.inc92: ; preds = %land.lhs.true.i.i, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit - %82 = phi i32 [ %49, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit ], [ %.pre188, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit ], [ %49, %land.lhs.true.i.i ] - %size.4 = phi i32 [ %size.3158, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit ], [ %add90, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit ], [ %size.3158, %land.lhs.true.i.i ] - %indvars.iv.next174 = add nuw nsw i64 %indvars.iv173, 1 - %83 = sext i32 %82 to i64 - %cmp79 = icmp slt i64 %indvars.iv.next174, %83 + %81 = phi i32 [ %49, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit ], [ %.pre190, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit ], [ %49, %land.lhs.true.i.i ] + %size.4 = phi i32 [ %size.3160, %_ZN6google8protobuf12_GLOBAL__N_111InRealOneofEPKNS0_15FieldDescriptorE.exit ], [ %add90, %_ZN6google8protobuf12_GLOBAL__N_114FieldSpaceUsedEPKNS0_15FieldDescriptorE.exit ], [ %size.3160, %land.lhs.true.i.i ] + %indvars.iv.next176 = add nuw nsw i64 %indvars.iv175, 1 + %82 = sext i32 %81 to i64 + %cmp79 = icmp slt i64 %indvars.iv.next176, %82 br i1 %cmp79, label %for.body80, label %for.cond96.preheader, !llvm.loop !15 for.body99: ; preds = %for.body99.preheader, %for.body99 - %indvars.iv176 = phi i64 [ 0, %for.body99.preheader ], [ %indvars.iv.next177, %for.body99 ] - %size.5163 = phi i32 [ %size.3.lcssa, %for.body99.preheader ], [ %add105, %for.body99 ] - %add.i.i100 = add i32 %size.5163, 7 - %84 = srem i32 %add.i.i100, 8 - %mul.i101 = sub nsw i32 %add.i.i100, %84 - %gep = getelementptr i32, ptr %invariant.gep, i64 %indvars.iv176 + %indvars.iv178 = phi i64 [ 0, %for.body99.preheader ], [ %indvars.iv.next179, %for.body99 ] + %size.5165 = phi i32 [ %size.3.lcssa, %for.body99.preheader ], [ %add105, %for.body99 ] + %add.i.i100 = add i32 %size.5165, 7 + %83 = srem i32 %add.i.i100, 8 + %mul.i101 = sub nsw i32 %add.i.i100, %83 + %gep = getelementptr i32, ptr %invariant.gep, i64 %indvars.iv178 store i32 %mul.i101, ptr %gep, align 4 %add105 = add nsw i32 %mul.i101, 8 - %indvars.iv.next177 = add nuw nsw i64 %indvars.iv176, 1 - %exitcond.not = icmp eq i64 %indvars.iv.next177, %wide.trip.count + %indvars.iv.next179 = add nuw nsw i64 %indvars.iv178, 1 + %exitcond.not = icmp eq i64 %indvars.iv.next179, %wide.trip.count br i1 %exitcond.not, label %for.end108, label %for.body99, !llvm.loop !16 for.end108: ; preds = %for.body99 @@ -1117,80 +1113,80 @@ for.end108: ; preds = %for.body99 store i32 -1, ptr %weak_field_map_offset, align 8 store i32 %add105, ptr %call12, align 8 %oneof_decls_.i.i = getelementptr inbounds i8, ptr %type, i64 64 - %85 = load ptr, ptr %oneof_decls_.i.i, align 8 - %wide.trip.count186 = zext nneg i32 %47 to i64 + %84 = load ptr, ptr %oneof_decls_.i.i, align 8 + %wide.trip.count188 = zext nneg i32 %47 to i64 br label %for.cond116.preheader for.cond116.preheader: ; preds = %for.end108, %for.inc129 - %indvars.iv183 = phi i64 [ 0, %for.end108 ], [ %indvars.iv.next184, %for.inc129 ] - %add.ptr.i.i = getelementptr inbounds %"class.google::protobuf::OneofDescriptor", ptr %85, i64 %indvars.iv183 + %indvars.iv185 = phi i64 [ 0, %for.end108 ], [ %indvars.iv.next186, %for.inc129 ] + %add.ptr.i.i = getelementptr inbounds %"class.google::protobuf::OneofDescriptor", ptr %84, i64 %indvars.iv185 %field_count_.i104 = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 4 - %86 = load i32, ptr %field_count_.i104, align 4 - %cmp119166 = icmp sgt i32 %86, 0 - br i1 %cmp119166, label %for.body120.lr.ph, label %for.inc129 + %85 = load i32, ptr %field_count_.i104, align 4 + %cmp119168 = icmp sgt i32 %85, 0 + br i1 %cmp119168, label %for.body120.lr.ph, label %for.inc129 for.body120.lr.ph: ; preds = %for.cond116.preheader %fields_.i108 = getelementptr inbounds i8, ptr %add.ptr.i.i, i64 48 br label %for.body120 for.body120: ; preds = %for.body120.lr.ph, %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit - %indvars.iv180 = phi i64 [ 0, %for.body120.lr.ph ], [ %indvars.iv.next181, %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit ] - %87 = load ptr, ptr %fields_.i108, align 8 - %add.ptr.i110 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %87, i64 %indvars.iv180 + %indvars.iv182 = phi i64 [ 0, %for.body120.lr.ph ], [ %indvars.iv.next183, %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit ] + %86 = load ptr, ptr %fields_.i108, align 8 + %add.ptr.i110 = getelementptr inbounds %"class.google::protobuf::FieldDescriptor", ptr %86, i64 %indvars.iv182 %is_extension_.i = getelementptr inbounds i8, ptr %add.ptr.i110, i64 1 %bf.load.i = load i8, ptr %is_extension_.i, align 1 - %88 = and i8 %bf.load.i, 8 - %bf.cast.not.i = icmp eq i8 %88, 0 + %87 = and i8 %bf.load.i, 8 + %bf.cast.not.i = icmp eq i8 %87, 0 br i1 %bf.cast.not.i, label %if.then.i113, label %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit.i if.then.i113: ; preds = %for.body120 %containing_type_.i.i = getelementptr inbounds i8, ptr %add.ptr.i110, i64 32 - %89 = load ptr, ptr %containing_type_.i.i, align 8 - %fields_.i114 = getelementptr inbounds i8, ptr %89, i64 56 + %88 = load ptr, ptr %containing_type_.i.i, align 8 + %fields_.i114 = getelementptr inbounds i8, ptr %88, i64 56 br label %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit _ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit.i: ; preds = %for.body120 %scope_.i.i = getelementptr inbounds i8, ptr %add.ptr.i110, i64 40 - %90 = load ptr, ptr %scope_.i.i, align 8 - %cmp.not.i = icmp eq ptr %90, null + %89 = load ptr, ptr %scope_.i.i, align 8 + %cmp.not.i = icmp eq ptr %89, null br i1 %cmp.not.i, label %if.else10.i, label %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit7.i _ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit7.i: ; preds = %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit.i - %extensions_.i = getelementptr inbounds i8, ptr %90, i64 96 + %extensions_.i = getelementptr inbounds i8, ptr %89, i64 96 br label %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit if.else10.i: ; preds = %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit.i %file_.i112 = getelementptr inbounds i8, ptr %add.ptr.i110, i64 16 - %91 = load ptr, ptr %file_.i112, align 8 - %extensions_11.i = getelementptr inbounds i8, ptr %91, i64 120 + %90 = load ptr, ptr %file_.i112, align 8 + %extensions_11.i = getelementptr inbounds i8, ptr %90, i64 120 br label %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit _ZNK6google8protobuf15FieldDescriptor5indexEv.exit: ; preds = %if.then.i113, %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit7.i, %if.else10.i %extensions_11.sink.i = phi ptr [ %extensions_11.i, %if.else10.i ], [ %extensions_.i, %_ZNK6google8protobuf15FieldDescriptor15extension_scopeEv.exit7.i ], [ %fields_.i114, %if.then.i113 ] - %92 = load ptr, ptr %extensions_11.sink.i, align 8 + %91 = load ptr, ptr %extensions_11.sink.i, align 8 %sub.ptr.lhs.cast12.i = ptrtoint ptr %add.ptr.i110 to i64 - %sub.ptr.rhs.cast13.i = ptrtoint ptr %92 to i64 + %sub.ptr.rhs.cast13.i = ptrtoint ptr %91 to i64 %sub.ptr.sub14.i = sub i64 %sub.ptr.lhs.cast12.i, %sub.ptr.rhs.cast13.i %retval.0.in.i = sdiv exact i64 %sub.ptr.sub14.i, 88 %sext = shl i64 %retval.0.in.i, 32 - %93 = ashr exact i64 %sext, 30 - %arrayidx125 = getelementptr inbounds i8, ptr %call20, i64 %93 + %92 = ashr exact i64 %sext, 30 + %arrayidx125 = getelementptr inbounds i8, ptr %call20, i64 %92 store i32 1073741824, ptr %arrayidx125, align 4 - %indvars.iv.next181 = add nuw nsw i64 %indvars.iv180, 1 - %94 = load i32, ptr %field_count_.i104, align 4 - %95 = sext i32 %94 to i64 - %cmp119 = icmp slt i64 %indvars.iv.next181, %95 + %indvars.iv.next183 = add nuw nsw i64 %indvars.iv182, 1 + %93 = load i32, ptr %field_count_.i104, align 4 + %94 = sext i32 %93 to i64 + %cmp119 = icmp slt i64 %indvars.iv.next183, %94 br i1 %cmp119, label %for.body120, label %for.inc129, !llvm.loop !17 for.inc129: ; preds = %_ZNK6google8protobuf15FieldDescriptor5indexEv.exit, %for.cond116.preheader - %indvars.iv.next184 = add nuw nsw i64 %indvars.iv183, 1 - %exitcond187.not = icmp eq i64 %indvars.iv.next184, %wide.trip.count186 - br i1 %exitcond187.not, label %for.end131, label %for.cond116.preheader, !llvm.loop !18 + %indvars.iv.next186 = add nuw nsw i64 %indvars.iv185, 1 + %exitcond189.not = icmp eq i64 %indvars.iv.next186, %wide.trip.count188 + br i1 %exitcond189.not, label %for.end131, label %for.cond116.preheader, !llvm.loop !18 for.end131: ; preds = %for.inc129, %for.end108.thread - %weak_field_map_offset194 = phi ptr [ %weak_field_map_offset192, %for.end108.thread ], [ %weak_field_map_offset, %for.inc129 ] - %size.5.lcssa193 = phi i32 [ %size.3.lcssa, %for.end108.thread ], [ %add105, %for.inc129 ] - %conv132 = sext i32 %size.5.lcssa193 to i64 + %weak_field_map_offset196 = phi ptr [ %weak_field_map_offset194, %for.end108.thread ], [ %weak_field_map_offset, %for.inc129 ] + %size.5.lcssa195 = phi i32 [ %size.3.lcssa, %for.end108.thread ], [ %add105, %for.inc129 ] + %conv132 = sext i32 %size.5.lcssa195 to i64 %call133 = tail call noalias noundef nonnull ptr @_Znwm(i64 noundef %conv132) #24 tail call void @llvm.memset.p0.i64(ptr nonnull align 1 %call133, i8 0, i64 %conv132, i1 false) %_internal_metadata_.i.i = getelementptr inbounds i8, ptr %call133, i64 8 @@ -1203,33 +1199,33 @@ for.end131: ; preds = %for.inc129, %for.en %prototype.i = getelementptr inbounds i8, ptr %call12, i64 64 store ptr %call133, ptr %prototype.i, align 8 tail call void @_ZN6google8protobuf14DynamicMessage10SharedCtorEb(ptr noundef nonnull align 8 dereferenceable(32) %call133, i1 noundef zeroext false) - %96 = load ptr, ptr %prototype.i, align 8 - store ptr %96, ptr %schema, align 8 + %95 = load ptr, ptr %prototype.i, align 8 + store ptr %95, ptr %schema, align 8 %offsets_ = getelementptr inbounds i8, ptr %schema, i64 8 - %97 = load ptr, ptr %offsets.i, align 8 - store ptr %97, ptr %offsets_, align 8 + %96 = load ptr, ptr %offsets.i, align 8 + store ptr %96, ptr %offsets_, align 8 %has_bit_indices_ = getelementptr inbounds i8, ptr %schema, i64 16 %has_bits_indices139 = getelementptr inbounds i8, ptr %call12, i64 48 - %98 = load ptr, ptr %has_bits_indices139, align 8 - store ptr %98, ptr %has_bit_indices_, align 8 + %97 = load ptr, ptr %has_bits_indices139, align 8 + store ptr %97, ptr %has_bit_indices_, align 8 %has_bits_offset_ = getelementptr inbounds i8, ptr %schema, i64 24 - %99 = load i32, ptr %has_bits_offset, align 4 - store i32 %99, ptr %has_bits_offset_, align 8 + %98 = load i32, ptr %has_bits_offset, align 4 + store i32 %98, ptr %has_bits_offset_, align 8 %metadata_offset_ = getelementptr inbounds i8, ptr %schema, i64 28 store i32 8, ptr %metadata_offset_, align 4 %extensions_offset_ = getelementptr inbounds i8, ptr %schema, i64 32 - %100 = load i32, ptr %46, align 4 - store i32 %100, ptr %extensions_offset_, align 8 + %99 = load i32, ptr %46, align 4 + store i32 %99, ptr %extensions_offset_, align 8 %oneof_case_offset_ = getelementptr inbounds i8, ptr %schema, i64 36 %oneof_case_offset143 = getelementptr inbounds i8, ptr %call12, i64 8 - %101 = load i32, ptr %oneof_case_offset143, align 8 - store i32 %101, ptr %oneof_case_offset_, align 4 + %100 = load i32, ptr %oneof_case_offset143, align 8 + store i32 %100, ptr %oneof_case_offset_, align 4 %object_size_ = getelementptr inbounds i8, ptr %schema, i64 40 - %102 = load i32, ptr %call12, align 8 - store i32 %102, ptr %object_size_, align 8 + %101 = load i32, ptr %call12, align 8 + store i32 %101, ptr %object_size_, align 8 %weak_field_map_offset_ = getelementptr inbounds i8, ptr %schema, i64 44 - %103 = load i32, ptr %weak_field_map_offset194, align 8 - store i32 %103, ptr %weak_field_map_offset_, align 4 + %102 = load i32, ptr %weak_field_map_offset196, align 8 + store i32 %102, ptr %weak_field_map_offset_, align 4 %inlined_string_indices_ = getelementptr inbounds i8, ptr %schema, i64 48 store ptr null, ptr %inlined_string_indices_, align 8 %inlined_string_donated_offset_ = getelementptr inbounds i8, ptr %schema, i64 56 @@ -1239,21 +1235,21 @@ for.end131: ; preds = %for.inc129, %for.en %sizeof_split_ = getelementptr inbounds i8, ptr %schema, i64 64 store i32 -1, ptr %sizeof_split_, align 8 %call146 = tail call noalias noundef nonnull dereferenceable(112) ptr @_Znwm(i64 noundef 112) #22 - %104 = load ptr, ptr %type13, align 8 - %105 = load ptr, ptr %pool, align 8 - invoke void @_ZN6google8protobuf10ReflectionC1EPKNS0_10DescriptorERKNS0_8internal16ReflectionSchemaEPKNS0_14DescriptorPoolEPNS0_14MessageFactoryE(ptr noundef nonnull align 8 dereferenceable(112) %call146, ptr noundef %104, ptr noundef nonnull align 8 dereferenceable(72) %schema, ptr noundef %105, ptr noundef nonnull %this) + %103 = load ptr, ptr %type13, align 8 + %104 = load ptr, ptr %pool, align 8 + invoke void @_ZN6google8protobuf10ReflectionC1EPKNS0_10DescriptorERKNS0_8internal16ReflectionSchemaEPKNS0_14DescriptorPoolEPNS0_14MessageFactoryE(ptr noundef nonnull align 8 dereferenceable(112) %call146, ptr noundef %103, ptr noundef nonnull align 8 dereferenceable(72) %schema, ptr noundef %104, ptr noundef nonnull %this) to label %invoke.cont150 unwind label %lpad149 invoke.cont150: ; preds = %for.end131 %reflection = getelementptr inbounds i8, ptr %call12, i64 56 - %106 = load ptr, ptr %reflection, align 8 + %105 = load ptr, ptr %reflection, align 8 store ptr %call146, ptr %reflection, align 8 - %tobool.not.i.i115 = icmp eq ptr %106, null + %tobool.not.i.i115 = icmp eq ptr %105, null br i1 %tobool.not.i.i115, label %_ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit, label %_ZNKSt14default_deleteIKN6google8protobuf10ReflectionEEclEPS3_.exit.i.i _ZNKSt14default_deleteIKN6google8protobuf10ReflectionEEclEPS3_.exit.i.i: ; preds = %invoke.cont150 - call void @_ZN6google8protobuf10ReflectionD1Ev(ptr noundef nonnull align 8 dereferenceable(112) %106) #25 - call void @_ZdlPv(ptr noundef nonnull %106) #23 + call void @_ZN6google8protobuf10ReflectionD1Ev(ptr noundef nonnull align 8 dereferenceable(112) %105) #25 + call void @_ZdlPv(ptr noundef nonnull %105) #23 br label %_ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit _ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit: ; preds = %invoke.cont150, %_ZNKSt14default_deleteIKN6google8protobuf10ReflectionEEclEPS3_.exit.i.i @@ -1261,10 +1257,10 @@ _ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetE br label %return lpad149: ; preds = %for.end131 - %107 = landingpad { ptr, i32 } + %106 = landingpad { ptr, i32 } cleanup call void @_ZdlPv(ptr noundef nonnull %call146) #23 - resume { ptr, i32 } %107 + resume { ptr, i32 } %106 return: ; preds = %if.then, %_ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit, %if.then10 %retval.0 = phi ptr [ %18, %if.then10 ], [ %call133, %_ZNSt10unique_ptrIKN6google8protobuf10ReflectionESt14default_deleteIS3_EE5resetEPS3_.exit ], [ %call4, %if.then ] diff --git a/bench/recastnavigation/optimized/DetourNavMeshQuery.cpp.ll b/bench/recastnavigation/optimized/DetourNavMeshQuery.cpp.ll index dd2497a9848..5bc1e10c15e 100644 --- a/bench/recastnavigation/optimized/DetourNavMeshQuery.cpp.ll +++ b/bench/recastnavigation/optimized/DetourNavMeshQuery.cpp.ll @@ -96,7 +96,7 @@ define void @_Z18dtFreeNavMeshQueryP14dtNavMeshQuery(ptr noundef %0) local_unnam br i1 %.not, label %3, label %2 2: ; preds = %1 - tail call void @_ZN14dtNavMeshQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(104) %0) #21 + tail call void @_ZN14dtNavMeshQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(104) %0) #22 tail call void @_Z6dtFreePv(ptr noundef nonnull %0) br label %3 @@ -113,7 +113,7 @@ define void @_ZN11dtPolyQueryD2Ev(ptr nocapture nonnull readnone align 8 %0) unn ; Function Attrs: cold mustprogress noreturn nounwind memory(inaccessiblemem: write) uwtable define void @_ZN11dtPolyQueryD0Ev(ptr nocapture nonnull readnone align 8 %0) unnamed_addr #4 align 2 { - tail call void @llvm.trap() #22 + tail call void @llvm.trap() #23 unreachable } @@ -137,7 +137,7 @@ define void @_ZN14dtNavMeshQueryD2Ev(ptr nocapture noundef nonnull readonly alig br i1 %.not, label %5, label %4 4: ; preds = %1 - tail call void @_ZN10dtNodePoolD1Ev(ptr noundef nonnull align 8 dereferenceable(36) %3) #21 + tail call void @_ZN10dtNodePoolD1Ev(ptr noundef nonnull align 8 dereferenceable(36) %3) #22 br label %5 5: ; preds = %4, %1 @@ -147,7 +147,7 @@ define void @_ZN14dtNavMeshQueryD2Ev(ptr nocapture noundef nonnull readonly alig br i1 %.not3, label %9, label %8 8: ; preds = %5 - tail call void @_ZN10dtNodePoolD1Ev(ptr noundef nonnull align 8 dereferenceable(36) %7) #21 + tail call void @_ZN10dtNodePoolD1Ev(ptr noundef nonnull align 8 dereferenceable(36) %7) #22 br label %9 9: ; preds = %8, %5 @@ -157,7 +157,7 @@ define void @_ZN14dtNavMeshQueryD2Ev(ptr nocapture noundef nonnull readonly alig br i1 %.not4, label %13, label %12 12: ; preds = %9 - tail call void @_ZN11dtNodeQueueD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #21 + tail call void @_ZN11dtNodeQueueD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %11) #22 br label %13 13: ; preds = %12, %9 @@ -182,7 +182,7 @@ define void @_ZN14dtNavMeshQueryD2Ev(ptr nocapture noundef nonnull readonly alig %21 = landingpad { ptr, i32 } catch ptr null %22 = extractvalue { ptr, i32 } %21, 0 - tail call void @__clang_call_terminate(ptr %22) #22 + tail call void @__clang_call_terminate(ptr %22) #23 unreachable } @@ -196,8 +196,8 @@ declare i32 @__gxx_personality_v0(...) ; Function Attrs: noreturn nounwind uwtable define linkonce_odr hidden void @__clang_call_terminate(ptr noundef %0) local_unnamed_addr #10 comdat { - %2 = tail call ptr @__cxa_begin_catch(ptr %0) #21 - tail call void @_ZSt9terminatev() #22 + %2 = tail call ptr @__cxa_begin_catch(ptr %0) #22 + tail call void @_ZSt9terminatev() #23 unreachable } @@ -225,7 +225,7 @@ define noundef range(i32 1073741824, -2147483639) i32 @_ZN14dtNavMeshQuery4initE br i1 %11, label %12, label %28 12: ; preds = %8 - tail call void @_ZN10dtNodePoolD1Ev(ptr noundef nonnull align 8 dereferenceable(36) %7) #21 + tail call void @_ZN10dtNodePoolD1Ev(ptr noundef nonnull align 8 dereferenceable(36) %7) #22 %13 = load ptr, ptr %6, align 8 tail call void @_Z6dtFreePv(ptr noundef %13) store ptr null, ptr %6, align 8 @@ -283,7 +283,7 @@ define noundef range(i32 1073741824, -2147483639) i32 @_ZN14dtNavMeshQuery4initE br i1 %41, label %42, label %45 42: ; preds = %38 - tail call void @_ZN11dtNodeQueueD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #21 + tail call void @_ZN11dtNodeQueueD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %37) #22 %43 = load ptr, ptr %36, align 8 tail call void @_Z6dtFreePv(ptr noundef %43) store ptr null, ptr %36, align 8 @@ -1673,7 +1673,8 @@ _Z11dtVisfinitePKf.exit: ; preds = %22 ._crit_edge.thread: ; preds = %.preheader %56 = call noundef zeroext i1 @_Z24dtDistancePtPolyEdgesSqrPKfS0_iPfS1_(ptr noundef nonnull %2, ptr noundef nonnull %7, i32 noundef 0, ptr noundef nonnull %8, ptr noundef nonnull %9) - br i1 %56, label %57, label %._crit_edge53 + call void @llvm.assume(i1 %56) + br label %57 57: ; preds = %._crit_edge.thread, %._crit_edge %58 = load float, ptr %2, align 4 @@ -1707,9 +1708,9 @@ _Z11dtVisfinitePKf.exit: ; preds = %22 %exitcond.not = icmp eq i64 %indvars.iv.next60, %wide.trip.count br i1 %exitcond.not, label %._crit_edge53, label %.lr.ph52, !llvm.loop !19 -._crit_edge53: ; preds = %.lr.ph52, %._crit_edge.thread, %62 - %.032.lcssa6466 = phi i32 [ 1, %62 ], [ 0, %._crit_edge.thread ], [ %54, %.lr.ph52 ] - %.034.lcssa = phi i32 [ 0, %62 ], [ 0, %._crit_edge.thread ], [ %.1, %.lr.ph52 ] +._crit_edge53: ; preds = %.lr.ph52, %62 + %.032.lcssa6466 = phi i32 [ 1, %62 ], [ %54, %.lr.ph52 ] + %.034.lcssa = phi i32 [ 0, %62 ], [ %.1, %.lr.ph52 ] %68 = mul nsw i32 %.034.lcssa, 3 %69 = sext i32 %68 to i64 %70 = getelementptr inbounds [18 x float], ptr %7, i64 0, i64 %69 @@ -1858,8 +1859,8 @@ define void @_ZN22dtFindNearestPolyQueryD2Ev(ptr nocapture nonnull readnone alig ; Function Attrs: mustprogress nounwind uwtable define void @_ZN22dtFindNearestPolyQueryD0Ev(ptr noundef nonnull align 8 dereferenceable(45) %0) unnamed_addr #8 align 2 { - tail call void @_ZN22dtFindNearestPolyQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(45) %0) #21 - tail call void @_ZdlPv(ptr noundef nonnull %0) #23 + tail call void @_ZN22dtFindNearestPolyQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(45) %0) #22 + tail call void @_ZdlPv(ptr noundef nonnull %0) #24 ret void } @@ -1905,7 +1906,7 @@ define noundef range(i32 1073741824, -2147483639) i32 @_ZNK14dtNavMeshQuery15fin 21: ; preds = %13 %22 = landingpad { ptr, i32 } cleanup - call void @_ZN22dtFindNearestPolyQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(45) %7) #21 + call void @_ZN22dtFindNearestPolyQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(45) %7) #22 resume { ptr, i32 } %22 23: ; preds = %19 @@ -1932,7 +1933,7 @@ define noundef range(i32 1073741824, -2147483639) i32 @_ZNK14dtNavMeshQuery15fin 34: ; preds = %25, %23, %19 %.1.i = phi i32 [ %18, %19 ], [ 1073741824, %25 ], [ 1073741824, %23 ] - call void @_ZN22dtFindNearestPolyQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(45) %7) #21 + call void @_ZN22dtFindNearestPolyQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(45) %7) #22 br label %_ZNK14dtNavMeshQuery15findNearestPolyEPKfS1_PK13dtQueryFilterPjPfPb.exit _ZNK14dtNavMeshQuery15findNearestPolyEPKfS1_PK13dtQueryFilterPjPfPb.exit: ; preds = %12, %34 @@ -1979,7 +1980,7 @@ define noundef range(i32 1073741824, -2147483639) i32 @_ZNK14dtNavMeshQuery15fin 22: ; preds = %14 %23 = landingpad { ptr, i32 } cleanup - call void @_ZN22dtFindNearestPolyQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(45) %8) #21 + call void @_ZN22dtFindNearestPolyQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(45) %8) #22 resume { ptr, i32 } %23 24: ; preds = %20 @@ -2014,7 +2015,7 @@ define noundef range(i32 1073741824, -2147483639) i32 @_ZNK14dtNavMeshQuery15fin 39: ; preds = %24, %35, %26, %20 %.1 = phi i32 [ %19, %20 ], [ 1073741824, %26 ], [ 1073741824, %35 ], [ 1073741824, %24 ] - call void @_ZN22dtFindNearestPolyQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(45) %8) #21 + call void @_ZN22dtFindNearestPolyQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(45) %8) #22 br label %40 40: ; preds = %13, %39 @@ -2600,8 +2601,8 @@ define void @_ZN19dtCollectPolysQueryD2Ev(ptr nocapture nonnull readnone align 8 ; Function Attrs: mustprogress nounwind uwtable define void @_ZN19dtCollectPolysQueryD0Ev(ptr noundef nonnull align 8 dereferenceable(25) %0) unnamed_addr #8 align 2 { - tail call void @_ZN19dtCollectPolysQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(25) %0) #21 - tail call void @_ZdlPv(ptr noundef nonnull %0) #23 + tail call void @_ZN19dtCollectPolysQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(25) %0) #22 + tail call void @_ZdlPv(ptr noundef nonnull %0) #24 ret void } @@ -2635,7 +2636,7 @@ define noundef range(i32 1073741824, -2147483639) i32 @_ZNK14dtNavMeshQuery13que 20: ; preds = %12 %21 = landingpad { ptr, i32 } cleanup - call void @_ZN19dtCollectPolysQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(25) %8) #21 + call void @_ZN19dtCollectPolysQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(25) %8) #22 resume { ptr, i32 } %21 22: ; preds = %18 @@ -2648,7 +2649,7 @@ define noundef range(i32 1073741824, -2147483639) i32 @_ZNK14dtNavMeshQuery13que 27: ; preds = %18, %22 %.1 = phi i32 [ %26, %22 ], [ %17, %18 ] - call void @_ZN19dtCollectPolysQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(25) %8) #21 + call void @_ZN19dtCollectPolysQueryD1Ev(ptr noundef nonnull align 8 dereferenceable(25) %8) #22 br label %28 28: ; preds = %7, %27 @@ -5210,13 +5211,13 @@ define noundef range(i32 536870912, 1073741841) i32 @_ZNK14dtNavMeshQuery12appen br i1 %18, label %19, label %_Z8dtVequalPKfS0_.exit, !prof !41 19: ; preds = %12 - %20 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #21 + %20 = tail call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #22 %.not.i = icmp eq i32 %20, 0 br i1 %.not.i, label %_Z8dtVequalPKfS0_.exit, label %21 21: ; preds = %19 store float 0x3E30000000000000, ptr @_ZZ8dtVequalPKfS0_E3thr, align 4 - tail call void @__cxa_guard_release(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #21 + tail call void @__cxa_guard_release(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #22 br label %_Z8dtVequalPKfS0_.exit _Z8dtVequalPKfS0_.exit: ; preds = %12, %19, %21 @@ -5433,13 +5434,13 @@ define noundef range(i32 536870912, -2147483639) i32 @_ZNK14dtNavMeshQuery13appe br i1 %85, label %86, label %_Z8dtVequalPKfS0_.exit.i, !prof !41 86: ; preds = %79 - %87 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #21 + %87 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #22 %.not.i.i = icmp eq i32 %87, 0 br i1 %.not.i.i, label %_Z8dtVequalPKfS0_.exit.i, label %88 88: ; preds = %86 store float 0x3E30000000000000, ptr @_ZZ8dtVequalPKfS0_E3thr, align 4 - call void @__cxa_guard_release(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #21 + call void @__cxa_guard_release(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #22 br label %_Z8dtVequalPKfS0_.exit.i _Z8dtVequalPKfS0_.exit.i: ; preds = %88, %86, %79 @@ -5761,13 +5762,13 @@ _Z11dtVisfinitePKf.exit207: ; preds = %46 br i1 %146, label %147, label %_Z8dtVequalPKfS0_.exit, !prof !41 147: ; preds = %144 - %148 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #21 + %148 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #22 %.not.i = icmp eq i32 %148, 0 br i1 %.not.i, label %_Z8dtVequalPKfS0_.exit, label %149 149: ; preds = %147 store float 0x3E30000000000000, ptr @_ZZ8dtVequalPKfS0_E3thr, align 4 - call void @__cxa_guard_release(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #21 + call void @__cxa_guard_release(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #22 br label %_Z8dtVequalPKfS0_.exit _Z8dtVequalPKfS0_.exit: ; preds = %144, %147, %149 @@ -5886,13 +5887,13 @@ _Z8dtVequalPKfS0_.exit: ; preds = %144, %147, %149 br i1 %214, label %215, label %_Z8dtVequalPKfS0_.exit209, !prof !41 215: ; preds = %212 - %216 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #21 + %216 = call i32 @__cxa_guard_acquire(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #22 %.not.i208 = icmp eq i32 %216, 0 br i1 %.not.i208, label %_Z8dtVequalPKfS0_.exit209, label %217 217: ; preds = %215 store float 0x3E30000000000000, ptr @_ZZ8dtVequalPKfS0_E3thr, align 4 - call void @__cxa_guard_release(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #21 + call void @__cxa_guard_release(ptr nonnull @_ZGVZ8dtVequalPKfS0_E3thr) #22 br label %_Z8dtVequalPKfS0_.exit209 _Z8dtVequalPKfS0_.exit209: ; preds = %212, %215, %217 @@ -9333,7 +9334,7 @@ _ZN11dtNodeQueue6modifyEP6dtNode.exit: ; preds = %351, %349, %339, %3 store float %385, ptr %372, align 4 %386 = fmul float %376, %383 store float %386, ptr %377, align 4 - %387 = call noundef float @sqrtf(float noundef %.0135.lcssa) #21 + %387 = call noundef float @sqrtf(float noundef %.0135.lcssa) #22 store float %387, ptr %5, align 4 br label %_Z11dtVisfinitePKf.exit.thread @@ -9603,11 +9604,14 @@ declare float @llvm.fabs.f32(float) #19 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare float @llvm.sqrt.f32(float) #19 +; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) +declare void @llvm.assume(i1 noundef) #20 + ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #20 +declare void @llvm.lifetime.start.p0(i64 immarg, ptr nocapture) #21 ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) -declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #20 +declare void @llvm.lifetime.end.p0(i64 immarg, ptr nocapture) #21 ; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none) declare i32 @llvm.smax.i32(i32, i32) #19 @@ -9632,10 +9636,11 @@ attributes #16 = { nofree nounwind } attributes #17 = { mustprogress nocallback nofree nounwind willreturn memory(argmem: readwrite) } attributes #18 = { mustprogress nofree nounwind willreturn memory(write) "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 #19 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) } -attributes #20 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } -attributes #21 = { nounwind } -attributes #22 = { noreturn nounwind } -attributes #23 = { builtin nounwind } +attributes #20 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: write) } +attributes #21 = { nocallback nofree nosync nounwind willreturn memory(argmem: readwrite) } +attributes #22 = { nounwind } +attributes #23 = { noreturn nounwind } +attributes #24 = { builtin nounwind } !llvm.module.flags = !{!0, !1, !2, !3} diff --git a/bench/redis/optimized/dict.ll b/bench/redis/optimized/dict.ll index 4413925f8dc..1d3fcb6cbcb 100644 --- a/bench/redis/optimized/dict.ll +++ b/bench/redis/optimized/dict.ll @@ -917,8 +917,8 @@ if.end.i: ; preds = %if.end, %if.end2 br i1 %cmp1.i, label %lor.lhs.false.i.i, label %if.end9.i lor.lhs.false.i.i: ; preds = %if.end.i - %ht_used.i16.i = getelementptr inbounds i8, ptr %d, i64 24 - %6 = load i64, ptr %ht_used.i16.i, align 8 + %ht_used.i17.i = getelementptr inbounds i8, ptr %d, i64 24 + %6 = load i64, ptr %ht_used.i17.i, align 8 %cmp1.i.i = icmp ugt i64 %6, 4 br i1 %cmp1.i.i, label %return, label %if.end20.i.i @@ -948,7 +948,7 @@ if.end43.i.i: ; preds = %if.then40.i.i, %if. br i1 %cmp46.i.i, label %if.then53.i.i, label %lor.lhs.false48.i.i lor.lhs.false48.i.i: ; preds = %if.end43.i.i - %10 = load i64, ptr %ht_used.i16.i, align 8 + %10 = load i64, ptr %ht_used.i17.i, align 8 %cmp51.i.i = icmp eq i64 %10, 0 br i1 %cmp51.i.i, label %if.then53.i.i, label %for.cond.preheader @@ -975,7 +975,7 @@ if.then63.i.i: ; preds = %if.end59.i.i if.end66.i.i: ; preds = %if.then63.i.i, %if.end59.i.i store i8 2, ptr %ht_size_exp.i, align 2 - store i64 0, ptr %ht_used.i16.i, align 8 + store i64 0, ptr %ht_used.i17.i, align 8 store ptr %call31.i.i, ptr %ht_table.i.i, align 8 store ptr null, ptr %arrayidx37.i.i, align 8 store i8 -1, ptr %arrayidx34.i.i, align 1 @@ -1051,8 +1051,8 @@ dictTypeExpandAllowed.exit.if.end54_crit_edge.i: ; preds = %dictTypeExpandAllow if.end54.i: ; preds = %dictTypeExpandAllowed.exit.if.end54_crit_edge.i, %if.then51.i %22 = phi i64 [ %.pre23.i, %dictTypeExpandAllowed.exit.if.end54_crit_edge.i ], [ %17, %if.then51.i ] %add.i = add i64 %22, 1 - %call.i13.i = tail call range(i32 0, 2) i32 @_dictExpand(ptr noundef nonnull %d, i64 noundef %add.i, ptr noundef null) - %23 = icmp eq i32 %call.i13.i, 0 + %call.i14.i = tail call range(i32 0, 2) i32 @_dictExpand(ptr noundef nonnull %d, i64 noundef %add.i, ptr noundef null) + %23 = icmp eq i32 %call.i14.i, 0 br i1 %23, label %for.cond.preheader, label %return for.cond.preheader: ; preds = %if.then1, %if.end2, %dictTypeExpandAllowed.exit.i, %land.lhs.true31.i, %if.end66.i.i, %lor.lhs.false48.i.i, %if.end9.i, %land.lhs.true.i, %if.end54.i diff --git a/bench/verilator/optimized/V3Const__gen.cpp.ll b/bench/verilator/optimized/V3Const__gen.cpp.ll index a33af8eb50e..4059cf52f55 100644 --- a/bench/verilator/optimized/V3Const__gen.cpp.ll +++ b/bench/verilator/optimized/V3Const__gen.cpp.ll @@ -84219,7 +84219,7 @@ _ZNK7AstNode5widthEv.exit: ; preds = %27 %30 = getelementptr inbounds i8, ptr %29, i64 152 %31 = load i32, ptr %30, align 8 %.not32 = icmp eq i32 %31, 0 - br i1 %.not32, label %_ZNK7AstNode5widthEv.exit.thread, label %35 + br i1 %.not32, label %_ZNK7AstNode5widthEv.exit.thread, label %_ZNK7AstNode5widthEv.exit41 _ZNK7AstNode5widthEv.exit.thread: ; preds = %27, %_ZNK7AstNode5widthEv.exit %32 = tail call noundef nonnull align 8 dereferenceable(112) ptr @_ZN7V3Error19v3errorPrepFileLineB5cxx11E11V3ErrorCodePKcib(i8 4, ptr noundef nonnull @.str.1, i32 noundef 2616, i1 noundef zeroext true) @@ -84228,159 +84228,135 @@ _ZNK7AstNode5widthEv.exit.thread: ; preds = %27, %_ZNK7AstNode5w tail call void @_ZNK7AstNode15v3errorEndFatalERNSt7__cxx1119basic_ostringstreamIcSt11char_traitsIcESaIcEEE(ptr noundef nonnull align 8 dereferenceable(152) %1, ptr noundef nonnull align 8 dereferenceable(112) %34) #26 unreachable -35: ; preds = %_ZNK7AstNode5widthEv.exit - %36 = getelementptr inbounds i8, ptr %19, i64 152 - %37 = tail call noundef i32 @_ZNK8V3Number6toUIntEv(ptr noundef nonnull align 8 dereferenceable(56) %36) - %38 = load ptr, ptr %28, align 8 - %.not.i40 = icmp eq ptr %38, null - br i1 %.not.i40, label %_ZNK7AstNode5widthEv.exit41, label %39 - -39: ; preds = %35 - %40 = getelementptr inbounds i8, ptr %38, i64 152 - %41 = load i32, ptr %40, align 8 - br label %_ZNK7AstNode5widthEv.exit41 - -_ZNK7AstNode5widthEv.exit41: ; preds = %35, %39 - %42 = phi i32 [ %41, %39 ], [ 0, %35 ] - %43 = udiv i32 %37, %42 - %44 = tail call noundef i32 @_ZNK8V3Number6toUIntEv(ptr noundef nonnull align 8 dereferenceable(56) %36) - %45 = getelementptr inbounds i8, ptr %1, i64 72 - %46 = load ptr, ptr %45, align 8 - %.not.i42 = icmp eq ptr %46, null - br i1 %.not.i42, label %_ZNK7AstNode5widthEv.exit43, label %47 +_ZNK7AstNode5widthEv.exit41: ; preds = %_ZNK7AstNode5widthEv.exit + %35 = getelementptr inbounds i8, ptr %19, i64 152 + %36 = tail call noundef i32 @_ZNK8V3Number6toUIntEv(ptr noundef nonnull align 8 dereferenceable(56) %35) + %37 = load ptr, ptr %28, align 8, !nonnull !108, !noundef !108 + %38 = getelementptr inbounds i8, ptr %37, i64 152 + %39 = load i32, ptr %38, align 8 + %40 = udiv i32 %36, %39 + %41 = tail call noundef i32 @_ZNK8V3Number6toUIntEv(ptr noundef nonnull align 8 dereferenceable(56) %35) + %42 = getelementptr inbounds i8, ptr %1, i64 72 + %43 = load ptr, ptr %42, align 8 + %.not.i42 = icmp eq ptr %43, null + br i1 %.not.i42, label %_ZNK7AstNode5widthEv.exit43, label %44 -47: ; preds = %_ZNK7AstNode5widthEv.exit41 - %48 = getelementptr inbounds i8, ptr %46, i64 152 - %49 = load i32, ptr %48, align 8 +44: ; preds = %_ZNK7AstNode5widthEv.exit41 + %45 = getelementptr inbounds i8, ptr %43, i64 152 + %46 = load i32, ptr %45, align 8 br label %_ZNK7AstNode5widthEv.exit43 -_ZNK7AstNode5widthEv.exit43: ; preds = %_ZNK7AstNode5widthEv.exit41, %47 - %50 = phi i32 [ %49, %47 ], [ 0, %_ZNK7AstNode5widthEv.exit41 ] - %51 = add i32 %44, -1 - %52 = add i32 %51, %50 - %53 = load ptr, ptr %28, align 8 - %.not.i44 = icmp eq ptr %53, null - br i1 %.not.i44, label %_ZNK7AstNode5widthEv.exit45, label %54 +_ZNK7AstNode5widthEv.exit43: ; preds = %_ZNK7AstNode5widthEv.exit41, %44 + %47 = phi i32 [ %46, %44 ], [ 0, %_ZNK7AstNode5widthEv.exit41 ] + %48 = add i32 %41, -1 + %49 = add i32 %48, %47 + %50 = load ptr, ptr %28, align 8, !nonnull !108, !noundef !108 + %51 = getelementptr inbounds i8, ptr %50, i64 152 + %52 = load i32, ptr %51, align 8 + %53 = udiv i32 %49, %52 + %.not33 = icmp eq i32 %40, %53 + br i1 %.not33, label %54, label %_ZN7AstNode11privateCastI8AstConstP11AstNodeExprEEPT_PS_.exit.thread 54: ; preds = %_ZNK7AstNode5widthEv.exit43 - %55 = getelementptr inbounds i8, ptr %53, i64 152 - %56 = load i32, ptr %55, align 8 - br label %_ZNK7AstNode5widthEv.exit45 - -_ZNK7AstNode5widthEv.exit45: ; preds = %_ZNK7AstNode5widthEv.exit43, %54 - %57 = phi i32 [ %56, %54 ], [ 0, %_ZNK7AstNode5widthEv.exit43 ] - %58 = udiv i32 %52, %57 - %.not33 = icmp eq i32 %43, %58 - br i1 %.not33, label %59, label %_ZN7AstNode11privateCastI8AstConstP11AstNodeExprEEPT_PS_.exit.thread - -59: ; preds = %_ZNK7AstNode5widthEv.exit45 - %60 = tail call noundef ptr @_ZN7AstNode12unlinkFrBackEP10VNRelinker(ptr noundef nonnull align 8 dereferenceable(152) %17, ptr noundef null) - %61 = tail call noundef ptr @_ZN7AstNode12unlinkFrBackEP10VNRelinker(ptr noundef nonnull align 8 dereferenceable(152) %24, ptr noundef null) - %62 = tail call noalias noundef nonnull dereferenceable(176) ptr @_Znwm(i64 noundef 176) #30 - %63 = getelementptr inbounds i8, ptr %1, i64 88 - %64 = load ptr, ptr %63, align 8 - %65 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #30 - to label %66 unwind label %95 - -66: ; preds = %59 - %67 = getelementptr inbounds i8, ptr %19, i64 88 - %68 = load ptr, ptr %67, align 8 - %69 = invoke noundef i32 @_ZNK8V3Number6toUIntEv(ptr noundef nonnull align 8 dereferenceable(56) %36) - to label %_ZNK8AstConst6toUIntEv.exit unwind label %97 - -_ZNK8AstConst6toUIntEv.exit: ; preds = %66 - %70 = load ptr, ptr %28, align 8 - %.not.i46 = icmp eq ptr %70, null - br i1 %.not.i46, label %_ZNK7AstNode5widthEv.exit47, label %71 + %55 = tail call noundef ptr @_ZN7AstNode12unlinkFrBackEP10VNRelinker(ptr noundef nonnull align 8 dereferenceable(152) %17, ptr noundef null) + %56 = tail call noundef ptr @_ZN7AstNode12unlinkFrBackEP10VNRelinker(ptr noundef nonnull align 8 dereferenceable(152) %24, ptr noundef null) + %57 = tail call noalias noundef nonnull dereferenceable(176) ptr @_Znwm(i64 noundef 176) #30 + %58 = getelementptr inbounds i8, ptr %1, i64 88 + %59 = load ptr, ptr %58, align 8 + %60 = invoke noalias noundef nonnull dereferenceable(208) ptr @_Znwm(i64 noundef 208) #30 + to label %61 unwind label %88 -71: ; preds = %_ZNK8AstConst6toUIntEv.exit - %72 = getelementptr inbounds i8, ptr %70, i64 152 - %73 = load i32, ptr %72, align 8 - br label %_ZNK7AstNode5widthEv.exit47 +61: ; preds = %54 + %62 = getelementptr inbounds i8, ptr %19, i64 88 + %63 = load ptr, ptr %62, align 8 + %64 = invoke noundef i32 @_ZNK8V3Number6toUIntEv(ptr noundef nonnull align 8 dereferenceable(56) %35) + to label %_ZNK8AstConst6toUIntEv.exit unwind label %90 -_ZNK7AstNode5widthEv.exit47: ; preds = %71, %_ZNK8AstConst6toUIntEv.exit - %74 = phi i32 [ %73, %71 ], [ 0, %_ZNK8AstConst6toUIntEv.exit ] - invoke void @_ZN7AstNodeC2E6VNTypeP8FileLine(ptr noundef nonnull align 8 dereferenceable(152) %65, i16 95, ptr noundef %68) - to label %.noexc unwind label %97 +_ZNK8AstConst6toUIntEv.exit: ; preds = %61 + %65 = load ptr, ptr %28, align 8, !nonnull !108, !noundef !108 + %66 = getelementptr inbounds i8, ptr %65, i64 152 + %67 = load i32, ptr %66, align 8 + invoke void @_ZN7AstNodeC2E6VNTypeP8FileLine(ptr noundef nonnull align 8 dereferenceable(152) %60, i16 95, ptr noundef %63) + to label %.noexc unwind label %90 -.noexc: ; preds = %_ZNK7AstNode5widthEv.exit47 - %75 = urem i32 %69, %74 - store ptr getelementptr inbounds (i8, ptr @_ZTV8AstConst, i64 16), ptr %65, align 8 - %76 = getelementptr inbounds i8, ptr %65, i64 152 - invoke void @_ZN8V3NumberC2EP7AstNodeijb(ptr noundef nonnull align 8 dereferenceable(56) %76, ptr noundef nonnull %65, i32 noundef 32, i32 noundef %75, i1 noundef zeroext true) - to label %.noexc48 unwind label %97 +.noexc: ; preds = %_ZNK8AstConst6toUIntEv.exit + %68 = urem i32 %64, %67 + store ptr getelementptr inbounds (i8, ptr @_ZTV8AstConst, i64 16), ptr %60, align 8 + %69 = getelementptr inbounds i8, ptr %60, i64 152 + invoke void @_ZN8V3NumberC2EP7AstNodeijb(ptr noundef nonnull align 8 dereferenceable(56) %69, ptr noundef nonnull %60, i32 noundef 32, i32 noundef %68, i1 noundef zeroext true) + to label %.noexc48 unwind label %90 .noexc48: ; preds = %.noexc - %77 = getelementptr inbounds i8, ptr %65, i64 184 - %78 = load i32, ptr %77, align 8 - %79 = invoke noundef ptr @_ZNK7AstNode14findLogicDTypeEii8VSigning(ptr noundef nonnull align 8 dereferenceable(152) %65, i32 noundef %78, i32 noundef 0, i8 0) - to label %.noexc.i unwind label %85 + %70 = getelementptr inbounds i8, ptr %60, i64 184 + %71 = load i32, ptr %70, align 8 + %72 = invoke noundef ptr @_ZNK7AstNode14findLogicDTypeEii8VSigning(ptr noundef nonnull align 8 dereferenceable(152) %60, i32 noundef %71, i32 noundef 0, i8 0) + to label %.noexc.i unwind label %78 .noexc.i: ; preds = %.noexc48 - %80 = getelementptr inbounds i8, ptr %65, i64 72 - %81 = load ptr, ptr %80, align 8 - %.not.i.i.i = icmp eq ptr %81, %79 - br i1 %.not.i.i.i, label %_ZN8AstConstC2EP8FileLinej.exit, label %82 + %73 = getelementptr inbounds i8, ptr %60, i64 72 + %74 = load ptr, ptr %73, align 8 + %.not.i.i.i = icmp eq ptr %74, %72 + br i1 %.not.i.i.i, label %_ZN8AstConstC2EP8FileLinej.exit, label %75 -82: ; preds = %.noexc.i - store ptr %79, ptr %80, align 8 - %83 = load i64, ptr @_ZN7AstNode12s_editCntGblE, align 8 - %84 = add i64 %83, 1 - store i64 %84, ptr @_ZN7AstNode12s_editCntGblE, align 8 +75: ; preds = %.noexc.i + store ptr %72, ptr %73, align 8 + %76 = load i64, ptr @_ZN7AstNode12s_editCntGblE, align 8 + %77 = add i64 %76, 1 + store i64 %77, ptr @_ZN7AstNode12s_editCntGblE, align 8 br label %_ZN8AstConstC2EP8FileLinej.exit -85: ; preds = %.noexc48 - %86 = landingpad { ptr, i32 } +78: ; preds = %.noexc48 + %79 = landingpad { ptr, i32 } cleanup - tail call void @_ZN8V3NumberD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %76) #25 + tail call void @_ZN8V3NumberD2Ev(ptr noundef nonnull align 8 dereferenceable(56) %69) #25 br label %.body -_ZN8AstConstC2EP8FileLinej.exit: ; preds = %82, %.noexc.i - invoke void @_ZN6AstSelC2EP8FileLineP11AstNodeExprS3_S3_(ptr noundef nonnull align 8 dereferenceable(176) %62, ptr noundef %64, ptr noundef nonnull %17, ptr noundef nonnull %65, ptr noundef nonnull %24) - to label %87 unwind label %95 +_ZN8AstConstC2EP8FileLinej.exit: ; preds = %75, %.noexc.i + invoke void @_ZN6AstSelC2EP8FileLineP11AstNodeExprS3_S3_(ptr noundef nonnull align 8 dereferenceable(176) %57, ptr noundef %59, ptr noundef nonnull %17, ptr noundef nonnull %60, ptr noundef nonnull %24) + to label %80 unwind label %88 -87: ; preds = %_ZN8AstConstC2EP8FileLinej.exit - %88 = load ptr, ptr %45, align 8 - %89 = getelementptr inbounds i8, ptr %62, i64 72 - %90 = load ptr, ptr %89, align 8 - %.not.i.i = icmp eq ptr %90, %88 - br i1 %.not.i.i, label %_ZN7AstNode9dtypeFromEPKS_.exit, label %91 +80: ; preds = %_ZN8AstConstC2EP8FileLinej.exit + %81 = load ptr, ptr %42, align 8 + %82 = getelementptr inbounds i8, ptr %57, i64 72 + %83 = load ptr, ptr %82, align 8 + %.not.i.i = icmp eq ptr %83, %81 + br i1 %.not.i.i, label %_ZN7AstNode9dtypeFromEPKS_.exit, label %84 -91: ; preds = %87 - store ptr %88, ptr %89, align 8 - %92 = load i64, ptr @_ZN7AstNode12s_editCntGblE, align 8 - %93 = add i64 %92, 1 - store i64 %93, ptr @_ZN7AstNode12s_editCntGblE, align 8 +84: ; preds = %80 + store ptr %81, ptr %82, align 8 + %85 = load i64, ptr @_ZN7AstNode12s_editCntGblE, align 8 + %86 = add i64 %85, 1 + store i64 %86, ptr @_ZN7AstNode12s_editCntGblE, align 8 br label %_ZN7AstNode9dtypeFromEPKS_.exit -_ZN7AstNode9dtypeFromEPKS_.exit: ; preds = %87, %91 - tail call void @_ZN7AstNode11replaceWithEPS_(ptr noundef nonnull align 8 dereferenceable(152) %1, ptr noundef nonnull %62) - %94 = getelementptr inbounds i8, ptr %0, i64 8 - tail call void @_ZN9VNDeleter11pushDeletepEP7AstNode(ptr noundef nonnull align 8 dereferenceable(24) %94, ptr noundef nonnull %1) +_ZN7AstNode9dtypeFromEPKS_.exit: ; preds = %80, %84 + tail call void @_ZN7AstNode11replaceWithEPS_(ptr noundef nonnull align 8 dereferenceable(152) %1, ptr noundef nonnull %57) + %87 = getelementptr inbounds i8, ptr %0, i64 8 + tail call void @_ZN9VNDeleter11pushDeletepEP7AstNode(ptr noundef nonnull align 8 dereferenceable(24) %87, ptr noundef nonnull %1) br label %_ZN7AstNode11privateCastI8AstConstP11AstNodeExprEEPT_PS_.exit.thread -95: ; preds = %_ZN8AstConstC2EP8FileLinej.exit, %59 - %96 = landingpad { ptr, i32 } +88: ; preds = %_ZN8AstConstC2EP8FileLinej.exit, %54 + %89 = landingpad { ptr, i32 } cleanup - br label %99 + br label %92 -97: ; preds = %.noexc, %_ZNK7AstNode5widthEv.exit47, %66 - %98 = landingpad { ptr, i32 } +90: ; preds = %.noexc, %_ZNK8AstConst6toUIntEv.exit, %61 + %91 = landingpad { ptr, i32 } cleanup br label %.body -.body: ; preds = %85, %97 - %eh.lpad-body = phi { ptr, i32 } [ %98, %97 ], [ %86, %85 ] - tail call void @_ZdlPv(ptr noundef nonnull %65) #28 - br label %99 +.body: ; preds = %78, %90 + %eh.lpad-body = phi { ptr, i32 } [ %91, %90 ], [ %79, %78 ] + tail call void @_ZdlPv(ptr noundef nonnull %60) #28 + br label %92 -99: ; preds = %.body, %95 - %.pn = phi { ptr, i32 } [ %96, %95 ], [ %eh.lpad-body, %.body ] - tail call void @_ZdlPv(ptr noundef nonnull %62) #28 +92: ; preds = %.body, %88 + %.pn = phi { ptr, i32 } [ %89, %88 ], [ %eh.lpad-body, %.body ] + tail call void @_ZdlPv(ptr noundef nonnull %57) #28 resume { ptr, i32 } %.pn -_ZN7AstNode11privateCastI8AstConstP11AstNodeExprEEPT_PS_.exit.thread: ; preds = %_ZN7AstNode11privateCastI8AstConstP11AstNodeExprEEPT_PS_.exit, %20, %_ZN7AstNode9privateAsI12AstReplicateP11AstNodeExprEEPT_PS_.exit, %_ZNK7AstNode5widthEv.exit45, %_ZN7AstNode9privateIsI8AstConstKP11AstNodeExprEEbPKS_.exit, %_ZN7AstNode9dtypeFromEPKS_.exit - %.030 = phi i1 [ true, %_ZN7AstNode9dtypeFromEPKS_.exit ], [ false, %_ZN7AstNode9privateIsI8AstConstKP11AstNodeExprEEbPKS_.exit ], [ false, %_ZNK7AstNode5widthEv.exit45 ], [ false, %_ZN7AstNode9privateAsI12AstReplicateP11AstNodeExprEEPT_PS_.exit ], [ false, %20 ], [ false, %_ZN7AstNode11privateCastI8AstConstP11AstNodeExprEEPT_PS_.exit ] +_ZN7AstNode11privateCastI8AstConstP11AstNodeExprEEPT_PS_.exit.thread: ; preds = %_ZN7AstNode11privateCastI8AstConstP11AstNodeExprEEPT_PS_.exit, %20, %_ZN7AstNode9privateAsI12AstReplicateP11AstNodeExprEEPT_PS_.exit, %_ZNK7AstNode5widthEv.exit43, %_ZN7AstNode9privateIsI8AstConstKP11AstNodeExprEEbPKS_.exit, %_ZN7AstNode9dtypeFromEPKS_.exit + %.030 = phi i1 [ true, %_ZN7AstNode9dtypeFromEPKS_.exit ], [ false, %_ZN7AstNode9privateIsI8AstConstKP11AstNodeExprEEbPKS_.exit ], [ false, %_ZNK7AstNode5widthEv.exit43 ], [ false, %_ZN7AstNode9privateAsI12AstReplicateP11AstNodeExprEEPT_PS_.exit ], [ false, %20 ], [ false, %_ZN7AstNode11privateCastI8AstConstP11AstNodeExprEEPT_PS_.exit ] ret i1 %.030 } diff --git a/bench/z3/optimized/expr_rand.cpp.ll b/bench/z3/optimized/expr_rand.cpp.ll index a4d708c9e2a..e5761aaaa6e 100644 --- a/bench/z3/optimized/expr_rand.cpp.ll +++ b/bench/z3/optimized/expr_rand.cpp.ll @@ -845,26 +845,18 @@ if.end5: ; preds = %if.then.i.i.i, %if. %retval.0.i.i.i.pn = phi ptr [ %curr.133.i.i.i21, %if.then22.i.i.i27 ], [ %curr.031.i.i.i13, %if.then.i.i.i35 ], [ %curr.133.i.i.i, %if.then22.i.i.i ], [ %curr.031.i.i.i, %if.then.i.i.i ] %vals.0.in = getelementptr inbounds i8, ptr %retval.0.i.i.i.pn, i64 8 %vals.0 = load ptr, ptr %vals.0.in, align 8 + %m_random = getelementptr inbounds i8, ptr %this, i64 12 %m_nodes.i = getelementptr inbounds i8, ptr %vals.0, i64 8 - %15 = load ptr, ptr %m_nodes.i, align 8 - %cmp.i.i = icmp eq ptr %15, null - br i1 %cmp.i.i, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, label %if.end.i.i - -if.end.i.i: ; preds = %if.end5 + %15 = load ptr, ptr %m_nodes.i, align 8, !nonnull !11, !noundef !11 %arrayidx.i.i = getelementptr inbounds i8, ptr %15, i64 -4 %16 = load i32, ptr %arrayidx.i.i, align 4 - br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit: ; preds = %if.end5, %if.end.i.i - %retval.0.i.i = phi i32 [ %16, %if.end.i.i ], [ 0, %if.end5 ] - %m_random = getelementptr inbounds i8, ptr %this, i64 12 %17 = load i32, ptr %m_random, align 4 %mul.i.i = mul i32 %17, 214013 %add.i.i = add i32 %mul.i.i, 2531011 store i32 %add.i.i, ptr %m_random, align 4 %shr.i.i = lshr i32 %add.i.i, 16 %and.i.i = and i32 %shr.i.i, 32767 - %rem.i = urem i32 %and.i.i, %retval.0.i.i + %rem.i = urem i32 %and.i.i, %16 %18 = load ptr, ptr %m_nodes.i, align 8 %idxprom.i.i = zext nneg i32 %rem.i to i64 %arrayidx.i.i42 = getelementptr inbounds ptr, ptr %18, i64 %idxprom.i.i @@ -876,26 +868,18 @@ _ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit: define hidden void @_ZN9expr_rand4walkEv(ptr noundef nonnull align 8 dereferenceable(56) %this) local_unnamed_addr #3 align 2 personality ptr @__gxx_personality_v0 { entry: %args = alloca %class.ref_vector.33, align 8 + %m_random.i = getelementptr inbounds i8, ptr %this, i64 12 %m_nodes.i.i = getelementptr inbounds i8, ptr %this, i64 24 - %0 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i = icmp eq ptr %0, null - br i1 %cmp.i.i.i, label %_ZN9expr_rand16choose_func_declEv.exit, label %if.end.i.i.i - -if.end.i.i.i: ; preds = %entry + %0 = load ptr, ptr %m_nodes.i.i, align 8, !nonnull !11, !noundef !11 %arrayidx.i.i.i = getelementptr inbounds i8, ptr %0, i64 -4 %1 = load i32, ptr %arrayidx.i.i.i, align 4 - br label %_ZN9expr_rand16choose_func_declEv.exit - -_ZN9expr_rand16choose_func_declEv.exit: ; preds = %entry, %if.end.i.i.i - %retval.0.i.i.i = phi i32 [ %1, %if.end.i.i.i ], [ 0, %entry ] - %m_random.i = getelementptr inbounds i8, ptr %this, i64 12 %2 = load i32, ptr %m_random.i, align 4 %mul.i.i.i = mul i32 %2, 214013 %add.i.i.i = add i32 %mul.i.i.i, 2531011 store i32 %add.i.i.i, ptr %m_random.i, align 4 %shr.i.i.i = lshr i32 %add.i.i.i, 16 %and.i.i.i = and i32 %shr.i.i.i, 32767 - %rem.i.i = urem i32 %and.i.i.i, %retval.0.i.i.i + %rem.i.i = urem i32 %and.i.i.i, %1 %idxprom.i.i.i = zext nneg i32 %rem.i.i to i64 %arrayidx.i.i2.i = getelementptr inbounds ptr, ptr %0, i64 %idxprom.i.i.i %3 = load ptr, ptr %arrayidx.i.i2.i, align 8 @@ -906,10 +890,10 @@ _ZN9expr_rand16choose_func_declEv.exit: ; preds = %entry, %if.end.i.i. store i64 %6, ptr %args, align 8 %m_nodes.i.i5 = getelementptr inbounds i8, ptr %args, i64 8 store ptr null, ptr %m_nodes.i.i5, align 8 - %cmp17.not = icmp eq i32 %4, 0 - br i1 %cmp17.not, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, label %for.body.lr.ph + %cmp16.not = icmp eq i32 %4, 0 + br i1 %cmp16.not, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, label %for.body.lr.ph -for.body.lr.ph: ; preds = %_ZN9expr_rand16choose_func_declEv.exit +for.body.lr.ph: ; preds = %entry %m_domain.i = getelementptr inbounds i8, ptr %3, i64 48 %wide.trip.count = zext i32 %4 to i64 br label %for.body @@ -968,38 +952,38 @@ for.inc: ; preds = %.noexc, %lor.lhs.fa store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !11 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !12 lpad.loopexit: ; preds = %for.body, %if.then.i.i - %lpad.loopexit15 = landingpad { ptr, i32 } + %lpad.loopexit14 = landingpad { ptr, i32 } cleanup br label %lpad lpad.loopexit.split-lp: ; preds = %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, %invoke.cont13 - %lpad.loopexit.split-lp16 = landingpad { ptr, i32 } + %lpad.loopexit.split-lp15 = landingpad { ptr, i32 } cleanup br label %lpad lpad: ; preds = %lpad.loopexit.split-lp, %lpad.loopexit - %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit15, %lpad.loopexit ], [ %lpad.loopexit.split-lp16, %lpad.loopexit.split-lp ] + %lpad.phi = phi { ptr, i32 } [ %lpad.loopexit14, %lpad.loopexit ], [ %lpad.loopexit.split-lp15, %lpad.loopexit.split-lp ] call void @_ZN10ref_vectorI4expr11ast_managerED2Ev(ptr noundef nonnull align 8 dereferenceable(16) %args) #16 resume { ptr, i32 } %lpad.phi for.end: ; preds = %for.inc %.pre = load ptr, ptr %this, align 8 - %.pre20 = load ptr, ptr %m_nodes.i.i5, align 8 - %cmp.i.i7 = icmp eq ptr %.pre20, null + %.pre19 = load ptr, ptr %m_nodes.i.i5, align 8 + %cmp.i.i7 = icmp eq ptr %.pre19, null br i1 %cmp.i.i7, label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, label %if.end.i.i if.end.i.i: ; preds = %for.end - %arrayidx.i.i8 = getelementptr inbounds i8, ptr %.pre20, i64 -4 + %arrayidx.i.i8 = getelementptr inbounds i8, ptr %.pre19, i64 -4 %16 = load i32, ptr %arrayidx.i.i8, align 4 br label %_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit -_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit: ; preds = %_ZN9expr_rand16choose_func_declEv.exit, %for.end, %if.end.i.i - %17 = phi ptr [ %.pre, %if.end.i.i ], [ %.pre, %for.end ], [ %5, %_ZN9expr_rand16choose_func_declEv.exit ] - %18 = phi ptr [ %.pre20, %if.end.i.i ], [ null, %for.end ], [ null, %_ZN9expr_rand16choose_func_declEv.exit ] - %retval.0.i.i = phi i32 [ %16, %if.end.i.i ], [ 0, %for.end ], [ 0, %_ZN9expr_rand16choose_func_declEv.exit ] +_ZNK15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit: ; preds = %entry, %for.end, %if.end.i.i + %17 = phi ptr [ %.pre, %if.end.i.i ], [ %.pre, %for.end ], [ %5, %entry ] + %18 = phi ptr [ %.pre19, %if.end.i.i ], [ null, %for.end ], [ null, %entry ] + %retval.0.i.i = phi i32 [ %16, %if.end.i.i ], [ 0, %for.end ], [ 0, %entry ] %call14 = invoke noundef ptr @_ZN11ast_manager6mk_appEP9func_decljPKP4expr(ptr noundef nonnull align 8 dereferenceable(976) %17, ptr noundef nonnull %3, i32 noundef %retval.0.i.i, ptr noundef %18) to label %invoke.cont13 unwind label %lpad.loopexit.split-lp @@ -1009,14 +993,14 @@ invoke.cont13: ; preds = %_ZNK15ref_vector_co invoke.cont15: ; preds = %invoke.cont13 %19 = load ptr, ptr %m_nodes.i.i5, align 8 - %cmp.i.i.i11 = icmp eq ptr %19, null - br i1 %cmp.i.i.i11, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i + %cmp.i.i.i = icmp eq ptr %19, null + br i1 %cmp.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i _ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i: ; preds = %invoke.cont15 - %arrayidx.i.i.i12 = getelementptr inbounds i8, ptr %19, i64 -4 - %20 = load i32, ptr %arrayidx.i.i.i12, align 4 + %arrayidx.i.i.i11 = getelementptr inbounds i8, ptr %19, i64 -4 + %20 = load i32, ptr %arrayidx.i.i.i11, align 4 %21 = zext i32 %20 to i64 - %add.ptr.i.i13 = getelementptr inbounds ptr, ptr %19, i64 %21 + %add.ptr.i.i12 = getelementptr inbounds ptr, ptr %19, i64 %21 %cmp3.i.not.i.i = icmp eq i32 %20, 0 br i1 %cmp3.i.not.i.i, label %if.then.i.i.i.i.i, label %for.body.i.i.i @@ -1041,16 +1025,16 @@ if.then2.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i _ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i, %if.then.i.i.i.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %it.04.i.i.i, i64 8 - %cmp.i1.i.i = icmp ult ptr %incdec.ptr.i.i.i, %add.ptr.i.i13 + %cmp.i1.i.i = icmp ult ptr %incdec.ptr.i.i.i, %add.ptr.i.i12 br i1 %cmp.i1.i.i, label %for.body.i.i.i, label %invoke.cont8.i.i, !llvm.loop !7 invoke.cont8.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i - %.pre.i.i14 = load ptr, ptr %m_nodes.i.i5, align 8 - %tobool.not.i.i.i.i.i = icmp eq ptr %.pre.i.i14, null + %.pre.i.i13 = load ptr, ptr %m_nodes.i.i5, align 8 + %tobool.not.i.i.i.i.i = icmp eq ptr %.pre.i.i13, null br i1 %tobool.not.i.i.i.i.i, label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit, label %if.then.i.i.i.i.i if.then.i.i.i.i.i: ; preds = %invoke.cont8.i.i, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i - %25 = phi ptr [ %.pre.i.i14, %invoke.cont8.i.i ], [ %19, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] + %25 = phi ptr [ %.pre.i.i13, %invoke.cont8.i.i ], [ %19, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i ] %add.ptr.i.i.i.i.i.i = getelementptr inbounds i8, ptr %25, i64 -8 invoke void @_ZN6memory10deallocateEPv(ptr noundef nonnull %add.ptr.i.i.i.i.i.i) to label %_ZN10ref_vectorI4expr11ast_managerED2Ev.exit unwind label %terminate.lpad.i.i.i.i @@ -1076,26 +1060,18 @@ _ZN10ref_vectorI4expr11ast_managerED2Ev.exit: ; preds = %invoke.cont15, %inv ; Function Attrs: mustprogress nofree norecurse nosync nounwind willreturn memory(read, argmem: readwrite, inaccessiblemem: none) uwtable define hidden noundef ptr @_ZN9expr_rand16choose_func_declEv(ptr nocapture noundef nonnull align 8 dereferenceable(56) %this) local_unnamed_addr #7 align 2 { entry: + %m_random = getelementptr inbounds i8, ptr %this, i64 12 %m_nodes.i = getelementptr inbounds i8, ptr %this, i64 24 - %0 = load ptr, ptr %m_nodes.i, align 8 - %cmp.i.i = icmp eq ptr %0, null - br i1 %cmp.i.i, label %_ZNK15ref_vector_coreI9func_decl19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit, label %if.end.i.i - -if.end.i.i: ; preds = %entry + %0 = load ptr, ptr %m_nodes.i, align 8, !nonnull !11, !noundef !11 %arrayidx.i.i = getelementptr inbounds i8, ptr %0, i64 -4 %1 = load i32, ptr %arrayidx.i.i, align 4 - br label %_ZNK15ref_vector_coreI9func_decl19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit - -_ZNK15ref_vector_coreI9func_decl19ref_manager_wrapperIS0_11ast_managerEE4sizeEv.exit: ; preds = %entry, %if.end.i.i - %retval.0.i.i = phi i32 [ %1, %if.end.i.i ], [ 0, %entry ] - %m_random = getelementptr inbounds i8, ptr %this, i64 12 %2 = load i32, ptr %m_random, align 4 %mul.i.i = mul i32 %2, 214013 %add.i.i = add i32 %mul.i.i, 2531011 store i32 %add.i.i, ptr %m_random, align 4 %shr.i.i = lshr i32 %add.i.i, 16 %and.i.i = and i32 %shr.i.i, 32767 - %rem.i = urem i32 %and.i.i, %retval.0.i.i + %rem.i = urem i32 %and.i.i, %1 %idxprom.i.i = zext nneg i32 %rem.i to i64 %arrayidx.i.i2 = getelementptr inbounds ptr, ptr %0, i64 %idxprom.i.i %3 = load ptr, ptr %arrayidx.i.i2, align 8 @@ -1217,7 +1193,7 @@ for.body: ; preds = %entry, %for.body call void @_ZN9expr_rand8add_exprEP4expr(ptr noundef nonnull align 8 dereferenceable(56) %this, ptr noundef %call.i1.i.i) %inc = add nuw i32 %i.0158, 1 %exitcond.not = icmp eq i32 %inc, %num_vars - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !12 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !13 for.end: ; preds = %for.body, %entry store ptr %call4, ptr %is, align 16 @@ -1275,7 +1251,7 @@ _ZN9expr_rand13add_func_declEP9func_decl.exit: ; preds = %lor.lhs.false.i.i.i store i32 %inc.i.i.i, ptr %arrayidx10.i.i.i, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond161.not = icmp eq i64 %indvars.iv.next, 7 - br i1 %exitcond161.not, label %for.end13, label %for.body8, !llvm.loop !13 + br i1 %exitcond161.not, label %for.end13, label %for.body8, !llvm.loop !14 for.end13: ; preds = %_ZN9expr_rand13add_func_declEP9func_decl.exit %m_kind.i.i.i = getelementptr inbounds i8, ptr %ref.tmp, i64 4 @@ -1961,7 +1937,7 @@ terminate.lpad.i97: ; preds = %.noexc.i98, %invoke _ZN8rationalD2Ev.exit100: ; preds = %.noexc.i98 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, 6 - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !14 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !15 lpad17.loopexit: ; preds = %for.body, %_ZN8rationalD2Ev.exit %lpad.loopexit = landingpad { ptr, i32 } @@ -2315,7 +2291,7 @@ invoke.cont78: ; preds = %call.i1.i.i.noexc %inc80 = add nuw nsw i32 %rem, 1 %dec = add i32 %num_vars.addr.01463, -1 %cmp69.not = icmp eq i32 %dec, 0 - br i1 %cmp69.not, label %for.cond83.preheader, label %for.body70, !llvm.loop !15 + br i1 %cmp69.not, label %for.cond83.preheader, label %for.body70, !llvm.loop !16 lpad33: ; preds = %invoke.cont34, %invoke.cont32 %40 = landingpad { ptr, i32 } @@ -3944,7 +3920,7 @@ invoke.cont253: ; preds = %.noexc843, %lor.lhs call void @_ZN9parameterD1Ev(ptr noundef nonnull align 8 dereferenceable(16) %param86) #16 %indvars.iv.next1467 = add nuw nsw i64 %indvars.iv1466, 1 %exitcond1469.not = icmp eq i64 %indvars.iv.next1467, 6 - br i1 %exitcond1469.not, label %for.end256, label %for.body85, !llvm.loop !16 + br i1 %exitcond1469.not, label %for.end256, label %for.body85, !llvm.loop !17 lpad91: ; preds = %if.then.i.i.i839, %if.then.i.i.i818, %if.then.i.i.i797, %if.then.i.i.i776, %if.then.i.i.i755, %if.then.i.i.i734, %if.then.i.i.i713, %if.then.i.i.i692, %if.then.i.i.i671, %if.then.i.i.i650, %if.then.i.i.i629, %if.then.i.i.i608, %if.then.i.i.i587, %if.then.i.i.i566, %if.then.i.i.i545, %if.then.i.i.i524, %if.then.i.i.i503, %if.then.i.i.i482, %if.then.i.i.i461, %if.then.i.i.i440, %if.then.i.i.i419, %if.then.i.i.i398, %if.then.i.i.i377, %if.then.i.i.i356, %if.then.i.i.i335, %if.then.i.i.i314, %if.then.i.i.i293, %if.then.i.i.i272, %if.then.i.i.i251, %if.then.i.i.i230, %if.then.i.i.i209, %if.then.i.i.i, %invoke.cont248, %invoke.cont243, %invoke.cont238, %invoke.cont233, %invoke.cont228, %invoke.cont223, %invoke.cont218, %invoke.cont213, %invoke.cont208, %invoke.cont203, %invoke.cont198, %invoke.cont193, %invoke.cont188, %invoke.cont183, %invoke.cont178, %invoke.cont173, %invoke.cont168, %invoke.cont163, %invoke.cont158, %invoke.cont153, %invoke.cont148, %invoke.cont143, %invoke.cont138, %invoke.cont133, %invoke.cont128, %invoke.cont123, %invoke.cont118, %invoke.cont113, %invoke.cont108, %invoke.cont103, %invoke.cont98, %invoke.cont92, %for.body85 %337 = landingpad { ptr, i32 } @@ -5720,7 +5696,7 @@ call.i1.i.i.noexc: ; preds = %call.i.i.i.noexc for.inc: ; preds = %call.i1.i.i.noexc %inc = add nuw i32 %i.043, 1 %exitcond.not = icmp eq i32 %inc, %num_vars - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !17 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !18 lpad2: ; preds = %invoke.cont3 %22 = landingpad { ptr, i32 } @@ -5881,7 +5857,7 @@ _ZN9expr_rand13add_func_declEP9func_decl.exit25: ; preds = %lor.lhs.false.i.i.i store i32 %inc.i.i.i20, ptr %arrayidx10.i.i.i19, align 4 %inc = add nuw i32 %i.054, 1 %exitcond.not = icmp eq i32 %inc, %amplification - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !18 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !19 for.end: ; preds = %_ZN9expr_rand13add_func_declEP9func_decl.exit25, %entry %m_nodes = getelementptr inbounds i8, ptr %this, i64 32 @@ -5983,7 +5959,7 @@ while.body.i.i: ; preds = %land.rhs.i.i _ZN14core_hashtableIN7obj_mapI4sortP10ref_vectorI4expr11ast_managerEE13obj_map_entryE8obj_hashINS7_8key_dataEE10default_eqISA_EE8iteratorppEv.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %_ZN9expr_rand13add_func_declEP9func_decl.exit50 %it.sroa.0.2 = phi ptr [ %incdec.ptr.i, %_ZN9expr_rand13add_func_declEP9func_decl.exit50 ], [ %it.sroa.0.1, %land.rhs.i.i ], [ %incdec.ptr.i.i, %while.body.i.i ] %cmp.i.not = icmp eq ptr %it.sroa.0.2, %add.ptr.i.i - br i1 %cmp.i.not, label %for.end26, label %for.body16, !llvm.loop !19 + br i1 %cmp.i.not, label %for.end26, label %for.body16, !llvm.loop !20 for.end26: ; preds = %while.body.i.i.i.i, %_ZN14core_hashtableIN7obj_mapI4sortP10ref_vectorI4expr11ast_managerEE13obj_map_entryE8obj_hashINS7_8key_dataEE10default_eqISA_EE8iteratorppEv.exit, %_ZNK7obj_mapI4sortP10ref_vectorI4expr11ast_managerEE5beginEv.exit ret void @@ -6419,7 +6395,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.053, %if.then9 ], [ %curr.052, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.052, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !20 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !21 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.256 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -6465,7 +6441,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.256, %if.then31 ], [ %curr.155, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.155, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !21 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !22 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.8, i32 noundef 404, ptr noundef nonnull @.str.2) @@ -6530,7 +6506,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !22 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !23 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -6541,7 +6517,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !23 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !24 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.8, i32 noundef 212, ptr noundef nonnull @.str.2) @@ -6556,7 +6532,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4sortP10ref_vectorI4expr11ast_managerEE13obj_map_entryE8obj_hashINS7_8key_dataEE10default_eqISA_EE10move_tableEPS8_jSF_j.exit.loopexit, label %for.body.i, !llvm.loop !24 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4sortP10ref_vectorI4expr11ast_managerEE13obj_map_entryE8obj_hashINS7_8key_dataEE10default_eqISA_EE10move_tableEPS8_jSF_j.exit.loopexit, label %for.body.i, !llvm.loop !25 _ZN14core_hashtableIN7obj_mapI4sortP10ref_vectorI4expr11ast_managerEE13obj_map_entryE8obj_hashINS7_8key_dataEE10default_eqISA_EE10move_tableEPS8_jSF_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -6627,7 +6603,7 @@ attributes #19 = { noreturn } !8 = distinct !{!8, !5} !9 = distinct !{!9, !5} !10 = distinct !{!10, !5} -!11 = distinct !{!11, !5} +!11 = !{} !12 = distinct !{!12, !5} !13 = distinct !{!13, !5} !14 = distinct !{!14, !5} @@ -6641,3 +6617,4 @@ attributes #19 = { noreturn } !22 = distinct !{!22, !5} !23 = distinct !{!23, !5} !24 = distinct !{!24, !5} +!25 = distinct !{!25, !5} diff --git a/bench/z3/optimized/opt_cores.cpp.ll b/bench/z3/optimized/opt_cores.cpp.ll index 28031f6b5dd..a51e7c5255c 100644 --- a/bench/z3/optimized/opt_cores.cpp.ll +++ b/bench/z3/optimized/opt_cores.cpp.ll @@ -335,8 +335,8 @@ for.body.lr.ph: ; preds = %_ZN6vectorIN3opt13w for.body: ; preds = %for.body.lr.ph, %for.inc17 %__begin1.026 = phi ptr [ %0, %for.body.lr.ph ], [ %incdec.ptr18, %for.inc17 ] %3 = load ptr, ptr %__begin1.026, align 8 - %cmp.i.i12 = icmp eq ptr %3, null - br i1 %cmp.i.i12, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit, label %_ZNK6vectorIP4exprLb0EjE3endEv.exit + %cmp.i.i12 = icmp ne ptr %3, null + br i1 %cmp.i.i12, label %_ZNK6vectorIP4exprLb0EjE3endEv.exit, label %if.end _ZNK6vectorIP4exprLb0EjE3endEv.exit: ; preds = %for.body %arrayidx.i.i14 = getelementptr inbounds i8, ptr %3, i64 -4 @@ -344,7 +344,7 @@ _ZNK6vectorIP4exprLb0EjE3endEv.exit: ; preds = %for.body %5 = zext i32 %4 to i64 %add.ptr.i16 = getelementptr inbounds ptr, ptr %3, i64 %5 %cmp6.not22 = icmp eq i32 %4, 0 - br i1 %cmp6.not22, label %if.end.i, label %for.body7.lr.ph + br i1 %cmp6.not22, label %if.end, label %for.body7.lr.ph for.body7.lr.ph: ; preds = %_ZNK6vectorIP4exprLb0EjE3endEv.exit %6 = load i32, ptr %m_capacity.i.i, align 8 @@ -422,22 +422,19 @@ _ZNK14core_hashtableI14obj_hash_entryI4exprE12obj_ptr_hashIS1_E6ptr_eqIS1_EE8con br i1 %cmp6.not, label %for.end, label %for.body7 for.end: ; preds = %_ZNK14core_hashtableI14obj_hash_entryI4exprE12obj_ptr_hashIS1_E6ptr_eqIS1_EE8containsERKPS1_.exit - br i1 %or11, label %for.inc17, label %if.end.i + br i1 %or11, label %for.inc17, label %if.end -if.end.i: ; preds = %for.end, %_ZNK6vectorIP4exprLb0EjE3endEv.exit +if.end: ; preds = %for.body, %_ZNK6vectorIP4exprLb0EjE3endEv.exit, %for.end + call void @llvm.assume(i1 %cmp.i.i12) %arrayidx.i = getelementptr inbounds i8, ptr %3, i64 -4 %14 = load i32, ptr %arrayidx.i, align 4 - br label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit - -_ZNK6vectorIP4exprLb0EjE4sizeEv.exit: ; preds = %for.body, %if.end.i - %retval.0.i = phi i32 [ %14, %if.end.i ], [ 0, %for.body ] %15 = load i32, ptr %m_rand, align 8 %mul.i.i = mul i32 %15, 214013 %add.i.i = add i32 %mul.i.i, 2531011 store i32 %add.i.i, ptr %m_rand, align 8 %shr.i.i = lshr i32 %add.i.i, 16 %and.i.i18 = and i32 %shr.i.i, 32767 - %rem.i = urem i32 %and.i.i18, %retval.0.i + %rem.i = urem i32 %and.i.i18, %14 %16 = load ptr, ptr %__begin1.026, align 8 %idxprom.i = zext nneg i32 %rem.i to i64 %arrayidx.i19 = getelementptr inbounds ptr, ptr %16, i64 %idxprom.i @@ -448,7 +445,7 @@ _ZNK6vectorIP4exprLb0EjE4sizeEv.exit: ; preds = %for.body, %if.end.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %tmp.i) br label %for.inc17 -for.inc17: ; preds = %for.end, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit +for.inc17: ; preds = %for.end, %if.end %incdec.ptr18 = getelementptr inbounds i8, ptr %__begin1.026, i64 40 %cmp.not = icmp eq ptr %incdec.ptr18, %add.ptr.i br i1 %cmp.not, label %for.end19, label %for.body diff --git a/bench/z3/optimized/pb_sls.cpp.ll b/bench/z3/optimized/pb_sls.cpp.ll index 7082218f6dd..d1421d1db4c 100644 --- a/bench/z3/optimized/pb_sls.cpp.ll +++ b/bench/z3/optimized/pb_sls.cpp.ll @@ -10630,27 +10630,19 @@ define linkonce_odr hidden i32 @_ZN3smt6pb_sls3imp9flip_softEv(ptr noundef nonnu entry: %penalty = alloca %class.rational, align 8 %min_penalty = alloca %class.rational, align 8 + %m_soft.i = getelementptr inbounds i8, ptr %this, i64 720 %m_soft_false.i = getelementptr inbounds i8, ptr %this, i64 896 - %0 = load ptr, ptr %m_soft_false.i, align 8 - %cmp.i.i.i.i = icmp eq ptr %0, null - br i1 %cmp.i.i.i.i, label %_ZN3smt6pb_sls3imp16pick_soft_clauseEv.exit, label %if.end.i.i.i.i - -if.end.i.i.i.i: ; preds = %entry + %m_rng.i = getelementptr inbounds i8, ptr %this, i64 920 + %0 = load ptr, ptr %m_soft_false.i, align 8, !nonnull !65, !noundef !65 %arrayidx.i.i.i.i = getelementptr inbounds i8, ptr %0, i64 -4 %1 = load i32, ptr %arrayidx.i.i.i.i, align 4 - br label %_ZN3smt6pb_sls3imp16pick_soft_clauseEv.exit - -_ZN3smt6pb_sls3imp16pick_soft_clauseEv.exit: ; preds = %entry, %if.end.i.i.i.i - %retval.0.i.i.i.i = phi i32 [ %1, %if.end.i.i.i.i ], [ 0, %entry ] - %m_rng.i = getelementptr inbounds i8, ptr %this, i64 920 - %m_soft.i = getelementptr inbounds i8, ptr %this, i64 720 %2 = load i32, ptr %m_rng.i, align 8 %mul.i.i.i.i = mul i32 %2, 214013 %add.i.i.i.i = add i32 %mul.i.i.i.i, 2531011 store i32 %add.i.i.i.i, ptr %m_rng.i, align 8 %shr.i.i.i.i = lshr i32 %add.i.i.i.i, 16 %and.i.i.i.i = and i32 %shr.i.i.i.i, 32767 - %rem.i.i.i = urem i32 %and.i.i.i.i, %retval.0.i.i.i.i + %rem.i.i.i = urem i32 %and.i.i.i.i, %1 %idxprom.i.i.i = zext nneg i32 %rem.i.i.i to i64 %arrayidx.i.i.i = getelementptr inbounds i32, ptr %0, i64 %idxprom.i.i.i %3 = load i32, ptr %arrayidx.i.i.i, align 4 @@ -10676,13 +10668,13 @@ _ZN3smt6pb_sls3imp16pick_soft_clauseEv.exit: ; preds = %entry, %if.end.i.i. %cmp.i.i.i.i.i = icmp eq i8 %bf.clear.i.i.i.i.i, 0 br i1 %cmp.i.i.i.i.i, label %if.then.i.i.i.i, label %if.else.i.i.i.i -if.then.i.i.i.i: ; preds = %_ZN3smt6pb_sls3imp16pick_soft_clauseEv.exit +if.then.i.i.i.i: ; preds = %entry %6 = load i32, ptr %m_penalty, align 8 store i32 %6, ptr %penalty, align 8 store i8 0, ptr %m_kind.i.i.i, align 4 br label %_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i -if.else.i.i.i.i: ; preds = %_ZN3smt6pb_sls3imp16pick_soft_clauseEv.exit +if.else.i.i.i.i: ; preds = %entry call void @_ZN11mpz_managerILb1EE7big_setER3mpzRKS1_(ptr noundef nonnull align 8 dereferenceable(600) %5, ptr noundef nonnull align 8 dereferenceable(16) %penalty, ptr noundef nonnull align 8 dereferenceable(16) %m_penalty) br label %_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i @@ -10845,7 +10837,7 @@ lpad: ; preds = %if.else.i.i7.i.i34, cleanup br label %ehcleanup -lpad5.loopexit: ; preds = %for.body, %if.end22, %if.else.i.i.i.i.i, %if.else.i.i.i, %if.else.i.i.i.i53, %if.else.i.i, %if.else.i.i.i.i62, %if.else.i.i7.i.i70 +lpad5.loopexit: ; preds = %for.body, %if.end22, %if.else.i.i.i.i.i, %if.else.i.i.i, %if.else.i.i.i.i53, %if.else.i.i, %if.else.i.i.i.i61, %if.else.i.i7.i.i69 %lpad.loopexit = landingpad { ptr, i32 } cleanup br label %lpad5 @@ -10902,65 +10894,65 @@ land.lhs.true.i.i.i.i: ; preds = %if.then.i.i if.then.i.i.i.i54: ; preds = %land.lhs.true.i.i.i.i %28 = load i32, ptr %m_penalty, align 8 %29 = load i32, ptr %min_penalty, align 8 - %cmp.i.i.i.i55 = icmp slt i32 %28, %29 - br i1 %cmp.i.i.i.i55, label %if.then18, label %if.end22 + %cmp.i.i.i.i = icmp slt i32 %28, %29 + br i1 %cmp.i.i.i.i, label %if.then18, label %if.end22 if.else.i.i.i.i53: ; preds = %land.lhs.true.i.i.i.i, %if.then.i.i - %call4.i.i.i.i56 = invoke noundef i32 @_ZN11mpz_managerILb1EE11big_compareERK3mpzS3_(ptr noundef nonnull align 8 dereferenceable(600) %23, ptr noundef nonnull align 8 dereferenceable(16) %m_penalty, ptr noundef nonnull align 8 dereferenceable(16) %min_penalty) + %call4.i.i.i.i55 = invoke noundef i32 @_ZN11mpz_managerILb1EE11big_compareERK3mpzS3_(ptr noundef nonnull align 8 dereferenceable(600) %23, ptr noundef nonnull align 8 dereferenceable(16) %m_penalty, ptr noundef nonnull align 8 dereferenceable(16) %min_penalty) to label %call4.i.i.i.i.noexc unwind label %lpad5.loopexit call4.i.i.i.i.noexc: ; preds = %if.else.i.i.i.i53 - %cmp5.i.i.i.i = icmp slt i32 %call4.i.i.i.i56, 0 + %cmp5.i.i.i.i = icmp slt i32 %call4.i.i.i.i55, 0 br i1 %cmp5.i.i.i.i, label %if.then18, label %if.end22 if.else.i.i: ; preds = %land.lhs.true.i.i, %land.lhs.true14 - %call5.i.i57 = invoke noundef zeroext i1 @_ZN11mpq_managerILb1EE6rat_ltERK3mpqS3_(ptr noundef nonnull align 8 dereferenceable(728) %23, ptr noundef nonnull align 8 dereferenceable(32) %m_penalty, ptr noundef nonnull align 8 dereferenceable(32) %min_penalty) + %call5.i.i56 = invoke noundef zeroext i1 @_ZN11mpq_managerILb1EE6rat_ltERK3mpqS3_(ptr noundef nonnull align 8 dereferenceable(728) %23, ptr noundef nonnull align 8 dereferenceable(32) %m_penalty, ptr noundef nonnull align 8 dereferenceable(32) %min_penalty) to label %invoke.cont16 unwind label %lpad5.loopexit invoke.cont16: ; preds = %if.else.i.i - br i1 %call5.i.i57, label %if.then18, label %if.end22 + br i1 %call5.i.i56, label %if.then18, label %if.end22 if.then18: ; preds = %call4.i.i.i.i.noexc, %if.then.i.i.i.i54, %invoke.cont16, %if.end %30 = load ptr, ptr @_ZN8rational13g_mpq_managerE, align 8 - %bf.load.i.i.i.i.i59 = load i8, ptr %m_kind.i.i.i.i.i, align 4 - %bf.clear.i.i.i.i.i60 = and i8 %bf.load.i.i.i.i.i59, 1 - %cmp.i.i.i.i.i61 = icmp eq i8 %bf.clear.i.i.i.i.i60, 0 - br i1 %cmp.i.i.i.i.i61, label %if.then.i.i.i.i74, label %if.else.i.i.i.i62 + %bf.load.i.i.i.i.i58 = load i8, ptr %m_kind.i.i.i.i.i, align 4 + %bf.clear.i.i.i.i.i59 = and i8 %bf.load.i.i.i.i.i58, 1 + %cmp.i.i.i.i.i60 = icmp eq i8 %bf.clear.i.i.i.i.i59, 0 + br i1 %cmp.i.i.i.i.i60, label %if.then.i.i.i.i73, label %if.else.i.i.i.i61 -if.then.i.i.i.i74: ; preds = %if.then18 +if.then.i.i.i.i73: ; preds = %if.then18 %31 = load i32, ptr %m_penalty, align 8 store i32 %31, ptr %min_penalty, align 8 %bf.load.i.i.i.i = load i8, ptr %m_kind.i.i.i14, align 4 %bf.clear.i.i.i.i = and i8 %bf.load.i.i.i.i, -2 store i8 %bf.clear.i.i.i.i, ptr %m_kind.i.i.i14, align 4 - br label %_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i63 + br label %_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i62 -if.else.i.i.i.i62: ; preds = %if.then18 +if.else.i.i.i.i61: ; preds = %if.then18 invoke void @_ZN11mpz_managerILb1EE7big_setER3mpzRKS1_(ptr noundef nonnull align 8 dereferenceable(600) %30, ptr noundef nonnull align 8 dereferenceable(16) %min_penalty, ptr noundef nonnull align 8 dereferenceable(16) %m_penalty) - to label %_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i63 unwind label %lpad5.loopexit + to label %_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i62 unwind label %lpad5.loopexit -_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i63: ; preds = %if.else.i.i.i.i62, %if.then.i.i.i.i74 - %bf.load.i.i.i4.i.i67 = load i8, ptr %m_kind.i.i.i3.i.i, align 4 - %bf.clear.i.i.i5.i.i68 = and i8 %bf.load.i.i.i4.i.i67, 1 - %cmp.i.i.i6.i.i69 = icmp eq i8 %bf.clear.i.i.i5.i.i68, 0 +_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i62: ; preds = %if.else.i.i.i.i61, %if.then.i.i.i.i73 + %bf.load.i.i.i4.i.i66 = load i8, ptr %m_kind.i.i.i3.i.i, align 4 + %bf.clear.i.i.i5.i.i67 = and i8 %bf.load.i.i.i4.i.i66, 1 + %cmp.i.i.i6.i.i68 = icmp eq i8 %bf.clear.i.i.i5.i.i67, 0 %32 = trunc nuw i64 %indvars.iv to i32 - br i1 %cmp.i.i.i6.i.i69, label %if.then.i.i8.i.i71, label %if.else.i.i7.i.i70 + br i1 %cmp.i.i.i6.i.i68, label %if.then.i.i8.i.i70, label %if.else.i.i7.i.i69 -if.then.i.i8.i.i71: ; preds = %_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i63 +if.then.i.i8.i.i70: ; preds = %_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i62 %33 = load i32, ptr %m_den3.i.i, align 8 store i32 %33, ptr %m_den.i.i18, align 8 - %bf.load.i.i10.i.i72 = load i8, ptr %m_kind.i1.i.i19, align 4 - %bf.clear.i.i11.i.i73 = and i8 %bf.load.i.i10.i.i72, -2 - store i8 %bf.clear.i.i11.i.i73, ptr %m_kind.i1.i.i19, align 4 + %bf.load.i.i10.i.i71 = load i8, ptr %m_kind.i1.i.i19, align 4 + %bf.clear.i.i11.i.i72 = and i8 %bf.load.i.i10.i.i71, -2 + store i8 %bf.clear.i.i11.i.i72, ptr %m_kind.i1.i.i19, align 4 br label %if.end22 -if.else.i.i7.i.i70: ; preds = %_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i63 +if.else.i.i7.i.i69: ; preds = %_ZN11mpq_managerILb1EE3setER3mpzRKS1_.exit.i.i62 invoke void @_ZN11mpz_managerILb1EE7big_setER3mpzRKS1_(ptr noundef nonnull align 8 dereferenceable(600) %30, ptr noundef nonnull align 8 dereferenceable(16) %m_den.i.i18, ptr noundef nonnull align 8 dereferenceable(16) %m_den3.i.i) to label %if.end22 unwind label %lpad5.loopexit -if.end22: ; preds = %if.then.i.i8.i.i71, %if.else.i.i7.i.i70, %call4.i.i.i.i.noexc, %if.then.i.i.i.i54, %invoke.cont16, %lor.lhs.false - %min_bc_index.1 = phi i32 [ %min_bc_index.0, %invoke.cont16 ], [ %min_bc_index.0, %lor.lhs.false ], [ %min_bc_index.0, %if.then.i.i.i.i54 ], [ %min_bc_index.0, %call4.i.i.i.i.noexc ], [ %32, %if.else.i.i7.i.i70 ], [ %32, %if.then.i.i8.i.i71 ] - %min_bc.1 = phi i32 [ %min_bc.0, %invoke.cont16 ], [ %min_bc.0, %lor.lhs.false ], [ %min_bc.0, %if.then.i.i.i.i54 ], [ %min_bc.0, %call4.i.i.i.i.noexc ], [ %call7, %if.else.i.i7.i.i70 ], [ %call7, %if.then.i.i8.i.i71 ] +if.end22: ; preds = %if.then.i.i8.i.i70, %if.else.i.i7.i.i69, %call4.i.i.i.i.noexc, %if.then.i.i.i.i54, %invoke.cont16, %lor.lhs.false + %min_bc_index.1 = phi i32 [ %min_bc_index.0, %invoke.cont16 ], [ %min_bc_index.0, %lor.lhs.false ], [ %min_bc_index.0, %if.then.i.i.i.i54 ], [ %min_bc_index.0, %call4.i.i.i.i.noexc ], [ %32, %if.else.i.i7.i.i69 ], [ %32, %if.then.i.i8.i.i70 ] + %min_bc.1 = phi i32 [ %min_bc.0, %invoke.cont16 ], [ %min_bc.0, %lor.lhs.false ], [ %min_bc.0, %if.then.i.i.i.i54 ], [ %min_bc.0, %call4.i.i.i.i.noexc ], [ %call7, %if.else.i.i7.i.i69 ], [ %call7, %if.then.i.i8.i.i70 ] %xor.i = xor i32 %14, 1 %call30 = invoke noundef i32 @_ZN3smt6pb_sls3imp4flipEN3sat7literalE(ptr noundef nonnull align 8 dereferenceable(960) %this, i32 %xor.i) to label %invoke.cont29 unwind label %lpad5.loopexit @@ -10969,7 +10961,7 @@ invoke.cont29: ; preds = %if.end22 %sub = sub nsw i32 0, %call7 %cmp31 = icmp eq i32 %call30, %sub %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br i1 %cmp31, label %for.cond, label %if.then32, !llvm.loop !65 + br i1 %cmp31, label %for.cond, label %if.then32, !llvm.loop !66 if.then32: ; preds = %invoke.cont29 invoke void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.25, i32 noundef 432, ptr noundef nonnull @.str.26) @@ -10987,8 +10979,8 @@ invoke.cont35: ; preds = %_ZNK6vectorIN3sat7l %shr.i.i = lshr i32 %add.i.i, 16 %35 = trunc nuw i32 %shr.i.i to i16 %rem.i.lhs.trunc = and i16 %35, 32767 - %rem.i97 = urem i16 %rem.i.lhs.trunc, 100 - %rem.i.zext = zext nneg i16 %rem.i97 to i32 + %rem.i96 = urem i16 %rem.i.lhs.trunc, 100 + %rem.i.zext = zext nneg i16 %rem.i96 to i32 %m_non_greedy_percent = getelementptr inbounds i8, ptr %this, i64 916 %36 = load i32, ptr %m_non_greedy_percent, align 4 %cmp37.not = icmp ult i32 %36, %rem.i.zext @@ -10996,31 +10988,23 @@ invoke.cont35: ; preds = %_ZNK6vectorIN3sat7l br i1 %cmp37.not, label %if.end48, label %if.then38 if.then38: ; preds = %invoke.cont35 - %cmp.i77 = icmp eq ptr %37, null - br i1 %cmp.i77, label %invoke.cont43, label %if.end.i78 - -if.end.i78: ; preds = %if.then38 - %arrayidx.i79 = getelementptr inbounds i8, ptr %37, i64 -4 - %38 = load i32, ptr %arrayidx.i79, align 4 - br label %invoke.cont43 - -invoke.cont43: ; preds = %if.end.i78, %if.then38 - %retval.0.i80 = phi i32 [ %38, %if.end.i78 ], [ 0, %if.then38 ] - %mul.i.i82 = mul i32 %add.i.i, 214013 - %add.i.i83 = add i32 %mul.i.i82, 2531011 - store i32 %add.i.i83, ptr %m_rng.i, align 8 - %shr.i.i84 = lshr i32 %add.i.i83, 16 - %and.i.i85 = and i32 %shr.i.i84, 32767 - %rem.i86 = urem i32 %and.i.i85, %retval.0.i80 + %arrayidx.i78 = getelementptr inbounds i8, ptr %37, i64 -4 + %38 = load i32, ptr %arrayidx.i78, align 4 + %mul.i.i81 = mul i32 %add.i.i, 214013 + %add.i.i82 = add i32 %mul.i.i81, 2531011 + store i32 %add.i.i82, ptr %m_rng.i, align 8 + %shr.i.i83 = lshr i32 %add.i.i82, 16 + %and.i.i84 = and i32 %shr.i.i83, 32767 + %rem.i85 = urem i32 %and.i.i84, %38 %39 = load ptr, ptr %arrayidx.i.i, align 8 br label %if.end48 -if.end48: ; preds = %invoke.cont35, %invoke.cont43 - %min_bc_index.0.lcssa.sink = phi i32 [ %rem.i86, %invoke.cont43 ], [ %min_bc_index.0, %invoke.cont35 ] - %.sink = phi ptr [ %39, %invoke.cont43 ], [ %37, %invoke.cont35 ] - %idxprom.i89 = zext i32 %min_bc_index.0.lcssa.sink to i64 - %arrayidx.i90 = getelementptr inbounds %"class.sat::literal", ptr %.sink, i64 %idxprom.i89 - %storemerge = load i32, ptr %arrayidx.i90, align 4 +if.end48: ; preds = %invoke.cont35, %if.then38 + %min_bc_index.0.lcssa.sink = phi i32 [ %rem.i85, %if.then38 ], [ %min_bc_index.0, %invoke.cont35 ] + %.sink = phi ptr [ %39, %if.then38 ], [ %37, %invoke.cont35 ] + %idxprom.i88 = zext i32 %min_bc_index.0.lcssa.sink to i64 + %arrayidx.i89 = getelementptr inbounds %"class.sat::literal", ptr %.sink, i64 %idxprom.i88 + %storemerge = load i32, ptr %arrayidx.i89, align 4 %call52 = invoke noundef i32 @_ZN3smt6pb_sls3imp4flipEN3sat7literalE(ptr noundef nonnull align 8 dereferenceable(960) %this, i32 %storemerge) to label %cleanup unwind label %lpad5.loopexit.split-lp @@ -11044,20 +11028,20 @@ terminate.lpad.i: ; preds = %.noexc.i, %cleanup _ZN8rationalD2Ev.exit: ; preds = %.noexc.i %43 = load ptr, ptr @_ZN8rational13g_mpq_managerE, align 8 invoke void @_ZN11mpz_managerILb1EE3delEPS0_R3mpz(ptr noundef %43, ptr noundef nonnull align 8 dereferenceable(16) %penalty) - to label %.noexc.i93 unwind label %terminate.lpad.i92 + to label %.noexc.i92 unwind label %terminate.lpad.i91 -.noexc.i93: ; preds = %_ZN8rationalD2Ev.exit +.noexc.i92: ; preds = %_ZN8rationalD2Ev.exit invoke void @_ZN11mpz_managerILb1EE3delEPS0_R3mpz(ptr noundef %43, ptr noundef nonnull align 8 dereferenceable(16) %m_den.i.i) - to label %_ZN8rationalD2Ev.exit95 unwind label %terminate.lpad.i92 + to label %_ZN8rationalD2Ev.exit94 unwind label %terminate.lpad.i91 -terminate.lpad.i92: ; preds = %.noexc.i93, %_ZN8rationalD2Ev.exit +terminate.lpad.i91: ; preds = %.noexc.i92, %_ZN8rationalD2Ev.exit %44 = landingpad { ptr, i32 } catch ptr null %45 = extractvalue { ptr, i32 } %44, 0 call void @__clang_call_terminate(ptr %45) #17 unreachable -_ZN8rationalD2Ev.exit95: ; preds = %.noexc.i93 +_ZN8rationalD2Ev.exit94: ; preds = %.noexc.i92 ret i32 %retval.sroa.0.0 ehcleanup: ; preds = %lpad5, %lpad @@ -11069,27 +11053,19 @@ ehcleanup: ; preds = %lpad5, %lpad ; Function Attrs: mustprogress uwtable define linkonce_odr hidden i32 @_ZN3smt6pb_sls3imp9flip_hardEv(ptr noundef nonnull align 8 dereferenceable(960) %this) local_unnamed_addr #3 comdat align 2 { entry: + %m_clauses.i = getelementptr inbounds i8, ptr %this, i64 688 %m_hard_false.i = getelementptr inbounds i8, ptr %this, i64 880 - %0 = load ptr, ptr %m_hard_false.i, align 8 - %cmp.i.i.i.i = icmp eq ptr %0, null - br i1 %cmp.i.i.i.i, label %_ZN3smt6pb_sls3imp16pick_hard_clauseEv.exit, label %if.end.i.i.i.i - -if.end.i.i.i.i: ; preds = %entry + %m_rng.i = getelementptr inbounds i8, ptr %this, i64 920 + %0 = load ptr, ptr %m_hard_false.i, align 8, !nonnull !65, !noundef !65 %arrayidx.i.i.i.i = getelementptr inbounds i8, ptr %0, i64 -4 %1 = load i32, ptr %arrayidx.i.i.i.i, align 4 - br label %_ZN3smt6pb_sls3imp16pick_hard_clauseEv.exit - -_ZN3smt6pb_sls3imp16pick_hard_clauseEv.exit: ; preds = %entry, %if.end.i.i.i.i - %retval.0.i.i.i.i = phi i32 [ %1, %if.end.i.i.i.i ], [ 0, %entry ] - %m_rng.i = getelementptr inbounds i8, ptr %this, i64 920 - %m_clauses.i = getelementptr inbounds i8, ptr %this, i64 688 %2 = load i32, ptr %m_rng.i, align 8 %mul.i.i.i.i = mul i32 %2, 214013 %add.i.i.i.i = add i32 %mul.i.i.i.i, 2531011 store i32 %add.i.i.i.i, ptr %m_rng.i, align 8 %shr.i.i.i.i = lshr i32 %add.i.i.i.i, 16 %and.i.i.i.i = and i32 %shr.i.i.i.i, 32767 - %rem.i.i.i = urem i32 %and.i.i.i.i, %retval.0.i.i.i.i + %rem.i.i.i = urem i32 %and.i.i.i.i, %1 %idxprom.i.i.i = zext nneg i32 %rem.i.i.i to i64 %arrayidx.i.i.i = getelementptr inbounds i32, ptr %0, i64 %idxprom.i.i.i %3 = load i32, ptr %arrayidx.i.i.i, align 4 @@ -11098,10 +11074,10 @@ _ZN3smt6pb_sls3imp16pick_hard_clauseEv.exit: ; preds = %entry, %if.end.i.i. %arrayidx.i.i = getelementptr inbounds %"struct.smt::pb_sls::imp::clause", ptr %4, i64 %idxprom.i.i br label %for.cond -for.cond: ; preds = %for.inc, %_ZN3smt6pb_sls3imp16pick_hard_clauseEv.exit - %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %_ZN3smt6pb_sls3imp16pick_hard_clauseEv.exit ] - %min_bc_index.0 = phi i32 [ %min_bc_index.1, %for.inc ], [ 0, %_ZN3smt6pb_sls3imp16pick_hard_clauseEv.exit ] - %min_bc.0 = phi i32 [ %min_bc.1, %for.inc ], [ 2147483647, %_ZN3smt6pb_sls3imp16pick_hard_clauseEv.exit ] +for.cond: ; preds = %for.inc, %entry + %indvars.iv = phi i64 [ %indvars.iv.next, %for.inc ], [ 0, %entry ] + %min_bc_index.0 = phi i32 [ %min_bc_index.1, %for.inc ], [ 0, %entry ] + %min_bc.0 = phi i32 [ %min_bc.1, %for.inc ], [ 2147483647, %entry ] %5 = load ptr, ptr %arrayidx.i.i, align 8 %cmp.i = icmp eq ptr %5, null br i1 %cmp.i, label %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit, label %if.end.i @@ -11214,7 +11190,7 @@ _ZN3satlsERSoNS_7literalE.exit28: ; preds = %if.then.i26, %if.el for.inc: ; preds = %if.end11, %_ZN3satlsERSoNS_7literalE.exit, %_ZN3satlsERSoNS_7literalE.exit28 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br label %for.cond, !llvm.loop !66 + br label %for.cond, !llvm.loop !67 for.end: ; preds = %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit %16 = load i32, ptr %m_rng.i, align 8 @@ -11233,28 +11209,20 @@ for.end: ; preds = %_ZNK6vectorIN3sat7l br i1 %cmp44.not, label %if.end55, label %if.then45 if.then45: ; preds = %for.end - %cmp.i34 = icmp eq ptr %19, null - br i1 %cmp.i34, label %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit38, label %if.end.i35 - -if.end.i35: ; preds = %if.then45 %arrayidx.i36 = getelementptr inbounds i8, ptr %19, i64 -4 %20 = load i32, ptr %arrayidx.i36, align 4 - br label %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit38 - -_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit38: ; preds = %if.then45, %if.end.i35 - %retval.0.i37 = phi i32 [ %20, %if.end.i35 ], [ 0, %if.then45 ] %mul.i.i39 = mul i32 %add.i.i30, 214013 %add.i.i40 = add i32 %mul.i.i39, 2531011 store i32 %add.i.i40, ptr %m_rng.i, align 8 %shr.i.i41 = lshr i32 %add.i.i40, 16 %and.i.i42 = and i32 %shr.i.i41, 32767 - %rem.i43 = urem i32 %and.i.i42, %retval.0.i37 + %rem.i43 = urem i32 %and.i.i42, %20 %21 = load ptr, ptr %arrayidx.i.i, align 8 br label %if.end55 -if.end55: ; preds = %for.end, %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit38 - %min_bc_index.0.lcssa.sink = phi i32 [ %rem.i43, %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit38 ], [ %min_bc_index.0, %for.end ] - %.sink = phi ptr [ %21, %_ZNK6vectorIN3sat7literalELb0EjE4sizeEv.exit38 ], [ %19, %for.end ] +if.end55: ; preds = %for.end, %if.then45 + %min_bc_index.0.lcssa.sink = phi i32 [ %rem.i43, %if.then45 ], [ %min_bc_index.0, %for.end ] + %.sink = phi ptr [ %21, %if.then45 ], [ %19, %for.end ] %idxprom.i46 = zext i32 %min_bc_index.0.lcssa.sink to i64 %arrayidx.i47 = getelementptr inbounds %"class.sat::literal", ptr %.sink, i64 %idxprom.i46 %storemerge = load i32, ptr %arrayidx.i47, align 4 @@ -11471,7 +11439,7 @@ if.else.i.i65: ; preds = %land.lhs.true.i.i67 for.inc: ; preds = %land.lhs.true.i.i67, %land.lhs.true.i, %if.then, %_ZNK6vectorIjLb0EjE4sizeEv.exit.i, %_ZNK6vectorIjLb0EjE4sizeEv.exit9.i, %if.else.i.i65, %_ZN6vectorIjLb0EjE4backEv.exit.i, %_ZNK3smt9index_set8containsEj.exit, %if.then23 %break_count.1 = phi i32 [ %break_count.0, %_ZNK3smt9index_set8containsEj.exit ], [ %inc, %if.then23 ], [ %dec, %_ZN6vectorIjLb0EjE4backEv.exit.i ], [ %break_count.0, %if.else.i.i65 ], [ %break_count.0, %_ZNK6vectorIjLb0EjE4sizeEv.exit9.i ], [ %break_count.0, %_ZNK6vectorIjLb0EjE4sizeEv.exit.i ], [ %break_count.0, %if.then ], [ %break_count.0, %land.lhs.true.i ], [ %break_count.0, %land.lhs.true.i.i67 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br label %for.cond, !llvm.loop !67 + br label %for.cond, !llvm.loop !68 for.end: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit %m_soft_occ = getelementptr inbounds i8, ptr %this, i64 808 @@ -11678,7 +11646,7 @@ invoke.cont72: ; preds = %if.then67 for.inc78: ; preds = %land.lhs.true.i88, %if.then52, %_ZNK6vectorIjLb0EjE4sizeEv.exit.i85, %_ZNK6vectorIjLb0EjE4sizeEv.exit9.i92, %_ZN6vectorIjLb0EjE4backEv.exit.i124, %_ZNK3smt9index_set8containsEj.exit.i120, %_ZNK6vectorIjLb0EjE4sizeEv.exit9.i.i117, %land.lhs.true.i.i113, %_ZNK6vectorIjLb0EjE4sizeEv.exit.i.i110, %invoke.cont58, %_ZNK3smt9index_set8containsEj.exit99, %invoke.cont72, %_ZNK3smt9index_set8containsEj.exit148 %indvars.iv.next162 = add nuw nsw i64 %indvars.iv161, 1 - br label %for.cond42, !llvm.loop !68 + br label %for.cond42, !llvm.loop !69 for.end80: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit78 %70 = load ptr, ptr %value, align 8 @@ -11735,7 +11703,7 @@ for.body: ; preds = %_ZNK6vectorIN3smt6p %arrayidx.i13 = getelementptr inbounds %"struct.smt::pb_sls::imp::clause", ptr %0, i64 %indvars.iv tail call void @_ZN3smt6pb_sls3imp7displayERSoRKNS1_6clauseE(ptr noundef nonnull align 8 dereferenceable(960) %this, ptr noundef nonnull align 8 dereferenceable(8) %out, ptr noundef nonnull align 8 dereferenceable(73) %arrayidx.i13) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br label %for.cond, !llvm.loop !69 + br label %for.cond, !llvm.loop !70 for.end: ; preds = %_ZNK6vectorIN3smt6pb_sls3imp6clauseELb1EjE4sizeEv.exit %call4 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %out, ptr noundef nonnull @.str.27) @@ -11793,7 +11761,7 @@ _ZlsRSoRK8rational.exit: ; preds = %for.body9 %arrayidx.i22 = getelementptr inbounds %"struct.smt::pb_sls::imp::clause", ptr %9, i64 %indvars.iv35 call void @_ZN3smt6pb_sls3imp7displayERSoRKNS1_6clauseE(ptr noundef nonnull align 8 dereferenceable(960) %this, ptr noundef nonnull align 8 dereferenceable(8) %call12, ptr noundef nonnull align 8 dereferenceable(73) %arrayidx.i22) %indvars.iv.next36 = add nuw nsw i64 %indvars.iv35, 1 - br label %for.cond6, !llvm.loop !70 + br label %for.cond6, !llvm.loop !71 for.cond19: ; preds = %for.cond19.preheader, %invoke.cont33 %indvars.iv38 = phi i64 [ 0, %for.cond19.preheader ], [ %indvars.iv.next39, %invoke.cont33 ] @@ -11860,7 +11828,7 @@ invoke.cont31: ; preds = %invoke.cont27 invoke.cont33: ; preds = %invoke.cont31 call void @_ZN10params_refD1Ev(ptr noundef nonnull align 8 dereferenceable(8) %m_empty.i.i) #16 %indvars.iv.next39 = add nuw nsw i64 %indvars.iv38, 1 - br label %for.cond19, !llvm.loop !71 + br label %for.cond19, !llvm.loop !72 lpad: ; preds = %invoke.cont31, %invoke.cont27, %invoke.cont, %_ZN3satlsERSoNS_7literalE.exit %20 = landingpad { ptr, i32 } @@ -12589,10 +12557,11 @@ attributes #19 = { cold noreturn nounwind } !62 = distinct !{!62, !5} !63 = distinct !{!63, !5} !64 = distinct !{!64, !5} -!65 = distinct !{!65, !5} +!65 = !{} !66 = distinct !{!66, !5} !67 = distinct !{!67, !5} !68 = distinct !{!68, !5} !69 = distinct !{!69, !5} !70 = distinct !{!70, !5} !71 = distinct !{!71, !5} +!72 = distinct !{!72, !5} diff --git a/bench/z3/optimized/sat_local_search.cpp.ll b/bench/z3/optimized/sat_local_search.cpp.ll index b4b72675b41..fff85023f22 100644 --- a/bench/z3/optimized/sat_local_search.cpp.ll +++ b/bench/z3/optimized/sat_local_search.cpp.ll @@ -5964,7 +5964,6 @@ entry: reflip.outer: ; preds = %_ZNK6vectorIjLb0EjE5emptyEv.exit, %entry %.ph = phi ptr [ %58, %_ZNK6vectorIjLb0EjE5emptyEv.exit ], [ %.pre, %entry ] - %cmp.i = icmp eq ptr %.ph, null %arrayidx.i = getelementptr inbounds i8, ptr %.ph, i64 -4 %0 = load ptr, ptr %m_constraints, align 8 %1 = load double, ptr %m_noise, align 8 @@ -5975,21 +5974,14 @@ reflip.outer: ; preds = %_ZNK6vectorIjLb0EjE br label %reflip reflip: ; preds = %reflip.backedge, %reflip.outer - br i1 %cmp.i, label %_ZNK6vectorIjLb0EjE4sizeEv.exit65, label %if.end.i - -if.end.i: ; preds = %reflip %6 = load i32, ptr %arrayidx.i, align 4 - br label %_ZNK6vectorIjLb0EjE4sizeEv.exit65 - -_ZNK6vectorIjLb0EjE4sizeEv.exit65: ; preds = %reflip, %if.end.i - %retval.0.i = phi i32 [ %6, %if.end.i ], [ 0, %reflip ] %7 = load i32, ptr %m_rand, align 8 %mul.i = mul i32 %7, 214013 %add.i = add i32 %mul.i, 2531011 store i32 %add.i, ptr %m_rand, align 8 %shr.i = lshr i32 %add.i, 16 %and.i = and i32 %shr.i, 32767 - %rem = urem i32 %and.i, %retval.0.i + %rem = urem i32 %and.i, %6 %idxprom.i = zext nneg i32 %rem to i64 %arrayidx.i58 = getelementptr inbounds i32, ptr %.ph, i64 %idxprom.i %8 = load i32, ptr %arrayidx.i58, align 4 @@ -6009,7 +6001,7 @@ _ZNK6vectorIjLb0EjE4sizeEv.exit65: ; preds = %reflip, %if.end.i %cmp.i.i.i = icmp eq ptr %10, null br i1 %cmp11, label %if.else128, label %if.then -if.then: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit65 +if.then: ; preds = %reflip br i1 %cmp.i.i.i, label %reflip.backedge, label %_ZNK6vectorIN3sat7literalELb0EjE3endEv.exit reflip.backedge: ; preds = %if.then, %_ZNK3sat12local_search10constraint3endEv.exit.i, %_ZNK3sat12local_search16constraint_valueERKNS0_10constraintE.exit, %if.end173 @@ -6192,7 +6184,7 @@ if.else52: ; preds = %for.body48 %34 = load i32, ptr %m_coeff, align 4 %conv53 = zext i32 %34 to i64 %cmp54 = icmp ult i64 %33, %conv53 - %add = select i1 %cmp54, i32 %retval.0.i, i32 0 + %add = select i1 %cmp54, i32 %6, i32 0 %spec.select = add i32 %add, %best_bsb.0184 br label %for.inc58 @@ -6268,7 +6260,7 @@ if.else96: ; preds = %for.body85 br i1 %cmp99, label %if.then100, label %for.inc107 if.then100: ; preds = %if.else96 - %add101 = add i32 %bsb.0187, %retval.0.i + %add101 = add i32 %bsb.0187, %6 %cmp102 = icmp ugt i32 %add101, %best_bsb.2194 br i1 %cmp102, label %for.inc125, label %for.inc107 @@ -6304,7 +6296,7 @@ for.inc125: ; preds = %if.then90, %if.then %cmp63.not = icmp eq ptr %cit.1, %add.ptr.i br i1 %cmp63.not, label %if.end158, label %for.body64, !llvm.loop !35 -if.else128: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit65 +if.else128: ; preds = %reflip br i1 %cmp.i.i.i, label %if.then160, label %_ZNK3sat12local_search10constraint3endEv.exit _ZNK3sat12local_search10constraint3endEv.exit: ; preds = %if.else128 @@ -7155,17 +7147,9 @@ _ZN6vectorIjLb0EjE4backEv.exit: ; preds = %entry, %if.end.i.i define hidden void @_ZN3sat12local_search19pick_flip_lookaheadEv(ptr noundef nonnull align 8 dereferenceable(232) %this) local_unnamed_addr #3 align 2 { entry: %m_unsat_stack = getelementptr inbounds i8, ptr %this, i64 96 - %0 = load ptr, ptr %m_unsat_stack, align 8 - %cmp.i = icmp eq ptr %0, null - br i1 %cmp.i, label %_ZNK6vectorIjLb0EjE4sizeEv.exit, label %if.end.i - -if.end.i: ; preds = %entry + %0 = load ptr, ptr %m_unsat_stack, align 8, !nonnull !11, !noundef !11 %arrayidx.i = getelementptr inbounds i8, ptr %0, i64 -4 %1 = load i32, ptr %arrayidx.i, align 4 - br label %_ZNK6vectorIjLb0EjE4sizeEv.exit - -_ZNK6vectorIjLb0EjE4sizeEv.exit: ; preds = %entry, %if.end.i - %retval.0.i = phi i32 [ %1, %if.end.i ], [ 0, %entry ] %m_constraints = getelementptr inbounds i8, ptr %this, i64 64 %m_rand = getelementptr inbounds i8, ptr %this, i64 208 %2 = load i32, ptr %m_rand, align 8 @@ -7174,7 +7158,7 @@ _ZNK6vectorIjLb0EjE4sizeEv.exit: ; preds = %entry, %if.end.i store i32 %add.i, ptr %m_rand, align 8 %shr.i = lshr i32 %add.i, 16 %and.i = and i32 %shr.i, 32767 - %rem = urem i32 %and.i, %retval.0.i + %rem = urem i32 %and.i, %1 %idxprom.i = zext nneg i32 %rem to i64 %arrayidx.i4 = getelementptr inbounds i32, ptr %0, i64 %idxprom.i %3 = load i32, ptr %arrayidx.i4, align 4 @@ -7187,7 +7171,7 @@ _ZNK6vectorIjLb0EjE4sizeEv.exit: ; preds = %entry, %if.end.i %cmp.i.i = icmp eq ptr %6, null br i1 %cmp.i.i, label %if.else, label %_ZNK6vectorIN3sat7literalELb0EjE3endEv.exit -_ZNK6vectorIN3sat7literalELb0EjE3endEv.exit: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit +_ZNK6vectorIN3sat7literalELb0EjE3endEv.exit: ; preds = %entry %arrayidx.i.i = getelementptr inbounds i8, ptr %6, i64 -4 %7 = load i32, ptr %arrayidx.i.i, align 4 %8 = zext i32 %7 to i64 @@ -7272,7 +7256,7 @@ if.then33: ; preds = %for.end %call41 = tail call noundef zeroext i1 @_ZN3sat12local_search9propagateENS_7literalE(ptr noundef nonnull align 8 dereferenceable(232) %this, i32 %xor.i23) br label %if.end54 -if.else: ; preds = %_ZNK6vectorIjLb0EjE4sizeEv.exit, %_ZNK6vectorIN3sat7literalELb0EjE3endEv.exit, %for.end +if.else: ; preds = %entry, %_ZNK6vectorIN3sat7literalELb0EjE3endEv.exit, %for.end %call42 = tail call noundef i32 @_Z19get_verbosity_levelv() %cmp43.not = icmp eq i32 %call42, 0 br i1 %cmp43.not, label %if.end54, label %if.then44 diff --git a/bench/z3/optimized/sls_engine.cpp.ll b/bench/z3/optimized/sls_engine.cpp.ll index e0ad03f5212..aba161351ee 100644 --- a/bench/z3/optimized/sls_engine.cpp.ll +++ b/bench/z3/optimized/sls_engine.cpp.ll @@ -9019,7 +9019,6 @@ if.end.i: ; preds = %entry.if.end.i_crit %m_rng14.promoted.i = phi i32 [ %add.i.i, %if.then.i ], [ %m_rng14.promoted.i.pre, %entry.if.end.i_crit_edge ] %m_random_bits4.promoted.i = phi i32 [ %and.i.i, %if.then.i ], [ %m_random_bits4.promoted.i.pre, %entry.if.end.i_crit_edge ] %m_random_bits_cnt.promoted.i = phi i32 [ 15, %if.then.i ], [ %1, %entry.if.end.i_crit_edge ] - %m_random_bits4.i = getelementptr inbounds i8, ptr %0, i64 36 %m_rng14.i = getelementptr inbounds i8, ptr %0, i64 32 br label %while.body.i @@ -9054,20 +9053,13 @@ if.end18.i: ; preds = %if.then13.i, %while br i1 %cmp3.not.i, label %_ZN11sls_tracker15get_random_uintEj.exit, label %while.body.i, !llvm.loop !47 _ZN11sls_tracker15get_random_uintEj.exit: ; preds = %if.end18.i + %m_random_bits4.i = getelementptr inbounds i8, ptr %0, i64 36 store i32 %4, ptr %m_random_bits4.i, align 4 store i32 %dec108.i, ptr %m_random_bits_cnt.i, align 8 - %5 = load ptr, ptr %unsat_constants, align 8 - %cmp.i3 = icmp eq ptr %5, null - br i1 %cmp.i3, label %_ZNK6vectorIP9func_declLb0EjE4sizeEv.exit, label %if.end.i4 - -if.end.i4: ; preds = %_ZN11sls_tracker15get_random_uintEj.exit + %5 = load ptr, ptr %unsat_constants, align 8, !nonnull !67, !noundef !67 %arrayidx.i = getelementptr inbounds i8, ptr %5, i64 -4 %6 = load i32, ptr %arrayidx.i, align 4 - br label %_ZNK6vectorIP9func_declLb0EjE4sizeEv.exit - -_ZNK6vectorIP9func_declLb0EjE4sizeEv.exit: ; preds = %_ZN11sls_tracker15get_random_uintEj.exit, %if.end.i4 - %retval.0.i = phi i32 [ %6, %if.end.i4 ], [ 0, %_ZN11sls_tracker15get_random_uintEj.exit ] - %rem = urem i32 %shl.i, %retval.0.i + %rem = urem i32 %shl.i, %6 %idxprom.i = zext i32 %rem to i64 %arrayidx.i5 = getelementptr inbounds ptr, ptr %5, i64 %idxprom.i %7 = load ptr, ptr %arrayidx.i5, align 8 @@ -9248,7 +9240,7 @@ while.body.i.i.i: ; preds = %for.cond, %sw.bb.i. sw.bb.i.i.i: ; preds = %while.body.i.i.i %9 = getelementptr inbounds i8, ptr %c.0.i.i.i, i64 16 %10 = load ptr, ptr %9, align 8 - br label %while.body.i.i.i, !llvm.loop !67 + br label %while.body.i.i.i, !llvm.loop !68 sw.bb3.i.i.i: ; preds = %while.body.i.i.i %11 = getelementptr inbounds i8, ptr %c.0.i.i.i, i64 4 @@ -9337,7 +9329,7 @@ sw.epilog.i.i.i: ; preds = %sw.bb.i.i.i20, %if. %c.1.in.i.i.i = getelementptr inbounds i8, ptr %c.017.i.i.i, i64 16 %trail_sz.1.i.i.i = add nuw nsw i32 %trail_sz.016.i.i.i, 1 %exitcond.i.i.i = icmp eq i32 %trail_sz.1.i.i.i, 17 - br i1 %exitcond.i.i.i, label %if.then.i.i.i19, label %if.end.i.i.i, !llvm.loop !68 + br i1 %exitcond.i.i.i, label %if.then.i.i.i19, label %if.end.i.i.i, !llvm.loop !69 _ZNK4goal4formEj.exit: ; preds = %cond.true.i, %if.then.i.i.i19, %if.then5.i.i.i, %sw.bb12.i.i.i %cond.in.i = phi ptr [ %m_false.i.i, %cond.true.i ], [ %arrayidx.i.i.i, %if.then.i.i.i19 ], [ %arrayidx14.i.i.i, %sw.bb12.i.i.i ], [ %m_elem.i.i.i.i, %if.then5.i.i.i ] @@ -9373,7 +9365,7 @@ _ZN10sls_engine11assert_exprEP4expr.exit: ; preds = %lor.lhs.false.i.i, %inc.i.i = add i32 %34, 1 store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br label %for.cond, !llvm.loop !69 + br label %for.cond, !llvm.loop !70 for.end: ; preds = %_ZNK4goal4sizeEv.exit %call10 = tail call noundef i32 @_ZN10sls_engineclEv(ptr noundef nonnull align 8 dereferenceable(1512) %this) @@ -9410,7 +9402,7 @@ while.body.i.i.i25: ; preds = %for.cond14, %sw.bb. sw.bb.i.i.i35: ; preds = %while.body.i.i.i25 %38 = getelementptr inbounds i8, ptr %c.0.i.i.i26, i64 16 %39 = load ptr, ptr %38, align 8 - br label %while.body.i.i.i25, !llvm.loop !67 + br label %while.body.i.i.i25, !llvm.loop !68 sw.bb3.i.i.i33: ; preds = %while.body.i.i.i25 %40 = getelementptr inbounds i8, ptr %c.0.i.i.i26, i64 4 @@ -9493,7 +9485,7 @@ sw.epilog.i.i.i57: ; preds = %sw.bb.i.i.i64, %if. %c.1.in.i.i.i58 = getelementptr inbounds i8, ptr %c.017.i.i.i51, i64 16 %trail_sz.1.i.i.i59 = add nuw nsw i32 %trail_sz.016.i.i.i50, 1 %exitcond.i.i.i60 = icmp eq i32 %trail_sz.1.i.i.i59, 17 - br i1 %exitcond.i.i.i60, label %if.then.i.i.i61, label %if.end.i.i.i48, !llvm.loop !68 + br i1 %exitcond.i.i.i60, label %if.then.i.i.i61, label %if.end.i.i.i48, !llvm.loop !69 _ZNK4goal4formEj.exit69: ; preds = %cond.true.i41, %if.then.i.i.i61, %if.then5.i.i.i66, %sw.bb12.i.i.i54 %cond.in.i43 = phi ptr [ %m_false.i.i42, %cond.true.i41 ], [ %arrayidx.i.i.i63, %if.then.i.i.i61 ], [ %arrayidx14.i.i.i56, %sw.bb12.i.i.i54 ], [ %m_elem.i.i.i.i67, %if.then5.i.i.i66 ] @@ -9566,7 +9558,7 @@ _ZN11sls_tracker9get_valueEP4expr.exit: ; preds = %if.then.i.i.i.i, %i %cmp.i = icmp eq i32 %64, 1 %65 = select i1 %cmp.i.i71, i1 %cmp.i, i1 false %indvars.iv.next127 = add nuw nsw i64 %indvars.iv126, 1 - br i1 %65, label %for.cond14, label %if.then23, !llvm.loop !70 + br i1 %65, label %for.cond14, label %if.then23, !llvm.loop !71 if.then23: ; preds = %_ZN11sls_tracker9get_valueEP4expr.exit %call24 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_Z14verbose_streamv() @@ -9737,7 +9729,7 @@ land.rhs: ; preds = %if.then9, %if.else store i32 %inc, ptr %m_stats, align 8 %6 = load i32, ptr %m_max_restarts, align 8 %cmp20 = icmp ult i32 %5, %6 - br i1 %cmp20, label %do.body, label %do.end, !llvm.loop !71 + br i1 %cmp20, label %do.body, label %do.end, !llvm.loop !72 do.end: ; preds = %do.body, %land.rhs %call.lcssa = phi i32 [ 1, %do.body ], [ 0, %land.rhs ] @@ -9992,7 +9984,7 @@ terminate.lpad.i: ; preds = %if.then2.i.i.i _ZN7obj_refI4expr11ast_managerED2Ev.exit: ; preds = %invoke.cont14, %if.then.i.i.i, %if.then2.i.i.i %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 %nrvo.skipdtor, label %invoke.cont3, !llvm.loop !72 + br i1 %exitcond.not, label %nrvo.skipdtor, label %invoke.cont3, !llvm.loop !73 lpad: ; preds = %invoke.cont8 %29 = landingpad { ptr, i32 } @@ -10126,7 +10118,7 @@ if.then.i.i: ; preds = %for.body.i.i for.inc.i.i: ; preds = %if.then.i.i, %for.body.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %curr.031.i.i, i64 8 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr5.i.i - br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !73 + br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !74 for.body20.i.i: ; preds = %for.cond18.preheader.i.i, %for.inc36.i.i %curr.133.i.i = phi ptr [ %incdec.ptr37.i.i, %for.inc36.i.i ], [ %7, %for.cond18.preheader.i.i ] @@ -10148,7 +10140,7 @@ if.then22.i.i: ; preds = %for.body20.i.i for.inc36.i.i: ; preds = %if.then22.i.i, %for.body20.i.i %incdec.ptr37.i.i = getelementptr inbounds i8, ptr %curr.133.i.i, i64 8 %cmp19.not.i.i = icmp eq ptr %incdec.ptr37.i.i, %add.ptr.i.i - br i1 %cmp19.not.i.i, label %if.then, label %for.body20.i.i, !llvm.loop !74 + br i1 %cmp19.not.i.i, label %if.then, label %for.body20.i.i, !llvm.loop !75 if.then: ; preds = %for.body.i.i, %for.body20.i.i, %for.inc36.i.i, %for.cond18.preheader.i.i call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %tmp.i) @@ -10187,7 +10179,7 @@ if.end: ; preds = %if.then.i.i, %if.th for.inc: ; preds = %if.end %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !75 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !76 _ZN8obj_markI4expr10bit_vector14default_t2uintIS0_EE5resetEv.exit.thread: ; preds = %entry, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit %m_data.i.i204 = getelementptr inbounds i8, ptr %visited, i64 16 @@ -10360,7 +10352,7 @@ terminate.lpad.i.i: ; preds = %if.then.i.i.i42 _ZN10ptr_vectorI9func_declED2Ev.exit: ; preds = %_ZN13ast_fast_markILj1EED2Ev.exit, %if.then.i.i.i42 %indvars.iv.next180 = add nuw nsw i64 %indvars.iv179, 1 %exitcond183.not = icmp eq i64 %indvars.iv.next180, %wide.trip.count182 - br i1 %exitcond183.not, label %for.end29.loopexit, label %for.body12, !llvm.loop !76 + br i1 %exitcond183.not, label %for.end29.loopexit, label %for.body12, !llvm.loop !77 lpad16: ; preds = %for.body12 %32 = landingpad { ptr, i32 } @@ -10581,7 +10573,7 @@ if.then22.i.i.i.i76: ; preds = %for.body20.i.i.i.i6 for.inc36.i.i.i.i71: ; preds = %if.then22.i.i.i.i76, %for.body20.i.i.i.i69 %incdec.ptr37.i.i.i.i72 = getelementptr inbounds i8, ptr %curr.133.i.i.i.i70, i64 16 %cmp19.not.i.i.i.i73 = icmp eq ptr %incdec.ptr37.i.i.i.i72, %add.ptr.i.i.i.i58 - br i1 %cmp19.not.i.i.i.i73, label %if.then2.i, label %for.body20.i.i.i.i69, !llvm.loop !77 + br i1 %cmp19.not.i.i.i.i73, label %if.then2.i, label %for.body20.i.i.i.i69, !llvm.loop !78 if.then2.i: ; preds = %for.body.i.i.i.i62, %for.inc36.i.i.i.i71, %for.body20.i.i.i.i69, %for.cond18.preheader.i.i.i.i67 %58 = load i32, ptr %m_size.i.i.i, align 4 @@ -10602,7 +10594,7 @@ if.then2.i: ; preds = %for.body.i.i.i.i62, for.inc47: ; preds = %if.then.i.i.i.i81, %if.then22.i.i.i.i76, %.noexc, %if.then43, %if.then.i, %invoke.cont41 %indvars.iv.next185 = add nuw nsw i64 %indvars.iv184, 1 %exitcond188.not = icmp eq i64 %indvars.iv.next185, %retval.0.i200207213 - br i1 %exitcond188.not, label %if.end50, label %for.body37, !llvm.loop !78 + br i1 %exitcond188.not, label %if.end50, label %for.body37, !llvm.loop !79 if.end50: ; preds = %for.inc47, %invoke.cont32, %invoke.cont30 %m_temp_seen = getelementptr inbounds i8, ptr %this, i64 376 @@ -10643,7 +10635,7 @@ for.inc.i: ; preds = %if.else.i90, %if.th %overhead.1.i = phi i32 [ %inc.i, %if.else.i90 ], [ %overhead.07.i, %if.then5.i ] %incdec.ptr.i = getelementptr inbounds i8, ptr %curr.06.i, i64 8 %cmp4.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr.i - br i1 %cmp4.not.i, label %for.end.i, label %for.body.i, !llvm.loop !79 + br i1 %cmp4.not.i, label %for.end.i, label %for.body.i, !llvm.loop !80 for.end.i: ; preds = %for.inc.i %.pre.i89 = load i32, ptr %m_capacity.i, align 8 @@ -10768,7 +10760,7 @@ if.then22.i.i.i117: ; preds = %for.body20.i.i.i111 for.inc36.i.i.i113: ; preds = %if.then22.i.i.i117, %for.body20.i.i.i111 %incdec.ptr37.i.i.i114 = getelementptr inbounds i8, ptr %curr.133.i.i.i112, i64 16 %cmp19.not.i.i.i115 = icmp eq ptr %incdec.ptr37.i.i.i114, %add.ptr.i.i.i100 - br i1 %cmp19.not.i.i.i115, label %if.then60, label %for.body20.i.i.i111, !llvm.loop !77 + br i1 %cmp19.not.i.i.i115, label %if.then60, label %for.body20.i.i.i111, !llvm.loop !78 if.then60: ; preds = %for.body.i.i.i104, %for.inc36.i.i.i113, %for.body20.i.i.i111, %for.cond18.preheader.i.i.i109 call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %ref.tmp.i) @@ -10793,7 +10785,7 @@ if.end63: ; preds = %if.then.i.i.i122, % for.inc66: ; preds = %if.end63 %indvars.iv.next190 = add nuw nsw i64 %indvars.iv189, 1 %exitcond193.not = icmp eq i64 %indvars.iv.next190, %retval.0.i200207213 - br i1 %exitcond193.not, label %for.end68, label %for.body55, !llvm.loop !80 + br i1 %exitcond193.not, label %for.end68, label %for.body55, !llvm.loop !81 for.end68: ; preds = %for.inc66, %_ZN14core_hashtableI14obj_hash_entryI4exprE12obj_ptr_hashIS1_E6ptr_eqIS1_EE5resetEv.exit %m_ucb_init = getelementptr inbounds i8, ptr %this, i64 256 @@ -10981,7 +10973,7 @@ _ZN14core_hashtableIN7obj_mapI9func_declP4exprE13obj_map_entryE8obj_hashINS4_8ke %idx.ext.i.i2 = zext i32 %15 to i64 %add.ptr.i.i3 = getelementptr inbounds %"class.obj_map::obj_map_entry", ptr %14, i64 %idx.ext.i.i2 %cmp.i.not = icmp eq ptr %it.sroa.0.2, %add.ptr.i.i3 - br i1 %cmp.i.not, label %for.end, label %for.body, !llvm.loop !81 + br i1 %cmp.i.not, label %for.end, label %for.body, !llvm.loop !82 for.end: ; preds = %while.body.i.i.i.i, %_ZN14core_hashtableIN7obj_mapI9func_declP4exprE13obj_map_entryE8obj_hashINS4_8key_dataEE10default_eqIS7_EE8iteratorppEi.exit, %_ZNK7obj_mapI9func_declP4exprE5beginEv.exit ret void @@ -11135,7 +11127,7 @@ _ZN14core_hashtableIN7obj_mapI9func_declP4exprE13obj_map_entryE8obj_hashINS4_8ke %idx.ext.i.i2 = zext i32 %18 to i64 %add.ptr.i.i3 = getelementptr inbounds %"class.obj_map::obj_map_entry", ptr %17, i64 %idx.ext.i.i2 %cmp.i.not = icmp eq ptr %it.sroa.0.2, %add.ptr.i.i3 - br i1 %cmp.i.not, label %for.end, label %for.body, !llvm.loop !82 + br i1 %cmp.i.not, label %for.end, label %for.body, !llvm.loop !83 for.end: ; preds = %while.body.i.i.i.i, %_ZN14core_hashtableIN7obj_mapI9func_declP4exprE13obj_map_entryE8obj_hashINS4_8key_dataEE10default_eqIS7_EE8iteratorppEi.exit, %_ZNK7obj_mapI9func_declP4exprE5beginEv.exit ret void @@ -11741,7 +11733,7 @@ if.then.i.i.i: ; preds = %for.body.i.i.i for.inc.i.i.i: ; preds = %if.then.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i, i64 8 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr5.i.i.i - br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !73 + br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !74 for.body20.i.i.i: ; preds = %for.cond18.preheader.i.i.i, %for.inc36.i.i.i %curr.133.i.i.i = phi ptr [ %incdec.ptr37.i.i.i, %for.inc36.i.i.i ], [ %23, %for.cond18.preheader.i.i.i ] @@ -11763,7 +11755,7 @@ if.then22.i.i.i: ; preds = %for.body20.i.i.i for.inc36.i.i.i: ; preds = %if.then22.i.i.i, %for.body20.i.i.i %incdec.ptr37.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i, i64 8 %cmp19.not.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i, %add.ptr.i.i.i - br i1 %cmp19.not.i.i.i, label %if.end29, label %for.body20.i.i.i, !llvm.loop !74 + br i1 %cmp19.not.i.i.i, label %if.end29, label %for.body20.i.i.i, !llvm.loop !75 if.then: ; preds = %if.then.i.i.i, %if.then22.i.i.i %m_scores.i33 = getelementptr inbounds i8, ptr %20, i64 120 @@ -11988,7 +11980,7 @@ if.then22.i.i.i.i135: ; preds = %for.body20.i.i.i.i1 for.inc36.i.i.i.i132: ; preds = %if.then22.i.i.i.i135, %for.body20.i.i.i.i130 %incdec.ptr37.i.i.i.i133 = getelementptr inbounds i8, ptr %curr.133.i.i.i.i131, i64 16 %cmp19.not.i.i.i.i134 = icmp eq ptr %incdec.ptr37.i.i.i.i133, %add.ptr.i.i.i.i119 - br i1 %cmp19.not.i.i.i.i134, label %if.end29, label %for.body20.i.i.i.i130, !llvm.loop !77 + br i1 %cmp19.not.i.i.i.i134, label %if.end29, label %for.body20.i.i.i.i130, !llvm.loop !78 if.then2.i: ; preds = %if.then.i.i.i.i146, %if.then22.i.i.i.i135 br i1 %cmp.not30.i.i.i.i122, label %for.cond18.preheader.i.i.i25.i, label %for.body.i.i.i15.i @@ -12255,7 +12247,7 @@ if.then22.i.i.i.i186: ; preds = %for.body20.i.i.i.i1 for.inc36.i.i.i.i178: ; preds = %if.then22.i.i.i.i186, %for.body20.i.i.i.i175 %incdec.ptr37.i.i.i.i179 = getelementptr inbounds i8, ptr %curr.133.i.i.i.i176, i64 16 %cmp19.not.i.i.i.i180 = icmp eq ptr %incdec.ptr37.i.i.i.i179, %add.ptr.i.i.i.i163 - br i1 %cmp19.not.i.i.i.i180, label %if.then2.i181, label %for.body20.i.i.i.i175, !llvm.loop !77 + br i1 %cmp19.not.i.i.i.i180, label %if.then2.i181, label %for.body20.i.i.i.i175, !llvm.loop !78 if.then2.i181: ; preds = %for.body.i.i.i.i167, %for.inc36.i.i.i.i178, %for.body20.i.i.i.i175, %for.cond18.preheader.i.i.i.i173 %m_size.i.i.i182 = getelementptr inbounds i8, ptr %77, i64 316 @@ -12349,7 +12341,7 @@ for.inc.i: ; preds = %if.then9.i, %for.bo %del_entry.1.i = phi ptr [ %del_entry.053.i, %if.then9.i ], [ %curr.052.i, %for.body.i ] %incdec.ptr.i = getelementptr inbounds i8, ptr %curr.052.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr6.i - br i1 %cmp7.not.i, label %for.cond27.preheader.i, label %for.body.i, !llvm.loop !83 + br i1 %cmp7.not.i, label %for.cond27.preheader.i, label %for.body.i, !llvm.loop !84 for.body29.i: ; preds = %for.cond27.preheader.i, %for.inc54.i %del_entry.256.i = phi ptr [ %del_entry.3.i, %for.inc54.i ], [ %del_entry.0.lcssa.i, %for.cond27.preheader.i ] @@ -12399,7 +12391,7 @@ for.inc54.i: ; preds = %if.then31.i, %for.b %del_entry.3.i = phi ptr [ %del_entry.256.i, %if.then31.i ], [ %curr.155.i, %for.body29.i ] %incdec.ptr55.i = getelementptr inbounds i8, ptr %curr.155.i, i64 16 %cmp28.not.i = icmp eq ptr %incdec.ptr55.i, %add.ptr.i437 - br i1 %cmp28.not.i, label %for.end56.i, label %for.body29.i, !llvm.loop !84 + br i1 %cmp28.not.i, label %for.end56.i, label %for.body29.i, !llvm.loop !85 for.end56.i: ; preds = %for.cond27.preheader.i, %for.inc54.i invoke void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 404, ptr noundef nonnull @.str.48) @@ -12575,7 +12567,7 @@ if.then.i.i.i.i300: ; preds = %for.body.i.i.i.i280 for.inc.i.i.i.i283: ; preds = %if.then.i.i.i.i300, %for.body.i.i.i.i280 %incdec.ptr.i.i.i.i284 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i281, i64 16 %cmp.not.i.i.i.i285 = icmp eq ptr %incdec.ptr.i.i.i.i284, %add.ptr5.i.i.i.i278 - br i1 %cmp.not.i.i.i.i285, label %for.cond18.preheader.i.i.i.i286, label %for.body.i.i.i.i280, !llvm.loop !85 + br i1 %cmp.not.i.i.i.i285, label %for.cond18.preheader.i.i.i.i286, label %for.body.i.i.i.i280, !llvm.loop !86 for.body20.i.i.i.i288: ; preds = %for.cond18.preheader.i.i.i.i286, %for.inc36.i.i.i.i291 %curr.133.i.i.i.i289 = phi ptr [ %incdec.ptr37.i.i.i.i292, %for.inc36.i.i.i.i291 ], [ %121, %for.cond18.preheader.i.i.i.i286 ] @@ -12597,7 +12589,7 @@ if.then22.i.i.i.i295: ; preds = %for.body20.i.i.i.i2 for.inc36.i.i.i.i291: ; preds = %if.then22.i.i.i.i295, %for.body20.i.i.i.i288 %incdec.ptr37.i.i.i.i292 = getelementptr inbounds i8, ptr %curr.133.i.i.i.i289, i64 16 %cmp19.not.i.i.i.i293 = icmp eq ptr %incdec.ptr37.i.i.i.i292, %add.ptr.i.i.i.i276 - br i1 %cmp19.not.i.i.i.i293, label %for.inc61, label %for.body20.i.i.i.i288, !llvm.loop !86 + br i1 %cmp19.not.i.i.i.i293, label %for.inc61, label %for.body20.i.i.i.i288, !llvm.loop !87 if.then37: ; preds = %if.then.i.i.i.i300, %if.then22.i.i.i.i295 br i1 %cmp.not30.i.i.i.i279, label %for.cond18.preheader.i.i.i.i326, label %for.body.i.i.i.i315 @@ -12623,7 +12615,7 @@ if.then.i.i.i.i318: ; preds = %for.body.i.i.i.i315 for.inc.i.i.i.i323: ; preds = %if.then.i.i.i.i318, %for.body.i.i.i.i315 %incdec.ptr.i.i.i.i324 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i316, i64 16 %cmp.not.i.i.i.i325 = icmp eq ptr %incdec.ptr.i.i.i.i324, %add.ptr5.i.i.i.i278 - br i1 %cmp.not.i.i.i.i325, label %for.cond18.preheader.i.i.i.i326, label %for.body.i.i.i.i315, !llvm.loop !85 + br i1 %cmp.not.i.i.i.i325, label %for.cond18.preheader.i.i.i.i326, label %for.body.i.i.i.i315, !llvm.loop !86 for.body20.i.i.i.i328: ; preds = %for.inc36.i.i.i.i337, %for.cond18.preheader.i.i.i.i326 %cmp19.not.i.i.sink.i.i329 = phi i1 [ %cmp19.not.i.i.i.i339, %for.inc36.i.i.i.i337 ], [ %cmp19.not32.i.i.i.i327, %for.cond18.preheader.i.i.i.i326 ] @@ -12893,7 +12885,7 @@ for.body.i.i.i401: ; preds = %for.body.i.i.i401, store ptr %159, ptr %arrayidx.i.i.i, align 8 %indvars.iv.next.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i, 1 %exitcond.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i, %wide.trip.count.i.i.i - br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i401, !llvm.loop !87 + br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i401, !llvm.loop !88 for.end.i.i.i: ; preds = %for.body.i.i.i401, %call.i.i.i.noexc %cmp.not.i.i.i.i402 = icmp eq ptr %.pre.i.i.i, %m_initial_buffer.i.i.i @@ -12928,13 +12920,13 @@ _ZN6bufferIP3astLb0ELj16EE9push_backERKS1_.exit.i: ; preds = %_ZN6bufferIP3astLb for.inc: ; preds = %_ZN6bufferIP3astLb0ELj16EE9push_backERKS1_.exit.i, %invoke.cont56, %invoke.cont51 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br label %for.cond41, !llvm.loop !88 + br label %for.cond41, !llvm.loop !89 for.inc61: ; preds = %for.body.i.i.i.i280, %for.inc36.i.i.i.i291, %for.body20.i.i.i.i288, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit346, %for.cond18.preheader.i.i.i.i286 %indvars.iv.next569 = add nuw nsw i64 %indvars.iv568, 1 %163 = load ptr, ptr %arrayidx.i, align 8 %cmp.i = icmp eq ptr %163, null - br i1 %cmp.i, label %_ZN6vectorIP4exprLb0EjE5resetEv.exit, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread, !llvm.loop !89 + br i1 %cmp.i, label %_ZN6vectorIP4exprLb0EjE5resetEv.exit, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread, !llvm.loop !90 if.then.i408: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread %arrayidx.i23.le = getelementptr inbounds i8, ptr %3, i64 -4 @@ -12944,7 +12936,7 @@ if.then.i408: ; preds = %_ZNK6vectorIP4exprL _ZN6vectorIP4exprLb0EjE5resetEv.exit: ; preds = %for.inc61, %while.body, %if.then.i408 %indvars.iv.next572 = add nsw i64 %indvars.iv571, -1 %cmp.not = icmp eq i64 %indvars.iv571, 0 - br i1 %cmp.not, label %while.end, label %while.body, !llvm.loop !90 + br i1 %cmp.not, label %while.end, label %while.body, !llvm.loop !91 while.end: ; preds = %_ZN6vectorIP4exprLb0EjE5resetEv.exit, %entry %m_mpz_manager65 = getelementptr inbounds i8, ptr %this, i64 32 @@ -13093,7 +13085,7 @@ for.body.i.i.i.i.i.i: ; preds = %_ZNK6vectorI10ptr_v %incdec.ptr.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__first.sroa.0.08.i.i.i.i.i.i, i64 8 %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__cur.09.i.i.i.i.i.i, i64 8 %cmp.i.i.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i.i, %add.ptr.i.i.i.i - br i1 %cmp.i.i.not.i.i.i.i.i.i, label %_ZSt20uninitialized_move_nIP10ptr_vectorI4exprEjS3_ESt4pairIT_T1_ES5_T0_S6_.exit, label %for.body.i.i.i.i.i.i, !llvm.loop !91 + br i1 %cmp.i.i.not.i.i.i.i.i.i, label %_ZSt20uninitialized_move_nIP10ptr_vectorI4exprEjS3_ESt4pairIT_T1_ES5_T0_S6_.exit, label %for.body.i.i.i.i.i.i, !llvm.loop !92 _ZSt20uninitialized_move_nIP10ptr_vectorI4exprEjS3_ESt4pairIT_T1_ES5_T0_S6_.exit: ; preds = %for.body.i.i.i.i.i.i %.pre = load ptr, ptr %this, align 8 @@ -13640,7 +13632,7 @@ _ZN11mpz_managerILb0EE3setER3mpzRKS1_.exit293: ; preds = %if.then.i289, %if.e for.cond: ; preds = %if.then.i.i, %_ZN11mpz_managerILb0EE3neqERK3mpzS3_.exit %indvars.iv.next2759 = add nuw nsw i64 %indvars.iv2758, 1 %exitcond2763.not = icmp eq i64 %indvars.iv.next2759, %wide.trip.count2762 - br i1 %exitcond2763.not, label %if.end798, label %for.body, !llvm.loop !92 + br i1 %exitcond2763.not, label %if.end798, label %for.body, !llvm.loop !93 for.body: ; preds = %_ZN11mpz_managerILb0EE3setER3mpzRKS1_.exit293, %for.cond %indvars.iv2758 = phi i64 [ 0, %_ZN11mpz_managerILb0EE3setER3mpzRKS1_.exit293 ], [ %indvars.iv.next2759, %for.cond ] @@ -13755,7 +13747,7 @@ if.else.i338: ; preds = %if.then16 for.cond22: ; preds = %if.then.i.i396, %_ZN11mpz_managerILb0EE3neqERK3mpzS3_.exit398 %indvars.iv.next2753 = add nuw nsw i64 %indvars.iv2752, 1 %exitcond2757.not = icmp eq i64 %indvars.iv.next2753, %wide.trip.count2756 - br i1 %exitcond2757.not, label %if.end798, label %for.body24, !llvm.loop !93 + br i1 %exitcond2757.not, label %if.end798, label %for.body24, !llvm.loop !94 for.body24: ; preds = %for.cond22.preheader, %for.cond22 %indvars.iv2752 = phi i64 [ 0, %for.cond22.preheader ], [ %indvars.iv.next2753, %for.cond22 ] @@ -14059,7 +14051,7 @@ for.body56.lr.ph: ; preds = %_ZN11sls_tracker9ge for.cond54: ; preds = %if.then.i.i557, %_ZN11mpz_managerILb0EE3neqERK3mpzS3_.exit559 %indvars.iv.next2747 = add nuw nsw i64 %indvars.iv2746, 1 %exitcond2751.not = icmp eq i64 %indvars.iv.next2747, %wide.trip.count2750 - br i1 %exitcond2751.not, label %if.end798, label %for.body56, !llvm.loop !94 + br i1 %exitcond2751.not, label %if.end798, label %for.body56, !llvm.loop !95 for.body56: ; preds = %for.body56.lr.ph, %for.cond54 %indvars.iv2746 = phi i64 [ 1, %for.body56.lr.ph ], [ %indvars.iv.next2747, %for.cond54 ] @@ -14401,12 +14393,12 @@ for.inc100: ; preds = %if.else.i677, %if.t %indvars.iv.next2737 = add nuw nsw i64 %indvars.iv2736, 1 %lftr.wideiv = trunc i64 %indvars.iv.next2737 to i32 %exitcond2739.not = icmp eq i32 %3, %lftr.wideiv - br i1 %exitcond2739.not, label %for.inc103, label %land.rhs81, !llvm.loop !95 + br i1 %exitcond2739.not, label %for.inc103, label %land.rhs81, !llvm.loop !96 for.inc103: ; preds = %for.inc100, %land.rhs81, %for.body78 %indvars.iv.next2735 = add nuw nsw i64 %indvars.iv2734, 1 %exitcond2745.not = icmp eq i64 %indvars.iv.next2741, %wide.trip.count2744 - br i1 %exitcond2745.not, label %if.end798, label %land.rhs, !llvm.loop !96 + br i1 %exitcond2745.not, label %if.end798, label %land.rhs, !llvm.loop !97 sw.bb106: ; preds = %_ZNK3app13get_decl_kindEv.exit %m_tracker108 = getelementptr inbounds i8, ptr %this, i64 24 @@ -14815,7 +14807,7 @@ _ZN11sls_tracker9get_valueEP4expr.exit861: ; preds = %if.then.i.i.i.i837, tail call void @_ZN11mpz_managerILb0EE3addERK3mpzS3_RS1_(ptr noundef nonnull align 8 dereferenceable(600) %150, ptr noundef nonnull align 8 dereferenceable(16) %result, ptr noundef nonnull align 8 dereferenceable(16) %value.i860, ptr noundef nonnull align 8 dereferenceable(16) %result) %indvars.iv.next2729 = add nuw nsw i64 %indvars.iv2728, 1 %exitcond2733.not = icmp eq i64 %indvars.iv.next2729, %wide.trip.count2732 - br i1 %exitcond2733.not, label %if.end798, label %for.body130, !llvm.loop !97 + br i1 %exitcond2733.not, label %if.end798, label %for.body130, !llvm.loop !98 sw.bb147: ; preds = %_ZNK4decl13get_decl_kindEv.exit %m_tracker149 = getelementptr inbounds i8, ptr %this, i64 24 @@ -14908,7 +14900,7 @@ _ZN11sls_tracker9get_valueEP4expr.exit899: ; preds = %if.then.i.i.i.i875, tail call void @_ZN11mpz_managerILb0EE3addERK3mpzS3_RS1_(ptr noundef nonnull align 8 dereferenceable(600) %176, ptr noundef nonnull align 8 dereferenceable(16) %result, ptr noundef nonnull align 8 dereferenceable(16) %value.i898, ptr noundef nonnull align 8 dereferenceable(16) %result) %indvars.iv.next2723 = add nuw nsw i64 %indvars.iv2722, 1 %exitcond2727.not = icmp eq i64 %indvars.iv.next2723, %wide.trip.count2726 - br i1 %exitcond2727.not, label %for.end173, label %for.body165, !llvm.loop !98 + br i1 %exitcond2727.not, label %for.end173, label %for.body165, !llvm.loop !99 for.end173: ; preds = %_ZN11sls_tracker9get_valueEP4expr.exit899 %m_powers175 = getelementptr inbounds i8, ptr %this, i64 88 @@ -15034,7 +15026,7 @@ _ZN11sls_tracker9get_valueEP4expr.exit939: ; preds = %if.then.i.i.i.i915, tail call void @_ZN11mpz_managerILb0EE3mulERK3mpzS3_RS1_(ptr noundef nonnull align 8 dereferenceable(600) %201, ptr noundef nonnull align 8 dereferenceable(16) %result, ptr noundef nonnull align 8 dereferenceable(16) %value.i938, ptr noundef nonnull align 8 dereferenceable(16) %result) %indvars.iv.next2717 = add nuw nsw i64 %indvars.iv2716, 1 %exitcond2721.not = icmp eq i64 %indvars.iv.next2717, %wide.trip.count2720 - br i1 %exitcond2721.not, label %for.end212, label %for.body203, !llvm.loop !99 + br i1 %exitcond2721.not, label %for.end212, label %for.body203, !llvm.loop !100 for.end212: ; preds = %_ZN11sls_tracker9get_valueEP4expr.exit939, %sw.bb195 %m_powers214 = getelementptr inbounds i8, ptr %this, i64 88 @@ -17437,7 +17429,7 @@ _ZN11sls_tracker9get_valueEP4expr.exit1978: ; preds = %if.then.i.i.i.i1954 tail call void @_ZN11mpz_managerILb0EE11bitwise_andERK3mpzS3_RS1_(ptr noundef nonnull align 8 dereferenceable(600) %501, ptr noundef nonnull align 8 dereferenceable(16) %result, ptr noundef nonnull align 8 dereferenceable(16) %value.i1977, ptr noundef nonnull align 8 dereferenceable(16) %result) %indvars.iv.next2711 = add nuw nsw i64 %indvars.iv2710, 1 %exitcond2715.not = icmp eq i64 %indvars.iv.next2711, %wide.trip.count2714 - br i1 %exitcond2715.not, label %if.end798, label %for.body510, !llvm.loop !100 + br i1 %exitcond2715.not, label %if.end798, label %for.body510, !llvm.loop !101 sw.bb519: ; preds = %_ZNK4decl13get_decl_kindEv.exit %511 = load ptr, ptr %m_mpz_manager6, align 8 @@ -17524,7 +17516,7 @@ _ZN11sls_tracker9get_valueEP4expr.exit2016: ; preds = %if.then.i.i.i.i1992 tail call void @_ZN11mpz_managerILb0EE10bitwise_orERK3mpzS3_RS1_(ptr noundef nonnull align 8 dereferenceable(600) %514, ptr noundef nonnull align 8 dereferenceable(16) %result, ptr noundef nonnull align 8 dereferenceable(16) %value.i2015, ptr noundef nonnull align 8 dereferenceable(16) %result) %indvars.iv.next2705 = add nuw nsw i64 %indvars.iv2704, 1 %exitcond2709.not = icmp eq i64 %indvars.iv.next2705, %wide.trip.count2708 - br i1 %exitcond2709.not, label %if.end798, label %for.body527, !llvm.loop !101 + br i1 %exitcond2709.not, label %if.end798, label %for.body527, !llvm.loop !102 sw.bb536: ; preds = %_ZNK4decl13get_decl_kindEv.exit %524 = load ptr, ptr %m_mpz_manager6, align 8 @@ -17611,7 +17603,7 @@ _ZN11sls_tracker9get_valueEP4expr.exit2054: ; preds = %if.then.i.i.i.i2030 tail call void @_ZN11mpz_managerILb0EE11bitwise_xorERK3mpzS3_RS1_(ptr noundef nonnull align 8 dereferenceable(600) %527, ptr noundef nonnull align 8 dereferenceable(16) %result, ptr noundef nonnull align 8 dereferenceable(16) %value.i2053, ptr noundef nonnull align 8 dereferenceable(16) %result) %indvars.iv.next2699 = add nuw nsw i64 %indvars.iv2698, 1 %exitcond2703.not = icmp eq i64 %indvars.iv.next2699, %wide.trip.count2702 - br i1 %exitcond2703.not, label %if.end798, label %for.body544, !llvm.loop !102 + br i1 %exitcond2703.not, label %if.end798, label %for.body544, !llvm.loop !103 sw.bb553: ; preds = %_ZNK4decl13get_decl_kindEv.exit store i32 0, ptr %temp554, align 8 @@ -17708,7 +17700,7 @@ _ZN11sls_tracker9get_valueEP4expr.exit2096: ; preds = %if.then.i.i.i.i2072 call void @_ZN11mpz_managerILb0EE11bitwise_notEjRK3mpzRS1_(ptr noundef nonnull align 8 dereferenceable(600) %551, i32 noundef %call557, ptr noundef nonnull align 8 dereferenceable(16) %temp554, ptr noundef nonnull align 8 dereferenceable(16) %result) %indvars.iv.next2693 = add nuw nsw i64 %indvars.iv2692, 1 %exitcond2697.not = icmp eq i64 %indvars.iv.next2693, %wide.trip.count2696 - br i1 %exitcond2697.not, label %for.end574, label %for.body565, !llvm.loop !103 + br i1 %exitcond2697.not, label %for.end574, label %for.body565, !llvm.loop !104 for.end574: ; preds = %_ZN11sls_tracker9get_valueEP4expr.exit2096, %sw.bb553 %552 = load ptr, ptr %m_mpz_manager6, align 8 @@ -17810,7 +17802,7 @@ _ZN11sls_tracker9get_valueEP4expr.exit2138: ; preds = %if.then.i.i.i.i2114 call void @_ZN11mpz_managerILb0EE11bitwise_notEjRK3mpzRS1_(ptr noundef nonnull align 8 dereferenceable(600) %567, i32 noundef %call580, ptr noundef nonnull align 8 dereferenceable(16) %temp577, ptr noundef nonnull align 8 dereferenceable(16) %result) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end597, label %for.body588, !llvm.loop !104 + br i1 %exitcond.not, label %for.end597, label %for.body588, !llvm.loop !105 for.end597: ; preds = %_ZN11sls_tracker9get_valueEP4expr.exit2138, %sw.bb576 %568 = load ptr, ptr %m_mpz_manager6, align 8 @@ -18649,7 +18641,7 @@ while.body: ; preds = %while.body.lr.ph, % call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp.i2499) %683 = load i32, ptr %shift, align 8 %cmp.i2498 = icmp eq i32 %683, 0 - br i1 %cmp.i2498, label %while.end, label %while.body, !llvm.loop !105 + br i1 %cmp.i2498, label %while.end, label %while.body, !llvm.loop !106 while.end: ; preds = %while.body, %sw.bb716 %684 = load ptr, ptr %m_mpz_manager6, align 8 @@ -18700,7 +18692,7 @@ while.body757: ; preds = %while.body757.lr.ph call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp.i2507) %696 = load i32, ptr %shift748, align 8 %cmp.i2506 = icmp eq i32 %696, 0 - br i1 %cmp.i2506, label %while.end761, label %while.body757, !llvm.loop !106 + br i1 %cmp.i2506, label %while.end761, label %while.body757, !llvm.loop !107 while.end761: ; preds = %while.body757, %sw.bb743 %697 = load ptr, ptr %m_mpz_manager6, align 8 @@ -18747,7 +18739,7 @@ while.body777: ; preds = %while.body777.lr.ph call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %ref.tmp.i2515) %707 = load i32, ptr %shift768, align 8 %cmp.i2514 = icmp eq i32 %707, 0 - br i1 %cmp.i2514, label %while.end781, label %while.body777, !llvm.loop !107 + br i1 %cmp.i2514, label %while.end781, label %while.body777, !llvm.loop !108 while.end781: ; preds = %while.body777, %sw.bb763 %m_powers783 = getelementptr inbounds i8, ptr %this, i64 88 @@ -19494,7 +19486,7 @@ _ZN11sls_tracker9get_scoreEP4expr.exit: ; preds = %if.then.i.i.i.i127, %min.1 = select i1 %cmp15, double %28, double %min.0745 %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 %if.end390, label %for.body, !llvm.loop !108 + br i1 %exitcond.not, label %if.end390, label %for.body, !llvm.loop !109 _ZNK11ast_manager5is_orEPK4expr.exit: ; preds = %_ZNK11ast_manager6is_andEPK4expr.exit %29 = load i32, ptr %2, align 8 @@ -19591,7 +19583,7 @@ _ZN11sls_tracker9get_scoreEP4expr.exit201: ; preds = %if.then.i.i.i.i177, %max.1 = select i1 %cmp35, double %43, double %max.0748 %indvars.iv.next792 = add nuw nsw i64 %indvars.iv791, 1 %exitcond795.not = icmp eq i64 %indvars.iv.next792, %wide.trip.count794 - br i1 %exitcond795.not, label %if.end390, label %for.body30, !llvm.loop !109 + br i1 %exitcond795.not, label %if.end390, label %for.body30, !llvm.loop !110 _ZNK11ast_manager6is_iteEPK4expr.exit: ; preds = %_ZNK11ast_manager5is_orEPK4expr.exit, %_ZNK11ast_manager5is_orEPK4expr.exit.thread %44 = load i32, ptr %2, align 8 @@ -20036,7 +20028,7 @@ while.body: ; preds = %while.body.lr.ph, % call void @_ZN11mpz_managerILb0EE11machine_divERK3mpzS3_RS1_(ptr noundef nonnull align 8 dereferenceable(600) %103, ptr noundef nonnull align 8 dereferenceable(16) %diff, ptr noundef nonnull align 8 dereferenceable(16) %m_two, ptr noundef nonnull align 8 dereferenceable(16) %diff) %104 = load i32, ptr %diff, align 8 %cmp.i442 = icmp eq i32 %104, 0 - br i1 %cmp.i442, label %while.end.loopexit, label %while.body, !llvm.loop !110 + br i1 %cmp.i442, label %while.end.loopexit, label %while.body, !llvm.loop !111 while.end.loopexit: ; preds = %while.body %105 = uitofp i32 %spec.select to double @@ -20605,7 +20597,7 @@ for.cond343.loopexit: ; preds = %_ZN8rationalD2Ev.ex %pairs.1.lcssa = phi i32 [ %pairs.0760, %for.body345 ], [ %189, %_ZN8rationalD2Ev.exit693 ] %distinct_pairs.1.lcssa = phi i32 [ %distinct_pairs.0761, %for.body345 ], [ %spec.select102, %_ZN8rationalD2Ev.exit693 ] %exitcond799.not = icmp eq i32 %add, %188 - br i1 %exitcond799.not, label %for.end373.loopexit, label %for.body345, !llvm.loop !111 + br i1 %exitcond799.not, label %for.end373.loopexit, label %for.body345, !llvm.loop !112 for.body345: ; preds = %for.body345.lr.ph, %for.cond343.loopexit %indvars.iv796.in = phi i32 [ %188, %for.body345.lr.ph ], [ %indvars.iv796, %for.cond343.loopexit ] @@ -20895,7 +20887,7 @@ _ZN8rationalD2Ev.exit693: ; preds = %.noexc.i691 %inc366 = zext i1 %lnot.i to i32 %spec.select102 = add i32 %distinct_pairs.1755, %inc366 %exitcond798.not = icmp eq i32 %inc355, %189 - br i1 %exitcond798.not, label %for.cond343.loopexit, label %for.body348, !llvm.loop !112 + br i1 %exitcond798.not, label %for.cond343.loopexit, label %for.body348, !llvm.loop !113 lpad358: ; preds = %_ZN11mpq_managerILb1EE3setER3mpqRK3mpz.exit.i, %if.else.i.i.i679 %220 = landingpad { ptr, i32 } @@ -21292,7 +21284,7 @@ if.then: ; preds = %for.body for.inc: ; preds = %for.body, %if.then %incdec.ptr = getelementptr inbounds i8, ptr %curr.039, i64 16 %cmp.not = icmp eq ptr %incdec.ptr, %add.ptr5 - br i1 %cmp.not, label %for.cond17.preheader, label %for.body, !llvm.loop !113 + br i1 %cmp.not, label %for.cond17.preheader, label %for.body, !llvm.loop !114 for.body19: ; preds = %for.cond17.preheader, %for.inc34 %curr.241 = phi ptr [ %incdec.ptr35, %for.inc34 ], [ %3, %for.cond17.preheader ] @@ -21314,7 +21306,7 @@ if.then21: ; preds = %for.body19 for.inc34: ; preds = %for.body19, %if.then21 %incdec.ptr35 = getelementptr inbounds i8, ptr %curr.241, i64 16 %cmp18.not = icmp eq ptr %incdec.ptr35, %add.ptr - br i1 %cmp18.not, label %if.end55, label %for.body19, !llvm.loop !114 + br i1 %cmp18.not, label %if.end55, label %for.body19, !llvm.loop !115 end_remove: ; preds = %if.then, %if.then21 %curr.1 = phi ptr [ %curr.241, %if.then21 ], [ %curr.039, %if.then ] @@ -21413,7 +21405,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !115 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !116 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -21424,7 +21416,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !116 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !117 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 212, ptr noundef nonnull @.str.48) @@ -21439,7 +21431,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !117 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !118 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -21550,7 +21542,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.053, %if.then9 ], [ %curr.052, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.052, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !83 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !84 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.256 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -21596,7 +21588,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.256, %if.then31 ], [ %curr.155, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.155, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !84 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !85 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 404, ptr noundef nonnull @.str.48) @@ -21661,7 +21653,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !115 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !116 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -21672,7 +21664,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !116 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !117 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 212, ptr noundef nonnull @.str.48) @@ -21687,7 +21679,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !117 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !118 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -22072,7 +22064,7 @@ if.then.i.i.i: ; preds = %for.body.i.i.i for.inc.i.i.i: ; preds = %if.then.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i, i64 8 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr5.i.i.i - br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !73 + br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !74 for.body20.i.i.i: ; preds = %for.cond18.preheader.i.i.i, %for.inc36.i.i.i %curr.133.i.i.i = phi ptr [ %incdec.ptr37.i.i.i, %for.inc36.i.i.i ], [ %23, %for.cond18.preheader.i.i.i ] @@ -22094,7 +22086,7 @@ if.then22.i.i.i: ; preds = %for.body20.i.i.i for.inc36.i.i.i: ; preds = %if.then22.i.i.i, %for.body20.i.i.i %incdec.ptr37.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i, i64 8 %cmp19.not.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i, %add.ptr.i.i.i - br i1 %cmp19.not.i.i.i, label %if.end, label %for.body20.i.i.i, !llvm.loop !74 + br i1 %cmp19.not.i.i.i, label %if.end, label %for.body20.i.i.i, !llvm.loop !75 if.then: ; preds = %if.then.i.i.i, %if.then22.i.i.i %m_scores.i29 = getelementptr inbounds i8, ptr %20, i64 120 @@ -22393,7 +22385,7 @@ if.then.i.i.i.i167: ; preds = %for.body.i.i.i.i149 for.inc.i.i.i.i151: ; preds = %if.then.i.i.i.i167, %for.body.i.i.i.i149 %incdec.ptr.i.i.i.i152 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i150, i64 16 %cmp.not.i.i.i.i153 = icmp eq ptr %incdec.ptr.i.i.i.i152, %add.ptr5.i.i.i.i147 - br i1 %cmp.not.i.i.i.i153, label %for.cond18.preheader.i.i.i.i154, label %for.body.i.i.i.i149, !llvm.loop !85 + br i1 %cmp.not.i.i.i.i153, label %for.cond18.preheader.i.i.i.i154, label %for.body.i.i.i.i149, !llvm.loop !86 for.body20.i.i.i.i156: ; preds = %for.cond18.preheader.i.i.i.i154, %for.inc36.i.i.i.i158 %curr.133.i.i.i.i157 = phi ptr [ %incdec.ptr37.i.i.i.i159, %for.inc36.i.i.i.i158 ], [ %61, %for.cond18.preheader.i.i.i.i154 ] @@ -22415,7 +22407,7 @@ if.then22.i.i.i.i162: ; preds = %for.body20.i.i.i.i1 for.inc36.i.i.i.i158: ; preds = %if.then22.i.i.i.i162, %for.body20.i.i.i.i156 %incdec.ptr37.i.i.i.i159 = getelementptr inbounds i8, ptr %curr.133.i.i.i.i157, i64 16 %cmp19.not.i.i.i.i160 = icmp eq ptr %incdec.ptr37.i.i.i.i159, %add.ptr.i.i.i.i145 - br i1 %cmp19.not.i.i.i.i160, label %for.inc50, label %for.body20.i.i.i.i156, !llvm.loop !86 + br i1 %cmp19.not.i.i.i.i160, label %for.inc50, label %for.body20.i.i.i.i156, !llvm.loop !87 if.then26: ; preds = %if.then.i.i.i.i167, %if.then22.i.i.i.i162 br i1 %cmp.not30.i.i.i.i148, label %for.cond18.preheader.i.i.i.i193, label %for.body.i.i.i.i182 @@ -22441,7 +22433,7 @@ if.then.i.i.i.i185: ; preds = %for.body.i.i.i.i182 for.inc.i.i.i.i190: ; preds = %if.then.i.i.i.i185, %for.body.i.i.i.i182 %incdec.ptr.i.i.i.i191 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i183, i64 16 %cmp.not.i.i.i.i192 = icmp eq ptr %incdec.ptr.i.i.i.i191, %add.ptr5.i.i.i.i147 - br i1 %cmp.not.i.i.i.i192, label %for.cond18.preheader.i.i.i.i193, label %for.body.i.i.i.i182, !llvm.loop !85 + br i1 %cmp.not.i.i.i.i192, label %for.cond18.preheader.i.i.i.i193, label %for.body.i.i.i.i182, !llvm.loop !86 for.body20.i.i.i.i195: ; preds = %for.inc36.i.i.i.i204, %for.cond18.preheader.i.i.i.i193 %cmp19.not.i.i.sink.i.i196 = phi i1 [ %cmp19.not.i.i.i.i206, %for.inc36.i.i.i.i204 ], [ %cmp19.not32.i.i.i.i194, %for.cond18.preheader.i.i.i.i193 ] @@ -22711,7 +22703,7 @@ for.body.i.i.i267: ; preds = %for.body.i.i.i267, store ptr %99, ptr %arrayidx.i.i.i, align 8 %indvars.iv.next.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i, 1 %exitcond.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i, %wide.trip.count.i.i.i - br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i267, !llvm.loop !87 + br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i267, !llvm.loop !88 for.end.i.i.i: ; preds = %for.body.i.i.i267, %call.i.i.i.noexc %cmp.not.i.i.i.i268 = icmp eq ptr %.pre.i.i.i, %m_initial_buffer.i.i.i @@ -22746,13 +22738,13 @@ _ZN6bufferIP3astLb0ELj16EE9push_backERKS1_.exit.i: ; preds = %_ZN6bufferIP3astLb for.inc: ; preds = %_ZN6bufferIP3astLb0ELj16EE9push_backERKS1_.exit.i, %invoke.cont45, %invoke.cont40 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br label %for.cond30, !llvm.loop !118 + br label %for.cond30, !llvm.loop !119 for.inc50: ; preds = %for.body.i.i.i.i149, %for.inc36.i.i.i.i158, %for.body20.i.i.i.i156, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit213, %for.cond18.preheader.i.i.i.i154 %indvars.iv.next369 = add nuw nsw i64 %indvars.iv368, 1 %103 = load ptr, ptr %arrayidx.i, align 8 %cmp.i = icmp eq ptr %103, null - br i1 %cmp.i, label %_ZN6vectorIP4exprLb0EjE5resetEv.exit, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread, !llvm.loop !119 + br i1 %cmp.i, label %_ZN6vectorIP4exprLb0EjE5resetEv.exit, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread, !llvm.loop !120 if.then.i273: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread %arrayidx.i19.le = getelementptr inbounds i8, ptr %3, i64 -4 @@ -22762,7 +22754,7 @@ if.then.i273: ; preds = %_ZNK6vectorIP4exprL _ZN6vectorIP4exprLb0EjE5resetEv.exit: ; preds = %for.inc50, %while.body, %if.then.i273 %indvars.iv.next372 = add nsw i64 %indvars.iv371, -1 %cmp.not = icmp eq i64 %indvars.iv371, 0 - br i1 %cmp.not, label %while.end, label %while.body, !llvm.loop !120 + br i1 %cmp.not, label %while.end, label %while.body, !llvm.loop !121 while.end: ; preds = %_ZN6vectorIP4exprLb0EjE5resetEv.exit, %entry %m_mpz_manager = getelementptr inbounds i8, ptr %this, i64 32 @@ -22993,7 +22985,7 @@ if.then.i.i.i.i44: ; preds = %for.body.i.i.i.i26 for.inc.i.i.i.i28: ; preds = %if.then.i.i.i.i44, %for.body.i.i.i.i26 %incdec.ptr.i.i.i.i29 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i27, i64 16 %cmp.not.i.i.i.i30 = icmp eq ptr %incdec.ptr.i.i.i.i29, %add.ptr5.i.i.i.i24 - br i1 %cmp.not.i.i.i.i30, label %for.cond18.preheader.i.i.i.i31, label %for.body.i.i.i.i26, !llvm.loop !85 + br i1 %cmp.not.i.i.i.i30, label %for.cond18.preheader.i.i.i.i31, label %for.body.i.i.i.i26, !llvm.loop !86 for.body20.i.i.i.i33: ; preds = %for.cond18.preheader.i.i.i.i31, %for.inc36.i.i.i.i35 %curr.133.i.i.i.i34 = phi ptr [ %incdec.ptr37.i.i.i.i36, %for.inc36.i.i.i.i35 ], [ %19, %for.cond18.preheader.i.i.i.i31 ] @@ -23015,7 +23007,7 @@ if.then22.i.i.i.i39: ; preds = %for.body20.i.i.i.i3 for.inc36.i.i.i.i35: ; preds = %if.then22.i.i.i.i39, %for.body20.i.i.i.i33 %incdec.ptr37.i.i.i.i36 = getelementptr inbounds i8, ptr %curr.133.i.i.i.i34, i64 16 %cmp19.not.i.i.i.i37 = icmp eq ptr %incdec.ptr37.i.i.i.i36, %add.ptr.i.i.i.i22 - br i1 %cmp19.not.i.i.i.i37, label %for.inc42, label %for.body20.i.i.i.i33, !llvm.loop !86 + br i1 %cmp19.not.i.i.i.i37, label %for.inc42, label %for.body20.i.i.i.i33, !llvm.loop !87 if.then: ; preds = %if.then.i.i.i.i44, %if.then22.i.i.i.i39 br i1 %cmp.not30.i.i.i.i25, label %for.cond18.preheader.i.i.i.i70, label %for.body.i.i.i.i59 @@ -23041,7 +23033,7 @@ if.then.i.i.i.i62: ; preds = %for.body.i.i.i.i59 for.inc.i.i.i.i67: ; preds = %if.then.i.i.i.i62, %for.body.i.i.i.i59 %incdec.ptr.i.i.i.i68 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i60, i64 16 %cmp.not.i.i.i.i69 = icmp eq ptr %incdec.ptr.i.i.i.i68, %add.ptr5.i.i.i.i24 - br i1 %cmp.not.i.i.i.i69, label %for.cond18.preheader.i.i.i.i70, label %for.body.i.i.i.i59, !llvm.loop !85 + br i1 %cmp.not.i.i.i.i69, label %for.cond18.preheader.i.i.i.i70, label %for.body.i.i.i.i59, !llvm.loop !86 for.body20.i.i.i.i72: ; preds = %for.inc36.i.i.i.i81, %for.cond18.preheader.i.i.i.i70 %cmp19.not.i.i.sink.i.i73 = phi i1 [ %cmp19.not.i.i.i.i83, %for.inc36.i.i.i.i81 ], [ %cmp19.not32.i.i.i.i71, %for.cond18.preheader.i.i.i.i70 ] @@ -23482,7 +23474,7 @@ for.body.i.i.i: ; preds = %for.body.i.i.i, %fo store ptr %69, ptr %arrayidx.i.i.i, align 8 %indvars.iv.next.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i, 1 %exitcond.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i, %wide.trip.count.i.i.i - br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i, !llvm.loop !87 + br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i, !llvm.loop !88 for.end.i.i.i: ; preds = %for.body.i.i.i, %call.i.i.i.noexc %cmp.not.i.i.i.i160 = icmp eq ptr %.pre.i.i.i, %m_initial_buffer.i.i.i @@ -23517,13 +23509,13 @@ _ZN6bufferIP3astLb0ELj16EE9push_backERKS1_.exit.i: ; preds = %_ZN6bufferIP3astLb for.inc: ; preds = %_ZN6bufferIP3astLb0ELj16EE9push_backERKS1_.exit.i, %if.end, %invoke.cont26 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br label %for.cond16, !llvm.loop !121 + br label %for.cond16, !llvm.loop !122 for.inc42: ; preds = %for.body.i.i.i.i26, %for.inc36.i.i.i.i35, %for.body20.i.i.i.i33, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit89, %for.cond18.preheader.i.i.i.i31 %indvars.iv.next280 = add nuw nsw i64 %indvars.iv279, 1 %73 = load ptr, ptr %arrayidx.i, align 8 %cmp.i = icmp eq ptr %73, null - br i1 %cmp.i, label %_ZN6vectorIP4exprLb0EjE5resetEv.exit, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread, !llvm.loop !122 + br i1 %cmp.i, label %_ZN6vectorIP4exprLb0EjE5resetEv.exit, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread, !llvm.loop !123 if.then.i164: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread %arrayidx.i14.le = getelementptr inbounds i8, ptr %2, i64 -4 @@ -23533,7 +23525,7 @@ if.then.i164: ; preds = %_ZNK6vectorIP4exprL _ZN6vectorIP4exprLb0EjE5resetEv.exit: ; preds = %for.inc42, %while.body, %if.then.i164 %indvars.iv.next283 = add nsw i64 %indvars.iv282, -1 %cmp.not = icmp eq i64 %indvars.iv282, 0 - br i1 %cmp.not, label %while.end, label %while.body, !llvm.loop !123 + br i1 %cmp.not, label %while.end, label %while.body, !llvm.loop !124 while.end: ; preds = %_ZN6vectorIP4exprLb0EjE5resetEv.exit, %entry %m_mpz_manager = getelementptr inbounds i8, ptr %this, i64 32 @@ -23701,7 +23693,7 @@ if.then.i.i.i: ; preds = %for.body.i.i.i for.inc.i.i.i: ; preds = %if.then.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i, i64 8 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr5.i.i.i - br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !73 + br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !74 for.body20.i.i.i: ; preds = %for.cond18.preheader.i.i.i, %for.inc36.i.i.i %curr.133.i.i.i = phi ptr [ %incdec.ptr37.i.i.i, %for.inc36.i.i.i ], [ %12, %for.cond18.preheader.i.i.i ] @@ -23723,7 +23715,7 @@ if.then22.i.i.i: ; preds = %for.body20.i.i.i for.inc36.i.i.i: ; preds = %if.then22.i.i.i, %for.body20.i.i.i %incdec.ptr37.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i, i64 8 %cmp19.not.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i, %add.ptr.i.i.i - br i1 %cmp19.not.i.i.i, label %if.end, label %for.body20.i.i.i, !llvm.loop !74 + br i1 %cmp19.not.i.i.i, label %if.end, label %for.body20.i.i.i, !llvm.loop !75 if.then: ; preds = %if.then.i.i.i, %if.then22.i.i.i %m_scores.i = getelementptr inbounds i8, ptr %9, i64 120 @@ -24224,7 +24216,7 @@ if.then.i.i.i.i259: ; preds = %for.body.i.i.i.i241 for.inc.i.i.i.i243: ; preds = %if.then.i.i.i.i259, %for.body.i.i.i.i241 %incdec.ptr.i.i.i.i244 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i242, i64 16 %cmp.not.i.i.i.i245 = icmp eq ptr %incdec.ptr.i.i.i.i244, %add.ptr5.i.i.i.i239 - br i1 %cmp.not.i.i.i.i245, label %for.cond18.preheader.i.i.i.i246, label %for.body.i.i.i.i241, !llvm.loop !85 + br i1 %cmp.not.i.i.i.i245, label %for.cond18.preheader.i.i.i.i246, label %for.body.i.i.i.i241, !llvm.loop !86 for.body20.i.i.i.i248: ; preds = %for.cond18.preheader.i.i.i.i246, %for.inc36.i.i.i.i250 %curr.133.i.i.i.i249 = phi ptr [ %incdec.ptr37.i.i.i.i251, %for.inc36.i.i.i.i250 ], [ %67, %for.cond18.preheader.i.i.i.i246 ] @@ -24246,7 +24238,7 @@ if.then22.i.i.i.i254: ; preds = %for.body20.i.i.i.i2 for.inc36.i.i.i.i250: ; preds = %if.then22.i.i.i.i254, %for.body20.i.i.i.i248 %incdec.ptr37.i.i.i.i251 = getelementptr inbounds i8, ptr %curr.133.i.i.i.i249, i64 16 %cmp19.not.i.i.i.i252 = icmp eq ptr %incdec.ptr37.i.i.i.i251, %add.ptr.i.i.i.i237 - br i1 %cmp19.not.i.i.i.i252, label %for.inc61, label %for.body20.i.i.i.i248, !llvm.loop !86 + br i1 %cmp19.not.i.i.i.i252, label %for.inc61, label %for.body20.i.i.i.i248, !llvm.loop !87 if.then37: ; preds = %if.then.i.i.i.i259, %if.then22.i.i.i.i254 br i1 %cmp.not30.i.i.i.i240, label %for.cond18.preheader.i.i.i.i285, label %for.body.i.i.i.i274 @@ -24272,7 +24264,7 @@ if.then.i.i.i.i277: ; preds = %for.body.i.i.i.i274 for.inc.i.i.i.i282: ; preds = %if.then.i.i.i.i277, %for.body.i.i.i.i274 %incdec.ptr.i.i.i.i283 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i275, i64 16 %cmp.not.i.i.i.i284 = icmp eq ptr %incdec.ptr.i.i.i.i283, %add.ptr5.i.i.i.i239 - br i1 %cmp.not.i.i.i.i284, label %for.cond18.preheader.i.i.i.i285, label %for.body.i.i.i.i274, !llvm.loop !85 + br i1 %cmp.not.i.i.i.i284, label %for.cond18.preheader.i.i.i.i285, label %for.body.i.i.i.i274, !llvm.loop !86 for.body20.i.i.i.i287: ; preds = %for.inc36.i.i.i.i296, %for.cond18.preheader.i.i.i.i285 %cmp19.not.i.i.sink.i.i288 = phi i1 [ %cmp19.not.i.i.i.i298, %for.inc36.i.i.i.i296 ], [ %cmp19.not32.i.i.i.i286, %for.cond18.preheader.i.i.i.i285 ] @@ -24542,7 +24534,7 @@ for.body.i.i.i356: ; preds = %for.body.i.i.i356, store ptr %105, ptr %arrayidx.i.i.i, align 8 %indvars.iv.next.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i, 1 %exitcond.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i, %wide.trip.count.i.i.i - br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i356, !llvm.loop !87 + br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i356, !llvm.loop !88 for.end.i.i.i: ; preds = %for.body.i.i.i356, %call.i.i.i.noexc %cmp.not.i.i.i.i357 = icmp eq ptr %.pre.i.i.i, %m_initial_buffer.i.i.i @@ -24577,13 +24569,13 @@ _ZN6bufferIP3astLb0ELj16EE9push_backERKS1_.exit.i: ; preds = %_ZN6bufferIP3astLb for.inc: ; preds = %_ZN6bufferIP3astLb0ELj16EE9push_backERKS1_.exit.i, %invoke.cont56, %invoke.cont51 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br label %for.cond41, !llvm.loop !124 + br label %for.cond41, !llvm.loop !125 for.inc61: ; preds = %for.body.i.i.i.i241, %for.inc36.i.i.i.i250, %for.body20.i.i.i.i248, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit305, %for.cond18.preheader.i.i.i.i246 %indvars.iv.next923 = add nuw nsw i64 %indvars.iv922, 1 %109 = load ptr, ptr %arrayidx.i, align 8 %cmp.i = icmp eq ptr %109, null - br i1 %cmp.i, label %_ZN6vectorIP4exprLb0EjE5resetEv.exit, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread, !llvm.loop !125 + br i1 %cmp.i, label %_ZN6vectorIP4exprLb0EjE5resetEv.exit, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread, !llvm.loop !126 if.then.i362: ; preds = %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.thread %arrayidx.i42.le = getelementptr inbounds i8, ptr %2, i64 -4 @@ -24634,7 +24626,7 @@ if.then.i724.us: ; preds = %while.body.us _ZN6vectorIP4exprLb0EjE5resetEv.exit727.us: ; preds = %if.then.i724.us, %while.body.us %indvars.iv.next935 = add nsw i64 %indvars.iv934, -1 %cmp64.not.us = icmp eq i64 %indvars.iv934, 0 - br i1 %cmp64.not.us, label %while.end, label %while.body.us, !llvm.loop !126 + br i1 %cmp64.not.us, label %while.end, label %while.body.us, !llvm.loop !127 while.body: ; preds = %while.body.preheader, %_ZN6vectorIP4exprLb0EjE5resetEv.exit727 %indvars.iv931 = phi i64 [ %110, %while.body.preheader ], [ %indvars.iv.next932, %_ZN6vectorIP4exprLb0EjE5resetEv.exit727 ] @@ -24734,7 +24726,7 @@ if.then.i.i.i419: ; preds = %for.body.i.i.i399 for.inc.i.i.i402: ; preds = %if.then.i.i.i419, %for.body.i.i.i399 %incdec.ptr.i.i.i403 = getelementptr inbounds i8, ptr %curr.031.i.i.i400, i64 8 %cmp.not.i.i.i404 = icmp eq ptr %incdec.ptr.i.i.i403, %add.ptr5.i.i.i397 - br i1 %cmp.not.i.i.i404, label %for.cond18.preheader.i.i.i405, label %for.body.i.i.i399, !llvm.loop !73 + br i1 %cmp.not.i.i.i404, label %for.cond18.preheader.i.i.i405, label %for.body.i.i.i399, !llvm.loop !74 for.body20.i.i.i407: ; preds = %for.cond18.preheader.i.i.i405, %for.inc36.i.i.i410 %curr.133.i.i.i408 = phi ptr [ %incdec.ptr37.i.i.i411, %for.inc36.i.i.i410 ], [ %125, %for.cond18.preheader.i.i.i405 ] @@ -24756,7 +24748,7 @@ if.then22.i.i.i414: ; preds = %for.body20.i.i.i407 for.inc36.i.i.i410: ; preds = %if.then22.i.i.i414, %for.body20.i.i.i407 %incdec.ptr37.i.i.i411 = getelementptr inbounds i8, ptr %curr.133.i.i.i408, i64 8 %cmp19.not.i.i.i412 = icmp eq ptr %incdec.ptr37.i.i.i411, %add.ptr.i.i.i395 - br i1 %cmp19.not.i.i.i412, label %if.end91, label %for.body20.i.i.i407, !llvm.loop !74 + br i1 %cmp19.not.i.i.i412, label %if.end91, label %for.body20.i.i.i407, !llvm.loop !75 if.then85: ; preds = %if.then.i.i.i419, %if.then22.i.i.i414 %m_scores.i425 = getelementptr inbounds i8, ptr %122, i64 120 @@ -24994,7 +24986,7 @@ if.then.i.i.i.i572: ; preds = %for.body.i.i.i.i552 for.inc.i.i.i.i555: ; preds = %if.then.i.i.i.i572, %for.body.i.i.i.i552 %incdec.ptr.i.i.i.i556 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i553, i64 16 %cmp.not.i.i.i.i557 = icmp eq ptr %incdec.ptr.i.i.i.i556, %add.ptr5.i.i.i.i550 - br i1 %cmp.not.i.i.i.i557, label %for.cond18.preheader.i.i.i.i558, label %for.body.i.i.i.i552, !llvm.loop !85 + br i1 %cmp.not.i.i.i.i557, label %for.cond18.preheader.i.i.i.i558, label %for.body.i.i.i.i552, !llvm.loop !86 for.body20.i.i.i.i560: ; preds = %for.cond18.preheader.i.i.i.i558, %for.inc36.i.i.i.i563 %curr.133.i.i.i.i561 = phi ptr [ %incdec.ptr37.i.i.i.i564, %for.inc36.i.i.i.i563 ], [ %157, %for.cond18.preheader.i.i.i.i558 ] @@ -25016,7 +25008,7 @@ if.then22.i.i.i.i567: ; preds = %for.body20.i.i.i.i5 for.inc36.i.i.i.i563: ; preds = %if.then22.i.i.i.i567, %for.body20.i.i.i.i560 %incdec.ptr37.i.i.i.i564 = getelementptr inbounds i8, ptr %curr.133.i.i.i.i561, i64 16 %cmp19.not.i.i.i.i565 = icmp eq ptr %incdec.ptr37.i.i.i.i564, %add.ptr.i.i.i.i548 - br i1 %cmp19.not.i.i.i.i565, label %for.inc128, label %for.body20.i.i.i.i560, !llvm.loop !86 + br i1 %cmp19.not.i.i.i.i565, label %for.inc128, label %for.body20.i.i.i.i560, !llvm.loop !87 if.then97: ; preds = %if.then.i.i.i.i572, %if.then22.i.i.i.i567 br i1 %cmp.not30.i.i.i.i551, label %for.cond18.preheader.i.i.i.i599, label %for.body.i.i.i.i588 @@ -25042,7 +25034,7 @@ if.then.i.i.i.i591: ; preds = %for.body.i.i.i.i588 for.inc.i.i.i.i596: ; preds = %if.then.i.i.i.i591, %for.body.i.i.i.i588 %incdec.ptr.i.i.i.i597 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i589, i64 16 %cmp.not.i.i.i.i598 = icmp eq ptr %incdec.ptr.i.i.i.i597, %add.ptr5.i.i.i.i550 - br i1 %cmp.not.i.i.i.i598, label %for.cond18.preheader.i.i.i.i599, label %for.body.i.i.i.i588, !llvm.loop !85 + br i1 %cmp.not.i.i.i.i598, label %for.cond18.preheader.i.i.i.i599, label %for.body.i.i.i.i588, !llvm.loop !86 for.body20.i.i.i.i601: ; preds = %for.inc36.i.i.i.i610, %for.cond18.preheader.i.i.i.i599 %cmp19.not.i.i.sink.i.i602 = phi i1 [ %cmp19.not.i.i.i.i612, %for.inc36.i.i.i.i610 ], [ %cmp19.not32.i.i.i.i600, %for.cond18.preheader.i.i.i.i599 ] @@ -25312,7 +25304,7 @@ for.body.i.i.i698: ; preds = %for.body.i.i.i698, store ptr %195, ptr %arrayidx.i.i.i700, align 8 %indvars.iv.next.i.i.i702 = add nuw nsw i64 %indvars.iv.i.i.i699, 1 %exitcond.not.i.i.i703 = icmp eq i64 %indvars.iv.next.i.i.i702, %wide.trip.count.i.i.i697 - br i1 %exitcond.not.i.i.i703, label %for.end.i.i.i704, label %for.body.i.i.i698, !llvm.loop !87 + br i1 %exitcond.not.i.i.i703, label %for.end.i.i.i704, label %for.body.i.i.i698, !llvm.loop !88 for.end.i.i.i704: ; preds = %for.body.i.i.i698, %call.i.i.i.noexc719 %cmp.not.i.i.i.i706 = icmp eq ptr %.pre.i.i.i695, %m_initial_buffer.i.i.i @@ -25347,12 +25339,12 @@ _ZN6bufferIP3astLb0ELj16EE9push_backERKS1_.exit.i713: ; preds = %_ZN6bufferIP3as for.inc124: ; preds = %_ZN6bufferIP3astLb0ELj16EE9push_backERKS1_.exit.i713, %invoke.cont120, %invoke.cont115 %indvars.iv.next926 = add nuw nsw i64 %indvars.iv925, 1 - br label %for.cond103, !llvm.loop !127 + br label %for.cond103, !llvm.loop !128 for.inc128: ; preds = %for.body.i.i.i.i552, %for.inc36.i.i.i.i563, %for.body20.i.i.i.i560, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit620, %for.cond18.preheader.i.i.i.i558 %indvars.iv.next929 = add nuw nsw i64 %indvars.iv928, 1 %exitcond.not = icmp eq i64 %indvars.iv.next929, %wide.trip.count - br i1 %exitcond.not, label %if.end131.loopexit, label %for.body75, !llvm.loop !128 + br i1 %exitcond.not, label %if.end131.loopexit, label %for.body75, !llvm.loop !129 if.end131.loopexit: ; preds = %for.inc128 %.pre944 = load ptr, ptr %arrayidx.i366, align 8 @@ -25368,7 +25360,7 @@ if.then.i724: ; preds = %_ZNK6vectorIP4exprL _ZN6vectorIP4exprLb0EjE5resetEv.exit727: ; preds = %while.body, %if.end131.loopexit, %if.then.i724 %indvars.iv.next932 = add nsw i64 %indvars.iv931, -1 %cmp64.not = icmp eq i64 %indvars.iv931, 0 - br i1 %cmp64.not, label %while.end, label %while.body, !llvm.loop !126 + br i1 %cmp64.not, label %while.end, label %while.body, !llvm.loop !127 while.end: ; preds = %_ZN6vectorIP4exprLb0EjE5resetEv.exit727, %_ZN6vectorIP4exprLb0EjE5resetEv.exit727.us, %_ZN6vectorIP4exprLb0EjE5resetEv.exit.thread, %_ZN6vectorIP4exprLb0EjE5resetEv.exit %pot_benefits.0863948 = phi i32 [ 0, %_ZN6vectorIP4exprLb0EjE5resetEv.exit.thread ], [ %pot_benefits.0863, %_ZN6vectorIP4exprLb0EjE5resetEv.exit ], [ 0, %_ZN6vectorIP4exprLb0EjE5resetEv.exit727.us ], [ %pot_benefits.0863, %_ZN6vectorIP4exprLb0EjE5resetEv.exit727 ] @@ -26077,7 +26069,7 @@ for.inc: ; preds = %if.then.i.i79, %_ZN %pos.1 = phi i32 [ %46, %if.then22 ], [ %pos.0238, %_ZN11sls_tracker15get_random_uintEj.exit ], [ %pos.0238, %_ZN11mpz_managerILb0EE3neqERK3mpzS3_.exit81 ], [ %pos.0238, %if.then.i.i79 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !129 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !130 for.end: ; preds = %for.inc %cmp25 = icmp eq i32 %pos.1, -1 @@ -26320,7 +26312,7 @@ for.inc50: ; preds = %if.then.i.i179, %_Z %cnt_unsat.1 = phi i32 [ %cnt_unsat.0241, %_ZN11mpz_managerILb0EE3neqERK3mpzS3_.exit181 ], [ %inc46, %_ZN11sls_tracker15get_random_uintEj.exit218 ], [ %cnt_unsat.0241, %if.then.i.i179 ] %indvars.iv.next257 = add nuw nsw i64 %indvars.iv256, 1 %exitcond260.not = icmp eq i64 %indvars.iv.next257, %wide.trip.count259 - br i1 %exitcond260.not, label %for.end52, label %for.body39, !llvm.loop !130 + br i1 %exitcond260.not, label %for.end52, label %for.body39, !llvm.loop !131 for.end52: ; preds = %for.inc50 %cmp53 = icmp eq i32 %pos.4, -1 @@ -26781,12 +26773,12 @@ _ZN6vectorIP9func_declLb0EjE9push_backERKS1_.exit: ; preds = %lor.lhs.false.i, % for.inc: ; preds = %for.body.i, %_ZN6vectorIP9func_declLb0EjE9push_backERKS1_.exit %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.inc28, label %for.body20, !llvm.loop !131 + br i1 %exitcond.not, label %for.inc28, label %for.body20, !llvm.loop !132 for.inc28: ; preds = %for.inc, %_ZN7obj_mapI4expr10ptr_vectorI9func_declEE4findEPS0_.exit, %_ZNK6vectorIP9func_declLb0EjE4sizeEv.exit, %if.then.i54, %_ZN11mpz_managerILb0EE2eqERK3mpzS3_.exit %indvars.iv.next100 = add nuw nsw i64 %indvars.iv99, 1 %exitcond103.not = icmp eq i64 %indvars.iv.next100, %wide.trip.count102 - br i1 %exitcond103.not, label %return, label %for.body, !llvm.loop !132 + br i1 %exitcond103.not, label %return, label %for.body, !llvm.loop !133 return: ; preds = %for.inc28, %_ZN6vectorIP9func_declLb0EjE5resetEv.exit, %if.then5 %retval.0 = phi ptr [ %m_constants.i, %if.then5 ], [ %m_temp_constants, %_ZN6vectorIP9func_declLb0EjE5resetEv.exit ], [ %m_temp_constants, %for.inc28 ] @@ -26934,24 +26926,24 @@ _ZN11sls_tracker15get_random_boolEv.exit: ; preds = %entry.if.end_crit_e store i32 %dec.i, ptr %m_random_bits_cnt.i, align 8 %cond-lvalue.v.i = select i1 %cmp4.not.i, i64 48, i64 64 %cond-lvalue.i = getelementptr inbounds i8, ptr %this, i64 %cond-lvalue.v.i - tail call void @llvm.experimental.noalias.scope.decl(metadata !133) - store i32 0, ptr %agg.result, align 8, !alias.scope !133 + tail call void @llvm.experimental.noalias.scope.decl(metadata !134) + store i32 0, ptr %agg.result, align 8, !alias.scope !134 %m_kind.i.i = getelementptr inbounds i8, ptr %agg.result, i64 4 - %bf.load.i.i = load i8, ptr %m_kind.i.i, align 4, !alias.scope !133 + %bf.load.i.i = load i8, ptr %m_kind.i.i, align 4, !alias.scope !134 %bf.clear3.i.i = and i8 %bf.load.i.i, -4 - store i8 %bf.clear3.i.i, ptr %m_kind.i.i, align 4, !alias.scope !133 + store i8 %bf.clear3.i.i, ptr %m_kind.i.i, align 4, !alias.scope !134 %m_ptr.i.i = getelementptr inbounds i8, ptr %agg.result, i64 8 - store ptr null, ptr %m_ptr.i.i, align 8, !alias.scope !133 + store ptr null, ptr %m_ptr.i.i, align 8, !alias.scope !134 %m_kind.i.i.i = getelementptr inbounds i8, ptr %cond-lvalue.i, i64 4 - %bf.load.i.i.i = load i8, ptr %m_kind.i.i.i, align 4, !noalias !133 + %bf.load.i.i.i = load i8, ptr %m_kind.i.i.i, align 4, !noalias !134 %bf.clear.i.i.i = and i8 %bf.load.i.i.i, 1 %cmp.i.i.i = icmp eq i8 %bf.clear.i.i.i, 0 br i1 %cmp.i.i.i, label %if.then.i.i, label %if.else.i.i if.then.i.i: ; preds = %_ZN11sls_tracker15get_random_boolEv.exit - %8 = load i32, ptr %cond-lvalue.i, align 8, !noalias !133 - store i32 %8, ptr %agg.result, align 8, !alias.scope !133 - store i8 %bf.clear3.i.i, ptr %m_kind.i.i, align 4, !alias.scope !133 + %8 = load i32, ptr %cond-lvalue.i, align 8, !noalias !134 + store i32 %8, ptr %agg.result, align 8, !alias.scope !134 + store i8 %bf.clear3.i.i, ptr %m_kind.i.i, align 4, !alias.scope !134 br label %return if.else.i.i: ; preds = %_ZN11sls_tracker15get_random_boolEv.exit @@ -27045,7 +27037,7 @@ _ZN11sls_tracker15get_random_boolEv.exit: ; preds = %entry.if.end_crit_e call void @_ZN11mpz_managerILb0EE3addERK3mpzS3_RS1_(ptr noundef nonnull align 8 dereferenceable(600) %5, ptr noundef nonnull align 8 dereferenceable(16) %temp, ptr noundef nonnull align 8 dereferenceable(16) %cond-lvalue.i, ptr noundef nonnull align 8 dereferenceable(16) %agg.result) %dec = add i32 %bv_size.0, -1 %cmp.not = icmp eq i32 %dec, 0 - br i1 %cmp.not, label %do.end, label %do.body, !llvm.loop !136 + br i1 %cmp.not, label %do.end, label %do.body, !llvm.loop !137 do.end: ; preds = %_ZN11sls_tracker15get_random_boolEv.exit %10 = load ptr, ptr %m_mpz_manager, align 8 @@ -27097,7 +27089,7 @@ while.body.i: ; preds = %while.body.i.prehea sw.bb.i: ; preds = %while.body.i %3 = getelementptr inbounds i8, ptr %c.0.i, i64 16 %4 = load ptr, ptr %3, align 8 - br label %while.body.i, !llvm.loop !67 + br label %while.body.i, !llvm.loop !68 sw.bb3.i: ; preds = %while.body.i %5 = getelementptr inbounds i8, ptr %c.0.i, i64 4 @@ -27173,7 +27165,7 @@ _ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9pu %cmp = icmp ne i32 %bf.lshr.i, 3 %cmp4 = icmp ult i32 %inc, %div27 %21 = select i1 %cmp, i1 %cmp4, i1 false - br i1 %21, label %while.body, label %while.end, !llvm.loop !137 + br i1 %21, label %while.body, label %while.end, !llvm.loop !138 while.end: ; preds = %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit %c.0.lcssa = phi ptr [ %2, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit ], [ null, %_ZNK14parray_managerIN11ast_manager17expr_array_configEE4sizeERKNS2_3refE.exit.thread ], [ %20, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit ] @@ -27284,7 +27276,7 @@ for.body.i: ; preds = %_ZN14parray_manager store ptr %39, ptr %arrayidx5.i, align 8 %inc.i45 = add nuw i64 %i.015.i, 1 %exitcond.not.i = icmp eq i64 %inc.i45, %cond.i.i - br i1 %exitcond.not.i, label %_ZN14parray_managerIN11ast_manager17expr_array_configEE8capacityEPP4expr.exit.i.i, label %for.body.i, !llvm.loop !138 + br i1 %exitcond.not.i, label %_ZN14parray_managerIN11ast_manager17expr_array_configEE8capacityEPP4expr.exit.i.i, label %for.body.i, !llvm.loop !139 _ZN14parray_managerIN11ast_manager17expr_array_configEE8capacityEPP4expr.exit.i.i: ; preds = %for.body.i %arrayidx.i.i.i = getelementptr inbounds i8, ptr %31, i64 -8 @@ -27356,7 +27348,7 @@ if.then6.i: ; preds = %if.end.i52 _ZN14parray_managerIN11ast_manager17expr_array_configEE7dec_refEPNS2_4cellE.exit: ; preds = %if.end.i52, %if.then6.i %cmp12.not.wide = icmp eq i64 %25, 0 - br i1 %cmp12.not.wide, label %for.end, label %for.body, !llvm.loop !139 + br i1 %cmp12.not.wide, label %for.end, label %for.body, !llvm.loop !140 for.end: ; preds = %_ZN14parray_managerIN11ast_manager17expr_array_configEE7dec_refEPNS2_4cellE.exit, %if.end10, %_ZNK6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE4sizeEv.exit %m_updt_counter = getelementptr inbounds i8, ptr %r, i64 8 @@ -27569,7 +27561,7 @@ _ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9pu %9 = load ptr, ptr %8, align 8 %bf.load.i = load i32, ptr %9, align 8 %cmp.not = icmp ugt i32 %bf.load.i, -1073741825 - br i1 %cmp.not, label %while.end, label %while.body, !llvm.loop !140 + br i1 %cmp.not, label %while.end, label %while.body, !llvm.loop !141 while.end: ; preds = %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE5resetEv.exit %storemerge.lcssa = phi ptr [ %s, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE5resetEv.exit ], [ %9, %_ZN6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE9push_backERKS5_.exit ] @@ -27626,7 +27618,7 @@ if.then.i.i.i: ; preds = %for.body.i _ZN14parray_managerIN11ast_manager17expr_array_configEE7inc_refERKP4expr.exit.i: ; preds = %if.then.i.i.i, %for.body.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i - br i1 %exitcond.not.i, label %_ZN14parray_managerIN11ast_manager17expr_array_configEE11copy_valuesEPP4exprjRS5_.exit, label %for.body.i, !llvm.loop !141 + br i1 %exitcond.not.i, label %_ZN14parray_managerIN11ast_manager17expr_array_configEE11copy_valuesEPP4exprjRS5_.exit, label %for.body.i, !llvm.loop !142 _ZN14parray_managerIN11ast_manager17expr_array_configEE11copy_valuesEPP4exprjRS5_.exit: ; preds = %_ZN14parray_managerIN11ast_manager17expr_array_configEE7inc_refERKP4expr.exit.i, %_ZN14parray_managerIN11ast_manager17expr_array_configEE8capacityEPP4expr.exit.i %21 = load ptr, ptr %m_get_values_tmp, align 8 @@ -27763,7 +27755,7 @@ for.body.i.i: ; preds = %_ZN14parray_manager store ptr %44, ptr %arrayidx5.i.i, align 8 %inc.i.i = add nuw nsw i64 %i.015.i.i, 1 %exitcond.not.i.i = icmp eq i64 %inc.i.i, %cond.i.i.i - br i1 %exitcond.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !138 + br i1 %exitcond.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !139 for.end.i.i: ; preds = %for.body.i.i %45 = load ptr, ptr %vs, align 8 @@ -27818,7 +27810,7 @@ default.unreachable70: ; preds = %for.body sw.epilog: ; preds = %if.then2.i.i.i35, %if.then.i.i.i31, %sw.bb8, %_ZN14parray_managerIN11ast_manager17expr_array_configEE10rpush_backERPP4exprRjRKS4_.exit, %_ZN14parray_managerIN11ast_manager17expr_array_configEE4rsetEPP4exprjRKS4_.exit %sz.1 = phi i32 [ %inc.i47, %_ZN14parray_managerIN11ast_manager17expr_array_configEE10rpush_backERPP4exprRjRKS4_.exit ], [ %sz.065, %_ZN14parray_managerIN11ast_manager17expr_array_configEE4rsetEPP4exprjRKS4_.exit ], [ %dec.i, %sw.bb8 ], [ %dec.i, %if.then.i.i.i31 ], [ %dec.i, %if.then2.i.i.i35 ] %cmp5.not.wide = icmp eq i64 %24, 0 - br i1 %cmp5.not.wide, label %for.end, label %for.body, !llvm.loop !142 + br i1 %cmp5.not.wide, label %for.end, label %for.body, !llvm.loop !143 for.end: ; preds = %sw.epilog, %_ZN14parray_managerIN11ast_manager17expr_array_configEE11copy_valuesEPP4exprjRS5_.exit, %_ZNK6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE4sizeEv.exit %sz.0.lcssa = phi i32 [ %11, %_ZNK6vectorIPN14parray_managerIN11ast_manager17expr_array_configEE4cellELb0EjE4sizeEv.exit ], [ %11, %_ZN14parray_managerIN11ast_manager17expr_array_configEE11copy_valuesEPP4exprjRS5_.exit ], [ %sz.1, %sw.epilog ] @@ -27901,7 +27893,7 @@ if.then2.i.i16: ; preds = %if.then.i.i12 _ZN11ast_manager7dec_refEP3ast.exit.i: ; preds = %if.then2.i.i16, %if.then.i.i12, %for.body.i %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i - br i1 %exitcond.not.i, label %_ZN14parray_managerIN11ast_manager17expr_array_configEE7dec_refEjPP4expr.exitthread-pre-split, label %for.body.i, !llvm.loop !143 + br i1 %exitcond.not.i, label %_ZN14parray_managerIN11ast_manager17expr_array_configEE7dec_refEjPP4expr.exitthread-pre-split, label %for.body.i, !llvm.loop !144 _ZN14parray_managerIN11ast_manager17expr_array_configEE7dec_refEjPP4expr.exitthread-pre-split: ; preds = %_ZN11ast_manager7dec_refEP3ast.exit.i %.pr = load ptr, ptr %5, align 8 @@ -27945,7 +27937,7 @@ if.end: ; preds = %sw.epilog %bf.set = or disjoint i32 %bf.value, %bf.clear9 store i32 %bf.set, ptr %next.0, align 8 %cmp12.not = icmp eq i32 %bf.value, 0 - br i1 %cmp12.not, label %while.body, label %return, !llvm.loop !144 + br i1 %cmp12.not, label %while.body, label %return, !llvm.loop !145 return: ; preds = %if.end, %sw.epilog, %sw.epilog.thread ret void @@ -28274,7 +28266,7 @@ for.inc: ; preds = %.noexc, %lor.lhs.fa %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count %.pre = load ptr, ptr %stack, align 8 - br i1 %exitcond.not, label %while.cond.preheader, label %for.body, !llvm.loop !145 + br i1 %exitcond.not, label %while.cond.preheader, label %for.body, !llvm.loop !146 lpad.loopexit: ; preds = %if.then.i113, %if.end.i112 %lpad.loopexit119 = landingpad { ptr, i32 } @@ -28294,7 +28286,7 @@ lpad.body: ; preds = %lpad.loopexit, %lpa while.cond.loopexit: ; preds = %for.inc25, %_ZN11sls_tracker12get_distanceEP4expr.exit %11 = load ptr, ptr %stack, align 8 %cmp.i13 = icmp eq ptr %11, null - br i1 %cmp.i13, label %_ZN10ptr_vectorI3appED2Ev.exit, label %_ZNK6vectorIP3appLb0EjE5emptyEv.exit, !llvm.loop !146 + br i1 %cmp.i13, label %_ZN10ptr_vectorI3appED2Ev.exit, label %_ZNK6vectorIP3appLb0EjE5emptyEv.exit, !llvm.loop !147 _ZNK6vectorIP3appLb0EjE5emptyEv.exit: ; preds = %_ZNK6vectorIP3appLb0EjE5emptyEv.exit.lr.ph, %while.cond.loopexit %12 = phi ptr [ %.pre, %_ZNK6vectorIP3appLb0EjE5emptyEv.exit.lr.ph ], [ %11, %while.cond.loopexit ] @@ -28611,7 +28603,7 @@ for.inc25: ; preds = %_ZN6vectorIP3appLb0 %indvars.iv.next144 = add nuw nsw i64 %indvars.iv143, 1 %50 = zext i32 %49 to i64 %cmp15 = icmp ult i64 %indvars.iv.next144, %50 - br i1 %cmp15, label %for.body16, label %while.cond.loopexit, !llvm.loop !147 + br i1 %cmp15, label %for.body16, label %while.cond.loopexit, !llvm.loop !148 if.then.i.i.i: ; preds = %_ZNK6vectorIP3appLb0EjE5emptyEv.exit %add.ptr.i.i.i.i108 = getelementptr inbounds i8, ptr %12, i64 -8 @@ -28736,7 +28728,7 @@ if.then.i.i: ; preds = %for.body.i.i for.inc.i.i: ; preds = %if.then.i.i, %for.body.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %curr.031.i.i, i64 8 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr5.i.i - br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !73 + br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !74 for.body20.i.i: ; preds = %for.cond18.preheader.i.i, %for.inc36.i.i %curr.133.i.i = phi ptr [ %incdec.ptr37.i.i, %for.inc36.i.i ], [ %14, %for.cond18.preheader.i.i ] @@ -28758,7 +28750,7 @@ if.then22.i.i: ; preds = %for.body20.i.i for.inc36.i.i: ; preds = %if.then22.i.i, %for.body20.i.i %incdec.ptr37.i.i = getelementptr inbounds i8, ptr %curr.133.i.i, i64 8 %cmp19.not.i.i = icmp eq ptr %incdec.ptr37.i.i, %add.ptr.i.i - br i1 %cmp19.not.i.i, label %if.then11, label %for.body20.i.i, !llvm.loop !74 + br i1 %cmp19.not.i.i, label %if.then11, label %for.body20.i.i, !llvm.loop !75 if.then11: ; preds = %for.body.i.i, %for.body20.i.i, %for.inc36.i.i, %for.cond18.preheader.i.i call void @_ZN11sls_tracker10setup_occsEP4exprb(ptr noundef nonnull align 8 dereferenceable(400) %this, ptr noundef %11, i1 noundef zeroext false) @@ -28774,7 +28766,7 @@ for.inc: ; preds = %if.then.i.i, %if.th %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %20 = zext i32 %19 to i64 %cmp = icmp ult i64 %indvars.iv.next, %20 - br i1 %cmp, label %for.body, label %if.end34, !llvm.loop !148 + br i1 %cmp, label %for.body, label %if.end34, !llvm.loop !149 _ZNK11ast_manager6is_notEPK4expr.exit: ; preds = %_ZNK11ast_manager5is_orEPK4expr.exit %21 = load i32, ptr %2, align 8 @@ -29042,7 +29034,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.053, %if.then9 ], [ %curr.052, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.052, i64 8 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !149 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !150 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.256 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -29090,7 +29082,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.256, %if.then31 ], [ %curr.155, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.155, i64 8 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !150 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !151 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 404, ptr noundef nonnull @.str.48) @@ -29156,7 +29148,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 8 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !151 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !152 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -29167,7 +29159,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 8 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !152 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !153 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 212, ptr noundef nonnull @.str.48) @@ -29182,7 +29174,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 8 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableI14obj_hash_entryI4exprE12obj_ptr_hashIS1_E6ptr_eqIS1_EE10move_tableEPS2_jS8_j.exit.loopexit, label %for.body.i, !llvm.loop !153 + br i1 %cmp.not.i, label %_ZN14core_hashtableI14obj_hash_entryI4exprE12obj_ptr_hashIS1_E6ptr_eqIS1_EE10move_tableEPS2_jS8_j.exit.loopexit, label %for.body.i, !llvm.loop !154 _ZN14core_hashtableI14obj_hash_entryI4exprE12obj_ptr_hashIS1_E6ptr_eqIS1_EE10move_tableEPS2_jS8_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -29406,7 +29398,7 @@ for.body.i.i70: ; preds = %for.body.i.i70, %fo call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i72, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i73, i64 16, i1 false) %indvars.iv.next.i.i74 = add nuw nsw i64 %indvars.iv.i.i71, 1 %exitcond.not.i.i75 = icmp eq i64 %indvars.iv.next.i.i74, %wide.trip.count.i.i69 - br i1 %exitcond.not.i.i75, label %for.end.i.i76, label %for.body.i.i70, !llvm.loop !154 + br i1 %exitcond.not.i.i75, label %for.end.i.i76, label %for.body.i.i70, !llvm.loop !155 for.end.i.i76: ; preds = %for.body.i.i70, %call.i.i.noexc90 %cmp.not.i.i.i78 = icmp eq ptr %.pre.i.i67, %6 @@ -29487,7 +29479,7 @@ for.body.i.i108: ; preds = %for.body.i.i108, %f call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i110, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i111, i64 16, i1 false) %indvars.iv.next.i.i112 = add nuw nsw i64 %indvars.iv.i.i109, 1 %exitcond.not.i.i113 = icmp eq i64 %indvars.iv.next.i.i112, %wide.trip.count.i.i107 - br i1 %exitcond.not.i.i113, label %for.end.i.i114, label %for.body.i.i108, !llvm.loop !154 + br i1 %exitcond.not.i.i113, label %for.end.i.i114, label %for.body.i.i108, !llvm.loop !155 for.end.i.i114: ; preds = %for.body.i.i108, %call.i.i.noexc128 %cmp.not.i.i.i116 = icmp eq ptr %.pre.i.i105, %6 @@ -29520,7 +29512,7 @@ invoke.cont48: ; preds = %sw.default while.cond15.backedge: ; preds = %invoke.cont25, %if.then40, %invoke.cont21 %31 = load i32, ptr %second, align 8 %cmp = icmp ult i32 %31, %12 - br i1 %cmp, label %while.body16, label %while.end.loopexit, !llvm.loop !155 + br i1 %cmp, label %while.body16, label %while.end.loopexit, !llvm.loop !156 while.end.loopexit: ; preds = %while.cond15.backedge %.pre271 = load i32, ptr %m_pos.i.i, align 8 @@ -29595,7 +29587,7 @@ invoke.cont66: ; preds = %invoke.cont62 %shl.i.i.i.i150 = shl nuw i32 1, %rem.i.i.i.i149 %and.i.i.i151 = and i32 %42, %shl.i.i.i.i150 %cmp.i.i.i152.not = icmp eq i32 %and.i.i.i151, 0 - br i1 %cmp.i.i.i152.not, label %invoke.cont70, label %while.cond57, !llvm.loop !156 + br i1 %cmp.i.i.i152.not, label %invoke.cont70, label %while.cond57, !llvm.loop !157 if.then.i.i.i156: ; preds = %invoke.cont62 %add.i.i.i157 = add i32 %39, 1 @@ -29651,7 +29643,7 @@ for.body.i.i179: ; preds = %for.body.i.i179, %f call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i181, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i182, i64 16, i1 false) %indvars.iv.next.i.i183 = add nuw nsw i64 %indvars.iv.i.i180, 1 %exitcond.not.i.i184 = icmp eq i64 %indvars.iv.next.i.i183, %wide.trip.count.i.i178 - br i1 %exitcond.not.i.i184, label %for.end.i.i185, label %for.body.i.i179, !llvm.loop !154 + br i1 %exitcond.not.i.i184, label %for.end.i.i185, label %for.body.i.i179, !llvm.loop !155 for.end.i.i185: ; preds = %for.body.i.i179, %call.i.i.noexc199 %cmp.not.i.i.i187 = icmp eq ptr %.pre.i.i176, %6 @@ -29690,7 +29682,7 @@ invoke.cont81: ; preds = %sw.default80 sw.epilog82: ; preds = %while.end.sw.epilog82_crit_edge, %while.end75, %sw.bb %.pr = phi i32 [ %.pr.pre, %while.end.sw.epilog82_crit_edge ], [ %dec.i204, %while.end75 ], [ %sub.i, %sw.bb ] %cmp.i = icmp eq i32 %.pr, 0 - br i1 %cmp.i, label %while.end83, label %start.preheader, !llvm.loop !157 + br i1 %cmp.i, label %while.end83, label %start.preheader, !llvm.loop !158 while.end83: ; preds = %sw.epilog82 %49 = load ptr, ptr %stack, align 8 @@ -29811,13 +29803,13 @@ if.then22.i.i.i: ; preds = %for.body20.i.i.i for.inc36.i.i.i: ; preds = %if.then22.i.i.i, %for.body20.i.i.i %incdec.ptr37.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i, i64 64 %cmp19.not.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i, %add.ptr.i.i.i - br i1 %cmp19.not.i.i.i, label %if.then, label %for.body20.i.i.i, !llvm.loop !158 + br i1 %cmp19.not.i.i.i, label %if.then, label %for.body20.i.i.i, !llvm.loop !159 if.then: ; preds = %for.body.i.i.i, %for.inc36.i.i.i, %for.body20.i.i.i, %for.cond18.preheader.i.i.i %value.i = getelementptr inbounds i8, ptr %vs, i64 8 - store i32 0, ptr %value.i, align 8, !alias.scope !159 + store i32 0, ptr %value.i, align 8, !alias.scope !160 %m_kind.i.i.i = getelementptr inbounds i8, ptr %vs, i64 12 - store i8 0, ptr %m_kind.i.i.i, align 4, !alias.scope !159 + store i8 0, ptr %m_kind.i.i.i, align 4, !alias.scope !160 %m_ptr.i.i.i = getelementptr inbounds i8, ptr %vs, i64 16 %touched.i = getelementptr inbounds i8, ptr %vs, i64 52 %7 = getelementptr inbounds i8, ptr %vs, i64 24 @@ -29956,7 +29948,7 @@ terminate.lpad.i.i: ; preds = %if.then.i.i.i18 _ZN10ptr_vectorI4exprED2Ev.exit: ; preds = %invoke.cont9, %if.then.i.i.i18 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !162 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !163 lpad5: ; preds = %if.then.i16, %for.body %28 = landingpad { ptr, i32 } @@ -30536,7 +30528,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.0134, %if.then9 ], [ %curr.0133, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.0133, i64 64 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !163 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !164 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.2137 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -30668,7 +30660,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.2137, %if.then31 ], [ %curr.1136, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.1136, i64 64 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !164 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !165 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 404, ptr noundef nonnull @.str.48) @@ -30792,7 +30784,7 @@ for.body8: ; preds = %if.then, %for.inc for.inc: ; preds = %for.body8 %incdec.ptr = getelementptr inbounds i8, ptr %target_curr.049, i64 64 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr2 - br i1 %cmp7.not, label %for.cond12.preheader, label %for.body8, !llvm.loop !165 + br i1 %cmp7.not, label %for.cond12.preheader, label %for.body8, !llvm.loop !166 for.body14: ; preds = %for.cond12.preheader, %for.inc19 %target_curr.151 = phi ptr [ %incdec.ptr20, %for.inc19 ], [ %target, %for.cond12.preheader ] @@ -30803,7 +30795,7 @@ for.body14: ; preds = %for.cond12.preheade for.inc19: ; preds = %for.body14 %incdec.ptr20 = getelementptr inbounds i8, ptr %target_curr.151, i64 64 %cmp13.not = icmp eq ptr %incdec.ptr20, %add.ptr5 - br i1 %cmp13.not, label %for.end21, label %for.body14, !llvm.loop !166 + br i1 %cmp13.not, label %for.end21, label %for.body14, !llvm.loop !167 for.end21: ; preds = %for.cond12.preheader, %for.inc19 tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 212, ptr noundef nonnull @.str.48) @@ -30860,7 +30852,7 @@ for.inc23.sink.split: ; preds = %for.body8, %for.bod for.inc23: ; preds = %for.inc23.sink.split, %for.body %incdec.ptr24 = getelementptr inbounds i8, ptr %source_curr.053, i64 64 %cmp.not = icmp eq ptr %incdec.ptr24, %add.ptr - br i1 %cmp.not, label %for.end25, label %for.body, !llvm.loop !167 + br i1 %cmp.not, label %for.end25, label %for.body, !llvm.loop !168 for.end25: ; preds = %for.inc23, %entry ret void @@ -31038,7 +31030,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.066, %if.then9 ], [ %curr.065, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.065, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !168 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !169 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.269 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -31098,7 +31090,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.269, %if.then31 ], [ %curr.168, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.168, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !169 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !170 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 460, ptr noundef nonnull @.str.48) @@ -31261,7 +31253,7 @@ terminate.lpad.i.i.i.i: ; preds = %if.then.i.i.i.i.i for.inc: ; preds = %for.body8 %incdec.ptr = getelementptr inbounds i8, ptr %target_curr.032, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr2 - br i1 %cmp7.not, label %for.cond12.preheader, label %for.body8, !llvm.loop !170 + br i1 %cmp7.not, label %for.cond12.preheader, label %for.body8, !llvm.loop !171 for.body14: ; preds = %for.cond12.preheader, %for.inc19 %target_curr.134 = phi ptr [ %incdec.ptr20, %for.inc19 ], [ %target, %for.cond12.preheader ] @@ -31295,7 +31287,7 @@ terminate.lpad.i.i.i.i26: ; preds = %if.then.i.i.i.i.i24 for.inc19: ; preds = %for.body14 %incdec.ptr20 = getelementptr inbounds i8, ptr %target_curr.134, i64 16 %cmp13.not = icmp eq ptr %incdec.ptr20, %add.ptr5 - br i1 %cmp13.not, label %for.end21, label %for.body14, !llvm.loop !171 + br i1 %cmp13.not, label %for.end21, label %for.body14, !llvm.loop !172 for.end21: ; preds = %for.cond12.preheader, %for.inc19 tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 212, ptr noundef nonnull @.str.48) @@ -31314,7 +31306,7 @@ for.inc23.sink.split: ; preds = %if.end.i.i.i.i22, % for.inc23: ; preds = %for.inc23.sink.split, %for.body, %if.then16, %if.then10 %incdec.ptr24 = getelementptr inbounds i8, ptr %source_curr.036, i64 16 %cmp.not = icmp eq ptr %incdec.ptr24, %add.ptr - br i1 %cmp.not, label %for.end25, label %for.body, !llvm.loop !172 + br i1 %cmp.not, label %for.end25, label %for.body, !llvm.loop !173 for.end25: ; preds = %for.inc23, %entry ret void @@ -31388,7 +31380,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.056, %if.then9 ], [ %curr.055, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.055, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !173 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !174 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.259 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -31416,7 +31408,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.259, %if.then31 ], [ %curr.158, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.158, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !174 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !175 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 460, ptr noundef nonnull @.str.48) @@ -31499,7 +31491,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !175 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !176 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -31510,7 +31502,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !176 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !177 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 212, ptr noundef nonnull @.str.48) @@ -31525,7 +31517,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI9func_declP4exprE13obj_map_entryE8obj_hashINS4_8key_dataEE10default_eqIS7_EE10move_tableEPS5_jSC_j.exit.loopexit, label %for.body.i, !llvm.loop !177 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI9func_declP4exprE13obj_map_entryE8obj_hashINS4_8key_dataEE10default_eqIS7_EE10move_tableEPS5_jSC_j.exit.loopexit, label %for.body.i, !llvm.loop !178 _ZN14core_hashtableIN7obj_mapI9func_declP4exprE13obj_map_entryE8obj_hashINS4_8key_dataEE10default_eqIS7_EE10move_tableEPS5_jSC_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -31720,7 +31712,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.066, %if.then9 ], [ %curr.065, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.065, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !178 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !179 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.269 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -31780,7 +31772,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.269, %if.then31 ], [ %curr.168, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.168, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !179 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !180 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 460, ptr noundef nonnull @.str.48) @@ -31940,7 +31932,7 @@ terminate.lpad.i.i.i.i: ; preds = %if.then.i.i.i.i.i for.inc: ; preds = %for.body8 %incdec.ptr = getelementptr inbounds i8, ptr %target_curr.032, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr2 - br i1 %cmp7.not, label %for.cond12.preheader, label %for.body8, !llvm.loop !180 + br i1 %cmp7.not, label %for.cond12.preheader, label %for.body8, !llvm.loop !181 for.body14: ; preds = %for.cond12.preheader, %for.inc19 %target_curr.134 = phi ptr [ %incdec.ptr20, %for.inc19 ], [ %target, %for.cond12.preheader ] @@ -31974,7 +31966,7 @@ terminate.lpad.i.i.i.i26: ; preds = %if.then.i.i.i.i.i24 for.inc19: ; preds = %for.body14 %incdec.ptr20 = getelementptr inbounds i8, ptr %target_curr.134, i64 16 %cmp13.not = icmp eq ptr %incdec.ptr20, %add.ptr5 - br i1 %cmp13.not, label %for.end21, label %for.body14, !llvm.loop !181 + br i1 %cmp13.not, label %for.end21, label %for.body14, !llvm.loop !182 for.end21: ; preds = %for.cond12.preheader, %for.inc19 tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.47, i32 noundef 212, ptr noundef nonnull @.str.48) @@ -31993,7 +31985,7 @@ for.inc23.sink.split: ; preds = %if.end.i.i.i.i22, % for.inc23: ; preds = %for.inc23.sink.split, %for.body, %if.then16, %if.then10 %incdec.ptr24 = getelementptr inbounds i8, ptr %source_curr.036, i64 16 %cmp.not = icmp eq ptr %incdec.ptr24, %add.ptr - br i1 %cmp.not, label %for.end25, label %for.body, !llvm.loop !182 + br i1 %cmp.not, label %for.end25, label %for.body, !llvm.loop !183 for.end25: ; preds = %for.inc23, %entry ret void @@ -32051,7 +32043,7 @@ for.body.i.i.i: ; preds = %for.body.i.i.i, %fo store ptr %5, ptr %arrayidx.i.i.i, align 8 %indvars.iv.next.i.i.i = add nuw nsw i64 %indvars.iv.i.i.i, 1 %exitcond.not.i.i.i = icmp eq i64 %indvars.iv.next.i.i.i, %wide.trip.count.i.i.i - br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i, !llvm.loop !87 + br i1 %exitcond.not.i.i.i, label %for.end.i.i.i, label %for.body.i.i.i, !llvm.loop !88 for.end.i.i.i: ; preds = %for.body.i.i.i, %if.then.i.i %m_initial_buffer.i.i.i.i = getelementptr inbounds i8, ptr %visited, i64 16 @@ -32215,7 +32207,7 @@ for.body.i.i.i56: ; preds = %for.body.i.i.i56, % store ptr %24, ptr %arrayidx.i.i.i58, align 8 %indvars.iv.next.i.i.i60 = add nuw nsw i64 %indvars.iv.i.i.i57, 1 %exitcond.not.i.i.i61 = icmp eq i64 %indvars.iv.next.i.i.i60, %wide.trip.count.i.i.i55 - br i1 %exitcond.not.i.i.i61, label %for.end.i.i.i62, label %for.body.i.i.i56, !llvm.loop !87 + br i1 %exitcond.not.i.i.i61, label %for.end.i.i.i62, label %for.body.i.i.i56, !llvm.loop !88 for.end.i.i.i62: ; preds = %for.body.i.i.i56, %call.i.i.i51.noexc %cmp.not.i.i.i.i64 = icmp eq ptr %.pre.i.i.i53, %m_initial_buffer.i.i.i.i229 @@ -32292,7 +32284,7 @@ for.body.i.i95: ; preds = %for.body.i.i95, %fo call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i97, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i98, i64 16, i1 false) %indvars.iv.next.i.i99 = add nuw nsw i64 %indvars.iv.i.i96, 1 %exitcond.not.i.i100 = icmp eq i64 %indvars.iv.next.i.i99, %wide.trip.count.i.i94 - br i1 %exitcond.not.i.i100, label %for.end.i.i101, label %for.body.i.i95, !llvm.loop !154 + br i1 %exitcond.not.i.i100, label %for.end.i.i101, label %for.body.i.i95, !llvm.loop !155 for.end.i.i101: ; preds = %for.body.i.i95, %call.i.i.noexc116 %cmp.not.i.i.i103 = icmp eq ptr %.pre.i.i92, %9 @@ -32418,7 +32410,7 @@ for.body.i.i143: ; preds = %for.body.i.i143, %f call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i145, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i146, i64 16, i1 false) %indvars.iv.next.i.i147 = add nuw nsw i64 %indvars.iv.i.i144, 1 %exitcond.not.i.i148 = icmp eq i64 %indvars.iv.next.i.i147, %wide.trip.count.i.i142 - br i1 %exitcond.not.i.i148, label %for.end.i.i149, label %for.body.i.i143, !llvm.loop !154 + br i1 %exitcond.not.i.i148, label %for.end.i.i149, label %for.body.i.i143, !llvm.loop !155 for.end.i.i149: ; preds = %for.body.i.i143, %call.i.i.noexc164 %cmp.not.i.i.i151 = icmp eq ptr %.pre.i.i140, %9 @@ -32451,7 +32443,7 @@ invoke.cont51: ; preds = %sw.default while.cond14.backedge: ; preds = %if.end29, %_ZNK4decl13get_family_idEv.exit.i, %_ZN6vectorIP9func_declLb0EjE9push_backERKS1_.exit.i, %invoke.cont24 %47 = load i32, ptr %second, align 8 %cmp15 = icmp ult i32 %47, %15 - br i1 %cmp15, label %while.body16, label %while.cond14.while.end_crit_edge, !llvm.loop !183 + br i1 %cmp15, label %while.body16, label %while.cond14.while.end_crit_edge, !llvm.loop !184 while.cond14.while.end_crit_edge: ; preds = %while.cond14.backedge %m_num_args.i.le = getelementptr inbounds i8, ptr %14, i64 24 @@ -32570,7 +32562,7 @@ invoke.cont70: ; preds = %invoke.cont63 %bf.load.i.i203 = load i32, ptr %m_mark1.i.i202, align 4 %67 = and i32 %bf.load.i.i203, 65536 %tobool.i.i204.not = icmp eq i32 %67, 0 - br i1 %tobool.i.i204.not, label %if.end.i208, label %while.cond58, !llvm.loop !184 + br i1 %tobool.i.i204.not, label %if.end.i208, label %while.cond58, !llvm.loop !185 if.end.i208: ; preds = %invoke.cont70 %m_mark1.i.i202.le = getelementptr inbounds i8, ptr %retval.0.i, i64 4 @@ -32610,7 +32602,7 @@ for.body.i.i.i222: ; preds = %for.body.i.i.i222, store ptr %71, ptr %arrayidx.i.i.i224, align 8 %indvars.iv.next.i.i.i226 = add nuw nsw i64 %indvars.iv.i.i.i223, 1 %exitcond.not.i.i.i227 = icmp eq i64 %indvars.iv.next.i.i.i226, %wide.trip.count.i.i.i221 - br i1 %exitcond.not.i.i.i227, label %for.end.i.i.i228, label %for.body.i.i.i222, !llvm.loop !87 + br i1 %exitcond.not.i.i.i227, label %for.end.i.i.i228, label %for.body.i.i.i222, !llvm.loop !88 for.end.i.i.i228: ; preds = %for.body.i.i.i222, %call.i.i.i217.noexc %cmp.not.i.i.i.i230 = icmp eq ptr %.pre.i.i.i219, %m_initial_buffer.i.i.i.i229 @@ -32677,7 +32669,7 @@ for.body.i.i258: ; preds = %for.body.i.i258, %f call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i260, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i261, i64 16, i1 false) %indvars.iv.next.i.i262 = add nuw nsw i64 %indvars.iv.i.i259, 1 %exitcond.not.i.i263 = icmp eq i64 %indvars.iv.next.i.i262, %wide.trip.count.i.i257 - br i1 %exitcond.not.i.i263, label %for.end.i.i264, label %for.body.i.i258, !llvm.loop !154 + br i1 %exitcond.not.i.i263, label %for.end.i.i264, label %for.body.i.i258, !llvm.loop !155 for.end.i.i264: ; preds = %for.body.i.i258, %call.i.i.noexc279 %cmp.not.i.i.i266 = icmp eq ptr %.pre.i.i255, %9 @@ -32716,7 +32708,7 @@ invoke.cont84: ; preds = %sw.default83 sw.epilog85: ; preds = %_ZN6vectorIP9func_declLb0EjE9push_backERKS1_.exit.i185, %_ZNK4decl13get_family_idEv.exit.i176, %while.end, %while.end80, %sw.bb %.pr = phi i32 [ %.pr.pre, %_ZN6vectorIP9func_declLb0EjE9push_backERKS1_.exit.i185 ], [ %dec.i169.pre-phi, %_ZNK4decl13get_family_idEv.exit.i176 ], [ %dec.i169.pre-phi, %while.end ], [ %dec.i284, %while.end80 ], [ %sub.i, %sw.bb ] %cmp.i = icmp eq i32 %.pr, 0 - br i1 %cmp.i, label %while.end86, label %start.preheader, !llvm.loop !185 + br i1 %cmp.i, label %while.end86, label %start.preheader, !llvm.loop !186 while.end86: ; preds = %sw.epilog85 %79 = load ptr, ptr %stack, align 8 @@ -32971,7 +32963,7 @@ attributes #29 = { builtin nounwind } !64 = distinct !{!64, !32} !65 = distinct !{!65, !32} !66 = distinct !{!66, !32} -!67 = distinct !{!67, !32} +!67 = !{} !68 = distinct !{!68, !32} !69 = distinct !{!69, !32} !70 = distinct !{!70, !32} @@ -33037,10 +33029,10 @@ attributes #29 = { builtin nounwind } !130 = distinct !{!130, !32} !131 = distinct !{!131, !32} !132 = distinct !{!132, !32} -!133 = !{!134} -!134 = distinct !{!134, !135, !"_ZN11mpz_managerILb0EE3dupERK3mpz: %agg.result"} -!135 = distinct !{!135, !"_ZN11mpz_managerILb0EE3dupERK3mpz"} -!136 = distinct !{!136, !32} +!133 = distinct !{!133, !32} +!134 = !{!135} +!135 = distinct !{!135, !136, !"_ZN11mpz_managerILb0EE3dupERK3mpz: %agg.result"} +!136 = distinct !{!136, !"_ZN11mpz_managerILb0EE3dupERK3mpz"} !137 = distinct !{!137, !32} !138 = distinct !{!138, !32} !139 = distinct !{!139, !32} @@ -33063,10 +33055,10 @@ attributes #29 = { builtin nounwind } !156 = distinct !{!156, !32} !157 = distinct !{!157, !32} !158 = distinct !{!158, !32} -!159 = !{!160} -!160 = distinct !{!160, !161, !"_ZN11mpz_managerILb0EE4mk_zEi: %agg.result"} -!161 = distinct !{!161, !"_ZN11mpz_managerILb0EE4mk_zEi"} -!162 = distinct !{!162, !32} +!159 = distinct !{!159, !32} +!160 = !{!161} +!161 = distinct !{!161, !162, !"_ZN11mpz_managerILb0EE4mk_zEi: %agg.result"} +!162 = distinct !{!162, !"_ZN11mpz_managerILb0EE4mk_zEi"} !163 = distinct !{!163, !32} !164 = distinct !{!164, !32} !165 = distinct !{!165, !32} @@ -33090,3 +33082,4 @@ attributes #29 = { builtin nounwind } !183 = distinct !{!183, !32} !184 = distinct !{!184, !32} !185 = distinct !{!185, !32} +!186 = distinct !{!186, !32} diff --git a/bench/z3/optimized/smt_case_split_queue.cpp.ll b/bench/z3/optimized/smt_case_split_queue.cpp.ll index 4c07a81aada..b4d28775570 100644 --- a/bench/z3/optimized/smt_case_split_queue.cpp.ll +++ b/bench/z3/optimized/smt_case_split_queue.cpp.ll @@ -2905,18 +2905,10 @@ if.then: ; preds = %entry %and.i.i9 = and i32 %shr.i.i8, 32767 %6 = load ptr, ptr %m_context, align 8 %m_nodes.i.i = getelementptr inbounds i8, ptr %6, i64 9112 - %7 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i = icmp eq ptr %7, null - br i1 %cmp.i.i.i, label %_ZNK3smt7context22get_num_b_internalizedEv.exit, label %if.end.i.i.i - -if.end.i.i.i: ; preds = %if.then + %7 = load ptr, ptr %m_nodes.i.i, align 8, !nonnull !10, !noundef !10 %arrayidx.i.i.i = getelementptr inbounds i8, ptr %7, i64 -4 %8 = load i32, ptr %arrayidx.i.i.i, align 4 - br label %_ZNK3smt7context22get_num_b_internalizedEv.exit - -_ZNK3smt7context22get_num_b_internalizedEv.exit: ; preds = %if.then, %if.end.i.i.i - %retval.0.i.i.i = phi i32 [ %8, %if.end.i.i.i ], [ 0, %if.then ] - %rem = urem i32 %and.i.i9, %retval.0.i.i.i + %rem = urem i32 %and.i.i9, %8 store i32 %rem, ptr %next, align 4 %9 = load ptr, ptr %m_context, align 8 %shl.i.i = shl nuw nsw i32 %rem, 1 @@ -2928,7 +2920,7 @@ _ZNK3smt7context22get_num_b_internalizedEv.exit: ; preds = %if.then, %if.end.i. %cmp10 = icmp eq i8 %11, 0 br i1 %cmp10, label %return, label %if.end12 -if.end12: ; preds = %_ZNK3smt7context22get_num_b_internalizedEv.exit, %entry +if.end12: ; preds = %if.then, %entry %m_queue = getelementptr inbounds i8, ptr %this, i64 24 %12 = getelementptr inbounds i8, ptr %this, i64 32 %m_value2indices10.i = getelementptr inbounds i8, ptr %this, i64 40 @@ -3089,13 +3081,13 @@ _ZN4heapIN12_GLOBAL__N_115bool_var_act_ltEE9erase_minEv.exit: ; preds = %if.then %arrayidx.i.i.i.i14 = getelementptr inbounds i8, ptr %41, i64 %idxprom.i.i.i.i13 %42 = load i8, ptr %arrayidx.i.i.i.i14, align 1 %cmp18 = icmp eq i8 %42, 0 - br i1 %cmp18, label %return, label %while.cond, !llvm.loop !10 + br i1 %cmp18, label %return, label %while.cond, !llvm.loop !11 while.end: ; preds = %_ZNK4heapIN12_GLOBAL__N_115bool_var_act_ltEE5emptyEv.exit store i32 2147483647, ptr %next, align 4 br label %return -return: ; preds = %_ZN4heapIN12_GLOBAL__N_115bool_var_act_ltEE9erase_minEv.exit, %_ZNK3smt7context22get_num_b_internalizedEv.exit, %while.end +return: ; preds = %_ZN4heapIN12_GLOBAL__N_115bool_var_act_ltEE9erase_minEv.exit, %if.then, %while.end ret void } @@ -3757,7 +3749,7 @@ if.then.i.i.i: ; preds = %for.body.i.i.i for.inc.i.i.i: ; preds = %if.then.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i, i64 16 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr5.i.i.i - br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !11 + br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !12 for.body20.i.i.i: ; preds = %for.cond18.preheader.i.i.i, %for.inc36.i.i.i %curr.133.i.i.i = phi ptr [ %incdec.ptr37.i.i.i, %for.inc36.i.i.i ], [ %5, %for.cond18.preheader.i.i.i ] @@ -3779,7 +3771,7 @@ if.then22.i.i.i: ; preds = %for.body20.i.i.i for.inc36.i.i.i: ; preds = %if.then22.i.i.i, %for.body20.i.i.i %incdec.ptr37.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i, i64 16 %cmp19.not.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i, %add.ptr.i.i.i - br i1 %cmp19.not.i.i.i, label %if.end, label %for.body20.i.i.i, !llvm.loop !12 + br i1 %cmp19.not.i.i.i, label %if.end, label %for.body20.i.i.i, !llvm.loop !13 if.then: ; preds = %if.then.i.i.i, %if.then22.i.i.i %retval.0.i.i.i = phi ptr [ %curr.133.i.i.i, %if.then22.i.i.i ], [ %curr.031.i.i.i, %if.then.i.i.i ] @@ -3942,7 +3934,7 @@ for.inc.i.i: ; preds = %if.else.i.i, %if.th %overhead.1.i.i = phi i32 [ %inc.i.i, %if.else.i.i ], [ %overhead.07.i.i, %if.then5.i.i ] %incdec.ptr.i.i = getelementptr inbounds i8, ptr %curr.06.i.i, i64 16 %cmp4.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i - br i1 %cmp4.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !13 + br i1 %cmp4.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !14 for.end.i.i: ; preds = %for.inc.i.i %.pre.i.i = load i32, ptr %m_capacity.i.i, align 8 @@ -4024,7 +4016,7 @@ if.then2.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i _ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i: ; preds = %if.then2.i.i.i.i.i, %if.then.i.i.i.i.i, %for.body.i.i2 %incdec.ptr.i.i3 = getelementptr inbounds i8, ptr %it.04.i.i, i64 8 %cmp.i1.i = icmp ult ptr %incdec.ptr.i.i3, %add.ptr.i - br i1 %cmp.i1.i, label %for.body.i.i2, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i, !llvm.loop !14 + br i1 %cmp.i1.i, label %for.body.i.i2, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i, !llvm.loop !15 _ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE13dec_range_refEPKPS0_S7_.exit.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i %.pre.i = load ptr, ptr %m_nodes.i, align 8 @@ -4097,7 +4089,7 @@ if.then2.i.i.i.i.i.i: ; preds = %if.then.i.i.i.i.i.i _ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i: ; preds = %if.then2.i.i.i.i.i.i, %if.then.i.i.i.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %it.04.i.i.i, i64 8 %cmp.i1.i.i = icmp ult ptr %incdec.ptr.i.i.i, %add.ptr.i.i - br i1 %cmp.i1.i.i, label %for.body.i.i.i, label %invoke.cont.i.i, !llvm.loop !14 + br i1 %cmp.i1.i.i, label %for.body.i.i.i, label %invoke.cont.i.i, !llvm.loop !15 invoke.cont.i.i: ; preds = %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7dec_refEPS0_.exit.i.i.i %.pre.i.i = load ptr, ptr %m_nodes.i.i, align 8 @@ -4275,7 +4267,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.053, %if.then9 ], [ %curr.052, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.052, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !15 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !16 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.256 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -4321,7 +4313,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.256, %if.then31 ], [ %curr.155, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.155, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !16 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !17 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 404, ptr noundef nonnull @.str.15) @@ -4386,7 +4378,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !17 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !18 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -4397,7 +4389,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !18 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !19 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 212, ptr noundef nonnull @.str.15) @@ -4412,7 +4404,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprdE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !19 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprdE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !20 _ZN14core_hashtableIN7obj_mapI4exprdE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -5450,7 +5442,7 @@ for.inc: ; preds = %if.end.thread, %if. %inc = add i32 %34, 1 store i32 %inc, ptr %head, align 4 %cmp = icmp ult i32 %inc, %1 - br i1 %cmp, label %for.body, label %for.end, !llvm.loop !20 + br i1 %cmp, label %for.body, label %for.end, !llvm.loop !21 for.end: ; preds = %for.inc, %entry, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit store i32 2147483647, ptr %next, align 4 @@ -5537,7 +5529,7 @@ for.inc.us: ; preds = %_ZN6vectorIP4exprLb %found_undef.1.us = phi i1 [ %found_undef.031.us, %if.end.us ], [ true, %_ZN6vectorIP4exprLb0EjE9push_backERKS1_.exit.us ] %indvars.iv.next39 = add nuw nsw i64 %indvars.iv38, 1 %exitcond41.not = icmp eq i64 %indvars.iv.next39, %wide.trip.count40 - br i1 %exitcond41.not, label %for.end, label %for.body.us, !llvm.loop !21 + br i1 %exitcond41.not, label %for.end, label %for.body.us, !llvm.loop !22 lpad.split.us: ; preds = %if.then.i.us, %for.body.us %9 = landingpad { ptr, i32 } @@ -5580,7 +5572,7 @@ for.inc: ; preds = %if.then10, %if.end %found_undef.1 = phi i1 [ %found_undef.031, %if.end ], [ true, %if.then10 ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count40 - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !21 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !22 for.end: ; preds = %for.inc, %for.inc.us, %entry %cmp17 = icmp eq i32 %order, 1 @@ -5685,7 +5677,7 @@ if.end8: ; preds = %if.then4, %for.body %call13 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %call12, ptr noundef nonnull @.str.12) %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !22 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !23 for.end: ; preds = %if.end8 %call14 = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %out, ptr noundef nonnull @.str.13) @@ -6570,18 +6562,10 @@ if.then: ; preds = %entry %and.i.i12 = and i32 %shr.i.i11, 32767 %5 = load ptr, ptr %m_context, align 8 %m_nodes.i.i = getelementptr inbounds i8, ptr %5, i64 9112 - %6 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i = icmp eq ptr %6, null - br i1 %cmp.i.i.i, label %_ZNK3smt7context22get_num_b_internalizedEv.exit, label %if.end.i.i.i - -if.end.i.i.i: ; preds = %if.then + %6 = load ptr, ptr %m_nodes.i.i, align 8, !nonnull !10, !noundef !10 %arrayidx.i.i.i = getelementptr inbounds i8, ptr %6, i64 -4 %7 = load i32, ptr %arrayidx.i.i.i, align 4 - br label %_ZNK3smt7context22get_num_b_internalizedEv.exit - -_ZNK3smt7context22get_num_b_internalizedEv.exit: ; preds = %if.then, %if.end.i.i.i - %retval.0.i.i.i = phi i32 [ %7, %if.end.i.i.i ], [ 0, %if.then ] - %rem = urem i32 %and.i.i12, %retval.0.i.i.i + %rem = urem i32 %and.i.i12, %7 store i32 %rem, ptr %next, align 4 %8 = load ptr, ptr %m_context, align 8 %shl.i.i = shl nuw nsw i32 %rem, 1 @@ -6593,7 +6577,7 @@ _ZNK3smt7context22get_num_b_internalizedEv.exit: ; preds = %if.then, %if.end.i. %cmp10 = icmp eq i8 %10, 0 br i1 %cmp10, label %return, label %if.end12 -if.end12: ; preds = %_ZNK3smt7context22get_num_b_internalizedEv.exit, %entry +if.end12: ; preds = %if.then, %entry call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %undef_child.i) store i32 0, ptr %phase, align 4 %m_queue.i = getelementptr inbounds i8, ptr %this, i64 32 @@ -6720,7 +6704,7 @@ for.inc.i: ; preds = %if.else30.i, %if.th %inc.i = add i32 %40, 1 store i32 %inc.i, ptr %m_head.i, align 8 %cmp.i = icmp ult i32 %inc.i, %12 - br i1 %cmp.i, label %for.body.i, label %_ZN12_GLOBAL__N_124rel_act_case_split_queue20next_case_split_coreERjR5lbool.exit.thread, !llvm.loop !23 + br i1 %cmp.i, label %for.body.i, label %_ZN12_GLOBAL__N_124rel_act_case_split_queue20next_case_split_coreERjR5lbool.exit.thread, !llvm.loop !24 _ZN12_GLOBAL__N_124rel_act_case_split_queue20next_case_split_coreERjR5lbool.exit.thread: ; preds = %for.inc.i, %if.end12, %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i store i32 2147483647, ptr %next, align 4 @@ -6897,13 +6881,13 @@ _ZN4heapIN12_GLOBAL__N_115bool_var_act_ltEE9erase_minEv.exit: ; preds = %if.then %arrayidx.i.i.i.i29 = getelementptr inbounds i8, ptr %70, i64 %idxprom.i.i.i.i28 %71 = load i8, ptr %arrayidx.i.i.i.i29, align 1 %cmp21 = icmp eq i8 %71, 0 - br i1 %cmp21, label %return, label %while.cond, !llvm.loop !24 + br i1 %cmp21, label %return, label %while.cond, !llvm.loop !25 while.end: ; preds = %_ZNK4heapIN12_GLOBAL__N_115bool_var_act_ltEE5emptyEv.exit store i32 2147483647, ptr %next, align 4 br label %return -return: ; preds = %_ZN4heapIN12_GLOBAL__N_115bool_var_act_ltEE9erase_minEv.exit, %_ZN12_GLOBAL__N_124rel_act_case_split_queue20next_case_split_coreERjR5lbool.exit, %_ZNK3smt7context22get_num_b_internalizedEv.exit, %while.end +return: ; preds = %_ZN4heapIN12_GLOBAL__N_115bool_var_act_ltEE9erase_minEv.exit, %_ZN12_GLOBAL__N_124rel_act_case_split_queue20next_case_split_coreERjR5lbool.exit, %if.then, %while.end ret void } @@ -6959,7 +6943,7 @@ if.end7.i: ; preds = %if.then5.i, %for.bo %call13.i = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %call12.i, ptr noundef nonnull @.str.12) %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i - br i1 %exitcond.not.i, label %for.end.i, label %for.body.i, !llvm.loop !25 + br i1 %exitcond.not.i, label %for.end.i, label %for.body.i, !llvm.loop !26 for.end.i: ; preds = %if.end7.i %call14.i = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %out, ptr noundef nonnull @.str.13) @@ -7968,7 +7952,7 @@ if.end.i29.i: ; preds = %lor.lhs.false.i.i %arrayidx.i21.i.i = getelementptr inbounds i32, ptr %37, i64 %idxprom.i20.i.i store i32 %idx.addr.028.i.i, ptr %arrayidx.i21.i.i, align 4 %cmp.i30.i = icmp ult i32 %shr.i29.i.i, 2 - br i1 %cmp.i30.i, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i.i, !llvm.loop !26 + br i1 %cmp.i30.i, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i.i, !llvm.loop !27 if.end.while.end.loopexit_crit_edge.i.i: ; preds = %if.end.i29.i %.pre.pre.i.i = load ptr, ptr %m_values.i, align 8 @@ -8063,7 +8047,7 @@ if.end16.i.i: ; preds = %cond.end.i.i store i32 %idx.addr.044.i.i, ptr %arrayidx.i37.i.i, align 4 %shl.i.i.i = shl i32 %cond.i.i, 1 %cmp.not.i.i = icmp slt i32 %shl.i.i.i, %41 - br i1 %cmp.not.i.i, label %if.end.i36.i, label %if.end16.while.end.loopexit_crit_edge.i.i, !llvm.loop !27 + br i1 %cmp.not.i.i, label %if.end.i36.i, label %if.end16.while.end.loopexit_crit_edge.i.i, !llvm.loop !28 if.end16.while.end.loopexit_crit_edge.i.i: ; preds = %if.end16.i.i %.pre52.pre.i.i = load ptr, ptr %m_values.i, align 8 @@ -8088,7 +8072,7 @@ _ZN4heapIN12_GLOBAL__N_125rel_goal_case_split_queue13generation_ltEE9move_downEi for.inc: ; preds = %_ZNK6vectorIiLb0EjE4sizeEv.exit.i, %_ZN4heapIN12_GLOBAL__N_125rel_goal_case_split_queue13generation_ltEE9move_downEi.exit.i, %_ZN4heapIN12_GLOBAL__N_125rel_goal_case_split_queue13generation_ltEE7move_upEi.exit.i, %if.then.i31, %_ZNK4heapIN12_GLOBAL__N_125rel_goal_case_split_queue13generation_ltEE8containsEi.exit %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - br label %for.cond, !llvm.loop !28 + br label %for.cond, !llvm.loop !29 for.body11: ; preds = %for.cond8.preheader, %for.inc19 %53 = phi i32 [ %78, %for.inc19 ], [ %11, %for.cond8.preheader ] @@ -8186,7 +8170,7 @@ if.end.i7.i: ; preds = %lor.lhs.false.i6.i %arrayidx.i21.i.i71 = getelementptr inbounds i32, ptr %75, i64 %idxprom.i20.i.i70 store i32 %idx.addr.028.i.i47, ptr %arrayidx.i21.i.i71, align 4 %cmp.i8.i = icmp ult i32 %shr.i29.i.i48, 2 - br i1 %cmp.i8.i, label %if.end.while.end.loopexit_crit_edge.i.i72, label %lor.lhs.false.i6.i, !llvm.loop !26 + br i1 %cmp.i8.i, label %if.end.while.end.loopexit_crit_edge.i.i72, label %lor.lhs.false.i6.i, !llvm.loop !27 if.end.while.end.loopexit_crit_edge.i.i72: ; preds = %if.end.i7.i %.pre.pre.i.i73 = load ptr, ptr %m_values.i, align 8 @@ -8210,7 +8194,7 @@ for.inc19: ; preds = %for.body11, %_ZN4he %indvars.iv.next113 = add nuw nsw i64 %indvars.iv112, 1 %79 = zext i32 %78 to i64 %cmp10 = icmp ult i64 %indvars.iv.next113, %79 - br i1 %cmp10, label %for.body11, label %for.end21.loopexit, !llvm.loop !29 + br i1 %cmp10, label %for.body11, label %for.end21.loopexit, !llvm.loop !30 for.end21.loopexit: ; preds = %for.inc19 %m_queue2.val18.pre = load ptr, ptr %m_queue2, align 8 @@ -8283,7 +8267,7 @@ for.inc: ; preds = %for.body %inc = add i32 %8, 1 store i32 %inc, ptr %m_head, align 8 %cmp = icmp ult i32 %inc, %1 - br i1 %cmp, label %for.body, label %while.cond.preheader, !llvm.loop !30 + br i1 %cmp, label %for.body, label %while.cond.preheader, !llvm.loop !31 while.cond: ; preds = %while.cond.preheader, %_ZNK6vectorIN12_GLOBAL__N_125rel_goal_case_split_queue5scopeELb0EjE4sizeEv.exit %m_priority_queue2.val = load ptr, ptr %3, align 8 @@ -8415,7 +8399,7 @@ if.end16.i.i: ; preds = %cond.end.i.i store i32 %idx.addr.044.i.i, ptr %arrayidx.i37.i.i, align 4 %shl.i.i.i = shl i32 %cond.i.i, 1 %cmp.not.i.i = icmp slt i32 %shl.i.i.i, %25 - br i1 %cmp.not.i.i, label %if.end.i15.i, label %if.end16.while.end.loopexit_crit_edge.i.i, !llvm.loop !27 + br i1 %cmp.not.i.i, label %if.end.i15.i, label %if.end16.while.end.loopexit_crit_edge.i.i, !llvm.loop !28 if.end16.while.end.loopexit_crit_edge.i.i: ; preds = %if.end16.i.i %.pre52.pre.i.i = load ptr, ptr %3, align 8 @@ -8459,7 +8443,7 @@ _ZNK6vectorIN12_GLOBAL__N_125rel_goal_case_split_queue5scopeELb0EjE4sizeEv.exit: tail call fastcc void @_ZN12_GLOBAL__N_125rel_goal_case_split_queue20next_case_split_coreEP4exprRjR5lbool(ptr noundef nonnull align 8 dereferenceable(128) %this, ptr noundef %38, ptr noundef nonnull align 4 dereferenceable(4) %next, ptr noundef nonnull align 4 dereferenceable(4) %phase) %39 = load i32, ptr %next, align 4 %cmp13.not = icmp eq i32 %39, 2147483647 - br i1 %cmp13.not, label %while.cond, label %if.then14, !llvm.loop !31 + br i1 %cmp13.not, label %while.cond, label %if.then14, !llvm.loop !32 if.then14: ; preds = %_ZNK6vectorIN12_GLOBAL__N_125rel_goal_case_split_queue5scopeELb0EjE4sizeEv.exit %m_last_decided.le = getelementptr inbounds i8, ptr %arrayidx.i15, i64 12 @@ -8548,7 +8532,7 @@ if.end.i7.i: ; preds = %lor.lhs.false.i6.i %arrayidx.i21.i.i39 = getelementptr inbounds i32, ptr %59, i64 %idxprom.i20.i.i38 store i32 %idx.addr.028.i.i, ptr %arrayidx.i21.i.i39, align 4 %cmp.i8.i = icmp ult i32 %shr.i29.i.i, 2 - br i1 %cmp.i8.i, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i6.i, !llvm.loop !26 + br i1 %cmp.i8.i, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i6.i, !llvm.loop !27 if.end.while.end.loopexit_crit_edge.i.i: ; preds = %if.end.i7.i %.pre.pre.i.i40 = load ptr, ptr %3, align 8 @@ -8624,7 +8608,7 @@ if.end8.i: ; preds = %if.then4.i, %for.bo %call13.i = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %call12.i, ptr noundef nonnull @.str.12) %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 %exitcond.not.i = icmp eq i64 %indvars.iv.next.i, %wide.trip.count.i - br i1 %exitcond.not.i, label %for.end.i, label %for.body.i, !llvm.loop !32 + br i1 %exitcond.not.i, label %for.end.i, label %for.body.i, !llvm.loop !33 for.end.i: ; preds = %if.end8.i %call14.i = tail call noundef nonnull align 8 dereferenceable(8) ptr @_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc(ptr noundef nonnull align 8 dereferenceable(8) %out, ptr noundef nonnull @.str.13) @@ -8999,7 +8983,7 @@ for.body.i.i98.i.i: ; preds = %for.body.i.i98.i.i, call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i100.i.i, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i101.i.i, i64 16, i1 false) %indvars.iv.next.i.i102.i.i = add nuw nsw i64 %indvars.iv.i.i99.i.i, 1 %exitcond.not.i.i103.i.i = icmp eq i64 %indvars.iv.next.i.i102.i.i, %wide.trip.count.i.i97.i.i - br i1 %exitcond.not.i.i103.i.i, label %for.end.i.i104.i.i, label %for.body.i.i98.i.i, !llvm.loop !33 + br i1 %exitcond.not.i.i103.i.i, label %for.end.i.i104.i.i, label %for.body.i.i98.i.i, !llvm.loop !34 for.end.i.i104.i.i: ; preds = %for.body.i.i98.i.i, %call.i.i.noexc118.i.i %cmp.not.i.i.i106.i.i = icmp eq ptr %.pre.i.i95.i.i, %3 @@ -9094,7 +9078,7 @@ for.body.i.i148.i.i: ; preds = %for.body.i.i148.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i150.i.i, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i151.i.i, i64 16, i1 false) %indvars.iv.next.i.i152.i.i = add nuw nsw i64 %indvars.iv.i.i149.i.i, 1 %exitcond.not.i.i153.i.i = icmp eq i64 %indvars.iv.next.i.i152.i.i, %wide.trip.count.i.i147.i.i - br i1 %exitcond.not.i.i153.i.i, label %for.end.i.i154.i.i, label %for.body.i.i148.i.i, !llvm.loop !33 + br i1 %exitcond.not.i.i153.i.i, label %for.end.i.i154.i.i, label %for.body.i.i148.i.i, !llvm.loop !34 for.end.i.i154.i.i: ; preds = %for.body.i.i148.i.i, %call.i.i.noexc168.i.i %cmp.not.i.i.i156.i.i = icmp eq ptr %.pre.i.i145.i.i, %3 @@ -9127,7 +9111,7 @@ invoke.cont56.i.i: ; preds = %sw.default.i.i while.cond18.backedge.i.i: ; preds = %_ZNK3smt7context14e_internalizedEPK4expr.exit.i128.i.i, %_ZNK6vectorIPN3smt5enodeELb0EjE3getEjRKS2_.exit.i.i125.i.i, %if.then48.i.i, %if.then.i83.invoke.i.i, %_ZNK3smt7context14e_internalizedEPK4expr.exit.i78.i.i, %_ZNK6vectorIPN3smt5enodeELb0EjE3getEjRKS2_.exit.i.i75.i.i, %sw.bb35.i.i, %invoke.cont28.i.i %38 = load i32, ptr %second.i.i, align 8 %cmp19.i.i = icmp ult i32 %38, %12 - br i1 %cmp19.i.i, label %while.body20.i.i, label %while.end.loopexit.i.i, !llvm.loop !34 + br i1 %cmp19.i.i, label %while.body20.i.i, label %while.end.loopexit.i.i, !llvm.loop !35 while.end.loopexit.i.i: ; preds = %while.cond18.backedge.i.i %.pre330.i.i = load i32, ptr %m_pos.i.i.i.i, align 8 @@ -9228,7 +9212,7 @@ invoke.cont77.i.i: ; preds = %if.then76.i.i %shl.i.i.i.i201.i.i = shl nuw i32 1, %rem.i.i.i.i200.i.i %and.i.i.i202.i.i = and i32 %53, %shl.i.i.i.i201.i.i %cmp.i.i.i203.not.i.i = icmp eq i32 %and.i.i.i202.i.i, 0 - br i1 %cmp.i.i.i203.not.i.i, label %_ZN8obj_markI4expr10bit_vector14default_t2uintIS0_EE4markEPKS0_.exit217.i.i, label %while.cond65.i.i, !llvm.loop !35 + br i1 %cmp.i.i.i203.not.i.i, label %_ZN8obj_markI4expr10bit_vector14default_t2uintIS0_EE4markEPKS0_.exit217.i.i, label %while.cond65.i.i, !llvm.loop !36 if.then.i.i.i207.i.i: ; preds = %if.then76.i.i %add.i.i.i208.i.i = add i32 %50, 1 @@ -9289,7 +9273,7 @@ for.body.i.i230.i.i: ; preds = %for.body.i.i230.i.i call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i232.i.i, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i233.i.i, i64 16, i1 false) %indvars.iv.next.i.i234.i.i = add nuw nsw i64 %indvars.iv.i.i231.i.i, 1 %exitcond.not.i.i235.i.i = icmp eq i64 %indvars.iv.next.i.i234.i.i, %wide.trip.count.i.i229.i.i - br i1 %exitcond.not.i.i235.i.i, label %for.end.i.i236.i.i, label %for.body.i.i230.i.i, !llvm.loop !33 + br i1 %exitcond.not.i.i235.i.i, label %for.end.i.i236.i.i, label %for.body.i.i230.i.i, !llvm.loop !34 for.end.i.i236.i.i: ; preds = %for.body.i.i230.i.i, %call.i.i.noexc250.i.i %cmp.not.i.i.i238.i.i = icmp eq ptr %.pre.i.i227.i.i, %3 @@ -9344,7 +9328,7 @@ invoke.cont93.i.i: ; preds = %sw.default92.i.i sw.epilog94.i.i: ; preds = %_ZNK3smt7context14e_internalizedEPK4expr.exit.i261.i.i, %_ZNK6vectorIPN3smt5enodeELb0EjE3getEjRKS2_.exit.i.i258.i.i, %while.end87.i.i, %if.then.i184.invoke.i.sw.epilog94thread-pre-split.i_crit_edge.i, %_ZNK3smt7context14e_internalizedEPK4expr.exit.i179.i.i, %_ZNK6vectorIPN3smt5enodeELb0EjE3getEjRKS2_.exit.i.i176.i.i, %while.end.i.i, %invoke.cont13.i.i %.pr.i.i = phi i32 [ %dec.i.pre-phi.i.i, %invoke.cont13.i.i ], [ %.pr.pr.i.pre.i, %if.then.i184.invoke.i.sw.epilog94thread-pre-split.i_crit_edge.i ], [ %dec.i255.i.i, %_ZNK3smt7context14e_internalizedEPK4expr.exit.i261.i.i ], [ %dec.i255.i.i, %_ZNK6vectorIPN3smt5enodeELb0EjE3getEjRKS2_.exit.i.i258.i.i ], [ %dec.i255.i.i, %while.end87.i.i ], [ %dec.i173.pre-phi.i.i, %_ZNK3smt7context14e_internalizedEPK4expr.exit.i179.i.i ], [ %dec.i173.pre-phi.i.i, %_ZNK6vectorIPN3smt5enodeELb0EjE3getEjRKS2_.exit.i.i176.i.i ], [ %dec.i173.pre-phi.i.i, %while.end.i.i ] %cmp.i.i.i = icmp eq i32 %.pr.i.i, 0 - br i1 %cmp.i.i.i, label %while.end95.i.i, label %start.preheader.i.i, !llvm.loop !36 + br i1 %cmp.i.i.i, label %while.end95.i.i, label %start.preheader.i.i, !llvm.loop !37 while.end95.i.i: ; preds = %sw.epilog94.i.i %63 = load ptr, ptr %stack.i.i, align 8 @@ -9661,13 +9645,13 @@ for.inc: ; preds = %.noexc35, %lor.lhs. %24 = load i32, ptr %m_num_args.i, align 8 %25 = zext i32 %24 to i64 %cmp21 = icmp ult i64 %indvars.iv.next, %25 - br i1 %cmp21, label %for.body, label %if.end26, !llvm.loop !37 + br i1 %cmp21, label %for.body, label %if.end26, !llvm.loop !38 if.end26: ; preds = %for.inc, %for.cond.preheader, %if.then, %if.else %maxgen.2 = phi i32 [ %maxgen.056, %if.else ], [ %spec.select, %if.then ], [ %maxgen.056, %for.cond.preheader ], [ %maxgen.056, %for.inc ] %26 = load ptr, ptr %stack, align 8 %cmp.i12 = icmp eq ptr %26, null - br i1 %cmp.i12, label %_ZN10ptr_vectorI4exprED2Ev.exit, label %_ZNK6vectorIP4exprLb0EjE5emptyEv.exit, !llvm.loop !38 + br i1 %cmp.i12, label %_ZN10ptr_vectorI4exprED2Ev.exit, label %_ZNK6vectorIP4exprLb0EjE5emptyEv.exit, !llvm.loop !39 if.then.i.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE5emptyEv.exit %add.ptr.i.i.i.i = getelementptr inbounds i8, ptr %3, i64 -8 @@ -9956,7 +9940,7 @@ if.end.i7.i: ; preds = %lor.lhs.false.i6.i %arrayidx.i21.i.i = getelementptr inbounds i32, ptr %37, i64 %idxprom.i20.i.i store i32 %idx.addr.028.i.i, ptr %arrayidx.i21.i.i, align 4 %cmp.i8.i = icmp ult i32 %shr.i29.i.i, 2 - br i1 %cmp.i8.i, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i6.i, !llvm.loop !26 + br i1 %cmp.i8.i, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i6.i, !llvm.loop !27 if.end.while.end.loopexit_crit_edge.i.i: ; preds = %if.end.i7.i %.pre.pre.i.i = load ptr, ptr %m_values.i, align 8 @@ -10268,7 +10252,7 @@ if.end.i.i4: ; preds = %lor.lhs.false.i.i %arrayidx.i23.i.i = getelementptr inbounds i32, ptr %11, i64 %idxprom.i22.i.i store i32 %idx.addr.030.i.i, ptr %arrayidx.i23.i.i, align 4 %cmp.i.i5 = icmp ult i32 %shr.i31.i.i, 2 - br i1 %cmp.i.i5, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i.i, !llvm.loop !39 + br i1 %cmp.i.i5, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i.i, !llvm.loop !40 if.end.while.end.loopexit_crit_edge.i.i: ; preds = %if.end.i.i4 %.pre.pre.i.i = load ptr, ptr %m_values.i.i, align 8 @@ -10519,7 +10503,7 @@ if.end.i29.i: ; preds = %lor.lhs.false.i.i %arrayidx.i23.i.i = getelementptr inbounds i32, ptr %22, i64 %idxprom.i22.i.i store i32 %idx.addr.030.i.i, ptr %arrayidx.i23.i.i, align 4 %cmp.i30.i = icmp ult i32 %shr.i31.i.i, 2 - br i1 %cmp.i30.i, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i.i, !llvm.loop !39 + br i1 %cmp.i30.i, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i.i, !llvm.loop !40 if.end.while.end.loopexit_crit_edge.i.i: ; preds = %if.end.i29.i %.pre.pre.i.i = load ptr, ptr %m_values.i, align 8 @@ -10605,7 +10589,7 @@ if.end16.i.i: ; preds = %cond.end.i.i store i32 %idx.addr.040.i.i, ptr %arrayidx.i33.i.i, align 4 %shl.i.i.i = shl i32 %cond.i.i, 1 %cmp.not.i.i = icmp slt i32 %shl.i.i.i, %26 - br i1 %cmp.not.i.i, label %if.end.i36.i, label %if.end16.while.end.loopexit_crit_edge.i.i, !llvm.loop !40 + br i1 %cmp.not.i.i, label %if.end.i36.i, label %if.end16.while.end.loopexit_crit_edge.i.i, !llvm.loop !41 if.end16.while.end.loopexit_crit_edge.i.i: ; preds = %if.end16.i.i %.pre49.pre.i.i = load ptr, ptr %m_values.i, align 8 @@ -10802,18 +10786,10 @@ if.then: ; preds = %entry %and.i.i12 = and i32 %shr.i.i11, 32767 %6 = load ptr, ptr %m_context, align 8 %m_nodes.i.i = getelementptr inbounds i8, ptr %6, i64 9112 - %7 = load ptr, ptr %m_nodes.i.i, align 8 - %cmp.i.i.i = icmp eq ptr %7, null - br i1 %cmp.i.i.i, label %_ZNK3smt7context22get_num_b_internalizedEv.exit, label %if.end.i.i.i - -if.end.i.i.i: ; preds = %if.then + %7 = load ptr, ptr %m_nodes.i.i, align 8, !nonnull !10, !noundef !10 %arrayidx.i.i.i = getelementptr inbounds i8, ptr %7, i64 -4 %8 = load i32, ptr %arrayidx.i.i.i, align 4 - br label %_ZNK3smt7context22get_num_b_internalizedEv.exit - -_ZNK3smt7context22get_num_b_internalizedEv.exit: ; preds = %if.then, %if.end.i.i.i - %retval.0.i.i.i = phi i32 [ %8, %if.end.i.i.i ], [ 0, %if.then ] - %rem = urem i32 %and.i.i12, %retval.0.i.i.i + %rem = urem i32 %and.i.i12, %8 store i32 %rem, ptr %next, align 4 %9 = load ptr, ptr %m_context, align 8 %shl.i.i = shl nuw nsw i32 %rem, 1 @@ -10825,7 +10801,7 @@ _ZNK3smt7context22get_num_b_internalizedEv.exit: ; preds = %if.then, %if.end.i. %cmp10 = icmp eq i8 %11, 0 br i1 %cmp10, label %if.end26, label %if.end12 -if.end12: ; preds = %_ZNK3smt7context22get_num_b_internalizedEv.exit, %entry +if.end12: ; preds = %if.then, %entry %m_queue = getelementptr inbounds i8, ptr %this, i64 48 %12 = getelementptr inbounds i8, ptr %this, i64 64 %m_value2indices10.i = getelementptr inbounds i8, ptr %this, i64 72 @@ -10948,7 +10924,7 @@ if.end16.i.i: ; preds = %cond.end.i.i store i32 %idx.addr.040.i.i, ptr %arrayidx.i33.i.i, align 4 %shl.i.i.i = shl i32 %cond.i.i, 1 %cmp.not.i.i = icmp slt i32 %shl.i.i.i, %30 - br i1 %cmp.not.i.i, label %if.end.i15.i, label %if.end16.while.end.loopexit_crit_edge.i.i, !llvm.loop !40 + br i1 %cmp.not.i.i, label %if.end.i15.i, label %if.end16.while.end.loopexit_crit_edge.i.i, !llvm.loop !41 if.end16.while.end.loopexit_crit_edge.i.i: ; preds = %if.end16.i.i %.pre49.pre.i.i = load ptr, ptr %12, align 8 @@ -10982,7 +10958,7 @@ _ZN4heapIN12_GLOBAL__N_119theory_aware_act_ltEE9erase_minEv.exit: ; preds = %if. %arrayidx.i.i.i.i17 = getelementptr inbounds i8, ptr %39, i64 %idxprom.i.i.i.i16 %40 = load i8, ptr %arrayidx.i.i.i.i17, align 1 %cmp18 = icmp eq i8 %40, 0 - br i1 %cmp18, label %if.end26, label %while.cond, !llvm.loop !41 + br i1 %cmp18, label %if.end26, label %while.cond, !llvm.loop !42 while.end: ; preds = %_ZNK4heapIN12_GLOBAL__N_119theory_aware_act_ltEE5emptyEv.exit store i32 2147483647, ptr %next, align 4 @@ -11024,7 +11000,7 @@ if.else.i.i: ; preds = %for.body.i.i for.inc.i.i: ; preds = %if.else.i.i, %if.then.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %curr.031.i.i, i64 8 %cmp.not.i.i21 = icmp eq ptr %incdec.ptr.i.i, %add.ptr5.i.i - br i1 %cmp.not.i.i21, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !42 + br i1 %cmp.not.i.i21, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !43 for.body20.i.i: ; preds = %for.cond18.preheader.i.i, %for.body20.i.i.backedge %curr.133.i.i = phi ptr [ %curr.133.i.i.be, %for.body20.i.i.backedge ], [ %42, %for.cond18.preheader.i.i ] @@ -11054,7 +11030,7 @@ for.inc36.i.i: ; preds = %if.then22.i.i for.body20.i.i.backedge: ; preds = %for.inc36.i.i, %if.else30.i.i %curr.133.i.i.be = phi ptr [ %incdec.ptr37.old.i.i, %for.inc36.i.i ], [ %incdec.ptr37.i.i, %if.else30.i.i ] - br label %for.body20.i.i, !llvm.loop !43 + br label %for.body20.i.i, !llvm.loop !44 if.then22: ; preds = %if.then.i.i, %if.then22.i.i %m_theory_var_phase = getelementptr inbounds i8, ptr %this, i64 104 @@ -11097,7 +11073,7 @@ land.lhs.true.i.i.i: ; preds = %if.then.i.i.i for.inc.i.i.i: ; preds = %land.lhs.true.i.i.i, %if.then.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %curr.030.i.i.i, i64 16 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr5.i.i.i - br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !44 + br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !45 for.body20.i.i.i: ; preds = %for.cond18.preheader.i.i.i, %for.inc36.i.i.i %curr.132.i.i.i = phi ptr [ %incdec.ptr37.i.i.i, %for.inc36.i.i.i ], [ %48, %for.cond18.preheader.i.i.i ] @@ -11122,7 +11098,7 @@ land.lhs.true25.i.i.i: ; preds = %if.then22.i.i.i for.inc36.i.i.i: ; preds = %land.lhs.true25.i.i.i, %if.then22.i.i.i, %for.body20.i.i.i %incdec.ptr37.i.i.i = getelementptr inbounds i8, ptr %curr.132.i.i.i, i64 16 %cmp19.not.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i, %add.ptr.i.i.i - br i1 %cmp19.not.i.i.i, label %if.end26.sink.split, label %for.body20.i.i.i, !llvm.loop !45 + br i1 %cmp19.not.i.i.i, label %if.end26.sink.split, label %for.body20.i.i.i, !llvm.loop !46 _ZNK9table2mapI17default_map_entryIj5lboolE8int_hash10default_eqIjEE4findERKjRS1_.exit: ; preds = %land.lhs.true.i.i.i, %land.lhs.true25.i.i.i %retval.0.i.i.i24 = phi ptr [ %curr.132.i.i.i, %land.lhs.true25.i.i.i ], [ %curr.030.i.i.i, %land.lhs.true.i.i.i ] @@ -11135,7 +11111,7 @@ if.end26.sink.split: ; preds = %for.body.i.i.i, %fo store i32 %.sink, ptr %phase, align 4 br label %if.end26 -if.end26: ; preds = %_ZN4heapIN12_GLOBAL__N_119theory_aware_act_ltEE9erase_minEv.exit, %if.else.i.i, %if.else30.i.i, %for.inc36.i.i, %if.end26.sink.split, %for.cond18.preheader.i.i, %_ZNK3smt7context22get_num_b_internalizedEv.exit +if.end26: ; preds = %_ZN4heapIN12_GLOBAL__N_119theory_aware_act_ltEE9erase_minEv.exit, %if.else.i.i, %if.else30.i.i, %for.inc36.i.i, %if.end26.sink.split, %for.cond18.preheader.i.i, %if.then ret void } @@ -11202,7 +11178,7 @@ for.inc: ; preds = %for.body, %if.end %first.2 = phi i8 [ %first.1, %if.end ], [ %first.012, %for.body ] %it.0 = getelementptr inbounds i8, ptr %it.013, i64 4 %cmp.not = icmp eq ptr %it.0, %add.ptr.i817 - br i1 %cmp.not, label %for.end, label %for.body, !llvm.loop !46 + br i1 %cmp.not, label %for.end, label %for.body, !llvm.loop !47 for.end: ; preds = %for.inc %12 = trunc nuw i8 %first.2 to i1 @@ -11411,7 +11387,7 @@ if.end.i.i5: ; preds = %lor.lhs.false.i.i %arrayidx.i23.i.i = getelementptr inbounds i32, ptr %11, i64 %idxprom.i22.i.i store i32 %idx.addr.030.i.i, ptr %arrayidx.i23.i.i, align 4 %cmp.i.i6 = icmp ult i32 %shr.i31.i.i, 2 - br i1 %cmp.i.i6, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i.i, !llvm.loop !39 + br i1 %cmp.i.i6, label %if.end.while.end.loopexit_crit_edge.i.i, label %lor.lhs.false.i.i, !llvm.loop !40 if.end.while.end.loopexit_crit_edge.i.i: ; preds = %if.end.i.i5 %.pre.pre.i.i = load ptr, ptr %m_values.i.i, align 8 @@ -11476,7 +11452,7 @@ land.lhs.true.i.i.i.i: ; preds = %if.then.i.i.i.i for.inc.i.i.i.i: ; preds = %land.lhs.true.i.i.i.i, %if.then.i.i.i.i, %for.body.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %curr.030.i.i.i.i, i64 24 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr5.i.i.i.i - br i1 %cmp.not.i.i.i.i, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !47 + br i1 %cmp.not.i.i.i.i, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !48 for.body20.i.i.i.i: ; preds = %for.cond18.preheader.i.i.i.i, %for.inc36.i.i.i.i %curr.132.i.i.i.i = phi ptr [ %incdec.ptr37.i.i.i.i, %for.inc36.i.i.i.i ], [ %this.8.val.0.val, %for.cond18.preheader.i.i.i.i ] @@ -11501,7 +11477,7 @@ land.lhs.true25.i.i.i.i: ; preds = %if.then22.i.i.i.i for.inc36.i.i.i.i: ; preds = %land.lhs.true25.i.i.i.i, %if.then22.i.i.i.i, %for.body20.i.i.i.i %incdec.ptr37.i.i.i.i = getelementptr inbounds i8, ptr %curr.132.i.i.i.i, i64 24 %cmp19.not.i.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i.i, %add.ptr.i.i.i.i - br i1 %cmp19.not.i.i.i.i, label %if.end.i, label %for.body20.i.i.i.i, !llvm.loop !48 + br i1 %cmp19.not.i.i.i.i, label %if.end.i, label %for.body20.i.i.i.i, !llvm.loop !49 _ZNK9table2mapI17default_map_entryIjdE8int_hash10default_eqIjEE4findERKjRd.exit.i: ; preds = %land.lhs.true.i.i.i.i, %land.lhs.true25.i.i.i.i %retval.0.i.i.i.i = phi ptr [ %curr.132.i.i.i.i, %land.lhs.true25.i.i.i.i ], [ %curr.030.i.i.i.i, %land.lhs.true.i.i.i.i ] @@ -11544,7 +11520,7 @@ land.lhs.true.i.i.i34.i: ; preds = %if.then.i.i.i13.i for.inc.i.i.i15.i: ; preds = %land.lhs.true.i.i.i34.i, %if.then.i.i.i13.i, %for.body.i.i.i9.i %incdec.ptr.i.i.i16.i = getelementptr inbounds i8, ptr %curr.030.i.i.i10.i, i64 24 %cmp.not.i.i.i17.i = icmp eq ptr %incdec.ptr.i.i.i16.i, %add.ptr5.i.i.i.i - br i1 %cmp.not.i.i.i17.i, label %for.cond18.preheader.i.i.i18.i, label %for.body.i.i.i9.i, !llvm.loop !47 + br i1 %cmp.not.i.i.i17.i, label %for.cond18.preheader.i.i.i18.i, label %for.body.i.i.i9.i, !llvm.loop !48 for.body20.i.i.i20.i: ; preds = %for.cond18.preheader.i.i.i18.i, %for.inc36.i.i.i25.i %curr.132.i.i.i21.i = phi ptr [ %incdec.ptr37.i.i.i26.i, %for.inc36.i.i.i25.i ], [ %this.8.val.0.val, %for.cond18.preheader.i.i.i18.i ] @@ -11569,7 +11545,7 @@ land.lhs.true25.i.i.i28.i: ; preds = %if.then22.i.i.i23.i for.inc36.i.i.i25.i: ; preds = %land.lhs.true25.i.i.i28.i, %if.then22.i.i.i23.i, %for.body20.i.i.i20.i %incdec.ptr37.i.i.i26.i = getelementptr inbounds i8, ptr %curr.132.i.i.i21.i, i64 24 %cmp19.not.i.i.i27.i = icmp eq ptr %incdec.ptr37.i.i.i26.i, %add.ptr.i.i.i5.i - br i1 %cmp19.not.i.i.i27.i, label %_ZNK12_GLOBAL__N_119theory_aware_act_ltclEjj.exit, label %for.body20.i.i.i20.i, !llvm.loop !48 + br i1 %cmp19.not.i.i.i27.i, label %_ZNK12_GLOBAL__N_119theory_aware_act_ltclEjj.exit, label %for.body20.i.i.i20.i, !llvm.loop !49 _ZNK9table2mapI17default_map_entryIjdE8int_hash10default_eqIjEE4findERKjRd.exit37.i: ; preds = %land.lhs.true.i.i.i34.i, %land.lhs.true25.i.i.i28.i %retval.0.i.i.i32.i = phi ptr [ %curr.132.i.i.i21.i, %land.lhs.true25.i.i.i28.i ], [ %curr.030.i.i.i10.i, %land.lhs.true.i.i.i34.i ] @@ -11670,7 +11646,7 @@ if.end16.i: ; preds = %cond.end.i store i32 %idx.addr.040.i, ptr %arrayidx.i33.i, align 4 %shl.i.i = shl i32 %cond.i, 1 %cmp.not.i = icmp slt i32 %shl.i.i, %4 - br i1 %cmp.not.i, label %if.end.i, label %if.end16.while.end.loopexit_crit_edge.i, !llvm.loop !40 + br i1 %cmp.not.i, label %if.end.i, label %if.end16.while.end.loopexit_crit_edge.i, !llvm.loop !41 if.end16.while.end.loopexit_crit_edge.i: ; preds = %if.end16.i %.pre49.pre.i = load ptr, ptr %m_values.i, align 8 @@ -11783,7 +11759,7 @@ if.end.i7: ; preds = %lor.lhs.false.i6 %arrayidx.i23.i = getelementptr inbounds i32, ptr %18, i64 %idxprom.i22.i store i32 %idx.addr.030.i, ptr %arrayidx.i23.i, align 4 %cmp.i8 = icmp ult i32 %shr.i31.i, 2 - br i1 %cmp.i8, label %if.end.while.end.loopexit_crit_edge.i, label %lor.lhs.false.i6, !llvm.loop !39 + br i1 %cmp.i8, label %if.end.while.end.loopexit_crit_edge.i, label %lor.lhs.false.i6, !llvm.loop !40 if.end.while.end.loopexit_crit_edge.i: ; preds = %if.end.i7 %.pre.pre.i = load ptr, ptr %m_values, align 8 @@ -11890,7 +11866,7 @@ for.inc: ; preds = %if.else, %if.then9 %del_entry.1 = phi ptr [ %del_entry.059, %if.then9 ], [ %curr.058, %if.else ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.058, i64 8 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !49 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !50 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.262 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -11942,7 +11918,7 @@ for.inc54: ; preds = %if.else39, %if.then %del_entry.3 = phi ptr [ %del_entry.262, %if.then31 ], [ %curr.161, %if.else39 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.161, i64 8 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !50 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !51 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 404, ptr noundef nonnull @.str.15) @@ -12013,7 +11989,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.024.i, i64 8 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !51 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !52 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.126.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -12025,7 +12001,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.126.i, i64 8 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !52 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !53 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 212, ptr noundef nonnull @.str.15) @@ -12041,7 +12017,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.028.i, i64 8 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableI14int_hash_entryILin2147483648ELin2147483647EE8int_hash10default_eqIjEE10move_tableEPS1_jS6_j.exit.loopexit, label %for.body.i, !llvm.loop !53 + br i1 %cmp.not.i, label %_ZN14core_hashtableI14int_hash_entryILin2147483648ELin2147483647EE8int_hash10default_eqIjEE10move_tableEPS1_jS6_j.exit.loopexit, label %for.body.i, !llvm.loop !54 _ZN14core_hashtableI14int_hash_entryILin2147483648ELin2147483647EE8int_hash10default_eqIjEE10move_tableEPS1_jS6_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -12158,7 +12134,7 @@ for.inc: ; preds = %for.body, %land.lhs %del_entry.1 = phi ptr [ %del_entry.063, %land.lhs.true ], [ %del_entry.063, %if.then9 ], [ %curr.062, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.062, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !54 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !55 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.267 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -12216,7 +12192,7 @@ for.inc54: ; preds = %for.body29, %land.l %del_entry.3 = phi ptr [ %del_entry.267, %land.lhs.true34 ], [ %del_entry.267, %if.then31 ], [ %curr.166, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.166, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !55 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !56 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 404, ptr noundef nonnull @.str.15) @@ -12282,7 +12258,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.025.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !56 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !57 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.127.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -12294,7 +12270,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.127.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !57 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !58 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 212, ptr noundef nonnull @.str.15) @@ -12309,7 +12285,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.029.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableI17default_map_entryIj5lboolEN9table2mapIS2_8int_hash10default_eqIjEE15entry_hash_procENS7_13entry_eq_procEE10move_tableEPS2_jSB_j.exit.loopexit, label %for.body.i, !llvm.loop !58 + br i1 %cmp.not.i, label %_ZN14core_hashtableI17default_map_entryIj5lboolEN9table2mapIS2_8int_hash10default_eqIjEE15entry_hash_procENS7_13entry_eq_procEE10move_tableEPS2_jSB_j.exit.loopexit, label %for.body.i, !llvm.loop !59 _ZN14core_hashtableI17default_map_entryIj5lboolEN9table2mapIS2_8int_hash10default_eqIjEE15entry_hash_procENS7_13entry_eq_procEE10move_tableEPS2_jSB_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -12424,7 +12400,7 @@ for.inc: ; preds = %for.body, %land.lhs %del_entry.1 = phi ptr [ %del_entry.063, %land.lhs.true ], [ %del_entry.063, %if.then9 ], [ %curr.062, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.062, i64 24 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !59 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !60 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.267 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -12480,7 +12456,7 @@ for.inc54: ; preds = %for.body29, %land.l %del_entry.3 = phi ptr [ %del_entry.267, %land.lhs.true34 ], [ %del_entry.267, %if.then31 ], [ %curr.166, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.166, i64 24 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !60 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !61 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 404, ptr noundef nonnull @.str.15) @@ -12546,7 +12522,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.025.i, i64 24 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !61 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !62 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.127.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -12558,7 +12534,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.127.i, i64 24 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !62 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !63 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.14, i32 noundef 212, ptr noundef nonnull @.str.15) @@ -12573,7 +12549,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.029.i, i64 24 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableI17default_map_entryIjdEN9table2mapIS1_8int_hash10default_eqIjEE15entry_hash_procENS6_13entry_eq_procEE10move_tableEPS1_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !63 + br i1 %cmp.not.i, label %_ZN14core_hashtableI17default_map_entryIjdEN9table2mapIS1_8int_hash10default_eqIjEE15entry_hash_procENS6_13entry_eq_procEE10move_tableEPS1_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !64 _ZN14core_hashtableI17default_map_entryIjdEN9table2mapIS1_8int_hash10default_eqIjEE15entry_hash_procENS6_13entry_eq_procEE10move_tableEPS1_jSA_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -12655,7 +12631,7 @@ attributes #28 = { cold noreturn nounwind } !7 = distinct !{!7, !5} !8 = distinct !{!8, !5} !9 = distinct !{!9, !5} -!10 = distinct !{!10, !5} +!10 = !{} !11 = distinct !{!11, !5} !12 = distinct !{!12, !5} !13 = distinct !{!13, !5} @@ -12709,3 +12685,4 @@ attributes #28 = { cold noreturn nounwind } !61 = distinct !{!61, !5} !62 = distinct !{!62, !5} !63 = distinct !{!63, !5} +!64 = distinct !{!64, !5} diff --git a/bench/z3/optimized/smt_model_finder.cpp.ll b/bench/z3/optimized/smt_model_finder.cpp.ll index b47d4e89f01..01e51a6979f 100644 --- a/bench/z3/optimized/smt_model_finder.cpp.ll +++ b/bench/z3/optimized/smt_model_finder.cpp.ll @@ -3937,27 +3937,18 @@ _ZNK6vectorIPN3smt2mf4nodeELb0EjE4sizeEv.exit.i: ; preds = %invoke.cont6.thread for.body.i29: ; preds = %_ZNK6vectorIPN3smt2mf4nodeELb0EjE4sizeEv.exit.i, %.noexc31 %i.09.i = phi i32 [ %dec.i, %.noexc31 ], [ %30, %_ZNK6vectorIPN3smt2mf4nodeELb0EjE4sizeEv.exit.i ] - %dec.i = add i32 %i.09.i, -1 %add.reass.i = add i32 %invariant.op.i, %i.09.i - %31 = load ptr, ptr %m_root_nodes.i, align 8 - %cmp.i2.i = icmp eq ptr %31, null - br i1 %cmp.i2.i, label %_ZNK6vectorIPN3smt2mf4nodeELb0EjE4sizeEv.exit6.i, label %if.end.i3.i - -if.end.i3.i: ; preds = %for.body.i29 + %31 = load ptr, ptr %m_root_nodes.i, align 8, !nonnull !19, !noundef !19 %arrayidx.i4.i = getelementptr inbounds i8, ptr %31, i64 -4 %32 = load i32, ptr %arrayidx.i4.i, align 4 - br label %_ZNK6vectorIPN3smt2mf4nodeELb0EjE4sizeEv.exit6.i - -_ZNK6vectorIPN3smt2mf4nodeELb0EjE4sizeEv.exit6.i: ; preds = %if.end.i3.i, %for.body.i29 - %retval.0.i5.i = phi i32 [ %32, %if.end.i3.i ], [ 0, %for.body.i29 ] - %rem.i = urem i32 %add.reass.i, %retval.0.i5.i + %rem.i = urem i32 %add.reass.i, %32 %idxprom.i.i = zext i32 %rem.i to i64 %arrayidx.i7.i = getelementptr inbounds ptr, ptr %31, i64 %idxprom.i.i %33 = load ptr, ptr %arrayidx.i7.i, align 8 br label %while.cond.i.i.i.i -while.cond.i.i.i.i: ; preds = %while.cond.i.i.i.i, %_ZNK6vectorIPN3smt2mf4nodeELb0EjE4sizeEv.exit6.i - %curr.0.i.i.i.i = phi ptr [ %33, %_ZNK6vectorIPN3smt2mf4nodeELb0EjE4sizeEv.exit6.i ], [ %34, %while.cond.i.i.i.i ] +while.cond.i.i.i.i: ; preds = %while.cond.i.i.i.i, %for.body.i29 + %curr.0.i.i.i.i = phi ptr [ %33, %for.body.i29 ], [ %34, %while.cond.i.i.i.i ] %m_find.i.i.i.i.i = getelementptr inbounds i8, ptr %curr.0.i.i.i.i, i64 8 %34 = load ptr, ptr %m_find.i.i.i.i.i, align 8 %cmp.i.i.i.i.i = icmp eq ptr %34, null @@ -3970,8 +3961,9 @@ _ZN3smt2mf10auf_solver10mk_inverseEPNS0_4nodeE.exit.i: ; preds = %while.cond.i.i to label %.noexc31 unwind label %lpad.loopexit .noexc31: ; preds = %_ZN3smt2mf10auf_solver10mk_inverseEPNS0_4nodeE.exit.i + %dec.i = add i32 %i.09.i, -1 %cmp.not.i30 = icmp eq i32 %dec.i, 0 - br i1 %cmp.not.i30, label %invoke.cont7, label %for.body.i29, !llvm.loop !19 + br i1 %cmp.not.i30, label %invoke.cont7, label %for.body.i29, !llvm.loop !20 invoke.cont7: ; preds = %.noexc31, %_ZNK6vectorIPN3smt2mf4nodeELb0EjE4sizeEv.exit.i, %invoke.cont6, %invoke.cont6.thread invoke void @_ZN3smt2mf10auf_solver22complete_partial_funcsERK13obj_hashtableI9func_declE(ptr noundef nonnull align 8 dereferenceable(344) %this, ptr noundef nonnull align 8 dereferenceable(20) %partial_funcs) @@ -4919,7 +4911,7 @@ _ZN6vectorIP10quantifierLb0EjE9push_backERKS1_.exit.i: ; preds = %.noexc21, %lor %inc.i.i = add i32 %24, 1 store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 %indvars.iv.next.i = add nuw nsw i64 %indvars.iv.i, 1 - br label %for.cond.i, !llvm.loop !20 + br label %for.cond.i, !llvm.loop !21 invoke.cont13: ; preds = %_ZNK6vectorIP10quantifierLb0EjE4sizeEv.exit.i invoke void @_ZN3smt12model_finder11process_aufERK10ptr_vectorI10quantifierEP11proto_model(ptr noundef nonnull align 8 dereferenceable(128) %this, ptr noundef nonnull align 8 dereferenceable(8) %qs, ptr noundef nonnull %m) @@ -5288,7 +5280,7 @@ if.then.i.i.i.i: ; preds = %for.body.i.i.i.i for.inc.i.i.i.i: ; preds = %if.then.i.i.i.i, %for.body.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i.i, i64 16 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr5.i.i.i.i - br i1 %cmp.not.i.i.i.i, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !21 + br i1 %cmp.not.i.i.i.i, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !22 for.body20.i.i.i.i: ; preds = %for.cond18.preheader.i.i.i.i, %for.inc36.i.i.i.i %curr.133.i.i.i.i = phi ptr [ %incdec.ptr37.i.i.i.i, %for.inc36.i.i.i.i ], [ %8, %for.cond18.preheader.i.i.i.i ] @@ -5310,7 +5302,7 @@ if.then22.i.i.i.i: ; preds = %for.body20.i.i.i.i for.inc36.i.i.i.i: ; preds = %if.then22.i.i.i.i, %for.body20.i.i.i.i %incdec.ptr37.i.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i.i, i64 16 %cmp19.not.i.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i.i, %add.ptr.i.i.i.i - br i1 %cmp19.not.i.i.i.i, label %return, label %for.body20.i.i.i.i, !llvm.loop !22 + br i1 %cmp19.not.i.i.i.i, label %return, label %for.body20.i.i.i.i, !llvm.loop !23 _ZNK3smt2mf17instantiation_set7get_invEP4expr.exit: ; preds = %if.then.i.i.i.i, %if.then22.i.i.i.i %retval.0.i.i.i.i = phi ptr [ %curr.133.i.i.i.i, %if.then22.i.i.i.i ], [ %curr.031.i.i.i.i, %if.then.i.i.i.i ] @@ -5361,7 +5353,7 @@ if.then.i.i.i.i37: ; preds = %for.body.i.i.i.i16 for.inc.i.i.i.i19: ; preds = %if.then.i.i.i.i37, %for.body.i.i.i.i16 %incdec.ptr.i.i.i.i20 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i17, i64 16 %cmp.not.i.i.i.i21 = icmp eq ptr %incdec.ptr.i.i.i.i20, %add.ptr5.i.i.i.i14 - br i1 %cmp.not.i.i.i.i21, label %for.cond18.preheader.i.i.i.i22, label %for.body.i.i.i.i16, !llvm.loop !23 + br i1 %cmp.not.i.i.i.i21, label %for.cond18.preheader.i.i.i.i22, label %for.body.i.i.i.i16, !llvm.loop !24 for.body20.i.i.i.i24: ; preds = %for.cond18.preheader.i.i.i.i22, %for.inc36.i.i.i.i27 %curr.133.i.i.i.i25 = phi ptr [ %incdec.ptr37.i.i.i.i28, %for.inc36.i.i.i.i27 ], [ %17, %for.cond18.preheader.i.i.i.i22 ] @@ -5383,7 +5375,7 @@ if.then22.i.i.i.i30: ; preds = %for.body20.i.i.i.i2 for.inc36.i.i.i.i27: ; preds = %if.then22.i.i.i.i30, %for.body20.i.i.i.i24 %incdec.ptr37.i.i.i.i28 = getelementptr inbounds i8, ptr %curr.133.i.i.i.i25, i64 16 %cmp19.not.i.i.i.i29 = icmp eq ptr %incdec.ptr37.i.i.i.i28, %add.ptr.i.i.i.i12 - br i1 %cmp19.not.i.i.i.i29, label %if.then8, label %for.body20.i.i.i.i24, !llvm.loop !24 + br i1 %cmp19.not.i.i.i.i29, label %if.then8, label %for.body20.i.i.i.i24, !llvm.loop !25 _ZN3smt2mf10auf_solver25is_default_representativeEP4expr.exit: ; preds = %if.then.i.i.i.i37, %if.then22.i.i.i.i30 %retval.0.i.i.i.i35 = phi ptr [ %curr.133.i.i.i.i25, %if.then22.i.i.i.i30 ], [ %curr.031.i.i.i.i17, %if.then.i.i.i.i37 ] @@ -5432,7 +5424,7 @@ if.then.i.i.i.i73: ; preds = %for.body.i.i.i.i51 for.inc.i.i.i.i54: ; preds = %if.then.i.i.i.i73, %for.body.i.i.i.i51 %incdec.ptr.i.i.i.i55 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i52, i64 16 %cmp.not.i.i.i.i56 = icmp eq ptr %incdec.ptr.i.i.i.i55, %add.ptr5.i.i.i.i49 - br i1 %cmp.not.i.i.i.i56, label %for.cond18.preheader.i.i.i.i57, label %for.body.i.i.i.i51, !llvm.loop !25 + br i1 %cmp.not.i.i.i.i56, label %for.cond18.preheader.i.i.i.i57, label %for.body.i.i.i.i51, !llvm.loop !26 for.body20.i.i.i.i59: ; preds = %for.cond18.preheader.i.i.i.i57, %for.inc36.i.i.i.i62 %curr.133.i.i.i.i60 = phi ptr [ %incdec.ptr37.i.i.i.i63, %for.inc36.i.i.i.i62 ], [ %25, %for.cond18.preheader.i.i.i.i57 ] @@ -5454,7 +5446,7 @@ if.then22.i.i.i.i65: ; preds = %for.body20.i.i.i.i5 for.inc36.i.i.i.i62: ; preds = %if.then22.i.i.i.i65, %for.body20.i.i.i.i59 %incdec.ptr37.i.i.i.i63 = getelementptr inbounds i8, ptr %curr.133.i.i.i.i60, i64 16 %cmp19.not.i.i.i.i64 = icmp eq ptr %incdec.ptr37.i.i.i.i63, %add.ptr.i.i.i.i47 - br i1 %cmp19.not.i.i.i.i64, label %_ZNK3smt2mf17instantiation_set14get_generationEP4expr.exit, label %for.body20.i.i.i.i59, !llvm.loop !26 + br i1 %cmp19.not.i.i.i.i64, label %_ZNK3smt2mf17instantiation_set14get_generationEP4expr.exit, label %for.body20.i.i.i.i59, !llvm.loop !27 if.then.i.i70: ; preds = %if.then.i.i.i.i73, %if.then22.i.i.i.i65 %retval.0.i.i.i.i71 = phi ptr [ %curr.133.i.i.i.i60, %if.then22.i.i.i.i65 ], [ %curr.031.i.i.i.i52, %if.then.i.i.i.i73 ] @@ -5554,7 +5546,7 @@ land.rhs.i.i.i.i: ; preds = %if.end9, %while.bod while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i.i, i64 16 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !27 + br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !28 invoke.cont11: ; preds = %land.rhs.i.i.i.i, %if.end9 %retval.sroa.0.1.i.i = phi ptr [ %12, %if.end9 ], [ %retval.sroa.0.0.i.i, %land.rhs.i.i.i.i ] @@ -5603,7 +5595,7 @@ for.body.i.i: ; preds = %for.body.i.i, %for. store ptr %20, ptr %arrayidx.i.i19, align 8 %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 %exitcond.not.i.i = icmp eq i64 %indvars.iv.next.i.i, %wide.trip.count.i.i - br i1 %exitcond.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !28 + br i1 %exitcond.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !29 for.end.i.i: ; preds = %for.body.i.i, %call.i.i18.noexc %cmp.not.i.i.i = icmp eq ptr %.pre.i.i, %m_initial_buffer.i.i @@ -5647,7 +5639,7 @@ land.rhs.i.i: ; preds = %for.inc, %while.bod while.body.i.i: ; preds = %land.rhs.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %__begin2.sroa.0.1, i64 16 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprPS1_E13obj_map_entryE8obj_hashINS3_8key_dataEE10default_eqIS6_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !27 + br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprPS1_E13obj_map_entryE8obj_hashINS3_8key_dataEE10default_eqIS6_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !28 _ZN14core_hashtableIN7obj_mapI4exprPS1_E13obj_map_entryE8obj_hashINS3_8key_dataEE10default_eqIS6_EE8iteratorppEv.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %for.inc %__begin2.sroa.0.2 = phi ptr [ %incdec.ptr.i, %for.inc ], [ %__begin2.sroa.0.1, %land.rhs.i.i ], [ %incdec.ptr.i.i, %while.body.i.i ] @@ -5732,7 +5724,7 @@ for.inc39: ; preds = %if.end.i.i.i.i.i, % %asserted_something.1 = phi i1 [ %asserted_something.046, %_ZN3smt12model_finder17get_uvar_inst_setEP10quantifierj.exit ], [ %asserted_something.046, %if.end ], [ true, %_ZN7obj_refI4expr11ast_managerED2Ev.exit ], [ true, %if.end.i.i.i.i.i ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end40, label %for.body, !llvm.loop !29 + br i1 %exitcond.not, label %for.end40, label %for.body, !llvm.loop !30 lpad27: ; preds = %for.end, %invoke.cont34 %36 = landingpad { ptr, i32 } @@ -5881,7 +5873,7 @@ sw.bb9.i: ; preds = %for.body _ZN3smt7context6assignEN3sat7literalERKNS_15b_justificationEb.exit: ; preds = %for.body, %sw.bb.i, %sw.bb9.i %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !30 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !31 for.end: ; preds = %_ZN3smt7context6assignEN3sat7literalERKNS_15b_justificationEb.exit %16 = load ptr, ptr %m_nodes.i, align 8 @@ -7006,7 +6998,7 @@ if.then.i.i.i: ; preds = %for.body.i.i.i for.inc.i.i.i: ; preds = %if.then.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i, i64 16 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr5.i.i.i - br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !21 + br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !22 for.body20.i.i.i: ; preds = %for.cond18.preheader.i.i.i, %for.inc36.i.i.i %curr.133.i.i.i = phi ptr [ %incdec.ptr37.i.i.i, %for.inc36.i.i.i ], [ %2, %for.cond18.preheader.i.i.i ] @@ -7028,7 +7020,7 @@ if.then22.i.i.i: ; preds = %for.body20.i.i.i for.inc36.i.i.i: ; preds = %if.then22.i.i.i, %for.body20.i.i.i %incdec.ptr37.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i, i64 16 %cmp19.not.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i, %add.ptr.i.i.i - br i1 %cmp19.not.i.i.i, label %if.end, label %for.body20.i.i.i, !llvm.loop !22 + br i1 %cmp19.not.i.i.i, label %if.end, label %for.body20.i.i.i, !llvm.loop !23 if.then: ; preds = %if.then.i.i.i, %if.then22.i.i.i %retval.0.i.i.i = phi ptr [ %curr.133.i.i.i, %if.then22.i.i.i ], [ %curr.031.i.i.i, %if.then.i.i.i ] @@ -7180,7 +7172,7 @@ for.inc.i.i: ; preds = %if.else.i.i, %if.th %overhead.1.i.i = phi i32 [ %inc.i.i, %if.else.i.i ], [ %overhead.07.i.i, %if.then5.i.i ] %incdec.ptr.i.i = getelementptr inbounds i8, ptr %curr.06.i.i, i64 16 %cmp4.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i - br i1 %cmp4.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !31 + br i1 %cmp4.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !32 for.end.i.i: ; preds = %for.inc.i.i %.pre.i.i = load i32, ptr %m_capacity.i.i, align 8 @@ -7264,7 +7256,7 @@ for.inc.i.i16: ; preds = %if.else.i.i39, %if. %overhead.1.i.i17 = phi i32 [ %inc.i.i40, %if.else.i.i39 ], [ %overhead.07.i.i12, %if.then5.i.i15 ] %incdec.ptr.i.i18 = getelementptr inbounds i8, ptr %curr.06.i.i13, i64 16 %cmp4.not.i.i19 = icmp eq ptr %incdec.ptr.i.i18, %add.ptr.i.i9 - br i1 %cmp4.not.i.i19, label %for.end.i.i20, label %for.body.i.i11, !llvm.loop !31 + br i1 %cmp4.not.i.i19, label %for.end.i.i20, label %for.body.i.i11, !llvm.loop !32 for.end.i.i20: ; preds = %for.inc.i.i16 %.pre.i.i21 = load i32, ptr %m_capacity.i.i7, align 8 @@ -7444,7 +7436,7 @@ land.rhs.i.i.i.i: ; preds = %entry, %while.body. while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i.i, i64 16 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !33 invoke.cont2: ; preds = %land.rhs.i.i.i.i, %entry %retval.sroa.0.1.i.i = phi ptr [ %0, %entry ], [ %retval.sroa.0.0.i.i, %land.rhs.i.i.i.i ] @@ -7484,7 +7476,7 @@ land.rhs.i.i: ; preds = %for.inc, %while.bod while.body.i.i: ; preds = %land.rhs.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %__begin2.sroa.0.1, i64 16 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !33 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %for.inc %__begin2.sroa.0.2 = phi ptr [ %incdec.ptr.i, %for.inc ], [ %__begin2.sroa.0.1, %land.rhs.i.i ], [ %incdec.ptr.i.i, %while.body.i.i ] @@ -7642,7 +7634,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.053, %if.then9 ], [ %curr.052, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.052, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !33 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !34 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.256 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -7688,7 +7680,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.256, %if.then31 ], [ %curr.155, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.155, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !34 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !35 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 404, ptr noundef nonnull @.str.8) @@ -7753,7 +7745,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !35 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !36 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -7764,7 +7756,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !36 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !37 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 212, ptr noundef nonnull @.str.8) @@ -7779,7 +7771,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprPS1_E13obj_map_entryE8obj_hashINS3_8key_dataEE10default_eqIS6_EE10move_tableEPS4_jSB_j.exit.loopexit, label %for.body.i, !llvm.loop !37 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprPS1_E13obj_map_entryE8obj_hashINS3_8key_dataEE10default_eqIS6_EE10move_tableEPS4_jSB_j.exit.loopexit, label %for.body.i, !llvm.loop !38 _ZN14core_hashtableIN7obj_mapI4exprPS1_E13obj_map_entryE8obj_hashINS3_8key_dataEE10default_eqIS6_EE10move_tableEPS4_jSB_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -8164,7 +8156,7 @@ if.then.i.i.i.i: ; preds = %for.body.i.i.i _ZN11delete_procI10cond_macroEclEPS0_.exit.i.i.i: ; preds = %if.then.i.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %__first.addr.04.i.i.i, i64 8 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr.i.i.i - br i1 %cmp.not.i.i.i, label %_ZSt8for_eachIPP10cond_macro11delete_procIS0_EET0_T_S6_S5_.exit.i.i, label %for.body.i.i.i, !llvm.loop !38 + br i1 %cmp.not.i.i.i, label %_ZSt8for_eachIPP10cond_macro11delete_procIS0_EET0_T_S6_S5_.exit.i.i, label %for.body.i.i.i, !llvm.loop !39 _ZSt8for_eachIPP10cond_macro11delete_procIS0_EET0_T_S6_S5_.exit.i.i: ; preds = %_ZN11delete_procI10cond_macroEclEPS0_.exit.i.i.i %.pre.i.i = load ptr, ptr %m_cond_macros, align 8 @@ -8280,7 +8272,7 @@ _Z7deallocIN3smt2mf5qinfoEEvPT_.exit.i.i: ; preds = %for.body.i _ZN11delete_procIN3smt2mf5qinfoEEclEPS2_.exit.i: ; preds = %_Z7deallocIN3smt2mf5qinfoEEvPT_.exit.i.i, %for.body.i %incdec.ptr.i = getelementptr inbounds i8, ptr %__first.addr.04.i, i64 8 %cmp.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr.i - br i1 %cmp.not.i, label %invoke.cont5.loopexit, label %for.body.i, !llvm.loop !39 + br i1 %cmp.not.i, label %invoke.cont5.loopexit, label %for.body.i, !llvm.loop !40 invoke.cont5.loopexit: ; preds = %_ZN11delete_procIN3smt2mf5qinfoEEclEPS2_.exit.i %vtable.pre = load ptr, ptr %this, align 8 @@ -8422,7 +8414,7 @@ _Z7deallocIN3smt2mf17instantiation_setEEvPT_.exit.i.i: ; preds = %for.body.i _ZN11delete_procIN3smt2mf17instantiation_setEEclEPS2_.exit.i: ; preds = %_Z7deallocIN3smt2mf17instantiation_setEEvPT_.exit.i.i, %for.body.i %incdec.ptr.i = getelementptr inbounds i8, ptr %__first.addr.04.i, i64 8 %cmp.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZSt8for_eachIPPN3smt2mf17instantiation_setE11delete_procIS2_EET0_T_S8_S7_.exit, label %for.body.i, !llvm.loop !40 + br i1 %cmp.not.i, label %_ZSt8for_eachIPPN3smt2mf17instantiation_setE11delete_procIS2_EET0_T_S8_S7_.exit, label %for.body.i, !llvm.loop !41 _ZSt8for_eachIPPN3smt2mf17instantiation_setE11delete_procIS2_EET0_T_S8_S7_.exit: ; preds = %_ZN11delete_procIN3smt2mf17instantiation_setEEclEPS2_.exit.i %.pre = load ptr, ptr %m_uvar_inst_sets, align 8 @@ -8647,7 +8639,7 @@ for.inc.i: ; preds = %if.else.i, %if.then %overhead.1.i = phi i32 [ %inc.i, %if.else.i ], [ %overhead.07.i, %if.then5.i ] %incdec.ptr.i = getelementptr inbounds i8, ptr %curr.06.i, i64 8 %cmp4.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr.i - br i1 %cmp4.not.i, label %for.end.i, label %for.body.i, !llvm.loop !41 + br i1 %cmp4.not.i, label %for.end.i, label %for.body.i, !llvm.loop !42 for.end.i: ; preds = %for.inc.i %.pre.i = load i32, ptr %m_capacity.i, align 8 @@ -8731,7 +8723,7 @@ for.inc.i16: ; preds = %if.else.i39, %if.th %overhead.1.i17 = phi i32 [ %inc.i40, %if.else.i39 ], [ %overhead.07.i12, %if.then5.i15 ] %incdec.ptr.i18 = getelementptr inbounds i8, ptr %curr.06.i13, i64 8 %cmp4.not.i19 = icmp eq ptr %incdec.ptr.i18, %add.ptr.i9 - br i1 %cmp4.not.i19, label %for.end.i20, label %for.body.i11, !llvm.loop !41 + br i1 %cmp4.not.i19, label %for.end.i20, label %for.body.i11, !llvm.loop !42 for.end.i20: ; preds = %for.inc.i16 %.pre.i21 = load i32, ptr %m_capacity.i7, align 8 @@ -8828,7 +8820,7 @@ if.then: ; preds = %for.body, %_Z9is_gr for.inc: ; preds = %_Z9is_groundPK4expr.exit, %if.then %inc = add nuw i32 %i.05, 1 %exitcond.not = icmp eq i32 %inc, %call - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !42 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !43 for.end: ; preds = %for.inc, %entry ret void @@ -9020,7 +9012,7 @@ if.then33: ; preds = %_ZN6vectorISt4pairI if.end36: ; preds = %for.body.i, %_ZN6vectorISt4pairIP4exprN3smt2mf19quantifier_analyzer8polarityEELb0EjE4backEv.exit, %sw.bb14, %if.then33, %if.else29, %if.then27, %if.else, %sw.default, %sw.bb20, %sw.bb16 %31 = load ptr, ptr %m_ftodo, align 8 %cmp.i = icmp eq ptr %31, null - br i1 %cmp.i, label %while.end, label %_ZNK6vectorISt4pairIP4exprN3smt2mf19quantifier_analyzer8polarityEELb0EjE5emptyEv.exit, !llvm.loop !43 + br i1 %cmp.i, label %while.end, label %_ZNK6vectorISt4pairIP4exprN3smt2mf19quantifier_analyzer8polarityEELb0EjE5emptyEv.exit, !llvm.loop !44 while.end: ; preds = %_ZNK6vectorISt4pairIP4exprN3smt2mf19quantifier_analyzer8polarityEELb0EjE5emptyEv.exit, %if.end36, %entry ret void @@ -9065,7 +9057,7 @@ if.then: ; preds = %_ZN6vectorIP4exprLb while.cond.backedge: ; preds = %_ZN3smt2mf19quantifier_analyzer11process_appEP3app.exit, %if.then10, %if.end, %if.then %7 = load ptr, ptr %m_ttodo, align 8 %cmp.i = icmp eq ptr %7, null - br i1 %cmp.i, label %while.end, label %_ZNK6vectorIP4exprLb0EjE5emptyEv.exit, !llvm.loop !44 + br i1 %cmp.i, label %while.end, label %_ZNK6vectorIP4exprLb0EjE5emptyEv.exit, !llvm.loop !45 if.end: ; preds = %_ZN6vectorIP4exprLb0EjE4backEv.exit %m_kind.i.i = getelementptr inbounds i8, ptr %5, i64 4 @@ -10597,7 +10589,7 @@ for.inc: ; preds = %for.body, %land.lhs %del_entry.1 = phi ptr [ %del_entry.079, %land.lhs.true ], [ %del_entry.079, %if.then9 ], [ %curr.078, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.078, i64 32 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !45 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !46 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.283 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -10673,7 +10665,7 @@ for.inc54: ; preds = %for.body29, %land.l %del_entry.3 = phi ptr [ %del_entry.283, %land.lhs.true34 ], [ %del_entry.283, %if.then31 ], [ %curr.182, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.182, i64 32 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !46 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !47 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 404, ptr noundef nonnull @.str.8) @@ -10740,7 +10732,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.031.i, i64 32 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond12.preheader.i, label %for.body8.i, !llvm.loop !47 + br i1 %cmp7.not.i, label %for.cond12.preheader.i, label %for.body8.i, !llvm.loop !48 for.body14.i: ; preds = %for.cond12.preheader.i, %for.inc19.i %target_curr.133.i = phi ptr [ %incdec.ptr20.i, %for.inc19.i ], [ %call.i.i, %for.cond12.preheader.i ] @@ -10752,7 +10744,7 @@ for.body14.i: ; preds = %for.cond12.preheade for.inc19.i: ; preds = %for.body14.i %incdec.ptr20.i = getelementptr inbounds i8, ptr %target_curr.133.i, i64 32 %cmp13.not.i = icmp eq ptr %incdec.ptr20.i, %add.ptr5.i - br i1 %cmp13.not.i, label %for.end21.i, label %for.body14.i, !llvm.loop !48 + br i1 %cmp13.not.i, label %for.end21.i, label %for.body14.i, !llvm.loop !49 for.end21.i: ; preds = %for.cond12.preheader.i, %for.inc19.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 212, ptr noundef nonnull @.str.8) @@ -10780,7 +10772,7 @@ for.inc23.sink.split.i: ; preds = %for.body8.i, %for.b for.inc23.i: ; preds = %for.inc23.sink.split.i, %for.body.i %incdec.ptr24.i = getelementptr inbounds i8, ptr %source_curr.035.i, i64 32 %cmp.not.i = icmp eq ptr %incdec.ptr24.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableI17default_map_entryISt4pairIP3astjEPN3smt2mf4nodeEEN9table2mapIS9_9pair_hashI12obj_ptr_hashIS2_E13unsigned_hashE10default_eqIS4_EE15entry_hash_procENSI_13entry_eq_procEE10move_tableEPS9_jSM_j.exit.loopexit, label %for.body.i, !llvm.loop !49 + br i1 %cmp.not.i, label %_ZN14core_hashtableI17default_map_entryISt4pairIP3astjEPN3smt2mf4nodeEEN9table2mapIS9_9pair_hashI12obj_ptr_hashIS2_E13unsigned_hashE10default_eqIS4_EE15entry_hash_procENSI_13entry_eq_procEE10move_tableEPS9_jSM_j.exit.loopexit, label %for.body.i, !llvm.loop !50 _ZN14core_hashtableI17default_map_entryISt4pairIP3astjEPN3smt2mf4nodeEEN9table2mapIS9_9pair_hashI12obj_ptr_hashIS2_E13unsigned_hashE10default_eqIS4_EE15entry_hash_procENSI_13entry_eq_procEE10move_tableEPS9_jSM_j.exit.loopexit: ; preds = %for.inc23.i %.pre = load ptr, ptr %m_table, align 8 @@ -10927,7 +10919,7 @@ if.then.i.i.i: ; preds = %for.body.i.i.i for.inc.i.i.i: ; preds = %if.then.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i, i64 16 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr5.i.i.i - br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !25 + br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !26 for.body20.i.i.i: ; preds = %for.cond18.preheader.i.i.i, %for.inc36.i.i.i %curr.133.i.i.i = phi ptr [ %incdec.ptr37.i.i.i, %for.inc36.i.i.i ], [ %2, %for.cond18.preheader.i.i.i ] @@ -10949,7 +10941,7 @@ if.then22.i.i.i: ; preds = %for.body20.i.i.i for.inc36.i.i.i: ; preds = %if.then22.i.i.i, %for.body20.i.i.i %incdec.ptr37.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i, i64 16 %cmp19.not.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i, %add.ptr.i.i.i - br i1 %cmp19.not.i.i.i, label %lor.lhs.false, label %for.body20.i.i.i, !llvm.loop !26 + br i1 %cmp19.not.i.i.i, label %lor.lhs.false, label %for.body20.i.i.i, !llvm.loop !27 lor.lhs.false: ; preds = %for.body.i.i.i, %for.inc36.i.i.i, %for.body20.i.i.i, %for.cond18.preheader.i.i.i %m_kind.i.i.i.i = getelementptr inbounds i8, ptr %n, i64 4 @@ -11233,7 +11225,7 @@ for.body.i.i89: ; preds = %for.body.i.i89, %fo call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i91, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i92, i64 16, i1 false) %indvars.iv.next.i.i93 = add nuw nsw i64 %indvars.iv.i.i90, 1 %exitcond.not.i.i94 = icmp eq i64 %indvars.iv.next.i.i93, %wide.trip.count.i.i88 - br i1 %exitcond.not.i.i94, label %for.end.i.i95, label %for.body.i.i89, !llvm.loop !50 + br i1 %exitcond.not.i.i94, label %for.end.i.i95, label %for.body.i.i89, !llvm.loop !51 for.end.i.i95: ; preds = %for.body.i.i89, %call.i.i.noexc109 %cmp.not.i.i.i97 = icmp eq ptr %.pre.i.i86, %6 @@ -11326,7 +11318,7 @@ for.body.i.i142: ; preds = %for.body.i.i142, %f call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i144, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i145, i64 16, i1 false) %indvars.iv.next.i.i146 = add nuw nsw i64 %indvars.iv.i.i143, 1 %exitcond.not.i.i147 = icmp eq i64 %indvars.iv.next.i.i146, %wide.trip.count.i.i141 - br i1 %exitcond.not.i.i147, label %for.end.i.i148, label %for.body.i.i142, !llvm.loop !50 + br i1 %exitcond.not.i.i147, label %for.end.i.i148, label %for.body.i.i142, !llvm.loop !51 for.end.i.i148: ; preds = %for.body.i.i142, %call.i.i.noexc162 %cmp.not.i.i.i150 = icmp eq ptr %.pre.i.i139, %6 @@ -11359,7 +11351,7 @@ invoke.cont46: ; preds = %sw.default while.cond14.backedge: ; preds = %invoke.cont24, %land.rhs.i.i.i118, %_ZNK11ast_manager14is_model_valueEPK4expr.exit.i122, %invoke.cont20 %35 = load i32, ptr %second, align 8 %cmp = icmp ult i32 %35, %12 - br i1 %cmp, label %while.body15, label %while.cond14.while.end_crit_edge, !llvm.loop !51 + br i1 %cmp, label %while.body15, label %while.cond14.while.end_crit_edge, !llvm.loop !52 while.cond14.while.end_crit_edge: ; preds = %while.cond14.backedge %.pre350 = load i32, ptr %m_pos.i.i, align 8 @@ -11449,7 +11441,7 @@ invoke.cont63: ; preds = %invoke.cont59 %shl.i.i.i.i197 = shl nuw i32 1, %rem.i.i.i.i196 %and.i.i.i198 = and i32 %50, %shl.i.i.i.i197 %cmp.i.i.i199.not = icmp eq i32 %and.i.i.i198, 0 - br i1 %cmp.i.i.i199.not, label %invoke.cont67, label %while.cond54, !llvm.loop !52 + br i1 %cmp.i.i.i199.not, label %invoke.cont67, label %while.cond54, !llvm.loop !53 if.then.i.i.i203: ; preds = %invoke.cont59 %add.i.i.i204 = add i32 %47, 1 @@ -11505,7 +11497,7 @@ for.body.i.i226: ; preds = %for.body.i.i226, %f call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i228, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i229, i64 16, i1 false) %indvars.iv.next.i.i230 = add nuw nsw i64 %indvars.iv.i.i227, 1 %exitcond.not.i.i231 = icmp eq i64 %indvars.iv.next.i.i230, %wide.trip.count.i.i225 - br i1 %exitcond.not.i.i231, label %for.end.i.i232, label %for.body.i.i226, !llvm.loop !50 + br i1 %exitcond.not.i.i231, label %for.end.i.i232, label %for.body.i.i226, !llvm.loop !51 for.end.i.i232: ; preds = %for.body.i.i226, %call.i.i.noexc246 %cmp.not.i.i.i234 = icmp eq ptr %.pre.i.i223, %6 @@ -11573,7 +11565,7 @@ invoke.cont77: ; preds = %sw.default76 sw.epilog78: ; preds = %_ZNK11ast_manager14is_model_valueEPK4expr.exit.i260, %land.rhs.i.i.i256, %while.end72, %_ZNK11ast_manager14is_model_valueEPK4expr.exit.i176, %land.rhs.i.i.i172, %while.end, %invoke.cont9 %.pr = phi i32 [ %dec.i251, %_ZNK11ast_manager14is_model_valueEPK4expr.exit.i260 ], [ %dec.i251, %land.rhs.i.i.i256 ], [ %dec.i251, %while.end72 ], [ %dec.i167.pre-phi, %_ZNK11ast_manager14is_model_valueEPK4expr.exit.i176 ], [ %dec.i167.pre-phi, %land.rhs.i.i.i172 ], [ %dec.i167.pre-phi, %while.end ], [ %sub.i, %invoke.cont9 ] %cmp.i = icmp eq i32 %.pr, 0 - br i1 %cmp.i, label %while.end79, label %start.preheader, !llvm.loop !53 + br i1 %cmp.i, label %while.end79, label %start.preheader, !llvm.loop !54 while.end79: ; preds = %sw.epilog78 %62 = load ptr, ptr %stack, align 8 @@ -11708,7 +11700,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.053, %if.then9 ], [ %curr.052, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.052, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !54 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !55 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.256 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -11754,7 +11746,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.256, %if.then31 ], [ %curr.155, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.155, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !55 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !56 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 404, ptr noundef nonnull @.str.8) @@ -11819,7 +11811,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !56 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !57 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -11830,7 +11822,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !57 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !58 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 212, ptr noundef nonnull @.str.8) @@ -11845,7 +11837,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !58 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !59 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -12213,7 +12205,7 @@ _ZNK6vectorIP4exprLb0EjE3endEv.exit.i.i: ; preds = %_ZNK3smt2mf4node8ge for.cond.i.i: ; preds = %for.body.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %it.04.i.i, i64 8 %cmp.not.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i.i - br i1 %cmp.not.not.i.i, label %lor.lhs.false.i.i, label %for.body.i.i, !llvm.loop !59 + br i1 %cmp.not.not.i.i, label %lor.lhs.false.i.i, label %for.body.i.i, !llvm.loop !60 for.body.i.i: ; preds = %_ZNK6vectorIP4exprLb0EjE3endEv.exit.i.i, %for.cond.i.i %it.04.i.i = phi ptr [ %incdec.ptr.i.i, %for.cond.i.i ], [ %6, %_ZNK6vectorIP4exprLb0EjE3endEv.exit.i.i ] @@ -12685,7 +12677,7 @@ _ZNK6vectorIPN3smt2mf4nodeELb0EjE3endEv.exit.i.i: ; preds = %for.body.i for.cond.i.i: ; preds = %for.body.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %it.04.i.i, i64 8 %cmp.not.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i.i - br i1 %cmp.not.not.i.i, label %lor.lhs.false.i.i, label %for.body.i.i, !llvm.loop !60 + br i1 %cmp.not.not.i.i, label %lor.lhs.false.i.i, label %for.body.i.i, !llvm.loop !61 for.body.i.i: ; preds = %_ZNK6vectorIPN3smt2mf4nodeELb0EjE3endEv.exit.i.i, %for.cond.i.i %it.04.i.i = phi ptr [ %incdec.ptr.i.i, %for.cond.i.i ], [ %18, %_ZNK6vectorIPN3smt2mf4nodeELb0EjE3endEv.exit.i.i ] @@ -12790,7 +12782,7 @@ _ZNK6vectorIP4exprLb0EjE3endEv.exit.i.i: ; preds = %for.body.i18 for.cond.i.i27: ; preds = %for.body.i.i24 %incdec.ptr.i.i28 = getelementptr inbounds i8, ptr %it.04.i.i25, i64 8 %cmp.not.not.i.i29 = icmp eq ptr %incdec.ptr.i.i28, %add.ptr.i.i.i22 - br i1 %cmp.not.not.i.i29, label %lor.lhs.false.i.i30, label %for.body.i.i24, !llvm.loop !59 + br i1 %cmp.not.not.i.i29, label %lor.lhs.false.i.i30, label %for.body.i.i24, !llvm.loop !60 for.body.i.i24: ; preds = %_ZNK6vectorIP4exprLb0EjE3endEv.exit.i.i, %for.cond.i.i27 %it.04.i.i25 = phi ptr [ %incdec.ptr.i.i28, %for.cond.i.i27 ], [ %32, %_ZNK6vectorIP4exprLb0EjE3endEv.exit.i.i ] @@ -12917,7 +12909,7 @@ _ZNK6vectorIPN3smt2mf4nodeELb0EjE3endEv.exit.i.i: ; preds = %_ZNK3smt2mf4node8ge for.cond.i.i: ; preds = %for.body.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %it.04.i.i, i64 8 %cmp.not.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i.i - br i1 %cmp.not.not.i.i, label %lor.lhs.false.i.i, label %for.body.i.i, !llvm.loop !60 + br i1 %cmp.not.not.i.i, label %lor.lhs.false.i.i, label %for.body.i.i, !llvm.loop !61 for.body.i.i: ; preds = %_ZNK6vectorIPN3smt2mf4nodeELb0EjE3endEv.exit.i.i, %for.cond.i.i %it.04.i.i = phi ptr [ %incdec.ptr.i.i, %for.cond.i.i ], [ %9, %_ZNK6vectorIPN3smt2mf4nodeELb0EjE3endEv.exit.i.i ] @@ -12979,7 +12971,7 @@ _ZNK6vectorIPN3smt2mf4nodeELb0EjE3endEv.exit.i.i21: ; preds = %_ZNK3smt2mf4node8 for.cond.i.i28: ; preds = %for.body.i.i25 %incdec.ptr.i.i29 = getelementptr inbounds i8, ptr %it.04.i.i26, i64 8 %cmp.not.not.i.i30 = icmp eq ptr %incdec.ptr.i.i29, %add.ptr.i.i.i23 - br i1 %cmp.not.not.i.i30, label %lor.lhs.false.i.i31, label %for.body.i.i25, !llvm.loop !60 + br i1 %cmp.not.not.i.i30, label %lor.lhs.false.i.i31, label %for.body.i.i25, !llvm.loop !61 for.body.i.i25: ; preds = %_ZNK6vectorIPN3smt2mf4nodeELb0EjE3endEv.exit.i.i21, %for.cond.i.i28 %it.04.i.i26 = phi ptr [ %incdec.ptr.i.i29, %for.cond.i.i28 ], [ %18, %_ZNK6vectorIPN3smt2mf4nodeELb0EjE3endEv.exit.i.i21 ] @@ -13542,7 +13534,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.053, %if.then9 ], [ %curr.052, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.052, i64 8 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !61 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !62 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.256 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -13590,7 +13582,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.256, %if.then31 ], [ %curr.155, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.155, i64 8 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !62 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !63 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 404, ptr noundef nonnull @.str.8) @@ -13746,7 +13738,7 @@ terminate.lpad.i: ; preds = %if.then2.i.i.i for.inc: ; preds = %if.then2.i.i.i, %if.then.i.i.i, %cleanup, %if.then %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !63 + br i1 %exitcond.not, label %for.end, label %for.body, !llvm.loop !64 for.end: ; preds = %for.inc, %entry ret void @@ -13807,7 +13799,7 @@ if.then7: ; preds = %for.body for.inc: ; preds = %if.then7, %for.body %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 %if.end20, label %for.body, !llvm.loop !64 + br i1 %exitcond.not, label %if.end20, label %for.body, !llvm.loop !65 if.else11: ; preds = %entry %idx.ext.i = zext i32 %0 to i64 @@ -13888,7 +13880,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 8 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !65 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !66 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -13899,7 +13891,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 8 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !66 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !67 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 212, ptr noundef nonnull @.str.8) @@ -13914,7 +13906,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 8 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableI14obj_hash_entryI9func_declE12obj_ptr_hashIS1_E6ptr_eqIS1_EE10move_tableEPS2_jS8_j.exit.loopexit, label %for.body.i, !llvm.loop !67 + br i1 %cmp.not.i, label %_ZN14core_hashtableI14obj_hash_entryI9func_declE12obj_ptr_hashIS1_E6ptr_eqIS1_EE10move_tableEPS2_jS8_j.exit.loopexit, label %for.body.i, !llvm.loop !68 _ZN14core_hashtableI14obj_hash_entryI9func_declE12obj_ptr_hashIS1_E6ptr_eqIS1_EE10move_tableEPS2_jS8_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -14000,7 +13992,7 @@ if.then.i.i: ; preds = %for.body.i.i for.inc.i.i: ; preds = %if.then.i.i, %for.body.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %curr.031.i.i, i64 8 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr5.i.i - br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !68 + br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !69 for.body20.i.i: ; preds = %for.cond18.preheader.i.i, %for.inc36.i.i %curr.133.i.i = phi ptr [ %incdec.ptr37.i.i, %for.inc36.i.i ], [ %4, %for.cond18.preheader.i.i ] @@ -14022,7 +14014,7 @@ if.then22.i.i: ; preds = %for.body20.i.i for.inc36.i.i: ; preds = %if.then22.i.i, %for.body20.i.i %incdec.ptr37.i.i = getelementptr inbounds i8, ptr %curr.133.i.i, i64 8 %cmp19.not.i.i = icmp eq ptr %incdec.ptr37.i.i, %add.ptr.i.i - br i1 %cmp19.not.i.i, label %if.then, label %for.body20.i.i, !llvm.loop !69 + br i1 %cmp19.not.i.i, label %if.then, label %for.body20.i.i, !llvm.loop !70 if.then: ; preds = %for.body.i.i, %for.body20.i.i, %for.inc36.i.i, %for.cond18.preheader.i.i %m_ttodo = getelementptr inbounds i8, ptr %this, i64 456 @@ -14351,7 +14343,7 @@ _ZNK6vectorIPN3smt2mf17instantiation_setELb0EjE8capacityEv.exit.i.i: ; preds = % while.body.i.i: ; preds = %_ZNK6vectorIPN3smt2mf17instantiation_setELb0EjE8capacityEv.exit.i.i, %while.cond.i.i tail call void @_ZN6vectorIPN3smt2mf17instantiation_setELb0EjE13expand_vectorEv(ptr noundef nonnull align 8 dereferenceable(8) %uvar_inst_sets) %.pr.pre.i.i = load ptr, ptr %uvar_inst_sets, align 8 - br label %while.cond.i.i, !llvm.loop !70 + br label %while.cond.i.i, !llvm.loop !71 while.end.i.i: ; preds = %_ZNK6vectorIPN3smt2mf17instantiation_setELb0EjE8capacityEv.exit.i.i %arrayidx.i2.i = getelementptr inbounds i8, ptr %4, i64 -4 @@ -15511,7 +15503,7 @@ land.rhs.i.i.i.i: ; preds = %invoke.cont18, %whi while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i.i, i64 16 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !33 invoke.cont22: ; preds = %land.rhs.i.i.i.i, %invoke.cont18 %retval.sroa.0.1.i.i = phi ptr [ %6, %invoke.cont18 ], [ %retval.sroa.0.0.i.i, %land.rhs.i.i.i.i ] @@ -15589,7 +15581,7 @@ land.rhs.i.i.us: ; preds = %_ZN7obj_refI4expr11 while.body.i.i.us: ; preds = %land.rhs.i.i.us %incdec.ptr.i.i.us = getelementptr inbounds i8, ptr %__begin3.sroa.0.1.us, i64 16 %cmp.not.i.i.us = icmp eq ptr %incdec.ptr.i.i.us, %add.ptr.i.i - br i1 %cmp.not.i.i.us, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit.us, label %land.rhs.i.i.us, !llvm.loop !32 + br i1 %cmp.not.i.i.us, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit.us, label %land.rhs.i.i.us, !llvm.loop !33 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit.us: ; preds = %land.rhs.i.i.us, %while.body.i.i.us, %_ZN7obj_refI4expr11ast_managerED2Ev.exit.us %__begin3.sroa.0.2.us = phi ptr [ %incdec.ptr.i.us, %_ZN7obj_refI4expr11ast_managerED2Ev.exit.us ], [ %__begin3.sroa.0.1.us, %land.rhs.i.i.us ], [ %incdec.ptr.i.i.us, %while.body.i.i.us ] @@ -15709,7 +15701,7 @@ land.rhs.i.i: ; preds = %_ZN7obj_refI4expr11 while.body.i.i: ; preds = %land.rhs.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %__begin3.sroa.0.1, i64 16 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !33 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %_ZN7obj_refI4expr11ast_managerED2Ev.exit %__begin3.sroa.0.2 = phi ptr [ %incdec.ptr.i, %_ZN7obj_refI4expr11ast_managerED2Ev.exit ], [ %__begin3.sroa.0.1, %land.rhs.i.i ], [ %incdec.ptr.i.i, %while.body.i.i ] @@ -15886,7 +15878,7 @@ land.rhs.i.i.i.i: ; preds = %invoke.cont17, %whi while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i.i, i64 16 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !33 invoke.cont21: ; preds = %land.rhs.i.i.i.i, %invoke.cont17 %retval.sroa.0.1.i.i = phi ptr [ %6, %invoke.cont17 ], [ %retval.sroa.0.0.i.i, %land.rhs.i.i.i.i ] @@ -15964,7 +15956,7 @@ land.rhs.i.i.us: ; preds = %_ZN7obj_refI4expr11 while.body.i.i.us: ; preds = %land.rhs.i.i.us %incdec.ptr.i.i.us = getelementptr inbounds i8, ptr %__begin3.sroa.0.1.us, i64 16 %cmp.not.i.i.us = icmp eq ptr %incdec.ptr.i.i.us, %add.ptr.i.i - br i1 %cmp.not.i.i.us, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit.us, label %land.rhs.i.i.us, !llvm.loop !32 + br i1 %cmp.not.i.i.us, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit.us, label %land.rhs.i.i.us, !llvm.loop !33 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit.us: ; preds = %land.rhs.i.i.us, %while.body.i.i.us, %_ZN7obj_refI4expr11ast_managerED2Ev.exit.us %__begin3.sroa.0.2.us = phi ptr [ %incdec.ptr.i.us, %_ZN7obj_refI4expr11ast_managerED2Ev.exit.us ], [ %__begin3.sroa.0.1.us, %land.rhs.i.i.us ], [ %incdec.ptr.i.i.us, %while.body.i.i.us ] @@ -16084,7 +16076,7 @@ land.rhs.i.i: ; preds = %_ZN7obj_refI4expr11 while.body.i.i: ; preds = %land.rhs.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %__begin3.sroa.0.1, i64 16 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !33 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %_ZN7obj_refI4expr11ast_managerED2Ev.exit %__begin3.sroa.0.2 = phi ptr [ %incdec.ptr.i, %_ZN7obj_refI4expr11ast_managerED2Ev.exit ], [ %__begin3.sroa.0.1, %land.rhs.i.i ], [ %incdec.ptr.i.i, %while.body.i.i ] @@ -16489,7 +16481,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.053, %if.then9 ], [ %curr.052, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.052, i64 8 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !71 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !72 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.256 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -16537,7 +16529,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.256, %if.then31 ], [ %curr.155, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.155, i64 8 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !72 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !73 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 404, ptr noundef nonnull @.str.8) @@ -16603,7 +16595,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 8 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !73 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !74 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -16614,7 +16606,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 8 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !74 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !75 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 212, ptr noundef nonnull @.str.8) @@ -16629,7 +16621,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 8 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableI14obj_hash_entryI4exprE12obj_ptr_hashIS1_E6ptr_eqIS1_EE10move_tableEPS2_jS8_j.exit.loopexit, label %for.body.i, !llvm.loop !75 + br i1 %cmp.not.i, label %_ZN14core_hashtableI14obj_hash_entryI4exprE12obj_ptr_hashIS1_E6ptr_eqIS1_EE10move_tableEPS2_jS8_j.exit.loopexit, label %for.body.i, !llvm.loop !76 _ZN14core_hashtableI14obj_hash_entryI4exprE12obj_ptr_hashIS1_E6ptr_eqIS1_EE10move_tableEPS2_jS8_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -17181,7 +17173,7 @@ if.then.i.i.i.i: ; preds = %for.body.i.i.i.i for.inc.i.i.i.i: ; preds = %if.then.i.i.i.i, %for.body.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i.i, i64 16 %cmp.not.i.i.i.i24 = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr5.i.i.i.i - br i1 %cmp.not.i.i.i.i24, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !25 + br i1 %cmp.not.i.i.i.i24, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !26 for.body20.i.i.i.i: ; preds = %for.cond18.preheader.i.i.i.i, %for.inc36.i.i.i.i %curr.133.i.i.i.i = phi ptr [ %incdec.ptr37.i.i.i.i, %for.inc36.i.i.i.i ], [ %34, %for.cond18.preheader.i.i.i.i ] @@ -17203,7 +17195,7 @@ if.then22.i.i.i.i: ; preds = %for.body20.i.i.i.i for.inc36.i.i.i.i: ; preds = %if.then22.i.i.i.i, %for.body20.i.i.i.i %incdec.ptr37.i.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i.i, i64 16 %cmp19.not.i.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i.i, %add.ptr.i.i.i.i - br i1 %cmp19.not.i.i.i.i, label %lor.lhs.false.i, label %for.body20.i.i.i.i, !llvm.loop !26 + br i1 %cmp19.not.i.i.i.i, label %lor.lhs.false.i, label %for.body20.i.i.i.i, !llvm.loop !27 lor.lhs.false.i: ; preds = %for.body.i.i.i.i, %for.inc36.i.i.i.i, %for.body20.i.i.i.i, %for.cond18.preheader.i.i.i.i %m_kind.i.i.i.i.i = getelementptr inbounds i8, ptr %28, i64 4 @@ -17361,7 +17353,7 @@ for.inc.i: ; preds = %if.then9.i, %for.bo %del_entry.1.i = phi ptr [ %del_entry.053.i, %if.then9.i ], [ %curr.052.i, %for.body.i ] %incdec.ptr.i = getelementptr inbounds i8, ptr %curr.052.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr6.i - br i1 %cmp7.not.i, label %for.cond27.preheader.i, label %for.body.i, !llvm.loop !54 + br i1 %cmp7.not.i, label %for.cond27.preheader.i, label %for.body.i, !llvm.loop !55 for.body29.i: ; preds = %for.cond27.preheader.i, %for.inc54.i %del_entry.256.i = phi ptr [ %del_entry.3.i, %for.inc54.i ], [ %del_entry.0.lcssa.i, %for.cond27.preheader.i ] @@ -17411,7 +17403,7 @@ for.inc54.i: ; preds = %if.then31.i, %for.b %del_entry.3.i = phi ptr [ %del_entry.256.i, %if.then31.i ], [ %curr.155.i, %for.body29.i ] %incdec.ptr55.i = getelementptr inbounds i8, ptr %curr.155.i, i64 16 %cmp28.not.i = icmp eq ptr %incdec.ptr55.i, %add.ptr.i28 - br i1 %cmp28.not.i, label %for.end56.i, label %for.body29.i, !llvm.loop !55 + br i1 %cmp28.not.i, label %for.end56.i, label %for.body29.i, !llvm.loop !56 for.end56.i: ; preds = %for.cond27.preheader.i, %for.inc54.i invoke void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 404, ptr noundef nonnull @.str.8) @@ -17444,7 +17436,7 @@ lpad.body: ; preds = %lpad.i.i, %lpad.loo for.inc: ; preds = %if.then.i.i.i.i, %if.then22.i.i.i.i, %if.then14.i, %if.end21.i, %if.then37.i, %if.end48.i, %catch.i.i, %_ZNK11ast_manager14is_model_valueEPK4expr.exit.i.i, %invoke.cont18, %land.lhs.true %incdec.ptr = getelementptr inbounds i8, ptr %it2.059, i64 8 %cmp16.not = icmp eq ptr %incdec.ptr, %add.ptr.i.i - br i1 %cmp16.not, label %for.inc31, label %for.body17, !llvm.loop !76 + br i1 %cmp16.not, label %for.inc31, label %for.body17, !llvm.loop !77 for.inc31: ; preds = %for.inc, %invoke.cont11, %_ZN3smt5enode11end_parentsEv.exit, %land.rhs.i.i.i, %land.lhs.true.i, %call.i.noexc, %_ZNK17array_recognizers11is_as_arrayEP4expr.exit.i, %invoke.cont7 %incdec.ptr32 = getelementptr inbounds i8, ptr %__begin2.061, i64 8 @@ -17544,7 +17536,7 @@ if.then.i.i: ; preds = %for.body.i.i for.inc.i.i: ; preds = %if.then.i.i, %for.body.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %curr.031.i.i, i64 8 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr5.i.i - br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !68 + br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !69 for.body20.i.i: ; preds = %for.cond18.preheader.i.i, %for.inc36.i.i %curr.133.i.i = phi ptr [ %incdec.ptr37.i.i, %for.inc36.i.i ], [ %4, %for.cond18.preheader.i.i ] @@ -17566,7 +17558,7 @@ if.then22.i.i: ; preds = %for.body20.i.i for.inc36.i.i: ; preds = %if.then22.i.i, %for.body20.i.i %incdec.ptr37.i.i = getelementptr inbounds i8, ptr %curr.133.i.i, i64 8 %cmp19.not.i.i = icmp eq ptr %incdec.ptr37.i.i, %add.ptr.i.i - br i1 %cmp19.not.i.i, label %if.then4, label %for.body20.i.i, !llvm.loop !69 + br i1 %cmp19.not.i.i, label %if.then4, label %for.body20.i.i, !llvm.loop !70 if.then4: ; preds = %for.body.i.i, %for.body20.i.i, %for.inc36.i.i, %for.cond18.preheader.i.i %m_ftodo = getelementptr inbounds i8, ptr %this, i64 448 @@ -17702,7 +17694,7 @@ for.body.i.i.i.i.i.i: ; preds = %_ZNK6vectorISt4pair %incdec.ptr.i.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__first.sroa.0.08.i.i.i.i.i.i, i64 16 %incdec.ptr.i.i.i.i.i.i = getelementptr inbounds i8, ptr %__cur.09.i.i.i.i.i.i, i64 16 %cmp.i.i.not.i.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i.i.i, %add.ptr.i.i.i.i - br i1 %cmp.i.i.not.i.i.i.i.i.i, label %if.then.i, label %for.body.i.i.i.i.i.i, !llvm.loop !77 + br i1 %cmp.i.i.not.i.i.i.i.i.i, label %if.then.i, label %for.body.i.i.i.i.i.i, !llvm.loop !78 if.then.i: ; preds = %for.body.i.i.i.i.i.i, %_ZNK6vectorISt4pairIP4exprN3smt2mf19quantifier_analyzer8polarityEELb0EjE4sizeEv.exit %add.ptr.i.i = getelementptr inbounds i8, ptr %4, i64 -8 @@ -17771,7 +17763,7 @@ for.inc.i.i: ; preds = %if.else.i.i, %if.th %overhead.1.i.i = phi i32 [ %inc.i.i, %if.else.i.i ], [ %overhead.07.i.i, %if.then5.i.i ] %incdec.ptr.i.i = getelementptr inbounds i8, ptr %curr.06.i.i, i64 16 %cmp4.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i - br i1 %cmp4.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !78 + br i1 %cmp4.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !79 for.end.i.i: ; preds = %for.inc.i.i %.pre.i.i = load i32, ptr %m_capacity.i.i, align 8 @@ -18004,7 +17996,7 @@ land.rhs.i.i.i.i: ; preds = %_ZN6vectorIP4exprLb while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i.i, i64 16 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !33 _ZNK7obj_mapI4exprjE5beginEv.exit: ; preds = %land.rhs.i.i.i.i, %_ZN6vectorIP4exprLb0EjE5resetEv.exit %retval.sroa.0.1.i.i = phi ptr [ %8, %_ZN6vectorIP4exprLb0EjE5resetEv.exit ], [ %retval.sroa.0.0.i.i, %land.rhs.i.i.i.i ] @@ -18207,7 +18199,7 @@ land.rhs.i.i: ; preds = %for.inc, %while.bod while.body.i.i: ; preds = %land.rhs.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %__begin4.sroa.0.1, i64 16 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !33 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %for.inc %__begin4.sroa.0.2 = phi ptr [ %incdec.ptr.i, %for.inc ], [ %__begin4.sroa.0.1, %land.rhs.i.i ], [ %incdec.ptr.i.i, %while.body.i.i ] @@ -18272,7 +18264,7 @@ if.then.i42: ; preds = %for.body.i for.inc.i: ; preds = %if.then.i42, %for.body.i %incdec.ptr.i40 = getelementptr inbounds i8, ptr %curr.039.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr.i40, %add.ptr5.i - br i1 %cmp.not.i, label %for.cond17.preheader.i, label %for.body.i, !llvm.loop !79 + br i1 %cmp.not.i, label %for.cond17.preheader.i, label %for.body.i, !llvm.loop !80 for.body19.i: ; preds = %for.cond17.preheader.i, %for.inc34.i %curr.241.i = phi ptr [ %incdec.ptr35.i, %for.inc34.i ], [ %43, %for.cond17.preheader.i ] @@ -18294,7 +18286,7 @@ if.then21.i: ; preds = %for.body19.i for.inc34.i: ; preds = %if.then21.i, %for.body19.i %incdec.ptr35.i = getelementptr inbounds i8, ptr %curr.241.i, i64 16 %cmp18.not.i = icmp eq ptr %incdec.ptr35.i, %add.ptr.i39 - br i1 %cmp18.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE6removeERKS5_.exit, label %for.body19.i, !llvm.loop !80 + br i1 %cmp18.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE6removeERKS5_.exit, label %for.body19.i, !llvm.loop !81 end_remove.i: ; preds = %if.then.i42, %if.then21.i %curr.1.i = phi ptr [ %curr.241.i, %if.then21.i ], [ %curr.039.i, %if.then.i42 ] @@ -18387,7 +18379,7 @@ land.rhs.i.i.i.i: ; preds = %entry, %while.body. while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i.i, i64 32 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !81 + br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !82 _ZNK9table2mapI17default_map_entryISt4pairIP3astjEPN3smt2mf4nodeEE9pair_hashI12obj_ptr_hashIS2_E13unsigned_hashE10default_eqIS4_EE5beginEv.exit: ; preds = %land.rhs.i.i.i.i, %entry %retval.sroa.0.1.i.i = phi ptr [ %0, %entry ], [ %retval.sroa.0.0.i.i, %land.rhs.i.i.i.i ] @@ -18441,7 +18433,7 @@ if.then.i.i: ; preds = %for.body.i.i for.inc.i.i: ; preds = %if.then.i.i, %for.body.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %curr.031.i.i, i64 8 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr5.i.i - br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !82 + br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !83 for.body20.i.i: ; preds = %for.cond18.preheader.i.i, %for.inc36.i.i %curr.133.i.i = phi ptr [ %incdec.ptr37.i.i, %for.inc36.i.i ], [ %6, %for.cond18.preheader.i.i ] @@ -18463,7 +18455,7 @@ if.then22.i.i: ; preds = %for.body20.i.i for.inc36.i.i: ; preds = %if.then22.i.i, %for.body20.i.i %incdec.ptr37.i.i = getelementptr inbounds i8, ptr %curr.133.i.i, i64 8 %cmp19.not.i.i = icmp eq ptr %incdec.ptr37.i.i, %add.ptr.i.i13 - br i1 %cmp19.not.i.i, label %if.then, label %for.body20.i.i, !llvm.loop !83 + br i1 %cmp19.not.i.i, label %if.then, label %for.body20.i.i, !llvm.loop !84 if.then: ; preds = %for.body.i.i, %for.body20.i.i, %for.inc36.i.i, %for.cond18.preheader.i.i %11 = load ptr, ptr %m_model, align 8 @@ -18504,7 +18496,7 @@ if.then.i.i.i.i: ; preds = %for.body.i.i.i.i for.inc.i.i.i.i: ; preds = %if.then.i.i.i.i, %for.body.i.i.i.i %incdec.ptr.i.i.i.i14 = getelementptr inbounds i8, ptr %curr.031.i.i.i.i, i64 16 %cmp.not.i.i.i.i15 = icmp eq ptr %incdec.ptr.i.i.i.i14, %add.ptr5.i.i.i.i - br i1 %cmp.not.i.i.i.i15, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !84 + br i1 %cmp.not.i.i.i.i15, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !85 for.body20.i.i.i.i: ; preds = %for.cond18.preheader.i.i.i.i, %for.inc36.i.i.i.i %curr.133.i.i.i.i = phi ptr [ %incdec.ptr37.i.i.i.i, %for.inc36.i.i.i.i ], [ %13, %for.cond18.preheader.i.i.i.i ] @@ -18526,7 +18518,7 @@ if.then22.i.i.i.i: ; preds = %for.body20.i.i.i.i for.inc36.i.i.i.i: ; preds = %if.then22.i.i.i.i, %for.body20.i.i.i.i %incdec.ptr37.i.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i.i, i64 16 %cmp19.not.i.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i.i, %add.ptr.i.i.i.i - br i1 %cmp19.not.i.i.i.i, label %if.then8, label %for.body20.i.i.i.i, !llvm.loop !85 + br i1 %cmp19.not.i.i.i.i, label %if.then8, label %for.body20.i.i.i.i, !llvm.loop !86 _ZNK10model_core15get_func_interpEP9func_decl.exit: ; preds = %if.then.i.i.i.i, %if.then22.i.i.i.i %retval.0.i.i.i.i = phi ptr [ %curr.133.i.i.i.i, %if.then22.i.i.i.i ], [ %curr.031.i.i.i.i, %if.then.i.i.i.i ] @@ -18574,7 +18566,7 @@ land.rhs.i.i: ; preds = %for.inc, %while.bod while.body.i.i: ; preds = %land.rhs.i.i %incdec.ptr.i.i17 = getelementptr inbounds i8, ptr %__begin2.sroa.0.1, i64 32 %cmp.not.i.i18 = icmp eq ptr %incdec.ptr.i.i17, %add.ptr.i.i - br i1 %cmp.not.i.i18, label %_ZN14core_hashtableI17default_map_entryISt4pairIP3astjEPN3smt2mf4nodeEEN9table2mapIS9_9pair_hashI12obj_ptr_hashIS2_E13unsigned_hashE10default_eqIS4_EE15entry_hash_procENSI_13entry_eq_procEE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !81 + br i1 %cmp.not.i.i18, label %_ZN14core_hashtableI17default_map_entryISt4pairIP3astjEPN3smt2mf4nodeEEN9table2mapIS9_9pair_hashI12obj_ptr_hashIS2_E13unsigned_hashE10default_eqIS4_EE15entry_hash_procENSI_13entry_eq_procEE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !82 _ZN14core_hashtableI17default_map_entryISt4pairIP3astjEPN3smt2mf4nodeEEN9table2mapIS9_9pair_hashI12obj_ptr_hashIS2_E13unsigned_hashE10default_eqIS4_EE15entry_hash_procENSI_13entry_eq_procEE8iteratorppEv.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %for.inc %__begin2.sroa.0.2 = phi ptr [ %incdec.ptr.i, %for.inc ], [ %incdec.ptr.i.i17, %while.body.i.i ], [ %__begin2.sroa.0.1, %land.rhs.i.i ] @@ -18736,7 +18728,7 @@ land.rhs.i.i.i.i: ; preds = %if.else19, %while.b while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i.i, i64 16 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i.i.i, label %invoke.cont23, label %land.rhs.i.i.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i.i.i, label %invoke.cont23, label %land.rhs.i.i.i.i, !llvm.loop !33 invoke.cont23: ; preds = %land.rhs.i.i.i.i, %while.body.i.i.i.i, %if.else19 %retval.sroa.0.1.i.i = phi ptr [ %22, %if.else19 ], [ %retval.sroa.0.0.i.i, %land.rhs.i.i.i.i ], [ %add.ptr.i.i, %while.body.i.i.i.i ] @@ -18830,7 +18822,7 @@ if.then.i.i.i: ; preds = %for.body.i.i.i for.inc.i.i.i: ; preds = %if.then.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i, i64 16 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr5.i.i.i - br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !86 + br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !87 for.body20.i.i.i: ; preds = %for.cond18.preheader.i.i.i, %for.inc36.i.i.i %curr.133.i.i.i = phi ptr [ %incdec.ptr37.i.i.i, %for.inc36.i.i.i ], [ %36, %for.cond18.preheader.i.i.i ] @@ -18852,7 +18844,7 @@ if.then22.i.i.i: ; preds = %for.body20.i.i.i for.inc36.i.i.i: ; preds = %if.then22.i.i.i, %for.body20.i.i.i %incdec.ptr37.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i, i64 16 %cmp19.not.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i, %add.ptr.i.i.i - br i1 %cmp19.not.i.i.i, label %if.then44, label %for.body20.i.i.i, !llvm.loop !87 + br i1 %cmp19.not.i.i.i, label %if.then44, label %for.body20.i.i.i, !llvm.loop !88 invoke.cont42: ; preds = %if.then.i.i.i, %if.then22.i.i.i %retval.0.i.i.i = phi ptr [ %curr.133.i.i.i, %if.then22.i.i.i ], [ %curr.031.i.i.i, %if.then.i.i.i ] @@ -19089,7 +19081,7 @@ land.rhs.i.i.i: ; preds = %entry, %while.body. while.body.i.i.i: ; preds = %land.rhs.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i, i64 8 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr.i - br i1 %cmp.not.i.i.i, label %for.end55, label %land.rhs.i.i.i, !llvm.loop !88 + br i1 %cmp.not.i.i.i, label %for.end55, label %land.rhs.i.i.i, !llvm.loop !89 _ZNK14core_hashtableI14obj_hash_entryI9func_declE12obj_ptr_hashIS1_E6ptr_eqIS1_EE5beginEv.exit: ; preds = %land.rhs.i.i.i, %entry %retval.sroa.0.1.i = phi ptr [ %0, %entry ], [ %retval.sroa.0.0.i, %land.rhs.i.i.i ] @@ -19148,7 +19140,7 @@ if.then.i.i: ; preds = %for.body.i.i for.inc.i.i: ; preds = %if.then.i.i, %for.body.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %curr.031.i.i, i64 8 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr5.i.i - br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !82 + br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !83 for.body20.i.i: ; preds = %for.cond18.preheader.i.i, %for.inc36.i.i %curr.133.i.i = phi ptr [ %incdec.ptr37.i.i, %for.inc36.i.i ], [ %7, %for.cond18.preheader.i.i ] @@ -19170,7 +19162,7 @@ if.then22.i.i: ; preds = %for.body20.i.i for.inc36.i.i: ; preds = %if.then22.i.i, %for.body20.i.i %incdec.ptr37.i.i = getelementptr inbounds i8, ptr %curr.133.i.i, i64 8 %cmp19.not.i.i = icmp eq ptr %incdec.ptr37.i.i, %add.ptr.i.i - br i1 %cmp19.not.i.i, label %if.end, label %for.body20.i.i, !llvm.loop !83 + br i1 %cmp19.not.i.i, label %if.end, label %for.body20.i.i, !llvm.loop !84 if.end: ; preds = %for.body.i.i, %for.body20.i.i, %for.inc36.i.i, %for.cond18.preheader.i.i %m_arity.i = getelementptr inbounds i8, ptr %3, i64 32 @@ -19210,7 +19202,7 @@ if.then.i.i.i.i: ; preds = %for.body.i.i.i.i for.inc.i.i.i.i: ; preds = %for.body.i.i.i.i, %if.then.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i.i, i64 16 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr5.i.i.i.i - br i1 %cmp.not.i.i.i.i, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !84 + br i1 %cmp.not.i.i.i.i, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !85 for.body20.i.i.i.i: ; preds = %for.inc36.i.i.i.i, %for.cond18.preheader.i.i.i.i %cmp19.not.i.i.i.i.sink = phi i1 [ %cmp19.not.i.i.i.i, %for.inc36.i.i.i.i ], [ %cmp19.not32.i.i.i.i, %for.cond18.preheader.i.i.i.i ] @@ -19621,7 +19613,7 @@ for.inc: ; preds = %.noexc64, %lor.lhs. store i32 %inc.i.i59, ptr %arrayidx10.i.i58, align 4 %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 %exitcond.not = icmp eq i64 %indvars.iv.next, %wide.trip.count - br i1 %exitcond.not, label %for.end, label %for.body13, !llvm.loop !89 + br i1 %exitcond.not, label %for.end, label %for.body13, !llvm.loop !90 for.inc.thread: ; preds = %.noexc, %lor.lhs.false.i.i %60 = phi i32 [ %.pre1.i.i, %.noexc ], [ %47, %lor.lhs.false.i.i ] @@ -19636,7 +19628,7 @@ for.inc.thread: ; preds = %.noexc, %lor.lhs.fa store i32 %inc.i.i, ptr %arrayidx10.i.i, align 4 %indvars.iv.next171 = add nuw nsw i64 %indvars.iv, 1 %exitcond.not172 = icmp eq i64 %indvars.iv.next171, %wide.trip.count - br i1 %exitcond.not172, label %if.then29, label %for.body13.outer, !llvm.loop !89 + br i1 %exitcond.not172, label %if.then29, label %for.body13.outer, !llvm.loop !90 for.end: ; preds = %for.inc br i1 %has_proj.0154.ph, label %if.then29, label %_ZNK6vectorIP4exprLb0EjE4sizeEv.exit.i.i @@ -19744,7 +19736,7 @@ land.rhs.i.i: ; preds = %for.inc53, %while.b while.body.i.i: ; preds = %land.rhs.i.i %incdec.ptr.i.i76 = getelementptr inbounds i8, ptr %__begin2.sroa.0.1, i64 8 %cmp.not.i.i77 = icmp eq ptr %incdec.ptr.i.i76, %add.ptr.i - br i1 %cmp.not.i.i77, label %_ZN14core_hashtableI14obj_hash_entryI9func_declE12obj_ptr_hashIS1_E6ptr_eqIS1_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !88 + br i1 %cmp.not.i.i77, label %_ZN14core_hashtableI14obj_hash_entryI9func_declE12obj_ptr_hashIS1_E6ptr_eqIS1_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !89 _ZN14core_hashtableI14obj_hash_entryI9func_declE12obj_ptr_hashIS1_E6ptr_eqIS1_EE8iteratorppEv.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %for.inc53 %__begin2.sroa.0.2 = phi ptr [ %incdec.ptr.i, %for.inc53 ], [ %__begin2.sroa.0.1, %land.rhs.i.i ], [ %incdec.ptr.i.i76, %while.body.i.i ] @@ -20012,7 +20004,7 @@ for.body.i.i87: ; preds = %for.body.i.i87, %fo call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i89, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i90, i64 16, i1 false) %indvars.iv.next.i.i91 = add nuw nsw i64 %indvars.iv.i.i88, 1 %exitcond.not.i.i92 = icmp eq i64 %indvars.iv.next.i.i91, %wide.trip.count.i.i86 - br i1 %exitcond.not.i.i92, label %for.end.i.i93, label %for.body.i.i87, !llvm.loop !50 + br i1 %exitcond.not.i.i92, label %for.end.i.i93, label %for.body.i.i87, !llvm.loop !51 for.end.i.i93: ; preds = %for.body.i.i87, %call.i.i.noexc107 %cmp.not.i.i.i95 = icmp eq ptr %.pre.i.i84, %6 @@ -20110,7 +20102,7 @@ for.body.i.i137: ; preds = %for.body.i.i137, %f call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i139, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i140, i64 16, i1 false) %indvars.iv.next.i.i141 = add nuw nsw i64 %indvars.iv.i.i138, 1 %exitcond.not.i.i142 = icmp eq i64 %indvars.iv.next.i.i141, %wide.trip.count.i.i136 - br i1 %exitcond.not.i.i142, label %for.end.i.i143, label %for.body.i.i137, !llvm.loop !50 + br i1 %exitcond.not.i.i142, label %for.end.i.i143, label %for.body.i.i137, !llvm.loop !51 for.end.i.i143: ; preds = %for.body.i.i137, %call.i.i.noexc157 %cmp.not.i.i.i145 = icmp eq ptr %.pre.i.i134, %6 @@ -20143,7 +20135,7 @@ invoke.cont43: ; preds = %sw.default while.cond11.backedge: ; preds = %call.i.i.noexc71, %_ZNK4decl13get_family_idEv.exit.thread.i.i.i.i.i64, %_ZNK17array_recognizers8is_arrayEP4expr.exit.i67, %call.i.i.noexc121, %_ZNK4decl13get_family_idEv.exit.thread.i.i.i.i.i114, %_ZNK17array_recognizers8is_arrayEP4expr.exit.i117, %invoke.cont17 %46 = load i32, ptr %second, align 8 %cmp = icmp ult i32 %46, %18 - br i1 %cmp, label %while.body12, label %while.end.loopexit, !llvm.loop !90 + br i1 %cmp, label %while.body12, label %while.end.loopexit, !llvm.loop !91 while.end.loopexit: ; preds = %while.cond11.backedge %.pre318 = load i32, ptr %m_pos.i.i, align 8 @@ -20231,7 +20223,7 @@ invoke.cont59: ; preds = %invoke.cont55 %shl.i.i.i.i189 = shl nuw i32 1, %rem.i.i.i.i188 %and.i.i.i190 = and i32 %61, %shl.i.i.i.i189 %cmp.i.i.i191.not = icmp eq i32 %and.i.i.i190, 0 - br i1 %cmp.i.i.i191.not, label %invoke.cont63, label %while.cond50, !llvm.loop !91 + br i1 %cmp.i.i.i191.not, label %invoke.cont63, label %while.cond50, !llvm.loop !92 if.then.i.i.i195: ; preds = %invoke.cont55 %add.i.i.i196 = add i32 %58, 1 @@ -20287,7 +20279,7 @@ for.body.i.i218: ; preds = %for.body.i.i218, %f call void @llvm.memcpy.p0.p0.i64(ptr noundef nonnull align 8 dereferenceable(16) %arrayidx.i.i220, ptr noundef nonnull align 8 dereferenceable(16) %arrayidx3.i.i221, i64 16, i1 false) %indvars.iv.next.i.i222 = add nuw nsw i64 %indvars.iv.i.i219, 1 %exitcond.not.i.i223 = icmp eq i64 %indvars.iv.next.i.i222, %wide.trip.count.i.i217 - br i1 %exitcond.not.i.i223, label %for.end.i.i224, label %for.body.i.i218, !llvm.loop !50 + br i1 %exitcond.not.i.i223, label %for.end.i.i224, label %for.body.i.i218, !llvm.loop !51 for.end.i.i224: ; preds = %for.body.i.i218, %call.i.i.noexc238 %cmp.not.i.i.i226 = icmp eq ptr %.pre.i.i215, %6 @@ -20349,7 +20341,7 @@ sw.epilog73thread-pre-split: ; preds = %call.i.i.noexc172, sw.epilog73: ; preds = %sw.epilog73thread-pre-split, %invoke.cont7 %.pr = phi i32 [ %.pr.pr, %sw.epilog73thread-pre-split ], [ %dec.i, %invoke.cont7 ] %cmp.i = icmp eq i32 %.pr, 0 - br i1 %cmp.i, label %while.end74, label %start.preheader, !llvm.loop !92 + br i1 %cmp.i, label %while.end74, label %start.preheader, !llvm.loop !93 while.end74: ; preds = %sw.epilog73 %73 = load ptr, ptr %stack, align 8 @@ -20430,7 +20422,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !56 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !57 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -20441,7 +20433,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !57 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !58 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 212, ptr noundef nonnull @.str.8) @@ -20456,7 +20448,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !58 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit, label %for.body.i, !llvm.loop !59 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE10move_tableEPS3_jSA_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -20596,7 +20588,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.053, %if.then9 ], [ %curr.052, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.052, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !93 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !94 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.256 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -20642,7 +20634,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.256, %if.then31 ], [ %curr.155, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.155, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !94 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !95 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 404, ptr noundef nonnull @.str.8) @@ -20707,7 +20699,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !95 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !96 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -20718,7 +20710,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !96 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !97 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 212, ptr noundef nonnull @.str.8) @@ -20733,7 +20725,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4sortP4exprE13obj_map_entryE8obj_hashINS4_8key_dataEE10default_eqIS7_EE10move_tableEPS5_jSC_j.exit.loopexit, label %for.body.i, !llvm.loop !97 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4sortP4exprE13obj_map_entryE8obj_hashINS4_8key_dataEE10default_eqIS7_EE10move_tableEPS5_jSC_j.exit.loopexit, label %for.body.i, !llvm.loop !98 _ZN14core_hashtableIN7obj_mapI4sortP4exprE13obj_map_entryE8obj_hashINS4_8key_dataEE10default_eqIS7_EE10move_tableEPS5_jSC_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -20920,7 +20912,7 @@ if.then2.i.i.i91.us: ; preds = %if.then.i.i.i86.us _ZN7obj_refI4expr11ast_managerED2Ev.exit.us: ; preds = %if.then2.i.i.i91.us, %if.then.i.i.i86.us, %invoke.cont72.us %cmp.not.us.wide = icmp eq i64 %20, 0 - br i1 %cmp.not.us.wide, label %for.end, label %for.body.us, !llvm.loop !98 + br i1 %cmp.not.us.wide, label %for.end, label %for.body.us, !llvm.loop !99 lpad29.split.us: ; preds = %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit43.us, %for.body.us %24 = landingpad { ptr, i32 } @@ -21057,7 +21049,7 @@ terminate.lpad.i: ; preds = %terminate.lpad.i.sp _ZN7obj_refI4expr11ast_managerED2Ev.exit: ; preds = %invoke.cont72, %if.then.i.i.i86, %if.then2.i.i.i91 %cmp.not.wide = icmp eq i64 %40, 0 - br i1 %cmp.not.wide, label %for.end, label %for.body, !llvm.loop !98 + br i1 %cmp.not.wide, label %for.end, label %for.body, !llvm.loop !99 for.end: ; preds = %_ZN7obj_refI4expr11ast_managerED2Ev.exit, %_ZN7obj_refI4expr11ast_managerED2Ev.exit.us, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit %pi.0.lcssa = phi ptr [ %11, %_ZN7obj_refI4expr11ast_managerEaSEPS0_.exit ], [ %call.i85.us, %_ZN7obj_refI4expr11ast_managerED2Ev.exit.us ], [ %call.i85, %_ZN7obj_refI4expr11ast_managerED2Ev.exit ] @@ -21998,7 +21990,7 @@ land.rhs.i.i.i.i: ; preds = %_ZN3smt2mf4node21ge while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i.i, i64 16 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i.i.i, label %for.end38, label %land.rhs.i.i.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i.i.i, label %for.end38, label %land.rhs.i.i.i.i, !llvm.loop !33 invoke.cont4: ; preds = %land.rhs.i.i.i.i, %_ZN3smt2mf4node21get_instantiation_setEv.exit %retval.sroa.0.1.i.i = phi ptr [ %2, %_ZN3smt2mf4node21get_instantiation_setEv.exit ], [ %retval.sroa.0.0.i.i, %land.rhs.i.i.i.i ] @@ -22111,7 +22103,7 @@ if.then.i.i: ; preds = %for.body.i.i for.inc.i.i: ; preds = %if.then.i.i, %for.body.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %curr.031.i.i, i64 8 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr5.i.i - br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !68 + br i1 %cmp.not.i.i, label %for.cond18.preheader.i.i, label %for.body.i.i, !llvm.loop !69 for.body20.i.i: ; preds = %for.cond18.preheader.i.i, %for.inc36.i.i %curr.133.i.i = phi ptr [ %incdec.ptr37.i.i, %for.inc36.i.i ], [ %15, %for.cond18.preheader.i.i ] @@ -22133,7 +22125,7 @@ if.then22.i.i: ; preds = %for.body20.i.i for.inc36.i.i: ; preds = %if.then22.i.i, %for.body20.i.i %incdec.ptr37.i.i = getelementptr inbounds i8, ptr %curr.133.i.i, i64 8 %cmp19.not.i.i = icmp eq ptr %incdec.ptr37.i.i, %add.ptr.i.i15 - br i1 %cmp19.not.i.i, label %if.then31, label %for.body20.i.i, !llvm.loop !69 + br i1 %cmp19.not.i.i, label %if.then31, label %for.body20.i.i, !llvm.loop !70 if.then31: ; preds = %for.body.i.i, %for.body20.i.i, %for.inc36.i.i, %for.cond18.preheader.i.i %20 = load i32, ptr %m_pos.i.i, align 8 @@ -22170,7 +22162,7 @@ for.body.i.i16: ; preds = %for.body.i.i16, %fo store ptr %23, ptr %arrayidx.i.i, align 8 %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 %exitcond.not.i.i = icmp eq i64 %indvars.iv.next.i.i, %wide.trip.count.i.i - br i1 %exitcond.not.i.i, label %for.end.i.i, label %for.body.i.i16, !llvm.loop !28 + br i1 %exitcond.not.i.i, label %for.end.i.i, label %for.body.i.i16, !llvm.loop !29 for.end.i.i: ; preds = %for.body.i.i16, %call.i.i.noexc %cmp.not.i.i.i = icmp eq ptr %.pre.i.i, %m_initial_buffer.i.i.i @@ -22224,7 +22216,7 @@ land.rhs.i.i: ; preds = %for.inc35, %while.b while.body.i.i: ; preds = %land.rhs.i.i %incdec.ptr.i.i22 = getelementptr inbounds i8, ptr %__begin2.sroa.0.1, i64 16 %cmp.not.i.i23 = icmp eq ptr %incdec.ptr.i.i22, %add.ptr.i.i - br i1 %cmp.not.i.i23, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i23, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !33 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %for.inc35 %__begin2.sroa.0.2 = phi ptr [ %incdec.ptr.i, %for.inc35 ], [ %__begin2.sroa.0.1, %land.rhs.i.i ], [ %incdec.ptr.i.i22, %while.body.i.i ] @@ -22478,7 +22470,7 @@ while.body.i.i: ; preds = %if.then, %while.bod %sub.ptr.lhs.cast.i.i = ptrtoint ptr %incdec.ptr.i3.i to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast %cmp.i4.i = icmp sgt i64 %sub.ptr.sub.i.i, 8 - br i1 %cmp.i4.i, label %while.body.i.i, label %_ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_SD_SD_T0_.exit, !llvm.loop !99 + br i1 %cmp.i4.i, label %while.body.i.i, label %_ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_SD_SD_T0_.exit, !llvm.loop !100 _ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_SD_SD_T0_.exit: ; preds = %while.body.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__comp.i) @@ -22504,7 +22496,7 @@ while.cond2.i.i: ; preds = %while.cond2.i.i, %w %1 = load ptr, ptr %__first, align 8 %call.i.i.i = call noundef zeroext i1 @_ZN3smt2mf10auf_solver10numeral_ltI10arith_utilEclEP4exprS6_(ptr noundef nonnull align 8 dereferenceable(8) %__comp.i.i10, ptr noundef %0, ptr noundef %1) %incdec.ptr.i.i = getelementptr inbounds i8, ptr %__first.addr.1.i.i, i64 8 - br i1 %call.i.i.i, label %while.cond2.i.i, label %while.cond5.i.i, !llvm.loop !100 + br i1 %call.i.i.i, label %while.cond2.i.i, label %while.cond5.i.i, !llvm.loop !101 while.cond5.i.i: ; preds = %while.cond2.i.i, %while.cond5.i.i %__last.addr.0.pn.i.i = phi ptr [ %__last.addr.1.i.i, %while.cond5.i.i ], [ %__last.addr.0.i.i, %while.cond2.i.i ] @@ -22512,7 +22504,7 @@ while.cond5.i.i: ; preds = %while.cond2.i.i, %w %2 = load ptr, ptr %__first, align 8 %3 = load ptr, ptr %__last.addr.1.i.i, align 8 %call.i11.i.i = call noundef zeroext i1 @_ZN3smt2mf10auf_solver10numeral_ltI10arith_utilEclEP4exprS6_(ptr noundef nonnull align 8 dereferenceable(8) %__comp.i.i10, ptr noundef %2, ptr noundef %3) - br i1 %call.i11.i.i, label %while.cond5.i.i, label %while.end9.i.i, !llvm.loop !101 + br i1 %call.i11.i.i, label %while.cond5.i.i, label %while.end9.i.i, !llvm.loop !102 while.end9.i.i: ; preds = %while.cond5.i.i %cmp.i.i = icmp ult ptr %__first.addr.1.i.i, %__last.addr.1.i.i @@ -22523,7 +22515,7 @@ if.end.i.i: ; preds = %while.end9.i.i %5 = load ptr, ptr %__last.addr.1.i.i, align 8 store ptr %5, ptr %__first.addr.1.i.i, align 8 store ptr %4, ptr %__last.addr.1.i.i, align 8 - br label %while.body.i.i11, !llvm.loop !102 + br label %while.body.i.i11, !llvm.loop !103 _ZSt27__unguarded_partition_pivotIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEET_SD_SD_T0_.exit: ; preds = %while.end9.i.i %dec = add nsw i64 %__depth_limit.addr.019, -1 @@ -22532,7 +22524,7 @@ _ZSt27__unguarded_partition_pivotIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3sm %sub.ptr.lhs.cast = ptrtoint ptr %__first.addr.1.i.i to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %cmp = icmp sgt i64 %sub.ptr.sub, 128 - br i1 %cmp, label %while.body, label %while.end, !llvm.loop !103 + br i1 %cmp, label %while.body, label %while.end, !llvm.loop !104 while.end: ; preds = %_ZSt27__unguarded_partition_pivotIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEET_SD_SD_T0_.exit, %entry, %_ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_SD_SD_T0_.exit ret void @@ -22590,7 +22582,7 @@ while.body.i.i: ; preds = %if.else.i, %while.b %__next.0.i.i = getelementptr inbounds i8, ptr %__next.012.i.i, i64 -8 %6 = load ptr, ptr %__next.0.i.i, align 8 %call.i.i.i = call noundef zeroext i1 @_ZN3smt2mf10auf_solver10numeral_ltI10arith_utilEclEP4exprS6_(ptr noundef nonnull align 8 dereferenceable(8) %__comp.i.i, ptr noundef %3, ptr noundef %6) - br i1 %call.i.i.i, label %while.body.i.i, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_.exit.i, !llvm.loop !104 + br i1 %call.i.i.i, label %while.body.i.i, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_.exit.i, !llvm.loop !105 _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_.exit.i: ; preds = %while.body.i.i, %if.else.i %__last.addr.0.lcssa.i.i = phi ptr [ %__i.015.i.ptr, %if.else.i ], [ %__next.012.i.i, %while.body.i.i ] @@ -22601,7 +22593,7 @@ _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2m for.inc.i: ; preds = %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_.exit.i, %if.then3.i %__i.015.i.add = add nuw nsw i64 %__i.015.i.idx, 8 %cmp2.not.i = icmp eq i64 %__i.015.i.add, 128 - br i1 %cmp2.not.i, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_SD_T0_.exit, label %for.body.i, !llvm.loop !105 + br i1 %cmp2.not.i, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_SD_T0_.exit, label %for.body.i, !llvm.loop !106 _ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_SD_T0_.exit: ; preds = %for.inc.i %add.ptr = getelementptr inbounds i8, ptr %__first, i64 128 @@ -22627,7 +22619,7 @@ while.body.i.i12: ; preds = %for.body.i8, %while %__next.0.i.i15 = getelementptr inbounds i8, ptr %__next.012.i.i13, i64 -8 %10 = load ptr, ptr %__next.0.i.i15, align 8 %call.i.i.i16 = call noundef zeroext i1 @_ZN3smt2mf10auf_solver10numeral_ltI10arith_utilEclEP4exprS6_(ptr noundef nonnull align 8 dereferenceable(8) %__comp.i.i7, ptr noundef %7, ptr noundef %10) - br i1 %call.i.i.i16, label %while.body.i.i12, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_.exit.i10, !llvm.loop !104 + br i1 %call.i.i.i16, label %while.body.i.i12, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_.exit.i10, !llvm.loop !105 _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_.exit.i10: ; preds = %while.body.i.i12, %for.body.i8 %__last.addr.0.lcssa.i.i11 = phi ptr [ %__i.04.i, %for.body.i8 ], [ %__next.012.i.i13, %while.body.i.i12 ] @@ -22635,7 +22627,7 @@ _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2m call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__comp.i.i7) %incdec.ptr.i = getelementptr inbounds i8, ptr %__i.04.i, i64 8 %cmp.not.i = icmp eq ptr %incdec.ptr.i, %__last - br i1 %cmp.not.i, label %if.end, label %for.body.i8, !llvm.loop !106 + br i1 %cmp.not.i, label %if.end, label %for.body.i8, !llvm.loop !107 if.else: ; preds = %entry call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__comp.i18) @@ -22683,7 +22675,7 @@ while.body.i.i33: ; preds = %if.else.i25, %while %__next.0.i.i36 = getelementptr inbounds i8, ptr %__next.012.i.i34, i64 -8 %17 = load ptr, ptr %__next.0.i.i36, align 8 %call.i.i.i37 = call noundef zeroext i1 @_ZN3smt2mf10auf_solver10numeral_ltI10arith_utilEclEP4exprS6_(ptr noundef nonnull align 8 dereferenceable(8) %__comp.i.i17, ptr noundef %14, ptr noundef %17) - br i1 %call.i.i.i37, label %while.body.i.i33, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_.exit.i28, !llvm.loop !104 + br i1 %call.i.i.i37, label %while.body.i.i33, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_.exit.i28, !llvm.loop !105 _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_.exit.i28: ; preds = %while.body.i.i33, %if.else.i25 %__last.addr.0.lcssa.i.i29 = phi ptr [ %__i.015.i22, %if.else.i25 ], [ %__next.012.i.i34, %while.body.i.i33 ] @@ -22694,7 +22686,7 @@ _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2m for.inc.i30: ; preds = %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_.exit.i28, %if.then3.i38 %__i.0.i31 = getelementptr inbounds i8, ptr %__i.015.i22, i64 8 %cmp2.not.i32 = icmp eq ptr %__i.0.i31, %__last - br i1 %cmp2.not.i32, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_SD_T0_.exit45, label %for.body.i21, !llvm.loop !105 + br i1 %cmp2.not.i32, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_SD_T0_.exit45, label %for.body.i21, !llvm.loop !106 _ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_SD_T0_.exit45: ; preds = %for.inc.i30, %if.else call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__comp.i18) @@ -22748,7 +22740,7 @@ while.body.i: ; preds = %if.end.split, %whil %add.ptr5.i = getelementptr inbounds ptr, ptr %__first, i64 %__secondChild.024.i store ptr %3, ptr %add.ptr5.i, align 8 %cmp.i = icmp slt i64 %spec.select.i, %div.i5961 - br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !107 + br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !108 while.end.i: ; preds = %while.body.i, %if.end.split %__secondChild.0.lcssa.i = phi i64 [ %div13, %if.end.split ], [ %spec.select.i, %while.body.i ] @@ -22789,7 +22781,7 @@ while.body.i.i: ; preds = %land.rhs.i.i %add.ptr2.i.i = getelementptr inbounds ptr, ptr %__first, i64 %__holeIndex.addr.014.i.i store ptr %8, ptr %add.ptr2.i.i, align 8 %cmp.i.i = icmp sgt i64 %__parent.015.i.i, %div13 - br i1 %cmp.i.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_SE_T1_T2_.exit, !llvm.loop !108 + br i1 %cmp.i.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_SE_T1_T2_.exit, !llvm.loop !109 _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_SE_T1_T2_.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %if.end17.i %__holeIndex.addr.0.lcssa.i.i = phi i64 [ %__holeIndex.addr.1.i, %if.end17.i ], [ %__parent.015.i.i, %while.body.i.i ], [ %__holeIndex.addr.014.i.i, %land.rhs.i.i ] @@ -22834,7 +22826,7 @@ while.body.i46: ; preds = %if.end8.split, %whi %add.ptr5.i56 = getelementptr inbounds ptr, ptr %__first, i64 %__secondChild.024.i47 store ptr %12, ptr %add.ptr5.i56, align 8 %cmp.i57 = icmp slt i64 %spec.select.i54, %div.i5961 - br i1 %cmp.i57, label %while.body.i46, label %while.end.i19, !llvm.loop !107 + br i1 %cmp.i57, label %while.body.i46, label %while.end.i19, !llvm.loop !108 while.end.i19: ; preds = %while.body.i46, %if.end8.split %__secondChild.0.lcssa.i20 = phi i64 [ %dec, %if.end8.split ], [ %spec.select.i54, %while.body.i46 ] @@ -22868,7 +22860,7 @@ while.body.i.i34: ; preds = %land.rhs.i.i28 %add.ptr2.i.i35 = getelementptr inbounds ptr, ptr %__first, i64 %__holeIndex.addr.014.i.i29 store ptr %16, ptr %add.ptr2.i.i35, align 8 %cmp.i.i36.not = icmp slt i64 %__parent.015.i.i31, %__parent.063 - br i1 %cmp.i.i36.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_SE_T1_T2_.exit58, label %land.rhs.i.i28, !llvm.loop !108 + br i1 %cmp.i.i36.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_SE_T1_T2_.exit58, label %land.rhs.i.i28, !llvm.loop !109 _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_SE_T1_T2_.exit58: ; preds = %land.rhs.i.i28, %while.body.i.i34, %if.end17.i23 %__holeIndex.addr.0.lcssa.i.i26 = phi i64 [ %__holeIndex.addr.1.i24, %if.end17.i23 ], [ %__parent.015.i.i31, %while.body.i.i34 ], [ %__holeIndex.addr.014.i.i29, %land.rhs.i.i28 ] @@ -22877,7 +22869,7 @@ _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_ call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__comp.i14) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__cmp.i15) %cmp6 = icmp eq i64 %dec, 0 - br i1 %cmp6, label %return, label %if.end8.split, !llvm.loop !109 + br i1 %cmp6, label %return, label %if.end8.split, !llvm.loop !110 return: ; preds = %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_SE_T1_T2_.exit58, %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_SE_T1_T2_.exit, %entry ret void @@ -22920,7 +22912,7 @@ while.body.i: ; preds = %entry, %while.body. %add.ptr5.i = getelementptr inbounds ptr, ptr %__first, i64 %__secondChild.024.i store ptr %4, ptr %add.ptr5.i, align 8 %cmp.i = icmp slt i64 %spec.select.i, %div.i - br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !107 + br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !108 while.end.i: ; preds = %while.body.i, %entry %__secondChild.0.lcssa.i = phi i64 [ 0, %entry ], [ %spec.select.i, %while.body.i ] @@ -22964,7 +22956,7 @@ while.body.i.i: ; preds = %land.rhs.i.i %add.ptr2.i.i = getelementptr inbounds ptr, ptr %__first, i64 %__holeIndex.addr.014.i.i store ptr %9, ptr %add.ptr2.i.i, align 8 %cmp.i.i.not = icmp ult i64 %__parent.015.in.i.i, 2 - br i1 %cmp.i.i.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_SE_T1_T2_.exit, label %land.rhs.i.i, !llvm.loop !108 + br i1 %cmp.i.i.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_SE_T1_T2_.exit, label %land.rhs.i.i, !llvm.loop !109 _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI10arith_utilEEEEEvT_T0_SE_T1_T2_.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %if.end17.i %__holeIndex.addr.0.lcssa.i.i = phi i64 [ %__holeIndex.addr.1.i, %if.end17.i ], [ 0, %while.body.i.i ], [ %__holeIndex.addr.014.i.i, %land.rhs.i.i ] @@ -23250,7 +23242,7 @@ while.body.i.i: ; preds = %if.then, %while.bod %sub.ptr.lhs.cast.i.i = ptrtoint ptr %incdec.ptr.i3.i to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast %cmp.i4.i = icmp sgt i64 %sub.ptr.sub.i.i, 8 - br i1 %cmp.i4.i, label %while.body.i.i, label %_ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_SD_SD_T0_.exit, !llvm.loop !110 + br i1 %cmp.i4.i, label %while.body.i.i, label %_ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_SD_SD_T0_.exit, !llvm.loop !111 _ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_SD_SD_T0_.exit: ; preds = %while.body.i.i call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__comp.i) @@ -23276,7 +23268,7 @@ while.cond2.i.i: ; preds = %while.cond2.i.i, %w %1 = load ptr, ptr %__first, align 8 %call.i.i.i = call noundef zeroext i1 @_ZN3smt2mf10auf_solver10numeral_ltI7bv_utilEclEP4exprS6_(ptr noundef nonnull align 8 dereferenceable(8) %__comp.i.i10, ptr noundef %0, ptr noundef %1) %incdec.ptr.i.i = getelementptr inbounds i8, ptr %__first.addr.1.i.i, i64 8 - br i1 %call.i.i.i, label %while.cond2.i.i, label %while.cond5.i.i, !llvm.loop !111 + br i1 %call.i.i.i, label %while.cond2.i.i, label %while.cond5.i.i, !llvm.loop !112 while.cond5.i.i: ; preds = %while.cond2.i.i, %while.cond5.i.i %__last.addr.0.pn.i.i = phi ptr [ %__last.addr.1.i.i, %while.cond5.i.i ], [ %__last.addr.0.i.i, %while.cond2.i.i ] @@ -23284,7 +23276,7 @@ while.cond5.i.i: ; preds = %while.cond2.i.i, %w %2 = load ptr, ptr %__first, align 8 %3 = load ptr, ptr %__last.addr.1.i.i, align 8 %call.i11.i.i = call noundef zeroext i1 @_ZN3smt2mf10auf_solver10numeral_ltI7bv_utilEclEP4exprS6_(ptr noundef nonnull align 8 dereferenceable(8) %__comp.i.i10, ptr noundef %2, ptr noundef %3) - br i1 %call.i11.i.i, label %while.cond5.i.i, label %while.end9.i.i, !llvm.loop !112 + br i1 %call.i11.i.i, label %while.cond5.i.i, label %while.end9.i.i, !llvm.loop !113 while.end9.i.i: ; preds = %while.cond5.i.i %cmp.i.i = icmp ult ptr %__first.addr.1.i.i, %__last.addr.1.i.i @@ -23295,7 +23287,7 @@ if.end.i.i: ; preds = %while.end9.i.i %5 = load ptr, ptr %__last.addr.1.i.i, align 8 store ptr %5, ptr %__first.addr.1.i.i, align 8 store ptr %4, ptr %__last.addr.1.i.i, align 8 - br label %while.body.i.i11, !llvm.loop !113 + br label %while.body.i.i11, !llvm.loop !114 _ZSt27__unguarded_partition_pivotIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEET_SD_SD_T0_.exit: ; preds = %while.end9.i.i %dec = add nsw i64 %__depth_limit.addr.019, -1 @@ -23304,7 +23296,7 @@ _ZSt27__unguarded_partition_pivotIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3sm %sub.ptr.lhs.cast = ptrtoint ptr %__first.addr.1.i.i to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %cmp = icmp sgt i64 %sub.ptr.sub, 128 - br i1 %cmp, label %while.body, label %while.end, !llvm.loop !114 + br i1 %cmp, label %while.body, label %while.end, !llvm.loop !115 while.end: ; preds = %_ZSt27__unguarded_partition_pivotIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEET_SD_SD_T0_.exit, %entry, %_ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_SD_SD_T0_.exit ret void @@ -23362,7 +23354,7 @@ while.body.i.i: ; preds = %if.else.i, %while.b %__next.0.i.i = getelementptr inbounds i8, ptr %__next.012.i.i, i64 -8 %6 = load ptr, ptr %__next.0.i.i, align 8 %call.i.i.i = call noundef zeroext i1 @_ZN3smt2mf10auf_solver10numeral_ltI7bv_utilEclEP4exprS6_(ptr noundef nonnull align 8 dereferenceable(8) %__comp.i.i, ptr noundef %3, ptr noundef %6) - br i1 %call.i.i.i, label %while.body.i.i, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_.exit.i, !llvm.loop !115 + br i1 %call.i.i.i, label %while.body.i.i, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_.exit.i, !llvm.loop !116 _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_.exit.i: ; preds = %while.body.i.i, %if.else.i %__last.addr.0.lcssa.i.i = phi ptr [ %__i.015.i.ptr, %if.else.i ], [ %__next.012.i.i, %while.body.i.i ] @@ -23373,7 +23365,7 @@ _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2m for.inc.i: ; preds = %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_.exit.i, %if.then3.i %__i.015.i.add = add nuw nsw i64 %__i.015.i.idx, 8 %cmp2.not.i = icmp eq i64 %__i.015.i.add, 128 - br i1 %cmp2.not.i, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_SD_T0_.exit, label %for.body.i, !llvm.loop !116 + br i1 %cmp2.not.i, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_SD_T0_.exit, label %for.body.i, !llvm.loop !117 _ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_SD_T0_.exit: ; preds = %for.inc.i %add.ptr = getelementptr inbounds i8, ptr %__first, i64 128 @@ -23399,7 +23391,7 @@ while.body.i.i12: ; preds = %for.body.i8, %while %__next.0.i.i15 = getelementptr inbounds i8, ptr %__next.012.i.i13, i64 -8 %10 = load ptr, ptr %__next.0.i.i15, align 8 %call.i.i.i16 = call noundef zeroext i1 @_ZN3smt2mf10auf_solver10numeral_ltI7bv_utilEclEP4exprS6_(ptr noundef nonnull align 8 dereferenceable(8) %__comp.i.i7, ptr noundef %7, ptr noundef %10) - br i1 %call.i.i.i16, label %while.body.i.i12, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_.exit.i10, !llvm.loop !115 + br i1 %call.i.i.i16, label %while.body.i.i12, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_.exit.i10, !llvm.loop !116 _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_.exit.i10: ; preds = %while.body.i.i12, %for.body.i8 %__last.addr.0.lcssa.i.i11 = phi ptr [ %__i.04.i, %for.body.i8 ], [ %__next.012.i.i13, %while.body.i.i12 ] @@ -23407,7 +23399,7 @@ _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2m call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__comp.i.i7) %incdec.ptr.i = getelementptr inbounds i8, ptr %__i.04.i, i64 8 %cmp.not.i = icmp eq ptr %incdec.ptr.i, %__last - br i1 %cmp.not.i, label %if.end, label %for.body.i8, !llvm.loop !117 + br i1 %cmp.not.i, label %if.end, label %for.body.i8, !llvm.loop !118 if.else: ; preds = %entry call void @llvm.lifetime.start.p0(i64 8, ptr nonnull %__comp.i18) @@ -23455,7 +23447,7 @@ while.body.i.i33: ; preds = %if.else.i25, %while %__next.0.i.i36 = getelementptr inbounds i8, ptr %__next.012.i.i34, i64 -8 %17 = load ptr, ptr %__next.0.i.i36, align 8 %call.i.i.i37 = call noundef zeroext i1 @_ZN3smt2mf10auf_solver10numeral_ltI7bv_utilEclEP4exprS6_(ptr noundef nonnull align 8 dereferenceable(8) %__comp.i.i17, ptr noundef %14, ptr noundef %17) - br i1 %call.i.i.i37, label %while.body.i.i33, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_.exit.i28, !llvm.loop !115 + br i1 %call.i.i.i37, label %while.body.i.i33, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_.exit.i28, !llvm.loop !116 _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_.exit.i28: ; preds = %while.body.i.i33, %if.else.i25 %__last.addr.0.lcssa.i.i29 = phi ptr [ %__i.015.i22, %if.else.i25 ], [ %__next.012.i.i34, %while.body.i.i33 ] @@ -23466,7 +23458,7 @@ _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2m for.inc.i30: ; preds = %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_.exit.i28, %if.then3.i38 %__i.0.i31 = getelementptr inbounds i8, ptr %__i.015.i22, i64 8 %cmp2.not.i32 = icmp eq ptr %__i.0.i31, %__last - br i1 %cmp2.not.i32, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_SD_T0_.exit45, label %for.body.i21, !llvm.loop !116 + br i1 %cmp2.not.i32, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_SD_T0_.exit45, label %for.body.i21, !llvm.loop !117 _ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_SD_T0_.exit45: ; preds = %for.inc.i30, %if.else call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__comp.i18) @@ -23520,7 +23512,7 @@ while.body.i: ; preds = %if.end.split, %whil %add.ptr5.i = getelementptr inbounds ptr, ptr %__first, i64 %__secondChild.024.i store ptr %3, ptr %add.ptr5.i, align 8 %cmp.i = icmp slt i64 %spec.select.i, %div.i5961 - br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !118 + br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !119 while.end.i: ; preds = %while.body.i, %if.end.split %__secondChild.0.lcssa.i = phi i64 [ %div13, %if.end.split ], [ %spec.select.i, %while.body.i ] @@ -23561,7 +23553,7 @@ while.body.i.i: ; preds = %land.rhs.i.i %add.ptr2.i.i = getelementptr inbounds ptr, ptr %__first, i64 %__holeIndex.addr.014.i.i store ptr %8, ptr %add.ptr2.i.i, align 8 %cmp.i.i = icmp sgt i64 %__parent.015.i.i, %div13 - br i1 %cmp.i.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_SE_T1_T2_.exit, !llvm.loop !119 + br i1 %cmp.i.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_SE_T1_T2_.exit, !llvm.loop !120 _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_SE_T1_T2_.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %if.end17.i %__holeIndex.addr.0.lcssa.i.i = phi i64 [ %__holeIndex.addr.1.i, %if.end17.i ], [ %__parent.015.i.i, %while.body.i.i ], [ %__holeIndex.addr.014.i.i, %land.rhs.i.i ] @@ -23606,7 +23598,7 @@ while.body.i46: ; preds = %if.end8.split, %whi %add.ptr5.i56 = getelementptr inbounds ptr, ptr %__first, i64 %__secondChild.024.i47 store ptr %12, ptr %add.ptr5.i56, align 8 %cmp.i57 = icmp slt i64 %spec.select.i54, %div.i5961 - br i1 %cmp.i57, label %while.body.i46, label %while.end.i19, !llvm.loop !118 + br i1 %cmp.i57, label %while.body.i46, label %while.end.i19, !llvm.loop !119 while.end.i19: ; preds = %while.body.i46, %if.end8.split %__secondChild.0.lcssa.i20 = phi i64 [ %dec, %if.end8.split ], [ %spec.select.i54, %while.body.i46 ] @@ -23640,7 +23632,7 @@ while.body.i.i34: ; preds = %land.rhs.i.i28 %add.ptr2.i.i35 = getelementptr inbounds ptr, ptr %__first, i64 %__holeIndex.addr.014.i.i29 store ptr %16, ptr %add.ptr2.i.i35, align 8 %cmp.i.i36.not = icmp slt i64 %__parent.015.i.i31, %__parent.063 - br i1 %cmp.i.i36.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_SE_T1_T2_.exit58, label %land.rhs.i.i28, !llvm.loop !119 + br i1 %cmp.i.i36.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_SE_T1_T2_.exit58, label %land.rhs.i.i28, !llvm.loop !120 _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_SE_T1_T2_.exit58: ; preds = %land.rhs.i.i28, %while.body.i.i34, %if.end17.i23 %__holeIndex.addr.0.lcssa.i.i26 = phi i64 [ %__holeIndex.addr.1.i24, %if.end17.i23 ], [ %__parent.015.i.i31, %while.body.i.i34 ], [ %__holeIndex.addr.014.i.i29, %land.rhs.i.i28 ] @@ -23649,7 +23641,7 @@ _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_ call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__comp.i14) call void @llvm.lifetime.end.p0(i64 8, ptr nonnull %__cmp.i15) %cmp6 = icmp eq i64 %dec, 0 - br i1 %cmp6, label %return, label %if.end8.split, !llvm.loop !120 + br i1 %cmp6, label %return, label %if.end8.split, !llvm.loop !121 return: ; preds = %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_SE_T1_T2_.exit58, %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_SE_T1_T2_.exit, %entry ret void @@ -23692,7 +23684,7 @@ while.body.i: ; preds = %entry, %while.body. %add.ptr5.i = getelementptr inbounds ptr, ptr %__first, i64 %__secondChild.024.i store ptr %4, ptr %add.ptr5.i, align 8 %cmp.i = icmp slt i64 %spec.select.i, %div.i - br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !118 + br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !119 while.end.i: ; preds = %while.body.i, %entry %__secondChild.0.lcssa.i = phi i64 [ 0, %entry ], [ %spec.select.i, %while.body.i ] @@ -23736,7 +23728,7 @@ while.body.i.i: ; preds = %land.rhs.i.i %add.ptr2.i.i = getelementptr inbounds ptr, ptr %__first, i64 %__holeIndex.addr.014.i.i store ptr %9, ptr %add.ptr2.i.i, align 8 %cmp.i.i.not = icmp ult i64 %__parent.015.in.i.i, 2 - br i1 %cmp.i.i.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_SE_T1_T2_.exit, label %land.rhs.i.i, !llvm.loop !119 + br i1 %cmp.i.i.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_SE_T1_T2_.exit, label %land.rhs.i.i, !llvm.loop !120 _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver10numeral_ltI7bv_utilEEEEEvT_T0_SE_T1_T2_.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %if.end17.i %__holeIndex.addr.0.lcssa.i.i = phi i64 [ %__holeIndex.addr.1.i, %if.end17.i ], [ 0, %while.body.i.i ], [ %__holeIndex.addr.014.i.i, %land.rhs.i.i ] @@ -24011,7 +24003,7 @@ while.body.i.i: ; preds = %if.then, %while.bod %sub.ptr.lhs.cast.i.i = ptrtoint ptr %incdec.ptr.i3.i to i64 %sub.ptr.sub.i.i = sub i64 %sub.ptr.lhs.cast.i.i, %sub.ptr.rhs.cast %cmp.i4.i = icmp sgt i64 %sub.ptr.sub.i.i, 8 - br i1 %cmp.i4.i, label %while.body.i.i, label %_ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_SB_SB_T0_.exit, !llvm.loop !121 + br i1 %cmp.i4.i, label %while.body.i.i, label %_ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_SB_SB_T0_.exit, !llvm.loop !122 _ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_SB_SB_T0_.exit: ; preds = %while.body.i.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %__comp.i) @@ -24038,7 +24030,7 @@ while.cond1.i.i: ; preds = %while.cond1.i.i, %w %4 = load ptr, ptr %__first, align 8 %call.i.i.i = call noundef zeroext i1 @_ZN3smt2mf10auf_solver12signed_bv_ltclEP4exprS4_(ptr noundef nonnull align 8 dereferenceable(12) %__comp.i.i14, ptr noundef %3, ptr noundef %4) %incdec.ptr.i.i = getelementptr inbounds i8, ptr %__first.addr.1.i.i, i64 8 - br i1 %call.i.i.i, label %while.cond1.i.i, label %while.cond4.i.i, !llvm.loop !122 + br i1 %call.i.i.i, label %while.cond1.i.i, label %while.cond4.i.i, !llvm.loop !123 while.cond4.i.i: ; preds = %while.cond1.i.i, %while.cond4.i.i %__last.addr.0.pn.i.i = phi ptr [ %__last.addr.1.i.i, %while.cond4.i.i ], [ %__last.addr.0.i.i, %while.cond1.i.i ] @@ -24046,7 +24038,7 @@ while.cond4.i.i: ; preds = %while.cond1.i.i, %w %5 = load ptr, ptr %__first, align 8 %6 = load ptr, ptr %__last.addr.1.i.i, align 8 %call.i11.i.i = call noundef zeroext i1 @_ZN3smt2mf10auf_solver12signed_bv_ltclEP4exprS4_(ptr noundef nonnull align 8 dereferenceable(12) %__comp.i.i14, ptr noundef %5, ptr noundef %6) - br i1 %call.i11.i.i, label %while.cond4.i.i, label %while.end8.i.i, !llvm.loop !123 + br i1 %call.i11.i.i, label %while.cond4.i.i, label %while.end8.i.i, !llvm.loop !124 while.end8.i.i: ; preds = %while.cond4.i.i %cmp.i.i = icmp ult ptr %__first.addr.1.i.i, %__last.addr.1.i.i @@ -24057,7 +24049,7 @@ if.end.i.i: ; preds = %while.end8.i.i %8 = load ptr, ptr %__last.addr.1.i.i, align 8 store ptr %8, ptr %__first.addr.1.i.i, align 8 store ptr %7, ptr %__last.addr.1.i.i, align 8 - br label %while.body.i.i15, !llvm.loop !124 + br label %while.body.i.i15, !llvm.loop !125 _ZSt27__unguarded_partition_pivotIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEET_SB_SB_T0_.exit: ; preds = %while.end8.i.i %dec = add nsw i64 %__depth_limit.addr.023, -1 @@ -24066,7 +24058,7 @@ _ZSt27__unguarded_partition_pivotIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3sm %sub.ptr.lhs.cast = ptrtoint ptr %__first.addr.1.i.i to i64 %sub.ptr.sub = sub i64 %sub.ptr.lhs.cast, %sub.ptr.rhs.cast %cmp = icmp sgt i64 %sub.ptr.sub, 128 - br i1 %cmp, label %while.body, label %while.end, !llvm.loop !125 + br i1 %cmp, label %while.body, label %while.end, !llvm.loop !126 while.end: ; preds = %_ZSt27__unguarded_partition_pivotIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEET_SB_SB_T0_.exit, %entry, %_ZSt14__partial_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_SB_SB_T0_.exit ret void @@ -24129,7 +24121,7 @@ while.body.i.i: ; preds = %if.else.i, %while.b %__next.0.i.i = getelementptr inbounds i8, ptr %__next.012.i.i, i64 -8 %8 = load ptr, ptr %__next.0.i.i, align 8 %call.i.i.i = call noundef zeroext i1 @_ZN3smt2mf10auf_solver12signed_bv_ltclEP4exprS4_(ptr noundef nonnull align 8 dereferenceable(12) %__comp.i.i, ptr noundef %5, ptr noundef %8) - br i1 %call.i.i.i, label %while.body.i.i, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_.exit.i, !llvm.loop !126 + br i1 %call.i.i.i, label %while.body.i.i, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_.exit.i, !llvm.loop !127 _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_.exit.i: ; preds = %while.body.i.i, %if.else.i %__last.addr.0.lcssa.i.i = phi ptr [ %__i.015.i.ptr, %if.else.i ], [ %__next.012.i.i, %while.body.i.i ] @@ -24140,7 +24132,7 @@ _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2m for.inc.i: ; preds = %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_.exit.i, %if.then2.i %__i.015.i.add = add nuw nsw i64 %__i.015.i.idx, 8 %cmp1.not.i = icmp eq i64 %__i.015.i.add, 128 - br i1 %cmp1.not.i, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_SB_T0_.exit, label %for.body.i, !llvm.loop !127 + br i1 %cmp1.not.i, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_SB_T0_.exit, label %for.body.i, !llvm.loop !128 _ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_SB_T0_.exit: ; preds = %for.inc.i %add.ptr = getelementptr inbounds i8, ptr %__first, i64 128 @@ -24171,7 +24163,7 @@ while.body.i.i16: ; preds = %for.body.i12, %whil %__next.0.i.i19 = getelementptr inbounds i8, ptr %__next.012.i.i17, i64 -8 %13 = load ptr, ptr %__next.0.i.i19, align 8 %call.i.i.i20 = call noundef zeroext i1 @_ZN3smt2mf10auf_solver12signed_bv_ltclEP4exprS4_(ptr noundef nonnull align 8 dereferenceable(12) %__comp.i.i11, ptr noundef %10, ptr noundef %13) - br i1 %call.i.i.i20, label %while.body.i.i16, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_.exit.i14, !llvm.loop !126 + br i1 %call.i.i.i20, label %while.body.i.i16, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_.exit.i14, !llvm.loop !127 _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_.exit.i14: ; preds = %while.body.i.i16, %for.body.i12 %__last.addr.0.lcssa.i.i15 = phi ptr [ %__i.04.i, %for.body.i12 ], [ %__next.012.i.i17, %while.body.i.i16 ] @@ -24179,7 +24171,7 @@ _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2m call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %__comp.i.i11) %incdec.ptr.i = getelementptr inbounds i8, ptr %__i.04.i, i64 8 %cmp.not.i = icmp eq ptr %incdec.ptr.i, %__last - br i1 %cmp.not.i, label %if.end, label %for.body.i12, !llvm.loop !128 + br i1 %cmp.not.i, label %if.end, label %for.body.i12, !llvm.loop !129 if.else: ; preds = %entry call void @llvm.lifetime.start.p0(i64 16, ptr nonnull %__comp.i22) @@ -24237,7 +24229,7 @@ while.body.i.i39: ; preds = %if.else.i30, %while %__next.0.i.i42 = getelementptr inbounds i8, ptr %__next.012.i.i40, i64 -8 %22 = load ptr, ptr %__next.0.i.i42, align 8 %call.i.i.i43 = call noundef zeroext i1 @_ZN3smt2mf10auf_solver12signed_bv_ltclEP4exprS4_(ptr noundef nonnull align 8 dereferenceable(12) %__comp.i.i21, ptr noundef %19, ptr noundef %22) - br i1 %call.i.i.i43, label %while.body.i.i39, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_.exit.i34, !llvm.loop !126 + br i1 %call.i.i.i43, label %while.body.i.i39, label %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_.exit.i34, !llvm.loop !127 _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_.exit.i34: ; preds = %while.body.i.i39, %if.else.i30 %__last.addr.0.lcssa.i.i35 = phi ptr [ %__i.015.i27, %if.else.i30 ], [ %__next.012.i.i40, %while.body.i.i39 ] @@ -24248,7 +24240,7 @@ _ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2m for.inc.i36: ; preds = %_ZSt25__unguarded_linear_insertIPP4exprN9__gnu_cxx5__ops14_Val_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_.exit.i34, %if.then2.i44 %__i.0.i37 = getelementptr inbounds i8, ptr %__i.015.i27, i64 8 %cmp1.not.i38 = icmp eq ptr %__i.0.i37, %__last - br i1 %cmp1.not.i38, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_SB_T0_.exit51, label %for.body.i26, !llvm.loop !127 + br i1 %cmp1.not.i38, label %_ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_SB_T0_.exit51, label %for.body.i26, !llvm.loop !128 _ZSt16__insertion_sortIPP4exprN9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_SB_T0_.exit51: ; preds = %for.inc.i36, %if.else, %for.cond.preheader.i call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %__comp.i22) @@ -24306,7 +24298,7 @@ while.body.i: ; preds = %if.end.split, %whil %add.ptr4.i = getelementptr inbounds ptr, ptr %__first, i64 %__secondChild.024.i store ptr %4, ptr %add.ptr4.i, align 8 %cmp.i = icmp slt i64 %spec.select.i, %div.i6567 - br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !129 + br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !130 while.end.i: ; preds = %while.body.i, %if.end.split %__secondChild.0.lcssa.i = phi i64 [ %div19, %if.end.split ], [ %spec.select.i, %while.body.i ] @@ -24346,7 +24338,7 @@ while.body.i.i: ; preds = %land.rhs.i.i %add.ptr2.i.i = getelementptr inbounds ptr, ptr %__first, i64 %__holeIndex.addr.014.i.i store ptr %8, ptr %add.ptr2.i.i, align 8 %cmp.i.i = icmp sgt i64 %__parent.015.i.i, %div19 - br i1 %cmp.i.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_SC_T1_T2_.exit, !llvm.loop !130 + br i1 %cmp.i.i, label %land.rhs.i.i, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_SC_T1_T2_.exit, !llvm.loop !131 _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_SC_T1_T2_.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %if.end16.i %__holeIndex.addr.0.lcssa.i.i = phi i64 [ %__holeIndex.addr.1.i, %if.end16.i ], [ %__parent.015.i.i, %while.body.i.i ], [ %__holeIndex.addr.014.i.i, %land.rhs.i.i ] @@ -24394,7 +24386,7 @@ while.body.i52: ; preds = %if.end7.split, %whi %add.ptr4.i62 = getelementptr inbounds ptr, ptr %__first, i64 %__secondChild.024.i53 store ptr %13, ptr %add.ptr4.i62, align 8 %cmp.i63 = icmp slt i64 %spec.select.i60, %div.i6567 - br i1 %cmp.i63, label %while.body.i52, label %while.end.i25, !llvm.loop !129 + br i1 %cmp.i63, label %while.body.i52, label %while.end.i25, !llvm.loop !130 while.end.i25: ; preds = %while.body.i52, %if.end7.split %__secondChild.0.lcssa.i26 = phi i64 [ %dec, %if.end7.split ], [ %spec.select.i60, %while.body.i52 ] @@ -24427,7 +24419,7 @@ while.body.i.i40: ; preds = %land.rhs.i.i34 %add.ptr2.i.i41 = getelementptr inbounds ptr, ptr %__first, i64 %__holeIndex.addr.014.i.i35 store ptr %16, ptr %add.ptr2.i.i41, align 8 %cmp.i.i42.not = icmp slt i64 %__parent.015.i.i37, %__parent.069 - br i1 %cmp.i.i42.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_SC_T1_T2_.exit64, label %land.rhs.i.i34, !llvm.loop !130 + br i1 %cmp.i.i42.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_SC_T1_T2_.exit64, label %land.rhs.i.i34, !llvm.loop !131 _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_SC_T1_T2_.exit64: ; preds = %land.rhs.i.i34, %while.body.i.i40, %if.end16.i29 %__holeIndex.addr.0.lcssa.i.i32 = phi i64 [ %__holeIndex.addr.1.i30, %if.end16.i29 ], [ %__parent.015.i.i37, %while.body.i.i40 ], [ %__holeIndex.addr.014.i.i35, %land.rhs.i.i34 ] @@ -24436,7 +24428,7 @@ _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_ call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %__comp.i20) call void @llvm.lifetime.end.p0(i64 16, ptr nonnull %__cmp.i21) %cmp5 = icmp eq i64 %dec, 0 - br i1 %cmp5, label %return, label %if.end7.split, !llvm.loop !131 + br i1 %cmp5, label %return, label %if.end7.split, !llvm.loop !132 return: ; preds = %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_SC_T1_T2_.exit64, %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_SC_T1_T2_.exit, %entry ret void @@ -24483,7 +24475,7 @@ while.body.i: ; preds = %entry, %while.body. %add.ptr4.i = getelementptr inbounds ptr, ptr %__first, i64 %__secondChild.024.i store ptr %5, ptr %add.ptr4.i, align 8 %cmp.i = icmp slt i64 %spec.select.i, %div.i - br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !129 + br i1 %cmp.i, label %while.body.i, label %while.end.i, !llvm.loop !130 while.end.i: ; preds = %while.body.i, %entry %__secondChild.0.lcssa.i = phi i64 [ 0, %entry ], [ %spec.select.i, %while.body.i ] @@ -24526,7 +24518,7 @@ while.body.i.i: ; preds = %land.rhs.i.i %add.ptr2.i.i = getelementptr inbounds ptr, ptr %__first, i64 %__holeIndex.addr.014.i.i store ptr %9, ptr %add.ptr2.i.i, align 8 %cmp.i.i.not = icmp ult i64 %__parent.015.in.i.i, 2 - br i1 %cmp.i.i.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_SC_T1_T2_.exit, label %land.rhs.i.i, !llvm.loop !130 + br i1 %cmp.i.i.not, label %_ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_SC_T1_T2_.exit, label %land.rhs.i.i, !llvm.loop !131 _ZSt13__adjust_heapIPP4exprlS1_N9__gnu_cxx5__ops15_Iter_comp_iterIN3smt2mf10auf_solver12signed_bv_ltEEEEvT_T0_SC_T1_T2_.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %if.end16.i %__holeIndex.addr.0.lcssa.i.i = phi i64 [ %__holeIndex.addr.1.i, %if.end16.i ], [ 0, %while.body.i.i ], [ %__holeIndex.addr.014.i.i, %land.rhs.i.i ] @@ -25021,7 +25013,7 @@ land.rhs.i.i.i.i.i: ; preds = %_ZN3smt2mf4node21ge while.body.i.i.i.i.i: ; preds = %land.rhs.i.i.i.i.i %incdec.ptr.i.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i.i.i, i64 16 %cmp.not.i.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i.i, %add.ptr.i.i.i - br i1 %cmp.not.i.i.i.i.i, label %if.end13, label %land.rhs.i.i.i.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i.i.i.i, label %if.end13, label %land.rhs.i.i.i.i.i, !llvm.loop !33 _ZNK7obj_mapI4exprjE5beginEv.exit.i: ; preds = %land.rhs.i.i.i.i.i, %_ZN3smt2mf4node21get_instantiation_setEv.exit.i %retval.sroa.0.1.i.i.i = phi ptr [ %11, %_ZN3smt2mf4node21get_instantiation_setEv.exit.i ], [ %retval.sroa.0.0.i.i.i, %land.rhs.i.i.i.i.i ] @@ -25096,7 +25088,7 @@ land.rhs.i.i.i: ; preds = %for.inc20.i, %while while.body.i.i.i: ; preds = %land.rhs.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %__begin2.sroa.0.1.i, i64 16 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr.i.i.i - br i1 %cmp.not.i.i.i, label %invoke.cont9, label %land.rhs.i.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i.i, label %invoke.cont9, label %land.rhs.i.i.i, !llvm.loop !33 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit.i: ; preds = %land.rhs.i.i.i %cmp.i.not.i = icmp eq ptr %__begin2.sroa.0.1.i, %add.ptr.i.i.i @@ -25233,7 +25225,7 @@ land.rhs.i.i.i.i: ; preds = %if.end28, %while.bo while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i.i, i64 16 %cmp.not.i.i.i.i51 = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr.i.i50 - br i1 %cmp.not.i.i.i.i51, label %_ZNK7obj_mapI4exprjE5beginEv.exit, label %land.rhs.i.i.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i.i.i51, label %_ZNK7obj_mapI4exprjE5beginEv.exit, label %land.rhs.i.i.i.i, !llvm.loop !33 _ZNK7obj_mapI4exprjE5beginEv.exit: ; preds = %land.rhs.i.i.i.i, %while.body.i.i.i.i, %if.end28 %retval.sroa.0.1.i.i = phi ptr [ %33, %if.end28 ], [ %retval.sroa.0.0.i.i, %land.rhs.i.i.i.i ], [ %add.ptr.i.i50, %while.body.i.i.i.i ] @@ -25332,7 +25324,7 @@ for.body.i.i: ; preds = %for.body.i.i, %for. store ptr %9, ptr %arrayidx.i.i11, align 8 %indvars.iv.next.i.i = add nuw nsw i64 %indvars.iv.i.i, 1 %exitcond.not.i.i = icmp eq i64 %indvars.iv.next.i.i, %wide.trip.count.i.i - br i1 %exitcond.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !28 + br i1 %exitcond.not.i.i, label %for.end.i.i, label %for.body.i.i, !llvm.loop !29 for.end.i.i: ; preds = %for.body.i.i, %if.then.i %cmp.not.i.i.i = icmp eq ptr %.pre.i.i, %m_initial_buffer.i.i.i @@ -25484,7 +25476,7 @@ for.body.i.i49: ; preds = %for.body.i.i49, %fo store ptr %29, ptr %arrayidx.i.i51, align 8 %indvars.iv.next.i.i53 = add nuw nsw i64 %indvars.iv.i.i50, 1 %exitcond.not.i.i54 = icmp eq i64 %indvars.iv.next.i.i53, %wide.trip.count.i.i48 - br i1 %exitcond.not.i.i54, label %for.end.i.i55, label %for.body.i.i49, !llvm.loop !28 + br i1 %exitcond.not.i.i54, label %for.end.i.i55, label %for.body.i.i49, !llvm.loop !29 for.end.i.i55: ; preds = %for.body.i.i49, %if.then.i40 %cmp.not.i.i.i57 = icmp eq ptr %.pre.i.i46, %m_initial_buffer.i.i.i56 @@ -25567,7 +25559,7 @@ if.then.i.i.i: ; preds = %for.body.i.i.i for.inc.i.i.i: ; preds = %if.then.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i, i64 16 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr5.i.i.i - br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !23 + br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !24 for.body20.i.i.i: ; preds = %for.cond18.preheader.i.i.i, %for.inc36.i.i.i %curr.133.i.i.i = phi ptr [ %incdec.ptr37.i.i.i, %for.inc36.i.i.i ], [ %2, %for.cond18.preheader.i.i.i ] @@ -25589,7 +25581,7 @@ if.then22.i.i.i: ; preds = %for.body20.i.i.i for.inc36.i.i.i: ; preds = %if.then22.i.i.i, %for.body20.i.i.i %incdec.ptr37.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i, i64 16 %cmp19.not.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i, %add.ptr.i.i.i - br i1 %cmp19.not.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %for.body20.i.i.i, !llvm.loop !24 + br i1 %cmp19.not.i.i.i, label %_ZN15ref_vector_coreI4expr19ref_manager_wrapperIS0_11ast_managerEE7inc_refEPS0_.exit.i, label %for.body20.i.i.i, !llvm.loop !25 _ZNK7obj_mapI4sortP3appE4findEPS0_RS2_.exit: ; preds = %if.then.i.i.i, %if.then22.i.i.i %retval.0.i.i.i = phi ptr [ %curr.133.i.i.i, %if.then22.i.i.i ], [ %curr.031.i.i.i, %if.then.i.i.i ] @@ -25844,7 +25836,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.053, %if.then9 ], [ %curr.052, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.052, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !132 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !133 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.256 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -25890,7 +25882,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.256, %if.then31 ], [ %curr.155, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.155, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !133 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !134 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 404, ptr noundef nonnull @.str.8) @@ -25955,7 +25947,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !134 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !135 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -25966,7 +25958,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !135 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !136 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 212, ptr noundef nonnull @.str.8) @@ -25981,7 +25973,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4sortP3appE13obj_map_entryE8obj_hashINS4_8key_dataEE10default_eqIS7_EE10move_tableEPS5_jSC_j.exit.loopexit, label %for.body.i, !llvm.loop !136 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI4sortP3appE13obj_map_entryE8obj_hashINS4_8key_dataEE10default_eqIS7_EE10move_tableEPS5_jSC_j.exit.loopexit, label %for.body.i, !llvm.loop !137 _ZN14core_hashtableIN7obj_mapI4sortP3appE13obj_map_entryE8obj_hashINS4_8key_dataEE10default_eqIS7_EE10move_tableEPS5_jSC_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -26051,7 +26043,7 @@ if.then.i.i.i.i: ; preds = %for.body.i.i.i.i for.inc.i.i.i.i: ; preds = %if.then.i.i.i.i, %for.body.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i.i, i64 24 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr5.i.i.i.i - br i1 %cmp.not.i.i.i.i, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !137 + br i1 %cmp.not.i.i.i.i, label %for.cond18.preheader.i.i.i.i, label %for.body.i.i.i.i, !llvm.loop !138 for.body20.i.i.i.i: ; preds = %for.cond18.preheader.i.i.i.i, %for.inc36.i.i.i.i %curr.133.i.i.i.i = phi ptr [ %incdec.ptr37.i.i.i.i, %for.inc36.i.i.i.i ], [ %4, %for.cond18.preheader.i.i.i.i ] @@ -26073,7 +26065,7 @@ if.then22.i.i.i.i: ; preds = %for.body20.i.i.i.i for.inc36.i.i.i.i: ; preds = %if.then22.i.i.i.i, %for.body20.i.i.i.i %incdec.ptr37.i.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i.i, i64 24 %cmp19.not.i.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i.i, %add.ptr.i.i.i.i - br i1 %cmp19.not.i.i.i.i, label %if.end, label %for.body20.i.i.i.i, !llvm.loop !138 + br i1 %cmp19.not.i.i.i.i, label %if.end, label %for.body20.i.i.i.i, !llvm.loop !139 _ZNK10model_core16get_const_interpEP9func_decl.exit: ; preds = %if.then.i.i.i.i, %if.then22.i.i.i.i %retval.0.i.i.i.i = phi ptr [ %curr.133.i.i.i.i, %if.then22.i.i.i.i ], [ %curr.031.i.i.i.i, %if.then.i.i.i.i ] @@ -26125,7 +26117,7 @@ land.rhs.i.i.i.i: ; preds = %entry, %while.body. while.body.i.i.i.i: ; preds = %land.rhs.i.i.i.i %incdec.ptr.i.i.i.i = getelementptr inbounds i8, ptr %retval.sroa.0.0.i.i, i64 16 %cmp.not.i.i.i.i = icmp eq ptr %incdec.ptr.i.i.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i.i.i, label %for.end, label %land.rhs.i.i.i.i, !llvm.loop !33 _ZNK7obj_mapI4exprjE5beginEv.exit: ; preds = %land.rhs.i.i.i.i, %entry %retval.sroa.0.1.i.i = phi ptr [ %0, %entry ], [ %retval.sroa.0.0.i.i, %land.rhs.i.i.i.i ] @@ -26189,7 +26181,7 @@ if.then.i.i.i: ; preds = %for.body.i.i.i for.inc.i.i.i: ; preds = %if.then.i.i.i, %for.body.i.i.i %incdec.ptr.i.i.i = getelementptr inbounds i8, ptr %curr.031.i.i.i, i64 16 %cmp.not.i.i.i = icmp eq ptr %incdec.ptr.i.i.i, %add.ptr5.i.i.i - br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !21 + br i1 %cmp.not.i.i.i, label %for.cond18.preheader.i.i.i, label %for.body.i.i.i, !llvm.loop !22 for.body20.i.i.i: ; preds = %for.cond18.preheader.i.i.i, %for.inc36.i.i.i %curr.133.i.i.i = phi ptr [ %incdec.ptr37.i.i.i, %for.inc36.i.i.i ], [ %8, %for.cond18.preheader.i.i.i ] @@ -26211,7 +26203,7 @@ if.then22.i.i.i: ; preds = %for.body20.i.i.i for.inc36.i.i.i: ; preds = %if.then22.i.i.i, %for.body20.i.i.i %incdec.ptr37.i.i.i = getelementptr inbounds i8, ptr %curr.133.i.i.i, i64 16 %cmp19.not.i.i.i = icmp eq ptr %incdec.ptr37.i.i.i, %add.ptr.i.i.i - br i1 %cmp19.not.i.i.i, label %if.else, label %for.body20.i.i.i, !llvm.loop !22 + br i1 %cmp19.not.i.i.i, label %if.else, label %for.body20.i.i.i, !llvm.loop !23 if.then7: ; preds = %if.then.i.i.i, %if.then22.i.i.i %retval.0.i.i.i = phi ptr [ %curr.133.i.i.i, %if.then22.i.i.i ], [ %curr.031.i.i.i, %if.then.i.i.i ] @@ -26254,7 +26246,7 @@ if.then.i.i.i43: ; preds = %for.body.i.i.i20 for.inc.i.i.i23: ; preds = %if.then.i.i.i43, %for.body.i.i.i20 %incdec.ptr.i.i.i24 = getelementptr inbounds i8, ptr %curr.031.i.i.i21, i64 16 %cmp.not.i.i.i25 = icmp eq ptr %incdec.ptr.i.i.i24, %add.ptr5.i.i.i18 - br i1 %cmp.not.i.i.i25, label %for.cond18.preheader.i.i.i26, label %for.body.i.i.i20, !llvm.loop !25 + br i1 %cmp.not.i.i.i25, label %for.cond18.preheader.i.i.i26, label %for.body.i.i.i20, !llvm.loop !26 for.body20.i.i.i28: ; preds = %for.cond18.preheader.i.i.i26, %for.inc36.i.i.i31 %curr.133.i.i.i29 = phi ptr [ %incdec.ptr37.i.i.i32, %for.inc36.i.i.i31 ], [ %16, %for.cond18.preheader.i.i.i26 ] @@ -26276,7 +26268,7 @@ if.then22.i.i.i35: ; preds = %for.body20.i.i.i28 for.inc36.i.i.i31: ; preds = %if.then22.i.i.i35, %for.body20.i.i.i28 %incdec.ptr37.i.i.i32 = getelementptr inbounds i8, ptr %curr.133.i.i.i29, i64 16 %cmp19.not.i.i.i33 = icmp eq ptr %incdec.ptr37.i.i.i32, %add.ptr.i.i.i16 - br i1 %cmp19.not.i.i.i33, label %for.inc, label %for.body20.i.i.i28, !llvm.loop !26 + br i1 %cmp19.not.i.i.i33, label %for.inc, label %for.body20.i.i.i28, !llvm.loop !27 _ZNK7obj_mapI4exprjE4findEPS0_Rj.exit: ; preds = %if.then.i.i.i43, %if.then22.i.i.i35 %retval.0.i.i.i41 = phi ptr [ %curr.133.i.i.i29, %if.then22.i.i.i35 ], [ %curr.031.i.i.i21, %if.then.i.i.i43 ] @@ -26315,7 +26307,7 @@ land.rhs.i.i: ; preds = %for.inc, %while.bod while.body.i.i: ; preds = %land.rhs.i.i %incdec.ptr.i.i = getelementptr inbounds i8, ptr %__begin2.sroa.0.1, i64 16 %cmp.not.i.i = icmp eq ptr %incdec.ptr.i.i, %add.ptr.i.i - br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !32 + br i1 %cmp.not.i.i, label %_ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit, label %land.rhs.i.i, !llvm.loop !33 _ZN14core_hashtableIN7obj_mapI4exprjE13obj_map_entryE8obj_hashINS2_8key_dataEE10default_eqIS5_EE8iteratorppEv.exit: ; preds = %land.rhs.i.i, %while.body.i.i, %for.inc %__begin2.sroa.0.2 = phi ptr [ %incdec.ptr.i, %for.inc ], [ %__begin2.sroa.0.1, %land.rhs.i.i ], [ %incdec.ptr.i.i, %while.body.i.i ] @@ -26863,7 +26855,7 @@ for.inc: ; preds = %for.body, %if.then9 %del_entry.1 = phi ptr [ %del_entry.053, %if.then9 ], [ %curr.052, %for.body ] %incdec.ptr = getelementptr inbounds i8, ptr %curr.052, i64 16 %cmp7.not = icmp eq ptr %incdec.ptr, %add.ptr6 - br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !139 + br i1 %cmp7.not, label %for.cond27.preheader, label %for.body, !llvm.loop !140 for.body29: ; preds = %for.cond27.preheader, %for.inc54 %del_entry.256 = phi ptr [ %del_entry.3, %for.inc54 ], [ %del_entry.0.lcssa, %for.cond27.preheader ] @@ -26909,7 +26901,7 @@ for.inc54: ; preds = %for.body29, %if.the %del_entry.3 = phi ptr [ %del_entry.256, %if.then31 ], [ %curr.155, %for.body29 ] %incdec.ptr55 = getelementptr inbounds i8, ptr %curr.155, i64 16 %cmp28.not = icmp eq ptr %incdec.ptr55, %add.ptr - br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !140 + br i1 %cmp28.not, label %for.end56, label %for.body29, !llvm.loop !141 for.end56: ; preds = %for.inc54, %for.cond27.preheader tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 404, ptr noundef nonnull @.str.8) @@ -26974,7 +26966,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !141 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !142 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -26985,7 +26977,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !142 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !143 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 212, ptr noundef nonnull @.str.8) @@ -27000,7 +26992,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI10quantifierPN3smt2mf15quantifier_infoEE13obj_map_entryE8obj_hashINS6_8key_dataEE10default_eqIS9_EE10move_tableEPS7_jSE_j.exit.loopexit, label %for.body.i, !llvm.loop !143 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI10quantifierPN3smt2mf15quantifier_infoEE13obj_map_entryE8obj_hashINS6_8key_dataEE10default_eqIS9_EE10move_tableEPS7_jSE_j.exit.loopexit, label %for.body.i, !llvm.loop !144 _ZN14core_hashtableIN7obj_mapI10quantifierPN3smt2mf15quantifier_infoEE13obj_map_entryE8obj_hashINS6_8key_dataEE10default_eqIS9_EE10move_tableEPS7_jSE_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -27227,7 +27219,7 @@ if.then: ; preds = %for.body for.inc: ; preds = %for.body, %if.then %incdec.ptr = getelementptr inbounds i8, ptr %curr.039, i64 16 %cmp.not = icmp eq ptr %incdec.ptr, %add.ptr5 - br i1 %cmp.not, label %for.cond17.preheader, label %for.body, !llvm.loop !144 + br i1 %cmp.not, label %for.cond17.preheader, label %for.body, !llvm.loop !145 for.body19: ; preds = %for.cond17.preheader, %for.inc34 %curr.241 = phi ptr [ %incdec.ptr35, %for.inc34 ], [ %3, %for.cond17.preheader ] @@ -27249,7 +27241,7 @@ if.then21: ; preds = %for.body19 for.inc34: ; preds = %for.body19, %if.then21 %incdec.ptr35 = getelementptr inbounds i8, ptr %curr.241, i64 16 %cmp18.not = icmp eq ptr %incdec.ptr35, %add.ptr - br i1 %cmp18.not, label %if.end55, label %for.body19, !llvm.loop !145 + br i1 %cmp18.not, label %if.end55, label %for.body19, !llvm.loop !146 end_remove: ; preds = %if.then, %if.then21 %curr.1 = phi ptr [ %curr.241, %if.then21 ], [ %curr.039, %if.then ] @@ -27348,7 +27340,7 @@ for.body8.i: ; preds = %if.then.i, %for.inc for.inc.i: ; preds = %for.body8.i %incdec.ptr.i = getelementptr inbounds i8, ptr %target_curr.022.i, i64 16 %cmp7.not.i = icmp eq ptr %incdec.ptr.i, %add.ptr2.i - br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !141 + br i1 %cmp7.not.i, label %for.cond11.preheader.i, label %for.body8.i, !llvm.loop !142 for.body13.i: ; preds = %for.cond11.preheader.i, %for.inc17.i %target_curr.124.i = phi ptr [ %incdec.ptr18.i, %for.inc17.i ], [ %call.i.i, %for.cond11.preheader.i ] @@ -27359,7 +27351,7 @@ for.body13.i: ; preds = %for.cond11.preheade for.inc17.i: ; preds = %for.body13.i %incdec.ptr18.i = getelementptr inbounds i8, ptr %target_curr.124.i, i64 16 %cmp12.not.i = icmp eq ptr %incdec.ptr18.i, %add.ptr5.i - br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !142 + br i1 %cmp12.not.i, label %for.end19.i, label %for.body13.i, !llvm.loop !143 for.end19.i: ; preds = %for.cond11.preheader.i, %for.inc17.i tail call void @_Z26notify_assertion_violationPKciS0_(ptr noundef nonnull @.str.7, i32 noundef 212, ptr noundef nonnull @.str.8) @@ -27374,7 +27366,7 @@ for.inc21.sink.split.i: ; preds = %for.body8.i, %for.b for.inc21.i: ; preds = %for.inc21.sink.split.i, %for.body.i %incdec.ptr22.i = getelementptr inbounds i8, ptr %source_curr.026.i, i64 16 %cmp.not.i = icmp eq ptr %incdec.ptr22.i, %add.ptr.i - br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI10quantifierPN3smt2mf15quantifier_infoEE13obj_map_entryE8obj_hashINS6_8key_dataEE10default_eqIS9_EE10move_tableEPS7_jSE_j.exit.loopexit, label %for.body.i, !llvm.loop !143 + br i1 %cmp.not.i, label %_ZN14core_hashtableIN7obj_mapI10quantifierPN3smt2mf15quantifier_infoEE13obj_map_entryE8obj_hashINS6_8key_dataEE10default_eqIS9_EE10move_tableEPS7_jSE_j.exit.loopexit, label %for.body.i, !llvm.loop !144 _ZN14core_hashtableIN7obj_mapI10quantifierPN3smt2mf15quantifier_infoEE13obj_map_entryE8obj_hashINS6_8key_dataEE10default_eqIS9_EE10move_tableEPS7_jSE_j.exit.loopexit: ; preds = %for.inc21.i %.pre = load ptr, ptr %this, align 8 @@ -27469,7 +27461,7 @@ attributes #27 = { cold noreturn nounwind } !16 = distinct !{!16, !5} !17 = distinct !{!17, !5} !18 = distinct !{!18, !5} -!19 = distinct !{!19, !5} +!19 = !{} !20 = distinct !{!20, !5} !21 = distinct !{!21, !5} !22 = distinct !{!22, !5} @@ -27596,3 +27588,4 @@ attributes #27 = { cold noreturn nounwind } !143 = distinct !{!143, !5} !144 = distinct !{!144, !5} !145 = distinct !{!145, !5} +!146 = distinct !{!146, !5} diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index 820278fb20a..d702f8b60c5 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/109008 # Please rebase manually # git fetch origin