[PATCH] D126962: [SCCP] Don't mark edges feasible when resolving undefs

Florian Hahn via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jun 20 00:54:30 PDT 2022


fhahn accepted this revision.
fhahn added a reviewer: efriedma.
fhahn added a comment.
This revision is now accepted and ready to land.

LGTM, this should be fine now that branch-on-undef/poison is considered UB in most places including ValueTracking. It might be good to wait a few days with committing in case Eli has additional thoughts.



================
Comment at: llvm/test/Transforms/FunctionSpecialization/bug52821-use-after-free.ll:37
   %phi2 = phi %mystruct* [ undef, %for.body2 ], [ null, %for.cond ]
-  br i1 undef, label %for.end, label %for.body2
+  br i1 false, label %for.end, label %for.body2
 
----------------
not sure if it would be better to use `i1` argument instead here and `llvm/test/Transforms/FunctionSpecialization/bug55000-read-uninitialized-value.ll`


================
Comment at: llvm/test/Transforms/SCCP/indirectbr.ll:77
 
 ; Make sure we eliminate BB1 as we pick the first successor on undef.
 
----------------
needs updating


================
Comment at: llvm/test/Transforms/SCCP/return-zapped.ll:4
 
 ; After the first round of Solver.Solve(), the return value of @testf still
 ; undefined as we hit a branch on undef. Therefore the conditional branch on
----------------
needs updating


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126962/new/

https://reviews.llvm.org/D126962



More information about the llvm-commits mailing list