Reviewers: fschneider,

Description:
Simple bugfix in reaching definitions.

We only track definitions of stack-allocated variables.  Trying to
look up other variables in the environment is a bug.

Please review this at http://codereview.chromium.org/843006

Affected files:
  M src/data-flow.cc


Index: src/data-flow.cc
diff --git a/src/data-flow.cc b/src/data-flow.cc
index 0e27a755c1aca0345c705db103e3d4fe7975a7ca..a7fb314b987e7b9a752b1a6603f97ff07352e979 100644
--- a/src/data-flow.cc
+++ b/src/data-flow.cc
@@ -1927,7 +1927,7 @@ void BlockNode::InitializeReachingDefinitions(int definition_count,
     Expression* expr = instructions_[i]->AsExpression();
     if (expr == NULL) continue;
     Variable* var = expr->AssignedVar();
-    if (var == NULL) continue;
+    if (var == NULL || !var->IsStackAllocated()) continue;

     // All definitions of this variable are killed.
     BitVector* def_set =


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to