cpython/Objects
Victor Stinner c6944e7edc Issue #28618: Make hot functions using __attribute__((hot))
When Python is not compiled with PGO, the performance of Python on call_simple
and call_method microbenchmarks depend highly on the code placement. In the
worst case, the performance slowdown can be up to 70%.

The GCC __attribute__((hot)) attribute helps to keep hot code close to reduce
the risk of such major slowdown. This attribute is ignored when Python is
compiled with PGO.

The following functions are considered as hot according to statistics collected
by perf record/perf report:

* _PyEval_EvalFrameDefault()
* call_function()
* _PyFunction_FastCall()
* PyFrame_New()
* frame_dealloc()
* PyErr_Occurred()
2016-11-11 02:13:35 +01:00
..
clinic Issue #27810: Rerun Argument Clinic on all modules 2016-09-09 20:00:13 -07:00
stringlib Issue #28561: Clean up UTF-8 encoder: remove dead code, update comments, etc. 2016-10-30 18:25:27 +02:00
abstract.c Issue #28410: Added _PyErr_FormatFromCause() -- the helper for raising 2016-10-21 17:09:17 +03:00
accu.c Issue #14387: Do not include accu.h from Python.h. 2012-03-22 14:38:16 +01:00
boolobject.c
bytearrayobject.c Issue #27895: Spelling fixes (Contributed by Ville Skyttä). 2016-09-07 12:03:06 +00:00
bytes_methods.c remove all usage of Py_LOCAL 2016-09-09 13:54:34 -07:00
bytesobject.c Issue 28128: Print out better error/warning messages for invalid string escapes. Backport to 3.6. 2016-10-31 14:46:26 -04: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 Merge 3.5 (issue #27942) 2016-11-09 09:43:08 -05:00
complexobject.c Issue #28203: Merge from 3.5 2016-09-24 15:28:34 +01:00
descrobject.c replace Py_(u)intptr_t with the c99 standard types 2016-09-06 13:47:26 -07:00
dict-common.h Add _PyDict_CheckConsistency() 2016-09-14 15:02:01 +02:00
dictnotes.txt Issue #15055: update dictnotes.txt. Patch by Mark Shannon. 2012-06-24 21:03:45 +02:00
dictobject.c Use PyThreadState_GET() in performance critical code 2016-11-11 01:43:56 +01:00
enumobject.c Anti-registration of various ABC methods. 2016-08-18 09:22:23 -07: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 Rename _PyObject_FastCall() to _PyObject_FastCallDict() 2016-08-22 22:48:54 +02:00
floatobject.c Issue #26331: Implement the parsing part of PEP 515. 2016-09-09 14:57:09 -07:00
frameobject.c Issue #28618: Make hot functions using __attribute__((hot)) 2016-11-11 02:13:35 +01:00
funcobject.c Issue #28139: Merge indentation fixes from 3.5 into 3.6 2016-09-17 07:59:14 +00:00
genobject.c Issue #28003: Make WrappedVal, ASend and AThrow GC types 2016-11-08 19:46:22 -05:00
iterobject.c Rename _PyObject_FastCall() to _PyObject_FastCallDict() 2016-08-22 22:48:54 +02:00
listobject.c replace PY_SIZE_MAX with SIZE_MAX 2016-09-07 09:26:18 -07: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 Issue #28621: Sped up converting int to float by reusing faster bits counting 2016-11-08 20:34:22 +02:00
memoryobject.c use static inline instead of Py_LOCAL_INLINE 2016-09-08 11:56:06 -07:00
methodobject.c Fix warning in _PyCFunction_FastCallKeywords() 2016-09-12 15:33:26 -04:00
moduleobject.c Issue #27914: Fixed a comment in PyModule_ExcDef. 2016-09-26 23:14:44 +03:00
namespaceobject.c use c++ style comments 2016-09-07 14:12:36 -07:00
object.c merge 3.5 2016-11-06 13:01:15 -08:00
obmalloc.c correct silly spelling problem 2016-09-18 19:24:52 -07:00
odictobject.c Merge from 3.5. 2016-10-30 17:25:45 +02:00
rangeobject.c Issue #28376: Creating instances of range_iterator by calling range_iterator 2016-10-08 22:01:18 +03:00
README Issue #18093: Factor out the programs that embed the runtime 2014-07-25 21:52:14 +10:00
setobject.c Issue #28071: Add early-out for differencing from an empty set. 2016-09-11 22:02:28 -07:00
sliceobject.c fix slice cache finalization to use gc del 2016-04-16 15:12:29 -07:00
structseq.c Issue #25923: Added the const qualifier to static constant arrays. 2015-12-25 19:53:18 +02:00
tupleobject.c Issue #1621: Avoid signed overflow in list and tuple operations 2016-07-25 02:39:20 +00:00
typeobject.c Issue #28385: An error message when non-empty format spec is passed to 2016-10-30 19:37:46 +02: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 Removed unintentional trailing spaces in non-external and non-generated C files. 2015-03-18 21:53:15 +02:00
unicodeobject.c Closes #27781: Removes special cases for the experimental aspect of PEP 529 2016-11-06 19:35:24 -08:00
unicodetype_db.h Unicode 9.0.0 2016-09-14 23:53:47 -07:00
weakrefobject.c Avoid calling functions with an empty string as format string 2016-09-05 18:16:01 -07:00

Source files for various builtin objects