Improve and simplify removal of unreachable code
authordanno@chromium.org <danno@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 2 Oct 2013 11:43:41 +0000 (11:43 +0000)
committerdanno@chromium.org <danno@chromium.org@ce2b1a6d-e550-0410-aec6-3dcde31c8c00>
Wed, 2 Oct 2013 11:43:41 +0000 (11:43 +0000)
commit908a7dc2a8755bf90ae2ec998f77e688b09818f9
treea064994ba9d6cb1a06af308e61405162d7c99f54
parent60c92b9b9a8f12067d944e332625b923a5c01230
Improve and simplify removal of unreachable code

- Detect unreachable basic blocks of code either following an unconditional deopt or after a provably untaken branch of HBranch or HCompareObjectEqAndBranch instructions.
- Emit dummy uses in unreachable blocks during Hydrogen -> Lithium translation.

BUG=chromium:258519
R=jkummerow@chromium.org, mstarzinger@chromium.org

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17073 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
26 files changed:
src/arm/lithium-arm.cc
src/arm/lithium-arm.h
src/arm/lithium-codegen-arm.cc
src/arm/lithium-codegen-arm.h
src/flag-definitions.h
src/hydrogen-deoptimizing-mark.cc [deleted file]
src/hydrogen-deoptimizing-mark.h [deleted file]
src/hydrogen-gvn.cc
src/hydrogen-instructions.cc
src/hydrogen-instructions.h
src/hydrogen-mark-unreachable.cc [new file with mode: 0644]
src/hydrogen-mark-unreachable.h [new file with mode: 0644]
src/hydrogen.cc
src/hydrogen.h
src/ia32/lithium-codegen-ia32.cc
src/ia32/lithium-codegen-ia32.h
src/ia32/lithium-ia32.cc
src/ia32/lithium-ia32.h
src/lithium-codegen.cc [new file with mode: 0644]
src/lithium-codegen.h [new file with mode: 0644]
src/lithium.cc
src/x64/lithium-codegen-x64.cc
src/x64/lithium-codegen-x64.h
src/x64/lithium-x64.cc
src/x64/lithium-x64.h
tools/gyp/v8.gyp