| Index: sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| ===================================================================
|
| --- sdk/lib/_internal/compiler/implementation/ssa/builder.dart (revision 15011)
|
| +++ sdk/lib/_internal/compiler/implementation/ssa/builder.dart (working copy)
|
| @@ -2049,7 +2049,12 @@
|
| conditionEndBlock = close(
|
| new HLoopBranch(conditionInstruction, HLoopBranch.DO_WHILE_LOOP));
|
|
|
| - conditionEndBlock.addSuccessor(loopEntryBlock); // The back-edge.
|
| + HBasicBlock avoidCriticalEdge = addNewBlock();
|
| + conditionEndBlock.addSuccessor(avoidCriticalEdge);
|
| + open(avoidCriticalEdge);
|
| + close(new HGoto());
|
| + avoidCriticalEdge.addSuccessor(loopEntryBlock); // The back-edge.
|
| +
|
| conditionExpression =
|
| new SubExpression(conditionBlock, conditionEndBlock);
|
| }
|
|
|