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

Side by Side Diff: pkg/compiler/lib/src/ssa/optimize.dart

Issue 2813093002: Remove BackendClasses and JavaScriptBackendClasses. (Closed)
Patch Set: . Created 3 years, 8 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 unified diff | Download patch
« no previous file with comments | « pkg/compiler/lib/src/ssa/nodes.dart ('k') | pkg/compiler/lib/src/types/flat_type_mask.dart » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; 5 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem;
6 import '../common/names.dart' show Selectors; 6 import '../common/names.dart' show Selectors;
7 import '../common/tasks.dart' show CompilerTask; 7 import '../common/tasks.dart' show CompilerTask;
8 import '../compiler.dart' show Compiler; 8 import '../compiler.dart' show Compiler;
9 import '../constants/constant_system.dart'; 9 import '../constants/constant_system.dart';
10 import '../constants/values.dart'; 10 import '../constants/values.dart';
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 /// Returns `true` if [mask] represents only types that have a length that 161 /// Returns `true` if [mask] represents only types that have a length that
162 /// cannot change. The current implementation is conservative for the purpose 162 /// cannot change. The current implementation is conservative for the purpose
163 /// of identifying gvn-able lengths and mis-identifies some unions of fixed 163 /// of identifying gvn-able lengths and mis-identifies some unions of fixed
164 /// length indexables (see TODO) as not fixed length. 164 /// length indexables (see TODO) as not fixed length.
165 bool isFixedLength(mask, ClosedWorld closedWorld) { 165 bool isFixedLength(mask, ClosedWorld closedWorld) {
166 if (mask.isContainer && mask.length != null) { 166 if (mask.isContainer && mask.length != null) {
167 // A container on which we have inferred the length. 167 // A container on which we have inferred the length.
168 return true; 168 return true;
169 } 169 }
170 // TODO(sra): Recognize any combination of fixed length indexables. 170 // TODO(sra): Recognize any combination of fixed length indexables.
171 if (mask.containsOnly(closedWorld.backendClasses.fixedListClass) || 171 if (mask.containsOnly(closedWorld.commonElements.jsFixedArrayClass) ||
172 mask.containsOnly(closedWorld.backendClasses.constListClass) || 172 mask.containsOnly(closedWorld.commonElements.jsUnmodifiableArrayClass) ||
173 mask.containsOnlyString(closedWorld) || 173 mask.containsOnlyString(closedWorld) ||
174 closedWorld.commonMasks.isTypedArray(mask)) { 174 closedWorld.commonMasks.isTypedArray(mask)) {
175 return true; 175 return true;
176 } 176 }
177 return false; 177 return false;
178 } 178 }
179 179
180 /** 180 /**
181 * If both inputs to known operations are available execute the operation at 181 * If both inputs to known operations are available execute the operation at
182 * compile-time. 182 * compile-time.
(...skipping 2678 matching lines...) Expand 10 before | Expand all | Expand 10 after
2861 2861
2862 keyedValues.forEach((receiver, values) { 2862 keyedValues.forEach((receiver, values) {
2863 result.keyedValues[receiver] = 2863 result.keyedValues[receiver] =
2864 new Map<HInstruction, HInstruction>.from(values); 2864 new Map<HInstruction, HInstruction>.from(values);
2865 }); 2865 });
2866 2866
2867 result.nonEscapingReceivers.addAll(nonEscapingReceivers); 2867 result.nonEscapingReceivers.addAll(nonEscapingReceivers);
2868 return result; 2868 return result;
2869 } 2869 }
2870 } 2870 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/ssa/nodes.dart ('k') | pkg/compiler/lib/src/types/flat_type_mask.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698