[Python-Dev] PEP 203 Augmented Assignment
Guido van Rossum
Fri, 28 Jul 2000 06:42:12 -0500
> Guido van Rossum <email@example.com>:
> > But the two-arg opcode format slows down the opcode decoding -- and
> > that's the most time-critical part of all of ceval.c!
> I don't see why that has to be so, as long as you don't try
> to pre-fetch the extra argument before switching on the
> opcode. Just leave it up to each branch of the switch to
> fetch another argument if needed.
Sure. That's not how the patch is currently implemented though -- it
adds this to the main opcode decoding:
oparg2 = NEXTARG();
> In fact, why not do that for one-argument opcodes as well?
> If what you say is true, that should make argument decoding
> even faster than it is now!
Yes -- but also would cause about 30-40 copies of the same code (which
could be a single macro call). This could easily be tested and timed
--Guido van Rossum (home page: http://www.pythonlabs.com/~guido/)