Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(98)

Side by Side Diff: pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart

Issue 2939033002: Towards compiling Hello World! (Closed)
Patch Set: Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, 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 4
5 library dart2js.kernel.backend_strategy; 5 library dart2js.kernel.backend_strategy;
6 6
7 import 'package:kernel/ast.dart' as ir; 7 import 'package:kernel/ast.dart' as ir;
8 8
9 import '../backend_strategy.dart'; 9 import '../backend_strategy.dart';
10 import '../closure.dart'; 10 import '../closure.dart';
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 @override 68 @override
69 WorkItemBuilder createCodegenWorkItemBuilder(ClosedWorld closedWorld) { 69 WorkItemBuilder createCodegenWorkItemBuilder(ClosedWorld closedWorld) {
70 return new KernelCodegenWorkItemBuilder(_compiler.backend, closedWorld); 70 return new KernelCodegenWorkItemBuilder(_compiler.backend, closedWorld);
71 } 71 }
72 72
73 @override 73 @override
74 CodegenWorldBuilder createCodegenWorldBuilder( 74 CodegenWorldBuilder createCodegenWorldBuilder(
75 NativeBasicData nativeBasicData, 75 NativeBasicData nativeBasicData,
76 ClosedWorld closedWorld, 76 ClosedWorld closedWorld,
77 SelectorConstraintsStrategy selectorConstraintsStrategy) { 77 SelectorConstraintsStrategy selectorConstraintsStrategy) {
78 return new KernelCodegenWorldBuilder(closedWorld.elementEnvironment, 78 KernelFrontEndStrategy frontendStrategy = _compiler.frontendStrategy;
79 nativeBasicData, closedWorld, selectorConstraintsStrategy); 79 return new KernelCodegenWorldBuilder(
80 frontendStrategy.elementMap,
81 closedWorld.elementEnvironment,
82 nativeBasicData,
83 closedWorld,
84 selectorConstraintsStrategy);
80 } 85 }
81 86
82 @override 87 @override
83 SsaBuilderTask createSsaBuilderTask(JavaScriptBackend backend, 88 SsaBuilderTask createSsaBuilderTask(JavaScriptBackend backend,
84 SourceInformationStrategy sourceInformationStrategy) { 89 SourceInformationStrategy sourceInformationStrategy) {
85 return new KernelSsaBuilderTask(backend.compiler); 90 return new KernelSsaBuilderTask(backend.compiler);
86 } 91 }
87 92
88 @override 93 @override
89 SourceInformationStrategy get sourceInformationStrategy => 94 SourceInformationStrategy get sourceInformationStrategy =>
(...skipping 22 matching lines...) Expand all
112 } 117 }
113 } 118 }
114 119
115 class KernelCodegenWorkItem extends CodegenWorkItem { 120 class KernelCodegenWorkItem extends CodegenWorkItem {
116 final JavaScriptBackend _backend; 121 final JavaScriptBackend _backend;
117 final ClosedWorld _closedWorld; 122 final ClosedWorld _closedWorld;
118 final MemberEntity element; 123 final MemberEntity element;
119 final CodegenRegistry registry; 124 final CodegenRegistry registry;
120 125
121 KernelCodegenWorkItem(this._backend, this._closedWorld, this.element) 126 KernelCodegenWorkItem(this._backend, this._closedWorld, this.element)
122 : registry = new CodegenRegistry(element); 127 : registry =
128 new CodegenRegistry(_closedWorld.elementEnvironment, element);
123 129
124 @override 130 @override
125 WorldImpact run() { 131 WorldImpact run() {
126 return _backend.codegen(this, _closedWorld); 132 return _backend.codegen(this, _closedWorld);
127 } 133 }
128 } 134 }
129 135
130 /// Task for building SSA from kernel IR loaded from .dill. 136 /// Task for building SSA from kernel IR loaded from .dill.
131 class KernelSsaBuilderTask extends CompilerTask implements SsaBuilderTask { 137 class KernelSsaBuilderTask extends CompilerTask implements SsaBuilderTask {
132 final Compiler _compiler; 138 final Compiler _compiler;
(...skipping 246 matching lines...) Expand 10 before | Expand all | Expand 10 after
379 Iterable<ClassEntity> sortClasses(Iterable<ClassEntity> classes) { 385 Iterable<ClassEntity> sortClasses(Iterable<ClassEntity> classes) {
380 return classes.toList() 386 return classes.toList()
381 ..sort((ClassEntity a, ClassEntity b) { 387 ..sort((ClassEntity a, ClassEntity b) {
382 int r = _compareLibraries(a.library, b.library); 388 int r = _compareLibraries(a.library, b.library);
383 if (r != 0) return r; 389 if (r != 0) return r;
384 return _compareNodes( 390 return _compareNodes(
385 a, elementMap.getClassNode(a), b, elementMap.getClassNode(b)); 391 a, elementMap.getClassNode(a), b, elementMap.getClassNode(b));
386 }); 392 });
387 } 393 }
388 } 394 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698