[maglev] Re-enable receiver/closure elision for non-lazy frame states [v8/v8 : main]

1 view
Skip to first unread message

Jakob Linke (Gerrit)

unread,
Mar 10, 2026, 2:07:09 AMMar 10
to Darius Mercadier, V8 LUCI CQ, dmercadi...@chromium.org, leszek...@chromium.org, v8-re...@googlegroups.com, verwaes...@chromium.org, victorgo...@chromium.org
Attention needed from Darius Mercadier

Jakob Linke added 1 comment

Patchset-level comments
Open in Gerrit

Related details

Attention is currently required from:
  • Darius Mercadier
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: I3a2cdf586c2c8b7a638eff05abafba4a65939683
Gerrit-Change-Number: 7650974
Gerrit-PatchSet: 1
Gerrit-Owner: Jakob Linke <jgr...@chromium.org>
Gerrit-Reviewer: Darius Mercadier <dmerc...@chromium.org>
Gerrit-Reviewer: Jakob Linke <jgr...@chromium.org>
Gerrit-Attention: Darius Mercadier <dmerc...@chromium.org>
Gerrit-Comment-Date: Tue, 10 Mar 2026 06:07:04 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Victor Gomes (Gerrit)

unread,
Mar 10, 2026, 4:15:36 AMMar 10
to Jakob Linke, Darius Mercadier, V8 LUCI CQ, dmercadi...@chromium.org, leszek...@chromium.org, v8-re...@googlegroups.com, verwaes...@chromium.org, victorgo...@chromium.org
Attention needed from Darius Mercadier and Jakob Linke

Victor Gomes voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Darius Mercadier
  • Jakob Linke
Submit Requirements:
  • requirement satisfiedCode-Owners
  • requirement satisfiedCode-Review
  • requirement satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: v8/v8
Gerrit-Branch: main
Gerrit-Change-Id: I3a2cdf586c2c8b7a638eff05abafba4a65939683
Gerrit-Change-Number: 7650974
Gerrit-PatchSet: 1
Gerrit-Owner: Jakob Linke <jgr...@chromium.org>
Gerrit-Reviewer: Darius Mercadier <dmerc...@chromium.org>
Gerrit-Reviewer: Jakob Linke <jgr...@chromium.org>
Gerrit-Reviewer: Victor Gomes <victo...@chromium.org>
Gerrit-Attention: Darius Mercadier <dmerc...@chromium.org>
Gerrit-Attention: Jakob Linke <jgr...@chromium.org>
Gerrit-Comment-Date: Tue, 10 Mar 2026 08:15:31 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
open
diffy

Darius Mercadier (Gerrit)

unread,
Mar 10, 2026, 4:35:28 AMMar 10
to Jakob Linke, Victor Gomes, V8 LUCI CQ, dmercadi...@chromium.org, leszek...@chromium.org, v8-re...@googlegroups.com, verwaes...@chromium.org, victorgo...@chromium.org
Attention needed from Jakob Linke

Darius Mercadier voted and added 2 comments

Votes added by Darius Mercadier

Code-Review+1

2 comments

Patchset-level comments
Darius Mercadier . resolved

lgtm % comment

File src/maglev/maglev-graph-builder.cc
Line 1773, Patchset 1 (Latest): *compilation_unit_,
[&](ValueNode* node, interpreter::Register) { AddDeoptUse(node); });
AddDeoptUse(entry_stack_check_frame_->closure());
Darius Mercadier . unresolved

This frame is also used as lazy deopt frame for the FunctionEntryStackCheck, so probably you shouldn't change this.

Although in practice you really shouldn't see any vobjs here... Maybe the best would be to DCHECK that neither closure nor receiver are vobjs here.

Open in Gerrit

Related details

