Uh oh!
There was an error while loading. Please reload this page.
gh-106581: Add 10 new opcodes by allowing assert(kwnames == NULL) - #106707
Conversation
e4ee765 to
b044208CompareSo the test failure, in particular Looks like this will have to wait until gh-105848, where it is proposed that the kwnames gets pushed on the stack instead of being a local variable in the eval loop. A fair number of these instructions don't really use |
gvanrossum
commented
Jul 14, 2023
Most test failures are expected (for a run with -Xuops on by default). But the test_list failure pointed to a recent bug in the Tier 2 interpreter (not interpreted here). Fixing in gh-106756. |
Not all of these are useful, but I think they all work. It leaves another 14 CALL specializations that need to be split (or need pythongh-106603, allowing oparg *and* one cache entry per uop).
But allow `assert(kwnames == NULL)`.
PS. I have a benchmark running on this with |
gvanrossum
commented
Jul 15, 2023
The benchmark (using uops wherever we can) comes in 4% slower than main. That's good to know. |
gvanrossum
commented
Jul 15, 2023
@markshannon What do you think of this? |
assert(kwnames == NULL)Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Not all of these are useful, but I think they all work (I tried the same thing last week, when it crashed mysteriously; I've fixed so many crashes since then that I think it'll work now).
This leaves
1417 CALL specializations that need to be split (or need gh-106603, allowing oparg and one cache entry per uop).Some of the opcodes here surely need to be split into separate guards and actions; that can be done as needed.