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

Unified Diff: pkg/compiler/lib/src/ssa/optimize.dart

Issue 1421003004: Add CoreClasses (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comment. Created 5 years, 2 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/ssa/nodes.dart ('k') | pkg/compiler/lib/src/ssa/ssa.dart » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/compiler/lib/src/ssa/optimize.dart
diff --git a/pkg/compiler/lib/src/ssa/optimize.dart b/pkg/compiler/lib/src/ssa/optimize.dart
index 8f7819b8398c9d699fafa83c062ff04cbc8e5e84..151b7457179b4056e51d18122e636481455070f8 100644
--- a/pkg/compiler/lib/src/ssa/optimize.dart
+++ b/pkg/compiler/lib/src/ssa/optimize.dart
@@ -145,6 +145,8 @@ class SsaInstructionSimplifier extends HBaseVisitor
this.optimizer,
this.work);
+ CoreClasses get coreClasses => compiler.coreClasses;
+
void visitGraph(HGraph visitee) {
graph = visitee;
visitDominatorTree(visitee);
@@ -675,22 +677,22 @@ class SsaInstructionSimplifier extends HBaseVisitor
return node;
} else if (type.isTypedef) {
return node;
- } else if (element == compiler.functionClass) {
+ } else if (element == coreClasses.functionClass) {
return node;
}
- if (element == compiler.objectClass || type.treatAsDynamic) {
+ if (type.isObject || type.treatAsDynamic) {
return graph.addConstantBool(true, compiler);
}
ClassWorld classWorld = compiler.world;
HInstruction expression = node.expression;
if (expression.isInteger(compiler)) {
- if (identical(element, compiler.intClass)
- || identical(element, compiler.numClass)
- || Elements.isNumberOrStringSupertype(element, compiler)) {
+ if (element == coreClasses.intClass ||
+ element == coreClasses.numClass ||
+ Elements.isNumberOrStringSupertype(element, compiler)) {
return graph.addConstantBool(true, compiler);
- } else if (identical(element, compiler.doubleClass)) {
+ } else if (element == coreClasses.doubleClass) {
// We let the JS semantics decide for that check. Currently
// the code we emit will always return true.
return node;
@@ -698,11 +700,11 @@ class SsaInstructionSimplifier extends HBaseVisitor
return graph.addConstantBool(false, compiler);
}
} else if (expression.isDouble(compiler)) {
- if (identical(element, compiler.doubleClass)
- || identical(element, compiler.numClass)
- || Elements.isNumberOrStringSupertype(element, compiler)) {
+ if (element == coreClasses.doubleClass ||
+ element == coreClasses.numClass ||
+ Elements.isNumberOrStringSupertype(element, compiler)) {
return graph.addConstantBool(true, compiler);
- } else if (identical(element, compiler.intClass)) {
+ } else if (element == coreClasses.intClass) {
// We let the JS semantics decide for that check. Currently
// the code we emit will return true for a double that can be
// represented as a 31-bit integer and for -0.0.
@@ -711,14 +713,14 @@ class SsaInstructionSimplifier extends HBaseVisitor
return graph.addConstantBool(false, compiler);
}
} else if (expression.isNumber(compiler)) {
- if (identical(element, compiler.numClass)) {
+ if (element == coreClasses.numClass) {
return graph.addConstantBool(true, compiler);
} else {
// We cannot just return false, because the expression may be of
// type int or double.
}
- } else if (expression.canBePrimitiveNumber(compiler)
- && identical(element, compiler.intClass)) {
+ } else if (expression.canBePrimitiveNumber(compiler) &&
+ element == coreClasses.intClass) {
// We let the JS semantics decide for that check.
return node;
// We need the [:hasTypeArguments:] check because we don't have
@@ -728,7 +730,7 @@ class SsaInstructionSimplifier extends HBaseVisitor
} else if (!RuntimeTypes.hasTypeArguments(type)) {
TypeMask expressionMask = expression.instructionType;
assert(TypeMask.assertIsNormalized(expressionMask, classWorld));
- TypeMask typeMask = (element == compiler.nullClass)
+ TypeMask typeMask = (element == coreClasses.nullClass)
? new TypeMask.subtype(element, classWorld)
: new TypeMask.nonNullSubtype(element, classWorld);
if (expressionMask.union(typeMask, classWorld) == typeMask) {
« no previous file with comments | « pkg/compiler/lib/src/ssa/nodes.dart ('k') | pkg/compiler/lib/src/ssa/ssa.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698