diff options
Diffstat (limited to 'source/slang/slang-ir-loop-unroll.cpp')
| -rw-r--r-- | source/slang/slang-ir-loop-unroll.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/source/slang/slang-ir-loop-unroll.cpp b/source/slang/slang-ir-loop-unroll.cpp index 36a2abbfc..c9ac4191b 100644 --- a/source/slang/slang-ir-loop-unroll.cpp +++ b/source/slang/slang-ir-loop-unroll.cpp @@ -174,11 +174,8 @@ static void _foldAndSimplifyLoopIteration( auto b = clonedBlocks[i]; if (b) { - if (i != insertIndex) - { - clonedBlocks[insertIndex] = b; - insertIndex++; - } + clonedBlocks[insertIndex] = b; + insertIndex++; } } clonedBlocks.setCount(insertIndex); @@ -554,11 +551,12 @@ void eliminateContinueBlocks(IRModule* module, IRLoop* loopInst) // where a continue is replaced with a "break" into breakableRegionBreakBlock. // - if (loopInst->getContinueBlock() == loopInst->getTargetBlock()) + auto continueBlock = loopInst->getContinueBlock(); + + if (continueBlock == loopInst->getTargetBlock()) return; // If the continue block is not reachable, remove it. - auto continueBlock = loopInst->getContinueBlock(); if (continueBlock && !continueBlock->hasMoreThanOneUse()) { loopInst->continueBlock.set(loopInst->getTargetBlock()); |
