[turbofan] Use register for instruction operands when SameAsFirst is specified.
authorjarin@chromium.org <jarin@chromium.org>
Tue, 14 Oct 2014 08:34:20 +0000 (08:34 +0000)
committerjarin@chromium.org <jarin@chromium.org>
Tue, 14 Oct 2014 08:34:20 +0000 (08:34 +0000)
commitd75f736c11986979b3a2ccae263abfb3a18f7047
treea7cb02e643f49c500664a84de58e515f4afc8775
parent2c18a51c7223d5a1c1a0febc7b44a279f3df9a17
[turbofan] Use register for instruction operands when SameAsFirst is specified.

As the register allocator cannot reuse spill slots, SameAsFirst
constraint means that we would have to do an expensive move to a
differen spill slot if we choose to spill. Forcing the operand
to a register is cheaper.

In zlib, we get >10% speed-up for ia32, >25% for x64.

BUG=
R=bmeurer@chromium.org

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

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@24580 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
src/compiler/ia32/instruction-selector-ia32.cc
src/compiler/instruction-selector-impl.h
src/compiler/x64/instruction-selector-x64.cc