| 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);
|
| - }
|
| -}
|
|
|