Implement loop variable assignment analysis.
authortitzer@chromium.org <titzer@chromium.org>
Tue, 28 Oct 2014 17:29:41 +0000 (17:29 +0000)
committertitzer@chromium.org <titzer@chromium.org>
Tue, 28 Oct 2014 17:30:14 +0000 (17:30 +0000)
commit90a7f074898679c9c7ce1b350abd1de3be7d5d73
treef6fe336c54d30df8ba5c05a33c9e16cbb95aa1b7
parentf900cf2efa89825668a005e886e66ae0e687adc2
Implement loop variable assignment analysis.

This analysis computes the set of variables that are assigned in each loop. This is useful to avoid creating redundant loop phis when building an SSA graph, which just waste memory and require analysis to get rid of.

This CL implements an AST walk for the analysis and plugs the result into the TurboFan graph builder. I left this analysis under a flag for A/B testing and until sufficient unit tests can be developed.

R=danno@chromium.org, mstarzinger@chromium.org
BUG=

Review URL: https://codereview.chromium.org/656123005

Cr-Commit-Position: refs/heads/master@{#24957}
git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24957 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
12 files changed:
src/compiler/ast-graph-builder.cc
src/compiler/ast-graph-builder.h
src/compiler/ast-loop-assignment-analyzer.cc [new file with mode: 0644]
src/compiler/ast-loop-assignment-analyzer.h [new file with mode: 0644]
src/compiler/control-builders.cc
src/compiler/control-builders.h
src/compiler/graph-builder.cc
src/compiler/graph-builder.h
src/flag-definitions.h
test/cctest/cctest.gyp
test/cctest/compiler/test-loop-assignment-analysis.cc [new file with mode: 0644]
tools/gyp/v8.gyp