Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(255)

Side by Side Diff: pkg/compiler/lib/src/ssa/loop_handler.dart

Issue 2932023003: Refactor LoopHandler to avoid calling KernelAstAdapter.getNode (Closed)
Patch Set: Rebased Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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
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
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 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698