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

Issue 172523002: Create a function call IC (Closed)

Created:
6 years, 10 months ago by mvstanton
Modified:
6 years, 8 months ago
Reviewers:
Toon Verwaest
CC:
v8-dev
Visibility:
Public.

Description

Function calls are handled with a LoadIC and a FunctionCallStub. This works well, but we can create a platform to gather custom feedback by inventing a CallIC. CallIC takes a JSFunction as input, maintains UNINIT/MONO/MEGA state in a feedback slot, and engages in limited patching for the most efficient code. The change creates a degrade in NBody tests, but a follow-on CL addresses it by using this custom feedback platform to give a 45% improvement. R=verwaest@chromium.org Committed: https://code.google.com/p/v8/source/detail?r=20474

Patch Set 1 #

Patch Set 2 : Calling to int3() #

Patch Set 3 : Can run, no monomorphic optimization. #

Patch Set 4 : Basically working #

Patch Set 5 : REBASE on symbols cl #

Patch Set 6 : Symbols used. #

Patch Set 7 : Updates. #

Patch Set 8 : Rebase #

Total comments: 39

Patch Set 9 : REBASE. #

Patch Set 10 : Comments addressed. #

Total comments: 13

Patch Set 11 : Addressed comments. #

Total comments: 10

Patch Set 12 : Addressed comments. #

Patch Set 13 : Ports. #

Patch Set 14 : REBASE. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1127 lines, -552 lines) Patch
M src/arm/builtins-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +134 lines, -38 lines 0 comments Download
M src/arm/debug-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 3 chunks +11 lines, -20 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 9 chunks +26 lines, -61 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M src/arm64/builtins-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +149 lines, -44 lines 0 comments Download
M src/arm64/debug-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +11 lines, -20 lines 0 comments Download
M src/arm64/full-codegen-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 9 chunks +25 lines, -62 lines 0 comments Download
M src/arm64/lithium-codegen-arm64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M src/ast.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -4 lines 0 comments Download
M src/builtins.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +2 lines, -2 lines 0 comments Download
M src/builtins.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +5 lines, -6 lines 0 comments Download
M src/code-stubs.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 7 chunks +57 lines, -15 lines 0 comments Download
M src/code-stubs.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +5 lines, -1 line 0 comments Download
M src/debug.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +1 line, -4 lines 0 comments Download
M src/debug.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 7 chunks +18 lines, -11 lines 0 comments Download
M src/full-codegen.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +7 lines, -7 lines 0 comments Download
M src/ia32/builtins-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 5 chunks +137 lines, -36 lines 0 comments Download
M src/ia32/debug-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +12 lines, -21 lines 0 comments Download
M src/ia32/full-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 10 chunks +26 lines, -63 lines 0 comments Download
M src/ia32/lithium-codegen-ia32.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M src/ic.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +127 lines, -0 lines 0 comments Download
M src/ic.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 7 chunks +159 lines, -3 lines 0 comments Download
M src/log.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +1 line, -0 lines 0 comments Download
M src/log.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +4 lines, -0 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +2 lines, -0 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +3 lines, -0 lines 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +3 lines, -1 line 0 comments Download
M src/objects-visiting-inl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +7 lines, -0 lines 0 comments Download
M src/v8globals.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 2 chunks +7 lines, -2 lines 0 comments Download
M src/x64/builtins-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 6 chunks +138 lines, -39 lines 0 comments Download
M src/x64/debug-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 3 chunks +12 lines, -21 lines 0 comments Download
M src/x64/full-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 9 chunks +27 lines, -63 lines 0 comments Download
M src/x64/lithium-codegen-x64.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 8 (0 generated)
mvstanton
Hi Toon, Here is the "new style" CallIC, which uses at most two precompiled stubs ...
6 years, 9 months ago (2014-03-04 14:21:08 UTC) #1
Toon Verwaest
Added comments. I like the overall approach. It's pretty simple. In addition to the comments, ...
6 years, 9 months ago (2014-03-10 13:50:43 UTC) #2
mvstanton
Hi Toon, Thanks for the comments, and sorry for the delay in addressing! PTAL, thanks, ...
6 years, 9 months ago (2014-03-20 15:51:53 UTC) #3
Toon Verwaest
Some more comments. Getting there. I especially like the fullcodegen cleanup. https://codereview.chromium.org/172523002/diff/280001/src/ia32/code-stubs-ia32.cc File src/ia32/code-stubs-ia32.cc (right): ...
6 years, 9 months ago (2014-03-24 10:25:44 UTC) #4
mvstanton
Thanks Toon, here are the refactorings we discussed, --Michael https://codereview.chromium.org/172523002/diff/280001/src/ia32/code-stubs-ia32.cc File src/ia32/code-stubs-ia32.cc (right): https://codereview.chromium.org/172523002/diff/280001/src/ia32/code-stubs-ia32.cc#newcode2456 src/ia32/code-stubs-ia32.cc:2456: ...
6 years, 9 months ago (2014-03-25 15:34:50 UTC) #5
Toon Verwaest
LGTM, go ahead with the ports. Just some minor nits. https://codereview.chromium.org/172523002/diff/300001/src/code-stubs.h File src/code-stubs.h (right): https://codereview.chromium.org/172523002/diff/300001/src/code-stubs.h#newcode842 ...
6 years, 8 months ago (2014-03-27 16:02:25 UTC) #6
mvstanton
Thanks Toon, nits and ports addressed. I did find a bug: with incremental marking, we ...
6 years, 8 months ago (2014-04-01 13:01:48 UTC) #7
mvstanton
6 years, 8 months ago (2014-04-03 11:41:28 UTC) #8
Message was sent while issue was closed.
Committed patchset #14 manually as r20474 (presubmit successful).

Powered by Google App Engine
This is Rietveld 408576698