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

Issue 1576093004: [Interpreter] Add ForInPrepare runtime function which returns a ObjectTriple. (Closed)

Created:
4 years, 11 months ago by rmcilroy
Modified:
4 years, 11 months ago
Reviewers:
Benedikt Meurer, oth
CC:
v8-reviews_googlegroups.com, v8-mips-ports_googlegroups.com, v8-ppc-ports_googlegroups.com, v8-x87-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] Add ForInPrepare runtime function which returns a ObjectTriple. Adds a ForInPrepare Runtime function which returns a triple of cache_type, cache_array and cache_length. This requires adding support to CEntryStub to call runtime functions which return a ObjectTriple - a struct containing three Object* pointers. Also did some cleanup of the x64 CEntryStub to avoid replicated code. Replaces the interpreter's use of the ad-hock InterpreterForInPrepare Runtime function with ForInPrepare in preparation for fixing deopt in BytecodeGraphBuilder for ForIn (which will be done in a followup CL). MIPS port contributed by Balazs Kilvady <balazs.kilvady@imgtec.com>;. BUG=v8:4280 LOG=N Committed: https://crrev.com/84f8a506e204b1e70df5b9a8036cc97170e661fd Cr-Commit-Position: refs/heads/master@{#33334}

Patch Set 1 #

Patch Set 2 : Add Arm support and hopefully fix Windows. #

Patch Set 3 : Add Arm64, fix Arm and (hopefully) fix Win64. #

Patch Set 4 : Fix Win64 for realz #

Patch Set 5 : Comment and variable name tweaks #

Total comments: 2

Patch Set 6 : Fix proxy case. #

Patch Set 7 : Add MIPS port #

Unified diffs Side-by-side diffs Delta from patch set Stats (+446 lines, -169 lines) Patch
M src/arguments.h View 1 chunk +2 lines, -0 lines 0 comments Download
M src/arm/code-stubs-arm.cc View 1 2 3 4 4 chunks +33 lines, -10 lines 0 comments Download
M src/arm/macro-assembler-arm.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M src/arm/simulator-arm.cc View 1 2 3 chunks +31 lines, -0 lines 0 comments Download
M src/arm64/code-stubs-arm64.cc View 1 2 3 4 3 chunks +23 lines, -4 lines 0 comments Download
M src/arm64/macro-assembler-arm64.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download
M src/arm64/simulator-arm64.cc View 1 2 3 4 5 chunks +40 lines, -11 lines 0 comments Download
M src/assembler.h View 1 2 3 4 5 6 1 chunk +6 lines, -1 line 0 comments Download
M src/assembler.cc View 1 2 3 4 5 6 1 chunk +4 lines, -2 lines 0 comments Download
M src/code-stubs.h View 2 chunks +1 line, -5 lines 0 comments Download
M src/compiler/linkage.cc View 1 2 3 4 5 2 chunks +6 lines, -0 lines 0 comments Download
M src/ia32/code-stubs-ia32.cc View 1 2 3 4 5 2 chunks +36 lines, -8 lines 0 comments Download
M src/ia32/macro-assembler-ia32.h View 1 2 3 4 5 2 chunks +2 lines, -1 line 0 comments Download
M src/ia32/macro-assembler-ia32.cc View 1 2 3 4 5 2 chunks +2 lines, -2 lines 0 comments Download
M src/interpreter/interpreter.cc View 1 2 3 4 5 1 chunk +6 lines, -4 lines 0 comments Download
M src/mips/code-stubs-mips.cc View 1 2 3 4 5 6 2 chunks +39 lines, -11 lines 0 comments Download
M src/mips/macro-assembler-mips.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M src/mips/simulator-mips.cc View 1 2 3 4 5 6 3 chunks +25 lines, -0 lines 0 comments Download
M src/mips64/code-stubs-mips64.cc View 1 2 3 4 5 6 2 chunks +39 lines, -10 lines 0 comments Download
M src/mips64/macro-assembler-mips64.h View 1 2 3 4 5 6 1 chunk +1 line, -0 lines 0 comments Download
M src/mips64/simulator-mips64.cc View 1 2 3 4 5 6 4 chunks +25 lines, -5 lines 0 comments Download
M src/runtime/runtime.h View 1 2 3 4 5 3 chunks +6 lines, -4 lines 0 comments Download
M src/runtime/runtime.cc View 1 chunk +6 lines, -0 lines 0 comments Download
M src/runtime/runtime-forin.cc View 1 2 3 4 5 1 chunk +46 lines, -0 lines 0 comments Download
M src/runtime/runtime-interpreter.cc View 1 chunk +0 lines, -51 lines 0 comments Download
M src/runtime/runtime-utils.h View 1 1 chunk +16 lines, -0 lines 0 comments Download
M src/x64/code-stubs-x64.cc View 1 2 3 4 5 2 chunks +47 lines, -40 lines 0 comments Download
M src/x64/macro-assembler-x64.h View 1 2 3 4 5 1 chunk +1 line, -0 lines 0 comments Download

