1. 13 Sep, 2018 1 commit
  2. 10 Sep, 2018 1 commit
    • Dan Elphick's avatar
      [embedded handlers] Store the handlers without gaps · 5a9f0556
      Dan Elphick authored
      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: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55757}
      5a9f0556
  3. 07 Sep, 2018 1 commit
  4. 05 Sep, 2018 1 commit
  5. 03 Sep, 2018 2 commits
  6. 30 Aug, 2018 1 commit
  7. 27 Aug, 2018 1 commit
  8. 22 Aug, 2018 2 commits
  9. 21 Aug, 2018 2 commits
    • jgruber's avatar
      [builtins] Mark initial builtins on ia32 isolate-independent · 6ab19087
      jgruber authored
      This populates the isolate-independent builtin whitelist with initial
      builtins that do not access any isolate-dependent data and thus don't
      need the root register at all.
      
      Unlike most other platforms, we can't use a scratch register in the
      off-heap trampoline since there's no free register available. The
      trampolines on ia32 are thus implemented as pc-relative jumps
      (thankfully we can address the entire address space).
      
      Drive-by: Made Code::IsIsolateIndependent consistent with
      FinalizeEmbeddedCodeTargets. Code targets are only allowed on some
      platforms.
      
      Bug: v8:6666
      Change-Id: I0bf02eecba8a099afa7b7c892188cd377cbda840
      Reviewed-on: https://chromium-review.googlesource.com/1183224Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55265}
      6ab19087
    • Dan Elphick's avatar
      Reland "[builtins] Start adding byte code handlers to builtins" · fe5e07d7
      Dan Elphick authored
      This is a reland of 041ae1f8
      
      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/1181981Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55244}
      fe5e07d7
  10. 20 Aug, 2018 3 commits
    • Dan Elphick's avatar
      Revert "[builtins] Start adding byte code handlers to builtins" · 737ffec5
      Dan Elphick authored
      This reverts commit 041ae1f8.
      
      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/1181301Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55225}
      737ffec5
    • Dan Elphick's avatar
      [cleanup] Remove dead code in StartupSerializer · 7b3676da
      Dan Elphick authored
      Now that we don't iterate over the strong roots in the StartupSerializer
      twice, remove code related to skipping non-immortal immovable roots.
      Factor out code from Serializer::VisitRootPointers and use that method in
      the StartSerializer override.
      
      Also update comments that reflected the old way of serializing.
      
      Change-Id: Ieb5e63389f455b963244717cada7e5ccde8e41cb
      Reviewed-on: https://chromium-review.googlesource.com/1179669
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55218}
      7b3676da
    • Dan Elphick's avatar
      [builtins] Start adding byte code handlers to builtins · 041ae1f8
      Dan Elphick authored
      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: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55215}
      041ae1f8
  11. 17 Aug, 2018 3 commits
  12. 14 Aug, 2018 3 commits
  13. 10 Aug, 2018 1 commit
  14. 08 Aug, 2018 1 commit
  15. 02 Aug, 2018 1 commit
  16. 01 Aug, 2018 3 commits
  17. 31 Jul, 2018 1 commit
    • Michael Achenbach's avatar
      Revert "[builtins] Clear RelocInfo for off-heap trampolines" · 332f5e8c
      Michael Achenbach authored
      This reverts commit d854d351.
      
      Reason for revert: Speculative revert for webkit unit tests:
      https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Linux%2064/25209
      
      Original change's description:
      > [builtins] Clear RelocInfo for off-heap trampolines
      > 
      > For technical reasons, we used to serialize off-heap trampolines with a
      > RelocInfo containing a single OFF_HEAP_TARGET entry. This RelocInfo was
      > never needed at runtime. It also ended up being somewhat misleading
      > because printing an embedded code object would show the OFF_HEAP_TARGET
      > entry (belonging to the trampoline) at the first 'real' instruction.
      > 
      > With this CL, we explicitly serialize an empty byte array as the reloc
      > info for each off-heap trampoline, i.e. the snapshot will never contain
      > such off-heap target reloc infos.
      > 
      > Bug: v8:6666, v8:7969
      > Change-Id: If6fa85a438d093ed5dcea07ce0de1db49a224d28
      > Reviewed-on: https://chromium-review.googlesource.com/1146643
      > Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54786}
      
      TBR=yangguo@chromium.org,jgruber@chromium.org
      
      Change-Id: If5eabd162141149361df90095b89a173fe2cb81e
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:6666, v8:7969
      Reviewed-on: https://chromium-review.googlesource.com/1155594Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54801}
      332f5e8c
  18. 30 Jul, 2018 1 commit
    • jgruber's avatar
      [builtins] Clear RelocInfo for off-heap trampolines · d854d351
      jgruber authored
      For technical reasons, we used to serialize off-heap trampolines with a
      RelocInfo containing a single OFF_HEAP_TARGET entry. This RelocInfo was
      never needed at runtime. It also ended up being somewhat misleading
      because printing an embedded code object would show the OFF_HEAP_TARGET
      entry (belonging to the trampoline) at the first 'real' instruction.
      
      With this CL, we explicitly serialize an empty byte array as the reloc
      info for each off-heap trampoline, i.e. the snapshot will never contain
      such off-heap target reloc infos.
      
      Bug: v8:6666, v8:7969
      Change-Id: If6fa85a438d093ed5dcea07ce0de1db49a224d28
      Reviewed-on: https://chromium-review.googlesource.com/1146643
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54786}
      d854d351
  19. 27 Jul, 2018 2 commits
    • Michael Lippautz's avatar
      Update manual write barrier calls for new entry point · af010cfb
      Michael Lippautz authored
      The initial CL only re-wired the macro but did not convert the remaining
      manual uses.
      
      Change-Id: Ia4c6dea006d7c026d2376affee0b7027f5aa7895
      Reviewed-on: https://chromium-review.googlesource.com/1152907Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54753}
      af010cfb
    • Peter Marshall's avatar
      [cpu-profiler] Use instruction start as the key for the CodeMap · ba752ea4
      Peter Marshall authored
      Previously we used the start address of the AbstractCode object. This
      doesn't make sense for off-heap builtins, where the code isn't contained
      in the object itself. It also hides other potential problems - sometimes
      the sample.pc is inside the AbstractCode object header - this is
      never valid.
      
      There were a few changes necessary to make this happen:
        - Change the interface of CodeMoveEvent. Now 'to' and 'from' are both
          AbstractCode objects, which is nice because many users were taking
          'to' and adding the header offset to it to try and find the
          instruction start address. This isn't valid for off-heap builtins.
        - Fix a bug in CodeMap::MoveCode where we didn't update the CodeEntry
          object to reflect the new instruction_start.
        - Rename the 'start' field in all of the CodeEventRecord sub-classes
          to make it clear that this is the address of the first instruction.
        - Fix the confusion in RecordTickSample between 'tos' and 'pc' which
          caused pc_offset to be calculated incorrectly.
      
      Bug: v8:7983
      Change-Id: I3e9dddf74e4b2e96a5f031d216ef7008d6f184d1
      Reviewed-on: https://chromium-review.googlesource.com/1148457
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54749}
      ba752ea4
  20. 26 Jul, 2018 2 commits
  21. 25 Jul, 2018 3 commits
  22. 24 Jul, 2018 4 commits
    • Marja Hölttä's avatar
      Reland [in-place weak refs] Replace Heap::script_list with a WeakArrayList. · ce195618
      Marja Hölttä authored
      Previous version: https://chromium-review.googlesource.com/c/v8/v8/+/1143467
      
      BUG=v8:7308
      TBR=jgruber@chromium.org
      
      Change-Id: I0c1fe73250b0aed270cdb9fa5e1bc55315ace3d2
      Reviewed-on: https://chromium-review.googlesource.com/1148333
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54650}
      ce195618
    • Marja Hölttä's avatar
      Revert "Reland "[in-place weak refs] Replace Heap::script_list with a WeakArrayList."" · 9cf74f67
      Marja Hölttä authored
      This reverts commit 1233e7c9.
      
      Reason for revert: There were more test failures, e.g. linux nosnap.
      
      Original change's description:
      > Reland "[in-place weak refs] Replace Heap::script_list with a WeakArrayList."
      > 
      > This reverts commit cfccdf88.
      > 
      > Reason for revert: Was a faulty test.
      > 
      > Original change's description:
      > > Revert "[in-place weak refs] Replace Heap::script_list with a WeakArrayList."
      > > 
      > > This reverts commit 06f556d8.
      > > 
      > > Reason for revert: gc stress failures
      > > 
      > > Original change's description:
      > > > [in-place weak refs] Replace Heap::script_list with a WeakArrayList.
      > > > 
      > > > BUG=v8:7308
      > > > 
      > > > Change-Id: Idd527fc2a2f5bde635441a511e424a83558ab969
      > > > Reviewed-on: https://chromium-review.googlesource.com/1143467
      > > > Commit-Queue: Marja Hölttä <marja@chromium.org>
      > > > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#54635}
      > > 
      > > TBR=ulan@chromium.org,marja@chromium.org,jgruber@chromium.org
      > > 
      > > Change-Id: I6908fa42fcf4a8916a1dc49b865526094f950c66
      > > No-Presubmit: true
      > > No-Tree-Checks: true
      > > No-Try: true
      > > Bug: v8:7308
      > > Reviewed-on: https://chromium-review.googlesource.com/1148280
      > > Reviewed-by: Marja Hölttä <marja@chromium.org>
      > > Commit-Queue: Marja Hölttä <marja@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#54636}
      > 
      > TBR=ulan@chromium.org,marja@chromium.org,jgruber@chromium.org
      > 
      > Change-Id: I2451ed0237b69bf17bbe13f4929568ebe2abfc67
      > No-Presubmit: true
      > No-Tree-Checks: true
      > No-Try: true
      > Bug: v8:7308
      > Reviewed-on: https://chromium-review.googlesource.com/1148340
      > Reviewed-by: Marja Hölttä <marja@chromium.org>
      > Commit-Queue: Marja Hölttä <marja@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54639}
      
      TBR=ulan@chromium.org,marja@chromium.org,jgruber@chromium.org
      
      Change-Id: I60ebd9784416740c92b32aa92e330755d847b882
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7308
      Reviewed-on: https://chromium-review.googlesource.com/1148341Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54642}
      9cf74f67
    • Marja Hölttä's avatar
      Reland "[in-place weak refs] Replace Heap::script_list with a WeakArrayList." · 1233e7c9
      Marja Hölttä authored
      This reverts commit cfccdf88.
      
      Reason for revert: Was a faulty test.
      
      Original change's description:
      > Revert "[in-place weak refs] Replace Heap::script_list with a WeakArrayList."
      > 
      > This reverts commit 06f556d8.
      > 
      > Reason for revert: gc stress failures
      > 
      > Original change's description:
      > > [in-place weak refs] Replace Heap::script_list with a WeakArrayList.
      > > 
      > > BUG=v8:7308
      > > 
      > > Change-Id: Idd527fc2a2f5bde635441a511e424a83558ab969
      > > Reviewed-on: https://chromium-review.googlesource.com/1143467
      > > Commit-Queue: Marja Hölttä <marja@chromium.org>
      > > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#54635}
      > 
      > TBR=ulan@chromium.org,marja@chromium.org,jgruber@chromium.org
      > 
      > Change-Id: I6908fa42fcf4a8916a1dc49b865526094f950c66
      > No-Presubmit: true
      > No-Tree-Checks: true
      > No-Try: true
      > Bug: v8:7308
      > Reviewed-on: https://chromium-review.googlesource.com/1148280
      > Reviewed-by: Marja Hölttä <marja@chromium.org>
      > Commit-Queue: Marja Hölttä <marja@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54636}
      
      TBR=ulan@chromium.org,marja@chromium.org,jgruber@chromium.org
      
      Change-Id: I2451ed0237b69bf17bbe13f4929568ebe2abfc67
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7308
      Reviewed-on: https://chromium-review.googlesource.com/1148340Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54639}
      1233e7c9
    • Marja Hölttä's avatar
      Revert "[in-place weak refs] Replace Heap::script_list with a WeakArrayList." · cfccdf88
      Marja Hölttä authored
      This reverts commit 06f556d8.
      
      Reason for revert: gc stress failures
      
      Original change's description:
      > [in-place weak refs] Replace Heap::script_list with a WeakArrayList.
      > 
      > BUG=v8:7308
      > 
      > Change-Id: Idd527fc2a2f5bde635441a511e424a83558ab969
      > Reviewed-on: https://chromium-review.googlesource.com/1143467
      > Commit-Queue: Marja Hölttä <marja@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54635}
      
      TBR=ulan@chromium.org,marja@chromium.org,jgruber@chromium.org
      
      Change-Id: I6908fa42fcf4a8916a1dc49b865526094f950c66
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7308
      Reviewed-on: https://chromium-review.googlesource.com/1148280Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54636}
      cfccdf88