Files
clang-p2996/llvm/test/Transforms/GuardWidening
Serguei Katkov 2b9509627c [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
2023-04-03 17:20:38 +07:00
..