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.