[Python-checkins] cpython (3.6): Issue #28665: Harmonize STORE_DEREF with STORE_FAST and LOAD_DEREF giving a 40%
raymond.hettinger
python-checkins at python.org
Fri Nov 11 07:32:21 EST 2016
https://hg.python.org/cpython/rev/d78d45436753
changeset: 105056:d78d45436753
branch: 3.6
parent: 105053:1a88baaed7a0
user: Raymond Hettinger <python at rcn.com>
date: Fri Nov 11 04:31:18 2016 -0800
summary:
Issue #28665: Harmonize STORE_DEREF with STORE_FAST and LOAD_DEREF giving a 40% speedup.
files:
Misc/NEWS | 2 ++
Python/ceval.c | 5 +++--
2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -13,6 +13,8 @@
- Issue #19398: Extra slash no longer added to sys.path components in case of
empty compile-time PYTHONPATH components.
+- Issue #28665: Improve speed of the STORE_DEREF opcode by 40%.
+
- Issue #28583: PyDict_SetDefault didn't combine split table when needed.
Patch by Xiang Zhang.
diff --git a/Python/ceval.c b/Python/ceval.c
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -2462,8 +2462,9 @@
TARGET(STORE_DEREF) {
PyObject *v = POP();
PyObject *cell = freevars[oparg];
- PyCell_Set(cell, v);
- Py_DECREF(v);
+ PyObject *oldobj = PyCell_GET(cell);
+ PyCell_SET(cell, v);
+ Py_XDECREF(oldobj);
DISPATCH();
}
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list