Skip to content

The Tier 2 Optimizer #113710

Closed
Closed
@Fidget-Spinner

Description

@Fidget-Spinner

Feature or enhancement

Proposal:

We're getting a JIT. Now it's time to optimize the traces to pass them to the JIT. The following workstreams are somewhat parallel, and split into two parts. They will not necessarily land in order.

  1. The specializer. This will be done as its own pass on uops. Please see Mark's issue here Superblock optimization: Specialization faster-cpython/ideas#560.
  2. The uops optimizer. This is a separate pass. In general there are two parts, uops abstract interpretation, and optimized code generation. Please see this document for more information. The following optimizations are targeted:
    • Value numbering
    • Type + constant propagation
    • True function inlining
- [x] Interpreter DSL changes. https://github.com/python/cpython/pull/113711
- [ ] https://github.com/python/cpython/issues/114058
- [ ] https://github.com/python/cpython/issues/115419

Has this already been discussed elsewhere?

No response given

Links to previous discussion of this feature:

No response

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    interpreter-core(Objects, Python, Grammar, and Parser dirs)performancePerformance or resource usagetype-featureA feature request or enhancement

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions