1. 26 Aug, 2022 2 commits
  2. 22 Aug, 2022 1 commit
    • ishell@chromium.org's avatar
      [runtime] Merge redirected and non-redirected callback fields · 134ca75c
      ishell@chromium.org authored
      Namely:
       - AccessorInfo::getter and AccessorInfo::js_getter,
       - CallHandlerInfo::callback and CallHandlerInfo::js_callback.
      
      The redirected/non-redirected callback distinction is required only
      for simulated builds but we wasted memory also for all native builds.
      
      Now we store these fields in "redirected" form which allows us to call
      them directly from builtins or generated code. In case it's necessary
      to call a callback from C++ code the C function address is read from
      the redirection. This additional indirection makes the callback calls
      from C++ code in simulated builds slower but saves memory for native
      builds.
      
      This CL should recover a part of memory regression caused by inlining
      Foreign fields into AccessorInfo and CallHandlerInfo.
      
      Bug: v8:12949, chromium:1336105, chromium:1335930
      Change-Id: I38470ed21ee23b281247c11a9531542c7e4acca1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3835686Reviewed-by: 's avatarJakob Linke <jgruber@chromium.org>
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#82631}
      134ca75c
  3. 12 Aug, 2022 1 commit
  4. 08 Aug, 2022 1 commit
    • ishell@chromium.org's avatar
      [ext-code-space] Add InterpreterEntryTrampolineForProfiling builtin · 1067c6ac
      ishell@chromium.org authored
      ... - a code range size agnostic version of InterpreterEntryTrampoline
      builtin. The new builtin is fully compatible with the default version
      and used as a template for creating interpreter entry trampoline
      Code objects when --interpreted-frames-native-stack is enabled.
      
      This CL introduces a new assembler option "position_independent_code"
      which affects the way builtin calls are generated.
      This mode is enabled only for InterpreterEntryTrampolineForProfiling.
      
      Motivation:
      
      * InterpreterEntryTrampoline uses RelocInfo::CODE_TARGET for calling
        other builtins which requires the code range to be small enough to
        allow PC-relative jumps/calls between Code objects. This is the
        reason why --interpreted-frames-native-stack was not supported on
        arm and might not work on arm64 because the code range is bigger
        than the max PC-relative distance for call/jump instructions.
        The new builtin calls other builtins via builtins entry table which
        makes the code fully relocatable and usable for any code range size.
      
      * RelocInfo::CODE_TARGET requires a target code to be materialized
        as a Code object which contradicts the Code-less builtins goal.
      
      * The --interpreted-frames-native-stack is rarely used in the wild but
        we have to pay the price of deserializing InterpreterEntryTrampoline
        builtin as a Code object which consumes address space in the code
        range and thus limits the number of V8 isolates that can be created
        because of code range exhaustion. Now the pointer compression cage
        becomes the limiting factor instead of the code range.
      
      * We can remove complicated logic of Factory::CopyCode() and respective
        support on GC side.
      
      Bug: v8:11880, v8:8713, v8:12592
      Change-Id: Ib72e28c03496c43db42f6fe46622def12e102f31
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3811287Reviewed-by: 's avatarJakob Linke <jgruber@chromium.org>
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#82263}
      1067c6ac
  5. 03 Aug, 2022 1 commit
  6. 02 Aug, 2022 2 commits
  7. 29 Jun, 2022 1 commit
  8. 24 Jun, 2022 1 commit
  9. 20 Jun, 2022 1 commit
  10. 08 Jun, 2022 1 commit
  11. 07 Jun, 2022 1 commit
  12. 25 May, 2022 1 commit
  13. 13 May, 2022 1 commit
  14. 28 Apr, 2022 1 commit
    • Simon Zünd's avatar
      [builtins] Add 'RestartFrameTrampoline' · b0118171
      Simon Zünd authored
      Doc: https://bit.ly/revive-restart-frame
      Context: https://crrev.com/c/3582395 (jumbo CL with the whole feature)
      
      This CL adds a new builtin called "RestartFrameTrampoline". This
      trampoline is relatively simple: It leaves the current frame and
      re-invokes the function. This essentially restarts the function and
      is one of the key components required to bring back the "Restart
      frame" DevTools debugging feature.
      
      The builtin is closely related to the "FrameDropperTrampoline"
      removed in the CL https://crrev.com/c/2854750. The key difference
      is that the "FrameDropperTrampoline" dropped to an "arbitrary"
      frame pointer before restarting the function (arbitrary in the
      sense that it was provided as an argument). This caused issues
      as the feature was implemented in a way that the frame pointer
      wasn't necessarily valid anymore.
      
      In comparison, the "RestartFrameTrampoline" relies on the V8
      unwinder to drop it in the correct frame first and is then
      invoked via either the CEntry stub or the deoptimizer
      (see design doc for details).
      
      Bug: chromium:1303521
      Change-Id: I7bd46620808f8694c2c776b8bcd267e525d5b581
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3585944
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80254}
      b0118171
  15. 27 Apr, 2022 2 commits
  16. 26 Apr, 2022 1 commit
  17. 22 Apr, 2022 1 commit
  18. 12 Apr, 2022 1 commit
  19. 06 Apr, 2022 1 commit
  20. 04 Apr, 2022 1 commit
    • Jakob Gruber's avatar
      [osr] Fall back to synchronous OSR on cache mismatches · 3f5a3df6
      Jakob Gruber authored
      If we've already cached OSR'd code for the current function but with a
      different osr offset, fall back to synchronous compilation. This avoids
      degenerate cases where we repeatedly spawn OSR jobs but then fail to
      install them.
      
      Drive-by: More consistent --trace-osr output.
      Drive-by: Rename kCompileForOnStackReplacement to kCompileOptimizeOSR
      for name consistency.
      Drive-by: Add JSFunction::DebugNameCStr() for more convenient PrintF's.
      
      Bug: v8:12161
      Change-Id: I2b4a65bc9e082d85d7048a3e92ef86b07d396687
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3560431Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Jakob Linke <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79761}
      3f5a3df6
  21. 30 Mar, 2022 2 commits
  22. 22 Mar, 2022 1 commit
  23. 17 Mar, 2022 1 commit
  24. 16 Mar, 2022 1 commit
  25. 14 Mar, 2022 1 commit
  26. 25 Feb, 2022 1 commit
  27. 15 Feb, 2022 1 commit
  28. 27 Jan, 2022 2 commits
  29. 26 Jan, 2022 1 commit
  30. 18 Jan, 2022 1 commit
  31. 14 Jan, 2022 1 commit
  32. 24 Dec, 2021 1 commit
  33. 24 Nov, 2021 1 commit
  34. 18 Nov, 2021 1 commit
  35. 16 Nov, 2021 1 commit