Use poison instead of undef for SCEVUnkown of unreachable values.
This should be in line with the movement to replace undef with poison
when possible.
Suggested in D114650.
Paths
| Differential D128586
[SCEV] Use SCEVUnknown(poison) instead of SCEVUnknown(undef). ClosedPublic Authored by fhahn on Jun 25 2022, 8:42 AM.
Details Summary Use poison instead of undef for SCEVUnkown of unreachable values. Suggested in D114650.
Diff Detail
Event Timeline
This revision is now accepted and ready to land.Jun 25 2022, 11:41 AM This revision was landed with ongoing or failed builds.Jun 27 2022, 1:33 AM Closed by commit rGe4e22b6d8038: [SCEV] Use SCEVUnknown(poison) instead of SCEVUnknown(undef). (authored by fhahn). · Explain Why This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 439992 llvm/include/llvm/Analysis/ScalarEvolution.h
llvm/lib/Analysis/ScalarEvolution.cpp
llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
llvm/test/Analysis/ScalarEvolution/shift-recurrences.ll
llvm/test/Analysis/ScalarEvolution/unreachable-code.ll
|
This change is fine, but I don't think the containsUndef -> containsPoison change makes sense. We can still have SCEVUnknown of UndefValue (from other places), and I believe current containsUndef() callers do want to check for those as well.