2010/12/28 Lukas Lueg <lukas.l...@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.

-- 
Regards,
Benjamin
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to