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

Issue 1131783003: Embedded constant pools. (Closed)

Created:
5 years, 7 months ago by MTBrandyberry
Modified:
5 years, 6 months ago
CC:
v8-dev, Yang, Paweł Hajdan Jr., Benedikt Meurer, danno, dstence, michael_dawson, Sven Panne
Base URL:
https://chromium.googlesource.com/v8/v8.git@master
Target Ref:
refs/pending/heads/master
Project:
v8
Visibility:
Public.

Description

Add support for Embedded Constant Pools for PPC and Arm Embed constant pools within their corresponding Code objects. This removes support for out-of-line constant pools in favor of the new approach -- the main advantage being that it eliminates the need to allocate and manage separate constant pool array objects. Currently supported on PPC and ARM. Enabled by default on PPC only. This yields a 6% improvment in Octane on PPC64. R=danno@chromium.org, svenpanne@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com BUG=chromium:478811 LOG=Y Committed: https://crrev.com/a9404029343d65f146e3443f5280c40a97e736af Cr-Commit-Position: refs/heads/master@{#28770}

Patch Set 1 #

Total comments: 90

Patch Set 2 : Address first round of comments #

Patch Set 3 : Address remaining comments. #

Total comments: 19

Patch Set 4 : New test, address nits #

Total comments: 2

Patch Set 5 : Rebase #

Patch Set 6 : Fix copyright date #

Patch Set 7 : Add AbortConstantPoolBuilding for PPC #

Patch Set 8 : Rebase #

Patch Set 9 : Remove ool constant pool logic added via rebase. #

Patch Set 10 : Fix compiler warnings / Mac does not like vector::cbegin() #

Patch Set 11 : Fix other instance of cbegin #

