[turbofan] Parameter nodes are not idempotent.

R=mstarzinger@chromium.org

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

Cr-Commit-Position: refs/heads/master@{#26403}
This commit is contained in:
bmeurer 2015-02-03 06:45:28 -08:00 committed by Commit bot
parent aeec653f49
commit 1feee1c6fc

View File

@ -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
}