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

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

Issue 2938203003: Compute KernelClosureRepresentationInfo.variableIsUsedInTryOrSync (Closed)
Patch Set: Remove test line Created 3 years, 6 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/kernel/kernel_backend_strategy.dart
diff --git a/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart b/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart
index 4eef86d51dc527b4ecfaa058f1db377ca40208ee..4cac2bb65b588f309440a698c12d73e9c6e0a60e 100644
--- a/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart
+++ b/pkg/compiler/lib/src/kernel/kernel_backend_strategy.dart
@@ -33,6 +33,7 @@ import '../universe/selector.dart';
import '../universe/world_builder.dart';
import '../universe/world_impact.dart';
import '../world.dart';
+import 'closure.dart';
import 'element_map_impl.dart';
import 'kernel_strategy.dart';
@@ -146,6 +147,7 @@ class KernelSsaBuilderTask extends CompilerTask implements SsaBuilderTask {
@override
HGraph build(CodegenWorkItem work, ClosedWorld closedWorld) {
+ KernelToLocalsMap localsMap = new KernelToLocalsMapImpl(work.element);
KernelSsaBuilder builder = new KernelSsaBuilder(
work.element,
work.element.enclosingClass,
@@ -153,12 +155,12 @@ class KernelSsaBuilderTask extends CompilerTask implements SsaBuilderTask {
_compiler,
_elementMap,
new KernelToTypeInferenceMapImpl(closedWorld),
- new KernelToLocalsMapImpl(work.element),
+ localsMap,
closedWorld,
_compiler.codegenWorldBuilder,
work.registry,
+ new KernelClosureDataLookup(_elementMap, localsMap),
// TODO(johnniwinther): Support these:
- const KernelClosureDataLookup(),
const SourceInformationBuilder(),
null, // Function node used as capture scope id.
targetIsConstructorBody: false);
@@ -288,7 +290,7 @@ class KernelToLocalsMapImpl implements KernelToLocalsMap {
@override
LoopClosureRepresentationInfo getClosureRepresentationInfoForLoop(
ClosureDataLookup closureLookup, ir.TreeNode node) {
- return const LoopClosureRepresentationInfo();
+ return closureLookup.getClosureRepresentationInfoForLoop(node);
}
}
@@ -316,34 +318,6 @@ class KLocal implements Local {
}
}
-/// TODO(johnniwinther,efortuna): Implement this.
-class KernelClosureDataLookup implements ClosureDataLookup<ir.Node> {
- const KernelClosureDataLookup();
-
- @override
- ClosureAnalysisInfo getClosureAnalysisInfo(ir.Node node) {
- return const ClosureAnalysisInfo();
- }
-
- @override
- LoopClosureRepresentationInfo getClosureRepresentationInfoForLoop(
- ir.Node loopNode) {
- return const LoopClosureRepresentationInfo();
- }
-
- @override
- ClosureRepresentationInfo getClosureRepresentationInfo(Entity entity) {
- if (entity is MemberEntity) {
- ThisLocal thisLocal;
- if (entity.isInstanceMember) {
- thisLocal = new ThisLocal(entity);
- }
- return new ClosureClassMap(null, null, null, thisLocal);
- }
- return const ClosureRepresentationInfo();
- }
-}
-
class KernelSorter implements Sorter {
final KernelToElementMapImpl elementMap;

Powered by Google App Engine
This is Rietveld 408576698