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

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

Issue 2716713003: Move main and isolate handling to enqueuer listeners. (Closed)
Patch Set: Created 3 years, 10 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
« no previous file with comments | « pkg/compiler/lib/src/enqueue.dart ('k') | pkg/compiler/lib/src/js_backend/codegen_listener.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 22f6274289e92982a7bcefd91222781f52c15785..72320ff9712e13c7b7b28e4be03efe763051d9cb 100644
--- a/pkg/compiler/lib/src/js_backend/backend.dart
+++ b/pkg/compiler/lib/src/js_backend/backend.dart
@@ -866,10 +866,6 @@ class JavaScriptBackend extends Target {
}
}
- // TODO(johnniwinther): Avoid the need for this.
- WorldImpact computeHelpersImpact() =>
- _resolutionEnqueuerListener.computeHelpersImpact();
-
void onResolutionComplete(
ClosedWorld closedWorld, ClosedWorldRefiner closedWorldRefiner) {
for (Entity entity in compiler.enqueuer.resolution.processedEntities) {
@@ -944,35 +940,6 @@ class JavaScriptBackend extends Target {
return null;
}
- /// Called to enable support for isolates. Any backend specific [WorldImpact]
- /// of this is returned.
- WorldImpact enableIsolateSupport({bool forResolution}) {
- WorldImpactBuilderImpl impactBuilder = new WorldImpactBuilderImpl();
- // TODO(floitsch): We should also ensure that the class IsolateMessage is
- // instantiated. Currently, just enabling isolate support works.
- if (compiler.mainFunction != null) {
- // The JavaScript backend implements [Isolate.spawn] by looking up
- // top-level functions by name. So all top-level function tear-off
- // closures have a private name field.
- //
- // The JavaScript backend of [Isolate.spawnUri] uses the same internal
- // implementation as [Isolate.spawn], and fails if it cannot look main up
- // by name.
- impactBuilder.registerStaticUse(
- new StaticUse.staticTearOff(compiler.mainFunction));
- }
- impacts.isolateSupport
- .registerImpact(impactBuilder, compiler.elementEnvironment);
- if (forResolution) {
- backendUsageBuilder.processBackendImpact(impacts.isolateSupport);
- impacts.isolateSupportForResolution
- .registerImpact(impactBuilder, compiler.elementEnvironment);
- backendUsageBuilder
- .processBackendImpact(impacts.isolateSupportForResolution);
- }
- return impactBuilder;
- }
-
bool isComplexNoSuchMethod(FunctionElement element) =>
noSuchMethodRegistry.isComplex(element);
@@ -1264,12 +1231,6 @@ class JavaScriptBackend extends Target {
return new jsAst.Call(helperExpression, arguments);
}
- void _onQueueEmpty(Enqueuer enqueuer, Iterable<ClassEntity> recentClasses) {
- if (compiler.options.useKernel && compiler.mainApp != null) {
- kernelTask.buildKernelIr();
- }
- }
-
/// Called after the queue is closed. [onQueueEmpty] may be called multiple
/// times, but [onQueueClosed] is only called once.
void onQueueClosed() {
@@ -1301,9 +1262,6 @@ class JavaScriptBackend extends Target {
_namer.rtiEncoder = new _RuntimeTypesEncoder(_namer, emitter, helpers);
lookupMapAnalysis.onCodegenStart();
- if (backendUsage.isIsolateInUse) {
- return enableIsolateSupport(forResolution: false);
- }
return const WorldImpact();
}
@@ -1417,29 +1375,6 @@ class JavaScriptBackend extends Target {
MethodElement helperForMainArity() => helpers.mainHasTooManyParameters;
- /// Computes the [WorldImpact] of calling [mainMethod] as the entry point.
- WorldImpact computeMainImpact(MethodElement mainMethod,
- {bool forResolution}) {
- WorldImpactBuilderImpl mainImpact = new WorldImpactBuilderImpl();
- if (mainMethod.parameters.isNotEmpty) {
- impacts.mainWithArguments
- .registerImpact(mainImpact, compiler.elementEnvironment);
- if (forResolution) {
- backendUsageBuilder.processBackendImpact(impacts.mainWithArguments);
- }
- mainImpact.registerStaticUse(
- new StaticUse.staticInvoke(mainMethod, CallStructure.TWO_ARGS));
- // If the main method takes arguments, this compilation could be the
- // target of Isolate.spawnUri. Strictly speaking, that can happen also if
- // main takes no arguments, but in this case the spawned isolate can't
- // communicate with the spawning isolate.
- mainImpact.addImpact(enableIsolateSupport(forResolution: forResolution));
- }
- mainImpact.registerStaticUse(
- new StaticUse.staticInvoke(mainMethod, CallStructure.NO_ARGS));
- return mainImpact;
- }
-
/// Returns the filename for the output-unit named [name].
///
/// The filename is of the form "<main output file>_<name>.part.js".
« no previous file with comments | « pkg/compiler/lib/src/enqueue.dart ('k') | pkg/compiler/lib/src/js_backend/codegen_listener.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698