Sergey Fedoseev <fedoseev.ser...@gmail.com> added the comment:
> If you care of _PyLong_Copy() performance, you should somehow manually inline > _PyLong_New() inside _PyLong_Copy(). It doesn't solve this: > We could add a function that bypass that check, but in LTO build > PyObject_MALLOC() is inlined into _PyLong_New() and it also checks the size. > Adding Py_ASSUME((size_t)size <= MAX_LONG_DIGITS) allows to bypass both > checks. Here's example: https://github.com/sir-sigurd/cpython/commit/c8699d0c614a18d558216ae7d432107147c95c28. I attach some disassembly from this example compiled with LTO, to demonstrate how the proposed macro affects generated code. ---------- Added file: https://bugs.python.org/file48614/disasm.txt _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue38147> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com