1. 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
  2. 03 Aug, 2017 2 commits
  3. 02 Aug, 2017 1 commit
  4. 01 Aug, 2017 1 commit
  5. 27 Jul, 2017 2 commits
  6. 25 Jul, 2017 1 commit
  7. 24 Jul, 2017 3 commits
  8. 21 Jul, 2017 1 commit
    • Ulan Degenbaev's avatar
      [heap, deserializer] Restore marking invariant for deserialized maps · 250ba28a
      Ulan Degenbaev authored
      when black allocation is on.
      
      The scenario:
      1) Incremental marking is off.
      2) Partial deserialization starts and calls Heap::ReserveSpace.
      2) ReserveSpace creates (white) reservations in old space.
      3) ReserveSpace allocates map placeholders. One of these allocations
      starts incremental marking, which starts black allocation (currently
      when concurrent marking is on). Subsequent maps are black allocated.
      4) ReserveSpace succeeds without triggering a GC.
      5) Deserialization continues. Some maps are black. Note that
      deserialization emits only old->new write barriers and skips
      marking write barriers.
      6) Deserialization finishes and re-visits the black allocated
      reservations and large object. This misses black allocated maps.
      7) There is black->white descriptor array pointer in one of these map.
      
      BUG=chromium:723600
      
      Change-Id: Ifffe46f22a7d7dbc5cff2e882190234fcc722ccb
      Reviewed-on: https://chromium-review.googlesource.com/581187
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46816}
      250ba28a
  9. 20 Jul, 2017 1 commit
  10. 18 Jul, 2017 1 commit
  11. 14 Jul, 2017 1 commit
  12. 13 Jul, 2017 1 commit
  13. 10 Jul, 2017 1 commit
  14. 26 Jun, 2017 1 commit
    • hans's avatar
      Make some functions that are hit during renderer startup available for inlining · 777da354
      hans authored
      This is towards closing the perf gap between the MSVC build (which uses link-
      time optimization) and Clang (where LTO isn't ready on Windows yet). We did
      a study (see bug) to see which non-inlined functions are hit a lot during render
      start-up, and which would be inlined during LTO. This should benefit performance
      in all builds which currently don't use LTO (Android, Linux, Mac) as well as
      the Win/Clang build.
      
      The binary size of chrome_child.dll increases by 2KB with this.
      
      BUG=chromium:728324
      CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_compile_dbg_ng;master.tryserver.chromium.mac:mac_chromium_compile_dbg_ng
      
      Review-Url: https://codereview.chromium.org/2950993002
      Cr-Commit-Position: refs/heads/master@{#46229}
      777da354
  15. 25 Jun, 2017 1 commit
  16. 23 Jun, 2017 1 commit
    • hans's avatar
      Make some functions that are hit during renderer startup available for inlining · d00d52be
      hans authored
      This is towards closing the perf gap between the MSVC build (which uses link-
      time optimization) and Clang (where LTO isn't ready on Windows yet). We did
      a study (see bug) to see which non-inlined functions are hit a lot during render
      start-up, and which would be inlined during LTO. This should benefit performance
      in all builds which currently don't use LTO (Android, Linux, Mac) as well as
      the Win/Clang build.
      
      The binary size of chrome_child.dll increases by 2KB with this.
      
      BUG=chromium:728324
      
      Review-Url: https://codereview.chromium.org/2950993002
      Cr-Commit-Position: refs/heads/master@{#46191}
      d00d52be
  17. 16 Jun, 2017 1 commit
  18. 13 Jun, 2017 4 commits
  19. 12 Jun, 2017 1 commit
  20. 02 Jun, 2017 1 commit
    • thakis's avatar
      v8: Fix unaligned access when deserializing snapshots. · 13af45c9
      thakis authored
      The code was already careful to use memcpy() here, but then it
      added needless casts to wider types that made the compiler think
      that it can do 4-byte-aligned accesses when it couldn't.
      
      (It's also a bug that the snapshot got loaded at an unaligned
      address, but we can fix both bugs.)
      
      BUG=chromium:729059
      
      Review-Url: https://codereview.chromium.org/2915323002
      Cr-Commit-Position: refs/heads/master@{#45698}
      13af45c9
  21. 27 May, 2017 1 commit
  22. 22 May, 2017 1 commit
  23. 10 May, 2017 1 commit
    • jkummerow's avatar
      [deserializer] Make large object deserialization GC safe · 6bfee50e
      jkummerow authored
      When black allocation is turned on at deserialization time, then
      slots in deserialized objects have to be visited by the incremental
      marker. For spaces with reservations, this has always been done; for
      large object space with its special handling, this patch adds it.
      
      Additionally, we must ensure that no incremental steps that might
      cause incremental marking to finish are performed while there is an
      AlwaysAllocateScope around.
      
      BUG=chromium:718859
      
      Review-Url: https://codereview.chromium.org/2868103002
      Cr-Commit-Position: refs/heads/master@{#45231}
      6bfee50e
  24. 28 Apr, 2017 1 commit
  25. 27 Apr, 2017 1 commit
  26. 26 Apr, 2017 2 commits
  27. 25 Apr, 2017 5 commits