Reviewers: Michael Starzinger,

Description:
[turbofan] Parameter nodes are not idempotent.

[email protected]

Please review this at https://codereview.chromium.org/896463004/

Base URL: https://chromium.googlesource.com/v8/v8.git@master

Affected files (+12, -10 lines):
  M src/compiler/common-operator.cc


Index: src/compiler/common-operator.cc
diff --git a/src/compiler/common-operator.cc b/src/compiler/common-operator.cc index b9aadefdae80a8e18c7f177a797d540c619f30a0..e67759ebaaf8a7bce7d2869902d66114ed64af0d 100644
--- a/src/compiler/common-operator.cc
+++ b/src/compiler/common-operator.cc
@@ -204,11 +204,12 @@ struct CommonOperatorGlobalCache FINAL {
   template <int kIndex>
   struct ParameterOperator FINAL : public Operator1<int> {
     ParameterOperator()
-        : Operator1<int>(                             // --
-              IrOpcode::kParameter, Operator::kPure,  // opcode
-              "Parameter",                            // name
-              1, 0, 0, 1, 0, 0,                       // counts,
-              kIndex) {}                              // parameter
+        : Operator1<int>(                                // --
+              IrOpcode::kParameter,                      // opcode
+              Operator::kFoldable | Operator::kNoThrow,  // flags
+              "Parameter",                               // name
+              1, 0, 0, 1, 0, 0,                          // counts,
+              kIndex) {}                                 // parameter
   };
 #define CACHED_PARAMETER(index) \
   ParameterOperator<index> kParameter##index##Operator;
@@ -306,11 +307,12 @@ const Operator* CommonOperatorBuilder::Parameter(int index) {
       break;
   }
   // Uncached.
-  return new (zone()) Operator1<int>(         // --
-      IrOpcode::kParameter, Operator::kPure,  // opcode
-      "Parameter",                            // name
-      1, 0, 0, 1, 0, 0,                       // counts
-      index);                                 // parameter
+  return new (zone()) Operator1<int>(            // --
+      IrOpcode::kParameter,                      // opcode
+      Operator::kFoldable | Operator::kNoThrow,  // flags
+      "Parameter",                               // name
+      1, 0, 0, 1, 0, 0,                          // counts
+      index);                                    // parameter
 }




--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to