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

Issue 3046006: Inline in-object property stores when in loop and not in top-level (Closed)

Created:
10 years, 5 months ago by Mads Ager (chromium)
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Inline in-object property stores on ia32 when in loop and not in top-level code. Committed: http://code.google.com/p/v8/source/detail?r=5105

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 6

Patch Set 3 : '' #

Unified diffs Side-by-side diffs Delta from patch set Stats (+266 lines, -93 lines) Patch
M src/arm/ic-arm.cc View 1 2 3 chunks +3 lines, -27 lines 0 comments Download
M src/ia32/codegen-ia32.cc View 1 2 2 chunks +96 lines, -1 line 0 comments Download
M src/ia32/ic-ia32.cc View 1 2 3 chunks +52 lines, -31 lines 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 chunk +4 lines, -2 lines 0 comments Download
M src/ia32/virtual-frame-ia32.cc View 1 chunk +1 line, -1 line 0 comments Download
M src/ic.h View 2 chunks +12 lines, -0 lines 0 comments Download
M src/ic.cc View 1 5 chunks +92 lines, -1 line 0 comments Download
M src/x64/ic-x64.cc View 1 2 3 chunks +6 lines, -30 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Mads Ager (chromium)
10 years, 5 months ago (2010-07-20 13:38:00 UTC) #1
Vyacheslav Egorov (Chromium)
LGTM http://codereview.chromium.org/3046006/diff/8001/9002 File src/ia32/codegen-ia32.cc (right): http://codereview.chromium.org/3046006/diff/8001/9002#newcode5343 src/ia32/codegen-ia32.cc:5343: __ nop(); comment why we require nop here ...
10 years, 5 months ago (2010-07-20 14:22:12 UTC) #2
Mads Ager (chromium)
10 years, 5 months ago (2010-07-21 06:55:01 UTC) #3
Thanks! Added bug report for porting to other architectures and updated TODOs.

http://codereview.chromium.org/3046006/diff/8001/9002
File src/ia32/codegen-ia32.cc (right):

http://codereview.chromium.org/3046006/diff/8001/9002#newcode5343
src/ia32/codegen-ia32.cc:5343: __ nop();
On 2010/07/20 14:22:12, Vyacheslav Egorov wrote:
> comment why we require nop here would be great. 

Done.

http://codereview.chromium.org/3046006/diff/8001/9003
File src/ia32/ic-ia32.cc (right):

http://codereview.chromium.org/3046006/diff/8001/9003#newcode1708
src/ia32/ic-ia32.cc:1708: *reinterpret_cast<int*>(offset_address) = offset;
On 2010/07/20 14:22:12, Vyacheslav Egorov wrote:
> not having - kHeapObjectTag here is pretty confusing from my point of view. 

You are right. Added.

http://codereview.chromium.org/3046006/diff/8001/9003#newcode1828
src/ia32/ic-ia32.cc:1828: const int StoreIC::kOffsetToStoreInstruction = 13;
On 2010/07/20 14:22:12, Vyacheslav Egorov wrote:
> It might be reasonable to add some ASSERTs to PatchInlinedStore to actually
> check that assembly looks as expected.

I added asserts to PatchInlinedStore that check that the offsets are as expected
(either initial value, reset value or we are resetting). That would be very
unlikely to be the case if the instruction stream is not generated for an
inlined store.

Powered by Google App Engine
This is Rietveld 408576698