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

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

Issue 2875313002: Access BackendUsage through ClosedWorld (Closed)
Patch Set: 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/js_backend/backend.dart
diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
index 18ecdf33f21640f47855e2dcd7c95ed03b8b1d9a..53370a1a57ca3fa96b7c54c3c4a1ef9d050ed55c 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -442,7 +442,6 @@ class JavaScriptBackend {
NativeDataBuilder get nativeDataBuilder => _nativeDataBuilder;
final NativeDataResolver _nativeDataResolver;
OneShotInterceptorData _oneShotInterceptorData;
- BackendUsage _backendUsage;
BackendUsageBuilder _backendUsageBuilder;
MirrorsDataImpl _mirrorsData;
CheckedModeHelpers _checkedModeHelpers;
@@ -508,7 +507,7 @@ class JavaScriptBackend {
new CodeEmitterTask(compiler, generateSourceMap, useStartupEmitter);
_typeVariableResolutionAnalysis = new TypeVariableResolutionAnalysis(
- compiler.elementEnvironment, impacts, backendUsageBuilder);
+ compiler.elementEnvironment, impacts, _backendUsageBuilder);
jsInteropAnalysis = new JsInteropAnalysis(this);
_mirrorsResolutionAnalysis =
compiler.frontEndStrategy.createMirrorsResolutionAnalysis(this);
@@ -606,18 +605,6 @@ class JavaScriptBackend {
return _oneShotInterceptorData;
}
- BackendUsage get backendUsage {
- assert(invariant(NO_LOCATION_SPANNABLE, _backendUsage != null,
- message: "BackendUsage has not been computed yet."));
- return _backendUsage;
- }
-
- BackendUsageBuilder get backendUsageBuilder {
- assert(invariant(NO_LOCATION_SPANNABLE, _backendUsage == null,
- message: "BackendUsage has already been computed."));
- return _backendUsageBuilder;
- }
-
RuntimeTypesNeed get rtiNeed {
assert(invariant(NO_LOCATION_SPANNABLE, _rtiNeed != null,
message: "RuntimeTypesNeed has not been computed yet."));
@@ -691,8 +678,9 @@ class JavaScriptBackend {
///
/// One category of elements that do not apply is runtime helpers that the
/// backend calls, but the optimizations don't see those calls.
- bool canFieldBeUsedForGlobalOptimizations(FieldElement element) {
- return !backendUsage.isFieldUsedByBackend(element) &&
+ bool canFieldBeUsedForGlobalOptimizations(
+ FieldElement element, ClosedWorld closedWorld) {
+ return !closedWorld.backendUsage.isFieldUsedByBackend(element) &&
!mirrorsData.invokedReflectively(element);
}
@@ -702,10 +690,10 @@ class JavaScriptBackend {
/// One category of elements that do not apply is runtime helpers that the
/// backend calls, but the optimizations don't see those calls.
bool canFunctionParametersBeUsedForGlobalOptimizations(
- FunctionElement element) {
+ FunctionElement element, ClosedWorld closedWorld) {
if (element.isLocal) return true;
MethodElement method = element;
- return !backendUsage.isFunctionUsedByBackend(method) &&
+ return !closedWorld.backendUsage.isFunctionUsedByBackend(method) &&
!mirrorsData.invokedReflectively(method);
}
@@ -762,7 +750,6 @@ class JavaScriptBackend {
void onResolutionEnd() {
compiler.frontEndStrategy.annotationProcesser
.processJsInteropAnnotations(nativeBasicData, nativeDataBuilder);
- _backendUsage = backendUsageBuilder.close();
}
/// Called when the closed world from resolution has been computed.
@@ -775,11 +762,7 @@ class JavaScriptBackend {
mirrorsDataBuilder.computeMembersNeededForReflection(
compiler.enqueuer.resolution.worldBuilder, closedWorld);
_rtiNeed = rtiNeedBuilder.computeRuntimeTypesNeed(
- compiler.enqueuer.resolution.worldBuilder,
- closedWorld,
- compiler.types,
- commonElements,
- _backendUsage,
+ compiler.enqueuer.resolution.worldBuilder, closedWorld, compiler.types,
enableTypeAssertions: compiler.options.enableTypeAssertions);
mirrorsResolutionAnalysis.onResolutionComplete();
}
@@ -829,12 +812,12 @@ class JavaScriptBackend {
compiler.elementEnvironment,
commonElements,
compiler.frontEndStrategy.dartTypes,
- backendUsageBuilder,
+ _backendUsageBuilder,
compiler.frontEndStrategy.createNativeClassFinder(nativeBasicData));
_nativeDataBuilder = new NativeDataBuilderImpl(nativeBasicData);
_customElementsResolutionAnalysis = compiler.frontEndStrategy
.createCustomElementsResolutionAnalysis(
- nativeBasicData, backendUsageBuilder);
+ nativeBasicData, _backendUsageBuilder);
impactTransformer = new JavaScriptImpactTransformer(
compiler.options,
compiler.elementEnvironment,
@@ -842,7 +825,7 @@ class JavaScriptBackend {
impacts,
nativeBasicData,
_nativeResolutionEnqueuer,
- backendUsageBuilder,
+ _backendUsageBuilder,
mirrorsDataBuilder,
customElementsResolutionAnalysis,
rtiNeedBuilder);
@@ -863,7 +846,7 @@ class JavaScriptBackend {
impacts,
nativeBasicData,
interceptorDataBuilder,
- backendUsageBuilder,
+ _backendUsageBuilder,
rtiNeedBuilder,
mirrorsDataBuilder,
noSuchMethodRegistry,
@@ -878,6 +861,7 @@ class JavaScriptBackend {
nativeBasicData,
_nativeDataBuilder,
interceptorDataBuilder,
+ _backendUsageBuilder,
const OpenWorldStrategy()),
compiler.frontEndStrategy.createResolutionWorkItemBuilder(
nativeBasicData, _nativeDataBuilder, impactTransformer));
@@ -917,7 +901,7 @@ class JavaScriptBackend {
compiler.elementEnvironment,
commonElements,
impacts,
- backendUsage,
+ closedWorld.backendUsage,
rtiNeed,
customElementsCodegenAnalysis,
typeVariableCodegenAnalysis,
@@ -1133,7 +1117,7 @@ class JavaScriptBackend {
impacts,
checkedModeHelpers,
closedWorld.nativeData,
- backendUsage,
+ closedWorld.backendUsage,
rtiNeed,
nativeCodegenEnqueuer,
namer,
« no previous file with comments | « pkg/compiler/lib/src/inferrer/type_graph_nodes.dart ('k') | pkg/compiler/lib/src/js_backend/runtime_types.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698