New issue
Advanced search Search tips

Issue 8068 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Oct 23
Cc:
Components:
HW: ----
NextAction: ----
OS: ----
Priority: ----
Type: Task

Blocking:
issue 6666
issue 7990



Sign in to add a comment

Embed Bytecode Handlers

Project Member Reported by delph...@chromium.org, Aug 17

Issue description

Tracking bug for embedding bytecode handlers into the binary.
 
Blocking: 7990
Blocking: 6666
Project Member

Comment 3 by bugdroid1@chromium.org, Aug 20

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/041ae1f879df3c91bb21292cf76aa4e56cf08c57

commit 041ae1f879df3c91bb21292cf76aa4e56cf08c57
Author: Dan Elphick <delphick@chromium.org>
Date: Mon Aug 20 13:43:06 2018

[builtins] Start adding byte code handlers to builtins

Adds a new build flag, v8_enable_embedded_bytecode_handlers, that adds
the bytecode handlers to the BUILTIN_LIST macros.

Currently it's not connected up to the code-generation so it actually
does nothing except expand the builtins table.

Bug:  v8:8068 
Change-Id: Iaecc3982cf22d04e6c46169b86c9d694952fd091
Reviewed-on: https://chromium-review.googlesource.com/1179887
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55215}
[modify] https://crrev.com/041ae1f879df3c91bb21292cf76aa4e56cf08c57/BUILD.gn
[modify] https://crrev.com/041ae1f879df3c91bb21292cf76aa4e56cf08c57/src/builtins/builtins-definitions.h
[modify] https://crrev.com/041ae1f879df3c91bb21292cf76aa4e56cf08c57/src/builtins/builtins-descriptors.h
[modify] https://crrev.com/041ae1f879df3c91bb21292cf76aa4e56cf08c57/src/builtins/builtins.cc
[modify] https://crrev.com/041ae1f879df3c91bb21292cf76aa4e56cf08c57/src/builtins/builtins.h
[modify] https://crrev.com/041ae1f879df3c91bb21292cf76aa4e56cf08c57/src/builtins/setup-builtins-internal.cc
[modify] https://crrev.com/041ae1f879df3c91bb21292cf76aa4e56cf08c57/src/snapshot/snapshot-common.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Aug 20

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/737ffec54e8d57c7b81b579996413081231ae491

commit 737ffec54e8d57c7b81b579996413081231ae491
Author: Dan Elphick <delphick@chromium.org>
Date: Mon Aug 20 15:26:15 2018

Revert "[builtins] Start adding byte code handlers to builtins"

This reverts commit 041ae1f879df3c91bb21292cf76aa4e56cf08c57.

Reason for revert: Causes jumbo builds to fail because of duplicate GenerateBytecodeHandler definitions.

Original change's description:
> [builtins] Start adding byte code handlers to builtins
> 
> Adds a new build flag, v8_enable_embedded_bytecode_handlers, that adds
> the bytecode handlers to the BUILTIN_LIST macros.
> 
> Currently it's not connected up to the code-generation so it actually
> does nothing except expand the builtins table.
> 
> Bug:  v8:8068 
> Change-Id: Iaecc3982cf22d04e6c46169b86c9d694952fd091
> Reviewed-on: https://chromium-review.googlesource.com/1179887
> Commit-Queue: Dan Elphick <delphick@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55215}

TBR=rmcilroy@chromium.org,jgruber@chromium.org,delphick@chromium.org

