Uh oh!
There was an error while loading. Please reload this page.
GH-118093: Add tier two support to several instructions - #121884
Conversation
markshannon
left a comment
There was a problem hiding this comment.
One minor clarification needed, otherwise LGTM.
Regarding handling CALL_LIST_APPEND in tier 2:
Instead of asserting that the next instruction is POP_TOP and skipping it, we could emit a LOAD_CONST_BORROW None.
If the following instruction is not POP_TOP then then code is still correct. If there is a POP_TOP following, then optimizer will eliminate the LOAD; POP_TOP.
Uh oh!
There was an error while loading. Please reload this page.
When you're done making the requested changes, leave the comment: |
brandtbucher
commented
Jul 18, 2024
I have made the requested changes; please review again |
Thanks for making the requested changes! @markshannon: please review the changes made to this pull request. |
brandtbucher
commented
Jul 18, 2024
JIT failures are unrelated: GH-121946 |
This adds tier two support to all of the the trivial instructions that our stats indicate are causing traces to end (
CALL_LIST_APPEND,IMPORT_NAME,LOAD_NAME,BUILD_SET,SEND_GEN, andIMPORT_FROM). Some other, more complicated, instructions will come in their own PRs. It also turns_FOR_ITER_TIER_TWOfrom a deopting instruction into an exiting instruction, since we expect it to fail fairly often (since this represents normal control flow in the program).Perf is neutral. Stats have improved, as expected (4% fewer tier one instructions, 24% fewer too-short traces, 20% fewer optimization attempts, 7% fewer traces executed, 4% more traces created, and 4% more uops executed).