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

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

Issue 1421463005: Move codegen registration to transformImpact method. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 5 years, 1 month 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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.compiler_base; 5 library dart2js.compiler_base;
6 6
7 import 'dart:async' show 7 import 'dart:async' show
8 EventSink, 8 EventSink,
9 Future; 9 Future;
10 10
11 import '../compiler_new.dart' as api; 11 import '../compiler_new.dart' as api;
12 import 'cache_strategy.dart' show 12 import 'cache_strategy.dart' show
13 CacheStrategy; 13 CacheStrategy;
14 import 'closure.dart' as closureMapping show 14 import 'closure.dart' as closureMapping show
15 ClosureTask; 15 ClosureTask;
16 import 'common.dart'; 16 import 'common.dart';
17 import 'common/backend_api.dart' show 17 import 'common/backend_api.dart' show
18 Backend; 18 Backend;
19 import 'common/codegen.dart' show 19 import 'common/codegen.dart' show
20 CodegenRegistry, 20 CodegenImpact,
21 CodegenWorkItem; 21 CodegenWorkItem;
22 import 'common/names.dart' show 22 import 'common/names.dart' show
23 Identifiers, 23 Identifiers,
24 Uris; 24 Uris;
25 import 'common/registry.dart' show 25 import 'common/registry.dart' show
26 EagerRegistry,
26 Registry; 27 Registry;
27 import 'common/resolution.dart' show 28 import 'common/resolution.dart' show
28 Parsing, 29 Parsing,
29 Resolution, 30 Resolution,
30 ResolutionWorkItem, 31 ResolutionWorkItem,
31 ResolutionImpact; 32 ResolutionImpact;
32 import 'common/tasks.dart' show 33 import 'common/tasks.dart' show
33 CompilerTask, 34 CompilerTask,
34 GenericTask; 35 GenericTask;
35 import 'common/work.dart' show 36 import 'common/work.dart' show
(...skipping 1961 matching lines...) Expand 10 before | Expand all | Expand 10 after
1997 assert(invariant(element, !element.isSynthesized || tree == null)); 1998 assert(invariant(element, !element.isSynthesized || tree == null));
1998 ResolutionImpact resolutionImpact = 1999 ResolutionImpact resolutionImpact =
1999 compiler.resolver.resolve(element); 2000 compiler.resolver.resolve(element);
2000 if (tree != null && !compiler.analyzeSignaturesOnly) { 2001 if (tree != null && !compiler.analyzeSignaturesOnly) {
2001 // TODO(het): don't do this if suppressWarnings is on, currently we have 2002 // TODO(het): don't do this if suppressWarnings is on, currently we have
2002 // to do it because the typechecker also sets types 2003 // to do it because the typechecker also sets types
2003 // Only analyze nodes with a corresponding [TreeElements]. 2004 // Only analyze nodes with a corresponding [TreeElements].
2004 compiler.checker.check(element); 2005 compiler.checker.check(element);
2005 } 2006 }
2006 WorldImpact worldImpact = 2007 WorldImpact worldImpact =
2007 compiler.backend.resolutionCallbacks.transformImpact( 2008 compiler.backend.impactTransformer.transformResolutionImpact(
2008 resolutionImpact); 2009 resolutionImpact);
2009 return worldImpact; 2010 return worldImpact;
2010 }); 2011 });
2011 } 2012 }
2012 2013
2013 @override 2014 @override
2014 bool hasBeenResolved(Element element) { 2015 bool hasBeenResolved(Element element) {
2015 return _worldImpactCache.containsKey(element); 2016 return _worldImpactCache.containsKey(element);
2016 } 2017 }
2017 } 2018 }
(...skipping 19 matching lines...) Expand all
2037 } 2038 }
2038 }); 2039 });
2039 } 2040 }
2040 2041
2041 ScannerOptions getScannerOptionsFor(Element element) { 2042 ScannerOptions getScannerOptionsFor(Element element) {
2042 return new ScannerOptions( 2043 return new ScannerOptions(
2043 canUseNative: compiler.backend.canLibraryUseNative(element.library)); 2044 canUseNative: compiler.backend.canLibraryUseNative(element.library));
2044 } 2045 }
2045 } 2046 }
2046 2047
2047 class GlobalDependencyRegistry extends CodegenRegistry { 2048 class GlobalDependencyRegistry extends EagerRegistry {
2049 final Compiler compiler;
2048 Setlet<Element> _otherDependencies; 2050 Setlet<Element> _otherDependencies;
2049 2051
2050 GlobalDependencyRegistry(Compiler compiler) 2052 GlobalDependencyRegistry(this.compiler) : super('GlobalDependencies', null);
2051 : super(compiler, new TreeElementMapping(null)); 2053
2054 // TODO(johnniwinther): Rename world/universe/enqueuer through out the
2055 // compiler.
2056 @override
2057 Enqueuer get world => compiler.enqueuer.codegen;
2052 2058
2053 void registerDependency(Element element) { 2059 void registerDependency(Element element) {
2054 if (element == null) return; 2060 if (element == null) return;
2055 if (_otherDependencies == null) { 2061 if (_otherDependencies == null) {
2056 _otherDependencies = new Setlet<Element>(); 2062 _otherDependencies = new Setlet<Element>();
2057 } 2063 }
2058 _otherDependencies.add(element.implementation); 2064 _otherDependencies.add(element.implementation);
2059 } 2065 }
2060 2066
2061 Iterable<Element> get otherDependencies { 2067 Iterable<Element> get otherDependencies {
2062 return _otherDependencies != null ? _otherDependencies : const <Element>[]; 2068 return _otherDependencies != null ? _otherDependencies : const <Element>[];
2063 } 2069 }
2064 } 2070 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/common/resolution.dart ('k') | pkg/compiler/lib/src/dart_backend/backend.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698