[all-commits] [llvm/llvm-project] 72ec2c: [InstCombine] Fix handling of irreducible loops (P...
Nikita Popov via All-commits
all-commits at lists.llvm.org
Mon Jul 31 07:20:40 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 72ec2c007e4c5f46995c8f633a946cfa43da6bfb
https://github.com/llvm/llvm-project/commit/72ec2c007e4c5f46995c8f633a946cfa43da6bfb
Author: Nikita Popov <npopov at redhat.com>
Date: 2023-07-31 (Mon, 31 Jul 2023)
Changed paths:
M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
M llvm/test/Transforms/InstCombine/pr38677.ll
M llvm/test/Transforms/InstCombine/unreachable-code.ll
Log Message:
-----------
[InstCombine] Fix handling of irreducible loops (PR64259)
Fixes a regression introduced by D75362 for irreducible control
flow. In that case, we may visit the predecessor that renders
the current block live only later, and incorrectly determine
that a block is dead.
Instead, switch to using the same DeadEdges based implementation
we also use during the main InstCombine iteration.
This temporarily regresses some cases that need replacement of
dead phi operands with poison, which is currently only done during
the main run, but not worklist population. This will be addressed
in a followup, to keep it separate from the correctness fix here.
Fixes https://github.com/llvm/llvm-project/issues/64259.
More information about the All-commits
mailing list