Index: sdk/lib/_internal/compiler/implementation/tracer.dart |
diff --git a/sdk/lib/_internal/compiler/implementation/tracer.dart b/sdk/lib/_internal/compiler/implementation/tracer.dart |
deleted file mode 100644 |
index cbdbf60555a01a62a9b4b4fb44f08fb1cb7888ce..0000000000000000000000000000000000000000 |
--- a/sdk/lib/_internal/compiler/implementation/tracer.dart |
+++ /dev/null |
@@ -1,119 +0,0 @@ |
-// Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library tracer; |
- |
-import '../compiler.dart' as api; |
-import 'dart:async' show EventSink; |
-import 'ssa/ssa.dart' as ssa; |
-import 'ssa/ssa_tracer.dart' show HTracer; |
-import 'cps_ir/cps_ir_nodes.dart' as cps_ir; |
-import 'cps_ir/cps_ir_tracer.dart' show IRTracer; |
-import 'dart_backend/tree_ir_nodes.dart' as tree_ir; |
-import 'dart_backend/tree_ir_tracer.dart' show TreeTracer; |
-import 'util/util.dart' show Indentation; |
-import 'dart2jslib.dart'; |
- |
-/** |
- * If non-null, we only trace methods whose name match the regexp defined by the |
- * given pattern. |
- */ |
-const String TRACE_FILTER_PATTERN = const String.fromEnvironment("DUMP_IR"); |
- |
-final RegExp TRACE_FILTER = |
- TRACE_FILTER_PATTERN == null ? null : new RegExp(TRACE_FILTER_PATTERN); |
- |
-/** |
- * Dumps the intermediate representation after each phase in a format |
- * readable by IR Hydra. |
- */ |
-class Tracer extends TracerUtil { |
- final Compiler compiler; |
- ItemCompilationContext context; |
- bool traceActive = false; |
- final EventSink<String> output; |
- final bool isEnabled = TRACE_FILTER != null; |
- |
- Tracer(Compiler compiler, api.CompilerOutputProvider outputProvider) |
- : this.compiler = compiler, |
- output = TRACE_FILTER != null ? outputProvider('dart', 'cfg') : null; |
- |
- void traceCompilation(String methodName, |
- ItemCompilationContext compilationContext) { |
- if (!isEnabled) return; |
- traceActive = TRACE_FILTER.hasMatch(methodName); |
- if (!traceActive) return; |
- this.context = compilationContext; |
- tag("compilation", () { |
- printProperty("name", methodName); |
- printProperty("method", methodName); |
- printProperty("date", new DateTime.now().millisecondsSinceEpoch); |
- }); |
- } |
- |
- void traceGraph(String name, var irObject) { |
- if (!traceActive) return; |
- if (irObject is ssa.HGraph) { |
- new HTracer(output, compiler, context).traceGraph(name, irObject); |
- } |
- else if (irObject is cps_ir.FunctionDefinition) { |
- new IRTracer(output).traceGraph(name, irObject); |
- } |
- else if (irObject is tree_ir.FunctionDefinition) { |
- new TreeTracer(output).traceGraph(name, irObject); |
- } |
- } |
- |
- void close() { |
- if (output != null) { |
- output.close(); |
- } |
- } |
-} |
- |
- |
-abstract class TracerUtil { |
- EventSink<String> get output; |
- final Indentation _ind = new Indentation(); |
- |
- void tag(String tagName, Function f) { |
- println("begin_$tagName"); |
- _ind.indentBlock(f); |
- println("end_$tagName"); |
- } |
- |
- void println(String string) { |
- addIndent(); |
- add(string); |
- add("\n"); |
- } |
- |
- void printEmptyProperty(String propertyName) { |
- println(propertyName); |
- } |
- |
- String formatPrty(x) { |
- if (x is num) { |
- return '${x}'; |
- } else if (x is String) { |
- return '"${x}"'; |
- } else if (x is Iterable) { |
- return x.map((s) => formatPrty(s)).join(' '); |
- } else { |
- throw "invalid property type: ${x}"; |
- } |
- } |
- |
- void printProperty(String propertyName, value) { |
- println("$propertyName ${formatPrty(value)}"); |
- } |
- |
- void add(String string) { |
- output.add(string); |
- } |
- |
- void addIndent() { |
- add(_ind.indentation); |
- } |
-} |