Am 28.12.2010 18:24, schrieb Benjamin Peterson: > 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.
Is it tricky to get all the corner cases right? Very probably :) Georg _______________________________________________ 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