| Index: src/compiler/common-operator.cc
|
| diff --git a/src/compiler/common-operator.cc b/src/compiler/common-operator.cc
|
| index 880908952ba4d2f367a1244be2e98196ff286fb5..eda99d4fee0d2a94adc4bbc47514705ef99d64f3 100644
|
| --- a/src/compiler/common-operator.cc
|
| +++ b/src/compiler/common-operator.cc
|
| @@ -118,11 +118,11 @@ size_t ProjectionIndexOf(const Operator* const op) {
|
| #define CACHED_OP_LIST(V) \
|
| V(Always, Operator::kPure, 0, 0, 0, 1, 0, 0) \
|
| V(Dead, Operator::kFoldable, 0, 0, 0, 0, 0, 1) \
|
| - V(End, Operator::kFoldable, 0, 0, 1, 0, 0, 0) \
|
| - V(IfTrue, Operator::kFoldable, 0, 0, 1, 0, 0, 1) \
|
| - V(IfFalse, Operator::kFoldable, 0, 0, 1, 0, 0, 1) \
|
| + V(End, Operator::kKontrol, 0, 0, 1, 0, 0, 0) \
|
| + V(IfTrue, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \
|
| + V(IfFalse, Operator::kKontrol, 0, 0, 1, 0, 0, 1) \
|
| V(Throw, Operator::kFoldable, 1, 1, 1, 0, 0, 1) \
|
| - V(Return, Operator::kNoProperties, 1, 1, 1, 0, 0, 1) \
|
| + V(Return, Operator::kNoThrow, 1, 1, 1, 0, 0, 1) \
|
| V(OsrNormalEntry, Operator::kFoldable, 0, 1, 1, 0, 1, 1) \
|
| V(OsrLoopEntry, Operator::kFoldable, 0, 1, 1, 0, 1, 1)
|
|
|
| @@ -171,11 +171,11 @@ struct CommonOperatorGlobalCache FINAL {
|
| template <BranchHint kBranchHint>
|
| struct BranchOperator FINAL : public Operator1<BranchHint> {
|
| BranchOperator()
|
| - : Operator1<BranchHint>( // --
|
| - IrOpcode::kBranch, Operator::kFoldable, // opcode
|
| - "Branch", // name
|
| - 1, 0, 1, 0, 0, 2, // counts
|
| - kBranchHint) {} // parameter
|
| + : Operator1<BranchHint>( // --
|
| + IrOpcode::kBranch, Operator::kKontrol, // opcode
|
| + "Branch", // name
|
| + 1, 0, 1, 0, 0, 2, // counts
|
| + kBranchHint) {} // parameter
|
| };
|
| BranchOperator<BranchHint::kNone> kBranchNoneOperator;
|
| BranchOperator<BranchHint::kTrue> kBranchTrueOperator;
|
| @@ -184,10 +184,10 @@ struct CommonOperatorGlobalCache FINAL {
|
| template <size_t kInputCount>
|
| struct LoopOperator FINAL : public Operator {
|
| LoopOperator()
|
| - : Operator( // --
|
| - IrOpcode::kLoop, Operator::kFoldable, // opcode
|
| - "Loop", // name
|
| - 0, 0, kInputCount, 0, 0, 1) {} // counts
|
| + : Operator( // --
|
| + IrOpcode::kLoop, Operator::kKontrol, // opcode
|
| + "Loop", // name
|
| + 0, 0, kInputCount, 0, 0, 1) {} // counts
|
| };
|
| #define CACHED_LOOP(input_count) \
|
| LoopOperator<input_count> kLoop##input_count##Operator;
|
| @@ -197,10 +197,10 @@ struct CommonOperatorGlobalCache FINAL {
|
| template <size_t kInputCount>
|
| struct MergeOperator FINAL : public Operator {
|
| MergeOperator()
|
| - : Operator( // --
|
| - IrOpcode::kMerge, Operator::kFoldable, // opcode
|
| - "Merge", // name
|
| - 0, 0, kInputCount, 0, 0, 1) {} // counts
|
| + : Operator( // --
|
| + IrOpcode::kMerge, Operator::kKontrol, // opcode
|
| + "Merge", // name
|
| + 0, 0, kInputCount, 0, 0, 1) {} // counts
|
| };
|
| #define CACHED_MERGE(input_count) \
|
| MergeOperator<input_count> kMerge##input_count##Operator;
|
| @@ -210,12 +210,11 @@ struct CommonOperatorGlobalCache FINAL {
|
| template <int kIndex>
|
| struct ParameterOperator FINAL : public Operator1<int> {
|
| ParameterOperator()
|
| - : Operator1<int>( // --
|
| - IrOpcode::kParameter, // opcode
|
| - Operator::kFoldable | Operator::kNoThrow, // flags
|
| - "Parameter", // name
|
| - 1, 0, 0, 1, 0, 0, // counts,
|
| - kIndex) {} // parameter
|
| + : Operator1<int>( // --
|
| + IrOpcode::kParameter, Operator::kPure, // opcode
|
| + "Parameter", // name
|
| + 1, 0, 0, 1, 0, 0, // counts,
|
| + kIndex) {} // parameter
|
| };
|
| #define CACHED_PARAMETER(index) \
|
| ParameterOperator<index> kParameter##index##Operator;
|
| @@ -257,20 +256,20 @@ const Operator* CommonOperatorBuilder::Branch(BranchHint hint) {
|
|
|
|
|
| const Operator* CommonOperatorBuilder::Switch(size_t control_output_count) {
|
| - DCHECK_GE(control_output_count, 2u); // Disallow trivial switches.
|
| - return new (zone()) Operator( // --
|
| - IrOpcode::kSwitch, Operator::kFoldable, // opcode
|
| - "Switch", // name
|
| - 1, 0, 1, 0, 0, control_output_count); // counts
|
| + DCHECK_GE(control_output_count, 2u); // Disallow trivial switches.
|
| + return new (zone()) Operator( // --
|
| + IrOpcode::kSwitch, Operator::kKontrol, // opcode
|
| + "Switch", // name
|
| + 1, 0, 1, 0, 0, control_output_count); // counts
|
| }
|
|
|
|
|
| const Operator* CommonOperatorBuilder::Case(size_t index) {
|
| - return new (zone()) Operator1<size_t>( // --
|
| - IrOpcode::kCase, Operator::kFoldable, // opcode
|
| - "Case", // name
|
| - 0, 0, 1, 0, 0, 1, // counts
|
| - index); // parameter
|
| + return new (zone()) Operator1<size_t>( // --
|
| + IrOpcode::kCase, Operator::kKontrol, // opcode
|
| + "Case", // name
|
| + 0, 0, 1, 0, 0, 1, // counts
|
| + index); // parameter
|
| }
|
|
|
|
|
| @@ -295,10 +294,10 @@ const Operator* CommonOperatorBuilder::Loop(int control_input_count) {
|
| break;
|
| }
|
| // Uncached.
|
| - return new (zone()) Operator( // --
|
| - IrOpcode::kLoop, Operator::kFoldable, // opcode
|
| - "Loop", // name
|
| - 0, 0, control_input_count, 0, 0, 1); // counts
|
| + return new (zone()) Operator( // --
|
| + IrOpcode::kLoop, Operator::kKontrol, // opcode
|
| + "Loop", // name
|
| + 0, 0, control_input_count, 0, 0, 1); // counts
|
| }
|
|
|
|
|
| @@ -313,10 +312,10 @@ const Operator* CommonOperatorBuilder::Merge(int control_input_count) {
|
| break;
|
| }
|
| // Uncached.
|
| - return new (zone()) Operator( // --
|
| - IrOpcode::kMerge, Operator::kFoldable, // opcode
|
| - "Merge", // name
|
| - 0, 0, control_input_count, 0, 0, 1); // counts
|
| + return new (zone()) Operator( // --
|
| + IrOpcode::kMerge, Operator::kKontrol, // opcode
|
| + "Merge", // name
|
| + 0, 0, control_input_count, 0, 0, 1); // counts
|
| }
|
|
|
|
|
| @@ -331,12 +330,11 @@ const Operator* CommonOperatorBuilder::Parameter(int index) {
|
| break;
|
| }
|
| // Uncached.
|
| - return new (zone()) Operator1<int>( // --
|
| - IrOpcode::kParameter, // opcode
|
| - Operator::kFoldable | Operator::kNoThrow, // flags
|
| - "Parameter", // name
|
| - 1, 0, 0, 1, 0, 0, // counts
|
| - index); // parameter
|
| + return new (zone()) Operator1<int>( // --
|
| + IrOpcode::kParameter, Operator::kPure, // opcode
|
| + "Parameter", // name
|
| + 1, 0, 0, 1, 0, 0, // counts
|
| + index); // parameter
|
| }
|
|
|
|
|
|
|