aboutsummaryrefslogtreecommitdiffstats
path: root/src/qml/compiler/qv4ssa.cpp
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@qt.io>2016-11-03 11:01:45 +0100
committerJ-P Nurmi <jpnurmi@qt.io>2016-11-03 11:01:45 +0100
commitda5083c11df4d9a6decd8d724098b6f108c4ab35 (patch)
treeee331004123ef2795025637c2905d9719f95f317 /src/qml/compiler/qv4ssa.cpp
parent462904396454ed0ee931c2a8f2b02c8a6508965a (diff)
parentef502bd71a0d81f1428263a11c38cd7c893ac515 (diff)
Merge remote-tracking branch 'origin/5.8' into dev
Conflicts: tools/qmljs/qmljs.cpp Change-Id: Ifa9e74bdb780eaff22fbc9ba1c514d0078a3fb29
Diffstat (limited to 'src/qml/compiler/qv4ssa.cpp')
-rw-r--r--src/qml/compiler/qv4ssa.cpp4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/qml/compiler/qv4ssa.cpp b/src/qml/compiler/qv4ssa.cpp
index a98cf6d338..4fa0cf421b 100644
--- a/src/qml/compiler/qv4ssa.cpp
+++ b/src/qml/compiler/qv4ssa.cpp
@@ -5077,6 +5077,10 @@ void mergeBasicBlocks(IR::Function *function, DefUses *du, DominatorTree *dt)
BasicBlock *successor = bb->out.first();
if (successor->in.size() != 1) continue; // more than one incoming edge
+ // Loop header? No efficient way to update the other blocks that refer to this as containing group,
+ // so don't do merging yet.
+ if (successor->isGroupStart()) continue;
+
// Ok, we can merge the two basic blocks.
if (DebugBlockMerging) {
qDebug("Merging L%d into L%d", successor->index(), bb->index());