Python 3.13.0 built with LLVM 19 and full LTO
Finally! We managed to compile the code of Python 3.13.0 using LLVM 19, with full link-time optimization (LTO):
The installation passes all 44 standard optimization tests:
Using random seed: 434731684
0:00:00 load avg: 1.72 Run 44 tests sequentially in a single process
0:00:00 load avg: 1.72 [ 1/44] test_array
0:00:00 load avg: 1.72 [ 2/44] test_base64
0:00:00 load avg: 1.72 [ 3/44] test_binascii
0:00:00 load avg: 1.72 [ 4/44] test_binop
0:00:00 load avg: 1.72 [ 5/44] test_bisect
0:00:00 load avg: 1.72 [ 6/44] test_bytes
0:00:03 load avg: 1.67 [ 7/44] test_bz2
0:00:04 load avg: 1.67 [ 8/44] test_cmath
0:00:04 load avg: 1.67 [ 9/44] test_codecs
0:00:05 load avg: 1.67 [10/44] test_collections
0:00:06 load avg: 1.67 [11/44] test_complex
0:00:06 load avg: 1.67 [12/44] test_dataclasses
0:00:07 load avg: 1.67 [13/44] test_datetime
0:00:11 load avg: 1.61 [14/44] test_decimal
0:00:14 load avg: 1.56 [15/44] test_difflib
0:00:15 load avg: 1.56 [16/44] test_embed
0:00:19 load avg: 1.52 [17/44] test_float
0:00:20 load avg: 1.52 [18/44] test_fstring
0:00:21 load avg: 1.52 [19/44] test_functools
0:00:21 load avg: 1.52 [20/44] test_generators
0:00:22 load avg: 1.52 [21/44] test_hashlib
0:00:22 load avg: 1.52 [22/44] test_heapq
0:00:23 load avg: 1.52 [23/44] test_int
0:00:24 load avg: 1.48 [24/44] test_itertools
0:00:26 load avg: 1.48 [25/44] test_json
0:00:29 load avg: 1.44 [26/44] test_long
0:00:31 load avg: 1.44 [27/44] test_lzma
0:00:31 load avg: 1.44 [28/44] test_math
0:00:33 load avg: 1.40 [29/44] test_memoryview
0:00:33 load avg: 1.40 [30/44] test_operator
0:00:34 load avg: 1.40 [31/44] test_ordered_dict
0:00:34 load avg: 1.40 [32/44] test_patma
0:00:35 load avg: 1.40 [33/44] test_pickle
0:00:39 load avg: 1.37 [34/44] test_pprint
0:00:39 load avg: 1.37 [35/44] test_re
0:00:40 load avg: 1.37 [36/44] test_set
0:00:44 load avg: 1.34 [37/44] test_sqlite3
0:00:44 load avg: 1.34 [38/44] test_statistics
0:00:49 load avg: 1.31 [39/44] test_str
0:00:51 load avg: 1.31 [40/44] test_struct
0:00:51 load avg: 1.31 [41/44] test_tabnanny
0:00:52 load avg: 1.31 [42/44] test_time
0:00:54 load avg: 1.21 [43/44] test_xml_etree
0:00:54 load avg: 1.21 [44/44] test_xml_etree_c
Total duration: 55.7 sec
Total tests: run=9,361 skipped=192
Total test files: run=44/44
Result: SUCCESS
Before, such results were impossible to achieve, see this bug report for details:
https://github.com/python/cpython/issues/110313
The installation is available in the software repository of the Discoverer Petascale Supercomputer. As usual, the build recipe and the logs collected during the compilation and publicly available online at:
https://gitlab.discoverer.bg/vkolev/recipes/-/tree/main/python/3/3.1