Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(318)

Issue 13665: Allow non-spilled frames into VisitCompareOperation, and allow them... (Closed)

Created:
12 years ago by William Hesse
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Allow non-spilled frames into VisitCompareOperation, and allow them to be passed from there to SmiComparison and SmiComparisonDeferred. Profit from constants and registers in SmiComparison. Committed: http://code.google.com/p/v8/source/detail?r=979

Patch Set 1 #

Total comments: 22

Patch Set 2 : '' #

Patch Set 3 : '' #

Total comments: 24

Patch Set 4 : '' #

Patch Set 5 : '' #

Patch Set 6 : '' #

Patch Set 7 : '' #

Total comments: 12

Patch Set 8 : '' #

Total comments: 6

Patch Set 9 : '' #

Patch Set 10 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+92 lines, -46 lines) Patch
M src/codegen-ia32.cc View 1 2 3 4 5 6 7 8 12 chunks +31 lines, -12 lines 0 comments Download
M src/virtual-frame-ia32.h View 1 2 5 6 7 8 4 chunks +14 lines, -7 lines 0 comments Download
M src/virtual-frame-ia32.cc View 2 5 6 7 8 9 2 chunks +47 lines, -27 lines 0 comments Download

Messages

Total messages: 12 (0 generated)
William Hesse
These changes should allow comparison with a SMI constant to leave a variable in a ...
12 years ago (2008-12-09 15:24:03 UTC) #1
Kevin Millikin (Chromium)
Doesn't seem quite right. We should initially piggyback on the jump targets for the deferred ...
12 years ago (2008-12-09 19:00:50 UTC) #2
iposva
This looks very unfinished, but at least I now see how you intend to use ...
12 years ago (2008-12-10 01:04:19 UTC) #3
William Hesse
OK, some comments addressed. Other changes, to MergeTo, moved to separate change list. No new ...
12 years ago (2008-12-10 16:15:25 UTC) #4
Kevin Millikin (Chromium)
Looking better, but still some comments. It will be great to see it in place ...
12 years ago (2008-12-10 16:29:30 UTC) #5
Kevin Millikin (Chromium)
I patched this code into my workspace, and seems to generate plausible code. We will ...
12 years ago (2008-12-11 10:24:16 UTC) #6
Kevin Millikin (Chromium)
You should probably swap the comparee.Unuse() and bind of the deferred exit label (I'm pretty ...
12 years ago (2008-12-11 15:29:55 UTC) #7
iposva
http://codereview.chromium.org/13665/diff/215/216 File src/codegen-ia32.cc (right): http://codereview.chromium.org/13665/diff/215/216#newcode1233 Line 1233: // TODO Could be optimized to a jump ...
12 years ago (2008-12-11 19:10:31 UTC) #8
William Hesse
All comments adressed. New version uploaded. http://codereview.chromium.org/13665/diff/15/16 File src/codegen-ia32.cc (right): http://codereview.chromium.org/13665/diff/15/16#newcode1194 Line 1194: left_side_(left_side), right_side_(right_side) ...
12 years ago (2008-12-12 10:17:07 UTC) #9
iposva
Two more formatting comments, otherwise LGTM. http://codereview.chromium.org/13665/diff/403/28 File src/codegen-ia32.cc (right): http://codereview.chromium.org/13665/diff/403/28#newcode1220 Line 1220: // TODO ...
12 years ago (2008-12-12 18:23:03 UTC) #10
Kevin Millikin (Chromium)
LGTM too, with one small comment. http://codereview.chromium.org/13665/diff/403/29 File src/virtual-frame-ia32.cc (right): http://codereview.chromium.org/13665/diff/403/29#newcode72 Line 72: return; You ...
12 years ago (2008-12-14 12:51:42 UTC) #11
William Hesse
12 years ago (2008-12-15 13:42:31 UTC) #12
All changes made.  This and 13344 are committed as revision 979.  Sorry they
aren't separate.

http://codereview.chromium.org/13665/diff/403/28
File src/codegen-ia32.cc (right):

http://codereview.chromium.org/13665/diff/403/28#newcode1220
Line 1220: // TODO Verify that Deferred code entry and exit work properly, with
frames.
On 2008/12/12 18:23:03, iposva wrote:
> TODO -> TODO()

Done. Removed - the class checks.

http://codereview.chromium.org/13665/diff/403/29
File src/virtual-frame-ia32.cc (right):

http://codereview.chromium.org/13665/diff/403/29#newcode72
Line 72: return;
On 2008/12/14 12:51:42, Kevin Millikin wrote:
> You don't really need return from a void method here.  This whole method is
> clearer if you add a function Result::is_valid and write:
> void Result::ToRegister() {
>   ASSERT(is_valid());
>   if (is_constant()) {
>     Register reg = cgen_->allocator()->Allocate();
>     ASSERT(reg.is_valid());
>     cgen_->masm()->Set(reg, Immediate(handle()));
>     data_.reg_ = reg;
>     type_ = REGISTER;
>   }
>   ASSERT(is_register());
> }

Done.

http://codereview.chromium.org/13665/diff/403/30
File src/virtual-frame-ia32.h (right):

http://codereview.chromium.org/13665/diff/403/30#newcode81
Line 81: INVALID};
On 2008/12/12 18:23:03, iposva wrote:
> Closing brace on next line like in all other places in the code.

Done.

Powered by Google App Engine
This is Rietveld 408576698