Commit 1feee1c6 authored by bmeurer's avatar bmeurer Committed by Commit bot

[turbofan] Parameter nodes are not idempotent.

R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/896463004

Cr-Commit-Position: refs/heads/master@{#26403}
parent aeec653f
......@@ -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
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment