[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