Patch Set 12 : Fix debug-mode Arm issue. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1822 lines, -2494 lines) Patch
M include/v8.h View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M src/arm/assembler-arm.h View 1 12 chunks +44 lines, -92 lines 0 comments Download
M src/arm/assembler-arm.cc View 1 2 3 4 5 6 7 8 9 10 11 25 chunks +193 lines, -357 lines 0 comments Download
M src/arm/assembler-arm-inl.h View 6 chunks +10 lines, -12 lines 0 comments Download
M src/arm/builtins-arm.cc View 1 2 3 4 5 6 7 4 chunks +6 lines, -6 lines 0 comments Download
M src/arm/code-stubs-arm.cc View 1 2 3 4 5 6 7 3 chunks +6 lines, -6 lines 0 comments Download
M src/arm/constants-arm.h View 1 1 chunk +5 lines, -0 lines 0 comments Download
M src/arm/debug-arm.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/arm/deoptimizer-arm.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/arm/frames-arm.h View 1 chunk +4 lines, -4 lines 0 comments Download
M src/arm/frames-arm.cc View 1 2 3 4 5 6 7 2 chunks +2 lines, -9 lines 0 comments Download
M src/arm/full-codegen-arm.cc View 1 2 3 4 5 6 7 4 chunks +5 lines, -6 lines 0 comments Download
M src/arm/lithium-codegen-arm.cc View 1 2 3 4 5 6 7 2 chunks +1 line, -5 lines 0 comments Download
M src/arm/macro-assembler-arm.h View 1 3 chunks +6 lines, -4 lines 0 comments Download
M src/arm/macro-assembler-arm.cc View 1 2 3 4 11 chunks +31 lines, -28 lines 0 comments Download
M src/arm64/assembler-arm64.h View 1 2 3 4 3 chunks +12 lines, -12 lines 0 comments Download
M src/arm64/assembler-arm64.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -14 lines 0 comments Download
M src/arm64/assembler-arm64-inl.h View 1 2 3 4 3 chunks +4 lines, -6 lines 0 comments Download
M src/arm64/deoptimizer-arm64.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/arm64/frames-arm64.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -6 lines 0 comments Download
M src/assembler.h View 1 2 3 4 7 chunks +130 lines, -27 lines 0 comments Download
M src/assembler.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +203 lines, -1 line 0 comments Download
M src/compiler/arm/code-generator-arm.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M src/compiler/ppc/code-generator-ppc.cc View 1 2 3 4 2 chunks +13 lines, -2 lines 0 comments Download
M src/debug.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/deoptimizer.cc View 1 2 3 4 5 6 7 11 chunks +11 lines, -11 lines 0 comments Download
M src/factory.h View 1 2 3 4 5 6 7 2 chunks +0 lines, -10 lines 0 comments Download
M src/factory.cc View 1 2 3 4 5 6 7 5 chunks +3 lines, -35 lines 0 comments Download
M src/flag-definitions.h View 1 2 3 4 5 6 7 1 chunk +2 lines, -2 lines 0 comments Download
M src/frames.h View 1 2 3 4 4 chunks +19 lines, -21 lines 0 comments Download
M src/frames.cc View 1 2 3 4 5 6 7 11 chunks +17 lines, -18 lines 0 comments Download
M src/globals.h View 1 2 3 4 5 6 7 3 chunks +16 lines, -8 lines 0 comments Download
M src/heap-snapshot-generator.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -3 lines 0 comments Download
M src/heap/heap.h View 1 2 3 4 7 chunks +0 lines, -24 lines 0 comments Download
M src/heap/heap.cc View 1 2 3 4 5 6 7 11 chunks +2 lines, -137 lines 0 comments Download
M src/heap/heap-inl.h View 1 2 3 4 1 chunk +0 lines, -6 lines 0 comments Download
M src/heap/mark-compact.h View 1 2 3 4 2 chunks +3 lines, -0 lines 0 comments Download
M src/heap/mark-compact.cc View 1 2 3 4 5 6 7 8 4 chunks +16 lines, -34 lines 0 comments Download
M src/heap/objects-visiting.h View 2 chunks +0 lines, -2 lines 0 comments Download
M src/heap/objects-visiting.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -3 lines 0 comments Download
M src/heap/objects-visiting-inl.h View 1 2 3 4 4 chunks +0 lines, -33 lines 0 comments Download
M src/heap/spaces.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -2 lines 0 comments Download
M src/ia32/assembler-ia32.h View 1 5 chunks +15 lines, -14 lines 0 comments Download
M src/ia32/assembler-ia32.cc View 1 2 3 4 5 6 7 2 chunks +6 lines, -14 lines 0 comments Download
M src/ia32/assembler-ia32-inl.h View 2 chunks +8 lines, -4 lines 0 comments Download
M src/ia32/deoptimizer-ia32.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/ia32/frames-ia32.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -6 lines 0 comments Download
M src/ic/ic.h View 1 2 3 4 10 chunks +16 lines, -18 lines 0 comments Download
M src/ic/ic.cc View 1 2 3 4 5 6 7 8 chunks +14 lines, -18 lines 0 comments Download
M src/ic/ic-inl.h View 1 2 3 4 2 chunks +11 lines, -12 lines 0 comments Download
M src/ic/ic-state.h View 1 2 3 4 1 chunk +1 line, -2 lines 0 comments Download
M src/ic/ic-state.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/ic/ppc/handler-compiler-ppc.cc View 1 2 3 4 5 6 7 3 chunks +3 lines, -3 lines 0 comments Download
M src/lithium.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -4 lines 0 comments Download
M src/macro-assembler.h View 3 chunks +12 lines, -12 lines 0 comments Download
M src/mips/assembler-mips.h View 1 2 3 4 4 chunks +14 lines, -14 lines 0 comments Download
M src/mips/assembler-mips.cc View 1 2 3 4 5 6 7 2 chunks +7 lines, -14 lines 0 comments Download
M src/mips/deoptimizer-mips.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/mips/frames-mips.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -6 lines 0 comments Download
M src/mips64/assembler-mips64.h View 1 2 3 4 4 chunks +14 lines, -14 lines 0 comments Download
M src/mips64/assembler-mips64.cc View 1 2 3 4 5 6 7 2 chunks +7 lines, -14 lines 0 comments Download
M src/mips64/deoptimizer-mips64.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/mips64/frames-mips64.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -6 lines 0 comments Download
M src/objects.h View 1 2 3 4 5 6 7 8 chunks +11 lines, -315 lines 0 comments Download
M src/objects.cc View 1 2 3 4 5 6 7 4 chunks +26 lines, -66 lines 0 comments Download
M src/objects-debug.cc View 1 2 3 4 5 6 7 2 chunks +0 lines, -17 lines 0 comments Download
M src/objects-inl.h View 1 2 3 4 5 6 7 10 chunks +13 lines, -402 lines 0 comments Download
M src/objects-printer.cc View 1 2 3 4 5 6 7 2 chunks +0 lines, -40 lines 0 comments Download
M src/ppc/assembler-ppc.h View 1 16 chunks +111 lines, -19 lines 0 comments Download
M src/ppc/assembler-ppc.cc View 1 2 3 4 5 6 7 15 chunks +112 lines, -53 lines 0 comments Download
M src/ppc/assembler-ppc-inl.h View 1 7 chunks +173 lines, -8 lines 0 comments Download
M src/ppc/builtins-ppc.cc View 1 2 3 4 5 6 7 15 chunks +23 lines, -14 lines 0 comments Download
M src/ppc/code-stubs-ppc.cc View 1 2 3 4 5 6 7 9 chunks +15 lines, -7 lines 0 comments Download
M src/ppc/constants-ppc.h View 1 1 chunk +5 lines, -0 lines 0 comments Download
M src/ppc/debug-ppc.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/ppc/deoptimizer-ppc.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -2 lines 0 comments Download
M src/ppc/frames-ppc.h View 1 chunk +5 lines, -2 lines 0 comments Download
M src/ppc/frames-ppc.cc View 1 2 3 4 5 6 7 1 chunk +4 lines, -10 lines 0 comments Download
M src/ppc/full-codegen-ppc.cc View 1 2 3 4 5 6 7 3 chunks +6 lines, -1 line 0 comments Download
M src/ppc/lithium-codegen-ppc.cc View 1 2 3 4 5 6 7 1 chunk +6 lines, -2 lines 0 comments Download
M src/ppc/macro-assembler-ppc.h View 1 2 3 4 5 6 3 chunks +17 lines, -2 lines 0 comments Download
M src/ppc/macro-assembler-ppc.cc View 1 2 3 4 11 chunks +120 lines, -10 lines 0 comments Download
M src/runtime/runtime-generator.cc View 1 2 3 4 1 chunk +1 line, -1 line 0 comments Download
M src/snapshot/serialize.cc View 1 2 3 4 5 6 7 6 chunks +4 lines, -15 lines 0 comments Download
M src/x64/assembler-x64.h View 1 3 chunks +14 lines, -14 lines 0 comments Download
M src/x64/assembler-x64.cc View 1 2 3 4 5 6 7 2 chunks +6 lines, -14 lines 0 comments Download
M src/x64/assembler-x64-inl.h View 1 chunk +2 lines, -4 lines 0 comments Download
M src/x64/deoptimizer-x64.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/x64/frames-x64.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -6 lines 0 comments Download
M src/x87/assembler-x87.h View 1 5 chunks +15 lines, -14 lines 0 comments Download
M src/x87/assembler-x87.cc View 1 2 3 4 5 6 7 2 chunks +6 lines, -14 lines 0 comments Download
M src/x87/assembler-x87-inl.h View 2 chunks +8 lines, -4 lines 0 comments Download
M src/x87/deoptimizer-x87.cc View 1 2 3 4 5 6 7 1 chunk +1 line, -1 line 0 comments Download
M src/x87/frames-x87.cc View 1 2 3 4 5 6 7 1 chunk +0 lines, -6 lines 0 comments Download
M test/cctest/test-compiler.cc View 1 2 3 4 1 chunk +3 lines, -0 lines 0 comments Download
D test/cctest/test-constantpool.cc View 1 2 3 4 5 1 chunk +206 lines, -296 lines 0 comments Download
M test/cctest/test-reloc-info.cc View 1 2 3 4 5 6 7 1 chunk +2 lines, -2 lines 0 comments Download

