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

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

Issue 2814453005: Merge CommonElements and BackendHelpers! (Closed)
Patch Set: comments and re-merge, take two 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
diff --git a/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart b/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
index f5acaa9760f894fcb3264a7e5d9f677ab486220e..51ff1f353ca85b5938b0144e65fbf07a3edf2cbc 100644
--- a/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
+++ b/pkg/compiler/lib/src/ssa/invoke_dynamic_specializers.dart
@@ -2,11 +2,11 @@
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
+import '../common_elements.dart' show CommonElements;
import '../constants/constant_system.dart';
import '../constants/values.dart';
import '../elements/elements.dart' show Name;
import '../elements/entities.dart';
-import '../js_backend/backend_helpers.dart';
import '../options.dart';
import '../types/types.dart';
import '../universe/call_structure.dart';
@@ -28,7 +28,6 @@ class InvokeDynamicSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return TypeMaskFactory.inferredTypeForSelector(
instruction.selector, instruction.mask, results);
@@ -39,7 +38,7 @@ class InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
return null;
}
@@ -51,9 +50,9 @@ class InvokeDynamicSpecializer {
}
Selector renameToOptimizedSelector(
- String name, Selector selector, BackendHelpers helpers) {
+ String name, Selector selector, CommonElements commonElements) {
if (selector.name == name) return selector;
- return new Selector.call(new Name(name, helpers.interceptorsLibrary),
+ return new Selector.call(new Name(name, commonElements.interceptorsLibrary),
new CallStructure(selector.argumentCount));
}
@@ -120,7 +119,7 @@ class IndexAssignSpecializer extends InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
if (instruction.inputs[1].isMutableIndexable(closedWorld)) {
if (!instruction.inputs[2].isInteger(closedWorld) &&
@@ -143,7 +142,7 @@ class IndexSpecializer extends InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
if (!instruction.inputs[1].isIndexablePrimitive(closedWorld)) return null;
if (!instruction.inputs[2].isInteger(closedWorld) &&
@@ -171,15 +170,14 @@ class BitNotSpecializer extends InvokeDynamicSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
// All bitwise operations on primitive types either produce an
// integer or throw an error.
if (instruction.inputs[1].isPrimitiveOrNull(closedWorld)) {
return closedWorld.commonMasks.uint32Type;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
HInstruction tryConvertToBuiltin(
@@ -187,7 +185,7 @@ class BitNotSpecializer extends InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
HInstruction input = instruction.inputs[1];
if (input.isNumber(closedWorld)) {
@@ -195,7 +193,7 @@ class BitNotSpecializer extends InvokeDynamicSpecializer {
input,
instruction.selector,
computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ instruction, results, options, closedWorld));
}
return null;
}
@@ -212,12 +210,11 @@ class UnaryNegateSpecializer extends InvokeDynamicSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
TypeMask operandType = instruction.inputs[1].instructionType;
if (instruction.inputs[1].isNumberOrNull(closedWorld)) return operandType;
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
HInstruction tryConvertToBuiltin(
@@ -225,7 +222,7 @@ class UnaryNegateSpecializer extends InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
HInstruction input = instruction.inputs[1];
if (input.isNumber(closedWorld)) {
@@ -242,7 +239,6 @@ abstract class BinaryArithmeticSpecializer extends InvokeDynamicSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
@@ -257,8 +253,8 @@ abstract class BinaryArithmeticSpecializer extends InvokeDynamicSpecializer {
}
return closedWorld.commonMasks.numType;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
bool isBuiltin(HInvokeDynamic instruction, ClosedWorld closedWorld) {
@@ -271,11 +267,11 @@ abstract class BinaryArithmeticSpecializer extends InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
if (isBuiltin(instruction, closedWorld)) {
- HInstruction builtin = newBuiltinVariant(
- instruction, results, options, helpers, closedWorld);
+ HInstruction builtin =
+ newBuiltinVariant(instruction, results, options, closedWorld);
if (builtin != null) return builtin;
// Even if there is no builtin equivalent instruction, we know
// the instruction does not have any side effect, and that it
@@ -303,7 +299,6 @@ abstract class BinaryArithmeticSpecializer extends InvokeDynamicSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld);
}
@@ -314,7 +309,6 @@ class AddSpecializer extends BinaryArithmeticSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
if (inputsAreUInt31(instruction, closedWorld)) {
return closedWorld.commonMasks.uint32Type;
@@ -322,8 +316,8 @@ class AddSpecializer extends BinaryArithmeticSpecializer {
if (inputsArePositiveIntegers(instruction, closedWorld)) {
return closedWorld.commonMasks.positiveIntType;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
BinaryOperation operation(ConstantSystem constantSystem) {
@@ -334,14 +328,12 @@ class AddSpecializer extends BinaryArithmeticSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return new HAdd(
instruction.inputs[1],
instruction.inputs[2],
instruction.selector,
- computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ computeTypeFromInputTypes(instruction, results, options, closedWorld));
}
}
@@ -356,21 +348,19 @@ class DivideSpecializer extends BinaryArithmeticSpecializer {
HInstruction instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
if (left.isNumberOrNull(closedWorld)) {
return closedWorld.commonMasks.doubleType;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
HInstruction newBuiltinVariant(
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return new HDivide(instruction.inputs[1], instruction.inputs[2],
instruction.selector, closedWorld.commonMasks.doubleType);
@@ -384,13 +374,12 @@ class ModuloSpecializer extends BinaryArithmeticSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
if (inputsArePositiveIntegers(instruction, closedWorld)) {
return closedWorld.commonMasks.positiveIntType;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
BinaryOperation operation(ConstantSystem constantSystem) {
@@ -401,7 +390,6 @@ class ModuloSpecializer extends BinaryArithmeticSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
// Modulo cannot be mapped to the native operator (different semantics).
@@ -450,7 +438,7 @@ class ModuloSpecializer extends BinaryArithmeticSpecializer {
instruction.inputs[2],
instruction.selector,
computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ instruction, results, options, closedWorld));
}
// TODO(sra):
// a % N --> a & (N-1), N=2^k, where a>=0, does not have -0.0 problem.
@@ -472,13 +460,12 @@ class RemainderSpecializer extends BinaryArithmeticSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
if (inputsArePositiveIntegers(instruction, closedWorld)) {
return closedWorld.commonMasks.positiveIntType;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
BinaryOperation operation(ConstantSystem constantSystem) {
@@ -489,14 +476,12 @@ class RemainderSpecializer extends BinaryArithmeticSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return new HRemainder(
instruction.inputs[1],
instruction.inputs[2],
instruction.selector,
- computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ computeTypeFromInputTypes(instruction, results, options, closedWorld));
}
}
@@ -511,27 +496,24 @@ class MultiplySpecializer extends BinaryArithmeticSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
if (inputsArePositiveIntegers(instruction, closedWorld)) {
return closedWorld.commonMasks.positiveIntType;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
HInstruction newBuiltinVariant(
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return new HMultiply(
instruction.inputs[1],
instruction.inputs[2],
instruction.selector,
- computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ computeTypeFromInputTypes(instruction, results, options, closedWorld));
}
}
@@ -546,14 +528,12 @@ class SubtractSpecializer extends BinaryArithmeticSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return new HSubtract(
instruction.inputs[1],
instruction.inputs[2],
instruction.selector,
- computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ computeTypeFromInputTypes(instruction, results, options, closedWorld));
}
}
@@ -568,7 +548,6 @@ class TruncatingDivideSpecializer extends BinaryArithmeticSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
if (hasUint31Result(instruction, closedWorld)) {
return closedWorld.commonMasks.uint31Type;
@@ -576,8 +555,8 @@ class TruncatingDivideSpecializer extends BinaryArithmeticSpecializer {
if (inputsArePositiveIntegers(instruction, closedWorld)) {
return closedWorld.commonMasks.positiveIntType;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
bool isNotZero(HInstruction instruction) {
@@ -615,19 +594,18 @@ class TruncatingDivideSpecializer extends BinaryArithmeticSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
HInstruction right = instruction.inputs[2];
if (isBuiltin(instruction, closedWorld)) {
if (right.isPositiveInteger(closedWorld) && isNotZero(right)) {
if (hasUint31Result(instruction, closedWorld)) {
- return newBuiltinVariant(
- instruction, results, options, helpers, closedWorld);
+ return newBuiltinVariant(instruction, results, options, closedWorld);
}
// We can call _tdivFast because the rhs is a 32bit integer
// and not 0, nor -1.
instruction.selector = renameToOptimizedSelector(
- '_tdivFast', instruction.selector, helpers);
+ '_tdivFast', instruction.selector, commonElements);
}
clearAllSideEffects(instruction);
}
@@ -638,14 +616,12 @@ class TruncatingDivideSpecializer extends BinaryArithmeticSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return new HTruncatingDivide(
instruction.inputs[1],
instruction.inputs[2],
instruction.selector,
- computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ computeTypeFromInputTypes(instruction, results, options, closedWorld));
}
}
@@ -656,7 +632,6 @@ abstract class BinaryBitOpSpecializer extends BinaryArithmeticSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
// All bitwise operations on primitive types either produce an
// integer or throw an error.
@@ -664,8 +639,8 @@ abstract class BinaryBitOpSpecializer extends BinaryArithmeticSpecializer {
if (left.isPrimitiveOrNull(closedWorld)) {
return closedWorld.commonMasks.uint32Type;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
bool argumentLessThan32(HInstruction instruction) {
@@ -707,14 +682,13 @@ class ShiftLeftSpecializer extends BinaryBitOpSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (left.isNumber(closedWorld)) {
if (argumentLessThan32(right)) {
- return newBuiltinVariant(
- instruction, results, options, helpers, closedWorld);
+ return newBuiltinVariant(instruction, results, options, closedWorld);
}
// Even if there is no builtin equivalent instruction, we know
// the instruction does not have any side effect, and that it
@@ -722,7 +696,7 @@ class ShiftLeftSpecializer extends BinaryBitOpSpecializer {
clearAllSideEffects(instruction);
if (isPositive(right, closedWorld)) {
instruction.selector = renameToOptimizedSelector(
- '_shlPositive', instruction.selector, helpers);
+ '_shlPositive', instruction.selector, commonElements);
}
}
return null;
@@ -732,14 +706,12 @@ class ShiftLeftSpecializer extends BinaryBitOpSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return new HShiftLeft(
instruction.inputs[1],
instruction.inputs[2],
instruction.selector,
- computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ computeTypeFromInputTypes(instruction, results, options, closedWorld));
}
}
@@ -750,12 +722,11 @@ class ShiftRightSpecializer extends BinaryBitOpSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
if (left.isUInt32(closedWorld)) return left.instructionType;
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
HInstruction tryConvertToBuiltin(
@@ -763,14 +734,13 @@ class ShiftRightSpecializer extends BinaryBitOpSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (left.isNumber(closedWorld)) {
if (argumentLessThan32(right) && isPositive(left, closedWorld)) {
- return newBuiltinVariant(
- instruction, results, options, helpers, closedWorld);
+ return newBuiltinVariant(instruction, results, options, closedWorld);
}
// Even if there is no builtin equivalent instruction, we know
// the instruction does not have any side effect, and that it
@@ -778,13 +748,13 @@ class ShiftRightSpecializer extends BinaryBitOpSpecializer {
clearAllSideEffects(instruction);
if (isPositive(right, closedWorld) && isPositive(left, closedWorld)) {
instruction.selector = renameToOptimizedSelector(
- '_shrBothPositive', instruction.selector, helpers);
+ '_shrBothPositive', instruction.selector, commonElements);
} else if (isPositive(left, closedWorld) && right.isNumber(closedWorld)) {
instruction.selector = renameToOptimizedSelector(
- '_shrReceiverPositive', instruction.selector, helpers);
+ '_shrReceiverPositive', instruction.selector, commonElements);
} else if (isPositive(right, closedWorld)) {
instruction.selector = renameToOptimizedSelector(
- '_shrOtherPositive', instruction.selector, helpers);
+ '_shrOtherPositive', instruction.selector, commonElements);
}
}
return null;
@@ -794,14 +764,12 @@ class ShiftRightSpecializer extends BinaryBitOpSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return new HShiftRight(
instruction.inputs[1],
instruction.inputs[2],
instruction.selector,
- computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ computeTypeFromInputTypes(instruction, results, options, closedWorld));
}
BinaryOperation operation(ConstantSystem constantSystem) {
@@ -820,29 +788,26 @@ class BitOrSpecializer extends BinaryBitOpSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (left.isUInt31(closedWorld) && right.isUInt31(closedWorld)) {
return closedWorld.commonMasks.uint31Type;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
HInstruction newBuiltinVariant(
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return new HBitOr(
instruction.inputs[1],
instruction.inputs[2],
instruction.selector,
- computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ computeTypeFromInputTypes(instruction, results, options, closedWorld));
}
}
@@ -857,7 +822,6 @@ class BitAndSpecializer extends BinaryBitOpSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
@@ -865,22 +829,20 @@ class BitAndSpecializer extends BinaryBitOpSpecializer {
(left.isUInt31(closedWorld) || right.isUInt31(closedWorld))) {
return closedWorld.commonMasks.uint31Type;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
HInstruction newBuiltinVariant(
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return new HBitAnd(
instruction.inputs[1],
instruction.inputs[2],
instruction.selector,
- computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ computeTypeFromInputTypes(instruction, results, options, closedWorld));
}
}
@@ -895,29 +857,26 @@ class BitXorSpecializer extends BinaryBitOpSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
if (left.isUInt31(closedWorld) && right.isUInt31(closedWorld)) {
return closedWorld.commonMasks.uint31Type;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
HInstruction newBuiltinVariant(
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
return new HBitXor(
instruction.inputs[1],
instruction.inputs[2],
instruction.selector,
- computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld));
+ computeTypeFromInputTypes(instruction, results, options, closedWorld));
}
}
@@ -928,13 +887,12 @@ abstract class RelationalSpecializer extends InvokeDynamicSpecializer {
HInvokeDynamic instruction,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
ClosedWorld closedWorld) {
if (instruction.inputs[1].isPrimitiveOrNull(closedWorld)) {
return closedWorld.commonMasks.boolType;
}
- return super.computeTypeFromInputTypes(
- instruction, results, options, helpers, closedWorld);
+ return super
+ .computeTypeFromInputTypes(instruction, results, options, closedWorld);
}
HInstruction tryConvertToBuiltin(
@@ -942,7 +900,7 @@ abstract class RelationalSpecializer extends InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
@@ -964,7 +922,7 @@ class EqualsSpecializer extends RelationalSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
HInstruction left = instruction.inputs[1];
HInstruction right = instruction.inputs[2];
@@ -1063,7 +1021,7 @@ class CodeUnitAtSpecializer extends InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
// TODO(sra): Implement a builtin HCodeUnitAt instruction and the same index
// bounds checking optimizations as for HIndex.
@@ -1075,7 +1033,7 @@ class CodeUnitAtSpecializer extends InvokeDynamicSpecializer {
clearAllSideEffects(instruction);
if (instruction.inputs.last.isPositiveInteger(closedWorld)) {
instruction.selector = renameToOptimizedSelector(
- '_codeUnitAt', instruction.selector, helpers);
+ '_codeUnitAt', instruction.selector, commonElements);
}
}
return null;
@@ -1090,7 +1048,7 @@ class CompareToSpecializer extends InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
HInstruction receiver = instruction.getDartReceiver(closedWorld);
// `compareTo` has no side-effect (other than throwing) and can be GVN'ed
@@ -1120,7 +1078,7 @@ class IdempotentStringOperationSpecializer extends InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
HInstruction receiver = instruction.getDartReceiver(closedWorld);
if (receiver.isStringOrNull(closedWorld)) {
@@ -1148,7 +1106,7 @@ class PatternMatchSpecializer extends InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
HInstruction receiver = instruction.getDartReceiver(closedWorld);
HInstruction pattern = instruction.inputs[2];
@@ -1174,7 +1132,7 @@ class RoundSpecializer extends InvokeDynamicSpecializer {
HGraph graph,
GlobalTypeInferenceResults results,
CompilerOptions options,
- BackendHelpers helpers,
+ CommonElements commonElements,
ClosedWorld closedWorld) {
HInstruction receiver = instruction.getDartReceiver(closedWorld);
if (receiver.isNumberOrNull(closedWorld)) {
« no previous file with comments | « pkg/compiler/lib/src/ssa/interceptor_simplifier.dart ('k') | pkg/compiler/lib/src/ssa/kernel_ast_adapter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698