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 — Split opcodes into micro-ops · Issue #104909 · python/cpython

Split opcodes into micro-ops #104909

New issue
Copy link
New issue
Copy link
Closed
Closed
Split opcodes into micro-ops#104909
Copy link
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error

Description

@gvanrossum
gvanrossum
opened on May 24, 2023
Issue body actions

See faster-cpython/ideas#592. This project can be parallelized, and I could use help!

Note that initially we don't have a tier-2 interpreter or instruction format defined yet, but the first stage of splitting doesn't require that.

Remaining non-viable ops

With usage stats from the latest weekly pyperformance run (not all are uop candidates):

        956,835,460 YIELD_VALUE                        
        490,121,077 SEND_GEN                            (specialization of SEND)
        429,220,003 JUMP_FORWARD                       
        410,623,920 EXTENDED_ARG                       
        390,537,200 JUMP_BACKWARD_NO_INTERRUPT         
        250,483,954 RETURN_GENERATOR                   
        239,793,181 CALL_LIST_APPEND                    (specialization of CALL)
        168,297,543 CALL_KW                            
        162,922,780 FOR_ITER_GEN                        (specialization of FOR_ITER)
        157,442,920 CALL_PY_WITH_DEFAULTS               (specialization of CALL)
        145,986,780 BINARY_SUBSCR_GETITEM               (specialization of BINARY_SUBSCR)
        135,636,840 STORE_FAST_LOAD_FAST               
         83,118,452 MAKE_CELL                          
         74,149,898 CALL_FUNCTION_EX                   
         68,587,076 CALL_ALLOC_AND_ENTER_INIT           (specialization of CALL)
         49,897,724 STORE_ATTR_WITH_HINT                (specialization of STORE_ATTR)
         49,846,886 LOAD_ATTR_PROPERTY                  (specialization of LOAD_ATTR)
          8,224,500 RERAISE                            
          6,000,000 END_ASYNC_FOR                      
          5,801,385 BEFORE_WITH                        
          2,892,780 RAISE_VARARGS                      
          1,850,040 IMPORT_FROM                        
          1,813,620 IMPORT_NAME                        
                240 CLEANUP_THROW                      
                120 BEFORE_ASYNC_WITH                  
                    ENTER_EXECUTOR                     
                    LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN   (specialization of LOAD_ATTR)

Linked PRs

  • gh-104909: Split BINARY_OP into micro-ops #104910
  • gh-104909: Implement conditional stack effects for macros #105748
  • GH-104909: Break LOAD_GLOBAL specializations in micro-ops. #106677
  • GH-104909: Split LOAD_ATTR_INSTANCE_VALUE into micro-ops #106678
  • GH-104909: Move unused cache entries from uops to macros #107444
  • GH-104909: Break instrumented instructions into micro-ops.  #109316
  • gh-104909: Split some more insts into ops #109943
  • GH-104909: Implement some instrumented instructions with micro-ops. #110025
  • gh-104909: Split more LOAD_ATTR specializations #110317
  • gh-104909: Make LOAD_ATTR_PROPERTY a viable uop #110560

Activity

  1. gvanrossum
    added
    type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
    on May 24, 2023
  2. gvanrossum
    added a commit that references this issue on May 31, 2023

    gh-104909: Split BINARY_OP into micro-ops (#104910)

    df396b5
  3. gvanrossum
    added a commit that references this issue on Jun 14, 2023

    gh-104909: Implement conditional stack effects for macros (#105748)

    4caa728
  4. carljm
    added a commit that references this issue on Jun 15, 2023

    Merge branch 'main' into modulelocals

    166aca9
  5. markshannon
    added 2 commits that reference this issue on Jul 12, 2023

    GH-104909: Break LOAD_GLOBAL specializations in micro-ops. (GH-106677)

    b03755a

    GH-104909: Split `LOAD_ATTR_INSTANCE_VALUE` into micro-ops (GH-106678)

    487861c
  6. kgdiem
    added a commit that references this issue on Jul 14, 2023

    pythonGH-104909: Split `LOAD_ATTR_INSTANCE_VALUE` into micro-ops (pyt…

    1601141
  7. gvanrossum
    added a commit that references this issue on Jul 15, 2023

    pythonGH-104909: Split `LOAD_ATTR_INSTANCE_VALUE` into micro-ops (pyt…

    08c9b5c
  8. gvanrossum
    added a commit that references this issue on Jul 31, 2023

    GH-104909: Move unused cache entries from uops to macros (#107444)

    5eb80a6
  9. gvanrossum
    added a commit that references this issue on Sep 27, 2023

    gh-104909: Split some more insts into ops (#109943)

    5bb6f0f
  10. csm10495
    added a commit that references this issue on Sep 28, 2023

    pythongh-104909: Split some more insts into ops (python#109943)

    e3cdf36
  11. markshannon
    added a commit that references this issue on Oct 4, 2023

    gh-104909: Split more LOAD_ATTR specializations (GH-110317)

    7c149a7
  12. iritkatriel
    added
    interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)
    on Nov 26, 2023
  13. gvanrossum commented on Mar 19, 2024

    @gvanrossum
    gvanrossum
    on Mar 19, 2024
    MemberAuthor
    More actions

    Enough of this is done to close the issue.

  14. gvanrossum
    closed this as completedon Mar 19, 2024
  15. Glyphack
    added 2 commits that reference this issue on Sep 2, 2024

    pythongh-104909: Split some more insts into ops (python#109943)

    b9f696d

    pythongh-104909: Split more LOAD_ATTR specializations (pythonGH-110317)

    8cad4fb
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)type-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — 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.