Index: src/compiler/escape-analysis.cc |
diff --git a/src/compiler/escape-analysis.cc b/src/compiler/escape-analysis.cc |
index 95c06797603ead1144f785e2f87d592fee3dc08a..fd85aad63e31babe738c9ecdc8d011e8be4061d6 100644 |
--- a/src/compiler/escape-analysis.cc |
+++ b/src/compiler/escape-analysis.cc |
@@ -1083,6 +1083,9 @@ bool EscapeAnalysis::Process(Node* node) { |
ProcessAllocationUsers(node); |
break; |
} |
+ if (OperatorProperties::HasFrameStateInput(node->op())) { |
+ virtual_states_[node->id()]->SetCopyRequired(); |
+ } |
return true; |
} |
@@ -1176,8 +1179,7 @@ void EscapeAnalysis::ForwardVirtualState(Node* node) { |
static_cast<void*>(virtual_states_[effect->id()]), |
effect->op()->mnemonic(), effect->id(), node->op()->mnemonic(), |
node->id()); |
- if (status_analysis_->IsEffectBranchPoint(effect) || |
- OperatorProperties::HasFrameStateInput(node->op())) { |
+ if (status_analysis_->IsEffectBranchPoint(effect)) { |
virtual_states_[node->id()]->SetCopyRequired(); |
TRACE(", effect input %s#%d is branch point", effect->op()->mnemonic(), |
effect->id()); |