| Index: src/compiler/escape-analysis.cc
|
| diff --git a/src/compiler/escape-analysis.cc b/src/compiler/escape-analysis.cc
|
| index 237b9d740098e509e21c19cbefd2acbd5f173c66..867afd62017003684eeedb7638fccf9b7518647a 100644
|
| --- a/src/compiler/escape-analysis.cc
|
| +++ b/src/compiler/escape-analysis.cc
|
| @@ -694,6 +694,15 @@ void EscapeStatusAnalysis::Process(Node* node) {
|
| RevisitInputs(rep);
|
| RevisitUses(rep);
|
| }
|
| + } else {
|
| + Node* from = NodeProperties::GetValueInput(node, 0);
|
| + from = object_analysis_->ResolveReplacement(from);
|
| + if (SetEscaped(from)) {
|
| + TRACE("Setting #%d (%s) to escaped because of unresolved load #%i\n",
|
| + from->id(), from->op()->mnemonic(), node->id());
|
| + RevisitInputs(from);
|
| + RevisitUses(from);
|
| + }
|
| }
|
| RevisitUses(node);
|
| break;
|
| @@ -898,7 +907,7 @@ EscapeAnalysis::EscapeAnalysis(Graph* graph, CommonOperatorBuilder* common,
|
|
|
| EscapeAnalysis::~EscapeAnalysis() {}
|
|
|
| -void EscapeAnalysis::Run() {
|
| +bool EscapeAnalysis::Run() {
|
| replacements_.resize(graph()->NodeCount());
|
| status_analysis_->AssignAliases();
|
| if (status_analysis_->AliasCount() > 0) {
|
| @@ -907,6 +916,9 @@ void EscapeAnalysis::Run() {
|
| status_analysis_->ResizeStatusVector();
|
| RunObjectAnalysis();
|
| status_analysis_->RunStatusAnalysis();
|
| + return true;
|
| + } else {
|
| + return false;
|
| }
|
| }
|
|
|
|
|