summaryrefslogtreecommitdiff
path: root/source/slang/slang-ir-loop-unroll.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'source/slang/slang-ir-loop-unroll.cpp')
-rw-r--r--source/slang/slang-ir-loop-unroll.cpp12
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());