Uh oh!
There was an error while loading. Please reload this page.
deps,v8: backport stack frame optimisation changes - #65764
Open
aduh95 wants to merge 5 commits into
Open
Conversation
Original commit message: [objects]: Defer CallSiteInfo creation Store the raw data in a FixedArray and create the CallSiteInfo objects only on demand. This can be further optimized to omit CallSiteInfo creation altogether in some code paths, but currently those code paths are not critically important. Change-Id: I6480862caf6b64020737527c571e3e3eac704ed3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7673818 Commit-Queue: Marja Hölttä <marja@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#106127} Refs: v8/v8@ebd1578 Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
Original commit message: [stack traces] Reduce stack frame summarization costs During stack trace capture, Summarize() is the most expensive step — it creates a full TranslatedState for every optimized frame even though most frames are never inspected. This CL reduces that cost in two ways: 1. Lightweight Summarize() for optimized frames: instead of building a full TranslatedState, walk only the deopt translation frame headers and resolve function/receiver via ResolveTaggedValue(), falling back to the full TranslatedState path for wasm-inlined or unresolvable closures. 2. Deferred baseline frames: during CaptureSimpleStackTrace, baseline frames store the raw Code + PC offset and defer bytecode offset resolution to ExpandDeferredFrames(), which runs lazily before the stack trace is formatted or inspected. A new Torque bitfield flag (is_deferred_baseline_frame) marks entries in the raw capture array that still need resolution. All consumers (GetSimpleStackTrace, GetDetailedStackTraceFromCallSiteInfos, GetFormattedStack, PrintCurrentStackTrace) call ExpandDeferredFrames() before processing the array. Change-Id: I1fe8cce918ba129d655d66f608ac6aa0ed160920 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7722138 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Jakob Linke <jgruber@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#106237} Refs: v8/v8@74e153d Refs: v8/v8@c9c0abf Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
Original commit message: [stack traces] Fall back to full walk when receiver is unboxed The lightweight OptimizedJSFrame::Summarize path added in crrev.com/c/7722138 assumed that closure and receiver are always encoded as LITERAL or TAGGED_STACK_SLOT in the deopt translation. This holds for the closure (a JSFunction reference is always tagged) but not for the receiver: the "receiver" slot in an InterpretedFrame translation is just parameter 0 of the (possibly inlined) frame and is emitted via BuildDeoptFrameSingleValue, which encodes it according to the value's representation. An inlined frame whose `this` was typed as Float64 ends up as DOUBLE_STACK_SLOT, hitting UNREACHABLE in ResolveTaggedValue. Rename ResolveTaggedValue to TryResolveTaggedValue, return std::optional, and fall back to SummarizeFull when the receiver isn't a directly-resolvable tagged value. Fixed: 499260582 Change-Id: I1f9cdd28e4b6b76a253a46e43b248d9239a4ecd8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/7748309 Auto-Submit: Jakob Linke <jgruber@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#106423} Refs: v8/v8@1a00890 Co-authored-by: Antoine du Hamel <duhamelantoine1995@gmail.com>
nodejs-github-bot
commented
Sep 3, 2026
Collaborator
Review requested:
|
nodejs-github-bot
commented
Sep 3, 2026
Collaborator
nodejs-github-bot
commented
Sep 3, 2026
Collaborator
nodejs-github-bot
commented
Sep 3, 2026
Collaborator
nodejs-github-bot
commented
Sep 4, 2026
Collaborator
nodejs-github-bot
commented
Sep 4, 2026
Collaborator
nodejs-github-bot
commented
Sep 4, 2026
Collaborator
This comment was marked as outdated.
This comment was marked as outdated.
nodejs-github-bot
commented
Sep 5, 2026
Collaborator
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Backporting v8/v8@ebd1578, v8/v8@c9c0abf, and v8/v8@1a00890 to address #64879