Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 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 | |
| 3 // BSD-style license that can be found in the LICENSE file. | |
| 4 import '../elements/elements.dart'; | |
| 5 import '../io/source_information.dart'; | |
| 6 import '../js_backend/backend.dart' show JavaScriptBackend; | |
| 7 import '../js_backend/element_strategy.dart' show ElementCodegenWorkItem; | |
| 8 import '../kernel/kernel.dart'; | |
| 9 import '../world.dart'; | |
| 10 import 'builder.dart'; | |
| 11 import 'kernel_ast_adapter.dart'; | |
| 12 import 'nodes.dart'; | |
| 13 import 'builder_kernel.dart'; | |
| 14 | |
| 15 /// Task for building SSA kernel IR generated from rasta. | |
| 16 class RastaSsaBuilderTask extends SsaAstBuilderBase { | |
| 17 final SourceInformationStrategy sourceInformationFactory; | |
| 18 | |
| 19 String get name => 'SSA kernel builder'; | |
| 20 | |
| 21 RastaSsaBuilderTask(JavaScriptBackend backend, this.sourceInformationFactory) | |
| 22 : super(backend); | |
| 23 | |
| 24 HGraph build(ElementCodegenWorkItem work, ClosedWorld closedWorld) { | |
| 25 return measure(() { | |
| 26 if (handleConstantField(work)) { | |
| 27 // No code is generated for `work.element`. | |
| 28 return null; | |
| 29 } | |
| 30 MemberElement element = work.element.implementation; | |
| 31 ResolvedAst resolvedAst = work.resolvedAst; | |
| 32 Kernel kernel = backend.kernelTask.kernel; | |
| 33 KernelAstAdapter astAdapter = new KernelAstAdapter(kernel, backend, | |
| 34 work.resolvedAst, kernel.nodeToAst, kernel.nodeToElement); | |
| 35 KernelSsaBuilder builder = new KernelSsaBuilder( | |
| 36 element, | |
| 37 //work.resolvedAst, | |
|
Siggi Cherem (dart-lang)
2017/05/23 21:23:31
delete
Johnni Winther
2017/05/24 08:07:09
Done.
| |
| 38 backend.compiler, | |
| 39 astAdapter, | |
| 40 closedWorld, | |
| 41 work.registry, | |
| 42 sourceInformationFactory.createBuilderForContext(resolvedAst), | |
| 43 resolvedAst.kind == ResolvedAstKind.PARSED ? resolvedAst.node : null); | |
| 44 HGraph graph = builder.build(); | |
| 45 | |
| 46 if (backend.tracer.isEnabled) { | |
| 47 String name; | |
| 48 if (element.isClassMember) { | |
| 49 String className = element.enclosingClass.name; | |
| 50 String memberName = element.name; | |
| 51 name = "$className.$memberName"; | |
| 52 if (element.isGenerativeConstructorBody) { | |
| 53 name = "$name (body)"; | |
| 54 } | |
| 55 } else { | |
| 56 name = "${element.name}"; | |
| 57 } | |
| 58 backend.tracer.traceCompilation(name); | |
| 59 backend.tracer.traceGraph('builder', graph); | |
| 60 } | |
| 61 | |
| 62 return graph; | |
| 63 }); | |
| 64 } | |
| 65 } | |
| OLD | NEW |