[GVN] Patch for invalid GVN replacement
If PRE is performed as part of the main GVN pass (to PRE GEP operands before processing loads), and it is performed across a backedge, we will end up adding the new instruction to the leader table of a block that has not yet been processed. When it will be processed, GVN will incorrectly assume that the value is already available, even though it is only available at the end of the block. Avoid this by not performing PRE across backedges. Fixes https://github.com/llvm/llvm-project/issues/58418. Differential Revision: https://reviews.llvm.org/D136095
Loading
Please sign in to comment