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

Unified Diff: pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart

Issue 1068243002: Overhaul tree IR visitor and rename IR classes. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
diff --git a/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart b/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
index f15418f2188f2903ea1b6b692149abfaff6cc589..db5c00d77ebdffe18d36785daf38aa3880c2d71c 100644
--- a/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
+++ b/pkg/compiler/lib/src/cps_ir/cps_ir_tracer.dart
@@ -21,9 +21,10 @@ class IRTracer extends TracerUtil implements cps_ir.Visitor {
visit(cps_ir.Node node) => node.accept(this);
- void traceGraph(String name, cps_ir.ExecutableDefinition graph) {
+ void traceGraph(String name, cps_ir.RootNode graph) {
tag("cfg", () {
printProperty("name", name);
+ if (graph.isEmpty) return;
visit(graph);
Kevin Millikin (Google) 2015/04/08 15:10:15 Maybe this can be disentangled a bit after this ch
asgerf 2015/04/09 09:58:23 I agree, this code has stagnated quite a bit. I u
});
}
@@ -31,7 +32,7 @@ class IRTracer extends TracerUtil implements cps_ir.Visitor {
// Temporary field used during tree walk
Names names;
- printDefinition(cps_ir.ExecutableDefinition node) {
+ printDefinition(cps_ir.RootNode node) {
names = new Names();
BlockCollector builder = new BlockCollector(names);
builder.visit(node);
@@ -46,18 +47,14 @@ class IRTracer extends TracerUtil implements cps_ir.Visitor {
}
visitFieldDefinition(cps_ir.FieldDefinition node) {
- if (node.hasInitializer) {
- printDefinition(node);
- }
+ printDefinition(node);
}
visitFunctionDefinition(cps_ir.FunctionDefinition node) {
- if (node.isAbstract) return;
printDefinition(node);
}
visitConstructorDefinition(cps_ir.ConstructorDefinition node) {
- if (node.isAbstract) return;
printDefinition(node);
}
@@ -68,7 +65,7 @@ class IRTracer extends TracerUtil implements cps_ir.Visitor {
throw 'The IR tracer reached an unexpected IR instruction: $node';
}
- visitRunnableBody(cps_ir.RunnableBody node) {
+ visitBody(cps_ir.Body node) {
unexpectedNode(node);
}
visitFieldInitializer(cps_ir.FieldInitializer node) {
@@ -429,9 +426,7 @@ class BlockCollector implements cps_ir.Visitor {
visit(cps_ir.Node node) => node.accept(this);
visitFieldDefinition(cps_ir.FieldDefinition node) {
- if (node.hasInitializer) {
- visit(node.body);
- }
+ visit(node.body);
}
visitFunctionDefinition(cps_ir.FunctionDefinition node) {
@@ -442,7 +437,7 @@ class BlockCollector implements cps_ir.Visitor {
visit(node.body);
}
- visitRunnableBody(cps_ir.RunnableBody node) {
+ visitBody(cps_ir.Body node) {
current_block = new Block(names.name(node), [], node.body);
entries.add(current_block);
visit(node.body);

Powered by Google App Engine
This is Rietveld 408576698