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

Issue 1846963002: Use a dictionary-mode code cache on the map rather than a dual system. (Closed)

Created:
4 years, 8 months ago by Toon Verwaest
Modified:
4 years, 8 months ago
CC:
ulan, Hannes Payer (out of office), Paweł Hajdan Jr., v8-mips-ports_googlegroups.com, v8-ppc-ports_googlegroups.com, v8-reviews_googlegroups.com, v8-x87-ports_googlegroups.com, Michael Hablich
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Use a dictionary-mode code cache on the map rather than a dual system. The previous code cache system required stubs to be marked with a StubType, causing them to be inserted either into a fixed array or into a dictionary-mode code cache. This could cause names to be in both cases, and lookup would just find the "fast" one first. Given that we clear out the caches on each GC, the memory overhead shouldn't be too bad. Additionally, the dictionary itself should just stay linear for small arrays; that's faster anyway. This CL additionally deletes some dead IC code. BUG= Committed: https://crrev.com/d2eb555ee11f54ca6b227839831ca5419cf2287e Cr-Commit-Position: refs/heads/master@{#35291}

Patch Set 1 #

Patch Set 2 : #

Total comments: 2

Patch Set 3 : #

Patch Set 4 : #

Patch Set 5 : #

Total comments: 1

Patch Set 6 : Addressed comment #

Unified diffs Side-by-side diffs Delta from patch set Stats (+279 lines, -1218 lines) Patch
M include/v8.h View 1 2 1 chunk +1 line, -1 line 0 comments Download
M src/arm/code-stubs-arm.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M src/builtins.h View 1 2 1 chunk +0 lines, -7 lines 0 comments Download
M src/builtins.cc View 1 2 1 chunk +0 lines, -20 lines 0 comments Download
M src/code-stubs.h View 1 2 11 chunks +0 lines, -13 lines 0 comments Download
M src/code-stubs.cc View 1 2 3 chunks +8 lines, -17 lines 0 comments Download
M src/disassembler.cc View 1 chunk +0 lines, -4 lines 0 comments Download
M src/factory.h View 1 2 1 chunk +0 lines, -2 lines 0 comments Download
M src/factory.cc View 1 2 1 chunk +0 lines, -9 lines 0 comments Download
M src/globals.h View 2 chunks +1 line, -2 lines 0 comments Download
M src/heap/heap.h View 1 2 1 chunk +0 lines, -1 line 0 comments Download
M src/heap/heap.cc View 1 2 3 4 5 11 chunks +33 lines, -65 lines 0 comments Download
M src/heap/incremental-marking.cc View 1 2 2 chunks +0 lines, -13 lines 0 comments Download
M src/heap/object-stats.cc View 1 chunk +3 lines, -8 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M src/ic/arm/handler-compiler-arm.cc View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M src/ic/arm/ic-arm.cc View 3 chunks +6 lines, -6 lines 0 comments Download
M src/ic/arm/stub-cache-arm.cc View 1 2 3 1 chunk +0 lines, -3 lines 0 comments Download
M src/ic/arm64/handler-compiler-arm64.cc View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M src/ic/arm64/ic-arm64.cc View 3 chunks +6 lines, -6 lines 0 comments Download
M src/ic/arm64/stub-cache-arm64.cc View 1 2 3 1 chunk +0 lines, -3 lines 0 comments Download
M src/ic/handler-compiler.h View 2 chunks +2 lines, -2 lines 0 comments Download
M src/ic/handler-compiler.cc View 1 14 chunks +18 lines, -21 lines 0 comments Download
M src/ic/ia32/handler-compiler-ia32.cc View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M src/ic/ia32/ic-ia32.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M src/ic/ia32/stub-cache-ia32.cc View 1 2 3 1 chunk +0 lines, -3 lines 0 comments Download
M src/ic/ic.h View 12 chunks +6 lines, -48 lines 0 comments Download
M src/ic/ic.cc View 20 chunks +27 lines, -91 lines 0 comments Download
M src/ic/ic-compiler.h View 2 chunks +1 line, -18 lines 0 comments Download
M src/ic/ic-compiler.cc View 7 chunks +4 lines, -104 lines 0 comments Download
M src/ic/mips/handler-compiler-mips.cc View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M src/ic/mips/ic-mips.cc View 3 chunks +6 lines, -6 lines 0 comments Download
M src/ic/mips/stub-cache-mips.cc View 1 2 3 1 chunk +0 lines, -3 lines 0 comments Download
M src/ic/mips64/handler-compiler-mips64.cc View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M src/ic/mips64/ic-mips64.cc View 3 chunks +6 lines, -6 lines 0 comments Download
M src/ic/mips64/stub-cache-mips64.cc View 1 2 3 1 chunk +0 lines, -3 lines 0 comments Download
M src/ic/ppc/handler-compiler-ppc.cc View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M src/ic/ppc/ic-ppc.cc View 3 chunks +6 lines, -6 lines 0 comments Download
M src/ic/ppc/stub-cache-ppc.cc View 1 2 3 1 chunk +0 lines, -3 lines 0 comments Download
M src/ic/s390/handler-compiler-s390.cc View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M src/ic/s390/ic-s390.cc View 3 chunks +6 lines, -6 lines 0 comments Download
M src/ic/s390/stub-cache-s390.cc View 1 2 3 1 chunk +0 lines, -3 lines 0 comments Download
M src/ic/stub-cache.cc View 3 chunks +3 lines, -5 lines 0 comments Download
M src/ic/x64/handler-compiler-x64.cc View 1 2 2 chunks +2 lines, -2 lines 0 comments Download
M src/ic/x64/ic-x64.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M src/ic/x64/stub-cache-x64.cc View 1 chunk +0 lines, -3 lines 0 comments Download
M src/ic/x87/handler-compiler-x87.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M src/ic/x87/ic-x87.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M src/ic/x87/stub-cache-x87.cc View 1 2 3 1 chunk +0 lines, -3 lines 0 comments Download
M src/log.h View 1 2 2 chunks +0 lines, -4 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M src/objects.h View 1 2 13 chunks +17 lines, -143 lines 0 comments Download
M src/objects.cc View 1 2 10 chunks +39 lines, -404 lines 0 comments Download
M src/objects-debug.cc View 1 chunk +0 lines, -15 lines 0 comments Download
M src/objects-inl.h View 1 2 10 chunks +14 lines, -40 lines 0 comments Download
M src/objects-printer.cc View 1 2 1 chunk +0 lines, -14 lines 0 comments Download
M src/ppc/code-stubs-ppc.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M src/profiler/heap-snapshot-generator.h View 1 chunk +0 lines, -1 line 0 comments Download
M src/profiler/heap-snapshot-generator.cc View 2 chunks +0 lines, -15 lines 0 comments Download
M src/s390/code-stubs-s390.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M src/types.cc View 1 chunk +0 lines, -2 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 2 chunks +4 lines, -4 lines 0 comments Download
M src/x87/code-stubs-x87.cc View 2 chunks +4 lines, -4 lines 0 comments Download

