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

Side by Side Diff: pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart

Issue 968843003: Implement type argument access and reification of runtime types. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 9 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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 library dart2js.ir_tracer; 5 library dart2js.ir_tracer;
6 6
7 import 'dart:async' show EventSink; 7 import 'dart:async' show EventSink;
8 8
9 import 'cps_ir_nodes.dart' as cps_ir hide Function; 9 import 'cps_ir_nodes.dart' as cps_ir hide Function;
10 import '../tracer.dart'; 10 import '../tracer.dart';
(...skipping 312 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 323
324 visitRunnableBody(cps_ir.RunnableBody node) {} 324 visitRunnableBody(cps_ir.RunnableBody node) {}
325 visitFieldInitializer(cps_ir.FieldInitializer node) {} 325 visitFieldInitializer(cps_ir.FieldInitializer node) {}
326 visitSuperInitializer(cps_ir.SuperInitializer node) {} 326 visitSuperInitializer(cps_ir.SuperInitializer node) {}
327 visitCondition(cps_ir.Condition c) {} 327 visitCondition(cps_ir.Condition c) {}
328 visitExpression(cps_ir.Expression e) {} 328 visitExpression(cps_ir.Expression e) {}
329 visitPrimitive(cps_ir.Primitive p) {} 329 visitPrimitive(cps_ir.Primitive p) {}
330 visitDefinition(cps_ir.Definition d) {} 330 visitDefinition(cps_ir.Definition d) {}
331 visitInitializer(cps_ir.Initializer i) {} 331 visitInitializer(cps_ir.Initializer i) {}
332 visitNode(cps_ir.Node n) {} 332 visitNode(cps_ir.Node n) {}
333
334 @override
335 visitReadTypeVariable(cps_ir.ReadTypeVariable node) {
336 return "ReadTypeVariable ${node.variable.element} "
337 "${formatReference(node.target)}";
338 }
339
340 @override
341 visitReifyRuntimeType(cps_ir.ReifyRuntimeType node) {
342 return "ReifyRuntimeType ${formatReference(node.value)}";
343 }
333 } 344 }
334 345
335 /** 346 /**
336 * Invents (and remembers) names for Continuations, Parameters, etc. 347 * Invents (and remembers) names for Continuations, Parameters, etc.
337 * The names must match the conventions used by IR Hydra, e.g. 348 * The names must match the conventions used by IR Hydra, e.g.
338 * Continuations and Functions must have names of form B### since they 349 * Continuations and Functions must have names of form B### since they
339 * are visualized as basic blocks. 350 * are visualized as basic blocks.
340 */ 351 */
341 class Names { 352 class Names {
342 final Map<Object, String> names = {}; 353 final Map<Object, String> names = {};
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 } 514 }
504 } 515 }
505 516
506 visitContinuation(cps_ir.Continuation c) { 517 visitContinuation(cps_ir.Continuation c) {
507 var old_node = current_block; 518 var old_node = current_block;
508 current_block = getBlock(c); 519 current_block = getBlock(c);
509 visit(c.body); 520 visit(c.body);
510 current_block = old_node; 521 current_block = old_node;
511 } 522 }
512 } 523 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698