Implement graph trimming in ControlReducer.
authortitzer@chromium.org <titzer@chromium.org>
Fri, 17 Oct 2014 11:51:57 +0000 (11:51 +0000)
committertitzer@chromium.org <titzer@chromium.org>
Fri, 17 Oct 2014 11:51:57 +0000 (11:51 +0000)
commite4c6f9488e44bc5fa4b6d2964992ca726460d6fb
tree4341617e882c33f89a22db511416bd2030d33ca2
parent7f7354f3fdd2ddbec0e48c9dbc157ca4d728cef1
Implement graph trimming in ControlReducer.

Trimming the graph consists of breaking links from nodes that are not reachable from end to nodes that are reachable from end. Such dead nodes show up in the use lists of the live nodes and though mostly harmless, just clutter up the graph. They also can limit instruction selection opportunities, so it is good to get rid of them.

This CL is one half of the ControlReducer functionality, the other half
being branch folding.

R=bmeurer@chromium.org
BUG=

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24694 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
15 files changed:
BUILD.gn
src/compiler/control-reducer.cc [new file with mode: 0644]
src/compiler/control-reducer.h [new file with mode: 0644]
src/compiler/pipeline.cc
test/cctest/cctest.gyp
test/cctest/cctest.status
test/cctest/compiler/test-control-reducer.cc [new file with mode: 0644]
test/cctest/compiler/test-run-jsbranches.cc
test/mjsunit/asm/do-while-false.js [new file with mode: 0644]
test/mjsunit/asm/if-folding.js [new file with mode: 0644]
test/mjsunit/asm/if-reduction.js [new file with mode: 0644]
test/mjsunit/asm/infinite-loops-taken.js [new file with mode: 0644]
test/mjsunit/asm/infinite-loops.js [new file with mode: 0644]
test/mjsunit/mjsunit.status
tools/gyp/v8.gyp