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

Unified Diff: pkg/compiler/lib/src/common/codegen.dart

Issue 1424923004: Add StaticUse for more precise registration of statically known element use. (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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | pkg/compiler/lib/src/common/registry.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/common/codegen.dart
diff --git a/pkg/compiler/lib/src/common/codegen.dart b/pkg/compiler/lib/src/common/codegen.dart
index 88d92dc70100e7509799aeef44a594c9f1081de1..f702c2ee05f61ef471f42a0419e447643ff623db 100644
--- a/pkg/compiler/lib/src/common/codegen.dart
+++ b/pkg/compiler/lib/src/common/codegen.dart
@@ -20,14 +20,12 @@ import '../elements/elements.dart' show
LocalFunctionElement;
import '../enqueue.dart' show
CodegenEnqueuer;
-import '../js_backend/js_backend.dart' show
- JavaScriptBackend;
import '../resolution/tree_elements.dart' show
TreeElements;
-import '../universe/selector.dart' show
- Selector;
import '../universe/universe.dart' show
UniverseSelector;
+import '../universe/use.dart' show
+ StaticUse;
import '../universe/world_impact.dart' show
WorldImpact,
WorldImpactBuilder;
@@ -47,12 +45,6 @@ class CodegenImpact extends WorldImpact {
// TODO(johnniwinther): Remove this.
Registry get registry => null;
- Iterable<Element> get getterForSuperElements => const <Element>[];
-
- Iterable<Element> get fieldGetters => const <Element>[];
-
- Iterable<Element> get fieldSetters => const <Element>[];
-
Iterable<ConstantValue> get compileTimeConstants => const <ConstantValue>[];
Iterable<Pair<DartType, DartType>> get typeVariableBoundsSubtypeChecks {
@@ -76,10 +68,6 @@ class _CodegenImpact extends WorldImpactBuilder implements CodegenImpact {
// TODO(johnniwinther): Remove this.
final Registry registry;
-
- Setlet<Element> _getterForSuperElements;
- Setlet<Element> _fieldGetters;
- Setlet<Element> _fieldSetters;
Setlet<ConstantValue> _compileTimeConstants;
Setlet<Pair<DartType, DartType>> _typeVariableBoundsSubtypeChecks;
Setlet<String> _constSymbols;
@@ -90,42 +78,6 @@ class _CodegenImpact extends WorldImpactBuilder implements CodegenImpact {
_CodegenImpact(this.registry);
- void registerGetterForSuperMethod(Element element) {
- if (_getterForSuperElements == null) {
- _getterForSuperElements = new Setlet<Element>();
- }
- _getterForSuperElements.add(element);
- }
-
- Iterable<Element> get getterForSuperElements {
- return _getterForSuperElements != null
- ? _getterForSuperElements : const <Element>[];
- }
-
- void registerFieldGetter(Element element) {
- if (_fieldGetters == null) {
- _fieldGetters = new Setlet<Element>();
- }
- _fieldGetters.add(element);
- }
-
- Iterable<Element> get fieldGetters {
- return _fieldGetters != null
- ? _fieldGetters : const <Element>[];
- }
-
- void registerFieldSetter(Element element) {
- if (_fieldSetters == null) {
- _fieldSetters = new Setlet<Element>();
- }
- _fieldSetters.add(element);
- }
-
- Iterable<Element> get fieldSetters {
- return _fieldSetters != null
- ? _fieldSetters : const <Element>[];
- }
-
void registerCompileTimeConstant(ConstantValue constant) {
if (_compileTimeConstants == null) {
_compileTimeConstants = new Setlet<ConstantValue>();
@@ -224,45 +176,20 @@ class CodegenRegistry extends Registry {
String toString() => 'CodegenRegistry for $currentElement';
+ @deprecated
void registerInstantiatedClass(ClassElement element) {
- registerInstantiatedType(element.rawType);
- }
-
- void registerInstantiatedType(InterfaceType type) {
- worldImpact.registerInstantiatedType(type);
- }
-
- void registerStaticUse(Element element) {
- worldImpact.registerStaticUse(element);
- }
-
- void registerDynamicInvocation(UniverseSelector selector) {
- worldImpact.registerDynamicInvocation(selector);
- compiler.dumpInfoTask.elementUsesSelector(currentElement, selector);
+ registerInstantiation(element.rawType);
}
- void registerDynamicSetter(UniverseSelector selector) {
- worldImpact.registerDynamicSetter(selector);
- compiler.dumpInfoTask.elementUsesSelector(currentElement, selector);
+ void registerStaticUse(StaticUse staticUse) {
+ worldImpact.registerStaticUse(staticUse);
}
- void registerDynamicGetter(UniverseSelector selector) {
- worldImpact.registerDynamicGetter(selector);
+ void registerDynamicUse(UniverseSelector selector) {
+ worldImpact.registerDynamicUse(selector);
compiler.dumpInfoTask.elementUsesSelector(currentElement, selector);
}
- void registerGetterForSuperMethod(Element element) {
- worldImpact.registerGetterForSuperMethod(element);
- }
-
- void registerFieldGetter(Element element) {
- worldImpact.registerFieldGetter(element);
- }
-
- void registerFieldSetter(Element element) {
- worldImpact.registerFieldSetter(element);
- }
-
void registerIsCheck(DartType type) {
worldImpact.registerIsCheck(type);
}
@@ -280,20 +207,6 @@ class CodegenRegistry extends Registry {
worldImpact.registerClosure(element);
}
- void registerGetOfStaticFunction(FunctionElement element) {
- worldImpact.registerClosurizedFunction(element);
- }
-
- void registerSelectorUse(Selector selector) {
- if (selector.isGetter) {
- registerDynamicGetter(new UniverseSelector(selector, null));
- } else if (selector.isSetter) {
- registerDynamicSetter(new UniverseSelector(selector, null));
- } else {
- registerDynamicInvocation(new UniverseSelector(selector, null));
- }
- }
-
void registerConstSymbol(String name) {
worldImpact.registerConstSymbol(name);
}
@@ -310,20 +223,8 @@ class CodegenRegistry extends Registry {
worldImpact.registerTypeConstant(element);
}
- void registerStaticInvocation(Element element) {
- registerStaticUse(element);
- }
-
- void registerSuperInvocation(Element element) {
- registerStaticUse(element);
- }
-
- void registerDirectInvocation(Element element) {
- registerStaticUse(element);
- }
-
void registerInstantiation(InterfaceType type) {
- registerInstantiatedType(type);
+ worldImpact.registerInstantiatedType(type);
}
void registerAsyncMarker(FunctionElement element) {
« no previous file with comments | « no previous file | pkg/compiler/lib/src/common/registry.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698