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

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

Issue 2888413004: Add KernelCodegenWorkItem stub (Closed)
Patch Set: Add comment Created 3 years, 7 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.frontend_strategy; 5 library dart2js.kernel.frontend_strategy;
6 6
7 import '../closure.dart'; 7 import '../closure.dart';
8 import '../backend_strategy.dart'; 8 import '../backend_strategy.dart';
9 import '../common.dart'; 9 import '../common.dart';
10 import '../common_elements.dart'; 10 import '../common_elements.dart';
11 import '../common/backend_api.dart'; 11 import '../common/backend_api.dart';
12 import '../common/codegen.dart' show CodegenWorkItem; 12 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem;
13 import '../common/resolution.dart'; 13 import '../common/resolution.dart';
14 import '../common/tasks.dart'; 14 import '../common/tasks.dart';
15 import '../common/work.dart'; 15 import '../common/work.dart';
16 import '../elements/elements.dart'; 16 import '../elements/elements.dart';
17 import '../elements/entities.dart'; 17 import '../elements/entities.dart';
18 import '../elements/types.dart'; 18 import '../elements/types.dart';
19 import '../environment.dart' as env; 19 import '../environment.dart' as env;
20 import '../enqueue.dart'; 20 import '../enqueue.dart';
21 import '../frontend_strategy.dart'; 21 import '../frontend_strategy.dart';
22 import '../js_backend/backend.dart'; 22 import '../js_backend/backend.dart';
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 void registerTypeLiteral(DartType type) {} 224 void registerTypeLiteral(DartType type) {}
225 } 225 }
226 226
227 /// Mock implementation of [MirrorsResolutionAnalysis]. 227 /// Mock implementation of [MirrorsResolutionAnalysis].
228 class MirrorsResolutionAnalysisImpl implements MirrorsResolutionAnalysis { 228 class MirrorsResolutionAnalysisImpl implements MirrorsResolutionAnalysis {
229 @override 229 @override
230 void onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) {} 230 void onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) {}
231 231
232 @override 232 @override
233 MirrorsCodegenAnalysis close() { 233 MirrorsCodegenAnalysis close() {
234 throw new UnimplementedError('MirrorsResolutionAnalysisImpl.close'); 234 // TODO(johnniwinther): Implement this.
235 return new MirrorsCodegenAnalysisImpl();
235 } 236 }
236 237
237 @override 238 @override
238 void onResolutionComplete() {} 239 void onResolutionComplete() {}
239 } 240 }
240 241
241 /// Backend strategy that uses the kernel elements as the backend model. 242 /// Backend strategy that uses the kernel elements as the backend model.
242 // TODO(johnniwinther): Replace this with a strategy based on the J-element 243 // TODO(johnniwinther): Replace this with a strategy based on the J-element
243 // model. 244 // model.
244 class KernelBackendStrategy implements BackendStrategy { 245 class KernelBackendStrategy implements BackendStrategy {
245 @override 246 @override
246 ClosedWorldRefiner createClosedWorldRefiner(KernelClosedWorld closedWorld) { 247 ClosedWorldRefiner createClosedWorldRefiner(KernelClosedWorld closedWorld) {
247 return closedWorld; 248 return closedWorld;
248 } 249 }
249 250
250 @override 251 @override
251 Sorter get sorter => 252 Sorter get sorter =>
252 throw new UnimplementedError('KernelBackendStrategy.sorter'); 253 throw new UnimplementedError('KernelBackendStrategy.sorter');
253 254
254 @override 255 @override
255 void convertClosures(ClosedWorldRefiner closedWorldRefiner) { 256 void convertClosures(ClosedWorldRefiner closedWorldRefiner) {
256 // TODO(johnniwinther,efortuna): Compute closure classes for kernel based 257 // TODO(johnniwinther,efortuna): Compute closure classes for kernel based
257 // elements. 258 // elements.
258 throw new UnimplementedError('KernelBackendStrategy.createClosureClasses');
259 } 259 }
260 260
261 @override 261 @override
262 WorkItemBuilder createCodegenWorkItemBuilder(ClosedWorld closedWorld) { 262 WorkItemBuilder createCodegenWorkItemBuilder(ClosedWorld closedWorld) {
263 return new KernelCodegenWorkItemBuilder(); 263 return new KernelCodegenWorkItemBuilder();
264 } 264 }
265 265
266 @override 266 @override
267 CodegenWorldBuilder createCodegenWorldBuilder( 267 CodegenWorldBuilder createCodegenWorldBuilder(
268 NativeBasicData nativeBasicData, 268 NativeBasicData nativeBasicData,
269 ClosedWorld closedWorld, 269 ClosedWorld closedWorld,
270 SelectorConstraintsStrategy selectorConstraintsStrategy) { 270 SelectorConstraintsStrategy selectorConstraintsStrategy) {
271 return new KernelCodegenWorldBuilder( 271 return new KernelCodegenWorldBuilder(
272 null, nativeBasicData, closedWorld, selectorConstraintsStrategy); 272 null, nativeBasicData, closedWorld, selectorConstraintsStrategy);
273 } 273 }
274 } 274 }
275 275
276 class MirrorsCodegenAnalysisImpl implements MirrorsCodegenAnalysis {
277 @override
278 int get preMirrorsMethodCount {
279 throw new UnimplementedError(
280 'MirrorsCodegenAnalysisImpl.preMirrorsMethodCount');
281 }
282
283 @override
284 void onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) {
285 throw new UnimplementedError('MirrorsCodegenAnalysisImpl.onQueueEmpty');
286 }
287 }
288
276 class KernelCodegenWorkItemBuilder implements WorkItemBuilder { 289 class KernelCodegenWorkItemBuilder implements WorkItemBuilder {
277 @override 290 @override
278 CodegenWorkItem createWorkItem(MemberEntity entity) { 291 CodegenWorkItem createWorkItem(MemberEntity entity) {
279 throw new UnimplementedError('KernelCodegenWorkItemBuilder.createWorkItem'); 292 return new KernelCodegenWorkItem(entity);
280 } 293 }
281 } 294 }
295
296 class KernelCodegenWorkItem extends CodegenWorkItem {
297 final MemberEntity element;
298 final CodegenRegistry registry;
299
300 KernelCodegenWorkItem(this.element) : registry = new CodegenRegistry(element);
301
302 @override
303 WorldImpact run() {
304 // TODO(johnniwinther): Build SSA graph from kernel and run codegen on it.
305 return const WorldImpact();
306 }
307 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698