Chromium Code Reviews| Index: sdk/lib/_internal/compiler/implementation/ssa/builder.dart |
| =================================================================== |
| --- sdk/lib/_internal/compiler/implementation/ssa/builder.dart (revision 14959) |
| +++ 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 avoidEdge = addNewBlock(); |
|
floitsch
2012/11/16 14:05:43
avoidCriticalEdge, or but comment somewhere.
ngeoffray
2012/11/16 14:14:59
Renamed to avoidCriticalEdge.
|
| + conditionEndBlock.addSuccessor(avoidEdge); // The back-edge. |
| + open(avoidEdge); |
| + close(new HGoto()); |
| + avoidEdge.addSuccessor(loopEntryBlock); |
| + |
| conditionExpression = |
| new SubExpression(conditionBlock, conditionEndBlock); |
| } |