mirror of
https://github.com/dart-lang/sdk
synced 2024-09-16 00:39:49 +00:00
make kerneltask an actual task
R=het@google.com Review URL: https://codereview.chromium.org/2442503004 .
This commit is contained in:
parent
ce963596f0
commit
3c44a09882
|
@ -72,7 +72,7 @@ import 'constant_handler_javascript.dart';
|
|||
import 'custom_elements_analysis.dart';
|
||||
import 'enqueuer.dart';
|
||||
import 'js_interop_analysis.dart' show JsInteropAnalysis;
|
||||
import 'kernel_task.dart';
|
||||
import '../kernel/task.dart';
|
||||
import 'lookup_map_analysis.dart' show LookupMapAnalysis;
|
||||
import 'namer.dart';
|
||||
import 'native_data.dart' show NativeData;
|
||||
|
@ -476,6 +476,7 @@ class JavaScriptBackend extends Backend {
|
|||
List<CompilerTask> result = functionCompiler.tasks;
|
||||
result.add(emitter);
|
||||
result.add(patchResolverTask);
|
||||
result.add(kernelTask);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
@ -629,7 +630,7 @@ class JavaScriptBackend extends Backend {
|
|||
jsInteropAnalysis = new JsInteropAnalysis(this);
|
||||
|
||||
noSuchMethodRegistry = new NoSuchMethodRegistry(this);
|
||||
kernelTask = new KernelTask(this);
|
||||
kernelTask = new KernelTask(compiler);
|
||||
constantCompilerTask = new JavaScriptConstantTask(compiler);
|
||||
impactTransformer = new JavaScriptImpactTransformer(this);
|
||||
patchResolverTask = new PatchResolverTask(compiler);
|
||||
|
|
|
@ -2,33 +2,35 @@
|
|||
// 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.
|
||||
|
||||
import '../compiler.dart';
|
||||
import '../common/names.dart';
|
||||
import '../common/tasks.dart' show CompilerTask;
|
||||
import '../compiler.dart';
|
||||
import '../elements/elements.dart';
|
||||
import '../kernel/kernel.dart';
|
||||
import 'kernel.dart';
|
||||
import 'package:kernel/ast.dart' as ir;
|
||||
|
||||
import 'backend.dart';
|
||||
|
||||
/// Visits the compiler main function and builds the kernel representation.
|
||||
///
|
||||
/// This creates a mapping from kernel nodes to AST nodes to be used later.
|
||||
class KernelTask {
|
||||
class KernelTask extends CompilerTask {
|
||||
get name => "kernel";
|
||||
|
||||
final Compiler _compiler;
|
||||
final Kernel kernel;
|
||||
|
||||
KernelTask(JavaScriptBackend backend)
|
||||
: this._compiler = backend.compiler,
|
||||
this.kernel = new Kernel(backend.compiler);
|
||||
KernelTask(Compiler compiler)
|
||||
: this._compiler = compiler,
|
||||
this.kernel = new Kernel(compiler),
|
||||
super(compiler.measurer);
|
||||
|
||||
ir.Program program;
|
||||
|
||||
/// Builds the kernel IR for the main function.
|
||||
///
|
||||
/// May enqueue more elements to the resolution queue.
|
||||
void buildKernelIr() {
|
||||
void buildKernelIr() => measure(() {
|
||||
program = buildProgram(_compiler.mainApp);
|
||||
}
|
||||
});
|
||||
|
||||
/// Builds the kernel IR program for the main function exported from
|
||||
/// [library].
|
Loading…
Reference in a new issue