1. 13 Mar, 2019 1 commit
  2. 15 Feb, 2019 1 commit
  3. 08 Feb, 2019 3 commits
  4. 31 Jan, 2019 1 commit
  5. 30 Jan, 2019 1 commit
    • Jakob Gruber's avatar
      [builtins] Remove canonicalization during serialization · 9592b043
      Jakob Gruber authored
      Now that we generate the embedded blob and off-heap trampolines
      directly after builtin generation, the heap should not contain any
      remaining references to full on-heap builtin Code objects.
      
      The one exception is the interpreter entry trampoline copy for
      profiling. This mechanism was actually broken by canonicalization; we
      intended to store a full copy of the IET on the root list, but
      serialization replaced it with the canonicalized builtin. This CL
      fixes that as a side-effect.
      
      Bug: v8:8716
      Change-Id: Ib37c4004560d67de46b1f8ebe75156361134f57d
      Reviewed-on: https://chromium-review.googlesource.com/c/1421037
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59219}
      9592b043
  6. 26 Dec, 2018 1 commit
  7. 20 Dec, 2018 1 commit
  8. 17 Dec, 2018 2 commits
  9. 14 Dec, 2018 1 commit
  10. 07 Dec, 2018 1 commit
  11. 28 Nov, 2018 1 commit
  12. 25 Nov, 2018 1 commit
  13. 23 Nov, 2018 1 commit
  14. 31 Oct, 2018 1 commit
  15. 24 Oct, 2018 1 commit
  16. 16 Oct, 2018 2 commits
    • 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
    • Dan Elphick's avatar
      Clarify roots iteration · 08b8e0ff
      Dan Elphick authored
      Change Heap::IterateStrongRoots to never iterate the read-only roots. In
      doing so remove VISIT_ALL_BUT_READ_ONLY and
      VISIT_ONLY_STRONG_FOR_SERIALIZATION. All such uses should now use
      VISIT_ALL and VISIT_ONLY_STRONG. Where ReadOnlyRoots iteration is
      required, this adds ReadOnlyRoots(isolate)->Iterate() at the call site.
      
      Add new begin, end, strong_mutable_roots_begin and
      strong_mutable_roots_end methods to RootsTable and try and make the
      existing uses a little more consistent.
      
      Bug: v8:8191
      Change-Id: Ie9d0f9e5186db418428e2fafd38432b0bd879daa
      Reviewed-on: https://chromium-review.googlesource.com/c/1278500
      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@{#56672}
      08b8e0ff
  17. 11 Oct, 2018 1 commit
  18. 10 Oct, 2018 2 commits
    • Dan Elphick's avatar
      Reland "[snapshot] Factor out root serialization code" · ce9198e4
      Dan Elphick authored
      This is a reland of 22b56f47
      
      Nothing has changed. This is a reland of a speculative revert.
      
      Original change's description:
      > [snapshot] Factor out root serialization code
      >
      > Factors out a new method Serializer::SerializeRoot which attempts to
      > serialize a given object as a Root if it is one and the Serializer's
      > policy allows that root to be serialized (implemented as a new virtual
      > method RootCanBeSerialized)..
      >
      > This is in preparation for adding a ReadOnlySerializer which change the
      > way read-only roots are serialized.
      >
      > Bug: v8:8191
      > Change-Id: I7fbb4e9520fba8b836a0b6bf95ca39abc3ded79e
      > Reviewed-on: https://chromium-review.googlesource.com/c/1264698
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56494}
      
      TBR=jgruber
      
      Bug: v8:8191
      Change-Id: I30a606b9c99f5651fae323d12f8f74b13bb085fa
      Reviewed-on: https://chromium-review.googlesource.com/c/1273103Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56519}
      ce9198e4
    • Maya Lekova's avatar
      Revert "[snapshot] Factor out root serialization code" · 74aea87a
      Maya Lekova authored
      This reverts commit 22b56f47.
      
      Reason for revert: Speculatively reverting because it increases Android binary size unexpectedly, see https://ci.chromium.org/p/chromium/builders/luci.chromium.try/android-binary-size/72572
      
      Original change's description:
      > [snapshot] Factor out root serialization code
      > 
      > Factors out a new method Serializer::SerializeRoot which attempts to
      > serialize a given object as a Root if it is one and the Serializer's
      > policy allows that root to be serialized (implemented as a new virtual
      > method RootCanBeSerialized)..
      > 
      > This is in preparation for adding a ReadOnlySerializer which change the
      > way read-only roots are serialized.
      > 
      > Bug: v8:8191
      > Change-Id: I7fbb4e9520fba8b836a0b6bf95ca39abc3ded79e
      > Reviewed-on: https://chromium-review.googlesource.com/c/1264698
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56494}
      
      TBR=jgruber@chromium.org,delphick@chromium.org,ygg@google.com
      
      Change-Id: I7012abec0f33f655efc64dc44f7fa461d7e4b7e9
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8191
      Reviewed-on: https://chromium-review.googlesource.com/c/1273098Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56509}
      74aea87a
  19. 09 Oct, 2018 1 commit
    • Dan Elphick's avatar
      [snapshot] Factor out root serialization code · 22b56f47
      Dan Elphick authored
      Factors out a new method Serializer::SerializeRoot which attempts to
      serialize a given object as a Root if it is one and the Serializer's
      policy allows that root to be serialized (implemented as a new virtual
      method RootCanBeSerialized)..
      
      This is in preparation for adding a ReadOnlySerializer which change the
      way read-only roots are serialized.
      
      Bug: v8:8191
      Change-Id: I7fbb4e9520fba8b836a0b6bf95ca39abc3ded79e
      Reviewed-on: https://chromium-review.googlesource.com/c/1264698Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56494}
      22b56f47
  20. 26 Sep, 2018 1 commit
  21. 20 Sep, 2018 1 commit
  22. 20 Aug, 2018 1 commit
  23. 19 Jul, 2018 1 commit
    • Leszek Swirski's avatar
      [sfi] Remove SFI function identifier field · c941f11a
      Leszek Swirski authored
      Remove the function identifier field from SharedFunctionInfo. This field
      would store one of a) the function's inferred name, b) the "builtin
      function id", or c) debug info. We remove these in turn:
      
      a) The function's inferred name is available on the ScopeInfo, so like
         the start/end position we read it off either the ScopeInfo (for
         compiled functions) or the UncompiledData (for uncompiled functions).
      
         As a side-effect, now both UncompiledData and its subclass,
         UncompiledDataWithPreparsedScope, contain a pointer field. To keep
         BodyDescriptors manageable, we introduce a SubclassBodyDescriptor
         which effectively appends two BodyDescriptors together.
      
      b) The builtin function id is < 255, so we can steal a byte from
         expected no. of properies (also <255) and store these together.
         Eventually we want to get rid of this field and use the builtin ID,
         but this is pending JS builtin removal.
      
         As a side-effect, BuiltinFunctionId becomes an enum class (for better
         storage size guarantees).
      
      c) The debug info can hang off anything (since it stores the field it
         replaces), so we can attach it to the script field instead.
      
      This saves a word on compiled function (uncompiled functions
      unfortunately still have to store it in UncompiledData).
      
      Bug: chromium:818642
      Change-Id: I8b4b3a070f0fe328aafcaeac58842d144d12d996
      Reviewed-on: https://chromium-review.googlesource.com/1138328Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54543}
      c941f11a
  24. 16 Jul, 2018 1 commit
  25. 12 Jul, 2018 1 commit
    • Leszek Swirski's avatar
      [cleanup] Remove Isolate parameter from object print · 13b899a5
      Leszek Swirski authored
      With ReadOnlyRoots and GetIsolate on JSReceiver, we can remove almost
      every isolate parameter from <Object>::Print. The remaining ones, like
      Map, are special-caseable for read-only maps, and as a result we can
      remove isolate parameters from <Object>::Print entirely.
      
      This patch also opportunistically cleans up a few places where isolates
      were only needed for Object::Print, such as TransitionAccessors and
      DescriptorArrays.
      
      TBR=yangguo@chromium.org,mstarzinger@chromium.org
      
      Bug: v8:7786
      Change-Id: Id44bd53b9893e679eea5f37b9548257595a1bfd9
      Reviewed-on: https://chromium-review.googlesource.com/1133385Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54401}
      13b899a5
  26. 04 Jul, 2018 1 commit
  27. 26 Jun, 2018 1 commit
  28. 17 Apr, 2018 1 commit
  29. 22 Mar, 2018 3 commits
  30. 23 Feb, 2018 1 commit
  31. 14 Feb, 2018 1 commit
  32. 09 Jan, 2018 1 commit
  33. 26 Dec, 2017 1 commit