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

Side by Side Diff: pkg/compiler/lib/src/universe/use.dart

Issue 2724223005: Register inlining as a StaticUse (Closed)
Patch Set: Created 3 years, 9 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/universe/resolution_world_builder.dart ('k') | no next file » | 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 /// This library defines individual world impacts. 5 /// This library defines individual world impacts.
6 /// 6 ///
7 /// We call these building blocks `uses`. Each `use` is a single impact of the 7 /// We call these building blocks `uses`. Each `use` is a single impact of the
8 /// world. Some example uses are: 8 /// world. Some example uses are:
9 /// 9 ///
10 /// * an invocation of a top level function 10 /// * an invocation of a top level function
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 SUPER_TEAR_OFF, 74 SUPER_TEAR_OFF,
75 SUPER_FIELD_SET, 75 SUPER_FIELD_SET,
76 FIELD_GET, 76 FIELD_GET,
77 FIELD_SET, 77 FIELD_SET,
78 CLOSURE, 78 CLOSURE,
79 CONSTRUCTOR_INVOKE, 79 CONSTRUCTOR_INVOKE,
80 CONST_CONSTRUCTOR_INVOKE, 80 CONST_CONSTRUCTOR_INVOKE,
81 REDIRECTION, 81 REDIRECTION,
82 DIRECT_INVOKE, 82 DIRECT_INVOKE,
83 DIRECT_USE, 83 DIRECT_USE,
84 INLINING,
84 } 85 }
85 86
86 /// Statically known use of an [Element]. 87 /// Statically known use of an [Element].
87 // TODO(johnniwinther): Create backend-specific implementations with better 88 // TODO(johnniwinther): Create backend-specific implementations with better
88 // invariants. 89 // invariants.
89 class StaticUse { 90 class StaticUse {
90 final Entity element; 91 final Entity element;
91 final StaticUseKind kind; 92 final StaticUseKind kind;
92 final int hashCode; 93 final int hashCode;
93 final DartType type; 94 final DartType type;
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
331 /// backend. 332 /// backend.
332 factory StaticUse.implicitInvoke(FunctionEntity element) { 333 factory StaticUse.implicitInvoke(FunctionEntity element) {
333 return new StaticUse.internal(element, StaticUseKind.GENERAL); 334 return new StaticUse.internal(element, StaticUseKind.GENERAL);
334 } 335 }
335 336
336 /// Direct use of [element] as done with `--analyze-all` and `--analyze-main`. 337 /// Direct use of [element] as done with `--analyze-all` and `--analyze-main`.
337 factory StaticUse.directUse(Entity element) { 338 factory StaticUse.directUse(Entity element) {
338 return new StaticUse.internal(element, StaticUseKind.DIRECT_USE); 339 return new StaticUse.internal(element, StaticUseKind.DIRECT_USE);
339 } 340 }
340 341
342 /// Inlining of [element].
343 factory StaticUse.inlining(FunctionEntity element) {
344 return new StaticUse.internal(element, StaticUseKind.INLINING);
345 }
346
341 bool operator ==(other) { 347 bool operator ==(other) {
342 if (identical(this, other)) return true; 348 if (identical(this, other)) return true;
343 if (other is! StaticUse) return false; 349 if (other is! StaticUse) return false;
344 return element == other.element && kind == other.kind && type == other.type; 350 return element == other.element && kind == other.kind && type == other.type;
345 } 351 }
346 352
347 String toString() => 'StaticUse($element,$kind,$type)'; 353 String toString() => 'StaticUse($element,$kind,$type)';
348 } 354 }
349 355
350 enum TypeUseKind { 356 enum TypeUseKind {
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
410 } 416 }
411 417
412 bool operator ==(other) { 418 bool operator ==(other) {
413 if (identical(this, other)) return true; 419 if (identical(this, other)) return true;
414 if (other is! TypeUse) return false; 420 if (other is! TypeUse) return false;
415 return type == other.type && kind == other.kind; 421 return type == other.type && kind == other.kind;
416 } 422 }
417 423
418 String toString() => 'TypeUse($type,$kind)'; 424 String toString() => 'TypeUse($type,$kind)';
419 } 425 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/universe/resolution_world_builder.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698