Attention is currently required from:
  • Jakob Linke
Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: I3a2cdf586c2c8b7a638eff05abafba4a65939683
    Gerrit-Change-Number: 7650974
    Gerrit-PatchSet: 1
    Gerrit-Owner: Jakob Linke <jgr...@chromium.org>
    Gerrit-Reviewer: Darius Mercadier <dmerc...@chromium.org>
    Gerrit-Reviewer: Jakob Linke <jgr...@chromium.org>
    Gerrit-Reviewer: Victor Gomes <victo...@chromium.org>
    Gerrit-Attention: Jakob Linke <jgr...@chromium.org>
    Gerrit-Comment-Date: Tue, 10 Mar 2026 08:35:24 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Jakob Linke (Gerrit)

    unread,
    Mar 10, 2026, 4:42:04 AMMar 10
    to Darius Mercadier, Victor Gomes, V8 LUCI CQ, dmercadi...@chromium.org, leszek...@chromium.org, v8-re...@googlegroups.com, verwaes...@chromium.org, victorgo...@chromium.org
    Attention needed from Darius Mercadier

    Jakob Linke added 1 comment

    File src/maglev/maglev-graph-builder.cc
    Line 1773, Patchset 1 (Latest): *compilation_unit_,
    [&](ValueNode* node, interpreter::Register) { AddDeoptUse(node); });
    AddDeoptUse(entry_stack_check_frame_->closure());
    Darius Mercadier . unresolved

    This frame is also used as lazy deopt frame for the FunctionEntryStackCheck, so probably you shouldn't change this.

    Although in practice you really shouldn't see any vobjs here... Maybe the best would be to DCHECK that neither closure nor receiver are vobjs here.

    Jakob Linke

    Those are two separate concerns though. vobj: only relevant wrt recursively setting use_count_. Receiver/closure materialization matters in any case, no?

    If this frame is used for lazy deopts, Imo we should keep the AddMaterializedDeoptUse special cases here.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Darius Mercadier
    Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: I3a2cdf586c2c8b7a638eff05abafba4a65939683
    Gerrit-Change-Number: 7650974
    Gerrit-PatchSet: 1
    Gerrit-Owner: Jakob Linke <jgr...@chromium.org>
    Gerrit-Reviewer: Darius Mercadier <dmerc...@chromium.org>
    Gerrit-Reviewer: Jakob Linke <jgr...@chromium.org>
    Gerrit-Reviewer: Victor Gomes <victo...@chromium.org>
    Gerrit-Attention: Darius Mercadier <dmerc...@chromium.org>
    Gerrit-Comment-Date: Tue, 10 Mar 2026 08:41:59 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Darius Mercadier <dmerc...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Darius Mercadier (Gerrit)

    unread,
    Mar 10, 2026, 4:49:04 AMMar 10
    to Jakob Linke, Victor Gomes, V8 LUCI CQ, dmercadi...@chromium.org, leszek...@chromium.org, v8-re...@googlegroups.com, verwaes...@chromium.org, victorgo...@chromium.org
    Attention needed from Jakob Linke

    Darius Mercadier added 1 comment

    File src/maglev/maglev-graph-builder.cc
    Line 1773, Patchset 1 (Latest): *compilation_unit_,
    [&](ValueNode* node, interpreter::Register) { AddDeoptUse(node); });
    AddDeoptUse(entry_stack_check_frame_->closure());
    Darius Mercadier . unresolved

    This frame is also used as lazy deopt frame for the FunctionEntryStackCheck, so probably you shouldn't change this.

    Although in practice you really shouldn't see any vobjs here... Maybe the best would be to DCHECK that neither closure nor receiver are vobjs here.

    Jakob Linke

    Those are two separate concerns though. vobj: only relevant wrt recursively setting use_count_. Receiver/closure materialization matters in any case, no?

    If this frame is used for lazy deopts, Imo we should keep the AddMaterializedDeoptUse special cases here.

    Darius Mercadier

    Receiver/closure materialization matters in any case, no?

    Except that here reciever & closure shouldn't be dematerializable (ie, they can't be InlinedAllocation).

    And so I think that a DCHECK that they aren't InlinedAllocation (rather than vobj as I initially said) makes more sense to document the assumptions that we're making and the state that we're in.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Jakob Linke
    Submit Requirements:
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: v8/v8
    Gerrit-Branch: main
    Gerrit-Change-Id: I3a2cdf586c2c8b7a638eff05abafba4a65939683
    Gerrit-Change-Number: 7650974
    Gerrit-PatchSet: 1
    Gerrit-Owner: Jakob Linke <jgr...@chromium.org>
    Gerrit-Reviewer: Darius Mercadier <dmerc...@chromium.org>
    Gerrit-Reviewer: Jakob Linke <jgr...@chromium.org>
    Gerrit-Reviewer: Victor Gomes <victo...@chromium.org>
    Gerrit-Attention: Jakob Linke <jgr...@chromium.org>
    Gerrit-Comment-Date: Tue, 10 Mar 2026 08:49:00 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Darius Mercadier <dmerc...@chromium.org>
    Comment-In-Reply-To: Jakob Linke <jgr...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Jakob Linke (Gerrit)

    unread,
    Mar 10, 2026, 9:34:54 AMMar 10
    to Darius Mercadier, Victor Gomes, V8 LUCI CQ, dmercadi...@chromium.org, leszek...@chromium.org, v8-re...@googlegroups.com, verwaes...@chromium.org, victorgo...@chromium.org

    Jakob Linke voted and added 1 comment

    Votes added by Jakob Linke

    Auto-Submit+1

    1 comment

    File src/maglev/maglev-graph-builder.cc
    Line 1773, Patchset 1: *compilation_unit_,

    [&](ValueNode* node, interpreter::Register) { AddDeoptUse(node); });
    AddDeoptUse(entry_stack_check_frame_->closure());
    Darius Mercadier . resolved

    This frame is also used as lazy deopt frame for the FunctionEntryStackCheck, so probably you shouldn't change this.

    Although in practice you really shouldn't see any vobjs here... Maybe the best would be to DCHECK that neither closure nor receiver are vobjs here.

    Jakob Linke

    Those are two separate concerns though. vobj: only relevant wrt recursively setting use_count_. Receiver/closure materialization matters in any case, no?

    If this frame is used for lazy deopts, Imo we should keep the AddMaterializedDeoptUse special cases here.

    Darius Mercadier

    Receiver/closure materialization matters in any case, no?

    Except that here reciever & closure shouldn't be dematerializable (ie, they can't be InlinedAllocation).

    And so I think that a DCHECK that they aren't InlinedAllocation (rather than vobj as I initially said) makes more sense to document the assumptions that we're making and the state that we're in.

    Jakob Linke

    Done

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: I3a2cdf586c2c8b7a638eff05abafba4a65939683
      Gerrit-Change-Number: 7650974
      Gerrit-PatchSet: 3
      Gerrit-Owner: Jakob Linke <jgr...@chromium.org>
      Gerrit-Reviewer: Darius Mercadier <dmerc...@chromium.org>
      Gerrit-Reviewer: Jakob Linke <jgr...@chromium.org>
      Gerrit-Reviewer: Victor Gomes <victo...@chromium.org>
      Gerrit-Comment-Date: Tue, 10 Mar 2026 13:34:51 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      Darius Mercadier (Gerrit)

      unread,
      Mar 10, 2026, 9:36:38 AMMar 10
      to Jakob Linke, Victor Gomes, V8 LUCI CQ, dmercadi...@chromium.org, leszek...@chromium.org, v8-re...@googlegroups.com, verwaes...@chromium.org, victorgo...@chromium.org
      Attention needed from Jakob Linke

      Darius Mercadier voted and added 1 comment

      Votes added by Darius Mercadier

      Code-Review+1
      Commit-Queue+2

      1 comment

      Patchset-level comments
      File-level comment, Patchset 3 (Latest):
      Darius Mercadier . resolved

      lgtm thanks :)

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Jakob Linke
      Submit Requirements:
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: I3a2cdf586c2c8b7a638eff05abafba4a65939683
      Gerrit-Change-Number: 7650974
      Gerrit-PatchSet: 3
      Gerrit-Owner: Jakob Linke <jgr...@chromium.org>
      Gerrit-Reviewer: Darius Mercadier <dmerc...@chromium.org>
      Gerrit-Reviewer: Jakob Linke <jgr...@chromium.org>
      Gerrit-Reviewer: Victor Gomes <victo...@chromium.org>
      Gerrit-Attention: Jakob Linke <jgr...@chromium.org>
      Gerrit-Comment-Date: Tue, 10 Mar 2026 13:36:32 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      open
      diffy

      V8 LUCI CQ (Gerrit)

      unread,
      Mar 10, 2026, 10:15:04 AMMar 10
      to Jakob Linke, Darius Mercadier, Victor Gomes, dmercadi...@chromium.org, leszek...@chromium.org, v8-re...@googlegroups.com, verwaes...@chromium.org, victorgo...@chromium.org

      V8 LUCI CQ submitted the change

      Change information

      Commit message:
      [maglev] Re-enable receiver/closure elision for non-lazy frame states

      Only lazy frame states are used for computing stack traces, from which
      .getThis and .getFunction may access the receiver and closure.

      This is a followup to https://crrev.com/c/7642804.
      Bug: 489356185
      Change-Id: I3a2cdf586c2c8b7a638eff05abafba4a65939683
      Reviewed-by: Darius Mercadier <dmerc...@chromium.org>
      Commit-Queue: Darius Mercadier <dmerc...@chromium.org>
      Auto-Submit: Jakob Linke <jgr...@chromium.org>
      Reviewed-by: Victor Gomes <victo...@chromium.org>
      Commit-Queue: Jakob Linke <jgr...@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#105706}
      Files:
      • M src/maglev/maglev-graph-builder.cc
      Change size: S
      Delta: 1 file changed, 13 insertions(+), 21 deletions(-)
      Branch: refs/heads/main
      Submit Requirements:
      • requirement satisfiedCode-Review: +1 by Victor Gomes, +1 by Darius Mercadier
      Open in Gerrit
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: merged
      Gerrit-Project: v8/v8
      Gerrit-Branch: main
      Gerrit-Change-Id: I3a2cdf586c2c8b7a638eff05abafba4a65939683
      Gerrit-Change-Number: 7650974
      Gerrit-PatchSet: 4
      Gerrit-Owner: Jakob Linke <jgr...@chromium.org>
      Gerrit-Reviewer: Darius Mercadier <dmerc...@chromium.org>
      Gerrit-Reviewer: Jakob Linke <jgr...@chromium.org>
      Gerrit-Reviewer: Victor Gomes <victo...@chromium.org>
      open
      diffy
      satisfied_requirement
      Reply all
      Reply to author
      Forward
      0 new messages