[GuardWidening] Fix the crash while replacing the users of poison.
When we replace poison with freeze poison it might appear that user of poison is a constant (for example vector constant). In this case we will get that constant will get non-constant operand. Moreover replacing poison and GlobalValue everywhere in module seems to be overkill. So the solution will be just make a replacement only in instructions we visited (contributing to hoisted condition). Moreover if user of posion is constant, this constant also should need a freeze and it does not make sense to replace poison with frozen version, just freeze another constant. Reviewed By: mkazantsev Differential Revision: https://reviews.llvm.org/D147429
Loading
Please sign in to comment