Messages

Total messages: 52 (18 generated)
MTBrandyberry
Continuation of https://codereview.chromium.org/1030353003/
5 years, 7 months ago (2015-05-08 03:49:37 UTC) #1
MTBrandyberry
On 2015/05/08 03:49:37, mtbrandyberry wrote: > Continuation of https://codereview.chromium.org/1030353003/ Reminder that this is still pending ...
5 years, 7 months ago (2015-05-19 13:36:28 UTC) #2
rmcilroy
Apologies for the delay - I'm just back from BlinkOn in Australia. I'm going to ...
5 years, 7 months ago (2015-05-19 15:01:29 UTC) #3
rmcilroy
This is looking great Matthew, this is exaclty the direction I was hoping for - ...
5 years, 7 months ago (2015-05-20 14:32:12 UTC) #4
MTBrandyberry
On 2015/05/20 14:32:12, rmcilroy wrote: > This is looking great Matthew, this is exaclty the ...
5 years, 7 months ago (2015-05-20 16:20:07 UTC) #5
MTBrandyberry
My responses below. Highlights are that I agree with most of the comments and have ...
5 years, 7 months ago (2015-05-20 22:28:23 UTC) #6
rmcilroy
I'll do a last pass once you have the tests. https://codereview.chromium.org/1131783003/diff/1/src/arm/full-codegen-arm.cc File src/arm/full-codegen-arm.cc (right): https://codereview.chromium.org/1131783003/diff/1/src/arm/full-codegen-arm.cc#newcode362 ...
5 years, 7 months ago (2015-05-22 12:21:22 UTC) #7
MTBrandyberry
On 2015/05/22 12:21:22, rmcilroy wrote: > I'll do a last pass once you have the ...
5 years, 7 months ago (2015-05-26 14:57:46 UTC) #8
MTBrandyberry
https://codereview.chromium.org/1131783003/diff/1/src/arm/full-codegen-arm.cc File src/arm/full-codegen-arm.cc (right): https://codereview.chromium.org/1131783003/diff/1/src/arm/full-codegen-arm.cc#newcode362 src/arm/full-codegen-arm.cc:362: masm()->EmitConstantPool(); On 2015/05/22 12:21:21, rmcilroy wrote: > On 2015/05/20 ...
5 years, 7 months ago (2015-05-26 19:19:05 UTC) #9
MTBrandyberry
Patch Set 3 addresses remaining issues.
5 years, 7 months ago (2015-05-27 22:08:42 UTC) #10
rmcilroy
+ishell Igor: Could you have a quick look at the changes in mark-compact.cc and check ...
5 years, 6 months ago (2015-06-01 09:52:09 UTC) #12
Igor Sheludko
https://codereview.chromium.org/1131783003/diff/1/src/heap/mark-compact.cc File src/heap/mark-compact.cc (right): https://codereview.chromium.org/1131783003/diff/1/src/heap/mark-compact.cc#newcode4627 src/heap/mark-compact.cc:4627: slot_type = SlotsBuffer::OBJECT_SLOT; On 2015/06/01 09:52:08, rmcilroy wrote: > ...
5 years, 6 months ago (2015-06-01 10:42:30 UTC) #13
MTBrandyberry
https://codereview.chromium.org/1131783003/diff/40001/src/arm/assembler-arm.cc File src/arm/assembler-arm.cc (right): https://codereview.chromium.org/1131783003/diff/40001/src/arm/assembler-arm.cc#newcode478 src/arm/assembler-arm.cc:478: offset = EmitEmbeddedConstantPool(); On 2015/06/01 09:52:08, rmcilroy wrote: > ...
5 years, 6 months ago (2015-06-01 21:01:31 UTC) #14
rmcilroy
lgtm once EmittedLabel is removed from the ConstantPoolBuilder (otherwise let's do another review round). +Rodolph ...
5 years, 6 months ago (2015-06-02 13:57:21 UTC) #16
MTBrandyberry
https://codereview.chromium.org/1131783003/diff/40001/src/ppc/lithium-codegen-ppc.cc File src/ppc/lithium-codegen-ppc.cc (right): https://codereview.chromium.org/1131783003/diff/40001/src/ppc/lithium-codegen-ppc.cc#newcode57 src/ppc/lithium-codegen-ppc.cc:57: // Avoid DCHECK(!is_linked()) failure in ~Label() On 2015/06/02 13:57:21, ...
5 years, 6 months ago (2015-06-02 15:36:11 UTC) #17
rmcilroy
https://codereview.chromium.org/1131783003/diff/40001/src/ppc/lithium-codegen-ppc.cc File src/ppc/lithium-codegen-ppc.cc (right): https://codereview.chromium.org/1131783003/diff/40001/src/ppc/lithium-codegen-ppc.cc#newcode57 src/ppc/lithium-codegen-ppc.cc:57: // Avoid DCHECK(!is_linked()) failure in ~Label() On 2015/06/02 15:36:10, ...
5 years, 6 months ago (2015-06-02 16:40:12 UTC) #18
MTBrandyberry
https://codereview.chromium.org/1131783003/diff/40001/src/ppc/lithium-codegen-ppc.cc File src/ppc/lithium-codegen-ppc.cc (right): https://codereview.chromium.org/1131783003/diff/40001/src/ppc/lithium-codegen-ppc.cc#newcode57 src/ppc/lithium-codegen-ppc.cc:57: // Avoid DCHECK(!is_linked()) failure in ~Label() On 2015/06/02 16:40:12, ...
5 years, 6 months ago (2015-06-02 16:55:31 UTC) #19
MTBrandyberry
On 2015/06/02 16:55:31, mtbrandyberry wrote: > https://codereview.chromium.org/1131783003/diff/40001/src/ppc/lithium-codegen-ppc.cc > File src/ppc/lithium-codegen-ppc.cc (right): > > https://codereview.chromium.org/1131783003/diff/40001/src/ppc/lithium-codegen-ppc.cc#newcode57 > ...
5 years, 6 months ago (2015-06-02 18:15:14 UTC) #20
rmcilroy
Yup, still lgtm if it passes on the bots (I'm assuming you've tested Arm with ...
5 years, 6 months ago (2015-06-02 18:34:21 UTC) #21
rmcilroy
Yup, still lgtm if it passes on the bots (I'm assuming you've tested Arm with ...
5 years, 6 months ago (2015-06-02 18:34:26 UTC) #22
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1131783003/120001
5 years, 6 months ago (2015-06-02 18:39:31 UTC) #24
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux64_avx2_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel/builds/951) v8_linux64_rel on tryserver.v8 (JOB_FAILED, ...
5 years, 6 months ago (2015-06-02 18:43:45 UTC) #26
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1131783003/140001
5 years, 6 months ago (2015-06-02 19:18:44 UTC) #29
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux64_avx2_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux64_avx2_rel/builds/953)
5 years, 6 months ago (2015-06-02 19:24:53 UTC) #31
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1131783003/160001
5 years, 6 months ago (2015-06-02 19:46:30 UTC) #34
commit-bot: I haz the power
Try jobs failed on following builders: v8_mac_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel/builds/6370)
5 years, 6 months ago (2015-06-02 19:53:09 UTC) #36
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1131783003/180001
5 years, 6 months ago (2015-06-02 20:29:38 UTC) #39
commit-bot: I haz the power
Try jobs failed on following builders: v8_mac_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_mac_rel/builds/6373)
5 years, 6 months ago (2015-06-02 20:34:16 UTC) #41
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1131783003/200001
5 years, 6 months ago (2015-06-02 20:41:42 UTC) #44
commit-bot: I haz the power
Try jobs failed on following builders: v8_linux_arm_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm_rel/builds/4766)
5 years, 6 months ago (2015-06-02 20:56:06 UTC) #46
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1131783003/220001
5 years, 6 months ago (2015-06-02 22:03:40 UTC) #49
commit-bot: I haz the power
Committed patchset #12 (id:220001)
5 years, 6 months ago (2015-06-02 22:50:17 UTC) #50
commit-bot: I haz the power
Patchset 12 (id:??) landed as https://crrev.com/a9404029343d65f146e3443f5280c40a97e736af Cr-Commit-Position: refs/heads/master@{#28770}
5 years, 6 months ago (2015-06-02 22:50:22 UTC) #51
Benedikt Meurer
5 years, 6 months ago (2015-06-03 03:00:51 UTC) #52
Message was sent while issue was closed.
A revert of this CL (patchset #12 id:220001) has been created in
https://codereview.chromium.org/1155703006/ by bmeurer@chromium.org.

The reason for reverting is: Breaks Linux nosnap
cctest/test-api/FastReturnValuesWithProfiler, see
http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20....

Powered by Google App Engine
This is Rietveld 408576698