1. 28 Feb, 2019 1 commit
  2. 27 Nov, 2018 1 commit
  3. 22 Nov, 2018 1 commit
  4. 31 Oct, 2018 1 commit
  5. 16 Oct, 2018 1 commit
    • Dan Elphick's avatar
      [snapshot] Create a ReadOnly snapshot · f602712f
      Dan Elphick authored
      In preparation for sharing RO_SPACE between all Isolates within a
      process, this first pulls RO_SPACE out of the Startup snapshot and puts
      it in its own ReadOnly snapshot.
      
      The snapshot is first populated with the read-only roots. After that the
      StartupSerializer serializes as before but starting from the first
      mutable root. References to objects in the ReadOnly snapshot that aren't
      themselves roots are added to a new cache called ReadOnlyObjectCache
      which functions like the PartialSnapshotCache but lives in the
      ReadOnlySerializer rather than the StartupSerializer. These cache
      entries are referenced using a new bytecode: ReadOnlyObjectCache. (To
      make room for this, the ApiReference bytecode has been moved).
      
      To reduce code duplication, the StartupSerializer has been refactored to
      create a new base class RootSerializer, which ReadOnlySerializer also
      subclasses. The base class is responsible primarily for keeping track of
      already serialized roots and visiting the roots.
      
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: Iff26042886130ae22eccf2e11b35f6f226f4a792
      Bug: v8:8191
      Reviewed-on: https://chromium-review.googlesource.com/c/1244676
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56681}
      f602712f
  6. 23 May, 2018 1 commit
  7. 16 May, 2018 1 commit
  8. 07 Nov, 2017 1 commit
  9. 06 Nov, 2017 2 commits
  10. 17 Oct, 2017 1 commit
  11. 30 Aug, 2017 2 commits
    • jgruber's avatar
      [snapshot] Store builtin offsets during serialization · 89b6ef0c
      jgruber authored
      To deserialize builtins individually, we need to preserve their starting
      offsets within the serialized data.
      
      Bug: v8:6624
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: I48a48330aeb63de2c8cfcbea6fb94e1b2917495c
      Reviewed-on: https://chromium-review.googlesource.com/637774Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47708}
      89b6ef0c
    • jgruber's avatar
      Reland "[snapshot] Move builtins to dedicated snapshot area" · 70a51638
      jgruber authored
      This is a reland of 49e3bfd5
      Original change's description:
      > [snapshot] Move builtins to dedicated snapshot area
      > 
      > As a first step towards lazy builtin deserialization, this CL moves
      > builtins to their own dedicated area in the snapshot blob, physically
      > located after startup data and before context-specific data.
      > 
      > The startup- and partial serializers now serialize all seen builtins as
      > references, i.e. they only encode the relevant builtin id (taking care
      > to preserve special behavior around the interpreter trampoline and
      > CompileLazy). Builtins are later fully serialized by the
      > BuiltinSerializer. The separate blobs are finally glued together by
      > CreateSnapshotBlob.
      > 
      > Deserialization takes the same steps: when we see builtin reference
      > bytecodes before builtins have been deserialized, we push to a list of
      > deferred builtin references. After builtin deserialization, this list is
      > iterated and all builtin references are fixed up.
      > 
      > Bug: v8:6624
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: Idee42fa9c92bdbe8d5b8c4b8bf3ca9dd39634004
      > Reviewed-on: https://chromium-review.googlesource.com/610225
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47596}
      
      Bug: v8:6624
      Change-Id: I8bfac56c482d992987c270bf0fea7acd9e4ca0c7
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/638271Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47705}
      70a51638
  12. 28 Aug, 2017 1 commit
    • Michael Hablich's avatar
      Revert "[snapshot] Move builtins to dedicated snapshot area" · a588411e
      Michael Hablich authored
      This reverts commit 49e3bfd5.
      
      Reason for revert: Primary suspect for blocked roll: 759552
      
      Original change's description:
      > [snapshot] Move builtins to dedicated snapshot area
      > 
      > As a first step towards lazy builtin deserialization, this CL moves
      > builtins to their own dedicated area in the snapshot blob, physically
      > located after startup data and before context-specific data.
      > 
      > The startup- and partial serializers now serialize all seen builtins as
      > references, i.e. they only encode the relevant builtin id (taking care
      > to preserve special behavior around the interpreter trampoline and
      > CompileLazy). Builtins are later fully serialized by the
      > BuiltinSerializer. The separate blobs are finally glued together by
      > CreateSnapshotBlob.
      > 
      > Deserialization takes the same steps: when we see builtin reference
      > bytecodes before builtins have been deserialized, we push to a list of
      > deferred builtin references. After builtin deserialization, this list is
      > iterated and all builtin references are fixed up.
      > 
      > Bug: v8:6624
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: Idee42fa9c92bdbe8d5b8c4b8bf3ca9dd39634004
      > Reviewed-on: https://chromium-review.googlesource.com/610225
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#47596}
      
      TBR=yangguo@chromium.org,mlippautz@chromium.org,jgruber@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:6624
      Change-Id: I9906c9ea15a623226b890f63bc65876a6f5203f8
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/638331Reviewed-by: 's avatarMichael Hablich <hablich@chromium.org>
      Commit-Queue: Michael Hablich <hablich@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47648}
      a588411e
  13. 25 Aug, 2017 1 commit
    • Jakob Gruber's avatar
      [snapshot] Move builtins to dedicated snapshot area · 49e3bfd5
      Jakob Gruber authored
      As a first step towards lazy builtin deserialization, this CL moves
      builtins to their own dedicated area in the snapshot blob, physically
      located after startup data and before context-specific data.
      
      The startup- and partial serializers now serialize all seen builtins as
      references, i.e. they only encode the relevant builtin id (taking care
      to preserve special behavior around the interpreter trampoline and
      CompileLazy). Builtins are later fully serialized by the
      BuiltinSerializer. The separate blobs are finally glued together by
      CreateSnapshotBlob.
      
      Deserialization takes the same steps: when we see builtin reference
      bytecodes before builtins have been deserialized, we push to a list of
      deferred builtin references. After builtin deserialization, this list is
      iterated and all builtin references are fixed up.
      
      Bug: v8:6624
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Idee42fa9c92bdbe8d5b8c4b8bf3ca9dd39634004
      Reviewed-on: https://chromium-review.googlesource.com/610225Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47596}
      49e3bfd5
  14. 08 Aug, 2017 2 commits
    • Jakob Gruber's avatar
      [snapshot] Simplify deserializer APIs · 95f86859
      Jakob Gruber authored
      This moves deserializer setup boilerplate inside the deserializers, and
      makes improper usage less likely. For instance:
      
        ObjectDeserializer deserializer(&scd);
        /* ... deserializer setup ... */
        MaybeHandle<HeapObject> obj = deserializer.Deserialize(isolate);
        /* ... result checks and casts ... */
      
      has now become:
      
        /* All setup and casts inside deserializer, impossible to illegally
           use the same instance multiple times. */
        MaybeHandle<SharedFunctionInfo> maybe_result =
            ObjectDeserializer::DeserializeSharedFunctionInfo(
                isolate, &scd, source);
      
      Bug: v8:6624
      Change-Id: Id5a1848e024e89cf86e5292389ba7c89f31d8e6b
      Reviewed-on: https://chromium-review.googlesource.com/604791
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47219}
      95f86859
    • Jakob Gruber's avatar
      [snapshot] Continue splitting up Deserializer · 2e2069cd
      Jakob Gruber authored
      Another pure refactoring CL. This extracts methods used only by Deserializer
      subclasses.
      
      Bug: v8:6624
      Change-Id: Ib4dd7cdc591dff217e282e68a490c8c7129b9c96
      Reviewed-on: https://chromium-review.googlesource.com/602188
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47211}
      2e2069cd
  15. 03 Aug, 2017 1 commit
    • jgruber's avatar
      [snapshot] Begin splitting up Deserializer · b68b63fc
      jgruber authored
      This begins splitting up the Deserializer class into
      {Object,Partial,Startup}Deserializer.  For now, all functionality remains in
      the Deserializer base clase, to be refactored in future CLs.  Empty .cc files
      are added here to avoid having to touch build files again.
      
      Bug: v8:6624
      Change-Id: If563e03492991bd55c91cd2e09312c0a26aaab2c
      Reviewed-on: https://chromium-review.googlesource.com/598067Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#47107}
      b68b63fc