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

Unified Diff: lib/compiler/implementation/ssa/optimize.dart

Issue 10584009: Refactor the collection of initializer list types (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Addressed last round of comments Created 8 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
« no previous file with comments | « lib/compiler/implementation/ssa/codegen.dart ('k') | lib/compiler/implementation/universe.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: lib/compiler/implementation/ssa/optimize.dart
diff --git a/lib/compiler/implementation/ssa/optimize.dart b/lib/compiler/implementation/ssa/optimize.dart
index 3e7405fa1828b7ef27dce927c272ba4d51d6cebb..70273d248f26e6833b2b5f0bbff7b4bdf19d22e2 100644
--- a/lib/compiler/implementation/ssa/optimize.dart
+++ b/lib/compiler/implementation/ssa/optimize.dart
@@ -1196,23 +1196,20 @@ class SsaProcessRecompileCandidates
node.right.isInteger()) {
HFieldGet left = node.left;
HConstant right = node.right;
- if (left.element != null) {
- Type type = left.receiver.propagatedType.computeType(compiler);
+ if (left.element != null && left.element.enclosingElement.isClass()) {
switch (compiler.phase) {
case Compiler.PHASE_COMPILING:
- if (compiler.codegenWorld.couldHaveFieldOnlyIntegerSetters(
- type, left.element.name) &&
- compiler.codegenWorld.hasFieldOnlyIntegerInitializers(
- type, left.element.name)) {
+ if (backend.onlyFieldIntegerSettersSoFar(left.element) &&
+ backend.couldHaveFieldSingleTypeInitializers(
+ left.element, HType.INTEGER)) {
compiler.enqueuer.codegen.registerRecompilationCandidate(
work.element);
}
break;
case Compiler.PHASE_RECOMPILING:
- if (compiler.codegenWorld.hasFieldOnlyIntegerSetters(
- type, left.element.name) &&
- compiler.codegenWorld.hasFieldOnlyIntegerInitializers(
- type, left.element.name)) {
+ if (backend.onlyFieldIntegerSettersSoFar(left.element) &&
+ backend.hasFieldSingleTypeInitializers(
+ left.element, HType.INTEGER)) {
if (compiler.codegenWorld.hasInvokedSetter(left.element,
compiler)) {
// If there are invoked setters we don't know for sure that the
« no previous file with comments | « lib/compiler/implementation/ssa/codegen.dart ('k') | lib/compiler/implementation/universe.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698