Title: gh-101525: Disable peephole optimization process of BOLT by corona10 · Pull Request #103187 · python/cpython · GitHub
Open Graph Title: gh-101525: Disable peephole optimization process of BOLT by corona10 · Pull Request #103187 · python/cpython
X Title: gh-101525: Disable peephole optimization process of BOLT by corona10 · Pull Request #103187 · python/cpython
Description: Background Experimental optimization techniques using LLVM-BOLT have been applied in CPython 3.12, but in order to provide this as an official feature, it must be ensured that the optimized binary does not change the expected behavior. It has been confirmed that the peephole optimization provided by LLVM-BOLT re-raises the #53093 issue, and it passes the unit tests normally when this is disabled. A detailed explanation of LLVM_BOLT will be shared at this year's Python Language Summit lightning talk, and materials will be published after the presentation. (Also, I already shared the draft material at Discord of Python core team) Performance Impact I measured that enabling or disabling peephole optimization of LLVM-BOLT has almost no impact on performance, and it shows only noise-level results in the pyperformance benchmarks also. pyperformance Benchmark as-is to-be async_generators 531 ms 550 ms: 1.04x slower async_tree_cpu_io_mixed 1.10 sec 1.10 sec: 1.01x slower chameleon 10.3 ms 10.4 ms: 1.01x slower chaos 104 ms 103 ms: 1.01x faster bench_thread_pool 1.24 ms 1.25 ms: 1.01x slower coroutines 44.0 ms 44.2 ms: 1.01x slower coverage 151 ms 147 ms: 1.02x faster crypto_pyaes 118 ms 118 ms: 1.01x slower deepcopy_reduce 4.68 us 4.70 us: 1.01x slower deltablue 5.32 ms 5.28 ms: 1.01x faster django_template 53.0 ms 54.3 ms: 1.02x slower dulwich_log 110 ms 111 ms: 1.01x slower fannkuch 630 ms 611 ms: 1.03x faster float 116 ms 115 ms: 1.01x faster generators 112 ms 112 ms: 1.00x slower genshi_text 34.3 ms 34.5 ms: 1.01x slower go 214 ms 212 ms: 1.01x faster hexiom 9.28 ms 9.32 ms: 1.01x slower json_loads 38.6 us 39.1 us: 1.01x slower logging_format 10.1 us 10.0 us: 1.01x faster logging_silent 157 ns 156 ns: 1.01x faster logging_simple 9.04 us 9.14 us: 1.01x slower mako 15.4 ms 15.7 ms: 1.02x slower meteor_contest 165 ms 166 ms: 1.01x slower nbody 166 ms 160 ms: 1.04x faster nqueens 130 ms 132 ms: 1.02x slower pathlib 26.9 ms 27.3 ms: 1.01x slower pickle_list 5.94 us 5.90 us: 1.01x faster pidigits 303 ms 303 ms: 1.00x slower pprint_safe_repr 1.11 sec 1.11 sec: 1.01x slower pprint_pformat 2.26 sec 2.27 sec: 1.00x slower python_startup 12.7 ms 12.7 ms: 1.00x slower python_startup_no_site 9.40 ms 9.39 ms: 1.00x faster raytrace 461 ms 463 ms: 1.00x slower regex_compile 194 ms 196 ms: 1.01x slower regex_effbot 4.87 ms 4.80 ms: 1.01x faster richards 66.6 ms 67.5 ms: 1.01x slower scimark_fft 497 ms 492 ms: 1.01x faster scimark_lu 178 ms 183 ms: 1.03x slower scimark_monte_carlo 107 ms 106 ms: 1.01x faster scimark_sor 182 ms 180 ms: 1.01x faster scimark_sparse_mat_mult 6.30 ms 6.36 ms: 1.01x slower spectral_norm 165 ms 169 ms: 1.02x slower sqlglot_optimize 83.0 ms 83.4 ms: 1.00x slower sqlglot_normalize 172 ms 173 ms: 1.00x slower sqlite_synth 3.89 us 3.84 us: 1.01x faster sympy_expand 742 ms 745 ms: 1.00x slower unpickle_list 7.53 us 7.50 us: 1.00x faster xml_etree_generate 132 ms 131 ms: 1.01x faster Geometric mean (ref) 1.00x slower Benchmark hidden because not significant (31): 2to3, async_tree_none, async_tree_io, async_tree_memoization, bench_mp_pool, deepcopy, deepcopy_memo, docutils, genshi_xml, html5lib, json_dumps, mdp, pickle, pickle_dict, pickle_pure_python, pyflate, regex_dna, regex_v8, sqlglot_parse, sqlglot_transpile, sympy_integrate, sympy_sum, sympy_str, telco, tornado_http, unpack_sequence, unpickle, unpickle_pure_python, xml_etree_parse, xml_etree_iterparse, xml_etree_process Issue: gh-101525
Open Graph Description: Background Experimental optimization techniques using LLVM-BOLT have been applied in CPython 3.12, but in order to provide this as an official feature, it must be ensured that the optimized binary ...
X Description: Background Experimental optimization techniques using LLVM-BOLT have been applied in CPython 3.12, but in order to provide this as an official feature, it must be ensured that the optimized binary ...
Opengraph URL: https://github.com/python/cpython/pull/103187
X: @github
Domain: github.com
| route-pattern | /:user_id/:repository/pull/:id/files(.:format) |
| route-controller | pull_requests |
| route-action | files |
| fetch-nonce | v2:4f8503a7-2f77-c97d-a841-336f65a52413 |
| current-catalog-service-hash | ae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b |
| request-id | AD5E:36099A:101DE5E:168DD72:696A371E |
| html-safe-nonce | a2640b15ccb5214207224bd57bd5424b81ed8d64288ebabde1a518c317c06a92 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBRDVFOjM2MDk5QToxMDFERTVFOjE2OERENzI6Njk2QTM3MUUiLCJ2aXNpdG9yX2lkIjoiNjMzODY2MDU4Mjg2NDU5ODgxNCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | b7daca987d825335a974a40d0609aa2270dd0bd689d3924f9063d505f5057d29 |
| hovercard-subject-tag | pull_request:1299035242 |
| github-keyboard-shortcuts | repository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/python/cpython/pull/103187/files |
| twitter:image | https://avatars.githubusercontent.com/u/5110323?s=400&v=4 |
| twitter:card | summary_large_image |
| og:image | https://avatars.githubusercontent.com/u/5110323?s=400&v=4 |
| og:image:alt | Background Experimental optimization techniques using LLVM-BOLT have been applied in CPython 3.12, but in order to provide this as an official feature, it must be ensured that the optimized binary ... |
| og:site_name | GitHub |
| og:type | object |
| hostname | github.com |
| expected-hostname | github.com |
| None | 321736bfdb3f591415ae895a0459bec204b26a76caf47ba5c980634cfacc4538 |
| turbo-cache-control | no-preview |
| diff-view | unified |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive full-width |
| disable-turbo | true |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7a9163cefd1ea4bd06f8eb7c082f43e4e53f626f |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width