| Index: src/compiler/escape-analysis-reducer.cc
|
| diff --git a/src/compiler/escape-analysis-reducer.cc b/src/compiler/escape-analysis-reducer.cc
|
| index d54f1a3c12bae60f222468adf8155ec746e43cc6..313b6396dd3d6f9cf5b91c5ac87d7c55466a723c 100644
|
| --- a/src/compiler/escape-analysis-reducer.cc
|
| +++ b/src/compiler/escape-analysis-reducer.cc
|
| @@ -133,6 +133,9 @@ Reduction EscapeAnalysisReducer::ReduceStore(Node* node) {
|
|
|
| Reduction EscapeAnalysisReducer::ReduceAllocate(Node* node) {
|
| DCHECK_EQ(node->opcode(), IrOpcode::kAllocate);
|
| + if (node->id() < static_cast<NodeId>(fully_reduced_.length())) {
|
| + fully_reduced_.Add(node->id());
|
| + }
|
| if (escape_analysis()->IsVirtual(node)) {
|
| RelaxEffectsAndControls(node);
|
| counters()->turbo_escape_allocs_replaced()->Increment();
|
| @@ -147,6 +150,8 @@ Reduction EscapeAnalysisReducer::ReduceFinishRegion(Node* node) {
|
| DCHECK_EQ(node->opcode(), IrOpcode::kFinishRegion);
|
| Node* effect = NodeProperties::GetEffectInput(node, 0);
|
| if (effect->opcode() == IrOpcode::kBeginRegion) {
|
| + // We only add it now to remove empty Begin/Finish region pairs
|
| + // in the process.
|
| if (node->id() < static_cast<NodeId>(fully_reduced_.length())) {
|
| fully_reduced_.Add(node->id());
|
| }
|
| @@ -208,6 +213,9 @@ Reduction EscapeAnalysisReducer::ReduceObjectIsSmi(Node* node) {
|
|
|
| Reduction EscapeAnalysisReducer::ReduceFrameStateUses(Node* node) {
|
| DCHECK_GE(node->op()->EffectInputCount(), 1);
|
| + if (node->id() < static_cast<NodeId>(fully_reduced_.length())) {
|
| + fully_reduced_.Add(node->id());
|
| + }
|
| bool changed = false;
|
| for (int i = 0; i < node->InputCount(); ++i) {
|
| Node* input = node->InputAt(i);
|
|
|