GH-105848: Get rid of `KW_NAMES` (again) by brandtbucher · Pull Request #108496 · python/cpython
(The stats issue I observed was in the comparison vs main, and is unrelated.)
So, here's the current situation. This branch adds over 7 billion new PUSH_NULL instructions to the benchmark run, which is a significant (~5%) increase in the number of instructions executed. This makes the benchmarks 2% slower (stats).
I tried the "easy" route of adding a new LOAD_FAST_PUSH_NULL superinstruction, since the stats suggest that this is by far the most common PUSH_NULL pairing. However, that made it an additional 2% slower (for a total of 4% slower than main), which is surprising (stats). Note that a handful of the slowest benchmarks from this branch got way faster on that branch.
So, it seems that clearly something needs to be done, but superinstructions aren't going to help. I'll try some of the other suggested ideas tomorrow, but in general this is getting to be a pretty annoying problem.