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

Issue 3402014: Generate inline code for contextual loads. (Closed)

Created:
10 years, 3 months ago by Vitaly Repeshko
Modified:
9 years, 7 months ago
CC:
v8-dev
Visibility:
Public.

Description

Generate inline code for contextual loads. Contextual load requires only a map check followed by a cell hole check so we can generate pretty compact code for that. The fact that we have inlined code is marked by mov ecx, offset instruction after the IC call. Inlining is only enabled inside loops and in non-builtin functions. The generated code size increase is about 3%. This descreased the pc-to-code cache hit rate in some of the benchmarks that trigger GC. To compensate we now have 4 times as much entries in the cache. Committed: http://code.google.com/p/v8/source/detail?r=5497

Patch Set 1 #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+166 lines, -56 lines) Patch
M src/arm/ic-arm.cc View 1 chunk +8 lines, -0 lines 0 comments Download
M src/arm/stub-cache-arm.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M src/frames.h View 1 chunk +1 line, -1 line 0 comments Download
M src/ia32/codegen-ia32.cc View 7 chunks +68 lines, -27 lines 1 comment Download
M src/ia32/ic-ia32.cc View 1 chunk +32 lines, -0 lines 0 comments Download
M src/ia32/stub-cache-ia32.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M src/ic.h View 1 chunk +4 lines, -0 lines 0 comments Download
M src/ic.cc View 4 chunks +37 lines, -22 lines 0 comments Download
M src/v8-counters.h View 1 chunk +2 lines, -0 lines 0 comments Download
M src/x64/ic-x64.cc View 1 chunk +8 lines, -0 lines 0 comments Download
M src/x64/stub-cache-x64.cc View 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 3 (0 generated)
Vitaly Repeshko
10 years, 3 months ago (2010-09-17 21:24:24 UTC) #1
Søren Thygesen Gjesse
LGTM http://codereview.chromium.org/3402014/diff/1/5 File src/ia32/codegen-ia32.cc (right): http://codereview.chromium.org/3402014/diff/1/5#newcode9431 src/ia32/codegen-ia32.cc:9431: masm()->mov(result.reg(), Factory::null_value()); How about having a --debug-code guarded ...
10 years, 3 months ago (2010-09-20 06:50:08 UTC) #2
Vitaly Repeshko
10 years, 3 months ago (2010-09-20 13:51:27 UTC) #3
On 2010/09/20 06:50:08, Søren Gjesse wrote:
> LGTM

Thanks!
 
> http://codereview.chromium.org/3402014/diff/1/5
> File src/ia32/codegen-ia32.cc (right):
> 
> http://codereview.chromium.org/3402014/diff/1/5#newcode9431
> src/ia32/codegen-ia32.cc:9431: masm()->mov(result.reg(),
Factory::null_value());
> How about having a --debug-code guarded assert here that result.reg() is never
> null when this code is actually run.

Good idea. I added a check that this is actually a global cell.


-- Vitaly

Powered by Google App Engine
This is Rietveld 408576698