gh-98831: rewrite MAKE_FUNCTION and BUILD_SLICE in the instruction definition DSL#101529
gh-98831: rewrite MAKE_FUNCTION and BUILD_SLICE in the instruction definition DSL#101529iritkatriel merged 2 commits intopython:mainfrom
Conversation
|
🤖 New build scheduled with the buildbot fleet by @iritkatriel for commit 90ff55e 🤖 If you want to schedule another build, you need to add the |
| kwdefaults if (oparg & 0x02), | ||
| annotations if (oparg & 0x04), | ||
| closure if (oparg & 0x08), | ||
| codeobj -- func)) { |
There was a problem hiding this comment.
Too bad we can't write func: PyFunctionObject * yet -- I've gotta add that to the grammar, it would add the casts and save the ugly extra func_obj variable.
| Py_DECREF(start); | ||
| Py_DECREF(stop); | ||
| Py_XDECREF(step); |
There was a problem hiding this comment.
Oh, we should augment DECREF_INPUTS() to use XDECREF for conditional inputs.
| PyObject *annotations = (oparg & 0x04) ? PEEK(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0)) : NULL; | ||
| PyObject *kwdefaults = (oparg & 0x02) ? PEEK(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0)) : NULL; | ||
| PyObject *defaults = (oparg & 0x01) ? PEEK(1 + ((oparg & 0x08) ? 1 : 0) + ((oparg & 0x04) ? 1 : 0) + ((oparg & 0x02) ? 1 : 0) + ((oparg & 0x01) ? 1 : 0)) : NULL; |
There was a problem hiding this comment.
Let's hope the compiler optimizes this. (Though it's not perf critical.)
77af074 to
98c053b
Compare
Uh oh!
There was an error while loading. Please reload this page.