Chromium Code Reviews| Index: pkg/compiler/lib/src/ssa/rasta_ssa_builder_task.dart |
| diff --git a/pkg/compiler/lib/src/ssa/rasta_ssa_builder_task.dart b/pkg/compiler/lib/src/ssa/rasta_ssa_builder_task.dart |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..6321cb3f1d3df186687273880246986106a1d73a |
| --- /dev/null |
| +++ b/pkg/compiler/lib/src/ssa/rasta_ssa_builder_task.dart |
| @@ -0,0 +1,65 @@ |
| +// Copyright (c) 2016, 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. |
| +import '../elements/elements.dart'; |
| +import '../io/source_information.dart'; |
| +import '../js_backend/backend.dart' show JavaScriptBackend; |
| +import '../js_backend/element_strategy.dart' show ElementCodegenWorkItem; |
| +import '../kernel/kernel.dart'; |
| +import '../world.dart'; |
| +import 'builder.dart'; |
| +import 'kernel_ast_adapter.dart'; |
| +import 'nodes.dart'; |
| +import 'builder_kernel.dart'; |
| + |
| +/// Task for building SSA kernel IR generated from rasta. |
| +class RastaSsaBuilderTask extends SsaAstBuilderBase { |
| + final SourceInformationStrategy sourceInformationFactory; |
| + |
| + String get name => 'SSA kernel builder'; |
| + |
| + RastaSsaBuilderTask(JavaScriptBackend backend, this.sourceInformationFactory) |
| + : super(backend); |
| + |
| + HGraph build(ElementCodegenWorkItem work, ClosedWorld closedWorld) { |
| + return measure(() { |
| + if (handleConstantField(work)) { |
| + // No code is generated for `work.element`. |
| + return null; |
| + } |
| + MemberElement element = work.element.implementation; |
| + ResolvedAst resolvedAst = work.resolvedAst; |
| + Kernel kernel = backend.kernelTask.kernel; |
| + KernelAstAdapter astAdapter = new KernelAstAdapter(kernel, backend, |
| + work.resolvedAst, kernel.nodeToAst, kernel.nodeToElement); |
| + KernelSsaBuilder builder = new KernelSsaBuilder( |
| + element, |
| + //work.resolvedAst, |
|
Siggi Cherem (dart-lang)
2017/05/23 21:23:31
delete
Johnni Winther
2017/05/24 08:07:09
Done.
|
| + backend.compiler, |
| + astAdapter, |
| + closedWorld, |
| + work.registry, |
| + sourceInformationFactory.createBuilderForContext(resolvedAst), |
| + resolvedAst.kind == ResolvedAstKind.PARSED ? resolvedAst.node : null); |
| + HGraph graph = builder.build(); |
| + |
| + if (backend.tracer.isEnabled) { |
| + String name; |
| + if (element.isClassMember) { |
| + String className = element.enclosingClass.name; |
| + String memberName = element.name; |
| + name = "$className.$memberName"; |
| + if (element.isGenerativeConstructorBody) { |
| + name = "$name (body)"; |
| + } |
| + } else { |
| + name = "${element.name}"; |
| + } |
| + backend.tracer.traceCompilation(name); |
| + backend.tracer.traceGraph('builder', graph); |
| + } |
| + |
| + return graph; |
| + }); |
| + } |
| +} |