-
-
Notifications
You must be signed in to change notification settings - Fork 31.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
gh-106581: Add 10 new opcodes by allowing assert(kwnames == NULL)
#106707
Conversation
e4ee765
to
b044208
Compare
So 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 |
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 |
The benchmark (using uops wherever we can) comes in 4% slower than main. That's good to know. |
@markshannon What do you think of this? |
assert(kwnames == NULL)
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.