[PATCH] D116754: Bugfix for application of trivial loop optimization in LoopIdiomRecognize(Github Issue #50308)
Roman Lebedev via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 6 09:13:18 PST 2022
lebedev.ri added inline comments.
================
Comment at: llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp:628-636
// We can only promote stores in this block if they are unconditionally
- // executed in the loop. For a block to be unconditionally executed, it has
- // to dominate all the exit blocks of the loop. Verify this now.
- for (BasicBlock *ExitBlock : ExitBlocks)
- if (!DT->dominates(BB, ExitBlock))
- return false;
+ // executed in the loop. For a block to be unconditionally executed, it has
+ // to dominate all the exit blocks of the loop. Verify this now.
+ // On countable unrotated loops, checking the exit blocks fails.
+ // Hence, this is only run on rotated loops.
+ if (isFromRotatedLoop)
+ for (BasicBlock *ExitBlock : ExitBlocks)
----------------
I do not understand why we can just not do this check for unrotated loops?
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D116754/new/
https://reviews.llvm.org/D116754
More information about the llvm-commits
mailing list