]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
Speed-up dictionary constructor by about 10%.
authorRaymond Hettinger <python@rcn.com>
Tue, 18 Dec 2007 18:26:18 +0000 (18:26 +0000)
committerRaymond Hettinger <python@rcn.com>
Tue, 18 Dec 2007 18:26:18 +0000 (18:26 +0000)
commiteffde12f5fe41bab9c27269bd77237200d953afd
treeb2eeab007ae8d329366ca815e1f1b3b3072415e9
parenteb103b357780ecc9395cc680ebd4f5d436bbe888
Speed-up dictionary constructor by about 10%.

New opcode, STORE_MAP saves the compiler from awkward stack manipulations
and specializes for dicts using PyDict_SetItem instead of PyObject_SetItem.

Old disassembly:
              0 BUILD_MAP                0
              3 DUP_TOP
              4 LOAD_CONST               1 (1)
              7 ROT_TWO
              8 LOAD_CONST               2 ('x')
             11 STORE_SUBSCR
             12 DUP_TOP
             13 LOAD_CONST               3 (2)
             16 ROT_TWO
             17 LOAD_CONST               4 ('y')
             20 STORE_SUBSCR

New disassembly:
              0 BUILD_MAP                0
              3 LOAD_CONST               1 (1)
              6 LOAD_CONST               2 ('x')
              9 STORE_MAP
             10 LOAD_CONST               3 (2)
             13 LOAD_CONST               4 ('y')
             16 STORE_MAP
Include/opcode.h
Lib/opcode.py
Python/ceval.c
Python/compile.c
Python/import.c