This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author vstinner
Recipients methane, serhiy.storchaka, vstinner
Date 2017-02-07.14:46:03
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1486478765.19.0.794418100386.issue29465@psf.upfronthosting.co.za>
In-reply-to
Content
Ok, I fixed the PyObject_Call() bug, and tried a new approach to help the compiler for code placement: I moved all "call" functions into a new Objects/call.c file. It should help the compiler to inline more code, and I move functions which call themself closer: _PyObject_FastCall(), _PyCFunction_FastCall() and _PyFunction_FastCall() are now very close in the same file for example.

Not only the stack usage is better, but the performance seems also better: see benchmark results below.

Again, if you like the _PyObject_FastCall() idea (to reduce the stack consumption), I will split my big patch into smaller patches to have a "smoother" hg/git history.

Benchmark results on speed-python, CPython compiled with LTO+PGO:

haypo@speed-python$ python3 -m perf compare_to /home/haypo/benchmarks/2017-02-06_07-15-default-e06af4027546.json pyobject_fastcall-4_ref_e06af4027546.json -G  --min-speed=4
Faster (11):
- sympy_expand: 949 ms +- 12 ms -> 878 ms +- 7 ms: 1.08x faster (-8%)
- chameleon: 21.9 ms +- 0.2 ms -> 20.5 ms +- 0.3 ms: 1.07x faster (-7%)
- sympy_str: 425 ms +- 5 ms -> 399 ms +- 5 ms: 1.07x faster (-6%)
- sympy_integrate: 40.8 ms +- 0.3 ms -> 38.3 ms +- 0.4 ms: 1.06x faster (-6%)
- sympy_sum: 192 ms +- 6 ms -> 181 ms +- 7 ms: 1.06x faster (-6%)
- scimark_lu: 352 ms +- 11 ms -> 332 ms +- 13 ms: 1.06x faster (-6%)
- xml_etree_generate: 208 ms +- 2 ms -> 197 ms +- 3 ms: 1.05x faster (-5%)
- nbody: 233 ms +- 2 ms -> 222 ms +- 3 ms: 1.05x faster (-5%)
- telco: 14.7 ms +- 0.3 ms -> 14.0 ms +- 0.3 ms: 1.05x faster (-5%)
- scimark_fft: 662 ms +- 10 ms -> 633 ms +- 8 ms: 1.05x faster (-4%)
- genshi_text: 71.0 ms +- 0.8 ms -> 68.3 ms +- 0.7 ms: 1.04x faster (-4%)

Benchmark hidden because not significant (53): (...)
History
Date User Action Args
2017-02-07 14:46:06vstinnersetrecipients: + vstinner, methane, serhiy.storchaka
2017-02-07 14:46:05vstinnersetmessageid: <1486478765.19.0.794418100386.issue29465@psf.upfronthosting.co.za>
2017-02-07 14:46:05vstinnerlinkissue29465 messages
2017-02-07 14:46:04vstinnercreate