Change-Id: I860b3ecf543944fd0f4fdcb8de09d21a4b784150
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug:  v8:8068 
Reviewed-on: https://chromium-review.googlesource.com/1181301
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55225}
[modify] https://crrev.com/737ffec54e8d57c7b81b579996413081231ae491/BUILD.gn
[modify] https://crrev.com/737ffec54e8d57c7b81b579996413081231ae491/src/builtins/builtins-definitions.h
[modify] https://crrev.com/737ffec54e8d57c7b81b579996413081231ae491/src/builtins/builtins-descriptors.h
[modify] https://crrev.com/737ffec54e8d57c7b81b579996413081231ae491/src/builtins/builtins.cc
[modify] https://crrev.com/737ffec54e8d57c7b81b579996413081231ae491/src/builtins/builtins.h
[modify] https://crrev.com/737ffec54e8d57c7b81b579996413081231ae491/src/builtins/setup-builtins-internal.cc
[modify] https://crrev.com/737ffec54e8d57c7b81b579996413081231ae491/src/snapshot/snapshot-common.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Aug 21

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/fe5e07d763d86ce310f412140c138948f136cdfb

commit fe5e07d763d86ce310f412140c138948f136cdfb
Author: Dan Elphick <delphick@chromium.org>
Date: Tue Aug 21 07:42:52 2018

Reland "[builtins] Start adding byte code handlers to builtins"

This is a reland of 041ae1f879df3c91bb21292cf76aa4e56cf08c57

The clashing method has been fixed.

Original change's description:
> [builtins] Start adding byte code handlers to builtins
>
> Adds a new build flag, v8_enable_embedded_bytecode_handlers, that adds
> the bytecode handlers to the BUILTIN_LIST macros.
>
> Currently it's not connected up to the code-generation so it actually
> does nothing except expand the builtins table.
>
> Bug:  v8:8068 
> Change-Id: Iaecc3982cf22d04e6c46169b86c9d694952fd091
> Reviewed-on: https://chromium-review.googlesource.com/1179887
> Commit-Queue: Dan Elphick <delphick@chromium.org>
> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
> Reviewed-by: Jakob Gruber <jgruber@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#55215}

Bug:  v8:8068 
Change-Id: Ibc98929a9ad464e9d4c9fc7d43401f0fb0df9a00
Reviewed-on: https://chromium-review.googlesource.com/1181981
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55244}
[modify] https://crrev.com/fe5e07d763d86ce310f412140c138948f136cdfb/BUILD.gn
[modify] https://crrev.com/fe5e07d763d86ce310f412140c138948f136cdfb/src/builtins/builtins-definitions.h
[modify] https://crrev.com/fe5e07d763d86ce310f412140c138948f136cdfb/src/builtins/builtins-descriptors.h
[modify] https://crrev.com/fe5e07d763d86ce310f412140c138948f136cdfb/src/builtins/builtins.cc
[modify] https://crrev.com/fe5e07d763d86ce310f412140c138948f136cdfb/src/builtins/builtins.h
[modify] https://crrev.com/fe5e07d763d86ce310f412140c138948f136cdfb/src/builtins/setup-builtins-internal.cc
[modify] https://crrev.com/fe5e07d763d86ce310f412140c138948f136cdfb/src/snapshot/snapshot-common.cc

Project Member

Comment 6 by bugdroid1@chromium.org, Aug 24

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/855d4b48a2c8e1631b62e334bf6c8e889c53f9e5

commit 855d4b48a2c8e1631b62e334bf6c8e889c53f9e5
Author: Dan Elphick <delphick@chromium.org>
Date: Fri Aug 24 16:43:14 2018

Create bytecode handlers and add them to the builtins table

This doubles the size of the snapshot since it creates all of the
handlers twice (and it doesn't use any of these new ones). However it's
all behind a flag.

For now all bytecode handlers are marked as being not Isolate
independent to prevent snapshot creation failures.

Bug:  v8:8068 
Change-Id: Id49f521445643d9fc6b141353f0a29b585160e10
Reviewed-on: https://chromium-review.googlesource.com/1185100
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55411}
[modify] https://crrev.com/855d4b48a2c8e1631b62e334bf6c8e889c53f9e5/src/DEPS
[modify] https://crrev.com/855d4b48a2c8e1631b62e334bf6c8e889c53f9e5/src/builtins/builtins.cc
[modify] https://crrev.com/855d4b48a2c8e1631b62e334bf6c8e889c53f9e5/src/builtins/setup-builtins-internal.cc
[modify] https://crrev.com/855d4b48a2c8e1631b62e334bf6c8e889c53f9e5/src/interpreter/interpreter-generator.cc
[modify] https://crrev.com/855d4b48a2c8e1631b62e334bf6c8e889c53f9e5/src/interpreter/interpreter-generator.h
[modify] https://crrev.com/855d4b48a2c8e1631b62e334bf6c8e889c53f9e5/src/interpreter/setup-interpreter-internal.cc

Project Member

Comment 7 by bugdroid1@chromium.org, Aug 30

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/c68644bb70db592bdcd8e7127b23adfb8e51feec

commit c68644bb70db592bdcd8e7127b23adfb8e51feec
Author: Dan Elphick <delphick@chromium.org>
Date: Thu Aug 30 08:56:41 2018

[embed handlers] Make bytecode handlers isolate independent

Use BuiltinAssemblerOptions to generate AssemblerOptions when generating
the bytecode handlers (assuming v8_enable_embedded_bytecode_handlers is
on).

Mark all but InvokeIntrinsic, InvokeIntrinsicWide,
InvokeIntrinsicExtraWide, TestIn, TestInWide, TestInExtraWide and
TestTypeOf as isolate-independent. The excluded handlers create jump
tables which have absolute addresses.

Bug:  v8:8068 
Change-Id: Ia29e9c737ec345193e24fc2aa3684daefb113a9a
Reviewed-on: https://chromium-review.googlesource.com/1195508
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55514}
[modify] https://crrev.com/c68644bb70db592bdcd8e7127b23adfb8e51feec/src/builtins/builtins.cc
[modify] https://crrev.com/c68644bb70db592bdcd8e7127b23adfb8e51feec/src/builtins/setup-builtins-internal.cc
[modify] https://crrev.com/c68644bb70db592bdcd8e7127b23adfb8e51feec/src/interpreter/interpreter-generator.cc
[modify] https://crrev.com/c68644bb70db592bdcd8e7127b23adfb8e51feec/src/interpreter/interpreter-generator.h
[modify] https://crrev.com/c68644bb70db592bdcd8e7127b23adfb8e51feec/src/interpreter/setup-interpreter-internal.cc

Project Member

Comment 8 by bugdroid1@chromium.org, Aug 30

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/ab37324c52679245b49a1fe8f28dbb5760044642

commit ab37324c52679245b49a1fe8f28dbb5760044642
Author: Dan Elphick <delphick@chromium.org>
Date: Thu Aug 30 12:38:16 2018

[embed handlers] Avoid jump tables in bytecode handlers

Since jump tables cannot be embedded, prevent their generation for
bytecode handlers. This allows the remaining 7 bytecode handlers to be
marked isolate independent.

Bug:  v8:8068 
Change-Id: I3a4a6e6530fd1c585558a0d44bd429f572318b57
Reviewed-on: https://chromium-review.googlesource.com/1196509
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55523}
[modify] https://crrev.com/ab37324c52679245b49a1fe8f28dbb5760044642/src/builtins/builtins.cc
[modify] https://crrev.com/ab37324c52679245b49a1fe8f28dbb5760044642/src/optimized-compilation-info.cc

Project Member

Comment 9 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/b4b5e785c0b264720e413e14d6f430870d8caa6b

commit b4b5e785c0b264720e413e14d6f430870d8caa6b
Author: Dan Elphick <delphick@chromium.org>
Date: Mon Sep 03 08:18:10 2018

[embed handlers] Initialize dispatch table

When v8_enable_embedded_bytecode_handlers is true, initialize the
bytecode dispatch table from the builtins table. Also stops creating
the handlers more than once as the SetupInterpreter will now always do
nothing even when not starting from a snapshot.

In the short term, with the flag enabled all the bytecode handlers are
eagerly deserialized.

Finally, the bytecode handlers are marked as non-isolate independent to
prevent them being embedded in the binary until they can be converted.

Bug:  v8:8068 
Change-Id: I9e5ef7f1dce1b2d11c7aa26526f06b53f8939697
Reviewed-on: https://chromium-review.googlesource.com/1188477
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55581}
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/builtins/builtins.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/builtins/builtins.h
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/builtins/setup-builtins-internal.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/heap/heap.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/interpreter/bytecode-operands.h
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/interpreter/interpreter.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/interpreter/interpreter.h
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/isolate.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/setup-isolate-deserialize.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/setup-isolate-full.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/snapshot/builtin-deserializer-allocator.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/snapshot/builtin-deserializer.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/snapshot/builtin-deserializer.h
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/snapshot/builtin-serializer.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/snapshot/builtin-snapshot-utils.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/snapshot/builtin-snapshot-utils.h
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/snapshot/snapshot-common.cc
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/src/snapshot/snapshot.h
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/test/cctest/BUILD.gn
[modify] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/test/cctest/setup-isolate-for-tests.cc
[add] https://crrev.com/b4b5e785c0b264720e413e14d6f430870d8caa6b/test/cctest/test-builtins.cc

Project Member

Comment 10 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/6041afe4e98f562d2ae514fa329e0186737e2242

commit 6041afe4e98f562d2ae514fa329e0186737e2242
Author: Dan Elphick <delphick@chromium.org>
Date: Mon Sep 03 10:31:16 2018

[embed handlers] Enable embedding of handlers by default

Bug:  v8:8068 
Change-Id: Iaa89311441305cfe938a938b456045b40dec3943
Reviewed-on: https://chromium-review.googlesource.com/1199463
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55582}
[modify] https://crrev.com/6041afe4e98f562d2ae514fa329e0186737e2242/BUILD.gn

Hello, after the above CL, mksnapshot are failing on ppc64 because of isolate-dependent in a lot of handler code. Any advice?

Thanks,
John
#11: What are they failing on? A good way to debug such failures is to judiciously insert 'code->Print()' in the consistency check in EmbeddedData::FromIsolate. Could you open a bug that details such a case?
Project Member

Comment 13 by bugdroid1@chromium.org, Sep 5

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/00de0e8bc3b01921d9078f692b574f1d8d35bff5

commit 00de0e8bc3b01921d9078f692b574f1d8d35bff5
Author: Junliang Yan <jyan@ca.ibm.com>
Date: Wed Sep 05 17:34:20 2018

PPC: use pc-relative sequence for poisoning

Use pc relative code on poisoning to allow
relocation of bytecode handler. This is allow
v8_enable_embedded_bytecode_handlers on ppc.

Bug:  v8:8068 

