1. 17 Jul, 2018 1 commit
  2. 16 Jul, 2018 3 commits
  3. 13 Jul, 2018 1 commit
    • Michael Lippautz's avatar
      Revert "Reland "[heap] Added External Strings to external memory accounting."" · 71dddd14
      Michael Lippautz authored
      This reverts commit 7bff339e.
      
      Reason for revert: Breaks autoroll, see bug.
      
      Bug: v8:7944
      
      Original change's description:
      > Reland "[heap] Added External Strings to external memory accounting."
      > 
      > This is a reland of 5863c0b6
      > 
      > Original change's description:
      > > [heap] Added External Strings to external memory accounting.
      > > 
      > > Bug: chromium:845409
      > > Change-Id: I3fe2b294f6e038d77787cf0870d244ba7cc20550
      > > Reviewed-on: https://chromium-review.googlesource.com/1118164
      > > Commit-Queue: Rodrigo Bruno <rfbpb@google.com>
      > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#54110}
      > 
      > Bug: chromium:845409
      > Change-Id: Ied341ec6268000343d2a577b22f2a483460b01f5
      > Reviewed-on: https://chromium-review.googlesource.com/1121736
      > Commit-Queue: Rodrigo Bruno <rfbpb@google.com>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#54410}
      
      TBR=ulan@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,petermarshall@chromium.org,rfbpb@google.com
      
      Change-Id: Ie55586e84f44a2d83c7f97110d60abb86f0730c5
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:845409
      Reviewed-on: https://chromium-review.googlesource.com/1136312Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54428}
      71dddd14
  4. 12 Jul, 2018 3 commits
  5. 10 Jul, 2018 1 commit
  6. 09 Jul, 2018 1 commit
    • Sigurd Schneider's avatar
      [turbofan] Use relative calls/jumps on arm for builtins · 23dbb81d
      Sigurd Schneider authored
      This CL uses pc-relative jumps and calls (B/BL) for calls from embedded
      builtins to embedded builtins. To make this work, the code range size is
      limited to 32MB on arm during mksnapshot, which ensures that all builtin
      to builtin offsets for jumps/calls fit into the B/BL immediate. At code
      generation time, we put a placeholder into the instruction offset which
      we resolve to the right code object when the code is copied to the heap.
      We use a new relocation mode RELATIVE_CODE_TARGET for these relative jumps.
      The relocation mode RELATIVE_CODE_TARGET should never appear after
      generating the snapshot.
      
      We modify the target_address/set_target_address methods of RelocInfo
      such that they return the absolute target addresses for pc-relative B/BL
      instructions. This ensures that the GC can treat RELATIVE_CODE_TARGET in
      the same way as code targets. This, however, only matters during
      snapshot creation time, and production code never contains
      RELATIVE_CODE_TARGET relocations.
      
      Bug: v8:6666
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: If7eab83ad588859ca87c654a5ddc3e37caea884c
      Reviewed-on: https://chromium-review.googlesource.com/1117181Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54320}
      23dbb81d
  7. 05 Jul, 2018 5 commits
  8. 04 Jul, 2018 6 commits
  9. 03 Jul, 2018 1 commit
  10. 02 Jul, 2018 1 commit
  11. 28 Jun, 2018 2 commits
  12. 27 Jun, 2018 2 commits
  13. 26 Jun, 2018 2 commits
  14. 25 Jun, 2018 1 commit
  15. 22 Jun, 2018 1 commit
  16. 20 Jun, 2018 1 commit
  17. 18 Jun, 2018 1 commit
  18. 12 Jun, 2018 2 commits
  19. 07 Jun, 2018 1 commit
  20. 30 May, 2018 1 commit
    • jgruber's avatar
      [api] Add option to consume code cache on module compilation · 70b5fd3b
      jgruber authored
      This extends the ScriptCompiler::CompileModule function with a
      CompileOptions argument. Accepted values are kNoCompileOptions (in
      which case, behavior remains unmodified) and kConsumeCodeCache. If the
      latter is passed, we try to fetch the given module from the code
      cache.
      
      Since it is possible to compile the same source code as both a script
      and a module (and different code is generated for the two cases), a
      new is_module bit is added to the SerializedCodeData header to
      disambiguate between the two cases.
      
      Bug: v8:7685
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: I34b3642505577ed9ed0caedbee5876308c5a53ea
      Reviewed-on: https://chromium-review.googlesource.com/1073327
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53432}
      70b5fd3b
  21. 28 May, 2018 1 commit
  22. 25 May, 2018 1 commit
    • jgruber's avatar
      [builtins,x64] pc-relative builtin-to-builtin calls · e5630ea9
      jgruber authored
      This addresses one of the major remaining slowdowns with embedded
      builtins on x64.
      
      When generating code for a call to a builtin callee from a builtin
      caller, we'd look up the Code target object from the builtins constant
      list, calculate the location of the first instruction, and jump to it.
      Note that for embedded builtin callees, the Code object is itself only
      a trampoline to the off-heap code and thus an additional indirection.
      An example of the call sequence in pseudo-asm:
      
      // Load from the constants list.
      mov reg, [kRootPointer, kBuiltinsConstantListOffset]
      mov reg, [reg, offset_of_the_code_constant]
      // Calculate first instruction and call it.
      add reg, Code::kHeaderOffset
      call reg
      // The trampoline forwards to the off-heap area.
      mov kOffHeapTrampolineRegister, <off-heap instruction_start>
      jmp kOffHeapTrampolineRegister
      
      This CL changes calls to embedded builtin targets to use pc-relative
      addressing. This reduces the above instruction sequence to:
      
      call <pc-relative offset to target instruction_start>
      
      Embedded-to-embedded calls jump directly to the embedded instruction
      stream, bypassing the trampoline. Heap-to-embedded calls (and all
      calls to heap-builtins) use pc-relative addressing targeting the
      on-heap Code object.
      
      Other relevant platforms (arm,arm64,mips,mips64) do not use pc-relative
      calls. For these, we'll need a different solution, e.g. a table of
      embedded builtin addresses reachable from the root pointer, similar to
      the external reference table.
      
      Bug: v8:6666
      Change-Id: Ic0317d454e2da37d74eaecebcdfcbc0d5f5041ad
      Reviewed-on: https://chromium-review.googlesource.com/1068732
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53349}
      e5630ea9
  23. 23 May, 2018 1 commit