[Python-Dev] Possible optimization for LOAD_FAST ?
Georg Brandl
g.brandl at gmx.net
Tue Dec 28 19:30:48 CET 2010
Am 28.12.2010 18:24, schrieb Benjamin Peterson:
> 2010/12/28 Lukas Lueg <lukas.lueg at googlemail.com>:
>> Consider the following code:
>>
>> def foobar(x):
>> for i in range(5):
>> x[i] = i
>>
>> The bytecode in python 2.7 is the following:
>>
>> 2 0 SETUP_LOOP 30 (to 33)
>> 3 LOAD_GLOBAL 0 (range)
>> 6 LOAD_CONST 1 (5)
>> 9 CALL_FUNCTION 1
>> 12 GET_ITER
>> >> 13 FOR_ITER 16 (to 32)
>> 16 STORE_FAST 1 (i)
>>
>> 3 19 LOAD_FAST 1 (i)
>> 22 LOAD_FAST 0 (x)
>> 25 LOAD_FAST 1 (i)
>> 28 STORE_SUBSCR
>> 29 JUMP_ABSOLUTE 13
>> >> 32 POP_BLOCK
>> >> 33 LOAD_CONST 0 (None)
>> 36 RETURN_VALUE
>>
>> Can't we optimize the LOAD_FAST in lines 19 and 25 to a single load
>> and put the reference twice on the stack?
>
> Yes. Would it be useful? Unlikely.
Is it tricky to get all the corner cases right? Very probably :)
Georg
More information about the Python-Dev
mailing list