1. 25 May, 2018 4 commits
    • Stephan Herhut's avatar
      [wasm] Emit IA disassembly for --trace-turbo · ee82333b
      Stephan Herhut authored
      This adds basic support to emit IA disassembly to the json files
      digested by turbolizer.
      
      Change-Id: I8964c2f44565e8242e09c9be879c7db2654b65b6
      Reviewed-on: https://chromium-review.googlesource.com/1071669Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Stephan Herhut <herhut@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53351}
      ee82333b
    • Marja Hölttä's avatar
      [in-place weak refs] Replace the WeakCell(transition_map) in DataHandlers. · 99bf9068
      Marja Hölttä authored
      BUG=v8:7308
      
      Change-Id: Ia74e5696133ec183ff550da011452b0c12a06e40
      Reviewed-on: https://chromium-review.googlesource.com/1068883
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#53350}
      99bf9068
    • 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
    • Junliang Yan's avatar
      PPC/s390: [generators] Store parameters in the generator object. · 2f2bf246
      Junliang Yan authored
      Port ea7499f5
      
      Original Commit Message:
      
          Currently, we context allocate all parameters for generators.
      
          With this CL, we keep arguments on stack (unless they escape to inner
          closure) and copy them between the stack and the generator's register
          file on suspend/resume. This will save context allocation in most cases.
      
          - Suspend copies arguments and registers to the generator.
          - Resume copies only the registers from the generator, the arguments
            are copied by the ResumeGenerator trampoline.
      
      R=jarin@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I4a22024ce4e29a4e0217697a3b53b1c7bba0ddf1
      Reviewed-on: https://chromium-review.googlesource.com/1072309Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#53348}
      2f2bf246
  2. 24 May, 2018 31 commits
  3. 23 May, 2018 5 commits