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

Issue 1965343002: [Interpreter] Support compiling for baseline on return from interpreted function. (Closed)

Created:
4 years, 7 months ago by rmcilroy
Modified:
4 years, 7 months ago
CC:
v8-reviews_googlegroups.com, v8-mips-ports_googlegroups.com, v8-ppc-ports_googlegroups.com
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

[Interpreter] Support compiling for baseline on return from interpreted function. We cannot tier up from interpreted to baseline code when there is an activation of the function on the stack. This significantly regresses the performance of recursive functions since they are unlikely to get tiered up. This CL adds the ability for a function to be marked for baseline compilation when it returns. To do this we patch the InterpreterEntryTrampoline return address to point to InterpreterMarkBaselineOnReturn, which leaves the interpreted frame and recompile the function for baseline. This improves the score of EarlyBoyer by ~8x for Ignition. BUG=v8:4280 LOG=N Committed: https://crrev.com/f241a61a3409cef1f8d631d5c3ee992e182f294e Cr-Commit-Position: refs/heads/master@{#36360}

Patch Set 1 #

Total comments: 6

Patch Set 2 : Update based on interpreter actually returning to marker. #

Total comments: 4

Patch Set 3 : Add ports and cctest #

Patch Set 4 : Fix test for always-opt #

Patch Set 5 : Fix interpreted frame walking #

Patch Set 6 : Fix test for nosnap build #

Unified diffs Side-by-side diffs Delta from patch set Stats (+374 lines, -108 lines) Patch
M src/arm/builtins-arm.cc View 1 2 3 4 3 chunks +42 lines, -9 lines 0 comments Download
M src/arm64/builtins-arm64.cc View 1 2 3 4 3 chunks +42 lines, -10 lines 0 comments Download
M src/builtins.h View 1 2 3 4 2 chunks +2 lines, -0 lines 0 comments Download
M src/compiler.cc View 1 2 3 4 4 chunks +52 lines, -15 lines 0 comments Download
M src/frames.cc View 1 2 3 4 2 chunks +8 lines, -5 lines 0 comments Download
M src/ia32/builtins-ia32.cc View 1 2 3 4 3 chunks +46 lines, -12 lines 0 comments Download
M src/mips/builtins-mips.cc View 1 2 3 4 3 chunks +42 lines, -10 lines 0 comments Download
M src/mips64/builtins-mips64.cc View 1 2 3 4 3 chunks +41 lines, -10 lines 0 comments Download
M src/objects.h View 1 2 3 4 1 chunk +1 line, -3 lines 0 comments Download
M src/objects.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M src/objects-inl.h View 1 2 3 4 3 chunks +6 lines, -20 lines 0 comments Download
M src/snapshot/startup-serializer.cc View 1 2 3 4 1 chunk +2 lines, -1 line 0 comments Download
M src/x64/builtins-x64.cc View 1 2 3 4 3 chunks +46 lines, -12 lines 0 comments Download
M test/cctest/test-compiler.cc View 1 2 3 4 5 2 chunks +43 lines, -0 lines 0 comments Download

Depends on Patchset:

Messages

Total messages: 32 (15 generated)
rmcilroy
Michi, this is what we discussed yesterday with Arm and x64 ports. I'll add the ...
4 years, 7 months ago (2016-05-11 11:45:22 UTC) #2
Yang
On 2016/05/11 11:45:22, rmcilroy wrote: > Michi, this is what we discussed yesterday with Arm ...
4 years, 7 months ago (2016-05-11 11:52:42 UTC) #3
Michael Starzinger
Yep, approach is fine with me. https://codereview.chromium.org/1965343002/diff/1/src/compiler.cc File src/compiler.cc (right): https://codereview.chromium.org/1965343002/diff/1/src/compiler.cc#newcode895 src/compiler.cc:895: os << "[marking ...
4 years, 7 months ago (2016-05-11 13:04:27 UTC) #4
rmcilroy
Updated based on https://codereview.chromium.org/1969423002. I'm much happier with this approach - PTAL. https://codereview.chromium.org/1965343002/diff/1/src/compiler.cc File src/compiler.cc ...
4 years, 7 months ago (2016-05-12 13:11:47 UTC) #6
Michael Starzinger
LGTM with comments. Yes, I agree, new approach is definitely cleaner. I like it. https://codereview.chromium.org/1965343002/diff/1/src/compiler.cc ...
4 years, 7 months ago (2016-05-13 09:01:40 UTC) #8
rmcilroy
Done ports and added a cctest too. https://codereview.chromium.org/1965343002/diff/1/src/compiler.cc File src/compiler.cc (right): https://codereview.chromium.org/1965343002/diff/1/src/compiler.cc#newcode895 src/compiler.cc:895: os << ...
4 years, 7 months ago (2016-05-17 11:28:31 UTC) #9
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1965343002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1965343002/60001
4 years, 7 months ago (2016-05-17 11:28:39 UTC) #11
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux64_avx2_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel_ng/builds/1696) v8_linux64_avx2_rel_ng_triggered on ...
4 years, 7 months ago (2016-05-17 11:48:25 UTC) #13
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1965343002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1965343002/80001
4 years, 7 months ago (2016-05-18 11:33:26 UTC) #15
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_win_nosnap_shared_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_nosnap_shared_rel_ng/builds/1836) v8_win_nosnap_shared_rel_ng_triggered on ...
4 years, 7 months ago (2016-05-18 12:15:34 UTC) #17
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1965343002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1965343002/100001
4 years, 7 months ago (2016-05-18 22:32:39 UTC) #19
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_win_nosnap_shared_rel_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_win_nosnap_shared_rel_ng/builds/1894) v8_win_nosnap_shared_rel_ng_triggered on ...
4 years, 7 months ago (2016-05-18 23:23:58 UTC) #21
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1965343002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1965343002/120001
4 years, 7 months ago (2016-05-19 11:46:14 UTC) #23
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
4 years, 7 months ago (2016-05-19 12:18:52 UTC) #25
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1965343002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1965343002/120001
4 years, 7 months ago (2016-05-19 12:25:19 UTC) #28
commit-bot: I haz the power
Committed patchset #6 (id:120001)
4 years, 7 months ago (2016-05-19 12:27:24 UTC) #30
commit-bot: I haz the power
4 years, 7 months ago (2016-05-19 12:29:01 UTC) #32
Message was sent while issue was closed.
Patchset 6 (id:??) landed as
https://crrev.com/f241a61a3409cef1f8d631d5c3ee992e182f294e
Cr-Commit-Position: refs/heads/master@{#36360}

Powered by Google App Engine
This is Rietveld 408576698