Enna1 wrote: I think I reproduced the non-determinism with repeatedly running https://github.com/dtcxzyw/llvm-opt-benchmark/blob/299446d99f04024d5f569ce1f7e9338c9bcf55fe/bench/wolfssl/original/internal.ll
``` opt -O3 -disable-loop-unrolling -vectorize-loops=false -vectorize-slp=false -S wolfssl/original/internal.ll -o wolfssl-internal.opt.ll ``` ``` diff --- wolfssl-internal.opt.ll 2025-12-30 14:23:44.748430947 +0800 +++ wolfssl-internal.opt.test.ll 2025-12-30 14:24:58.060504541 +0800 @@ -21855,8 +21855,8 @@ store i32 %94, ptr %1, align 4, !tbaa !49 br label %AllocKey.exit.thread -AllocKey.exit.thread: ; preds = %64, %77, %73, %17, %26, %13, %30, %85, %FreeKey.exit, %42, %38, %7, %2, %AllocKey.exit60, %92, %47 - %.0 = phi i32 [ %.1, %FreeKey.exit ], [ -410, %85 ], [ -317, %7 ], [ %40, %38 ], [ 0, %47 ], [ %25, %30 ], [ -409, %42 ], [ 0, %92 ], [ %83, %AllocKey.exit60 ], [ -317, %2 ], [ -125, %17 ], [ %25, %26 ], [ -192, %13 ], [ -125, %64 ], [ %72, %77 ], [ %72, %73 ] +AllocKey.exit.thread: ; preds = %64, %73, %77, %17, %30, %13, %26, %85, %FreeKey.exit, %42, %38, %7, %2, %AllocKey.exit60, %92, %47 + %.0 = phi i32 [ %.1, %FreeKey.exit ], [ -410, %85 ], [ -317, %7 ], [ %40, %38 ], [ 0, %47 ], [ %25, %26 ], [ -409, %42 ], [ 0, %92 ], [ %83, %AllocKey.exit60 ], [ -317, %2 ], [ -125, %17 ], [ %25, %30 ], [ -192, %13 ], [ -125, %64 ], [ %72, %73 ], [ %72, %77 ] call void @llvm.lifetime.end.p0(ptr nonnull %3) ret i32 %.0 } ``` The order of phi incoming values maybe different in multiple runs... https://github.com/llvm/llvm-project/pull/173975 should fix this. https://github.com/llvm/llvm-project/pull/171963 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
