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

Reply via email to