Chromium Code Reviews| Index: dart/sdk/lib/_internal/compiler/implementation/compiler.dart |
| diff --git a/dart/sdk/lib/_internal/compiler/implementation/compiler.dart b/dart/sdk/lib/_internal/compiler/implementation/compiler.dart |
| index e770cff2319056437c6eff12c693a9ed17a56240..7b8de7aa0e7d2f269f34cff9d24eeae7c46ca474 100644 |
| --- a/dart/sdk/lib/_internal/compiler/implementation/compiler.dart |
| +++ b/dart/sdk/lib/_internal/compiler/implementation/compiler.dart |
| @@ -58,6 +58,16 @@ class WorkItem { |
| } |
| } |
| +class UnreportedTask extends CompilerTask { |
| + UnreportedTask(Compiler compiler) : super(compiler); |
| + String get name => 'Unreported'; |
| +} |
| + |
| +class ReadingFilesTask extends CompilerTask { |
| + ReadingFilesTask(Compiler compiler) : super(compiler); |
| + String get name => 'Reading input files'; |
| +} |
| + |
| abstract class Backend { |
| final Compiler compiler; |
| final ConstantSystem constantSystem; |
| @@ -190,6 +200,8 @@ abstract class Compiler implements DiagnosticListener { |
| Backend backend; |
| ConstantHandler constantHandler; |
| EnqueueTask enqueuer; |
| + CompilerTask unreported; |
| + CompilerTask fileReadingTask; |
| static const SourceString MAIN = const SourceString('main'); |
| static const SourceString CALL_OPERATOR_NAME = const SourceString('call'); |
| @@ -232,27 +244,31 @@ abstract class Compiler implements DiagnosticListener { |
| progress = new Stopwatch() { |
| progress.start(); |
| world = new World(this); |
| - scanner = new ScannerTask(this); |
| - dietParser = new DietParserTask(this); |
| - parser = new ParserTask(this); |
| - patchParser = new PatchParserTask(this); |
| - libraryLoader = new LibraryLoaderTask(this); |
| - validator = new TreeValidatorTask(this); |
| - resolver = new ResolverTask(this); |
| - closureToClassMapper = new closureMapping.ClosureTask(this); |
| - checker = new TypeCheckerTask(this); |
| - typesTask = new ti.TypesTask(this, enableConcreteTypeInference); |
| backend = emitJavaScript ? |
| new js_backend.JavaScriptBackend(this, |
| generateSourceMap, |
| disallowUnsafeEval) : |
| new dart_backend.DartBackend(this, strips); |
| - constantHandler = new ConstantHandler(this, backend.constantSystem); |
| - enqueuer = new EnqueueTask(this); |
| - tasks = [scanner, dietParser, parser, patchParser, libraryLoader, |
| - resolver, closureToClassMapper, checker, typesTask, |
| - constantHandler, enqueuer]; |
| + |
| + // No-op in production mode. |
| + validator = new TreeValidatorTask(this); |
| + |
| + tasks = [ |
| + fileReadingTask = new ReadingFilesTask(this), |
| + libraryLoader = new LibraryLoaderTask(this), |
| + scanner = new ScannerTask(this), |
| + dietParser = new DietParserTask(this), |
| + parser = new ParserTask(this), |
| + patchParser = new PatchParserTask(this), |
| + resolver = new ResolverTask(this), |
| + closureToClassMapper = new closureMapping.ClosureTask(this), |
| + checker = new TypeCheckerTask(this), |
| + typesTask = new ti.TypesTask(this, enableConcreteTypeInference), |
| + constantHandler = new ConstantHandler(this, backend.constantSystem), |
| + enqueuer = new EnqueueTask(this)]; |
| + |
| tasks.addAll(backend.tasks); |
| + tasks.add(unreported = new UnreportedTask(this)); |
| } |
| Universe get resolverWorld => enqueuer.resolution.universe; |
| @@ -341,7 +357,7 @@ abstract class Compiler implements DiagnosticListener { |
| bool run(Uri uri) { |
| try { |
| - runCompiler(uri); |
| + unreported.measure(() => runCompiler(uri)); |
|
ngeoffray
2012/11/27 09:14:07
Will that just measure the non-measured time at th
ahe
2012/11/30 12:00:37
I have changed it. Now it looks like this:
info:
|
| } on CompilerCancelledException catch (exception) { |
| log('Error: $exception'); |
| return false; |