diff --git a/bench/meshlab/optimized/cleanfilter.cpp.ll b/bench/meshlab/optimized/cleanfilter.cpp.ll index a4765863fe8..2ffc657b885 100644 --- a/bench/meshlab/optimized/cleanfilter.cpp.ll +++ b/bench/meshlab/optimized/cleanfilter.cpp.ll @@ -50344,9 +50344,9 @@ _ZN3vcg15ClosestIteratorINS_13GridStaticPtrI6CFaceOfEENS_4face24PointDistanceBas %238 = phi i32 [ %217, %236 ], [ %208, %234 ] %239 = icmp sle i32 %221, %232 %240 = icmp sle i32 %225, %235 - %or.cond.i.not23.i = and i1 %239, %240 + %or.cond.i.not21.i = and i1 %239, %240 %241 = icmp sle i32 %229, %238 - %or.cond13.i.not.i = and i1 %or.cond.i.not23.i, %241 + %or.cond13.i.not.i = and i1 %or.cond.i.not21.i, %241 br i1 %or.cond13.i.not.i, label %.noexc36, label %_ZN3vcg4Box3IiE9IntersectERKS1_.exit.thread.i _ZN3vcg4Box3IiE9IntersectERKS1_.exit.thread.i: ; preds = %237 @@ -50751,9 +50751,9 @@ define linkonce_odr noundef zeroext i1 @_ZN3vcg15ClosestIteratorINS_13GridStatic %98 = phi i32 [ %77, %96 ], [ %67, %94 ] %99 = icmp sle i32 %81, %92 %100 = icmp sle i32 %85, %95 - %or.cond.i.not23 = and i1 %99, %100 + %or.cond.i.not21 = and i1 %99, %100 %101 = icmp sle i32 %89, %98 - %or.cond13.i.not = and i1 %or.cond.i.not23, %101 + %or.cond13.i.not = and i1 %or.cond.i.not21, %101 br i1 %or.cond13.i.not, label %_ZNK3vcg4Box3IiE6IsNullEv.exit, label %_ZN3vcg4Box3IiE9IntersectERKS1_.exit.thread _ZN3vcg4Box3IiE9IntersectERKS1_.exit.thread: ; preds = %97 diff --git a/bench/quickjs/optimized/quickjs.ll b/bench/quickjs/optimized/quickjs.ll index 58db869053e..168831da75c 100644 --- a/bench/quickjs/optimized/quickjs.ll +++ b/bench/quickjs/optimized/quickjs.ll @@ -110558,7 +110558,7 @@ define internal fastcc { i64, i64 } @js_string___GetSubstitution(ptr noundef %0, %.sroa.3102.0..sroa_idx = getelementptr inbounds nuw i8, ptr %1, i64 8 %.sroa.3102.0.copyload = load i64, ptr %.sroa.3102.0..sroa_idx, align 8 %7 = getelementptr i8, ptr %1, i64 16 - %.sroa.097.0.copyload308 = load i64, ptr %7, align 8 + %.sroa.097.0.copyload306 = load i64, ptr %7, align 8 %.sroa.399.0..sroa_idx = getelementptr i8, ptr %1, i64 24 %.sroa.399.0.copyload = load i64, ptr %.sroa.399.0..sroa_idx, align 8 %8 = getelementptr i8, ptr %1, i64 48 @@ -110570,17 +110570,17 @@ define internal fastcc { i64, i64 } @js_string___GetSubstitution(ptr noundef %0, %.sroa.389.0..sroa_idx = getelementptr i8, ptr %1, i64 72 %.sroa.389.0.copyload = load i64, ptr %.sroa.389.0..sroa_idx, align 8 %10 = getelementptr i8, ptr %1, i64 80 - %.sroa.084.0.copyload309 = load i64, ptr %10, align 8 + %.sroa.084.0.copyload307 = load i64, ptr %10, align 8 %.sroa.386.0..sroa_idx = getelementptr i8, ptr %1, i64 88 %.sroa.386.0.copyload = load i64, ptr %.sroa.386.0..sroa_idx, align 8 %11 = and i64 %.sroa.386.0.copyload, 4294967295 %.not = icmp eq i64 %11, 4294967289 %12 = and i64 %.sroa.399.0.copyload, 4294967295 %.not249 = icmp eq i64 %12, 4294967289 - %or.cond259 = select i1 %.not, i1 %.not249, i1 false - %13 = inttoptr i64 %.sroa.097.0.copyload308 to ptr - %14 = inttoptr i64 %.sroa.084.0.copyload309 to ptr - br i1 %or.cond259, label %17, label %15 + %or.cond260 = select i1 %.not, i1 %.not249, i1 false + %13 = inttoptr i64 %.sroa.097.0.copyload306 to ptr + %14 = inttoptr i64 %.sroa.084.0.copyload307 to ptr + br i1 %or.cond260, label %17, label %15 15: ; preds = %2 %16 = tail call { i64, i64 } (ptr, ptr, ...) @JS_ThrowTypeError(ptr noundef %0, ptr noundef nonnull @.str.234) @@ -110885,11 +110885,11 @@ string_get.exit: ; preds = %142, %146 br i1 %.not13.i, label %._crit_edge, label %string_buffer_putc8.exit ._crit_edge: ; preds = %154 - %.pre306 = load i32, ptr %19, align 8 + %.pre303 = load i32, ptr %19, align 8 br label %157 157: ; preds = %._crit_edge, %151 - %158 = phi i32 [ %.pre306, %._crit_edge ], [ %152, %151 ] + %158 = phi i32 [ %.pre303, %._crit_edge ], [ %152, %151 ] %159 = load i32, ptr %20, align 8 %.not14.i = icmp eq i32 %159, 0 %160 = load ptr, ptr %70, align 8 @@ -111112,8 +111112,8 @@ string_get.exit198: ; preds = %243, %247 %264 = zext nneg i32 %.0127 to i64 %265 = tail call fastcc { i64, i64 } @JS_GetPropertyInt64(ptr noundef %0, i64 %.sroa.091.0.copyload, i64 %.sroa.494.0.copyload, i64 noundef %264) %266 = extractvalue { i64, i64 } %265, 1 - %trunc284 = trunc i64 %266 to i32 - switch i32 %trunc284, label %267 [ + %trunc282 = trunc i64 %266 to i32 + switch i32 %trunc282, label %267 [ i32 6, label %.loopexit i32 3, label %string_buffer_putc8.exit ] @@ -111126,8 +111126,8 @@ string_get.exit198: ; preds = %243, %247 270: ; preds = %237 %271 = icmp ne i32 %150, 60 - %or.cond260 = select i1 %271, i1 true, i1 %.not253 - br i1 %or.cond260, label %.thread, label %272 + %or.cond261 = select i1 %271, i1 true, i1 %.not253 + br i1 %or.cond261, label %.thread, label %272 272: ; preds = %270 %273 = tail call fastcc i32 @string_indexof_char(ptr noundef nonnull %14, i32 noundef 62, i32 noundef %138) @@ -111145,8 +111145,8 @@ string_get.exit198: ; preds = %243, %247 %280 = extractvalue { i64, i64 } %276, 0 %281 = tail call fastcc { i64, i64 } @JS_GetPropertyValue(ptr noundef %0, i64 %.sroa.087.0.copyload, i64 %.sroa.389.0.copyload, i64 %280, i64 %277) %282 = extractvalue { i64, i64 } %281, 1 - %trunc283 = trunc i64 %282 to i32 - switch i32 %trunc283, label %283 [ + %trunc281 = trunc i64 %282 to i32 + switch i32 %trunc281, label %283 [ i32 6, label %.loopexit i32 3, label %286 ] @@ -111242,10 +111242,10 @@ string_indexof_char.exit.thread: ; preds = %string_indexof_char br i1 %.not.i214, label %324, label %string_buffer_concat.exit228 string_indexof_char.exit.thread.thread: ; preds = %93 - %.not.i214311 = icmp ugt i32 %86, %.0 - br i1 %.not.i214311, label %.thread313, label %string_buffer_concat.exit228 + %.not.i214309 = icmp ugt i32 %86, %.0 + br i1 %.not.i214309, label %.thread311, label %string_buffer_concat.exit228 -.thread313: ; preds = %string_indexof_char.exit.thread.thread +.thread311: ; preds = %string_indexof_char.exit.thread.thread %322 = zext i32 %.0 to i64 %323 = sub nuw i32 %86, %.0 br label %327 @@ -111255,9 +111255,9 @@ string_indexof_char.exit.thread.thread: ; preds = %93 %326 = sub nuw i32 %86, %.0 br i1 %.not.i160271, label %332, label %327 -327: ; preds = %.thread313, %324 - %328 = phi i32 [ %323, %.thread313 ], [ %326, %324 ] - %329 = phi i64 [ %322, %.thread313 ], [ %325, %324 ] +327: ; preds = %.thread311, %324 + %328 = phi i32 [ %323, %.thread311 ], [ %326, %324 ] + %329 = phi i64 [ %322, %.thread311 ], [ %325, %324 ] %330 = getelementptr i16, ptr %69, i64 %329 %331 = call fastcc i32 @string_buffer_write16(ptr noundef nonnull %6, ptr noundef readonly %330, i32 noundef %328) br label %string_buffer_concat.exit228 @@ -111278,13 +111278,9 @@ string_indexof_char.exit.thread.thread: ; preds = %93 340: ; preds = %338, %332 %341 = load i32, ptr %20, align 8 %.not26.i.i217 = icmp eq i32 %341, 0 - br i1 %.not26.i.i217, label %353, label %.preheader.i.i218 + br i1 %.not26.i.i217, label %353, label %.lr.ph.i.i222 -.preheader.i.i218: ; preds = %340 - %.not285 = icmp eq i32 %86, %.0 - br i1 %.not285, label %.loopexit.i.i219, label %.lr.ph.i.i222 - -.lr.ph.i.i222: ; preds = %.preheader.i.i218 +.lr.ph.i.i222: ; preds = %340 %wide.trip.count.i.i223 = zext nneg i32 %326 to i64 %342 = load ptr, ptr %70, align 8 %343 = getelementptr inbounds nuw i8, ptr %342, i64 16 @@ -111303,7 +111299,7 @@ string_indexof_char.exit.thread.thread: ; preds = %93 store i16 %348, ptr %352, align 2 %indvars.iv.next.i.i225 = add nuw nsw i64 %indvars.iv.i.i224, 1 %exitcond.not.i.i226 = icmp eq i64 %indvars.iv.next.i.i225, %wide.trip.count.i.i223 - br i1 %exitcond.not.i.i226, label %.loopexit.i.i219, label %345, !llvm.loop !48 + br i1 %exitcond.not.i.i226, label %.loopexit.i.i219.loopexit, label %345, !llvm.loop !48 353: ; preds = %340 %354 = load ptr, ptr %70, align 8 @@ -111315,8 +111311,12 @@ string_indexof_char.exit.thread.thread: ; preds = %93 tail call void @llvm.memcpy.p0.p0.i64(ptr align 1 %358, ptr readonly align 1 %333, i64 %359, i1 false) br label %.loopexit.i.i219 -.loopexit.i.i219: ; preds = %345, %353, %.preheader.i.i218 - %.pn.i.i220 = load i32, ptr %19, align 8 +.loopexit.i.i219.loopexit: ; preds = %345 + %.pn.i.i220.pre = load i32, ptr %19, align 8 + br label %.loopexit.i.i219 + +.loopexit.i.i219: ; preds = %.loopexit.i.i219.loopexit, %353 + %.pn.i.i220 = phi i32 [ %.pn.i.i220.pre, %.loopexit.i.i219.loopexit ], [ %356, %353 ] %storemerge.i.i221 = add i32 %.pn.i.i220, %326 store i32 %storemerge.i.i221, ptr %19, align 8 br label %string_buffer_concat.exit228 @@ -111354,16 +111354,16 @@ __JS_AtomToValue.exit.i: ; preds = %362 378: ; preds = %362 %379 = load i32, ptr %18, align 4 %380 = icmp slt i32 %363, %379 - %.pre307 = load i32, ptr %20, align 8 + %.pre305 = load i32, ptr %20, align 8 br i1 %380, label %381, label %394 381: ; preds = %378 %382 = load ptr, ptr %6, align 8 %383 = getelementptr inbounds nuw i8, ptr %382, i64 24 %384 = load ptr, ptr %383, align 8 - %385 = shl i32 %363, %.pre307 + %385 = shl i32 %363, %.pre305 %386 = sext i32 %385 to i64 - %387 = sext i32 %.pre307 to i64 + %387 = sext i32 %.pre305 to i64 %reass.sub = sub nsw i64 %386, %387 %388 = add nsw i64 %reass.sub, 17 %389 = getelementptr inbounds nuw i8, ptr %384, i64 16 @@ -111376,7 +111376,7 @@ __JS_AtomToValue.exit.i: ; preds = %362 394: ; preds = %381, %378 %.0.i230 = phi ptr [ %spec.select248, %381 ], [ %360, %378 ] - %.not29.i = icmp eq i32 %.pre307, 0 + %.not29.i = icmp eq i32 %.pre305, 0 br i1 %.not29.i, label %395, label %399 395: ; preds = %394 @@ -111388,7 +111388,7 @@ __JS_AtomToValue.exit.i: ; preds = %362 br label %399 399: ; preds = %395, %394 - %400 = phi i32 [ %.pre.i, %395 ], [ %.pre307, %394 ] + %400 = phi i32 [ %.pre.i, %395 ], [ %.pre305, %394 ] %401 = getelementptr inbounds nuw i8, ptr %.0.i230, i64 4 %402 = load i64, ptr %401, align 4 %403 = shl i32 %400, 31 diff --git a/bench/soc-simulator/optimized/verilated.ll b/bench/soc-simulator/optimized/verilated.ll index e7c32c50bcf..ce58e44264f 100644 --- a/bench/soc-simulator/optimized/verilated.ll +++ b/bench/soc-simulator/optimized/verilated.ll @@ -29822,92 +29822,81 @@ _ZNK17VerilatedVarProps3lowEi.exit: ; preds = %6 %17 = load i32, ptr %16, align 4 %..i4.i = tail call noundef i32 @llvm.smin.i32(i32 %15, i32 %17) %18 = icmp slt i32 %3, %..i4.i - br i1 %18, label %.critedge, label %19 - -19: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit - %.not = icmp samesign ugt i32 %2, %8 - br i1 %.not, label %_ZNK17VerilatedVarProps4highEi.exit, label %_ZNK17VerilatedVarProps4highEi.exit.thread - -_ZNK17VerilatedVarProps4highEi.exit: ; preds = %19 - %20 = icmp sgt i32 %3, 0 - br i1 %20, label %.critedge, label %_ZNK17VerilatedVarProps3lowEi.exit31 - -_ZNK17VerilatedVarProps4highEi.exit.thread: ; preds = %19 - %..i4.i26 = tail call noundef i32 @llvm.smax.i32(i32 %15, i32 %17) - %21 = icmp sgt i32 %3, %..i4.i26 - br i1 %21, label %.critedge, label %_ZNK17VerilatedVarProps3lowEi.exit31 - -_ZNK17VerilatedVarProps3lowEi.exit31: ; preds = %_ZNK17VerilatedVarProps4highEi.exit.thread, %_ZNK17VerilatedVarProps4highEi.exit - %22 = phi i32 [ 0, %_ZNK17VerilatedVarProps4highEi.exit ], [ %..i4.i, %_ZNK17VerilatedVarProps4highEi.exit.thread ] - %23 = sub nsw i32 %3, %22 - %24 = getelementptr inbounds nuw i8, ptr %0, i64 4 - %25 = load i8, ptr %24, align 4 - switch i8 %25, label %39 [ + %..i4.i26 = tail call i32 @llvm.smax.i32(i32 %15, i32 %17) + %19 = icmp sgt i32 %3, %..i4.i26 + %or.cond = or i1 %18, %19 + br i1 %or.cond, label %.critedge, label %_ZNK17VerilatedVarProps3lowEi.exit31 + +_ZNK17VerilatedVarProps3lowEi.exit31: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit + %20 = sub nsw i32 %3, %..i4.i + %21 = getelementptr inbounds nuw i8, ptr %0, i64 4 + %22 = load i8, ptr %21, align 4 + switch i8 %22, label %36 [ i8 1, label %_ZNK17VerilatedVarProps7entSizeEv.exit - i8 2, label %26 - i8 3, label %27 - i8 4, label %28 + i8 2, label %23 + i8 3, label %24 + i8 4, label %25 i8 5, label %_ZNK17VerilatedVarProps7entSizeEv.exit - i8 6, label %29 + i8 6, label %26 ] -26: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31 +23: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31 br label %_ZNK17VerilatedVarProps7entSizeEv.exit -27: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31 +24: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31 br label %_ZNK17VerilatedVarProps7entSizeEv.exit -28: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31 +25: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31 br label %_ZNK17VerilatedVarProps7entSizeEv.exit -29: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31 - %30 = getelementptr inbounds nuw i8, ptr %0, i64 20 - %31 = load i32, ptr %30, align 4 - %32 = getelementptr inbounds nuw i8, ptr %0, i64 24 - %33 = load i32, ptr %32, align 8 - %34 = sub nsw i32 %31, %33 - %.in.i.i = tail call i32 @llvm.abs.i32(i32 %34, i1 true) - %35 = add nuw nsw i32 %.in.i.i, 32 - %36 = lshr i32 %35, 3 - %37 = and i32 %36, 268435452 - %38 = zext nneg i32 %37 to i64 +26: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31 + %27 = getelementptr inbounds nuw i8, ptr %0, i64 20 + %28 = load i32, ptr %27, align 4 + %29 = getelementptr inbounds nuw i8, ptr %0, i64 24 + %30 = load i32, ptr %29, align 8 + %31 = sub nsw i32 %28, %30 + %.in.i.i = tail call i32 @llvm.abs.i32(i32 %31, i1 true) + %32 = add nuw nsw i32 %.in.i.i, 32 + %33 = lshr i32 %32, 3 + %34 = and i32 %33, 268435452 + %35 = zext nneg i32 %34 to i64 br label %_ZNK17VerilatedVarProps7entSizeEv.exit -39: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31 +36: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31 br label %_ZNK17VerilatedVarProps7entSizeEv.exit -_ZNK17VerilatedVarProps7entSizeEv.exit: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31, %_ZNK17VerilatedVarProps3lowEi.exit31, %26, %27, %28, %29, %39 - %.0.i = phi i64 [ 0, %39 ], [ %38, %29 ], [ 4, %28 ], [ 2, %27 ], [ 1, %26 ], [ 8, %_ZNK17VerilatedVarProps3lowEi.exit31 ], [ 8, %_ZNK17VerilatedVarProps3lowEi.exit31 ] +_ZNK17VerilatedVarProps7entSizeEv.exit: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit31, %_ZNK17VerilatedVarProps3lowEi.exit31, %23, %24, %25, %26, %36 + %.0.i = phi i64 [ 0, %36 ], [ %35, %26 ], [ 4, %25 ], [ 2, %24 ], [ 1, %23 ], [ 8, %_ZNK17VerilatedVarProps3lowEi.exit31 ], [ 8, %_ZNK17VerilatedVarProps3lowEi.exit31 ] %.not.not35 = icmp samesign ult i32 %2, %8 br i1 %.not.not35, label %_ZNK17VerilatedVarProps8elementsEi.exit, label %._crit_edge _ZNK17VerilatedVarProps8elementsEi.exit: ; preds = %_ZNK17VerilatedVarProps7entSizeEv.exit, %_ZNK17VerilatedVarProps8elementsEi.exit %indvars.iv = phi i64 [ %indvars.iv.next, %_ZNK17VerilatedVarProps8elementsEi.exit ], [ %12, %_ZNK17VerilatedVarProps7entSizeEv.exit ] - %.01936 = phi i64 [ %48, %_ZNK17VerilatedVarProps8elementsEi.exit ], [ %.0.i, %_ZNK17VerilatedVarProps7entSizeEv.exit ] + %.01936 = phi i64 [ %45, %_ZNK17VerilatedVarProps8elementsEi.exit ], [ %.0.i, %_ZNK17VerilatedVarProps7entSizeEv.exit ] %indvars.iv.next = add nuw nsw i64 %indvars.iv, 1 - %40 = getelementptr %class.VerilatedRange, ptr %11, i64 %indvars.iv.next - %41 = getelementptr i8, ptr %40, i64 -8 - %42 = load i32, ptr %41, align 4 - %43 = getelementptr i8, ptr %40, i64 -4 - %44 = load i32, ptr %43, align 4 - %45 = sub nsw i32 %42, %44 - %.in.i4.i = tail call i32 @llvm.abs.i32(i32 %45, i1 true) - %46 = add nuw nsw i32 %.in.i4.i, 1 - %47 = zext nneg i32 %46 to i64 - %48 = mul i64 %.01936, %47 - %49 = trunc nuw i64 %indvars.iv.next to i32 - %.not.not = icmp sgt i32 %8, %49 + %37 = getelementptr %class.VerilatedRange, ptr %11, i64 %indvars.iv.next + %38 = getelementptr i8, ptr %37, i64 -8 + %39 = load i32, ptr %38, align 4 + %40 = getelementptr i8, ptr %37, i64 -4 + %41 = load i32, ptr %40, align 4 + %42 = sub nsw i32 %39, %41 + %.in.i4.i = tail call i32 @llvm.abs.i32(i32 %42, i1 true) + %43 = add nuw nsw i32 %.in.i4.i, 1 + %44 = zext nneg i32 %43 to i64 + %45 = mul i64 %.01936, %44 + %46 = trunc nuw i64 %indvars.iv.next to i32 + %.not.not = icmp sgt i32 %8, %46 br i1 %.not.not, label %_ZNK17VerilatedVarProps8elementsEi.exit, label %._crit_edge, !llvm.loop !183 ._crit_edge: ; preds = %_ZNK17VerilatedVarProps8elementsEi.exit, %_ZNK17VerilatedVarProps7entSizeEv.exit - %.019.lcssa = phi i64 [ %.0.i, %_ZNK17VerilatedVarProps7entSizeEv.exit ], [ %48, %_ZNK17VerilatedVarProps8elementsEi.exit ] - %50 = sext i32 %23 to i64 - %51 = mul i64 %.019.lcssa, %50 - %52 = getelementptr inbounds i8, ptr %1, i64 %51 + %.019.lcssa = phi i64 [ %.0.i, %_ZNK17VerilatedVarProps7entSizeEv.exit ], [ %45, %_ZNK17VerilatedVarProps8elementsEi.exit ] + %47 = sext i32 %20 to i64 + %48 = mul i64 %.019.lcssa, %47 + %49 = getelementptr inbounds i8, ptr %1, i64 %48 br label %.critedge -.critedge: ; preds = %_ZNK17VerilatedVarProps4highEi.exit.thread, %_ZNK17VerilatedVarProps3lowEi.exit, %4, %_ZNK17VerilatedVarProps4highEi.exit, %6, %._crit_edge - %.020 = phi ptr [ %52, %._crit_edge ], [ null, %6 ], [ null, %_ZNK17VerilatedVarProps4highEi.exit ], [ null, %4 ], [ null, %_ZNK17VerilatedVarProps3lowEi.exit ], [ null, %_ZNK17VerilatedVarProps4highEi.exit.thread ] +.critedge: ; preds = %_ZNK17VerilatedVarProps3lowEi.exit, %4, %6, %._crit_edge + %.020 = phi ptr [ %49, %._crit_edge ], [ null, %6 ], [ null, %4 ], [ null, %_ZNK17VerilatedVarProps3lowEi.exit ] ret ptr %.020 } diff --git a/scripts/setup_pre_commit_patch.sh b/scripts/setup_pre_commit_patch.sh index c5409e09ef4..d59e9526088 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/122597 export COMPTIME_MODE=0 # Please rebase manually