diff -r c8ce5bca0fcd Python/ceval.c --- a/Python/ceval.c Tue Jul 15 12:29:11 2014 -0700 +++ b/Python/ceval.c Tue Jul 15 18:28:11 2014 -0600 @@ -1561,6 +1561,14 @@ sum = unicode_concatenate(left, right, f, next_instr); /* unicode_concatenate consumed the ref to v */ } + /* Fast path for small ints */ + else if (PyLong_CheckExact(left) && Py_ABS(Py_SIZE(left)) <= 1 && + PyLong_CheckExact(right) && Py_ABS(Py_SIZE(right)) <= 1) { + long a = PyLong_AsLong(left); + long b = PyLong_AsLong(right); + sum = PyLong_FromLong(a + b); + Py_DECREF(left); + } else { sum = PyNumber_Add(left, right); Py_DECREF(left);