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

Issue 541047: Introduce 'top-of-stack caching' to the toplevel code generator by... (Closed)

Created:
10 years, 11 months ago by Kevin Millikin (Chromium)
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Introduce 'top-of-stack caching' to the toplevel code generator by allowing the value of the rightmost subexpressions to be evaluated into an accumulator register (eg, eax, rax, or r0) rather than onto the stack. Committed: http://code.google.com/p/v8/source/detail?r=3630

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 9

Patch Set 3 : '' #

Patch Set 4 : '' #

Total comments: 4

Patch Set 5 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1240 lines, -1166 lines) Patch
M src/arm/fast-codegen-arm.cc View 4 42 chunks +325 lines, -358 lines 0 comments Download
M src/fast-codegen.h View 1 2 3 4 5 chunks +40 lines, -21 lines 0 comments Download
M src/fast-codegen.cc View 1 2 3 7 chunks +16 lines, -59 lines 0 comments Download
M src/ia32/fast-codegen-ia32.cc View 1 2 3 4 43 chunks +372 lines, -353 lines 0 comments Download
M src/x64/fast-codegen-x64.cc View 4 47 chunks +385 lines, -375 lines 0 comments Download
A test/mjsunit/compiler/short-circuit.js View 1 chunk +102 lines, -0 lines 0 comments Download

Messages

Total messages: 6 (0 generated)
Kevin Millikin (Chromium)
This is just the ia32 version. I'll do a straightforward port to ARM and amd64 ...
10 years, 11 months ago (2010-01-13 17:15:55 UTC) #1
fschneider
LGTM so far. http://codereview.chromium.org/541047/diff/1004/1007 File src/fast-codegen.cc (right): http://codereview.chromium.org/541047/diff/1004/1007#newcode104 src/fast-codegen.cc:104: __ pop(result_register()); As already discussed the ...
10 years, 11 months ago (2010-01-14 00:04:50 UTC) #2
William Hesse
LGTM. http://codereview.chromium.org/541047/diff/1004/1006 File src/ia32/fast-codegen-ia32.cc (right): http://codereview.chromium.org/541047/diff/1004/1006#newcode1062 src/ia32/fast-codegen-ia32.cc:1062: __ RecordWrite(ecx, offset, edx, ebx); Are we using ...
10 years, 11 months ago (2010-01-14 12:25:59 UTC) #3
Lasse Reichstein
Drive-by comments (just the usual :). http://codereview.chromium.org/541047/diff/1004/1006 File src/ia32/fast-codegen-ia32.cc (right): http://codereview.chromium.org/541047/diff/1004/1006#newcode200 src/ia32/fast-codegen-ia32.cc:200: switch (context) { ...
10 years, 11 months ago (2010-01-14 12:50:49 UTC) #4
Kevin Millikin (Chromium)
Hi Florian, I've ported this to arm and x64, which required some more refactoring. Can ...
10 years, 11 months ago (2010-01-18 11:30:14 UTC) #5
fschneider
10 years, 11 months ago (2010-01-18 13:56:59 UTC) #6
LGTM.

http://codereview.chromium.org/541047/diff/3005/2002
File src/fast-codegen.h (right):

http://codereview.chromium.org/541047/diff/3005/2002#newcode232
src/fast-codegen.h:232: void DropAndApply(int count, Expression::Context
context, Register reg);
Extra space.

http://codereview.chromium.org/541047/diff/3005/2003
File src/ia32/fast-codegen-ia32.cc (right):

http://codereview.chromium.org/541047/diff/3005/2003#newcode506
src/ia32/fast-codegen-ia32.cc:506: __ j(not_zero, if_true);
&discard as well.

http://codereview.chromium.org/541047/diff/3005/2006
File src/x64/fast-codegen-x64.cc (right):

http://codereview.chromium.org/541047/diff/3005/2006#newcode512
src/x64/fast-codegen-x64.cc:512: __ j(not_zero, if_true);
branch to &discard as well here?

http://codereview.chromium.org/541047/diff/3005/2006#newcode1043
src/x64/fast-codegen-x64.cc:1043: // Reciever is now under the key and value.
Typo -> "receiver"

Powered by Google App Engine
This is Rietveld 408576698