cpython/Objects
Victor Stinner 434723f94c call_method() now uses _PyObject_FastCall()
Issue #29233: Replace the inefficient _PyObject_VaCallFunctionObjArgs() with
_PyObject_FastCall() in call_method() and call_maybe().

Only a few functions call call_method() and call it with a fixed number of
arguments. Avoid the complex and expensive _PyObject_VaCallFunctionObjArgs()
function, replace it with an array allocated on the stack with the exact number
of argumlents.

It reduces the stack consumption, bytes per call, before => after:

test_python_call: 1168 => 1152 (-16 B)
test_python_getitem: 1344 => 1008 (-336 B)
test_python_iterator: 1568 => 1232 (-336 B)

Remove the _PyObject_VaCallFunctionObjArgs() function which became useless.
Rename it to object_vacall() and make it private.
2017-01-11 00:07:40 +01:00
..
clinic Issue #27810: Rerun Argument Clinic on all modules 2016-09-09 20:00:13 -07:00
stringlib Issue #29145: Merge 3.6. 2017-01-10 10:56:38 +08:00
abstract.c call_method() now uses _PyObject_FastCall() 2017-01-11 00:07:40 +01:00
accu.c
boolobject.c
bytearrayobject.c Merge 3.6 2017-01-06 17:44:43 +09:00
bytes_methods.c remove all usage of Py_LOCAL 2016-09-09 13:54:34 -07:00
bytesobject.c Merge 3.6 2017-01-06 17:44:43 +09:00
capsule.c
cellobject.c fix indentation of comments in cellobject.c (closes #27011) 2016-05-12 23:12:21 -07:00
classobject.c method_call() and slot_tp_new() now uses fast call 2016-08-25 01:04:14 +02:00
codeobject.c Issue #18896: Python function can now have more than 255 parameters. 2016-12-16 19:19:02 +02:00
complexobject.c Use _PyObject_CallNoArg() 2016-12-06 18:46:19 +01:00
descrobject.c Issue #28959: Added private macro PyDict_GET_SIZE for retrieving the size of dict. 2016-12-16 16:18:57 +02:00
dict-common.h Issue #28818: Simplify lookdict functions 2016-12-07 20:41:42 +09:00
dictnotes.txt
dictobject.c Issue #28427: old keys should not remove new values from 2016-12-27 14:34:54 +01:00
enumobject.c Use _PyObject_CallNoArg() 2016-12-06 18:46:19 +01:00
exceptions.c Issue #28511: Use the "U" format instead of "O!" in PyArg_Parse*. 2016-10-23 15:12:25 +03:00
fileobject.c Issue #28858: Remove _PyObject_CallArg1() macro 2016-12-05 17:04:32 +01:00
floatobject.c Backed out changeset b9c9691c72c5 2016-12-04 22:59:09 +01:00
frameobject.c Issue #29049: Call _PyObject_GC_TRACK() lazily when calling Python function. 2016-12-24 20:19:08 +09:00
funcobject.c Issue #28839: Optimize function_call() 2017-01-03 01:58:17 +01:00
genobject.c Backed out changeset 99c34e47348b 2016-12-09 18:51:13 +01:00
iterobject.c Rename _PyObject_FastCall() to _PyObject_FastCallDict() 2016-08-22 22:48:54 +02:00
listobject.c Backed out changeset b9c9691c72c5 2016-12-04 22:59:09 +01:00
listsort.txt Issue #27895: Spelling fixes (Contributed by Ville Skyttä). 2016-09-07 12:03:06 +00:00
lnotab_notes.txt Issue #26107: Fix typo in Objects/lnotab_notes.txt 2016-01-21 18:12:29 +01:00
longobject.c Backed out changeset b9c9691c72c5 2016-12-04 22:59:09 +01:00
memoryobject.c Merge 3.5. 2016-12-30 12:24:23 +01:00
methodobject.c Issue #28959: Added private macro PyDict_GET_SIZE for retrieving the size of dict. 2016-12-16 16:18:57 +02:00
moduleobject.c Issue #28748: Private variable _Py_PackageContext is now of type "const char *" 2016-11-21 10:25:54 +02:00
namespaceobject.c use c++ style comments 2016-09-07 14:12:36 -07:00
object.c Issue #28959: Added private macro PyDict_GET_SIZE for retrieving the size of dict. 2016-12-16 16:18:57 +02:00
obmalloc.c correct silly spelling problem 2016-09-18 19:24:52 -07:00
odictobject.c Issue #28959: Added private macro PyDict_GET_SIZE for retrieving the size of dict. 2016-12-16 16:18:57 +02:00
rangeobject.c Issue #28376: Creating instances of range_iterator by calling range_iterator 2016-10-08 22:01:18 +03:00
README
setobject.c Issue #28959: Added private macro PyDict_GET_SIZE for retrieving the size of dict. 2016-12-16 16:18:57 +02:00
sliceobject.c Issue #28959: Added private macro PyDict_GET_SIZE for retrieving the size of dict. 2016-12-16 16:18:57 +02:00
structseq.c Issue #28761: The fields name and doc of structures PyMemberDef, PyGetSetDef, 2016-11-22 07:58:08 +02:00
tupleobject.c Issue #1621: Avoid signed overflow in list and tuple operations 2016-07-25 02:39:20 +00:00
typeobject.c call_method() now uses _PyObject_FastCall() 2017-01-11 00:07:40 +01:00
typeslots.inc add Py_tp_finalize slot (closes #24345) 2015-06-01 10:12:48 -05:00
typeslots.py Issue #26662: Set PYTHON_FOR_GEN in configure 2016-07-26 12:48:08 +02:00
unicodectype.c
unicodeobject.c Issue #29145: Merge 3.6. 2017-01-10 10:56:38 +08:00
unicodetype_db.h Unicode 9.0.0 2016-09-14 23:53:47 -07:00
weakrefobject.c Backed out changeset b9c9691c72c5 2016-12-04 22:59:09 +01:00

Source files for various builtin objects