Depends on Patchset:

Dependent Patchsets:

Messages

Total messages: 40 (16 generated)
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1576093004/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1576093004/1
4 years, 11 months ago (2016-01-12 16:03:42 UTC) #2
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_android_arm_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_android_arm_compile_rel/builds/11957)
4 years, 11 months ago (2016-01-12 16:34:24 UTC) #4
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1576093004/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1576093004/20001
4 years, 11 months ago (2016-01-13 10:29:32 UTC) #6
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_arm64_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_arm64_rel/builds/13902) v8_linux_mipsel_compile_rel on ...
4 years, 11 months ago (2016-01-13 10:31:19 UTC) #8
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1576093004/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1576093004/40001
4 years, 11 months ago (2016-01-13 12:34:11 UTC) #10
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_mips64el_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_mips64el_compile_rel/builds/8820)
4 years, 11 months ago (2016-01-13 12:37:24 UTC) #12
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1576093004/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1576093004/60001
4 years, 11 months ago (2016-01-13 13:20:03 UTC) #14
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_mipsel_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_mipsel_compile_rel/builds/8848)
4 years, 11 months ago (2016-01-13 13:23:13 UTC) #16
rmcilroy
Benedikt, Orion, please take a look. MIPS-ports, could you please port to MIPS PPC/x87-ports, FYI ...
4 years, 11 months ago (2016-01-13 13:43:19 UTC) #18
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1576093004/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1576093004/80001
4 years, 11 months ago (2016-01-13 13:43:29 UTC) #20
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: v8_linux_mips64el_compile_rel on tryserver.v8 (JOB_FAILED, http://build.chromium.org/p/tryserver.v8/builders/v8_linux_mips64el_compile_rel/builds/8833)
4 years, 11 months ago (2016-01-13 14:45:00 UTC) #22
Benedikt Meurer
Awesome. I like it. Can you also change JSGenericLowering to lower JSForInPrepare to the runtime ...
4 years, 11 months ago (2016-01-13 14:48:53 UTC) #23
oth
lgtm.
4 years, 11 months ago (2016-01-13 16:06:36 UTC) #24
rmcilroy
> Can you also change JSGenericLowering to lower JSForInPrepare to the runtime ? function? If ...
4 years, 11 months ago (2016-01-14 10:04:12 UTC) #25
Benedikt Meurer
Yeah maybe. Let's just land your CL. I'll look into the FCG interaction later.
4 years, 11 months ago (2016-01-14 11:18:09 UTC) #26
Benedikt Meurer
Ah yeah, LGTM BTW :-)
4 years, 11 months ago (2016-01-14 11:18:19 UTC) #27
rmcilroy
https://codereview.chromium.org/1576093004/diff/80001/src/runtime/runtime-forin.cc File src/runtime/runtime-forin.cc (right): https://codereview.chromium.org/1576093004/diff/80001/src/runtime/runtime-forin.cc#newcode55 src/runtime/runtime-forin.cc:55: cache_type = Handle<Object>(Smi::FromInt(0), isolate); On 2016/01/13 14:48:53, Benedikt Meurer ...
4 years, 11 months ago (2016-01-14 12:13:52 UTC) #28
rmcilroy
> Yeah maybe. Let's just land your CL. I'll look into the FCG interaction later. ...
4 years, 11 months ago (2016-01-14 13:11:51 UTC) #29
balazs.kilvady
We are working on the MIPS port: https://codereview.chromium.org/1589913003 It needs to be tested although.
4 years, 11 months ago (2016-01-14 16:41:00 UTC) #30
balazs.kilvady
On 2016/01/14 16:41:00, balazs.kilvady wrote: > We are working on the MIPS port: https://codereview.chromium.org/1589913003 > ...
4 years, 11 months ago (2016-01-14 20:07:54 UTC) #31
rmcilroy
On 2016/01/14 20:07:54, balazs.kilvady wrote: > On 2016/01/14 16:41:00, balazs.kilvady wrote: > > We are ...
4 years, 11 months ago (2016-01-15 14:07:51 UTC) #33
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1576093004/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1576093004/120001
4 years, 11 months ago (2016-01-15 14:08:07 UTC) #36
commit-bot: I haz the power
Committed patchset #7 (id:120001)
4 years, 11 months ago (2016-01-15 14:34:42 UTC) #38
commit-bot: I haz the power
4 years, 11 months ago (2016-01-15 14:35:41 UTC) #40
Message was sent while issue was closed.
Patchset 7 (id:??) landed as
https://crrev.com/84f8a506e204b1e70df5b9a8036cc97170e661fd
Cr-Commit-Position: refs/heads/master@{#33334}

Powered by Google App Engine
This is Rietveld 408576698