| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 |
| 5 import '../common/tasks.dart'; |
| 4 import '../elements/elements.dart'; | 6 import '../elements/elements.dart'; |
| 5 import '../io/source_information.dart'; | 7 import '../io/source_information.dart'; |
| 6 import '../js_backend/backend.dart' show JavaScriptBackend; | 8 import '../js_backend/backend.dart' show JavaScriptBackend; |
| 7 import '../js_backend/element_strategy.dart' show ElementCodegenWorkItem; | 9 import '../js_backend/element_strategy.dart' show ElementCodegenWorkItem; |
| 8 import '../kernel/kernel.dart'; | 10 import '../kernel/kernel.dart'; |
| 9 import '../world.dart'; | 11 import '../world.dart'; |
| 10 import 'builder.dart'; | 12 import 'builder.dart'; |
| 11 import 'kernel_ast_adapter.dart'; | 13 import 'kernel_ast_adapter.dart'; |
| 12 import 'nodes.dart'; | 14 import 'nodes.dart'; |
| 13 import 'builder_kernel.dart'; | 15 import 'builder_kernel.dart'; |
| 14 | 16 |
| 15 /// Task for building SSA kernel IR generated from rasta. | 17 /// Task for building SSA kernel IR generated from rasta. |
| 16 class RastaSsaBuilderTask extends SsaAstBuilderBase { | 18 class RastaSsaBuilder extends SsaAstBuilderBase { |
| 17 final SourceInformationStrategy sourceInformationFactory; | 19 final SourceInformationStrategy sourceInformationFactory; |
| 18 | 20 |
| 19 String get name => 'SSA kernel builder'; | 21 String get name => 'SSA kernel builder'; |
| 20 | 22 |
| 21 RastaSsaBuilderTask(JavaScriptBackend backend, this.sourceInformationFactory) | 23 RastaSsaBuilder(CompilerTask task, JavaScriptBackend backend, |
| 22 : super(backend); | 24 this.sourceInformationFactory) |
| 25 : super(task, backend); |
| 23 | 26 |
| 24 HGraph build(ElementCodegenWorkItem work, ClosedWorld closedWorld) { | 27 HGraph build(ElementCodegenWorkItem work, ClosedWorld closedWorld) { |
| 25 return measure(() { | 28 return task.measure(() { |
| 26 if (handleConstantField(work, closedWorld)) { | 29 if (handleConstantField(work, closedWorld)) { |
| 27 // No code is generated for `work.element`. | 30 // No code is generated for `work.element`. |
| 28 return null; | 31 return null; |
| 29 } | 32 } |
| 30 MemberElement element = work.element.implementation; | 33 MemberElement element = work.element.implementation; |
| 31 ResolvedAst resolvedAst = work.resolvedAst; | 34 ResolvedAst resolvedAst = work.resolvedAst; |
| 32 Kernel kernel = backend.kernelTask.kernel; | 35 Kernel kernel = backend.kernelTask.kernel; |
| 33 KernelAstAdapter astAdapter = new KernelAstAdapter(kernel, backend, | 36 KernelAstAdapter astAdapter = new KernelAstAdapter(kernel, backend, |
| 34 work.resolvedAst, kernel.nodeToAst, kernel.nodeToElement); | 37 work.resolvedAst, kernel.nodeToAst, kernel.nodeToElement); |
| 35 KernelAstTypeInferenceMap typeInferenceMap = | 38 KernelAstTypeInferenceMap typeInferenceMap = |
| 36 new KernelAstTypeInferenceMap(astAdapter); | 39 new KernelAstTypeInferenceMap(astAdapter); |
| 37 KernelSsaBuilder builder = new KernelSsaBuilder( | 40 KernelSsaGraphBuilder builder = new KernelSsaGraphBuilder( |
| 38 element, | 41 element, |
| 39 element.contextClass, | 42 element.contextClass, |
| 40 astAdapter.getInitialKernelNode(element), | 43 astAdapter.getMemberNode(element), |
| 41 backend.compiler, | 44 backend.compiler, |
| 42 astAdapter, | 45 astAdapter, |
| 43 typeInferenceMap, | 46 typeInferenceMap, |
| 44 astAdapter, | 47 astAdapter, |
| 45 closedWorld, | 48 closedWorld, |
| 46 backend.compiler.codegenWorldBuilder, | 49 backend.compiler.codegenWorldBuilder, |
| 47 work.registry, | 50 work.registry, |
| 48 backend.compiler.closureDataLookup, | 51 backend.compiler.closureDataLookup, |
| 49 sourceInformationFactory.createBuilderForContext(work.element), | 52 sourceInformationFactory.createBuilderForContext(work.element), |
| 50 resolvedAst.kind == ResolvedAstKind.PARSED ? resolvedAst.node : null, | 53 resolvedAst.kind == ResolvedAstKind.PARSED ? resolvedAst.node : null, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 64 name = "${element.name}"; | 67 name = "${element.name}"; |
| 65 } | 68 } |
| 66 backend.tracer.traceCompilation(name); | 69 backend.tracer.traceCompilation(name); |
| 67 backend.tracer.traceGraph('builder', graph); | 70 backend.tracer.traceGraph('builder', graph); |
| 68 } | 71 } |
| 69 | 72 |
| 70 return graph; | 73 return graph; |
| 71 }); | 74 }); |
| 72 } | 75 } |
| 73 } | 76 } |
| OLD | NEW |