Simple bugfix in reaching definitions.
authorkmillikin@chromium.org <kmillikin@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 12 Mar 2010 14:06:04 +0000 (14:06 +0000)
committerkmillikin@chromium.org <kmillikin@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Fri, 12 Mar 2010 14:06:04 +0000 (14:06 +0000)
We only track definitions of stack-allocated variables.  Trying to
look up other variables in the environment is a bug.

Review URL: http://codereview.chromium.org/843006

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4119 ce2b1a6d-e550-0410-aec6-3dcde31c8c00

src/data-flow.cc

index 77573b5..ac12502 100644 (file)
@@ -1931,7 +1931,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 =