Skip to content

Reuse objects with refcount == 1 in specialized instructions #102300

Description

@markshannon

Many VM instructions consume references to their operands and produce a reference to a result, often of the same type.
For some of those, we specialize for common types.

We can speed up the operations by reusing one of the operands if the refcount is one.
For example, in BINARY_OP_ADD_FLOAT if the refcount of the left operand is one, we can do the operation in place.
This is effectively free as we need to check the refcount of the operands in Py_DECREF() anyway.

We have attempted doing this in the past, but got bogged down trying to merge the operation and the following store.

Linked PRs

Activity

  1. added a commit that references this issue on Mar 13, 2023
  2. added a commit that references this issue on Apr 11, 2023
  3. hugovk commented on Mar 15, 2024

    @hugovk
    Member

    Closing, the linked PR has been merged.

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)performancePerformance or resource usage

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions