Relax representation requirement in FrameStates.
authorjarin@chromium.org <jarin@chromium.org>
Wed, 8 Oct 2014 08:47:29 +0000 (08:47 +0000)
committerjarin@chromium.org <jarin@chromium.org>
Wed, 8 Oct 2014 08:47:29 +0000 (08:47 +0000)
commitbb5b39260b139ae910e9c79a6a54ba7d5f8be0e7
treec7c1b96c94c7f2815586298275637cfcab46cfe3
parent73733bb3eb8f5f1cb375c34d5b94182326312b4c
Relax representation requirement in FrameStates.

This change enables non-tagged representations in FrameStates.

That allows us to run zlib with deoptimization support and have almost the same performance of the generated code (as the code with no deoptimization). Unfortunately, the frame states seem to confuse typer. As a consequence, we generate more representation changes, which in turn causes the scheduler to take a lot more time and memory (>4x). The added compiler time makes zlib with deopt be about 50% slower.

BUG=
R=titzer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24454 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/compiler/code-generator.cc
src/compiler/code-generator.h
src/compiler/instruction-selector.cc
src/compiler/instruction-selector.h
src/compiler/instruction.cc
src/compiler/instruction.h
src/compiler/machine-type.h
src/compiler/simplified-lowering.cc
test/unittests/compiler/instruction-selector-unittest.cc
test/unittests/compiler/instruction-selector-unittest.h