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

Unified Diff: pkg/compiler/lib/src/kernel/kernel_strategy.dart

Issue 2896853002: Create SsaBuilderTask stub for KernelBackendStrategy (Closed)
Patch Set: Rebased 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
« no previous file with comments | « pkg/compiler/lib/src/js_backend/element_strategy.dart ('k') | pkg/compiler/lib/src/ssa/builder_kernel.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/kernel/kernel_strategy.dart
diff --git a/pkg/compiler/lib/src/kernel/kernel_strategy.dart b/pkg/compiler/lib/src/kernel/kernel_strategy.dart
index 842b3e331d653fece8ebd4932ea39353f8087775..457f89639024eade683d564dc1719f2ffdd22de6 100644
--- a/pkg/compiler/lib/src/kernel/kernel_strategy.dart
+++ b/pkg/compiler/lib/src/kernel/kernel_strategy.dart
@@ -13,12 +13,14 @@ import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem;
import '../common/resolution.dart';
import '../common/tasks.dart';
import '../common/work.dart';
+import '../compiler.dart';
import '../elements/elements.dart';
import '../elements/entities.dart';
import '../elements/types.dart';
import '../environment.dart' as env;
import '../enqueue.dart';
import '../frontend_strategy.dart';
+import '../io/source_information.dart';
import '../js_backend/backend.dart';
import '../js_backend/backend_usage.dart';
import '../js_backend/custom_elements_analysis.dart';
@@ -32,6 +34,8 @@ import '../js_emitter/sorter.dart';
import '../library_loader.dart';
import '../native/resolver.dart';
import '../serialization/task.dart';
+import '../ssa/builder_kernel.dart';
+import '../ssa/ssa.dart';
import '../patch_parser.dart';
import '../resolved_uri_translator.dart';
import '../universe/world_builder.dart';
@@ -243,6 +247,10 @@ class MirrorsResolutionAnalysisImpl implements MirrorsResolutionAnalysis {
// TODO(johnniwinther): Replace this with a strategy based on the J-element
// model.
class KernelBackendStrategy implements BackendStrategy {
+ final Compiler _compiler;
+
+ KernelBackendStrategy(this._compiler);
+
@override
ClosedWorldRefiner createClosedWorldRefiner(KernelClosedWorld closedWorld) {
return closedWorld;
@@ -260,7 +268,7 @@ class KernelBackendStrategy implements BackendStrategy {
@override
WorkItemBuilder createCodegenWorkItemBuilder(ClosedWorld closedWorld) {
- return new KernelCodegenWorkItemBuilder();
+ return new KernelCodegenWorkItemBuilder(_compiler.backend, closedWorld);
}
@override
@@ -268,8 +276,14 @@ class KernelBackendStrategy implements BackendStrategy {
NativeBasicData nativeBasicData,
ClosedWorld closedWorld,
SelectorConstraintsStrategy selectorConstraintsStrategy) {
- return new KernelCodegenWorldBuilder(
- null, nativeBasicData, closedWorld, selectorConstraintsStrategy);
+ return new KernelCodegenWorldBuilder(_compiler.elementEnvironment,
+ nativeBasicData, closedWorld, selectorConstraintsStrategy);
+ }
+
+ @override
+ SsaBuilderTask createSsaBuilderTask(JavaScriptBackend backend,
+ SourceInformationStrategy sourceInformationStrategy) {
+ return new KernelSsaBuilderTask(backend.compiler.measurer);
}
}
@@ -287,21 +301,28 @@ class MirrorsCodegenAnalysisImpl implements MirrorsCodegenAnalysis {
}
class KernelCodegenWorkItemBuilder implements WorkItemBuilder {
+ final JavaScriptBackend _backend;
+ final ClosedWorld _closedWorld;
+
+ KernelCodegenWorkItemBuilder(this._backend, this._closedWorld);
+
@override
CodegenWorkItem createWorkItem(MemberEntity entity) {
- return new KernelCodegenWorkItem(entity);
+ return new KernelCodegenWorkItem(_backend, _closedWorld, entity);
}
}
class KernelCodegenWorkItem extends CodegenWorkItem {
+ final JavaScriptBackend _backend;
+ final ClosedWorld _closedWorld;
final MemberEntity element;
final CodegenRegistry registry;
- KernelCodegenWorkItem(this.element) : registry = new CodegenRegistry(element);
+ KernelCodegenWorkItem(this._backend, this._closedWorld, this.element)
+ : registry = new CodegenRegistry(element);
@override
WorldImpact run() {
- // TODO(johnniwinther): Build SSA graph from kernel and run codegen on it.
- return const WorldImpact();
+ return _backend.codegen(this, _closedWorld);
}
}
« no previous file with comments | « pkg/compiler/lib/src/js_backend/element_strategy.dart ('k') | pkg/compiler/lib/src/ssa/builder_kernel.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698