Commit bd8c469c authored by vegorov@chromium.org's avatar vegorov@chromium.org

Check phi uses of the arguments object after redundant phies elimination.

This allows to handle code like:

var a = arguments;
while (smth) a[i];

without bailout.

R=kmillikin@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@8803 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 76ede3e0
...@@ -2311,11 +2311,11 @@ HGraph* HGraphBuilder::CreateGraph() { ...@@ -2311,11 +2311,11 @@ HGraph* HGraphBuilder::CreateGraph() {
graph()->OrderBlocks(); graph()->OrderBlocks();
graph()->AssignDominators(); graph()->AssignDominators();
graph()->PropagateDeoptimizingMark(); graph()->PropagateDeoptimizingMark();
graph()->EliminateRedundantPhis();
if (!graph()->CheckPhis()) { if (!graph()->CheckPhis()) {
Bailout("Unsupported phi use of arguments object"); Bailout("Unsupported phi use of arguments object");
return NULL; return NULL;
} }
graph()->EliminateRedundantPhis();
if (FLAG_eliminate_dead_phis) graph()->EliminateUnreachablePhis(); if (FLAG_eliminate_dead_phis) graph()->EliminateUnreachablePhis();
if (!graph()->CollectPhis()) { if (!graph()->CollectPhis()) {
Bailout("Unsupported phi use of uninitialized constant"); Bailout("Unsupported phi use of uninitialized constant");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment