v8/src/snapshot
Mike Stanton be6990457b [TurboFan] Mark Code object as never serialized
Code objects are exposed through JSFunction and SharedFunctionInfo.
If they are builtins, we don't have to worry about background threads
seeing partially initialized code objects. If they are optimized code
objects, we may. Background threads read the code fields with
AcquireLoad semantics. The fields are set on the main thread with
ReleaseStore semantics when appropriate.

Special care is taken when setting an optimized code object in a closure
in the interpreter entry stub. Since the MacroAssembler doesn't support
ReleaseStore semantics, this CL ensures that the optimized code object
is stored with those semantics in the feedback vector, where the
interpreter entry stub finds it.

Bug: v8:7790
Change-Id: I41ecedfe0e9d1ad5091cbe9a97f66c66ca9e07dd
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2676633
Commit-Queue: Michael Stanton <mvstanton@chromium.org>
Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org>
Reviewed-by: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#72869}
2021-02-19 14:49:47 +00:00
..
embedded Mark builtins as hot sections using text section prefix in Windows. 2021-01-21 07:57:18 +00:00
code-serializer.cc [TurboFan] Templatize GetBytecodeArray 2020-12-17 16:46:53 +00:00
code-serializer.h [asserts] Make assert scopes LocalHeap friendly 2020-11-20 17:39:14 +00:00
context-deserializer.cc Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
context-deserializer.h Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
context-serializer.cc [TurboFan] Mark Code object as never serialized 2021-02-19 14:49:47 +00:00
context-serializer.h [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in snapshot/ 2020-11-09 07:09:34 +00:00
DEPS Reland "[snapshot] Extract more files" 2020-04-22 06:09:18 +00:00
deserializer.cc [api] Use FLAG_log to check whether logging is enabled 2021-01-20 11:07:12 +00:00
deserializer.h Add RISC-V backend 2021-02-09 17:06:36 +00:00
DIR_METADATA Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
mksnapshot.cc Replace libc functions with base wrappers 2020-11-17 08:50:41 +00:00
object-deserializer.cc Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
object-deserializer.h Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
OWNERS Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
read-only-deserializer.cc Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
read-only-deserializer.h Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
read-only-serializer.cc Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
read-only-serializer.h [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in snapshot/ 2020-11-09 07:09:34 +00:00
references.h Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
roots-serializer.cc Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
roots-serializer.h [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in snapshot/ 2020-11-09 07:09:34 +00:00
serializer-deserializer.cc [serializer] avoid deferring objects with embedder fields 2020-11-11 19:24:38 +00:00
serializer-deserializer.h [serializer] Introduce HandleScopes for object contents 2020-10-08 18:03:51 +00:00
serializer.cc [sparkplug] Upstream Sparkplug 2021-02-12 09:31:06 +00:00
serializer.h [config] Add V8_NODISCARD for Scope classes 2020-11-26 11:08:45 +00:00
snapshot-compression.cc Reland "[snapshot] Extract more files" 2020-04-22 06:09:18 +00:00
snapshot-compression.h Reland "[snapshot] Extract more files" 2020-04-22 06:09:18 +00:00
snapshot-data.cc Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
snapshot-data.h [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in snapshot/ 2020-11-09 07:09:34 +00:00
snapshot-empty.cc Replace CHECK(false) by UNREACHABLE() 2017-12-19 18:58:07 +00:00
snapshot-external.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
snapshot-source-sink.cc [serializer] Clean up value encoding in bytecodes 2020-09-01 11:36:24 +00:00
snapshot-source-sink.h Replace libc functions with base wrappers 2020-11-17 08:50:41 +00:00
snapshot-utils.cc [embedded] Split blob hash into data/code hashes 2020-10-28 09:20:35 +00:00
snapshot-utils.h [embedded] Split blob hash into data/code hashes 2020-10-28 09:20:35 +00:00
snapshot.cc [api] Make ScriptOrigin take isolate as parameter 2021-01-14 23:51:04 +00:00
snapshot.h Add DisallowGarbageCollection and AllowGarbageCollection 2020-09-22 08:07:08 +00:00
startup-deserializer.cc [api] Use FLAG_log to check whether logging is enabled 2021-01-20 11:07:12 +00:00
startup-deserializer.h Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
startup-serializer.cc [config] Add V8_NODISCARD for Scope classes 2020-11-26 11:08:45 +00:00
startup-serializer.h [cleanup] Remove DISALLOW_COPY_AND_ASSIGN in snapshot/ 2020-11-09 07:09:34 +00:00