| Index: src/compiler/simplified-operator.cc
|
| diff --git a/src/compiler/simplified-operator.cc b/src/compiler/simplified-operator.cc
|
| index 08361e51e5daa43b3426bbb864a772eec5fc94ac..165ea415ab439dc650cfd82f055c1da794a46871 100644
|
| --- a/src/compiler/simplified-operator.cc
|
| +++ b/src/compiler/simplified-operator.cc
|
| @@ -308,13 +308,15 @@ CompareOperationHints::Hint CompareOperationHintOf(const Operator* op) {
|
| V(SpeculativeNumberMultiply) \
|
| V(SpeculativeNumberModulus)
|
|
|
| -#define CHECKED_OP_LIST(V) \
|
| - V(CheckTaggedPointer) \
|
| - V(CheckTaggedSigned) \
|
| - V(CheckedUint32ToInt32) \
|
| - V(CheckedFloat64ToInt32) \
|
| - V(CheckedTaggedToInt32) \
|
| - V(CheckedTaggedToFloat64)
|
| +#define CHECKED_OP_LIST(V) \
|
| + V(CheckTaggedPointer, 1) \
|
| + V(CheckTaggedSigned, 1) \
|
| + V(CheckedInt32Add, 2) \
|
| + V(CheckedInt32Sub, 2) \
|
| + V(CheckedUint32ToInt32, 1) \
|
| + V(CheckedFloat64ToInt32, 1) \
|
| + V(CheckedTaggedToInt32, 1) \
|
| + V(CheckedTaggedToFloat64, 1)
|
|
|
| struct SimplifiedOperatorGlobalCache final {
|
| #define PURE(Name, properties, input_count) \
|
| @@ -327,29 +329,29 @@ struct SimplifiedOperatorGlobalCache final {
|
| PURE_OP_LIST(PURE)
|
| #undef PURE
|
|
|
| -#define CHECKED(Name) \
|
| - struct Name##Operator final : public Operator { \
|
| - Name##Operator() \
|
| - : Operator(IrOpcode::k##Name, \
|
| - Operator::kFoldable | Operator::kNoThrow, #Name, 1, 1, 1, \
|
| - 1, 1, 0) {} \
|
| - }; \
|
| +#define CHECKED(Name, value_input_count) \
|
| + struct Name##Operator final : public Operator { \
|
| + Name##Operator() \
|
| + : Operator(IrOpcode::k##Name, \
|
| + Operator::kFoldable | Operator::kNoThrow, #Name, \
|
| + value_input_count, 1, 1, 1, 1, 0) {} \
|
| + }; \
|
| Name##Operator k##Name;
|
| CHECKED_OP_LIST(CHECKED)
|
| #undef CHECKED
|
|
|
| template <CheckFloat64HoleMode kMode>
|
| - struct CheckFloat64HoleNaNOperatortor final
|
| + struct CheckFloat64HoleNaNOperator final
|
| : public Operator1<CheckFloat64HoleMode> {
|
| - CheckFloat64HoleNaNOperatortor()
|
| + CheckFloat64HoleNaNOperator()
|
| : Operator1<CheckFloat64HoleMode>(
|
| IrOpcode::kCheckFloat64Hole,
|
| - Operator::kFoldable | Operator::kNoDeopt, "CheckFloat64Hole", 1,
|
| + Operator::kFoldable | Operator::kNoThrow, "CheckFloat64Hole", 1,
|
| 1, 1, 1, 1, 0, kMode) {}
|
| };
|
| - CheckFloat64HoleNaNOperatortor<CheckFloat64HoleMode::kAllowReturnHole>
|
| + CheckFloat64HoleNaNOperator<CheckFloat64HoleMode::kAllowReturnHole>
|
| kCheckFloat64HoleAllowReturnHoleOperator;
|
| - CheckFloat64HoleNaNOperatortor<CheckFloat64HoleMode::kNeverReturnHole>
|
| + CheckFloat64HoleNaNOperator<CheckFloat64HoleMode::kNeverReturnHole>
|
| kCheckFloat64HoleNeverReturnHoleOperator;
|
|
|
| template <CheckTaggedHoleMode kMode>
|
| @@ -357,7 +359,7 @@ struct SimplifiedOperatorGlobalCache final {
|
| CheckTaggedHoleOperator()
|
| : Operator1<CheckTaggedHoleMode>(
|
| IrOpcode::kCheckTaggedHole,
|
| - Operator::kFoldable | Operator::kNoDeopt, "CheckTaggedHole", 1, 1,
|
| + Operator::kFoldable | Operator::kNoThrow, "CheckTaggedHole", 1, 1,
|
| 1, 1, 1, 0, kMode) {}
|
| };
|
| CheckTaggedHoleOperator<CheckTaggedHoleMode::kConvertHoleToUndefined>
|
| @@ -365,13 +367,6 @@ struct SimplifiedOperatorGlobalCache final {
|
| CheckTaggedHoleOperator<CheckTaggedHoleMode::kNeverReturnHole>
|
| kCheckTaggedHoleNeverReturnHoleOperator;
|
|
|
| - struct CheckIfOperator final : public Operator {
|
| - CheckIfOperator()
|
| - : Operator(IrOpcode::kCheckIf, Operator::kFoldable | Operator::kNoDeopt,
|
| - "CheckIf", 1, 1, 1, 0, 1, 0) {}
|
| - };
|
| - CheckIfOperator kCheckIf;
|
| -
|
| template <PretenureFlag kPretenure>
|
| struct AllocateOperator final : public Operator1<PretenureFlag> {
|
| AllocateOperator()
|
| @@ -419,7 +414,7 @@ SimplifiedOperatorBuilder::SimplifiedOperatorBuilder(Zone* zone)
|
| PURE_OP_LIST(GET_FROM_CACHE)
|
| #undef GET_FROM_CACHE
|
|
|
| -#define GET_FROM_CACHE(Name) \
|
| +#define GET_FROM_CACHE(Name, value_input_count) \
|
| const Operator* SimplifiedOperatorBuilder::Name() { return &cache_.k##Name; }
|
| CHECKED_OP_LIST(GET_FROM_CACHE)
|
| #undef GET_FROM_CACHE
|
| @@ -448,10 +443,6 @@ const Operator* SimplifiedOperatorBuilder::CheckTaggedHole(
|
| return nullptr;
|
| }
|
|
|
| -const Operator* SimplifiedOperatorBuilder::CheckIf() {
|
| - return &cache_.kCheckIf;
|
| -}
|
| -
|
| const Operator* SimplifiedOperatorBuilder::ReferenceEqual(Type* type) {
|
| return new (zone()) Operator(IrOpcode::kReferenceEqual,
|
| Operator::kCommutative | Operator::kPure,
|
|
|