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

Unified Diff: pkg/compiler/lib/src/js_backend/lookup_map_analysis.dart

Issue 2527973002: Remove direct access to enqueuer through use of WorldImpact (Closed)
Patch Set: Updated cf. comments. Created 4 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
Index: pkg/compiler/lib/src/js_backend/lookup_map_analysis.dart
diff --git a/pkg/compiler/lib/src/js_backend/lookup_map_analysis.dart b/pkg/compiler/lib/src/js_backend/lookup_map_analysis.dart
index fec60e3c2a5d7f0dd04a20a4de97f932ba6c53fa..4a512390833817e0a77aa307fd95bb8be51ec1ed 100644
--- a/pkg/compiler/lib/src/js_backend/lookup_map_analysis.dart
+++ b/pkg/compiler/lib/src/js_backend/lookup_map_analysis.dart
@@ -21,7 +21,7 @@ import '../dart_types.dart' show DartType;
import '../dart_types.dart' show InterfaceType;
import '../elements/elements.dart'
show ClassElement, FieldElement, LibraryElement, VariableElement;
-import '../enqueue.dart';
+import '../universe/use.dart' show StaticUse;
import '../universe/world_impact.dart'
show WorldImpact, StagedWorldImpactBuilder;
import 'js_backend.dart' show JavaScriptBackend;
@@ -120,7 +120,10 @@ class LookupMapAnalysis {
/// entry with that key.
final _pending = <ConstantValue, List<_LookupMapInfo>>{};
- final StagedWorldImpactBuilder impactBuilder = new StagedWorldImpactBuilder();
+ final StagedWorldImpactBuilder impactBuilderForResolution =
+ new StagedWorldImpactBuilder();
+ final StagedWorldImpactBuilder impactBuilderForCodegen =
+ new StagedWorldImpactBuilder();
/// Whether the backend is currently processing the codegen queue.
bool _inCodegen = false;
@@ -129,8 +132,11 @@ class LookupMapAnalysis {
/// Compute the [WorldImpact] for the constants registered since last flush.
WorldImpact flush({bool forResolution}) {
- if (forResolution) return const WorldImpact();
- return impactBuilder.flush();
+ if (forResolution) {
+ return impactBuilderForResolution.flush();
+ } else {
+ return impactBuilderForCodegen.flush();
+ }
}
/// Whether this analysis and optimization is enabled.
@@ -151,8 +157,8 @@ class LookupMapAnalysis {
reporter.reportInfo(
library, MessageKind.UNRECOGNIZED_VERSION_OF_LOOKUP_MAP);
} else {
- backend.compiler.enqueuer.resolution
- .addToWorkList(lookupMapVersionVariable);
+ impactBuilderForResolution.registerStaticUse(
+ new StaticUse.foreignUse(lookupMapVersionVariable));
}
}
@@ -277,7 +283,8 @@ class LookupMapAnalysis {
// type_lookup_map/generic_type_test
// TODO(sigmund): can we get rid of this?
backend.computeImpactForInstantiatedConstantType(
- backend.backendClasses.typeImplementation.rawType, impactBuilder);
+ backend.backendClasses.typeImplementation.rawType,
+ impactBuilderForCodegen);
_addGenerics(arg);
}
}
@@ -418,7 +425,7 @@ class _LookupMapInfo {
ConstantValue constant = unusedEntries.remove(key);
usedEntries[key] = constant;
analysis.backend.computeImpactForCompileTimeConstant(
- constant, analysis.impactBuilder, false);
+ constant, analysis.impactBuilderForCodegen, false);
}
/// Restores [original] to contain all of the entries marked as possibly used.
« no previous file with comments | « pkg/compiler/lib/src/js_backend/enqueuer.dart ('k') | pkg/compiler/lib/src/js_backend/type_variable_handler.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698