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

Issue 5763004: Second attempt: Improve our type feedback by recogizining never-executed IC c... (Closed)

Created:
10 years ago by fschneider
Modified:
9 years, 6 months ago
CC:
v8-dev
Visibility:
Public.

Description

Second attempt: Improve our type feedback by recogizining never-executed IC calls for binary operations. This is an improved version of my earlier change r5970. It avoids degrading the non-optimized code. Initially we emit a conditional branch that is either always- or never-taken after a smi-check (depending on whether we test for smi for for non-smi) Since test-eax always sets the carry-flag to 0 we use jump-if-carry and jump-if-not-carry. The first invocation of the stub patches a jc with a jz and jnc with a jnz-instruction so that the code looks exactly as it was without patching. The only difference is the test- or nop-instruction after the IC-call. Committed: http://code.google.com/p/v8/source/detail?r=6030

Patch Set 1 #

Patch Set 2 : '' #

Total comments: 1
Unified diffs Side-by-side diffs Delta from patch set Stats (+226 lines, -57 lines) Patch
M src/arm/ic-arm.cc View 2 chunks +7 lines, -3 lines 0 comments Download
M src/full-codegen.h View 2 chunks +7 lines, -0 lines 0 comments Download
M src/ia32/assembler-ia32.h View 1 chunk +9 lines, -0 lines 0 comments Download
M src/ia32/code-stubs-ia32.h View 2 chunks +3 lines, -3 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 17 chunks +106 lines, -35 lines 0 comments Download
M src/ia32/ic-ia32.cc View 2 chunks +51 lines, -3 lines 1 comment Download
M src/ia32/lithium-codegen-ia32.cc View 1 chunk +7 lines, -0 lines 0 comments Download
M src/ic.h View 2 chunks +4 lines, -1 line 0 comments Download
M src/ic.cc View 3 chunks +16 lines, -7 lines 0 comments Download
M src/type-info.cc View 3 chunks +9 lines, -0 lines 0 comments Download
M src/x64/ic-x64.cc View 2 chunks +5 lines, -3 lines 0 comments Download

Messages

Total messages: 4 (0 generated)
fschneider
10 years ago (2010-12-14 16:54:42 UTC) #1
Vitaly Repeshko
I really like the approach! How about hiding a bit more of the implementation details? ...
10 years ago (2010-12-14 18:28:49 UTC) #2
fschneider
New version uploaded. Now I added two helpers JumpIfSmi and JumpIfNotSmi.
10 years ago (2010-12-15 11:39:26 UTC) #3
Vitaly Repeshko
10 years ago (2010-12-15 12:18:50 UTC) #4
LGTM

http://codereview.chromium.org/5763004/diff/16001/src/ia32/ic-ia32.cc
File src/ia32/ic-ia32.cc (right):

http://codereview.chromium.org/5763004/diff/16001/src/ia32/ic-ia32.cc#newcode...
src/ia32/ic-ia32.cc:2120: Condition cc = *jmp_address == 
Assembler::kJncShortOpcode
Nit: "(*jmp_address ==  Assembler::kJncShortOpcode)".

Powered by Google App Engine
This is Rietveld 408576698