Messages

Total messages: 24 (11 generated)
Toon Verwaest
mvstanton: ptal ulan: ptal at heap/
4 years, 8 months ago (2016-03-31 13:46:41 UTC) #2
ulan
heap lgtm
4 years, 8 months ago (2016-03-31 13:54:50 UTC) #3
mvstanton
LGTM! https://codereview.chromium.org/1846963002/diff/20001/src/builtins.h File src/builtins.h (left): https://codereview.chromium.org/1846963002/diff/20001/src/builtins.h#oldcode249 src/builtins.h:249: V(KeyedStoreIC_Initialize, KEYED_STORE_IC, UNINITIALIZED, kNoExtraICState) \ Thanks for getting ...
4 years, 8 months ago (2016-04-05 13:10:43 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1846963002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1846963002/40001
4 years, 8 months ago (2016-04-06 08:02:34 UTC) #7
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux_dbg_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_dbg_ng/builds/3849) v8_win_rel_ng on tryserver.v8 (JOB_FAILED, ...
4 years, 8 months ago (2016-04-06 08:06:49 UTC) #9
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1846963002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1846963002/60001
4 years, 8 months ago (2016-04-06 08:19:04 UTC) #12
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux_dbg_ng on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_dbg_ng/builds/3854) v8_linux_dbg_ng_triggered on tryserver.v8 (JOB_FAILED, ...
4 years, 8 months ago (2016-04-06 09:13:28 UTC) #14
ulan
heap lgtm with comment https://codereview.chromium.org/1846963002/diff/80001/src/heap/heap.cc File src/heap/heap.cc (right): https://codereview.chromium.org/1846963002/diff/80001/src/heap/heap.cc#newcode2181 src/heap/heap.cc:2181: void FinalizeMap(Heap* heap, Map* map) ...
4 years, 8 months ago (2016-04-06 09:34:18 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1846963002/100001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1846963002/100001
4 years, 8 months ago (2016-04-06 09:39:16 UTC) #18
commit-bot: I haz the power
Committed patchset #6 (id:100001)
4 years, 8 months ago (2016-04-06 10:06:01 UTC) #19
commit-bot: I haz the power
Patchset 6 (id:??) landed as https://crrev.com/d2eb555ee11f54ca6b227839831ca5419cf2287e Cr-Commit-Position: refs/heads/master@{#35291}
4 years, 8 months ago (2016-04-06 10:06:44 UTC) #21
Michael Achenbach
Local bisect shows that this CL leads to chromium asan failures: https://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_asan_rel_ng/builds/142184 It blocks rolling ...
4 years, 8 months ago (2016-04-07 11:45:35 UTC) #23
Michael Achenbach
4 years, 8 months ago (2016-04-07 11:52:08 UTC) #24
Message was sent while issue was closed.
Repro instructions (I know gyp's deprecated. But it works well enough here
still):
In an updated chromium checkout:
GYP_GENERATORS=ninja GYP_DEFINES='asan=1 clang=1 component=static_library
dcheck_always_on=1 fastbuild=1  lsan=1 target_arch=x64 test_isolation_mode=noop
use_goma=1' gclient sync --revision
src/v8@d2eb555ee11f54ca6b227839831ca5419cf2287e
ninja -C out/Release -j1000 extensions_unittests
testing/xvfb.py out/Release out/Release/extensions_unittests
--brave-new-test-launcher --test-launcher-bot-mode --asan=1
--test-launcher-print-test-stdio=always --test-launcher-batch-limit=1 --lsan=1
--gtest_filter=SerialApiTest.SetControlSignals

Powered by Google App Engine
This is Rietveld 408576698