GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — JIT: make recorder layouts stable across opcode families · Issue #149358 · python/cpython

JIT: make recorder layouts stable across opcode families #149358

New issue
Copy link
New issue
Copy link
Closed
Closed
JIT: make recorder layouts stable across opcode families#149358
Copy link
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-JITtype-featureA feature request or enhancementA feature request or enhancement

Description

@cocolato
cocolato
opened on May 4, 2026
Issue body actions

Feature or enhancement

Proposal:

The current JIT recorder generation logic tends to conflate the family source recording layout with the specific consumer layout, leading to the following issues:

  • The set of recorders for members within a family is not explicitly modeled by the analyzer, so the generator must infer the recording semantics for family members on its own.
  • When the base opcode and specialized opcode record the same slot in different formats, the generator may choose the specialized recorder as the family source slot.
  • If the family source slot selects a derived value, such as _RECORD_TOS_TYPE, the base opcode’s raw recorder _RECORD_TOS must be converted back from a type to a raw object; this process is irreversible and does not reflect the true capabilities of runtime transforms.
  • Runtime transform helpers are hand-coded in Python/optimizer.c, making them prone to drift from the recorder uop body.
  • The transform dispatcher may generate helpers for recorders that are not actually used by any slot map, increasing dead branches and maintenance overhead in the generated code.

Has this already been discussed elsewhere?

No response given

Links to previous discussion of this feature:

No response

Linked PRs

  • gh-149358: Generating JIT recorder transformers and stabilizing family layouts #149359

Activity

  1. cocolato
    added
    type-featureA feature request or enhancementA feature request or enhancement
    interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)
    topic-JIT
    on May 4, 2026
  2. markshannon
    added a commit that references this issue on May 21, 2026

    gh-149358: Generating JIT recorder transformers and stabilizing famil…

    0828782
  3. cocolato
    closed this as completedon May 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)topic-JITtype-featureA feature request or enhancementA feature request or enhancement

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402520 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.