| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'package:kernel/ast.dart' as ir; | 5 import 'package:kernel/ast.dart' as ir; |
| 6 | 6 |
| 7 import '../closure.dart' show LoopClosureRepresentationInfo; |
| 7 import '../elements/elements.dart' show JumpTarget, LabelDefinition; | 8 import '../elements/elements.dart' show JumpTarget, LabelDefinition; |
| 8 import '../io/source_information.dart'; | 9 import '../io/source_information.dart'; |
| 9 import '../tree/tree.dart' as ast; | 10 import '../tree/tree.dart' as ast; |
| 10 import '../closure.dart' show LoopClosureRepresentationInfo; | |
| 11 | 11 |
| 12 import 'builder.dart'; | 12 import 'builder.dart'; |
| 13 import 'builder_kernel.dart'; | 13 import 'builder_kernel.dart'; |
| 14 import 'graph_builder.dart'; | 14 import 'graph_builder.dart'; |
| 15 import 'jump_handler.dart'; | 15 import 'jump_handler.dart'; |
| 16 import 'kernel_ast_adapter.dart'; | 16 import 'kernel_ast_adapter.dart'; |
| 17 import 'locals_handler.dart'; | 17 import 'locals_handler.dart'; |
| 18 import 'nodes.dart'; | 18 import 'nodes.dart'; |
| 19 | 19 |
| 20 /// Builds the SSA graph for loop nodes. | 20 /// Builds the SSA graph for loop nodes. |
| (...skipping 332 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 353 KernelLoopHandler(KernelSsaBuilder builder) | 353 KernelLoopHandler(KernelSsaBuilder builder) |
| 354 : this.builder = builder, | 354 : this.builder = builder, |
| 355 super(builder); | 355 super(builder); |
| 356 | 356 |
| 357 @override | 357 @override |
| 358 JumpHandler createJumpHandler(ir.TreeNode node, {bool isLoopJump}) => | 358 JumpHandler createJumpHandler(ir.TreeNode node, {bool isLoopJump}) => |
| 359 builder.createJumpHandler(node, isLoopJump: isLoopJump); | 359 builder.createJumpHandler(node, isLoopJump: isLoopJump); |
| 360 | 360 |
| 361 @override | 361 @override |
| 362 JumpTarget getTargetDefinition(ir.TreeNode node) => | 362 JumpTarget getTargetDefinition(ir.TreeNode node) => |
| 363 astAdapter.getJumpTarget(node); | 363 builder.localsMap.getJumpTarget(node); |
| 364 | 364 |
| 365 @override | 365 @override |
| 366 int loopKind(ir.TreeNode node) => node.accept(new _KernelLoopTypeVisitor()); | 366 int loopKind(ir.TreeNode node) => node.accept(new _KernelLoopTypeVisitor()); |
| 367 | 367 |
| 368 // TODO(het): return the actual source information | 368 // TODO(het): return the actual source information |
| 369 @override | 369 @override |
| 370 SourceInformation loopSourceInformation(ir.TreeNode node) => null; | 370 SourceInformation loopSourceInformation(ir.TreeNode node) => null; |
| 371 } | 371 } |
| 372 | 372 |
| 373 class _KernelLoopTypeVisitor extends ir.Visitor<int> { | 373 class _KernelLoopTypeVisitor extends ir.Visitor<int> { |
| (...skipping 12 matching lines...) Expand all Loading... |
| 386 HLoopBlockInformation.DO_WHILE_LOOP; | 386 HLoopBlockInformation.DO_WHILE_LOOP; |
| 387 | 387 |
| 388 @override | 388 @override |
| 389 int visitForInStatement(ir.ForInStatement node) => | 389 int visitForInStatement(ir.ForInStatement node) => |
| 390 HLoopBlockInformation.FOR_IN_LOOP; | 390 HLoopBlockInformation.FOR_IN_LOOP; |
| 391 | 391 |
| 392 @override | 392 @override |
| 393 int visitSwitchStatement(ir.SwitchStatement node) => | 393 int visitSwitchStatement(ir.SwitchStatement node) => |
| 394 HLoopBlockInformation.SWITCH_CONTINUE_LOOP; | 394 HLoopBlockInformation.SWITCH_CONTINUE_LOOP; |
| 395 } | 395 } |
| OLD | NEW |