[Python-Dev] Possible optimization for LOAD_FAST ? (original) (raw)
Lukas Lueg lukas.lueg at googlemail.com
Tue Dec 28 18:08:58 CET 2010
- Previous message: [Python-Dev] [Python-checkins] r87505 - in python/branches/py3k: Doc/c-api/unicode.rst Include/unicodeobject.h
- Next message: [Python-Dev] Possible optimization for LOAD_FAST ?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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? There is no way that the reference of i might change in between the two lines. Also, the load_fast in lne 22 to reference x could be taken out of the loop as x will always point to the same object....
- Previous message: [Python-Dev] [Python-checkins] r87505 - in python/branches/py3k: Doc/c-api/unicode.rst Include/unicodeobject.h
- Next message: [Python-Dev] Possible optimization for LOAD_FAST ?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]