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

Unified Diff: pkg/compiler/lib/src/tree_ir/tree_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/tree_ir/tree_ir_tracer.dart
diff --git a/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart b/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart
index ad6a31e246209b973ab3d61c587ad5af438642b6..d4e93781ddcbbba84a708e062fc45f0520a91837 100644
--- a/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart
+++ b/pkg/compiler/lib/src/tree_ir/tree_ir_tracer.dart
@@ -58,17 +58,8 @@ class BlockCollector extends StatementVisitor {
blocks.add(block);
}
- void collect(ExecutableDefinition node) {
- if (node.body != null) {
- if (node is ConstructorDefinition) {
- for (Initializer initializer in node.initializers) {
- if (initializer is FieldInitializer) {
- visitStatement(initializer.body);
- }
- }
- }
- visitStatement(node.body);
- }
+ void collect(RootNode node) {
+ node.forEachBody(visitStatement);
}
visitLabeledStatement(LabeledStatement node) {
@@ -183,7 +174,7 @@ class BlockCollector extends StatementVisitor {
}
-class TreeTracer extends TracerUtil with StatementVisitor, PassMixin {
+class TreeTracer extends TracerUtil with StatementVisitor {
// TODO(asgerf): Fix visitors so we don't have to use PassMixin here.
Kevin Millikin (Google) 2015/04/08 15:10:16 I think you can remove this TODO.
asgerf 2015/04/09 09:58:23 Done.
String get passName => null;
@@ -195,18 +186,16 @@ class TreeTracer extends TracerUtil with StatementVisitor, PassMixin {
BlockCollector collector;
int statementCounter;
- void traceGraph(String name, ExecutableDefinition node) {
- if (node is FunctionDefinition && node.isAbstract) return;
- if (node is FieldDefinition && node.body == null) return;
+ void traceGraph(String name, RootNode node) {
+ if (node.isEmpty) return;
tag("cfg", () {
printProperty("name", name);
- rewrite(node);
+ printRootNode(node);
collector.blocks.forEach(printBlock);
});
}
- @override
- void rewriteExecutableDefinition(ExecutableDefinition node) {
+ void printRootNode(RootNode node) {
collector = new BlockCollector();
names = new Names();
statementCounter = 0;

Powered by Google App Engine
This is Rietveld 408576698