Change-Id: I6e0a1e961e7e903f0935131cfc190c89c404cf67
Reviewed-on: https://chromium-review.googlesource.com/1205610
Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
Reviewed-by: Muntasir Mallick <mmallick@ca.ibm.com>
Cr-Commit-Position: refs/heads/master@{#55660}
[modify] https://crrev.com/00de0e8bc3b01921d9078f692b574f1d8d35bff5/src/compiler/ppc/code-generator-ppc.cc

Project Member

Comment 14 by bugdroid1@chromium.org, Sep 10

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/5a9f05560e5d6b608e6cdd73540845a365812b56

commit 5a9f05560e5d6b608e6cdd73540845a365812b56
Author: Dan Elphick <delphick@chromium.org>
Date: Mon Sep 10 14:42:02 2018

[embedded handlers] Store the handlers without gaps

Previously the builtins table had a value for every single
OperandScale/Bytecode combination regardless of whether it was valid.
This change makes it so that only valid bytecode handlers are stored in
the builtins table. This prevents placeholders being serialized into the
snapshot (and embedded into the binary) saving 9KB in
CODE_SPACE/OLD_SPACE and 2.5KB in the embedded data as well as 66
entries in the builtins table.

To do this, it generates a new header file bytecodes-builtins-list.h
which is created from the BYTECODE_LIST and OPERAND_SCALE_LIST macros.
Since list macros cannot be used to conditionally generate elements in
the C-preprocessor, this is done by generator executable, compiled from
interpreter/generate-flat-headers.cc.

Additionally the generator creates the flat bytecode list so that it is
transposed from the previous result, i.e. the results are grouped by
bytecode and then operand scale rather than operand scale then bytecode.
This should give better locality for commonly used bytecodes and may
allow less commonly used ExtraWide bytecodes to never be mapped into
memory at all.

The cost to storing the handlers densely is that looking up a handler
now requires a binary search through the builtins table, but this should
only happen during debugging. It is also fixable at least for non-wide
handlers and could be improved for wide ones if the need arises.

Bug:  v8:8068 
Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
Change-Id: Iaad22a952e2858f508030c5ddc082f91bf59f667
Reviewed-on: https://chromium-review.googlesource.com/1209304
Commit-Queue: Dan Elphick <delphick@chromium.org>
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55757}
[modify] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/BUILD.gn
[modify] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/src/DEPS
[modify] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/src/builtins/builtins-definitions.h
[modify] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/src/builtins/builtins.cc
[modify] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/src/builtins/builtins.h
[add] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/src/builtins/generate-bytecodes-builtins-list.cc
[modify] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/src/builtins/setup-builtins-internal.cc
[modify] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/src/interpreter/bytecodes.cc
[modify] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/src/interpreter/bytecodes.h
[modify] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/src/interpreter/interpreter.cc
[modify] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/src/snapshot/startup-deserializer.cc
[modify] https://crrev.com/5a9f05560e5d6b608e6cdd73540845a365812b56/test/cctest/BUILD.gn
[delete] https://crrev.com/9ed348e65ffaab83ca8bc81bb2e27540f9c51a02/test/cctest/test-builtins.cc

Project Member

Comment 15 by bugdroid1@chromium.org, Sep 11

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/e0e9461fab40401653f8c66c208902c82fbedb3d

commit e0e9461fab40401653f8c66c208902c82fbedb3d
Author: Dan Elphick <delphick@chromium.org>
Date: Tue Sep 11 12:22:56 2018

Fix coverage build for bytecode_builtins_list_generator

Use v8_executable instead of executable for
bytecode_builtins_list_generator so that coverage link flags should be
picked up too.

Bug:  v8:8068 
Change-Id: I260e4de3485a78d3b3a3455441837e1a5936aa25
Reviewed-on: https://chromium-review.googlesource.com/1219326
Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
Commit-Queue: Dan Elphick <delphick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#55787}
[modify] https://crrev.com/e0e9461fab40401653f8c66c208902c82fbedb3d/BUILD.gn

Project Member

Comment 16 by bugdroid1@chromium.org, Sep 21

The following revision refers to this bug:
  https://chromium.googlesource.com/v8/v8.git/+/6fc9e36c3c2f42f8e2911bffa6ba811833901319

commit 6fc9e36c3c2f42f8e2911bffa6ba811833901319
Author: Jakob Gruber <jgruber@chromium.org>
Date: Fri Sep 21 16:02:24 2018

[interpreter] Iterate dispatch table even in embedded handler configs

In an embedded handler build, it's not guaranteed that every handler
is embedded (and thus immovable). The GC must still iterate the
dispatch table to update pointers to moved code objects.

TBR=rmcilroy@chromium.org

Bug:  v8:8068 
Change-Id: I8b37f1758fdc670081e0c4f58795aea271811994
Reviewed-on: https://chromium-review.googlesource.com/1238236
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Dan Elphick <delphick@chromium.org>
Commit-Queue: Jakob Gruber <jgruber@chromium.org>
Cr-Commit-Position: refs/heads/master@{#56148}
[modify] https://crrev.com/6fc9e36c3c2f42f8e2911bffa6ba811833901319/src/heap/heap.cc
[modify] https://crrev.com/6fc9e36c3c2f42f8e2911bffa6ba811833901319/src/interpreter/interpreter.cc
[modify] https://crrev.com/6fc9e36c3c2f42f8e2911bffa6ba811833901319/src/interpreter/interpreter.h

Status: Fixed (was: Assigned)

Sign in to add a comment